|
SPEIGS 1.0.0
|
SPEIGS implements an efficient eigen-decomposition pre-processor for Extremely sparse matrices (arising from SDPs). Given a real symmetric matrix, it computes the full eigen-decomposition $A = V\Lambda V^T$ . It internally uses Lapack deyevr as the subroutine and detects the possible special structures within the matrix to factorize. It is recommended to try the package if $A$ satisfies either of the conditions below
If neither of the two cases is satisfied, we recommend the use of other state-of-the-art sparse eigen-decomposition libraries such as ARPACK and MKL FEAST.
SPEIGS originates from DSDP5.8 (https://www.mcs.anl.gov/hs/software/DSDP/), a semi-definite programming solver by Steve Benson and is formalized as a library in its successor HDSDP (https://github.com/COPT-Public/HDSDP).
The current version of SPEIGS is 1.0.0 and can be called from C and MATLAB Mex interface.
SPEIGS is built via CMAKE system and is linked to MKL library for the implementation of dsyevr. The user can also switch to other implementations by modifying the paths and linked libraries from the CMakeLists.txt.
After configuring the installation paths. Users can execute
in the command line and build the SPEIG library.
The interface of SPDEIGS is well-documented using doxygen system and the users can run
in the command line to generate HTML or LaTex documents to the interface.
The examples for SPEIGS are available at
and in a word, SPEIGS runs in a two-phase fashion
The users can flexibly decide whether to use SPEIGS to factorize based on the result from the analysis phase.
SPEIGS is callable from MATLAB by the MEX interface. Users can either build the mexfile using CMakeLists.txt from matlab directory or download the pre-built mex files and run
in Matlab. On successful installation, SPEIGS can be uses as eig function by
and test_speigs.m , help speigs would provide help on how to use the routine.
Since SPEIGS serves as a pre-processor that targets special structures of matrices. If there does exist structures to exploit, SPEIG might be 1000x faster than conventional eigen solvers. SPEIG would be less efficient without structure and users can decide after the analysis phase.
SPEIGS is a by-product of the HDSDP solver, which is maintained by Wenzhi Gao from Shanghai University of Finance and Economics.