1#![allow(non_snake_case)]
2#![allow(non_camel_case_types)]
3
4use crate::deps::*;
7use crate::flint::*;
8use crate::fmpz::fmpz;
9use crate::fmpz_mat::fmpz_mat_struct;
10use crate::fmpz_mod::{fmpz_mod_ctx_struct, fmpz_mod_ctx_t};
11use crate::fmpz_mod_poly::fmpz_mod_poly_struct;
12use crate::mpoly::*;
13use crate::nmod_mpoly::*;
14use libc::FILE;
15
16#[repr(C)]
17#[derive(Debug, Copy, Clone)]
18pub struct fmpz_mod_mpoly_ctx_struct {
19 pub minfo: mpoly_ctx_t,
20 pub ffinfo: fmpz_mod_ctx_t,
21}
22pub type fmpz_mod_mpoly_ctx_t = [fmpz_mod_mpoly_ctx_struct; 1usize];
23#[repr(C)]
24#[derive(Debug, Copy, Clone)]
25pub struct fmpz_mod_mpoly_struct {
26 pub coeffs: *mut fmpz,
27 pub exps: *mut mp_limb_t,
28 pub length: mp_limb_signed_t,
29 pub bits: mp_limb_t,
30 pub coeffs_alloc: mp_limb_signed_t,
31 pub exps_alloc: mp_limb_signed_t,
32}
33pub type fmpz_mod_mpoly_t = [fmpz_mod_mpoly_struct; 1usize];
34#[repr(C)]
35#[derive(Debug, Copy, Clone)]
36pub struct fmpz_mod_mpoly_univar_struct {
37 pub coeffs: *mut fmpz_mod_mpoly_struct,
38 pub exps: *mut fmpz,
39 pub alloc: mp_limb_signed_t,
40 pub length: mp_limb_signed_t,
41}
42pub type fmpz_mod_mpoly_univar_t = [fmpz_mod_mpoly_univar_struct; 1usize];
43extern "C" {
44 pub fn fmpz_mod_mpoly_ctx_init(
45 ctx: *mut fmpz_mod_mpoly_ctx_struct,
46 nvars: mp_limb_signed_t,
47 ord: ordering_t,
48 modulus: *mut fmpz,
49 );
50}
51extern "C" {
52 pub fn fmpz_mod_mpoly_ctx_init_rand(
53 ctx: *mut fmpz_mod_mpoly_ctx_struct,
54 state: *mut flint_rand_s,
55 max_nvars: mp_limb_signed_t,
56 modulus: *mut fmpz,
57 );
58}
59extern "C" {
60 pub fn fmpz_mod_mpoly_ctx_init_rand_bits_prime(
61 ctx: *mut fmpz_mod_mpoly_ctx_struct,
62 state: *mut flint_rand_s,
63 max_nvars: mp_limb_signed_t,
64 max_bits: mp_limb_t,
65 );
66}
67extern "C" {
68 pub fn fmpz_mod_mpoly_ctx_init_rand_bits(
69 ctx: *mut fmpz_mod_mpoly_ctx_struct,
70 state: *mut flint_rand_s,
71 max_nvars: mp_limb_signed_t,
72 max_bits: mp_limb_t,
73 );
74}
75extern "C" {
76 pub fn fmpz_mod_mpoly_ctx_clear(ctx: *mut fmpz_mod_mpoly_ctx_struct);
77}
78extern "C" {
79 pub fn fmpz_mod_mpoly_clear(A: *mut fmpz_mod_mpoly_struct, ctx: *mut fmpz_mod_mpoly_ctx_struct);
80}
81extern "C" {
82 pub fn fmpz_mod_mpoly_init2(
83 A: *mut fmpz_mod_mpoly_struct,
84 alloc: mp_limb_signed_t,
85 ctx: *mut fmpz_mod_mpoly_ctx_struct,
86 );
87}
88extern "C" {
89 pub fn fmpz_mod_mpoly_init3(
90 A: *mut fmpz_mod_mpoly_struct,
91 alloc: mp_limb_signed_t,
92 bits: mp_limb_t,
93 ctx: *mut fmpz_mod_mpoly_ctx_struct,
94 );
95}
96extern "C" {
97 pub fn fmpz_mod_mpoly_realloc(
98 A: *mut fmpz_mod_mpoly_struct,
99 alloc: mp_limb_signed_t,
100 ctx: *mut fmpz_mod_mpoly_ctx_struct,
101 );
102}
103extern "C" {
104 pub fn fmpz_mod_mpoly_fit_length(
105 A: *mut fmpz_mod_mpoly_struct,
106 length: mp_limb_signed_t,
107 ctx: *mut fmpz_mod_mpoly_ctx_struct,
108 );
109}
110extern "C" {
111 pub fn fmpz_mod_mpoly_fit_length_fit_bits(
112 A: *mut fmpz_mod_mpoly_struct,
113 len: mp_limb_signed_t,
114 bits: mp_limb_t,
115 ctx: *mut fmpz_mod_mpoly_ctx_struct,
116 );
117}
118extern "C" {
119 pub fn fmpz_mod_mpoly_fit_length_reset_bits(
120 A: *mut fmpz_mod_mpoly_struct,
121 len: mp_limb_signed_t,
122 bits: mp_limb_t,
123 ctx: *mut fmpz_mod_mpoly_ctx_struct,
124 );
125}
126extern "C" {
127 pub fn fmpz_mod_mpoly_set_str_pretty(
128 A: *mut fmpz_mod_mpoly_struct,
129 str_: *const ::std::os::raw::c_char,
130 x: *mut *const ::std::os::raw::c_char,
131 ctx: *mut fmpz_mod_mpoly_ctx_struct,
132 ) -> ::std::os::raw::c_int;
133}
134extern "C" {
135 pub fn fmpz_mod_mpoly_get_str_pretty(
136 A: *mut fmpz_mod_mpoly_struct,
137 x: *mut *const ::std::os::raw::c_char,
138 ctx: *mut fmpz_mod_mpoly_ctx_struct,
139 ) -> *mut ::std::os::raw::c_char;
140}
141extern "C" {
142 pub fn fmpz_mod_mpoly_fprint_pretty(
143 file: *mut FILE,
144 A: *mut fmpz_mod_mpoly_struct,
145 x: *mut *const ::std::os::raw::c_char,
146 ctx: *mut fmpz_mod_mpoly_ctx_struct,
147 ) -> ::std::os::raw::c_int;
148}
149extern "C" {
150 pub fn fmpz_mod_mpoly_gen(
151 A: *mut fmpz_mod_mpoly_struct,
152 var: mp_limb_signed_t,
153 ctx: *mut fmpz_mod_mpoly_ctx_struct,
154 );
155}
156extern "C" {
157 pub fn fmpz_mod_mpoly_is_gen(
158 A: *mut fmpz_mod_mpoly_struct,
159 var: mp_limb_signed_t,
160 ctx: *mut fmpz_mod_mpoly_ctx_struct,
161 ) -> ::std::os::raw::c_int;
162}
163extern "C" {
164 pub fn fmpz_mod_mpoly_set(
165 A: *mut fmpz_mod_mpoly_struct,
166 B: *mut fmpz_mod_mpoly_struct,
167 ctx: *mut fmpz_mod_mpoly_ctx_struct,
168 );
169}
170extern "C" {
171 pub fn fmpz_mod_mpoly_equal(
172 A: *mut fmpz_mod_mpoly_struct,
173 B: *mut fmpz_mod_mpoly_struct,
174 ctx: *mut fmpz_mod_mpoly_ctx_struct,
175 ) -> ::std::os::raw::c_int;
176}
177extern "C" {
178 pub fn fmpz_mod_mpoly_is_fmpz(
179 A: *mut fmpz_mod_mpoly_struct,
180 ctx: *mut fmpz_mod_mpoly_ctx_struct,
181 ) -> ::std::os::raw::c_int;
182}
183extern "C" {
184 pub fn fmpz_mod_mpoly_get_fmpz(
185 c: *mut fmpz,
186 A: *mut fmpz_mod_mpoly_struct,
187 ctx: *mut fmpz_mod_mpoly_ctx_struct,
188 );
189}
190extern "C" {
191 pub fn fmpz_mod_mpoly_set_fmpz_mod(
192 A: *mut fmpz_mod_mpoly_struct,
193 c: *mut fmpz,
194 ctx: *mut fmpz_mod_mpoly_ctx_struct,
195 );
196}
197extern "C" {
198 pub fn fmpz_mod_mpoly_set_fmpz(
199 A: *mut fmpz_mod_mpoly_struct,
200 c: *mut fmpz,
201 ctx: *mut fmpz_mod_mpoly_ctx_struct,
202 );
203}
204extern "C" {
205 pub fn fmpz_mod_mpoly_set_ui(
206 A: *mut fmpz_mod_mpoly_struct,
207 c: mp_limb_signed_t,
208 ctx: *mut fmpz_mod_mpoly_ctx_struct,
209 );
210}
211extern "C" {
212 pub fn fmpz_mod_mpoly_set_si(
213 A: *mut fmpz_mod_mpoly_struct,
214 c: mp_limb_signed_t,
215 ctx: *mut fmpz_mod_mpoly_ctx_struct,
216 );
217}
218extern "C" {
219 pub fn fmpz_mod_mpoly_equal_fmpz(
220 A: *mut fmpz_mod_mpoly_struct,
221 c: *mut fmpz,
222 ctx: *mut fmpz_mod_mpoly_ctx_struct,
223 ) -> ::std::os::raw::c_int;
224}
225extern "C" {
226 pub fn fmpz_mod_mpoly_equal_ui(
227 A: *mut fmpz_mod_mpoly_struct,
228 c: mp_limb_t,
229 ctx: *mut fmpz_mod_mpoly_ctx_struct,
230 ) -> ::std::os::raw::c_int;
231}
232extern "C" {
233 pub fn fmpz_mod_mpoly_equal_si(
234 A: *mut fmpz_mod_mpoly_struct,
235 c: mp_limb_signed_t,
236 ctx: *mut fmpz_mod_mpoly_ctx_struct,
237 ) -> ::std::os::raw::c_int;
238}
239extern "C" {
240 pub fn fmpz_mod_mpoly_get_coeff_fmpz_monomial(
241 c: *mut fmpz,
242 A: *mut fmpz_mod_mpoly_struct,
243 M: *mut fmpz_mod_mpoly_struct,
244 ctx: *mut fmpz_mod_mpoly_ctx_struct,
245 );
246}
247extern "C" {
248 pub fn fmpz_mod_mpoly_set_coeff_fmpz_monomial(
249 A: *mut fmpz_mod_mpoly_struct,
250 c: *mut fmpz,
251 M: *mut fmpz_mod_mpoly_struct,
252 ctx: *mut fmpz_mod_mpoly_ctx_struct,
253 );
254}
255extern "C" {
256 pub fn fmpz_mod_mpoly_get_coeff_fmpz_fmpz(
257 c: *mut fmpz,
258 A: *mut fmpz_mod_mpoly_struct,
259 exp: *const *mut fmpz,
260 ctx: *mut fmpz_mod_mpoly_ctx_struct,
261 );
262}
263extern "C" {
264 pub fn fmpz_mod_mpoly_get_coeff_fmpz_ui(
265 c: *mut fmpz,
266 A: *mut fmpz_mod_mpoly_struct,
267 exp: *const mp_limb_t,
268 ctx: *mut fmpz_mod_mpoly_ctx_struct,
269 );
270}
271extern "C" {
272 pub fn _fmpz_mod_mpoly_set_coeff_fmpz_fmpz(
273 A: *mut fmpz_mod_mpoly_struct,
274 c: *mut fmpz,
275 exp: *const fmpz,
276 ctx: *mut fmpz_mod_mpoly_ctx_struct,
277 );
278}
279extern "C" {
280 pub fn fmpz_mod_mpoly_set_coeff_fmpz_fmpz(
281 A: *mut fmpz_mod_mpoly_struct,
282 c: *mut fmpz,
283 exp: *const *mut fmpz,
284 ctx: *mut fmpz_mod_mpoly_ctx_struct,
285 );
286}
287extern "C" {
288 pub fn fmpz_mod_mpoly_set_coeff_ui_fmpz(
289 A: *mut fmpz_mod_mpoly_struct,
290 c: mp_limb_t,
291 exp: *const *mut fmpz,
292 ctx: *mut fmpz_mod_mpoly_ctx_struct,
293 );
294}
295extern "C" {
296 pub fn fmpz_mod_mpoly_set_coeff_si_fmpz(
297 A: *mut fmpz_mod_mpoly_struct,
298 c: mp_limb_signed_t,
299 exp: *const *mut fmpz,
300 ctx: *mut fmpz_mod_mpoly_ctx_struct,
301 );
302}
303extern "C" {
304 pub fn fmpz_mod_mpoly_set_coeff_fmpz_ui(
305 A: *mut fmpz_mod_mpoly_struct,
306 c: *mut fmpz,
307 exp: *const mp_limb_t,
308 ctx: *mut fmpz_mod_mpoly_ctx_struct,
309 );
310}
311extern "C" {
312 pub fn fmpz_mod_mpoly_set_coeff_ui_ui(
313 A: *mut fmpz_mod_mpoly_struct,
314 c: mp_limb_t,
315 exp: *const mp_limb_t,
316 ctx: *mut fmpz_mod_mpoly_ctx_struct,
317 );
318}
319extern "C" {
320 pub fn fmpz_mod_mpoly_set_coeff_si_ui(
321 A: *mut fmpz_mod_mpoly_struct,
322 c: mp_limb_signed_t,
323 exp: *const mp_limb_t,
324 ctx: *mut fmpz_mod_mpoly_ctx_struct,
325 );
326}
327extern "C" {
328 pub fn fmpz_mod_mpoly_get_coeff_vars_ui(
329 C: *mut fmpz_mod_mpoly_struct,
330 A: *mut fmpz_mod_mpoly_struct,
331 vars: *const mp_limb_signed_t,
332 exps: *const mp_limb_t,
333 length: mp_limb_signed_t,
334 ctx: *mut fmpz_mod_mpoly_ctx_struct,
335 );
336}
337extern "C" {
338 pub fn fmpz_mod_mpoly_is_fmpz_mod_poly(
339 A: *mut fmpz_mod_mpoly_struct,
340 var: mp_limb_signed_t,
341 ctx: *mut fmpz_mod_mpoly_ctx_struct,
342 ) -> ::std::os::raw::c_int;
343}
344extern "C" {
345 pub fn fmpz_mod_mpoly_get_fmpz_mod_poly(
346 A: *mut fmpz_mod_poly_struct,
347 B: *mut fmpz_mod_mpoly_struct,
348 var: mp_limb_signed_t,
349 ctx: *mut fmpz_mod_mpoly_ctx_struct,
350 ) -> ::std::os::raw::c_int;
351}
352extern "C" {
353 pub fn _fmpz_mod_mpoly_set_fmpz_mod_poly(
354 A: *mut fmpz_mod_mpoly_struct,
355 Abits: mp_limb_t,
356 Bcoeffs: *const fmpz,
357 Blen: mp_limb_signed_t,
358 var: mp_limb_signed_t,
359 ctx: *mut fmpz_mod_mpoly_ctx_struct,
360 );
361}
362extern "C" {
363 pub fn fmpz_mod_mpoly_set_fmpz_mod_poly(
364 A: *mut fmpz_mod_mpoly_struct,
365 B: *mut fmpz_mod_poly_struct,
366 var: mp_limb_signed_t,
367 ctx: *mut fmpz_mod_mpoly_ctx_struct,
368 );
369}
370extern "C" {
371 pub fn fmpz_mod_mpoly_cmp(
372 A: *mut fmpz_mod_mpoly_struct,
373 B: *mut fmpz_mod_mpoly_struct,
374 ctx: *mut fmpz_mod_mpoly_ctx_struct,
375 ) -> ::std::os::raw::c_int;
376}
377extern "C" {
378 pub fn fmpz_mod_mpoly_is_canonical(
379 A: *mut fmpz_mod_mpoly_struct,
380 ctx: *mut fmpz_mod_mpoly_ctx_struct,
381 ) -> ::std::os::raw::c_int;
382}
383extern "C" {
384 pub fn fmpz_mod_mpoly_resize(
385 A: *mut fmpz_mod_mpoly_struct,
386 new_length: mp_limb_signed_t,
387 ctx: *mut fmpz_mod_mpoly_ctx_struct,
388 );
389}
390extern "C" {
391 pub fn fmpz_mod_mpoly_get_term_coeff_fmpz(
392 c: *mut fmpz,
393 A: *mut fmpz_mod_mpoly_struct,
394 i: mp_limb_signed_t,
395 ctx: *mut fmpz_mod_mpoly_ctx_struct,
396 );
397}
398extern "C" {
399 pub fn fmpz_mod_mpoly_set_term_coeff_fmpz(
400 A: *mut fmpz_mod_mpoly_struct,
401 i: mp_limb_signed_t,
402 c: *mut fmpz,
403 ctx: *mut fmpz_mod_mpoly_ctx_struct,
404 );
405}
406extern "C" {
407 pub fn fmpz_mod_mpoly_set_term_coeff_ui(
408 A: *mut fmpz_mod_mpoly_struct,
409 i: mp_limb_signed_t,
410 c: mp_limb_t,
411 ctx: *mut fmpz_mod_mpoly_ctx_struct,
412 );
413}
414extern "C" {
415 pub fn fmpz_mod_mpoly_set_term_coeff_si(
416 A: *mut fmpz_mod_mpoly_struct,
417 i: mp_limb_signed_t,
418 c: mp_limb_signed_t,
419 ctx: *mut fmpz_mod_mpoly_ctx_struct,
420 );
421}
422extern "C" {
423 pub fn fmpz_mod_mpoly_get_term_exp_fmpz(
424 exp: *mut *mut fmpz,
425 A: *mut fmpz_mod_mpoly_struct,
426 i: mp_limb_signed_t,
427 ctx: *mut fmpz_mod_mpoly_ctx_struct,
428 );
429}
430extern "C" {
431 pub fn fmpz_mod_mpoly_get_term_exp_ui(
432 exp: *mut mp_limb_t,
433 A: *mut fmpz_mod_mpoly_struct,
434 i: mp_limb_signed_t,
435 ctx: *mut fmpz_mod_mpoly_ctx_struct,
436 );
437}
438extern "C" {
439 pub fn fmpz_mod_mpoly_get_term_exp_si(
440 exp: *mut mp_limb_signed_t,
441 A: *mut fmpz_mod_mpoly_struct,
442 i: mp_limb_signed_t,
443 ctx: *mut fmpz_mod_mpoly_ctx_struct,
444 );
445}
446extern "C" {
447 pub fn fmpz_mod_mpoly_get_term_var_exp_ui(
448 A: *mut fmpz_mod_mpoly_struct,
449 i: mp_limb_signed_t,
450 var: mp_limb_signed_t,
451 ctx: *mut fmpz_mod_mpoly_ctx_struct,
452 ) -> mp_limb_t;
453}
454extern "C" {
455 pub fn fmpz_mod_mpoly_get_term_var_exp_si(
456 A: *mut fmpz_mod_mpoly_struct,
457 i: mp_limb_signed_t,
458 var: mp_limb_signed_t,
459 ctx: *mut fmpz_mod_mpoly_ctx_struct,
460 ) -> mp_limb_signed_t;
461}
462extern "C" {
463 pub fn fmpz_mod_mpoly_set_term_exp_fmpz(
464 A: *mut fmpz_mod_mpoly_struct,
465 i: mp_limb_signed_t,
466 exp: *const *mut fmpz,
467 ctx: *mut fmpz_mod_mpoly_ctx_struct,
468 );
469}
470extern "C" {
471 pub fn fmpz_mod_mpoly_set_term_exp_ui(
472 A: *mut fmpz_mod_mpoly_struct,
473 i: mp_limb_signed_t,
474 exp: *const mp_limb_t,
475 ctx: *mut fmpz_mod_mpoly_ctx_struct,
476 );
477}
478extern "C" {
479 pub fn fmpz_mod_mpoly_get_term(
480 M: *mut fmpz_mod_mpoly_struct,
481 A: *mut fmpz_mod_mpoly_struct,
482 i: mp_limb_signed_t,
483 ctx: *mut fmpz_mod_mpoly_ctx_struct,
484 );
485}
486extern "C" {
487 pub fn fmpz_mod_mpoly_get_term_monomial(
488 M: *mut fmpz_mod_mpoly_struct,
489 A: *mut fmpz_mod_mpoly_struct,
490 i: mp_limb_signed_t,
491 ctx: *mut fmpz_mod_mpoly_ctx_struct,
492 );
493}
494extern "C" {
495 pub fn fmpz_mod_mpoly_push_term_fmpz_fmpz(
496 A: *mut fmpz_mod_mpoly_struct,
497 c: *mut fmpz,
498 exp: *const *mut fmpz,
499 ctx: *mut fmpz_mod_mpoly_ctx_struct,
500 );
501}
502extern "C" {
503 pub fn fmpz_mod_mpoly_push_term_ui_fmpz(
504 A: *mut fmpz_mod_mpoly_struct,
505 c: mp_limb_t,
506 exp: *const *mut fmpz,
507 ctx: *mut fmpz_mod_mpoly_ctx_struct,
508 );
509}
510extern "C" {
511 pub fn fmpz_mod_mpoly_push_term_si_fmpz(
512 A: *mut fmpz_mod_mpoly_struct,
513 c: mp_limb_signed_t,
514 exp: *const *mut fmpz,
515 ctx: *mut fmpz_mod_mpoly_ctx_struct,
516 );
517}
518extern "C" {
519 pub fn fmpz_mod_mpoly_push_term_fmpz_ui(
520 A: *mut fmpz_mod_mpoly_struct,
521 c: *mut fmpz,
522 exp: *const mp_limb_t,
523 ctx: *mut fmpz_mod_mpoly_ctx_struct,
524 );
525}
526extern "C" {
527 pub fn fmpz_mod_mpoly_push_term_ui_ui(
528 A: *mut fmpz_mod_mpoly_struct,
529 c: mp_limb_t,
530 exp: *const mp_limb_t,
531 ctx: *mut fmpz_mod_mpoly_ctx_struct,
532 );
533}
534extern "C" {
535 pub fn fmpz_mod_mpoly_push_term_si_ui(
536 A: *mut fmpz_mod_mpoly_struct,
537 c: mp_limb_signed_t,
538 exp: *const mp_limb_t,
539 ctx: *mut fmpz_mod_mpoly_ctx_struct,
540 );
541}
542extern "C" {
543 pub fn fmpz_mod_mpoly_sort_terms(
544 A: *mut fmpz_mod_mpoly_struct,
545 ctx: *mut fmpz_mod_mpoly_ctx_struct,
546 );
547}
548extern "C" {
549 pub fn fmpz_mod_mpoly_combine_like_terms(
550 A: *mut fmpz_mod_mpoly_struct,
551 ctx: *mut fmpz_mod_mpoly_ctx_struct,
552 );
553}
554extern "C" {
555 pub fn fmpz_mod_mpoly_reverse(
556 A: *mut fmpz_mod_mpoly_struct,
557 B: *mut fmpz_mod_mpoly_struct,
558 ctx: *mut fmpz_mod_mpoly_ctx_struct,
559 );
560}
561extern "C" {
562 pub fn fmpz_mod_mpoly_assert_canonical(
563 A: *mut fmpz_mod_mpoly_struct,
564 ctx: *mut fmpz_mod_mpoly_ctx_struct,
565 );
566}
567extern "C" {
568 pub fn _fmpz_mod_mpoly_radix_sort1(
569 arg1: *mut fmpz,
570 arg2: *mut mp_limb_t,
571 left: mp_limb_signed_t,
572 right: mp_limb_signed_t,
573 pos: mp_limb_t,
574 cmpmask: mp_limb_t,
575 totalmask: mp_limb_t,
576 );
577}
578extern "C" {
579 pub fn _fmpz_mod_mpoly_radix_sort(
580 arg1: *mut fmpz,
581 arg2: *mut mp_limb_t,
582 left: mp_limb_signed_t,
583 right: mp_limb_signed_t,
584 pos: mp_limb_t,
585 N: mp_limb_signed_t,
586 cmpmask: *mut mp_limb_t,
587 );
588}
589extern "C" {
590 pub fn _fmpz_mod_mpoly_push_exp_ffmpz(
591 A: *mut fmpz_mod_mpoly_struct,
592 exp: *const fmpz,
593 ctx: *mut fmpz_mod_mpoly_ctx_struct,
594 );
595}
596extern "C" {
597 pub fn _fmpz_mod_mpoly_push_exp_pfmpz(
598 A: *mut fmpz_mod_mpoly_struct,
599 exp: *const *mut fmpz,
600 ctx: *mut fmpz_mod_mpoly_ctx_struct,
601 );
602}
603extern "C" {
604 pub fn _fmpz_mod_mpoly_push_exp_ui(
605 A: *mut fmpz_mod_mpoly_struct,
606 exp: *const mp_limb_t,
607 ctx: *mut fmpz_mod_mpoly_ctx_struct,
608 );
609}
610extern "C" {
611 pub fn fmpz_mod_mpoly_randtest_bounds(
612 A: *mut fmpz_mod_mpoly_struct,
613 state: *mut flint_rand_s,
614 length: mp_limb_signed_t,
615 exp_bounds: *mut mp_limb_t,
616 ctx: *mut fmpz_mod_mpoly_ctx_struct,
617 );
618}
619extern "C" {
620 pub fn fmpz_mod_mpoly_randtest_bound(
621 A: *mut fmpz_mod_mpoly_struct,
622 state: *mut flint_rand_s,
623 length: mp_limb_signed_t,
624 exp_bound: mp_limb_t,
625 ctx: *mut fmpz_mod_mpoly_ctx_struct,
626 );
627}
628extern "C" {
629 pub fn fmpz_mod_mpoly_randtest_bits(
630 A: *mut fmpz_mod_mpoly_struct,
631 state: *mut flint_rand_s,
632 length: mp_limb_signed_t,
633 exp_bits: mp_limb_t,
634 ctx: *mut fmpz_mod_mpoly_ctx_struct,
635 );
636}
637extern "C" {
638 pub fn fmpz_mod_mpoly_add_fmpz_mod(
639 A: *mut fmpz_mod_mpoly_struct,
640 B: *mut fmpz_mod_mpoly_struct,
641 c: *mut fmpz,
642 ctx: *mut fmpz_mod_mpoly_ctx_struct,
643 );
644}
645extern "C" {
646 pub fn fmpz_mod_mpoly_add_fmpz(
647 A: *mut fmpz_mod_mpoly_struct,
648 B: *mut fmpz_mod_mpoly_struct,
649 c: *mut fmpz,
650 ctx: *mut fmpz_mod_mpoly_ctx_struct,
651 );
652}
653extern "C" {
654 pub fn fmpz_mod_mpoly_add_ui(
655 A: *mut fmpz_mod_mpoly_struct,
656 B: *mut fmpz_mod_mpoly_struct,
657 c: mp_limb_t,
658 ctx: *mut fmpz_mod_mpoly_ctx_struct,
659 );
660}
661extern "C" {
662 pub fn fmpz_mod_mpoly_add_si(
663 A: *mut fmpz_mod_mpoly_struct,
664 B: *mut fmpz_mod_mpoly_struct,
665 c: mp_limb_signed_t,
666 ctx: *mut fmpz_mod_mpoly_ctx_struct,
667 );
668}
669extern "C" {
670 pub fn fmpz_mod_mpoly_sub_fmpz(
671 A: *mut fmpz_mod_mpoly_struct,
672 B: *mut fmpz_mod_mpoly_struct,
673 c: *mut fmpz,
674 ctx: *mut fmpz_mod_mpoly_ctx_struct,
675 );
676}
677extern "C" {
678 pub fn fmpz_mod_mpoly_sub_ui(
679 A: *mut fmpz_mod_mpoly_struct,
680 B: *mut fmpz_mod_mpoly_struct,
681 c: mp_limb_t,
682 ctx: *mut fmpz_mod_mpoly_ctx_struct,
683 );
684}
685extern "C" {
686 pub fn fmpz_mod_mpoly_sub_si(
687 A: *mut fmpz_mod_mpoly_struct,
688 B: *mut fmpz_mod_mpoly_struct,
689 c: mp_limb_signed_t,
690 ctx: *mut fmpz_mod_mpoly_ctx_struct,
691 );
692}
693extern "C" {
694 pub fn fmpz_mod_mpoly_add(
695 A: *mut fmpz_mod_mpoly_struct,
696 B: *mut fmpz_mod_mpoly_struct,
697 C: *mut fmpz_mod_mpoly_struct,
698 ctx: *mut fmpz_mod_mpoly_ctx_struct,
699 );
700}
701extern "C" {
702 pub fn fmpz_mod_mpoly_sub(
703 A: *mut fmpz_mod_mpoly_struct,
704 B: *mut fmpz_mod_mpoly_struct,
705 C: *mut fmpz_mod_mpoly_struct,
706 ctx: *mut fmpz_mod_mpoly_ctx_struct,
707 );
708}
709extern "C" {
710 pub fn fmpz_mod_mpoly_neg(
711 A: *mut fmpz_mod_mpoly_struct,
712 B: *mut fmpz_mod_mpoly_struct,
713 ctx: *mut fmpz_mod_mpoly_ctx_struct,
714 );
715}
716extern "C" {
717 pub fn fmpz_mod_mpoly_scalar_mul_fmpz_mod_invertible(
718 A: *mut fmpz_mod_mpoly_struct,
719 B: *mut fmpz_mod_mpoly_struct,
720 c: *mut fmpz,
721 ctx: *mut fmpz_mod_mpoly_ctx_struct,
722 );
723}
724extern "C" {
725 pub fn fmpz_mod_mpoly_scalar_mul_fmpz(
726 A: *mut fmpz_mod_mpoly_struct,
727 B: *mut fmpz_mod_mpoly_struct,
728 c: *mut fmpz,
729 ctx: *mut fmpz_mod_mpoly_ctx_struct,
730 );
731}
732extern "C" {
733 pub fn fmpz_mod_mpoly_scalar_mul_ui(
734 A: *mut fmpz_mod_mpoly_struct,
735 B: *mut fmpz_mod_mpoly_struct,
736 c: mp_limb_t,
737 ctx: *mut fmpz_mod_mpoly_ctx_struct,
738 );
739}
740extern "C" {
741 pub fn fmpz_mod_mpoly_scalar_mul_si(
742 A: *mut fmpz_mod_mpoly_struct,
743 B: *mut fmpz_mod_mpoly_struct,
744 c: mp_limb_signed_t,
745 ctx: *mut fmpz_mod_mpoly_ctx_struct,
746 );
747}
748extern "C" {
749 pub fn fmpz_mod_mpoly_scalar_addmul_fmpz(
750 A: *mut fmpz_mod_mpoly_struct,
751 B: *mut fmpz_mod_mpoly_struct,
752 C: *mut fmpz_mod_mpoly_struct,
753 d: *mut fmpz,
754 ctx: *mut fmpz_mod_mpoly_ctx_struct,
755 );
756}
757extern "C" {
758 pub fn fmpz_mod_mpoly_make_monic(
759 A: *mut fmpz_mod_mpoly_struct,
760 B: *mut fmpz_mod_mpoly_struct,
761 ctx: *mut fmpz_mod_mpoly_ctx_struct,
762 );
763}
764extern "C" {
765 pub fn fmpz_mod_mpoly_derivative(
766 A: *mut fmpz_mod_mpoly_struct,
767 B: *mut fmpz_mod_mpoly_struct,
768 var: mp_limb_signed_t,
769 ctx: *mut fmpz_mod_mpoly_ctx_struct,
770 );
771}
772extern "C" {
773 pub fn _fmpz_mod_mpoly_eval_all_fmpz_mod(
774 eval: *mut fmpz,
775 Acoeffs: *const fmpz,
776 Aexps: *const mp_limb_t,
777 Alen: mp_limb_signed_t,
778 Abits: mp_limb_t,
779 alphas: *const fmpz,
780 mctx: *mut mpoly_ctx_struct,
781 fctx: *mut fmpz_mod_ctx_struct,
782 );
783}
784extern "C" {
785 pub fn fmpz_mod_mpoly_evaluate_all_fmpz(
786 eval: *mut fmpz,
787 A: *mut fmpz_mod_mpoly_struct,
788 alphas: *const *mut fmpz,
789 ctx: *mut fmpz_mod_mpoly_ctx_struct,
790 );
791}
792extern "C" {
793 pub fn fmpz_mod_mpoly_evaluate_one_fmpz(
794 A: *mut fmpz_mod_mpoly_struct,
795 B: *mut fmpz_mod_mpoly_struct,
796 var: mp_limb_signed_t,
797 val: *mut fmpz,
798 ctx: *mut fmpz_mod_mpoly_ctx_struct,
799 );
800}
801extern "C" {
802 pub fn _fmpz_mod_mpoly_compose_mat(
803 A: *mut fmpz_mod_mpoly_struct,
804 B: *mut fmpz_mod_mpoly_struct,
805 M: *mut fmpz_mat_struct,
806 ctxB: *mut fmpz_mod_mpoly_ctx_struct,
807 ctxAC: *mut fmpz_mod_mpoly_ctx_struct,
808 );
809}
810extern "C" {
811 pub fn fmpz_mod_mpoly_compose_fmpz_mod_mpoly_geobucket(
812 A: *mut fmpz_mod_mpoly_struct,
813 B: *mut fmpz_mod_mpoly_struct,
814 C: *const *mut fmpz_mod_mpoly_struct,
815 ctxB: *mut fmpz_mod_mpoly_ctx_struct,
816 ctxAC: *mut fmpz_mod_mpoly_ctx_struct,
817 ) -> ::std::os::raw::c_int;
818}
819extern "C" {
820 pub fn fmpz_mod_mpoly_compose_fmpz_mod_mpoly(
821 A: *mut fmpz_mod_mpoly_struct,
822 B: *mut fmpz_mod_mpoly_struct,
823 C: *const *mut fmpz_mod_mpoly_struct,
824 ctxB: *mut fmpz_mod_mpoly_ctx_struct,
825 ctxAC: *mut fmpz_mod_mpoly_ctx_struct,
826 ) -> ::std::os::raw::c_int;
827}
828extern "C" {
829 pub fn fmpz_mod_mpoly_mul(
830 A: *mut fmpz_mod_mpoly_struct,
831 B: *mut fmpz_mod_mpoly_struct,
832 C: *mut fmpz_mod_mpoly_struct,
833 ctx: *mut fmpz_mod_mpoly_ctx_struct,
834 );
835}
836extern "C" {
837 pub fn fmpz_mod_mpoly_mul_johnson(
838 A: *mut fmpz_mod_mpoly_struct,
839 B: *mut fmpz_mod_mpoly_struct,
840 C: *mut fmpz_mod_mpoly_struct,
841 ctx: *mut fmpz_mod_mpoly_ctx_struct,
842 );
843}
844extern "C" {
845 pub fn _fmpz_mod_mpoly_mul_johnson_maxfields(
846 A: *mut fmpz_mod_mpoly_struct,
847 B: *mut fmpz_mod_mpoly_struct,
848 maxBfields: *mut fmpz,
849 C: *mut fmpz_mod_mpoly_struct,
850 maxCfields: *mut fmpz,
851 ctx: *mut fmpz_mod_mpoly_ctx_struct,
852 );
853}
854extern "C" {
855 pub fn fmpz_mod_mpoly_mul_dense(
856 A: *mut fmpz_mod_mpoly_struct,
857 B: *mut fmpz_mod_mpoly_struct,
858 C: *mut fmpz_mod_mpoly_struct,
859 ctx: *mut fmpz_mod_mpoly_ctx_struct,
860 ) -> ::std::os::raw::c_int;
861}
862extern "C" {
863 pub fn _fmpz_mod_mpoly_mul_dense_maxfields(
864 P: *mut fmpz_mod_mpoly_struct,
865 A: *mut fmpz_mod_mpoly_struct,
866 maxAfields: *mut fmpz,
867 B: *mut fmpz_mod_mpoly_struct,
868 maxBfields: *mut fmpz,
869 ctx: *mut fmpz_mod_mpoly_ctx_struct,
870 ) -> ::std::os::raw::c_int;
871}
872extern "C" {
873 pub fn fmpz_mod_mpoly_pow_fmpz(
874 A: *mut fmpz_mod_mpoly_struct,
875 B: *mut fmpz_mod_mpoly_struct,
876 k: *mut fmpz,
877 ctx: *mut fmpz_mod_mpoly_ctx_struct,
878 ) -> ::std::os::raw::c_int;
879}
880extern "C" {
881 pub fn fmpz_mod_mpoly_pow_ui(
882 A: *mut fmpz_mod_mpoly_struct,
883 B: *mut fmpz_mod_mpoly_struct,
884 k: mp_limb_t,
885 ctx: *mut fmpz_mod_mpoly_ctx_struct,
886 ) -> ::std::os::raw::c_int;
887}
888extern "C" {
889 pub fn fmpz_mod_mpoly_pow_rmul(
890 A: *mut fmpz_mod_mpoly_struct,
891 B: *mut fmpz_mod_mpoly_struct,
892 k: mp_limb_t,
893 ctx: *mut fmpz_mod_mpoly_ctx_struct,
894 );
895}
896extern "C" {
897 pub fn fmpz_mod_mpoly_divides(
898 Q: *mut fmpz_mod_mpoly_struct,
899 A: *mut fmpz_mod_mpoly_struct,
900 B: *mut fmpz_mod_mpoly_struct,
901 ctx: *mut fmpz_mod_mpoly_ctx_struct,
902 ) -> ::std::os::raw::c_int;
903}
904extern "C" {
905 pub fn fmpz_mod_mpoly_div(
906 Q: *mut fmpz_mod_mpoly_struct,
907 A: *mut fmpz_mod_mpoly_struct,
908 B: *mut fmpz_mod_mpoly_struct,
909 ctx: *mut fmpz_mod_mpoly_ctx_struct,
910 );
911}
912extern "C" {
913 pub fn fmpz_mod_mpoly_divrem(
914 Q: *mut fmpz_mod_mpoly_struct,
915 R: *mut fmpz_mod_mpoly_struct,
916 A: *mut fmpz_mod_mpoly_struct,
917 B: *mut fmpz_mod_mpoly_struct,
918 ctx: *mut fmpz_mod_mpoly_ctx_struct,
919 );
920}
921extern "C" {
922 pub fn fmpz_mod_mpoly_divrem_ideal(
923 Q: *mut *mut fmpz_mod_mpoly_struct,
924 R: *mut fmpz_mod_mpoly_struct,
925 A: *mut fmpz_mod_mpoly_struct,
926 B: *const *mut fmpz_mod_mpoly_struct,
927 len: mp_limb_signed_t,
928 ctx: *mut fmpz_mod_mpoly_ctx_struct,
929 );
930}
931extern "C" {
932 pub fn _fmpz_mod_mpoly_divides_dense_maxfields(
933 Q: *mut fmpz_mod_mpoly_struct,
934 A: *mut fmpz_mod_mpoly_struct,
935 maxAfields: *mut fmpz,
936 B: *mut fmpz_mod_mpoly_struct,
937 maxBfields: *mut fmpz,
938 ctx: *mut fmpz_mod_mpoly_ctx_struct,
939 ) -> ::std::os::raw::c_int;
940}
941extern "C" {
942 pub fn fmpz_mod_mpoly_divides_dense(
943 Q: *mut fmpz_mod_mpoly_struct,
944 A: *mut fmpz_mod_mpoly_struct,
945 B: *mut fmpz_mod_mpoly_struct,
946 ctx: *mut fmpz_mod_mpoly_ctx_struct,
947 ) -> ::std::os::raw::c_int;
948}
949extern "C" {
950 pub fn _fmpz_mod_mpoly_divides_monagan_pearce_maxfields(
951 Q: *mut fmpz_mod_mpoly_struct,
952 A: *mut fmpz_mod_mpoly_struct,
953 maxAfields: *mut fmpz,
954 B: *mut fmpz_mod_mpoly_struct,
955 maxBfields: *mut fmpz,
956 ctx: *mut fmpz_mod_mpoly_ctx_struct,
957 ) -> ::std::os::raw::c_int;
958}
959extern "C" {
960 pub fn fmpz_mod_mpoly_divides_monagan_pearce(
961 Q: *mut fmpz_mod_mpoly_struct,
962 A: *mut fmpz_mod_mpoly_struct,
963 B: *mut fmpz_mod_mpoly_struct,
964 ctx: *mut fmpz_mod_mpoly_ctx_struct,
965 ) -> ::std::os::raw::c_int;
966}
967extern "C" {
968 pub fn fmpz_mod_mpoly_div_monagan_pearce(
969 Q: *mut fmpz_mod_mpoly_struct,
970 A: *mut fmpz_mod_mpoly_struct,
971 B: *mut fmpz_mod_mpoly_struct,
972 ctx: *mut fmpz_mod_mpoly_ctx_struct,
973 );
974}
975extern "C" {
976 pub fn fmpz_mod_mpoly_divrem_monagan_pearce(
977 Q: *mut fmpz_mod_mpoly_struct,
978 R: *mut fmpz_mod_mpoly_struct,
979 A: *mut fmpz_mod_mpoly_struct,
980 B: *mut fmpz_mod_mpoly_struct,
981 ctx: *mut fmpz_mod_mpoly_ctx_struct,
982 );
983}
984extern "C" {
985 pub fn fmpz_mod_mpoly_divrem_ideal_monagan_pearce(
986 Q: *mut *mut fmpz_mod_mpoly_struct,
987 R: *mut fmpz_mod_mpoly_struct,
988 A: *mut fmpz_mod_mpoly_struct,
989 B: *const *mut fmpz_mod_mpoly_struct,
990 len: mp_limb_signed_t,
991 ctx: *mut fmpz_mod_mpoly_ctx_struct,
992 );
993}
994extern "C" {
995 pub fn fmpz_mod_mpoly_sqrt_heap(
996 Q: *mut fmpz_mod_mpoly_struct,
997 A: *mut fmpz_mod_mpoly_struct,
998 ctx: *mut fmpz_mod_mpoly_ctx_struct,
999 ) -> ::std::os::raw::c_int;
1000}
1001extern "C" {
1002 pub fn fmpz_mod_mpoly_quadratic_root(
1003 Q: *mut fmpz_mod_mpoly_struct,
1004 A: *mut fmpz_mod_mpoly_struct,
1005 B: *mut fmpz_mod_mpoly_struct,
1006 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1007 ) -> ::std::os::raw::c_int;
1008}
1009extern "C" {
1010 pub fn fmpz_mod_mpoly_term_content(
1011 M: *mut fmpz_mod_mpoly_struct,
1012 A: *mut fmpz_mod_mpoly_struct,
1013 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1014 );
1015}
1016extern "C" {
1017 pub fn fmpz_mod_mpoly_content_vars(
1018 g: *mut fmpz_mod_mpoly_struct,
1019 A: *mut fmpz_mod_mpoly_struct,
1020 vars: *mut mp_limb_signed_t,
1021 vars_length: mp_limb_signed_t,
1022 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1023 ) -> ::std::os::raw::c_int;
1024}
1025extern "C" {
1026 pub fn fmpz_mod_mpoly_gcd(
1027 G: *mut fmpz_mod_mpoly_struct,
1028 A: *mut fmpz_mod_mpoly_struct,
1029 B: *mut fmpz_mod_mpoly_struct,
1030 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1031 ) -> ::std::os::raw::c_int;
1032}
1033extern "C" {
1034 pub fn fmpz_mod_mpoly_gcd_cofactors(
1035 G: *mut fmpz_mod_mpoly_struct,
1036 Abar: *mut fmpz_mod_mpoly_struct,
1037 Bbar: *mut fmpz_mod_mpoly_struct,
1038 A: *mut fmpz_mod_mpoly_struct,
1039 B: *mut fmpz_mod_mpoly_struct,
1040 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1041 ) -> ::std::os::raw::c_int;
1042}
1043extern "C" {
1044 pub fn fmpz_mod_mpoly_gcd_subresultant(
1045 G: *mut fmpz_mod_mpoly_struct,
1046 A: *mut fmpz_mod_mpoly_struct,
1047 B: *mut fmpz_mod_mpoly_struct,
1048 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1049 ) -> ::std::os::raw::c_int;
1050}
1051extern "C" {
1052 pub fn fmpz_mod_mpoly_gcd_brown(
1053 G: *mut fmpz_mod_mpoly_struct,
1054 A: *mut fmpz_mod_mpoly_struct,
1055 B: *mut fmpz_mod_mpoly_struct,
1056 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1057 ) -> ::std::os::raw::c_int;
1058}
1059extern "C" {
1060 pub fn fmpz_mod_mpoly_gcd_hensel(
1061 G: *mut fmpz_mod_mpoly_struct,
1062 A: *mut fmpz_mod_mpoly_struct,
1063 B: *mut fmpz_mod_mpoly_struct,
1064 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1065 ) -> ::std::os::raw::c_int;
1066}
1067extern "C" {
1068 pub fn fmpz_mod_mpoly_gcd_zippel(
1069 G: *mut fmpz_mod_mpoly_struct,
1070 A: *mut fmpz_mod_mpoly_struct,
1071 B: *mut fmpz_mod_mpoly_struct,
1072 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1073 ) -> ::std::os::raw::c_int;
1074}
1075extern "C" {
1076 pub fn fmpz_mod_mpoly_gcd_zippel2(
1077 G: *mut fmpz_mod_mpoly_struct,
1078 A: *mut fmpz_mod_mpoly_struct,
1079 B: *mut fmpz_mod_mpoly_struct,
1080 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1081 ) -> ::std::os::raw::c_int;
1082}
1083extern "C" {
1084 pub fn fmpz_mod_mpoly_deflation(
1085 shift: *mut fmpz,
1086 stride: *mut fmpz,
1087 A: *mut fmpz_mod_mpoly_struct,
1088 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1089 );
1090}
1091extern "C" {
1092 pub fn fmpz_mod_mpoly_deflate(
1093 A: *mut fmpz_mod_mpoly_struct,
1094 B: *mut fmpz_mod_mpoly_struct,
1095 shift: *const fmpz,
1096 stride: *const fmpz,
1097 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1098 );
1099}
1100extern "C" {
1101 pub fn fmpz_mod_mpoly_inflate(
1102 A: *mut fmpz_mod_mpoly_struct,
1103 B: *mut fmpz_mod_mpoly_struct,
1104 shift: *const fmpz,
1105 stride: *const fmpz,
1106 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1107 );
1108}
1109extern "C" {
1110 pub fn fmpz_mod_mpoly_univar_init(
1111 A: *mut fmpz_mod_mpoly_univar_struct,
1112 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1113 );
1114}
1115extern "C" {
1116 pub fn fmpz_mod_mpoly_univar_clear(
1117 A: *mut fmpz_mod_mpoly_univar_struct,
1118 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1119 );
1120}
1121extern "C" {
1122 pub fn fmpz_mod_mpoly_univar_fit_length(
1123 A: *mut fmpz_mod_mpoly_univar_struct,
1124 length: mp_limb_signed_t,
1125 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1126 );
1127}
1128extern "C" {
1129 pub fn fmpz_mod_mpoly_univar_print_pretty(
1130 A: *mut fmpz_mod_mpoly_univar_struct,
1131 x: *mut *const ::std::os::raw::c_char,
1132 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1133 );
1134}
1135extern "C" {
1136 pub fn fmpz_mod_mpoly_univar_assert_canonical(
1137 A: *mut fmpz_mod_mpoly_univar_struct,
1138 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1139 );
1140}
1141extern "C" {
1142 pub fn fmpz_mod_mpoly_univar_set_coeff_ui(
1143 A: *mut fmpz_mod_mpoly_univar_struct,
1144 e: mp_limb_t,
1145 c: *mut fmpz_mod_mpoly_struct,
1146 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1147 );
1148}
1149extern "C" {
1150 pub fn fmpz_mod_mpoly_to_univar(
1151 A: *mut fmpz_mod_mpoly_univar_struct,
1152 B: *mut fmpz_mod_mpoly_struct,
1153 var: mp_limb_signed_t,
1154 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1155 );
1156}
1157extern "C" {
1158 pub fn _fmpz_mod_mpoly_from_univar(
1159 A: *mut fmpz_mod_mpoly_struct,
1160 Abits: mp_limb_t,
1161 B: *mut fmpz_mod_mpoly_univar_struct,
1162 var: mp_limb_signed_t,
1163 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1164 );
1165}
1166extern "C" {
1167 pub fn fmpz_mod_mpoly_from_univar(
1168 A: *mut fmpz_mod_mpoly_struct,
1169 B: *mut fmpz_mod_mpoly_univar_struct,
1170 var: mp_limb_signed_t,
1171 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1172 );
1173}
1174extern "C" {
1175 pub fn fmpz_mod_mpoly_univar_pseudo_gcd(
1176 Gx: *mut fmpz_mod_mpoly_univar_struct,
1177 Ax: *mut fmpz_mod_mpoly_univar_struct,
1178 Bx: *mut fmpz_mod_mpoly_univar_struct,
1179 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1180 ) -> ::std::os::raw::c_int;
1181}
1182extern "C" {
1183 pub fn fmpz_mod_mpoly_univar_resultant(
1184 R: *mut fmpz_mod_mpoly_struct,
1185 Ax: *mut fmpz_mod_mpoly_univar_struct,
1186 Bx: *mut fmpz_mod_mpoly_univar_struct,
1187 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1188 ) -> ::std::os::raw::c_int;
1189}
1190extern "C" {
1191 pub fn fmpz_mod_mpoly_univar_discriminant(
1192 D: *mut fmpz_mod_mpoly_struct,
1193 Fx: *mut fmpz_mod_mpoly_univar_struct,
1194 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1195 ) -> ::std::os::raw::c_int;
1196}
1197extern "C" {
1198 pub fn fmpz_mod_mpoly_resultant(
1199 R: *mut fmpz_mod_mpoly_struct,
1200 A: *mut fmpz_mod_mpoly_struct,
1201 B: *mut fmpz_mod_mpoly_struct,
1202 var: mp_limb_signed_t,
1203 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1204 ) -> ::std::os::raw::c_int;
1205}
1206extern "C" {
1207 pub fn fmpz_mod_mpoly_discriminant(
1208 R: *mut fmpz_mod_mpoly_struct,
1209 A: *mut fmpz_mod_mpoly_struct,
1210 var: mp_limb_signed_t,
1211 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1212 ) -> ::std::os::raw::c_int;
1213}
1214extern "C" {
1215 pub fn _fmpz_mod_mpoly_init_dense_mock(
1216 D: *mut fmpz_mod_poly_struct,
1217 A: *mut fmpz_mod_mpoly_struct,
1218 Adeg_bounds: *const mp_limb_signed_t,
1219 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1220 );
1221}
1222extern "C" {
1223 pub fn mpoly_void_ring_init_fmpz_mod_mpoly_ctx(
1224 R: *mut _bindgen_ty_22,
1225 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1226 );
1227}
1228#[repr(C)]
1229#[derive(Debug, Copy, Clone)]
1230pub struct fmpz_mod_mpoly_geobucket {
1231 pub polys: [fmpz_mod_mpoly_struct; 32usize],
1232 pub temps: [fmpz_mod_mpoly_struct; 32usize],
1233 pub length: mp_limb_signed_t,
1234}
1235pub type fmpz_mod_mpoly_geobucket_struct = fmpz_mod_mpoly_geobucket;
1236pub type fmpz_mod_mpoly_geobucket_t = [fmpz_mod_mpoly_geobucket_struct; 1usize];
1237extern "C" {
1238 pub fn fmpz_mod_mpoly_geobucket_init(
1239 B: *mut fmpz_mod_mpoly_geobucket_struct,
1240 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1241 );
1242}
1243extern "C" {
1244 pub fn fmpz_mod_mpoly_geobucket_clear(
1245 B: *mut fmpz_mod_mpoly_geobucket_struct,
1246 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1247 );
1248}
1249extern "C" {
1250 pub fn fmpz_mod_mpoly_geobucket_empty(
1251 p: *mut fmpz_mod_mpoly_struct,
1252 B: *mut fmpz_mod_mpoly_geobucket_struct,
1253 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1254 );
1255}
1256extern "C" {
1257 pub fn fmpz_mod_mpoly_geobucket_fit_length(
1258 B: *mut fmpz_mod_mpoly_geobucket_struct,
1259 i: mp_limb_signed_t,
1260 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1261 );
1262}
1263extern "C" {
1264 pub fn fmpz_mod_mpoly_geobucket_set(
1265 B: *mut fmpz_mod_mpoly_geobucket_struct,
1266 p: *mut fmpz_mod_mpoly_struct,
1267 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1268 );
1269}
1270extern "C" {
1271 pub fn fmpz_mod_mpoly_geobucket_add(
1272 B: *mut fmpz_mod_mpoly_geobucket_struct,
1273 p: *mut fmpz_mod_mpoly_struct,
1274 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1275 );
1276}
1277extern "C" {
1278 pub fn fmpz_mod_mpoly_geobucket_sub(
1279 B: *mut fmpz_mod_mpoly_geobucket_struct,
1280 p: *mut fmpz_mod_mpoly_struct,
1281 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1282 );
1283}
1284extern "C" {
1285 pub fn fmpz_mod_mpolyl_lead_coeff(
1286 c: *mut fmpz_mod_mpoly_struct,
1287 A: *mut fmpz_mod_mpoly_struct,
1288 num_vars: mp_limb_signed_t,
1289 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1290 );
1291}
1292extern "C" {
1293 pub fn fmpz_mod_mpolyl_content(
1294 g: *mut fmpz_mod_mpoly_struct,
1295 A: *mut fmpz_mod_mpoly_struct,
1296 num_vars: mp_limb_signed_t,
1297 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1298 ) -> ::std::os::raw::c_int;
1299}
1300extern "C" {
1301 pub fn _fmpz_mod_mpoly_to_fmpz_mod_poly_deflate(
1302 A: *mut fmpz_mod_poly_struct,
1303 B: *mut fmpz_mod_mpoly_struct,
1304 var: mp_limb_signed_t,
1305 Bshift: *const mp_limb_t,
1306 Bstride: *const mp_limb_t,
1307 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1308 );
1309}
1310extern "C" {
1311 pub fn _fmpz_mod_mpoly_from_fmpz_mod_poly_inflate(
1312 A: *mut fmpz_mod_mpoly_struct,
1313 Abits: mp_limb_t,
1314 B: *mut fmpz_mod_poly_struct,
1315 var: mp_limb_signed_t,
1316 Ashift: *const mp_limb_t,
1317 Astride: *const mp_limb_t,
1318 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1319 );
1320}
1321extern "C" {
1322 pub fn _fmpz_mod_mpoly_set_nmod_mpoly(
1323 A: *mut fmpz_mod_mpoly_struct,
1324 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1325 nA: *mut nmod_mpoly_struct,
1326 nctx: *mut nmod_mpoly_ctx_struct,
1327 );
1328}
1329extern "C" {
1330 pub fn _fmpz_mod_mpoly_get_nmod_mpoly(
1331 nA: *mut nmod_mpoly_struct,
1332 nctx: *mut nmod_mpoly_ctx_struct,
1333 A: *mut fmpz_mod_mpoly_struct,
1334 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1335 );
1336}
1337extern "C" {
1338 pub fn fmpz_mod_mpoly_repack_bits(
1339 A: *mut fmpz_mod_mpoly_struct,
1340 B: *mut fmpz_mod_mpoly_struct,
1341 Abits: mp_limb_t,
1342 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1343 ) -> ::std::os::raw::c_int;
1344}
1345extern "C" {
1346 pub fn fmpz_mod_mpoly_repack_bits_inplace(
1347 A: *mut fmpz_mod_mpoly_struct,
1348 Abits: mp_limb_t,
1349 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1350 ) -> ::std::os::raw::c_int;
1351}
1352extern "C" {
1353 pub fn fmpz_mod_mpoly_to_mpolyl_perm_deflate(
1354 A: *mut fmpz_mod_mpoly_struct,
1355 lctx: *mut fmpz_mod_mpoly_ctx_struct,
1356 B: *mut fmpz_mod_mpoly_struct,
1357 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1358 perm: *const mp_limb_signed_t,
1359 shift: *const mp_limb_t,
1360 stride: *const mp_limb_t,
1361 );
1362}
1363extern "C" {
1364 pub fn fmpz_mod_mpoly_from_mpolyl_perm_inflate(
1365 A: *mut fmpz_mod_mpoly_struct,
1366 Abits: mp_limb_t,
1367 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1368 B: *mut fmpz_mod_mpoly_struct,
1369 lctx: *mut fmpz_mod_mpoly_ctx_struct,
1370 perm: *const mp_limb_signed_t,
1371 shift: *const mp_limb_t,
1372 stride: *const mp_limb_t,
1373 );
1374}
1375
1376#[inline]
1377pub unsafe fn fmpz_mod_mpoly_init(
1378 A: *mut fmpz_mod_mpoly_struct,
1379 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1380) {
1381 fmpz_mod_mpoly_init2(A, 0, ctx);
1382}