30 std::ostream&
operator<<(std::ostream& output,
const CloverFieldParam&
param);
78 void *evenNorm, *oddNorm;
80 void *evenInv, *oddInv;
81 void *evenInvNorm, *oddInvNorm;
86 #ifdef USE_TEXTURE_OBJECTS
87 cudaTextureObject_t evenTex;
88 cudaTextureObject_t evenNormTex;
89 cudaTextureObject_t oddTex;
90 cudaTextureObject_t oddNormTex;
91 cudaTextureObject_t evenInvTex;
92 cudaTextureObject_t evenInvNormTex;
93 cudaTextureObject_t oddInvTex;
94 cudaTextureObject_t oddInvNormTex;
95 void createTexObject(cudaTextureObject_t &tex, cudaTextureObject_t &texNorm,
void *field,
void *
norm);
96 void destroyTexObject();
105 #ifdef USE_TEXTURE_OBJECTS
106 const cudaTextureObject_t& EvenTex()
const {
return evenTex; }
107 const cudaTextureObject_t& EvenNormTex()
const {
return evenNormTex; }
108 const cudaTextureObject_t& OddTex()
const {
return oddTex; }
109 const cudaTextureObject_t& OddNormTex()
const {
return oddNormTex; }
110 const cudaTextureObject_t& EvenInvTex()
const {
return evenInvTex; }
111 const cudaTextureObject_t& EvenInvNormTex()
const {
return evenInvNormTex; }
112 const cudaTextureObject_t& OddInvTex()
const {
return oddInvTex; }
113 const cudaTextureObject_t& OddInvNormTex()
const {
return oddInvNormTex; }
161 #ifdef USE_TEXTURE_OBJECTS
162 const cudaTextureObject_t &evenTex;
163 const cudaTextureObject_t &evenNormTex;
164 const cudaTextureObject_t &oddTex;
165 const cudaTextureObject_t &oddNormTex;
166 const cudaTextureObject_t& EvenTex()
const {
return evenTex; }
167 const cudaTextureObject_t& EvenNormTex()
const {
return evenNormTex; }
168 const cudaTextureObject_t& OddTex()
const {
return oddTex; }
169 const cudaTextureObject_t& OddNormTex()
const {
return oddNormTex; }
174 #ifdef USE_TEXTURE_OBJECTS
175 , evenTex(inverse ? clover.evenInvTex : clover.evenTex)
176 , evenNormTex(inverse ? clover.evenInvNormTex : clover.evenNormTex)
177 , oddTex(inverse ? clover.oddInvTex : clover.oddTex)
178 , oddNormTex(inverse ? clover.oddInvNormTex : clover.oddNormTex)
182 even = clover.evenInv;
214 void *Out=0,
void *In=0,
void *outNorm=0,
void *inNorm=0);
232 #endif // _CLOVER_QUDA_H
QudaCloverFieldOrder order
cudaCloverField(const CloverFieldParam ¶m)
enum QudaPrecision_s QudaPrecision
void * V(bool inverse=false)
void saveCPUField(cpuCloverField &cpu)
FullClover(const cudaCloverField &clover, bool inverse=false)
void loadCPUField(const cpuCloverField &cpu)
__global__ void const RealA *const const RealA *const const RealA *const const RealB *const const RealB *const int int mu
virtual ~cpuCloverField()
QudaCloverFieldOrder order
CloverField(const CloverFieldParam ¶m)
void cloverDerivative(cudaGaugeField &out, cudaGaugeField &gauge, cudaGaugeField &oprod, int mu, int nu, double coeff, QudaParity parity, int conjugate)
std::ostream & operator<<(std::ostream &output, const CloverFieldParam ¶m)
enum QudaCloverFieldOrder_s QudaCloverFieldOrder
void cloverInvert(CloverField &clover, bool computeTraceLog, QudaFieldLocation location)
const QudaFieldLocation location
QudaCloverFieldOrder Order() const
void setPrecision(QudaPrecision precision)
__constant__ double coeff
enum QudaParity_s QudaParity
void computeCloverSigmaTrace(GaugeField &gauge, const CloverField &clover, int dir1, int dir2, QudaFieldLocation location)
cpuCloverField(const CloverFieldParam ¶m)
void copy(const CloverField &src, bool inverse=true)
const void * V(bool inverse=false) const
enum QudaFieldLocation_s QudaFieldLocation
cpuColorSpinorField * out
void * Norm(bool inverse=false)
virtual ~cudaCloverField()
enum QudaFieldCreate_s QudaFieldCreate
void computeClover(CloverField &clover, const GaugeField &gauge, double coeff, QudaFieldLocation location)
const void * Norm(bool inverse=false) const
void copyGenericClover(CloverField &out, const CloverField &in, bool inverse, QudaFieldLocation location, void *Out=0, void *In=0, void *outNorm=0, void *inNorm=0)