15 const LatticeFermionD&
b,
41 QDPIO::cout <<
"Initial Norm: " << rnorm << std::endl;
43 if( toBool( rnorm <= rsd_t ) ) {
46 QDPIO::cout <<
"Iter 0: || r || = "<< rnorm <<
" || r_target || = " << rsd_t << std::endl;
49 res.
resid = Real(sqrt(rnorm));
54 for(
int i=1;
i <= MaxIter ;
i++) {
56 LatticeFermionD delta_x;
57 LatticeFermionD Ddelta_x;
60 LatticeFermionF r_single(
r);
61 LatticeFermionF dx_single;
69 delta_x[
s] = dx_single;
71 D(Ddelta_x, delta_x,
PLUS);
80 if( toBool( rnorm <= rsd_t ) ) {
91 res.
resid = Real(sqrt(norm2(
r)/norm2(
b)));
97 QDPIO::cout <<
"Richardson Multi Prec Solver: NONCONVERGENCE" << std::endl;
99 res.
resid = Real(sqrt(rnorm));
virtual const Subset & subset() const =0
Return the subset on which the operator acts.
Asqtad Staggered-Dirac operator.
void InvMultiPrecRichardson(const SystemSolver< LatticeFermionF > &Dinv, const LinearOperator< LatticeFermionD > &D, const LatticeFermionD &b, LatticeFermionD &x, int MaxIter, Real RsdTarget, SystemSolverResults_t &res)
multi1d< LatticeFermion > s(Ncb)
FloatingPoint< double > Double
Holds return info from SystemSolver call.