SSLIB: Sparse Matrix Manipulation Library



  1. sslib-0.7.tar.gz Release Date: March 8, 2010
    NOTE: I have tested the library on AMD64 architecture. The download version of this library includes a patched version of ARPACK --- the default version does not work rightaway with sslib. The patched version is specifically for 64 bit machines --- but if you edit the included for ARPACK to have -m32 instead of -m64, the code should also compile on 32 bit machines without trouble.


If you use this software for a paper, thesis, report, etc., then please include the following as a citation:
  1. Matrix Nearness Problems in Data Mining. S. Sra. Ph.D. Thesis,Univ. of Texas at Austin. Aug. 2007. [BibTeX]

Related software

You might find the following software useful for experimentation: (more details on software page)


  1. Download and untar SSLIB
  2. cd sslib
  3. cd depend/ARPACK and edit to point it to the correct base directory, BLAS, and LAPACK
  4. Note: If you use Goto BLAS, then LAPACK is already in there
  5. make --- should build the ARPACK library
  6. edit make.settings to point it to the correct BASEDIR and LAPACK + BLAS
  7. Remove spurious INCLUDE and LIB flags (I have /lusr/gnu/include etc. in there because my GSL lives there)
  8. cd src and type make lib
  9. the make process has an error. Ignore it, and now type 'make'
  10. Now libmyutil.a libsparse.a libsslib.a should be built
  11. Now type make eigs to build the eigenvector code
  12. NOTE: the above build process also generates a program called 'sparse', which is a driver routine that briefly exhibits some features of the SSLIB library. The most useful commands sparse provides are to load a CCS matrix and save it in binary format, or to convert it to CRS and so on. I use it for my own testing, but if you need to use it, feel free to ask me for more info, or peek into the code --- it is very easy to read code.
  13. try it out; cd ../test and type ../bin/eigs x.bin64 bin 2 4
  14. NOTE:You might have to limit the number of BLAS threads to 1, otherwise there is a performance hit. I don't have time to fix that, perhaps some day in the future I might change that.