22#define _QUDA_MILC_INTERFACE_H
33
44#include <enum_quda.h>
5+ #include <quda.h>
56
67#ifdef __cplusplus
78extern "C" {
@@ -53,7 +54,7 @@ extern "C" {
5354 void qudaHisqParamsInit (QudaHisqParams_t hisq_params );
5455
5556
56- void qudaLoadFatLink (int precision , QudaFatLinkArgs_t fatlink_args , const double act_path_coeff [6 ], void * inlink , void * outlink );
57+ void qudaLoadKSLink (int precision , QudaFatLinkArgs_t fatlink_args , const double act_path_coeff [6 ], void * inlink , void * fatlink , void * longlink );
5758
5859
5960 void qudaLoadUnitarizedLink (int precision , QudaFatLinkArgs_t fatlink_args , const double path_coeff [6 ], void * inlink , void * fatlink , void * ulink );
@@ -67,6 +68,7 @@ extern "C" {
6768 double target_relresid ,
6869 const void * const milc_fatlink ,
6970 const void * const milc_longlink ,
71+ const double tadpole ,
7072 void * source ,
7173 void * solution ,
7274 double * const final_resid ,
@@ -103,6 +105,7 @@ extern "C" {
103105 const double * target_relative_residual ,
104106 const void * const milc_fatlink ,
105107 const void * const milc_longlink ,
108+ const double tadpole ,
106109 void * source ,
107110 void * * solutionArray ,
108111 double * const final_residual ,
@@ -128,6 +131,22 @@ extern "C" {
128131 );
129132
130133
134+ void qudaCloverMultishiftInvert (int external_precision ,
135+ int quda_precision ,
136+ int num_offsets ,
137+ double * const offset ,
138+ double kappa ,
139+ QudaInvertArgs_t inv_args ,
140+ const double * target_residual ,
141+ const void * milc_link ,
142+ void * milc_clover ,
143+ void * milc_clover_inv ,
144+ void * source ,
145+ void * * solutionArray ,
146+ double * const final_residual ,
147+ int * num_iters
148+ );
149+
131150 void qudaHisqForce (
132151 int precision ,
133152 const double level2_coeff [6 ],
@@ -141,6 +160,15 @@ extern "C" {
141160 void * const milc_momentum );
142161
143162
163+ void qudaAsqtadForce (
164+ int precision ,
165+ const double act_path_coeff [6 ],
166+ const void * const one_link_src [4 ],
167+ const void * const naik_src [4 ],
168+ const void * const link ,
169+ void * const milc_momentum );
170+
171+
144172 void qudaGaugeForce (int precision ,
145173 int num_loop_types ,
146174 double milc_loop_coeff [3 ],
@@ -157,7 +185,26 @@ extern "C" {
157185 void * const one_link_src [4 ],
158186 void * const three_link_src [4 ]);
159187
188+ void qudaComputeOprod (int precision ,
189+ int num_terms ,
190+ double * * coeff ,
191+ void * * quark_field ,
192+ void * oprod [2 ]);
193+
194+
195+ void qudaUpdateU (int precision ,
196+ double eps ,
197+ void * momentum ,
198+ void * link );
199+
200+
201+ void qudaCloverDerivative (void * out , void * gauge , void * oprod ,
202+ int mu , int nu , int precision , int parity , int conjugate );
203+
204+
205+ void * qudaCreateExtendedGaugeField (void * gauge , int geometry , int precision );
160206
207+ void qudaDestroyGaugeField (void * gauge );
161208
162209#ifdef __cplusplus
163210}
0 commit comments