QUDA  v0.7.0
A library for QCD on GPUs
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
copy_gauge_double.cu
Go to the documentation of this file.
1 #include "copy_gauge_inc.cu"
2 namespace quda {
3 
4  // this is the function that is actually called, from here on down we instantiate all required templates
6  void *Out, void *In, void **ghostOut, void **ghostIn, int type) {
7  if (out.Precision() == QUDA_DOUBLE_PRECISION) {
8  if (in.Precision() == QUDA_DOUBLE_PRECISION) {
9  copyGauge(out, in, location, (double*)Out, (double*)In, (double**)ghostOut, (double**)ghostIn, type);
10  } else if (in.Precision() == QUDA_SINGLE_PRECISION) {
11  copyGauge(out, in, location, (double*)Out, (float*)In, (double**)ghostOut, (float**)ghostIn, type);
12  } else if (in.Precision() == QUDA_HALF_PRECISION) {
13  copyGauge(out, in, location, (double*)Out, (short*)In, (double**)ghostOut, (short**)ghostIn, type);
14  }
15  } else if (out.Precision() == QUDA_SINGLE_PRECISION) {
16  errorQuda("Single Precision for output not supported");
17  } else if (out.Precision() == QUDA_HALF_PRECISION) {
18  errorQuda("Half Precision for output not supported");
19  }
20  }
21 
22 } // namespace quda
void copyGauge(CopyGaugeArg< OutOrder, InOrder > arg)
#define errorQuda(...)
Definition: util_quda.h:73
QudaPrecision Precision() const
const QudaFieldLocation location
Definition: pack_test.cpp:46
cpuColorSpinorField * in
enum QudaFieldLocation_s QudaFieldLocation
cpuColorSpinorField * out
void copyGenericGaugeDoubleOut(GaugeField &out, const GaugeField &in, QudaFieldLocation location, void *Out, void *In, void **ghostOut, void **ghostIn, int type)