8 #define gauge_site_size 18
9 #define spinor_site_size 24
10 #define stag_spinor_site_size 6
11 #define clover_site_size 72
12 #define mom_site_size 10
13 #define hw_site_size 12
61 void computeHISQLinksCPU(
void **fatlink,
void **longlink,
void **fatlink_eps,
void **longlink_eps,
void **sitelink,
62 void *qudaGaugeParamPtr,
double **act_path_coeffs,
double eps_naik);
63 template <
typename Float>
97 template <
typename Float>
119 void performanceStats(std::vector<double> &time, std::vector<double> &gflops, std::vector<int> &iter);
121 void initComms(
int argc,
char **argv, std::array<int, 4> &commDims);
122 void initComms(
int argc,
char **argv,
int *
const commDims);
138 const int shift[4],
int parity);
140 int neighborIndex(
int i,
int oddBit,
int dx4,
int dx3,
int dx2,
int dx1);
146 int neighborIndex_mg(
int i,
int oddBit,
int dx4,
int dx3,
int dx2,
int dx1);
195 void exchange_cpu_sitelink(
int *X,
void **sitelink,
void **ghost_sitelink,
void **ghost_sitelink_diag,
198 int optflag,
int geometry);
Class declaration to initialize and hold CURAND RNG states.
QudaSolutionType solution_type
QudaDslashType dslash_type
void mat(void *out, void **link, void *in, int dagger_bit, int mu, QudaPrecision sPrecision, QudaPrecision gPrecision)
cpuColorSpinorField * spinor
QudaGaugeParam gauge_param
QudaInvertParam inv_param
enum QudaPrecision_s QudaPrecision
enum QudaGaugeFieldOrder_s QudaGaugeFieldOrder
enum QudaDslashType_s QudaDslashType
enum QudaSolutionType_s QudaSolutionType
enum QudaReconstructType_s QudaReconstructType
@ QUDA_MATPC_DAG_SOLUTION
@ QUDA_MATPCDAG_MATPC_SOLUTION
double norm_2(void *vector, int len, QudaPrecision precision)
void setQudaStaggeredEigTestParams()
void setStaggeredInvertParam(QudaInvertParam &inv_param)
int compare_floats(void *a, void *b, int len, double epsilon, QudaPrecision precision)
void constructHostCloverField(void *clover, void *clover_inv, QudaInvertParam &inv_param)
size_t host_gauge_data_type_size
int dimPartitioned(int dim)
QudaPrecision & cuda_prec
void applyStaggeredScaling(Float **res, QudaGaugeParam *param, int type)
void initComms(int argc, char **argv, std::array< int, 4 > &commDims)
size_t host_spinor_data_type_size
QudaPrecision & cuda_prec_sloppy
void setQudaMgSolveTypes()
void constructStaggeredHostGhostGaugeField(quda::GaugeField *cpuFat, quda::GaugeField *cpuLong, void *milc_fatlink, void *milc_longlink, QudaGaugeParam &gauge_param)
void ax(double a, void *x, int len, QudaPrecision precision)
void applyGaugeFieldScaling(Float **gauge, int Vh, QudaGaugeParam *param)
void createMomCPU(void *mom, QudaPrecision precision)
void printGaugeElement(void *gauge, int X, QudaPrecision precision)
void constructUnitGaugeField(Float **res, QudaGaugeParam *param)
void constructRandomGaugeField(Float **res, QudaGaugeParam *param, QudaDslashType dslash_type=QUDA_WILSON_DSLASH)
void setWilsonGaugeParam(QudaGaugeParam &gauge_param)
int strong_check_link(void **linkA, const char *msgA, void **linkB, const char *msgB, int len, QudaPrecision prec)
void constructWilsonTestSpinorParam(quda::ColorSpinorParam *csParam, const QudaInvertParam *inv_param, const QudaGaugeParam *gauge_param)
int neighborIndexFullLattice(int i, int dx4, int dx3, int dx2, int dx1)
void constructStaggeredHostDeviceGaugeField(void **qdp_inlink, void **qdp_longlink_cpu, void **qdp_longlink_gpu, void **qdp_fatlink_cpu, void **qdp_fatlink_gpu, QudaGaugeParam &gauge_param, int argc, char **argv, bool &gauge_loaded)
int x4_from_full_index(int i)
void constructStaggeredTestSpinorParam(quda::ColorSpinorParam *csParam, const QudaInvertParam *inv_param, const QudaGaugeParam *gauge_param)
void performanceStats(std::vector< double > &time, std::vector< double > &gflops, std::vector< int > &iter)
QudaPrecision & cuda_prec_eigensolver
void setQudaDefaultMgTestParams()
int process_command_line_option(int argc, char **argv, int *idx)
int fullLatticeIndex_5d(int i, int oddBit)
void setMultigridInvertParam(QudaInvertParam &inv_param)
void reorderQDPtoMILC(void *milc_out, void **qdp_in, int V, int siteSize, QudaPrecision out_precision, QudaPrecision in_precision)
void setEigParam(QudaEigParam &eig_param)
void mxpy(void *x, void *y, int len, QudaPrecision precision)
int fullLatticeIndex_4d(int i, int oddBit)
size_t host_clover_data_type_size
QudaPrecision & cuda_prec_precondition
int strong_check_mom(void *momA, void *momB, int len, QudaPrecision prec)
int fullLatticeIndex(int i, int oddBit)
void constructFatLongGaugeField(void **fatlink, void **longlink, int type, QudaPrecision precision, QudaGaugeParam *, QudaDslashType dslash_type)
int neighborIndexFullLattice_mg(int i, int dx4, int dx3, int dx2, int dx1)
int getReconstructNibble(QudaReconstructType recon)
void constructQudaCloverField(void *clover, double norm, double diag, QudaPrecision precision)
void createSiteLinkCPU(void **link, QudaPrecision precision, int phase)
void setInvertParam(QudaInvertParam &inv_param)
void computeLongLinkCPU(void **longlink, void **sitelink, QudaPrecision prec, void *act_path_coeff)
void cxpay(void *x, double _Complex a, void *y, int len, QudaPrecision precision)
QudaPrecision & cuda_prec_refinement_sloppy
int process_options(int argc, char **argv)
void setQudaStaggeredInvTestParams()
void exchange_cpu_sitelink_ex(int *X, int *R, void **sitelink, QudaGaugeFieldOrder cpu_order, QudaPrecision gPrecision, int optflag, int geometry)
void dw_setDims(int *X, const int L5)
void setStaggeredGaugeParam(QudaGaugeParam &gauge_param)
int lex_rank_from_coords_x(const int *coords, void *fdata)
void printSpinorElement(void *spinor, int X, QudaPrecision precision)
void su3_construct(void *mat, QudaReconstructType reconstruct, QudaPrecision precision)
bool isPCSolution(QudaSolutionType solution_type)
void constructRandomSpinorSource(void *v, int nSpin, int nColor, QudaPrecision precision, QudaSolutionType sol_type, const int *const x, quda::RNG &rng)
void computeHISQLinksCPU(void **fatlink, void **longlink, void **fatlink_eps, void **longlink_eps, void **sitelink, void *qudaGaugeParamPtr, double **act_path_coeffs, double eps_naik)
void xpay(void *x, double a, void *y, int len, QudaPrecision precision)
void applyGaugeFieldScaling_long(Float **gauge, int Vh, QudaGaugeParam *param, QudaDslashType dslash_type)
void setStaggeredMGInvertParam(QudaInvertParam &inv_param)
void setContractInvertParam(QudaInvertParam &inv_param)
void cpu_axy(QudaPrecision prec, double a, void *x, void *y, int size)
void constructHostGaugeField(void **gauge, QudaGaugeParam &gauge_param, int argc, char **argv)
void setMultigridEigParam(QudaEigParam &eig_param, int level)
void coordinate_from_shrinked_index(int coordinate[4], int shrinked_index, const int shrinked_dim[4], const int shift[4], int parity)
void constructCloverField(Float *res, double norm, double diag)
double stopwatchReadSeconds()
double mom_action(void *mom, QudaPrecision prec, int len)
Host reference implementation of the momentum action contribution.
void cpu_xpy(QudaPrecision prec, void *x, void *y, int size)
void createHwCPU(void *hw, QudaPrecision precision)
void axpy(double a, void *x, void *y, int len, QudaPrecision precision)
void setDeflatedInvertParam(QudaInvertParam &inv_param)
void printVector(Float *v)
int neighborIndex(int i, int oddBit, int dx4, int dx3, int dx2, int dx1)
void compare_spinor(void *spinor_cpu, void *spinor_gpu, int len, QudaPrecision precision)
int lex_rank_from_coords_t(const int *coords, void *fdata)
void setMultigridParam(QudaMultigridParam &mg_param)
void exchange_llfat_cleanup(void)
void check_gauge(void **, void **, double epsilon, QudaPrecision precision)
void exchange_llfat_init(QudaPrecision prec)
void constructQudaGaugeField(void **gauge, int type, QudaPrecision precision, QudaGaugeParam *param)
QudaPrecision & cuda_prec_ritz
void constructStaggeredHostGaugeField(void **qdp_inlink, void **qdp_longlink, void **qdp_fatlink, QudaGaugeParam &gauge_param, int argc, char **argv)
int neighborIndex_mg(int i, int oddBit, int dx4, int dx3, int dx2, int dx1)
double getTolerance(QudaPrecision prec)
void exchange_cpu_sitelink(int *X, void **sitelink, void **ghost_sitelink, void **ghost_sitelink_diag, QudaPrecision gPrecision, QudaGaugeParam *param, int optflag)
void su3_reconstruct(void *mat, int dir, int ga_idx, QudaReconstructType reconstruct, QudaPrecision precision, QudaGaugeParam *param)
void loadFatLongGaugeQuda(void *milc_fatlink, void *milc_longlink, QudaGaugeParam &gauge_param)
int index_4d_cb_from_coordinate_4d(const int coordinate[4], const int dim[4])
void setDeflationParam(QudaEigParam &df_param)
void exchange_cpu_staple(int *X, void *staple, void **ghost_staple, QudaPrecision gPrecision)
void get_size_from_env(int *const dims, const char env[])
void setGaugeParam(QudaGaugeParam &gauge_param)
QudaPrecision getPrecision(int i)
int fullLatticeIndex_5d_4dpc(int i, int oddBit)
void reorderMILCtoQDP(void **qdp_out, void *milc_in, int V, int siteSize, QudaPrecision out_precision, QudaPrecision in_precision)
void setStaggeredMultigridParam(QudaMultigridParam &mg_param)
void strong_check(void *spinor, void *spinorGPU, int len, QudaPrecision precision)
__host__ __device__ ValueType norm(const complex< ValueType > &z)
Returns the magnitude of z squared.
FloatingPoint< float > Float
Main header file for the QUDA library.