6 #ifndef __tprec_logdet_linop_h__
7 #define __tprec_logdet_linop_h__
55 template<
typename T,
typename P,
typename Q>
63 const Subset&
subset()
const {
return all;}
88 QDPIO::cerr <<
"derivTime: not implemented" << std::endl;
96 QDPIO::cerr <<
"derivSpace: not implemented" << std::endl;
111 T tmp1,
tmp2,
tmp3; moveToFastMemoryHint(tmp1); moveToFastMemoryHint(
tmp2);
112 P ds_1; moveToFastMemoryHint(ds_1);
141 QDPIO::cerr <<
"unknown sign" << std::endl;
166 QDPIO::cerr <<
"EvenOdd: not implemented" << std::endl;
Base class for all fermion action boundary conditions.
Time preconditioned linear operator.
Time preconditioned linear operator.
virtual void derivTimeLinOp(P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const
Apply the even-even block onto a source std::vector.
virtual void timeLinOp(T &chi, const T &psi, enum PlusMinus isign) const =0
Apply the time block onto a source std::vector.
virtual const FermBC< T, P, Q > & getFermBC() const =0
Return the fermion BC object for this linear operator.
const Subset & subset() const
Defined on the entire lattice.
virtual void deriv(P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const
Apply the derivative of the operator onto a source std::vector.
virtual void timeInvLinOp(T &chi, const T &psi, enum PlusMinus isign) const =0
Apply the inverse of the time block onto a source std::vector.
virtual void derivLogDetTimeLinOp(P &ds_u, enum PlusMinus isign) const
Get the force from the Time Trace Log.
virtual void derivSpaceLinOp(P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const
Apply the space block onto a source std::vector.
virtual void derivUnprecLinOp(P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const
Apply the derivative of the UNPRECONDITIONED operator onto a source std::vector.
int tDir() const =0
The time direction.
virtual void spaceLinOp(T &chi, const T &psi, enum PlusMinus isign) const =0
Apply the the space block onto a source std::vector.
virtual ~TimePrecLogDetLinearOperator()
Virtual destructor to help with cleanup;.
virtual Double logDetTimeLinOp(void) const =0
Get the log det of the even even part.
Asqtad Staggered-Dirac operator.
LinOpSysSolverMGProtoClover::T T
multi1d< LatticeFermion > chi(Ncb)
FloatingPoint< double > Double
multi1d< LatticeColorMatrix > P
Time-preconditioned Linear Operators.