29 const multi2d<T>& vec,
const int Nvec,
39 if ( Npsi >
psi.size2() || Nvec > vec.size2() ) {
40 QDP_error_exit(
"Npsi and Nvec are out of range in GramSchm. Npsi=%d, Nvec=%d, psi.size2()= %d, vec.size2() = %d", Npsi,Nvec,
psi.size2(), vec.size2());
43 if(
psi.size1() != vec.size1() ) {
44 QDP_error_exit(
"psi and vec have different lengths in 5th Dim. psi.size1() = %d vec.size1() = %d\n",
psi.size1(), vec.size1() );
49 for(
int s = 0;
s < Npsi; ++
s)
51 for(
int i = 0;
i < Nvec; ++
i)
55 for(
int n = 1;
n <
N5;
n++) {
60 for(
int n=0;
n <
N5;
n++) {
61 psi[
s][
n][sub] -= vec[
i][
n] * xp;
90 const multi2d<T>& vec,
97 if ( Nvec > vec.size2() ) {
98 QDP_error_exit(
"Nvec out of range in GramSchm. Nvec=%d vec.size2()=%d\n",
102 if(
psi.size() != vec.size1() ) {
103 QDP_error_exit(
"psi and vec have different lengths in the 5th dimension. psi.size()=%d vec.size1()=%d",
psi.size(), vec.size1());
108 for(
int i = 0;
i < Nvec; ++
i)
111 for(
int n = 0;
n <
N5;
n++) {
115 for(
int n=0;
n <
N5;
n++)
116 psi[
n][sub] -= vec[
i][
n] * xp;
135 template <
typename T>
137 const multi1d<T>& vec,
144 if(
psi.size() != vec.size() ) {
145 QDP_error_exit(
"psi and vec have different lengths in the 5th dimension: psi.size() = %d, vec.size()=%d\n",
psi.size(), vec.size());
152 for(
int i = 1;
i <
N5;
i++) {
156 for(
int i=0;
i <
N5;
i++) {
157 psi[
i][sub] -= vec[
i] * xp;
177 const multi2d<LatticeFermion>& vec,
const int Nvec,
197 const multi2d<LatticeFermion>& vec,
222 const multi2d<LatticeFermion>& vec,
const int Nvec,
243 const multi2d<LatticeFermion>& vec,
263 const multi2d<LatticeFermion>& vec,
285 const multi1d<LatticeFermion>& vec,
Gramm-Schmidt orthogonolization.
void GramSchmArray(multi2d< LatticeFermion > &psi, const int Npsi, const multi2d< LatticeFermion > &vec, const int Nvec, const Subset &sub)
Gramm-Schmidt orthogonolization.
void GramSchmArray_T(multi2d< T > &psi, const int Npsi, const multi2d< T > &vec, const int Nvec, const Subset &sub)
Gramm-Schmidt orthogonolization.
BinaryReturn< C1, C2, FnInnerProduct >::Type_t innerProduct(const QDPSubType< T1, C1 > &s1, const QDPType< T2, C2 > &s2)
Asqtad Staggered-Dirac operator.
QDP_error_exit("too many BiCG iterations", n_count, rsd_sq, cp, c, re_rvr, im_rvr, re_a, im_a, re_b, im_b)
multi1d< LatticeFermion > s(Ncb)