# Singular Value Decomposition Solver - SVD

The Singular Value Decomposition Solver (SVD) is very similar to the EPS object, but intended for the computation of the partial SVD of a rectangular matrix. With this type of object, the user can specify an SVD problem and solve it with any of the different solvers encapsulated by the package. Some of these solvers are actually implemented through calls to EPS eigensolvers.

The user interface is very similar to that of EPS, both for the options database (e.g., -svd_nsv 4 -svd_type trlanczos), and for the programmatic interface (e.g., SVDSetDimensions() or SVDSetType()).

Examples

test1.c: Test the solution of a SVD without calling SVDSetFromOptions (based on ex8.c).
test2.c: Test SVD with different builds with a matrix loaded from a file.
test3.c: Test SVD with user-provided initial vectors.
test4.c: Test an SVD problem with more columns than rows.
test4f.F90: Singular value decomposition of a bidiagonal matrix.
test5.c: Test SVD view and monitor functionality.
test6.c: SVD via the cross-product matrix with a user-provided EPS.
test7.c: SVD via the cyclic matrix with a user-provided EPS.
test8.c: Tests multiple calls to SVDSolve changing ncv.
test9.c: Tests multiple calls to SVDSolve with different matrix size.
test10.c: Lanczos SVD. Also illustrates the use of SVDSetBV().
test11.c: Tests a user-defined convergence test (based on ex8.c).
test12.c: SVD problem with user-defined stopping test.
test13.c: Test interface to external package PRIMME.
test14.c: Tests multiple calls to SVDSolve with equal matrix size.
test15.c: Tests user interface for TRLANCZOS with GSVD.
test16.c: Tests multiple calls to SVDSolve with equal matrix size (GSVD).
test18.c: Test GSVD with user-provided initial vectors.
test19.c: Test RSVD on a low-rank matrix.
test20.c: Test setting and getting the signature in HSVD.