SVDSolve#
Solves the singular value problem.
Synopsis#
#include "slepcsvd.h"
PetscErrorCode SVDSolve(SVD svd)
Collective
Input Parameter#
svd - the singular value solver context
Options Database Keys#
-svd_view - print information about the solver used
-svd_view_mat0 - view the first matrix (\(A\))
-svd_view_mat1 - view the second matrix (\(B\))
-svd_view_signature - view the signature matrix (\(\Omega\))
-svd_view_vectors - view the computed singular vectors
-svd_view_values - view the computed singular values
-svd_converged_reason - print reason for convergence/divergence, and number of iterations
-svd_error_absolute - print absolute errors of each singular triplet
-svd_error_relative - print relative errors of each singular triplet
-svd_error_norm - print errors relative to the matrix norms of each singular triplet
Notes#
The problem matrices are specified with SVDSetOperators().
SVDSolve() will return without generating an error regardless of whether
all requested solutions were computed or not. Call SVDGetConverged() to get the
actual number of computed solutions, and SVDGetConvergedReason() to determine if
the solver converged or failed and why.
All the command-line options listed above admit an optional argument specifying
the viewer type and options. For instance, use -svd_view_mat0 binary:amatrix.bin
to save the \(A\) matrix to a binary file, -svd_view_values draw to draw the computed
singular values graphically, or -svd_error_relative :myerr.m:ascii_matlab to save
the errors in a file that can be executed in Matlab.
See Also#
SVD: Singular Value Decomposition, SVDCreate(), SVDSetUp(), SVDDestroy(), SVDSetOperators(), SVDGetConverged(), SVDGetConvergedReason()
Level#
beginner
Location#
Examples#
src/svd/tutorials/ex51.c
src/svd/tutorials/ex15f.F90
src/svd/tutorials/ex14.c
src/svd/tutorials/ex45.c
src/svd/tutorials/ex15.c
src/svd/tutorials/ex48.c
src/svd/tutorials/ex53.c
src/svd/tutorials/ex52.c
src/svd/tutorials/ex8.c
Implementations#
SVDSolve_Cross() in src/svd/impls/cross/cross.c
SVDSolve_Cyclic() in src/svd/impls/cyclic/cyclic.c
SVDSolve_Elemental() in src/svd/impls/external/elemental/svdelemen.cxx
SVDSolve_KSVD() in src/svd/impls/external/ksvd/svdksvd.c
SVDSolve_PRIMME() in src/svd/impls/external/primme/svdprimme.c
SVDSolve_ScaLAPACK() in src/svd/impls/external/scalapack/svdscalap.c
SVDSolve_Lanczos() in src/svd/impls/lanczos/gklanczos.c
SVDSolve_LAPACK() in src/svd/impls/lapack/svdlapack.c
SVDSolve_Randomized() in src/svd/impls/randomized/rsvd.c
SVDSolve_TRLanczos() in src/svd/impls/trlanczos/trlanczos.c
SVDSolve_TRLanczosGSingle() in src/svd/impls/trlanczos/trlanczos.c
SVDSolve_TRLanczosGUpper() in src/svd/impls/trlanczos/trlanczos.c
SVDSolve_TRLanczosGLower() in src/svd/impls/trlanczos/trlanczos.c
Index of all SVD routines Table of Contents for all manual pages Index of all manual pages