SVDStoppingThreshold#
Routine to determine whether the outer singular value solver iteration must be stopped, according to some threshold for the computed values.
Synopsis#
#include "slepcsvd.h"
PetscErrorCode SVDStoppingThreshold(SVD svd,PetscInt its,PetscInt max_it,PetscInt nconv,PetscInt nsv,SVDConvergedReason *reason,void *ctx)
Collective
Input Parameters#
svd - singular value solver context obtained from SVDCreate()
its - current number of iterations
max_it - maximum number of iterations
nconv - number of currently converged singular triplets (ignored here)
nsv - number of requested singular triplets (ignored here)
ctx - context containing additional data (SVDStoppingCtx)
Output Parameter#
reason - result of the stopping test
Notes#
A positive value of reason indicates that the iteration has finished successfully (converged), and a negative value indicates an error condition (diverged). If the iteration needs to be continued, reason must be set to SVD_CONVERGED_ITERATING (zero).
SVDStoppingThreshold() will stop when one of the computed singular values is not above/below the threshold given at SVDSetThreshold(). If a number of wanted singular values has been specified via SVDSetDimensions() then it is also taken into account, and the solver will stop when one of the two conditions (threshold or number of converged values) is met.
Use SVDSetStoppingTest() to provide your own test instead of using this one.
See Also#
SVDSetStoppingTest()
, SVDStoppingBasic()
, SVDSetThreshold()
, SVDSetDimensions()
, SVDConvergedReason
, SVDGetConvergedReason()
Level#
advanced
Location#
src/svd/interface/svddefault.c
Index of all SVD routines Table of Contents for all manual pages Index of all manual pages