SyTen

◆ solveForConvergence()

template<typename Solver >
template<typename MatrixScalar , typename Vectors , typename Scalar >
SRDef syten::Krylov::ClassicImpl::ExponentialSolver< Solver >::solveForConvergence ( Solver const &  ,
IterativeConfig const &  ,
std::pair< DenseTensor< 2, MatrixScalar >, Vectors > &&  mat_v,
SRDef  ,
Scalar  prefactor,
Vector  
)
inline

operator () solve exp(prefactor*mat)*vec and calculate the error, does not actually return the solution.

Parameters
mat_va pair of the matrix to solve and an object that can apply the result vector to the Krylov vectors
prefactorthe prefactor of the matrix in the exponential
Returns
the error to the previous result

References syten::abs(), syten::closeThreshold(), syten::conj(), syten::DenseTensor< rank, Scalar >::dim(), std::isnan(), std::move(), syten::Krylov::norm(), syten::Krylov::ClassicImpl::ExponentialSolver< Solver >::normPrev, syten::Krylov::ClassicImpl::ExponentialSolver< Solver >::prev, syten::Krylov::ClassicImpl::ExponentialSolver< Solver >::prevPrefactor, syten::real(), syten::Krylov::ClassicImpl::ExponentialSolver< Solver >::solve(), and SYTEN_SMALL_THRESHOLD.

+ Here is the call graph for this function: