slepc-3.21.1 2024-04-26
Report Typos and Errors


Set the tolerance to be used when checking a definite inner product.


#include "slepcbv.h" 
PetscErrorCode BVSetDefiniteTolerance(BV bv,PetscReal deftol)
Logically Collective

Input Parameters

bv  - basis vectors
deftol  - the tolerance

Options Database Key

-bv_definite_tol <deftol>  - the tolerance


When using a non-standard inner product, see BVSetMatrix(), the solver needs to compute sqrt(z'*B*z) for various vectors z. If the inner product has not been declared indefinite, the value z'*B*z must be positive, but due to rounding error a tiny value may become negative. A tolerance is used to detect this situation. Likewise, in complex arithmetic z'*B*z should be real, and we use the same tolerance to check whether a nonzero imaginary part can be considered negligible.

This function sets this tolerance, which defaults to 10*eps, where eps is the machine epsilon. The default value should be good for most applications.

See Also






Index of all BV routines
Table of Contents for all manual pages
Index of all manual pages