//QPropWS.C single precision contructed from QPropW class #include #include #include #include CPS_START_NAMESPACE //constructor from QPropW QPropWS::QPropWS(QPropW& rhs, bool rand) { char *fname = "QPropWS(const QPropW &)"; cname = "QPropWS"; rsrc = NULL; int sproplen = GJP.VolNodeSites()*12*12*2; prop = (float *)smalloc(sproplen*sizeof(float)); if(prop==0)ERR.Pointer(cname,fname,"prop"); #pragma omp parallel for for(int i=0;i=GJP.VolNodeSites())ERR.General(cname,"[ ]", "i is out of range!"); wilson_matrix w; Float *p=(Float *)(&w); for(int j=0;j<288;j++)p[j]=prop[j+i*288]; return WilsonMatrix(w); } // DESTRUCTORS QPropWS::~QPropWS() { if(prop!=NULL)sfree(prop); prop=NULL; if(rsrc!=NULL)sfree(rsrc); rsrc=NULL; } CPS_END_NAMESPACE