60 axpy(-alpha, *Ar, *r);
64 printfQuda(
"Steepest Descent: %d iterations, |r| = %e, |r|/|b| = %e\n", k,
sqrt(r2),
sqrt(r2/b2));
75 axpy(-alpha, *Ar, *r);
77 printfQuda(
"Steepest Descent: %d iterations, |r| = %e, |r|/|b| = %e\n", k,
sqrt(r2),
sqrt(r2/b2));
85 printfQuda(
"Steepest Descent: %d iterations, accumulated |r| = %e, true |r| = %e, |r|/|b| = %e\n", k,
sqrt(r2),
sqrt(true_r2),
sqrt(true_r2/b2));
void operator()(ColorSpinorField &out, ColorSpinorField &in)
SD(const DiracMatrix &mat, SolverParam ¶m, TimeProfile &profile)
void commGlobalReductionSet(bool global_reduce)
void mat(void *out, void **link, void *in, int dagger_bit, int mu, QudaPrecision sPrecision, QudaPrecision gPrecision)
double xmyNorm(ColorSpinorField &x, ColorSpinorField &y)
void axpy(double a, ColorSpinorField &x, ColorSpinorField &y)
double3 cDotProductNormA(ColorSpinorField &a, ColorSpinorField &b)
double norm2(const CloverField &a, bool inverse=false)
__device__ __host__ void zero(double &a)
__host__ __device__ ValueType sqrt(ValueType x)
bool is_preconditioner
verbosity to use for preconditioner
bool global_reduction
whether the solver acting as a preconditioner for another solver
QudaVerbosity getVerbosity()