28#ifndef G5_HERMITIAN_LINOP
29#define G5_HERMITIAN_LINOP
36template<
class Matrix,
class Field>
41 void Op (
const Field &in, Field &out){
44 void AdjOp (
const Field &in, Field &out){
47 void OpDiag (
const Field &in, Field &out) {
52 void OpDir (
const Field &in, Field &out,
int dir,
int disp) {
54 _Mat.Mdir(in,tmp,dir,disp);
57 void OpDirAll(
const Field &in, std::vector<Field> &out) {
60 for(
int p=0;p<out.size();p++) {
77 void HermOp(
const Field &in, Field &out){
85template<
class Matrix,
class Field>
91 void Op (
const Field &in, Field &out){
94 void AdjOp (
const Field &in, Field &out){
97 void OpDiag (
const Field &in, Field &out) {
102 void OpDir (
const Field &in, Field &out,
int dir,
int disp) {
103 Field tmp(in.Grid());
104 _Mat.Mdir(in,tmp,dir,disp);
107 void OpDirAll(
const Field &in, std::vector<Field> &out) {
108 _Mat.MdirAll(in,out);
109 for(
int p=0;p<out.size();p++) {
125 void HermOp(
const Field &in, Field &out){
126 Field tmp(in.Grid());
Lattice< vobj > real(const Lattice< vobj > &lhs)
ComplexD innerProduct(const Lattice< vobj > &left, const Lattice< vobj > &right)
void G5R5(Lattice< vobj > &z, const Lattice< vobj > &x)
#define NAMESPACE_BEGIN(A)
std::complex< RealD > ComplexD
void OpDiag(const Field &in, Field &out)
void AdjOp(const Field &in, Field &out)
void Op(const Field &in, Field &out)
void OpDir(const Field &in, Field &out, int dir, int disp)
Gamma5HermitianLinearOperator(Matrix &Mat)
void HermOp(const Field &in, Field &out)
void OpDirAll(const Field &in, std::vector< Field > &out)
void HermOpAndNorm(const Field &in, Field &out, RealD &n1, RealD &n2)
void AdjOp(const Field &in, Field &out)
Gamma5R5HermitianLinearOperator(Matrix &Mat)
void HermOpAndNorm(const Field &in, Field &out, RealD &n1, RealD &n2)
void Op(const Field &in, Field &out)
void OpDir(const Field &in, Field &out, int dir, int disp)
void OpDiag(const Field &in, Field &out)
void OpDirAll(const Field &in, std::vector< Field > &out)
void HermOp(const Field &in, Field &out)