SSLIB: Sparse Matrix Manipulation Library
SSLIB
Download
- 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 make.inc for ARPACK to have -m32 instead of -m64, the code should also compile on 32 bit machines without trouble.
References
If you use this software for a paper, thesis, report, etc., then please include the following as a citation:- 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)[MATLAB2CCS] [READCCS] [CONVERSION TOOLS]
INSTALLATION NOTES
- Download and untar SSLIB
- cd sslib
- cd depend/ARPACK and edit make.inc to point it to the correct base directory, BLAS, and LAPACK
- Note: If you use Goto BLAS, then LAPACK is already in there
- make --- should build the ARPACK library
- edit make.settings to point it to the correct BASEDIR and LAPACK + BLAS
- Remove spurious INCLUDE and LIB flags (I have /lusr/gnu/include etc. in there because my GSL lives there)
- cd src and type make lib
- the make process has an error. Ignore it, and now type 'make'
- Now libmyutil.a libsparse.a libsslib.a should be built
- Now type make eigs to build the eigenvector code
- 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.
- try it out; cd ../test and type ../bin/eigs x.bin64 bin 2 4
- 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.