Does anybody know of a sparse SVD solver for c++? My problem involves some badly conditioned matrices that might have zeroed columns/rows. My data is stored in a uBLAS matrix which is the Harwell-Boeing sparse format.
I am having some trouble finding:
The SVD solver
I am hoping to recreate the following two steps from GSL
gsl_linalg_SV_decomp_jacobi (gsl_matrix * A, gsl_matrix * V, gsl_vector * S)
gsl_linalg_SV_solve (const gsl_matrix * U, const gsl_matrix * V, const gsl_vector * S, const gsl_vector * b, gsl_vector * x)
I also have no clue how to wrap a FORTRAN library in c++. Where/Are there any PROPACK c/c++ bindings?
Edit 1: I'm having some trouble with PROPACK. Does PROPACK output sparse matrices? It seems to output V as "V(LDV,KMAX): DOUBLE PRECISION array." which would imply that it doesn't?
SVDLIBC is a C library with partial support for the Harwell-Boeing format. I am not familiar with the library, but on the surface it seems to match your requirements.