Loading...
Searching...
No Matches
Go to the documentation of this file.
15#define _declare_vtmp(s) \
16 register suNf_vector vtmp; \
17 register suNf_vector_flt vtmp_flt
19#define _vtmp(s) _Generic((s), suNf_vector: vtmp, suNf_vector_flt: vtmp_flt)
22#define _declare_vtmp(s) auto vtmp = (s)
37#define _suNf_theta_T_multiply(r, u, s) \
40 _suNf_multiply(_vtmp(s), (u), (s)); \
41 _vector_mulc_f((r), eitheta[0], _vtmp(s)); \
45#define _suNf_theta_T_multiply_gpu(r, u, s) \
48 _suNf_multiply(_vtmp(s), (u), (s)); \
49 _vector_mulc_f((r), eitheta_gpu[0], _vtmp(s)); \
62#define _suNf_theta_T_inverse_multiply(r, u, s) \
65 _suNf_inverse_multiply(_vtmp(s), (u), (s)); \
66 _vector_mulc_star_f((r), eitheta[0], _vtmp(s)); \
70#define _suNf_theta_T_inverse_multiply_gpu(r, u, s) \
73 _suNf_inverse_multiply(_vtmp(s), (u), (s)); \
74 _vector_mulc_star_f((r), eitheta_gpu[0], _vtmp(s)); \
87#define _suNf_theta_T_multiply(r, u, s) _suNf_multiply((r), (u), (s))
88#define _suNf_theta_T_multiply_gpu(r, u, s) _suNf_multiply((r), (u), (s))
99#define _suNf_theta_T_inverse_multiply(r, u, s) _suNf_inverse_multiply((r), (u), (s))
100#define _suNf_theta_T_inverse_multiply_gpu(r, u, s) _suNf_inverse_multiply((r), (u), (s))
115#define _suNf_theta_X_multiply(r, u, s) \
118 _suNf_multiply(_vtmp(s), (u), (s)); \
119 _vector_mulc_f((r), eitheta[1], _vtmp(s)); \
123#define _suNf_theta_X_multiply_gpu(r, u, s) \
126 _suNf_multiply(_vtmp(s), (u), (s)); \
127 _vector_mulc_f((r), eitheta_gpu[1], _vtmp(s)); \
139#define _suNf_theta_X_inverse_multiply(r, u, s) \
142 _suNf_inverse_multiply(_vtmp(s), (u), (s)); \
143 _vector_mulc_star_f((r), eitheta[1], _vtmp(s)); \
147#define _suNf_theta_X_inverse_multiply_gpu(r, u, s) \
150 _suNf_inverse_multiply(_vtmp(s), (u), (s)); \
151 _vector_mulc_star_f((r), eitheta_gpu[1], _vtmp(s)); \
164#define _suNf_theta_X_multiply(r, u, s) _suNf_multiply((r), (u), (s))
165#define _suNf_theta_X_multiply_gpu(r, u, s) _suNf_multiply((r), (u), (s))
176#define _suNf_theta_X_inverse_multiply(r, u, s) _suNf_inverse_multiply((r), (u), (s))
177#define _suNf_theta_X_inverse_multiply_gpu(r, u, s) _suNf_inverse_multiply((r), (u), (s))
192#define _suNf_theta_Y_multiply(r, u, s) \
195 _suNf_multiply(_vtmp(s), (u), (s)); \
196 _vector_mulc_f((r), eitheta[2], _vtmp(s)); \
200#define _suNf_theta_Y_multiply_gpu(r, u, s) \
203 _suNf_multiply(_vtmp(s), (u), (s)); \
204 _vector_mulc_f((r), eitheta_gpu[2], _vtmp(s)); \
216#define _suNf_theta_Y_inverse_multiply(r, u, s) \
219 _suNf_inverse_multiply(_vtmp(s), (u), (s)); \
220 _vector_mulc_star_f((r), eitheta[2], _vtmp(s)); \
224#define _suNf_theta_Y_inverse_multiply_gpu(r, u, s) \
227 _suNf_inverse_multiply(_vtmp(s), (u), (s)); \
228 _vector_mulc_star_f((r), eitheta_gpu[2], _vtmp(s)); \
241#define _suNf_theta_Y_multiply(r, u, s) _suNf_multiply((r), (u), (s))
242#define _suNf_theta_Y_multiply_gpu(r, u, s) _suNf_multiply((r), (u), (s))
253#define _suNf_theta_Y_inverse_multiply(r, u, s) _suNf_inverse_multiply((r), (u), (s))
254#define _suNf_theta_Y_inverse_multiply_gpu(r, u, s) _suNf_inverse_multiply((r), (u), (s))
269#define _suNf_theta_Z_multiply(r, u, s) \
272 _suNf_multiply(_vtmp(s), (u), (s)); \
273 _vector_mulc_f((r), eitheta[3], _vtmp(s)); \
277#define _suNf_theta_Z_multiply_gpu(r, u, s) \
280 _suNf_multiply(_vtmp(s), (u), (s)); \
281 _vector_mulc_f((r), eitheta_gpu[3], _vtmp(s)); \
294#define _suNf_theta_Z_inverse_multiply(r, u, s) \
297 _suNf_inverse_multiply(_vtmp(s), (u), (s)); \
298 _vector_mulc_star_f((r), eitheta[3], _vtmp(s)); \
302#define _suNf_theta_Z_inverse_multiply_gpu(r, u, s) \
305 _suNf_inverse_multiply(_vtmp(s), (u), (s)); \
306 _vector_mulc_star_f((r), eitheta_gpu[3], _vtmp(s)); \
319#define _suNf_theta_Z_multiply(r, u, s) _suNf_multiply((r), (u), (s))
320#define _suNf_theta_Z_multiply_gpu(r, u, s) _suNf_multiply((r), (u), (s))
331#define _suNf_theta_Z_inverse_multiply(r, u, s) _suNf_inverse_multiply((r), (u), (s))
332#define _suNf_theta_Z_inverse_multiply_gpu(r, u, s) _suNf_inverse_multiply((r), (u), (s))