Building an arpack extension turned out to be surprisingly simple. For example for dsaupd:
f2py -c dsaupd.f -m dsaupd -L/usr/lib/blas/atlas:/usr/lib/lapack/atlas -llapack -lblas -larpack
It took me a long time to get the command down to something that simple. Took me a while even to figure out I could just use the arpack library on my computer rather than re-linking all of arpack! I was able to import the dsaupd.so python module just fine and I was also able to call it just fine. I'll have to tweak the pyf file in order to get some proper output. But this gives me confidence that arpack is easy to hook into which is what others have said in the past, but without any experience with f2py I had no idea myself. f2py is awesome, for anyone who doesn't know.
Matlab has interfaces for the arpack functions like dsaupd, dseupd, dnaupd, znaupd, zneupd (the mex file documentation claims those are the only ones, but they have more). Matlab has a C interface to these functions in arpackc.mex* and the script eigs.m does the grunt work, providing a very high-level interface as well as doing some linear algebra (the same type of stuff that is done in arpack's examples directory I gather) and various other things.
My idea is (if I have time) to write an eigs-like function in python that will only perform a subset of what Matlab's eigs does for. It will, for example, compute a certain number of eigenvalues and eigenvectors for a real, sparse, symmetric matrix (the case I'm interested in)... I hope that this subset-of-matlab's-eigs function will not be too hard to write. Then more functionality can be added on to eigs.py later... Does this make sense?
Has anyone else started work on arpack integration at all?
On 8/15/06, David Grant davidgrant@gmail.com wrote:
My idea is (if I have time) to write an eigs-like function in python that will only perform a subset of what Matlab's eigs does for. It will, for example, compute a certain number of eigenvalues and eigenvectors for a real, sparse, symmetric matrix (the case I'm interested in)
Will it also work for a real, dense, symmetric matrix? That's the case I'm interested in. But even if it doesn't, your work is great news for numpy.
Keith Goodman wrote:
On 8/15/06, David Grant davidgrant@gmail.com wrote:
My idea is (if I have time) to write an eigs-like function in python that will only perform a subset of what Matlab's eigs does for. It will, for example, compute a certain number of eigenvalues and eigenvectors for a real, sparse, symmetric matrix (the case I'm interested in)
AFAIK, pysparse (in the sandbox) includes a module that implements a Jacobi-Davidson eigenvalue solver for the symmetric, generalised matrix eigenvalue problem (JDSYM). Did someone test pysparse ?
Nils
Will it also work for a real, dense, symmetric matrix? That's the case I'm interested in. But even if it doesn't, your work is great news for numpy.
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da... _______________________________________________ Numpy-discussion mailing list Numpy-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/numpy-discussion
Nils Wagner wrote:
Keith Goodman wrote:
On 8/15/06, David Grant davidgrant@gmail.com wrote:
My idea is (if I have time) to write an eigs-like function in python that will only perform a subset of what Matlab's eigs does for. It will, for example, compute a certain number of eigenvalues and eigenvectors for a real, sparse, symmetric matrix (the case I'm interested in)
AFAIK, pysparse (in the sandbox) includes a module that implements a Jacobi-Davidson eigenvalue solver for the symmetric, generalised matrix eigenvalue problem (JDSYM). Did someone test pysparse ?
Nils
Will it also work for a real, dense, symmetric matrix? That's the case I'm interested in. But even if it doesn't, your work is great news for numpy.
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da... _______________________________________________ Numpy-discussion mailing list Numpy-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/numpy-discussion
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da... _______________________________________________ Numpy-discussion mailing list Numpy-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/numpy-discussion
Ok it's not ready...
gcc: Lib/sandbox/pysparse/src/spmatrixmodule.c In file included from Lib/sandbox/pysparse/src/spmatrixmodule.c:17: Lib/sandbox/pysparse/src/ll_mat.c: In function ‘LLMat_matvec_transp’: Lib/sandbox/pysparse/src/ll_mat.c:760: error: ‘CONTIGUOUS’ undeclared (first use in this function) Lib/sandbox/pysparse/src/ll_mat.c:760: error: (Each undeclared identifier is reported only once Lib/sandbox/pysparse/src/ll_mat.c:760: error: for each function it appears in.) Lib/sandbox/pysparse/src/ll_mat.c: In function ‘LLMat_matvec’: Lib/sandbox/pysparse/src/ll_mat.c:797: error: ‘CONTIGUOUS’ undeclared (first use in this function) In file included from Lib/sandbox/pysparse/src/spmatrixmodule.c:18: Lib/sandbox/pysparse/src/csr_mat.c: In function ‘CSRMat_matvec_transp’: Lib/sandbox/pysparse/src/csr_mat.c:119: error: ‘CONTIGUOUS’ undeclared (first use in this function) Lib/sandbox/pysparse/src/csr_mat.c: In function ‘CSRMat_matvec’: Lib/sandbox/pysparse/src/csr_mat.c:146: error: ‘CONTIGUOUS’ undeclared (first use in this function) In file included from Lib/sandbox/pysparse/src/spmatrixmodule.c:19: Lib/sandbox/pysparse/src/sss_mat.c: In function ‘SSSMat_matvec’: Lib/sandbox/pysparse/src/sss_mat.c:83: error: ‘CONTIGUOUS’ undeclared (first use in this function) In file included from Lib/sandbox/pysparse/src/spmatrixmodule.c:17: Lib/sandbox/pysparse/src/ll_mat.c: In function ‘LLMat_matvec_transp’: Lib/sandbox/pysparse/src/ll_mat.c:760: error: ‘CONTIGUOUS’ undeclared (first use in this function) Lib/sandbox/pysparse/src/ll_mat.c:760: error: (Each undeclared identifier is reported only once Lib/sandbox/pysparse/src/ll_mat.c:760: error: for each function it appears in.) Lib/sandbox/pysparse/src/ll_mat.c: In function ‘LLMat_matvec’: Lib/sandbox/pysparse/src/ll_mat.c:797: error: ‘CONTIGUOUS’ undeclared (first use in this function) In file included from Lib/sandbox/pysparse/src/spmatrixmodule.c:18: Lib/sandbox/pysparse/src/csr_mat.c: In function ‘CSRMat_matvec_transp’: Lib/sandbox/pysparse/src/csr_mat.c:119: error: ‘CONTIGUOUS’ undeclared (first use in this function) Lib/sandbox/pysparse/src/csr_mat.c: In function ‘CSRMat_matvec’: Lib/sandbox/pysparse/src/csr_mat.c:146: error: ‘CONTIGUOUS’ undeclared (first use in this function) In file included from Lib/sandbox/pysparse/src/spmatrixmodule.c:19: Lib/sandbox/pysparse/src/sss_mat.c: In function ‘SSSMat_matvec’: Lib/sandbox/pysparse/src/sss_mat.c:83: error: ‘CONTIGUOUS’ undeclared (first use in this function) error: Command "gcc -pthread -fno-strict-aliasing -DNDEBUG -O2 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -g -fPIC -ILib/sandbox/pysparse/include/ -I/usr/lib64/python2.4/site-packages/numpy/core/include -I/usr/include/python2.4 -c Lib/sandbox/pysparse/src/spmatrixmodule.c -o build/temp.linux-x86_64-2.4/Lib/sandbox/pysparse/src/spmatrixmodule.o" failed with exit status 1
Nils
On 8/16/06, Nils Wagner nwagner@iam.uni-stuttgart.de wrote:
Keith Goodman wrote:
On 8/15/06, David Grant davidgrant@gmail.com wrote:
My idea is (if I have time) to write an eigs-like function in python that will only perform a subset of what Matlab's eigs does for. It will, for example, compute a certain number of eigenvalues and eigenvectors for a real, sparse, symmetric matrix (the case I'm interested in)
AFAIK, pysparse (in the sandbox) includes a module that implements a Jacobi-Davidson eigenvalue solver for the symmetric, generalised matrix eigenvalue problem (JDSYM). Did someone test pysparse ?
I did try pysparse a few years ago (I think right before sparse stuff came
into scipy). I think there is probably an old post asking the list about sparse stuff and I think Travis had just written it and told me about it... can't remember. Can JDSYM just return the k lowest eigenvalues/eigenvectors?
On Wed, 16 Aug 2006 08:08:16 -0700 "David Grant" davidgrant@gmail.com wrote:
On 8/16/06, Nils Wagner nwagner@iam.uni-stuttgart.de wrote:
Keith Goodman wrote:
On 8/15/06, David Grant davidgrant@gmail.com wrote:
My idea is (if I have time) to write an eigs-like
function in python
that will only perform a subset of what Matlab's eigs
does for. It
will, for example, compute a certain number of
eigenvalues and
eigenvectors for a real, sparse, symmetric matrix
(the case I'm
interested in)
AFAIK, pysparse (in the sandbox) includes a module that implements a Jacobi-Davidson eigenvalue solver for the symmetric, generalised matrix eigenvalue problem (JDSYM). Did someone test pysparse ?
I did try pysparse a few years ago (I think right before sparse stuff came
into scipy). I think there is probably an old post asking the list about sparse stuff and I think Travis had just written it and told me about it... can't remember. Can JDSYM just return the k lowest eigenvalues/eigenvectors?
-- David Grant http://www.davidgrant.ca
Yes. See http://people.web.psi.ch/geus/pyfemax/pysparse_examples.html
for details.
Nils
On 8/16/06, Keith Goodman kwgoodman@gmail.com wrote:
On 8/15/06, David Grant davidgrant@gmail.com wrote:
My idea is (if I have time) to write an eigs-like function in python that will only perform a subset of what Matlab's eigs does for. It will, for example, compute a certain number of eigenvalues and eigenvectors for a real, sparse, symmetric matrix (the case I'm interested in)
Will it also work for a real, dense, symmetric matrix? That's the case I'm interested in. But even if it doesn't, your work is great news for numpy.
Real, dense, symmetric, well doesn't scipy already have something for this? I'm honestly not sure on the arpack side of things, I thought arpack was only useful (over other tools) for sparse matrices, I could be wrong.
Hello all
-----Original Message----- From: numpy-discussion-bounces@lists.sourceforge.net [mailto:numpy- discussion-bounces@lists.sourceforge.net] On Behalf Of David Grant Sent: 16 August 2006 17:11 To: Discussion of Numerical Python Subject: Re: [Numpy-discussion] some work on arpack
On 8/16/06, Keith Goodman kwgoodman@gmail.com wrote:
On 8/15/06, David Grant davidgrant@gmail.com wrote:
My idea is (if I have time) to write an eigs-like function in
python
that will only perform a subset of what Matlab's eigs does for. It will, for example, compute a certain number of eigenvalues and eigenvectors for a real, sparse, symmetric matrix (the case I'm interested in)
Will it also work for a real, dense, symmetric matrix? That's the case I'm interested in. But even if it doesn't, your work is great news for numpy.
Real, dense, symmetric, well doesn't scipy already have something for this? I'm honestly not sure on the arpack side of things, I thought arpack was only useful (over other tools) for sparse matrices, I could be wrong.
Maybe SciPy can also do this, but what makes ARPACK useful is that it can get you a few eigenvalues and eigenvectors of a massive matrix without having to have the whole thing in memory. Instead, you provide ARPACK with a function that does A*x on your matrix. ARPACK passes a few x's to your function and a few eigenvalues and eigenvectors fall out.
I recently used MATLAB's eigs to do exactly this. I had a dense matrix A with dimensions m x n, where m >> n. I wanted the eigenvalues of A'A (which has dimensions m x m, which is too large to keep in memory). But I could keep A and A' in memory I could quickly calculate A'A*x, which is what ARPACK needs.
Cheers,
Albert
On 8/16/06, Albert Strasheim fullung@gmail.com wrote:
Hello all
-----Original Message----- From: numpy-discussion-bounces@lists.sourceforge.net [mailto:numpy- discussion-bounces@lists.sourceforge.net] On Behalf Of David Grant Sent: 16 August 2006 17:11 To: Discussion of Numerical Python Subject: Re: [Numpy-discussion] some work on arpack
On 8/16/06, Keith Goodman kwgoodman@gmail.com wrote:
On 8/15/06, David Grant <davidgrant@gmail.com> wrote: > My idea is (if I have time) to write an eigs-like function in
python > that will only perform a subset of what Matlab's eigs does for.
It
> will, for example, compute a certain number of eigenvalues and > eigenvectors for a real, sparse, symmetric matrix (the case I'm > interested in) Will it also work for a real, dense, symmetric matrix? That's the
case I'm interested in. But even if it doesn't, your work is great news for numpy.
Real, dense, symmetric, well doesn't scipy already have something for this? I'm honestly not sure on the arpack side of things, I thought
arpack
was only useful (over other tools) for sparse matrices, I could be
wrong.
Maybe SciPy can also do this, but what makes ARPACK useful is that it can get you a few eigenvalues and eigenvectors of a massive matrix without having to have the whole thing in memory. Instead, you provide ARPACK with a function that does A*x on your matrix. ARPACK passes a few x's to your function and a few eigenvalues and eigenvectors fall out.
Cool, thanks for the info.
On 8/15/06, David Grant davidgrant@gmail.com wrote:
My idea is (if I have time) to write an eigs-like function in python that will only perform a subset of what Matlab's eigs does for. It will, for example, compute a certain number of eigenvalues and eigenvectors for a real, sparse, symmetric matrix (the case I'm interested in)... I hope that this subset-of-matlab's-eigs function will not be too hard to write. Then more functionality can be added on to eigs.py later... Does this make sense?
Did you, or anybody else on the list, have any luck making a numpy version of eigs?
------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da...
Here's something I've been wondering: is it ok to port Matlab functions over to python? If so, then it's maybe an afternoon's work to get eigs working, given eigs.m and python Arpack wrappers.
I'm 99% sure it would *not* be kosher to copy-paste their code directly, but it's not a copy paste job because of the differences between Python and .m. So it seems a grayer area to me.
--bb
On 10/22/06, Keith Goodman kwgoodman@gmail.com wrote:
On 8/15/06, David Grant davidgrant@gmail.com wrote:
My idea is (if I have time) to write an eigs-like function in python that will only perform a subset of what Matlab's eigs does for. It will, for example, compute a certain number of eigenvalues and eigenvectors for a real, sparse, symmetric matrix (the case I'm interested in)... I hope that this subset-of-matlab's-eigs function will not be too hard to write. Then more functionality can be added on to eigs.py later... Does this make sense?
Did you, or anybody else on the list, have any luck making a numpy version of eigs?
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da... _______________________________________________ Numpy-discussion mailing list Numpy-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/numpy-discussion
------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da...
On 10/21/06, Bill Baxter wbaxter@gmail.com wrote:
Here's something I've been wondering: is it ok to port Matlab functions over to python? If so, then it's maybe an afternoon's work to get eigs working, given eigs.m and python Arpack wrappers.
I'm 99% sure it would *not* be kosher to copy-paste their code directly, but it's not a copy paste job because of the differences between Python and .m. So it seems a grayer area to me.
--bb
I haven't the faintest idea. What did the EULA say? What about a copyright? This sounds like a job for a lawyer, but I would guess it would be a bad idea unless the code is from a third party with a free license.
Chuck
------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da...
_______________________________________________ Numpy-discussion mailing list Numpy-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/numpy-discussion
On 10/22/06, Charles R Harris charlesr.harris@gmail.com wrote:
On 10/21/06, Bill Baxter wbaxter@gmail.com wrote:
Here's something I've been wondering: is it ok to port Matlab functions over to python? If so, then it's maybe an afternoon's work to get eigs working, given eigs.m and python Arpack wrappers. [...]
I haven't the faintest idea. What did the EULA say? What about a copyright? This sounds like a job for a lawyer, but I would guess it would be a bad idea unless the code is from a third party with a free license.
Gee, there's an idea. :-)
---- from License.txt ---- "Except as expressly provided by this Agreement, including the attached Addendum, Licensee may not adapt, translate, or convert "M-files", "MDL-files" or "P-code" contained in the Programs in order to create software, a principal purpose of which is to perform the same or similar functions as Programs licensed by MathWorks or which is intended to replace any component of the Programs. The Licensee may not incorporate or use "M-files", "P-code", source code, or any other part of the Programs in or as part of another computer program without the consent of MathWorks. A Licensed User may modify pieces of MathWorks' code for the Licensed User's own use. A Licensed User may share such modified code with others provided each recipient is also a Licensed User for the original form of the code. " -------------------------
So. If you're a Matlab licensee it would be ok to use it in your own stuff, but putting it in Numpy is definitely out of the question.
--bb
------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da...
On Sun, Oct 22, 2006 at 09:27:39AM +0900, Bill Baxter wrote:
On 10/22/06, Charles R Harris charlesr.harris@gmail.com wrote:
On 10/21/06, Bill Baxter wbaxter@gmail.com wrote:
Here's something I've been wondering: is it ok to port Matlab functions over to python? If so, then it's maybe an afternoon's work to get eigs working, given eigs.m and python Arpack wrappers. [...]
I haven't the faintest idea. What did the EULA say? What about a copyright? This sounds like a job for a lawyer, but I would guess it would be a bad idea unless the code is from a third party with a free license.
Gee, there's an idea. :-)
---- from License.txt ----
[...]
So. If you're a Matlab licensee it would be ok to use it in your own stuff, but putting it in Numpy is definitely out of the question.
A lot of the code in the Octave Forge is licensed under the BSD license, so you can use that. Unfortunately, the main Octave code is released under the GPL.
Cheers Stéfan
------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da...
On Sat, Oct 21, 2006 at 02:05:42PM -0700, Keith Goodman wrote:
Did you, or anybody else on the list, have any luck making a numpy version of eigs?
I made a start at an ARPACK wrapper, see http://projects.scipy.org/scipy/scipy/ticket/231 and the short thread at scipy-dev http://thread.gmane.org/gmane.comp.python.scientific.devel/5166/focus=5175
In addition to the wrapper there is a Python interface (and some tests). I don't know if the interface is like "eigs" - I don't use Matlab.
It will give you a few eigenvalues and eigenvectors for the standard eigenproblem (Ax=lx) for any type of A (symmetric/nonsymmetric, real/complex, single/double, sparse/nonsparse).
The generalized and shifted modes are not implemented. I need to find some time (or some help) to get it finished.
Regards, Aric
------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da...
Hello all
-----Original Message----- From: numpy-discussion-bounces@lists.sourceforge.net [mailto:numpy- discussion-bounces@lists.sourceforge.net] On Behalf Of Aric Hagberg Sent: Sunday, October 22, 2006 4:09 PM To: Discussion of Numerical Python Subject: Re: [Numpy-discussion] some work on arpack
On Sat, Oct 21, 2006 at 02:05:42PM -0700, Keith Goodman wrote:
Did you, or anybody else on the list, have any luck making a numpy version of eigs?
I made a start at an ARPACK wrapper, see http://projects.scipy.org/scipy/scipy/ticket/231 and the short thread at scipy-dev http://thread.gmane.org/gmane.comp.python.scientific.devel/5166/focus=5175
In addition to the wrapper there is a Python interface (and some tests). I don't know if the interface is like "eigs" - I don't use Matlab.
If you're interested in making an interface that looks like MATLAB's, you can take a peek at:
It will give you a few eigenvalues and eigenvectors for the standard eigenproblem (Ax=lx) for any type of A (symmetric/nonsymmetric, real/complex, single/double, sparse/nonsparse).
The generalized and shifted modes are not implemented. I need to find some time (or some help) to get it finished.
Regards, Aric
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da... _______________________________________________ Numpy-discussion mailing list Numpy-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/numpy-discussion
------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da...
Argh.
<snip>
In addition to the wrapper there is a Python interface (and some tests). I don't know if the interface is like "eigs" - I don't use Matlab.
http://www.mathworks.de/access/helpdesk/help/techdoc/ref/index.html?/access/ helpdesk/help/techdoc/ref/eigs.html
should give you some idea of how MATLAB's eigs works.
Cheers,
Albert
------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da...
On 10/22/06, Aric Hagberg hagberg@lanl.gov wrote:
On Sat, Oct 21, 2006 at 02:05:42PM -0700, Keith Goodman wrote:
Did you, or anybody else on the list, have any luck making a numpy version of eigs?
I made a start at an ARPACK wrapper, see http://projects.scipy.org/scipy/scipy/ticket/231 and the short thread at scipy-dev http://thread.gmane.org/gmane.comp.python.scientific.devel/5166/focus=5175
That looks very promising!
------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da...
Don't know if this is any use, but to me (not knowing Fortran nearly so well as C++) this looks pretty useful: http://www.caam.rice.edu/software/ARPACK/arpack++.html http://www.ime.unicamp.br/%7Echico/arpack++/
It provides a nice high-level interface on top of ARPACK. I could see it being useful on a number of levels: 1) actually use its wrappers directly instead of calling the f2py'ed fortran code - at least as a stop gap measure to cover the holes ("shifted modes" etc) - this could potentially even be faster since the reverse-communication interface requires some iteration, and this way the loops would run in compiled C++ instead of python.
2) use it's code just as a reference to help write more wrappers to the fortran code
3) if nothing else, it has pretty decent documentation. For instance it includes a nice table of the amount of storage you need to reserve for various different calling modes. (It seems ARPACK's main documentation is not freely available, so I'm not sure what's in it, but if you have that then ARPACK++'s docs may not be much help).
As far as I can tell, it must be under the same licensing terms as ARPACK itself. It doesn't actually specify anything as far as I could see. But it seems to be linked prominently from the ARPACK website and appears as an offshoot project.
--bb
On 10/22/06, Aric Hagberg hagberg@lanl.gov wrote:
On Sat, Oct 21, 2006 at 02:05:42PM -0700, Keith Goodman wrote:
Did you, or anybody else on the list, have any luck making a numpy version of eigs?
I made a start at an ARPACK wrapper, see http://projects.scipy.org/scipy/scipy/ticket/231 and the short thread at scipy-dev http://thread.gmane.org/gmane.comp.python.scientific.devel/5166/focus=5175
In addition to the wrapper there is a Python interface (and some tests). I don't know if the interface is like "eigs" - I don't use Matlab.
It will give you a few eigenvalues and eigenvectors for the standard eigenproblem (Ax=lx) for any type of A (symmetric/nonsymmetric, real/complex, single/double, sparse/nonsparse).
The generalized and shifted modes are not implemented. I need to find some time (or some help) to get it finished.
Regards, Aric