28#ifndef GRID_LATTICE_TRACE_H
29#define GRID_LATTICE_TRACE_H
57template<
int Index,
class vobj>
64 coalescedWrite(ret_v[ss], traceIndex<Index>(lhs_v(ss)));
69template<
int N,
class Vec>
73 auto lvol = grid->
lSites();
75 typedef typename Vec::scalar_type scalar;
79 Eigen::MatrixXcd EigenU = Eigen::MatrixXcd::Zero(N,N);
86 scalar tmp= Us()()(i,j);
90 ComplexD detD = EigenU.determinant();
91 typename Vec::scalar_type det(detD.real(),detD.imag());
101 auto lvol = grid->
lSites();
107 Eigen::MatrixXcd EigenU = Eigen::MatrixXcd::Zero(N,N);
113 for(
int i=0;i<N;i++){
114 for(
int j=0;j<N;j++){
115 EigenU(i,j) = Us()()(i,j);
117 Eigen::MatrixXcd EigenUinv = EigenU.inverse();
118 for(
int i=0;i<N;i++){
119 for(
int j=0;j<N;j++){
120 Ui()()(i,j) = EigenUinv(i,j);
#define accelerator_for(iterator, num, nsimd,...)
AcceleratorVector< int, MaxDims > Coordinate
void peekLocalSite(sobj &s, const LatticeView< vobj > &l, Coordinate &site)
void pokeLocalSite(const sobj &s, LatticeView< vobj > &l, Coordinate &site)
Lattice< vobj > real(const Lattice< vobj > &lhs)
Lattice< vobj > imag(const Lattice< vobj > &lhs)
Lattice< iScalar< iScalar< iScalar< Vec > > > > Determinant(const Lattice< iScalar< iScalar< iMatrix< Vec, N > > > > &Umu)
Lattice< iScalar< iScalar< iMatrix< vComplexD, N > > > > Inverse(const Lattice< iScalar< iScalar< iMatrix< vComplexD, N > > > > &Umu)
auto TraceIndex(const Lattice< vobj > &lhs) -> Lattice< decltype(traceIndex< Index >(vobj()))>
#define autoView(l_v, l, mode)
#define NAMESPACE_BEGIN(A)
std::complex< RealD > ComplexD
#define thread_for(i, num,...)
void LocalIndexToLocalCoor(int lidx, Coordinate &lcoor)