24 printfQuda(
"prec sloppy_prec link_recon sloppy_link_recon S_dimension T_dimension Ls_dimension\n");
39 printfQuda(
" - Operator: MdagM. Will compute SVD of M\n");
40 printfQuda(
" - ***********************************************************\n");
41 printfQuda(
" - **** Overriding any previous choices of operator type. ****\n");
42 printfQuda(
" - **** SVD demands normal operator, will use MdagM ****\n");
43 printfQuda(
" - ***********************************************************\n");
52 printfQuda(
" - Chebyshev polynomial maximum will be computed\n");
62 int main(
int argc,
char **argv)
68 app->parse(argc, argv);
69 }
catch (
const CLI::ParseError &e) {
131 void *clover = 0, *clover_inv = 0;
143 void **host_evecs = (
void **)malloc(
eig_n_conv *
sizeof(
void *));
147 double _Complex *host_evals = (
double _Complex *)malloc(eig_param.
n_ev *
sizeof(
double _Complex));
154 gettimeofday(&
start, NULL);
156 errorQuda(
"ARPACK check only available in double precision");
160 gettimeofday(&
end, NULL);
161 double time = ((
end.tv_sec -
start.tv_sec) * 1000000u +
end.tv_usec -
start.tv_usec) / 1.e6;
167 for (
int i = 0; i <
eig_n_conv; i++) free(host_evecs[i]);
172 for (
int dir = 0; dir < 4; dir++) free(gauge[dir]);
176 if (clover) free(clover);
177 if (clover_inv) free(clover_inv);
QudaReconstructType link_recon_sloppy
std::shared_ptr< QUDAApp > make_app(std::string app_description, std::string app_name)
QudaReconstructType link_recon
QudaDslashType dslash_type
void add_eigen_option_group(std::shared_ptr< QUDAApp > quda_app)
QudaEigSpectrumType eig_spectrum
bool eig_require_convergence
std::array< int, 4 > gridsize_from_cmdline
QudaPrecision prec_sloppy
QudaGaugeParam gauge_param
int main(int argc, char **argv)
@ QUDA_TWISTED_CLOVER_DSLASH
@ QUDA_CLOVER_WILSON_DSLASH
@ QUDA_TWISTED_MASS_DSLASH
@ QUDA_DOMAIN_WALL_DSLASH
@ QUDA_DOMAIN_WALL_4D_DSLASH
@ QUDA_DEGRAND_ROSSI_GAMMA_BASIS
@ QUDA_EIG_BLK_TR_LANCZOS
void constructHostCloverField(void *clover, void *clover_inv, QudaInvertParam &inv_param)
size_t host_gauge_data_type_size
int dimPartitioned(int dim)
void initComms(int argc, char **argv, std::array< int, 4 > &commDims)
size_t host_spinor_data_type_size
size_t host_clover_data_type_size
void dw_setDims(int *X, const int L5)
void constructHostGaugeField(void **gauge, QudaGaugeParam &gauge_param, int argc, char **argv)
void setWilsonGaugeParam(QudaGaugeParam &gauge_param)
void setEigParam(QudaEigParam &eig_param)
void setInvertParam(QudaInvertParam &invertParam, QudaInvertArgs_t &inv_args, int external_precision, int quda_precision, double kappa, double reliable_delta)
const char * get_prec_str(QudaPrecision prec)
const char * get_eig_spectrum_str(QudaEigSpectrumType type)
const char * get_eig_type_str(QudaEigType type)
const char * get_recon_str(QudaReconstructType recon)
void start()
Start profiling.
void setTransferGPU(bool)
Main header file for the QUDA library.
QudaGaugeParam newQudaGaugeParam(void)
void eigensolveQuda(void **h_evecs, double_complex *h_evals, QudaEigParam *param)
void initQuda(int device)
void loadGaugeQuda(void *h_gauge, QudaGaugeParam *param)
void loadCloverQuda(void *h_clover, void *h_clovinv, QudaInvertParam *inv_param)
void freeCloverQuda(void)
QudaInvertParam newQudaInvertParam(void)
QudaEigParam newQudaEigParam(void)
QudaInvertParam * invert_param
QudaSolutionType solution_type
QudaGammaBasis gamma_basis