1 #include "cado.h"
2 /* MPFQ generated file -- do not edit */
3
4 #include "mpfq_p_5.h"
5
6 #include <inttypes.h>
7 /* Active handler: simd_gfp */
8 /* Automatically generated code */
9 /* Active handler: Mpfq::defaults */
10 /* Active handler: Mpfq::defaults::vec */
11 /* Active handler: Mpfq::defaults::poly */
12 /* Active handler: Mpfq::gfp::field */
13 /* Active handler: Mpfq::gfp::elt */
14 /* Options used:{
15 family=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_5, tag=p_5, }, ],
16 fieldtype=prime,
17 n=5,
18 nn=11,
19 opthw=,
20 tag=p_5,
21 type=plain,
22 vbase_stuff={
23 choose_byfeatures=<code>,
24 families=[
25 [
26 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_m128, tag=m128, },
27 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k1, tag=u64k1, },
28 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k2, tag=u64k2, },
29 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k3, tag=u64k3, },
30 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k4, tag=u64k4, },
31 ],
32 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_1, tag=p_1, }, ],
33 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_10, tag=p_10, }, ],
34 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_11, tag=p_11, }, ],
35 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_12, tag=p_12, }, ],
36 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_13, tag=p_13, }, ],
37 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_14, tag=p_14, }, ],
38 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_15, tag=p_15, }, ],
39 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_2, tag=p_2, }, ],
40 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_3, tag=p_3, }, ],
41 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_4, tag=p_4, }, ],
42 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_5, tag=p_5, }, ],
43 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_6, tag=p_6, }, ],
44 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_7, tag=p_7, }, ],
45 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_8, tag=p_8, }, ],
46 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_9, tag=p_9, }, ],
47 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_pz, tag=pz, }, ],
48 ],
49 member_templates_restrict={
50 m128=[
51 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_m128, tag=m128, },
52 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k1, tag=u64k1, },
53 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k2, tag=u64k2, },
54 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k3, tag=u64k3, },
55 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k4, tag=u64k4, },
56 ],
57 p_1=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_1, tag=p_1, }, ],
58 p_10=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_10, tag=p_10, }, ],
59 p_11=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_11, tag=p_11, }, ],
60 p_12=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_12, tag=p_12, }, ],
61 p_13=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_13, tag=p_13, }, ],
62 p_14=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_14, tag=p_14, }, ],
63 p_15=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_15, tag=p_15, }, ],
64 p_2=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_2, tag=p_2, }, ],
65 p_3=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_3, tag=p_3, }, ],
66 p_4=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_4, tag=p_4, }, ],
67 p_5=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_5, tag=p_5, }, ],
68 p_6=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_6, tag=p_6, }, ],
69 p_7=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_7, tag=p_7, }, ],
70 p_8=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_8, tag=p_8, }, ],
71 p_9=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_9, tag=p_9, }, ],
72 pz=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_pz, tag=pz, }, ],
73 u64k1=[
74 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_m128, tag=m128, },
75 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k1, tag=u64k1, },
76 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k2, tag=u64k2, },
77 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k3, tag=u64k3, },
78 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k4, tag=u64k4, },
79 ],
80 u64k2=[
81 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_m128, tag=m128, },
82 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k1, tag=u64k1, },
83 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k2, tag=u64k2, },
84 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k3, tag=u64k3, },
85 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k4, tag=u64k4, },
86 ],
87 u64k3=[
88 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_m128, tag=m128, },
89 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k1, tag=u64k1, },
90 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k2, tag=u64k2, },
91 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k3, tag=u64k3, },
92 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k4, tag=u64k4, },
93 ],
94 u64k4=[
95 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_m128, tag=m128, },
96 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k1, tag=u64k1, },
97 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k2, tag=u64k2, },
98 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k3, tag=u64k3, },
99 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k4, tag=u64k4, },
100 ],
101 },
102 vc:includes=[ <stdarg.h>, ],
103 },
104 virtual_base={
105 filebase=mpfq_vbase,
106 global_prefix=mpfq_,
107 name=mpfq_vbase,
108 substitutions=[
109 [ (?^:mpfq_p_5_elt \*), void *, ],
110 [ (?^:mpfq_p_5_src_elt\b), const void *, ],
111 [ (?^:mpfq_p_5_elt\b), void *, ],
112 [ (?^:mpfq_p_5_dst_elt\b), void *, ],
113 [ (?^:mpfq_p_5_elt_ur \*), void *, ],
114 [ (?^:mpfq_p_5_src_elt_ur\b), const void *, ],
115 [ (?^:mpfq_p_5_elt_ur\b), void *, ],
116 [ (?^:mpfq_p_5_dst_elt_ur\b), void *, ],
117 [ (?^:mpfq_p_5_vec \*), void *, ],
118 [ (?^:mpfq_p_5_src_vec\b), const void *, ],
119 [ (?^:mpfq_p_5_vec\b), void *, ],
120 [ (?^:mpfq_p_5_dst_vec\b), void *, ],
121 [ (?^:mpfq_p_5_vec_ur \*), void *, ],
122 [ (?^:mpfq_p_5_src_vec_ur\b), const void *, ],
123 [ (?^:mpfq_p_5_vec_ur\b), void *, ],
124 [ (?^:mpfq_p_5_dst_vec_ur\b), void *, ],
125 [ (?^:mpfq_p_5_poly \*), void *, ],
126 [ (?^:mpfq_p_5_src_poly\b), const void *, ],
127 [ (?^:mpfq_p_5_poly\b), void *, ],
128 [ (?^:mpfq_p_5_dst_poly\b), void *, ],
129 ],
130 },
131 w=64,
132 } */
133
134
135 /* Functions operating on the field structure */
136 /* *Mpfq::gfp::field::code_for_field_clear, Mpfq::gfp */
mpfq_p_5_field_clear(mpfq_p_5_dst_field k)137 void mpfq_p_5_field_clear(mpfq_p_5_dst_field k)
138 {
139 mpz_clear(k->p);
140 mpz_clear(k->bigmul_p);
141 if (k->ts_info.e > 0) {
142 free(k->ts_info.hh);
143 free(k->ts_info.z);
144 }
145 mpz_clear(k->factor);
146 }
147
148 /* *Mpfq::gfp::field::code_for_field_specify, Mpfq::gfp */
mpfq_p_5_field_specify(mpfq_p_5_dst_field k,unsigned long dummy MAYBE_UNUSED,const void * vp)149 void mpfq_p_5_field_specify(mpfq_p_5_dst_field k, unsigned long dummy MAYBE_UNUSED, const void * vp)
150 {
151 if (dummy == MPFQ_PRIME_MPN) {
152 fprintf(stderr, "MPFQ_PRIME_MPN is deprecated\n");
153 return;
154 } else if (dummy == MPFQ_PRIME_MPZ) {
155 mpz_srcptr p = (mpz_srcptr) vp;
156 if (!(mpz_size(p) == 5)) {
157 fprintf(stderr, "This binary requires the use of a 5-machine words prime number. Here, p spans %zu machine words. Please adapt linalg/bwc/CMakeLists.txt accordingly and re-run\n", mpz_size(p));
158 abort();
159 }
160 mpz_set(k->p, p);
161 {
162 /* precompute bigmul_p = largest multiple of p that fits in an
163 * elt_ur: p*Floor( (2^(11*64)-1)/p )
164 */
165 mpz_ui_pow_ui(k->bigmul_p, 2, 11*64);
166 mpz_sub_ui(k->bigmul_p, k->bigmul_p, 1);
167 mpz_fdiv_q(k->bigmul_p, k->bigmul_p, k->p);
168 mpz_mul(k->bigmul_p, k->bigmul_p, k->p);
169 }
170 } else if (dummy == MPFQ_SIMD_GROUPSIZE && *(int*)vp == 1) {
171 /* Do nothing, this is an admitted condition */
172 return;
173 } else {
174 return;
175 }
176 }
177
178
179 /* Element allocation functions */
180
181 /* Elementary assignment functions */
182
183 /* Assignment of random values */
184
185 /* Arithmetic operations on elements */
186 static void mpfq_p_5_init_ts(mpfq_p_5_dst_field);
187 /* *Mpfq::gfp::elt::code_for_sqrt, Mpfq::gfp */
188 /* Triggered by: sqrt */
mpfq_p_5_init_ts(mpfq_p_5_dst_field k)189 static void mpfq_p_5_init_ts(mpfq_p_5_dst_field k)
190 {
191 gmp_randstate_t rstate;
192 gmp_randinit_default(rstate);
193
194 mp_limb_t pp[5];
195 mp_limb_t *ptr = pp;
196 mp_limb_t s[5];
197 mpfq_fixmp_5_sub_ui_nc(pp, k->p->_mp_d, 1);
198 int e = 0;
199 while (*ptr == 0) {
200 ptr++;
201 e += 64;
202 }
203 int ee;
204 ee = mpfq_ctzl(*ptr);
205 e += ee;
206 if (e < 64) {
207 mpfq_fixmp_5_rshift(pp, e);
208 } else {
209 mpfq_fixmp_5_long_rshift(pp, e/64, e%64);
210 }
211 s[0] = 1UL;
212 int i;
213 for (i = 1; i <5; ++i)
214 s[i] = 0UL;
215 if (e-1 < 64) {
216 mpfq_fixmp_5_lshift(s, e-1);
217 } else {
218 mpfq_fixmp_5_long_lshift(s, (e-1)/64, (e-1)%64);
219 }
220 k->ts_info.e = e;
221
222 k->ts_info.z = mpfq_malloc_check(5*sizeof(mp_limb_t));
223 k->ts_info.hh = mpfq_malloc_check(5*sizeof(mp_limb_t));
224
225 mpfq_p_5_elt z, r;
226 mpfq_p_5_init(k, &z);
227 mpfq_p_5_init(k, &r);
228 mpfq_p_5_set_ui(k, r, 0);
229 do {
230 mpfq_p_5_random(k, z, rstate);
231 mpfq_p_5_pow(k, z, z, pp, 5);
232 mpfq_p_5_pow(k, r, z, s, 5);
233 mpfq_p_5_add_ui(k, r, r, 1);
234 } while (mpfq_p_5_cmp_ui(k, r, 0)!=0);
235 mpfq_p_5_set(k, (mpfq_p_5_dst_elt)k->ts_info.z, z);
236 mpfq_p_5_clear(k, &z);
237 mpfq_p_5_clear(k, &r);
238
239 mpfq_fixmp_5_sub_ui_nc(pp, pp, 1);
240 mpfq_fixmp_5_rshift(pp, 1);
241 for (i = 0; i < 5; ++i)
242 k->ts_info.hh[i] = pp[i];
243 gmp_randclear(rstate);
244 }
245
246 /* *Mpfq::gfp::elt::code_for_sqrt, Mpfq::gfp */
mpfq_p_5_sqrt(mpfq_p_5_dst_field k,mpfq_p_5_dst_elt z,mpfq_p_5_src_elt a)247 int mpfq_p_5_sqrt(mpfq_p_5_dst_field k, mpfq_p_5_dst_elt z, mpfq_p_5_src_elt a)
248 {
249 if (mpfq_p_5_cmp_ui(k, a, 0) == 0) {
250 mpfq_p_5_set_ui(k, z, 0);
251 return 1;
252 }
253 if (k->ts_info.e == 0)
254 mpfq_p_5_init_ts(k);
255 mpfq_p_5_elt b, x, y;
256 mpfq_p_5_init(k, &x);
257 mpfq_p_5_init(k, &y);
258 mpfq_p_5_init(k, &b);
259 mp_limb_t r = k->ts_info.e;
260 mp_limb_t s; //= (1UL<<(r-1)); not needed...
261 mpfq_p_5_set(k, x, a);
262 mpfq_p_5_set(k, y, (mpfq_p_5_src_elt)k->ts_info.z);
263
264 mpfq_p_5_pow(k, x, a, k->ts_info.hh, 5);
265 mpfq_p_5_sqr(k, b, x);
266 mpfq_p_5_mul(k, x, x, a);
267 mpfq_p_5_mul(k, b, b, a);
268
269 mpfq_p_5_elt t;
270 mpfq_p_5_init(k, &t);
271 mp_limb_t m;
272 for(;;) {
273 mpfq_p_5_set(k, t, b);
274 for(m=0; mpfq_p_5_cmp_ui(k, t, 1)!=0; m++)
275 mpfq_p_5_sqr(k, t, t);
276 assert(m<=r);
277
278 if (m==0 || m==r)
279 break;
280
281 s = 1UL<<(r-m-1);
282 r = m;
283
284 mpfq_p_5_pow(k, t, y, &s, 1);
285 mpfq_p_5_sqr(k, y, t);
286 mpfq_p_5_mul(k, x, x, t);
287 mpfq_p_5_mul(k, b, b, y);
288 }
289 mpfq_p_5_set(k, z, x);
290 mpfq_p_5_clear(k, &t);
291 mpfq_p_5_clear(k, &x);
292 mpfq_p_5_clear(k, &y);
293 mpfq_p_5_clear(k, &b);
294 return (m==0);
295 }
296
297 /* *Mpfq::defaults::pow::code_for_powz, Mpfq::gfp::elt, Mpfq::gfp */
mpfq_p_5_powz(mpfq_p_5_dst_field k,mpfq_p_5_dst_elt y,mpfq_p_5_src_elt x,mpz_srcptr z)298 void mpfq_p_5_powz(mpfq_p_5_dst_field k, mpfq_p_5_dst_elt y, mpfq_p_5_src_elt x, mpz_srcptr z)
299 {
300 if (mpz_sgn(z) < 0) {
301 mpz_t mz;
302 mpz_init(mz);
303 mpz_neg(mz, z);
304 mpfq_p_5_powz(k, y, x, mz);
305 mpfq_p_5_inv(k, y, y);
306 mpz_clear(mz);
307 } else if (mpz_sizeinbase(z, 2) > mpfq_p_5_field_degree(k) * mpfq_p_5_field_characteristic_bits(k)) {
308 mpz_t zr;
309 mpz_init(zr);
310 mpz_t ppz;
311 mpz_init(ppz);
312 mpfq_p_5_field_characteristic(k, ppz);
313 mpz_pow_ui(ppz,ppz,mpfq_p_5_field_degree(k));
314 mpz_sub_ui(ppz,ppz,1);
315 mpz_fdiv_r(zr, z, ppz);
316 mpfq_p_5_powz(k, y, x, zr);
317 mpz_clear(ppz);
318 mpz_clear(zr);
319 } else {
320 mpfq_p_5_pow(k, y, x, z->_mp_d, mpz_size(z));
321 }
322 }
323
324
325 /* Operations involving unreduced elements */
326
327 /* Comparison functions */
328
329 /* Input/output functions */
330 /* *Mpfq::gfp::io::code_for_asprint, Mpfq::gfp */
mpfq_p_5_asprint(mpfq_p_5_dst_field k,char ** pstr,mpfq_p_5_src_elt x)331 int mpfq_p_5_asprint(mpfq_p_5_dst_field k, char * * pstr, mpfq_p_5_src_elt x)
332 {
333 int i, n;
334 mp_size_t size_x;
335 i=5-1;
336 while ((i>=0)&&(x[i]==0)) {
337 i--;
338 }
339 i++;
340 size_x=i;
341 mp_limb_t y[size_x];
342 for (i = 0; i<size_x; ++i) {
343 y[i]=x[i];
344 }
345 // allocate enough room for base 2 conversion.
346 // mpn_get_str may produce one extra byte
347 *pstr = (char *)mpfq_malloc_check(size_x * 64 + 2);
348 n = mpn_get_str((unsigned char*)(*pstr), k->io_base, (mp_limb_t *) y, size_x);
349 for (i = 0; i < n; ++i)
350 (*pstr)[i] += '0';
351 (*pstr)[n] = '\0';
352 // Remove leading 0s
353 /* Note that gmp source says: There are no leading zeros on the digits
354 * generated at str, but that's not currently a documented feature.
355 * This implies that we won't do much here... */
356 int shift = 0;
357 while (((*pstr)[shift] == '0') && ((*pstr)[shift+1] != '\0'))
358 shift++;
359 if (shift>0) {
360 memmove(*pstr, (*pstr) + shift, n + 1 - shift);
361 n -= shift;
362 }
363 // Return '0' instead of empty string for zero element
364 if ((*pstr)[0] == '\0') {
365 (*pstr)[0] = '0';
366 (*pstr)[1] = '\0';
367 n = 1;
368 }
369 return n;
370 }
371
372 /* *Mpfq::defaults::code_for_fprint, Mpfq::gfp */
mpfq_p_5_fprint(mpfq_p_5_dst_field k,FILE * file,mpfq_p_5_src_elt x)373 int mpfq_p_5_fprint(mpfq_p_5_dst_field k, FILE * file, mpfq_p_5_src_elt x)
374 {
375 char *str;
376 int rc;
377 mpfq_p_5_asprint(k,&str,x);
378 rc = fprintf(file,"%s",str);
379 free(str);
380 return rc;
381 }
382
383 /* *Mpfq::gfp::io::code_for_sscan, Mpfq::gfp */
mpfq_p_5_sscan(mpfq_p_5_dst_field k,mpfq_p_5_dst_elt z,const char * str)384 int mpfq_p_5_sscan(mpfq_p_5_dst_field k, mpfq_p_5_dst_elt z, const char * str)
385 {
386 mpz_t zz;
387 mpz_init(zz);
388 int nread;
389 if (gmp_sscanf(str, "%Zd%n", zz, &nread) != 1) {
390 mpz_clear(zz);
391 return 0;
392 }
393 mpfq_p_5_set_mpz(k, z, zz);
394 mpz_clear(zz);
395 return nread;
396 }
397
398 /* *Mpfq::gfp::io::code_for_fscan, Mpfq::gfp */
mpfq_p_5_fscan(mpfq_p_5_dst_field k,FILE * file,mpfq_p_5_dst_elt z)399 int mpfq_p_5_fscan(mpfq_p_5_dst_field k, FILE * file, mpfq_p_5_dst_elt z)
400 {
401 char *tmp;
402 int allocated, len=0;
403 int c, start=0;
404 allocated=100;
405 tmp = (char *)mpfq_malloc_check(allocated);
406 for(;;) {
407 c = fgetc(file);
408 if (c==EOF)
409 break;
410 if (isspace((int)(unsigned char)c)) {
411 if (start==0)
412 continue;
413 else
414 break;
415 } else {
416 if (len==allocated) {
417 allocated+=100 + allocated / 4;
418 tmp = (char*)realloc(tmp, allocated);
419 }
420 tmp[len]=c;
421 len++;
422 start=1;
423 }
424 }
425 if (len==allocated) {
426 allocated+=1;
427 tmp = (char*)realloc(tmp, allocated);
428 }
429 tmp[len]='\0';
430 int ret=mpfq_p_5_sscan(k,z,tmp);
431 free(tmp);
432 return ret ? len : 0;
433 }
434
435
436 /* Vector functions */
437 /* *Mpfq::defaults::vec::alloc::code_for_vec_init, Mpfq::defaults::vec, Mpfq::gfp */
mpfq_p_5_vec_init(mpfq_p_5_dst_field K MAYBE_UNUSED,mpfq_p_5_vec * v,unsigned long n)438 void mpfq_p_5_vec_init(mpfq_p_5_dst_field K MAYBE_UNUSED, mpfq_p_5_vec * v, unsigned long n)
439 {
440 unsigned int i;
441 *v = (mpfq_p_5_vec) malloc (n*sizeof(mpfq_p_5_elt));
442 for(i = 0; i < n; i++)
443 mpfq_p_5_init(K, (*v) + i);
444 }
445
446 /* *Mpfq::defaults::vec::alloc::code_for_vec_reinit, Mpfq::defaults::vec, Mpfq::gfp */
mpfq_p_5_vec_reinit(mpfq_p_5_dst_field K MAYBE_UNUSED,mpfq_p_5_vec * v,unsigned long n,unsigned long m)447 void mpfq_p_5_vec_reinit(mpfq_p_5_dst_field K MAYBE_UNUSED, mpfq_p_5_vec * v, unsigned long n, unsigned long m)
448 {
449 if (n < m) { // increase size
450 unsigned int i;
451 *v = (mpfq_p_5_vec) realloc (*v, m * sizeof(mpfq_p_5_elt));
452 for(i = n; i < m; i+=1)
453 mpfq_p_5_init(K, (*v) + i);
454 } else if (m < n) { // decrease size
455 unsigned int i;
456 for(i = m; i < n; i+=1)
457 mpfq_p_5_clear(K, (*v) + i);
458 *v = (mpfq_p_5_vec) realloc (*v, m * sizeof(mpfq_p_5_elt));
459 }
460 }
461
462 /* *Mpfq::defaults::vec::alloc::code_for_vec_clear, Mpfq::defaults::vec, Mpfq::gfp */
mpfq_p_5_vec_clear(mpfq_p_5_dst_field K MAYBE_UNUSED,mpfq_p_5_vec * v,unsigned long n)463 void mpfq_p_5_vec_clear(mpfq_p_5_dst_field K MAYBE_UNUSED, mpfq_p_5_vec * v, unsigned long n)
464 {
465 unsigned int i;
466 for(i = 0; i < n; i+=1)
467 mpfq_p_5_clear(K, (*v) + i);
468 free(*v);
469 }
470
471 /* *Mpfq::defaults::vec::generic::code_for_vec_random, Mpfq::defaults::vec, Mpfq::gfp */
mpfq_p_5_vec_random(mpfq_p_5_dst_field k,mpfq_p_5_dst_vec w,unsigned long n,gmp_randstate_t state)472 void mpfq_p_5_vec_random(mpfq_p_5_dst_field k, mpfq_p_5_dst_vec w, unsigned long n, gmp_randstate_t state)
473 {
474 for (unsigned int i = 0; i < n; ++i) {
475 mpfq_p_5_dst_elt x = mpfq_p_5_vec_coeff_ptr(k, w, i);
476 mpfq_p_5_random(k, x, state);
477 }
478 }
479
480 /* *Mpfq::defaults::vec::generic::code_for_vec_random2, Mpfq::defaults::vec, Mpfq::gfp */
mpfq_p_5_vec_random2(mpfq_p_5_dst_field k,mpfq_p_5_dst_vec w,unsigned long n,gmp_randstate_t state)481 void mpfq_p_5_vec_random2(mpfq_p_5_dst_field k, mpfq_p_5_dst_vec w, unsigned long n, gmp_randstate_t state)
482 {
483 for (unsigned int i = 0; i < n; ++i) {
484 mpfq_p_5_dst_elt x = mpfq_p_5_vec_coeff_ptr(k, w, i);
485 mpfq_p_5_random2(k, x, state);
486 }
487 }
488
489 /* *Mpfq::defaults::vec::generic::code_for_vec_cmp, Mpfq::defaults::vec, Mpfq::gfp */
mpfq_p_5_vec_cmp(mpfq_p_5_dst_field k,mpfq_p_5_src_vec u,mpfq_p_5_src_vec v,unsigned long n)490 long mpfq_p_5_vec_cmp(mpfq_p_5_dst_field k, mpfq_p_5_src_vec u, mpfq_p_5_src_vec v, unsigned long n)
491 {
492 for (unsigned int i = 0; i < n; ++i) {
493 mpfq_p_5_src_elt x = mpfq_p_5_vec_coeff_ptr_const(k, u, i);
494 mpfq_p_5_src_elt y = mpfq_p_5_vec_coeff_ptr_const(k, v, i);
495 int ret = mpfq_p_5_cmp(k, x, y);
496 if (ret != 0)
497 return ret;
498 }
499 return 0;
500 }
501
502 /* *Mpfq::defaults::vec::generic::code_for_vec_is_zero, Mpfq::defaults::vec, Mpfq::gfp */
mpfq_p_5_vec_is_zero(mpfq_p_5_dst_field k,mpfq_p_5_src_vec v,unsigned long n)503 long mpfq_p_5_vec_is_zero(mpfq_p_5_dst_field k, mpfq_p_5_src_vec v, unsigned long n)
504 {
505 for (unsigned int i = 0; i < n; ++i) {
506 mpfq_p_5_src_elt x = mpfq_p_5_vec_coeff_ptr_const(k, v, i);
507 if (!mpfq_p_5_is_zero(k, x))
508 return 0;
509 }
510 return 1;
511 }
512
513 /* *Mpfq::defaults::vec::io::code_for_vec_asprint, Mpfq::defaults::vec, Mpfq::gfp */
mpfq_p_5_vec_asprint(mpfq_p_5_dst_field K MAYBE_UNUSED,char ** pstr,mpfq_p_5_src_vec w,unsigned long n)514 long mpfq_p_5_vec_asprint(mpfq_p_5_dst_field K MAYBE_UNUSED, char * * pstr, mpfq_p_5_src_vec w, unsigned long n)
515 {
516 if (n == 0) {
517 *pstr = (char *)mpfq_malloc_check(4);
518 sprintf(*pstr, "[ ]");
519 return strlen(*pstr);
520 }
521 int alloc = 100;
522 int len = 0;
523 *pstr = (char *)mpfq_malloc_check(alloc);
524 (*pstr)[len++] = '[';
525 (*pstr)[len++] = ' ';
526 unsigned int i;
527 for(i = 0; i < n; i+=1) {
528 if (i) {
529 (*pstr)[len++] = ',';
530 (*pstr)[len++] = ' ';
531 }
532 char *tmp;
533 mpfq_p_5_asprint(K, &tmp, w[i]);
534 int ltmp = strlen(tmp);
535 if (len+ltmp+4 > alloc) {
536 alloc = len+ltmp+100 + alloc / 4;
537 *pstr = (char *)realloc(*pstr, alloc);
538 }
539 #if GNUC_VERSION_ATLEAST(7,1,0)
540 #pragma GCC diagnostic push
541 #pragma GCC diagnostic ignored "-Wstringop-overflow"
542 #endif
543 strncpy(*pstr+len, tmp, ltmp+4);
544 #if GNUC_VERSION_ATLEAST(7,1,0)
545 #pragma GCC diagnostic pop
546 #endif
547 len += ltmp;
548 free(tmp);
549 }
550 (*pstr)[len++] = ' ';
551 (*pstr)[len++] = ']';
552 (*pstr)[len] = '\0';
553 return len;
554 }
555
556 /* *Mpfq::defaults::vec::io::code_for_vec_fprint, Mpfq::defaults::vec, Mpfq::gfp */
mpfq_p_5_vec_fprint(mpfq_p_5_dst_field K MAYBE_UNUSED,FILE * file,mpfq_p_5_src_vec w,unsigned long n)557 long mpfq_p_5_vec_fprint(mpfq_p_5_dst_field K MAYBE_UNUSED, FILE * file, mpfq_p_5_src_vec w, unsigned long n)
558 {
559 char *str;
560 int rc;
561 mpfq_p_5_vec_asprint(K,&str,w,n);
562 rc = fprintf(file,"%s",str);
563 free(str);
564 return rc;
565 }
566
567 /* *Mpfq::defaults::vec::io::code_for_vec_print, Mpfq::defaults::vec, Mpfq::gfp */
mpfq_p_5_vec_print(mpfq_p_5_dst_field K MAYBE_UNUSED,mpfq_p_5_src_vec w,unsigned long n)568 long mpfq_p_5_vec_print(mpfq_p_5_dst_field K MAYBE_UNUSED, mpfq_p_5_src_vec w, unsigned long n)
569 {
570 return mpfq_p_5_vec_fprint(K,stdout,w,n);
571 }
572
573 /* *Mpfq::defaults::vec::io::code_for_vec_sscan, Mpfq::defaults::vec, Mpfq::gfp */
mpfq_p_5_vec_sscan(mpfq_p_5_dst_field K MAYBE_UNUSED,mpfq_p_5_vec * w,unsigned long * n,const char * str)574 long mpfq_p_5_vec_sscan(mpfq_p_5_dst_field K MAYBE_UNUSED, mpfq_p_5_vec * w, unsigned long * n, const char * str)
575 {
576 // start with a clean vector
577 unsigned int nn;
578 int len = 0;
579 mpfq_p_5_vec_reinit(K, w, *n, 0);
580 *n = nn = 0;
581 while (isspace((int)(unsigned char)str[len]))
582 len++;
583 if (str[len] != '[')
584 return 0;
585 len++;
586 while (isspace((int)(unsigned char)str[len]))
587 len++;
588 if (str[len] == ']') {
589 len++;
590 return len;
591 }
592 unsigned int i = 0;
593 for (;;) {
594 if (nn < i+1) {
595 mpfq_p_5_vec_reinit(K, w, nn, i+1);
596 *n = nn = i+1;
597 }
598 int ret = mpfq_p_5_sscan(K, mpfq_p_5_vec_coeff_ptr(K, *w, i), str + len);
599 if (!ret) {
600 *n = 0; /* invalidate data ! */
601 return 0;
602 }
603 i++;
604 len += ret;
605 while (isspace((int)(unsigned char)str[len]))
606 len++;
607 if (str[len] == ']') {
608 len++;
609 break;
610 }
611 if (str[len] != ',') {
612 *n = 0; /* invalidate data ! */
613 return 0;
614 }
615 len++;
616 while (isspace((int)(unsigned char)str[len]))
617 len++;
618 }
619 return len;
620 }
621
622 /* *Mpfq::defaults::vec::io::code_for_vec_fscan, Mpfq::defaults::vec, Mpfq::gfp */
mpfq_p_5_vec_fscan(mpfq_p_5_dst_field K MAYBE_UNUSED,FILE * file,mpfq_p_5_vec * w,unsigned long * n)623 long mpfq_p_5_vec_fscan(mpfq_p_5_dst_field K MAYBE_UNUSED, FILE * file, mpfq_p_5_vec * w, unsigned long * n)
624 {
625 char *tmp;
626 int c;
627 int allocated, len=0;
628 allocated=100;
629 tmp = (char *)mpfq_malloc_check(allocated);
630 int nest = 0, mnest = 0;
631 for(;;) {
632 c = fgetc(file);
633 if (c==EOF) {
634 free(tmp);
635 return 0;
636 }
637 if (c == '[') {
638 nest++, mnest++;
639 }
640 if (len==allocated) {
641 allocated = len + 10 + allocated / 4;
642 tmp = (char*)realloc(tmp, allocated);
643 }
644 tmp[len]=c;
645 len++;
646 if (c == ']') {
647 nest--, mnest++;
648 }
649 if (mnest && nest == 0)
650 break;
651 }
652 if (len==allocated) {
653 allocated+=1;
654 tmp = (char*)realloc(tmp, allocated);
655 }
656 tmp[len]='\0';
657 int ret=mpfq_p_5_vec_sscan(K,w,n,tmp);
658 free(tmp);
659 return ret;
660 }
661
662 /* *Mpfq::defaults::vec::generic::code_for_vec_hamming_weight, Mpfq::defaults::vec, Mpfq::gfp */
mpfq_p_5_vec_hamming_weight(mpfq_p_5_dst_field k,mpfq_p_5_src_vec v,unsigned long n)663 long mpfq_p_5_vec_hamming_weight(mpfq_p_5_dst_field k, mpfq_p_5_src_vec v, unsigned long n)
664 {
665 int w = 0;
666 for (unsigned int i = 0; i < n; ++i) {
667 mpfq_p_5_src_elt x = mpfq_p_5_vec_coeff_ptr_const(k, v, i);
668 w += !mpfq_p_5_is_zero(k, x);
669 }
670 return w;
671 }
672
673 /* *Mpfq::defaults::vec::generic::code_for_vec_find_first_set, Mpfq::defaults::vec, Mpfq::gfp */
mpfq_p_5_vec_find_first_set(mpfq_p_5_dst_field k,mpfq_p_5_src_vec v,unsigned long n)674 long mpfq_p_5_vec_find_first_set(mpfq_p_5_dst_field k, mpfq_p_5_src_vec v, unsigned long n)
675 {
676 for (unsigned int i = 0; i < n; ++i) {
677 mpfq_p_5_src_elt x = mpfq_p_5_vec_coeff_ptr_const(k, v, i);
678 if (!mpfq_p_5_is_zero(k, x))
679 return i;
680 }
681 return -1;
682 }
683
684 /* *Mpfq::defaults::vec::generic::code_for_vec_simd_hamming_weight, Mpfq::defaults::vec, Mpfq::gfp */
mpfq_p_5_vec_simd_hamming_weight(mpfq_p_5_dst_field k,mpfq_p_5_src_vec v,unsigned long n)685 long mpfq_p_5_vec_simd_hamming_weight(mpfq_p_5_dst_field k, mpfq_p_5_src_vec v, unsigned long n)
686 {
687 int w = 0;
688 for (unsigned int i = 0; i < n; ++i) {
689 mpfq_p_5_src_elt x = mpfq_p_5_vec_coeff_ptr_const(k, v, i);
690 w += mpfq_p_5_simd_hamming_weight(k, x);
691 }
692 return w;
693 }
694
695 /* *Mpfq::defaults::vec::generic::code_for_vec_simd_find_first_set, Mpfq::defaults::vec, Mpfq::gfp */
mpfq_p_5_vec_simd_find_first_set(mpfq_p_5_dst_field k,mpfq_p_5_src_vec v,unsigned long n)696 long mpfq_p_5_vec_simd_find_first_set(mpfq_p_5_dst_field k, mpfq_p_5_src_vec v, unsigned long n)
697 {
698 for (unsigned int i = 0; i < n; ++i) {
699 mpfq_p_5_src_elt x = mpfq_p_5_vec_coeff_ptr_const(k, v, i);
700 if (!mpfq_p_5_is_zero(k, x))
701 return i * mpfq_p_5_simd_groupsize(k) + mpfq_p_5_simd_hamming_weight(k, x);
702 }
703 return -1;
704 }
705
706 /* *Mpfq::defaults::vec::alloc::code_for_vec_ur_init, Mpfq::defaults::vec, Mpfq::gfp */
mpfq_p_5_vec_ur_init(mpfq_p_5_dst_field K MAYBE_UNUSED,mpfq_p_5_vec_ur * v,unsigned long n)707 void mpfq_p_5_vec_ur_init(mpfq_p_5_dst_field K MAYBE_UNUSED, mpfq_p_5_vec_ur * v, unsigned long n)
708 {
709 unsigned int i;
710 *v = (mpfq_p_5_vec_ur) malloc (n*sizeof(mpfq_p_5_elt_ur));
711 for(i = 0; i < n; i+=1)
712 mpfq_p_5_elt_ur_init(K, &( (*v)[i]));
713 }
714
715 /* *Mpfq::defaults::vec::alloc::code_for_vec_ur_reinit, Mpfq::defaults::vec, Mpfq::gfp */
mpfq_p_5_vec_ur_reinit(mpfq_p_5_dst_field K MAYBE_UNUSED,mpfq_p_5_vec_ur * v,unsigned long n,unsigned long m)716 void mpfq_p_5_vec_ur_reinit(mpfq_p_5_dst_field K MAYBE_UNUSED, mpfq_p_5_vec_ur * v, unsigned long n, unsigned long m)
717 {
718 if (n < m) { // increase size
719 *v = (mpfq_p_5_vec_ur) realloc (*v, m * sizeof(mpfq_p_5_elt_ur));
720 unsigned int i;
721 for(i = n; i < m; i+=1)
722 mpfq_p_5_elt_ur_init(K, (*v) + i);
723 } else if (m < n) { // decrease size
724 unsigned int i;
725 for(i = m; i < n; i+=1)
726 mpfq_p_5_elt_ur_clear(K, (*v) + i);
727 *v = (mpfq_p_5_vec_ur) realloc (*v, m * sizeof(mpfq_p_5_elt_ur));
728 }
729 }
730
731 /* *Mpfq::defaults::vec::alloc::code_for_vec_ur_clear, Mpfq::defaults::vec, Mpfq::gfp */
mpfq_p_5_vec_ur_clear(mpfq_p_5_dst_field K MAYBE_UNUSED,mpfq_p_5_vec_ur * v,unsigned long n)732 void mpfq_p_5_vec_ur_clear(mpfq_p_5_dst_field K MAYBE_UNUSED, mpfq_p_5_vec_ur * v, unsigned long n)
733 {
734 unsigned int i;
735 for(i = 0; i < n; i+=1)
736 mpfq_p_5_elt_ur_clear(K, &( (*v)[i]));
737 free(*v);
738 }
739
740 /* *Mpfq::defaults::vec::conv::code_for_vec_conv_ur, Mpfq::gfp */
741 /* Triggered by: vec_conv_ur */
mpfq_p_5_vec_conv_ur_ks(mpfq_p_5_dst_field K MAYBE_UNUSED,mpfq_p_5_dst_vec_ur w,mpfq_p_5_src_vec u,unsigned int n,mpfq_p_5_src_vec v,unsigned int m)742 void mpfq_p_5_vec_conv_ur_ks(mpfq_p_5_dst_field K MAYBE_UNUSED, mpfq_p_5_dst_vec_ur w, mpfq_p_5_src_vec u, unsigned int n, mpfq_p_5_src_vec v, unsigned int m)
743 {
744 // compute base as a power 2^GMP_NUMB_BITS
745 // This is the least number of words that can accomodate
746 // log_2( (p-1)^2 * min(n,m) )
747 mpz_t p;
748 mpz_init(p);
749 mpfq_p_5_field_characteristic(K, p);
750 mpz_sub_ui(p, p, 1);
751 mpz_mul(p, p, p);
752 mpz_mul_ui(p, p, MIN(m, n));
753
754 long nbits = mpz_sizeinbase(p, 2);
755 long nwords = 1 + ((nbits-1) / GMP_NUMB_BITS);
756 nbits = GMP_NUMB_BITS*nwords;
757 mpz_clear(p);
758
759 assert(sizeof(mpfq_p_5_elt_ur) >= nwords*sizeof(unsigned long));
760
761 // Create big integers
762 mpz_t U, V;
763 mpz_init2(U, n*nbits);
764 mpz_init2(V, m*nbits);
765 memset(U->_mp_d, 0, n*nwords*sizeof(unsigned long));
766 memset(V->_mp_d, 0, m*nwords*sizeof(unsigned long));
767 unsigned int i;
768 assert (U->_mp_alloc == (int) (n*nwords));
769 for (i = 0; i < n; ++i)
770 mpfq_p_5_get_mpn(K, U->_mp_d + i*nwords, u[i]);
771 U->_mp_size = U->_mp_alloc;
772 // TODO: in principle one could reduce _mp_size until its true value,
773 // but then one should take care of W->_mp_size as well...
774 //while (U->_mp_size > 0 && U->_mp_d[U->_mp_size-1] == 0)
775 // U->_mp_size--;
776 assert (V->_mp_alloc == (int) (m*nwords));
777 for (i = 0; i < m; ++i)
778 mpfq_p_5_get_mpn(K, V->_mp_d + i*nwords, v[i]);
779 V->_mp_size = V->_mp_alloc;
780 //while (V->_mp_size > 0 && V->_mp_d[V->_mp_size-1] == 0)
781 // V->_mp_size--;
782
783 // Multiply
784 mpz_t W;
785 mpz_init(W);
786 mpz_mul(W, U, V);
787 mpz_clear(U);
788 mpz_clear(V);
789
790 // Put coefficients in w
791 assert (W->_mp_size >= (int) ((m+n-1)*nwords));
792 if (sizeof(mpfq_p_5_elt_ur) == nwords*sizeof(unsigned long)) {
793 for (i = 0; i < m+n-1; ++i)
794 mpfq_p_5_elt_ur_set(K, w[i], (mpfq_p_5_src_elt_ur)(W->_mp_d + i*nwords));
795 } else {
796 for (i = 0; i < m+n-1; ++i) {
797 mpfq_p_5_elt_ur_set_ui(K, w[i], 0);
798 memcpy(w[i], W->_mp_d + i*nwords, nwords*sizeof(unsigned long));
799 }
800 }
801
802 mpz_clear(W);
803 }
804
805
806 /* Polynomial functions */
807 /* *Mpfq::defaults::poly::code_for_poly_setmonic, Mpfq::gfp */
mpfq_p_5_poly_setmonic(mpfq_p_5_dst_field K MAYBE_UNUSED,mpfq_p_5_dst_poly q,mpfq_p_5_src_poly p)808 void mpfq_p_5_poly_setmonic(mpfq_p_5_dst_field K MAYBE_UNUSED, mpfq_p_5_dst_poly q, mpfq_p_5_src_poly p)
809 {
810 long degp = mpfq_p_5_poly_deg(K, p);
811 if (degp == -1) {
812 q->size = 0;
813 return;
814 }
815 if (degp == 0) {
816 mpfq_p_5_elt aux;
817 mpfq_p_5_init(K, &aux);
818 mpfq_p_5_set_ui(K, aux, 1);
819 mpfq_p_5_poly_setcoeff(K, q, aux, 0);
820 mpfq_p_5_clear(K, &aux);
821 q->size = 1;
822 return;
823 }
824 mpfq_p_5_elt lc; /* spurious uninit warning sometimes */
825 mpfq_p_5_init(K, &lc);
826 mpfq_p_5_poly_getcoeff(K, lc, p, degp);
827 mpfq_p_5_inv(K, lc, lc);
828 mpfq_p_5_poly_setcoeff_ui(K, q, 1, degp);
829 mpfq_p_5_vec_scal_mul(K, q->c, p->c, lc, degp);
830 q->size = degp+1;
831 mpfq_p_5_clear(K, &lc);
832 }
833
834 /* *Mpfq::defaults::poly::code_for_poly_divmod, Mpfq::gfp */
mpfq_p_5_poly_divmod(mpfq_p_5_dst_field K MAYBE_UNUSED,mpfq_p_5_dst_poly q,mpfq_p_5_dst_poly r,mpfq_p_5_src_poly a,mpfq_p_5_src_poly b)835 int mpfq_p_5_poly_divmod(mpfq_p_5_dst_field K MAYBE_UNUSED, mpfq_p_5_dst_poly q, mpfq_p_5_dst_poly r, mpfq_p_5_src_poly a, mpfq_p_5_src_poly b)
836 {
837 if (b->size == 0) {
838 return 0;
839 }
840 if (a->size == 0) {
841 q->size = 0; r->size = 0;
842 return 1;
843 }
844 int dega = mpfq_p_5_poly_deg(K, a);
845 if (dega<0) {
846 q->size = 0; r->size = 0;
847 return 1;
848 }
849 // Compute deg b and inverse of leading coef
850 int degb = mpfq_p_5_poly_deg(K, b);
851 if (degb<0) {
852 return 0;
853 }
854 if (degb > dega) {
855 q->size=0;
856 mpfq_p_5_poly_set(K, r, a);
857 return 1;
858 }
859 int bmonic;
860 mpfq_p_5_elt ilb;
861 mpfq_p_5_init(K, &ilb);
862 mpfq_p_5_elt temp;
863 mpfq_p_5_init(K, &temp);
864 mpfq_p_5_set_zero(K, temp); // silence spurious gcc11 warning :-(
865 mpfq_p_5_poly_getcoeff(K, temp, b, degb);
866 if (mpfq_p_5_cmp_ui(K, temp, 1) == 0) {
867 mpfq_p_5_set_ui(K, ilb, 1);
868 bmonic = 1;
869 } else {
870 mpfq_p_5_inv(K, ilb, temp);
871 bmonic = 0;
872 }
873
874 mpfq_p_5_poly qq, rr;
875 mpfq_p_5_poly_init(K, qq, dega-degb+1);
876 mpfq_p_5_poly_init(K, rr, dega);
877
878 mpfq_p_5_poly_set(K, rr, a);
879 mpfq_p_5_elt aux, aux2;
880
881 mpfq_p_5_init(K, &aux);
882 mpfq_p_5_init(K, &aux2);
883
884 int i;
885 int j;
886 for (i = dega; i >= (int)degb; --i) {
887 mpfq_p_5_poly_getcoeff(K, aux, rr, i);
888 if (!bmonic)
889 mpfq_p_5_mul(K, aux, aux, ilb);
890 mpfq_p_5_poly_setcoeff(K, qq, aux, i-degb);
891 for (j = i-1; j >= (int)(i - degb); --j) {
892 mpfq_p_5_poly_getcoeff(K, temp, b, j-i+degb);
893 mpfq_p_5_mul(K, aux2, aux, temp);
894 mpfq_p_5_poly_getcoeff(K, temp, rr, j);
895
896 mpfq_p_5_sub(K, temp, temp, aux2);
897 mpfq_p_5_poly_setcoeff(K, rr, temp, j);
898 }
899 }
900
901 rr->size = degb;
902 int degr = mpfq_p_5_poly_deg(K, rr);
903 rr->size = degr+1;
904
905 if (q != NULL)
906 mpfq_p_5_poly_set(K, q, qq);
907 if (r != NULL)
908 mpfq_p_5_poly_set(K, r, rr);
909 mpfq_p_5_clear(K, &temp);
910 mpfq_p_5_clear(K, &ilb);
911 mpfq_p_5_clear(K, &aux);
912 mpfq_p_5_clear(K, &aux2);
913 mpfq_p_5_poly_clear(K, rr);
914 mpfq_p_5_poly_clear(K, qq);
915 return 1;
916 }
917
918 static void mpfq_p_5_poly_preinv(mpfq_p_5_dst_field, mpfq_p_5_dst_poly, mpfq_p_5_src_poly, unsigned int);
919 /* *Mpfq::defaults::poly::code_for_poly_precomp_mod, Mpfq::gfp */
920 /* Triggered by: poly_precomp_mod */
mpfq_p_5_poly_preinv(mpfq_p_5_dst_field K MAYBE_UNUSED,mpfq_p_5_dst_poly q,mpfq_p_5_src_poly p,unsigned int n)921 static void mpfq_p_5_poly_preinv(mpfq_p_5_dst_field K MAYBE_UNUSED, mpfq_p_5_dst_poly q, mpfq_p_5_src_poly p, unsigned int n)
922 {
923 // Compute the inverse of p(x) modulo x^n
924 // Newton iteration: x_{n+1} = x_n + x_n(1 - a*x_n)
925 // Requires p(0) = 1
926 // Assume p != q (no alias)
927 assert (p != q);
928 int m;
929 if (n <= 2) {
930 mpfq_p_5_poly_setcoeff_ui(K, q, 1, 0);
931 q->size = 1;
932 m = 1;
933 if (n == 1)
934 return;
935 } else {
936 // n >= 3: recursive call at prec m = ceil(n/2)
937 m = 1 + ((n-1)/2);
938 mpfq_p_5_poly_preinv(K, q, p, m);
939 }
940 mpfq_p_5_elt temp; /* spurious uninit warning sometimes */
941 mpfq_p_5_init(K, &temp);
942 mpfq_p_5_set_zero(K, temp); // silence spurious gcc11 warning :-(
943 mpfq_p_5_poly_getcoeff(K, temp, p, 0);//Should be in the assert
944 assert( mpfq_p_5_cmp_ui(K, temp, 1) == 0);
945 // enlarge q if necessary
946 if (q->alloc < n) {
947 mpfq_p_5_vec_reinit(K, &(q->c), q->alloc, n);
948 q->alloc = n;
949 }
950 // refine value
951 mpfq_p_5_vec tmp;
952 mpfq_p_5_vec_init(K, &tmp, m+n-1);
953
954 mpfq_p_5_vec_conv(K, tmp, p->c, MIN(n, p->size), q->c, m);
955 int nn = MIN(n, MIN(n, p->size) + m -1);
956 mpfq_p_5_vec_neg(K, tmp, tmp, nn);
957 mpfq_p_5_vec_getcoeff(K, temp, tmp, 0);
958 mpfq_p_5_add_ui(K, temp, temp, 1);
959 mpfq_p_5_vec_setcoeff(K, tmp, temp, 0);
960 mpfq_p_5_vec_conv(K, tmp, q->c, m, tmp, nn);
961 mpfq_p_5_vec_set(K, mpfq_p_5_vec_subvec(K, q->c, m), mpfq_p_5_vec_subvec(K, tmp, m), n-m);
962 q->size = n;
963
964 mpfq_p_5_clear(K, &temp);
965 mpfq_p_5_vec_clear(K, &tmp, m+n-1);
966 }
967
968 /* *Mpfq::defaults::poly::code_for_poly_precomp_mod, Mpfq::gfp */
mpfq_p_5_poly_precomp_mod(mpfq_p_5_dst_field K MAYBE_UNUSED,mpfq_p_5_dst_poly q,mpfq_p_5_src_poly p)969 void mpfq_p_5_poly_precomp_mod(mpfq_p_5_dst_field K MAYBE_UNUSED, mpfq_p_5_dst_poly q, mpfq_p_5_src_poly p)
970 {
971 assert(p != q);
972 int N = mpfq_p_5_poly_deg(K, p);
973 if (N < 0) {
974 mpfq_p_5_poly_set(K, q, p);
975 return;
976 }
977 mpfq_p_5_poly rp;
978 mpfq_p_5_poly_init(K, rp, N+1);
979 mpfq_p_5_vec_rev(K, rp->c, p->c, N+1);
980 rp->size = N+1;
981 mpfq_p_5_poly_preinv(K, q, rp, N);
982 mpfq_p_5_poly_clear(K, rp);
983 }
984
985 /* *Mpfq::defaults::poly::code_for_poly_mod_pre, Mpfq::gfp */
mpfq_p_5_poly_mod_pre(mpfq_p_5_dst_field K MAYBE_UNUSED,mpfq_p_5_dst_poly r,mpfq_p_5_src_poly q,mpfq_p_5_src_poly p,mpfq_p_5_src_poly irp)986 void mpfq_p_5_poly_mod_pre(mpfq_p_5_dst_field K MAYBE_UNUSED, mpfq_p_5_dst_poly r, mpfq_p_5_src_poly q, mpfq_p_5_src_poly p, mpfq_p_5_src_poly irp)
987 {
988 int N = mpfq_p_5_poly_deg(K, p);
989 int degq = mpfq_p_5_poly_deg(K, q);
990 if (degq < N) {
991 mpfq_p_5_poly_set(K, r, q);
992 return;
993 }
994 int m = degq - N;
995 assert (degq <= 2*N-2);
996 mpfq_p_5_poly revq;
997 mpfq_p_5_poly_init(K, revq, MAX(degq+1, m+1));
998 mpfq_p_5_vec_rev(K, revq->c, q->c, degq+1);
999 revq->size = q->size;
1000 mpfq_p_5_poly_mul(K, revq, revq, irp);
1001 mpfq_p_5_vec_rev(K, revq->c, revq->c, m+1);
1002 revq->size = m+1;
1003
1004 mpfq_p_5_poly_mul(K, revq, revq, p);
1005 mpfq_p_5_poly_sub(K, r, q, revq);
1006 r->size = mpfq_p_5_poly_deg(K, r)+1;
1007 mpfq_p_5_poly_clear(K, revq);
1008 }
1009
1010
1011 /* Functions related to SIMD operation */
1012 /* *simd_gfp::code_for_add_dotprod */
mpfq_p_5_add_dotprod(mpfq_p_5_dst_field K MAYBE_UNUSED,mpfq_p_5_dst_vec xw,mpfq_p_5_src_vec xu1,mpfq_p_5_src_vec xu0,unsigned int n)1013 void mpfq_p_5_add_dotprod(mpfq_p_5_dst_field K MAYBE_UNUSED, mpfq_p_5_dst_vec xw, mpfq_p_5_src_vec xu1, mpfq_p_5_src_vec xu0, unsigned int n)
1014 {
1015 mpfq_p_5_elt_ur s,t;
1016 mpfq_p_5_elt_ur_init(K, &s);
1017 mpfq_p_5_elt_ur_init(K, &t);
1018 mpfq_p_5_elt_ur_set_elt(K, s, xw[0]);
1019 for(unsigned int i = 0 ; i < n ; i++) {
1020 mpfq_p_5_mul_ur(K, t, xu0[i], xu1[i]);
1021 mpfq_p_5_elt_ur_add(K, s, s, t);
1022 }
1023 mpfq_p_5_reduce(K, xw[0], s);
1024 mpfq_p_5_elt_ur_clear(K, &s);
1025 mpfq_p_5_elt_ur_clear(K, &t);
1026 }
1027
1028
1029 /* Member templates related to SIMD operation */
1030
1031 /* Object-oriented interface */
1032 static void mpfq_p_5_wrapper_oo_field_clear(mpfq_vbase_ptr);
mpfq_p_5_wrapper_oo_field_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED)1033 static void mpfq_p_5_wrapper_oo_field_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED)
1034 {
1035 mpfq_p_5_oo_field_clear(vbase);
1036 }
1037
1038 static void mpfq_p_5_wrapper_oo_field_init(mpfq_vbase_ptr);
mpfq_p_5_wrapper_oo_field_init(mpfq_vbase_ptr vbase MAYBE_UNUSED)1039 static void mpfq_p_5_wrapper_oo_field_init(mpfq_vbase_ptr vbase MAYBE_UNUSED)
1040 {
1041 mpfq_p_5_oo_field_init(vbase);
1042 }
1043
1044 static void mpfq_p_5_wrapper_add_dotprod(mpfq_vbase_ptr, mpfq_p_5_dst_vec, mpfq_p_5_src_vec, mpfq_p_5_src_vec, unsigned int);
mpfq_p_5_wrapper_add_dotprod(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec xw MAYBE_UNUSED,mpfq_p_5_src_vec xu1 MAYBE_UNUSED,mpfq_p_5_src_vec xu0 MAYBE_UNUSED,unsigned int n MAYBE_UNUSED)1045 static void mpfq_p_5_wrapper_add_dotprod(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec xw MAYBE_UNUSED, mpfq_p_5_src_vec xu1 MAYBE_UNUSED, mpfq_p_5_src_vec xu0 MAYBE_UNUSED, unsigned int n MAYBE_UNUSED)
1046 {
1047 mpfq_p_5_add_dotprod(vbase->obj, xw, xu1, xu0, n);
1048 }
1049
1050 static void mpfq_p_5_wrapper_simd_set_ui_all(mpfq_vbase_ptr, mpfq_p_5_dst_elt, unsigned long);
mpfq_p_5_wrapper_simd_set_ui_all(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt p MAYBE_UNUSED,unsigned long v MAYBE_UNUSED)1051 static void mpfq_p_5_wrapper_simd_set_ui_all(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt p MAYBE_UNUSED, unsigned long v MAYBE_UNUSED)
1052 {
1053 mpfq_p_5_simd_set_ui_all(vbase->obj, p, v);
1054 }
1055
1056 static void mpfq_p_5_wrapper_simd_add_ui_at(mpfq_vbase_ptr, mpfq_p_5_dst_elt, mpfq_p_5_src_elt, int, unsigned long);
mpfq_p_5_wrapper_simd_add_ui_at(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt p MAYBE_UNUSED,mpfq_p_5_src_elt p0 MAYBE_UNUSED,int k MAYBE_UNUSED,unsigned long v MAYBE_UNUSED)1057 static void mpfq_p_5_wrapper_simd_add_ui_at(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt p MAYBE_UNUSED, mpfq_p_5_src_elt p0 MAYBE_UNUSED, int k MAYBE_UNUSED, unsigned long v MAYBE_UNUSED)
1058 {
1059 mpfq_p_5_simd_add_ui_at(vbase->obj, p, p0, k, v);
1060 }
1061
1062 static void mpfq_p_5_wrapper_simd_set_ui_at(mpfq_vbase_ptr, mpfq_p_5_dst_elt, int, unsigned long);
mpfq_p_5_wrapper_simd_set_ui_at(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt p MAYBE_UNUSED,int k MAYBE_UNUSED,unsigned long v MAYBE_UNUSED)1063 static void mpfq_p_5_wrapper_simd_set_ui_at(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt p MAYBE_UNUSED, int k MAYBE_UNUSED, unsigned long v MAYBE_UNUSED)
1064 {
1065 mpfq_p_5_simd_set_ui_at(vbase->obj, p, k, v);
1066 }
1067
1068 static unsigned long mpfq_p_5_wrapper_simd_get_ui_at(mpfq_vbase_ptr, mpfq_p_5_src_elt, int);
mpfq_p_5_wrapper_simd_get_ui_at(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_src_elt p MAYBE_UNUSED,int k MAYBE_UNUSED)1069 static unsigned long mpfq_p_5_wrapper_simd_get_ui_at(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_src_elt p MAYBE_UNUSED, int k MAYBE_UNUSED)
1070 {
1071 return mpfq_p_5_simd_get_ui_at(vbase->obj, p, k);
1072 }
1073
1074 static int mpfq_p_5_wrapper_simd_find_first_set(mpfq_vbase_ptr, mpfq_p_5_src_elt);
mpfq_p_5_wrapper_simd_find_first_set(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_src_elt p MAYBE_UNUSED)1075 static int mpfq_p_5_wrapper_simd_find_first_set(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_src_elt p MAYBE_UNUSED)
1076 {
1077 return mpfq_p_5_simd_find_first_set(vbase->obj, p);
1078 }
1079
1080 static int mpfq_p_5_wrapper_simd_hamming_weight(mpfq_vbase_ptr, mpfq_p_5_src_elt);
mpfq_p_5_wrapper_simd_hamming_weight(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_src_elt p MAYBE_UNUSED)1081 static int mpfq_p_5_wrapper_simd_hamming_weight(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_src_elt p MAYBE_UNUSED)
1082 {
1083 return mpfq_p_5_simd_hamming_weight(vbase->obj, p);
1084 }
1085
1086 static int mpfq_p_5_wrapper_simd_groupsize(mpfq_vbase_ptr);
mpfq_p_5_wrapper_simd_groupsize(mpfq_vbase_ptr vbase MAYBE_UNUSED)1087 static int mpfq_p_5_wrapper_simd_groupsize(mpfq_vbase_ptr vbase MAYBE_UNUSED)
1088 {
1089 return mpfq_p_5_simd_groupsize(vbase->obj);
1090 }
1091
1092 static int mpfq_p_5_wrapper_poly_scan(mpfq_vbase_ptr, mpfq_p_5_dst_poly);
mpfq_p_5_wrapper_poly_scan(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_poly w MAYBE_UNUSED)1093 static int mpfq_p_5_wrapper_poly_scan(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_poly w MAYBE_UNUSED)
1094 {
1095 return mpfq_p_5_poly_scan(vbase->obj, w);
1096 }
1097
1098 static int mpfq_p_5_wrapper_poly_fscan(mpfq_vbase_ptr, FILE *, mpfq_p_5_dst_poly);
mpfq_p_5_wrapper_poly_fscan(mpfq_vbase_ptr vbase MAYBE_UNUSED,FILE * file MAYBE_UNUSED,mpfq_p_5_dst_poly w MAYBE_UNUSED)1099 static int mpfq_p_5_wrapper_poly_fscan(mpfq_vbase_ptr vbase MAYBE_UNUSED, FILE * file MAYBE_UNUSED, mpfq_p_5_dst_poly w MAYBE_UNUSED)
1100 {
1101 return mpfq_p_5_poly_fscan(vbase->obj, file, w);
1102 }
1103
1104 static int mpfq_p_5_wrapper_poly_sscan(mpfq_vbase_ptr, mpfq_p_5_dst_poly, const char *);
mpfq_p_5_wrapper_poly_sscan(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_poly w MAYBE_UNUSED,const char * str MAYBE_UNUSED)1105 static int mpfq_p_5_wrapper_poly_sscan(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_poly w MAYBE_UNUSED, const char * str MAYBE_UNUSED)
1106 {
1107 return mpfq_p_5_poly_sscan(vbase->obj, w, str);
1108 }
1109
1110 static int mpfq_p_5_wrapper_poly_print(mpfq_vbase_ptr, mpfq_p_5_src_poly);
mpfq_p_5_wrapper_poly_print(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_src_poly w MAYBE_UNUSED)1111 static int mpfq_p_5_wrapper_poly_print(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_src_poly w MAYBE_UNUSED)
1112 {
1113 return mpfq_p_5_poly_print(vbase->obj, w);
1114 }
1115
1116 static int mpfq_p_5_wrapper_poly_fprint(mpfq_vbase_ptr, FILE *, mpfq_p_5_src_poly);
mpfq_p_5_wrapper_poly_fprint(mpfq_vbase_ptr vbase MAYBE_UNUSED,FILE * file MAYBE_UNUSED,mpfq_p_5_src_poly w MAYBE_UNUSED)1117 static int mpfq_p_5_wrapper_poly_fprint(mpfq_vbase_ptr vbase MAYBE_UNUSED, FILE * file MAYBE_UNUSED, mpfq_p_5_src_poly w MAYBE_UNUSED)
1118 {
1119 return mpfq_p_5_poly_fprint(vbase->obj, file, w);
1120 }
1121
1122 static int mpfq_p_5_wrapper_poly_asprint(mpfq_vbase_ptr, char * *, mpfq_p_5_src_poly);
mpfq_p_5_wrapper_poly_asprint(mpfq_vbase_ptr vbase MAYBE_UNUSED,char ** pstr MAYBE_UNUSED,mpfq_p_5_src_poly w MAYBE_UNUSED)1123 static int mpfq_p_5_wrapper_poly_asprint(mpfq_vbase_ptr vbase MAYBE_UNUSED, char * * pstr MAYBE_UNUSED, mpfq_p_5_src_poly w MAYBE_UNUSED)
1124 {
1125 return mpfq_p_5_poly_asprint(vbase->obj, pstr, w);
1126 }
1127
1128 static int mpfq_p_5_wrapper_poly_cmp(mpfq_vbase_ptr, mpfq_p_5_src_poly, mpfq_p_5_src_poly);
mpfq_p_5_wrapper_poly_cmp(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_src_poly u MAYBE_UNUSED,mpfq_p_5_src_poly v MAYBE_UNUSED)1129 static int mpfq_p_5_wrapper_poly_cmp(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_src_poly u MAYBE_UNUSED, mpfq_p_5_src_poly v MAYBE_UNUSED)
1130 {
1131 return mpfq_p_5_poly_cmp(vbase->obj, u, v);
1132 }
1133
1134 static void mpfq_p_5_wrapper_poly_random2(mpfq_vbase_ptr, mpfq_p_5_dst_poly, unsigned int, gmp_randstate_t);
mpfq_p_5_wrapper_poly_random2(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_poly w MAYBE_UNUSED,unsigned int n MAYBE_UNUSED,gmp_randstate_t state MAYBE_UNUSED)1135 static void mpfq_p_5_wrapper_poly_random2(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_poly w MAYBE_UNUSED, unsigned int n MAYBE_UNUSED, gmp_randstate_t state MAYBE_UNUSED)
1136 {
1137 mpfq_p_5_poly_random2(vbase->obj, w, n, state);
1138 }
1139
1140 static void mpfq_p_5_wrapper_poly_random(mpfq_vbase_ptr, mpfq_p_5_dst_poly, unsigned int, gmp_randstate_t);
mpfq_p_5_wrapper_poly_random(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_poly w MAYBE_UNUSED,unsigned int n MAYBE_UNUSED,gmp_randstate_t state MAYBE_UNUSED)1141 static void mpfq_p_5_wrapper_poly_random(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_poly w MAYBE_UNUSED, unsigned int n MAYBE_UNUSED, gmp_randstate_t state MAYBE_UNUSED)
1142 {
1143 mpfq_p_5_poly_random(vbase->obj, w, n, state);
1144 }
1145
1146 static void mpfq_p_5_wrapper_poly_xgcd(mpfq_vbase_ptr, mpfq_p_5_dst_poly, mpfq_p_5_dst_poly, mpfq_p_5_dst_poly, mpfq_p_5_src_poly, mpfq_p_5_src_poly);
mpfq_p_5_wrapper_poly_xgcd(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_poly g MAYBE_UNUSED,mpfq_p_5_dst_poly u0 MAYBE_UNUSED,mpfq_p_5_dst_poly v0 MAYBE_UNUSED,mpfq_p_5_src_poly a0 MAYBE_UNUSED,mpfq_p_5_src_poly b0 MAYBE_UNUSED)1147 static void mpfq_p_5_wrapper_poly_xgcd(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_poly g MAYBE_UNUSED, mpfq_p_5_dst_poly u0 MAYBE_UNUSED, mpfq_p_5_dst_poly v0 MAYBE_UNUSED, mpfq_p_5_src_poly a0 MAYBE_UNUSED, mpfq_p_5_src_poly b0 MAYBE_UNUSED)
1148 {
1149 mpfq_p_5_poly_xgcd(vbase->obj, g, u0, v0, a0, b0);
1150 }
1151
1152 static void mpfq_p_5_wrapper_poly_gcd(mpfq_vbase_ptr, mpfq_p_5_dst_poly, mpfq_p_5_src_poly, mpfq_p_5_src_poly);
mpfq_p_5_wrapper_poly_gcd(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_poly g MAYBE_UNUSED,mpfq_p_5_src_poly a0 MAYBE_UNUSED,mpfq_p_5_src_poly b0 MAYBE_UNUSED)1153 static void mpfq_p_5_wrapper_poly_gcd(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_poly g MAYBE_UNUSED, mpfq_p_5_src_poly a0 MAYBE_UNUSED, mpfq_p_5_src_poly b0 MAYBE_UNUSED)
1154 {
1155 mpfq_p_5_poly_gcd(vbase->obj, g, a0, b0);
1156 }
1157
1158 static void mpfq_p_5_wrapper_poly_mod_pre(mpfq_vbase_ptr, mpfq_p_5_dst_poly, mpfq_p_5_src_poly, mpfq_p_5_src_poly, mpfq_p_5_src_poly);
mpfq_p_5_wrapper_poly_mod_pre(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_poly r MAYBE_UNUSED,mpfq_p_5_src_poly q MAYBE_UNUSED,mpfq_p_5_src_poly p MAYBE_UNUSED,mpfq_p_5_src_poly irp MAYBE_UNUSED)1159 static void mpfq_p_5_wrapper_poly_mod_pre(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_poly r MAYBE_UNUSED, mpfq_p_5_src_poly q MAYBE_UNUSED, mpfq_p_5_src_poly p MAYBE_UNUSED, mpfq_p_5_src_poly irp MAYBE_UNUSED)
1160 {
1161 mpfq_p_5_poly_mod_pre(vbase->obj, r, q, p, irp);
1162 }
1163
1164 static void mpfq_p_5_wrapper_poly_precomp_mod(mpfq_vbase_ptr, mpfq_p_5_dst_poly, mpfq_p_5_src_poly);
mpfq_p_5_wrapper_poly_precomp_mod(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_poly q MAYBE_UNUSED,mpfq_p_5_src_poly p MAYBE_UNUSED)1165 static void mpfq_p_5_wrapper_poly_precomp_mod(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_poly q MAYBE_UNUSED, mpfq_p_5_src_poly p MAYBE_UNUSED)
1166 {
1167 mpfq_p_5_poly_precomp_mod(vbase->obj, q, p);
1168 }
1169
1170 static int mpfq_p_5_wrapper_poly_divmod(mpfq_vbase_ptr, mpfq_p_5_dst_poly, mpfq_p_5_dst_poly, mpfq_p_5_src_poly, mpfq_p_5_src_poly);
mpfq_p_5_wrapper_poly_divmod(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_poly q MAYBE_UNUSED,mpfq_p_5_dst_poly r MAYBE_UNUSED,mpfq_p_5_src_poly a MAYBE_UNUSED,mpfq_p_5_src_poly b MAYBE_UNUSED)1171 static int mpfq_p_5_wrapper_poly_divmod(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_poly q MAYBE_UNUSED, mpfq_p_5_dst_poly r MAYBE_UNUSED, mpfq_p_5_src_poly a MAYBE_UNUSED, mpfq_p_5_src_poly b MAYBE_UNUSED)
1172 {
1173 return mpfq_p_5_poly_divmod(vbase->obj, q, r, a, b);
1174 }
1175
1176 static void mpfq_p_5_wrapper_poly_mul(mpfq_vbase_ptr, mpfq_p_5_dst_poly, mpfq_p_5_src_poly, mpfq_p_5_src_poly);
mpfq_p_5_wrapper_poly_mul(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_poly w MAYBE_UNUSED,mpfq_p_5_src_poly u MAYBE_UNUSED,mpfq_p_5_src_poly v MAYBE_UNUSED)1177 static void mpfq_p_5_wrapper_poly_mul(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_poly w MAYBE_UNUSED, mpfq_p_5_src_poly u MAYBE_UNUSED, mpfq_p_5_src_poly v MAYBE_UNUSED)
1178 {
1179 mpfq_p_5_poly_mul(vbase->obj, w, u, v);
1180 }
1181
1182 static void mpfq_p_5_wrapper_poly_scal_mul(mpfq_vbase_ptr, mpfq_p_5_dst_poly, mpfq_p_5_src_poly, mpfq_p_5_src_elt);
mpfq_p_5_wrapper_poly_scal_mul(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_poly w MAYBE_UNUSED,mpfq_p_5_src_poly u MAYBE_UNUSED,mpfq_p_5_src_elt x MAYBE_UNUSED)1183 static void mpfq_p_5_wrapper_poly_scal_mul(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_poly w MAYBE_UNUSED, mpfq_p_5_src_poly u MAYBE_UNUSED, mpfq_p_5_src_elt x MAYBE_UNUSED)
1184 {
1185 mpfq_p_5_poly_scal_mul(vbase->obj, w, u, x);
1186 }
1187
1188 static void mpfq_p_5_wrapper_poly_neg(mpfq_vbase_ptr, mpfq_p_5_dst_poly, mpfq_p_5_src_poly);
mpfq_p_5_wrapper_poly_neg(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_poly w MAYBE_UNUSED,mpfq_p_5_src_poly u MAYBE_UNUSED)1189 static void mpfq_p_5_wrapper_poly_neg(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_poly w MAYBE_UNUSED, mpfq_p_5_src_poly u MAYBE_UNUSED)
1190 {
1191 mpfq_p_5_poly_neg(vbase->obj, w, u);
1192 }
1193
1194 static void mpfq_p_5_wrapper_poly_sub_ui(mpfq_vbase_ptr, mpfq_p_5_dst_poly, mpfq_p_5_src_poly, unsigned long);
mpfq_p_5_wrapper_poly_sub_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_poly w MAYBE_UNUSED,mpfq_p_5_src_poly u MAYBE_UNUSED,unsigned long x MAYBE_UNUSED)1195 static void mpfq_p_5_wrapper_poly_sub_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_poly w MAYBE_UNUSED, mpfq_p_5_src_poly u MAYBE_UNUSED, unsigned long x MAYBE_UNUSED)
1196 {
1197 mpfq_p_5_poly_sub_ui(vbase->obj, w, u, x);
1198 }
1199
1200 static void mpfq_p_5_wrapper_poly_add_ui(mpfq_vbase_ptr, mpfq_p_5_dst_poly, mpfq_p_5_src_poly, unsigned long);
mpfq_p_5_wrapper_poly_add_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_poly w MAYBE_UNUSED,mpfq_p_5_src_poly u MAYBE_UNUSED,unsigned long x MAYBE_UNUSED)1201 static void mpfq_p_5_wrapper_poly_add_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_poly w MAYBE_UNUSED, mpfq_p_5_src_poly u MAYBE_UNUSED, unsigned long x MAYBE_UNUSED)
1202 {
1203 mpfq_p_5_poly_add_ui(vbase->obj, w, u, x);
1204 }
1205
1206 static void mpfq_p_5_wrapper_poly_set_ui(mpfq_vbase_ptr, mpfq_p_5_dst_poly, unsigned long);
mpfq_p_5_wrapper_poly_set_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_poly w MAYBE_UNUSED,unsigned long x MAYBE_UNUSED)1207 static void mpfq_p_5_wrapper_poly_set_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_poly w MAYBE_UNUSED, unsigned long x MAYBE_UNUSED)
1208 {
1209 mpfq_p_5_poly_set_ui(vbase->obj, w, x);
1210 }
1211
1212 static void mpfq_p_5_wrapper_poly_sub(mpfq_vbase_ptr, mpfq_p_5_dst_poly, mpfq_p_5_src_poly, mpfq_p_5_src_poly);
mpfq_p_5_wrapper_poly_sub(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_poly w MAYBE_UNUSED,mpfq_p_5_src_poly u MAYBE_UNUSED,mpfq_p_5_src_poly v MAYBE_UNUSED)1213 static void mpfq_p_5_wrapper_poly_sub(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_poly w MAYBE_UNUSED, mpfq_p_5_src_poly u MAYBE_UNUSED, mpfq_p_5_src_poly v MAYBE_UNUSED)
1214 {
1215 mpfq_p_5_poly_sub(vbase->obj, w, u, v);
1216 }
1217
1218 static void mpfq_p_5_wrapper_poly_add(mpfq_vbase_ptr, mpfq_p_5_dst_poly, mpfq_p_5_src_poly, mpfq_p_5_src_poly);
mpfq_p_5_wrapper_poly_add(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_poly w MAYBE_UNUSED,mpfq_p_5_src_poly u MAYBE_UNUSED,mpfq_p_5_src_poly v MAYBE_UNUSED)1219 static void mpfq_p_5_wrapper_poly_add(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_poly w MAYBE_UNUSED, mpfq_p_5_src_poly u MAYBE_UNUSED, mpfq_p_5_src_poly v MAYBE_UNUSED)
1220 {
1221 mpfq_p_5_poly_add(vbase->obj, w, u, v);
1222 }
1223
1224 static int mpfq_p_5_wrapper_poly_deg(mpfq_vbase_ptr, mpfq_p_5_src_poly);
mpfq_p_5_wrapper_poly_deg(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_src_poly w MAYBE_UNUSED)1225 static int mpfq_p_5_wrapper_poly_deg(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_src_poly w MAYBE_UNUSED)
1226 {
1227 return mpfq_p_5_poly_deg(vbase->obj, w);
1228 }
1229
1230 static void mpfq_p_5_wrapper_poly_getcoeff(mpfq_vbase_ptr, mpfq_p_5_dst_elt, mpfq_p_5_src_poly, unsigned int);
mpfq_p_5_wrapper_poly_getcoeff(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt x MAYBE_UNUSED,mpfq_p_5_src_poly w MAYBE_UNUSED,unsigned int i MAYBE_UNUSED)1231 static void mpfq_p_5_wrapper_poly_getcoeff(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt x MAYBE_UNUSED, mpfq_p_5_src_poly w MAYBE_UNUSED, unsigned int i MAYBE_UNUSED)
1232 {
1233 mpfq_p_5_poly_getcoeff(vbase->obj, x, w, i);
1234 }
1235
1236 static void mpfq_p_5_wrapper_poly_setcoeff_ui(mpfq_vbase_ptr, mpfq_p_5_dst_poly, unsigned long, unsigned int);
mpfq_p_5_wrapper_poly_setcoeff_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_poly w MAYBE_UNUSED,unsigned long x MAYBE_UNUSED,unsigned int i MAYBE_UNUSED)1237 static void mpfq_p_5_wrapper_poly_setcoeff_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_poly w MAYBE_UNUSED, unsigned long x MAYBE_UNUSED, unsigned int i MAYBE_UNUSED)
1238 {
1239 mpfq_p_5_poly_setcoeff_ui(vbase->obj, w, x, i);
1240 }
1241
1242 static void mpfq_p_5_wrapper_poly_setcoeff(mpfq_vbase_ptr, mpfq_p_5_dst_poly, mpfq_p_5_src_elt, unsigned int);
mpfq_p_5_wrapper_poly_setcoeff(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_poly w MAYBE_UNUSED,mpfq_p_5_src_elt x MAYBE_UNUSED,unsigned int i MAYBE_UNUSED)1243 static void mpfq_p_5_wrapper_poly_setcoeff(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_poly w MAYBE_UNUSED, mpfq_p_5_src_elt x MAYBE_UNUSED, unsigned int i MAYBE_UNUSED)
1244 {
1245 mpfq_p_5_poly_setcoeff(vbase->obj, w, x, i);
1246 }
1247
1248 static void mpfq_p_5_wrapper_poly_setmonic(mpfq_vbase_ptr, mpfq_p_5_dst_poly, mpfq_p_5_src_poly);
mpfq_p_5_wrapper_poly_setmonic(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_poly q MAYBE_UNUSED,mpfq_p_5_src_poly p MAYBE_UNUSED)1249 static void mpfq_p_5_wrapper_poly_setmonic(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_poly q MAYBE_UNUSED, mpfq_p_5_src_poly p MAYBE_UNUSED)
1250 {
1251 mpfq_p_5_poly_setmonic(vbase->obj, q, p);
1252 }
1253
1254 static void mpfq_p_5_wrapper_poly_set(mpfq_vbase_ptr, mpfq_p_5_dst_poly, mpfq_p_5_src_poly);
mpfq_p_5_wrapper_poly_set(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_poly w MAYBE_UNUSED,mpfq_p_5_src_poly u MAYBE_UNUSED)1255 static void mpfq_p_5_wrapper_poly_set(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_poly w MAYBE_UNUSED, mpfq_p_5_src_poly u MAYBE_UNUSED)
1256 {
1257 mpfq_p_5_poly_set(vbase->obj, w, u);
1258 }
1259
1260 static void mpfq_p_5_wrapper_poly_clear(mpfq_vbase_ptr, mpfq_p_5_poly);
mpfq_p_5_wrapper_poly_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_poly p MAYBE_UNUSED)1261 static void mpfq_p_5_wrapper_poly_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_poly p MAYBE_UNUSED)
1262 {
1263 mpfq_p_5_poly_clear(vbase->obj, p);
1264 }
1265
1266 static void mpfq_p_5_wrapper_poly_init(mpfq_vbase_ptr, mpfq_p_5_poly, unsigned int);
mpfq_p_5_wrapper_poly_init(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_poly p MAYBE_UNUSED,unsigned int n MAYBE_UNUSED)1267 static void mpfq_p_5_wrapper_poly_init(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_poly p MAYBE_UNUSED, unsigned int n MAYBE_UNUSED)
1268 {
1269 mpfq_p_5_poly_init(vbase->obj, p, n);
1270 }
1271
1272 static ptrdiff_t mpfq_p_5_wrapper_vec_ur_elt_stride(mpfq_vbase_ptr, long);
mpfq_p_5_wrapper_vec_ur_elt_stride(mpfq_vbase_ptr vbase MAYBE_UNUSED,long n MAYBE_UNUSED)1273 static ptrdiff_t mpfq_p_5_wrapper_vec_ur_elt_stride(mpfq_vbase_ptr vbase MAYBE_UNUSED, long n MAYBE_UNUSED)
1274 {
1275 return mpfq_p_5_vec_ur_elt_stride(vbase->obj, n);
1276 }
1277
1278 static ptrdiff_t mpfq_p_5_wrapper_vec_elt_stride(mpfq_vbase_ptr, long);
mpfq_p_5_wrapper_vec_elt_stride(mpfq_vbase_ptr vbase MAYBE_UNUSED,long n MAYBE_UNUSED)1279 static ptrdiff_t mpfq_p_5_wrapper_vec_elt_stride(mpfq_vbase_ptr vbase MAYBE_UNUSED, long n MAYBE_UNUSED)
1280 {
1281 return mpfq_p_5_vec_elt_stride(vbase->obj, n);
1282 }
1283
1284 static mpfq_p_5_src_elt mpfq_p_5_wrapper_vec_ur_coeff_ptr_const(mpfq_vbase_ptr, mpfq_p_5_src_vec_ur, long);
mpfq_p_5_wrapper_vec_ur_coeff_ptr_const(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_src_vec_ur v MAYBE_UNUSED,long i MAYBE_UNUSED)1285 static mpfq_p_5_src_elt mpfq_p_5_wrapper_vec_ur_coeff_ptr_const(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_src_vec_ur v MAYBE_UNUSED, long i MAYBE_UNUSED)
1286 {
1287 return mpfq_p_5_vec_ur_coeff_ptr_const(vbase->obj, v, i);
1288 }
1289
1290 static mpfq_p_5_dst_elt mpfq_p_5_wrapper_vec_ur_coeff_ptr(mpfq_vbase_ptr, mpfq_p_5_dst_vec_ur, long);
mpfq_p_5_wrapper_vec_ur_coeff_ptr(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec_ur v MAYBE_UNUSED,long i MAYBE_UNUSED)1291 static mpfq_p_5_dst_elt mpfq_p_5_wrapper_vec_ur_coeff_ptr(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec_ur v MAYBE_UNUSED, long i MAYBE_UNUSED)
1292 {
1293 return mpfq_p_5_vec_ur_coeff_ptr(vbase->obj, v, i);
1294 }
1295
1296 static mpfq_p_5_src_vec_ur mpfq_p_5_wrapper_vec_ur_subvec_const(mpfq_vbase_ptr, mpfq_p_5_src_vec_ur, long);
mpfq_p_5_wrapper_vec_ur_subvec_const(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_src_vec_ur v MAYBE_UNUSED,long i MAYBE_UNUSED)1297 static mpfq_p_5_src_vec_ur mpfq_p_5_wrapper_vec_ur_subvec_const(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_src_vec_ur v MAYBE_UNUSED, long i MAYBE_UNUSED)
1298 {
1299 return mpfq_p_5_vec_ur_subvec_const(vbase->obj, v, i);
1300 }
1301
1302 static mpfq_p_5_dst_vec_ur mpfq_p_5_wrapper_vec_ur_subvec(mpfq_vbase_ptr, mpfq_p_5_dst_vec_ur, long);
mpfq_p_5_wrapper_vec_ur_subvec(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec_ur v MAYBE_UNUSED,long i MAYBE_UNUSED)1303 static mpfq_p_5_dst_vec_ur mpfq_p_5_wrapper_vec_ur_subvec(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec_ur v MAYBE_UNUSED, long i MAYBE_UNUSED)
1304 {
1305 return mpfq_p_5_vec_ur_subvec(vbase->obj, v, i);
1306 }
1307
1308 static void mpfq_p_5_wrapper_vec_reduce(mpfq_vbase_ptr, mpfq_p_5_dst_vec, mpfq_p_5_dst_vec_ur, unsigned long);
mpfq_p_5_wrapper_vec_reduce(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec w MAYBE_UNUSED,mpfq_p_5_dst_vec_ur u MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1309 static void mpfq_p_5_wrapper_vec_reduce(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec w MAYBE_UNUSED, mpfq_p_5_dst_vec_ur u MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1310 {
1311 mpfq_p_5_vec_reduce(vbase->obj, w, u, n);
1312 }
1313
1314 static void mpfq_p_5_wrapper_vec_conv_ur(mpfq_vbase_ptr, mpfq_p_5_dst_vec_ur, mpfq_p_5_src_vec, unsigned long, mpfq_p_5_src_vec, unsigned long);
mpfq_p_5_wrapper_vec_conv_ur(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec_ur w MAYBE_UNUSED,mpfq_p_5_src_vec u MAYBE_UNUSED,unsigned long n MAYBE_UNUSED,mpfq_p_5_src_vec v MAYBE_UNUSED,unsigned long m MAYBE_UNUSED)1315 static void mpfq_p_5_wrapper_vec_conv_ur(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec_ur w MAYBE_UNUSED, mpfq_p_5_src_vec u MAYBE_UNUSED, unsigned long n MAYBE_UNUSED, mpfq_p_5_src_vec v MAYBE_UNUSED, unsigned long m MAYBE_UNUSED)
1316 {
1317 mpfq_p_5_vec_conv_ur(vbase->obj, w, u, n, v, m);
1318 }
1319
1320 static void mpfq_p_5_wrapper_vec_scal_mul_ur(mpfq_vbase_ptr, mpfq_p_5_dst_vec_ur, mpfq_p_5_src_vec, mpfq_p_5_src_elt, unsigned long);
mpfq_p_5_wrapper_vec_scal_mul_ur(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec_ur w MAYBE_UNUSED,mpfq_p_5_src_vec u MAYBE_UNUSED,mpfq_p_5_src_elt c MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1321 static void mpfq_p_5_wrapper_vec_scal_mul_ur(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec_ur w MAYBE_UNUSED, mpfq_p_5_src_vec u MAYBE_UNUSED, mpfq_p_5_src_elt c MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1322 {
1323 mpfq_p_5_vec_scal_mul_ur(vbase->obj, w, u, c, n);
1324 }
1325
1326 static void mpfq_p_5_wrapper_vec_ur_rev(mpfq_vbase_ptr, mpfq_p_5_dst_vec_ur, mpfq_p_5_src_vec_ur, unsigned long);
mpfq_p_5_wrapper_vec_ur_rev(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec_ur w MAYBE_UNUSED,mpfq_p_5_src_vec_ur u MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1327 static void mpfq_p_5_wrapper_vec_ur_rev(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec_ur w MAYBE_UNUSED, mpfq_p_5_src_vec_ur u MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1328 {
1329 mpfq_p_5_vec_ur_rev(vbase->obj, w, u, n);
1330 }
1331
1332 static void mpfq_p_5_wrapper_vec_ur_neg(mpfq_vbase_ptr, mpfq_p_5_dst_vec_ur, mpfq_p_5_src_vec_ur, unsigned long);
mpfq_p_5_wrapper_vec_ur_neg(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec_ur w MAYBE_UNUSED,mpfq_p_5_src_vec_ur u MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1333 static void mpfq_p_5_wrapper_vec_ur_neg(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec_ur w MAYBE_UNUSED, mpfq_p_5_src_vec_ur u MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1334 {
1335 mpfq_p_5_vec_ur_neg(vbase->obj, w, u, n);
1336 }
1337
1338 static void mpfq_p_5_wrapper_vec_ur_sub(mpfq_vbase_ptr, mpfq_p_5_dst_vec_ur, mpfq_p_5_src_vec_ur, mpfq_p_5_src_vec_ur, unsigned long);
mpfq_p_5_wrapper_vec_ur_sub(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec_ur w MAYBE_UNUSED,mpfq_p_5_src_vec_ur u MAYBE_UNUSED,mpfq_p_5_src_vec_ur v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1339 static void mpfq_p_5_wrapper_vec_ur_sub(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec_ur w MAYBE_UNUSED, mpfq_p_5_src_vec_ur u MAYBE_UNUSED, mpfq_p_5_src_vec_ur v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1340 {
1341 mpfq_p_5_vec_ur_sub(vbase->obj, w, u, v, n);
1342 }
1343
1344 static void mpfq_p_5_wrapper_vec_ur_add(mpfq_vbase_ptr, mpfq_p_5_dst_vec_ur, mpfq_p_5_src_vec_ur, mpfq_p_5_src_vec_ur, unsigned long);
mpfq_p_5_wrapper_vec_ur_add(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec_ur w MAYBE_UNUSED,mpfq_p_5_src_vec_ur u MAYBE_UNUSED,mpfq_p_5_src_vec_ur v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1345 static void mpfq_p_5_wrapper_vec_ur_add(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec_ur w MAYBE_UNUSED, mpfq_p_5_src_vec_ur u MAYBE_UNUSED, mpfq_p_5_src_vec_ur v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1346 {
1347 mpfq_p_5_vec_ur_add(vbase->obj, w, u, v, n);
1348 }
1349
1350 static void mpfq_p_5_wrapper_vec_ur_getcoeff(mpfq_vbase_ptr, mpfq_p_5_dst_elt_ur, mpfq_p_5_src_vec_ur, unsigned long);
mpfq_p_5_wrapper_vec_ur_getcoeff(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt_ur x MAYBE_UNUSED,mpfq_p_5_src_vec_ur w MAYBE_UNUSED,unsigned long i MAYBE_UNUSED)1351 static void mpfq_p_5_wrapper_vec_ur_getcoeff(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt_ur x MAYBE_UNUSED, mpfq_p_5_src_vec_ur w MAYBE_UNUSED, unsigned long i MAYBE_UNUSED)
1352 {
1353 mpfq_p_5_vec_ur_getcoeff(vbase->obj, x, w, i);
1354 }
1355
1356 static void mpfq_p_5_wrapper_vec_ur_setcoeff(mpfq_vbase_ptr, mpfq_p_5_dst_vec_ur, mpfq_p_5_src_elt_ur, unsigned long);
mpfq_p_5_wrapper_vec_ur_setcoeff(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec_ur w MAYBE_UNUSED,mpfq_p_5_src_elt_ur x MAYBE_UNUSED,unsigned long i MAYBE_UNUSED)1357 static void mpfq_p_5_wrapper_vec_ur_setcoeff(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec_ur w MAYBE_UNUSED, mpfq_p_5_src_elt_ur x MAYBE_UNUSED, unsigned long i MAYBE_UNUSED)
1358 {
1359 mpfq_p_5_vec_ur_setcoeff(vbase->obj, w, x, i);
1360 }
1361
1362 static void mpfq_p_5_wrapper_vec_ur_set(mpfq_vbase_ptr, mpfq_p_5_dst_vec_ur, mpfq_p_5_src_vec_ur, unsigned long);
mpfq_p_5_wrapper_vec_ur_set(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec_ur r MAYBE_UNUSED,mpfq_p_5_src_vec_ur s MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1363 static void mpfq_p_5_wrapper_vec_ur_set(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec_ur r MAYBE_UNUSED, mpfq_p_5_src_vec_ur s MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1364 {
1365 mpfq_p_5_vec_ur_set(vbase->obj, r, s, n);
1366 }
1367
1368 static void mpfq_p_5_wrapper_vec_ur_clear(mpfq_vbase_ptr, mpfq_p_5_vec_ur *, unsigned long);
mpfq_p_5_wrapper_vec_ur_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_vec_ur * v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1369 static void mpfq_p_5_wrapper_vec_ur_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_vec_ur * v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1370 {
1371 mpfq_p_5_vec_ur_clear(vbase->obj, v, n);
1372 }
1373
1374 static void mpfq_p_5_wrapper_vec_ur_reinit(mpfq_vbase_ptr, mpfq_p_5_vec_ur *, unsigned long, unsigned long);
mpfq_p_5_wrapper_vec_ur_reinit(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_vec_ur * v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED,unsigned long m MAYBE_UNUSED)1375 static void mpfq_p_5_wrapper_vec_ur_reinit(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_vec_ur * v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED, unsigned long m MAYBE_UNUSED)
1376 {
1377 mpfq_p_5_vec_ur_reinit(vbase->obj, v, n, m);
1378 }
1379
1380 static void mpfq_p_5_wrapper_vec_ur_set_vec(mpfq_vbase_ptr, mpfq_p_5_dst_vec_ur, mpfq_p_5_src_vec, unsigned long);
mpfq_p_5_wrapper_vec_ur_set_vec(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec_ur w MAYBE_UNUSED,mpfq_p_5_src_vec u MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1381 static void mpfq_p_5_wrapper_vec_ur_set_vec(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec_ur w MAYBE_UNUSED, mpfq_p_5_src_vec u MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1382 {
1383 mpfq_p_5_vec_ur_set_vec(vbase->obj, w, u, n);
1384 }
1385
1386 static void mpfq_p_5_wrapper_vec_ur_set_zero(mpfq_vbase_ptr, mpfq_p_5_dst_vec_ur, unsigned long);
mpfq_p_5_wrapper_vec_ur_set_zero(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec_ur r MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1387 static void mpfq_p_5_wrapper_vec_ur_set_zero(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec_ur r MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1388 {
1389 mpfq_p_5_vec_ur_set_zero(vbase->obj, r, n);
1390 }
1391
1392 static void mpfq_p_5_wrapper_vec_ur_init(mpfq_vbase_ptr, mpfq_p_5_vec_ur *, unsigned long);
mpfq_p_5_wrapper_vec_ur_init(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_vec_ur * v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1393 static void mpfq_p_5_wrapper_vec_ur_init(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_vec_ur * v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1394 {
1395 mpfq_p_5_vec_ur_init(vbase->obj, v, n);
1396 }
1397
1398 static long mpfq_p_5_wrapper_vec_simd_find_first_set(mpfq_vbase_ptr, mpfq_p_5_src_vec, unsigned long);
mpfq_p_5_wrapper_vec_simd_find_first_set(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_src_vec v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1399 static long mpfq_p_5_wrapper_vec_simd_find_first_set(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_src_vec v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1400 {
1401 return mpfq_p_5_vec_simd_find_first_set(vbase->obj, v, n);
1402 }
1403
1404 static long mpfq_p_5_wrapper_vec_simd_hamming_weight(mpfq_vbase_ptr, mpfq_p_5_src_vec, unsigned long);
mpfq_p_5_wrapper_vec_simd_hamming_weight(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_src_vec v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1405 static long mpfq_p_5_wrapper_vec_simd_hamming_weight(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_src_vec v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1406 {
1407 return mpfq_p_5_vec_simd_hamming_weight(vbase->obj, v, n);
1408 }
1409
1410 static long mpfq_p_5_wrapper_vec_find_first_set(mpfq_vbase_ptr, mpfq_p_5_src_vec, unsigned long);
mpfq_p_5_wrapper_vec_find_first_set(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_src_vec v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1411 static long mpfq_p_5_wrapper_vec_find_first_set(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_src_vec v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1412 {
1413 return mpfq_p_5_vec_find_first_set(vbase->obj, v, n);
1414 }
1415
1416 static long mpfq_p_5_wrapper_vec_hamming_weight(mpfq_vbase_ptr, mpfq_p_5_src_vec, unsigned long);
mpfq_p_5_wrapper_vec_hamming_weight(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_src_vec v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1417 static long mpfq_p_5_wrapper_vec_hamming_weight(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_src_vec v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1418 {
1419 return mpfq_p_5_vec_hamming_weight(vbase->obj, v, n);
1420 }
1421
1422 static long mpfq_p_5_wrapper_vec_scan(mpfq_vbase_ptr, mpfq_p_5_vec *, unsigned long *);
mpfq_p_5_wrapper_vec_scan(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_vec * w MAYBE_UNUSED,unsigned long * n MAYBE_UNUSED)1423 static long mpfq_p_5_wrapper_vec_scan(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_vec * w MAYBE_UNUSED, unsigned long * n MAYBE_UNUSED)
1424 {
1425 return mpfq_p_5_vec_scan(vbase->obj, w, n);
1426 }
1427
1428 static long mpfq_p_5_wrapper_vec_fscan(mpfq_vbase_ptr, FILE *, mpfq_p_5_vec *, unsigned long *);
mpfq_p_5_wrapper_vec_fscan(mpfq_vbase_ptr vbase MAYBE_UNUSED,FILE * file MAYBE_UNUSED,mpfq_p_5_vec * w MAYBE_UNUSED,unsigned long * n MAYBE_UNUSED)1429 static long mpfq_p_5_wrapper_vec_fscan(mpfq_vbase_ptr vbase MAYBE_UNUSED, FILE * file MAYBE_UNUSED, mpfq_p_5_vec * w MAYBE_UNUSED, unsigned long * n MAYBE_UNUSED)
1430 {
1431 return mpfq_p_5_vec_fscan(vbase->obj, file, w, n);
1432 }
1433
1434 static long mpfq_p_5_wrapper_vec_sscan(mpfq_vbase_ptr, mpfq_p_5_vec *, unsigned long *, const char *);
mpfq_p_5_wrapper_vec_sscan(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_vec * w MAYBE_UNUSED,unsigned long * n MAYBE_UNUSED,const char * str MAYBE_UNUSED)1435 static long mpfq_p_5_wrapper_vec_sscan(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_vec * w MAYBE_UNUSED, unsigned long * n MAYBE_UNUSED, const char * str MAYBE_UNUSED)
1436 {
1437 return mpfq_p_5_vec_sscan(vbase->obj, w, n, str);
1438 }
1439
1440 static long mpfq_p_5_wrapper_vec_print(mpfq_vbase_ptr, mpfq_p_5_src_vec, unsigned long);
mpfq_p_5_wrapper_vec_print(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_src_vec w MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1441 static long mpfq_p_5_wrapper_vec_print(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_src_vec w MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1442 {
1443 return mpfq_p_5_vec_print(vbase->obj, w, n);
1444 }
1445
1446 static long mpfq_p_5_wrapper_vec_fprint(mpfq_vbase_ptr, FILE *, mpfq_p_5_src_vec, unsigned long);
mpfq_p_5_wrapper_vec_fprint(mpfq_vbase_ptr vbase MAYBE_UNUSED,FILE * file MAYBE_UNUSED,mpfq_p_5_src_vec w MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1447 static long mpfq_p_5_wrapper_vec_fprint(mpfq_vbase_ptr vbase MAYBE_UNUSED, FILE * file MAYBE_UNUSED, mpfq_p_5_src_vec w MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1448 {
1449 return mpfq_p_5_vec_fprint(vbase->obj, file, w, n);
1450 }
1451
1452 static long mpfq_p_5_wrapper_vec_asprint(mpfq_vbase_ptr, char * *, mpfq_p_5_src_vec, unsigned long);
mpfq_p_5_wrapper_vec_asprint(mpfq_vbase_ptr vbase MAYBE_UNUSED,char ** pstr MAYBE_UNUSED,mpfq_p_5_src_vec w MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1453 static long mpfq_p_5_wrapper_vec_asprint(mpfq_vbase_ptr vbase MAYBE_UNUSED, char * * pstr MAYBE_UNUSED, mpfq_p_5_src_vec w MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1454 {
1455 return mpfq_p_5_vec_asprint(vbase->obj, pstr, w, n);
1456 }
1457
1458 static mpfq_p_5_src_elt mpfq_p_5_wrapper_vec_coeff_ptr_const(mpfq_vbase_ptr, mpfq_p_5_src_vec, long);
mpfq_p_5_wrapper_vec_coeff_ptr_const(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_src_vec v MAYBE_UNUSED,long i MAYBE_UNUSED)1459 static mpfq_p_5_src_elt mpfq_p_5_wrapper_vec_coeff_ptr_const(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_src_vec v MAYBE_UNUSED, long i MAYBE_UNUSED)
1460 {
1461 return mpfq_p_5_vec_coeff_ptr_const(vbase->obj, v, i);
1462 }
1463
1464 static mpfq_p_5_dst_elt mpfq_p_5_wrapper_vec_coeff_ptr(mpfq_vbase_ptr, mpfq_p_5_dst_vec, long);
mpfq_p_5_wrapper_vec_coeff_ptr(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec v MAYBE_UNUSED,long i MAYBE_UNUSED)1465 static mpfq_p_5_dst_elt mpfq_p_5_wrapper_vec_coeff_ptr(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec v MAYBE_UNUSED, long i MAYBE_UNUSED)
1466 {
1467 return mpfq_p_5_vec_coeff_ptr(vbase->obj, v, i);
1468 }
1469
1470 static mpfq_p_5_src_vec mpfq_p_5_wrapper_vec_subvec_const(mpfq_vbase_ptr, mpfq_p_5_src_vec, long);
mpfq_p_5_wrapper_vec_subvec_const(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_src_vec v MAYBE_UNUSED,long i MAYBE_UNUSED)1471 static mpfq_p_5_src_vec mpfq_p_5_wrapper_vec_subvec_const(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_src_vec v MAYBE_UNUSED, long i MAYBE_UNUSED)
1472 {
1473 return mpfq_p_5_vec_subvec_const(vbase->obj, v, i);
1474 }
1475
1476 static mpfq_p_5_dst_vec mpfq_p_5_wrapper_vec_subvec(mpfq_vbase_ptr, mpfq_p_5_dst_vec, long);
mpfq_p_5_wrapper_vec_subvec(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec v MAYBE_UNUSED,long i MAYBE_UNUSED)1477 static mpfq_p_5_dst_vec mpfq_p_5_wrapper_vec_subvec(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec v MAYBE_UNUSED, long i MAYBE_UNUSED)
1478 {
1479 return mpfq_p_5_vec_subvec(vbase->obj, v, i);
1480 }
1481
1482 static long mpfq_p_5_wrapper_vec_is_zero(mpfq_vbase_ptr, mpfq_p_5_src_vec, unsigned long);
mpfq_p_5_wrapper_vec_is_zero(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_src_vec v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1483 static long mpfq_p_5_wrapper_vec_is_zero(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_src_vec v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1484 {
1485 return mpfq_p_5_vec_is_zero(vbase->obj, v, n);
1486 }
1487
1488 static long mpfq_p_5_wrapper_vec_cmp(mpfq_vbase_ptr, mpfq_p_5_src_vec, mpfq_p_5_src_vec, unsigned long);
mpfq_p_5_wrapper_vec_cmp(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_src_vec u MAYBE_UNUSED,mpfq_p_5_src_vec v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1489 static long mpfq_p_5_wrapper_vec_cmp(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_src_vec u MAYBE_UNUSED, mpfq_p_5_src_vec v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1490 {
1491 return mpfq_p_5_vec_cmp(vbase->obj, u, v, n);
1492 }
1493
1494 static void mpfq_p_5_wrapper_vec_random2(mpfq_vbase_ptr, mpfq_p_5_dst_vec, unsigned long, gmp_randstate_t);
mpfq_p_5_wrapper_vec_random2(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec w MAYBE_UNUSED,unsigned long n MAYBE_UNUSED,gmp_randstate_t state MAYBE_UNUSED)1495 static void mpfq_p_5_wrapper_vec_random2(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec w MAYBE_UNUSED, unsigned long n MAYBE_UNUSED, gmp_randstate_t state MAYBE_UNUSED)
1496 {
1497 mpfq_p_5_vec_random2(vbase->obj, w, n, state);
1498 }
1499
1500 static void mpfq_p_5_wrapper_vec_random(mpfq_vbase_ptr, mpfq_p_5_dst_vec, unsigned long, gmp_randstate_t);
mpfq_p_5_wrapper_vec_random(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec w MAYBE_UNUSED,unsigned long n MAYBE_UNUSED,gmp_randstate_t state MAYBE_UNUSED)1501 static void mpfq_p_5_wrapper_vec_random(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec w MAYBE_UNUSED, unsigned long n MAYBE_UNUSED, gmp_randstate_t state MAYBE_UNUSED)
1502 {
1503 mpfq_p_5_vec_random(vbase->obj, w, n, state);
1504 }
1505
1506 static void mpfq_p_5_wrapper_vec_conv(mpfq_vbase_ptr, mpfq_p_5_dst_vec, mpfq_p_5_src_vec, unsigned long, mpfq_p_5_src_vec, unsigned long);
mpfq_p_5_wrapper_vec_conv(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec w MAYBE_UNUSED,mpfq_p_5_src_vec u MAYBE_UNUSED,unsigned long n MAYBE_UNUSED,mpfq_p_5_src_vec v MAYBE_UNUSED,unsigned long m MAYBE_UNUSED)1507 static void mpfq_p_5_wrapper_vec_conv(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec w MAYBE_UNUSED, mpfq_p_5_src_vec u MAYBE_UNUSED, unsigned long n MAYBE_UNUSED, mpfq_p_5_src_vec v MAYBE_UNUSED, unsigned long m MAYBE_UNUSED)
1508 {
1509 mpfq_p_5_vec_conv(vbase->obj, w, u, n, v, m);
1510 }
1511
1512 static void mpfq_p_5_wrapper_vec_scal_mul(mpfq_vbase_ptr, mpfq_p_5_dst_vec, mpfq_p_5_src_vec, mpfq_p_5_src_elt, unsigned long);
mpfq_p_5_wrapper_vec_scal_mul(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec w MAYBE_UNUSED,mpfq_p_5_src_vec u MAYBE_UNUSED,mpfq_p_5_src_elt c MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1513 static void mpfq_p_5_wrapper_vec_scal_mul(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec w MAYBE_UNUSED, mpfq_p_5_src_vec u MAYBE_UNUSED, mpfq_p_5_src_elt c MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1514 {
1515 mpfq_p_5_vec_scal_mul(vbase->obj, w, u, c, n);
1516 }
1517
1518 static void mpfq_p_5_wrapper_vec_sub(mpfq_vbase_ptr, mpfq_p_5_dst_vec, mpfq_p_5_src_vec, mpfq_p_5_src_vec, unsigned long);
mpfq_p_5_wrapper_vec_sub(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec w MAYBE_UNUSED,mpfq_p_5_src_vec u MAYBE_UNUSED,mpfq_p_5_src_vec v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1519 static void mpfq_p_5_wrapper_vec_sub(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec w MAYBE_UNUSED, mpfq_p_5_src_vec u MAYBE_UNUSED, mpfq_p_5_src_vec v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1520 {
1521 mpfq_p_5_vec_sub(vbase->obj, w, u, v, n);
1522 }
1523
1524 static void mpfq_p_5_wrapper_vec_rev(mpfq_vbase_ptr, mpfq_p_5_dst_vec, mpfq_p_5_src_vec, unsigned long);
mpfq_p_5_wrapper_vec_rev(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec w MAYBE_UNUSED,mpfq_p_5_src_vec u MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1525 static void mpfq_p_5_wrapper_vec_rev(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec w MAYBE_UNUSED, mpfq_p_5_src_vec u MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1526 {
1527 mpfq_p_5_vec_rev(vbase->obj, w, u, n);
1528 }
1529
1530 static void mpfq_p_5_wrapper_vec_neg(mpfq_vbase_ptr, mpfq_p_5_dst_vec, mpfq_p_5_src_vec, unsigned long);
mpfq_p_5_wrapper_vec_neg(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec w MAYBE_UNUSED,mpfq_p_5_src_vec u MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1531 static void mpfq_p_5_wrapper_vec_neg(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec w MAYBE_UNUSED, mpfq_p_5_src_vec u MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1532 {
1533 mpfq_p_5_vec_neg(vbase->obj, w, u, n);
1534 }
1535
1536 static void mpfq_p_5_wrapper_vec_add(mpfq_vbase_ptr, mpfq_p_5_dst_vec, mpfq_p_5_src_vec, mpfq_p_5_src_vec, unsigned long);
mpfq_p_5_wrapper_vec_add(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec w MAYBE_UNUSED,mpfq_p_5_src_vec u MAYBE_UNUSED,mpfq_p_5_src_vec v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1537 static void mpfq_p_5_wrapper_vec_add(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec w MAYBE_UNUSED, mpfq_p_5_src_vec u MAYBE_UNUSED, mpfq_p_5_src_vec v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1538 {
1539 mpfq_p_5_vec_add(vbase->obj, w, u, v, n);
1540 }
1541
1542 static void mpfq_p_5_wrapper_vec_getcoeff(mpfq_vbase_ptr, mpfq_p_5_dst_elt, mpfq_p_5_src_vec, unsigned long);
mpfq_p_5_wrapper_vec_getcoeff(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt x MAYBE_UNUSED,mpfq_p_5_src_vec w MAYBE_UNUSED,unsigned long i MAYBE_UNUSED)1543 static void mpfq_p_5_wrapper_vec_getcoeff(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt x MAYBE_UNUSED, mpfq_p_5_src_vec w MAYBE_UNUSED, unsigned long i MAYBE_UNUSED)
1544 {
1545 mpfq_p_5_vec_getcoeff(vbase->obj, x, w, i);
1546 }
1547
1548 static void mpfq_p_5_wrapper_vec_setcoeff_ui(mpfq_vbase_ptr, mpfq_p_5_dst_vec, unsigned long, unsigned long);
mpfq_p_5_wrapper_vec_setcoeff_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec w MAYBE_UNUSED,unsigned long x MAYBE_UNUSED,unsigned long i MAYBE_UNUSED)1549 static void mpfq_p_5_wrapper_vec_setcoeff_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec w MAYBE_UNUSED, unsigned long x MAYBE_UNUSED, unsigned long i MAYBE_UNUSED)
1550 {
1551 mpfq_p_5_vec_setcoeff_ui(vbase->obj, w, x, i);
1552 }
1553
1554 static void mpfq_p_5_wrapper_vec_setcoeff(mpfq_vbase_ptr, mpfq_p_5_dst_vec, mpfq_p_5_src_elt, unsigned long);
mpfq_p_5_wrapper_vec_setcoeff(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec w MAYBE_UNUSED,mpfq_p_5_src_elt x MAYBE_UNUSED,unsigned long i MAYBE_UNUSED)1555 static void mpfq_p_5_wrapper_vec_setcoeff(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec w MAYBE_UNUSED, mpfq_p_5_src_elt x MAYBE_UNUSED, unsigned long i MAYBE_UNUSED)
1556 {
1557 mpfq_p_5_vec_setcoeff(vbase->obj, w, x, i);
1558 }
1559
1560 static void mpfq_p_5_wrapper_vec_set_zero(mpfq_vbase_ptr, mpfq_p_5_dst_vec, unsigned long);
mpfq_p_5_wrapper_vec_set_zero(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec r MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1561 static void mpfq_p_5_wrapper_vec_set_zero(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec r MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1562 {
1563 mpfq_p_5_vec_set_zero(vbase->obj, r, n);
1564 }
1565
1566 static void mpfq_p_5_wrapper_vec_set(mpfq_vbase_ptr, mpfq_p_5_dst_vec, mpfq_p_5_src_vec, unsigned long);
mpfq_p_5_wrapper_vec_set(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_vec r MAYBE_UNUSED,mpfq_p_5_src_vec s MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1567 static void mpfq_p_5_wrapper_vec_set(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_vec r MAYBE_UNUSED, mpfq_p_5_src_vec s MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1568 {
1569 mpfq_p_5_vec_set(vbase->obj, r, s, n);
1570 }
1571
1572 static void mpfq_p_5_wrapper_vec_clear(mpfq_vbase_ptr, mpfq_p_5_vec *, unsigned long);
mpfq_p_5_wrapper_vec_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_vec * v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1573 static void mpfq_p_5_wrapper_vec_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_vec * v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1574 {
1575 mpfq_p_5_vec_clear(vbase->obj, v, n);
1576 }
1577
1578 static void mpfq_p_5_wrapper_vec_reinit(mpfq_vbase_ptr, mpfq_p_5_vec *, unsigned long, unsigned long);
mpfq_p_5_wrapper_vec_reinit(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_vec * v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED,unsigned long m MAYBE_UNUSED)1579 static void mpfq_p_5_wrapper_vec_reinit(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_vec * v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED, unsigned long m MAYBE_UNUSED)
1580 {
1581 mpfq_p_5_vec_reinit(vbase->obj, v, n, m);
1582 }
1583
1584 static void mpfq_p_5_wrapper_vec_init(mpfq_vbase_ptr, mpfq_p_5_vec *, unsigned long);
mpfq_p_5_wrapper_vec_init(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_vec * v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1585 static void mpfq_p_5_wrapper_vec_init(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_vec * v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1586 {
1587 mpfq_p_5_vec_init(vbase->obj, v, n);
1588 }
1589
1590 static int mpfq_p_5_wrapper_scan(mpfq_vbase_ptr, mpfq_p_5_dst_elt);
mpfq_p_5_wrapper_scan(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt x MAYBE_UNUSED)1591 static int mpfq_p_5_wrapper_scan(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt x MAYBE_UNUSED)
1592 {
1593 return mpfq_p_5_scan(vbase->obj, x);
1594 }
1595
1596 static int mpfq_p_5_wrapper_fscan(mpfq_vbase_ptr, FILE *, mpfq_p_5_dst_elt);
mpfq_p_5_wrapper_fscan(mpfq_vbase_ptr vbase MAYBE_UNUSED,FILE * file MAYBE_UNUSED,mpfq_p_5_dst_elt z MAYBE_UNUSED)1597 static int mpfq_p_5_wrapper_fscan(mpfq_vbase_ptr vbase MAYBE_UNUSED, FILE * file MAYBE_UNUSED, mpfq_p_5_dst_elt z MAYBE_UNUSED)
1598 {
1599 return mpfq_p_5_fscan(vbase->obj, file, z);
1600 }
1601
1602 static int mpfq_p_5_wrapper_sscan(mpfq_vbase_ptr, mpfq_p_5_dst_elt, const char *);
mpfq_p_5_wrapper_sscan(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt z MAYBE_UNUSED,const char * str MAYBE_UNUSED)1603 static int mpfq_p_5_wrapper_sscan(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt z MAYBE_UNUSED, const char * str MAYBE_UNUSED)
1604 {
1605 return mpfq_p_5_sscan(vbase->obj, z, str);
1606 }
1607
1608 static int mpfq_p_5_wrapper_print(mpfq_vbase_ptr, mpfq_p_5_src_elt);
mpfq_p_5_wrapper_print(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_src_elt x MAYBE_UNUSED)1609 static int mpfq_p_5_wrapper_print(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_src_elt x MAYBE_UNUSED)
1610 {
1611 return mpfq_p_5_print(vbase->obj, x);
1612 }
1613
1614 static int mpfq_p_5_wrapper_fprint(mpfq_vbase_ptr, FILE *, mpfq_p_5_src_elt);
mpfq_p_5_wrapper_fprint(mpfq_vbase_ptr vbase MAYBE_UNUSED,FILE * file MAYBE_UNUSED,mpfq_p_5_src_elt x MAYBE_UNUSED)1615 static int mpfq_p_5_wrapper_fprint(mpfq_vbase_ptr vbase MAYBE_UNUSED, FILE * file MAYBE_UNUSED, mpfq_p_5_src_elt x MAYBE_UNUSED)
1616 {
1617 return mpfq_p_5_fprint(vbase->obj, file, x);
1618 }
1619
1620 static int mpfq_p_5_wrapper_asprint(mpfq_vbase_ptr, char * *, mpfq_p_5_src_elt);
mpfq_p_5_wrapper_asprint(mpfq_vbase_ptr vbase MAYBE_UNUSED,char ** pstr MAYBE_UNUSED,mpfq_p_5_src_elt x MAYBE_UNUSED)1621 static int mpfq_p_5_wrapper_asprint(mpfq_vbase_ptr vbase MAYBE_UNUSED, char * * pstr MAYBE_UNUSED, mpfq_p_5_src_elt x MAYBE_UNUSED)
1622 {
1623 return mpfq_p_5_asprint(vbase->obj, pstr, x);
1624 }
1625
1626 static int mpfq_p_5_wrapper_is_zero(mpfq_vbase_ptr, mpfq_p_5_src_elt);
mpfq_p_5_wrapper_is_zero(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_src_elt r MAYBE_UNUSED)1627 static int mpfq_p_5_wrapper_is_zero(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_src_elt r MAYBE_UNUSED)
1628 {
1629 return mpfq_p_5_is_zero(vbase->obj, r);
1630 }
1631
1632 static int mpfq_p_5_wrapper_cmp_ui(mpfq_vbase_ptr, mpfq_p_5_src_elt, unsigned long);
mpfq_p_5_wrapper_cmp_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_src_elt x MAYBE_UNUSED,unsigned long y MAYBE_UNUSED)1633 static int mpfq_p_5_wrapper_cmp_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_src_elt x MAYBE_UNUSED, unsigned long y MAYBE_UNUSED)
1634 {
1635 return mpfq_p_5_cmp_ui(vbase->obj, x, y);
1636 }
1637
1638 static int mpfq_p_5_wrapper_cmp(mpfq_vbase_ptr, mpfq_p_5_src_elt, mpfq_p_5_src_elt);
mpfq_p_5_wrapper_cmp(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_src_elt x MAYBE_UNUSED,mpfq_p_5_src_elt y MAYBE_UNUSED)1639 static int mpfq_p_5_wrapper_cmp(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_src_elt x MAYBE_UNUSED, mpfq_p_5_src_elt y MAYBE_UNUSED)
1640 {
1641 return mpfq_p_5_cmp(vbase->obj, x, y);
1642 }
1643
1644 static void mpfq_p_5_wrapper_addmul_si_ur(mpfq_vbase_ptr, mpfq_p_5_dst_elt_ur, mpfq_p_5_src_elt, long);
mpfq_p_5_wrapper_addmul_si_ur(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt_ur w MAYBE_UNUSED,mpfq_p_5_src_elt u MAYBE_UNUSED,long v MAYBE_UNUSED)1645 static void mpfq_p_5_wrapper_addmul_si_ur(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt_ur w MAYBE_UNUSED, mpfq_p_5_src_elt u MAYBE_UNUSED, long v MAYBE_UNUSED)
1646 {
1647 mpfq_p_5_addmul_si_ur(vbase->obj, w, u, v);
1648 }
1649
1650 static void mpfq_p_5_wrapper_reduce(mpfq_vbase_ptr, mpfq_p_5_dst_elt, mpfq_p_5_dst_elt_ur);
mpfq_p_5_wrapper_reduce(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt z MAYBE_UNUSED,mpfq_p_5_dst_elt_ur x MAYBE_UNUSED)1651 static void mpfq_p_5_wrapper_reduce(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt z MAYBE_UNUSED, mpfq_p_5_dst_elt_ur x MAYBE_UNUSED)
1652 {
1653 mpfq_p_5_reduce(vbase->obj, z, x);
1654 }
1655
1656 static void mpfq_p_5_wrapper_sqr_ur(mpfq_vbase_ptr, mpfq_p_5_dst_elt_ur, mpfq_p_5_src_elt);
mpfq_p_5_wrapper_sqr_ur(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt_ur z MAYBE_UNUSED,mpfq_p_5_src_elt x MAYBE_UNUSED)1657 static void mpfq_p_5_wrapper_sqr_ur(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt_ur z MAYBE_UNUSED, mpfq_p_5_src_elt x MAYBE_UNUSED)
1658 {
1659 mpfq_p_5_sqr_ur(vbase->obj, z, x);
1660 }
1661
1662 static void mpfq_p_5_wrapper_mul_ur(mpfq_vbase_ptr, mpfq_p_5_dst_elt_ur, mpfq_p_5_src_elt, mpfq_p_5_src_elt);
mpfq_p_5_wrapper_mul_ur(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt_ur z MAYBE_UNUSED,mpfq_p_5_src_elt x MAYBE_UNUSED,mpfq_p_5_src_elt y MAYBE_UNUSED)1663 static void mpfq_p_5_wrapper_mul_ur(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt_ur z MAYBE_UNUSED, mpfq_p_5_src_elt x MAYBE_UNUSED, mpfq_p_5_src_elt y MAYBE_UNUSED)
1664 {
1665 mpfq_p_5_mul_ur(vbase->obj, z, x, y);
1666 }
1667
1668 static void mpfq_p_5_wrapper_elt_ur_sub(mpfq_vbase_ptr, mpfq_p_5_dst_elt_ur, mpfq_p_5_src_elt_ur, mpfq_p_5_src_elt_ur);
mpfq_p_5_wrapper_elt_ur_sub(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt_ur z MAYBE_UNUSED,mpfq_p_5_src_elt_ur x MAYBE_UNUSED,mpfq_p_5_src_elt_ur y MAYBE_UNUSED)1669 static void mpfq_p_5_wrapper_elt_ur_sub(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt_ur z MAYBE_UNUSED, mpfq_p_5_src_elt_ur x MAYBE_UNUSED, mpfq_p_5_src_elt_ur y MAYBE_UNUSED)
1670 {
1671 mpfq_p_5_elt_ur_sub(vbase->obj, z, x, y);
1672 }
1673
1674 static void mpfq_p_5_wrapper_elt_ur_neg(mpfq_vbase_ptr, mpfq_p_5_dst_elt_ur, mpfq_p_5_src_elt_ur);
mpfq_p_5_wrapper_elt_ur_neg(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt_ur z MAYBE_UNUSED,mpfq_p_5_src_elt_ur x MAYBE_UNUSED)1675 static void mpfq_p_5_wrapper_elt_ur_neg(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt_ur z MAYBE_UNUSED, mpfq_p_5_src_elt_ur x MAYBE_UNUSED)
1676 {
1677 mpfq_p_5_elt_ur_neg(vbase->obj, z, x);
1678 }
1679
1680 static void mpfq_p_5_wrapper_elt_ur_add(mpfq_vbase_ptr, mpfq_p_5_dst_elt_ur, mpfq_p_5_src_elt_ur, mpfq_p_5_src_elt_ur);
mpfq_p_5_wrapper_elt_ur_add(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt_ur z MAYBE_UNUSED,mpfq_p_5_src_elt_ur x MAYBE_UNUSED,mpfq_p_5_src_elt_ur y MAYBE_UNUSED)1681 static void mpfq_p_5_wrapper_elt_ur_add(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt_ur z MAYBE_UNUSED, mpfq_p_5_src_elt_ur x MAYBE_UNUSED, mpfq_p_5_src_elt_ur y MAYBE_UNUSED)
1682 {
1683 mpfq_p_5_elt_ur_add(vbase->obj, z, x, y);
1684 }
1685
1686 static void mpfq_p_5_wrapper_elt_ur_set_ui(mpfq_vbase_ptr, mpfq_p_5_dst_elt_ur, unsigned long);
mpfq_p_5_wrapper_elt_ur_set_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt_ur r MAYBE_UNUSED,unsigned long x MAYBE_UNUSED)1687 static void mpfq_p_5_wrapper_elt_ur_set_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt_ur r MAYBE_UNUSED, unsigned long x MAYBE_UNUSED)
1688 {
1689 mpfq_p_5_elt_ur_set_ui(vbase->obj, r, x);
1690 }
1691
1692 static void mpfq_p_5_wrapper_elt_ur_set_zero(mpfq_vbase_ptr, mpfq_p_5_dst_elt_ur);
mpfq_p_5_wrapper_elt_ur_set_zero(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt_ur r MAYBE_UNUSED)1693 static void mpfq_p_5_wrapper_elt_ur_set_zero(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt_ur r MAYBE_UNUSED)
1694 {
1695 mpfq_p_5_elt_ur_set_zero(vbase->obj, r);
1696 }
1697
1698 static void mpfq_p_5_wrapper_elt_ur_set_elt(mpfq_vbase_ptr, mpfq_p_5_dst_elt_ur, mpfq_p_5_src_elt);
mpfq_p_5_wrapper_elt_ur_set_elt(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt_ur r MAYBE_UNUSED,mpfq_p_5_src_elt s MAYBE_UNUSED)1699 static void mpfq_p_5_wrapper_elt_ur_set_elt(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt_ur r MAYBE_UNUSED, mpfq_p_5_src_elt s MAYBE_UNUSED)
1700 {
1701 mpfq_p_5_elt_ur_set_elt(vbase->obj, r, s);
1702 }
1703
1704 static void mpfq_p_5_wrapper_elt_ur_set(mpfq_vbase_ptr, mpfq_p_5_dst_elt_ur, mpfq_p_5_src_elt_ur);
mpfq_p_5_wrapper_elt_ur_set(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt_ur z MAYBE_UNUSED,mpfq_p_5_src_elt_ur x MAYBE_UNUSED)1705 static void mpfq_p_5_wrapper_elt_ur_set(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt_ur z MAYBE_UNUSED, mpfq_p_5_src_elt_ur x MAYBE_UNUSED)
1706 {
1707 mpfq_p_5_elt_ur_set(vbase->obj, z, x);
1708 }
1709
1710 static ptrdiff_t mpfq_p_5_wrapper_elt_ur_stride(mpfq_vbase_ptr);
mpfq_p_5_wrapper_elt_ur_stride(mpfq_vbase_ptr vbase MAYBE_UNUSED)1711 static ptrdiff_t mpfq_p_5_wrapper_elt_ur_stride(mpfq_vbase_ptr vbase MAYBE_UNUSED)
1712 {
1713 return mpfq_p_5_elt_ur_stride(vbase->obj);
1714 }
1715
1716 static void mpfq_p_5_wrapper_elt_ur_clear(mpfq_vbase_ptr, mpfq_p_5_elt_ur *);
mpfq_p_5_wrapper_elt_ur_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_elt_ur * x MAYBE_UNUSED)1717 static void mpfq_p_5_wrapper_elt_ur_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_elt_ur * x MAYBE_UNUSED)
1718 {
1719 mpfq_p_5_elt_ur_clear(vbase->obj, x);
1720 }
1721
1722 static void mpfq_p_5_wrapper_elt_ur_init(mpfq_vbase_ptr, mpfq_p_5_elt_ur *);
mpfq_p_5_wrapper_elt_ur_init(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_elt_ur * x MAYBE_UNUSED)1723 static void mpfq_p_5_wrapper_elt_ur_init(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_elt_ur * x MAYBE_UNUSED)
1724 {
1725 mpfq_p_5_elt_ur_init(vbase->obj, x);
1726 }
1727
1728 static void mpfq_p_5_wrapper_hadamard(mpfq_vbase_ptr, mpfq_p_5_dst_elt, mpfq_p_5_dst_elt, mpfq_p_5_dst_elt, mpfq_p_5_dst_elt);
mpfq_p_5_wrapper_hadamard(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt x MAYBE_UNUSED,mpfq_p_5_dst_elt y MAYBE_UNUSED,mpfq_p_5_dst_elt z MAYBE_UNUSED,mpfq_p_5_dst_elt t MAYBE_UNUSED)1729 static void mpfq_p_5_wrapper_hadamard(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt x MAYBE_UNUSED, mpfq_p_5_dst_elt y MAYBE_UNUSED, mpfq_p_5_dst_elt z MAYBE_UNUSED, mpfq_p_5_dst_elt t MAYBE_UNUSED)
1730 {
1731 mpfq_p_5_hadamard(vbase->obj, x, y, z, t);
1732 }
1733
1734 static int mpfq_p_5_wrapper_inv(mpfq_vbase_ptr, mpfq_p_5_dst_elt, mpfq_p_5_src_elt);
mpfq_p_5_wrapper_inv(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt z MAYBE_UNUSED,mpfq_p_5_src_elt x MAYBE_UNUSED)1735 static int mpfq_p_5_wrapper_inv(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt z MAYBE_UNUSED, mpfq_p_5_src_elt x MAYBE_UNUSED)
1736 {
1737 return mpfq_p_5_inv(vbase->obj, z, x);
1738 }
1739
1740 static void mpfq_p_5_wrapper_normalize(mpfq_vbase_ptr, mpfq_p_5_dst_elt);
mpfq_p_5_wrapper_normalize(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt x MAYBE_UNUSED)1741 static void mpfq_p_5_wrapper_normalize(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt x MAYBE_UNUSED)
1742 {
1743 mpfq_p_5_normalize(vbase->obj, x);
1744 }
1745
1746 static void mpfq_p_5_wrapper_mul_ui(mpfq_vbase_ptr, mpfq_p_5_dst_elt, mpfq_p_5_src_elt, unsigned long);
mpfq_p_5_wrapper_mul_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt z MAYBE_UNUSED,mpfq_p_5_src_elt x MAYBE_UNUSED,unsigned long y MAYBE_UNUSED)1747 static void mpfq_p_5_wrapper_mul_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt z MAYBE_UNUSED, mpfq_p_5_src_elt x MAYBE_UNUSED, unsigned long y MAYBE_UNUSED)
1748 {
1749 mpfq_p_5_mul_ui(vbase->obj, z, x, y);
1750 }
1751
1752 static void mpfq_p_5_wrapper_sub_ui(mpfq_vbase_ptr, mpfq_p_5_dst_elt, mpfq_p_5_src_elt, unsigned long);
mpfq_p_5_wrapper_sub_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt z MAYBE_UNUSED,mpfq_p_5_src_elt x MAYBE_UNUSED,unsigned long y MAYBE_UNUSED)1753 static void mpfq_p_5_wrapper_sub_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt z MAYBE_UNUSED, mpfq_p_5_src_elt x MAYBE_UNUSED, unsigned long y MAYBE_UNUSED)
1754 {
1755 mpfq_p_5_sub_ui(vbase->obj, z, x, y);
1756 }
1757
1758 static void mpfq_p_5_wrapper_add_ui(mpfq_vbase_ptr, mpfq_p_5_dst_elt, mpfq_p_5_src_elt, unsigned long);
mpfq_p_5_wrapper_add_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt z MAYBE_UNUSED,mpfq_p_5_src_elt x MAYBE_UNUSED,unsigned long y MAYBE_UNUSED)1759 static void mpfq_p_5_wrapper_add_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt z MAYBE_UNUSED, mpfq_p_5_src_elt x MAYBE_UNUSED, unsigned long y MAYBE_UNUSED)
1760 {
1761 mpfq_p_5_add_ui(vbase->obj, z, x, y);
1762 }
1763
1764 static void mpfq_p_5_wrapper_frobenius(mpfq_vbase_ptr, mpfq_p_5_dst_elt, mpfq_p_5_src_elt);
mpfq_p_5_wrapper_frobenius(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt x MAYBE_UNUSED,mpfq_p_5_src_elt y MAYBE_UNUSED)1765 static void mpfq_p_5_wrapper_frobenius(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt x MAYBE_UNUSED, mpfq_p_5_src_elt y MAYBE_UNUSED)
1766 {
1767 mpfq_p_5_frobenius(vbase->obj, x, y);
1768 }
1769
1770 static void mpfq_p_5_wrapper_powz(mpfq_vbase_ptr, mpfq_p_5_dst_elt, mpfq_p_5_src_elt, mpz_srcptr);
mpfq_p_5_wrapper_powz(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt y MAYBE_UNUSED,mpfq_p_5_src_elt x MAYBE_UNUSED,mpz_srcptr z MAYBE_UNUSED)1771 static void mpfq_p_5_wrapper_powz(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt y MAYBE_UNUSED, mpfq_p_5_src_elt x MAYBE_UNUSED, mpz_srcptr z MAYBE_UNUSED)
1772 {
1773 mpfq_p_5_powz(vbase->obj, y, x, z);
1774 }
1775
1776 static void mpfq_p_5_wrapper_pow(mpfq_vbase_ptr, mpfq_p_5_dst_elt, mpfq_p_5_src_elt, unsigned long *, size_t);
mpfq_p_5_wrapper_pow(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt res MAYBE_UNUSED,mpfq_p_5_src_elt r MAYBE_UNUSED,unsigned long * x MAYBE_UNUSED,size_t n MAYBE_UNUSED)1777 static void mpfq_p_5_wrapper_pow(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt res MAYBE_UNUSED, mpfq_p_5_src_elt r MAYBE_UNUSED, unsigned long * x MAYBE_UNUSED, size_t n MAYBE_UNUSED)
1778 {
1779 mpfq_p_5_pow(vbase->obj, res, r, x, n);
1780 }
1781
1782 static int mpfq_p_5_wrapper_sqrt(mpfq_vbase_ptr, mpfq_p_5_dst_elt, mpfq_p_5_src_elt);
mpfq_p_5_wrapper_sqrt(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt z MAYBE_UNUSED,mpfq_p_5_src_elt a MAYBE_UNUSED)1783 static int mpfq_p_5_wrapper_sqrt(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt z MAYBE_UNUSED, mpfq_p_5_src_elt a MAYBE_UNUSED)
1784 {
1785 return mpfq_p_5_sqrt(vbase->obj, z, a);
1786 }
1787
1788 static int mpfq_p_5_wrapper_is_sqr(mpfq_vbase_ptr, mpfq_p_5_src_elt);
mpfq_p_5_wrapper_is_sqr(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_src_elt x MAYBE_UNUSED)1789 static int mpfq_p_5_wrapper_is_sqr(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_src_elt x MAYBE_UNUSED)
1790 {
1791 return mpfq_p_5_is_sqr(vbase->obj, x);
1792 }
1793
1794 static void mpfq_p_5_wrapper_sqr(mpfq_vbase_ptr, mpfq_p_5_dst_elt, mpfq_p_5_src_elt);
mpfq_p_5_wrapper_sqr(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt z MAYBE_UNUSED,mpfq_p_5_src_elt x MAYBE_UNUSED)1795 static void mpfq_p_5_wrapper_sqr(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt z MAYBE_UNUSED, mpfq_p_5_src_elt x MAYBE_UNUSED)
1796 {
1797 mpfq_p_5_sqr(vbase->obj, z, x);
1798 }
1799
1800 static void mpfq_p_5_wrapper_mul(mpfq_vbase_ptr, mpfq_p_5_dst_elt, mpfq_p_5_src_elt, mpfq_p_5_src_elt);
mpfq_p_5_wrapper_mul(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt z MAYBE_UNUSED,mpfq_p_5_src_elt x MAYBE_UNUSED,mpfq_p_5_src_elt y MAYBE_UNUSED)1801 static void mpfq_p_5_wrapper_mul(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt z MAYBE_UNUSED, mpfq_p_5_src_elt x MAYBE_UNUSED, mpfq_p_5_src_elt y MAYBE_UNUSED)
1802 {
1803 mpfq_p_5_mul(vbase->obj, z, x, y);
1804 }
1805
1806 static void mpfq_p_5_wrapper_neg(mpfq_vbase_ptr, mpfq_p_5_dst_elt, mpfq_p_5_src_elt);
mpfq_p_5_wrapper_neg(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt z MAYBE_UNUSED,mpfq_p_5_src_elt x MAYBE_UNUSED)1807 static void mpfq_p_5_wrapper_neg(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt z MAYBE_UNUSED, mpfq_p_5_src_elt x MAYBE_UNUSED)
1808 {
1809 mpfq_p_5_neg(vbase->obj, z, x);
1810 }
1811
1812 static void mpfq_p_5_wrapper_sub(mpfq_vbase_ptr, mpfq_p_5_dst_elt, mpfq_p_5_src_elt, mpfq_p_5_src_elt);
mpfq_p_5_wrapper_sub(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt z MAYBE_UNUSED,mpfq_p_5_src_elt x MAYBE_UNUSED,mpfq_p_5_src_elt y MAYBE_UNUSED)1813 static void mpfq_p_5_wrapper_sub(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt z MAYBE_UNUSED, mpfq_p_5_src_elt x MAYBE_UNUSED, mpfq_p_5_src_elt y MAYBE_UNUSED)
1814 {
1815 mpfq_p_5_sub(vbase->obj, z, x, y);
1816 }
1817
1818 static void mpfq_p_5_wrapper_add(mpfq_vbase_ptr, mpfq_p_5_dst_elt, mpfq_p_5_src_elt, mpfq_p_5_src_elt);
mpfq_p_5_wrapper_add(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt z MAYBE_UNUSED,mpfq_p_5_src_elt x MAYBE_UNUSED,mpfq_p_5_src_elt y MAYBE_UNUSED)1819 static void mpfq_p_5_wrapper_add(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt z MAYBE_UNUSED, mpfq_p_5_src_elt x MAYBE_UNUSED, mpfq_p_5_src_elt y MAYBE_UNUSED)
1820 {
1821 mpfq_p_5_add(vbase->obj, z, x, y);
1822 }
1823
1824 static void mpfq_p_5_wrapper_random2(mpfq_vbase_ptr, mpfq_p_5_dst_elt, gmp_randstate_t);
mpfq_p_5_wrapper_random2(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt x MAYBE_UNUSED,gmp_randstate_t state MAYBE_UNUSED)1825 static void mpfq_p_5_wrapper_random2(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt x MAYBE_UNUSED, gmp_randstate_t state MAYBE_UNUSED)
1826 {
1827 mpfq_p_5_random2(vbase->obj, x, state);
1828 }
1829
1830 static void mpfq_p_5_wrapper_random(mpfq_vbase_ptr, mpfq_p_5_dst_elt, gmp_randstate_t);
mpfq_p_5_wrapper_random(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt x MAYBE_UNUSED,gmp_randstate_t state MAYBE_UNUSED)1831 static void mpfq_p_5_wrapper_random(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt x MAYBE_UNUSED, gmp_randstate_t state MAYBE_UNUSED)
1832 {
1833 mpfq_p_5_random(vbase->obj, x, state);
1834 }
1835
1836 static void mpfq_p_5_wrapper_get_mpz(mpfq_vbase_ptr, mpz_ptr, mpfq_p_5_src_elt);
mpfq_p_5_wrapper_get_mpz(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpz_ptr z MAYBE_UNUSED,mpfq_p_5_src_elt y MAYBE_UNUSED)1837 static void mpfq_p_5_wrapper_get_mpz(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpz_ptr z MAYBE_UNUSED, mpfq_p_5_src_elt y MAYBE_UNUSED)
1838 {
1839 mpfq_p_5_get_mpz(vbase->obj, z, y);
1840 }
1841
1842 static void mpfq_p_5_wrapper_get_mpn(mpfq_vbase_ptr, mp_limb_t *, mpfq_p_5_src_elt);
mpfq_p_5_wrapper_get_mpn(mpfq_vbase_ptr vbase MAYBE_UNUSED,mp_limb_t * r MAYBE_UNUSED,mpfq_p_5_src_elt x MAYBE_UNUSED)1843 static void mpfq_p_5_wrapper_get_mpn(mpfq_vbase_ptr vbase MAYBE_UNUSED, mp_limb_t * r MAYBE_UNUSED, mpfq_p_5_src_elt x MAYBE_UNUSED)
1844 {
1845 mpfq_p_5_get_mpn(vbase->obj, r, x);
1846 }
1847
1848 static void mpfq_p_5_wrapper_set_mpz(mpfq_vbase_ptr, mpfq_p_5_dst_elt, mpz_srcptr);
mpfq_p_5_wrapper_set_mpz(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt r MAYBE_UNUSED,mpz_srcptr z MAYBE_UNUSED)1849 static void mpfq_p_5_wrapper_set_mpz(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt r MAYBE_UNUSED, mpz_srcptr z MAYBE_UNUSED)
1850 {
1851 mpfq_p_5_set_mpz(vbase->obj, r, z);
1852 }
1853
1854 static void mpfq_p_5_wrapper_set_mpn(mpfq_vbase_ptr, mpfq_p_5_dst_elt, mp_limb_t *, size_t);
mpfq_p_5_wrapper_set_mpn(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt r MAYBE_UNUSED,mp_limb_t * x MAYBE_UNUSED,size_t n MAYBE_UNUSED)1855 static void mpfq_p_5_wrapper_set_mpn(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt r MAYBE_UNUSED, mp_limb_t * x MAYBE_UNUSED, size_t n MAYBE_UNUSED)
1856 {
1857 mpfq_p_5_set_mpn(vbase->obj, r, x, n);
1858 }
1859
1860 static unsigned long mpfq_p_5_wrapper_get_ui(mpfq_vbase_ptr, mpfq_p_5_src_elt);
mpfq_p_5_wrapper_get_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_src_elt x MAYBE_UNUSED)1861 static unsigned long mpfq_p_5_wrapper_get_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_src_elt x MAYBE_UNUSED)
1862 {
1863 return mpfq_p_5_get_ui(vbase->obj, x);
1864 }
1865
1866 static void mpfq_p_5_wrapper_set_zero(mpfq_vbase_ptr, mpfq_p_5_dst_elt);
mpfq_p_5_wrapper_set_zero(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt r MAYBE_UNUSED)1867 static void mpfq_p_5_wrapper_set_zero(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt r MAYBE_UNUSED)
1868 {
1869 mpfq_p_5_set_zero(vbase->obj, r);
1870 }
1871
1872 static void mpfq_p_5_wrapper_set_ui(mpfq_vbase_ptr, mpfq_p_5_dst_elt, unsigned long);
mpfq_p_5_wrapper_set_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt r MAYBE_UNUSED,unsigned long x MAYBE_UNUSED)1873 static void mpfq_p_5_wrapper_set_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt r MAYBE_UNUSED, unsigned long x MAYBE_UNUSED)
1874 {
1875 mpfq_p_5_set_ui(vbase->obj, r, x);
1876 }
1877
1878 static void mpfq_p_5_wrapper_set(mpfq_vbase_ptr, mpfq_p_5_dst_elt, mpfq_p_5_src_elt);
mpfq_p_5_wrapper_set(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_dst_elt r MAYBE_UNUSED,mpfq_p_5_src_elt s MAYBE_UNUSED)1879 static void mpfq_p_5_wrapper_set(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_dst_elt r MAYBE_UNUSED, mpfq_p_5_src_elt s MAYBE_UNUSED)
1880 {
1881 mpfq_p_5_set(vbase->obj, r, s);
1882 }
1883
1884 static ptrdiff_t mpfq_p_5_wrapper_elt_stride(mpfq_vbase_ptr);
mpfq_p_5_wrapper_elt_stride(mpfq_vbase_ptr vbase MAYBE_UNUSED)1885 static ptrdiff_t mpfq_p_5_wrapper_elt_stride(mpfq_vbase_ptr vbase MAYBE_UNUSED)
1886 {
1887 return mpfq_p_5_elt_stride(vbase->obj);
1888 }
1889
1890 static void mpfq_p_5_wrapper_clear(mpfq_vbase_ptr, mpfq_p_5_elt *);
mpfq_p_5_wrapper_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_elt * x MAYBE_UNUSED)1891 static void mpfq_p_5_wrapper_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_elt * x MAYBE_UNUSED)
1892 {
1893 mpfq_p_5_clear(vbase->obj, x);
1894 }
1895
1896 static void mpfq_p_5_wrapper_init(mpfq_vbase_ptr, mpfq_p_5_elt *);
mpfq_p_5_wrapper_init(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_5_elt * x MAYBE_UNUSED)1897 static void mpfq_p_5_wrapper_init(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_5_elt * x MAYBE_UNUSED)
1898 {
1899 mpfq_p_5_init(vbase->obj, x);
1900 }
1901
1902 static void mpfq_p_5_wrapper_field_setopt(mpfq_vbase_ptr, unsigned long, void *);
mpfq_p_5_wrapper_field_setopt(mpfq_vbase_ptr vbase MAYBE_UNUSED,unsigned long x MAYBE_UNUSED,void * y MAYBE_UNUSED)1903 static void mpfq_p_5_wrapper_field_setopt(mpfq_vbase_ptr vbase MAYBE_UNUSED, unsigned long x MAYBE_UNUSED, void * y MAYBE_UNUSED)
1904 {
1905 mpfq_p_5_field_setopt(vbase->obj, x, y);
1906 }
1907
1908 static void mpfq_p_5_wrapper_field_specify(mpfq_vbase_ptr, unsigned long, const void *);
mpfq_p_5_wrapper_field_specify(mpfq_vbase_ptr vbase MAYBE_UNUSED,unsigned long dummy MAYBE_UNUSED,const void * vp MAYBE_UNUSED)1909 static void mpfq_p_5_wrapper_field_specify(mpfq_vbase_ptr vbase MAYBE_UNUSED, unsigned long dummy MAYBE_UNUSED, const void * vp MAYBE_UNUSED)
1910 {
1911 mpfq_p_5_field_specify(vbase->obj, dummy, vp);
1912 }
1913
1914 static void mpfq_p_5_wrapper_field_clear(mpfq_vbase_ptr);
mpfq_p_5_wrapper_field_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED)1915 static void mpfq_p_5_wrapper_field_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED)
1916 {
1917 mpfq_p_5_field_clear(vbase->obj);
1918 }
1919
1920 static void mpfq_p_5_wrapper_field_init(mpfq_vbase_ptr);
mpfq_p_5_wrapper_field_init(mpfq_vbase_ptr vbase MAYBE_UNUSED)1921 static void mpfq_p_5_wrapper_field_init(mpfq_vbase_ptr vbase MAYBE_UNUSED)
1922 {
1923 mpfq_p_5_field_init(vbase->obj);
1924 }
1925
1926 static int mpfq_p_5_wrapper_field_degree(mpfq_vbase_ptr);
mpfq_p_5_wrapper_field_degree(mpfq_vbase_ptr vbase MAYBE_UNUSED)1927 static int mpfq_p_5_wrapper_field_degree(mpfq_vbase_ptr vbase MAYBE_UNUSED)
1928 {
1929 return mpfq_p_5_field_degree(vbase->obj);
1930 }
1931
1932 static unsigned long mpfq_p_5_wrapper_field_characteristic_bits(mpfq_vbase_ptr);
mpfq_p_5_wrapper_field_characteristic_bits(mpfq_vbase_ptr vbase MAYBE_UNUSED)1933 static unsigned long mpfq_p_5_wrapper_field_characteristic_bits(mpfq_vbase_ptr vbase MAYBE_UNUSED)
1934 {
1935 return mpfq_p_5_field_characteristic_bits(vbase->obj);
1936 }
1937
1938 static mpz_srcptr mpfq_p_5_wrapper_field_characteristic_srcptr(mpfq_vbase_ptr);
mpfq_p_5_wrapper_field_characteristic_srcptr(mpfq_vbase_ptr vbase MAYBE_UNUSED)1939 static mpz_srcptr mpfq_p_5_wrapper_field_characteristic_srcptr(mpfq_vbase_ptr vbase MAYBE_UNUSED)
1940 {
1941 return mpfq_p_5_field_characteristic_srcptr(vbase->obj);
1942 }
1943
1944 static void mpfq_p_5_wrapper_field_characteristic(mpfq_vbase_ptr, mpz_ptr);
mpfq_p_5_wrapper_field_characteristic(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpz_ptr z MAYBE_UNUSED)1945 static void mpfq_p_5_wrapper_field_characteristic(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpz_ptr z MAYBE_UNUSED)
1946 {
1947 mpfq_p_5_field_characteristic(vbase->obj, z);
1948 }
1949
1950 static unsigned long mpfq_p_5_wrapper_impl_max_degree();
mpfq_p_5_wrapper_impl_max_degree()1951 static unsigned long mpfq_p_5_wrapper_impl_max_degree()
1952 {
1953 return mpfq_p_5_impl_max_degree();
1954 }
1955
1956 static unsigned long mpfq_p_5_wrapper_impl_max_characteristic_bits();
mpfq_p_5_wrapper_impl_max_characteristic_bits()1957 static unsigned long mpfq_p_5_wrapper_impl_max_characteristic_bits()
1958 {
1959 return mpfq_p_5_impl_max_characteristic_bits();
1960 }
1961
1962 static const char * mpfq_p_5_wrapper_impl_name();
mpfq_p_5_wrapper_impl_name()1963 static const char * mpfq_p_5_wrapper_impl_name()
1964 {
1965 return mpfq_p_5_impl_name();
1966 }
1967
1968 /* Mpfq::engine::oo::oo_field_init */
1969 /* Triggered by: oo */
mpfq_p_5_oo_field_init(mpfq_vbase_ptr vbase)1970 void mpfq_p_5_oo_field_init(mpfq_vbase_ptr vbase)
1971 {
1972 memset(vbase, 0, sizeof(struct mpfq_vbase_s));
1973 vbase->obj = malloc(sizeof(mpfq_p_5_field));
1974 mpfq_p_5_field_init((mpfq_p_5_dst_field) vbase->obj);
1975 vbase->impl_name = (const char * (*) ()) mpfq_p_5_wrapper_impl_name;
1976 vbase->impl_max_characteristic_bits = (unsigned long (*) ()) mpfq_p_5_wrapper_impl_max_characteristic_bits;
1977 vbase->impl_max_degree = (unsigned long (*) ()) mpfq_p_5_wrapper_impl_max_degree;
1978 vbase->field_characteristic = (void (*) (mpfq_vbase_ptr, mpz_ptr)) mpfq_p_5_wrapper_field_characteristic;
1979 vbase->field_characteristic_srcptr = (mpz_srcptr (*) (mpfq_vbase_ptr)) mpfq_p_5_wrapper_field_characteristic_srcptr;
1980 vbase->field_characteristic_bits = (unsigned long (*) (mpfq_vbase_ptr)) mpfq_p_5_wrapper_field_characteristic_bits;
1981 vbase->field_degree = (int (*) (mpfq_vbase_ptr)) mpfq_p_5_wrapper_field_degree;
1982 vbase->field_init = (void (*) (mpfq_vbase_ptr)) mpfq_p_5_wrapper_field_init;
1983 vbase->field_clear = (void (*) (mpfq_vbase_ptr)) mpfq_p_5_wrapper_field_clear;
1984 vbase->field_specify = (void (*) (mpfq_vbase_ptr, unsigned long, const void *)) mpfq_p_5_wrapper_field_specify;
1985 vbase->field_setopt = (void (*) (mpfq_vbase_ptr, unsigned long, void *)) mpfq_p_5_wrapper_field_setopt;
1986 vbase->init = (void (*) (mpfq_vbase_ptr, void *)) mpfq_p_5_wrapper_init;
1987 vbase->clear = (void (*) (mpfq_vbase_ptr, void *)) mpfq_p_5_wrapper_clear;
1988 vbase->elt_stride = (ptrdiff_t (*) (mpfq_vbase_ptr)) mpfq_p_5_wrapper_elt_stride;
1989 vbase->set = (void (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_5_wrapper_set;
1990 vbase->set_ui = (void (*) (mpfq_vbase_ptr, void *, unsigned long)) mpfq_p_5_wrapper_set_ui;
1991 vbase->set_zero = (void (*) (mpfq_vbase_ptr, void *)) mpfq_p_5_wrapper_set_zero;
1992 vbase->get_ui = (unsigned long (*) (mpfq_vbase_ptr, const void *)) mpfq_p_5_wrapper_get_ui;
1993 vbase->set_mpn = (void (*) (mpfq_vbase_ptr, void *, mp_limb_t *, size_t)) mpfq_p_5_wrapper_set_mpn;
1994 vbase->set_mpz = (void (*) (mpfq_vbase_ptr, void *, mpz_srcptr)) mpfq_p_5_wrapper_set_mpz;
1995 vbase->get_mpn = (void (*) (mpfq_vbase_ptr, mp_limb_t *, const void *)) mpfq_p_5_wrapper_get_mpn;
1996 vbase->get_mpz = (void (*) (mpfq_vbase_ptr, mpz_ptr, const void *)) mpfq_p_5_wrapper_get_mpz;
1997 vbase->random = (void (*) (mpfq_vbase_ptr, void *, gmp_randstate_t)) mpfq_p_5_wrapper_random;
1998 vbase->random2 = (void (*) (mpfq_vbase_ptr, void *, gmp_randstate_t)) mpfq_p_5_wrapper_random2;
1999 vbase->add = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *)) mpfq_p_5_wrapper_add;
2000 vbase->sub = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *)) mpfq_p_5_wrapper_sub;
2001 vbase->neg = (void (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_5_wrapper_neg;
2002 vbase->mul = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *)) mpfq_p_5_wrapper_mul;
2003 vbase->sqr = (void (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_5_wrapper_sqr;
2004 vbase->is_sqr = (int (*) (mpfq_vbase_ptr, const void *)) mpfq_p_5_wrapper_is_sqr;
2005 vbase->sqrt = (int (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_5_wrapper_sqrt;
2006 vbase->pow = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long *, size_t)) mpfq_p_5_wrapper_pow;
2007 vbase->powz = (void (*) (mpfq_vbase_ptr, void *, const void *, mpz_srcptr)) mpfq_p_5_wrapper_powz;
2008 vbase->frobenius = (void (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_5_wrapper_frobenius;
2009 vbase->add_ui = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_5_wrapper_add_ui;
2010 vbase->sub_ui = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_5_wrapper_sub_ui;
2011 vbase->mul_ui = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_5_wrapper_mul_ui;
2012 vbase->normalize = (void (*) (mpfq_vbase_ptr, void *)) mpfq_p_5_wrapper_normalize;
2013 vbase->inv = (int (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_5_wrapper_inv;
2014 vbase->hadamard = (void (*) (mpfq_vbase_ptr, void *, void *, void *, void *)) mpfq_p_5_wrapper_hadamard;
2015 vbase->elt_ur_init = (void (*) (mpfq_vbase_ptr, void *)) mpfq_p_5_wrapper_elt_ur_init;
2016 vbase->elt_ur_clear = (void (*) (mpfq_vbase_ptr, void *)) mpfq_p_5_wrapper_elt_ur_clear;
2017 vbase->elt_ur_stride = (ptrdiff_t (*) (mpfq_vbase_ptr)) mpfq_p_5_wrapper_elt_ur_stride;
2018 vbase->elt_ur_set = (void (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_5_wrapper_elt_ur_set;
2019 vbase->elt_ur_set_elt = (void (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_5_wrapper_elt_ur_set_elt;
2020 vbase->elt_ur_set_zero = (void (*) (mpfq_vbase_ptr, void *)) mpfq_p_5_wrapper_elt_ur_set_zero;
2021 vbase->elt_ur_set_ui = (void (*) (mpfq_vbase_ptr, void *, unsigned long)) mpfq_p_5_wrapper_elt_ur_set_ui;
2022 vbase->elt_ur_add = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *)) mpfq_p_5_wrapper_elt_ur_add;
2023 vbase->elt_ur_neg = (void (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_5_wrapper_elt_ur_neg;
2024 vbase->elt_ur_sub = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *)) mpfq_p_5_wrapper_elt_ur_sub;
2025 vbase->mul_ur = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *)) mpfq_p_5_wrapper_mul_ur;
2026 vbase->sqr_ur = (void (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_5_wrapper_sqr_ur;
2027 vbase->reduce = (void (*) (mpfq_vbase_ptr, void *, void *)) mpfq_p_5_wrapper_reduce;
2028 vbase->addmul_si_ur = (void (*) (mpfq_vbase_ptr, void *, const void *, long)) mpfq_p_5_wrapper_addmul_si_ur;
2029 vbase->cmp = (int (*) (mpfq_vbase_ptr, const void *, const void *)) mpfq_p_5_wrapper_cmp;
2030 vbase->cmp_ui = (int (*) (mpfq_vbase_ptr, const void *, unsigned long)) mpfq_p_5_wrapper_cmp_ui;
2031 vbase->is_zero = (int (*) (mpfq_vbase_ptr, const void *)) mpfq_p_5_wrapper_is_zero;
2032 vbase->asprint = (int (*) (mpfq_vbase_ptr, char * *, const void *)) mpfq_p_5_wrapper_asprint;
2033 vbase->fprint = (int (*) (mpfq_vbase_ptr, FILE *, const void *)) mpfq_p_5_wrapper_fprint;
2034 vbase->print = (int (*) (mpfq_vbase_ptr, const void *)) mpfq_p_5_wrapper_print;
2035 vbase->sscan = (int (*) (mpfq_vbase_ptr, void *, const char *)) mpfq_p_5_wrapper_sscan;
2036 vbase->fscan = (int (*) (mpfq_vbase_ptr, FILE *, void *)) mpfq_p_5_wrapper_fscan;
2037 vbase->scan = (int (*) (mpfq_vbase_ptr, void *)) mpfq_p_5_wrapper_scan;
2038 /* missing read */
2039 /* missing importdata */
2040 /* missing write */
2041 /* missing exportdata */
2042 vbase->vec_init = (void (*) (mpfq_vbase_ptr, void *, unsigned long)) mpfq_p_5_wrapper_vec_init;
2043 vbase->vec_reinit = (void (*) (mpfq_vbase_ptr, void *, unsigned long, unsigned long)) mpfq_p_5_wrapper_vec_reinit;
2044 vbase->vec_clear = (void (*) (mpfq_vbase_ptr, void *, unsigned long)) mpfq_p_5_wrapper_vec_clear;
2045 vbase->vec_set = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_5_wrapper_vec_set;
2046 vbase->vec_set_zero = (void (*) (mpfq_vbase_ptr, void *, unsigned long)) mpfq_p_5_wrapper_vec_set_zero;
2047 vbase->vec_setcoeff = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_5_wrapper_vec_setcoeff;
2048 vbase->vec_setcoeff_ui = (void (*) (mpfq_vbase_ptr, void *, unsigned long, unsigned long)) mpfq_p_5_wrapper_vec_setcoeff_ui;
2049 vbase->vec_getcoeff = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_5_wrapper_vec_getcoeff;
2050 vbase->vec_add = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *, unsigned long)) mpfq_p_5_wrapper_vec_add;
2051 vbase->vec_neg = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_5_wrapper_vec_neg;
2052 vbase->vec_rev = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_5_wrapper_vec_rev;
2053 vbase->vec_sub = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *, unsigned long)) mpfq_p_5_wrapper_vec_sub;
2054 vbase->vec_scal_mul = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *, unsigned long)) mpfq_p_5_wrapper_vec_scal_mul;
2055 vbase->vec_conv = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long, const void *, unsigned long)) mpfq_p_5_wrapper_vec_conv;
2056 vbase->vec_random = (void (*) (mpfq_vbase_ptr, void *, unsigned long, gmp_randstate_t)) mpfq_p_5_wrapper_vec_random;
2057 vbase->vec_random2 = (void (*) (mpfq_vbase_ptr, void *, unsigned long, gmp_randstate_t)) mpfq_p_5_wrapper_vec_random2;
2058 vbase->vec_cmp = (long (*) (mpfq_vbase_ptr, const void *, const void *, unsigned long)) mpfq_p_5_wrapper_vec_cmp;
2059 vbase->vec_is_zero = (long (*) (mpfq_vbase_ptr, const void *, unsigned long)) mpfq_p_5_wrapper_vec_is_zero;
2060 vbase->vec_subvec = (void * (*) (mpfq_vbase_ptr, void *, long)) mpfq_p_5_wrapper_vec_subvec;
2061 vbase->vec_subvec_const = (const void * (*) (mpfq_vbase_ptr, const void *, long)) mpfq_p_5_wrapper_vec_subvec_const;
2062 vbase->vec_coeff_ptr = (void * (*) (mpfq_vbase_ptr, void *, long)) mpfq_p_5_wrapper_vec_coeff_ptr;
2063 vbase->vec_coeff_ptr_const = (const void * (*) (mpfq_vbase_ptr, const void *, long)) mpfq_p_5_wrapper_vec_coeff_ptr_const;
2064 vbase->vec_asprint = (long (*) (mpfq_vbase_ptr, char * *, const void *, unsigned long)) mpfq_p_5_wrapper_vec_asprint;
2065 vbase->vec_fprint = (long (*) (mpfq_vbase_ptr, FILE *, const void *, unsigned long)) mpfq_p_5_wrapper_vec_fprint;
2066 vbase->vec_print = (long (*) (mpfq_vbase_ptr, const void *, unsigned long)) mpfq_p_5_wrapper_vec_print;
2067 vbase->vec_sscan = (long (*) (mpfq_vbase_ptr, void *, unsigned long *, const char *)) mpfq_p_5_wrapper_vec_sscan;
2068 vbase->vec_fscan = (long (*) (mpfq_vbase_ptr, FILE *, void *, unsigned long *)) mpfq_p_5_wrapper_vec_fscan;
2069 vbase->vec_scan = (long (*) (mpfq_vbase_ptr, void *, unsigned long *)) mpfq_p_5_wrapper_vec_scan;
2070 /* missing vec_read */
2071 /* missing vec_write */
2072 /* missing vec_import */
2073 /* missing vec_export */
2074 vbase->vec_hamming_weight = (long (*) (mpfq_vbase_ptr, const void *, unsigned long)) mpfq_p_5_wrapper_vec_hamming_weight;
2075 vbase->vec_find_first_set = (long (*) (mpfq_vbase_ptr, const void *, unsigned long)) mpfq_p_5_wrapper_vec_find_first_set;
2076 vbase->vec_simd_hamming_weight = (long (*) (mpfq_vbase_ptr, const void *, unsigned long)) mpfq_p_5_wrapper_vec_simd_hamming_weight;
2077 vbase->vec_simd_find_first_set = (long (*) (mpfq_vbase_ptr, const void *, unsigned long)) mpfq_p_5_wrapper_vec_simd_find_first_set;
2078 vbase->vec_ur_init = (void (*) (mpfq_vbase_ptr, void *, unsigned long)) mpfq_p_5_wrapper_vec_ur_init;
2079 vbase->vec_ur_set_zero = (void (*) (mpfq_vbase_ptr, void *, unsigned long)) mpfq_p_5_wrapper_vec_ur_set_zero;
2080 vbase->vec_ur_set_vec = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_5_wrapper_vec_ur_set_vec;
2081 vbase->vec_ur_reinit = (void (*) (mpfq_vbase_ptr, void *, unsigned long, unsigned long)) mpfq_p_5_wrapper_vec_ur_reinit;
2082 vbase->vec_ur_clear = (void (*) (mpfq_vbase_ptr, void *, unsigned long)) mpfq_p_5_wrapper_vec_ur_clear;
2083 vbase->vec_ur_set = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_5_wrapper_vec_ur_set;
2084 vbase->vec_ur_setcoeff = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_5_wrapper_vec_ur_setcoeff;
2085 vbase->vec_ur_getcoeff = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_5_wrapper_vec_ur_getcoeff;
2086 vbase->vec_ur_add = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *, unsigned long)) mpfq_p_5_wrapper_vec_ur_add;
2087 vbase->vec_ur_sub = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *, unsigned long)) mpfq_p_5_wrapper_vec_ur_sub;
2088 vbase->vec_ur_neg = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_5_wrapper_vec_ur_neg;
2089 vbase->vec_ur_rev = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_5_wrapper_vec_ur_rev;
2090 vbase->vec_scal_mul_ur = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *, unsigned long)) mpfq_p_5_wrapper_vec_scal_mul_ur;
2091 vbase->vec_conv_ur = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long, const void *, unsigned long)) mpfq_p_5_wrapper_vec_conv_ur;
2092 vbase->vec_reduce = (void (*) (mpfq_vbase_ptr, void *, void *, unsigned long)) mpfq_p_5_wrapper_vec_reduce;
2093 vbase->vec_ur_subvec = (void * (*) (mpfq_vbase_ptr, void *, long)) mpfq_p_5_wrapper_vec_ur_subvec;
2094 vbase->vec_ur_subvec_const = (const void * (*) (mpfq_vbase_ptr, const void *, long)) mpfq_p_5_wrapper_vec_ur_subvec_const;
2095 vbase->vec_ur_coeff_ptr = (void * (*) (mpfq_vbase_ptr, void *, long)) mpfq_p_5_wrapper_vec_ur_coeff_ptr;
2096 vbase->vec_ur_coeff_ptr_const = (const void * (*) (mpfq_vbase_ptr, const void *, long)) mpfq_p_5_wrapper_vec_ur_coeff_ptr_const;
2097 vbase->vec_elt_stride = (ptrdiff_t (*) (mpfq_vbase_ptr, long)) mpfq_p_5_wrapper_vec_elt_stride;
2098 vbase->vec_ur_elt_stride = (ptrdiff_t (*) (mpfq_vbase_ptr, long)) mpfq_p_5_wrapper_vec_ur_elt_stride;
2099 vbase->poly_init = (void (*) (mpfq_vbase_ptr, void *, unsigned int)) mpfq_p_5_wrapper_poly_init;
2100 vbase->poly_clear = (void (*) (mpfq_vbase_ptr, void *)) mpfq_p_5_wrapper_poly_clear;
2101 vbase->poly_set = (void (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_5_wrapper_poly_set;
2102 vbase->poly_setmonic = (void (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_5_wrapper_poly_setmonic;
2103 vbase->poly_setcoeff = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned int)) mpfq_p_5_wrapper_poly_setcoeff;
2104 vbase->poly_setcoeff_ui = (void (*) (mpfq_vbase_ptr, void *, unsigned long, unsigned int)) mpfq_p_5_wrapper_poly_setcoeff_ui;
2105 vbase->poly_getcoeff = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned int)) mpfq_p_5_wrapper_poly_getcoeff;
2106 vbase->poly_deg = (int (*) (mpfq_vbase_ptr, const void *)) mpfq_p_5_wrapper_poly_deg;
2107 vbase->poly_add = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *)) mpfq_p_5_wrapper_poly_add;
2108 vbase->poly_sub = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *)) mpfq_p_5_wrapper_poly_sub;
2109 vbase->poly_set_ui = (void (*) (mpfq_vbase_ptr, void *, unsigned long)) mpfq_p_5_wrapper_poly_set_ui;
2110 vbase->poly_add_ui = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_5_wrapper_poly_add_ui;
2111 vbase->poly_sub_ui = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_5_wrapper_poly_sub_ui;
2112 vbase->poly_neg = (void (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_5_wrapper_poly_neg;
2113 vbase->poly_scal_mul = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *)) mpfq_p_5_wrapper_poly_scal_mul;
2114 vbase->poly_mul = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *)) mpfq_p_5_wrapper_poly_mul;
2115 vbase->poly_divmod = (int (*) (mpfq_vbase_ptr, void *, void *, const void *, const void *)) mpfq_p_5_wrapper_poly_divmod;
2116 vbase->poly_precomp_mod = (void (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_5_wrapper_poly_precomp_mod;
2117 vbase->poly_mod_pre = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *, const void *)) mpfq_p_5_wrapper_poly_mod_pre;
2118 vbase->poly_gcd = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *)) mpfq_p_5_wrapper_poly_gcd;
2119 vbase->poly_xgcd = (void (*) (mpfq_vbase_ptr, void *, void *, void *, const void *, const void *)) mpfq_p_5_wrapper_poly_xgcd;
2120 vbase->poly_random = (void (*) (mpfq_vbase_ptr, void *, unsigned int, gmp_randstate_t)) mpfq_p_5_wrapper_poly_random;
2121 vbase->poly_random2 = (void (*) (mpfq_vbase_ptr, void *, unsigned int, gmp_randstate_t)) mpfq_p_5_wrapper_poly_random2;
2122 vbase->poly_cmp = (int (*) (mpfq_vbase_ptr, const void *, const void *)) mpfq_p_5_wrapper_poly_cmp;
2123 vbase->poly_asprint = (int (*) (mpfq_vbase_ptr, char * *, const void *)) mpfq_p_5_wrapper_poly_asprint;
2124 vbase->poly_fprint = (int (*) (mpfq_vbase_ptr, FILE *, const void *)) mpfq_p_5_wrapper_poly_fprint;
2125 vbase->poly_print = (int (*) (mpfq_vbase_ptr, const void *)) mpfq_p_5_wrapper_poly_print;
2126 vbase->poly_sscan = (int (*) (mpfq_vbase_ptr, void *, const char *)) mpfq_p_5_wrapper_poly_sscan;
2127 vbase->poly_fscan = (int (*) (mpfq_vbase_ptr, FILE *, void *)) mpfq_p_5_wrapper_poly_fscan;
2128 vbase->poly_scan = (int (*) (mpfq_vbase_ptr, void *)) mpfq_p_5_wrapper_poly_scan;
2129 vbase->simd_groupsize = (int (*) (mpfq_vbase_ptr)) mpfq_p_5_wrapper_simd_groupsize;
2130 vbase->simd_hamming_weight = (int (*) (mpfq_vbase_ptr, const void *)) mpfq_p_5_wrapper_simd_hamming_weight;
2131 vbase->simd_find_first_set = (int (*) (mpfq_vbase_ptr, const void *)) mpfq_p_5_wrapper_simd_find_first_set;
2132 vbase->simd_get_ui_at = (unsigned long (*) (mpfq_vbase_ptr, const void *, int)) mpfq_p_5_wrapper_simd_get_ui_at;
2133 vbase->simd_set_ui_at = (void (*) (mpfq_vbase_ptr, void *, int, unsigned long)) mpfq_p_5_wrapper_simd_set_ui_at;
2134 vbase->simd_add_ui_at = (void (*) (mpfq_vbase_ptr, void *, const void *, int, unsigned long)) mpfq_p_5_wrapper_simd_add_ui_at;
2135 vbase->simd_set_ui_all = (void (*) (mpfq_vbase_ptr, void *, unsigned long)) mpfq_p_5_wrapper_simd_set_ui_all;
2136 vbase->add_dotprod = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *, unsigned int)) mpfq_p_5_wrapper_add_dotprod;
2137 vbase->oo_field_init = (void (*) (mpfq_vbase_ptr)) mpfq_p_5_wrapper_oo_field_init;
2138 vbase->oo_field_clear = (void (*) (mpfq_vbase_ptr)) mpfq_p_5_wrapper_oo_field_clear;
2139 }
2140
2141
2142 /* vim:set ft=cpp: */
2143