[SciPy-user] Re: linalg.eig on sparse matrices
Travis E. Oliphant
oliphant at ee.byu.edu
Fri Jan 23 04:59:12 CST 2004
H Jansen wrote:
> On Thu, 2004-01-22 at 20:54, Travis E. Oliphant wrote:
>
>>H Jansen wrote:
>>
>>>One may want to have a look at pysparse:
>>>
>>>http://people.web.psi.ch/geus/pyfemax/pysparse.html
>>
>>Sparse matrices are definitely a candidate for SciPy. In fact, there is
>>rudimentary support for Sparse matrices already there.
>>
>>The plan is to rewrite the Sparse matrix class into one (or more) Python
>>type objects and support at least two different types of Sparse
>>matrices: linked-list (for fast matrix formation), compressed sparse
>>row (and compressed sparse column) for fast matrix manipulation. Four
>>different data types are planned for these matrices.
>>
>>There is a project out there that gets a bit of the way there (I think
>>it may be this one you speak of) but there is more to do to make it
>>general purpose enough.
>>
>>If there are individuals out there with experience with Sparse matrices,
>>this would be a great place to help out with development.
>
>
> I can't consider myself a "sparse matrix specialist" but I'm eager to
> test results and contribute to feature discussions. For instance, in
> pysparse index information is not available so you can't iterate over
> the sparse matrix elements --- this is a real handicap. Long time past
> (in my Fortran days) I've used Yousef Saad's Sparsekit which, if I
> remember correctly, was a pretty well featured sparse matrix kit. It
> didn't come integrated with iterative solvers of course since
> object-orientiation wasn't given much attention in the numerical
> computing community at that time (late 80's, early 90's).
>
Right now, the sparse matrix in SciPy uses Saad's toolkit (which is GPL
and thus problematic for continuance in the SciPy tree).
> In Python the "arrayfrombuffer" module may provide the functionality
> needed for address (1). (... skipping issue (2) ...) In the article the
> proposed solution for (3) is to have each numerical library implement
> the "apply_op(...)" method which accepts user-defined (application
> specific) matrix/vector operators. I believe the same solution can work
> for Python: special-purpose vector/matrix operations can be implemented
> in a compilable language (Fortran/C++) and easily be interfaced with
> Python (using, for example, for Fortran: F2PY or pyfortran, and for C++:
> C++boost template library, PyCXX or Swig).
I think Python is a great tool for answering some of these questions,
but right now that is not on my path. I would just like to see the
sparse matrix object in SciPy improved.
-Travis O.
More information about the SciPy-user
mailing list