21 Eig_Solver(eigParam, profile), ritz_mat(ritz_mat)
36 const double b2 =
norm2(r);
39 printfQuda(
"Warning: initial residual is already zero\n");
48 for (
int k = k0; k < m; ++k)
53 ritz_mat(r, *(Eig_Vec[0]));
58 axpyCuda(-alpha[0],*(Eig_Vec[0]), r);
64 axpyCuda(1.0/beta[0], r, *(Eig_Vec[1]));
70 ritz_mat(r, *(Eig_Vec[k]));
75 axpyCuda(-beta[k-1],*(Eig_Vec[k-1]), r);
77 axpyCuda(-alpha[k],*(Eig_Vec[k]), r);
86 axpyCuda(1.0/beta[k], r, *(Eig_Vec[k+1]));
95 Eig_Solver(eigParam, profile), ritz_mat(ritz_mat)
void operator()(double *alpha, double *beta, cudaColorSpinorField **Eig_Vec, cudaColorSpinorField &r, cudaColorSpinorField &Apsi, int k0, int m)
__host__ __device__ ValueType sqrt(ValueType x)
ImpRstLanczos(RitzMat &ritz_mat, QudaEigParam &eigParam, TimeProfile &profile)
void GrandSchm_test(cudaColorSpinorField &psi, cudaColorSpinorField **Eig_Vec, int Nvec, double *delta)
void axpyCuda(const double &a, cudaColorSpinorField &x, cudaColorSpinorField &y)
Lanczos(RitzMat &ritz_mat, QudaEigParam &eigParam, TimeProfile &profile)
double reDotProductCuda(cudaColorSpinorField &a, cudaColorSpinorField &b)
void Stop(QudaProfileType idx)
void zeroCuda(cudaColorSpinorField &a)
void Start(QudaProfileType idx)
void operator()(double *alpha, double *beta, cudaColorSpinorField **Eig_Vec, cudaColorSpinorField &r, cudaColorSpinorField &Apsi, int k0, int m)
double norm2(const ColorSpinorField &)