1#![allow(non_camel_case_types)]
2
3use crate::deps::*;
6use crate::flint::*;
7use crate::fmpz::fmpz;
8use crate::fmpz_mod_poly::fmpz_mod_poly_struct;
9use crate::fq_nmod::{fq_nmod_ctx_struct, fq_nmod_struct};
10use crate::fq_nmod_mat::fq_nmod_mat_struct;
11use crate::nmod_poly::nmod_poly_struct;
12use libc::{c_char, c_int, FILE};
13
14#[repr(C)]
15#[derive(Debug, Copy, Clone)]
16pub struct fq_nmod_poly_struct {
17 pub coeffs: *mut fq_nmod_struct,
18 pub alloc: mp_limb_signed_t,
19 pub length: mp_limb_signed_t,
20}
21
22pub type fq_nmod_poly_t = [fq_nmod_poly_struct; 1usize];
23
24extern "C" {
25 pub fn fq_nmod_poly_init(poly: *mut fq_nmod_poly_struct, ctx: *mut fq_nmod_ctx_struct);
26 pub fn fq_nmod_poly_init2(
27 poly: *mut fq_nmod_poly_struct,
28 alloc: mp_limb_signed_t,
29 ctx: *mut fq_nmod_ctx_struct,
30 );
31 pub fn fq_nmod_poly_realloc(
32 poly: *mut fq_nmod_poly_struct,
33 alloc: mp_limb_signed_t,
34 ctx: *mut fq_nmod_ctx_struct,
35 );
36 pub fn fq_nmod_poly_truncate(
37 poly: *mut fq_nmod_poly_struct,
38 len: mp_limb_signed_t,
39 ctx: *mut fq_nmod_ctx_struct,
40 );
41 pub fn fq_nmod_poly_set_trunc(
42 poly1: *mut fq_nmod_poly_struct,
43 poly2: *mut fq_nmod_poly_struct,
44 len: mp_limb_signed_t,
45 ctx: *mut fq_nmod_ctx_struct,
46 );
47 pub fn fq_nmod_poly_fit_length(
48 poly: *mut fq_nmod_poly_struct,
49 len: mp_limb_signed_t,
50 ctx: *mut fq_nmod_ctx_struct,
51 );
52 pub fn fq_nmod_poly_clear(poly: *mut fq_nmod_poly_struct, ctx: *mut fq_nmod_ctx_struct);
53 pub fn _fq_nmod_poly_normalise(poly: *mut fq_nmod_poly_struct, ctx: *mut fq_nmod_ctx_struct);
54 pub fn _fq_nmod_poly_normalise2(
55 poly: *const fq_nmod_struct,
56 length: *mut mp_limb_signed_t,
57 ctx: *mut fq_nmod_ctx_struct,
58 );
59 pub fn _fq_nmod_poly_set_length(
60 poly: *mut fq_nmod_poly_struct,
61 len: mp_limb_signed_t,
62 ctx: *mut fq_nmod_ctx_struct,
63 );
64 pub fn fq_nmod_poly_length(
65 poly: *mut fq_nmod_poly_struct,
66 ctx: *mut fq_nmod_ctx_struct,
67 ) -> mp_limb_signed_t;
68 pub fn fq_nmod_poly_degree(
69 poly: *mut fq_nmod_poly_struct,
70 ctx: *mut fq_nmod_ctx_struct,
71 ) -> mp_limb_signed_t;
72 pub fn fq_nmod_poly_lead(
73 poly: *mut fq_nmod_poly_struct,
74 ctx: *mut fq_nmod_ctx_struct,
75 ) -> *mut fq_nmod_struct;
76 pub fn fq_nmod_poly_randtest(
77 f: *mut fq_nmod_poly_struct,
78 state: *mut flint_rand_s,
79 len: mp_limb_signed_t,
80 ctx: *mut fq_nmod_ctx_struct,
81 );
82 pub fn fq_nmod_poly_randtest_not_zero(
83 f: *mut fq_nmod_poly_struct,
84 state: *mut flint_rand_s,
85 len: mp_limb_signed_t,
86 ctx: *mut fq_nmod_ctx_struct,
87 );
88 pub fn fq_nmod_poly_randtest_monic(
89 f: *mut fq_nmod_poly_struct,
90 state: *mut flint_rand_s,
91 len: mp_limb_signed_t,
92 ctx: *mut fq_nmod_ctx_struct,
93 );
94 pub fn fq_nmod_poly_randtest_irreducible(
95 f: *mut fq_nmod_poly_struct,
96 state: *mut flint_rand_s,
97 len: mp_limb_signed_t,
98 ctx: *mut fq_nmod_ctx_struct,
99 );
100 pub fn _fq_nmod_poly_set(
101 rop: *mut fq_nmod_struct,
102 op: *const fq_nmod_struct,
103 len: mp_limb_signed_t,
104 ctx: *mut fq_nmod_ctx_struct,
105 );
106 pub fn fq_nmod_poly_set(
107 rop: *mut fq_nmod_poly_struct,
108 op: *mut fq_nmod_poly_struct,
109 ctx: *mut fq_nmod_ctx_struct,
110 );
111 pub fn fq_nmod_poly_set_fq_nmod(
112 poly: *mut fq_nmod_poly_struct,
113 c: *mut nmod_poly_struct,
114 ctx: *mut fq_nmod_ctx_struct,
115 );
116 pub fn fq_nmod_poly_set_fmpz_mod_poly(
117 rop: *mut fq_nmod_poly_struct,
118 op: *mut fmpz_mod_poly_struct,
119 ctx: *mut fq_nmod_ctx_struct,
120 );
121 pub fn fq_nmod_poly_set_nmod_poly(
122 rop: *mut fq_nmod_poly_struct,
123 op: *mut nmod_poly_struct,
124 ctx: *mut fq_nmod_ctx_struct,
125 );
126 pub fn fq_nmod_poly_swap(
127 op1: *mut fq_nmod_poly_struct,
128 op2: *mut fq_nmod_poly_struct,
129 ctx: *mut fq_nmod_ctx_struct,
130 );
131 pub fn _fq_nmod_poly_zero(
132 rop: *mut fq_nmod_struct,
133 len: mp_limb_signed_t,
134 ctx: *mut fq_nmod_ctx_struct,
135 );
136 pub fn fq_nmod_poly_zero(poly: *mut fq_nmod_poly_struct, ctx: *mut fq_nmod_ctx_struct);
137 pub fn fq_nmod_poly_one(poly: *mut fq_nmod_poly_struct, ctx: *mut fq_nmod_ctx_struct);
138 pub fn fq_nmod_poly_gen(f: *mut fq_nmod_poly_struct, ctx: *mut fq_nmod_ctx_struct);
139 pub fn _fq_nmod_poly_make_monic(
140 rop: *mut fq_nmod_struct,
141 op: *const fq_nmod_struct,
142 length: mp_limb_signed_t,
143 ctx: *mut fq_nmod_ctx_struct,
144 );
145 pub fn fq_nmod_poly_make_monic(
146 rop: *mut fq_nmod_poly_struct,
147 op: *mut fq_nmod_poly_struct,
148 ctx: *mut fq_nmod_ctx_struct,
149 );
150 pub fn _fq_nmod_poly_reverse(
151 res: *mut fq_nmod_struct,
152 poly: *const fq_nmod_struct,
153 len: mp_limb_signed_t,
154 n: mp_limb_signed_t,
155 ctx: *mut fq_nmod_ctx_struct,
156 );
157 pub fn fq_nmod_poly_reverse(
158 res: *mut fq_nmod_poly_struct,
159 poly: *mut fq_nmod_poly_struct,
160 n: mp_limb_signed_t,
161 ctx: *mut fq_nmod_ctx_struct,
162 );
163 pub fn fq_nmod_poly_deflation(
164 input: *mut fq_nmod_poly_struct,
165 ctx: *mut fq_nmod_ctx_struct,
166 ) -> mp_limb_t;
167 pub fn fq_nmod_poly_deflate(
168 result: *mut fq_nmod_poly_struct,
169 input: *mut fq_nmod_poly_struct,
170 deflation: mp_limb_t,
171 ctx: *mut fq_nmod_ctx_struct,
172 );
173 pub fn fq_nmod_poly_inflate(
174 result: *mut fq_nmod_poly_struct,
175 input: *mut fq_nmod_poly_struct,
176 inflation: mp_limb_t,
177 ctx: *mut fq_nmod_ctx_struct,
178 );
179 pub fn fq_nmod_poly_get_coeff(
180 x: *mut nmod_poly_struct,
181 poly: *mut fq_nmod_poly_struct,
182 n: mp_limb_signed_t,
183 ctx: *mut fq_nmod_ctx_struct,
184 );
185 pub fn fq_nmod_poly_set_coeff(
186 poly: *mut fq_nmod_poly_struct,
187 n: mp_limb_signed_t,
188 x: *mut nmod_poly_struct,
189 ctx: *mut fq_nmod_ctx_struct,
190 );
191 pub fn fq_nmod_poly_set_coeff_fmpz(
192 poly: *mut fq_nmod_poly_struct,
193 n: mp_limb_signed_t,
194 x: *mut fmpz,
195 ctx: *mut fq_nmod_ctx_struct,
196 );
197 pub fn fq_nmod_poly_is_gen(
198 poly: *mut fq_nmod_poly_struct,
199 ctx: *mut fq_nmod_ctx_struct,
200 ) -> c_int;
201 pub fn fq_nmod_poly_equal(
202 poly1: *mut fq_nmod_poly_struct,
203 poly2: *mut fq_nmod_poly_struct,
204 ctx: *mut fq_nmod_ctx_struct,
205 ) -> c_int;
206 pub fn fq_nmod_poly_equal_trunc(
207 poly1: *mut fq_nmod_poly_struct,
208 poly2: *mut fq_nmod_poly_struct,
209 n: mp_limb_signed_t,
210 ctx: *mut fq_nmod_ctx_struct,
211 ) -> c_int;
212 pub fn fq_nmod_poly_is_zero(
213 poly: *mut fq_nmod_poly_struct,
214 ctx: *mut fq_nmod_ctx_struct,
215 ) -> c_int;
216 pub fn fq_nmod_poly_is_one(op: *mut fq_nmod_poly_struct, ctx: *mut fq_nmod_ctx_struct)
217 -> c_int;
218 pub fn fq_nmod_poly_is_unit(
219 op: *mut fq_nmod_poly_struct,
220 ctx: *mut fq_nmod_ctx_struct,
221 ) -> c_int;
222 pub fn fq_nmod_poly_equal_fq_nmod(
223 poly: *mut fq_nmod_poly_struct,
224 c: *mut nmod_poly_struct,
225 ctx: *mut fq_nmod_ctx_struct,
226 ) -> c_int;
227 pub fn _fq_nmod_poly_add(
228 res: *mut fq_nmod_struct,
229 poly1: *const fq_nmod_struct,
230 len1: mp_limb_signed_t,
231 poly2: *const fq_nmod_struct,
232 len2: mp_limb_signed_t,
233 ctx: *mut fq_nmod_ctx_struct,
234 );
235 pub fn fq_nmod_poly_add(
236 rop: *mut fq_nmod_poly_struct,
237 op1: *mut fq_nmod_poly_struct,
238 op2: *mut fq_nmod_poly_struct,
239 ctx: *mut fq_nmod_ctx_struct,
240 );
241 pub fn fq_nmod_poly_add_si(
242 rop: *mut fq_nmod_poly_struct,
243 op1: *mut fq_nmod_poly_struct,
244 c: mp_limb_signed_t,
245 ctx: *mut fq_nmod_ctx_struct,
246 );
247 pub fn fq_nmod_poly_add_series(
248 rop: *mut fq_nmod_poly_struct,
249 op1: *mut fq_nmod_poly_struct,
250 op2: *mut fq_nmod_poly_struct,
251 n: mp_limb_signed_t,
252 ctx: *mut fq_nmod_ctx_struct,
253 );
254 pub fn _fq_nmod_poly_sub(
255 res: *mut fq_nmod_struct,
256 poly1: *const fq_nmod_struct,
257 len1: mp_limb_signed_t,
258 poly2: *const fq_nmod_struct,
259 len2: mp_limb_signed_t,
260 ctx: *mut fq_nmod_ctx_struct,
261 );
262 pub fn fq_nmod_poly_sub(
263 rop: *mut fq_nmod_poly_struct,
264 op1: *mut fq_nmod_poly_struct,
265 op2: *mut fq_nmod_poly_struct,
266 ctx: *mut fq_nmod_ctx_struct,
267 );
268 pub fn fq_nmod_poly_sub_series(
269 rop: *mut fq_nmod_poly_struct,
270 op1: *mut fq_nmod_poly_struct,
271 op2: *mut fq_nmod_poly_struct,
272 n: mp_limb_signed_t,
273 ctx: *mut fq_nmod_ctx_struct,
274 );
275 pub fn _fq_nmod_poly_neg(
276 rop: *mut fq_nmod_struct,
277 op: *const fq_nmod_struct,
278 len: mp_limb_signed_t,
279 ctx: *mut fq_nmod_ctx_struct,
280 );
281 pub fn fq_nmod_poly_neg(
282 rop: *mut fq_nmod_poly_struct,
283 op: *mut fq_nmod_poly_struct,
284 ctx: *mut fq_nmod_ctx_struct,
285 );
286 pub fn _fq_nmod_poly_scalar_mul_fq_nmod(
287 rop: *mut fq_nmod_struct,
288 op: *const fq_nmod_struct,
289 len: mp_limb_signed_t,
290 x: *mut nmod_poly_struct,
291 ctx: *mut fq_nmod_ctx_struct,
292 );
293 pub fn fq_nmod_poly_scalar_mul_fq_nmod(
294 rop: *mut fq_nmod_poly_struct,
295 op: *mut fq_nmod_poly_struct,
296 x: *mut nmod_poly_struct,
297 ctx: *mut fq_nmod_ctx_struct,
298 );
299 pub fn _fq_nmod_poly_scalar_div_fq_nmod(
300 rop: *mut fq_nmod_struct,
301 op: *const fq_nmod_struct,
302 len: mp_limb_signed_t,
303 x: *mut nmod_poly_struct,
304 ctx: *mut fq_nmod_ctx_struct,
305 );
306 pub fn fq_nmod_poly_scalar_div_fq_nmod(
307 rop: *mut fq_nmod_poly_struct,
308 op: *mut fq_nmod_poly_struct,
309 x: *mut nmod_poly_struct,
310 ctx: *mut fq_nmod_ctx_struct,
311 );
312 pub fn _fq_nmod_poly_scalar_addmul_fq_nmod(
313 rop: *mut fq_nmod_struct,
314 op: *const fq_nmod_struct,
315 len: mp_limb_signed_t,
316 x: *mut nmod_poly_struct,
317 ctx: *mut fq_nmod_ctx_struct,
318 );
319 pub fn fq_nmod_poly_scalar_addmul_fq_nmod(
320 rop: *mut fq_nmod_poly_struct,
321 op: *mut fq_nmod_poly_struct,
322 x: *mut nmod_poly_struct,
323 ctx: *mut fq_nmod_ctx_struct,
324 );
325 pub fn _fq_nmod_poly_scalar_submul_fq_nmod(
326 rop: *mut fq_nmod_struct,
327 op: *const fq_nmod_struct,
328 len: mp_limb_signed_t,
329 x: *mut nmod_poly_struct,
330 ctx: *mut fq_nmod_ctx_struct,
331 );
332 pub fn fq_nmod_poly_scalar_submul_fq_nmod(
333 rop: *mut fq_nmod_poly_struct,
334 op: *mut fq_nmod_poly_struct,
335 x: *mut nmod_poly_struct,
336 ctx: *mut fq_nmod_ctx_struct,
337 );
338 pub fn _fq_nmod_poly_mul_classical(
339 rop: *mut fq_nmod_struct,
340 op1: *const fq_nmod_struct,
341 len1: mp_limb_signed_t,
342 op2: *const fq_nmod_struct,
343 len2: mp_limb_signed_t,
344 ctx: *mut fq_nmod_ctx_struct,
345 );
346 pub fn fq_nmod_poly_mul_classical(
347 rop: *mut fq_nmod_poly_struct,
348 op1: *mut fq_nmod_poly_struct,
349 op2: *mut fq_nmod_poly_struct,
350 ctx: *mut fq_nmod_ctx_struct,
351 );
352 pub fn _fq_nmod_poly_mul_reorder(
353 rop: *mut fq_nmod_struct,
354 op1: *const fq_nmod_struct,
355 len1: mp_limb_signed_t,
356 op2: *const fq_nmod_struct,
357 len2: mp_limb_signed_t,
358 ctx: *mut fq_nmod_ctx_struct,
359 );
360 pub fn fq_nmod_poly_mul_reorder(
361 rop: *mut fq_nmod_poly_struct,
362 op1: *mut fq_nmod_poly_struct,
363 op2: *mut fq_nmod_poly_struct,
364 ctx: *mut fq_nmod_ctx_struct,
365 );
366 pub fn _fq_nmod_poly_mul_univariate(
367 rop: *mut fq_nmod_struct,
368 op1: *const fq_nmod_struct,
369 len1: mp_limb_signed_t,
370 op2: *const fq_nmod_struct,
371 len2: mp_limb_signed_t,
372 ctx: *mut fq_nmod_ctx_struct,
373 );
374 pub fn fq_nmod_poly_mul_univariate(
375 rop: *mut fq_nmod_poly_struct,
376 op1: *mut fq_nmod_poly_struct,
377 op2: *mut fq_nmod_poly_struct,
378 ctx: *mut fq_nmod_ctx_struct,
379 );
380 pub fn _fq_nmod_poly_mul_KS(
381 rop: *mut fq_nmod_struct,
382 op1: *const fq_nmod_struct,
383 len1: mp_limb_signed_t,
384 op2: *const fq_nmod_struct,
385 len2: mp_limb_signed_t,
386 ctx: *mut fq_nmod_ctx_struct,
387 );
388 pub fn fq_nmod_poly_mul_KS(
389 rop: *mut fq_nmod_poly_struct,
390 op1: *mut fq_nmod_poly_struct,
391 op2: *mut fq_nmod_poly_struct,
392 ctx: *mut fq_nmod_ctx_struct,
393 );
394 pub fn _fq_nmod_poly_mul(
395 rop: *mut fq_nmod_struct,
396 op1: *const fq_nmod_struct,
397 len1: mp_limb_signed_t,
398 op2: *const fq_nmod_struct,
399 len2: mp_limb_signed_t,
400 ctx: *mut fq_nmod_ctx_struct,
401 );
402 pub fn fq_nmod_poly_mul(
403 rop: *mut fq_nmod_poly_struct,
404 op1: *mut fq_nmod_poly_struct,
405 op2: *mut fq_nmod_poly_struct,
406 ctx: *mut fq_nmod_ctx_struct,
407 );
408 pub fn _fq_nmod_poly_mullow_classical(
409 rop: *mut fq_nmod_struct,
410 op1: *const fq_nmod_struct,
411 len1: mp_limb_signed_t,
412 op2: *const fq_nmod_struct,
413 len2: mp_limb_signed_t,
414 n: mp_limb_signed_t,
415 ctx: *mut fq_nmod_ctx_struct,
416 );
417 pub fn fq_nmod_poly_mullow_classical(
418 rop: *mut fq_nmod_poly_struct,
419 op1: *mut fq_nmod_poly_struct,
420 op2: *mut fq_nmod_poly_struct,
421 n: mp_limb_signed_t,
422 ctx: *mut fq_nmod_ctx_struct,
423 );
424 pub fn _fq_nmod_poly_mullow_KS(
425 rop: *mut fq_nmod_struct,
426 op1: *const fq_nmod_struct,
427 len1: mp_limb_signed_t,
428 op2: *const fq_nmod_struct,
429 len2: mp_limb_signed_t,
430 n: mp_limb_signed_t,
431 ctx: *mut fq_nmod_ctx_struct,
432 );
433 pub fn fq_nmod_poly_mullow_KS(
434 rop: *mut fq_nmod_poly_struct,
435 op1: *mut fq_nmod_poly_struct,
436 op2: *mut fq_nmod_poly_struct,
437 n: mp_limb_signed_t,
438 ctx: *mut fq_nmod_ctx_struct,
439 );
440 pub fn _fq_nmod_poly_mullow_univariate(
441 rop: *mut fq_nmod_struct,
442 op1: *const fq_nmod_struct,
443 len1: mp_limb_signed_t,
444 op2: *const fq_nmod_struct,
445 len2: mp_limb_signed_t,
446 n: mp_limb_signed_t,
447 ctx: *mut fq_nmod_ctx_struct,
448 );
449 pub fn fq_nmod_poly_mullow_univariate(
450 rop: *mut fq_nmod_poly_struct,
451 op1: *mut fq_nmod_poly_struct,
452 op2: *mut fq_nmod_poly_struct,
453 n: mp_limb_signed_t,
454 ctx: *mut fq_nmod_ctx_struct,
455 );
456 pub fn _fq_nmod_poly_mullow(
457 rop: *mut fq_nmod_struct,
458 op1: *const fq_nmod_struct,
459 len1: mp_limb_signed_t,
460 op2: *const fq_nmod_struct,
461 len2: mp_limb_signed_t,
462 n: mp_limb_signed_t,
463 ctx: *mut fq_nmod_ctx_struct,
464 );
465 pub fn fq_nmod_poly_mullow(
466 rop: *mut fq_nmod_poly_struct,
467 op1: *mut fq_nmod_poly_struct,
468 op2: *mut fq_nmod_poly_struct,
469 n: mp_limb_signed_t,
470 ctx: *mut fq_nmod_ctx_struct,
471 );
472 pub fn _fq_nmod_poly_mulhigh_classical(
473 rop: *mut fq_nmod_struct,
474 op1: *const fq_nmod_struct,
475 len1: mp_limb_signed_t,
476 op2: *const fq_nmod_struct,
477 len2: mp_limb_signed_t,
478 start: mp_limb_signed_t,
479 ctx: *mut fq_nmod_ctx_struct,
480 );
481 pub fn fq_nmod_poly_mulhigh_classical(
482 rop: *mut fq_nmod_poly_struct,
483 op1: *mut fq_nmod_poly_struct,
484 op2: *mut fq_nmod_poly_struct,
485 start: mp_limb_signed_t,
486 ctx: *mut fq_nmod_ctx_struct,
487 );
488 pub fn _fq_nmod_poly_mulhigh(
489 res: *mut fq_nmod_struct,
490 poly1: *const fq_nmod_struct,
491 len1: mp_limb_signed_t,
492 poly2: *const fq_nmod_struct,
493 len2: mp_limb_signed_t,
494 n: mp_limb_signed_t,
495 ctx: *mut fq_nmod_ctx_struct,
496 );
497 pub fn fq_nmod_poly_mulhigh(
498 rop: *mut fq_nmod_poly_struct,
499 op1: *mut fq_nmod_poly_struct,
500 op2: *mut fq_nmod_poly_struct,
501 start: mp_limb_signed_t,
502 ctx: *mut fq_nmod_ctx_struct,
503 );
504 pub fn _fq_nmod_poly_mulmod(
505 res: *mut fq_nmod_struct,
506 poly1: *const fq_nmod_struct,
507 len1: mp_limb_signed_t,
508 poly2: *const fq_nmod_struct,
509 len2: mp_limb_signed_t,
510 f: *const fq_nmod_struct,
511 lenf: mp_limb_signed_t,
512 ctx: *mut fq_nmod_ctx_struct,
513 );
514 pub fn fq_nmod_poly_mulmod(
515 res: *mut fq_nmod_poly_struct,
516 poly1: *mut fq_nmod_poly_struct,
517 poly2: *mut fq_nmod_poly_struct,
518 f: *mut fq_nmod_poly_struct,
519 ctx: *mut fq_nmod_ctx_struct,
520 );
521 pub fn _fq_nmod_poly_mulmod_preinv(
522 res: *mut fq_nmod_struct,
523 poly1: *const fq_nmod_struct,
524 len1: mp_limb_signed_t,
525 poly2: *const fq_nmod_struct,
526 len2: mp_limb_signed_t,
527 f: *const fq_nmod_struct,
528 lenf: mp_limb_signed_t,
529 finv: *const fq_nmod_struct,
530 lenfinv: mp_limb_signed_t,
531 ctx: *mut fq_nmod_ctx_struct,
532 );
533 pub fn fq_nmod_poly_mulmod_preinv(
534 res: *mut fq_nmod_poly_struct,
535 poly1: *mut fq_nmod_poly_struct,
536 poly2: *mut fq_nmod_poly_struct,
537 f: *mut fq_nmod_poly_struct,
538 finv: *mut fq_nmod_poly_struct,
539 ctx: *mut fq_nmod_ctx_struct,
540 );
541 pub fn _fq_nmod_poly_sqr_classical(
542 rop: *mut fq_nmod_struct,
543 op: *const fq_nmod_struct,
544 len: mp_limb_signed_t,
545 ctx: *mut fq_nmod_ctx_struct,
546 );
547 pub fn fq_nmod_poly_sqr_classical(
548 rop: *mut fq_nmod_poly_struct,
549 op: *mut fq_nmod_poly_struct,
550 ctx: *mut fq_nmod_ctx_struct,
551 );
552 pub fn _fq_nmod_poly_sqr_reorder(
553 rop: *mut fq_nmod_struct,
554 op: *const fq_nmod_struct,
555 len: mp_limb_signed_t,
556 ctx: *mut fq_nmod_ctx_struct,
557 );
558 pub fn fq_nmod_poly_sqr_reorder(
559 rop: *mut fq_nmod_poly_struct,
560 op: *mut fq_nmod_poly_struct,
561 ctx: *mut fq_nmod_ctx_struct,
562 );
563 pub fn _fq_nmod_poly_sqr_KS(
564 rop: *mut fq_nmod_struct,
565 op: *const fq_nmod_struct,
566 len: mp_limb_signed_t,
567 ctx: *mut fq_nmod_ctx_struct,
568 );
569 pub fn fq_nmod_poly_sqr_KS(
570 rop: *mut fq_nmod_poly_struct,
571 op: *mut fq_nmod_poly_struct,
572 ctx: *mut fq_nmod_ctx_struct,
573 );
574 pub fn _fq_nmod_poly_sqr(
575 rop: *mut fq_nmod_struct,
576 op: *const fq_nmod_struct,
577 len: mp_limb_signed_t,
578 ctx: *mut fq_nmod_ctx_struct,
579 );
580 pub fn fq_nmod_poly_sqr(
581 rop: *mut fq_nmod_poly_struct,
582 op: *mut fq_nmod_poly_struct,
583 ctx: *mut fq_nmod_ctx_struct,
584 );
585 pub fn _fq_nmod_poly_pow(
586 rop: *mut fq_nmod_struct,
587 op: *const fq_nmod_struct,
588 len: mp_limb_signed_t,
589 e: mp_limb_t,
590 ctx: *mut fq_nmod_ctx_struct,
591 );
592 pub fn fq_nmod_poly_pow(
593 rop: *mut fq_nmod_poly_struct,
594 op: *mut fq_nmod_poly_struct,
595 e: mp_limb_t,
596 ctx: *mut fq_nmod_ctx_struct,
597 );
598 pub fn _fq_nmod_poly_pow_trunc_binexp(
599 res: *mut fq_nmod_struct,
600 poly: *const fq_nmod_struct,
601 e: mp_limb_t,
602 trunc: mp_limb_signed_t,
603 ctx: *mut fq_nmod_ctx_struct,
604 );
605 pub fn fq_nmod_poly_pow_trunc_binexp(
606 res: *mut fq_nmod_poly_struct,
607 poly: *mut fq_nmod_poly_struct,
608 e: mp_limb_t,
609 trunc: mp_limb_signed_t,
610 ctx: *mut fq_nmod_ctx_struct,
611 );
612 pub fn _fq_nmod_poly_pow_trunc(
613 res: *mut fq_nmod_struct,
614 poly: *const fq_nmod_struct,
615 e: mp_limb_t,
616 trunc: mp_limb_signed_t,
617 ctx: *mut fq_nmod_ctx_struct,
618 );
619 pub fn fq_nmod_poly_pow_trunc(
620 res: *mut fq_nmod_poly_struct,
621 poly: *mut fq_nmod_poly_struct,
622 e: mp_limb_t,
623 trunc: mp_limb_signed_t,
624 ctx: *mut fq_nmod_ctx_struct,
625 );
626 pub fn _fq_nmod_poly_powmod_fmpz_binexp(
627 res: *mut fq_nmod_struct,
628 poly: *const fq_nmod_struct,
629 e: *mut fmpz,
630 f: *const fq_nmod_struct,
631 lenf: mp_limb_signed_t,
632 ctx: *mut fq_nmod_ctx_struct,
633 );
634 pub fn fq_nmod_poly_powmod_fmpz_binexp(
635 res: *mut fq_nmod_poly_struct,
636 poly: *mut fq_nmod_poly_struct,
637 e: *mut fmpz,
638 f: *mut fq_nmod_poly_struct,
639 ctx: *mut fq_nmod_ctx_struct,
640 );
641 pub fn _fq_nmod_poly_powmod_fmpz_binexp_preinv(
642 res: *mut fq_nmod_struct,
643 poly: *const fq_nmod_struct,
644 e: *mut fmpz,
645 f: *const fq_nmod_struct,
646 lenf: mp_limb_signed_t,
647 finv: *const fq_nmod_struct,
648 lenfinv: mp_limb_signed_t,
649 ctx: *mut fq_nmod_ctx_struct,
650 );
651 pub fn fq_nmod_poly_powmod_fmpz_binexp_preinv(
652 res: *mut fq_nmod_poly_struct,
653 poly: *mut fq_nmod_poly_struct,
654 e: *mut fmpz,
655 f: *mut fq_nmod_poly_struct,
656 finv: *mut fq_nmod_poly_struct,
657 ctx: *mut fq_nmod_ctx_struct,
658 );
659 pub fn _fq_nmod_poly_powmod_ui_binexp(
660 res: *mut fq_nmod_struct,
661 poly: *const fq_nmod_struct,
662 e: mp_limb_t,
663 f: *const fq_nmod_struct,
664 lenf: mp_limb_signed_t,
665 ctx: *mut fq_nmod_ctx_struct,
666 );
667 pub fn fq_nmod_poly_powmod_ui_binexp(
668 res: *mut fq_nmod_poly_struct,
669 poly: *mut fq_nmod_poly_struct,
670 e: mp_limb_t,
671 f: *mut fq_nmod_poly_struct,
672 ctx: *mut fq_nmod_ctx_struct,
673 );
674 pub fn _fq_nmod_poly_powmod_ui_binexp_preinv(
675 res: *mut fq_nmod_struct,
676 poly: *const fq_nmod_struct,
677 e: mp_limb_t,
678 f: *const fq_nmod_struct,
679 lenf: mp_limb_signed_t,
680 finv: *const fq_nmod_struct,
681 lenfinv: mp_limb_signed_t,
682 ctx: *mut fq_nmod_ctx_struct,
683 );
684 pub fn fq_nmod_poly_powmod_ui_binexp_preinv(
685 res: *mut fq_nmod_poly_struct,
686 poly: *mut fq_nmod_poly_struct,
687 e: mp_limb_t,
688 f: *mut fq_nmod_poly_struct,
689 finv: *mut fq_nmod_poly_struct,
690 ctx: *mut fq_nmod_ctx_struct,
691 );
692 pub fn _fq_nmod_poly_powmod_fmpz_sliding_preinv(
693 res: *mut fq_nmod_struct,
694 poly: *const fq_nmod_struct,
695 e: *mut fmpz,
696 k: mp_limb_t,
697 f: *const fq_nmod_struct,
698 lenf: mp_limb_signed_t,
699 finv: *const fq_nmod_struct,
700 lenfinv: mp_limb_signed_t,
701 ctx: *mut fq_nmod_ctx_struct,
702 );
703 pub fn fq_nmod_poly_powmod_fmpz_sliding_preinv(
704 res: *mut fq_nmod_poly_struct,
705 poly: *mut fq_nmod_poly_struct,
706 e: *mut fmpz,
707 k: mp_limb_t,
708 f: *mut fq_nmod_poly_struct,
709 finv: *mut fq_nmod_poly_struct,
710 ctx: *mut fq_nmod_ctx_struct,
711 );
712 pub fn _fq_nmod_poly_powmod_x_fmpz_preinv(
713 res: *mut fq_nmod_struct,
714 e: *mut fmpz,
715 f: *const fq_nmod_struct,
716 lenf: mp_limb_signed_t,
717 finv: *const fq_nmod_struct,
718 lenfinv: mp_limb_signed_t,
719 ctx: *mut fq_nmod_ctx_struct,
720 );
721 pub fn fq_nmod_poly_powmod_x_fmpz_preinv(
722 res: *mut fq_nmod_poly_struct,
723 e: *mut fmpz,
724 f: *mut fq_nmod_poly_struct,
725 finv: *mut fq_nmod_poly_struct,
726 ctx: *mut fq_nmod_ctx_struct,
727 );
728 pub fn _fq_nmod_poly_shift_left(
729 rop: *mut fq_nmod_struct,
730 op: *const fq_nmod_struct,
731 len: mp_limb_signed_t,
732 n: mp_limb_signed_t,
733 ctx: *mut fq_nmod_ctx_struct,
734 );
735 pub fn fq_nmod_poly_shift_left(
736 rop: *mut fq_nmod_poly_struct,
737 op: *mut fq_nmod_poly_struct,
738 n: mp_limb_signed_t,
739 ctx: *mut fq_nmod_ctx_struct,
740 );
741 pub fn _fq_nmod_poly_shift_right(
742 rop: *mut fq_nmod_struct,
743 op: *const fq_nmod_struct,
744 len: mp_limb_signed_t,
745 n: mp_limb_signed_t,
746 ctx: *mut fq_nmod_ctx_struct,
747 );
748 pub fn fq_nmod_poly_shift_right(
749 rop: *mut fq_nmod_poly_struct,
750 op: *mut fq_nmod_poly_struct,
751 n: mp_limb_signed_t,
752 ctx: *mut fq_nmod_ctx_struct,
753 );
754 pub fn _fq_nmod_poly_hamming_weight(
755 op: *const fq_nmod_struct,
756 len: mp_limb_signed_t,
757 ctx: *mut fq_nmod_ctx_struct,
758 ) -> mp_limb_signed_t;
759 pub fn fq_nmod_poly_hamming_weight(
760 op: *mut fq_nmod_poly_struct,
761 ctx: *mut fq_nmod_ctx_struct,
762 ) -> mp_limb_signed_t;
763 pub fn fq_nmod_poly_gcd_euclidean(
764 rop: *mut fq_nmod_poly_struct,
765 op1: *mut fq_nmod_poly_struct,
766 op2: *mut fq_nmod_poly_struct,
767 ctx: *mut fq_nmod_ctx_struct,
768 );
769 pub fn _fq_nmod_poly_gcd_euclidean(
770 G: *mut fq_nmod_struct,
771 A: *const fq_nmod_struct,
772 lenA: mp_limb_signed_t,
773 B: *const fq_nmod_struct,
774 lenB: mp_limb_signed_t,
775 invB: *mut nmod_poly_struct,
776 ctx: *mut fq_nmod_ctx_struct,
777 ) -> mp_limb_signed_t;
778 pub fn _fq_nmod_poly_gcd(
779 G: *mut fq_nmod_struct,
780 A: *const fq_nmod_struct,
781 lenA: mp_limb_signed_t,
782 B: *const fq_nmod_struct,
783 lenB: mp_limb_signed_t,
784 invB: *mut nmod_poly_struct,
785 ctx: *mut fq_nmod_ctx_struct,
786 ) -> mp_limb_signed_t;
787 pub fn fq_nmod_poly_gcd(
788 rop: *mut fq_nmod_poly_struct,
789 op1: *mut fq_nmod_poly_struct,
790 op2: *mut fq_nmod_poly_struct,
791 ctx: *mut fq_nmod_ctx_struct,
792 );
793 pub fn _fq_nmod_poly_gcd_euclidean_f(
794 f: *mut nmod_poly_struct,
795 G: *mut fq_nmod_struct,
796 A: *const fq_nmod_struct,
797 lenA: mp_limb_signed_t,
798 B: *const fq_nmod_struct,
799 lenB: mp_limb_signed_t,
800 ctx: *mut fq_nmod_ctx_struct,
801 ) -> mp_limb_signed_t;
802 pub fn fq_nmod_poly_gcd_euclidean_f(
803 f: *mut nmod_poly_struct,
804 G: *mut fq_nmod_poly_struct,
805 A: *mut fq_nmod_poly_struct,
806 B: *mut fq_nmod_poly_struct,
807 ctx: *mut fq_nmod_ctx_struct,
808 );
809 pub fn _fq_nmod_poly_hgcd(
810 M: *mut *mut fq_nmod_struct,
811 lenM: *mut mp_limb_signed_t,
812 A: *mut fq_nmod_struct,
813 lenA: *mut mp_limb_signed_t,
814 B: *mut fq_nmod_struct,
815 lenB: *mut mp_limb_signed_t,
816 a: *const fq_nmod_struct,
817 lena: mp_limb_signed_t,
818 b: *const fq_nmod_struct,
819 lenb: mp_limb_signed_t,
820 ctx: *mut fq_nmod_ctx_struct,
821 ) -> mp_limb_signed_t;
822 pub fn _fq_nmod_poly_gcd_hgcd(
823 G: *mut fq_nmod_struct,
824 A: *const fq_nmod_struct,
825 lenA: mp_limb_signed_t,
826 B: *const fq_nmod_struct,
827 lenB: mp_limb_signed_t,
828 invB: *mut nmod_poly_struct,
829 ctx: *mut fq_nmod_ctx_struct,
830 ) -> mp_limb_signed_t;
831 pub fn fq_nmod_poly_gcd_hgcd(
832 G: *mut fq_nmod_poly_struct,
833 A: *mut fq_nmod_poly_struct,
834 B: *mut fq_nmod_poly_struct,
835 ctx: *mut fq_nmod_ctx_struct,
836 );
837 pub fn _fq_nmod_poly_xgcd_euclidean_f(
838 f: *mut nmod_poly_struct,
839 G: *mut fq_nmod_struct,
840 S: *mut fq_nmod_struct,
841 fq_nmod: *mut fq_nmod_struct,
842 A: *const fq_nmod_struct,
843 lenA: mp_limb_signed_t,
844 B: *const fq_nmod_struct,
845 lenB: mp_limb_signed_t,
846 ctx: *mut fq_nmod_ctx_struct,
847 ) -> mp_limb_signed_t;
848 pub fn fq_nmod_poly_xgcd_euclidean_f(
849 f: *mut nmod_poly_struct,
850 G: *mut fq_nmod_poly_struct,
851 S: *mut fq_nmod_poly_struct,
852 fq_nmod: *mut fq_nmod_poly_struct,
853 A: *mut fq_nmod_poly_struct,
854 B: *mut fq_nmod_poly_struct,
855 ctx: *mut fq_nmod_ctx_struct,
856 );
857 pub fn _fq_nmod_poly_xgcd_euclidean(
858 G: *mut fq_nmod_struct,
859 S: *mut fq_nmod_struct,
860 fq_nmod: *mut fq_nmod_struct,
861 A: *const fq_nmod_struct,
862 lenA: mp_limb_signed_t,
863 B: *const fq_nmod_struct,
864 lenB: mp_limb_signed_t,
865 invB: *mut nmod_poly_struct,
866 ctx: *mut fq_nmod_ctx_struct,
867 ) -> mp_limb_signed_t;
868 pub fn fq_nmod_poly_xgcd_euclidean(
869 G: *mut fq_nmod_poly_struct,
870 S: *mut fq_nmod_poly_struct,
871 fq_nmod: *mut fq_nmod_poly_struct,
872 A: *mut fq_nmod_poly_struct,
873 B: *mut fq_nmod_poly_struct,
874 ctx: *mut fq_nmod_ctx_struct,
875 );
876 pub fn _fq_nmod_poly_xgcd(
877 G: *mut fq_nmod_struct,
878 S: *mut fq_nmod_struct,
879 fq_nmod: *mut fq_nmod_struct,
880 A: *const fq_nmod_struct,
881 lenA: mp_limb_signed_t,
882 B: *const fq_nmod_struct,
883 lenB: mp_limb_signed_t,
884 invB: *mut nmod_poly_struct,
885 ctx: *mut fq_nmod_ctx_struct,
886 ) -> mp_limb_signed_t;
887 pub fn fq_nmod_poly_xgcd(
888 G: *mut fq_nmod_poly_struct,
889 S: *mut fq_nmod_poly_struct,
890 fq_nmod: *mut fq_nmod_poly_struct,
891 A: *mut fq_nmod_poly_struct,
892 B: *mut fq_nmod_poly_struct,
893 ctx: *mut fq_nmod_ctx_struct,
894 );
895 pub fn fq_nmod_poly_remove(
896 f: *mut fq_nmod_poly_struct,
897 g: *mut fq_nmod_poly_struct,
898 ctx: *mut fq_nmod_ctx_struct,
899 ) -> mp_limb_t;
900 pub fn _fq_nmod_poly_div_basecase(
901 Q: *mut fq_nmod_struct,
902 R: *mut fq_nmod_struct,
903 A: *const fq_nmod_struct,
904 lenA: mp_limb_signed_t,
905 B: *const fq_nmod_struct,
906 lenB: mp_limb_signed_t,
907 invB: *mut nmod_poly_struct,
908 ctx: *mut fq_nmod_ctx_struct,
909 );
910 pub fn fq_nmod_poly_div_basecase(
911 Q: *mut fq_nmod_poly_struct,
912 A: *mut fq_nmod_poly_struct,
913 B: *mut fq_nmod_poly_struct,
914 ctx: *mut fq_nmod_ctx_struct,
915 );
916 pub fn _fq_nmod_poly_divrem_basecase(
917 Q: *mut fq_nmod_struct,
918 R: *mut fq_nmod_struct,
919 A: *const fq_nmod_struct,
920 lenA: mp_limb_signed_t,
921 B: *const fq_nmod_struct,
922 lenB: mp_limb_signed_t,
923 invB: *mut nmod_poly_struct,
924 ctx: *mut fq_nmod_ctx_struct,
925 );
926 pub fn fq_nmod_poly_divrem_basecase(
927 Q: *mut fq_nmod_poly_struct,
928 R: *mut fq_nmod_poly_struct,
929 A: *mut fq_nmod_poly_struct,
930 B: *mut fq_nmod_poly_struct,
931 ctx: *mut fq_nmod_ctx_struct,
932 );
933 pub fn _fq_nmod_poly_divrem_divconquer_recursive(
934 Q: *mut fq_nmod_struct,
935 BQ: *mut fq_nmod_struct,
936 W: *mut fq_nmod_struct,
937 A: *const fq_nmod_struct,
938 B: *const fq_nmod_struct,
939 lenB: mp_limb_signed_t,
940 invB: *mut nmod_poly_struct,
941 ctx: *mut fq_nmod_ctx_struct,
942 );
943 pub fn _fq_nmod_poly_divrem_divconquer(
944 Q: *mut fq_nmod_struct,
945 R: *mut fq_nmod_struct,
946 A: *const fq_nmod_struct,
947 lenA: mp_limb_signed_t,
948 B: *const fq_nmod_struct,
949 lenB: mp_limb_signed_t,
950 invB: *mut nmod_poly_struct,
951 ctx: *mut fq_nmod_ctx_struct,
952 );
953 pub fn fq_nmod_poly_divrem_divconquer(
954 Q: *mut fq_nmod_poly_struct,
955 R: *mut fq_nmod_poly_struct,
956 A: *mut fq_nmod_poly_struct,
957 B: *mut fq_nmod_poly_struct,
958 ctx: *mut fq_nmod_ctx_struct,
959 );
960 pub fn _fq_nmod_poly_divrem(
961 Q: *mut fq_nmod_struct,
962 R: *mut fq_nmod_struct,
963 A: *const fq_nmod_struct,
964 lenA: mp_limb_signed_t,
965 B: *const fq_nmod_struct,
966 lenB: mp_limb_signed_t,
967 invB: *mut nmod_poly_struct,
968 ctx: *mut fq_nmod_ctx_struct,
969 );
970 pub fn fq_nmod_poly_divrem(
971 Q: *mut fq_nmod_poly_struct,
972 R: *mut fq_nmod_poly_struct,
973 A: *mut fq_nmod_poly_struct,
974 B: *mut fq_nmod_poly_struct,
975 ctx: *mut fq_nmod_ctx_struct,
976 );
977 pub fn _fq_nmod_poly_rem(
978 R: *mut fq_nmod_struct,
979 A: *const fq_nmod_struct,
980 lenA: mp_limb_signed_t,
981 B: *const fq_nmod_struct,
982 lenB: mp_limb_signed_t,
983 invB: *mut nmod_poly_struct,
984 ctx: *mut fq_nmod_ctx_struct,
985 );
986 pub fn fq_nmod_poly_rem(
987 R: *mut fq_nmod_poly_struct,
988 A: *mut fq_nmod_poly_struct,
989 B: *mut fq_nmod_poly_struct,
990 ctx: *mut fq_nmod_ctx_struct,
991 );
992 pub fn _fq_nmod_poly_inv_series_newton(
993 Qinv: *mut fq_nmod_struct,
994 Q: *const fq_nmod_struct,
995 n: mp_limb_signed_t,
996 cinv: *mut nmod_poly_struct,
997 ctx: *mut fq_nmod_ctx_struct,
998 );
999 pub fn fq_nmod_poly_inv_series_newton(
1000 Qinv: *mut fq_nmod_poly_struct,
1001 Q: *mut fq_nmod_poly_struct,
1002 n: mp_limb_signed_t,
1003 ctx: *mut fq_nmod_ctx_struct,
1004 );
1005 pub fn _fq_nmod_poly_inv_series(
1006 Qinv: *mut fq_nmod_struct,
1007 Q: *const fq_nmod_struct,
1008 n: mp_limb_signed_t,
1009 cinv: *mut nmod_poly_struct,
1010 ctx: *mut fq_nmod_ctx_struct,
1011 );
1012 pub fn fq_nmod_poly_inv_series(
1013 Qinv: *mut fq_nmod_poly_struct,
1014 Q: *mut fq_nmod_poly_struct,
1015 n: mp_limb_signed_t,
1016 ctx: *mut fq_nmod_ctx_struct,
1017 );
1018 pub fn _fq_nmod_poly_div_series(
1019 Q: *mut fq_nmod_struct,
1020 A: *const fq_nmod_struct,
1021 Alen: mp_limb_signed_t,
1022 B: *const fq_nmod_struct,
1023 Blen: mp_limb_signed_t,
1024 n: mp_limb_signed_t,
1025 ctx: *mut fq_nmod_ctx_struct,
1026 );
1027 pub fn fq_nmod_poly_div_series(
1028 Q: *mut fq_nmod_poly_struct,
1029 A: *mut fq_nmod_poly_struct,
1030 B: *mut fq_nmod_poly_struct,
1031 n: mp_limb_signed_t,
1032 ctx: *mut fq_nmod_ctx_struct,
1033 );
1034 pub fn _fq_nmod_poly_div_newton_n_preinv(
1035 Q: *mut fq_nmod_struct,
1036 A: *const fq_nmod_struct,
1037 lenA: mp_limb_signed_t,
1038 B: *const fq_nmod_struct,
1039 lenB: mp_limb_signed_t,
1040 Binv: *const fq_nmod_struct,
1041 lenBinv: mp_limb_signed_t,
1042 ctx: *mut fq_nmod_ctx_struct,
1043 );
1044 pub fn fq_nmod_poly_div_newton_n_preinv(
1045 Q: *mut fq_nmod_poly_struct,
1046 A: *mut fq_nmod_poly_struct,
1047 B: *mut fq_nmod_poly_struct,
1048 Binv: *mut fq_nmod_poly_struct,
1049 ctx: *mut fq_nmod_ctx_struct,
1050 );
1051 pub fn _fq_nmod_poly_divrem_newton_n_preinv(
1052 Q: *mut fq_nmod_struct,
1053 R: *mut fq_nmod_struct,
1054 A: *const fq_nmod_struct,
1055 lenA: mp_limb_signed_t,
1056 B: *const fq_nmod_struct,
1057 lenB: mp_limb_signed_t,
1058 Binv: *const fq_nmod_struct,
1059 lenBinv: mp_limb_signed_t,
1060 ctx: *mut fq_nmod_ctx_struct,
1061 );
1062 pub fn fq_nmod_poly_divrem_newton_n_preinv(
1063 Q: *mut fq_nmod_poly_struct,
1064 R: *mut fq_nmod_poly_struct,
1065 A: *mut fq_nmod_poly_struct,
1066 B: *mut fq_nmod_poly_struct,
1067 Binv: *mut fq_nmod_poly_struct,
1068 ctx: *mut fq_nmod_ctx_struct,
1069 );
1070 pub fn _fq_nmod_poly_divrem_f(
1071 f: *mut nmod_poly_struct,
1072 Q: *mut fq_nmod_struct,
1073 R: *mut fq_nmod_struct,
1074 A: *const fq_nmod_struct,
1075 lenA: mp_limb_signed_t,
1076 B: *const fq_nmod_struct,
1077 lenB: mp_limb_signed_t,
1078 ctx: *mut fq_nmod_ctx_struct,
1079 );
1080 pub fn fq_nmod_poly_divrem_f(
1081 f: *mut nmod_poly_struct,
1082 Q: *mut fq_nmod_poly_struct,
1083 R: *mut fq_nmod_poly_struct,
1084 A: *mut fq_nmod_poly_struct,
1085 B: *mut fq_nmod_poly_struct,
1086 ctx: *mut fq_nmod_ctx_struct,
1087 );
1088 pub fn _fq_nmod_poly_divides(
1089 Q: *mut fq_nmod_struct,
1090 A: *const fq_nmod_struct,
1091 lenA: mp_limb_signed_t,
1092 B: *const fq_nmod_struct,
1093 lenB: mp_limb_signed_t,
1094 invB: *mut nmod_poly_struct,
1095 ctx: *mut fq_nmod_ctx_struct,
1096 ) -> c_int;
1097 pub fn fq_nmod_poly_divides(
1098 Q: *mut fq_nmod_poly_struct,
1099 A: *mut fq_nmod_poly_struct,
1100 B: *mut fq_nmod_poly_struct,
1101 ctx: *mut fq_nmod_ctx_struct,
1102 ) -> c_int;
1103 pub fn _fq_nmod_poly_derivative(
1104 rop: *mut fq_nmod_struct,
1105 op: *const fq_nmod_struct,
1106 len: mp_limb_signed_t,
1107 ctx: *mut fq_nmod_ctx_struct,
1108 );
1109 pub fn fq_nmod_poly_derivative(
1110 rop: *mut fq_nmod_poly_struct,
1111 op: *mut fq_nmod_poly_struct,
1112 ctx: *mut fq_nmod_ctx_struct,
1113 );
1114 pub fn _fq_nmod_poly_evaluate_fq_nmod(
1115 rop: *mut nmod_poly_struct,
1116 op: *const fq_nmod_struct,
1117 len: mp_limb_signed_t,
1118 a: *mut nmod_poly_struct,
1119 ctx: *mut fq_nmod_ctx_struct,
1120 );
1121 pub fn fq_nmod_poly_evaluate_fq_nmod(
1122 res: *mut nmod_poly_struct,
1123 f: *mut fq_nmod_poly_struct,
1124 a: *mut nmod_poly_struct,
1125 ctx: *mut fq_nmod_ctx_struct,
1126 );
1127 pub fn _fq_nmod_poly_evaluate_fq_nmod_vec(
1128 ys: *mut fq_nmod_struct,
1129 coeffs: *const fq_nmod_struct,
1130 len: mp_limb_signed_t,
1131 xs: *const fq_nmod_struct,
1132 n: mp_limb_signed_t,
1133 ctx: *mut fq_nmod_ctx_struct,
1134 );
1135 pub fn fq_nmod_poly_evaluate_fq_nmod_vec(
1136 ys: *mut fq_nmod_struct,
1137 poly: *mut fq_nmod_poly_struct,
1138 xs: *const fq_nmod_struct,
1139 n: mp_limb_signed_t,
1140 ctx: *mut fq_nmod_ctx_struct,
1141 );
1142 pub fn _fq_nmod_poly_tree_alloc(
1143 len: mp_limb_signed_t,
1144 ctx: *mut fq_nmod_ctx_struct,
1145 ) -> *mut *mut fq_nmod_poly_struct;
1146 pub fn _fq_nmod_poly_tree_free(
1147 tree: *mut *mut fq_nmod_poly_struct,
1148 len: mp_limb_signed_t,
1149 ctx: *mut fq_nmod_ctx_struct,
1150 );
1151 pub fn _fq_nmod_poly_tree_build(
1152 tree: *mut *mut fq_nmod_poly_struct,
1153 roots: *const fq_nmod_struct,
1154 len: mp_limb_signed_t,
1155 ctx: *mut fq_nmod_ctx_struct,
1156 );
1157 pub fn _fq_nmod_poly_evaluate_fq_nmod_vec_fast_precomp(
1158 vs: *mut fq_nmod_struct,
1159 poly: *const fq_nmod_struct,
1160 plen: mp_limb_signed_t,
1161 tree: *const *mut fq_nmod_poly_struct,
1162 len: mp_limb_signed_t,
1163 ctx: *mut fq_nmod_ctx_struct,
1164 );
1165 pub fn _fq_nmod_poly_evaluate_fq_nmod_vec_fast(
1166 ys: *mut fq_nmod_struct,
1167 poly: *const fq_nmod_struct,
1168 plen: mp_limb_signed_t,
1169 xs: *const fq_nmod_struct,
1170 n: mp_limb_signed_t,
1171 ctx: *mut fq_nmod_ctx_struct,
1172 );
1173 pub fn fq_nmod_poly_evaluate_fq_nmod_vec_fast(
1174 ys: *mut fq_nmod_struct,
1175 poly: *mut fq_nmod_poly_struct,
1176 xs: *const fq_nmod_struct,
1177 n: mp_limb_signed_t,
1178 ctx: *mut fq_nmod_ctx_struct,
1179 );
1180 pub fn _fq_nmod_poly_evaluate_fq_nmod_vec_iter(
1181 ys: *mut fq_nmod_struct,
1182 coeffs: *const fq_nmod_struct,
1183 len: mp_limb_signed_t,
1184 xs: *const fq_nmod_struct,
1185 n: mp_limb_signed_t,
1186 ctx: *mut fq_nmod_ctx_struct,
1187 );
1188 pub fn fq_nmod_poly_evaluate_fq_nmod_vec_iter(
1189 ys: *mut fq_nmod_struct,
1190 poly: *mut fq_nmod_poly_struct,
1191 xs: *const fq_nmod_struct,
1192 n: mp_limb_signed_t,
1193 ctx: *mut fq_nmod_ctx_struct,
1194 );
1195 pub fn _fq_nmod_poly_compose_divconquer(
1196 rop: *mut fq_nmod_struct,
1197 op1: *const fq_nmod_struct,
1198 len1: mp_limb_signed_t,
1199 op2: *const fq_nmod_struct,
1200 len2: mp_limb_signed_t,
1201 ctx: *mut fq_nmod_ctx_struct,
1202 );
1203 pub fn fq_nmod_poly_compose_divconquer(
1204 rop: *mut fq_nmod_poly_struct,
1205 op1: *mut fq_nmod_poly_struct,
1206 op2: *mut fq_nmod_poly_struct,
1207 ctx: *mut fq_nmod_ctx_struct,
1208 );
1209 pub fn _fq_nmod_poly_compose_horner(
1210 rop: *mut fq_nmod_struct,
1211 op1: *const fq_nmod_struct,
1212 len1: mp_limb_signed_t,
1213 op2: *const fq_nmod_struct,
1214 len2: mp_limb_signed_t,
1215 ctx: *mut fq_nmod_ctx_struct,
1216 );
1217 pub fn fq_nmod_poly_compose_horner(
1218 rop: *mut fq_nmod_poly_struct,
1219 op1: *mut fq_nmod_poly_struct,
1220 op2: *mut fq_nmod_poly_struct,
1221 ctx: *mut fq_nmod_ctx_struct,
1222 );
1223 pub fn _fq_nmod_poly_compose(
1224 rop: *mut fq_nmod_struct,
1225 op1: *const fq_nmod_struct,
1226 len1: mp_limb_signed_t,
1227 op2: *const fq_nmod_struct,
1228 len2: mp_limb_signed_t,
1229 ctx: *mut fq_nmod_ctx_struct,
1230 );
1231 pub fn fq_nmod_poly_compose(
1232 rop: *mut fq_nmod_poly_struct,
1233 op1: *mut fq_nmod_poly_struct,
1234 op2: *mut fq_nmod_poly_struct,
1235 ctx: *mut fq_nmod_ctx_struct,
1236 );
1237 pub fn _fq_nmod_poly_compose_mod(
1238 res: *mut fq_nmod_struct,
1239 f: *const fq_nmod_struct,
1240 lenf: mp_limb_signed_t,
1241 g: *const fq_nmod_struct,
1242 h: *const fq_nmod_struct,
1243 lenh: mp_limb_signed_t,
1244 ctx: *mut fq_nmod_ctx_struct,
1245 );
1246 pub fn fq_nmod_poly_compose_mod(
1247 res: *mut fq_nmod_poly_struct,
1248 poly1: *mut fq_nmod_poly_struct,
1249 poly2: *mut fq_nmod_poly_struct,
1250 poly3: *mut fq_nmod_poly_struct,
1251 ctx: *mut fq_nmod_ctx_struct,
1252 );
1253 pub fn _fq_nmod_poly_compose_mod_preinv(
1254 res: *mut fq_nmod_struct,
1255 f: *const fq_nmod_struct,
1256 lenf: mp_limb_signed_t,
1257 g: *const fq_nmod_struct,
1258 h: *const fq_nmod_struct,
1259 lenh: mp_limb_signed_t,
1260 hinv: *const fq_nmod_struct,
1261 lenhinv: mp_limb_signed_t,
1262 ctx: *mut fq_nmod_ctx_struct,
1263 );
1264 pub fn fq_nmod_poly_compose_mod_preinv(
1265 res: *mut fq_nmod_poly_struct,
1266 poly1: *mut fq_nmod_poly_struct,
1267 poly2: *mut fq_nmod_poly_struct,
1268 poly3: *mut fq_nmod_poly_struct,
1269 poly3inv: *mut fq_nmod_poly_struct,
1270 ctx: *mut fq_nmod_ctx_struct,
1271 );
1272 pub fn _fq_nmod_poly_compose_mod_horner(
1273 res: *mut fq_nmod_struct,
1274 f: *const fq_nmod_struct,
1275 lenf: mp_limb_signed_t,
1276 g: *const fq_nmod_struct,
1277 h: *const fq_nmod_struct,
1278 lenh: mp_limb_signed_t,
1279 ctx: *mut fq_nmod_ctx_struct,
1280 );
1281 pub fn fq_nmod_poly_compose_mod_horner(
1282 res: *mut fq_nmod_poly_struct,
1283 poly1: *mut fq_nmod_poly_struct,
1284 poly2: *mut fq_nmod_poly_struct,
1285 poly3: *mut fq_nmod_poly_struct,
1286 ctx: *mut fq_nmod_ctx_struct,
1287 );
1288 pub fn _fq_nmod_poly_compose_mod_horner_preinv(
1289 res: *mut fq_nmod_struct,
1290 f: *const fq_nmod_struct,
1291 lenf: mp_limb_signed_t,
1292 g: *const fq_nmod_struct,
1293 h: *const fq_nmod_struct,
1294 lenh: mp_limb_signed_t,
1295 hinv: *const fq_nmod_struct,
1296 lenhinv: mp_limb_signed_t,
1297 ctx: *mut fq_nmod_ctx_struct,
1298 );
1299 pub fn fq_nmod_poly_compose_mod_horner_preinv(
1300 res: *mut fq_nmod_poly_struct,
1301 poly1: *mut fq_nmod_poly_struct,
1302 poly2: *mut fq_nmod_poly_struct,
1303 poly3: *mut fq_nmod_poly_struct,
1304 poly3inv: *mut fq_nmod_poly_struct,
1305 ctx: *mut fq_nmod_ctx_struct,
1306 );
1307 pub fn fq_nmod_poly_compose_mod_brent_kung(
1308 res: *mut fq_nmod_poly_struct,
1309 poly1: *mut fq_nmod_poly_struct,
1310 poly2: *mut fq_nmod_poly_struct,
1311 poly3: *mut fq_nmod_poly_struct,
1312 ctx: *mut fq_nmod_ctx_struct,
1313 );
1314 pub fn _fq_nmod_poly_compose_mod_brent_kung(
1315 res: *mut fq_nmod_struct,
1316 poly1: *const fq_nmod_struct,
1317 len1: mp_limb_signed_t,
1318 poly2: *const fq_nmod_struct,
1319 poly3: *const fq_nmod_struct,
1320 len3: mp_limb_signed_t,
1321 ctx: *mut fq_nmod_ctx_struct,
1322 );
1323 pub fn _fq_nmod_poly_compose_mod_brent_kung_preinv(
1324 res: *mut fq_nmod_struct,
1325 poly1: *const fq_nmod_struct,
1326 len1: mp_limb_signed_t,
1327 poly2: *const fq_nmod_struct,
1328 poly3: *const fq_nmod_struct,
1329 len3: mp_limb_signed_t,
1330 poly3inv: *const fq_nmod_struct,
1331 len3inv: mp_limb_signed_t,
1332 ctx: *mut fq_nmod_ctx_struct,
1333 );
1334 pub fn fq_nmod_poly_compose_mod_brent_kung_preinv(
1335 res: *mut fq_nmod_poly_struct,
1336 poly1: *mut fq_nmod_poly_struct,
1337 poly2: *mut fq_nmod_poly_struct,
1338 poly3: *mut fq_nmod_poly_struct,
1339 poly3inv: *mut fq_nmod_poly_struct,
1340 ctx: *mut fq_nmod_ctx_struct,
1341 );
1342 pub fn _fq_nmod_poly_reduce_matrix_mod_poly(
1343 A: *mut fq_nmod_mat_struct,
1344 B: *mut fq_nmod_mat_struct,
1345 f: *mut fq_nmod_poly_struct,
1346 ctx: *mut fq_nmod_ctx_struct,
1347 );
1348 pub fn _fq_nmod_poly_precompute_matrix(
1349 A: *mut fq_nmod_mat_struct,
1350 poly1: *const fq_nmod_struct,
1351 poly2: *const fq_nmod_struct,
1352 len2: mp_limb_signed_t,
1353 poly2inv: *const fq_nmod_struct,
1354 len2inv: mp_limb_signed_t,
1355 ctx: *mut fq_nmod_ctx_struct,
1356 );
1357 pub fn fq_nmod_poly_precompute_matrix(
1358 A: *mut fq_nmod_mat_struct,
1359 poly1: *mut fq_nmod_poly_struct,
1360 poly2: *mut fq_nmod_poly_struct,
1361 poly2inv: *mut fq_nmod_poly_struct,
1362 ctx: *mut fq_nmod_ctx_struct,
1363 );
1364 pub fn _fq_nmod_poly_compose_mod_brent_kung_precomp_preinv(
1365 res: *mut fq_nmod_struct,
1366 poly1: *const fq_nmod_struct,
1367 len1: mp_limb_signed_t,
1368 A: *mut fq_nmod_mat_struct,
1369 poly3: *const fq_nmod_struct,
1370 len3: mp_limb_signed_t,
1371 poly3inv: *const fq_nmod_struct,
1372 len3inv: mp_limb_signed_t,
1373 ctx: *mut fq_nmod_ctx_struct,
1374 );
1375 pub fn fq_nmod_poly_compose_mod_brent_kung_precomp_preinv(
1376 res: *mut fq_nmod_poly_struct,
1377 poly1: *mut fq_nmod_poly_struct,
1378 A: *mut fq_nmod_mat_struct,
1379 poly3: *mut fq_nmod_poly_struct,
1380 poly3inv: *mut fq_nmod_poly_struct,
1381 ctx: *mut fq_nmod_ctx_struct,
1382 );
1383 pub fn _fq_nmod_poly_fprint_pretty(
1384 file: *mut FILE,
1385 poly: *const fq_nmod_struct,
1386 len: mp_limb_signed_t,
1387 x: *const c_char,
1388 ctx: *mut fq_nmod_ctx_struct,
1389 ) -> c_int;
1390 pub fn fq_nmod_poly_fprint_pretty(
1391 file: *mut FILE,
1392 poly: *mut fq_nmod_poly_struct,
1393 x: *const c_char,
1394 ctx: *mut fq_nmod_ctx_struct,
1395 ) -> c_int;
1396 pub fn _fq_nmod_poly_fprint(
1397 file: *mut FILE,
1398 poly: *const fq_nmod_struct,
1399 len: mp_limb_signed_t,
1400 ctx: *mut fq_nmod_ctx_struct,
1401 ) -> c_int;
1402 pub fn fq_nmod_poly_fprint(
1403 file: *mut FILE,
1404 poly: *mut fq_nmod_poly_struct,
1405 ctx: *mut fq_nmod_ctx_struct,
1406 ) -> c_int;
1407 pub fn _fq_nmod_poly_print(
1408 poly: *const fq_nmod_struct,
1409 len: mp_limb_signed_t,
1410 ctx: *mut fq_nmod_ctx_struct,
1411 ) -> c_int;
1412 pub fn fq_nmod_poly_print(
1413 poly: *mut fq_nmod_poly_struct,
1414 ctx: *mut fq_nmod_ctx_struct,
1415 ) -> c_int;
1416 pub fn _fq_nmod_poly_print_pretty(
1417 poly: *const fq_nmod_struct,
1418 len: mp_limb_signed_t,
1419 x: *const c_char,
1420 ctx: *mut fq_nmod_ctx_struct,
1421 ) -> c_int;
1422 pub fn fq_nmod_poly_print_pretty(
1423 poly: *mut fq_nmod_poly_struct,
1424 x: *const c_char,
1425 ctx: *mut fq_nmod_ctx_struct,
1426 ) -> c_int;
1427 pub fn _fq_nmod_poly_get_str_pretty(
1428 poly: *const fq_nmod_struct,
1429 len: mp_limb_signed_t,
1430 x: *const c_char,
1431 ctx: *mut fq_nmod_ctx_struct,
1432 ) -> *mut c_char;
1433 pub fn fq_nmod_poly_get_str_pretty(
1434 poly: *mut fq_nmod_poly_struct,
1435 x: *const c_char,
1436 ctx: *mut fq_nmod_ctx_struct,
1437 ) -> *mut c_char;
1438 pub fn _fq_nmod_poly_get_str(
1439 poly: *const fq_nmod_struct,
1440 len: mp_limb_signed_t,
1441 ctx: *mut fq_nmod_ctx_struct,
1442 ) -> *mut c_char;
1443 pub fn fq_nmod_poly_get_str(
1444 poly: *mut fq_nmod_poly_struct,
1445 ctx: *mut fq_nmod_ctx_struct,
1446 ) -> *mut c_char;
1447}