mirror of
https://github.com/paboyle/Grid.git
synced 2025-06-19 08:17:05 +01:00
Sizable improvement in multigrid for unsquared.
6000 matmuls CG unprec 2000 matmuls CG prec (4000 eo muls) 1050 matmuls PGCR on 16^3 x 32 x 8 m=.01 Substantial effort on timing and logging infrastructure
This commit is contained in:
@ -82,7 +82,7 @@ int main (int argc, char ** argv)
|
||||
////////////////////////////////////////
|
||||
// sqrt and inverse sqrt
|
||||
////////////////////////////////////////
|
||||
std::cout << "Generating degree "<<degree<<" for x^(1/2)"<<std::endl;
|
||||
std::cout<<GridLogMessage << "Generating degree "<<degree<<" for x^(1/2)"<<std::endl;
|
||||
remez.generateApprox(degree,1,2);
|
||||
|
||||
MultiShiftFunction Sqrt(remez,1.0e-6,false);
|
||||
@ -120,19 +120,19 @@ int main (int argc, char ** argv)
|
||||
|
||||
error = reference - combined;
|
||||
|
||||
std::cout << " Reference "<<norm2(reference)<<std::endl;
|
||||
std::cout << " combined "<<norm2(combined) <<std::endl;
|
||||
std::cout << " error "<<norm2(error) <<std::endl;
|
||||
std::cout<<GridLogMessage << " Reference "<<norm2(reference)<<std::endl;
|
||||
std::cout<<GridLogMessage << " combined "<<norm2(combined) <<std::endl;
|
||||
std::cout<<GridLogMessage << " error "<<norm2(error) <<std::endl;
|
||||
|
||||
MSCG(Diagonal,src,summed);
|
||||
error = summed - combined;
|
||||
std::cout << " summed-combined "<<norm2(error) <<std::endl;
|
||||
std::cout<<GridLogMessage << " summed-combined "<<norm2(error) <<std::endl;
|
||||
|
||||
|
||||
src=1.0;
|
||||
Chebyshev<LatticeFermion> Cheby(0.1,40.0,200,InverseApproximation);
|
||||
|
||||
std::cout<<"Chebuy approx vector "<<std::endl;
|
||||
std::cout<<GridLogMessage<<"Chebuy approx vector "<<std::endl;
|
||||
Cheby(Diagonal,src,combined);
|
||||
std::ofstream of("cheby");
|
||||
Cheby.csv(of);
|
||||
@ -140,10 +140,10 @@ int main (int argc, char ** argv)
|
||||
Diagonal.ApplyInverse(src,reference);
|
||||
error = reference - combined;
|
||||
|
||||
std::cout << "Chebyshev inverse test "<<std::endl;
|
||||
std::cout << " Reference "<<norm2(reference)<<std::endl;
|
||||
std::cout << " combined "<<norm2(combined) <<std::endl;
|
||||
std::cout << " error "<<norm2(error) <<std::endl;
|
||||
std::cout<<GridLogMessage << "Chebyshev inverse test "<<std::endl;
|
||||
std::cout<<GridLogMessage << " Reference "<<norm2(reference)<<std::endl;
|
||||
std::cout<<GridLogMessage << " combined "<<norm2(combined) <<std::endl;
|
||||
std::cout<<GridLogMessage << " error "<<norm2(error) <<std::endl;
|
||||
|
||||
Grid_finalize();
|
||||
}
|
||||
|
Reference in New Issue
Block a user