diff --git a/Hadrons/Modules/MSolver/LocalCoherenceLanczos.cc b/Hadrons/Modules/MSolver/LocalCoherenceLanczos.cc index fa73e5b6..dacc871f 100644 --- a/Hadrons/Modules/MSolver/LocalCoherenceLanczos.cc +++ b/Hadrons/Modules/MSolver/LocalCoherenceLanczos.cc @@ -33,4 +33,7 @@ using namespace MSolver; template class Grid::Hadrons::MSolver::TLocalCoherenceLanczos; template class Grid::Hadrons::MSolver::TLocalCoherenceLanczos; - +#ifdef GRID_DEFAULT_PRECISION_DOUBLE +template class Grid::Hadrons::MSolver::TLocalCoherenceLanczos; +template class Grid::Hadrons::MSolver::TLocalCoherenceLanczos; +#endif diff --git a/Hadrons/Modules/MSolver/LocalCoherenceLanczos.hpp b/Hadrons/Modules/MSolver/LocalCoherenceLanczos.hpp index 7242eaf9..492ff39e 100644 --- a/Hadrons/Modules/MSolver/LocalCoherenceLanczos.hpp +++ b/Hadrons/Modules/MSolver/LocalCoherenceLanczos.hpp @@ -55,17 +55,17 @@ public: bool, multiFile); }; -template +template class TLocalCoherenceLanczos: public Module { public: FERM_TYPE_ALIASES(FImpl,); typedef LocalCoherenceLanczos LCL; - typedef BaseFermionEigenPack BasePack; - typedef CoarseFermionEigenPack CoarsePack; - typedef HADRONS_DEFAULT_SCHUR_OP SchurFMat; + nBasis> LCL; + typedef BaseFermionEigenPack BasePack; + typedef CoarseFermionEigenPack CoarsePack; + typedef HADRONS_DEFAULT_SCHUR_OP SchurFMat; public: // constructor TLocalCoherenceLanczos(const std::string name); @@ -82,27 +82,31 @@ public: MODULE_REGISTER_TMP(LocalCoherenceLanczos, ARG(TLocalCoherenceLanczos), MSolver); MODULE_REGISTER_TMP(ZLocalCoherenceLanczos, ARG(TLocalCoherenceLanczos), MSolver); +#ifdef GRID_DEFAULT_PRECISION_DOUBLE +MODULE_REGISTER_TMP(LocalCoherenceLanczosIo32, ARG(TLocalCoherenceLanczos), MSolver); +MODULE_REGISTER_TMP(ZLocalCoherenceLanczosIo32, ARG(TLocalCoherenceLanczos), MSolver); +#endif /****************************************************************************** * TLocalCoherenceLanczos implementation * ******************************************************************************/ // constructor ///////////////////////////////////////////////////////////////// -template -TLocalCoherenceLanczos::TLocalCoherenceLanczos(const std::string name) +template +TLocalCoherenceLanczos::TLocalCoherenceLanczos(const std::string name) : Module(name) {} // dependencies/products /////////////////////////////////////////////////////// -template -std::vector TLocalCoherenceLanczos::getInput(void) +template +std::vector TLocalCoherenceLanczos::getInput(void) { std::vector in = {par().action}; return in; } -template -std::vector TLocalCoherenceLanczos::getOutput(void) +template +std::vector TLocalCoherenceLanczos::getOutput(void) { std::vector out = {getName()}; @@ -110,8 +114,8 @@ std::vector TLocalCoherenceLanczos::getOutput(void) } // setup /////////////////////////////////////////////////////////////////////// -template -void TLocalCoherenceLanczos::setup(void) +template +void TLocalCoherenceLanczos::setup(void) { LOG(Message) << "Setting up local coherence Lanczos eigensolver for" << " action '" << par().action << "' (" << nBasis @@ -138,8 +142,8 @@ void TLocalCoherenceLanczos::setup(void) } // execution /////////////////////////////////////////////////////////////////// -template -void TLocalCoherenceLanczos::execute(void) +template +void TLocalCoherenceLanczos::execute(void) { auto &finePar = par().fineParams; auto &coarsePar = par().coarseParams;