1use crate::deps::*;
4use crate::flint::*;
5use crate::mpoly_types::*;
6use crate::n_poly_types::*;
7use crate::nmod_mpoly::*;
8use crate::nmod_types::*;
9
10
11#[repr(C)]
12pub struct nmod_mpolyv_struct {
13 pub coeffs: *mut nmod_mpoly_struct,
14 pub alloc: slong,
15 pub length: slong,
16}
17#[allow(clippy::unnecessary_operation, clippy::identity_op)]
18const _: () = {
19 ["Size of nmod_mpolyv_struct"][::std::mem::size_of::<nmod_mpolyv_struct>() - 24usize];
20 ["Alignment of nmod_mpolyv_struct"][::std::mem::align_of::<nmod_mpolyv_struct>() - 8usize];
21 ["Offset of field: nmod_mpolyv_struct::coeffs"]
22 [::std::mem::offset_of!(nmod_mpolyv_struct, coeffs) - 0usize];
23 ["Offset of field: nmod_mpolyv_struct::alloc"]
24 [::std::mem::offset_of!(nmod_mpolyv_struct, alloc) - 8usize];
25 ["Offset of field: nmod_mpolyv_struct::length"]
26 [::std::mem::offset_of!(nmod_mpolyv_struct, length) - 16usize];
27};
28impl Default for nmod_mpolyv_struct {
29 fn default() -> Self {
30 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
31 unsafe {
32 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
33 s.assume_init()
34 }
35 }
36}
37pub type nmod_mpolyv_t = [nmod_mpolyv_struct; 1usize];
38#[repr(C)]
39pub struct nmod_mpoly_pfrac_struct {
40 pub bits: flint_bitcnt_t,
41 pub w: slong,
42 pub r: slong,
43 pub inv_prod_dbetas: *mut n_poly_struct,
44 pub inv_prod_dbetas_mvar: *mut nmod_mpoly_struct,
45 pub dbetas: *mut n_poly_struct,
46 pub dbetas_mvar: *mut nmod_mpoly_struct,
47 pub prod_mbetas: *mut nmod_mpoly_struct,
48 pub prod_mbetas_coeffs: *mut nmod_mpolyv_struct,
49 pub mbetas: *mut nmod_mpoly_struct,
50 pub deltas: *mut nmod_mpoly_struct,
51 pub xalpha: *mut nmod_mpoly_struct,
52 pub q: *mut nmod_mpoly_struct,
53 pub G: *mut nmod_mpoly_geobucket_struct,
54 pub qt: *mut nmod_mpoly_struct,
55 pub newt: *mut nmod_mpoly_struct,
56 pub delta_coeffs: *mut nmod_mpolyv_struct,
57 pub T: nmod_mpoly_t,
58 pub Q: nmod_mpoly_t,
59 pub R: nmod_mpoly_t,
60}
61#[allow(clippy::unnecessary_operation, clippy::identity_op)]
62const _: () = {
63 ["Size of nmod_mpoly_pfrac_struct"]
64 [::std::mem::size_of::<nmod_mpoly_pfrac_struct>() - 280usize];
65 ["Alignment of nmod_mpoly_pfrac_struct"]
66 [::std::mem::align_of::<nmod_mpoly_pfrac_struct>() - 8usize];
67 ["Offset of field: nmod_mpoly_pfrac_struct::bits"]
68 [::std::mem::offset_of!(nmod_mpoly_pfrac_struct, bits) - 0usize];
69 ["Offset of field: nmod_mpoly_pfrac_struct::w"]
70 [::std::mem::offset_of!(nmod_mpoly_pfrac_struct, w) - 8usize];
71 ["Offset of field: nmod_mpoly_pfrac_struct::r"]
72 [::std::mem::offset_of!(nmod_mpoly_pfrac_struct, r) - 16usize];
73 ["Offset of field: nmod_mpoly_pfrac_struct::inv_prod_dbetas"]
74 [::std::mem::offset_of!(nmod_mpoly_pfrac_struct, inv_prod_dbetas) - 24usize];
75 ["Offset of field: nmod_mpoly_pfrac_struct::inv_prod_dbetas_mvar"]
76 [::std::mem::offset_of!(nmod_mpoly_pfrac_struct, inv_prod_dbetas_mvar) - 32usize];
77 ["Offset of field: nmod_mpoly_pfrac_struct::dbetas"]
78 [::std::mem::offset_of!(nmod_mpoly_pfrac_struct, dbetas) - 40usize];
79 ["Offset of field: nmod_mpoly_pfrac_struct::dbetas_mvar"]
80 [::std::mem::offset_of!(nmod_mpoly_pfrac_struct, dbetas_mvar) - 48usize];
81 ["Offset of field: nmod_mpoly_pfrac_struct::prod_mbetas"]
82 [::std::mem::offset_of!(nmod_mpoly_pfrac_struct, prod_mbetas) - 56usize];
83 ["Offset of field: nmod_mpoly_pfrac_struct::prod_mbetas_coeffs"]
84 [::std::mem::offset_of!(nmod_mpoly_pfrac_struct, prod_mbetas_coeffs) - 64usize];
85 ["Offset of field: nmod_mpoly_pfrac_struct::mbetas"]
86 [::std::mem::offset_of!(nmod_mpoly_pfrac_struct, mbetas) - 72usize];
87 ["Offset of field: nmod_mpoly_pfrac_struct::deltas"]
88 [::std::mem::offset_of!(nmod_mpoly_pfrac_struct, deltas) - 80usize];
89 ["Offset of field: nmod_mpoly_pfrac_struct::xalpha"]
90 [::std::mem::offset_of!(nmod_mpoly_pfrac_struct, xalpha) - 88usize];
91 ["Offset of field: nmod_mpoly_pfrac_struct::q"]
92 [::std::mem::offset_of!(nmod_mpoly_pfrac_struct, q) - 96usize];
93 ["Offset of field: nmod_mpoly_pfrac_struct::G"]
94 [::std::mem::offset_of!(nmod_mpoly_pfrac_struct, G) - 104usize];
95 ["Offset of field: nmod_mpoly_pfrac_struct::qt"]
96 [::std::mem::offset_of!(nmod_mpoly_pfrac_struct, qt) - 112usize];
97 ["Offset of field: nmod_mpoly_pfrac_struct::newt"]
98 [::std::mem::offset_of!(nmod_mpoly_pfrac_struct, newt) - 120usize];
99 ["Offset of field: nmod_mpoly_pfrac_struct::delta_coeffs"]
100 [::std::mem::offset_of!(nmod_mpoly_pfrac_struct, delta_coeffs) - 128usize];
101 ["Offset of field: nmod_mpoly_pfrac_struct::T"]
102 [::std::mem::offset_of!(nmod_mpoly_pfrac_struct, T) - 136usize];
103 ["Offset of field: nmod_mpoly_pfrac_struct::Q"]
104 [::std::mem::offset_of!(nmod_mpoly_pfrac_struct, Q) - 184usize];
105 ["Offset of field: nmod_mpoly_pfrac_struct::R"]
106 [::std::mem::offset_of!(nmod_mpoly_pfrac_struct, R) - 232usize];
107};
108impl Default for nmod_mpoly_pfrac_struct {
109 fn default() -> Self {
110 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
111 unsafe {
112 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
113 s.assume_init()
114 }
115 }
116}
117pub type nmod_mpoly_pfrac_t = [nmod_mpoly_pfrac_struct; 1usize];
118extern "C" {
119 pub fn nmod_mpoly_get_bpoly(
120 A: *mut n_bpoly_struct,
121 B: *const nmod_mpoly_struct,
122 var0: slong,
123 var1: slong,
124 ctx: *const nmod_mpoly_ctx_struct,
125 );
126 pub fn nmod_mpoly_set_bpoly(
127 A: *mut nmod_mpoly_struct,
128 Abits: flint_bitcnt_t,
129 B: *const n_bpoly_struct,
130 var0: slong,
131 var1: slong,
132 ctx: *const nmod_mpoly_ctx_struct,
133 );
134 pub fn n_bpoly_mod_factor_smprime(
135 c: *mut n_poly_struct,
136 F: *mut n_tpoly_struct,
137 B: *mut n_bpoly_struct,
138 allow_shift: libc::c_int,
139 ctx: nmod_t,
140 ) -> libc::c_int;
141 pub fn n_bpoly_mod_factor_lgprime(
142 c: *mut n_poly_struct,
143 F: *mut n_tpoly_struct,
144 B: *mut n_bpoly_struct,
145 ctx: nmod_t,
146 );
147 pub fn nmod_mat_is_reduced(N: *const nmod_mat_struct) -> libc::c_int;
148 pub fn nmod_mat_init_nullspace_tr(X: *mut nmod_mat_struct, tmp: *mut nmod_mat_struct);
149 #[link_name = "nmod_mpoly_factor_init__extern"]
150 pub fn nmod_mpoly_factor_init(
151 f: *mut nmod_mpoly_factor_struct,
152 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
153 );
154 pub fn nmod_mpoly_factor_init2(
155 f: *mut nmod_mpoly_factor_struct,
156 alloc: slong,
157 ctx: *const nmod_mpoly_ctx_struct,
158 );
159 pub fn nmod_mpoly_factor_realloc(
160 f: *mut nmod_mpoly_factor_struct,
161 alloc: slong,
162 ctx: *const nmod_mpoly_ctx_struct,
163 );
164 pub fn nmod_mpoly_factor_fit_length(
165 f: *mut nmod_mpoly_factor_struct,
166 len: slong,
167 ctx: *const nmod_mpoly_ctx_struct,
168 );
169 pub fn nmod_mpoly_factor_clear(
170 f: *mut nmod_mpoly_factor_struct,
171 ctx: *const nmod_mpoly_ctx_struct,
172 );
173 #[link_name = "nmod_mpoly_factor_length__extern"]
174 pub fn nmod_mpoly_factor_length(
175 f: *const nmod_mpoly_factor_struct,
176 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
177 ) -> slong;
178 #[link_name = "nmod_mpoly_factor_get_constant_ui__extern"]
179 pub fn nmod_mpoly_factor_get_constant_ui(
180 f: *const nmod_mpoly_factor_struct,
181 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
182 ) -> ulong;
183 #[link_name = "nmod_mpoly_factor_get_base__extern"]
184 pub fn nmod_mpoly_factor_get_base(
185 p: *mut nmod_mpoly_struct,
186 f: *const nmod_mpoly_factor_struct,
187 i: slong,
188 ctx: *const nmod_mpoly_ctx_struct,
189 );
190 #[link_name = "nmod_mpoly_factor_swap_base__extern"]
191 pub fn nmod_mpoly_factor_swap_base(
192 p: *mut nmod_mpoly_struct,
193 f: *mut nmod_mpoly_factor_struct,
194 i: slong,
195 ctx: *const nmod_mpoly_ctx_struct,
196 );
197 pub fn nmod_mpoly_factor_get_exp_si(
198 f: *mut nmod_mpoly_factor_struct,
199 i: slong,
200 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
201 ) -> slong;
202 pub fn nmod_mpoly_factor_append_ui(
203 f: *mut nmod_mpoly_factor_struct,
204 A: *const nmod_mpoly_struct,
205 e: ulong,
206 ctx: *const nmod_mpoly_ctx_struct,
207 );
208 pub fn nmod_mpoly_factor_append_fmpz(
209 f: *mut nmod_mpoly_factor_struct,
210 A: *const nmod_mpoly_struct,
211 e: *const fmpz,
212 ctx: *const nmod_mpoly_ctx_struct,
213 );
214 pub fn nmod_mpoly_factor_set(
215 f: *mut nmod_mpoly_factor_struct,
216 g: *const nmod_mpoly_factor_struct,
217 ctx: *const nmod_mpoly_ctx_struct,
218 );
219 pub fn nmod_mpoly_factor_print_pretty(
220 f: *const nmod_mpoly_factor_struct,
221 vars: *mut *const libc::c_char,
222 ctx: *const nmod_mpoly_ctx_struct,
223 );
224 pub fn nmod_mpoly_factor_content(
225 f: *mut nmod_mpoly_factor_struct,
226 A: *const nmod_mpoly_struct,
227 ctx: *const nmod_mpoly_ctx_struct,
228 ) -> libc::c_int;
229 pub fn nmod_mpoly_factor_squarefree(
230 f: *mut nmod_mpoly_factor_struct,
231 A: *const nmod_mpoly_struct,
232 ctx: *const nmod_mpoly_ctx_struct,
233 ) -> libc::c_int;
234 pub fn nmod_mpoly_factor_separable(
235 f: *mut nmod_mpoly_factor_struct,
236 A: *const nmod_mpoly_struct,
237 ctx: *const nmod_mpoly_ctx_struct,
238 sep: libc::c_int,
239 ) -> libc::c_int;
240 pub fn nmod_mpoly_factor(
241 f: *mut nmod_mpoly_factor_struct,
242 A: *const nmod_mpoly_struct,
243 ctx: *const nmod_mpoly_ctx_struct,
244 ) -> libc::c_int;
245 pub fn nmod_mpoly_factor_sort(
246 f: *mut nmod_mpoly_factor_struct,
247 ctx: *const nmod_mpoly_ctx_struct,
248 );
249 pub fn nmod_mpoly_factor_cmp(
250 A: *const nmod_mpoly_factor_struct,
251 B: *const nmod_mpoly_factor_struct,
252 ctx: *const nmod_mpoly_ctx_struct,
253 ) -> libc::c_int;
254 pub fn nmod_mpoly_factor_expand(
255 A: *mut nmod_mpoly_struct,
256 f: *const nmod_mpoly_factor_struct,
257 ctx: *const nmod_mpoly_ctx_struct,
258 ) -> libc::c_int;
259 #[link_name = "nmod_mpoly_factor_matches__extern"]
260 pub fn nmod_mpoly_factor_matches(
261 a: *const nmod_mpoly_struct,
262 f: *const nmod_mpoly_factor_struct,
263 ctx: *const nmod_mpoly_ctx_struct,
264 ) -> libc::c_int;
265 pub fn nmod_mpoly_factor_fix_units(
266 f: *mut nmod_mpoly_factor_struct,
267 ctx: *const nmod_mpoly_ctx_struct,
268 ) -> libc::c_int;
269 #[link_name = "nmod_mpoly_factor_swap__extern"]
270 pub fn nmod_mpoly_factor_swap(
271 f: *mut nmod_mpoly_factor_struct,
272 g: *mut nmod_mpoly_factor_struct,
273 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
274 );
275 #[link_name = "nmod_mpoly_factor_one__extern"]
276 pub fn nmod_mpoly_factor_one(
277 f: *mut nmod_mpoly_factor_struct,
278 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
279 );
280 pub fn _nmod_mpoly_get_lead0(
281 c: *mut nmod_mpoly_struct,
282 A: *const nmod_mpoly_struct,
283 ctx: *const nmod_mpoly_ctx_struct,
284 );
285 pub fn _nmod_mpoly_set_lead0(
286 A: *mut nmod_mpoly_struct,
287 B: *const nmod_mpoly_struct,
288 c: *const nmod_mpoly_struct,
289 ctx: *const nmod_mpoly_ctx_struct,
290 );
291 pub fn _n_poly_vec_max_degree(A: *const n_poly_struct, Alen: slong) -> slong;
292 pub fn _n_poly_vec_mul_nmod_intertible(
293 A: *mut n_poly_struct,
294 Alen: slong,
295 c: ulong,
296 ctx: nmod_t,
297 );
298 pub fn _n_poly_vec_mod_mul_poly(
299 A: *mut n_poly_struct,
300 Alen: slong,
301 g: *const n_poly_struct,
302 ctx: nmod_t,
303 );
304 pub fn _n_poly_vec_mod_divexact_poly(
305 A: *mut n_poly_struct,
306 Alen: slong,
307 g: *const n_poly_struct,
308 ctx: nmod_t,
309 );
310 pub fn _n_poly_vec_mod_content(
311 g: *mut n_poly_struct,
312 A: *const n_poly_struct,
313 Alen: slong,
314 ctx: nmod_t,
315 );
316 pub fn _n_poly_vec_mod_remove_content(
317 g: *mut n_poly_struct,
318 A: *mut n_poly_struct,
319 Alen: slong,
320 ctx: nmod_t,
321 );
322 pub fn nmod_mpoly_get_polyu1n(
323 A: *mut n_polyun_struct,
324 B: *const nmod_mpoly_struct,
325 varx: slong,
326 vary: slong,
327 ctx: *const nmod_mpoly_ctx_struct,
328 );
329 pub fn nmod_mpoly_set_polyu1n(
330 B: *mut nmod_mpoly_struct,
331 A: *const n_polyun_struct,
332 varx: slong,
333 vary: slong,
334 ctx: *const nmod_mpoly_ctx_struct,
335 );
336 #[link_name = "nmod_mpolyv_init__extern"]
337 pub fn nmod_mpolyv_init(A: *mut nmod_mpolyv_struct, UNUSED_ctx: *const nmod_mpoly_ctx_struct);
338 #[link_name = "nmod_mpolyv_swap__extern"]
339 pub fn nmod_mpolyv_swap(
340 A: *mut nmod_mpolyv_struct,
341 B: *mut nmod_mpolyv_struct,
342 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
343 );
344 pub fn nmod_mpolyv_clear(A: *mut nmod_mpolyv_struct, ctx: *const nmod_mpoly_ctx_struct);
345 pub fn nmod_mpolyv_print_pretty(
346 poly: *const nmod_mpolyv_struct,
347 x: *mut *const libc::c_char,
348 ctx: *const nmod_mpoly_ctx_struct,
349 );
350 pub fn nmod_mpolyv_fit_length(
351 A: *mut nmod_mpolyv_struct,
352 length: slong,
353 ctx: *const nmod_mpoly_ctx_struct,
354 );
355 pub fn nmod_mpolyv_set_coeff(
356 A: *mut nmod_mpolyv_struct,
357 i: slong,
358 c: *mut nmod_mpoly_struct,
359 ctx: *const nmod_mpoly_ctx_struct,
360 );
361 pub fn nmod_mpoly_to_mpolyv(
362 A: *mut nmod_mpolyv_struct,
363 B: *const nmod_mpoly_struct,
364 xalpha: *const nmod_mpoly_struct,
365 ctx: *const nmod_mpoly_ctx_struct,
366 );
367 pub fn nmod_mpoly_from_mpolyv(
368 A: *mut nmod_mpoly_struct,
369 Abits: flint_bitcnt_t,
370 B: *const nmod_mpolyv_struct,
371 xalpha: *const nmod_mpoly_struct,
372 ctx: *const nmod_mpoly_ctx_struct,
373 );
374 pub fn _nmod_mpoly_vec_content_mpoly(
375 g: *mut nmod_mpoly_struct,
376 A: *const nmod_mpoly_struct,
377 Alen: slong,
378 ctx: *const nmod_mpoly_ctx_struct,
379 ) -> libc::c_int;
380 pub fn _nmod_mpoly_vec_divexact_mpoly(
381 A: *mut nmod_mpoly_struct,
382 Alen: slong,
383 c: *const nmod_mpoly_struct,
384 ctx: *const nmod_mpoly_ctx_struct,
385 );
386 pub fn _nmod_mpoly_vec_mul_mpoly(
387 A: *mut nmod_mpoly_struct,
388 Alen: slong,
389 c: *const nmod_mpoly_struct,
390 ctx: *const nmod_mpoly_ctx_struct,
391 );
392 pub fn _nmod_mpoly_factor_separable(
393 f: *mut nmod_mpoly_factor_struct,
394 A: *const nmod_mpoly_struct,
395 ctx: *const nmod_mpoly_ctx_struct,
396 sep: libc::c_int,
397 ) -> libc::c_int;
398 pub fn nmod_mpoly_factor_lcc_wang(
399 lc_divs: *mut nmod_mpoly_struct,
400 lcAfac: *const nmod_mpoly_factor_struct,
401 Auc: *const n_poly_struct,
402 Auf: *const n_bpoly_struct,
403 r: slong,
404 alpha: *const n_poly_struct,
405 ctx: *const nmod_mpoly_ctx_struct,
406 ) -> libc::c_int;
407 pub fn nmod_mpoly_factor_irred_smprime_zassenhaus(
408 fac: *mut nmod_mpolyv_struct,
409 A: *const nmod_mpoly_struct,
410 ctx: *const nmod_mpoly_ctx_struct,
411 state: *mut flint_rand_struct,
412 ) -> libc::c_int;
413 pub fn nmod_mpoly_factor_irred_medprime_zassenhaus(
414 fac: *mut nmod_mpolyv_struct,
415 A: *const nmod_mpoly_struct,
416 ctx: *const nmod_mpoly_ctx_struct,
417 state: *mut flint_rand_struct,
418 ) -> libc::c_int;
419 pub fn nmod_mpoly_factor_irred_lgprime_zassenhaus(
420 fac: *mut nmod_mpolyv_struct,
421 A: *const nmod_mpoly_struct,
422 ctx: *const nmod_mpoly_ctx_struct,
423 state: *mut flint_rand_struct,
424 ) -> libc::c_int;
425 pub fn nmod_mpoly_factor_irred_smprime_wang(
426 fac: *mut nmod_mpolyv_struct,
427 A: *const nmod_mpoly_struct,
428 lcAfac: *const nmod_mpoly_factor_struct,
429 lcA: *const nmod_mpoly_struct,
430 ctx: *const nmod_mpoly_ctx_struct,
431 state: *mut flint_rand_struct,
432 ) -> libc::c_int;
433 pub fn nmod_mpoly_factor_irred_medprime_wang(
434 Af: *mut nmod_mpolyv_struct,
435 A: *const nmod_mpoly_struct,
436 lcAfac: *const nmod_mpoly_factor_struct,
437 lcA: *const nmod_mpoly_struct,
438 ctx: *const nmod_mpoly_ctx_struct,
439 state: *mut flint_rand_struct,
440 ) -> libc::c_int;
441 pub fn nmod_mpoly_factor_irred_lgprime_wang(
442 Af: *mut nmod_mpolyv_struct,
443 A: *const nmod_mpoly_struct,
444 lcAfac: *const nmod_mpoly_factor_struct,
445 lcA: *const nmod_mpoly_struct,
446 ctx: *const nmod_mpoly_ctx_struct,
447 state: *mut flint_rand_struct,
448 ) -> libc::c_int;
449 pub fn nmod_mpoly_factor_irred_smprime_zippel(
450 fac: *mut nmod_mpolyv_struct,
451 A: *const nmod_mpoly_struct,
452 lcAfac: *const nmod_mpoly_factor_struct,
453 lcA: *const nmod_mpoly_struct,
454 ctx: *const nmod_mpoly_ctx_struct,
455 state: *mut flint_rand_struct,
456 ) -> libc::c_int;
457 pub fn nmod_mpoly_factor_irred_medprime_zippel(
458 Af: *mut nmod_mpolyv_struct,
459 A: *const nmod_mpoly_struct,
460 lcAfac: *const nmod_mpoly_factor_struct,
461 lcA: *const nmod_mpoly_struct,
462 ctx: *const nmod_mpoly_ctx_struct,
463 state: *mut flint_rand_struct,
464 ) -> libc::c_int;
465 pub fn nmod_mpoly_factor_irred_lgprime_zippel(
466 Af: *mut nmod_mpolyv_struct,
467 A: *const nmod_mpoly_struct,
468 lcAfac: *const nmod_mpoly_factor_struct,
469 lcA: *const nmod_mpoly_struct,
470 ctx: *const nmod_mpoly_ctx_struct,
471 state: *mut flint_rand_struct,
472 ) -> libc::c_int;
473 pub fn nmod_mpoly_compression_do(
474 L: *mut nmod_mpoly_struct,
475 Lctx: *const nmod_mpoly_ctx_struct,
476 Acoeffs: *mut ulong,
477 Alen: slong,
478 M: *mut mpoly_compression_struct,
479 );
480 pub fn nmod_mpoly_compression_undo(
481 A: *mut nmod_mpoly_struct,
482 Abits: flint_bitcnt_t,
483 Actx: *const nmod_mpoly_ctx_struct,
484 L: *mut nmod_mpoly_struct,
485 Lctx: *const nmod_mpoly_ctx_struct,
486 M: *mut mpoly_compression_struct,
487 );
488 pub fn nmod_mpolyu_is_canonical(
489 A: *const nmod_mpolyu_struct,
490 ctx: *const nmod_mpoly_ctx_struct,
491 ) -> libc::c_int;
492 pub fn nmod_mpolyu3_print_pretty(
493 A: *const nmod_mpolyu_struct,
494 var0: *const libc::c_char,
495 var1: *const libc::c_char,
496 var2: *const libc::c_char,
497 vars: *mut *const libc::c_char,
498 ctx: *const nmod_mpoly_ctx_struct,
499 );
500 pub fn nmod_mpoly_pfrac_init(
501 Iv: *mut nmod_mpoly_pfrac_struct,
502 bits: flint_bitcnt_t,
503 l: slong,
504 r: slong,
505 betas: *const nmod_mpoly_struct,
506 alpha: *const ulong,
507 ctx: *const nmod_mpoly_ctx_struct,
508 ) -> libc::c_int;
509 pub fn nmod_mpoly_pfrac_clear(
510 Iv: *mut nmod_mpoly_pfrac_struct,
511 ctx: *const nmod_mpoly_ctx_struct,
512 );
513 pub fn nmod_mpoly_pfrac(
514 r: slong,
515 t: *mut nmod_mpoly_struct,
516 deg: *const slong,
517 Iv: *mut nmod_mpoly_pfrac_struct,
518 ctx: *const nmod_mpoly_ctx_struct,
519 ) -> libc::c_int;
520 pub fn nmod_mpoly_hlift(
521 m: slong,
522 f: *mut nmod_mpoly_struct,
523 r: slong,
524 alpha: *const ulong,
525 A: *const nmod_mpoly_struct,
526 degs: *const slong,
527 ctx: *const nmod_mpoly_ctx_struct,
528 ) -> libc::c_int;
529 pub fn n_bpoly_mod_pfrac(
530 r: slong,
531 C: *mut n_bpoly_struct,
532 C_deg1_bound: *mut slong,
533 A: *mut n_bpoly_struct,
534 B: *mut n_bpoly_struct,
535 mod_: nmod_t,
536 ) -> libc::c_int;
537 pub fn n_bpoly_mod_hlift2(
538 A: *mut n_bpoly_struct,
539 B0: *mut n_bpoly_struct,
540 B1: *mut n_bpoly_struct,
541 alpha: ulong,
542 degree_inner: slong,
543 mod_: nmod_t,
544 St: *mut n_poly_bpoly_stack_struct,
545 ) -> libc::c_int;
546 pub fn n_bpoly_mod_hlift2_cubic(
547 A: *mut n_bpoly_struct,
548 B0: *mut n_bpoly_struct,
549 B1: *mut n_bpoly_struct,
550 alpha: ulong,
551 degree_inner: slong,
552 ctx: nmod_t,
553 E: *mut nmod_eval_interp_struct,
554 St: *mut n_poly_bpoly_stack_struct,
555 ) -> libc::c_int;
556 pub fn n_bpoly_mod_hlift(
557 r: slong,
558 A: *mut n_bpoly_struct,
559 B: *mut n_bpoly_struct,
560 alpha: ulong,
561 degree_inner: slong,
562 mod_: nmod_t,
563 St: *mut n_poly_bpoly_stack_struct,
564 ) -> libc::c_int;
565 pub fn n_bpoly_mod_hlift_cubic(
566 r: slong,
567 A: *mut n_bpoly_struct,
568 B: *mut n_bpoly_struct,
569 alpha: ulong,
570 degree_inner: slong,
571 mod_: nmod_t,
572 E: *mut nmod_eval_interp_struct,
573 St: *mut n_poly_bpoly_stack_struct,
574 ) -> libc::c_int;
575 pub fn n_polyu3_mod_hlift(
576 r: slong,
577 BB: *mut n_polyun_struct,
578 A: *mut n_polyu_struct,
579 B: *mut n_polyu_struct,
580 beta: ulong,
581 degree_inner: slong,
582 ctx: nmod_t,
583 ) -> libc::c_int;
584 pub fn nmod_mpoly_hlift_zippel(
585 m: slong,
586 B: *mut nmod_mpoly_struct,
587 r: slong,
588 alpha: *const ulong,
589 A: *const nmod_mpoly_struct,
590 degs: *const slong,
591 ctx: *const nmod_mpoly_ctx_struct,
592 state: *mut flint_rand_struct,
593 ) -> libc::c_int;
594 pub fn nmod_mpoly_factor_algo(
595 f: *mut nmod_mpoly_factor_struct,
596 A: *const nmod_mpoly_struct,
597 ctx: *const nmod_mpoly_ctx_struct,
598 algo: libc::c_uint,
599 ) -> libc::c_int;
600 pub fn nmod_mpoly_factor_zassenhaus(
601 f: *mut nmod_mpoly_factor_struct,
602 A: *const nmod_mpoly_struct,
603 ctx: *const nmod_mpoly_ctx_struct,
604 ) -> libc::c_int;
605 pub fn nmod_mpoly_factor_wang(
606 f: *mut nmod_mpoly_factor_struct,
607 A: *const nmod_mpoly_struct,
608 ctx: *const nmod_mpoly_ctx_struct,
609 ) -> libc::c_int;
610 pub fn nmod_mpoly_factor_zippel(
611 f: *mut nmod_mpoly_factor_struct,
612 A: *const nmod_mpoly_struct,
613 ctx: *const nmod_mpoly_ctx_struct,
614 ) -> libc::c_int;
615 pub fn _nmod_mpoly_evaluate_rest_n_poly(
616 E: *mut n_poly_struct,
617 starts: *mut slong,
618 ends: *mut slong,
619 stops: *mut slong,
620 es: *mut ulong,
621 Acoeffs: *const ulong,
622 Aexps: *const ulong,
623 Alen: slong,
624 var: slong,
625 alphas: *const n_poly_struct,
626 offsets: *const slong,
627 shifts: *const slong,
628 N: slong,
629 mask: ulong,
630 nvars: slong,
631 ctx: nmod_t,
632 ) -> libc::c_int;
633 pub fn _nmod_mpoly_eval_rest_to_n_bpoly(
634 E: *mut n_bpoly_struct,
635 A: *const nmod_mpoly_struct,
636 alphabetas: *const n_poly_struct,
637 ctx: *const nmod_mpoly_ctx_struct,
638 );
639 pub fn _nmod_mpoly_set_n_bpoly_var1_zero(
640 A: *mut nmod_mpoly_struct,
641 Abits: flint_bitcnt_t,
642 B: *const n_bpoly_struct,
643 var: slong,
644 ctx: *const nmod_mpoly_ctx_struct,
645 );
646 pub fn nmod_mpolyl_gcdp_zippel_smprime(
647 G: *mut nmod_mpoly_struct,
648 Abar: *mut nmod_mpoly_struct,
649 Bbar: *mut nmod_mpoly_struct,
650 A: *mut nmod_mpoly_struct,
651 B: *mut nmod_mpoly_struct,
652 var: slong,
653 ctx: *const nmod_mpoly_ctx_struct,
654 state: *mut flint_rand_struct,
655 ) -> libc::c_int;
656 pub fn nmod_mpolyl_gcds_zippel(
657 G: *mut nmod_mpoly_struct,
658 Gmarks: *const ulong,
659 Gmarkslen: slong,
660 A: *mut nmod_mpoly_struct,
661 B: *mut nmod_mpoly_struct,
662 perm: *mut slong,
663 l: slong,
664 var: slong,
665 ctx: *const nmod_mpoly_ctx_struct,
666 state: *mut flint_rand_struct,
667 Gdegbound: *mut slong,
668 Amarks: *mut n_poly_struct,
669 Bmarks: *mut n_poly_struct,
670 ) -> libc::c_int;
671 pub fn mpoly_monomial_evals_nmod(
672 EH: *mut n_poly_struct,
673 Aexps: *const ulong,
674 Alen: slong,
675 Abits: flint_bitcnt_t,
676 alpha_caches: *mut n_poly_struct,
677 start: slong,
678 stop: slong,
679 mctx: *const mpoly_ctx_struct,
680 fpctx: nmod_t,
681 );
682 pub fn mpoly1_monomial_evals_nmod(
683 EH: *mut n_polyun_struct,
684 Aexps: *const ulong,
685 Abits: flint_bitcnt_t,
686 Amarks: *const ulong,
687 Amarkslen: slong,
688 alpha_caches: *mut n_poly_struct,
689 m: slong,
690 mctx: *const mpoly_ctx_struct,
691 fpctx: nmod_t,
692 );
693 pub fn mpoly2_monomial_evals_nmod(
694 EH: *mut n_polyun_struct,
695 Aexps: *const ulong,
696 Abits: flint_bitcnt_t,
697 Amarks: *mut ulong,
698 Amarkslen: slong,
699 alpha_caches: *mut n_poly_struct,
700 m: slong,
701 mctx: *const mpoly_ctx_struct,
702 fpctx: nmod_t,
703 );
704 pub fn n_polyun_zip_start(Z: *mut n_polyun_struct, H: *mut n_polyun_struct, req_images: slong);
705 pub fn n_polyu2n_add_zip_must_match(
706 Z: *mut n_polyun_struct,
707 A: *const n_bpoly_struct,
708 cur_length: slong,
709 ) -> libc::c_int;
710 pub fn n_polyun_zip_solve(
711 A: *mut nmod_mpoly_struct,
712 Z: *mut n_polyun_struct,
713 H: *mut n_polyun_struct,
714 M: *mut n_polyun_struct,
715 ctx: *const nmod_mpoly_ctx_struct,
716 ) -> libc::c_int;
717}