1 #include "cado.h"
2 /* MPFQ generated file -- do not edit */
3 
4 #include "mpfq_p_14.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_14, tag=p_14, }, ],
16    fieldtype=prime,
17    n=14,
18    nn=29,
19    opthw=,
20    tag=p_14,
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_14_elt \*), void *, ],
110      [ (?^:mpfq_p_14_src_elt\b), const void *, ],
111      [ (?^:mpfq_p_14_elt\b), void *, ],
112      [ (?^:mpfq_p_14_dst_elt\b), void *, ],
113      [ (?^:mpfq_p_14_elt_ur \*), void *, ],
114      [ (?^:mpfq_p_14_src_elt_ur\b), const void *, ],
115      [ (?^:mpfq_p_14_elt_ur\b), void *, ],
116      [ (?^:mpfq_p_14_dst_elt_ur\b), void *, ],
117      [ (?^:mpfq_p_14_vec \*), void *, ],
118      [ (?^:mpfq_p_14_src_vec\b), const void *, ],
119      [ (?^:mpfq_p_14_vec\b), void *, ],
120      [ (?^:mpfq_p_14_dst_vec\b), void *, ],
121      [ (?^:mpfq_p_14_vec_ur \*), void *, ],
122      [ (?^:mpfq_p_14_src_vec_ur\b), const void *, ],
123      [ (?^:mpfq_p_14_vec_ur\b), void *, ],
124      [ (?^:mpfq_p_14_dst_vec_ur\b), void *, ],
125      [ (?^:mpfq_p_14_poly \*), void *, ],
126      [ (?^:mpfq_p_14_src_poly\b), const void *, ],
127      [ (?^:mpfq_p_14_poly\b), void *, ],
128      [ (?^:mpfq_p_14_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_14_field_clear(mpfq_p_14_dst_field k)137 void mpfq_p_14_field_clear(mpfq_p_14_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_14_field_specify(mpfq_p_14_dst_field k,unsigned long dummy MAYBE_UNUSED,const void * vp)149 void mpfq_p_14_field_specify(mpfq_p_14_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) == 14)) {
157                 fprintf(stderr, "This binary requires the use of a 14-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^(29*64)-1)/p )
164                  */
165                 mpz_ui_pow_ui(k->bigmul_p, 2, 29*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_14_init_ts(mpfq_p_14_dst_field);
187 /* *Mpfq::gfp::elt::code_for_sqrt, Mpfq::gfp */
188 /* Triggered by: sqrt */
mpfq_p_14_init_ts(mpfq_p_14_dst_field k)189 static void mpfq_p_14_init_ts(mpfq_p_14_dst_field k)
190 {
191     gmp_randstate_t rstate;
192     gmp_randinit_default(rstate);
193 
194     mp_limb_t pp[14];
195     mp_limb_t *ptr = pp;
196     mp_limb_t s[14];
197     mpfq_fixmp_14_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_14_rshift(pp, e);
208     } else {
209         mpfq_fixmp_14_long_rshift(pp, e/64, e%64);
210     }
211     s[0] = 1UL;
212     int i;
213     for (i = 1; i <14; ++i)
214         s[i] = 0UL;
215     if (e-1 < 64) {
216         mpfq_fixmp_14_lshift(s, e-1);
217     } else {
218         mpfq_fixmp_14_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(14*sizeof(mp_limb_t));
223     k->ts_info.hh = mpfq_malloc_check(14*sizeof(mp_limb_t));
224 
225     mpfq_p_14_elt z, r;
226     mpfq_p_14_init(k, &z);
227     mpfq_p_14_init(k, &r);
228     mpfq_p_14_set_ui(k, r, 0);
229     do {
230         mpfq_p_14_random(k, z, rstate);
231         mpfq_p_14_pow(k, z, z, pp, 14);
232         mpfq_p_14_pow(k, r, z, s, 14);
233         mpfq_p_14_add_ui(k, r, r, 1);
234     } while (mpfq_p_14_cmp_ui(k, r, 0)!=0);
235     mpfq_p_14_set(k, (mpfq_p_14_dst_elt)k->ts_info.z, z);
236     mpfq_p_14_clear(k, &z);
237     mpfq_p_14_clear(k, &r);
238 
239     mpfq_fixmp_14_sub_ui_nc(pp, pp, 1);
240     mpfq_fixmp_14_rshift(pp, 1);
241     for (i = 0; i < 14; ++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_14_sqrt(mpfq_p_14_dst_field k,mpfq_p_14_dst_elt z,mpfq_p_14_src_elt a)247 int mpfq_p_14_sqrt(mpfq_p_14_dst_field k, mpfq_p_14_dst_elt z, mpfq_p_14_src_elt a)
248 {
249     if (mpfq_p_14_cmp_ui(k, a, 0) == 0) {
250         mpfq_p_14_set_ui(k, z, 0);
251         return 1;
252     }
253     if (k->ts_info.e == 0)
254         mpfq_p_14_init_ts(k);
255     mpfq_p_14_elt b, x, y;
256     mpfq_p_14_init(k, &x);
257     mpfq_p_14_init(k, &y);
258     mpfq_p_14_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_14_set(k, x, a);
262     mpfq_p_14_set(k, y, (mpfq_p_14_src_elt)k->ts_info.z);
263 
264     mpfq_p_14_pow(k, x, a, k->ts_info.hh, 14);
265     mpfq_p_14_sqr(k, b, x);
266     mpfq_p_14_mul(k, x, x, a);
267     mpfq_p_14_mul(k, b, b, a);
268 
269     mpfq_p_14_elt t;
270     mpfq_p_14_init(k, &t);
271     mp_limb_t m;
272     for(;;) {
273         mpfq_p_14_set(k, t, b);
274         for(m=0; mpfq_p_14_cmp_ui(k, t, 1)!=0; m++)
275             mpfq_p_14_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_14_pow(k, t, y, &s, 1);
285         mpfq_p_14_sqr(k, y, t);
286         mpfq_p_14_mul(k, x, x, t);
287         mpfq_p_14_mul(k, b, b, y);
288     }
289     mpfq_p_14_set(k, z, x);
290     mpfq_p_14_clear(k, &t);
291     mpfq_p_14_clear(k, &x);
292     mpfq_p_14_clear(k, &y);
293     mpfq_p_14_clear(k, &b);
294     return (m==0);
295 }
296 
297 /* *Mpfq::defaults::pow::code_for_powz, Mpfq::gfp::elt, Mpfq::gfp */
mpfq_p_14_powz(mpfq_p_14_dst_field k,mpfq_p_14_dst_elt y,mpfq_p_14_src_elt x,mpz_srcptr z)298 void mpfq_p_14_powz(mpfq_p_14_dst_field k, mpfq_p_14_dst_elt y, mpfq_p_14_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_14_powz(k, y, x, mz);
305             mpfq_p_14_inv(k, y, y);
306             mpz_clear(mz);
307         } else if (mpz_sizeinbase(z, 2) > mpfq_p_14_field_degree(k) * mpfq_p_14_field_characteristic_bits(k)) {
308             mpz_t zr;
309             mpz_init(zr);
310             mpz_t ppz;
311             mpz_init(ppz);
312             mpfq_p_14_field_characteristic(k, ppz);
313             mpz_pow_ui(ppz,ppz,mpfq_p_14_field_degree(k));
314             mpz_sub_ui(ppz,ppz,1);
315             mpz_fdiv_r(zr, z, ppz);
316             mpfq_p_14_powz(k, y, x, zr);
317             mpz_clear(ppz);
318             mpz_clear(zr);
319         } else {
320             mpfq_p_14_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_14_asprint(mpfq_p_14_dst_field k,char ** pstr,mpfq_p_14_src_elt x)331 int mpfq_p_14_asprint(mpfq_p_14_dst_field k, char * * pstr, mpfq_p_14_src_elt x)
332 {
333     int i, n;
334     mp_size_t size_x;
335     i=14-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_14_fprint(mpfq_p_14_dst_field k,FILE * file,mpfq_p_14_src_elt x)373 int mpfq_p_14_fprint(mpfq_p_14_dst_field k, FILE * file, mpfq_p_14_src_elt x)
374 {
375     char *str;
376     int rc;
377     mpfq_p_14_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_14_sscan(mpfq_p_14_dst_field k,mpfq_p_14_dst_elt z,const char * str)384 int mpfq_p_14_sscan(mpfq_p_14_dst_field k, mpfq_p_14_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_14_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_14_fscan(mpfq_p_14_dst_field k,FILE * file,mpfq_p_14_dst_elt z)399 int mpfq_p_14_fscan(mpfq_p_14_dst_field k, FILE * file, mpfq_p_14_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_14_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_14_vec_init(mpfq_p_14_dst_field K MAYBE_UNUSED,mpfq_p_14_vec * v,unsigned long n)438 void mpfq_p_14_vec_init(mpfq_p_14_dst_field K MAYBE_UNUSED, mpfq_p_14_vec * v, unsigned long n)
439 {
440     unsigned int i;
441     *v = (mpfq_p_14_vec) malloc (n*sizeof(mpfq_p_14_elt));
442     for(i = 0; i < n; i++)
443         mpfq_p_14_init(K, (*v) + i);
444 }
445 
446 /* *Mpfq::defaults::vec::alloc::code_for_vec_reinit, Mpfq::defaults::vec, Mpfq::gfp */
mpfq_p_14_vec_reinit(mpfq_p_14_dst_field K MAYBE_UNUSED,mpfq_p_14_vec * v,unsigned long n,unsigned long m)447 void mpfq_p_14_vec_reinit(mpfq_p_14_dst_field K MAYBE_UNUSED, mpfq_p_14_vec * v, unsigned long n, unsigned long m)
448 {
449     if (n < m) { // increase size
450         unsigned int i;
451         *v = (mpfq_p_14_vec) realloc (*v, m * sizeof(mpfq_p_14_elt));
452         for(i = n; i < m; i+=1)
453             mpfq_p_14_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_14_clear(K, (*v) + i);
458         *v = (mpfq_p_14_vec) realloc (*v, m * sizeof(mpfq_p_14_elt));
459     }
460 }
461 
462 /* *Mpfq::defaults::vec::alloc::code_for_vec_clear, Mpfq::defaults::vec, Mpfq::gfp */
mpfq_p_14_vec_clear(mpfq_p_14_dst_field K MAYBE_UNUSED,mpfq_p_14_vec * v,unsigned long n)463 void mpfq_p_14_vec_clear(mpfq_p_14_dst_field K MAYBE_UNUSED, mpfq_p_14_vec * v, unsigned long n)
464 {
465         unsigned int i;
466     for(i = 0; i < n; i+=1)
467         mpfq_p_14_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_14_vec_random(mpfq_p_14_dst_field k,mpfq_p_14_dst_vec w,unsigned long n,gmp_randstate_t state)472 void mpfq_p_14_vec_random(mpfq_p_14_dst_field k, mpfq_p_14_dst_vec w, unsigned long n, gmp_randstate_t state)
473 {
474         for (unsigned int i = 0; i < n; ++i) {
475             mpfq_p_14_dst_elt x = mpfq_p_14_vec_coeff_ptr(k, w, i);
476         mpfq_p_14_random(k, x, state);
477         }
478 }
479 
480 /* *Mpfq::defaults::vec::generic::code_for_vec_random2, Mpfq::defaults::vec, Mpfq::gfp */
mpfq_p_14_vec_random2(mpfq_p_14_dst_field k,mpfq_p_14_dst_vec w,unsigned long n,gmp_randstate_t state)481 void mpfq_p_14_vec_random2(mpfq_p_14_dst_field k, mpfq_p_14_dst_vec w, unsigned long n, gmp_randstate_t state)
482 {
483         for (unsigned int i = 0; i < n; ++i) {
484             mpfq_p_14_dst_elt x = mpfq_p_14_vec_coeff_ptr(k, w, i);
485         mpfq_p_14_random2(k, x, state);
486         }
487 }
488 
489 /* *Mpfq::defaults::vec::generic::code_for_vec_cmp, Mpfq::defaults::vec, Mpfq::gfp */
mpfq_p_14_vec_cmp(mpfq_p_14_dst_field k,mpfq_p_14_src_vec u,mpfq_p_14_src_vec v,unsigned long n)490 long mpfq_p_14_vec_cmp(mpfq_p_14_dst_field k, mpfq_p_14_src_vec u, mpfq_p_14_src_vec v, unsigned long n)
491 {
492         for (unsigned int i = 0; i < n; ++i) {
493             mpfq_p_14_src_elt x = mpfq_p_14_vec_coeff_ptr_const(k, u, i);
494             mpfq_p_14_src_elt y = mpfq_p_14_vec_coeff_ptr_const(k, v, i);
495         int ret = mpfq_p_14_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_14_vec_is_zero(mpfq_p_14_dst_field k,mpfq_p_14_src_vec v,unsigned long n)503 long mpfq_p_14_vec_is_zero(mpfq_p_14_dst_field k, mpfq_p_14_src_vec v, unsigned long n)
504 {
505         for (unsigned int i = 0; i < n; ++i) {
506             mpfq_p_14_src_elt x = mpfq_p_14_vec_coeff_ptr_const(k, v, i);
507         if (!mpfq_p_14_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_14_vec_asprint(mpfq_p_14_dst_field K MAYBE_UNUSED,char ** pstr,mpfq_p_14_src_vec w,unsigned long n)514 long mpfq_p_14_vec_asprint(mpfq_p_14_dst_field K MAYBE_UNUSED, char * * pstr, mpfq_p_14_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_14_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_14_vec_fprint(mpfq_p_14_dst_field K MAYBE_UNUSED,FILE * file,mpfq_p_14_src_vec w,unsigned long n)557 long mpfq_p_14_vec_fprint(mpfq_p_14_dst_field K MAYBE_UNUSED, FILE * file, mpfq_p_14_src_vec w, unsigned long n)
558 {
559     char *str;
560     int rc;
561     mpfq_p_14_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_14_vec_print(mpfq_p_14_dst_field K MAYBE_UNUSED,mpfq_p_14_src_vec w,unsigned long n)568 long mpfq_p_14_vec_print(mpfq_p_14_dst_field K MAYBE_UNUSED, mpfq_p_14_src_vec w, unsigned long n)
569 {
570     return mpfq_p_14_vec_fprint(K,stdout,w,n);
571 }
572 
573 /* *Mpfq::defaults::vec::io::code_for_vec_sscan, Mpfq::defaults::vec, Mpfq::gfp */
mpfq_p_14_vec_sscan(mpfq_p_14_dst_field K MAYBE_UNUSED,mpfq_p_14_vec * w,unsigned long * n,const char * str)574 long mpfq_p_14_vec_sscan(mpfq_p_14_dst_field K MAYBE_UNUSED, mpfq_p_14_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_14_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_14_vec_reinit(K, w, nn, i+1);
596             *n = nn = i+1;
597         }
598         int ret = mpfq_p_14_sscan(K, mpfq_p_14_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_14_vec_fscan(mpfq_p_14_dst_field K MAYBE_UNUSED,FILE * file,mpfq_p_14_vec * w,unsigned long * n)623 long mpfq_p_14_vec_fscan(mpfq_p_14_dst_field K MAYBE_UNUSED, FILE * file, mpfq_p_14_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_14_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_14_vec_hamming_weight(mpfq_p_14_dst_field k,mpfq_p_14_src_vec v,unsigned long n)663 long mpfq_p_14_vec_hamming_weight(mpfq_p_14_dst_field k, mpfq_p_14_src_vec v, unsigned long n)
664 {
665         int w = 0;
666         for (unsigned int i = 0; i < n; ++i) {
667             mpfq_p_14_src_elt x = mpfq_p_14_vec_coeff_ptr_const(k, v, i);
668         w += !mpfq_p_14_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_14_vec_find_first_set(mpfq_p_14_dst_field k,mpfq_p_14_src_vec v,unsigned long n)674 long mpfq_p_14_vec_find_first_set(mpfq_p_14_dst_field k, mpfq_p_14_src_vec v, unsigned long n)
675 {
676         for (unsigned int i = 0; i < n; ++i) {
677             mpfq_p_14_src_elt x = mpfq_p_14_vec_coeff_ptr_const(k, v, i);
678         if (!mpfq_p_14_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_14_vec_simd_hamming_weight(mpfq_p_14_dst_field k,mpfq_p_14_src_vec v,unsigned long n)685 long mpfq_p_14_vec_simd_hamming_weight(mpfq_p_14_dst_field k, mpfq_p_14_src_vec v, unsigned long n)
686 {
687         int w = 0;
688         for (unsigned int i = 0; i < n; ++i) {
689             mpfq_p_14_src_elt x = mpfq_p_14_vec_coeff_ptr_const(k, v, i);
690         w += mpfq_p_14_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_14_vec_simd_find_first_set(mpfq_p_14_dst_field k,mpfq_p_14_src_vec v,unsigned long n)696 long mpfq_p_14_vec_simd_find_first_set(mpfq_p_14_dst_field k, mpfq_p_14_src_vec v, unsigned long n)
697 {
698         for (unsigned int i = 0; i < n; ++i) {
699             mpfq_p_14_src_elt x = mpfq_p_14_vec_coeff_ptr_const(k, v, i);
700         if (!mpfq_p_14_is_zero(k, x))
701             return i * mpfq_p_14_simd_groupsize(k) + mpfq_p_14_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_14_vec_ur_init(mpfq_p_14_dst_field K MAYBE_UNUSED,mpfq_p_14_vec_ur * v,unsigned long n)707 void mpfq_p_14_vec_ur_init(mpfq_p_14_dst_field K MAYBE_UNUSED, mpfq_p_14_vec_ur * v, unsigned long n)
708 {
709     unsigned int i;
710     *v = (mpfq_p_14_vec_ur) malloc (n*sizeof(mpfq_p_14_elt_ur));
711     for(i = 0; i < n; i+=1)
712         mpfq_p_14_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_14_vec_ur_reinit(mpfq_p_14_dst_field K MAYBE_UNUSED,mpfq_p_14_vec_ur * v,unsigned long n,unsigned long m)716 void mpfq_p_14_vec_ur_reinit(mpfq_p_14_dst_field K MAYBE_UNUSED, mpfq_p_14_vec_ur * v, unsigned long n, unsigned long m)
717 {
718     if (n < m) { // increase size
719         *v = (mpfq_p_14_vec_ur) realloc (*v, m * sizeof(mpfq_p_14_elt_ur));
720         unsigned int i;
721         for(i = n; i < m; i+=1)
722             mpfq_p_14_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_14_elt_ur_clear(K, (*v) + i);
727         *v = (mpfq_p_14_vec_ur) realloc (*v, m * sizeof(mpfq_p_14_elt_ur));
728     }
729 }
730 
731 /* *Mpfq::defaults::vec::alloc::code_for_vec_ur_clear, Mpfq::defaults::vec, Mpfq::gfp */
mpfq_p_14_vec_ur_clear(mpfq_p_14_dst_field K MAYBE_UNUSED,mpfq_p_14_vec_ur * v,unsigned long n)732 void mpfq_p_14_vec_ur_clear(mpfq_p_14_dst_field K MAYBE_UNUSED, mpfq_p_14_vec_ur * v, unsigned long n)
733 {
734     unsigned int i;
735     for(i = 0; i < n; i+=1)
736         mpfq_p_14_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_14_vec_conv_ur_ks(mpfq_p_14_dst_field K MAYBE_UNUSED,mpfq_p_14_dst_vec_ur w,mpfq_p_14_src_vec u,unsigned int n,mpfq_p_14_src_vec v,unsigned int m)742 void mpfq_p_14_vec_conv_ur_ks(mpfq_p_14_dst_field K MAYBE_UNUSED, mpfq_p_14_dst_vec_ur w, mpfq_p_14_src_vec u, unsigned int n, mpfq_p_14_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_14_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_14_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_14_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_14_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_14_elt_ur) == nwords*sizeof(unsigned long)) {
793         for (i = 0; i < m+n-1; ++i)
794             mpfq_p_14_elt_ur_set(K, w[i], (mpfq_p_14_src_elt_ur)(W->_mp_d + i*nwords));
795     } else {
796         for (i = 0; i < m+n-1; ++i) {
797             mpfq_p_14_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_14_poly_setmonic(mpfq_p_14_dst_field K MAYBE_UNUSED,mpfq_p_14_dst_poly q,mpfq_p_14_src_poly p)808 void mpfq_p_14_poly_setmonic(mpfq_p_14_dst_field K MAYBE_UNUSED, mpfq_p_14_dst_poly q, mpfq_p_14_src_poly p)
809 {
810     long degp = mpfq_p_14_poly_deg(K, p);
811     if (degp == -1) {
812         q->size = 0;
813         return;
814     }
815     if (degp == 0) {
816         mpfq_p_14_elt aux;
817         mpfq_p_14_init(K, &aux);
818         mpfq_p_14_set_ui(K, aux, 1);
819         mpfq_p_14_poly_setcoeff(K, q, aux, 0);
820         mpfq_p_14_clear(K, &aux);
821         q->size = 1;
822         return;
823     }
824     mpfq_p_14_elt lc;	/* spurious uninit warning sometimes */
825     mpfq_p_14_init(K, &lc);
826     mpfq_p_14_poly_getcoeff(K, lc, p, degp);
827     mpfq_p_14_inv(K, lc, lc);
828     mpfq_p_14_poly_setcoeff_ui(K, q, 1, degp);
829     mpfq_p_14_vec_scal_mul(K, q->c, p->c, lc, degp);
830     q->size = degp+1;
831     mpfq_p_14_clear(K, &lc);
832 }
833 
834 /* *Mpfq::defaults::poly::code_for_poly_divmod, Mpfq::gfp */
mpfq_p_14_poly_divmod(mpfq_p_14_dst_field K MAYBE_UNUSED,mpfq_p_14_dst_poly q,mpfq_p_14_dst_poly r,mpfq_p_14_src_poly a,mpfq_p_14_src_poly b)835 int mpfq_p_14_poly_divmod(mpfq_p_14_dst_field K MAYBE_UNUSED, mpfq_p_14_dst_poly q, mpfq_p_14_dst_poly r, mpfq_p_14_src_poly a, mpfq_p_14_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_14_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_14_poly_deg(K, b);
851     if (degb<0) {
852         return 0;
853     }
854     if (degb > dega) {
855         q->size=0;
856         mpfq_p_14_poly_set(K, r, a);
857         return 1;
858     }
859     int bmonic;
860     mpfq_p_14_elt ilb;
861     mpfq_p_14_init(K, &ilb);
862     mpfq_p_14_elt temp;
863     mpfq_p_14_init(K, &temp);
864     mpfq_p_14_set_zero(K, temp); // silence spurious gcc11 warning :-(
865     mpfq_p_14_poly_getcoeff(K, temp, b, degb);
866     if (mpfq_p_14_cmp_ui(K, temp, 1) == 0) {
867         mpfq_p_14_set_ui(K, ilb, 1);
868         bmonic = 1;
869     } else {
870         mpfq_p_14_inv(K, ilb, temp);
871         bmonic = 0;
872     }
873 
874     mpfq_p_14_poly qq, rr;
875     mpfq_p_14_poly_init(K, qq, dega-degb+1);
876     mpfq_p_14_poly_init(K, rr, dega);
877 
878     mpfq_p_14_poly_set(K, rr, a);
879     mpfq_p_14_elt aux, aux2;
880 
881     mpfq_p_14_init(K, &aux);
882     mpfq_p_14_init(K, &aux2);
883 
884     int i;
885     int j;
886     for (i = dega; i >= (int)degb; --i) {
887         mpfq_p_14_poly_getcoeff(K, aux, rr, i);
888         if (!bmonic)
889             mpfq_p_14_mul(K, aux, aux, ilb);
890         mpfq_p_14_poly_setcoeff(K, qq, aux, i-degb);
891         for (j = i-1; j >= (int)(i - degb); --j) {
892             mpfq_p_14_poly_getcoeff(K, temp, b, j-i+degb);
893             mpfq_p_14_mul(K, aux2, aux, temp);
894             mpfq_p_14_poly_getcoeff(K, temp, rr, j);
895 
896             mpfq_p_14_sub(K, temp, temp, aux2);
897             mpfq_p_14_poly_setcoeff(K, rr, temp, j);
898         }
899     }
900 
901     rr->size = degb;
902     int degr = mpfq_p_14_poly_deg(K, rr);
903     rr->size = degr+1;
904 
905     if (q != NULL)
906         mpfq_p_14_poly_set(K, q, qq);
907     if (r != NULL)
908         mpfq_p_14_poly_set(K, r, rr);
909     mpfq_p_14_clear(K, &temp);
910     mpfq_p_14_clear(K, &ilb);
911     mpfq_p_14_clear(K, &aux);
912     mpfq_p_14_clear(K, &aux2);
913     mpfq_p_14_poly_clear(K, rr);
914     mpfq_p_14_poly_clear(K, qq);
915     return 1;
916 }
917 
918 static void mpfq_p_14_poly_preinv(mpfq_p_14_dst_field, mpfq_p_14_dst_poly, mpfq_p_14_src_poly, unsigned int);
919 /* *Mpfq::defaults::poly::code_for_poly_precomp_mod, Mpfq::gfp */
920 /* Triggered by: poly_precomp_mod */
mpfq_p_14_poly_preinv(mpfq_p_14_dst_field K MAYBE_UNUSED,mpfq_p_14_dst_poly q,mpfq_p_14_src_poly p,unsigned int n)921 static void mpfq_p_14_poly_preinv(mpfq_p_14_dst_field K MAYBE_UNUSED, mpfq_p_14_dst_poly q, mpfq_p_14_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_14_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_14_poly_preinv(K, q, p, m);
939     }
940     mpfq_p_14_elt temp;	/* spurious uninit warning sometimes */
941     mpfq_p_14_init(K, &temp);
942     mpfq_p_14_set_zero(K, temp); // silence spurious gcc11 warning :-(
943     mpfq_p_14_poly_getcoeff(K, temp, p, 0);//Should be in the assert
944     assert( mpfq_p_14_cmp_ui(K, temp, 1) == 0);
945     // enlarge q if necessary
946     if (q->alloc < n) {
947         mpfq_p_14_vec_reinit(K, &(q->c), q->alloc, n);
948         q->alloc = n;
949     }
950     // refine value
951     mpfq_p_14_vec tmp;
952     mpfq_p_14_vec_init(K, &tmp, m+n-1);
953 
954     mpfq_p_14_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_14_vec_neg(K, tmp, tmp, nn);
957     mpfq_p_14_vec_getcoeff(K, temp, tmp, 0);
958     mpfq_p_14_add_ui(K, temp, temp, 1);
959     mpfq_p_14_vec_setcoeff(K, tmp, temp, 0);
960     mpfq_p_14_vec_conv(K, tmp, q->c, m, tmp, nn);
961     mpfq_p_14_vec_set(K, mpfq_p_14_vec_subvec(K, q->c, m), mpfq_p_14_vec_subvec(K, tmp, m), n-m);
962     q->size = n;
963 
964     mpfq_p_14_clear(K, &temp);
965     mpfq_p_14_vec_clear(K, &tmp, m+n-1);
966 }
967 
968 /* *Mpfq::defaults::poly::code_for_poly_precomp_mod, Mpfq::gfp */
mpfq_p_14_poly_precomp_mod(mpfq_p_14_dst_field K MAYBE_UNUSED,mpfq_p_14_dst_poly q,mpfq_p_14_src_poly p)969 void mpfq_p_14_poly_precomp_mod(mpfq_p_14_dst_field K MAYBE_UNUSED, mpfq_p_14_dst_poly q, mpfq_p_14_src_poly p)
970 {
971     assert(p != q);
972     int N = mpfq_p_14_poly_deg(K, p);
973     if (N < 0) {
974         mpfq_p_14_poly_set(K, q, p);
975         return;
976     }
977     mpfq_p_14_poly rp;
978     mpfq_p_14_poly_init(K, rp, N+1);
979     mpfq_p_14_vec_rev(K, rp->c, p->c, N+1);
980     rp->size = N+1;
981     mpfq_p_14_poly_preinv(K, q, rp, N);
982     mpfq_p_14_poly_clear(K, rp);
983 }
984 
985 /* *Mpfq::defaults::poly::code_for_poly_mod_pre, Mpfq::gfp */
mpfq_p_14_poly_mod_pre(mpfq_p_14_dst_field K MAYBE_UNUSED,mpfq_p_14_dst_poly r,mpfq_p_14_src_poly q,mpfq_p_14_src_poly p,mpfq_p_14_src_poly irp)986 void mpfq_p_14_poly_mod_pre(mpfq_p_14_dst_field K MAYBE_UNUSED, mpfq_p_14_dst_poly r, mpfq_p_14_src_poly q, mpfq_p_14_src_poly p, mpfq_p_14_src_poly irp)
987 {
988     int N = mpfq_p_14_poly_deg(K, p);
989     int degq = mpfq_p_14_poly_deg(K, q);
990     if (degq < N) {
991         mpfq_p_14_poly_set(K, r, q);
992         return;
993     }
994     int m = degq - N;
995     assert (degq <= 2*N-2);
996     mpfq_p_14_poly revq;
997     mpfq_p_14_poly_init(K, revq, MAX(degq+1, m+1));
998     mpfq_p_14_vec_rev(K, revq->c, q->c, degq+1);
999     revq->size = q->size;
1000     mpfq_p_14_poly_mul(K, revq, revq, irp);
1001     mpfq_p_14_vec_rev(K, revq->c, revq->c, m+1);
1002     revq->size = m+1;
1003 
1004     mpfq_p_14_poly_mul(K, revq, revq, p);
1005     mpfq_p_14_poly_sub(K, r, q, revq);
1006     r->size = mpfq_p_14_poly_deg(K, r)+1;
1007     mpfq_p_14_poly_clear(K, revq);
1008 }
1009 
1010 
1011 /* Functions related to SIMD operation */
1012 /* *simd_gfp::code_for_add_dotprod */
mpfq_p_14_add_dotprod(mpfq_p_14_dst_field K MAYBE_UNUSED,mpfq_p_14_dst_vec xw,mpfq_p_14_src_vec xu1,mpfq_p_14_src_vec xu0,unsigned int n)1013 void mpfq_p_14_add_dotprod(mpfq_p_14_dst_field K MAYBE_UNUSED, mpfq_p_14_dst_vec xw, mpfq_p_14_src_vec xu1, mpfq_p_14_src_vec xu0, unsigned int n)
1014 {
1015         mpfq_p_14_elt_ur s,t;
1016         mpfq_p_14_elt_ur_init(K, &s);
1017         mpfq_p_14_elt_ur_init(K, &t);
1018         mpfq_p_14_elt_ur_set_elt(K, s, xw[0]);
1019         for(unsigned int i = 0 ; i < n ; i++) {
1020             mpfq_p_14_mul_ur(K, t, xu0[i], xu1[i]);
1021             mpfq_p_14_elt_ur_add(K, s, s, t);
1022         }
1023         mpfq_p_14_reduce(K, xw[0], s);
1024         mpfq_p_14_elt_ur_clear(K, &s);
1025         mpfq_p_14_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_14_wrapper_oo_field_clear(mpfq_vbase_ptr);
mpfq_p_14_wrapper_oo_field_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED)1033 static void mpfq_p_14_wrapper_oo_field_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED)
1034 {
1035     mpfq_p_14_oo_field_clear(vbase);
1036 }
1037 
1038 static void mpfq_p_14_wrapper_oo_field_init(mpfq_vbase_ptr);
mpfq_p_14_wrapper_oo_field_init(mpfq_vbase_ptr vbase MAYBE_UNUSED)1039 static void mpfq_p_14_wrapper_oo_field_init(mpfq_vbase_ptr vbase MAYBE_UNUSED)
1040 {
1041     mpfq_p_14_oo_field_init(vbase);
1042 }
1043 
1044 static void mpfq_p_14_wrapper_add_dotprod(mpfq_vbase_ptr, mpfq_p_14_dst_vec, mpfq_p_14_src_vec, mpfq_p_14_src_vec, unsigned int);
mpfq_p_14_wrapper_add_dotprod(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec xw MAYBE_UNUSED,mpfq_p_14_src_vec xu1 MAYBE_UNUSED,mpfq_p_14_src_vec xu0 MAYBE_UNUSED,unsigned int n MAYBE_UNUSED)1045 static void mpfq_p_14_wrapper_add_dotprod(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec xw MAYBE_UNUSED, mpfq_p_14_src_vec xu1 MAYBE_UNUSED, mpfq_p_14_src_vec xu0 MAYBE_UNUSED, unsigned int n MAYBE_UNUSED)
1046 {
1047     mpfq_p_14_add_dotprod(vbase->obj, xw, xu1, xu0, n);
1048 }
1049 
1050 static void mpfq_p_14_wrapper_simd_set_ui_all(mpfq_vbase_ptr, mpfq_p_14_dst_elt, unsigned long);
mpfq_p_14_wrapper_simd_set_ui_all(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt p MAYBE_UNUSED,unsigned long v MAYBE_UNUSED)1051 static void mpfq_p_14_wrapper_simd_set_ui_all(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt p MAYBE_UNUSED, unsigned long v MAYBE_UNUSED)
1052 {
1053     mpfq_p_14_simd_set_ui_all(vbase->obj, p, v);
1054 }
1055 
1056 static void mpfq_p_14_wrapper_simd_add_ui_at(mpfq_vbase_ptr, mpfq_p_14_dst_elt, mpfq_p_14_src_elt, int, unsigned long);
mpfq_p_14_wrapper_simd_add_ui_at(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt p MAYBE_UNUSED,mpfq_p_14_src_elt p0 MAYBE_UNUSED,int k MAYBE_UNUSED,unsigned long v MAYBE_UNUSED)1057 static void mpfq_p_14_wrapper_simd_add_ui_at(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt p MAYBE_UNUSED, mpfq_p_14_src_elt p0 MAYBE_UNUSED, int k MAYBE_UNUSED, unsigned long v MAYBE_UNUSED)
1058 {
1059     mpfq_p_14_simd_add_ui_at(vbase->obj, p, p0, k, v);
1060 }
1061 
1062 static void mpfq_p_14_wrapper_simd_set_ui_at(mpfq_vbase_ptr, mpfq_p_14_dst_elt, int, unsigned long);
mpfq_p_14_wrapper_simd_set_ui_at(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt p MAYBE_UNUSED,int k MAYBE_UNUSED,unsigned long v MAYBE_UNUSED)1063 static void mpfq_p_14_wrapper_simd_set_ui_at(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt p MAYBE_UNUSED, int k MAYBE_UNUSED, unsigned long v MAYBE_UNUSED)
1064 {
1065     mpfq_p_14_simd_set_ui_at(vbase->obj, p, k, v);
1066 }
1067 
1068 static unsigned long mpfq_p_14_wrapper_simd_get_ui_at(mpfq_vbase_ptr, mpfq_p_14_src_elt, int);
mpfq_p_14_wrapper_simd_get_ui_at(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_src_elt p MAYBE_UNUSED,int k MAYBE_UNUSED)1069 static unsigned long mpfq_p_14_wrapper_simd_get_ui_at(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_src_elt p MAYBE_UNUSED, int k MAYBE_UNUSED)
1070 {
1071     return mpfq_p_14_simd_get_ui_at(vbase->obj, p, k);
1072 }
1073 
1074 static int mpfq_p_14_wrapper_simd_find_first_set(mpfq_vbase_ptr, mpfq_p_14_src_elt);
mpfq_p_14_wrapper_simd_find_first_set(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_src_elt p MAYBE_UNUSED)1075 static int mpfq_p_14_wrapper_simd_find_first_set(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_src_elt p MAYBE_UNUSED)
1076 {
1077     return mpfq_p_14_simd_find_first_set(vbase->obj, p);
1078 }
1079 
1080 static int mpfq_p_14_wrapper_simd_hamming_weight(mpfq_vbase_ptr, mpfq_p_14_src_elt);
mpfq_p_14_wrapper_simd_hamming_weight(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_src_elt p MAYBE_UNUSED)1081 static int mpfq_p_14_wrapper_simd_hamming_weight(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_src_elt p MAYBE_UNUSED)
1082 {
1083     return mpfq_p_14_simd_hamming_weight(vbase->obj, p);
1084 }
1085 
1086 static int mpfq_p_14_wrapper_simd_groupsize(mpfq_vbase_ptr);
mpfq_p_14_wrapper_simd_groupsize(mpfq_vbase_ptr vbase MAYBE_UNUSED)1087 static int mpfq_p_14_wrapper_simd_groupsize(mpfq_vbase_ptr vbase MAYBE_UNUSED)
1088 {
1089     return mpfq_p_14_simd_groupsize(vbase->obj);
1090 }
1091 
1092 static int mpfq_p_14_wrapper_poly_scan(mpfq_vbase_ptr, mpfq_p_14_dst_poly);
mpfq_p_14_wrapper_poly_scan(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_poly w MAYBE_UNUSED)1093 static int mpfq_p_14_wrapper_poly_scan(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_poly w MAYBE_UNUSED)
1094 {
1095     return mpfq_p_14_poly_scan(vbase->obj, w);
1096 }
1097 
1098 static int mpfq_p_14_wrapper_poly_fscan(mpfq_vbase_ptr, FILE *, mpfq_p_14_dst_poly);
mpfq_p_14_wrapper_poly_fscan(mpfq_vbase_ptr vbase MAYBE_UNUSED,FILE * file MAYBE_UNUSED,mpfq_p_14_dst_poly w MAYBE_UNUSED)1099 static int mpfq_p_14_wrapper_poly_fscan(mpfq_vbase_ptr vbase MAYBE_UNUSED, FILE * file MAYBE_UNUSED, mpfq_p_14_dst_poly w MAYBE_UNUSED)
1100 {
1101     return mpfq_p_14_poly_fscan(vbase->obj, file, w);
1102 }
1103 
1104 static int mpfq_p_14_wrapper_poly_sscan(mpfq_vbase_ptr, mpfq_p_14_dst_poly, const char *);
mpfq_p_14_wrapper_poly_sscan(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_poly w MAYBE_UNUSED,const char * str MAYBE_UNUSED)1105 static int mpfq_p_14_wrapper_poly_sscan(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_poly w MAYBE_UNUSED, const char * str MAYBE_UNUSED)
1106 {
1107     return mpfq_p_14_poly_sscan(vbase->obj, w, str);
1108 }
1109 
1110 static int mpfq_p_14_wrapper_poly_print(mpfq_vbase_ptr, mpfq_p_14_src_poly);
mpfq_p_14_wrapper_poly_print(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_src_poly w MAYBE_UNUSED)1111 static int mpfq_p_14_wrapper_poly_print(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_src_poly w MAYBE_UNUSED)
1112 {
1113     return mpfq_p_14_poly_print(vbase->obj, w);
1114 }
1115 
1116 static int mpfq_p_14_wrapper_poly_fprint(mpfq_vbase_ptr, FILE *, mpfq_p_14_src_poly);
mpfq_p_14_wrapper_poly_fprint(mpfq_vbase_ptr vbase MAYBE_UNUSED,FILE * file MAYBE_UNUSED,mpfq_p_14_src_poly w MAYBE_UNUSED)1117 static int mpfq_p_14_wrapper_poly_fprint(mpfq_vbase_ptr vbase MAYBE_UNUSED, FILE * file MAYBE_UNUSED, mpfq_p_14_src_poly w MAYBE_UNUSED)
1118 {
1119     return mpfq_p_14_poly_fprint(vbase->obj, file, w);
1120 }
1121 
1122 static int mpfq_p_14_wrapper_poly_asprint(mpfq_vbase_ptr, char * *, mpfq_p_14_src_poly);
mpfq_p_14_wrapper_poly_asprint(mpfq_vbase_ptr vbase MAYBE_UNUSED,char ** pstr MAYBE_UNUSED,mpfq_p_14_src_poly w MAYBE_UNUSED)1123 static int mpfq_p_14_wrapper_poly_asprint(mpfq_vbase_ptr vbase MAYBE_UNUSED, char * * pstr MAYBE_UNUSED, mpfq_p_14_src_poly w MAYBE_UNUSED)
1124 {
1125     return mpfq_p_14_poly_asprint(vbase->obj, pstr, w);
1126 }
1127 
1128 static int mpfq_p_14_wrapper_poly_cmp(mpfq_vbase_ptr, mpfq_p_14_src_poly, mpfq_p_14_src_poly);
mpfq_p_14_wrapper_poly_cmp(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_src_poly u MAYBE_UNUSED,mpfq_p_14_src_poly v MAYBE_UNUSED)1129 static int mpfq_p_14_wrapper_poly_cmp(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_src_poly u MAYBE_UNUSED, mpfq_p_14_src_poly v MAYBE_UNUSED)
1130 {
1131     return mpfq_p_14_poly_cmp(vbase->obj, u, v);
1132 }
1133 
1134 static void mpfq_p_14_wrapper_poly_random2(mpfq_vbase_ptr, mpfq_p_14_dst_poly, unsigned int, gmp_randstate_t);
mpfq_p_14_wrapper_poly_random2(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_poly w MAYBE_UNUSED,unsigned int n MAYBE_UNUSED,gmp_randstate_t state MAYBE_UNUSED)1135 static void mpfq_p_14_wrapper_poly_random2(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_poly w MAYBE_UNUSED, unsigned int n MAYBE_UNUSED, gmp_randstate_t state MAYBE_UNUSED)
1136 {
1137     mpfq_p_14_poly_random2(vbase->obj, w, n, state);
1138 }
1139 
1140 static void mpfq_p_14_wrapper_poly_random(mpfq_vbase_ptr, mpfq_p_14_dst_poly, unsigned int, gmp_randstate_t);
mpfq_p_14_wrapper_poly_random(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_poly w MAYBE_UNUSED,unsigned int n MAYBE_UNUSED,gmp_randstate_t state MAYBE_UNUSED)1141 static void mpfq_p_14_wrapper_poly_random(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_poly w MAYBE_UNUSED, unsigned int n MAYBE_UNUSED, gmp_randstate_t state MAYBE_UNUSED)
1142 {
1143     mpfq_p_14_poly_random(vbase->obj, w, n, state);
1144 }
1145 
1146 static void mpfq_p_14_wrapper_poly_xgcd(mpfq_vbase_ptr, mpfq_p_14_dst_poly, mpfq_p_14_dst_poly, mpfq_p_14_dst_poly, mpfq_p_14_src_poly, mpfq_p_14_src_poly);
mpfq_p_14_wrapper_poly_xgcd(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_poly g MAYBE_UNUSED,mpfq_p_14_dst_poly u0 MAYBE_UNUSED,mpfq_p_14_dst_poly v0 MAYBE_UNUSED,mpfq_p_14_src_poly a0 MAYBE_UNUSED,mpfq_p_14_src_poly b0 MAYBE_UNUSED)1147 static void mpfq_p_14_wrapper_poly_xgcd(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_poly g MAYBE_UNUSED, mpfq_p_14_dst_poly u0 MAYBE_UNUSED, mpfq_p_14_dst_poly v0 MAYBE_UNUSED, mpfq_p_14_src_poly a0 MAYBE_UNUSED, mpfq_p_14_src_poly b0 MAYBE_UNUSED)
1148 {
1149     mpfq_p_14_poly_xgcd(vbase->obj, g, u0, v0, a0, b0);
1150 }
1151 
1152 static void mpfq_p_14_wrapper_poly_gcd(mpfq_vbase_ptr, mpfq_p_14_dst_poly, mpfq_p_14_src_poly, mpfq_p_14_src_poly);
mpfq_p_14_wrapper_poly_gcd(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_poly g MAYBE_UNUSED,mpfq_p_14_src_poly a0 MAYBE_UNUSED,mpfq_p_14_src_poly b0 MAYBE_UNUSED)1153 static void mpfq_p_14_wrapper_poly_gcd(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_poly g MAYBE_UNUSED, mpfq_p_14_src_poly a0 MAYBE_UNUSED, mpfq_p_14_src_poly b0 MAYBE_UNUSED)
1154 {
1155     mpfq_p_14_poly_gcd(vbase->obj, g, a0, b0);
1156 }
1157 
1158 static void mpfq_p_14_wrapper_poly_mod_pre(mpfq_vbase_ptr, mpfq_p_14_dst_poly, mpfq_p_14_src_poly, mpfq_p_14_src_poly, mpfq_p_14_src_poly);
mpfq_p_14_wrapper_poly_mod_pre(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_poly r MAYBE_UNUSED,mpfq_p_14_src_poly q MAYBE_UNUSED,mpfq_p_14_src_poly p MAYBE_UNUSED,mpfq_p_14_src_poly irp MAYBE_UNUSED)1159 static void mpfq_p_14_wrapper_poly_mod_pre(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_poly r MAYBE_UNUSED, mpfq_p_14_src_poly q MAYBE_UNUSED, mpfq_p_14_src_poly p MAYBE_UNUSED, mpfq_p_14_src_poly irp MAYBE_UNUSED)
1160 {
1161     mpfq_p_14_poly_mod_pre(vbase->obj, r, q, p, irp);
1162 }
1163 
1164 static void mpfq_p_14_wrapper_poly_precomp_mod(mpfq_vbase_ptr, mpfq_p_14_dst_poly, mpfq_p_14_src_poly);
mpfq_p_14_wrapper_poly_precomp_mod(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_poly q MAYBE_UNUSED,mpfq_p_14_src_poly p MAYBE_UNUSED)1165 static void mpfq_p_14_wrapper_poly_precomp_mod(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_poly q MAYBE_UNUSED, mpfq_p_14_src_poly p MAYBE_UNUSED)
1166 {
1167     mpfq_p_14_poly_precomp_mod(vbase->obj, q, p);
1168 }
1169 
1170 static int mpfq_p_14_wrapper_poly_divmod(mpfq_vbase_ptr, mpfq_p_14_dst_poly, mpfq_p_14_dst_poly, mpfq_p_14_src_poly, mpfq_p_14_src_poly);
mpfq_p_14_wrapper_poly_divmod(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_poly q MAYBE_UNUSED,mpfq_p_14_dst_poly r MAYBE_UNUSED,mpfq_p_14_src_poly a MAYBE_UNUSED,mpfq_p_14_src_poly b MAYBE_UNUSED)1171 static int mpfq_p_14_wrapper_poly_divmod(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_poly q MAYBE_UNUSED, mpfq_p_14_dst_poly r MAYBE_UNUSED, mpfq_p_14_src_poly a MAYBE_UNUSED, mpfq_p_14_src_poly b MAYBE_UNUSED)
1172 {
1173     return mpfq_p_14_poly_divmod(vbase->obj, q, r, a, b);
1174 }
1175 
1176 static void mpfq_p_14_wrapper_poly_mul(mpfq_vbase_ptr, mpfq_p_14_dst_poly, mpfq_p_14_src_poly, mpfq_p_14_src_poly);
mpfq_p_14_wrapper_poly_mul(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_poly w MAYBE_UNUSED,mpfq_p_14_src_poly u MAYBE_UNUSED,mpfq_p_14_src_poly v MAYBE_UNUSED)1177 static void mpfq_p_14_wrapper_poly_mul(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_poly w MAYBE_UNUSED, mpfq_p_14_src_poly u MAYBE_UNUSED, mpfq_p_14_src_poly v MAYBE_UNUSED)
1178 {
1179     mpfq_p_14_poly_mul(vbase->obj, w, u, v);
1180 }
1181 
1182 static void mpfq_p_14_wrapper_poly_scal_mul(mpfq_vbase_ptr, mpfq_p_14_dst_poly, mpfq_p_14_src_poly, mpfq_p_14_src_elt);
mpfq_p_14_wrapper_poly_scal_mul(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_poly w MAYBE_UNUSED,mpfq_p_14_src_poly u MAYBE_UNUSED,mpfq_p_14_src_elt x MAYBE_UNUSED)1183 static void mpfq_p_14_wrapper_poly_scal_mul(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_poly w MAYBE_UNUSED, mpfq_p_14_src_poly u MAYBE_UNUSED, mpfq_p_14_src_elt x MAYBE_UNUSED)
1184 {
1185     mpfq_p_14_poly_scal_mul(vbase->obj, w, u, x);
1186 }
1187 
1188 static void mpfq_p_14_wrapper_poly_neg(mpfq_vbase_ptr, mpfq_p_14_dst_poly, mpfq_p_14_src_poly);
mpfq_p_14_wrapper_poly_neg(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_poly w MAYBE_UNUSED,mpfq_p_14_src_poly u MAYBE_UNUSED)1189 static void mpfq_p_14_wrapper_poly_neg(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_poly w MAYBE_UNUSED, mpfq_p_14_src_poly u MAYBE_UNUSED)
1190 {
1191     mpfq_p_14_poly_neg(vbase->obj, w, u);
1192 }
1193 
1194 static void mpfq_p_14_wrapper_poly_sub_ui(mpfq_vbase_ptr, mpfq_p_14_dst_poly, mpfq_p_14_src_poly, unsigned long);
mpfq_p_14_wrapper_poly_sub_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_poly w MAYBE_UNUSED,mpfq_p_14_src_poly u MAYBE_UNUSED,unsigned long x MAYBE_UNUSED)1195 static void mpfq_p_14_wrapper_poly_sub_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_poly w MAYBE_UNUSED, mpfq_p_14_src_poly u MAYBE_UNUSED, unsigned long x MAYBE_UNUSED)
1196 {
1197     mpfq_p_14_poly_sub_ui(vbase->obj, w, u, x);
1198 }
1199 
1200 static void mpfq_p_14_wrapper_poly_add_ui(mpfq_vbase_ptr, mpfq_p_14_dst_poly, mpfq_p_14_src_poly, unsigned long);
mpfq_p_14_wrapper_poly_add_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_poly w MAYBE_UNUSED,mpfq_p_14_src_poly u MAYBE_UNUSED,unsigned long x MAYBE_UNUSED)1201 static void mpfq_p_14_wrapper_poly_add_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_poly w MAYBE_UNUSED, mpfq_p_14_src_poly u MAYBE_UNUSED, unsigned long x MAYBE_UNUSED)
1202 {
1203     mpfq_p_14_poly_add_ui(vbase->obj, w, u, x);
1204 }
1205 
1206 static void mpfq_p_14_wrapper_poly_set_ui(mpfq_vbase_ptr, mpfq_p_14_dst_poly, unsigned long);
mpfq_p_14_wrapper_poly_set_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_poly w MAYBE_UNUSED,unsigned long x MAYBE_UNUSED)1207 static void mpfq_p_14_wrapper_poly_set_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_poly w MAYBE_UNUSED, unsigned long x MAYBE_UNUSED)
1208 {
1209     mpfq_p_14_poly_set_ui(vbase->obj, w, x);
1210 }
1211 
1212 static void mpfq_p_14_wrapper_poly_sub(mpfq_vbase_ptr, mpfq_p_14_dst_poly, mpfq_p_14_src_poly, mpfq_p_14_src_poly);
mpfq_p_14_wrapper_poly_sub(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_poly w MAYBE_UNUSED,mpfq_p_14_src_poly u MAYBE_UNUSED,mpfq_p_14_src_poly v MAYBE_UNUSED)1213 static void mpfq_p_14_wrapper_poly_sub(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_poly w MAYBE_UNUSED, mpfq_p_14_src_poly u MAYBE_UNUSED, mpfq_p_14_src_poly v MAYBE_UNUSED)
1214 {
1215     mpfq_p_14_poly_sub(vbase->obj, w, u, v);
1216 }
1217 
1218 static void mpfq_p_14_wrapper_poly_add(mpfq_vbase_ptr, mpfq_p_14_dst_poly, mpfq_p_14_src_poly, mpfq_p_14_src_poly);
mpfq_p_14_wrapper_poly_add(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_poly w MAYBE_UNUSED,mpfq_p_14_src_poly u MAYBE_UNUSED,mpfq_p_14_src_poly v MAYBE_UNUSED)1219 static void mpfq_p_14_wrapper_poly_add(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_poly w MAYBE_UNUSED, mpfq_p_14_src_poly u MAYBE_UNUSED, mpfq_p_14_src_poly v MAYBE_UNUSED)
1220 {
1221     mpfq_p_14_poly_add(vbase->obj, w, u, v);
1222 }
1223 
1224 static int mpfq_p_14_wrapper_poly_deg(mpfq_vbase_ptr, mpfq_p_14_src_poly);
mpfq_p_14_wrapper_poly_deg(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_src_poly w MAYBE_UNUSED)1225 static int mpfq_p_14_wrapper_poly_deg(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_src_poly w MAYBE_UNUSED)
1226 {
1227     return mpfq_p_14_poly_deg(vbase->obj, w);
1228 }
1229 
1230 static void mpfq_p_14_wrapper_poly_getcoeff(mpfq_vbase_ptr, mpfq_p_14_dst_elt, mpfq_p_14_src_poly, unsigned int);
mpfq_p_14_wrapper_poly_getcoeff(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt x MAYBE_UNUSED,mpfq_p_14_src_poly w MAYBE_UNUSED,unsigned int i MAYBE_UNUSED)1231 static void mpfq_p_14_wrapper_poly_getcoeff(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt x MAYBE_UNUSED, mpfq_p_14_src_poly w MAYBE_UNUSED, unsigned int i MAYBE_UNUSED)
1232 {
1233     mpfq_p_14_poly_getcoeff(vbase->obj, x, w, i);
1234 }
1235 
1236 static void mpfq_p_14_wrapper_poly_setcoeff_ui(mpfq_vbase_ptr, mpfq_p_14_dst_poly, unsigned long, unsigned int);
mpfq_p_14_wrapper_poly_setcoeff_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_poly w MAYBE_UNUSED,unsigned long x MAYBE_UNUSED,unsigned int i MAYBE_UNUSED)1237 static void mpfq_p_14_wrapper_poly_setcoeff_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_poly w MAYBE_UNUSED, unsigned long x MAYBE_UNUSED, unsigned int i MAYBE_UNUSED)
1238 {
1239     mpfq_p_14_poly_setcoeff_ui(vbase->obj, w, x, i);
1240 }
1241 
1242 static void mpfq_p_14_wrapper_poly_setcoeff(mpfq_vbase_ptr, mpfq_p_14_dst_poly, mpfq_p_14_src_elt, unsigned int);
mpfq_p_14_wrapper_poly_setcoeff(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_poly w MAYBE_UNUSED,mpfq_p_14_src_elt x MAYBE_UNUSED,unsigned int i MAYBE_UNUSED)1243 static void mpfq_p_14_wrapper_poly_setcoeff(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_poly w MAYBE_UNUSED, mpfq_p_14_src_elt x MAYBE_UNUSED, unsigned int i MAYBE_UNUSED)
1244 {
1245     mpfq_p_14_poly_setcoeff(vbase->obj, w, x, i);
1246 }
1247 
1248 static void mpfq_p_14_wrapper_poly_setmonic(mpfq_vbase_ptr, mpfq_p_14_dst_poly, mpfq_p_14_src_poly);
mpfq_p_14_wrapper_poly_setmonic(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_poly q MAYBE_UNUSED,mpfq_p_14_src_poly p MAYBE_UNUSED)1249 static void mpfq_p_14_wrapper_poly_setmonic(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_poly q MAYBE_UNUSED, mpfq_p_14_src_poly p MAYBE_UNUSED)
1250 {
1251     mpfq_p_14_poly_setmonic(vbase->obj, q, p);
1252 }
1253 
1254 static void mpfq_p_14_wrapper_poly_set(mpfq_vbase_ptr, mpfq_p_14_dst_poly, mpfq_p_14_src_poly);
mpfq_p_14_wrapper_poly_set(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_poly w MAYBE_UNUSED,mpfq_p_14_src_poly u MAYBE_UNUSED)1255 static void mpfq_p_14_wrapper_poly_set(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_poly w MAYBE_UNUSED, mpfq_p_14_src_poly u MAYBE_UNUSED)
1256 {
1257     mpfq_p_14_poly_set(vbase->obj, w, u);
1258 }
1259 
1260 static void mpfq_p_14_wrapper_poly_clear(mpfq_vbase_ptr, mpfq_p_14_poly);
mpfq_p_14_wrapper_poly_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_poly p MAYBE_UNUSED)1261 static void mpfq_p_14_wrapper_poly_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_poly p MAYBE_UNUSED)
1262 {
1263     mpfq_p_14_poly_clear(vbase->obj, p);
1264 }
1265 
1266 static void mpfq_p_14_wrapper_poly_init(mpfq_vbase_ptr, mpfq_p_14_poly, unsigned int);
mpfq_p_14_wrapper_poly_init(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_poly p MAYBE_UNUSED,unsigned int n MAYBE_UNUSED)1267 static void mpfq_p_14_wrapper_poly_init(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_poly p MAYBE_UNUSED, unsigned int n MAYBE_UNUSED)
1268 {
1269     mpfq_p_14_poly_init(vbase->obj, p, n);
1270 }
1271 
1272 static ptrdiff_t mpfq_p_14_wrapper_vec_ur_elt_stride(mpfq_vbase_ptr, long);
mpfq_p_14_wrapper_vec_ur_elt_stride(mpfq_vbase_ptr vbase MAYBE_UNUSED,long n MAYBE_UNUSED)1273 static ptrdiff_t mpfq_p_14_wrapper_vec_ur_elt_stride(mpfq_vbase_ptr vbase MAYBE_UNUSED, long n MAYBE_UNUSED)
1274 {
1275     return mpfq_p_14_vec_ur_elt_stride(vbase->obj, n);
1276 }
1277 
1278 static ptrdiff_t mpfq_p_14_wrapper_vec_elt_stride(mpfq_vbase_ptr, long);
mpfq_p_14_wrapper_vec_elt_stride(mpfq_vbase_ptr vbase MAYBE_UNUSED,long n MAYBE_UNUSED)1279 static ptrdiff_t mpfq_p_14_wrapper_vec_elt_stride(mpfq_vbase_ptr vbase MAYBE_UNUSED, long n MAYBE_UNUSED)
1280 {
1281     return mpfq_p_14_vec_elt_stride(vbase->obj, n);
1282 }
1283 
1284 static mpfq_p_14_src_elt mpfq_p_14_wrapper_vec_ur_coeff_ptr_const(mpfq_vbase_ptr, mpfq_p_14_src_vec_ur, long);
mpfq_p_14_wrapper_vec_ur_coeff_ptr_const(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_src_vec_ur v MAYBE_UNUSED,long i MAYBE_UNUSED)1285 static mpfq_p_14_src_elt mpfq_p_14_wrapper_vec_ur_coeff_ptr_const(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_src_vec_ur v MAYBE_UNUSED, long i MAYBE_UNUSED)
1286 {
1287     return mpfq_p_14_vec_ur_coeff_ptr_const(vbase->obj, v, i);
1288 }
1289 
1290 static mpfq_p_14_dst_elt mpfq_p_14_wrapper_vec_ur_coeff_ptr(mpfq_vbase_ptr, mpfq_p_14_dst_vec_ur, long);
mpfq_p_14_wrapper_vec_ur_coeff_ptr(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec_ur v MAYBE_UNUSED,long i MAYBE_UNUSED)1291 static mpfq_p_14_dst_elt mpfq_p_14_wrapper_vec_ur_coeff_ptr(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec_ur v MAYBE_UNUSED, long i MAYBE_UNUSED)
1292 {
1293     return mpfq_p_14_vec_ur_coeff_ptr(vbase->obj, v, i);
1294 }
1295 
1296 static mpfq_p_14_src_vec_ur mpfq_p_14_wrapper_vec_ur_subvec_const(mpfq_vbase_ptr, mpfq_p_14_src_vec_ur, long);
mpfq_p_14_wrapper_vec_ur_subvec_const(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_src_vec_ur v MAYBE_UNUSED,long i MAYBE_UNUSED)1297 static mpfq_p_14_src_vec_ur mpfq_p_14_wrapper_vec_ur_subvec_const(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_src_vec_ur v MAYBE_UNUSED, long i MAYBE_UNUSED)
1298 {
1299     return mpfq_p_14_vec_ur_subvec_const(vbase->obj, v, i);
1300 }
1301 
1302 static mpfq_p_14_dst_vec_ur mpfq_p_14_wrapper_vec_ur_subvec(mpfq_vbase_ptr, mpfq_p_14_dst_vec_ur, long);
mpfq_p_14_wrapper_vec_ur_subvec(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec_ur v MAYBE_UNUSED,long i MAYBE_UNUSED)1303 static mpfq_p_14_dst_vec_ur mpfq_p_14_wrapper_vec_ur_subvec(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec_ur v MAYBE_UNUSED, long i MAYBE_UNUSED)
1304 {
1305     return mpfq_p_14_vec_ur_subvec(vbase->obj, v, i);
1306 }
1307 
1308 static void mpfq_p_14_wrapper_vec_reduce(mpfq_vbase_ptr, mpfq_p_14_dst_vec, mpfq_p_14_dst_vec_ur, unsigned long);
mpfq_p_14_wrapper_vec_reduce(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec w MAYBE_UNUSED,mpfq_p_14_dst_vec_ur u MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1309 static void mpfq_p_14_wrapper_vec_reduce(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec w MAYBE_UNUSED, mpfq_p_14_dst_vec_ur u MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1310 {
1311     mpfq_p_14_vec_reduce(vbase->obj, w, u, n);
1312 }
1313 
1314 static void mpfq_p_14_wrapper_vec_conv_ur(mpfq_vbase_ptr, mpfq_p_14_dst_vec_ur, mpfq_p_14_src_vec, unsigned long, mpfq_p_14_src_vec, unsigned long);
mpfq_p_14_wrapper_vec_conv_ur(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec_ur w MAYBE_UNUSED,mpfq_p_14_src_vec u MAYBE_UNUSED,unsigned long n MAYBE_UNUSED,mpfq_p_14_src_vec v MAYBE_UNUSED,unsigned long m MAYBE_UNUSED)1315 static void mpfq_p_14_wrapper_vec_conv_ur(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec_ur w MAYBE_UNUSED, mpfq_p_14_src_vec u MAYBE_UNUSED, unsigned long n MAYBE_UNUSED, mpfq_p_14_src_vec v MAYBE_UNUSED, unsigned long m MAYBE_UNUSED)
1316 {
1317     mpfq_p_14_vec_conv_ur(vbase->obj, w, u, n, v, m);
1318 }
1319 
1320 static void mpfq_p_14_wrapper_vec_scal_mul_ur(mpfq_vbase_ptr, mpfq_p_14_dst_vec_ur, mpfq_p_14_src_vec, mpfq_p_14_src_elt, unsigned long);
mpfq_p_14_wrapper_vec_scal_mul_ur(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec_ur w MAYBE_UNUSED,mpfq_p_14_src_vec u MAYBE_UNUSED,mpfq_p_14_src_elt c MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1321 static void mpfq_p_14_wrapper_vec_scal_mul_ur(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec_ur w MAYBE_UNUSED, mpfq_p_14_src_vec u MAYBE_UNUSED, mpfq_p_14_src_elt c MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1322 {
1323     mpfq_p_14_vec_scal_mul_ur(vbase->obj, w, u, c, n);
1324 }
1325 
1326 static void mpfq_p_14_wrapper_vec_ur_rev(mpfq_vbase_ptr, mpfq_p_14_dst_vec_ur, mpfq_p_14_src_vec_ur, unsigned long);
mpfq_p_14_wrapper_vec_ur_rev(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec_ur w MAYBE_UNUSED,mpfq_p_14_src_vec_ur u MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1327 static void mpfq_p_14_wrapper_vec_ur_rev(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec_ur w MAYBE_UNUSED, mpfq_p_14_src_vec_ur u MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1328 {
1329     mpfq_p_14_vec_ur_rev(vbase->obj, w, u, n);
1330 }
1331 
1332 static void mpfq_p_14_wrapper_vec_ur_neg(mpfq_vbase_ptr, mpfq_p_14_dst_vec_ur, mpfq_p_14_src_vec_ur, unsigned long);
mpfq_p_14_wrapper_vec_ur_neg(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec_ur w MAYBE_UNUSED,mpfq_p_14_src_vec_ur u MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1333 static void mpfq_p_14_wrapper_vec_ur_neg(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec_ur w MAYBE_UNUSED, mpfq_p_14_src_vec_ur u MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1334 {
1335     mpfq_p_14_vec_ur_neg(vbase->obj, w, u, n);
1336 }
1337 
1338 static void mpfq_p_14_wrapper_vec_ur_sub(mpfq_vbase_ptr, mpfq_p_14_dst_vec_ur, mpfq_p_14_src_vec_ur, mpfq_p_14_src_vec_ur, unsigned long);
mpfq_p_14_wrapper_vec_ur_sub(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec_ur w MAYBE_UNUSED,mpfq_p_14_src_vec_ur u MAYBE_UNUSED,mpfq_p_14_src_vec_ur v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1339 static void mpfq_p_14_wrapper_vec_ur_sub(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec_ur w MAYBE_UNUSED, mpfq_p_14_src_vec_ur u MAYBE_UNUSED, mpfq_p_14_src_vec_ur v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1340 {
1341     mpfq_p_14_vec_ur_sub(vbase->obj, w, u, v, n);
1342 }
1343 
1344 static void mpfq_p_14_wrapper_vec_ur_add(mpfq_vbase_ptr, mpfq_p_14_dst_vec_ur, mpfq_p_14_src_vec_ur, mpfq_p_14_src_vec_ur, unsigned long);
mpfq_p_14_wrapper_vec_ur_add(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec_ur w MAYBE_UNUSED,mpfq_p_14_src_vec_ur u MAYBE_UNUSED,mpfq_p_14_src_vec_ur v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1345 static void mpfq_p_14_wrapper_vec_ur_add(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec_ur w MAYBE_UNUSED, mpfq_p_14_src_vec_ur u MAYBE_UNUSED, mpfq_p_14_src_vec_ur v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1346 {
1347     mpfq_p_14_vec_ur_add(vbase->obj, w, u, v, n);
1348 }
1349 
1350 static void mpfq_p_14_wrapper_vec_ur_getcoeff(mpfq_vbase_ptr, mpfq_p_14_dst_elt_ur, mpfq_p_14_src_vec_ur, unsigned long);
mpfq_p_14_wrapper_vec_ur_getcoeff(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt_ur x MAYBE_UNUSED,mpfq_p_14_src_vec_ur w MAYBE_UNUSED,unsigned long i MAYBE_UNUSED)1351 static void mpfq_p_14_wrapper_vec_ur_getcoeff(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt_ur x MAYBE_UNUSED, mpfq_p_14_src_vec_ur w MAYBE_UNUSED, unsigned long i MAYBE_UNUSED)
1352 {
1353     mpfq_p_14_vec_ur_getcoeff(vbase->obj, x, w, i);
1354 }
1355 
1356 static void mpfq_p_14_wrapper_vec_ur_setcoeff(mpfq_vbase_ptr, mpfq_p_14_dst_vec_ur, mpfq_p_14_src_elt_ur, unsigned long);
mpfq_p_14_wrapper_vec_ur_setcoeff(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec_ur w MAYBE_UNUSED,mpfq_p_14_src_elt_ur x MAYBE_UNUSED,unsigned long i MAYBE_UNUSED)1357 static void mpfq_p_14_wrapper_vec_ur_setcoeff(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec_ur w MAYBE_UNUSED, mpfq_p_14_src_elt_ur x MAYBE_UNUSED, unsigned long i MAYBE_UNUSED)
1358 {
1359     mpfq_p_14_vec_ur_setcoeff(vbase->obj, w, x, i);
1360 }
1361 
1362 static void mpfq_p_14_wrapper_vec_ur_set(mpfq_vbase_ptr, mpfq_p_14_dst_vec_ur, mpfq_p_14_src_vec_ur, unsigned long);
mpfq_p_14_wrapper_vec_ur_set(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec_ur r MAYBE_UNUSED,mpfq_p_14_src_vec_ur s MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1363 static void mpfq_p_14_wrapper_vec_ur_set(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec_ur r MAYBE_UNUSED, mpfq_p_14_src_vec_ur s MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1364 {
1365     mpfq_p_14_vec_ur_set(vbase->obj, r, s, n);
1366 }
1367 
1368 static void mpfq_p_14_wrapper_vec_ur_clear(mpfq_vbase_ptr, mpfq_p_14_vec_ur *, unsigned long);
mpfq_p_14_wrapper_vec_ur_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_vec_ur * v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1369 static void mpfq_p_14_wrapper_vec_ur_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_vec_ur * v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1370 {
1371     mpfq_p_14_vec_ur_clear(vbase->obj, v, n);
1372 }
1373 
1374 static void mpfq_p_14_wrapper_vec_ur_reinit(mpfq_vbase_ptr, mpfq_p_14_vec_ur *, unsigned long, unsigned long);
mpfq_p_14_wrapper_vec_ur_reinit(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_vec_ur * v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED,unsigned long m MAYBE_UNUSED)1375 static void mpfq_p_14_wrapper_vec_ur_reinit(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_vec_ur * v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED, unsigned long m MAYBE_UNUSED)
1376 {
1377     mpfq_p_14_vec_ur_reinit(vbase->obj, v, n, m);
1378 }
1379 
1380 static void mpfq_p_14_wrapper_vec_ur_set_vec(mpfq_vbase_ptr, mpfq_p_14_dst_vec_ur, mpfq_p_14_src_vec, unsigned long);
mpfq_p_14_wrapper_vec_ur_set_vec(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec_ur w MAYBE_UNUSED,mpfq_p_14_src_vec u MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1381 static void mpfq_p_14_wrapper_vec_ur_set_vec(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec_ur w MAYBE_UNUSED, mpfq_p_14_src_vec u MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1382 {
1383     mpfq_p_14_vec_ur_set_vec(vbase->obj, w, u, n);
1384 }
1385 
1386 static void mpfq_p_14_wrapper_vec_ur_set_zero(mpfq_vbase_ptr, mpfq_p_14_dst_vec_ur, unsigned long);
mpfq_p_14_wrapper_vec_ur_set_zero(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec_ur r MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1387 static void mpfq_p_14_wrapper_vec_ur_set_zero(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec_ur r MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1388 {
1389     mpfq_p_14_vec_ur_set_zero(vbase->obj, r, n);
1390 }
1391 
1392 static void mpfq_p_14_wrapper_vec_ur_init(mpfq_vbase_ptr, mpfq_p_14_vec_ur *, unsigned long);
mpfq_p_14_wrapper_vec_ur_init(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_vec_ur * v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1393 static void mpfq_p_14_wrapper_vec_ur_init(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_vec_ur * v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1394 {
1395     mpfq_p_14_vec_ur_init(vbase->obj, v, n);
1396 }
1397 
1398 static long mpfq_p_14_wrapper_vec_simd_find_first_set(mpfq_vbase_ptr, mpfq_p_14_src_vec, unsigned long);
mpfq_p_14_wrapper_vec_simd_find_first_set(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_src_vec v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1399 static long mpfq_p_14_wrapper_vec_simd_find_first_set(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_src_vec v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1400 {
1401     return mpfq_p_14_vec_simd_find_first_set(vbase->obj, v, n);
1402 }
1403 
1404 static long mpfq_p_14_wrapper_vec_simd_hamming_weight(mpfq_vbase_ptr, mpfq_p_14_src_vec, unsigned long);
mpfq_p_14_wrapper_vec_simd_hamming_weight(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_src_vec v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1405 static long mpfq_p_14_wrapper_vec_simd_hamming_weight(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_src_vec v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1406 {
1407     return mpfq_p_14_vec_simd_hamming_weight(vbase->obj, v, n);
1408 }
1409 
1410 static long mpfq_p_14_wrapper_vec_find_first_set(mpfq_vbase_ptr, mpfq_p_14_src_vec, unsigned long);
mpfq_p_14_wrapper_vec_find_first_set(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_src_vec v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1411 static long mpfq_p_14_wrapper_vec_find_first_set(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_src_vec v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1412 {
1413     return mpfq_p_14_vec_find_first_set(vbase->obj, v, n);
1414 }
1415 
1416 static long mpfq_p_14_wrapper_vec_hamming_weight(mpfq_vbase_ptr, mpfq_p_14_src_vec, unsigned long);
mpfq_p_14_wrapper_vec_hamming_weight(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_src_vec v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1417 static long mpfq_p_14_wrapper_vec_hamming_weight(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_src_vec v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1418 {
1419     return mpfq_p_14_vec_hamming_weight(vbase->obj, v, n);
1420 }
1421 
1422 static long mpfq_p_14_wrapper_vec_scan(mpfq_vbase_ptr, mpfq_p_14_vec *, unsigned long *);
mpfq_p_14_wrapper_vec_scan(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_vec * w MAYBE_UNUSED,unsigned long * n MAYBE_UNUSED)1423 static long mpfq_p_14_wrapper_vec_scan(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_vec * w MAYBE_UNUSED, unsigned long * n MAYBE_UNUSED)
1424 {
1425     return mpfq_p_14_vec_scan(vbase->obj, w, n);
1426 }
1427 
1428 static long mpfq_p_14_wrapper_vec_fscan(mpfq_vbase_ptr, FILE *, mpfq_p_14_vec *, unsigned long *);
mpfq_p_14_wrapper_vec_fscan(mpfq_vbase_ptr vbase MAYBE_UNUSED,FILE * file MAYBE_UNUSED,mpfq_p_14_vec * w MAYBE_UNUSED,unsigned long * n MAYBE_UNUSED)1429 static long mpfq_p_14_wrapper_vec_fscan(mpfq_vbase_ptr vbase MAYBE_UNUSED, FILE * file MAYBE_UNUSED, mpfq_p_14_vec * w MAYBE_UNUSED, unsigned long * n MAYBE_UNUSED)
1430 {
1431     return mpfq_p_14_vec_fscan(vbase->obj, file, w, n);
1432 }
1433 
1434 static long mpfq_p_14_wrapper_vec_sscan(mpfq_vbase_ptr, mpfq_p_14_vec *, unsigned long *, const char *);
mpfq_p_14_wrapper_vec_sscan(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_vec * w MAYBE_UNUSED,unsigned long * n MAYBE_UNUSED,const char * str MAYBE_UNUSED)1435 static long mpfq_p_14_wrapper_vec_sscan(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_vec * w MAYBE_UNUSED, unsigned long * n MAYBE_UNUSED, const char * str MAYBE_UNUSED)
1436 {
1437     return mpfq_p_14_vec_sscan(vbase->obj, w, n, str);
1438 }
1439 
1440 static long mpfq_p_14_wrapper_vec_print(mpfq_vbase_ptr, mpfq_p_14_src_vec, unsigned long);
mpfq_p_14_wrapper_vec_print(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_src_vec w MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1441 static long mpfq_p_14_wrapper_vec_print(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_src_vec w MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1442 {
1443     return mpfq_p_14_vec_print(vbase->obj, w, n);
1444 }
1445 
1446 static long mpfq_p_14_wrapper_vec_fprint(mpfq_vbase_ptr, FILE *, mpfq_p_14_src_vec, unsigned long);
mpfq_p_14_wrapper_vec_fprint(mpfq_vbase_ptr vbase MAYBE_UNUSED,FILE * file MAYBE_UNUSED,mpfq_p_14_src_vec w MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1447 static long mpfq_p_14_wrapper_vec_fprint(mpfq_vbase_ptr vbase MAYBE_UNUSED, FILE * file MAYBE_UNUSED, mpfq_p_14_src_vec w MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1448 {
1449     return mpfq_p_14_vec_fprint(vbase->obj, file, w, n);
1450 }
1451 
1452 static long mpfq_p_14_wrapper_vec_asprint(mpfq_vbase_ptr, char * *, mpfq_p_14_src_vec, unsigned long);
mpfq_p_14_wrapper_vec_asprint(mpfq_vbase_ptr vbase MAYBE_UNUSED,char ** pstr MAYBE_UNUSED,mpfq_p_14_src_vec w MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1453 static long mpfq_p_14_wrapper_vec_asprint(mpfq_vbase_ptr vbase MAYBE_UNUSED, char * * pstr MAYBE_UNUSED, mpfq_p_14_src_vec w MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1454 {
1455     return mpfq_p_14_vec_asprint(vbase->obj, pstr, w, n);
1456 }
1457 
1458 static mpfq_p_14_src_elt mpfq_p_14_wrapper_vec_coeff_ptr_const(mpfq_vbase_ptr, mpfq_p_14_src_vec, long);
mpfq_p_14_wrapper_vec_coeff_ptr_const(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_src_vec v MAYBE_UNUSED,long i MAYBE_UNUSED)1459 static mpfq_p_14_src_elt mpfq_p_14_wrapper_vec_coeff_ptr_const(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_src_vec v MAYBE_UNUSED, long i MAYBE_UNUSED)
1460 {
1461     return mpfq_p_14_vec_coeff_ptr_const(vbase->obj, v, i);
1462 }
1463 
1464 static mpfq_p_14_dst_elt mpfq_p_14_wrapper_vec_coeff_ptr(mpfq_vbase_ptr, mpfq_p_14_dst_vec, long);
mpfq_p_14_wrapper_vec_coeff_ptr(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec v MAYBE_UNUSED,long i MAYBE_UNUSED)1465 static mpfq_p_14_dst_elt mpfq_p_14_wrapper_vec_coeff_ptr(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec v MAYBE_UNUSED, long i MAYBE_UNUSED)
1466 {
1467     return mpfq_p_14_vec_coeff_ptr(vbase->obj, v, i);
1468 }
1469 
1470 static mpfq_p_14_src_vec mpfq_p_14_wrapper_vec_subvec_const(mpfq_vbase_ptr, mpfq_p_14_src_vec, long);
mpfq_p_14_wrapper_vec_subvec_const(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_src_vec v MAYBE_UNUSED,long i MAYBE_UNUSED)1471 static mpfq_p_14_src_vec mpfq_p_14_wrapper_vec_subvec_const(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_src_vec v MAYBE_UNUSED, long i MAYBE_UNUSED)
1472 {
1473     return mpfq_p_14_vec_subvec_const(vbase->obj, v, i);
1474 }
1475 
1476 static mpfq_p_14_dst_vec mpfq_p_14_wrapper_vec_subvec(mpfq_vbase_ptr, mpfq_p_14_dst_vec, long);
mpfq_p_14_wrapper_vec_subvec(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec v MAYBE_UNUSED,long i MAYBE_UNUSED)1477 static mpfq_p_14_dst_vec mpfq_p_14_wrapper_vec_subvec(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec v MAYBE_UNUSED, long i MAYBE_UNUSED)
1478 {
1479     return mpfq_p_14_vec_subvec(vbase->obj, v, i);
1480 }
1481 
1482 static long mpfq_p_14_wrapper_vec_is_zero(mpfq_vbase_ptr, mpfq_p_14_src_vec, unsigned long);
mpfq_p_14_wrapper_vec_is_zero(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_src_vec v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1483 static long mpfq_p_14_wrapper_vec_is_zero(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_src_vec v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1484 {
1485     return mpfq_p_14_vec_is_zero(vbase->obj, v, n);
1486 }
1487 
1488 static long mpfq_p_14_wrapper_vec_cmp(mpfq_vbase_ptr, mpfq_p_14_src_vec, mpfq_p_14_src_vec, unsigned long);
mpfq_p_14_wrapper_vec_cmp(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_src_vec u MAYBE_UNUSED,mpfq_p_14_src_vec v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1489 static long mpfq_p_14_wrapper_vec_cmp(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_src_vec u MAYBE_UNUSED, mpfq_p_14_src_vec v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1490 {
1491     return mpfq_p_14_vec_cmp(vbase->obj, u, v, n);
1492 }
1493 
1494 static void mpfq_p_14_wrapper_vec_random2(mpfq_vbase_ptr, mpfq_p_14_dst_vec, unsigned long, gmp_randstate_t);
mpfq_p_14_wrapper_vec_random2(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec w MAYBE_UNUSED,unsigned long n MAYBE_UNUSED,gmp_randstate_t state MAYBE_UNUSED)1495 static void mpfq_p_14_wrapper_vec_random2(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec w MAYBE_UNUSED, unsigned long n MAYBE_UNUSED, gmp_randstate_t state MAYBE_UNUSED)
1496 {
1497     mpfq_p_14_vec_random2(vbase->obj, w, n, state);
1498 }
1499 
1500 static void mpfq_p_14_wrapper_vec_random(mpfq_vbase_ptr, mpfq_p_14_dst_vec, unsigned long, gmp_randstate_t);
mpfq_p_14_wrapper_vec_random(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec w MAYBE_UNUSED,unsigned long n MAYBE_UNUSED,gmp_randstate_t state MAYBE_UNUSED)1501 static void mpfq_p_14_wrapper_vec_random(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec w MAYBE_UNUSED, unsigned long n MAYBE_UNUSED, gmp_randstate_t state MAYBE_UNUSED)
1502 {
1503     mpfq_p_14_vec_random(vbase->obj, w, n, state);
1504 }
1505 
1506 static void mpfq_p_14_wrapper_vec_conv(mpfq_vbase_ptr, mpfq_p_14_dst_vec, mpfq_p_14_src_vec, unsigned long, mpfq_p_14_src_vec, unsigned long);
mpfq_p_14_wrapper_vec_conv(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec w MAYBE_UNUSED,mpfq_p_14_src_vec u MAYBE_UNUSED,unsigned long n MAYBE_UNUSED,mpfq_p_14_src_vec v MAYBE_UNUSED,unsigned long m MAYBE_UNUSED)1507 static void mpfq_p_14_wrapper_vec_conv(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec w MAYBE_UNUSED, mpfq_p_14_src_vec u MAYBE_UNUSED, unsigned long n MAYBE_UNUSED, mpfq_p_14_src_vec v MAYBE_UNUSED, unsigned long m MAYBE_UNUSED)
1508 {
1509     mpfq_p_14_vec_conv(vbase->obj, w, u, n, v, m);
1510 }
1511 
1512 static void mpfq_p_14_wrapper_vec_scal_mul(mpfq_vbase_ptr, mpfq_p_14_dst_vec, mpfq_p_14_src_vec, mpfq_p_14_src_elt, unsigned long);
mpfq_p_14_wrapper_vec_scal_mul(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec w MAYBE_UNUSED,mpfq_p_14_src_vec u MAYBE_UNUSED,mpfq_p_14_src_elt c MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1513 static void mpfq_p_14_wrapper_vec_scal_mul(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec w MAYBE_UNUSED, mpfq_p_14_src_vec u MAYBE_UNUSED, mpfq_p_14_src_elt c MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1514 {
1515     mpfq_p_14_vec_scal_mul(vbase->obj, w, u, c, n);
1516 }
1517 
1518 static void mpfq_p_14_wrapper_vec_sub(mpfq_vbase_ptr, mpfq_p_14_dst_vec, mpfq_p_14_src_vec, mpfq_p_14_src_vec, unsigned long);
mpfq_p_14_wrapper_vec_sub(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec w MAYBE_UNUSED,mpfq_p_14_src_vec u MAYBE_UNUSED,mpfq_p_14_src_vec v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1519 static void mpfq_p_14_wrapper_vec_sub(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec w MAYBE_UNUSED, mpfq_p_14_src_vec u MAYBE_UNUSED, mpfq_p_14_src_vec v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1520 {
1521     mpfq_p_14_vec_sub(vbase->obj, w, u, v, n);
1522 }
1523 
1524 static void mpfq_p_14_wrapper_vec_rev(mpfq_vbase_ptr, mpfq_p_14_dst_vec, mpfq_p_14_src_vec, unsigned long);
mpfq_p_14_wrapper_vec_rev(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec w MAYBE_UNUSED,mpfq_p_14_src_vec u MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1525 static void mpfq_p_14_wrapper_vec_rev(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec w MAYBE_UNUSED, mpfq_p_14_src_vec u MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1526 {
1527     mpfq_p_14_vec_rev(vbase->obj, w, u, n);
1528 }
1529 
1530 static void mpfq_p_14_wrapper_vec_neg(mpfq_vbase_ptr, mpfq_p_14_dst_vec, mpfq_p_14_src_vec, unsigned long);
mpfq_p_14_wrapper_vec_neg(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec w MAYBE_UNUSED,mpfq_p_14_src_vec u MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1531 static void mpfq_p_14_wrapper_vec_neg(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec w MAYBE_UNUSED, mpfq_p_14_src_vec u MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1532 {
1533     mpfq_p_14_vec_neg(vbase->obj, w, u, n);
1534 }
1535 
1536 static void mpfq_p_14_wrapper_vec_add(mpfq_vbase_ptr, mpfq_p_14_dst_vec, mpfq_p_14_src_vec, mpfq_p_14_src_vec, unsigned long);
mpfq_p_14_wrapper_vec_add(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec w MAYBE_UNUSED,mpfq_p_14_src_vec u MAYBE_UNUSED,mpfq_p_14_src_vec v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1537 static void mpfq_p_14_wrapper_vec_add(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec w MAYBE_UNUSED, mpfq_p_14_src_vec u MAYBE_UNUSED, mpfq_p_14_src_vec v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1538 {
1539     mpfq_p_14_vec_add(vbase->obj, w, u, v, n);
1540 }
1541 
1542 static void mpfq_p_14_wrapper_vec_getcoeff(mpfq_vbase_ptr, mpfq_p_14_dst_elt, mpfq_p_14_src_vec, unsigned long);
mpfq_p_14_wrapper_vec_getcoeff(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt x MAYBE_UNUSED,mpfq_p_14_src_vec w MAYBE_UNUSED,unsigned long i MAYBE_UNUSED)1543 static void mpfq_p_14_wrapper_vec_getcoeff(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt x MAYBE_UNUSED, mpfq_p_14_src_vec w MAYBE_UNUSED, unsigned long i MAYBE_UNUSED)
1544 {
1545     mpfq_p_14_vec_getcoeff(vbase->obj, x, w, i);
1546 }
1547 
1548 static void mpfq_p_14_wrapper_vec_setcoeff_ui(mpfq_vbase_ptr, mpfq_p_14_dst_vec, unsigned long, unsigned long);
mpfq_p_14_wrapper_vec_setcoeff_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec w MAYBE_UNUSED,unsigned long x MAYBE_UNUSED,unsigned long i MAYBE_UNUSED)1549 static void mpfq_p_14_wrapper_vec_setcoeff_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec w MAYBE_UNUSED, unsigned long x MAYBE_UNUSED, unsigned long i MAYBE_UNUSED)
1550 {
1551     mpfq_p_14_vec_setcoeff_ui(vbase->obj, w, x, i);
1552 }
1553 
1554 static void mpfq_p_14_wrapper_vec_setcoeff(mpfq_vbase_ptr, mpfq_p_14_dst_vec, mpfq_p_14_src_elt, unsigned long);
mpfq_p_14_wrapper_vec_setcoeff(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec w MAYBE_UNUSED,mpfq_p_14_src_elt x MAYBE_UNUSED,unsigned long i MAYBE_UNUSED)1555 static void mpfq_p_14_wrapper_vec_setcoeff(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec w MAYBE_UNUSED, mpfq_p_14_src_elt x MAYBE_UNUSED, unsigned long i MAYBE_UNUSED)
1556 {
1557     mpfq_p_14_vec_setcoeff(vbase->obj, w, x, i);
1558 }
1559 
1560 static void mpfq_p_14_wrapper_vec_set_zero(mpfq_vbase_ptr, mpfq_p_14_dst_vec, unsigned long);
mpfq_p_14_wrapper_vec_set_zero(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec r MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1561 static void mpfq_p_14_wrapper_vec_set_zero(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec r MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1562 {
1563     mpfq_p_14_vec_set_zero(vbase->obj, r, n);
1564 }
1565 
1566 static void mpfq_p_14_wrapper_vec_set(mpfq_vbase_ptr, mpfq_p_14_dst_vec, mpfq_p_14_src_vec, unsigned long);
mpfq_p_14_wrapper_vec_set(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_vec r MAYBE_UNUSED,mpfq_p_14_src_vec s MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1567 static void mpfq_p_14_wrapper_vec_set(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_vec r MAYBE_UNUSED, mpfq_p_14_src_vec s MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1568 {
1569     mpfq_p_14_vec_set(vbase->obj, r, s, n);
1570 }
1571 
1572 static void mpfq_p_14_wrapper_vec_clear(mpfq_vbase_ptr, mpfq_p_14_vec *, unsigned long);
mpfq_p_14_wrapper_vec_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_vec * v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1573 static void mpfq_p_14_wrapper_vec_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_vec * v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1574 {
1575     mpfq_p_14_vec_clear(vbase->obj, v, n);
1576 }
1577 
1578 static void mpfq_p_14_wrapper_vec_reinit(mpfq_vbase_ptr, mpfq_p_14_vec *, unsigned long, unsigned long);
mpfq_p_14_wrapper_vec_reinit(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_vec * v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED,unsigned long m MAYBE_UNUSED)1579 static void mpfq_p_14_wrapper_vec_reinit(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_vec * v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED, unsigned long m MAYBE_UNUSED)
1580 {
1581     mpfq_p_14_vec_reinit(vbase->obj, v, n, m);
1582 }
1583 
1584 static void mpfq_p_14_wrapper_vec_init(mpfq_vbase_ptr, mpfq_p_14_vec *, unsigned long);
mpfq_p_14_wrapper_vec_init(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_vec * v MAYBE_UNUSED,unsigned long n MAYBE_UNUSED)1585 static void mpfq_p_14_wrapper_vec_init(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_vec * v MAYBE_UNUSED, unsigned long n MAYBE_UNUSED)
1586 {
1587     mpfq_p_14_vec_init(vbase->obj, v, n);
1588 }
1589 
1590 static int mpfq_p_14_wrapper_scan(mpfq_vbase_ptr, mpfq_p_14_dst_elt);
mpfq_p_14_wrapper_scan(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt x MAYBE_UNUSED)1591 static int mpfq_p_14_wrapper_scan(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt x MAYBE_UNUSED)
1592 {
1593     return mpfq_p_14_scan(vbase->obj, x);
1594 }
1595 
1596 static int mpfq_p_14_wrapper_fscan(mpfq_vbase_ptr, FILE *, mpfq_p_14_dst_elt);
mpfq_p_14_wrapper_fscan(mpfq_vbase_ptr vbase MAYBE_UNUSED,FILE * file MAYBE_UNUSED,mpfq_p_14_dst_elt z MAYBE_UNUSED)1597 static int mpfq_p_14_wrapper_fscan(mpfq_vbase_ptr vbase MAYBE_UNUSED, FILE * file MAYBE_UNUSED, mpfq_p_14_dst_elt z MAYBE_UNUSED)
1598 {
1599     return mpfq_p_14_fscan(vbase->obj, file, z);
1600 }
1601 
1602 static int mpfq_p_14_wrapper_sscan(mpfq_vbase_ptr, mpfq_p_14_dst_elt, const char *);
mpfq_p_14_wrapper_sscan(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt z MAYBE_UNUSED,const char * str MAYBE_UNUSED)1603 static int mpfq_p_14_wrapper_sscan(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt z MAYBE_UNUSED, const char * str MAYBE_UNUSED)
1604 {
1605     return mpfq_p_14_sscan(vbase->obj, z, str);
1606 }
1607 
1608 static int mpfq_p_14_wrapper_print(mpfq_vbase_ptr, mpfq_p_14_src_elt);
mpfq_p_14_wrapper_print(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_src_elt x MAYBE_UNUSED)1609 static int mpfq_p_14_wrapper_print(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_src_elt x MAYBE_UNUSED)
1610 {
1611     return mpfq_p_14_print(vbase->obj, x);
1612 }
1613 
1614 static int mpfq_p_14_wrapper_fprint(mpfq_vbase_ptr, FILE *, mpfq_p_14_src_elt);
mpfq_p_14_wrapper_fprint(mpfq_vbase_ptr vbase MAYBE_UNUSED,FILE * file MAYBE_UNUSED,mpfq_p_14_src_elt x MAYBE_UNUSED)1615 static int mpfq_p_14_wrapper_fprint(mpfq_vbase_ptr vbase MAYBE_UNUSED, FILE * file MAYBE_UNUSED, mpfq_p_14_src_elt x MAYBE_UNUSED)
1616 {
1617     return mpfq_p_14_fprint(vbase->obj, file, x);
1618 }
1619 
1620 static int mpfq_p_14_wrapper_asprint(mpfq_vbase_ptr, char * *, mpfq_p_14_src_elt);
mpfq_p_14_wrapper_asprint(mpfq_vbase_ptr vbase MAYBE_UNUSED,char ** pstr MAYBE_UNUSED,mpfq_p_14_src_elt x MAYBE_UNUSED)1621 static int mpfq_p_14_wrapper_asprint(mpfq_vbase_ptr vbase MAYBE_UNUSED, char * * pstr MAYBE_UNUSED, mpfq_p_14_src_elt x MAYBE_UNUSED)
1622 {
1623     return mpfq_p_14_asprint(vbase->obj, pstr, x);
1624 }
1625 
1626 static int mpfq_p_14_wrapper_is_zero(mpfq_vbase_ptr, mpfq_p_14_src_elt);
mpfq_p_14_wrapper_is_zero(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_src_elt r MAYBE_UNUSED)1627 static int mpfq_p_14_wrapper_is_zero(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_src_elt r MAYBE_UNUSED)
1628 {
1629     return mpfq_p_14_is_zero(vbase->obj, r);
1630 }
1631 
1632 static int mpfq_p_14_wrapper_cmp_ui(mpfq_vbase_ptr, mpfq_p_14_src_elt, unsigned long);
mpfq_p_14_wrapper_cmp_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_src_elt x MAYBE_UNUSED,unsigned long y MAYBE_UNUSED)1633 static int mpfq_p_14_wrapper_cmp_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_src_elt x MAYBE_UNUSED, unsigned long y MAYBE_UNUSED)
1634 {
1635     return mpfq_p_14_cmp_ui(vbase->obj, x, y);
1636 }
1637 
1638 static int mpfq_p_14_wrapper_cmp(mpfq_vbase_ptr, mpfq_p_14_src_elt, mpfq_p_14_src_elt);
mpfq_p_14_wrapper_cmp(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_src_elt x MAYBE_UNUSED,mpfq_p_14_src_elt y MAYBE_UNUSED)1639 static int mpfq_p_14_wrapper_cmp(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_src_elt x MAYBE_UNUSED, mpfq_p_14_src_elt y MAYBE_UNUSED)
1640 {
1641     return mpfq_p_14_cmp(vbase->obj, x, y);
1642 }
1643 
1644 static void mpfq_p_14_wrapper_addmul_si_ur(mpfq_vbase_ptr, mpfq_p_14_dst_elt_ur, mpfq_p_14_src_elt, long);
mpfq_p_14_wrapper_addmul_si_ur(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt_ur w MAYBE_UNUSED,mpfq_p_14_src_elt u MAYBE_UNUSED,long v MAYBE_UNUSED)1645 static void mpfq_p_14_wrapper_addmul_si_ur(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt_ur w MAYBE_UNUSED, mpfq_p_14_src_elt u MAYBE_UNUSED, long v MAYBE_UNUSED)
1646 {
1647     mpfq_p_14_addmul_si_ur(vbase->obj, w, u, v);
1648 }
1649 
1650 static void mpfq_p_14_wrapper_reduce(mpfq_vbase_ptr, mpfq_p_14_dst_elt, mpfq_p_14_dst_elt_ur);
mpfq_p_14_wrapper_reduce(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt z MAYBE_UNUSED,mpfq_p_14_dst_elt_ur x MAYBE_UNUSED)1651 static void mpfq_p_14_wrapper_reduce(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt z MAYBE_UNUSED, mpfq_p_14_dst_elt_ur x MAYBE_UNUSED)
1652 {
1653     mpfq_p_14_reduce(vbase->obj, z, x);
1654 }
1655 
1656 static void mpfq_p_14_wrapper_sqr_ur(mpfq_vbase_ptr, mpfq_p_14_dst_elt_ur, mpfq_p_14_src_elt);
mpfq_p_14_wrapper_sqr_ur(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt_ur z MAYBE_UNUSED,mpfq_p_14_src_elt x MAYBE_UNUSED)1657 static void mpfq_p_14_wrapper_sqr_ur(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt_ur z MAYBE_UNUSED, mpfq_p_14_src_elt x MAYBE_UNUSED)
1658 {
1659     mpfq_p_14_sqr_ur(vbase->obj, z, x);
1660 }
1661 
1662 static void mpfq_p_14_wrapper_mul_ur(mpfq_vbase_ptr, mpfq_p_14_dst_elt_ur, mpfq_p_14_src_elt, mpfq_p_14_src_elt);
mpfq_p_14_wrapper_mul_ur(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt_ur z MAYBE_UNUSED,mpfq_p_14_src_elt x MAYBE_UNUSED,mpfq_p_14_src_elt y MAYBE_UNUSED)1663 static void mpfq_p_14_wrapper_mul_ur(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt_ur z MAYBE_UNUSED, mpfq_p_14_src_elt x MAYBE_UNUSED, mpfq_p_14_src_elt y MAYBE_UNUSED)
1664 {
1665     mpfq_p_14_mul_ur(vbase->obj, z, x, y);
1666 }
1667 
1668 static void mpfq_p_14_wrapper_elt_ur_sub(mpfq_vbase_ptr, mpfq_p_14_dst_elt_ur, mpfq_p_14_src_elt_ur, mpfq_p_14_src_elt_ur);
mpfq_p_14_wrapper_elt_ur_sub(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt_ur z MAYBE_UNUSED,mpfq_p_14_src_elt_ur x MAYBE_UNUSED,mpfq_p_14_src_elt_ur y MAYBE_UNUSED)1669 static void mpfq_p_14_wrapper_elt_ur_sub(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt_ur z MAYBE_UNUSED, mpfq_p_14_src_elt_ur x MAYBE_UNUSED, mpfq_p_14_src_elt_ur y MAYBE_UNUSED)
1670 {
1671     mpfq_p_14_elt_ur_sub(vbase->obj, z, x, y);
1672 }
1673 
1674 static void mpfq_p_14_wrapper_elt_ur_neg(mpfq_vbase_ptr, mpfq_p_14_dst_elt_ur, mpfq_p_14_src_elt_ur);
mpfq_p_14_wrapper_elt_ur_neg(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt_ur z MAYBE_UNUSED,mpfq_p_14_src_elt_ur x MAYBE_UNUSED)1675 static void mpfq_p_14_wrapper_elt_ur_neg(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt_ur z MAYBE_UNUSED, mpfq_p_14_src_elt_ur x MAYBE_UNUSED)
1676 {
1677     mpfq_p_14_elt_ur_neg(vbase->obj, z, x);
1678 }
1679 
1680 static void mpfq_p_14_wrapper_elt_ur_add(mpfq_vbase_ptr, mpfq_p_14_dst_elt_ur, mpfq_p_14_src_elt_ur, mpfq_p_14_src_elt_ur);
mpfq_p_14_wrapper_elt_ur_add(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt_ur z MAYBE_UNUSED,mpfq_p_14_src_elt_ur x MAYBE_UNUSED,mpfq_p_14_src_elt_ur y MAYBE_UNUSED)1681 static void mpfq_p_14_wrapper_elt_ur_add(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt_ur z MAYBE_UNUSED, mpfq_p_14_src_elt_ur x MAYBE_UNUSED, mpfq_p_14_src_elt_ur y MAYBE_UNUSED)
1682 {
1683     mpfq_p_14_elt_ur_add(vbase->obj, z, x, y);
1684 }
1685 
1686 static void mpfq_p_14_wrapper_elt_ur_set_ui(mpfq_vbase_ptr, mpfq_p_14_dst_elt_ur, unsigned long);
mpfq_p_14_wrapper_elt_ur_set_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt_ur r MAYBE_UNUSED,unsigned long x MAYBE_UNUSED)1687 static void mpfq_p_14_wrapper_elt_ur_set_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt_ur r MAYBE_UNUSED, unsigned long x MAYBE_UNUSED)
1688 {
1689     mpfq_p_14_elt_ur_set_ui(vbase->obj, r, x);
1690 }
1691 
1692 static void mpfq_p_14_wrapper_elt_ur_set_zero(mpfq_vbase_ptr, mpfq_p_14_dst_elt_ur);
mpfq_p_14_wrapper_elt_ur_set_zero(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt_ur r MAYBE_UNUSED)1693 static void mpfq_p_14_wrapper_elt_ur_set_zero(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt_ur r MAYBE_UNUSED)
1694 {
1695     mpfq_p_14_elt_ur_set_zero(vbase->obj, r);
1696 }
1697 
1698 static void mpfq_p_14_wrapper_elt_ur_set_elt(mpfq_vbase_ptr, mpfq_p_14_dst_elt_ur, mpfq_p_14_src_elt);
mpfq_p_14_wrapper_elt_ur_set_elt(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt_ur r MAYBE_UNUSED,mpfq_p_14_src_elt s MAYBE_UNUSED)1699 static void mpfq_p_14_wrapper_elt_ur_set_elt(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt_ur r MAYBE_UNUSED, mpfq_p_14_src_elt s MAYBE_UNUSED)
1700 {
1701     mpfq_p_14_elt_ur_set_elt(vbase->obj, r, s);
1702 }
1703 
1704 static void mpfq_p_14_wrapper_elt_ur_set(mpfq_vbase_ptr, mpfq_p_14_dst_elt_ur, mpfq_p_14_src_elt_ur);
mpfq_p_14_wrapper_elt_ur_set(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt_ur z MAYBE_UNUSED,mpfq_p_14_src_elt_ur x MAYBE_UNUSED)1705 static void mpfq_p_14_wrapper_elt_ur_set(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt_ur z MAYBE_UNUSED, mpfq_p_14_src_elt_ur x MAYBE_UNUSED)
1706 {
1707     mpfq_p_14_elt_ur_set(vbase->obj, z, x);
1708 }
1709 
1710 static ptrdiff_t mpfq_p_14_wrapper_elt_ur_stride(mpfq_vbase_ptr);
mpfq_p_14_wrapper_elt_ur_stride(mpfq_vbase_ptr vbase MAYBE_UNUSED)1711 static ptrdiff_t mpfq_p_14_wrapper_elt_ur_stride(mpfq_vbase_ptr vbase MAYBE_UNUSED)
1712 {
1713     return mpfq_p_14_elt_ur_stride(vbase->obj);
1714 }
1715 
1716 static void mpfq_p_14_wrapper_elt_ur_clear(mpfq_vbase_ptr, mpfq_p_14_elt_ur *);
mpfq_p_14_wrapper_elt_ur_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_elt_ur * x MAYBE_UNUSED)1717 static void mpfq_p_14_wrapper_elt_ur_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_elt_ur * x MAYBE_UNUSED)
1718 {
1719     mpfq_p_14_elt_ur_clear(vbase->obj, x);
1720 }
1721 
1722 static void mpfq_p_14_wrapper_elt_ur_init(mpfq_vbase_ptr, mpfq_p_14_elt_ur *);
mpfq_p_14_wrapper_elt_ur_init(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_elt_ur * x MAYBE_UNUSED)1723 static void mpfq_p_14_wrapper_elt_ur_init(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_elt_ur * x MAYBE_UNUSED)
1724 {
1725     mpfq_p_14_elt_ur_init(vbase->obj, x);
1726 }
1727 
1728 static void mpfq_p_14_wrapper_hadamard(mpfq_vbase_ptr, mpfq_p_14_dst_elt, mpfq_p_14_dst_elt, mpfq_p_14_dst_elt, mpfq_p_14_dst_elt);
mpfq_p_14_wrapper_hadamard(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt x MAYBE_UNUSED,mpfq_p_14_dst_elt y MAYBE_UNUSED,mpfq_p_14_dst_elt z MAYBE_UNUSED,mpfq_p_14_dst_elt t MAYBE_UNUSED)1729 static void mpfq_p_14_wrapper_hadamard(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt x MAYBE_UNUSED, mpfq_p_14_dst_elt y MAYBE_UNUSED, mpfq_p_14_dst_elt z MAYBE_UNUSED, mpfq_p_14_dst_elt t MAYBE_UNUSED)
1730 {
1731     mpfq_p_14_hadamard(vbase->obj, x, y, z, t);
1732 }
1733 
1734 static int mpfq_p_14_wrapper_inv(mpfq_vbase_ptr, mpfq_p_14_dst_elt, mpfq_p_14_src_elt);
mpfq_p_14_wrapper_inv(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt z MAYBE_UNUSED,mpfq_p_14_src_elt x MAYBE_UNUSED)1735 static int mpfq_p_14_wrapper_inv(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt z MAYBE_UNUSED, mpfq_p_14_src_elt x MAYBE_UNUSED)
1736 {
1737     return mpfq_p_14_inv(vbase->obj, z, x);
1738 }
1739 
1740 static void mpfq_p_14_wrapper_normalize(mpfq_vbase_ptr, mpfq_p_14_dst_elt);
mpfq_p_14_wrapper_normalize(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt x MAYBE_UNUSED)1741 static void mpfq_p_14_wrapper_normalize(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt x MAYBE_UNUSED)
1742 {
1743     mpfq_p_14_normalize(vbase->obj, x);
1744 }
1745 
1746 static void mpfq_p_14_wrapper_mul_ui(mpfq_vbase_ptr, mpfq_p_14_dst_elt, mpfq_p_14_src_elt, unsigned long);
mpfq_p_14_wrapper_mul_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt z MAYBE_UNUSED,mpfq_p_14_src_elt x MAYBE_UNUSED,unsigned long y MAYBE_UNUSED)1747 static void mpfq_p_14_wrapper_mul_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt z MAYBE_UNUSED, mpfq_p_14_src_elt x MAYBE_UNUSED, unsigned long y MAYBE_UNUSED)
1748 {
1749     mpfq_p_14_mul_ui(vbase->obj, z, x, y);
1750 }
1751 
1752 static void mpfq_p_14_wrapper_sub_ui(mpfq_vbase_ptr, mpfq_p_14_dst_elt, mpfq_p_14_src_elt, unsigned long);
mpfq_p_14_wrapper_sub_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt z MAYBE_UNUSED,mpfq_p_14_src_elt x MAYBE_UNUSED,unsigned long y MAYBE_UNUSED)1753 static void mpfq_p_14_wrapper_sub_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt z MAYBE_UNUSED, mpfq_p_14_src_elt x MAYBE_UNUSED, unsigned long y MAYBE_UNUSED)
1754 {
1755     mpfq_p_14_sub_ui(vbase->obj, z, x, y);
1756 }
1757 
1758 static void mpfq_p_14_wrapper_add_ui(mpfq_vbase_ptr, mpfq_p_14_dst_elt, mpfq_p_14_src_elt, unsigned long);
mpfq_p_14_wrapper_add_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt z MAYBE_UNUSED,mpfq_p_14_src_elt x MAYBE_UNUSED,unsigned long y MAYBE_UNUSED)1759 static void mpfq_p_14_wrapper_add_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt z MAYBE_UNUSED, mpfq_p_14_src_elt x MAYBE_UNUSED, unsigned long y MAYBE_UNUSED)
1760 {
1761     mpfq_p_14_add_ui(vbase->obj, z, x, y);
1762 }
1763 
1764 static void mpfq_p_14_wrapper_frobenius(mpfq_vbase_ptr, mpfq_p_14_dst_elt, mpfq_p_14_src_elt);
mpfq_p_14_wrapper_frobenius(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt x MAYBE_UNUSED,mpfq_p_14_src_elt y MAYBE_UNUSED)1765 static void mpfq_p_14_wrapper_frobenius(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt x MAYBE_UNUSED, mpfq_p_14_src_elt y MAYBE_UNUSED)
1766 {
1767     mpfq_p_14_frobenius(vbase->obj, x, y);
1768 }
1769 
1770 static void mpfq_p_14_wrapper_powz(mpfq_vbase_ptr, mpfq_p_14_dst_elt, mpfq_p_14_src_elt, mpz_srcptr);
mpfq_p_14_wrapper_powz(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt y MAYBE_UNUSED,mpfq_p_14_src_elt x MAYBE_UNUSED,mpz_srcptr z MAYBE_UNUSED)1771 static void mpfq_p_14_wrapper_powz(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt y MAYBE_UNUSED, mpfq_p_14_src_elt x MAYBE_UNUSED, mpz_srcptr z MAYBE_UNUSED)
1772 {
1773     mpfq_p_14_powz(vbase->obj, y, x, z);
1774 }
1775 
1776 static void mpfq_p_14_wrapper_pow(mpfq_vbase_ptr, mpfq_p_14_dst_elt, mpfq_p_14_src_elt, unsigned long *, size_t);
mpfq_p_14_wrapper_pow(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt res MAYBE_UNUSED,mpfq_p_14_src_elt r MAYBE_UNUSED,unsigned long * x MAYBE_UNUSED,size_t n MAYBE_UNUSED)1777 static void mpfq_p_14_wrapper_pow(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt res MAYBE_UNUSED, mpfq_p_14_src_elt r MAYBE_UNUSED, unsigned long * x MAYBE_UNUSED, size_t n MAYBE_UNUSED)
1778 {
1779     mpfq_p_14_pow(vbase->obj, res, r, x, n);
1780 }
1781 
1782 static int mpfq_p_14_wrapper_sqrt(mpfq_vbase_ptr, mpfq_p_14_dst_elt, mpfq_p_14_src_elt);
mpfq_p_14_wrapper_sqrt(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt z MAYBE_UNUSED,mpfq_p_14_src_elt a MAYBE_UNUSED)1783 static int mpfq_p_14_wrapper_sqrt(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt z MAYBE_UNUSED, mpfq_p_14_src_elt a MAYBE_UNUSED)
1784 {
1785     return mpfq_p_14_sqrt(vbase->obj, z, a);
1786 }
1787 
1788 static int mpfq_p_14_wrapper_is_sqr(mpfq_vbase_ptr, mpfq_p_14_src_elt);
mpfq_p_14_wrapper_is_sqr(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_src_elt x MAYBE_UNUSED)1789 static int mpfq_p_14_wrapper_is_sqr(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_src_elt x MAYBE_UNUSED)
1790 {
1791     return mpfq_p_14_is_sqr(vbase->obj, x);
1792 }
1793 
1794 static void mpfq_p_14_wrapper_sqr(mpfq_vbase_ptr, mpfq_p_14_dst_elt, mpfq_p_14_src_elt);
mpfq_p_14_wrapper_sqr(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt z MAYBE_UNUSED,mpfq_p_14_src_elt x MAYBE_UNUSED)1795 static void mpfq_p_14_wrapper_sqr(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt z MAYBE_UNUSED, mpfq_p_14_src_elt x MAYBE_UNUSED)
1796 {
1797     mpfq_p_14_sqr(vbase->obj, z, x);
1798 }
1799 
1800 static void mpfq_p_14_wrapper_mul(mpfq_vbase_ptr, mpfq_p_14_dst_elt, mpfq_p_14_src_elt, mpfq_p_14_src_elt);
mpfq_p_14_wrapper_mul(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt z MAYBE_UNUSED,mpfq_p_14_src_elt x MAYBE_UNUSED,mpfq_p_14_src_elt y MAYBE_UNUSED)1801 static void mpfq_p_14_wrapper_mul(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt z MAYBE_UNUSED, mpfq_p_14_src_elt x MAYBE_UNUSED, mpfq_p_14_src_elt y MAYBE_UNUSED)
1802 {
1803     mpfq_p_14_mul(vbase->obj, z, x, y);
1804 }
1805 
1806 static void mpfq_p_14_wrapper_neg(mpfq_vbase_ptr, mpfq_p_14_dst_elt, mpfq_p_14_src_elt);
mpfq_p_14_wrapper_neg(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt z MAYBE_UNUSED,mpfq_p_14_src_elt x MAYBE_UNUSED)1807 static void mpfq_p_14_wrapper_neg(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt z MAYBE_UNUSED, mpfq_p_14_src_elt x MAYBE_UNUSED)
1808 {
1809     mpfq_p_14_neg(vbase->obj, z, x);
1810 }
1811 
1812 static void mpfq_p_14_wrapper_sub(mpfq_vbase_ptr, mpfq_p_14_dst_elt, mpfq_p_14_src_elt, mpfq_p_14_src_elt);
mpfq_p_14_wrapper_sub(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt z MAYBE_UNUSED,mpfq_p_14_src_elt x MAYBE_UNUSED,mpfq_p_14_src_elt y MAYBE_UNUSED)1813 static void mpfq_p_14_wrapper_sub(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt z MAYBE_UNUSED, mpfq_p_14_src_elt x MAYBE_UNUSED, mpfq_p_14_src_elt y MAYBE_UNUSED)
1814 {
1815     mpfq_p_14_sub(vbase->obj, z, x, y);
1816 }
1817 
1818 static void mpfq_p_14_wrapper_add(mpfq_vbase_ptr, mpfq_p_14_dst_elt, mpfq_p_14_src_elt, mpfq_p_14_src_elt);
mpfq_p_14_wrapper_add(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt z MAYBE_UNUSED,mpfq_p_14_src_elt x MAYBE_UNUSED,mpfq_p_14_src_elt y MAYBE_UNUSED)1819 static void mpfq_p_14_wrapper_add(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt z MAYBE_UNUSED, mpfq_p_14_src_elt x MAYBE_UNUSED, mpfq_p_14_src_elt y MAYBE_UNUSED)
1820 {
1821     mpfq_p_14_add(vbase->obj, z, x, y);
1822 }
1823 
1824 static void mpfq_p_14_wrapper_random2(mpfq_vbase_ptr, mpfq_p_14_dst_elt, gmp_randstate_t);
mpfq_p_14_wrapper_random2(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt x MAYBE_UNUSED,gmp_randstate_t state MAYBE_UNUSED)1825 static void mpfq_p_14_wrapper_random2(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt x MAYBE_UNUSED, gmp_randstate_t state MAYBE_UNUSED)
1826 {
1827     mpfq_p_14_random2(vbase->obj, x, state);
1828 }
1829 
1830 static void mpfq_p_14_wrapper_random(mpfq_vbase_ptr, mpfq_p_14_dst_elt, gmp_randstate_t);
mpfq_p_14_wrapper_random(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt x MAYBE_UNUSED,gmp_randstate_t state MAYBE_UNUSED)1831 static void mpfq_p_14_wrapper_random(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt x MAYBE_UNUSED, gmp_randstate_t state MAYBE_UNUSED)
1832 {
1833     mpfq_p_14_random(vbase->obj, x, state);
1834 }
1835 
1836 static void mpfq_p_14_wrapper_get_mpz(mpfq_vbase_ptr, mpz_ptr, mpfq_p_14_src_elt);
mpfq_p_14_wrapper_get_mpz(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpz_ptr z MAYBE_UNUSED,mpfq_p_14_src_elt y MAYBE_UNUSED)1837 static void mpfq_p_14_wrapper_get_mpz(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpz_ptr z MAYBE_UNUSED, mpfq_p_14_src_elt y MAYBE_UNUSED)
1838 {
1839     mpfq_p_14_get_mpz(vbase->obj, z, y);
1840 }
1841 
1842 static void mpfq_p_14_wrapper_get_mpn(mpfq_vbase_ptr, mp_limb_t *, mpfq_p_14_src_elt);
mpfq_p_14_wrapper_get_mpn(mpfq_vbase_ptr vbase MAYBE_UNUSED,mp_limb_t * r MAYBE_UNUSED,mpfq_p_14_src_elt x MAYBE_UNUSED)1843 static void mpfq_p_14_wrapper_get_mpn(mpfq_vbase_ptr vbase MAYBE_UNUSED, mp_limb_t * r MAYBE_UNUSED, mpfq_p_14_src_elt x MAYBE_UNUSED)
1844 {
1845     mpfq_p_14_get_mpn(vbase->obj, r, x);
1846 }
1847 
1848 static void mpfq_p_14_wrapper_set_mpz(mpfq_vbase_ptr, mpfq_p_14_dst_elt, mpz_srcptr);
mpfq_p_14_wrapper_set_mpz(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt r MAYBE_UNUSED,mpz_srcptr z MAYBE_UNUSED)1849 static void mpfq_p_14_wrapper_set_mpz(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt r MAYBE_UNUSED, mpz_srcptr z MAYBE_UNUSED)
1850 {
1851     mpfq_p_14_set_mpz(vbase->obj, r, z);
1852 }
1853 
1854 static void mpfq_p_14_wrapper_set_mpn(mpfq_vbase_ptr, mpfq_p_14_dst_elt, mp_limb_t *, size_t);
mpfq_p_14_wrapper_set_mpn(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt r MAYBE_UNUSED,mp_limb_t * x MAYBE_UNUSED,size_t n MAYBE_UNUSED)1855 static void mpfq_p_14_wrapper_set_mpn(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt r MAYBE_UNUSED, mp_limb_t * x MAYBE_UNUSED, size_t n MAYBE_UNUSED)
1856 {
1857     mpfq_p_14_set_mpn(vbase->obj, r, x, n);
1858 }
1859 
1860 static unsigned long mpfq_p_14_wrapper_get_ui(mpfq_vbase_ptr, mpfq_p_14_src_elt);
mpfq_p_14_wrapper_get_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_src_elt x MAYBE_UNUSED)1861 static unsigned long mpfq_p_14_wrapper_get_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_src_elt x MAYBE_UNUSED)
1862 {
1863     return mpfq_p_14_get_ui(vbase->obj, x);
1864 }
1865 
1866 static void mpfq_p_14_wrapper_set_zero(mpfq_vbase_ptr, mpfq_p_14_dst_elt);
mpfq_p_14_wrapper_set_zero(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt r MAYBE_UNUSED)1867 static void mpfq_p_14_wrapper_set_zero(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt r MAYBE_UNUSED)
1868 {
1869     mpfq_p_14_set_zero(vbase->obj, r);
1870 }
1871 
1872 static void mpfq_p_14_wrapper_set_ui(mpfq_vbase_ptr, mpfq_p_14_dst_elt, unsigned long);
mpfq_p_14_wrapper_set_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt r MAYBE_UNUSED,unsigned long x MAYBE_UNUSED)1873 static void mpfq_p_14_wrapper_set_ui(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt r MAYBE_UNUSED, unsigned long x MAYBE_UNUSED)
1874 {
1875     mpfq_p_14_set_ui(vbase->obj, r, x);
1876 }
1877 
1878 static void mpfq_p_14_wrapper_set(mpfq_vbase_ptr, mpfq_p_14_dst_elt, mpfq_p_14_src_elt);
mpfq_p_14_wrapper_set(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_dst_elt r MAYBE_UNUSED,mpfq_p_14_src_elt s MAYBE_UNUSED)1879 static void mpfq_p_14_wrapper_set(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_dst_elt r MAYBE_UNUSED, mpfq_p_14_src_elt s MAYBE_UNUSED)
1880 {
1881     mpfq_p_14_set(vbase->obj, r, s);
1882 }
1883 
1884 static ptrdiff_t mpfq_p_14_wrapper_elt_stride(mpfq_vbase_ptr);
mpfq_p_14_wrapper_elt_stride(mpfq_vbase_ptr vbase MAYBE_UNUSED)1885 static ptrdiff_t mpfq_p_14_wrapper_elt_stride(mpfq_vbase_ptr vbase MAYBE_UNUSED)
1886 {
1887     return mpfq_p_14_elt_stride(vbase->obj);
1888 }
1889 
1890 static void mpfq_p_14_wrapper_clear(mpfq_vbase_ptr, mpfq_p_14_elt *);
mpfq_p_14_wrapper_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_elt * x MAYBE_UNUSED)1891 static void mpfq_p_14_wrapper_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_elt * x MAYBE_UNUSED)
1892 {
1893     mpfq_p_14_clear(vbase->obj, x);
1894 }
1895 
1896 static void mpfq_p_14_wrapper_init(mpfq_vbase_ptr, mpfq_p_14_elt *);
mpfq_p_14_wrapper_init(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpfq_p_14_elt * x MAYBE_UNUSED)1897 static void mpfq_p_14_wrapper_init(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpfq_p_14_elt * x MAYBE_UNUSED)
1898 {
1899     mpfq_p_14_init(vbase->obj, x);
1900 }
1901 
1902 static void mpfq_p_14_wrapper_field_setopt(mpfq_vbase_ptr, unsigned long, void *);
mpfq_p_14_wrapper_field_setopt(mpfq_vbase_ptr vbase MAYBE_UNUSED,unsigned long x MAYBE_UNUSED,void * y MAYBE_UNUSED)1903 static void mpfq_p_14_wrapper_field_setopt(mpfq_vbase_ptr vbase MAYBE_UNUSED, unsigned long x MAYBE_UNUSED, void * y MAYBE_UNUSED)
1904 {
1905     mpfq_p_14_field_setopt(vbase->obj, x, y);
1906 }
1907 
1908 static void mpfq_p_14_wrapper_field_specify(mpfq_vbase_ptr, unsigned long, const void *);
mpfq_p_14_wrapper_field_specify(mpfq_vbase_ptr vbase MAYBE_UNUSED,unsigned long dummy MAYBE_UNUSED,const void * vp MAYBE_UNUSED)1909 static void mpfq_p_14_wrapper_field_specify(mpfq_vbase_ptr vbase MAYBE_UNUSED, unsigned long dummy MAYBE_UNUSED, const void * vp MAYBE_UNUSED)
1910 {
1911     mpfq_p_14_field_specify(vbase->obj, dummy, vp);
1912 }
1913 
1914 static void mpfq_p_14_wrapper_field_clear(mpfq_vbase_ptr);
mpfq_p_14_wrapper_field_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED)1915 static void mpfq_p_14_wrapper_field_clear(mpfq_vbase_ptr vbase MAYBE_UNUSED)
1916 {
1917     mpfq_p_14_field_clear(vbase->obj);
1918 }
1919 
1920 static void mpfq_p_14_wrapper_field_init(mpfq_vbase_ptr);
mpfq_p_14_wrapper_field_init(mpfq_vbase_ptr vbase MAYBE_UNUSED)1921 static void mpfq_p_14_wrapper_field_init(mpfq_vbase_ptr vbase MAYBE_UNUSED)
1922 {
1923     mpfq_p_14_field_init(vbase->obj);
1924 }
1925 
1926 static int mpfq_p_14_wrapper_field_degree(mpfq_vbase_ptr);
mpfq_p_14_wrapper_field_degree(mpfq_vbase_ptr vbase MAYBE_UNUSED)1927 static int mpfq_p_14_wrapper_field_degree(mpfq_vbase_ptr vbase MAYBE_UNUSED)
1928 {
1929     return mpfq_p_14_field_degree(vbase->obj);
1930 }
1931 
1932 static unsigned long mpfq_p_14_wrapper_field_characteristic_bits(mpfq_vbase_ptr);
mpfq_p_14_wrapper_field_characteristic_bits(mpfq_vbase_ptr vbase MAYBE_UNUSED)1933 static unsigned long mpfq_p_14_wrapper_field_characteristic_bits(mpfq_vbase_ptr vbase MAYBE_UNUSED)
1934 {
1935     return mpfq_p_14_field_characteristic_bits(vbase->obj);
1936 }
1937 
1938 static mpz_srcptr mpfq_p_14_wrapper_field_characteristic_srcptr(mpfq_vbase_ptr);
mpfq_p_14_wrapper_field_characteristic_srcptr(mpfq_vbase_ptr vbase MAYBE_UNUSED)1939 static mpz_srcptr mpfq_p_14_wrapper_field_characteristic_srcptr(mpfq_vbase_ptr vbase MAYBE_UNUSED)
1940 {
1941     return mpfq_p_14_field_characteristic_srcptr(vbase->obj);
1942 }
1943 
1944 static void mpfq_p_14_wrapper_field_characteristic(mpfq_vbase_ptr, mpz_ptr);
mpfq_p_14_wrapper_field_characteristic(mpfq_vbase_ptr vbase MAYBE_UNUSED,mpz_ptr z MAYBE_UNUSED)1945 static void mpfq_p_14_wrapper_field_characteristic(mpfq_vbase_ptr vbase MAYBE_UNUSED, mpz_ptr z MAYBE_UNUSED)
1946 {
1947     mpfq_p_14_field_characteristic(vbase->obj, z);
1948 }
1949 
1950 static unsigned long mpfq_p_14_wrapper_impl_max_degree();
mpfq_p_14_wrapper_impl_max_degree()1951 static unsigned long mpfq_p_14_wrapper_impl_max_degree()
1952 {
1953     return mpfq_p_14_impl_max_degree();
1954 }
1955 
1956 static unsigned long mpfq_p_14_wrapper_impl_max_characteristic_bits();
mpfq_p_14_wrapper_impl_max_characteristic_bits()1957 static unsigned long mpfq_p_14_wrapper_impl_max_characteristic_bits()
1958 {
1959     return mpfq_p_14_impl_max_characteristic_bits();
1960 }
1961 
1962 static const char * mpfq_p_14_wrapper_impl_name();
mpfq_p_14_wrapper_impl_name()1963 static const char * mpfq_p_14_wrapper_impl_name()
1964 {
1965     return mpfq_p_14_impl_name();
1966 }
1967 
1968 /* Mpfq::engine::oo::oo_field_init */
1969 /* Triggered by: oo */
mpfq_p_14_oo_field_init(mpfq_vbase_ptr vbase)1970 void mpfq_p_14_oo_field_init(mpfq_vbase_ptr vbase)
1971 {
1972     memset(vbase, 0, sizeof(struct mpfq_vbase_s));
1973     vbase->obj = malloc(sizeof(mpfq_p_14_field));
1974     mpfq_p_14_field_init((mpfq_p_14_dst_field) vbase->obj);
1975     vbase->impl_name = (const char * (*) ()) mpfq_p_14_wrapper_impl_name;
1976     vbase->impl_max_characteristic_bits = (unsigned long (*) ()) mpfq_p_14_wrapper_impl_max_characteristic_bits;
1977     vbase->impl_max_degree = (unsigned long (*) ()) mpfq_p_14_wrapper_impl_max_degree;
1978     vbase->field_characteristic = (void (*) (mpfq_vbase_ptr, mpz_ptr)) mpfq_p_14_wrapper_field_characteristic;
1979     vbase->field_characteristic_srcptr = (mpz_srcptr (*) (mpfq_vbase_ptr)) mpfq_p_14_wrapper_field_characteristic_srcptr;
1980     vbase->field_characteristic_bits = (unsigned long (*) (mpfq_vbase_ptr)) mpfq_p_14_wrapper_field_characteristic_bits;
1981     vbase->field_degree = (int (*) (mpfq_vbase_ptr)) mpfq_p_14_wrapper_field_degree;
1982     vbase->field_init = (void (*) (mpfq_vbase_ptr)) mpfq_p_14_wrapper_field_init;
1983     vbase->field_clear = (void (*) (mpfq_vbase_ptr)) mpfq_p_14_wrapper_field_clear;
1984     vbase->field_specify = (void (*) (mpfq_vbase_ptr, unsigned long, const void *)) mpfq_p_14_wrapper_field_specify;
1985     vbase->field_setopt = (void (*) (mpfq_vbase_ptr, unsigned long, void *)) mpfq_p_14_wrapper_field_setopt;
1986     vbase->init = (void (*) (mpfq_vbase_ptr, void *)) mpfq_p_14_wrapper_init;
1987     vbase->clear = (void (*) (mpfq_vbase_ptr, void *)) mpfq_p_14_wrapper_clear;
1988     vbase->elt_stride = (ptrdiff_t (*) (mpfq_vbase_ptr)) mpfq_p_14_wrapper_elt_stride;
1989     vbase->set = (void (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_14_wrapper_set;
1990     vbase->set_ui = (void (*) (mpfq_vbase_ptr, void *, unsigned long)) mpfq_p_14_wrapper_set_ui;
1991     vbase->set_zero = (void (*) (mpfq_vbase_ptr, void *)) mpfq_p_14_wrapper_set_zero;
1992     vbase->get_ui = (unsigned long (*) (mpfq_vbase_ptr, const void *)) mpfq_p_14_wrapper_get_ui;
1993     vbase->set_mpn = (void (*) (mpfq_vbase_ptr, void *, mp_limb_t *, size_t)) mpfq_p_14_wrapper_set_mpn;
1994     vbase->set_mpz = (void (*) (mpfq_vbase_ptr, void *, mpz_srcptr)) mpfq_p_14_wrapper_set_mpz;
1995     vbase->get_mpn = (void (*) (mpfq_vbase_ptr, mp_limb_t *, const void *)) mpfq_p_14_wrapper_get_mpn;
1996     vbase->get_mpz = (void (*) (mpfq_vbase_ptr, mpz_ptr, const void *)) mpfq_p_14_wrapper_get_mpz;
1997     vbase->random = (void (*) (mpfq_vbase_ptr, void *, gmp_randstate_t)) mpfq_p_14_wrapper_random;
1998     vbase->random2 = (void (*) (mpfq_vbase_ptr, void *, gmp_randstate_t)) mpfq_p_14_wrapper_random2;
1999     vbase->add = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *)) mpfq_p_14_wrapper_add;
2000     vbase->sub = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *)) mpfq_p_14_wrapper_sub;
2001     vbase->neg = (void (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_14_wrapper_neg;
2002     vbase->mul = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *)) mpfq_p_14_wrapper_mul;
2003     vbase->sqr = (void (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_14_wrapper_sqr;
2004     vbase->is_sqr = (int (*) (mpfq_vbase_ptr, const void *)) mpfq_p_14_wrapper_is_sqr;
2005     vbase->sqrt = (int (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_14_wrapper_sqrt;
2006     vbase->pow = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long *, size_t)) mpfq_p_14_wrapper_pow;
2007     vbase->powz = (void (*) (mpfq_vbase_ptr, void *, const void *, mpz_srcptr)) mpfq_p_14_wrapper_powz;
2008     vbase->frobenius = (void (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_14_wrapper_frobenius;
2009     vbase->add_ui = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_14_wrapper_add_ui;
2010     vbase->sub_ui = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_14_wrapper_sub_ui;
2011     vbase->mul_ui = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_14_wrapper_mul_ui;
2012     vbase->normalize = (void (*) (mpfq_vbase_ptr, void *)) mpfq_p_14_wrapper_normalize;
2013     vbase->inv = (int (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_14_wrapper_inv;
2014     vbase->hadamard = (void (*) (mpfq_vbase_ptr, void *, void *, void *, void *)) mpfq_p_14_wrapper_hadamard;
2015     vbase->elt_ur_init = (void (*) (mpfq_vbase_ptr, void *)) mpfq_p_14_wrapper_elt_ur_init;
2016     vbase->elt_ur_clear = (void (*) (mpfq_vbase_ptr, void *)) mpfq_p_14_wrapper_elt_ur_clear;
2017     vbase->elt_ur_stride = (ptrdiff_t (*) (mpfq_vbase_ptr)) mpfq_p_14_wrapper_elt_ur_stride;
2018     vbase->elt_ur_set = (void (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_14_wrapper_elt_ur_set;
2019     vbase->elt_ur_set_elt = (void (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_14_wrapper_elt_ur_set_elt;
2020     vbase->elt_ur_set_zero = (void (*) (mpfq_vbase_ptr, void *)) mpfq_p_14_wrapper_elt_ur_set_zero;
2021     vbase->elt_ur_set_ui = (void (*) (mpfq_vbase_ptr, void *, unsigned long)) mpfq_p_14_wrapper_elt_ur_set_ui;
2022     vbase->elt_ur_add = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *)) mpfq_p_14_wrapper_elt_ur_add;
2023     vbase->elt_ur_neg = (void (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_14_wrapper_elt_ur_neg;
2024     vbase->elt_ur_sub = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *)) mpfq_p_14_wrapper_elt_ur_sub;
2025     vbase->mul_ur = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *)) mpfq_p_14_wrapper_mul_ur;
2026     vbase->sqr_ur = (void (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_14_wrapper_sqr_ur;
2027     vbase->reduce = (void (*) (mpfq_vbase_ptr, void *, void *)) mpfq_p_14_wrapper_reduce;
2028     vbase->addmul_si_ur = (void (*) (mpfq_vbase_ptr, void *, const void *, long)) mpfq_p_14_wrapper_addmul_si_ur;
2029     vbase->cmp = (int (*) (mpfq_vbase_ptr, const void *, const void *)) mpfq_p_14_wrapper_cmp;
2030     vbase->cmp_ui = (int (*) (mpfq_vbase_ptr, const void *, unsigned long)) mpfq_p_14_wrapper_cmp_ui;
2031     vbase->is_zero = (int (*) (mpfq_vbase_ptr, const void *)) mpfq_p_14_wrapper_is_zero;
2032     vbase->asprint = (int (*) (mpfq_vbase_ptr, char * *, const void *)) mpfq_p_14_wrapper_asprint;
2033     vbase->fprint = (int (*) (mpfq_vbase_ptr, FILE *, const void *)) mpfq_p_14_wrapper_fprint;
2034     vbase->print = (int (*) (mpfq_vbase_ptr, const void *)) mpfq_p_14_wrapper_print;
2035     vbase->sscan = (int (*) (mpfq_vbase_ptr, void *, const char *)) mpfq_p_14_wrapper_sscan;
2036     vbase->fscan = (int (*) (mpfq_vbase_ptr, FILE *, void *)) mpfq_p_14_wrapper_fscan;
2037     vbase->scan = (int (*) (mpfq_vbase_ptr, void *)) mpfq_p_14_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_14_wrapper_vec_init;
2043     vbase->vec_reinit = (void (*) (mpfq_vbase_ptr, void *, unsigned long, unsigned long)) mpfq_p_14_wrapper_vec_reinit;
2044     vbase->vec_clear = (void (*) (mpfq_vbase_ptr, void *, unsigned long)) mpfq_p_14_wrapper_vec_clear;
2045     vbase->vec_set = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_14_wrapper_vec_set;
2046     vbase->vec_set_zero = (void (*) (mpfq_vbase_ptr, void *, unsigned long)) mpfq_p_14_wrapper_vec_set_zero;
2047     vbase->vec_setcoeff = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_14_wrapper_vec_setcoeff;
2048     vbase->vec_setcoeff_ui = (void (*) (mpfq_vbase_ptr, void *, unsigned long, unsigned long)) mpfq_p_14_wrapper_vec_setcoeff_ui;
2049     vbase->vec_getcoeff = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_14_wrapper_vec_getcoeff;
2050     vbase->vec_add = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *, unsigned long)) mpfq_p_14_wrapper_vec_add;
2051     vbase->vec_neg = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_14_wrapper_vec_neg;
2052     vbase->vec_rev = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_14_wrapper_vec_rev;
2053     vbase->vec_sub = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *, unsigned long)) mpfq_p_14_wrapper_vec_sub;
2054     vbase->vec_scal_mul = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *, unsigned long)) mpfq_p_14_wrapper_vec_scal_mul;
2055     vbase->vec_conv = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long, const void *, unsigned long)) mpfq_p_14_wrapper_vec_conv;
2056     vbase->vec_random = (void (*) (mpfq_vbase_ptr, void *, unsigned long, gmp_randstate_t)) mpfq_p_14_wrapper_vec_random;
2057     vbase->vec_random2 = (void (*) (mpfq_vbase_ptr, void *, unsigned long, gmp_randstate_t)) mpfq_p_14_wrapper_vec_random2;
2058     vbase->vec_cmp = (long (*) (mpfq_vbase_ptr, const void *, const void *, unsigned long)) mpfq_p_14_wrapper_vec_cmp;
2059     vbase->vec_is_zero = (long (*) (mpfq_vbase_ptr, const void *, unsigned long)) mpfq_p_14_wrapper_vec_is_zero;
2060     vbase->vec_subvec = (void * (*) (mpfq_vbase_ptr, void *, long)) mpfq_p_14_wrapper_vec_subvec;
2061     vbase->vec_subvec_const = (const void * (*) (mpfq_vbase_ptr, const void *, long)) mpfq_p_14_wrapper_vec_subvec_const;
2062     vbase->vec_coeff_ptr = (void * (*) (mpfq_vbase_ptr, void *, long)) mpfq_p_14_wrapper_vec_coeff_ptr;
2063     vbase->vec_coeff_ptr_const = (const void * (*) (mpfq_vbase_ptr, const void *, long)) mpfq_p_14_wrapper_vec_coeff_ptr_const;
2064     vbase->vec_asprint = (long (*) (mpfq_vbase_ptr, char * *, const void *, unsigned long)) mpfq_p_14_wrapper_vec_asprint;
2065     vbase->vec_fprint = (long (*) (mpfq_vbase_ptr, FILE *, const void *, unsigned long)) mpfq_p_14_wrapper_vec_fprint;
2066     vbase->vec_print = (long (*) (mpfq_vbase_ptr, const void *, unsigned long)) mpfq_p_14_wrapper_vec_print;
2067     vbase->vec_sscan = (long (*) (mpfq_vbase_ptr, void *, unsigned long *, const char *)) mpfq_p_14_wrapper_vec_sscan;
2068     vbase->vec_fscan = (long (*) (mpfq_vbase_ptr, FILE *, void *, unsigned long *)) mpfq_p_14_wrapper_vec_fscan;
2069     vbase->vec_scan = (long (*) (mpfq_vbase_ptr, void *, unsigned long *)) mpfq_p_14_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_14_wrapper_vec_hamming_weight;
2075     vbase->vec_find_first_set = (long (*) (mpfq_vbase_ptr, const void *, unsigned long)) mpfq_p_14_wrapper_vec_find_first_set;
2076     vbase->vec_simd_hamming_weight = (long (*) (mpfq_vbase_ptr, const void *, unsigned long)) mpfq_p_14_wrapper_vec_simd_hamming_weight;
2077     vbase->vec_simd_find_first_set = (long (*) (mpfq_vbase_ptr, const void *, unsigned long)) mpfq_p_14_wrapper_vec_simd_find_first_set;
2078     vbase->vec_ur_init = (void (*) (mpfq_vbase_ptr, void *, unsigned long)) mpfq_p_14_wrapper_vec_ur_init;
2079     vbase->vec_ur_set_zero = (void (*) (mpfq_vbase_ptr, void *, unsigned long)) mpfq_p_14_wrapper_vec_ur_set_zero;
2080     vbase->vec_ur_set_vec = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_14_wrapper_vec_ur_set_vec;
2081     vbase->vec_ur_reinit = (void (*) (mpfq_vbase_ptr, void *, unsigned long, unsigned long)) mpfq_p_14_wrapper_vec_ur_reinit;
2082     vbase->vec_ur_clear = (void (*) (mpfq_vbase_ptr, void *, unsigned long)) mpfq_p_14_wrapper_vec_ur_clear;
2083     vbase->vec_ur_set = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_14_wrapper_vec_ur_set;
2084     vbase->vec_ur_setcoeff = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_14_wrapper_vec_ur_setcoeff;
2085     vbase->vec_ur_getcoeff = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_14_wrapper_vec_ur_getcoeff;
2086     vbase->vec_ur_add = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *, unsigned long)) mpfq_p_14_wrapper_vec_ur_add;
2087     vbase->vec_ur_sub = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *, unsigned long)) mpfq_p_14_wrapper_vec_ur_sub;
2088     vbase->vec_ur_neg = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_14_wrapper_vec_ur_neg;
2089     vbase->vec_ur_rev = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_14_wrapper_vec_ur_rev;
2090     vbase->vec_scal_mul_ur = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *, unsigned long)) mpfq_p_14_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_14_wrapper_vec_conv_ur;
2092     vbase->vec_reduce = (void (*) (mpfq_vbase_ptr, void *, void *, unsigned long)) mpfq_p_14_wrapper_vec_reduce;
2093     vbase->vec_ur_subvec = (void * (*) (mpfq_vbase_ptr, void *, long)) mpfq_p_14_wrapper_vec_ur_subvec;
2094     vbase->vec_ur_subvec_const = (const void * (*) (mpfq_vbase_ptr, const void *, long)) mpfq_p_14_wrapper_vec_ur_subvec_const;
2095     vbase->vec_ur_coeff_ptr = (void * (*) (mpfq_vbase_ptr, void *, long)) mpfq_p_14_wrapper_vec_ur_coeff_ptr;
2096     vbase->vec_ur_coeff_ptr_const = (const void * (*) (mpfq_vbase_ptr, const void *, long)) mpfq_p_14_wrapper_vec_ur_coeff_ptr_const;
2097     vbase->vec_elt_stride = (ptrdiff_t (*) (mpfq_vbase_ptr, long)) mpfq_p_14_wrapper_vec_elt_stride;
2098     vbase->vec_ur_elt_stride = (ptrdiff_t (*) (mpfq_vbase_ptr, long)) mpfq_p_14_wrapper_vec_ur_elt_stride;
2099     vbase->poly_init = (void (*) (mpfq_vbase_ptr, void *, unsigned int)) mpfq_p_14_wrapper_poly_init;
2100     vbase->poly_clear = (void (*) (mpfq_vbase_ptr, void *)) mpfq_p_14_wrapper_poly_clear;
2101     vbase->poly_set = (void (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_14_wrapper_poly_set;
2102     vbase->poly_setmonic = (void (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_14_wrapper_poly_setmonic;
2103     vbase->poly_setcoeff = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned int)) mpfq_p_14_wrapper_poly_setcoeff;
2104     vbase->poly_setcoeff_ui = (void (*) (mpfq_vbase_ptr, void *, unsigned long, unsigned int)) mpfq_p_14_wrapper_poly_setcoeff_ui;
2105     vbase->poly_getcoeff = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned int)) mpfq_p_14_wrapper_poly_getcoeff;
2106     vbase->poly_deg = (int (*) (mpfq_vbase_ptr, const void *)) mpfq_p_14_wrapper_poly_deg;
2107     vbase->poly_add = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *)) mpfq_p_14_wrapper_poly_add;
2108     vbase->poly_sub = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *)) mpfq_p_14_wrapper_poly_sub;
2109     vbase->poly_set_ui = (void (*) (mpfq_vbase_ptr, void *, unsigned long)) mpfq_p_14_wrapper_poly_set_ui;
2110     vbase->poly_add_ui = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_14_wrapper_poly_add_ui;
2111     vbase->poly_sub_ui = (void (*) (mpfq_vbase_ptr, void *, const void *, unsigned long)) mpfq_p_14_wrapper_poly_sub_ui;
2112     vbase->poly_neg = (void (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_14_wrapper_poly_neg;
2113     vbase->poly_scal_mul = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *)) mpfq_p_14_wrapper_poly_scal_mul;
2114     vbase->poly_mul = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *)) mpfq_p_14_wrapper_poly_mul;
2115     vbase->poly_divmod = (int (*) (mpfq_vbase_ptr, void *, void *, const void *, const void *)) mpfq_p_14_wrapper_poly_divmod;
2116     vbase->poly_precomp_mod = (void (*) (mpfq_vbase_ptr, void *, const void *)) mpfq_p_14_wrapper_poly_precomp_mod;
2117     vbase->poly_mod_pre = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *, const void *)) mpfq_p_14_wrapper_poly_mod_pre;
2118     vbase->poly_gcd = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *)) mpfq_p_14_wrapper_poly_gcd;
2119     vbase->poly_xgcd = (void (*) (mpfq_vbase_ptr, void *, void *, void *, const void *, const void *)) mpfq_p_14_wrapper_poly_xgcd;
2120     vbase->poly_random = (void (*) (mpfq_vbase_ptr, void *, unsigned int, gmp_randstate_t)) mpfq_p_14_wrapper_poly_random;
2121     vbase->poly_random2 = (void (*) (mpfq_vbase_ptr, void *, unsigned int, gmp_randstate_t)) mpfq_p_14_wrapper_poly_random2;
2122     vbase->poly_cmp = (int (*) (mpfq_vbase_ptr, const void *, const void *)) mpfq_p_14_wrapper_poly_cmp;
2123     vbase->poly_asprint = (int (*) (mpfq_vbase_ptr, char * *, const void *)) mpfq_p_14_wrapper_poly_asprint;
2124     vbase->poly_fprint = (int (*) (mpfq_vbase_ptr, FILE *, const void *)) mpfq_p_14_wrapper_poly_fprint;
2125     vbase->poly_print = (int (*) (mpfq_vbase_ptr, const void *)) mpfq_p_14_wrapper_poly_print;
2126     vbase->poly_sscan = (int (*) (mpfq_vbase_ptr, void *, const char *)) mpfq_p_14_wrapper_poly_sscan;
2127     vbase->poly_fscan = (int (*) (mpfq_vbase_ptr, FILE *, void *)) mpfq_p_14_wrapper_poly_fscan;
2128     vbase->poly_scan = (int (*) (mpfq_vbase_ptr, void *)) mpfq_p_14_wrapper_poly_scan;
2129     vbase->simd_groupsize = (int (*) (mpfq_vbase_ptr)) mpfq_p_14_wrapper_simd_groupsize;
2130     vbase->simd_hamming_weight = (int (*) (mpfq_vbase_ptr, const void *)) mpfq_p_14_wrapper_simd_hamming_weight;
2131     vbase->simd_find_first_set = (int (*) (mpfq_vbase_ptr, const void *)) mpfq_p_14_wrapper_simd_find_first_set;
2132     vbase->simd_get_ui_at = (unsigned long (*) (mpfq_vbase_ptr, const void *, int)) mpfq_p_14_wrapper_simd_get_ui_at;
2133     vbase->simd_set_ui_at = (void (*) (mpfq_vbase_ptr, void *, int, unsigned long)) mpfq_p_14_wrapper_simd_set_ui_at;
2134     vbase->simd_add_ui_at = (void (*) (mpfq_vbase_ptr, void *, const void *, int, unsigned long)) mpfq_p_14_wrapper_simd_add_ui_at;
2135     vbase->simd_set_ui_all = (void (*) (mpfq_vbase_ptr, void *, unsigned long)) mpfq_p_14_wrapper_simd_set_ui_all;
2136     vbase->add_dotprod = (void (*) (mpfq_vbase_ptr, void *, const void *, const void *, unsigned int)) mpfq_p_14_wrapper_add_dotprod;
2137     vbase->oo_field_init = (void (*) (mpfq_vbase_ptr)) mpfq_p_14_wrapper_oo_field_init;
2138     vbase->oo_field_clear = (void (*) (mpfq_vbase_ptr)) mpfq_p_14_wrapper_oo_field_clear;
2139 }
2140 
2141 
2142 /* vim:set ft=cpp: */
2143