19 Eig_Solver(eigParam, profile), ritz_mat(ritz_mat)
36 const double b2 =
norm2(r);
39 printfQuda(
"Warning: initial residual is already zero\n");
46 axpy(1.0/ff, r, *(Eig_Vec[k0]));
48 for (
int k = k0; k < m; ++k)
58 axpy(-alpha[0],*(Eig_Vec[0]), r);
64 axpy(1.0/beta[0], r, *(Eig_Vec[1]));
75 axpy(-beta[k-1],*(Eig_Vec[k-1]), r);
77 axpy(-alpha[k],*(Eig_Vec[k]), r);
85 zero(*(Eig_Vec[k+1]));
86 axpy(1.0/beta[k], r, *(Eig_Vec[k+1]));
99 ImpRstLanczos::~ImpRstLanczos()
102 void ImpRstLanczos::operator()(
double *alpha,
double *beta, cudaColorSpinorField **Eig_Vec,
103 cudaColorSpinorField &r, cudaColorSpinorField &Apsi,
int k0,
int m)
void operator()(double *alpha, double *beta, cudaColorSpinorField **Eig_Vec, cudaColorSpinorField &r, cudaColorSpinorField &Apsi, int k0, int m)
__host__ __device__ ValueType sqrt(ValueType x)
double reDotProduct(ColorSpinorField &x, ColorSpinorField &y)
double norm2(const CloverField &a, bool inverse=false)
void GrandSchm_test(cudaColorSpinorField &psi, cudaColorSpinorField **Eig_Vec, int Nvec, double *delta)
Lanczos(RitzMat &ritz_mat, QudaEigParam &eigParam, TimeProfile &profile)
__device__ void axpy(real a, const real *x, Link &y)
__device__ __host__ void zero(vector_type< scalar, n > &v)