20 Solver(param, profile), mat(mat)
31 const double b2 =
norm2(b);
34 printfQuda(
"Warning: inverting on zero-field source\n");
94 omega = omega_num/omega_denom;
bool convergence(const double &r2, const double &hq2, const double &r2_tol, const double &hq_tol)
void caxpyCuda(const Complex &a, cudaColorSpinorField &x, cudaColorSpinorField &y)
static double stopping(const double &tol, const double &b2, QudaResidualType residual_type)
void operator()(cudaColorSpinorField &out, cudaColorSpinorField &in)
__host__ __device__ ValueType sqrt(ValueType x)
std::complex< double > Complex
void mat(void *out, void **fatlink, void **longlink, void *in, double kappa, int dagger_bit, QudaPrecision sPrecision, QudaPrecision gPrecision)
SimpleBiCGstab(DiracMatrix &mat, SolverParam ¶m, TimeProfile &profile)
void PrintSummary(const char *name, int k, const double &r2, const double &b2)
QudaResidualType residual_type
Complex cDotProductCuda(cudaColorSpinorField &, cudaColorSpinorField &)
virtual ~SimpleBiCGstab()
void Stop(QudaProfileType idx)
void PrintStats(const char *, int k, const double &r2, const double &b2, const double &hq2)
__host__ __device__ ValueType conj(ValueType x)
double norm2(const ColorSpinorField &)
double xmyNormCuda(cudaColorSpinorField &a, cudaColorSpinorField &b)