29#ifndef QCD_EVEN_ODD_SCHUR_DIFFERENTIABLE_H
30#define QCD_EVEN_ODD_SCHUR_DIFFERENTIABLE_H
52 void MpcDeriv(GaugeField &Force,
const FermionField &
U,
const FermionField &V) {
57 FermionField tmp1(fcbgrid);
58 FermionField tmp2(fcbgrid);
64 assert(
U.Checkerboard()==
Odd);
65 assert(V.Checkerboard()==
U.Checkerboard());
72 GaugeField ForceO(forcecb);
73 GaugeField ForceE(forcecb);
78 this->
_Mat.Meooe (V,tmp1);
79 this->
_Mat.MooeeInv(tmp1,tmp2);
82 this->
_Mat.MeooeDag (
U,tmp1);
83 this->
_Mat.MooeeInvDag(tmp1,tmp2);
86 assert(ForceE.Checkerboard()==
Even);
87 assert(ForceO.Checkerboard()==
Odd);
97 void MpcDagDeriv(GaugeField &Force,
const FermionField &
U,
const FermionField &V) {
102 FermionField tmp1(fcbgrid);
103 FermionField tmp2(fcbgrid);
109 assert(V.Checkerboard()==
Odd);
110 assert(V.Checkerboard()==V.Checkerboard());
116 GaugeField ForceO(forcecb);
117 GaugeField ForceE(forcecb);
121 this->
_Mat.MeooeDag (V,tmp1);
122 this->
_Mat.MooeeInvDag(tmp1,tmp2);
126 this->
_Mat.Meooe (
U,tmp1);
127 this->
_Mat.MooeeInv(tmp1,tmp2);
130 assert(ForceE.Checkerboard()==
Even);
131 assert(ForceO.Checkerboard()==
Odd);
void setCheckerboard(Lattice< vobj > &full, const Lattice< vobj > &half)
#define NAMESPACE_BEGIN(A)
static constexpr int DaggerYes
static constexpr int DaggerNo
static INTERNAL_PRECISION U
SchurDiagMooeeOperator(FermionOperator< Impl > &Mat)
FermionOperator< Impl > & _Mat
void MpcDagDeriv(GaugeField &Force, const FermionField &U, const FermionField &V)
SchurDifferentiableOperator(Matrix &Mat)
FermionOperator< Impl > Matrix
void MpcDeriv(GaugeField &Force, const FermionField &U, const FermionField &V)