29#ifndef QCD_PSEUDOFERMION_GENERAL_EVEN_ODD_RATIONAL_RATIO_MIXED_PREC_H
30#define QCD_PSEUDOFERMION_GENERAL_EVEN_ODD_RATIONAL_RATIO_MIXED_PREC_H
41 template<
class ImplD,
class ImplF>
62 msCG(schurOp,in, out);
71 msCG(schurOpD, in, out);
81 std::vector<FermionFieldD> out_elemsD(out_elems.size(),
NumOpD.FermionRedBlackGrid());
83 msCG(schurOpD, in, out_elems, out);
86 virtual void ImportGauge(
const typename ImplD::GaugeField &Ud){
88 typename ImplF::GaugeField Uf(
NumOpF.GaugeGrid());
91 std::cout <<
"Importing "<<
norm2(Ud)<<
" "<<
norm2(Uf)<<
" " <<std::endl;
110 virtual std::string
action_name(){
return "GeneralEvenOddRatioRationalMixedPrecPseudoFermionAction";}
RealD norm2(const Lattice< vobj > &arg)
void precisionChange(Lattice< VobjOut > &out, const Lattice< VobjIn > &in, const precisionChangeWorkspace &workspace)
#define NAMESPACE_BEGIN(A)
virtual std::string action_name()
Report the name of the action.
FermionOperator< ImplD > & NumOpD
virtual void multiShiftInverse(bool numerator, const MultiShiftFunction &approx, const Integer MaxIter, const FermionFieldD &in, FermionFieldD &out)
ImplF::FermionField FermionFieldF
Integer ReliableUpdateFreq
FermionOperator< ImplF > & NumOpF
ImplD::FermionField FermionFieldD
FermionOperator< ImplF > & DenOpF
FermionOperator< ImplD > & DenOpD
GeneralEvenOddRatioRationalMixedPrecPseudoFermionAction(FermionOperator< ImplD > &_NumOpD, FermionOperator< ImplD > &_DenOpD, FermionOperator< ImplF > &_NumOpF, FermionOperator< ImplF > &_DenOpF, const RationalActionParams &p, Integer _ReliableUpdateFreq)
virtual void multiShiftInverse(bool numerator, const MultiShiftFunction &approx, const Integer MaxIter, const FermionFieldD &in, std::vector< FermionFieldD > &out_elems, FermionFieldD &out)
virtual void ImportGauge(const typename ImplD::GaugeField &Ud)
GeneralEvenOddRatioRationalPseudoFermionAction(FermionOperator< ImplD > &_NumOp, FermionOperator< ImplD > &_DenOp, const Params &p)