1#![allow(non_camel_case_types)]
2#![allow(non_snake_case)]
3
4use crate::deps::*;
7use crate::flint::*;
8use crate::fmpq::{fmpq, fmpq_t};
9use crate::fmpq_poly::fmpq_poly_struct;
10use crate::fmpz::{fmpz, fmpz_t};
11use crate::fmpz_mat::fmpz_mat_struct;
12use crate::fmpz_mod::fmpz_mod_ctx_struct;
13use crate::fmpz_poly::fmpz_poly_struct;
14use crate::mpoly::*;
15use crate::nmod_vec::nmod_t;
16use libc::{c_char, c_int, FILE};
17
18#[repr(C)]
19#[derive(Debug, Copy, Clone)]
20pub struct fmpz_mpoly_ctx_struct {
21 pub minfo: mpoly_ctx_t,
22}
23pub type fmpz_mpoly_ctx_t = [fmpz_mpoly_ctx_struct; 1usize];
24#[repr(C)]
25#[derive(Debug, Copy, Clone)]
26pub struct fmpz_mpoly_struct {
27 pub coeffs: *mut fmpz,
28 pub exps: *mut mp_limb_t,
29 pub alloc: mp_limb_signed_t,
30 pub length: mp_limb_signed_t,
31 pub bits: mp_limb_t,
32}
33pub type fmpz_mpoly_t = [fmpz_mpoly_struct; 1usize];
34extern "C" {
35 pub fn fmpz_mpoly_term_coeff_ref(
36 A: *const fmpz_mpoly_struct,
37 i: mp_limb_signed_t,
38 ctx: *const fmpz_mpoly_ctx_struct,
39 ) -> *mut fmpz;
40}
41extern "C" {
42 pub fn fmpz_mpoly_leadcoeff(A: *const fmpz_mpoly_struct) -> *mut fmpz;
43}
44#[repr(C)]
45#[derive(Debug, Copy, Clone)]
46pub struct fmpz_mpoly_univar_struct {
47 pub coeffs: *mut fmpz_mpoly_struct,
48 pub exps: *mut fmpz,
49 pub alloc: mp_limb_signed_t,
50 pub length: mp_limb_signed_t,
51}
52pub type fmpz_mpoly_univar_t = [fmpz_mpoly_univar_struct; 1usize];
53#[repr(C)]
54#[derive(Debug, Copy, Clone)]
55pub struct fmpz_mpolyd_struct {
56 pub nvars: mp_limb_signed_t,
57 pub degb_alloc: mp_limb_signed_t,
58 pub deg_bounds: *mut mp_limb_signed_t,
59 pub length: mp_limb_signed_t,
60 pub coeff_alloc: mp_limb_signed_t,
61 pub coeffs: *mut fmpz,
62}
63pub type fmpz_mpolyd_t = [fmpz_mpolyd_struct; 1usize];
64extern "C" {
65 pub fn fmpz_mpoly_ctx_init(
66 ctx: *mut fmpz_mpoly_ctx_struct,
67 nvars: mp_limb_signed_t,
68 ord: ordering_t,
69 );
70}
71extern "C" {
72 pub fn fmpz_mpoly_ctx_init_rand(
73 mctx: *mut fmpz_mpoly_ctx_struct,
74 state: *const flint_rand_s,
75 max_nvars: mp_limb_signed_t,
76 );
77}
78extern "C" {
79 pub fn fmpz_mpoly_ctx_clear(ctx: *mut fmpz_mpoly_ctx_struct);
80}
81extern "C" {
82 pub fn fmpz_mpoly_ctx_nvars(ctx: *const fmpz_mpoly_ctx_struct) -> mp_limb_signed_t;
83}
84extern "C" {
85 pub fn fmpz_mpoly_ctx_ord(ctx: *const fmpz_mpoly_ctx_struct) -> ordering_t;
86}
87extern "C" {
88 pub fn fmpz_mpoly_init(A: *mut fmpz_mpoly_struct, ctx: *const fmpz_mpoly_ctx_struct);
89}
90extern "C" {
91 pub fn fmpz_mpoly_init2(
92 A: *mut fmpz_mpoly_struct,
93 alloc: mp_limb_signed_t,
94 ctx: *const fmpz_mpoly_ctx_struct,
95 );
96}
97extern "C" {
98 pub fn fmpz_mpoly_init3(
99 A: *mut fmpz_mpoly_struct,
100 alloc: mp_limb_signed_t,
101 bits: mp_limb_t,
102 ctx: *const fmpz_mpoly_ctx_struct,
103 );
104}
105extern "C" {
106 pub fn _fmpz_mpoly_realloc(
107 Acoeff: *mut *mut fmpz,
108 Aexp: *mut *mut mp_limb_t,
109 Aalloc: *mut mp_limb_signed_t,
110 len: mp_limb_signed_t,
111 N: mp_limb_signed_t,
112 );
113}
114extern "C" {
115 pub fn fmpz_mpoly_realloc(
116 A: *mut fmpz_mpoly_struct,
117 alloc: mp_limb_signed_t,
118 ctx: *const fmpz_mpoly_ctx_struct,
119 );
120}
121extern "C" {
122 pub fn _fmpz_mpoly_fit_length(
123 Acoeff: *mut *mut fmpz,
124 Aexp: *mut *mut mp_limb_t,
125 Aalloc: *mut mp_limb_signed_t,
126 len: mp_limb_signed_t,
127 N: mp_limb_signed_t,
128 );
129}
130extern "C" {
131 pub fn fmpz_mpoly_fit_length(
132 A: *mut fmpz_mpoly_struct,
133 len: mp_limb_signed_t,
134 ctx: *const fmpz_mpoly_ctx_struct,
135 );
136}
137extern "C" {
138 pub fn fmpz_mpoly_fit_length_reset_bits(
139 A: *mut fmpz_mpoly_struct,
140 len: mp_limb_signed_t,
141 bits: mp_limb_t,
142 ctx: *const fmpz_mpoly_ctx_struct,
143 );
144}
145extern "C" {
146 pub fn fmpz_mpoly_clear(A: *mut fmpz_mpoly_struct, ctx: *const fmpz_mpoly_ctx_struct);
147}
148extern "C" {
149 pub fn _fmpz_mpoly_set_length(
150 A: *mut fmpz_mpoly_struct,
151 newlen: mp_limb_signed_t,
152 ctx: *const fmpz_mpoly_ctx_struct,
153 );
154}
155extern "C" {
156 pub fn fmpz_mpoly_truncate(
157 A: *mut fmpz_mpoly_struct,
158 newlen: mp_limb_signed_t,
159 ctx: *const fmpz_mpoly_ctx_struct,
160 );
161}
162extern "C" {
163 pub fn fmpz_mpoly_fit_bits(
164 A: *mut fmpz_mpoly_struct,
165 bits: mp_limb_t,
166 ctx: *const fmpz_mpoly_ctx_struct,
167 );
168}
169extern "C" {
170 pub fn fmpz_mpoly_set_str_pretty(
171 A: *mut fmpz_mpoly_struct,
172 str_: *const c_char,
173 x: *mut *const c_char,
174 ctx: *const fmpz_mpoly_ctx_struct,
175 ) -> c_int;
176}
177extern "C" {
178 pub fn _fmpz_mpoly_get_str_pretty(
179 poly: *const fmpz,
180 exps: *const mp_limb_t,
181 len: mp_limb_signed_t,
182 x: *const *const c_char,
183 bits: mp_limb_signed_t,
184 mctx: *const mpoly_ctx_struct,
185 ) -> *const c_char;
186}
187extern "C" {
188 pub fn fmpz_mpoly_get_str_pretty(
189 A: *const fmpz_mpoly_struct,
190 x: *const *const c_char,
191 ctx: *const fmpz_mpoly_ctx_struct,
192 ) -> *const c_char;
193}
194extern "C" {
195 pub fn _fmpz_mpoly_fprint_pretty(
196 file: *const FILE,
197 poly: *const fmpz,
198 exps: *const mp_limb_t,
199 len: mp_limb_signed_t,
200 x_in: *const *const c_char,
201 bits: mp_limb_t,
202 mctx: *const mpoly_ctx_struct,
203 ) -> c_int;
204}
205extern "C" {
206 pub fn fmpz_mpoly_fprint_pretty(
207 file: *mut FILE,
208 A: *const fmpz_mpoly_struct,
209 x: *const *const c_char,
210 ctx: *const fmpz_mpoly_ctx_struct,
211 ) -> c_int;
212}
213extern "C" {
214 pub fn _fmpz_mpoly_print_pretty(
215 poly: *const fmpz,
216 exps: *const mp_limb_t,
217 len: mp_limb_signed_t,
218 x: *const *const c_char,
219 bits: mp_limb_signed_t,
220 mctx: *const mpoly_ctx_struct,
221 ) -> c_int;
222}
223extern "C" {
224 pub fn fmpz_mpoly_print_pretty(
225 A: *const fmpz_mpoly_struct,
226 x: *const *const c_char,
227 ctx: *const fmpz_mpoly_ctx_struct,
228 ) -> c_int;
229}
230extern "C" {
231 pub fn fmpz_mpoly_gen(
232 poly: *mut fmpz_mpoly_struct,
233 i: mp_limb_signed_t,
234 ctx: *const fmpz_mpoly_ctx_struct,
235 );
236}
237extern "C" {
238 pub fn fmpz_mpoly_is_gen(
239 poly: *const fmpz_mpoly_struct,
240 k: mp_limb_signed_t,
241 ctx: *const fmpz_mpoly_ctx_struct,
242 ) -> c_int;
243}
244extern "C" {
245 pub fn _fmpz_mpoly_set(
246 poly1: *mut fmpz,
247 exps1: *mut mp_limb_t,
248 poly2: *const fmpz,
249 exps2: *const mp_limb_t,
250 n: mp_limb_signed_t,
251 N: mp_limb_signed_t,
252 );
253}
254extern "C" {
255 pub fn fmpz_mpoly_set(
256 A: *mut fmpz_mpoly_struct,
257 B: *const fmpz_mpoly_struct,
258 ctx: *const fmpz_mpoly_ctx_struct,
259 );
260}
261extern "C" {
262 pub fn _fmpz_mpoly_equal(
263 poly1: *const fmpz,
264 exps1: *const mp_limb_t,
265 poly2: *const fmpz,
266 exps2: *const mp_limb_t,
267 n: mp_limb_signed_t,
268 N: mp_limb_signed_t,
269 ) -> c_int;
270}
271extern "C" {
272 pub fn fmpz_mpoly_equal(
273 A: *const fmpz_mpoly_struct,
274 B: *const fmpz_mpoly_struct,
275 ctx: *const fmpz_mpoly_ctx_struct,
276 ) -> c_int;
277}
278extern "C" {
279 pub fn fmpz_mpoly_swap(
280 A: *mut fmpz_mpoly_struct,
281 B: *mut fmpz_mpoly_struct,
282 ctx: *const fmpz_mpoly_ctx_struct,
283 );
284}
285extern "C" {
286 pub fn _fmpz_mpoly_fits_small(poly: *const fmpz, len: mp_limb_signed_t) -> c_int;
287}
288extern "C" {
289 pub fn fmpz_mpoly_max_bits(A: *const fmpz_mpoly_struct) -> mp_limb_signed_t;
290}
291extern "C" {
292 pub fn fmpz_mpoly_is_fmpz(
293 A: *const fmpz_mpoly_struct,
294 ctx: *const fmpz_mpoly_ctx_struct,
295 ) -> c_int;
296}
297extern "C" {
298 pub fn fmpz_mpoly_get_fmpz(
299 c: *mut fmpz,
300 A: *const fmpz_mpoly_struct,
301 ctx: *const fmpz_mpoly_ctx_struct,
302 );
303}
304extern "C" {
305 pub fn fmpz_mpoly_set_fmpz(
306 A: *mut fmpz_mpoly_struct,
307 c: *const fmpz,
308 ctx: *const fmpz_mpoly_ctx_struct,
309 );
310}
311extern "C" {
312 pub fn fmpz_mpoly_set_ui(
313 A: *mut fmpz_mpoly_struct,
314 c: mp_limb_t,
315 ctx: *const fmpz_mpoly_ctx_struct,
316 );
317}
318extern "C" {
319 pub fn fmpz_mpoly_set_si(
320 A: *mut fmpz_mpoly_struct,
321 c: mp_limb_signed_t,
322 ctx: *const fmpz_mpoly_ctx_struct,
323 );
324}
325extern "C" {
326 pub fn fmpz_mpoly_zero(A: *mut fmpz_mpoly_struct, ctx: *const fmpz_mpoly_ctx_struct);
327}
328extern "C" {
329 pub fn fmpz_mpoly_one(A: *mut fmpz_mpoly_struct, ctx: *const fmpz_mpoly_ctx_struct);
330}
331extern "C" {
332 pub fn fmpz_mpoly_equal_fmpz(
333 A: *const fmpz_mpoly_struct,
334 c: *const fmpz,
335 ctx: *const fmpz_mpoly_ctx_struct,
336 ) -> c_int;
337}
338extern "C" {
339 pub fn fmpz_mpoly_equal_ui(
340 A: *const fmpz_mpoly_struct,
341 c: mp_limb_t,
342 ctx: *const fmpz_mpoly_ctx_struct,
343 ) -> c_int;
344}
345extern "C" {
346 pub fn fmpz_mpoly_equal_si(
347 A: *const fmpz_mpoly_struct,
348 c: mp_limb_signed_t,
349 ctx: *const fmpz_mpoly_ctx_struct,
350 ) -> c_int;
351}
352extern "C" {
353 pub fn fmpz_mpoly_is_zero(
354 A: *const fmpz_mpoly_struct,
355 ctx: *const fmpz_mpoly_ctx_struct,
356 ) -> c_int;
357}
358extern "C" {
359 pub fn fmpz_mpoly_is_one(
360 A: *const fmpz_mpoly_struct,
361 ctx: *const fmpz_mpoly_ctx_struct,
362 ) -> c_int;
363}
364extern "C" {
365 pub fn fmpz_mpoly_degrees_fit_si(
366 A: *const fmpz_mpoly_struct,
367 ctx: *const fmpz_mpoly_ctx_struct,
368 ) -> c_int;
369}
370extern "C" {
371 pub fn fmpz_mpoly_degrees_fmpz(
372 degs: *mut *mut fmpz,
373 A: *const fmpz_mpoly_struct,
374 ctx: *const fmpz_mpoly_ctx_struct,
375 );
376}
377extern "C" {
378 pub fn fmpz_mpoly_degrees_si(
379 degs: *mut mp_limb_signed_t,
380 A: *const fmpz_mpoly_struct,
381 ctx: *const fmpz_mpoly_ctx_struct,
382 );
383}
384extern "C" {
385 pub fn fmpz_mpoly_degree_fmpz(
386 deg: *mut fmpz,
387 A: *const fmpz_mpoly_struct,
388 var: mp_limb_signed_t,
389 ctx: *const fmpz_mpoly_ctx_struct,
390 );
391}
392extern "C" {
393 pub fn fmpz_mpoly_degree_si(
394 A: *const fmpz_mpoly_struct,
395 var: mp_limb_signed_t,
396 ctx: *const fmpz_mpoly_ctx_struct,
397 ) -> mp_limb_signed_t;
398}
399extern "C" {
400 pub fn fmpz_mpoly_total_degree_fits_si(
401 A: *const fmpz_mpoly_struct,
402 ctx: *const fmpz_mpoly_ctx_struct,
403 ) -> c_int;
404}
405extern "C" {
406 pub fn fmpz_mpoly_total_degree_fmpz(
407 td: *mut fmpz,
408 A: *const fmpz_mpoly_struct,
409 ctx: *const fmpz_mpoly_ctx_struct,
410 );
411}
412extern "C" {
413 pub fn fmpz_mpoly_total_degree_si(
414 A: *const fmpz_mpoly_struct,
415 ctx: *const fmpz_mpoly_ctx_struct,
416 ) -> mp_limb_signed_t;
417}
418extern "C" {
419 pub fn fmpz_mpoly_used_vars(
420 used: *mut c_int,
421 A: *const fmpz_mpoly_struct,
422 ctx: *const fmpz_mpoly_ctx_struct,
423 );
424}
425extern "C" {
426 pub fn fmpz_mpoly_get_coeff_fmpz_monomial(
427 c: *mut fmpz,
428 A: *const fmpz_mpoly_struct,
429 M: *const fmpz_mpoly_struct,
430 ctx: *const fmpz_mpoly_ctx_struct,
431 );
432}
433extern "C" {
434 pub fn fmpz_mpoly_set_coeff_fmpz_monomial(
435 A: *mut fmpz_mpoly_struct,
436 c: *const fmpz,
437 M: *const fmpz_mpoly_struct,
438 ctx: *const fmpz_mpoly_ctx_struct,
439 );
440}
441extern "C" {
442 pub fn fmpz_mpoly_get_coeff_fmpz_fmpz(
443 c: *mut fmpz,
444 A: *const fmpz_mpoly_struct,
445 exp: *const *const fmpz,
446 ctx: *const fmpz_mpoly_ctx_struct,
447 );
448}
449extern "C" {
450 pub fn fmpz_mpoly_get_coeff_ui_fmpz(
451 A: *const fmpz_mpoly_struct,
452 exp: *const *const fmpz,
453 ctx: *const fmpz_mpoly_ctx_struct,
454 ) -> mp_limb_t;
455}
456extern "C" {
457 pub fn fmpz_mpoly_get_coeff_si_fmpz(
458 A: *const fmpz_mpoly_struct,
459 exp: *const *const fmpz,
460 ctx: *const fmpz_mpoly_ctx_struct,
461 ) -> mp_limb_signed_t;
462}
463extern "C" {
464 pub fn fmpz_mpoly_get_coeff_fmpz_ui(
465 c: *mut fmpz,
466 A: *const fmpz_mpoly_struct,
467 exp: *const mp_limb_t,
468 ctx: *const fmpz_mpoly_ctx_struct,
469 );
470}
471extern "C" {
472 pub fn fmpz_mpoly_get_coeff_ui_ui(
473 A: *const fmpz_mpoly_struct,
474 exp: *const mp_limb_t,
475 ctx: *const fmpz_mpoly_ctx_struct,
476 ) -> mp_limb_t;
477}
478extern "C" {
479 pub fn fmpz_mpoly_get_coeff_si_ui(
480 A: *const fmpz_mpoly_struct,
481 exp: *const mp_limb_t,
482 ctx: *const fmpz_mpoly_ctx_struct,
483 ) -> mp_limb_signed_t;
484}
485extern "C" {
486 pub fn _fmpz_mpoly_set_coeff_fmpz_fmpz(
487 A: *mut fmpz_mpoly_struct,
488 c: *const fmpz,
489 exp: *const fmpz,
490 ctx: *const fmpz_mpoly_ctx_struct,
491 );
492}
493extern "C" {
494 pub fn fmpz_mpoly_set_coeff_fmpz_fmpz(
495 A: *mut fmpz_mpoly_struct,
496 c: *const fmpz,
497 exp: *const *const fmpz,
498 ctx: *const fmpz_mpoly_ctx_struct,
499 );
500}
501extern "C" {
502 pub fn fmpz_mpoly_set_coeff_ui_fmpz(
503 A: *mut fmpz_mpoly_struct,
504 c: mp_limb_t,
505 exp: *const *const fmpz,
506 ctx: *const fmpz_mpoly_ctx_struct,
507 );
508}
509extern "C" {
510 pub fn fmpz_mpoly_set_coeff_si_fmpz(
511 A: *mut fmpz_mpoly_struct,
512 c: mp_limb_signed_t,
513 exp: *const *const fmpz,
514 ctx: *const fmpz_mpoly_ctx_struct,
515 );
516}
517extern "C" {
518 pub fn fmpz_mpoly_set_coeff_fmpz_ui(
519 A: *mut fmpz_mpoly_struct,
520 c: *const fmpz,
521 exp: *const mp_limb_t,
522 ctx: *const fmpz_mpoly_ctx_struct,
523 );
524}
525extern "C" {
526 pub fn fmpz_mpoly_set_coeff_ui_ui(
527 A: *mut fmpz_mpoly_struct,
528 c: mp_limb_t,
529 exp: *const mp_limb_t,
530 ctx: *const fmpz_mpoly_ctx_struct,
531 );
532}
533extern "C" {
534 pub fn fmpz_mpoly_set_coeff_si_ui(
535 A: *mut fmpz_mpoly_struct,
536 c: mp_limb_signed_t,
537 exp: *const mp_limb_t,
538 ctx: *const fmpz_mpoly_ctx_struct,
539 );
540}
541extern "C" {
542 pub fn fmpz_mpoly_get_coeff_vars_ui(
543 C: *mut fmpz_mpoly_struct,
544 A: *const fmpz_mpoly_struct,
545 vars: *const mp_limb_signed_t,
546 exps: *const mp_limb_t,
547 length: mp_limb_signed_t,
548 ctx: *const fmpz_mpoly_ctx_struct,
549 );
550}
551extern "C" {
552 pub fn fmpz_mpoly_is_fmpz_poly(
553 A: *mut fmpz_mpoly_struct,
554 var: mp_limb_signed_t,
555 ctx: *mut fmpz_mpoly_ctx_struct,
556 ) -> c_int;
557}
558extern "C" {
559 pub fn fmpz_mpoly_get_fmpz_poly(
560 A: *mut fmpz_poly_struct,
561 B: *const fmpz_mpoly_struct,
562 var: mp_limb_signed_t,
563 ctx: *const fmpz_mpoly_ctx_struct,
564 ) -> c_int;
565}
566extern "C" {
567 pub fn _fmpz_mpoly_set_fmpz_poly(
568 A: *mut fmpz_mpoly_struct,
569 Abits: mp_limb_t,
570 Bcoeffs: *const fmpz,
571 Blen: mp_limb_signed_t,
572 var: mp_limb_signed_t,
573 ctx: *const fmpz_mpoly_ctx_struct,
574 );
575}
576extern "C" {
577 pub fn fmpz_mpoly_set_fmpz_poly(
578 A: *mut fmpz_mpoly_struct,
579 B: *const fmpz_poly_struct,
580 v: mp_limb_signed_t,
581 ctx: *const fmpz_mpoly_ctx_struct,
582 );
583}
584extern "C" {
585 pub fn fmpz_mpoly_cmp(
586 A: *const fmpz_mpoly_struct,
587 B: *const fmpz_mpoly_struct,
588 ctx: *const fmpz_mpoly_ctx_struct,
589 ) -> c_int;
590}
591extern "C" {
592 pub fn fmpz_mpoly_is_canonical(
593 A: *const fmpz_mpoly_struct,
594 ctx: *const fmpz_mpoly_ctx_struct,
595 ) -> c_int;
596}
597extern "C" {
598 pub fn fmpz_mpoly_length(
599 A: *const fmpz_mpoly_struct,
600 ctx: *const fmpz_mpoly_ctx_struct,
601 ) -> mp_limb_signed_t;
602}
603extern "C" {
604 pub fn fmpz_mpoly_resize(
605 A: *mut fmpz_mpoly_struct,
606 new_length: mp_limb_signed_t,
607 ctx: *const fmpz_mpoly_ctx_struct,
608 );
609}
610extern "C" {
611 pub fn fmpz_mpoly_get_term_coeff_fmpz(
612 c: *mut fmpz,
613 A: *const fmpz_mpoly_struct,
614 i: mp_limb_signed_t,
615 ctx: *const fmpz_mpoly_ctx_struct,
616 );
617}
618extern "C" {
619 pub fn fmpz_mpoly_get_term_coeff_ui(
620 A: *const fmpz_mpoly_struct,
621 i: mp_limb_signed_t,
622 ctx: *const fmpz_mpoly_ctx_struct,
623 ) -> mp_limb_t;
624}
625extern "C" {
626 pub fn fmpz_mpoly_get_term_coeff_si(
627 A: *const fmpz_mpoly_struct,
628 i: mp_limb_signed_t,
629 ctx: *const fmpz_mpoly_ctx_struct,
630 ) -> mp_limb_signed_t;
631}
632extern "C" {
633 pub fn fmpz_mpoly_set_term_coeff_fmpz(
634 A: *mut fmpz_mpoly_struct,
635 i: mp_limb_signed_t,
636 c: *const fmpz,
637 ctx: *const fmpz_mpoly_ctx_struct,
638 );
639}
640extern "C" {
641 pub fn fmpz_mpoly_set_term_coeff_ui(
642 A: *mut fmpz_mpoly_struct,
643 i: mp_limb_signed_t,
644 c: mp_limb_t,
645 ctx: *const fmpz_mpoly_ctx_struct,
646 );
647}
648extern "C" {
649 pub fn fmpz_mpoly_set_term_coeff_si(
650 A: *mut fmpz_mpoly_struct,
651 i: mp_limb_signed_t,
652 c: mp_limb_signed_t,
653 ctx: *const fmpz_mpoly_ctx_struct,
654 );
655}
656extern "C" {
657 pub fn fmpz_mpoly_term_exp_fits_ui(
658 A: *const fmpz_mpoly_struct,
659 i: mp_limb_signed_t,
660 ctx: *const fmpz_mpoly_ctx_struct,
661 ) -> c_int;
662}
663extern "C" {
664 pub fn fmpz_mpoly_term_exp_fits_si(
665 A: *const fmpz_mpoly_struct,
666 i: mp_limb_signed_t,
667 ctx: *const fmpz_mpoly_ctx_struct,
668 ) -> c_int;
669}
670extern "C" {
671 pub fn fmpz_mpoly_get_term_exp_fmpz(
672 exp: *mut *mut fmpz,
673 A: *const fmpz_mpoly_struct,
674 i: mp_limb_signed_t,
675 ctx: *const fmpz_mpoly_ctx_struct,
676 );
677}
678extern "C" {
679 pub fn fmpz_mpoly_get_term_exp_ui(
680 exp: *mut mp_limb_t,
681 A: *const fmpz_mpoly_struct,
682 i: mp_limb_signed_t,
683 ctx: *const fmpz_mpoly_ctx_struct,
684 );
685}
686extern "C" {
687 pub fn fmpz_mpoly_get_term_exp_si(
688 exp: *mut mp_limb_signed_t,
689 A: *const fmpz_mpoly_struct,
690 i: mp_limb_signed_t,
691 ctx: *const fmpz_mpoly_ctx_struct,
692 );
693}
694extern "C" {
695 pub fn fmpz_mpoly_get_term_var_exp_ui(
696 A: *mut fmpz_mpoly_struct,
697 i: mp_limb_signed_t,
698 var: mp_limb_signed_t,
699 ctx: *const fmpz_mpoly_ctx_struct,
700 ) -> mp_limb_t;
701}
702extern "C" {
703 pub fn fmpz_mpoly_get_term_var_exp_si(
704 A: *mut fmpz_mpoly_struct,
705 i: mp_limb_signed_t,
706 var: mp_limb_signed_t,
707 ctx: *const fmpz_mpoly_ctx_struct,
708 ) -> mp_limb_signed_t;
709}
710extern "C" {
711 pub fn fmpz_mpoly_set_term_exp_fmpz(
712 A: *mut fmpz_mpoly_struct,
713 i: mp_limb_signed_t,
714 exp: *const *mut fmpz,
715 ctx: *const fmpz_mpoly_ctx_struct,
716 );
717}
718extern "C" {
719 pub fn fmpz_mpoly_set_term_exp_ui(
720 A: *mut fmpz_mpoly_struct,
721 i: mp_limb_signed_t,
722 exp: *const mp_limb_t,
723 ctx: *const fmpz_mpoly_ctx_struct,
724 );
725}
726extern "C" {
727 pub fn fmpz_mpoly_get_term(
728 M: *mut fmpz_mpoly_struct,
729 A: *const fmpz_mpoly_struct,
730 i: mp_limb_signed_t,
731 ctx: *const fmpz_mpoly_ctx_struct,
732 );
733}
734extern "C" {
735 pub fn fmpz_mpoly_get_term_monomial(
736 M: *mut fmpz_mpoly_struct,
737 A: *const fmpz_mpoly_struct,
738 i: mp_limb_signed_t,
739 ctx: *const fmpz_mpoly_ctx_struct,
740 );
741}
742extern "C" {
743 pub fn fmpz_mpoly_push_term_fmpz_fmpz(
744 A: *mut fmpz_mpoly_struct,
745 c: *const fmpz,
746 exp: *const *const fmpz,
747 ctx: *const fmpz_mpoly_ctx_struct,
748 );
749}
750extern "C" {
751 pub fn fmpz_mpoly_push_term_ui_fmpz(
752 A: *mut fmpz_mpoly_struct,
753 c: mp_limb_t,
754 exp: *const *const fmpz,
755 ctx: *const fmpz_mpoly_ctx_struct,
756 );
757}
758extern "C" {
759 pub fn fmpz_mpoly_push_term_si_fmpz(
760 A: *mut fmpz_mpoly_struct,
761 c: mp_limb_signed_t,
762 exp: *const *const fmpz,
763 ctx: *const fmpz_mpoly_ctx_struct,
764 );
765}
766extern "C" {
767 pub fn fmpz_mpoly_push_term_fmpz_ui(
768 A: *mut fmpz_mpoly_struct,
769 c: *const fmpz,
770 exp: *const mp_limb_t,
771 ctx: *const fmpz_mpoly_ctx_struct,
772 );
773}
774extern "C" {
775 pub fn fmpz_mpoly_push_term_ui_ui(
776 A: *mut fmpz_mpoly_struct,
777 c: mp_limb_t,
778 exp: *const mp_limb_t,
779 ctx: *const fmpz_mpoly_ctx_struct,
780 );
781}
782extern "C" {
783 pub fn fmpz_mpoly_push_term_si_ui(
784 A: *mut fmpz_mpoly_struct,
785 c: mp_limb_signed_t,
786 exp: *const mp_limb_t,
787 ctx: *const fmpz_mpoly_ctx_struct,
788 );
789}
790extern "C" {
791 pub fn fmpz_mpoly_sort_terms(A: *mut fmpz_mpoly_struct, ctx: *const fmpz_mpoly_ctx_struct);
792}
793extern "C" {
794 pub fn fmpz_mpoly_combine_like_terms(
795 A: *mut fmpz_mpoly_struct,
796 ctx: *const fmpz_mpoly_ctx_struct,
797 );
798}
799extern "C" {
800 pub fn fmpz_mpoly_reverse(
801 A: *mut fmpz_mpoly_struct,
802 B: *const fmpz_mpoly_struct,
803 ctx: *const fmpz_mpoly_ctx_struct,
804 );
805}
806extern "C" {
807 pub fn fmpz_mpoly_assert_canonical(
808 A: *mut fmpz_mpoly_struct,
809 ctx: *const fmpz_mpoly_ctx_struct,
810 );
811}
812extern "C" {
813 pub fn _fmpz_mpoly_radix_sort1(
814 A: *mut fmpz_mpoly_struct,
815 left: mp_limb_signed_t,
816 right: mp_limb_signed_t,
817 pos: mp_limb_t,
818 cmpmask: mp_limb_t,
819 totalmask: mp_limb_t,
820 );
821}
822extern "C" {
823 pub fn _fmpz_mpoly_radix_sort(
824 A: *mut fmpz_mpoly_struct,
825 left: mp_limb_signed_t,
826 right: mp_limb_signed_t,
827 pos: mp_limb_t,
828 N: mp_limb_signed_t,
829 cmpmask: *const mp_limb_t,
830 );
831}
832extern "C" {
833 pub fn _fmpz_mpoly_push_exp_ffmpz(
834 A: *mut fmpz_mpoly_struct,
835 exp: *const fmpz,
836 ctx: *const fmpz_mpoly_ctx_struct,
837 );
838}
839extern "C" {
840 pub fn _fmpz_mpoly_push_exp_pfmpz(
841 A: *mut fmpz_mpoly_struct,
842 exp: *const *mut fmpz,
843 ctx: *const fmpz_mpoly_ctx_struct,
844 );
845}
846extern "C" {
847 pub fn _fmpz_mpoly_push_exp_ui(
848 A: *mut fmpz_mpoly_struct,
849 exp: *const mp_limb_t,
850 ctx: *const fmpz_mpoly_ctx_struct,
851 );
852}
853extern "C" {
854 pub fn fmpz_mpoly_randtest_bound(
855 A: *mut fmpz_mpoly_struct,
856 state: *const flint_rand_s,
857 length: mp_limb_signed_t,
858 coeff_bits: mp_limb_t,
859 exp_bound: mp_limb_t,
860 ctx: *const fmpz_mpoly_ctx_struct,
861 );
862}
863extern "C" {
864 pub fn fmpz_mpoly_randtest_bounds(
865 A: *mut fmpz_mpoly_struct,
866 state: *const flint_rand_s,
867 length: mp_limb_signed_t,
868 coeff_bits: mp_limb_t,
869 exp_bounds: *const mp_limb_t,
870 ctx: *const fmpz_mpoly_ctx_struct,
871 );
872}
873extern "C" {
874 pub fn fmpz_mpoly_randtest_bits(
875 A: *mut fmpz_mpoly_struct,
876 state: *const flint_rand_s,
877 length: mp_limb_signed_t,
878 coeff_bits: mp_limb_t,
879 exp_bits: mp_limb_t,
880 ctx: *const fmpz_mpoly_ctx_struct,
881 );
882}
883extern "C" {
884 pub fn fmpz_mpoly_add_fmpz(
885 A: *mut fmpz_mpoly_struct,
886 B: *const fmpz_mpoly_struct,
887 c: *const fmpz,
888 ctx: *const fmpz_mpoly_ctx_struct,
889 );
890}
891extern "C" {
892 pub fn fmpz_mpoly_add_ui(
893 A: *mut fmpz_mpoly_struct,
894 B: *const fmpz_mpoly_struct,
895 c: mp_limb_t,
896 ctx: *const fmpz_mpoly_ctx_struct,
897 );
898}
899extern "C" {
900 pub fn fmpz_mpoly_add_si(
901 A: *mut fmpz_mpoly_struct,
902 B: *const fmpz_mpoly_struct,
903 c: mp_limb_signed_t,
904 ctx: *const fmpz_mpoly_ctx_struct,
905 );
906}
907extern "C" {
908 pub fn fmpz_mpoly_sub_fmpz(
909 A: *mut fmpz_mpoly_struct,
910 B: *const fmpz_mpoly_struct,
911 c: *const fmpz,
912 ctx: *const fmpz_mpoly_ctx_struct,
913 );
914}
915extern "C" {
916 pub fn fmpz_mpoly_sub_ui(
917 A: *mut fmpz_mpoly_struct,
918 B: *const fmpz_mpoly_struct,
919 c: mp_limb_t,
920 ctx: *const fmpz_mpoly_ctx_struct,
921 );
922}
923extern "C" {
924 pub fn fmpz_mpoly_sub_si(
925 A: *mut fmpz_mpoly_struct,
926 B: *const fmpz_mpoly_struct,
927 c: mp_limb_signed_t,
928 ctx: *const fmpz_mpoly_ctx_struct,
929 );
930}
931extern "C" {
932 pub fn fmpz_mpoly_add(
933 A: *mut fmpz_mpoly_struct,
934 B: *const fmpz_mpoly_struct,
935 C: *const fmpz_mpoly_struct,
936 ctx: *const fmpz_mpoly_ctx_struct,
937 );
938}
939extern "C" {
940 pub fn _fmpz_mpoly_add(
941 poly1: *mut fmpz,
942 exps1: *mut mp_limb_t,
943 poly2: *const fmpz,
944 exps2: *const mp_limb_t,
945 len2: mp_limb_signed_t,
946 poly3: *const fmpz,
947 exps3: *const mp_limb_t,
948 len3: mp_limb_signed_t,
949 N: mp_limb_signed_t,
950 cmpmask: *const mp_limb_t,
951 ) -> mp_limb_signed_t;
952}
953extern "C" {
954 pub fn fmpz_mpoly_sub(
955 A: *mut fmpz_mpoly_struct,
956 B: *const fmpz_mpoly_struct,
957 C: *const fmpz_mpoly_struct,
958 ctx: *const fmpz_mpoly_ctx_struct,
959 );
960}
961extern "C" {
962 pub fn _fmpz_mpoly_sub(
963 poly1: *mut fmpz,
964 exps1: *mut mp_limb_t,
965 poly2: *const fmpz,
966 exps2: *const mp_limb_t,
967 len2: mp_limb_signed_t,
968 poly3: *const fmpz,
969 exps3: *const mp_limb_t,
970 len3: mp_limb_signed_t,
971 N: mp_limb_signed_t,
972 cmpmask: *const mp_limb_t,
973 ) -> mp_limb_signed_t;
974}
975extern "C" {
976 pub fn fmpz_mpoly_neg(
977 A: *mut fmpz_mpoly_struct,
978 B: *const fmpz_mpoly_struct,
979 ctx: *const fmpz_mpoly_ctx_struct,
980 );
981}
982extern "C" {
983 pub fn fmpz_mpoly_scalar_mul_fmpz(
984 A: *mut fmpz_mpoly_struct,
985 B: *const fmpz_mpoly_struct,
986 c: *const fmpz,
987 ctx: *const fmpz_mpoly_ctx_struct,
988 );
989}
990extern "C" {
991 pub fn fmpz_mpoly_scalar_mul_si(
992 A: *mut fmpz_mpoly_struct,
993 B: *const fmpz_mpoly_struct,
994 c: mp_limb_signed_t,
995 ctx: *const fmpz_mpoly_ctx_struct,
996 );
997}
998extern "C" {
999 pub fn fmpz_mpoly_scalar_mul_ui(
1000 A: *mut fmpz_mpoly_struct,
1001 B: *const fmpz_mpoly_struct,
1002 c: mp_limb_t,
1003 ctx: *const fmpz_mpoly_ctx_struct,
1004 );
1005}
1006extern "C" {
1007 pub fn fmpz_mpoly_scalar_fmma(
1008 A: *mut fmpz_mpoly_struct,
1009 B: *const fmpz_mpoly_struct,
1010 c: *const fmpz,
1011 D: *const fmpz_mpoly_struct,
1012 e: *const fmpz,
1013 ctx: *const fmpz_mpoly_ctx_struct,
1014 );
1015}
1016extern "C" {
1017 pub fn fmpz_mpoly_scalar_divexact_fmpz(
1018 A: *mut fmpz_mpoly_struct,
1019 B: *const fmpz_mpoly_struct,
1020 c: *const fmpz,
1021 ctx: *const fmpz_mpoly_ctx_struct,
1022 );
1023}
1024extern "C" {
1025 pub fn fmpz_mpoly_scalar_divexact_si(
1026 A: *mut fmpz_mpoly_struct,
1027 B: *const fmpz_mpoly_struct,
1028 c: mp_limb_signed_t,
1029 ctx: *const fmpz_mpoly_ctx_struct,
1030 );
1031}
1032extern "C" {
1033 pub fn fmpz_mpoly_scalar_divexact_ui(
1034 A: *mut fmpz_mpoly_struct,
1035 B: *const fmpz_mpoly_struct,
1036 c: mp_limb_t,
1037 ctx: *const fmpz_mpoly_ctx_struct,
1038 );
1039}
1040extern "C" {
1041 pub fn fmpz_mpoly_scalar_divides_fmpz(
1042 A: *const fmpz_mpoly_struct,
1043 B: *const fmpz_mpoly_struct,
1044 c: *const fmpz,
1045 ctx: *const fmpz_mpoly_ctx_struct,
1046 ) -> c_int;
1047}
1048extern "C" {
1049 pub fn fmpz_mpoly_scalar_divides_si(
1050 A: *const fmpz_mpoly_struct,
1051 B: *const fmpz_mpoly_struct,
1052 c: mp_limb_signed_t,
1053 ctx: *const fmpz_mpoly_ctx_struct,
1054 ) -> c_int;
1055}
1056extern "C" {
1057 pub fn fmpz_mpoly_scalar_divides_ui(
1058 A: *const fmpz_mpoly_struct,
1059 B: *const fmpz_mpoly_struct,
1060 c: mp_limb_t,
1061 ctx: *const fmpz_mpoly_ctx_struct,
1062 ) -> c_int;
1063}
1064extern "C" {
1065 pub fn fmpz_mpoly_derivative(
1066 A: *mut fmpz_mpoly_struct,
1067 B: *const fmpz_mpoly_struct,
1068 var: mp_limb_signed_t,
1069 ctx: *const fmpz_mpoly_ctx_struct,
1070 );
1071}
1072extern "C" {
1073 pub fn fmpz_mpoly_integral(
1074 A: *mut fmpz_mpoly_struct,
1075 scale: *mut fmpz,
1076 B: *const fmpz_mpoly_struct,
1077 var: mp_limb_signed_t,
1078 ctx: *const fmpz_mpoly_ctx_struct,
1079 );
1080}
1081extern "C" {
1082 pub fn _fmpz_pow_ui_is_not_feasible(bbits: mp_limb_t, e: mp_limb_t) -> c_int;
1083}
1084extern "C" {
1085 pub fn _fmpz_pow_fmpz_is_not_feasible(bbits: mp_limb_t, e: *const fmpz) -> c_int;
1086}
1087extern "C" {
1088 pub fn fmpz_mpoly_evaluate_all_fmpz(
1089 ev: *mut fmpz,
1090 A: *const fmpz_mpoly_struct,
1091 vals: *const *const fmpz,
1092 ctx: *const fmpz_mpoly_ctx_struct,
1093 ) -> c_int;
1094}
1095extern "C" {
1096 pub fn fmpz_mpoly_evaluate_all_nmod(
1097 A: *mut fmpz_mpoly_struct,
1098 alphas: *const mp_limb_t,
1099 ctx: *const fmpz_mpoly_ctx_struct,
1100 fpctx: nmod_t,
1101 ) -> mp_limb_t;
1102}
1103extern "C" {
1104 pub fn fmpz_mpoly_evaluate_all_fmpz_mod(
1105 ev: *mut fmpz,
1106 A: *const fmpz_mpoly_struct,
1107 alphas: *const fmpz,
1108 ctx: *const fmpz_mpoly_ctx_struct,
1109 fpctx: *const fmpz_mod_ctx_struct,
1110 );
1111}
1112extern "C" {
1113 pub fn fmpz_mpoly_evaluate_one_fmpz(
1114 A: *mut fmpz_mpoly_struct,
1115 B: *const fmpz_mpoly_struct,
1116 var: mp_limb_signed_t,
1117 val: *const fmpz,
1118 ctx: *const fmpz_mpoly_ctx_struct,
1119 ) -> c_int;
1120}
1121extern "C" {
1122 pub fn fmpz_mpoly_compose_fmpz_poly(
1123 A: *mut fmpz_poly_struct,
1124 B: *const fmpz_mpoly_struct,
1125 C: *const *const fmpz_poly_struct,
1126 ctxB: *const fmpz_mpoly_ctx_struct,
1127 ) -> c_int;
1128}
1129extern "C" {
1130 pub fn _fmpz_mpoly_compose_mat(
1131 A: *mut fmpz_mpoly_struct,
1132 B: *const fmpz_mpoly_struct,
1133 M: *const fmpz_mat_struct,
1134 ctxB: *const fmpz_mpoly_ctx_struct,
1135 ctxAC: *const fmpz_mpoly_ctx_struct,
1136 );
1137}
1138extern "C" {
1139 pub fn fmpz_mpoly_compose_fmpz_mpoly_geobucket(
1140 A: *mut fmpz_mpoly_struct,
1141 B: *const fmpz_mpoly_struct,
1142 C: *const *const fmpz_mpoly_struct,
1143 ctxB: *const fmpz_mpoly_ctx_struct,
1144 ctxAC: *const fmpz_mpoly_ctx_struct,
1145 ) -> c_int;
1146}
1147extern "C" {
1148 pub fn fmpz_mpoly_compose_fmpz_mpoly_horner(
1149 A: *mut fmpz_mpoly_struct,
1150 B: *const fmpz_mpoly_struct,
1151 C: *const *const fmpz_mpoly_struct,
1152 ctxB: *const fmpz_mpoly_ctx_struct,
1153 ctxAC: *const fmpz_mpoly_ctx_struct,
1154 ) -> c_int;
1155}
1156extern "C" {
1157 pub fn fmpz_mpoly_compose_fmpz_mpoly(
1158 A: *mut fmpz_mpoly_struct,
1159 B: *const fmpz_mpoly_struct,
1160 C: *const *const fmpz_mpoly_struct,
1161 ctxB: *const fmpz_mpoly_ctx_struct,
1162 ctxAC: *const fmpz_mpoly_ctx_struct,
1163 ) -> c_int;
1164}
1165extern "C" {
1166 pub fn fmpz_mpoly_compose_fmpz_mpoly_gen(
1167 A: *mut fmpz_mpoly_struct,
1168 B: *const fmpz_mpoly_struct,
1169 c: *const mp_limb_signed_t,
1170 ctxB: *const fmpz_mpoly_ctx_struct,
1171 ctxAC: *const fmpz_mpoly_ctx_struct,
1172 );
1173}
1174extern "C" {
1175 pub fn fmpz_mpoly_mul(
1176 A: *mut fmpz_mpoly_struct,
1177 B: *const fmpz_mpoly_struct,
1178 C: *const fmpz_mpoly_struct,
1179 ctx: *const fmpz_mpoly_ctx_struct,
1180 );
1181}
1182extern "C" {
1183 pub fn fmpz_mpoly_mul_johnson(
1184 A: *mut fmpz_mpoly_struct,
1185 B: *const fmpz_mpoly_struct,
1186 C: *const fmpz_mpoly_struct,
1187 ctx: *const fmpz_mpoly_ctx_struct,
1188 );
1189}
1190extern "C" {
1191 pub fn fmpz_mpoly_mul_heap_threaded(
1192 A: *mut fmpz_mpoly_struct,
1193 B: *const fmpz_mpoly_struct,
1194 C: *const fmpz_mpoly_struct,
1195 ctx: *const fmpz_mpoly_ctx_struct,
1196 );
1197}
1198extern "C" {
1199 pub fn fmpz_mpoly_mul_array(
1200 A: *mut fmpz_mpoly_struct,
1201 B: *const fmpz_mpoly_struct,
1202 C: *const fmpz_mpoly_struct,
1203 ctx: *const fmpz_mpoly_ctx_struct,
1204 ) -> c_int;
1205}
1206extern "C" {
1207 pub fn fmpz_mpoly_mul_array_threaded(
1208 A: *mut fmpz_mpoly_struct,
1209 B: *const fmpz_mpoly_struct,
1210 C: *const fmpz_mpoly_struct,
1211 ctx: *const fmpz_mpoly_ctx_struct,
1212 ) -> c_int;
1213}
1214extern "C" {
1215 pub fn fmpz_mpoly_mul_dense(
1216 A: *mut fmpz_mpoly_struct,
1217 B: *const fmpz_mpoly_struct,
1218 C: *const fmpz_mpoly_struct,
1219 ctx: *const fmpz_mpoly_ctx_struct,
1220 ) -> c_int;
1221}
1222extern "C" {
1223 pub fn _fmpz_mpoly_mul_johnson(
1224 poly1: *mut *mut fmpz,
1225 exp1: *mut *mut mp_limb_t,
1226 alloc: *mut mp_limb_signed_t,
1227 poly2: *const fmpz,
1228 exp2: *const mp_limb_t,
1229 len2: mp_limb_signed_t,
1230 poly3: *const fmpz,
1231 exp3: *const mp_limb_t,
1232 len3: mp_limb_signed_t,
1233 bits: mp_limb_t,
1234 N: mp_limb_signed_t,
1235 cmpmask: *const mp_limb_t,
1236 ) -> mp_limb_signed_t;
1237}
1238extern "C" {
1239 pub fn _fmpz_mpoly_mul_johnson_maxfields(
1240 A: *mut fmpz_mpoly_struct,
1241 B: *const fmpz_mpoly_struct,
1242 maxBfields: *const fmpz,
1243 C: *const fmpz_mpoly_struct,
1244 maxCfields: *const fmpz,
1245 ctx: *const fmpz_mpoly_ctx_struct,
1246 );
1247}
1248extern "C" {
1249 pub fn _fmpz_mpoly_mul_heap_threaded_pool_maxfields(
1250 A: *mut fmpz_mpoly_struct,
1251 B: *const fmpz_mpoly_struct,
1252 maxBfields: *const fmpz,
1253 C: *const fmpz_mpoly_struct,
1254 maxCfields: *const fmpz,
1255 ctx: *const fmpz_mpoly_ctx_struct,
1256 handles: *const thread_pool_handle,
1257 num_handles: mp_limb_signed_t,
1258 );
1259}
1260extern "C" {
1261 pub fn _fmpz_mpoly_mul_array_DEG(
1262 A: *mut fmpz_mpoly_struct,
1263 B: *const fmpz_mpoly_struct,
1264 maxBfields: *const fmpz,
1265 C: *const fmpz_mpoly_struct,
1266 maxCfields: *const fmpz,
1267 ctx: *const fmpz_mpoly_ctx_struct,
1268 ) -> c_int;
1269}
1270extern "C" {
1271 pub fn _fmpz_mpoly_mul_array_LEX(
1272 A: *mut fmpz_mpoly_struct,
1273 B: *const fmpz_mpoly_struct,
1274 maxBfields: *const fmpz,
1275 C: *const fmpz_mpoly_struct,
1276 maxCfields: *const fmpz,
1277 ctx: *const fmpz_mpoly_ctx_struct,
1278 ) -> c_int;
1279}
1280extern "C" {
1281 pub fn _fmpz_mpoly_mul_array_threaded_pool_DEG(
1282 A: *mut fmpz_mpoly_struct,
1283 B: *const fmpz_mpoly_struct,
1284 maxBfields: *const fmpz,
1285 C: *const fmpz_mpoly_struct,
1286 maxCfields: *const fmpz,
1287 ctx: *const fmpz_mpoly_ctx_struct,
1288 handles: *const thread_pool_handle,
1289 num_handles: mp_limb_signed_t,
1290 ) -> c_int;
1291}
1292extern "C" {
1293 pub fn _fmpz_mpoly_mul_array_threaded_pool_LEX(
1294 A: *mut fmpz_mpoly_struct,
1295 B: *const fmpz_mpoly_struct,
1296 maxBfields: *const fmpz,
1297 C: *const fmpz_mpoly_struct,
1298 maxCfields: *const fmpz,
1299 ctx: *const fmpz_mpoly_ctx_struct,
1300 handles: *const thread_pool_handle,
1301 num_handles: mp_limb_signed_t,
1302 ) -> c_int;
1303}
1304extern "C" {
1305 pub fn _fmpz_mpoly_mul_dense(
1306 P: *mut fmpz_mpoly_struct,
1307 A: *const fmpz_mpoly_struct,
1308 maxAfields: *const fmpz,
1309 B: *const fmpz_mpoly_struct,
1310 maxBfields: *const fmpz,
1311 ctx: *const fmpz_mpoly_ctx_struct,
1312 ) -> c_int;
1313}
1314extern "C" {
1315 pub fn fmpz_mpoly_pow_fmpz(
1316 A: *mut fmpz_mpoly_struct,
1317 B: *const fmpz_mpoly_struct,
1318 k: *const fmpz,
1319 ctx: *const fmpz_mpoly_ctx_struct,
1320 ) -> c_int;
1321}
1322extern "C" {
1323 pub fn fmpz_mpoly_pow_ui(
1324 A: *mut fmpz_mpoly_struct,
1325 B: *const fmpz_mpoly_struct,
1326 k: mp_limb_t,
1327 ctx: *const fmpz_mpoly_ctx_struct,
1328 ) -> c_int;
1329}
1330extern "C" {
1331 pub fn fmpz_mpoly_divides(
1332 Q: *mut fmpz_mpoly_struct,
1333 A: *const fmpz_mpoly_struct,
1334 B: *const fmpz_mpoly_struct,
1335 ctx: *const fmpz_mpoly_ctx_struct,
1336 ) -> c_int;
1337}
1338extern "C" {
1339 pub fn fmpz_mpoly_divides_monagan_pearce(
1340 Q: *mut fmpz_mpoly_struct,
1341 A: *const fmpz_mpoly_struct,
1342 B: *const fmpz_mpoly_struct,
1343 ctx: *const fmpz_mpoly_ctx_struct,
1344 ) -> c_int;
1345}
1346extern "C" {
1347 pub fn fmpz_mpoly_divides_heap_threaded(
1348 Q: *mut fmpz_mpoly_struct,
1349 A: *const fmpz_mpoly_struct,
1350 B: *const fmpz_mpoly_struct,
1351 ctx: *const fmpz_mpoly_ctx_struct,
1352 ) -> c_int;
1353}
1354extern "C" {
1355 pub fn _fmpz_mpoly_divides_heap_threaded_pool(
1356 Q: *mut fmpz_mpoly_struct,
1357 A: *const fmpz_mpoly_struct,
1358 B: *const fmpz_mpoly_struct,
1359 ctx: *const fmpz_mpoly_ctx_struct,
1360 handles: *const thread_pool_handle,
1361 num_handles: mp_limb_signed_t,
1362 ) -> c_int;
1363}
1364extern "C" {
1365 pub fn _fmpz_mpoly_divides_array(
1366 poly1: *mut *mut fmpz,
1367 exp1: *mut *mut mp_limb_t,
1368 alloc: *mut mp_limb_signed_t,
1369 poly2: *const fmpz,
1370 exp2: *const mp_limb_t,
1371 len2: mp_limb_signed_t,
1372 poly3: *const fmpz,
1373 exp3: *const mp_limb_t,
1374 len3: mp_limb_signed_t,
1375 mults: *const mp_limb_signed_t,
1376 num: mp_limb_signed_t,
1377 bits: mp_limb_signed_t,
1378 ) -> mp_limb_signed_t;
1379}
1380extern "C" {
1381 pub fn fmpz_mpoly_divides_array(
1382 poly1: *mut fmpz_mpoly_struct,
1383 poly2: *const fmpz_mpoly_struct,
1384 poly3: *const fmpz_mpoly_struct,
1385 ctx: *const fmpz_mpoly_ctx_struct,
1386 ) -> c_int;
1387}
1388extern "C" {
1389 pub fn mpoly_divides_select_exps(
1390 S: *const fmpz_mpoly_struct,
1391 zctx: *const fmpz_mpoly_ctx_struct,
1392 nworkers: mp_limb_signed_t,
1393 Aexp: *const mp_limb_t,
1394 Alen: mp_limb_signed_t,
1395 Bexp: *const mp_limb_t,
1396 Blen: mp_limb_signed_t,
1397 bits: mp_limb_t,
1398 ) -> c_int;
1399}
1400extern "C" {
1401 pub fn _fmpz_mpoly_divides_monagan_pearce(
1402 poly1: *mut *mut fmpz,
1403 exp1: *mut *mut mp_limb_t,
1404 alloc: *mut mp_limb_signed_t,
1405 poly2: *const fmpz,
1406 exp2: *const mp_limb_t,
1407 len2: mp_limb_signed_t,
1408 poly3: *const fmpz,
1409 exp3: *const mp_limb_t,
1410 len3: mp_limb_signed_t,
1411 bits: mp_limb_t,
1412 N: mp_limb_signed_t,
1413 cmpmask: *const mp_limb_t,
1414 ) -> mp_limb_signed_t;
1415}
1416extern "C" {
1417 pub fn fmpz_mpoly_divrem(
1418 Q: *mut fmpz_mpoly_struct,
1419 R: *mut fmpz_mpoly_struct,
1420 A: *const fmpz_mpoly_struct,
1421 B: *const fmpz_mpoly_struct,
1422 ctx: *const fmpz_mpoly_ctx_struct,
1423 );
1424}
1425extern "C" {
1426 pub fn fmpz_mpoly_quasidivrem(
1427 scale: *mut fmpz,
1428 Q: *mut fmpz_mpoly_struct,
1429 R: *mut fmpz_mpoly_struct,
1430 A: *const fmpz_mpoly_struct,
1431 B: *const fmpz_mpoly_struct,
1432 ctx: *const fmpz_mpoly_ctx_struct,
1433 );
1434}
1435extern "C" {
1436 pub fn fmpz_mpoly_div(
1437 Q: *mut fmpz_mpoly_struct,
1438 A: *const fmpz_mpoly_struct,
1439 B: *const fmpz_mpoly_struct,
1440 ctx: *const fmpz_mpoly_ctx_struct,
1441 );
1442}
1443extern "C" {
1444 pub fn fmpz_mpoly_quasidiv(
1445 scale: *mut fmpz,
1446 Q: *mut fmpz_mpoly_struct,
1447 A: *const fmpz_mpoly_struct,
1448 B: *const fmpz_mpoly_struct,
1449 ctx: *const fmpz_mpoly_ctx_struct,
1450 );
1451}
1452extern "C" {
1453 pub fn fmpz_mpoly_divrem_ideal(
1454 Q: *mut *mut fmpz_mpoly_struct,
1455 R: *mut fmpz_mpoly_struct,
1456 A: *const fmpz_mpoly_struct,
1457 B: *const *const fmpz_mpoly_struct,
1458 len: mp_limb_signed_t,
1459 ctx: *const fmpz_mpoly_ctx_struct,
1460 );
1461}
1462extern "C" {
1463 pub fn fmpz_mpoly_quasidivrem_ideal(
1464 scale: *mut fmpz,
1465 Q: *mut *mut fmpz_mpoly_struct,
1466 R: *mut fmpz_mpoly_struct,
1467 A: *const fmpz_mpoly_struct,
1468 B: *const *const fmpz_mpoly_struct,
1469 len: mp_limb_signed_t,
1470 ctx: *const fmpz_mpoly_ctx_struct,
1471 );
1472}
1473extern "C" {
1474 pub fn fmpz_mpoly_divexact(
1475 Q: *mut fmpz_mpoly_struct,
1476 A: *const fmpz_mpoly_struct,
1477 B: *const fmpz_mpoly_struct,
1478 ctx: *const fmpz_mpoly_ctx_struct,
1479 );
1480}
1481extern "C" {
1482 pub fn _fmpz_mpoly_div_monagan_pearce(
1483 polyq: *mut *mut fmpz,
1484 expq: *mut *mut mp_limb_t,
1485 allocq: *mut mp_limb_signed_t,
1486 poly2: *const fmpz,
1487 exp2: *const mp_limb_t,
1488 len2: mp_limb_signed_t,
1489 poly3: *const fmpz,
1490 exp3: *const mp_limb_t,
1491 len3: mp_limb_signed_t,
1492 bits: mp_limb_signed_t,
1493 N: mp_limb_signed_t,
1494 cmpmask: *const mp_limb_t,
1495 ) -> mp_limb_signed_t;
1496}
1497extern "C" {
1498 pub fn fmpz_mpoly_div_monagan_pearce(
1499 q: *mut fmpz_mpoly_struct,
1500 poly2: *const fmpz_mpoly_struct,
1501 poly3: *const fmpz_mpoly_struct,
1502 ctx: *const fmpz_mpoly_ctx_struct,
1503 );
1504}
1505extern "C" {
1506 pub fn _fmpz_mpoly_divrem_monagan_pearce(
1507 lenr: *mut mp_limb_signed_t,
1508 polyq: *mut *mut fmpz,
1509 expq: *mut *mut mp_limb_t,
1510 allocq: *mut mp_limb_signed_t,
1511 polyr: *mut *mut fmpz,
1512 expr: *mut *mut mp_limb_t,
1513 allocr: *mut mp_limb_signed_t,
1514 poly2: *const fmpz,
1515 exp2: *const mp_limb_t,
1516 len2: mp_limb_signed_t,
1517 poly3: *const fmpz,
1518 exp3: *const mp_limb_t,
1519 len3: mp_limb_signed_t,
1520 bits: mp_limb_signed_t,
1521 N: mp_limb_signed_t,
1522 cmpmask: *const mp_limb_t,
1523 ) -> mp_limb_signed_t;
1524}
1525extern "C" {
1526 pub fn fmpz_mpoly_divrem_monagan_pearce(
1527 q: *mut fmpz_mpoly_struct,
1528 r: *mut fmpz_mpoly_struct,
1529 poly2: *const fmpz_mpoly_struct,
1530 poly3: *const fmpz_mpoly_struct,
1531 ctx: *const fmpz_mpoly_ctx_struct,
1532 );
1533}
1534extern "C" {
1535 pub fn _fmpz_mpoly_divrem_array(
1536 lenr: *mut mp_limb_signed_t,
1537 polyq: *mut *mut fmpz,
1538 expq: *mut *mut mp_limb_t,
1539 allocq: *mut mp_limb_signed_t,
1540 polyr: *mut *mut fmpz,
1541 expr: *mut *mut mp_limb_t,
1542 allocr: *mut mp_limb_signed_t,
1543 poly2: *const fmpz,
1544 exp2: *const mp_limb_t,
1545 len2: mp_limb_signed_t,
1546 poly3: *const fmpz,
1547 exp3: *const mp_limb_t,
1548 len3: mp_limb_signed_t,
1549 mults: *const mp_limb_signed_t,
1550 num: mp_limb_signed_t,
1551 bits: mp_limb_signed_t,
1552 ) -> mp_limb_signed_t;
1553}
1554extern "C" {
1555 pub fn fmpz_mpoly_divrem_array(
1556 q: *mut fmpz_mpoly_struct,
1557 r: *mut fmpz_mpoly_struct,
1558 poly2: *const fmpz_mpoly_struct,
1559 poly3: *const fmpz_mpoly_struct,
1560 ctx: *const fmpz_mpoly_ctx_struct,
1561 ) -> c_int;
1562}
1563extern "C" {
1564 pub fn fmpz_mpoly_quasidivrem_heap(
1565 scale: *mut fmpz,
1566 q: *mut fmpz_mpoly_struct,
1567 r: *mut fmpz_mpoly_struct,
1568 poly2: *const fmpz_mpoly_struct,
1569 poly3: *const fmpz_mpoly_struct,
1570 ctx: *const fmpz_mpoly_ctx_struct,
1571 );
1572}
1573extern "C" {
1574 pub fn fmpz_mpoly_quasidiv_heap(
1575 scale: *mut fmpz,
1576 q: *mut fmpz_mpoly_struct,
1577 poly2: *const fmpz_mpoly_struct,
1578 poly3: *const fmpz_mpoly_struct,
1579 ctx: *const fmpz_mpoly_ctx_struct,
1580 );
1581}
1582extern "C" {
1583 pub fn _fmpz_mpoly_divrem_ideal_monagan_pearce(
1584 polyq: *mut *mut fmpz_mpoly_struct,
1585 polyr: *mut *mut fmpz,
1586 expr: *mut *mut mp_limb_t,
1587 allocr: *mut mp_limb_signed_t,
1588 poly2: *const fmpz,
1589 exp2: *const mp_limb_t,
1590 len2: mp_limb_signed_t,
1591 poly3: *const *const fmpz_mpoly_struct,
1592 exp3: *const *const mp_limb_t,
1593 len: mp_limb_signed_t,
1594 N: mp_limb_signed_t,
1595 bits: mp_limb_signed_t,
1596 ctx: *const fmpz_mpoly_ctx_struct,
1597 cmpmask: *const mp_limb_t,
1598 ) -> mp_limb_signed_t;
1599}
1600extern "C" {
1601 pub fn fmpz_mpoly_divrem_ideal_monagan_pearce(
1602 q: *mut *mut fmpz_mpoly_struct,
1603 r: *mut fmpz_mpoly_struct,
1604 poly2: *const fmpz_mpoly_struct,
1605 poly3: *const *const fmpz_mpoly_struct,
1606 len: mp_limb_signed_t,
1607 ctx: *const fmpz_mpoly_ctx_struct,
1608 );
1609}
1610extern "C" {
1611 pub fn fmpz_mpoly_quasidivrem_ideal_heap(
1612 scale: *mut fmpz,
1613 q: *mut *mut fmpz_mpoly_struct,
1614 r: *mut fmpz_mpoly_struct,
1615 poly2: *const fmpz_mpoly_struct,
1616 poly3: *const *const fmpz_mpoly_struct,
1617 len: mp_limb_signed_t,
1618 ctx: *const fmpz_mpoly_ctx_struct,
1619 );
1620}
1621extern "C" {
1622 pub fn _fmpz_mpoly_sqrt_heap(
1623 polyq: *mut *mut fmpz,
1624 expq: *mut *mut mp_limb_t,
1625 allocq: *mut mp_limb_signed_t,
1626 poly2: *const fmpz,
1627 exp2: *const mp_limb_t,
1628 len2: mp_limb_signed_t,
1629 bits: mp_limb_t,
1630 mctx: *const mpoly_ctx_struct,
1631 check: c_int,
1632 ) -> mp_limb_signed_t;
1633}
1634extern "C" {
1635 pub fn fmpz_mpoly_sqrt_heap(
1636 q: *mut fmpz_mpoly_struct,
1637 poly2: *const fmpz_mpoly_struct,
1638 ctx: *const fmpz_mpoly_ctx_struct,
1639 check: c_int,
1640 ) -> c_int;
1641}
1642extern "C" {
1643 pub fn fmpz_mpoly_sqrt(
1644 q: *mut fmpz_mpoly_struct,
1645 poly2: *const fmpz_mpoly_struct,
1646 ctx: *const fmpz_mpoly_ctx_struct,
1647 ) -> c_int;
1648}
1649extern "C" {
1650 pub fn fmpz_mpoly_is_square(
1651 poly2: *const fmpz_mpoly_struct,
1652 ctx: *const fmpz_mpoly_ctx_struct,
1653 ) -> c_int;
1654}
1655extern "C" {
1656 pub fn fmpz_mpoly_term_content(
1657 M: *mut fmpz_mpoly_struct,
1658 A: *const fmpz_mpoly_struct,
1659 ctx: *const fmpz_mpoly_ctx_struct,
1660 );
1661}
1662extern "C" {
1663 pub fn fmpz_mpoly_content_vars(
1664 g: *mut fmpz_mpoly_struct,
1665 A: *const fmpz_mpoly_struct,
1666 vars: *const mp_limb_signed_t,
1667 vars_length: mp_limb_signed_t,
1668 ctx: *const fmpz_mpoly_ctx_struct,
1669 ) -> c_int;
1670}
1671extern "C" {
1672 pub fn fmpz_mpoly_gcd(
1673 G: *mut fmpz_mpoly_struct,
1674 A: *const fmpz_mpoly_struct,
1675 B: *const fmpz_mpoly_struct,
1676 ctx: *const fmpz_mpoly_ctx_struct,
1677 ) -> c_int;
1678}
1679extern "C" {
1680 pub fn fmpz_mpoly_gcd_cofactors(
1681 G: *mut fmpz_mpoly_struct,
1682 Abar: *mut fmpz_mpoly_struct,
1683 Bbar: *mut fmpz_mpoly_struct,
1684 A: *const fmpz_mpoly_struct,
1685 B: *const fmpz_mpoly_struct,
1686 ctx: *const fmpz_mpoly_ctx_struct,
1687 ) -> c_int;
1688}
1689extern "C" {
1690 pub fn fmpz_mpoly_deflation(
1691 shift: *mut fmpz,
1692 stride: *mut fmpz,
1693 A: *const fmpz_mpoly_struct,
1694 ctx: *const fmpz_mpoly_ctx_struct,
1695 );
1696}
1697extern "C" {
1698 pub fn fmpz_mpoly_deflate(
1699 A: *mut fmpz_mpoly_struct,
1700 B: *const fmpz_mpoly_struct,
1701 shift: *const fmpz,
1702 stride: *const fmpz,
1703 ctx: *const fmpz_mpoly_ctx_struct,
1704 );
1705}
1706extern "C" {
1707 pub fn fmpz_mpoly_inflate(
1708 A: *mut fmpz_mpoly_struct,
1709 B: *const fmpz_mpoly_struct,
1710 shift: *const fmpz,
1711 stride: *const fmpz,
1712 ctx: *const fmpz_mpoly_ctx_struct,
1713 );
1714}
1715extern "C" {
1716 pub fn fmpz_mpoly_gcd_hensel(
1717 G: *mut fmpz_mpoly_struct,
1718 A: *const fmpz_mpoly_struct,
1719 B: *const fmpz_mpoly_struct,
1720 ctx: *const fmpz_mpoly_ctx_struct,
1721 ) -> c_int;
1722}
1723extern "C" {
1724 pub fn fmpz_mpoly_gcd_brown(
1725 G: *mut fmpz_mpoly_struct,
1726 A: *const fmpz_mpoly_struct,
1727 B: *const fmpz_mpoly_struct,
1728 ctx: *const fmpz_mpoly_ctx_struct,
1729 ) -> c_int;
1730}
1731extern "C" {
1732 pub fn fmpz_mpoly_gcd_subresultant(
1733 G: *mut fmpz_mpoly_struct,
1734 A: *const fmpz_mpoly_struct,
1735 B: *const fmpz_mpoly_struct,
1736 ctx: *const fmpz_mpoly_ctx_struct,
1737 ) -> c_int;
1738}
1739extern "C" {
1740 pub fn fmpz_mpoly_gcd_zippel(
1741 G: *mut fmpz_mpoly_struct,
1742 A: *const fmpz_mpoly_struct,
1743 B: *const fmpz_mpoly_struct,
1744 ctx: *const fmpz_mpoly_ctx_struct,
1745 ) -> c_int;
1746}
1747extern "C" {
1748 pub fn fmpz_mpoly_gcd_zippel2(
1749 G: *mut fmpz_mpoly_struct,
1750 A: *const fmpz_mpoly_struct,
1751 B: *const fmpz_mpoly_struct,
1752 ctx: *const fmpz_mpoly_ctx_struct,
1753 ) -> c_int;
1754}
1755extern "C" {
1756 pub fn fmpz_mpoly_univar_init(
1757 A: *mut fmpz_mpoly_univar_struct,
1758 ctx: *const fmpz_mpoly_ctx_struct,
1759 );
1760}
1761extern "C" {
1762 pub fn fmpz_mpoly_univar_clear(
1763 A: *mut fmpz_mpoly_univar_struct,
1764 ctx: *const fmpz_mpoly_ctx_struct,
1765 );
1766}
1767extern "C" {
1768 pub fn fmpz_mpoly_univar_fit_length(
1769 A: *mut fmpz_mpoly_univar_struct,
1770 length: mp_limb_signed_t,
1771 ctx: *const fmpz_mpoly_ctx_struct,
1772 );
1773}
1774extern "C" {
1775 pub fn fmpz_mpoly_univar_print_pretty(
1776 A: *const fmpz_mpoly_univar_struct,
1777 x: *const *const c_char,
1778 ctx: *const fmpz_mpoly_ctx_struct,
1779 );
1780}
1781extern "C" {
1782 pub fn fmpz_mpoly_univar_assert_canonical(
1783 A: *const fmpz_mpoly_univar_struct,
1784 ctx: *const fmpz_mpoly_ctx_struct,
1785 );
1786}
1787extern "C" {
1788 pub fn fmpz_mpoly_univar_zero(
1789 A: *mut fmpz_mpoly_univar_struct,
1790 ctx: *const fmpz_mpoly_ctx_struct,
1791 );
1792}
1793extern "C" {
1794 pub fn fmpz_mpoly_univar_set_coeff_ui(
1795 A: *mut fmpz_mpoly_univar_struct,
1796 e: mp_limb_t,
1797 c: *const fmpz_mpoly_struct,
1798 ctx: *const fmpz_mpoly_ctx_struct,
1799 );
1800}
1801extern "C" {
1802 pub fn fmpz_mpoly_to_univar(
1803 A: *mut fmpz_mpoly_univar_struct,
1804 B: *const fmpz_mpoly_struct,
1805 var: mp_limb_signed_t,
1806 ctx: *const fmpz_mpoly_ctx_struct,
1807 );
1808}
1809extern "C" {
1810 pub fn _fmpz_mpoly_from_univar(
1811 A: *mut fmpz_mpoly_struct,
1812 Abits: mp_limb_t,
1813 B: *const fmpz_mpoly_univar_struct,
1814 var: mp_limb_signed_t,
1815 ctx: *const fmpz_mpoly_ctx_struct,
1816 );
1817}
1818extern "C" {
1819 pub fn fmpz_mpoly_from_univar(
1820 A: *mut fmpz_mpoly_struct,
1821 B: *const fmpz_mpoly_univar_struct,
1822 var: mp_limb_signed_t,
1823 ctx: *const fmpz_mpoly_ctx_struct,
1824 );
1825}
1826extern "C" {
1827 pub fn fmpz_mpoly_univar_swap(
1828 A: *mut fmpz_mpoly_univar_struct,
1829 B: *mut fmpz_mpoly_univar_struct,
1830 ctx: *const fmpz_mpoly_ctx_struct,
1831 );
1832}
1833extern "C" {
1834 pub fn fmpz_mpoly_univar_degree_fits_si(
1835 A: *mut fmpz_mpoly_univar_struct,
1836 ctx: *const fmpz_mpoly_ctx_struct,
1837 ) -> c_int;
1838}
1839extern "C" {
1840 pub fn fmpz_mpoly_univar_length(
1841 A: *mut fmpz_mpoly_univar_struct,
1842 ctx: *const fmpz_mpoly_ctx_struct,
1843 ) -> mp_limb_signed_t;
1844}
1845extern "C" {
1846 pub fn fmpz_mpoly_univar_get_term_exp_si(
1847 A: *mut fmpz_mpoly_univar_struct,
1848 i: mp_limb_signed_t,
1849 ctx: *const fmpz_mpoly_ctx_struct,
1850 ) -> mp_limb_signed_t;
1851}
1852extern "C" {
1853 pub fn fmpz_mpoly_univar_get_term_coeff(
1854 c: *mut fmpz_mpoly_struct,
1855 A: *const fmpz_mpoly_univar_struct,
1856 i: mp_limb_signed_t,
1857 ctx: *const fmpz_mpoly_ctx_struct,
1858 );
1859}
1860extern "C" {
1861 pub fn fmpz_mpoly_univar_swap_term_coeff(
1862 c: *mut fmpz_mpoly_struct,
1863 A: *mut fmpz_mpoly_univar_struct,
1864 i: mp_limb_signed_t,
1865 ctx: *const fmpz_mpoly_ctx_struct,
1866 );
1867}
1868extern "C" {
1869 pub fn fmpz_mpoly_univar_pseudo_gcd(
1870 gx: *mut fmpz_mpoly_univar_struct,
1871 ax: *const fmpz_mpoly_univar_struct,
1872 bx: *const fmpz_mpoly_univar_struct,
1873 ctx: *const fmpz_mpoly_ctx_struct,
1874 ) -> c_int;
1875}
1876extern "C" {
1877 pub fn fmpz_mpoly_univar_resultant(
1878 d: *mut fmpz_mpoly_struct,
1879 ax: *const fmpz_mpoly_univar_struct,
1880 bx: *const fmpz_mpoly_univar_struct,
1881 ctx: *const fmpz_mpoly_ctx_struct,
1882 ) -> c_int;
1883}
1884extern "C" {
1885 pub fn fmpz_mpoly_univar_discriminant(
1886 d: *mut fmpz_mpoly_struct,
1887 fx: *const fmpz_mpoly_univar_struct,
1888 ctx: *const fmpz_mpoly_ctx_struct,
1889 ) -> c_int;
1890}
1891extern "C" {
1892 pub fn fmpz_mpoly_resultant(
1893 R: *mut fmpz_mpoly_struct,
1894 A: *const fmpz_mpoly_struct,
1895 B: *const fmpz_mpoly_struct,
1896 var: mp_limb_signed_t,
1897 ctx: *const fmpz_mpoly_ctx_struct,
1898 ) -> c_int;
1899}
1900extern "C" {
1901 pub fn fmpz_mpoly_discriminant(
1902 R: *mut fmpz_mpoly_struct,
1903 A: *const fmpz_mpoly_struct,
1904 var: mp_limb_signed_t,
1905 ctx: *const fmpz_mpoly_ctx_struct,
1906 ) -> c_int;
1907}
1908extern "C" {
1909 pub fn mpoly_void_ring_init_fmpz_mpoly_ctx(
1910 R: *mut _bindgen_ty_22,
1911 ctx: *const fmpz_mpoly_ctx_struct,
1912 );
1913}
1914extern "C" {
1915 pub fn fmpz_mpoly_pow_fps(
1916 A: *mut fmpz_mpoly_struct,
1917 B: *const fmpz_mpoly_struct,
1918 k: mp_limb_t,
1919 ctx: *const fmpz_mpoly_ctx_struct,
1920 );
1921}
1922extern "C" {
1923 pub fn fmpz_mpolyl_lead_coeff(
1924 c: *mut fmpz_mpoly_struct,
1925 A: *const fmpz_mpoly_struct,
1926 num_vars: mp_limb_signed_t,
1927 ctx: *const fmpz_mpoly_ctx_struct,
1928 );
1929}
1930extern "C" {
1931 pub fn fmpz_mpolyl_content(
1932 g: *mut fmpz_mpoly_struct,
1933 A: *const fmpz_mpoly_struct,
1934 num_vars: mp_limb_signed_t,
1935 ctx: *const fmpz_mpoly_ctx_struct,
1936 ) -> c_int;
1937}
1938extern "C" {
1939 pub fn _fmpz_mpoly_to_fmpz_poly_deflate(
1940 A: *mut fmpz_poly_struct,
1941 B: *const fmpz_mpoly_struct,
1942 var: mp_limb_signed_t,
1943 Bshift: *const mp_limb_t,
1944 Bstride: *const mp_limb_t,
1945 ctx: *const fmpz_mpoly_ctx_struct,
1946 );
1947}
1948extern "C" {
1949 pub fn _fmpz_mpoly_from_fmpz_poly_inflate(
1950 A: *mut fmpz_mpoly_struct,
1951 Abits: mp_limb_t,
1952 B: *const fmpz_poly_struct,
1953 var: mp_limb_signed_t,
1954 Ashift: *const mp_limb_t,
1955 Astride: *const mp_limb_t,
1956 ctx: *const fmpz_mpoly_ctx_struct,
1957 );
1958}
1959extern "C" {
1960 pub fn fmpz_mpoly_repack_bits(
1961 A: *mut fmpz_mpoly_struct,
1962 B: *const fmpz_mpoly_struct,
1963 Abits: mp_limb_t,
1964 ctx: *const fmpz_mpoly_ctx_struct,
1965 ) -> c_int;
1966}
1967extern "C" {
1968 pub fn fmpz_mpoly_repack_bits_inplace(
1969 A: *mut fmpz_mpoly_struct,
1970 Abits: mp_limb_t,
1971 ctx: *mut fmpz_mpoly_ctx_struct,
1972 ) -> c_int;
1973}
1974#[repr(C)]
1975#[derive(Debug, Copy, Clone)]
1976pub struct _fmpz_mpoly_stripe_struct {
1977 pub big_mem: *mut c_char,
1978 pub big_mem_alloc: mp_limb_signed_t,
1979 pub N: mp_limb_signed_t,
1980 pub bits: mp_limb_t,
1981 pub cmpmask: *const mp_limb_t,
1982 pub startidx: *mut mp_limb_signed_t,
1983 pub endidx: *mut mp_limb_signed_t,
1984 pub emin: *mut mp_limb_t,
1985 pub emax: *mut mp_limb_t,
1986 pub coeff_bits: mp_limb_t,
1987 pub upperclosed: c_int,
1988 pub flint_small: c_int,
1989}
1990pub type fmpz_mpoly_stripe_struct = _fmpz_mpoly_stripe_struct;
1991pub type fmpz_mpoly_stripe_t = [fmpz_mpoly_stripe_struct; 1usize];
1992#[repr(C)]
1993#[derive(Debug, Copy, Clone)]
1994pub struct fmpz_mpolyd_ctx_struct {
1995 pub nvars: mp_limb_signed_t,
1996 pub perm: *mut mp_limb_signed_t,
1997}
1998pub type fmpz_mpolyd_ctx_t = [fmpz_mpolyd_ctx_struct; 1usize];
1999extern "C" {
2000 pub fn fmpz_mpolyd_init(poly: *mut fmpz_mpolyd_struct, nvars: mp_limb_signed_t);
2001}
2002extern "C" {
2003 pub fn fmpz_mpolyd_fit_length(poly: *mut fmpz_mpolyd_struct, len: mp_limb_signed_t);
2004}
2005extern "C" {
2006 pub fn fmpz_mpolyd_clear(poly: *mut fmpz_mpolyd_struct);
2007}
2008#[repr(C)]
2009#[derive(Debug, Copy, Clone)]
2010pub struct _bindgen_ty_23 {
2011 pub powers: *mut fmpz,
2012 pub length: mp_limb_signed_t,
2013 pub alloc: mp_limb_signed_t,
2014 pub tmp: fmpz_t,
2015}
2016pub type fmpz_pow_cache_t = [_bindgen_ty_23; 1usize];
2017extern "C" {
2018 pub fn fmpz_pow_cache_init(T: *mut _bindgen_ty_23, val: *mut fmpz);
2019}
2020extern "C" {
2021 pub fn fmpz_pow_cache_clear(T: *mut _bindgen_ty_23);
2022}
2023extern "C" {
2024 pub fn fmpz_pow_cache_mulpow_ui(
2025 a: *mut fmpz,
2026 b: *mut fmpz,
2027 k: mp_limb_t,
2028 T: *mut _bindgen_ty_23,
2029 ) -> c_int;
2030}
2031extern "C" {
2032 pub fn fmpz_pow_cache_mulpow_fmpz(
2033 a: *mut fmpz,
2034 b: *mut fmpz,
2035 k: *mut fmpz,
2036 T: *mut _bindgen_ty_23,
2037 ) -> c_int;
2038}
2039extern "C" {
2040 pub fn fmpz_mpoly_to_mpoly_perm_deflate_threaded_pool(
2041 A: *mut fmpz_mpoly_struct,
2042 lctx: *mut fmpz_mpoly_ctx_struct,
2043 B: *mut fmpz_mpoly_struct,
2044 ctx: *mut fmpz_mpoly_ctx_struct,
2045 perm: *const mp_limb_signed_t,
2046 shift: *const mp_limb_t,
2047 stride: *const mp_limb_t,
2048 handles: *const thread_pool_handle,
2049 num_handles: mp_limb_signed_t,
2050 );
2051}
2052extern "C" {
2053 pub fn fmpz_mpoly_from_mpoly_perm_inflate(
2054 A: *mut fmpz_mpoly_struct,
2055 Abits: mp_limb_t,
2056 ctx: *mut fmpz_mpoly_ctx_struct,
2057 B: *mut fmpz_mpoly_struct,
2058 lctx: *mut fmpz_mpoly_ctx_struct,
2059 perm: *const mp_limb_signed_t,
2060 shift: *const mp_limb_t,
2061 stride: *const mp_limb_t,
2062 );
2063}
2064extern "C" {
2065 pub fn fmpz_mpoly_height(
2066 max: *mut fmpz,
2067 A: *mut fmpz_mpoly_struct,
2068 ctx: *mut fmpz_mpoly_ctx_struct,
2069 );
2070}
2071extern "C" {
2072 pub fn fmpz_mpoly_heights(
2073 max: *mut fmpz,
2074 sum: *mut fmpz,
2075 A: *mut fmpz_mpoly_struct,
2076 ctx: *mut fmpz_mpoly_ctx_struct,
2077 );
2078}
2079#[repr(C)]
2080#[derive(Debug, Copy, Clone)]
2081pub struct fmpz_mpoly_geobucket {
2082 pub polys: [fmpz_mpoly_struct; 32usize],
2083 pub temps: [fmpz_mpoly_struct; 32usize],
2084 pub length: mp_limb_signed_t,
2085}
2086pub type fmpz_mpoly_geobucket_struct = fmpz_mpoly_geobucket;
2087pub type fmpz_mpoly_geobucket_t = [fmpz_mpoly_geobucket_struct; 1usize];
2088extern "C" {
2089 pub fn fmpz_mpoly_geobucket_init(
2090 B: *mut fmpz_mpoly_geobucket_struct,
2091 ctx: *mut fmpz_mpoly_ctx_struct,
2092 );
2093}
2094extern "C" {
2095 pub fn fmpz_mpoly_geobucket_clear(
2096 B: *mut fmpz_mpoly_geobucket_struct,
2097 ctx: *mut fmpz_mpoly_ctx_struct,
2098 );
2099}
2100extern "C" {
2101 pub fn fmpz_mpoly_geobucket_empty(
2102 p: *mut fmpz_mpoly_struct,
2103 B: *mut fmpz_mpoly_geobucket_struct,
2104 ctx: *mut fmpz_mpoly_ctx_struct,
2105 );
2106}
2107extern "C" {
2108 pub fn fmpz_mpoly_geobucket_fit_length(
2109 B: *mut fmpz_mpoly_geobucket_struct,
2110 i: mp_limb_signed_t,
2111 ctx: *mut fmpz_mpoly_ctx_struct,
2112 );
2113}
2114extern "C" {
2115 pub fn fmpz_mpoly_geobucket_set(
2116 B: *mut fmpz_mpoly_geobucket_struct,
2117 p: *mut fmpz_mpoly_struct,
2118 ctx: *mut fmpz_mpoly_ctx_struct,
2119 );
2120}
2121extern "C" {
2122 pub fn fmpz_mpoly_geobucket_add(
2123 B: *mut fmpz_mpoly_geobucket_struct,
2124 p: *mut fmpz_mpoly_struct,
2125 ctx: *mut fmpz_mpoly_ctx_struct,
2126 );
2127}
2128extern "C" {
2129 pub fn fmpz_mpoly_geobucket_sub(
2130 B: *mut fmpz_mpoly_geobucket_struct,
2131 p: *mut fmpz_mpoly_struct,
2132 ctx: *mut fmpz_mpoly_ctx_struct,
2133 );
2134}
2135extern "C" {
2136 pub fn _fmpz_mpoly_mul_array_chunked_DEG(
2137 P: *mut fmpz_mpoly_struct,
2138 A: *mut fmpz_mpoly_struct,
2139 B: *mut fmpz_mpoly_struct,
2140 degb: mp_limb_t,
2141 ctx: *mut fmpz_mpoly_ctx_struct,
2142 );
2143}
2144extern "C" {
2145 pub fn _fmpz_mpoly_mul_array_chunked_LEX(
2146 P: *mut fmpz_mpoly_struct,
2147 A: *mut fmpz_mpoly_struct,
2148 B: *mut fmpz_mpoly_struct,
2149 mults: *const mp_limb_t,
2150 ctx: *mut fmpz_mpoly_ctx_struct,
2151 );
2152}
2153extern "C" {
2154 pub fn _fmpz_mpoly_addmul_array1_slong1(
2155 poly1: *mut mp_limb_t,
2156 poly2: *const mp_limb_signed_t,
2157 exp2: *const mp_limb_t,
2158 len2: mp_limb_signed_t,
2159 poly3: *const mp_limb_signed_t,
2160 exp3: *const mp_limb_t,
2161 len3: mp_limb_signed_t,
2162 );
2163}
2164extern "C" {
2165 pub fn _fmpz_mpoly_addmul_array1_slong(
2166 poly1: *mut mp_limb_t,
2167 poly2: *const mp_limb_signed_t,
2168 exp2: *const mp_limb_t,
2169 len2: mp_limb_signed_t,
2170 poly3: *const mp_limb_signed_t,
2171 exp3: *const mp_limb_t,
2172 len3: mp_limb_signed_t,
2173 );
2174}
2175extern "C" {
2176 pub fn _fmpz_mpoly_addmul_array1_slong2(
2177 poly1: *mut mp_limb_t,
2178 poly2: *const mp_limb_signed_t,
2179 exp2: *const mp_limb_t,
2180 len2: mp_limb_signed_t,
2181 poly3: *const mp_limb_signed_t,
2182 exp3: *const mp_limb_t,
2183 len3: mp_limb_signed_t,
2184 );
2185}
2186extern "C" {
2187 pub fn _fmpz_mpoly_addmul_array1_fmpz(
2188 poly1: *mut fmpz,
2189 poly2: *const fmpz,
2190 exp2: *const mp_limb_t,
2191 len2: mp_limb_signed_t,
2192 poly3: *const fmpz,
2193 exp3: *const mp_limb_t,
2194 len3: mp_limb_signed_t,
2195 );
2196}
2197extern "C" {
2198 pub fn _fmpz_mpoly_submul_array1_slong(
2199 poly1: *mut mp_limb_t,
2200 poly2: *const mp_limb_signed_t,
2201 exp2: *const mp_limb_t,
2202 len2: mp_limb_signed_t,
2203 poly3: *const mp_limb_signed_t,
2204 exp3: *const mp_limb_t,
2205 len3: mp_limb_signed_t,
2206 );
2207}
2208extern "C" {
2209 pub fn _fmpz_mpoly_submul_array1_slong2(
2210 poly1: *mut mp_limb_t,
2211 poly2: *const mp_limb_signed_t,
2212 exp2: *const mp_limb_t,
2213 len2: mp_limb_signed_t,
2214 poly3: *const mp_limb_signed_t,
2215 exp3: *const mp_limb_t,
2216 len3: mp_limb_signed_t,
2217 );
2218}
2219extern "C" {
2220 pub fn _fmpz_mpoly_submul_array1_slong1(
2221 poly1: *mut mp_limb_t,
2222 poly2: *const mp_limb_signed_t,
2223 exp2: *const mp_limb_t,
2224 len2: mp_limb_signed_t,
2225 poly3: *const mp_limb_signed_t,
2226 exp3: *const mp_limb_t,
2227 len3: mp_limb_signed_t,
2228 );
2229}
2230extern "C" {
2231 pub fn _fmpz_mpoly_submul_array1_fmpz(
2232 poly1: *mut fmpz,
2233 poly2: *const fmpz,
2234 exp2: *const mp_limb_t,
2235 len2: mp_limb_signed_t,
2236 poly3: *const fmpz,
2237 exp3: *const mp_limb_t,
2238 len3: mp_limb_signed_t,
2239 );
2240}
2241extern "C" {
2242 pub fn _fmpz_mpoly_submul_array1_slong_1(
2243 poly1: *mut mp_limb_t,
2244 d: mp_limb_signed_t,
2245 exp2: mp_limb_t,
2246 poly3: *const mp_limb_signed_t,
2247 exp3: *const mp_limb_t,
2248 len3: mp_limb_signed_t,
2249 );
2250}
2251extern "C" {
2252 pub fn _fmpz_mpoly_submul_array1_slong2_1(
2253 poly1: *mut mp_limb_t,
2254 d: mp_limb_signed_t,
2255 exp2: mp_limb_t,
2256 poly3: *const mp_limb_signed_t,
2257 exp3: *const mp_limb_t,
2258 len3: mp_limb_signed_t,
2259 );
2260}
2261extern "C" {
2262 pub fn _fmpz_mpoly_submul_array1_fmpz_1(
2263 poly1: *mut fmpz,
2264 d: *mut fmpz,
2265 exp2: mp_limb_t,
2266 poly3: *const fmpz,
2267 exp3: *const mp_limb_t,
2268 len3: mp_limb_signed_t,
2269 );
2270}
2271extern "C" {
2272 pub fn fmpz_mpoly_append_array_sm1_LEX(
2273 P: *mut fmpz_mpoly_struct,
2274 Plen: mp_limb_signed_t,
2275 coeff_array: *mut mp_limb_t,
2276 mults: *const mp_limb_t,
2277 num: mp_limb_signed_t,
2278 array_size: mp_limb_signed_t,
2279 top: mp_limb_signed_t,
2280 ) -> mp_limb_signed_t;
2281}
2282extern "C" {
2283 pub fn fmpz_mpoly_append_array_sm2_LEX(
2284 P: *mut fmpz_mpoly_struct,
2285 Plen: mp_limb_signed_t,
2286 coeff_array: *mut mp_limb_t,
2287 mults: *const mp_limb_t,
2288 num: mp_limb_signed_t,
2289 array_size: mp_limb_signed_t,
2290 top: mp_limb_signed_t,
2291 ) -> mp_limb_signed_t;
2292}
2293extern "C" {
2294 pub fn fmpz_mpoly_append_array_sm3_LEX(
2295 P: *mut fmpz_mpoly_struct,
2296 Plen: mp_limb_signed_t,
2297 coeff_array: *mut mp_limb_t,
2298 mults: *const mp_limb_t,
2299 num: mp_limb_signed_t,
2300 array_size: mp_limb_signed_t,
2301 top: mp_limb_signed_t,
2302 ) -> mp_limb_signed_t;
2303}
2304extern "C" {
2305 pub fn fmpz_mpoly_append_array_fmpz_LEX(
2306 P: *mut fmpz_mpoly_struct,
2307 Plen: mp_limb_signed_t,
2308 coeff_array: *mut fmpz,
2309 mults: *const mp_limb_t,
2310 num: mp_limb_signed_t,
2311 array_size: mp_limb_signed_t,
2312 top: mp_limb_signed_t,
2313 ) -> mp_limb_signed_t;
2314}
2315extern "C" {
2316 pub fn fmpz_mpoly_append_array_sm1_DEGLEX(
2317 P: *mut fmpz_mpoly_struct,
2318 Plen: mp_limb_signed_t,
2319 coeff_array: *mut mp_limb_t,
2320 top: mp_limb_signed_t,
2321 nvars: mp_limb_signed_t,
2322 degb: mp_limb_signed_t,
2323 ) -> mp_limb_signed_t;
2324}
2325extern "C" {
2326 pub fn fmpz_mpoly_append_array_sm2_DEGLEX(
2327 P: *mut fmpz_mpoly_struct,
2328 Plen: mp_limb_signed_t,
2329 coeff_array: *mut mp_limb_t,
2330 top: mp_limb_signed_t,
2331 nvars: mp_limb_signed_t,
2332 degb: mp_limb_signed_t,
2333 ) -> mp_limb_signed_t;
2334}
2335extern "C" {
2336 pub fn fmpz_mpoly_append_array_sm3_DEGLEX(
2337 P: *mut fmpz_mpoly_struct,
2338 Plen: mp_limb_signed_t,
2339 coeff_array: *mut mp_limb_t,
2340 top: mp_limb_signed_t,
2341 nvars: mp_limb_signed_t,
2342 degb: mp_limb_signed_t,
2343 ) -> mp_limb_signed_t;
2344}
2345extern "C" {
2346 pub fn fmpz_mpoly_append_array_fmpz_DEGLEX(
2347 P: *mut fmpz_mpoly_struct,
2348 Plen: mp_limb_signed_t,
2349 coeff_array: *mut fmpz,
2350 top: mp_limb_signed_t,
2351 nvars: mp_limb_signed_t,
2352 degb: mp_limb_signed_t,
2353 ) -> mp_limb_signed_t;
2354}
2355extern "C" {
2356 pub fn fmpz_mpoly_append_array_sm1_DEGREVLEX(
2357 P: *mut fmpz_mpoly_struct,
2358 Plen: mp_limb_signed_t,
2359 coeff_array: *mut mp_limb_t,
2360 top: mp_limb_signed_t,
2361 nvars: mp_limb_signed_t,
2362 degb: mp_limb_signed_t,
2363 ) -> mp_limb_signed_t;
2364}
2365extern "C" {
2366 pub fn fmpz_mpoly_append_array_sm2_DEGREVLEX(
2367 P: *mut fmpz_mpoly_struct,
2368 Plen: mp_limb_signed_t,
2369 coeff_array: *mut mp_limb_t,
2370 top: mp_limb_signed_t,
2371 nvars: mp_limb_signed_t,
2372 degb: mp_limb_signed_t,
2373 ) -> mp_limb_signed_t;
2374}
2375extern "C" {
2376 pub fn fmpz_mpoly_append_array_sm3_DEGREVLEX(
2377 P: *mut fmpz_mpoly_struct,
2378 Plen: mp_limb_signed_t,
2379 coeff_array: *mut mp_limb_t,
2380 top: mp_limb_signed_t,
2381 nvars: mp_limb_signed_t,
2382 degb: mp_limb_signed_t,
2383 ) -> mp_limb_signed_t;
2384}
2385extern "C" {
2386 pub fn fmpz_mpoly_append_array_fmpz_DEGREVLEX(
2387 P: *mut fmpz_mpoly_struct,
2388 Plen: mp_limb_signed_t,
2389 coeff_array: *mut fmpz,
2390 top: mp_limb_signed_t,
2391 nvars: mp_limb_signed_t,
2392 degb: mp_limb_signed_t,
2393 ) -> mp_limb_signed_t;
2394}
2395extern "C" {
2396 pub fn _fmpz_mpoly_from_ulong_array(
2397 poly1: *mut *mut fmpz,
2398 exp1: *mut *mut mp_limb_t,
2399 alloc: *mut mp_limb_signed_t,
2400 poly2: *mut mp_limb_t,
2401 mults: *const mp_limb_signed_t,
2402 num: mp_limb_signed_t,
2403 bits: mp_limb_signed_t,
2404 k: mp_limb_signed_t,
2405 ) -> mp_limb_signed_t;
2406}
2407extern "C" {
2408 pub fn _fmpz_mpoly_from_ulong_array2(
2409 poly1: *mut *mut fmpz,
2410 exp1: *mut *mut mp_limb_t,
2411 alloc: *mut mp_limb_signed_t,
2412 poly2: *mut mp_limb_t,
2413 mults: *const mp_limb_signed_t,
2414 num: mp_limb_signed_t,
2415 bits: mp_limb_signed_t,
2416 k: mp_limb_signed_t,
2417 ) -> mp_limb_signed_t;
2418}
2419extern "C" {
2420 pub fn _fmpz_mpoly_from_ulong_array1(
2421 poly1: *mut *mut fmpz,
2422 exp1: *mut *mut mp_limb_t,
2423 alloc: *mut mp_limb_signed_t,
2424 poly2: *mut mp_limb_t,
2425 mults: *const mp_limb_signed_t,
2426 num: mp_limb_signed_t,
2427 bits: mp_limb_signed_t,
2428 k: mp_limb_signed_t,
2429 ) -> mp_limb_signed_t;
2430}
2431extern "C" {
2432 pub fn _fmpz_mpoly_from_fmpz_array(
2433 poly1: *mut *mut fmpz,
2434 exp1: *mut *mut mp_limb_t,
2435 alloc: *mut mp_limb_signed_t,
2436 poly2: *mut fmpz,
2437 mults: *const mp_limb_signed_t,
2438 num: mp_limb_signed_t,
2439 bits: mp_limb_signed_t,
2440 k: mp_limb_signed_t,
2441 ) -> mp_limb_signed_t;
2442}
2443extern "C" {
2444 pub fn _fmpz_mpoly_to_ulong_array2(
2445 p: *mut mp_limb_t,
2446 coeffs: *const fmpz,
2447 exps: *const mp_limb_t,
2448 len: mp_limb_signed_t,
2449 );
2450}
2451extern "C" {
2452 pub fn _fmpz_mpoly_to_ulong_array1(
2453 p: *mut mp_limb_t,
2454 coeffs: *const fmpz,
2455 exps: *const mp_limb_t,
2456 len: mp_limb_signed_t,
2457 );
2458}
2459extern "C" {
2460 pub fn _fmpz_mpoly_to_ulong_array(
2461 p: *mut mp_limb_t,
2462 coeffs: *const fmpz,
2463 exps: *const mp_limb_t,
2464 len: mp_limb_signed_t,
2465 );
2466}
2467extern "C" {
2468 pub fn _fmpz_mpoly_to_fmpz_array(
2469 p: *mut fmpz,
2470 coeffs: *const fmpz,
2471 exps: *const mp_limb_t,
2472 len: mp_limb_signed_t,
2473 );
2474}
2475extern "C" {
2476 pub fn _fmpz_mpoly_sub_uiuiui_fmpz(c: *mut mp_limb_t, d: *mut fmpz);
2477}
2478extern "C" {
2479 pub fn _fmpz_mpoly_add_uiuiui_fmpz(c: *mut mp_limb_t, d: *mut fmpz);
2480}
2481extern "C" {
2482 pub fn _fmpz_mpoly_submul_uiuiui_fmpz(
2483 c: *mut mp_limb_t,
2484 d1: mp_limb_signed_t,
2485 d2: mp_limb_signed_t,
2486 );
2487}
2488extern "C" {
2489 pub fn _fmpz_mpoly_addmul_uiuiui_fmpz(
2490 c: *mut mp_limb_t,
2491 d1: mp_limb_signed_t,
2492 d2: mp_limb_signed_t,
2493 );
2494}
2495extern "C" {
2496 pub fn _fmpz_mpoly_get_mpz_signed_uiuiui(sm: *mut mp_limb_t, x: fmpz, t: mpz_ptr)
2497 -> mpz_srcptr;
2498}
2499extern "C" {
2500 pub fn flint_mpz_add_signed_uiuiui(
2501 a: mpz_ptr,
2502 b: mpz_srcptr,
2503 c2: mp_limb_t,
2504 c1: mp_limb_t,
2505 c0: mp_limb_t,
2506 );
2507}
2508extern "C" {
2509 pub fn fmpz_mpoly_remainder_test(
2510 r: *mut fmpz_mpoly_struct,
2511 g: *const fmpz_mpoly_struct,
2512 ctx: *const fmpz_mpoly_ctx_struct,
2513 );
2514}
2515extern "C" {
2516 pub fn fmpz_mpoly_remainder_strongtest(
2517 r: *mut fmpz_mpoly_struct,
2518 g: *const fmpz_mpoly_struct,
2519 ctx: *const fmpz_mpoly_ctx_struct,
2520 );
2521}