1#![allow(non_snake_case)]
2#![allow(non_camel_case_types)]
3
4use crate::deps::*;
7use crate::flint::*;
8use crate::fmpz::{fmpz, fmpz_t};
9use crate::fmpz_mod::fmpz_mod_ctx_struct;
10use crate::fmpz_mod_mat::fmpz_mod_mat_struct;
11use crate::fmpz_mod_mpoly::*;
12use crate::fmpz_mod_poly::fmpz_mod_poly_struct;
13use crate::mpoly::*;
14use crate::nmod_mpoly::nmod_mpoly_ctx_struct;
15use crate::nmod_mpoly_factor::nmod_mpoly_factor_struct;
16
17#[repr(C)]
18#[derive(Debug, Copy, Clone)]
19pub struct fmpz_mod_mpoly_factor_struct {
20 pub constant: fmpz_t,
21 pub poly: *mut fmpz_mod_mpoly_struct,
22 pub exp: *mut fmpz,
23 pub num: mp_limb_signed_t,
24 pub alloc: mp_limb_signed_t,
25}
26pub type fmpz_mod_mpoly_factor_t = [fmpz_mod_mpoly_factor_struct; 1usize];
27extern "C" {
28 pub fn fmpz_mod_mpoly_factor_init(
29 f: *mut fmpz_mod_mpoly_factor_struct,
30 ctx: *mut fmpz_mod_mpoly_ctx_struct,
31 );
32}
33extern "C" {
34 pub fn fmpz_mod_mpoly_factor_init2(
35 f: *mut fmpz_mod_mpoly_factor_struct,
36 alloc: mp_limb_signed_t,
37 ctx: *mut fmpz_mod_mpoly_ctx_struct,
38 );
39}
40extern "C" {
41 pub fn fmpz_mod_mpoly_factor_realloc(
42 f: *mut fmpz_mod_mpoly_factor_struct,
43 alloc: mp_limb_signed_t,
44 ctx: *mut fmpz_mod_mpoly_ctx_struct,
45 );
46}
47extern "C" {
48 pub fn fmpz_mod_mpoly_factor_fit_length(
49 f: *mut fmpz_mod_mpoly_factor_struct,
50 len: mp_limb_signed_t,
51 ctx: *mut fmpz_mod_mpoly_ctx_struct,
52 );
53}
54extern "C" {
55 pub fn fmpz_mod_mpoly_factor_clear(
56 f: *mut fmpz_mod_mpoly_factor_struct,
57 ctx: *mut fmpz_mod_mpoly_ctx_struct,
58 );
59}
60extern "C" {
61 pub fn fmpz_mod_mpoly_factor_length(
62 f: *mut fmpz_mod_mpoly_factor_struct,
63 ctx: *mut fmpz_mod_mpoly_ctx_struct,
64 ) -> mp_limb_signed_t;
65}
66extern "C" {
67 pub fn fmpz_mod_mpoly_factor_get_constant_fmpz(
68 c: *mut fmpz,
69 f: *mut fmpz_mod_mpoly_factor_struct,
70 ctx: *mut fmpz_mod_mpoly_ctx_struct,
71 );
72}
73extern "C" {
74 pub fn fmpz_mod_mpoly_factor_get_base(
75 p: *mut fmpz_mod_mpoly_struct,
76 f: *mut fmpz_mod_mpoly_factor_struct,
77 i: mp_limb_signed_t,
78 ctx: *mut fmpz_mod_mpoly_ctx_struct,
79 );
80}
81extern "C" {
82 pub fn fmpz_mod_mpoly_factor_swap_base(
83 p: *mut fmpz_mod_mpoly_struct,
84 f: *mut fmpz_mod_mpoly_factor_struct,
85 i: mp_limb_signed_t,
86 ctx: *mut fmpz_mod_mpoly_ctx_struct,
87 );
88}
89extern "C" {
90 pub fn fmpz_mod_mpoly_factor_get_exp_si(
91 f: *mut fmpz_mod_mpoly_factor_struct,
92 i: mp_limb_signed_t,
93 ctx: *mut fmpz_mod_mpoly_ctx_struct,
94 ) -> mp_limb_signed_t;
95}
96extern "C" {
97 pub fn fmpz_mod_mpoly_factor_swap(
98 f: *mut fmpz_mod_mpoly_factor_struct,
99 g: *mut fmpz_mod_mpoly_factor_struct,
100 ctx: *mut fmpz_mod_mpoly_ctx_struct,
101 );
102}
103extern "C" {
104 pub fn fmpz_mod_mpoly_factor_set(
105 f: *mut fmpz_mod_mpoly_factor_struct,
106 g: *mut fmpz_mod_mpoly_factor_struct,
107 ctx: *mut fmpz_mod_mpoly_ctx_struct,
108 );
109}
110extern "C" {
111 pub fn fmpz_mod_mpoly_factor_print_pretty(
112 f: *mut fmpz_mod_mpoly_factor_struct,
113 vars: *mut *const ::std::os::raw::c_char,
114 ctx: *mut fmpz_mod_mpoly_ctx_struct,
115 );
116}
117extern "C" {
118 pub fn fmpz_mod_mpoly_factor_content(
119 f: *mut fmpz_mod_mpoly_factor_struct,
120 A: *mut fmpz_mod_mpoly_struct,
121 ctx: *mut fmpz_mod_mpoly_ctx_struct,
122 ) -> ::std::os::raw::c_int;
123}
124extern "C" {
125 pub fn fmpz_mod_mpoly_factor_squarefree(
126 f: *mut fmpz_mod_mpoly_factor_struct,
127 A: *mut fmpz_mod_mpoly_struct,
128 ctx: *mut fmpz_mod_mpoly_ctx_struct,
129 ) -> ::std::os::raw::c_int;
130}
131extern "C" {
132 pub fn fmpz_mod_mpoly_factor(
133 f: *mut fmpz_mod_mpoly_factor_struct,
134 A: *mut fmpz_mod_mpoly_struct,
135 ctx: *mut fmpz_mod_mpoly_ctx_struct,
136 ) -> ::std::os::raw::c_int;
137}
138extern "C" {
139 pub fn fmpz_mod_mpoly_factor_sort(
140 f: *mut fmpz_mod_mpoly_factor_struct,
141 ctx: *mut fmpz_mod_mpoly_ctx_struct,
142 );
143}
144extern "C" {
145 pub fn fmpz_mod_mpoly_factor_cmp(
146 A: *mut fmpz_mod_mpoly_factor_struct,
147 B: *mut fmpz_mod_mpoly_factor_struct,
148 ctx: *mut fmpz_mod_mpoly_ctx_struct,
149 ) -> ::std::os::raw::c_int;
150}
151extern "C" {
152 pub fn _fmpz_mod_poly_degree(a: *mut fmpz_mod_poly_struct) -> mp_limb_signed_t;
153}
154extern "C" {
155 pub fn fmpz_mod_poly_scalar_addmul_fmpz_mod(
156 A: *mut fmpz_mod_poly_struct,
157 B: *mut fmpz_mod_poly_struct,
158 C: *mut fmpz_mod_poly_struct,
159 d0: *mut fmpz,
160 ctx: *mut fmpz_mod_ctx_struct,
161 );
162}
163extern "C" {
164 pub fn fmpz_mod_poly_addmul_linear(
165 A: *mut fmpz_mod_poly_struct,
166 B: *mut fmpz_mod_poly_struct,
167 C: *mut fmpz_mod_poly_struct,
168 d1: *mut fmpz,
169 d0: *mut fmpz,
170 ctx: *mut fmpz_mod_ctx_struct,
171 );
172}
173extern "C" {
174 pub fn fmpz_mod_poly_shift_left_scalar_addmul_fmpz_mod(
175 A: *mut fmpz_mod_poly_struct,
176 k: mp_limb_signed_t,
177 c: *mut fmpz,
178 ctx: *mut fmpz_mod_ctx_struct,
179 );
180}
181extern "C" {
182 pub fn fmpz_mod_poly_eval_pow(
183 eval: *mut fmpz,
184 P: *mut fmpz_mod_poly_struct,
185 alphapow: *mut fmpz_mod_poly_struct,
186 ctx: *mut fmpz_mod_ctx_struct,
187 );
188}
189extern "C" {
190 pub fn fmpz_mod_poly_eval2_pow(
191 evalp: *mut fmpz,
192 evalm: *mut fmpz,
193 P: *mut fmpz_mod_poly_struct,
194 alphapow: *mut fmpz_mod_poly_struct,
195 ctx: *mut fmpz_mod_ctx_struct,
196 );
197}
198extern "C" {
199 pub fn fmpz_mod_mat_is_reduced(N: *mut fmpz_mod_mat_struct) -> ::std::os::raw::c_int;
200}
201extern "C" {
202 pub fn fmpz_mod_mat_init_nullspace_tr(
203 X: *mut fmpz_mod_mat_struct,
204 tmp: *mut fmpz_mod_mat_struct,
205 ctx: *mut fmpz_mod_ctx_struct,
206 );
207}
208#[repr(C)]
209#[derive(Debug, Copy, Clone)]
210pub struct fmpz_mod_bpoly_struct {
211 pub coeffs: *mut fmpz_mod_poly_struct,
212 pub alloc: mp_limb_signed_t,
213 pub length: mp_limb_signed_t,
214}
215pub type fmpz_mod_bpoly_t = [fmpz_mod_bpoly_struct; 1usize];
216#[repr(C)]
217#[derive(Debug, Copy, Clone)]
218pub struct fmpz_mod_tpoly_struct {
219 pub coeffs: *mut fmpz_mod_bpoly_struct,
220 pub alloc: mp_limb_signed_t,
221 pub length: mp_limb_signed_t,
222}
223pub type fmpz_mod_tpoly_t = [fmpz_mod_tpoly_struct; 1usize];
224#[repr(C)]
225#[derive(Debug, Copy, Clone)]
226pub struct fmpz_mod_polyu_struct {
227 pub exps: *mut mp_limb_t,
228 pub coeffs: *mut fmpz,
229 pub length: mp_limb_signed_t,
230 pub alloc: mp_limb_signed_t,
231}
232pub type fmpz_mod_polyu_t = [fmpz_mod_polyu_struct; 1usize];
233#[repr(C)]
234#[derive(Debug, Copy, Clone)]
235pub struct fmpz_mod_polyun_struct {
236 pub coeffs: *mut fmpz_mod_poly_struct,
237 pub exps: *mut mp_limb_t,
238 pub alloc: mp_limb_signed_t,
239 pub length: mp_limb_signed_t,
240}
241pub type fmpz_mod_polyun_t = [fmpz_mod_polyun_struct; 1usize];
242#[repr(C)]
243#[derive(Debug, Copy, Clone)]
244pub struct fmpz_mod_mpolyu_struct {
245 pub coeffs: *mut fmpz_mod_mpoly_struct,
246 pub exps: *mut mp_limb_t,
247 pub alloc: mp_limb_signed_t,
248 pub length: mp_limb_signed_t,
249 pub bits: mp_limb_t,
250}
251pub type fmpz_mod_mpolyu_t = [fmpz_mod_mpolyu_struct; 1usize];
252#[repr(C)]
253#[derive(Debug, Copy, Clone)]
254pub struct fmpz_mod_mpolyn_struct {
255 pub coeffs: *mut fmpz_mod_poly_struct,
256 pub exps: *mut mp_limb_t,
257 pub alloc: mp_limb_signed_t,
258 pub length: mp_limb_signed_t,
259 pub bits: mp_limb_signed_t,
260}
261pub type fmpz_mod_mpolyn_t = [fmpz_mod_mpolyn_struct; 1usize];
262extern "C" {
263 pub fn fmpz_mod_mpoly_factor_separable(
264 f: *mut fmpz_mod_mpoly_factor_struct,
265 A: *mut fmpz_mod_mpoly_struct,
266 ctx: *mut fmpz_mod_mpoly_ctx_struct,
267 sep: ::std::os::raw::c_int,
268 ) -> ::std::os::raw::c_int;
269}
270extern "C" {
271 pub fn fmpz_mod_mpoly_factor_expand(
272 A: *mut fmpz_mod_mpoly_struct,
273 f: *mut fmpz_mod_mpoly_factor_struct,
274 ctx: *mut fmpz_mod_mpoly_ctx_struct,
275 ) -> ::std::os::raw::c_int;
276}
277extern "C" {
278 pub fn fmpz_mod_mpoly_factor_matches(
279 a: *mut fmpz_mod_mpoly_struct,
280 f: *mut fmpz_mod_mpoly_factor_struct,
281 ctx: *mut fmpz_mod_mpoly_ctx_struct,
282 ) -> ::std::os::raw::c_int;
283}
284extern "C" {
285 pub fn fmpz_mod_mpoly_factor_append_fmpz_swap(
286 f: *mut fmpz_mod_mpoly_factor_struct,
287 A: *mut fmpz_mod_mpoly_struct,
288 e: *mut fmpz,
289 ctx: *mut fmpz_mod_mpoly_ctx_struct,
290 );
291}
292extern "C" {
293 pub fn fmpz_mod_mpoly_factor_one(
294 f: *mut fmpz_mod_mpoly_factor_struct,
295 ctx: *mut fmpz_mod_mpoly_ctx_struct,
296 );
297}
298extern "C" {
299 pub fn _fmpz_mod_mpoly_get_lead0(
300 c: *mut fmpz_mod_mpoly_struct,
301 A: *mut fmpz_mod_mpoly_struct,
302 ctx: *mut fmpz_mod_mpoly_ctx_struct,
303 );
304}
305extern "C" {
306 pub fn _fmpz_mod_mpoly_set_lead0(
307 A: *mut fmpz_mod_mpoly_struct,
308 B: *mut fmpz_mod_mpoly_struct,
309 c: *mut fmpz_mod_mpoly_struct,
310 ctx: *mut fmpz_mod_mpoly_ctx_struct,
311 );
312}
313extern "C" {
314 pub fn _fmpz_mod_mpoly_factor_set_nmod_mpoly_factor(
315 f: *mut fmpz_mod_mpoly_factor_struct,
316 ctx: *mut fmpz_mod_mpoly_ctx_struct,
317 nf: *mut nmod_mpoly_factor_struct,
318 nctx: *mut nmod_mpoly_ctx_struct,
319 );
320}
321#[repr(C)]
322#[derive(Debug, Copy, Clone)]
323pub struct fmpz_mod_poly_stack_struct {
324 pub array: *mut *mut fmpz_mod_poly_struct,
325 pub alloc: mp_limb_signed_t,
326 pub top: mp_limb_signed_t,
327}
328pub type fmpz_mod_poly_stack_t = [fmpz_mod_poly_stack_struct; 1usize];
329#[repr(C)]
330#[derive(Debug, Copy, Clone)]
331pub struct fmpz_mod_bpoly_stack_struct {
332 pub array: *mut *mut fmpz_mod_bpoly_struct,
333 pub alloc: mp_limb_signed_t,
334 pub top: mp_limb_signed_t,
335}
336pub type fmpz_mod_bpoly_stack_t = [fmpz_mod_bpoly_stack_struct; 1usize];
337#[repr(C)]
338#[derive(Debug, Copy, Clone)]
339pub struct fmpz_mod_polyun_stack_struct {
340 pub array: *mut *mut fmpz_mod_polyun_struct,
341 pub alloc: mp_limb_signed_t,
342 pub top: mp_limb_signed_t,
343}
344pub type fmpz_mod_polyun_stack_t = [fmpz_mod_polyun_stack_struct; 1usize];
345#[repr(C)]
346#[derive(Debug, Copy, Clone)]
347pub struct fmpz_mod_mpolyn_stack_struct {
348 pub array: *mut *mut fmpz_mod_mpolyn_struct,
349 pub alloc: mp_limb_signed_t,
350 pub top: mp_limb_signed_t,
351 pub bits: mp_limb_t,
352}
353pub type fmpz_mod_mpolyn_stack_t = [fmpz_mod_mpolyn_stack_struct; 1usize];
354#[repr(C)]
355#[derive(Debug, Copy, Clone)]
356pub struct fmpz_mod_poly_bpoly_stack_struct {
357 pub poly_stack: fmpz_mod_poly_stack_t,
358 pub bpoly_stack: fmpz_mod_bpoly_stack_t,
359}
360pub type fmpz_mod_poly_bpoly_stack_t = [fmpz_mod_poly_bpoly_stack_struct; 1usize];
361#[repr(C)]
362#[derive(Debug, Copy, Clone)]
363pub struct fmpz_mod_poly_polyun_stack_struct {
364 pub poly_stack: fmpz_mod_poly_stack_t,
365 pub polyun_stack: fmpz_mod_polyun_stack_t,
366}
367pub type fmpz_mod_poly_polyun_stack_t = [fmpz_mod_poly_polyun_stack_struct; 1usize];
368#[repr(C)]
369#[derive(Debug, Copy, Clone)]
370pub struct fmpz_mod_poly_polyun_mpolyn_stack_struct {
371 pub poly_stack: fmpz_mod_poly_stack_t,
372 pub polyun_stack: fmpz_mod_polyun_stack_t,
373 pub mpolyn_stack: fmpz_mod_mpolyn_stack_t,
374}
375pub type fmpz_mod_poly_polyun_mpolyn_stack_t = [fmpz_mod_poly_polyun_mpolyn_stack_struct; 1usize];
376extern "C" {
377 pub fn fmpz_mod_poly_stack_init(S: *mut fmpz_mod_poly_stack_struct);
378}
379extern "C" {
380 pub fn fmpz_mod_poly_stack_clear(S: *mut fmpz_mod_poly_stack_struct);
381}
382extern "C" {
383 pub fn fmpz_mod_poly_stack_fit_request(
384 S: *mut fmpz_mod_poly_stack_struct,
385 k: mp_limb_signed_t,
386 ) -> *mut *mut fmpz_mod_poly_struct;
387}
388extern "C" {
389 pub fn fmpz_mod_poly_stack_request(
390 S: *mut fmpz_mod_poly_stack_struct,
391 k: mp_limb_signed_t,
392 ) -> *mut *mut fmpz_mod_poly_struct;
393}
394extern "C" {
395 pub fn fmpz_mod_poly_stack_take_top(
396 S: *mut fmpz_mod_poly_stack_struct,
397 ) -> *mut fmpz_mod_poly_struct;
398}
399extern "C" {
400 pub fn fmpz_mod_poly_stack_give_back(S: *mut fmpz_mod_poly_stack_struct, k: mp_limb_signed_t);
401}
402extern "C" {
403 pub fn fmpz_mod_poly_stack_size(S: *mut fmpz_mod_poly_stack_struct) -> mp_limb_signed_t;
404}
405extern "C" {
406 pub fn fmpz_mod_bpoly_stack_init(S: *mut fmpz_mod_bpoly_stack_struct);
407}
408extern "C" {
409 pub fn fmpz_mod_bpoly_stack_clear(S: *mut fmpz_mod_bpoly_stack_struct);
410}
411extern "C" {
412 pub fn fmpz_mod_bpoly_stack_fit_request(
413 S: *mut fmpz_mod_bpoly_stack_struct,
414 k: mp_limb_signed_t,
415 ) -> *mut *mut fmpz_mod_bpoly_struct;
416}
417extern "C" {
418 pub fn fmpz_mod_bpoly_stack_request(
419 S: *mut fmpz_mod_bpoly_stack_struct,
420 k: mp_limb_signed_t,
421 ) -> *mut *mut fmpz_mod_bpoly_struct;
422}
423extern "C" {
424 pub fn fmpz_mod_bpoly_stack_take_top(
425 S: *mut fmpz_mod_bpoly_stack_struct,
426 ) -> *mut fmpz_mod_bpoly_struct;
427}
428extern "C" {
429 pub fn fmpz_mod_bpoly_stack_give_back(S: *mut fmpz_mod_bpoly_stack_struct, k: mp_limb_signed_t);
430}
431extern "C" {
432 pub fn fmpz_mod_bpoly_stack_size(S: *mut fmpz_mod_bpoly_stack_struct) -> mp_limb_signed_t;
433}
434extern "C" {
435 pub fn fmpz_mod_polyun_stack_init(S: *mut fmpz_mod_polyun_stack_struct);
436}
437extern "C" {
438 pub fn fmpz_mod_polyun_stack_clear(S: *mut fmpz_mod_polyun_stack_struct);
439}
440extern "C" {
441 pub fn fmpz_mod_polyun_stack_fit_request(
442 S: *mut fmpz_mod_polyun_stack_struct,
443 k: mp_limb_signed_t,
444 ) -> *mut *mut fmpz_mod_polyun_struct;
445}
446extern "C" {
447 pub fn fmpz_mod_polyun_stack_request(
448 S: *mut fmpz_mod_polyun_stack_struct,
449 k: mp_limb_signed_t,
450 ) -> *mut *mut fmpz_mod_polyun_struct;
451}
452extern "C" {
453 pub fn fmpz_mod_polyun_stack_take_top(
454 S: *mut fmpz_mod_polyun_stack_struct,
455 ) -> *mut fmpz_mod_polyun_struct;
456}
457extern "C" {
458 pub fn fmpz_mod_polyun_stack_give_back(
459 S: *mut fmpz_mod_polyun_stack_struct,
460 k: mp_limb_signed_t,
461 );
462}
463extern "C" {
464 pub fn fmpz_mod_polyun_stack_size(S: *mut fmpz_mod_polyun_stack_struct) -> mp_limb_signed_t;
465}
466extern "C" {
467 pub fn fmpz_mod_mpolyn_stack_init(
468 S: *mut fmpz_mod_mpolyn_stack_struct,
469 bits: mp_limb_t,
470 ctx: *mut fmpz_mod_mpoly_ctx_struct,
471 );
472}
473extern "C" {
474 pub fn fmpz_mod_mpolyn_stack_clear(
475 S: *mut fmpz_mod_mpolyn_stack_struct,
476 ctx: *mut fmpz_mod_mpoly_ctx_struct,
477 );
478}
479extern "C" {
480 pub fn fmpz_mod_mpolyn_stack_fit_request(
481 S: *mut fmpz_mod_mpolyn_stack_struct,
482 k: mp_limb_signed_t,
483 ctx: *mut fmpz_mod_mpoly_ctx_struct,
484 ) -> *mut *mut fmpz_mod_mpolyn_struct;
485}
486extern "C" {
487 pub fn fmpz_mod_mpolyn_stack_request(
488 S: *mut fmpz_mod_mpolyn_stack_struct,
489 k: mp_limb_signed_t,
490 ctx: *mut fmpz_mod_mpoly_ctx_struct,
491 ) -> *mut *mut fmpz_mod_mpolyn_struct;
492}
493extern "C" {
494 pub fn fmpz_mod_mpolyn_stack_take_top(
495 S: *mut fmpz_mod_mpolyn_stack_struct,
496 ) -> *mut fmpz_mod_mpolyn_struct;
497}
498extern "C" {
499 pub fn fmpz_mod_mpolyn_stack_give_back(
500 S: *mut fmpz_mod_mpolyn_stack_struct,
501 k: mp_limb_signed_t,
502 );
503}
504extern "C" {
505 pub fn fmpz_mod_mpolyn_stack_size(S: *mut fmpz_mod_mpolyn_stack_struct) -> mp_limb_signed_t;
506}
507extern "C" {
508 pub fn _fmpz_mod_poly_vec_max_degree(
509 A: *const fmpz_mod_poly_struct,
510 Alen: mp_limb_signed_t,
511 ctx: *mut fmpz_mod_ctx_struct,
512 ) -> mp_limb_signed_t;
513}
514extern "C" {
515 pub fn _fmpz_mod_poly_vec_content(
516 g: *mut fmpz_mod_poly_struct,
517 A: *const fmpz_mod_poly_struct,
518 Alen: mp_limb_signed_t,
519 ctx: *mut fmpz_mod_ctx_struct,
520 );
521}
522extern "C" {
523 pub fn _fmpz_mod_poly_vec_remove_content(
524 g: *mut fmpz_mod_poly_struct,
525 A: *mut fmpz_mod_poly_struct,
526 Alen: mp_limb_signed_t,
527 ctx: *mut fmpz_mod_ctx_struct,
528 );
529}
530extern "C" {
531 pub fn _fmpz_mod_poly_vec_mul_poly(
532 A: *mut fmpz_mod_poly_struct,
533 Alen: mp_limb_signed_t,
534 g: *mut fmpz_mod_poly_struct,
535 ctx: *mut fmpz_mod_ctx_struct,
536 );
537}
538extern "C" {
539 pub fn _fmpz_mod_poly_vec_divexact_poly(
540 A: *mut fmpz_mod_poly_struct,
541 Alen: mp_limb_signed_t,
542 g: *mut fmpz_mod_poly_struct,
543 ctx: *mut fmpz_mod_ctx_struct,
544 );
545}
546extern "C" {
547 pub fn _fmpz_mod_poly_vec_mul_fmpz_mod(
548 A: *mut fmpz_mod_poly_struct,
549 Alen: mp_limb_signed_t,
550 g: *mut fmpz,
551 ctx: *mut fmpz_mod_ctx_struct,
552 );
553}
554extern "C" {
555 pub fn fmpz_mod_polyu1n_bidegree(A: *mut fmpz_mod_polyun_struct) -> mp_limb_t;
556}
557extern "C" {
558 pub fn fmpz_mod_polyun_leadcoeff(A: *mut fmpz_mod_polyun_struct) -> *const fmpz;
559}
560extern "C" {
561 pub fn fmpz_mod_polyun_swap(A: *mut fmpz_mod_polyun_struct, B: *mut fmpz_mod_polyun_struct);
562}
563extern "C" {
564 pub fn fmpz_mod_polyun_is_canonical(
565 A: *mut fmpz_mod_polyun_struct,
566 ctx: *mut fmpz_mod_ctx_struct,
567 ) -> ::std::os::raw::c_int;
568}
569extern "C" {
570 pub fn fmpz_mod_polyun_init(A: *mut fmpz_mod_polyun_struct, ctx: *mut fmpz_mod_ctx_struct);
571}
572extern "C" {
573 pub fn fmpz_mod_polyun_clear(A: *mut fmpz_mod_polyun_struct, ctx: *mut fmpz_mod_ctx_struct);
574}
575extern "C" {
576 pub fn fmpz_mod_polyun_realloc(
577 A: *mut fmpz_mod_polyun_struct,
578 len: mp_limb_signed_t,
579 ctx: *mut fmpz_mod_ctx_struct,
580 );
581}
582extern "C" {
583 pub fn fmpz_mod_polyu2n_print_pretty(
584 A: *mut fmpz_mod_polyun_struct,
585 var0: *const ::std::os::raw::c_char,
586 var1: *const ::std::os::raw::c_char,
587 varlast: *const ::std::os::raw::c_char,
588 ctx: *mut fmpz_mod_ctx_struct,
589 );
590}
591extern "C" {
592 pub fn fmpz_mod_polyun_equal(
593 A: *mut fmpz_mod_polyun_struct,
594 B: *mut fmpz_mod_polyun_struct,
595 ctx: *mut fmpz_mod_ctx_struct,
596 ) -> ::std::os::raw::c_int;
597}
598extern "C" {
599 pub fn fmpz_mod_polyun_set(
600 A: *mut fmpz_mod_polyun_struct,
601 B: *mut fmpz_mod_polyun_struct,
602 ctx: *mut fmpz_mod_ctx_struct,
603 );
604}
605extern "C" {
606 pub fn fmpz_mod_polyu3n_print_pretty(
607 A: *mut fmpz_mod_polyun_struct,
608 var0: *const ::std::os::raw::c_char,
609 var1: *const ::std::os::raw::c_char,
610 var2: *const ::std::os::raw::c_char,
611 varlast: *const ::std::os::raw::c_char,
612 ctx: *mut fmpz_mod_ctx_struct,
613 );
614}
615extern "C" {
616 pub fn fmpz_mod_polyu1n_print_pretty(
617 A: *mut fmpz_mod_polyun_struct,
618 var0: *const ::std::os::raw::c_char,
619 varlast: *const ::std::os::raw::c_char,
620 ctx: *mut fmpz_mod_ctx_struct,
621 );
622}
623extern "C" {
624 pub fn fmpz_mod_polyun_fit_length(
625 A: *mut fmpz_mod_polyun_struct,
626 len: mp_limb_signed_t,
627 ctx: *mut fmpz_mod_ctx_struct,
628 );
629}
630extern "C" {
631 pub fn fmpz_mod_polyun_one(A: *mut fmpz_mod_polyun_struct, ctx: *mut fmpz_mod_ctx_struct);
632}
633extern "C" {
634 pub fn fmpz_mod_mpoly_get_polyu1n(
635 A: *mut fmpz_mod_polyun_struct,
636 B: *mut fmpz_mod_mpoly_struct,
637 varx: mp_limb_signed_t,
638 vary: mp_limb_signed_t,
639 ctx: *mut fmpz_mod_mpoly_ctx_struct,
640 );
641}
642extern "C" {
643 pub fn fmpz_mod_mpoly_set_polyu1n(
644 B: *mut fmpz_mod_mpoly_struct,
645 A: *mut fmpz_mod_polyun_struct,
646 varx: mp_limb_signed_t,
647 vary: mp_limb_signed_t,
648 ctx: *mut fmpz_mod_mpoly_ctx_struct,
649 );
650}
651extern "C" {
652 pub fn fmpz_mod_mpolyn_init(
653 A: *mut fmpz_mod_mpolyn_struct,
654 bits: mp_limb_t,
655 ctx: *mut fmpz_mod_mpoly_ctx_struct,
656 );
657}
658extern "C" {
659 pub fn fmpz_mod_mpolyn_swap(
660 A: *mut fmpz_mod_mpolyn_struct,
661 B: *mut fmpz_mod_mpolyn_struct,
662 ctx: *mut fmpz_mod_mpoly_ctx_struct,
663 );
664}
665extern "C" {
666 pub fn fmpz_mod_mpolyn_fit_length(
667 A: *mut fmpz_mod_mpolyn_struct,
668 length: mp_limb_signed_t,
669 ctx: *mut fmpz_mod_mpoly_ctx_struct,
670 );
671}
672extern "C" {
673 pub fn fmpz_mod_mpolyn_leadcoeff(A: *mut fmpz_mod_mpolyn_struct) -> *const fmpz;
674}
675extern "C" {
676 pub fn fmpz_mod_mpolyn_is_canonical(
677 A: *mut fmpz_mod_mpolyn_struct,
678 ctx: *mut fmpz_mod_mpoly_ctx_struct,
679 ) -> ::std::os::raw::c_int;
680}
681extern "C" {
682 pub fn fmpz_mod_mpolyn_lastdeg(
683 A: *mut fmpz_mod_mpolyn_struct,
684 ctx: *mut fmpz_mod_mpoly_ctx_struct,
685 ) -> mp_limb_signed_t;
686}
687extern "C" {
688 pub fn fmpz_mod_mpolyn_clear(
689 A: *mut fmpz_mod_mpolyn_struct,
690 ctx: *mut fmpz_mod_mpoly_ctx_struct,
691 );
692}
693extern "C" {
694 pub fn fmpz_mod_mpolyn_one(A: *mut fmpz_mod_mpolyn_struct, ctx: *mut fmpz_mod_mpoly_ctx_struct);
695}
696extern "C" {
697 pub fn fmpz_mod_mpolyn_scalar_mul_fmpz_mod(
698 A: *mut fmpz_mod_mpolyn_struct,
699 c: *mut fmpz,
700 ctx: *mut fmpz_mod_mpoly_ctx_struct,
701 );
702}
703extern "C" {
704 pub fn fmpz_mod_mpolyn_equal(
705 A: *mut fmpz_mod_mpolyn_struct,
706 B: *mut fmpz_mod_mpolyn_struct,
707 ctx: *mut fmpz_mod_mpoly_ctx_struct,
708 ) -> ::std::os::raw::c_int;
709}
710extern "C" {
711 pub fn fmpz_mod_mpolyn_print_pretty(
712 poly: *mut fmpz_mod_mpolyn_struct,
713 x: *mut *const ::std::os::raw::c_char,
714 ctx: *mut fmpz_mod_mpoly_ctx_struct,
715 );
716}
717extern "C" {
718 pub fn fmpz_mod_mpoly_cvtfrom_mpolyn(
719 A: *mut fmpz_mod_mpoly_struct,
720 B: *mut fmpz_mod_mpolyn_struct,
721 var: mp_limb_signed_t,
722 ctx: *mut fmpz_mod_mpoly_ctx_struct,
723 );
724}
725extern "C" {
726 pub fn fmpz_mod_mpoly_cvtto_mpolyn(
727 A: *mut fmpz_mod_mpolyn_struct,
728 B: *mut fmpz_mod_mpoly_struct,
729 var: mp_limb_signed_t,
730 ctx: *mut fmpz_mod_mpoly_ctx_struct,
731 );
732}
733extern "C" {
734 pub fn fmpz_mod_mpoly_to_mpolyn_perm_deflate(
735 A: *mut fmpz_mod_mpolyn_struct,
736 nctx: *mut fmpz_mod_mpoly_ctx_struct,
737 B: *mut fmpz_mod_mpoly_struct,
738 ctx: *mut fmpz_mod_mpoly_ctx_struct,
739 perm: *const mp_limb_signed_t,
740 shift: *const mp_limb_t,
741 stride: *const mp_limb_t,
742 );
743}
744extern "C" {
745 pub fn fmpz_mod_mpoly_from_mpolyn_perm_inflate(
746 A: *mut fmpz_mod_mpoly_struct,
747 Abits: mp_limb_t,
748 ctx: *mut fmpz_mod_mpoly_ctx_struct,
749 B: *mut fmpz_mod_mpolyn_struct,
750 nctx: *mut fmpz_mod_mpoly_ctx_struct,
751 perm: *const mp_limb_signed_t,
752 shift: *const mp_limb_t,
753 stride: *const mp_limb_t,
754 );
755}
756extern "C" {
757 pub fn fmpz_mod_mpolyn_set(
758 A: *mut fmpz_mod_mpolyn_struct,
759 B: *mut fmpz_mod_mpolyn_struct,
760 ctx: *mut fmpz_mod_mpoly_ctx_struct,
761 );
762}
763extern "C" {
764 pub fn fmpz_mod_mpolyn_is_nonzero_fmpz(
765 A: *mut fmpz_mod_mpolyn_struct,
766 ctx: *mut fmpz_mod_mpoly_ctx_struct,
767 ) -> ::std::os::raw::c_int;
768}
769extern "C" {
770 pub fn fmpz_mod_mpolyn_divides(
771 Q: *mut fmpz_mod_mpolyn_struct,
772 A: *mut fmpz_mod_mpolyn_struct,
773 B: *mut fmpz_mod_mpolyn_struct,
774 ctx: *mut fmpz_mod_mpoly_ctx_struct,
775 ) -> ::std::os::raw::c_int;
776}
777extern "C" {
778 pub fn fmpz_mod_polyu1n_interp_reduce_2sm_poly(
779 E: *mut fmpz_mod_poly_struct,
780 F: *mut fmpz_mod_poly_struct,
781 A: *mut fmpz_mod_polyun_struct,
782 alphapow: *mut fmpz_mod_poly_struct,
783 ctx: *mut fmpz_mod_ctx_struct,
784 );
785}
786extern "C" {
787 pub fn fmpz_mod_polyu1n_interp_lift_2sm_poly(
788 lastdeg: *mut mp_limb_signed_t,
789 F: *mut fmpz_mod_polyun_struct,
790 A: *mut fmpz_mod_poly_struct,
791 B: *mut fmpz_mod_poly_struct,
792 alpha: *mut fmpz,
793 ctx: *mut fmpz_mod_ctx_struct,
794 );
795}
796extern "C" {
797 pub fn fmpz_mod_polyu1n_interp_crt_2sm_poly(
798 lastdeg: *mut mp_limb_signed_t,
799 F: *mut fmpz_mod_polyun_struct,
800 T: *mut fmpz_mod_polyun_struct,
801 A: *mut fmpz_mod_poly_struct,
802 B: *mut fmpz_mod_poly_struct,
803 modulus: *mut fmpz_mod_poly_struct,
804 alphapow: *mut fmpz_mod_poly_struct,
805 ctx: *mut fmpz_mod_ctx_struct,
806 ) -> ::std::os::raw::c_int;
807}
808extern "C" {
809 pub fn fmpz_mod_mpolyn_interp_reduce_sm_poly(
810 E: *mut fmpz_mod_poly_struct,
811 A: *mut fmpz_mod_mpolyn_struct,
812 alpha: *mut fmpz,
813 ctx: *mut fmpz_mod_mpoly_ctx_struct,
814 );
815}
816extern "C" {
817 pub fn fmpz_mod_mpolyn_interp_lift_sm_poly(
818 A: *mut fmpz_mod_mpolyn_struct,
819 B: *mut fmpz_mod_poly_struct,
820 ctx: *mut fmpz_mod_mpoly_ctx_struct,
821 );
822}
823extern "C" {
824 pub fn fmpz_mod_mpolyn_interp_crt_sm_poly(
825 lastdeg_: *mut mp_limb_signed_t,
826 F: *mut fmpz_mod_mpolyn_struct,
827 T: *mut fmpz_mod_mpolyn_struct,
828 A: *mut fmpz_mod_poly_struct,
829 modulus: *mut fmpz_mod_poly_struct,
830 alpha: *mut fmpz,
831 ctx: *mut fmpz_mod_mpoly_ctx_struct,
832 ) -> ::std::os::raw::c_int;
833}
834extern "C" {
835 pub fn fmpz_mod_mpolyn_interp_reduce_2sm_mpolyn(
836 E: *mut fmpz_mod_mpolyn_struct,
837 F: *mut fmpz_mod_mpolyn_struct,
838 A: *mut fmpz_mod_mpolyn_struct,
839 var: mp_limb_signed_t,
840 alphapow: *mut fmpz_mod_poly_struct,
841 ctx: *mut fmpz_mod_mpoly_ctx_struct,
842 );
843}
844extern "C" {
845 pub fn fmpz_mod_mpolyn_interp_lift_2sm_mpolyn(
846 lastdeg: *mut mp_limb_signed_t,
847 T: *mut fmpz_mod_mpolyn_struct,
848 A: *mut fmpz_mod_mpolyn_struct,
849 B: *mut fmpz_mod_mpolyn_struct,
850 var: mp_limb_signed_t,
851 alpha: *mut fmpz,
852 ctx: *mut fmpz_mod_mpoly_ctx_struct,
853 );
854}
855extern "C" {
856 pub fn fmpz_mod_mpolyn_interp_crt_2sm_mpolyn(
857 lastdeg: *mut mp_limb_signed_t,
858 F: *mut fmpz_mod_mpolyn_struct,
859 T: *mut fmpz_mod_mpolyn_struct,
860 A: *mut fmpz_mod_mpolyn_struct,
861 B: *mut fmpz_mod_mpolyn_struct,
862 var: mp_limb_signed_t,
863 modulus: *mut fmpz_mod_poly_struct,
864 alphapow: *mut fmpz_mod_poly_struct,
865 ctx: *mut fmpz_mod_mpoly_ctx_struct,
866 ) -> ::std::os::raw::c_int;
867}
868extern "C" {
869 pub fn fmpz_mod_mpolyn_interp_lift_sm_mpoly(
870 A: *mut fmpz_mod_mpolyn_struct,
871 B: *mut fmpz_mod_mpoly_struct,
872 ctx: *mut fmpz_mod_mpoly_ctx_struct,
873 );
874}
875extern "C" {
876 pub fn fmpz_mod_mpolyn_interp_crt_sm_mpoly(
877 lastdeg: *mut mp_limb_signed_t,
878 F: *mut fmpz_mod_mpolyn_struct,
879 T: *mut fmpz_mod_mpolyn_struct,
880 A: *mut fmpz_mod_mpoly_struct,
881 modulus: *mut fmpz_mod_poly_struct,
882 alphapow: *mut fmpz_mod_poly_struct,
883 ctx: *mut fmpz_mod_mpoly_ctx_struct,
884 ) -> ::std::os::raw::c_int;
885}
886extern "C" {
887 pub fn fmpz_mod_mpolyn_interp_mcrt_sm_mpoly(
888 lastdeg: *mut mp_limb_signed_t,
889 F: *mut fmpz_mod_mpolyn_struct,
890 A: *mut fmpz_mod_mpoly_struct,
891 modulus: *mut fmpz_mod_poly_struct,
892 alphapow: *mut fmpz_mod_poly_struct,
893 ctx: *mut fmpz_mod_mpoly_ctx_struct,
894 ) -> ::std::os::raw::c_int;
895}
896extern "C" {
897 pub fn fmpz_mod_polyu_swap(A: *mut fmpz_mod_polyu_struct, B: *mut fmpz_mod_polyu_struct);
898}
899extern "C" {
900 pub fn fmpz_mod_polyu_init(A: *mut fmpz_mod_polyu_struct);
901}
902extern "C" {
903 pub fn fmpz_mod_polyu_clear(A: *mut fmpz_mod_polyu_struct);
904}
905extern "C" {
906 pub fn fmpz_mod_polyu_realloc(A: *mut fmpz_mod_polyu_struct, len: mp_limb_signed_t);
907}
908extern "C" {
909 pub fn fmpz_mod_polyu_fit_length(
910 a: *mut fmpz_mod_polyu_struct,
911 len: mp_limb_signed_t,
912 ctx: *mut fmpz_mod_ctx_struct,
913 );
914}
915extern "C" {
916 pub fn fmpz_mod_polyu3_degrees(
917 deg0: *mut mp_limb_signed_t,
918 deg1: *mut mp_limb_signed_t,
919 deg2: *mut mp_limb_signed_t,
920 A: *mut fmpz_mod_polyu_struct,
921 );
922}
923extern "C" {
924 pub fn fmpz_mod_polyu3_print_pretty(
925 A: *mut fmpz_mod_polyu_struct,
926 var0: *const ::std::os::raw::c_char,
927 var1: *const ::std::os::raw::c_char,
928 var2: *const ::std::os::raw::c_char,
929 ctx: *mut fmpz_mod_ctx_struct,
930 );
931}
932extern "C" {
933 pub fn fmpz_mod_mpolyu_is_canonical(
934 A: *mut fmpz_mod_mpolyu_struct,
935 ctx: *mut fmpz_mod_mpoly_ctx_struct,
936 ) -> ::std::os::raw::c_int;
937}
938extern "C" {
939 pub fn fmpz_mod_mpolyu3_print_pretty(
940 A: *mut fmpz_mod_mpolyu_struct,
941 var0: *const ::std::os::raw::c_char,
942 var1: *const ::std::os::raw::c_char,
943 var2: *const ::std::os::raw::c_char,
944 vars: *mut *const ::std::os::raw::c_char,
945 ctx: *mut fmpz_mod_mpoly_ctx_struct,
946 );
947}
948extern "C" {
949 pub fn fmpz_mod_bpoly_is_canonical(
950 A: *mut fmpz_mod_bpoly_struct,
951 ctx: *mut fmpz_mod_ctx_struct,
952 ) -> ::std::os::raw::c_int;
953}
954extern "C" {
955 pub fn fmpz_mod_bpoly_init(A: *mut fmpz_mod_bpoly_struct, ctx: *mut fmpz_mod_ctx_struct);
956}
957extern "C" {
958 pub fn fmpz_mod_bpoly_clear(A: *mut fmpz_mod_bpoly_struct, ctx: *mut fmpz_mod_ctx_struct);
959}
960extern "C" {
961 pub fn fmpz_mod_bpoly_swap(
962 A: *mut fmpz_mod_bpoly_struct,
963 B: *mut fmpz_mod_bpoly_struct,
964 ctx: *mut fmpz_mod_ctx_struct,
965 );
966}
967extern "C" {
968 pub fn fmpz_mod_bpoly_get_coeff(
969 c: *mut fmpz,
970 A: *mut fmpz_mod_bpoly_struct,
971 e0: mp_limb_signed_t,
972 e1: mp_limb_signed_t,
973 ctx: *mut fmpz_mod_ctx_struct,
974 );
975}
976extern "C" {
977 pub fn fmpz_mod_bpoly_degree0(
978 A: *mut fmpz_mod_bpoly_struct,
979 ctx: *mut fmpz_mod_ctx_struct,
980 ) -> mp_limb_signed_t;
981}
982extern "C" {
983 pub fn fmpz_mod_bpoly_normalise(A: *mut fmpz_mod_bpoly_struct, ctx: *mut fmpz_mod_ctx_struct);
984}
985extern "C" {
986 pub fn fmpz_mod_bpoly_equal(
987 A: *mut fmpz_mod_bpoly_struct,
988 B: *mut fmpz_mod_bpoly_struct,
989 ctx: *mut fmpz_mod_ctx_struct,
990 ) -> ::std::os::raw::c_int;
991}
992extern "C" {
993 pub fn fmpz_mod_bpoly_set(
994 A: *mut fmpz_mod_bpoly_struct,
995 B: *mut fmpz_mod_bpoly_struct,
996 ctx: *mut fmpz_mod_ctx_struct,
997 );
998}
999extern "C" {
1000 pub fn fmpz_mod_bpoly_set_poly_gen1(
1001 A: *mut fmpz_mod_bpoly_struct,
1002 B: *mut fmpz_mod_poly_struct,
1003 ctx: *mut fmpz_mod_ctx_struct,
1004 );
1005}
1006extern "C" {
1007 pub fn fmpz_mod_bpoly_set_poly_gen0(
1008 A: *mut fmpz_mod_bpoly_struct,
1009 B: *mut fmpz_mod_poly_struct,
1010 ctx: *mut fmpz_mod_ctx_struct,
1011 );
1012}
1013extern "C" {
1014 pub fn fmpz_mod_bpoly_one(A: *mut fmpz_mod_bpoly_struct, ctx: *mut fmpz_mod_ctx_struct);
1015}
1016extern "C" {
1017 pub fn fmpz_mod_bpoly_is_one(
1018 A: *mut fmpz_mod_bpoly_struct,
1019 ctx: *mut fmpz_mod_ctx_struct,
1020 ) -> ::std::os::raw::c_int;
1021}
1022extern "C" {
1023 pub fn fmpz_mod_bpoly_degree1(
1024 A: *mut fmpz_mod_bpoly_struct,
1025 ctx: *mut fmpz_mod_ctx_struct,
1026 ) -> mp_limb_signed_t;
1027}
1028extern "C" {
1029 pub fn fmpz_mod_bpoly_print_pretty(
1030 A: *mut fmpz_mod_bpoly_struct,
1031 xvar: *const ::std::os::raw::c_char,
1032 yvar: *const ::std::os::raw::c_char,
1033 ctx: *mut fmpz_mod_ctx_struct,
1034 );
1035}
1036extern "C" {
1037 pub fn fmpz_mod_bpoly_fit_length(
1038 A: *mut fmpz_mod_bpoly_struct,
1039 len: mp_limb_signed_t,
1040 ctx: *mut fmpz_mod_ctx_struct,
1041 );
1042}
1043extern "C" {
1044 pub fn fmpz_mod_bpoly_set_coeff(
1045 A: *mut fmpz_mod_bpoly_struct,
1046 xi: mp_limb_signed_t,
1047 yi: mp_limb_signed_t,
1048 c: *mut fmpz,
1049 ctx: *mut fmpz_mod_ctx_struct,
1050 );
1051}
1052extern "C" {
1053 pub fn fmpz_mod_bpoly_zero(A: *mut fmpz_mod_bpoly_struct, ctx: *mut fmpz_mod_ctx_struct);
1054}
1055extern "C" {
1056 pub fn fmpz_mod_bpoly_reverse_vars(
1057 A: *mut fmpz_mod_bpoly_struct,
1058 B: *mut fmpz_mod_bpoly_struct,
1059 ctx: *mut fmpz_mod_ctx_struct,
1060 );
1061}
1062extern "C" {
1063 pub fn fmpz_mod_bpoly_taylor_shift_gen1(
1064 A: *mut fmpz_mod_bpoly_struct,
1065 B: *mut fmpz_mod_bpoly_struct,
1066 c: *mut fmpz,
1067 ctx: *mut fmpz_mod_ctx_struct,
1068 );
1069}
1070extern "C" {
1071 pub fn fmpz_mod_bpoly_sub(
1072 A: *mut fmpz_mod_bpoly_struct,
1073 B: *mut fmpz_mod_bpoly_struct,
1074 C: *mut fmpz_mod_bpoly_struct,
1075 ctx: *mut fmpz_mod_ctx_struct,
1076 );
1077}
1078extern "C" {
1079 pub fn fmpz_mod_bpoly_add(
1080 A: *mut fmpz_mod_bpoly_struct,
1081 B: *mut fmpz_mod_bpoly_struct,
1082 C: *mut fmpz_mod_bpoly_struct,
1083 ctx: *mut fmpz_mod_ctx_struct,
1084 );
1085}
1086extern "C" {
1087 pub fn fmpz_mod_bpoly_make_primitive(
1088 g: *mut fmpz_mod_poly_struct,
1089 A: *mut fmpz_mod_bpoly_struct,
1090 ctx: *mut fmpz_mod_ctx_struct,
1091 );
1092}
1093extern "C" {
1094 pub fn fmpz_mod_bpoly_mul(
1095 A: *mut fmpz_mod_bpoly_struct,
1096 B: *mut fmpz_mod_bpoly_struct,
1097 C: *mut fmpz_mod_bpoly_struct,
1098 ctx: *mut fmpz_mod_ctx_struct,
1099 );
1100}
1101extern "C" {
1102 pub fn fmpz_mod_bpoly_mul_series(
1103 A: *mut fmpz_mod_bpoly_struct,
1104 B: *mut fmpz_mod_bpoly_struct,
1105 C: *mut fmpz_mod_bpoly_struct,
1106 order: mp_limb_signed_t,
1107 ctx: *mut fmpz_mod_ctx_struct,
1108 );
1109}
1110extern "C" {
1111 pub fn fmpz_mod_bpoly_divrem_series(
1112 Q: *mut fmpz_mod_bpoly_struct,
1113 R: *mut fmpz_mod_bpoly_struct,
1114 A: *mut fmpz_mod_bpoly_struct,
1115 B: *mut fmpz_mod_bpoly_struct,
1116 order: mp_limb_signed_t,
1117 ctx: *mut fmpz_mod_ctx_struct,
1118 );
1119}
1120extern "C" {
1121 pub fn fmpz_mod_bpoly_divides(
1122 Q: *mut fmpz_mod_bpoly_struct,
1123 A: *mut fmpz_mod_bpoly_struct,
1124 B: *mut fmpz_mod_bpoly_struct,
1125 ctx: *mut fmpz_mod_ctx_struct,
1126 ) -> ::std::os::raw::c_int;
1127}
1128extern "C" {
1129 pub fn fmpz_mod_bpoly_taylor_shift_gen0(
1130 A: *mut fmpz_mod_bpoly_struct,
1131 alpha: *mut fmpz,
1132 ctx: *mut fmpz_mod_ctx_struct,
1133 );
1134}
1135extern "C" {
1136 pub fn fmpz_mod_bpoly_derivative_gen0(
1137 A: *mut fmpz_mod_bpoly_struct,
1138 B: *mut fmpz_mod_bpoly_struct,
1139 ctx: *mut fmpz_mod_ctx_struct,
1140 );
1141}
1142extern "C" {
1143 pub fn fmpz_mod_bpoly_make_monic_series(
1144 A: *mut fmpz_mod_bpoly_struct,
1145 B: *mut fmpz_mod_bpoly_struct,
1146 order: mp_limb_signed_t,
1147 ctx: *mut fmpz_mod_ctx_struct,
1148 );
1149}
1150extern "C" {
1151 pub fn fmpz_mod_tpoly_init(A: *mut fmpz_mod_tpoly_struct, ctx: *mut fmpz_mod_ctx_struct);
1152}
1153extern "C" {
1154 pub fn fmpz_mod_tpoly_swap(
1155 A: *mut fmpz_mod_tpoly_struct,
1156 B: *mut fmpz_mod_tpoly_struct,
1157 ctx: *mut fmpz_mod_ctx_struct,
1158 );
1159}
1160extern "C" {
1161 pub fn fmpz_mod_tpoly_fit_length(
1162 A: *mut fmpz_mod_tpoly_struct,
1163 len: mp_limb_signed_t,
1164 ctx: *mut fmpz_mod_ctx_struct,
1165 );
1166}
1167extern "C" {
1168 pub fn fmpz_mod_tpoly_clear(A: *mut fmpz_mod_tpoly_struct, ctx: *mut fmpz_mod_ctx_struct);
1169}
1170extern "C" {
1171 pub fn fmpz_mod_mpoly_get_fmpz_mod_bpoly(
1172 A: *mut fmpz_mod_bpoly_struct,
1173 B: *mut fmpz_mod_mpoly_struct,
1174 var0: mp_limb_signed_t,
1175 var1: mp_limb_signed_t,
1176 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1177 );
1178}
1179extern "C" {
1180 pub fn fmpz_mod_mpoly_set_fmpz_mod_bpoly(
1181 A: *mut fmpz_mod_mpoly_struct,
1182 Abits: mp_limb_t,
1183 B: *mut fmpz_mod_bpoly_struct,
1184 var0: mp_limb_signed_t,
1185 var1: mp_limb_signed_t,
1186 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1187 );
1188}
1189extern "C" {
1190 pub fn fmpz_mod_bpoly_factor_smprime(
1191 c: *mut fmpz_mod_poly_struct,
1192 F: *mut fmpz_mod_tpoly_struct,
1193 B: *mut fmpz_mod_bpoly_struct,
1194 allow_shift: ::std::os::raw::c_int,
1195 ctx: *mut fmpz_mod_ctx_struct,
1196 ) -> ::std::os::raw::c_int;
1197}
1198extern "C" {
1199 pub fn _fmpz_mod_zip_vand_solve(
1200 coeffs: *mut fmpz,
1201 monomials: *const fmpz,
1202 mlength: mp_limb_signed_t,
1203 evals: *const fmpz,
1204 elength: mp_limb_signed_t,
1205 master: *const fmpz,
1206 scratch: *mut fmpz,
1207 ctx: *mut fmpz_mod_ctx_struct,
1208 ) -> ::std::os::raw::c_int;
1209}
1210extern "C" {
1211 pub fn _fmpz_mod_zip_eval_step(
1212 ev: *mut fmpz,
1213 cur: *mut fmpz,
1214 inc: *const fmpz,
1215 coeffs: *const fmpz,
1216 length: mp_limb_signed_t,
1217 ctx: *mut fmpz_mod_ctx_struct,
1218 );
1219}
1220#[repr(C)]
1221#[derive(Debug, Copy, Clone)]
1222pub struct fmpz_mod_mpolyv_struct {
1223 pub coeffs: *mut fmpz_mod_mpoly_struct,
1224 pub alloc: mp_limb_signed_t,
1225 pub length: mp_limb_signed_t,
1226}
1227pub type fmpz_mod_mpolyv_t = [fmpz_mod_mpolyv_struct; 1usize];
1228extern "C" {
1229 pub fn fmpz_mod_mpolyv_init(
1230 A: *mut fmpz_mod_mpolyv_struct,
1231 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1232 );
1233}
1234extern "C" {
1235 pub fn fmpz_mod_mpolyv_swap(
1236 A: *mut fmpz_mod_mpolyv_struct,
1237 B: *mut fmpz_mod_mpolyv_struct,
1238 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1239 );
1240}
1241extern "C" {
1242 pub fn fmpz_mod_mpolyv_clear(
1243 A: *mut fmpz_mod_mpolyv_struct,
1244 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1245 );
1246}
1247extern "C" {
1248 pub fn fmpz_mod_mpolyv_print_pretty(
1249 poly: *mut fmpz_mod_mpolyv_struct,
1250 x: *mut *const ::std::os::raw::c_char,
1251 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1252 );
1253}
1254extern "C" {
1255 pub fn fmpz_mod_mpolyv_fit_length(
1256 A: *mut fmpz_mod_mpolyv_struct,
1257 length: mp_limb_signed_t,
1258 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1259 );
1260}
1261extern "C" {
1262 pub fn fmpz_mod_mpolyv_set_coeff(
1263 A: *mut fmpz_mod_mpolyv_struct,
1264 i: mp_limb_signed_t,
1265 c: *mut fmpz_mod_mpoly_struct,
1266 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1267 );
1268}
1269extern "C" {
1270 pub fn fmpz_mod_mpoly_to_mpolyv(
1271 A: *mut fmpz_mod_mpolyv_struct,
1272 B: *mut fmpz_mod_mpoly_struct,
1273 xalpha: *mut fmpz_mod_mpoly_struct,
1274 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1275 );
1276}
1277extern "C" {
1278 pub fn fmpz_mod_mpoly_from_mpolyv(
1279 A: *mut fmpz_mod_mpoly_struct,
1280 Abits: mp_limb_t,
1281 B: *mut fmpz_mod_mpolyv_struct,
1282 xalpha: *mut fmpz_mod_mpoly_struct,
1283 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1284 );
1285}
1286extern "C" {
1287 pub fn _fmpz_mod_mpoly_vec_content_mpoly(
1288 g: *mut fmpz_mod_mpoly_struct,
1289 A: *const fmpz_mod_mpoly_struct,
1290 Alen: mp_limb_signed_t,
1291 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1292 ) -> ::std::os::raw::c_int;
1293}
1294extern "C" {
1295 pub fn _fmpz_mod_mpoly_vec_divexact_mpoly(
1296 A: *mut fmpz_mod_mpoly_struct,
1297 Alen: mp_limb_signed_t,
1298 c: *mut fmpz_mod_mpoly_struct,
1299 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1300 );
1301}
1302extern "C" {
1303 pub fn _fmpz_mod_mpoly_vec_mul_mpoly(
1304 A: *mut fmpz_mod_mpoly_struct,
1305 Alen: mp_limb_signed_t,
1306 c: *mut fmpz_mod_mpoly_struct,
1307 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1308 );
1309}
1310extern "C" {
1311 pub fn _fmpz_mod_mpoly_factor_separable(
1312 f: *mut fmpz_mod_mpoly_factor_struct,
1313 A: *mut fmpz_mod_mpoly_struct,
1314 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1315 sep: ::std::os::raw::c_int,
1316 ) -> ::std::os::raw::c_int;
1317}
1318extern "C" {
1319 pub fn fmpz_mod_mpoly_factor_lcc_wang(
1320 lc_divs: *mut fmpz_mod_mpoly_struct,
1321 lcAfac: *mut fmpz_mod_mpoly_factor_struct,
1322 Auc: *mut fmpz_mod_poly_struct,
1323 Auf: *const fmpz_mod_bpoly_struct,
1324 r: mp_limb_signed_t,
1325 alpha: *const fmpz_mod_poly_struct,
1326 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1327 ) -> ::std::os::raw::c_int;
1328}
1329extern "C" {
1330 pub fn fmpz_mod_mpoly_factor_irred_smprime_zassenhaus(
1331 fac: *mut fmpz_mod_mpolyv_struct,
1332 A: *mut fmpz_mod_mpoly_struct,
1333 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1334 state: *mut flint_rand_s,
1335 ) -> ::std::os::raw::c_int;
1336}
1337extern "C" {
1338 pub fn fmpz_mod_mpoly_factor_irred_smprime_wang(
1339 fac: *mut fmpz_mod_mpolyv_struct,
1340 A: *mut fmpz_mod_mpoly_struct,
1341 lcAfac: *mut fmpz_mod_mpoly_factor_struct,
1342 lcA: *mut fmpz_mod_mpoly_struct,
1343 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1344 state: *mut flint_rand_s,
1345 ) -> ::std::os::raw::c_int;
1346}
1347extern "C" {
1348 pub fn fmpz_mod_mpoly_factor_irred_smprime_zippel(
1349 fac: *mut fmpz_mod_mpolyv_struct,
1350 A: *mut fmpz_mod_mpoly_struct,
1351 lcAfac: *mut fmpz_mod_mpoly_factor_struct,
1352 lcA: *mut fmpz_mod_mpoly_struct,
1353 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1354 state: *mut flint_rand_s,
1355 ) -> ::std::os::raw::c_int;
1356}
1357extern "C" {
1358 pub fn fmpz_mod_mpoly_compression_do(
1359 L: *mut fmpz_mod_mpoly_struct,
1360 Lctx: *mut fmpz_mod_mpoly_ctx_struct,
1361 Acoeffs: *mut fmpz,
1362 Alen: mp_limb_signed_t,
1363 M: *mut mpoly_compression_struct,
1364 );
1365}
1366extern "C" {
1367 pub fn fmpz_mod_mpoly_compression_undo(
1368 A: *mut fmpz_mod_mpoly_struct,
1369 Abits: mp_limb_t,
1370 Actx: *mut fmpz_mod_mpoly_ctx_struct,
1371 L: *mut fmpz_mod_mpoly_struct,
1372 Lctx: *mut fmpz_mod_mpoly_ctx_struct,
1373 M: *mut mpoly_compression_struct,
1374 );
1375}
1376#[repr(C)]
1377#[derive(Debug, Copy, Clone)]
1378pub struct fmpz_mod_mpoly_pfrac_struct {
1379 pub bits: mp_limb_t,
1380 pub w: mp_limb_signed_t,
1381 pub r: mp_limb_signed_t,
1382 pub inv_prod_dbetas: *mut fmpz_mod_poly_struct,
1383 pub inv_prod_dbetas_mvar: *mut fmpz_mod_mpoly_struct,
1384 pub dbetas: *mut fmpz_mod_poly_struct,
1385 pub dbetas_mvar: *mut fmpz_mod_mpoly_struct,
1386 pub prod_mbetas: *mut fmpz_mod_mpoly_struct,
1387 pub prod_mbetas_coeffs: *mut fmpz_mod_mpolyv_struct,
1388 pub mbetas: *mut fmpz_mod_mpoly_struct,
1389 pub deltas: *mut fmpz_mod_mpoly_struct,
1390 pub xalpha: *mut fmpz_mod_mpoly_struct,
1391 pub q: *mut fmpz_mod_mpoly_struct,
1392 pub G: *mut fmpz_mod_mpoly_geobucket_struct,
1393 pub qt: *mut fmpz_mod_mpoly_struct,
1394 pub newt: *mut fmpz_mod_mpoly_struct,
1395 pub delta_coeffs: *mut fmpz_mod_mpolyv_struct,
1396 pub T: fmpz_mod_mpoly_t,
1397 pub Q: fmpz_mod_mpoly_t,
1398 pub R: fmpz_mod_mpoly_t,
1399}
1400pub type fmpz_mod_mpoly_pfrac_t = [fmpz_mod_mpoly_pfrac_struct; 1usize];
1401extern "C" {
1402 pub fn fmpz_mod_mpoly_pfrac_init(
1403 I: *mut fmpz_mod_mpoly_pfrac_struct,
1404 bits: mp_limb_t,
1405 l: mp_limb_signed_t,
1406 r: mp_limb_signed_t,
1407 betas: *const fmpz_mod_mpoly_struct,
1408 alpha: *const fmpz,
1409 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1410 ) -> ::std::os::raw::c_int;
1411}
1412extern "C" {
1413 pub fn fmpz_mod_mpoly_pfrac_clear(
1414 I: *mut fmpz_mod_mpoly_pfrac_struct,
1415 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1416 );
1417}
1418extern "C" {
1419 pub fn fmpz_mod_mpoly_pfrac(
1420 r: mp_limb_signed_t,
1421 t: *mut fmpz_mod_mpoly_struct,
1422 deg: *const mp_limb_signed_t,
1423 I: *mut fmpz_mod_mpoly_pfrac_struct,
1424 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1425 ) -> ::std::os::raw::c_int;
1426}
1427extern "C" {
1428 pub fn fmpz_mod_mpoly_hlift(
1429 m: mp_limb_signed_t,
1430 f: *mut fmpz_mod_mpoly_struct,
1431 r: mp_limb_signed_t,
1432 alpha: *const fmpz,
1433 A: *mut fmpz_mod_mpoly_struct,
1434 degs: *const mp_limb_signed_t,
1435 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1436 ) -> ::std::os::raw::c_int;
1437}
1438extern "C" {
1439 pub fn fmpz_mod_bpoly_pfrac(
1440 r: mp_limb_signed_t,
1441 C: *mut fmpz_mod_bpoly_struct,
1442 C_deg1_bound: *mut mp_limb_signed_t,
1443 A: *mut fmpz_mod_bpoly_struct,
1444 B: *mut fmpz_mod_bpoly_struct,
1445 ctx: *mut fmpz_mod_ctx_struct,
1446 ) -> ::std::os::raw::c_int;
1447}
1448extern "C" {
1449 pub fn fmpz_mod_bpoly_hlift2(
1450 A: *mut fmpz_mod_bpoly_struct,
1451 B0: *mut fmpz_mod_bpoly_struct,
1452 B1: *mut fmpz_mod_bpoly_struct,
1453 alpha: *mut fmpz,
1454 degree_inner: mp_limb_signed_t,
1455 ctx: *mut fmpz_mod_ctx_struct,
1456 St: *mut fmpz_mod_poly_bpoly_stack_struct,
1457 ) -> ::std::os::raw::c_int;
1458}
1459extern "C" {
1460 pub fn fmpz_mod_bpoly_hlift(
1461 r: mp_limb_signed_t,
1462 A: *mut fmpz_mod_bpoly_struct,
1463 B: *mut fmpz_mod_bpoly_struct,
1464 alpha: *mut fmpz,
1465 degree_inner: mp_limb_signed_t,
1466 ctx: *mut fmpz_mod_ctx_struct,
1467 St: *mut fmpz_mod_poly_bpoly_stack_struct,
1468 ) -> ::std::os::raw::c_int;
1469}
1470extern "C" {
1471 pub fn fmpz_mod_polyu3_hlift(
1472 r: mp_limb_signed_t,
1473 BB: *mut fmpz_mod_polyun_struct,
1474 A: *mut fmpz_mod_polyu_struct,
1475 B: *mut fmpz_mod_polyu_struct,
1476 beta: *mut fmpz,
1477 degree_inner: mp_limb_signed_t,
1478 ctx: *mut fmpz_mod_ctx_struct,
1479 ) -> ::std::os::raw::c_int;
1480}
1481extern "C" {
1482 pub fn fmpz_mod_mpoly_hlift_zippel(
1483 m: mp_limb_signed_t,
1484 B: *mut fmpz_mod_mpoly_struct,
1485 r: mp_limb_signed_t,
1486 alpha: *const fmpz,
1487 A: *mut fmpz_mod_mpoly_struct,
1488 degs: *const mp_limb_signed_t,
1489 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1490 state: *mut flint_rand_s,
1491 ) -> ::std::os::raw::c_int;
1492}
1493extern "C" {
1494 pub fn fmpz_mod_mpoly_factor_algo(
1495 f: *mut fmpz_mod_mpoly_factor_struct,
1496 A: *mut fmpz_mod_mpoly_struct,
1497 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1498 algo: ::std::os::raw::c_uint,
1499 ) -> ::std::os::raw::c_int;
1500}
1501extern "C" {
1502 pub fn fmpz_mod_mpoly_factor_zassenhaus(
1503 f: *mut fmpz_mod_mpoly_factor_struct,
1504 A: *mut fmpz_mod_mpoly_struct,
1505 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1506 ) -> ::std::os::raw::c_int;
1507}
1508extern "C" {
1509 pub fn fmpz_mod_mpoly_factor_wang(
1510 f: *mut fmpz_mod_mpoly_factor_struct,
1511 A: *mut fmpz_mod_mpoly_struct,
1512 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1513 ) -> ::std::os::raw::c_int;
1514}
1515extern "C" {
1516 pub fn fmpz_mod_mpoly_factor_zippel(
1517 f: *mut fmpz_mod_mpoly_factor_struct,
1518 A: *mut fmpz_mod_mpoly_struct,
1519 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1520 ) -> ::std::os::raw::c_int;
1521}
1522extern "C" {
1523 pub fn _fmpz_mod_mpoly_evaluate_rest_fmpz_mod_poly(
1524 E: *mut fmpz_mod_poly_struct,
1525 starts: *mut mp_limb_signed_t,
1526 ends: *mut mp_limb_signed_t,
1527 stops: *mut mp_limb_signed_t,
1528 es: *mut mp_limb_t,
1529 Acoeffs: *const fmpz,
1530 Aexps: *const mp_limb_t,
1531 Alen: mp_limb_signed_t,
1532 var: mp_limb_signed_t,
1533 alphas: *const fmpz_mod_poly_struct,
1534 offsets: *const mp_limb_signed_t,
1535 shifts: *const mp_limb_signed_t,
1536 N: mp_limb_signed_t,
1537 mask: mp_limb_t,
1538 nvars: mp_limb_signed_t,
1539 ctx: *mut fmpz_mod_ctx_struct,
1540 ) -> ::std::os::raw::c_int;
1541}
1542extern "C" {
1543 pub fn _fmpz_mod_mpoly_eval_rest_to_fmpz_mod_bpoly(
1544 E: *mut fmpz_mod_bpoly_struct,
1545 A: *mut fmpz_mod_mpoly_struct,
1546 alphabetas: *const fmpz_mod_poly_struct,
1547 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1548 );
1549}
1550extern "C" {
1551 pub fn _fmpz_mod_mpoly_set_fmpz_mod_bpoly_var1_zero(
1552 A: *mut fmpz_mod_mpoly_struct,
1553 Abits: mp_limb_t,
1554 B: *mut fmpz_mod_bpoly_struct,
1555 var: mp_limb_signed_t,
1556 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1557 );
1558}
1559extern "C" {
1560 pub fn _fmpz_mod_mpoly_gcd_algo(
1561 G: *mut fmpz_mod_mpoly_struct,
1562 Abar: *mut fmpz_mod_mpoly_struct,
1563 Bbar: *mut fmpz_mod_mpoly_struct,
1564 A: *mut fmpz_mod_mpoly_struct,
1565 B: *mut fmpz_mod_mpoly_struct,
1566 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1567 algo: ::std::os::raw::c_uint,
1568 ) -> ::std::os::raw::c_int;
1569}
1570extern "C" {
1571 pub fn fmpz_mod_polyu1n_gcd_brown_smprime(
1572 G: *mut fmpz_mod_polyun_struct,
1573 Abar: *mut fmpz_mod_polyun_struct,
1574 Bbar: *mut fmpz_mod_polyun_struct,
1575 A: *mut fmpz_mod_polyun_struct,
1576 B: *mut fmpz_mod_polyun_struct,
1577 ctx: *mut fmpz_mod_ctx_struct,
1578 St_poly: *mut fmpz_mod_poly_stack_struct,
1579 St_polyun: *mut fmpz_mod_polyun_stack_struct,
1580 ) -> ::std::os::raw::c_int;
1581}
1582extern "C" {
1583 pub fn fmpz_mod_mpolyn_gcd_brown_smprime(
1584 G: *mut fmpz_mod_mpolyn_struct,
1585 Abar: *mut fmpz_mod_mpolyn_struct,
1586 Bbar: *mut fmpz_mod_mpolyn_struct,
1587 A: *mut fmpz_mod_mpolyn_struct,
1588 B: *mut fmpz_mod_mpolyn_struct,
1589 var: mp_limb_signed_t,
1590 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1591 I: *mut mpoly_gcd_info_struct,
1592 St: *mut fmpz_mod_poly_polyun_mpolyn_stack_struct,
1593 ) -> ::std::os::raw::c_int;
1594}
1595extern "C" {
1596 pub fn fmpz_mod_mpolyl_gcdp_zippel(
1597 G: *mut fmpz_mod_mpoly_struct,
1598 Abar: *mut fmpz_mod_mpoly_struct,
1599 Bbar: *mut fmpz_mod_mpoly_struct,
1600 A: *mut fmpz_mod_mpoly_struct,
1601 B: *mut fmpz_mod_mpoly_struct,
1602 var: mp_limb_signed_t,
1603 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1604 state: *mut flint_rand_s,
1605 ) -> ::std::os::raw::c_int;
1606}
1607extern "C" {
1608 pub fn fmpz_mod_mpolyl_gcd_zippel2_smprime(
1609 rG: *mut fmpz_mod_mpoly_struct,
1610 rGdegs: *const mp_limb_signed_t,
1611 rAbar: *mut fmpz_mod_mpoly_struct,
1612 rBbar: *mut fmpz_mod_mpoly_struct,
1613 A: *mut fmpz_mod_mpoly_struct,
1614 Adegs: *const mp_limb_signed_t,
1615 B: *mut fmpz_mod_mpoly_struct,
1616 Bdegs: *const mp_limb_signed_t,
1617 gamma: *mut fmpz_mod_mpoly_struct,
1618 gammadegs: *const mp_limb_signed_t,
1619 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1620 ) -> ::std::os::raw::c_int;
1621}
1622extern "C" {
1623 pub fn fmpz_mod_mpolyl_gcd_hensel_smprime(
1624 G: *mut fmpz_mod_mpoly_struct,
1625 Gdeg: mp_limb_signed_t,
1626 Abar: *mut fmpz_mod_mpoly_struct,
1627 Bbar: *mut fmpz_mod_mpoly_struct,
1628 A: *mut fmpz_mod_mpoly_struct,
1629 B: *mut fmpz_mod_mpoly_struct,
1630 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1631 ) -> ::std::os::raw::c_int;
1632}
1633extern "C" {
1634 pub fn fmpz_mod_pow_cache_start(
1635 b: *mut fmpz,
1636 c: *mut fmpz_mod_poly_struct,
1637 ctx: *mut fmpz_mod_ctx_struct,
1638 );
1639}
1640extern "C" {
1641 pub fn fmpz_mod_pow_cache_mulpow_ui(
1642 a: *mut fmpz,
1643 b: *mut fmpz,
1644 e: mp_limb_t,
1645 c: *mut fmpz_mod_poly_struct,
1646 ctx: *mut fmpz_mod_ctx_struct,
1647 );
1648}
1649extern "C" {
1650 pub fn mpoly_monomial_evals_fmpz_mod(
1651 EH: *mut fmpz_mod_poly_struct,
1652 Aexps: *const mp_limb_t,
1653 Alen: mp_limb_signed_t,
1654 Abits: mp_limb_t,
1655 alpha_caches: *mut fmpz_mod_poly_struct,
1656 start: mp_limb_signed_t,
1657 stop: mp_limb_signed_t,
1658 mctx: *mut mpoly_ctx_struct,
1659 fpctx: *mut fmpz_mod_ctx_struct,
1660 );
1661}
1662extern "C" {
1663 pub fn mpoly1_monomial_evals_fmpz_mod(
1664 EH: *mut fmpz_mod_polyun_struct,
1665 Aexps: *const mp_limb_t,
1666 Abits: mp_limb_t,
1667 Amarks: *const mp_limb_t,
1668 Amarkslen: mp_limb_signed_t,
1669 alpha_caches: *mut fmpz_mod_poly_struct,
1670 m: mp_limb_signed_t,
1671 mctx: *mut mpoly_ctx_struct,
1672 fpctx: *mut fmpz_mod_ctx_struct,
1673 );
1674}
1675extern "C" {
1676 pub fn mpoly2_monomial_evals_fmpz_mod(
1677 EH: *mut fmpz_mod_polyun_struct,
1678 Aexps: *const mp_limb_t,
1679 Abits: mp_limb_t,
1680 Amarks: *mut mp_limb_t,
1681 Amarkslen: mp_limb_signed_t,
1682 alpha_caches: *mut fmpz_mod_poly_struct,
1683 m: mp_limb_signed_t,
1684 mctx: *mut mpoly_ctx_struct,
1685 fpctx: *mut fmpz_mod_ctx_struct,
1686 );
1687}
1688extern "C" {
1689 pub fn fmpz_mod_mpoly_mock_eval_coeff(
1690 mock: *mut fmpz_mod_polyun_struct,
1691 A: *mut fmpz_mod_mpoly_struct,
1692 Aeh_inc: *mut fmpz_mod_polyun_struct,
1693 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1694 );
1695}
1696extern "C" {
1697 pub fn fmpz_mod_polyun_product_roots(
1698 M: *mut fmpz_mod_polyun_struct,
1699 H: *mut fmpz_mod_polyun_struct,
1700 ctx: *mut fmpz_mod_ctx_struct,
1701 ) -> mp_limb_signed_t;
1702}
1703extern "C" {
1704 pub fn fmpz_mod_polyun_zip_start(
1705 Z: *mut fmpz_mod_polyun_struct,
1706 H: *mut fmpz_mod_polyun_struct,
1707 req_images: mp_limb_signed_t,
1708 fctx: *mut fmpz_mod_ctx_struct,
1709 );
1710}
1711extern "C" {
1712 pub fn fmpz_mod_polyu2n_zip_eval_cur_inc_coeff(
1713 E: *mut fmpz_mod_polyun_struct,
1714 Acur: *mut fmpz_mod_polyun_struct,
1715 Ainc: *mut fmpz_mod_polyun_struct,
1716 Acoeff: *mut fmpz_mod_polyun_struct,
1717 ctx: *mut fmpz_mod_ctx_struct,
1718 );
1719}
1720extern "C" {
1721 pub fn fmpz_mod_polyun_zip_solve(
1722 A: *mut fmpz_mod_mpoly_struct,
1723 Z: *mut fmpz_mod_polyun_struct,
1724 H: *mut fmpz_mod_polyun_struct,
1725 M: *mut fmpz_mod_polyun_struct,
1726 ctx: *mut fmpz_mod_mpoly_ctx_struct,
1727 ) -> ::std::os::raw::c_int;
1728}