On Sat, May 05, 2007 at 04:05:08PM +0400, Andrew Makhorin wrote: > >> I am wondering if it is planned to eventually provide GSL with general > >> sparse matrix routines (e.g. like those ones which are included in NAG, > >> ESSL, or Harwell Library)? > > > So far we haven't added sparse matrices because it seemed like > > this would require several sparse matrix representations to be > > implemented in order to be useful, each with their own functions. [snip] > > As it seems to me, it would be very useful to provide GSL at least > with data structures defining three most commonly used formats for > general sparse matrices, namely, coordinate format, compressed row > storage, and compressed column storage, as well as two formats for > sparse vectors based on compressed vector storage, and a minimal set > of some basic functions. This would standardize representation of > sparse objects within the GSL library and make it possible to use > such data structures on developing sparse linear algebra software > based on GSL. > > Thank you, > > Andrew Makhorin
Something like this exists as the NIST sparse BLAS: http://math.nist.gov/spblas/ Perhaps the GSL could - include this code (verbatim would make 2800 lines of C), and compile it as libgslspblas.so, to complement libgslcblas.so (I have no idea if licensing would get in the way.) - wrap it in a manner similar to gsl_matrix, to provide - element access - simple stats (min, max, mean) - basic I/O (e.g. Harwell-Boeing) - vector scatter / gather - matrix-vector multiply, (matrix-matrix multiply?) Would these nuts and bolts make progress toward providing sparse solvers though the GSL? Would they be useful to many? Cheers, James Bergstra -- http://www-etud.iro.umontreal.ca/~bergstrj
