8 #ifndef __CLOOPTOOLS_H__
9 #define __CLOOPTOOLS_H__
76 #define Cval(id, pos) Ccache(pos + id)
77 #define Dval(id, pos) Dcache(pos + id)
83 static inline double_complex A0(
const double m)
88 return double_complex(result.r, result.i);
92 static inline double_complex B0(
const double p,
93 const double m1,
const double m2)
97 B0(&result, &p, &m1, &m2);
98 return double_complex(result.r, result.i);
102 static inline double_complex DB0(
const double p,
103 const double m1,
const double m2)
107 DB0(&result, &p, &m1, &m2);
108 return double_complex(result.r, result.i);
112 static inline double_complex B1(
const double p,
113 const double m1,
const double m2)
117 B1(&result, &p, &m1, &m2);
118 return double_complex(result.r, result.i);
122 static inline double_complex DB1(
const double p,
123 const double m1,
const double m2)
127 DB1(&result, &p, &m1, &m2);
128 return double_complex(result.r, result.i);
132 static inline double_complex B00(
const double p,
133 const double m1,
const double m2)
137 B00(&result, &p, &m1, &m2);
138 return double_complex(result.r, result.i);
142 static inline double_complex DB00(
const double p,
143 const double m1,
const double m2)
147 DB00(&result, &p, &m1, &m2);
148 return double_complex(result.r, result.i);
152 static inline double_complex B11(
const double p,
153 const double m1,
const double m2)
157 B11(&result, &p, &m1, &m2);
158 return double_complex(result.r, result.i);
162 static inline double_complex DB11(
const double p,
163 const double m1,
const double m2)
167 DB11(&result, &p, &m1, &m2);
168 return double_complex(result.r, result.i);
172 static inline double_complex C0(
const double p1,
173 const double p2,
const double p1p2,
174 const double m1,
const double m2,
const double m3)
178 C0(&result, &p1, &p2, &p1p2, &m1, &m2, &m3);
179 return double_complex(result.r, result.i);
183 static inline double_complex C0i(
const int id,
const double p1,
184 const double p2,
const double p1p2,
185 const double m1,
const double m2,
const double m3)
189 C0i(&result, &
id, &p1, &p2, &p1p2, &m1, &m2, &m3);
190 return double_complex(result.r, result.i);
194 static inline int Cget(
const double p1,
195 const double p2,
const double p1p2,
196 const double m1,
const double m2,
const double m3)
198 return Cget(&p1, &p2, &p1p2, &m1, &m2, &m3);
202 static inline double_complex D0(
const double p1,
203 const double p2,
const double p3,
const double p4,
204 const double p1p2,
const double p2p3,
205 const double m1,
const double m2,
const double m3,
const double m4)
209 D0(&result, &p1, &p2, &p3, &p4, &p1p2, &p2p3, &m1, &m2, &m3, &m4);
210 return double_complex(result.r, result.i);
214 static inline double_complex D0i(
const int id,
215 const double p1,
const double p2,
const double p3,
const double p4,
216 const double p1p2,
const double p2p3,
217 const double m1,
const double m2,
const double m3,
const double m4)
221 D0i(&result, &
id, &p1, &p2, &p3, &p4, &p1p2, &p2p3, &m1, &m2, &m3, &m4);
222 return double_complex(result.r, result.i);
226 static inline int Dget(
const double p1,
227 const double p2,
const double p3,
const double p4,
228 const double p1p2,
const double p2p3,
229 const double m1,
const double m2,
const double m3,
const double m4)
231 return Dget(&p1, &p2, &p3, &p4, &p1p2, &p2p3, &m1, &m2, &m3, &m4);
235 static inline void setmudim(
const double newmudim)
240 static inline void setdelta(
const double newdelta)
245 static inline void setlambda(
const double newlambda)
247 setlambda(&newlambda);
250 static inline void setcachelast(
const dcomplex *buffer,
const int offset)
252 setcachelast(buffer, &offset);