12 typedef multi1d<LatticeFermion>
MLF;
13 typedef multi1d<LatticeColorMatrix>
LCM;
26 for(iter=1; ; iter <<= 1)
28 QDPIO::cout <<
"Applying D " << iter <<
" times" << std::endl;
31 for(
int i=iter;
i-- > 0; )
35 mydt=double(myt2-myt1)/double(CLOCKS_PER_SEC);
36 QDPInternal::globalSum(mydt);
37 mydt /= Layout::numNodes();
44 for(
int i=iter;
i-- > 0; )
48 mydt = (double)(myt2-myt1)/((double)(CLOCKS_PER_SEC));
49 mydt *= 1.0e6/((double)(iter*(Layout::sitesOnNode()/2)));
50 QDPInternal::globalSum(mydt);
51 mydt /= Layout::numNodes();
56 int main(
int argc,
char **argv)
62 const int foo[] = {4,4,4,8};
63 multi1d<int> nrow(
Nd);
65 Layout::setLattSize(nrow);
71 multi1d<LatticeColorMatrix>
u(
Nd);
72 for(
int m=0;
m <
u.size(); ++
m)
76 QDPIO::cout <<
"Constructing DWDslash" << std::endl;
83 Real WilsonMass = 1.5;
89 p.OverMass = WilsonMass;
100 QDPIO::cout <<
"Done" << std::endl;
103 for(
int n=0;
n < S_pdwf.
size(); ++
n)
109 QDPIO::cout <<
"Applying D" << std::endl;
110 QDPIO::cout <<
" isign = " <<
isign << std::endl;
117 int Ndiag = 6*
N5*Nc*Ns;
118 int NdiagInv = (10*
N5-8)*Nc*Ns;
119 int Neo = 6*
N5*Nc*Ns +
N5*(1320+24);
120 int Nflops = 2*Ndiag + 2*Neo +
N5*24;
124 QDPIO::cout <<
"EvenEvenInv: The time per lattice point is "<< mydt <<
" micro sec"
125 <<
" (" << ((double)(NdiagInv)/mydt) <<
") Mflops " << std::endl;
128 QDPIO::cout <<
"EvenEven: The time per lattice point is "<< mydt <<
" micro sec"
129 <<
" (" << ((double)(Ndiag)/mydt) <<
") Mflops " << std::endl;
133 QDPIO::cout <<
"OddOdd: The time per lattice point is "<< mydt <<
" micro sec"
134 <<
" (" << ((double)(Ndiag)/mydt) <<
") Mflops " << std::endl;
138 QDPIO::cout <<
"EvenOdd: The time per lattice point is "<< mydt <<
" micro sec"
139 <<
" (" << ((double)(Neo)/mydt) <<
") Mflops " << std::endl;
142 QDPIO::cout <<
"Odd-Even: The time per lattice point is "<< mydt <<
" micro sec"
143 <<
" (" << ((double)(Neo)/mydt) <<
") Mflops " << std::endl;
147 QDPIO::cout <<
"Total: The time per lattice point is "<< mydt <<
" micro sec"
148 <<
" (" << ((double)(Nflops)/mydt) <<
") Mflops " << std::endl;
Primary include file for CHROMA in application codes.
virtual EvenOddPrecDWLikeLinOpBaseArray< T, P, Q > * linOp(Handle< FermState< T, P, Q > > state) const
Override to produce a DWF-link even-odd prec. linear operator for this action.
Even-odd preconditioned linear operator.
4D style even-odd preconditioned domain-wall fermion action
int size() const
Length of DW flavor index/space.
virtual FermState< T, P, Q > * createState(const Q &q) const
Given links (coordinates Q) create the state needed for the linear operators.
Class for counted reference semantics.
Concrete class for all fermionic actions with trivial boundary conditions.
Asqtad Staggered-Dirac operator.
static multi1d< LatticeColorMatrix > u
void initialize(int *argc, char ***argv)
Chroma initialisation routine.
void finalize(void)
Chroma finalization routine.
multi1d< LatticeFermion > chi(Ncb)
multi1d< LatticeColorMatrix > LCM
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
XMLFileWriter & getXMLOutputInstance()
Get xml output instance.
multi1d< LatticeFermion > MLF
multi1d< LatticeFermion > MLF
int main(int argc, char **argv)
double time_func(const EvenOddPrecLinearOperator< MLF, LCM > *p, EO_mem A, MLF &chi, const MLF &psi, enum PlusMinus isign)
void(EvenOddPrecLinearOperator< MLF, LCM >::* EO_mem)(MLF &, const MLF &, enum PlusMinus) const