1use libc::*;
4use crate::deps::*;
5use crate::flint::*;
6use crate::fmpz_types::*;
7use crate::mpoly_types::*;
8use crate::n_poly_types::*;
9use crate::nmod_types::*;
10
11
12#[repr(C)]
13pub struct nmod_mpoly_univar_struct {
14 pub coeffs: *mut nmod_mpoly_struct,
15 pub exps: *mut fmpz,
16 pub alloc: slong,
17 pub length: slong,
18}
19#[allow(clippy::unnecessary_operation, clippy::identity_op)]
20const _: () = {
21 ["Size of nmod_mpoly_univar_struct"]
22 [::std::mem::size_of::<nmod_mpoly_univar_struct>() - 32usize];
23 ["Alignment of nmod_mpoly_univar_struct"]
24 [::std::mem::align_of::<nmod_mpoly_univar_struct>() - 8usize];
25 ["Offset of field: nmod_mpoly_univar_struct::coeffs"]
26 [::std::mem::offset_of!(nmod_mpoly_univar_struct, coeffs) - 0usize];
27 ["Offset of field: nmod_mpoly_univar_struct::exps"]
28 [::std::mem::offset_of!(nmod_mpoly_univar_struct, exps) - 8usize];
29 ["Offset of field: nmod_mpoly_univar_struct::alloc"]
30 [::std::mem::offset_of!(nmod_mpoly_univar_struct, alloc) - 16usize];
31 ["Offset of field: nmod_mpoly_univar_struct::length"]
32 [::std::mem::offset_of!(nmod_mpoly_univar_struct, length) - 24usize];
33};
34impl Default for nmod_mpoly_univar_struct {
35 fn default() -> Self {
36 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
37 unsafe {
38 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
39 s.assume_init()
40 }
41 }
42}
43pub type nmod_mpoly_univar_t = [nmod_mpoly_univar_struct; 1usize];
44#[repr(C)]
45pub struct nmod_mpolyu_struct {
46 pub coeffs: *mut nmod_mpoly_struct,
47 pub exps: *mut ulong,
48 pub alloc: slong,
49 pub length: slong,
50 pub bits: flint_bitcnt_t,
51}
52#[allow(clippy::unnecessary_operation, clippy::identity_op)]
53const _: () = {
54 ["Size of nmod_mpolyu_struct"][::std::mem::size_of::<nmod_mpolyu_struct>() - 40usize];
55 ["Alignment of nmod_mpolyu_struct"][::std::mem::align_of::<nmod_mpolyu_struct>() - 8usize];
56 ["Offset of field: nmod_mpolyu_struct::coeffs"]
57 [::std::mem::offset_of!(nmod_mpolyu_struct, coeffs) - 0usize];
58 ["Offset of field: nmod_mpolyu_struct::exps"]
59 [::std::mem::offset_of!(nmod_mpolyu_struct, exps) - 8usize];
60 ["Offset of field: nmod_mpolyu_struct::alloc"]
61 [::std::mem::offset_of!(nmod_mpolyu_struct, alloc) - 16usize];
62 ["Offset of field: nmod_mpolyu_struct::length"]
63 [::std::mem::offset_of!(nmod_mpolyu_struct, length) - 24usize];
64 ["Offset of field: nmod_mpolyu_struct::bits"]
65 [::std::mem::offset_of!(nmod_mpolyu_struct, bits) - 32usize];
66};
67impl Default for nmod_mpolyu_struct {
68 fn default() -> Self {
69 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
70 unsafe {
71 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
72 s.assume_init()
73 }
74 }
75}
76pub type nmod_mpolyu_t = [nmod_mpolyu_struct; 1usize];
77#[repr(C)]
78pub struct nmod_mpolyd_struct {
79 pub nvars: slong,
80 pub degb_alloc: slong,
81 pub deg_bounds: *mut slong,
82 pub coeff_alloc: slong,
83 pub coeffs: *mut ulong,
84}
85#[allow(clippy::unnecessary_operation, clippy::identity_op)]
86const _: () = {
87 ["Size of nmod_mpolyd_struct"][::std::mem::size_of::<nmod_mpolyd_struct>() - 40usize];
88 ["Alignment of nmod_mpolyd_struct"][::std::mem::align_of::<nmod_mpolyd_struct>() - 8usize];
89 ["Offset of field: nmod_mpolyd_struct::nvars"]
90 [::std::mem::offset_of!(nmod_mpolyd_struct, nvars) - 0usize];
91 ["Offset of field: nmod_mpolyd_struct::degb_alloc"]
92 [::std::mem::offset_of!(nmod_mpolyd_struct, degb_alloc) - 8usize];
93 ["Offset of field: nmod_mpolyd_struct::deg_bounds"]
94 [::std::mem::offset_of!(nmod_mpolyd_struct, deg_bounds) - 16usize];
95 ["Offset of field: nmod_mpolyd_struct::coeff_alloc"]
96 [::std::mem::offset_of!(nmod_mpolyd_struct, coeff_alloc) - 24usize];
97 ["Offset of field: nmod_mpolyd_struct::coeffs"]
98 [::std::mem::offset_of!(nmod_mpolyd_struct, coeffs) - 32usize];
99};
100impl Default for nmod_mpolyd_struct {
101 fn default() -> Self {
102 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
103 unsafe {
104 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
105 s.assume_init()
106 }
107 }
108}
109pub type nmod_mpolyd_t = [nmod_mpolyd_struct; 1usize];
110#[repr(C)]
111pub struct nmod_poly_stack_struct {
112 pub poly_array: *mut *mut n_poly_struct,
113 pub poly_alloc: slong,
114 pub poly_top: slong,
115 pub mpolyun_array: *mut *mut nmod_mpolyun_struct,
116 pub mpolyun_alloc: slong,
117 pub mpolyun_top: slong,
118 pub mpolyn_array: *mut *mut nmod_mpolyn_struct,
119 pub mpolyn_alloc: slong,
120 pub mpolyn_top: slong,
121 pub ctx: *const nmod_mpoly_ctx_struct,
122 pub bits: flint_bitcnt_t,
123}
124#[allow(clippy::unnecessary_operation, clippy::identity_op)]
125const _: () = {
126 ["Size of nmod_poly_stack_struct"][::std::mem::size_of::<nmod_poly_stack_struct>() - 88usize];
127 ["Alignment of nmod_poly_stack_struct"]
128 [::std::mem::align_of::<nmod_poly_stack_struct>() - 8usize];
129 ["Offset of field: nmod_poly_stack_struct::poly_array"]
130 [::std::mem::offset_of!(nmod_poly_stack_struct, poly_array) - 0usize];
131 ["Offset of field: nmod_poly_stack_struct::poly_alloc"]
132 [::std::mem::offset_of!(nmod_poly_stack_struct, poly_alloc) - 8usize];
133 ["Offset of field: nmod_poly_stack_struct::poly_top"]
134 [::std::mem::offset_of!(nmod_poly_stack_struct, poly_top) - 16usize];
135 ["Offset of field: nmod_poly_stack_struct::mpolyun_array"]
136 [::std::mem::offset_of!(nmod_poly_stack_struct, mpolyun_array) - 24usize];
137 ["Offset of field: nmod_poly_stack_struct::mpolyun_alloc"]
138 [::std::mem::offset_of!(nmod_poly_stack_struct, mpolyun_alloc) - 32usize];
139 ["Offset of field: nmod_poly_stack_struct::mpolyun_top"]
140 [::std::mem::offset_of!(nmod_poly_stack_struct, mpolyun_top) - 40usize];
141 ["Offset of field: nmod_poly_stack_struct::mpolyn_array"]
142 [::std::mem::offset_of!(nmod_poly_stack_struct, mpolyn_array) - 48usize];
143 ["Offset of field: nmod_poly_stack_struct::mpolyn_alloc"]
144 [::std::mem::offset_of!(nmod_poly_stack_struct, mpolyn_alloc) - 56usize];
145 ["Offset of field: nmod_poly_stack_struct::mpolyn_top"]
146 [::std::mem::offset_of!(nmod_poly_stack_struct, mpolyn_top) - 64usize];
147 ["Offset of field: nmod_poly_stack_struct::ctx"]
148 [::std::mem::offset_of!(nmod_poly_stack_struct, ctx) - 72usize];
149 ["Offset of field: nmod_poly_stack_struct::bits"]
150 [::std::mem::offset_of!(nmod_poly_stack_struct, bits) - 80usize];
151};
152impl Default for nmod_poly_stack_struct {
153 fn default() -> Self {
154 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
155 unsafe {
156 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
157 s.assume_init()
158 }
159 }
160}
161pub type nmod_poly_stack_t = [nmod_poly_stack_struct; 1usize];
162#[repr(C)]
163pub struct nmod_mpolyd_ctx_struct {
164 pub nvars: slong,
165 pub perm: *mut slong,
166}
167#[allow(clippy::unnecessary_operation, clippy::identity_op)]
168const _: () = {
169 ["Size of nmod_mpolyd_ctx_struct"][::std::mem::size_of::<nmod_mpolyd_ctx_struct>() - 16usize];
170 ["Alignment of nmod_mpolyd_ctx_struct"]
171 [::std::mem::align_of::<nmod_mpolyd_ctx_struct>() - 8usize];
172 ["Offset of field: nmod_mpolyd_ctx_struct::nvars"]
173 [::std::mem::offset_of!(nmod_mpolyd_ctx_struct, nvars) - 0usize];
174 ["Offset of field: nmod_mpolyd_ctx_struct::perm"]
175 [::std::mem::offset_of!(nmod_mpolyd_ctx_struct, perm) - 8usize];
176};
177impl Default for nmod_mpolyd_ctx_struct {
178 fn default() -> Self {
179 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
180 unsafe {
181 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
182 s.assume_init()
183 }
184 }
185}
186pub type nmod_mpolyd_ctx_t = [nmod_mpolyd_ctx_struct; 1usize];
187#[repr(C)]
188pub struct _nmod_mpoly_stripe_struct {
189 pub big_mem: *mut libc::c_char,
190 pub big_mem_alloc: slong,
191 pub ctx: *const nmod_mpoly_ctx_struct,
192 pub N: slong,
193 pub bits: flint_bitcnt_t,
194 pub mod_: nmod_t,
195 pub lc_minus_inv: ulong,
196 pub cmpmask: *const ulong,
197 pub startidx: *mut slong,
198 pub endidx: *mut slong,
199 pub emin: *mut ulong,
200 pub emax: *mut ulong,
201 pub upperclosed: libc::c_int,
202}
203#[allow(clippy::unnecessary_operation, clippy::identity_op)]
204const _: () = {
205 ["Size of _nmod_mpoly_stripe_struct"]
206 [::std::mem::size_of::<_nmod_mpoly_stripe_struct>() - 120usize];
207 ["Alignment of _nmod_mpoly_stripe_struct"]
208 [::std::mem::align_of::<_nmod_mpoly_stripe_struct>() - 8usize];
209 ["Offset of field: _nmod_mpoly_stripe_struct::big_mem"]
210 [::std::mem::offset_of!(_nmod_mpoly_stripe_struct, big_mem) - 0usize];
211 ["Offset of field: _nmod_mpoly_stripe_struct::big_mem_alloc"]
212 [::std::mem::offset_of!(_nmod_mpoly_stripe_struct, big_mem_alloc) - 8usize];
213 ["Offset of field: _nmod_mpoly_stripe_struct::ctx"]
214 [::std::mem::offset_of!(_nmod_mpoly_stripe_struct, ctx) - 16usize];
215 ["Offset of field: _nmod_mpoly_stripe_struct::N"]
216 [::std::mem::offset_of!(_nmod_mpoly_stripe_struct, N) - 24usize];
217 ["Offset of field: _nmod_mpoly_stripe_struct::bits"]
218 [::std::mem::offset_of!(_nmod_mpoly_stripe_struct, bits) - 32usize];
219 ["Offset of field: _nmod_mpoly_stripe_struct::mod_"]
220 [::std::mem::offset_of!(_nmod_mpoly_stripe_struct, mod_) - 40usize];
221 ["Offset of field: _nmod_mpoly_stripe_struct::lc_minus_inv"]
222 [::std::mem::offset_of!(_nmod_mpoly_stripe_struct, lc_minus_inv) - 64usize];
223 ["Offset of field: _nmod_mpoly_stripe_struct::cmpmask"]
224 [::std::mem::offset_of!(_nmod_mpoly_stripe_struct, cmpmask) - 72usize];
225 ["Offset of field: _nmod_mpoly_stripe_struct::startidx"]
226 [::std::mem::offset_of!(_nmod_mpoly_stripe_struct, startidx) - 80usize];
227 ["Offset of field: _nmod_mpoly_stripe_struct::endidx"]
228 [::std::mem::offset_of!(_nmod_mpoly_stripe_struct, endidx) - 88usize];
229 ["Offset of field: _nmod_mpoly_stripe_struct::emin"]
230 [::std::mem::offset_of!(_nmod_mpoly_stripe_struct, emin) - 96usize];
231 ["Offset of field: _nmod_mpoly_stripe_struct::emax"]
232 [::std::mem::offset_of!(_nmod_mpoly_stripe_struct, emax) - 104usize];
233 ["Offset of field: _nmod_mpoly_stripe_struct::upperclosed"]
234 [::std::mem::offset_of!(_nmod_mpoly_stripe_struct, upperclosed) - 112usize];
235};
236impl Default for _nmod_mpoly_stripe_struct {
237 fn default() -> Self {
238 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
239 unsafe {
240 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
241 s.assume_init()
242 }
243 }
244}
245pub type nmod_mpoly_stripe_struct = _nmod_mpoly_stripe_struct;
246pub type nmod_mpoly_stripe_t = [nmod_mpoly_stripe_struct; 1usize];
247#[repr(C)]
248pub struct nmod_mpoly_geobucket {
249 pub polys: [nmod_mpoly_struct; 32usize],
250 pub temps: [nmod_mpoly_struct; 32usize],
251 pub length: slong,
252}
253#[allow(clippy::unnecessary_operation, clippy::identity_op)]
254const _: () = {
255 ["Size of nmod_mpoly_geobucket"][::std::mem::size_of::<nmod_mpoly_geobucket>() - 3080usize];
256 ["Alignment of nmod_mpoly_geobucket"][::std::mem::align_of::<nmod_mpoly_geobucket>() - 8usize];
257 ["Offset of field: nmod_mpoly_geobucket::polys"]
258 [::std::mem::offset_of!(nmod_mpoly_geobucket, polys) - 0usize];
259 ["Offset of field: nmod_mpoly_geobucket::temps"]
260 [::std::mem::offset_of!(nmod_mpoly_geobucket, temps) - 1536usize];
261 ["Offset of field: nmod_mpoly_geobucket::length"]
262 [::std::mem::offset_of!(nmod_mpoly_geobucket, length) - 3072usize];
263};
264impl Default for nmod_mpoly_geobucket {
265 fn default() -> Self {
266 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
267 unsafe {
268 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
269 s.assume_init()
270 }
271 }
272}
273pub type nmod_mpoly_geobucket_struct = nmod_mpoly_geobucket;
274pub type nmod_mpoly_geobucket_t = [nmod_mpoly_geobucket_struct; 1usize];
275extern "C" {
276 #[link_name = "nmod_mpoly_term_coeff_ref__extern"]
277 pub fn nmod_mpoly_term_coeff_ref(
278 A: *mut nmod_mpoly_struct,
279 i: slong,
280 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
281 ) -> *mut ulong;
282 #[link_name = "evil_cast_nmod_poly_to_n_poly__extern"]
283 pub fn evil_cast_nmod_poly_to_n_poly(a: *mut nmod_poly_struct) -> *mut n_poly_struct;
284 #[link_name = "evil_const_cast_nmod_poly_to_n_poly__extern"]
285 pub fn evil_const_cast_nmod_poly_to_n_poly(a: *const nmod_poly_struct) -> *const n_poly_struct;
286 pub fn nmod_poly_stack_init(
287 S: *mut nmod_poly_stack_struct,
288 bits: flint_bitcnt_t,
289 ctx: *const nmod_mpoly_ctx_struct,
290 );
291 pub fn nmod_poly_stack_clear(S: *mut nmod_poly_stack_struct);
292 pub fn nmod_poly_stack_set_ctx(
293 S: *mut nmod_poly_stack_struct,
294 ctx: *const nmod_mpoly_ctx_struct,
295 );
296 pub fn nmod_poly_stack_fit_request_poly(
297 S: *mut nmod_poly_stack_struct,
298 k: slong,
299 ) -> *mut *mut n_poly_struct;
300 pub fn nmod_poly_stack_fit_request_mpolyun(
301 S: *mut nmod_poly_stack_struct,
302 k: slong,
303 ) -> *mut *mut nmod_mpolyun_struct;
304 pub fn nmod_poly_stack_fit_request_mpolyn(
305 S: *mut nmod_poly_stack_struct,
306 k: slong,
307 ) -> *mut *mut nmod_mpolyn_struct;
308 #[link_name = "nmod_poly_stack_request_poly__extern"]
309 pub fn nmod_poly_stack_request_poly(
310 S: *mut nmod_poly_stack_struct,
311 k: slong,
312 ) -> *mut *mut n_poly_struct;
313 #[link_name = "nmod_poly_stack_take_top_poly__extern"]
314 pub fn nmod_poly_stack_take_top_poly(S: *mut nmod_poly_stack_struct) -> *mut n_poly_struct;
315 #[link_name = "nmod_poly_stack_give_back_poly__extern"]
316 pub fn nmod_poly_stack_give_back_poly(S: *mut nmod_poly_stack_struct, k: slong);
317 #[link_name = "nmod_poly_stack_size_poly__extern"]
318 pub fn nmod_poly_stack_size_poly(S: *const nmod_poly_stack_struct) -> slong;
319 #[link_name = "nmod_poly_stack_request_mpolyun__extern"]
320 pub fn nmod_poly_stack_request_mpolyun(
321 S: *mut nmod_poly_stack_struct,
322 k: slong,
323 ) -> *mut *mut nmod_mpolyun_struct;
324 #[link_name = "nmod_poly_stack_take_top_mpolyun__extern"]
325 pub fn nmod_poly_stack_take_top_mpolyun(
326 S: *mut nmod_poly_stack_struct,
327 ) -> *mut nmod_mpolyun_struct;
328 #[link_name = "nmod_poly_stack_give_back_mpolyun__extern"]
329 pub fn nmod_poly_stack_give_back_mpolyun(S: *mut nmod_poly_stack_struct, k: slong);
330 #[link_name = "nmod_poly_stack_size_mpolyun__extern"]
331 pub fn nmod_poly_stack_size_mpolyun(S: *const nmod_poly_stack_struct) -> slong;
332 #[link_name = "nmod_poly_stack_request_mpolyn__extern"]
333 pub fn nmod_poly_stack_request_mpolyn(
334 S: *mut nmod_poly_stack_struct,
335 k: slong,
336 ) -> *mut *mut nmod_mpolyn_struct;
337 #[link_name = "nmod_poly_stack_take_top_mpolyn__extern"]
338 pub fn nmod_poly_stack_take_top_mpolyn(
339 S: *mut nmod_poly_stack_struct,
340 ) -> *mut nmod_mpolyn_struct;
341 #[link_name = "nmod_poly_stack_give_back_mpolyn__extern"]
342 pub fn nmod_poly_stack_give_back_mpolyn(S: *mut nmod_poly_stack_struct, k: slong);
343 #[link_name = "nmod_poly_stack_size_mpolyn__extern"]
344 pub fn nmod_poly_stack_size_mpolyn(S: *const nmod_poly_stack_struct) -> slong;
345 pub fn nmod_mpoly_ctx_init(
346 ctx: *mut nmod_mpoly_ctx_struct,
347 nvars: slong,
348 ord: ordering_t,
349 modulus: ulong,
350 );
351 pub fn nmod_mpoly_ctx_init_rand(
352 ctx: *mut nmod_mpoly_ctx_struct,
353 state: *mut flint_rand_struct,
354 max_nvars: slong,
355 modulus: ulong,
356 );
357 pub fn nmod_mpoly_ctx_clear(ctx: *mut nmod_mpoly_ctx_struct);
358 pub fn nmod_mpoly_ctx_set_modulus(ctx: *mut nmod_mpoly_ctx_struct, modulus: ulong);
359 #[link_name = "nmod_mpoly_ctx_nvars__extern"]
360 pub fn nmod_mpoly_ctx_nvars(ctx: *const nmod_mpoly_ctx_struct) -> slong;
361 #[link_name = "nmod_mpoly_ctx_ord__extern"]
362 pub fn nmod_mpoly_ctx_ord(ctx: *const nmod_mpoly_ctx_struct) -> ordering_t;
363 #[link_name = "nmod_mpoly_ctx_modulus__extern"]
364 pub fn nmod_mpoly_ctx_modulus(ctx: *const nmod_mpoly_ctx_struct) -> ulong;
365 #[link_name = "nmod_mpoly_init__extern"]
366 pub fn nmod_mpoly_init(A: *mut nmod_mpoly_struct, UNUSED_ctx: *const nmod_mpoly_ctx_struct);
367 pub fn nmod_mpoly_init2(
368 A: *mut nmod_mpoly_struct,
369 alloc: slong,
370 ctx: *const nmod_mpoly_ctx_struct,
371 );
372 pub fn nmod_mpoly_init3(
373 A: *mut nmod_mpoly_struct,
374 alloc: slong,
375 bits: flint_bitcnt_t,
376 ctx: *const nmod_mpoly_ctx_struct,
377 );
378 pub fn nmod_mpoly_realloc(
379 A: *mut nmod_mpoly_struct,
380 alloc: slong,
381 ctx: *const nmod_mpoly_ctx_struct,
382 );
383 #[link_name = "nmod_mpoly_clear__extern"]
384 pub fn nmod_mpoly_clear(A: *mut nmod_mpoly_struct, UNUSED_ctx: *const nmod_mpoly_ctx_struct);
385 pub fn nmod_mpoly_fit_length(
386 A: *mut nmod_mpoly_struct,
387 length: slong,
388 ctx: *const nmod_mpoly_ctx_struct,
389 );
390 pub fn nmod_mpoly_fit_length_fit_bits(
391 A: *mut nmod_mpoly_struct,
392 len: slong,
393 bits: flint_bitcnt_t,
394 ctx: *const nmod_mpoly_ctx_struct,
395 );
396 pub fn nmod_mpoly_fit_length_reset_bits(
397 A: *mut nmod_mpoly_struct,
398 len: slong,
399 bits: flint_bitcnt_t,
400 ctx: *const nmod_mpoly_ctx_struct,
401 );
402 #[link_name = "_nmod_mpoly_fit_length__extern"]
403 pub fn _nmod_mpoly_fit_length(
404 coeffs: *mut *mut ulong,
405 coeffs_alloc: *mut slong,
406 exps: *mut *mut ulong,
407 exps_alloc: *mut slong,
408 N: slong,
409 length: slong,
410 );
411 #[link_name = "_nmod_mpoly_set_length__extern"]
412 pub fn _nmod_mpoly_set_length(
413 A: *mut nmod_mpoly_struct,
414 newlen: slong,
415 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
416 );
417 #[link_name = "nmod_mpoly_truncate__extern"]
418 pub fn nmod_mpoly_truncate(
419 A: *mut nmod_mpoly_struct,
420 newlen: slong,
421 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
422 );
423 pub fn nmod_mpoly_set_str_pretty(
424 A: *mut nmod_mpoly_struct,
425 str_: *const libc::c_char,
426 x: *mut *const libc::c_char,
427 ctx: *const nmod_mpoly_ctx_struct,
428 ) -> libc::c_int;
429 pub fn nmod_mpoly_get_str_pretty(
430 A: *const nmod_mpoly_struct,
431 x: *mut *const libc::c_char,
432 ctx: *const nmod_mpoly_ctx_struct,
433 ) -> *mut libc::c_char;
434 pub fn nmod_mpoly_fprint_pretty(
435 file: *mut FILE,
436 A: *const nmod_mpoly_struct,
437 x: *mut *const libc::c_char,
438 ctx: *const nmod_mpoly_ctx_struct,
439 ) -> libc::c_int;
440 pub fn nmod_mpoly_print_pretty(
441 A: *const nmod_mpoly_struct,
442 x: *mut *const libc::c_char,
443 ctx: *const nmod_mpoly_ctx_struct,
444 ) -> libc::c_int;
445 pub fn nmod_mpoly_gen(A: *mut nmod_mpoly_struct, var: slong, ctx: *const nmod_mpoly_ctx_struct);
446 pub fn nmod_mpoly_is_gen(
447 A: *const nmod_mpoly_struct,
448 var: slong,
449 ctx: *const nmod_mpoly_ctx_struct,
450 ) -> libc::c_int;
451 pub fn nmod_mpoly_set(
452 A: *mut nmod_mpoly_struct,
453 B: *const nmod_mpoly_struct,
454 ctx: *const nmod_mpoly_ctx_struct,
455 );
456 pub fn nmod_mpoly_equal(
457 A: *const nmod_mpoly_struct,
458 B: *const nmod_mpoly_struct,
459 ctx: *const nmod_mpoly_ctx_struct,
460 ) -> libc::c_int;
461 #[link_name = "nmod_mpoly_swap__extern"]
462 pub fn nmod_mpoly_swap(
463 A: *mut nmod_mpoly_struct,
464 B: *mut nmod_mpoly_struct,
465 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
466 );
467 pub fn nmod_mpoly_is_ui(
468 A: *const nmod_mpoly_struct,
469 ctx: *const nmod_mpoly_ctx_struct,
470 ) -> libc::c_int;
471 pub fn nmod_mpoly_get_ui(
472 A: *const nmod_mpoly_struct,
473 ctx: *const nmod_mpoly_ctx_struct,
474 ) -> ulong;
475 pub fn nmod_mpoly_set_ui(
476 A: *mut nmod_mpoly_struct,
477 c: ulong,
478 ctx: *const nmod_mpoly_ctx_struct,
479 );
480 pub fn nmod_mpoly_set_fmpz(
481 A: *mut nmod_mpoly_struct,
482 c: *const fmpz,
483 ctx: *const nmod_mpoly_ctx_struct,
484 );
485 #[link_name = "nmod_mpoly_zero__extern"]
486 pub fn nmod_mpoly_zero(A: *mut nmod_mpoly_struct, ctx: *const nmod_mpoly_ctx_struct);
487 #[link_name = "nmod_mpoly_one__extern"]
488 pub fn nmod_mpoly_one(A: *mut nmod_mpoly_struct, ctx: *const nmod_mpoly_ctx_struct);
489 pub fn nmod_mpoly_equal_ui(
490 A: *const nmod_mpoly_struct,
491 c: ulong,
492 ctx: *const nmod_mpoly_ctx_struct,
493 ) -> libc::c_int;
494 #[link_name = "nmod_mpoly_is_zero__extern"]
495 pub fn nmod_mpoly_is_zero(
496 A: *const nmod_mpoly_struct,
497 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
498 ) -> libc::c_int;
499 #[link_name = "nmod_mpoly_is_one__extern"]
500 pub fn nmod_mpoly_is_one(
501 A: *const nmod_mpoly_struct,
502 ctx: *const nmod_mpoly_ctx_struct,
503 ) -> libc::c_int;
504 pub fn nmod_mpoly_degrees_fit_si(
505 A: *const nmod_mpoly_struct,
506 ctx: *const nmod_mpoly_ctx_struct,
507 ) -> libc::c_int;
508 pub fn nmod_mpoly_degrees_fmpz(
509 degs: *mut *mut fmpz,
510 A: *const nmod_mpoly_struct,
511 ctx: *const nmod_mpoly_ctx_struct,
512 );
513 pub fn nmod_mpoly_degrees_si(
514 degs: *mut slong,
515 A: *const nmod_mpoly_struct,
516 ctx: *const nmod_mpoly_ctx_struct,
517 );
518 pub fn nmod_mpoly_degree_fmpz(
519 deg: *mut fmpz,
520 A: *const nmod_mpoly_struct,
521 var: slong,
522 ctx: *const nmod_mpoly_ctx_struct,
523 );
524 pub fn nmod_mpoly_degree_si(
525 A: *const nmod_mpoly_struct,
526 var: slong,
527 ctx: *const nmod_mpoly_ctx_struct,
528 ) -> slong;
529 pub fn nmod_mpoly_total_degree_fits_si(
530 A: *const nmod_mpoly_struct,
531 ctx: *const nmod_mpoly_ctx_struct,
532 ) -> libc::c_int;
533 pub fn nmod_mpoly_total_degree_fmpz(
534 td: *mut fmpz,
535 A: *const nmod_mpoly_struct,
536 ctx: *const nmod_mpoly_ctx_struct,
537 );
538 pub fn nmod_mpoly_total_degree_si(
539 A: *const nmod_mpoly_struct,
540 ctx: *const nmod_mpoly_ctx_struct,
541 ) -> slong;
542 pub fn nmod_mpoly_used_vars(
543 used: *mut libc::c_int,
544 A: *const nmod_mpoly_struct,
545 ctx: *const nmod_mpoly_ctx_struct,
546 );
547 pub fn nmod_mpoly_get_coeff_ui_monomial(
548 A: *const nmod_mpoly_struct,
549 M: *const nmod_mpoly_struct,
550 ctx: *const nmod_mpoly_ctx_struct,
551 ) -> ulong;
552 pub fn nmod_mpoly_set_coeff_ui_monomial(
553 A: *mut nmod_mpoly_struct,
554 c: ulong,
555 M: *const nmod_mpoly_struct,
556 ctx: *const nmod_mpoly_ctx_struct,
557 );
558 pub fn nmod_mpoly_get_coeff_ui_ui(
559 A: *const nmod_mpoly_struct,
560 exp: *const ulong,
561 ctx: *const nmod_mpoly_ctx_struct,
562 ) -> ulong;
563 pub fn nmod_mpoly_get_coeff_ui_fmpz(
564 A: *const nmod_mpoly_struct,
565 exp: *const *mut fmpz,
566 ctx: *const nmod_mpoly_ctx_struct,
567 ) -> ulong;
568 pub fn _nmod_mpoly_set_coeff_ui_fmpz(
569 A: *mut nmod_mpoly_struct,
570 c: ulong,
571 exp: *const fmpz,
572 ctx: *const nmod_mpoly_ctx_struct,
573 );
574 pub fn nmod_mpoly_set_coeff_ui_fmpz(
575 A: *mut nmod_mpoly_struct,
576 c: ulong,
577 exp: *const *mut fmpz,
578 ctx: *const nmod_mpoly_ctx_struct,
579 );
580 pub fn nmod_mpoly_set_coeff_ui_ui(
581 A: *mut nmod_mpoly_struct,
582 c: ulong,
583 exp: *const ulong,
584 ctx: *const nmod_mpoly_ctx_struct,
585 );
586 pub fn nmod_mpoly_get_coeff_vars_ui(
587 C: *mut nmod_mpoly_struct,
588 A: *const nmod_mpoly_struct,
589 vars: *const slong,
590 exps: *const ulong,
591 length: slong,
592 ctx: *const nmod_mpoly_ctx_struct,
593 );
594 #[link_name = "nmod_mpoly_leadcoeff__extern"]
595 pub fn nmod_mpoly_leadcoeff(
596 A: *mut nmod_mpoly_struct,
597 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
598 ) -> ulong;
599 pub fn nmod_mpoly_is_nmod_poly(
600 A: *const nmod_mpoly_struct,
601 var: slong,
602 ctx: *const nmod_mpoly_ctx_struct,
603 ) -> libc::c_int;
604 pub fn nmod_mpoly_get_n_poly(
605 A: *mut n_poly_struct,
606 B: *const nmod_mpoly_struct,
607 var: slong,
608 ctx: *const nmod_mpoly_ctx_struct,
609 ) -> libc::c_int;
610 pub fn nmod_mpoly_get_nmod_poly(
611 A: *mut nmod_poly_struct,
612 B: *const nmod_mpoly_struct,
613 var: slong,
614 ctx: *const nmod_mpoly_ctx_struct,
615 ) -> libc::c_int;
616 pub fn nmod_mpoly_set_n_poly_mod(
617 A: *mut nmod_mpoly_struct,
618 B: *const n_poly_struct,
619 var: slong,
620 ctx: *const nmod_mpoly_ctx_struct,
621 );
622 pub fn _nmod_mpoly_set_nmod_poly(
623 A: *mut nmod_mpoly_struct,
624 Abits: flint_bitcnt_t,
625 Bcoeffs: *const ulong,
626 Blen: slong,
627 var: slong,
628 ctx: *const nmod_mpoly_ctx_struct,
629 );
630 pub fn nmod_mpoly_set_nmod_poly(
631 A: *mut nmod_mpoly_struct,
632 B: *const nmod_poly_struct,
633 var: slong,
634 ctx: *const nmod_mpoly_ctx_struct,
635 );
636 pub fn nmod_mpoly_cmp(
637 A: *const nmod_mpoly_struct,
638 B: *const nmod_mpoly_struct,
639 ctx: *const nmod_mpoly_ctx_struct,
640 ) -> libc::c_int;
641 pub fn nmod_mpoly_is_canonical(
642 A: *const nmod_mpoly_struct,
643 ctx: *const nmod_mpoly_ctx_struct,
644 ) -> libc::c_int;
645 #[link_name = "nmod_mpoly_length__extern"]
646 pub fn nmod_mpoly_length(
647 A: *const nmod_mpoly_struct,
648 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
649 ) -> slong;
650 pub fn nmod_mpoly_resize(
651 A: *mut nmod_mpoly_struct,
652 new_length: slong,
653 ctx: *const nmod_mpoly_ctx_struct,
654 );
655 pub fn nmod_mpoly_get_term_coeff_ui(
656 A: *const nmod_mpoly_struct,
657 i: slong,
658 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
659 ) -> ulong;
660 pub fn nmod_mpoly_set_term_coeff_ui(
661 A: *mut nmod_mpoly_struct,
662 i: slong,
663 c: ulong,
664 ctx: *const nmod_mpoly_ctx_struct,
665 );
666 pub fn nmod_mpoly_term_exp_fits_ui(
667 A: *const nmod_mpoly_struct,
668 i: slong,
669 ctx: *const nmod_mpoly_ctx_struct,
670 ) -> libc::c_int;
671 pub fn nmod_mpoly_term_exp_fits_si(
672 A: *const nmod_mpoly_struct,
673 i: slong,
674 ctx: *const nmod_mpoly_ctx_struct,
675 ) -> libc::c_int;
676 pub fn nmod_mpoly_get_term_exp_si(
677 exp: *mut slong,
678 A: *const nmod_mpoly_struct,
679 i: slong,
680 ctx: *const nmod_mpoly_ctx_struct,
681 );
682 pub fn nmod_mpoly_get_term_exp_ui(
683 exp: *mut ulong,
684 A: *const nmod_mpoly_struct,
685 i: slong,
686 ctx: *const nmod_mpoly_ctx_struct,
687 );
688 pub fn nmod_mpoly_get_term_exp_fmpz(
689 exp: *mut *mut fmpz,
690 A: *const nmod_mpoly_struct,
691 i: slong,
692 ctx: *const nmod_mpoly_ctx_struct,
693 );
694 pub fn nmod_mpoly_get_term_var_exp_si(
695 A: *const nmod_mpoly_struct,
696 i: slong,
697 var: slong,
698 ctx: *const nmod_mpoly_ctx_struct,
699 ) -> slong;
700 pub fn nmod_mpoly_get_term_var_exp_ui(
701 A: *const nmod_mpoly_struct,
702 i: slong,
703 var: slong,
704 ctx: *const nmod_mpoly_ctx_struct,
705 ) -> ulong;
706 pub fn nmod_mpoly_set_term_exp_ui(
707 A: *mut nmod_mpoly_struct,
708 i: slong,
709 exp: *const ulong,
710 ctx: *const nmod_mpoly_ctx_struct,
711 );
712 pub fn nmod_mpoly_set_term_exp_fmpz(
713 A: *mut nmod_mpoly_struct,
714 i: slong,
715 exp: *const *mut fmpz,
716 ctx: *const nmod_mpoly_ctx_struct,
717 );
718 pub fn nmod_mpoly_get_term(
719 M: *mut nmod_mpoly_struct,
720 A: *const nmod_mpoly_struct,
721 i: slong,
722 ctx: *const nmod_mpoly_ctx_struct,
723 );
724 pub fn nmod_mpoly_get_term_monomial(
725 M: *mut nmod_mpoly_struct,
726 A: *const nmod_mpoly_struct,
727 i: slong,
728 ctx: *const nmod_mpoly_ctx_struct,
729 );
730 pub fn nmod_mpoly_push_term_ui_ui(
731 A: *mut nmod_mpoly_struct,
732 c: ulong,
733 exp: *const ulong,
734 ctx: *const nmod_mpoly_ctx_struct,
735 );
736 pub fn nmod_mpoly_push_term_ui_fmpz(
737 A: *mut nmod_mpoly_struct,
738 c: ulong,
739 exp: *const *mut fmpz,
740 ctx: *const nmod_mpoly_ctx_struct,
741 );
742 pub fn nmod_mpoly_push_term_ui_ffmpz(
743 A: *mut nmod_mpoly_struct,
744 c: ulong,
745 exp: *const fmpz,
746 ctx: *const nmod_mpoly_ctx_struct,
747 );
748 pub fn nmod_mpoly_sort_terms(A: *mut nmod_mpoly_struct, ctx: *const nmod_mpoly_ctx_struct);
749 pub fn nmod_mpoly_combine_like_terms(
750 A: *mut nmod_mpoly_struct,
751 ctx: *const nmod_mpoly_ctx_struct,
752 );
753 pub fn nmod_mpoly_reverse(
754 A: *mut nmod_mpoly_struct,
755 B: *const nmod_mpoly_struct,
756 ctx: *const nmod_mpoly_ctx_struct,
757 );
758 pub fn nmod_mpoly_assert_canonical(
759 A: *const nmod_mpoly_struct,
760 ctx: *const nmod_mpoly_ctx_struct,
761 );
762 pub fn _nmod_mpoly_radix_sort1(
763 A: *mut nmod_mpoly_struct,
764 left: slong,
765 right: slong,
766 pos: flint_bitcnt_t,
767 cmpmask: ulong,
768 totalmask: ulong,
769 );
770 pub fn _nmod_mpoly_radix_sort(
771 A: *mut nmod_mpoly_struct,
772 left: slong,
773 right: slong,
774 pos: flint_bitcnt_t,
775 N: slong,
776 cmpmask: *mut ulong,
777 );
778 pub fn _nmod_mpoly_push_exp_ui(
779 A: *mut nmod_mpoly_struct,
780 exp: *const ulong,
781 ctx: *const nmod_mpoly_ctx_struct,
782 );
783 pub fn _nmod_mpoly_push_exp_ffmpz(
784 A: *mut nmod_mpoly_struct,
785 exp: *const fmpz,
786 ctx: *const nmod_mpoly_ctx_struct,
787 );
788 pub fn _nmod_mpoly_push_exp_pfmpz(
789 A: *mut nmod_mpoly_struct,
790 exp: *const *mut fmpz,
791 ctx: *const nmod_mpoly_ctx_struct,
792 );
793 pub fn nmod_mpoly_randtest_bounds(
794 A: *mut nmod_mpoly_struct,
795 state: *mut flint_rand_struct,
796 length: slong,
797 exp_bounds: *mut ulong,
798 ctx: *const nmod_mpoly_ctx_struct,
799 );
800 pub fn nmod_mpoly_randtest_bound(
801 A: *mut nmod_mpoly_struct,
802 state: *mut flint_rand_struct,
803 length: slong,
804 exp_bound: ulong,
805 ctx: *const nmod_mpoly_ctx_struct,
806 );
807 pub fn nmod_mpoly_randtest_bits(
808 A: *mut nmod_mpoly_struct,
809 state: *mut flint_rand_struct,
810 length: slong,
811 exp_bits: flint_bitcnt_t,
812 ctx: *const nmod_mpoly_ctx_struct,
813 );
814 pub fn _nmod_mpoly_get_term_ui_fmpz(
815 poly: *const nmod_mpoly_struct,
816 exp: *const fmpz,
817 ctx: *const nmod_mpoly_ctx_struct,
818 ) -> ulong;
819 pub fn nmod_mpoly_get_term_ui_fmpz(
820 poly: *const nmod_mpoly_struct,
821 exp: *const *mut fmpz,
822 ctx: *const nmod_mpoly_ctx_struct,
823 ) -> ulong;
824 pub fn nmod_mpoly_get_term_ui_ui(
825 poly: *const nmod_mpoly_struct,
826 exp: *const ulong,
827 ctx: *const nmod_mpoly_ctx_struct,
828 ) -> ulong;
829 pub fn _nmod_mpoly_max_degrees(
830 max_degs: *mut ulong,
831 exps: *const ulong,
832 len: slong,
833 bits: slong,
834 n: slong,
835 deg: libc::c_int,
836 rev: libc::c_int,
837 N: slong,
838 );
839 pub fn nmod_mpoly_max_degrees(
840 max_degs: *mut ulong,
841 poly: *const nmod_mpoly_struct,
842 ctx: *const nmod_mpoly_ctx_struct,
843 );
844 pub fn nmod_mpoly_set_nmod(
845 poly: *mut nmod_mpoly_struct,
846 c: nmod_t,
847 ctx: *const nmod_mpoly_ctx_struct,
848 );
849 pub fn nmod_mpoly_get_coeff_ui(
850 x: nmod_t,
851 poly: *const nmod_mpoly_struct,
852 n: slong,
853 ctx: *const nmod_mpoly_ctx_struct,
854 ) -> ulong;
855 pub fn nmod_mpoly_set_coeff_ui(
856 poly: *mut nmod_mpoly_struct,
857 n: slong,
858 x: ulong,
859 ctx: *const nmod_mpoly_ctx_struct,
860 );
861 pub fn nmod_mpoly_get_monomial(
862 exps: *mut ulong,
863 poly: *const nmod_mpoly_struct,
864 n: slong,
865 ctx: *const nmod_mpoly_ctx_struct,
866 );
867 pub fn nmod_mpoly_set_monomial(
868 poly: *mut nmod_mpoly_struct,
869 n: slong,
870 exps: *const ulong,
871 ctx: *const nmod_mpoly_ctx_struct,
872 );
873 pub fn nmod_mpoly_add_ui(
874 A: *mut nmod_mpoly_struct,
875 B: *const nmod_mpoly_struct,
876 c: ulong,
877 ctx: *const nmod_mpoly_ctx_struct,
878 );
879 pub fn nmod_mpoly_add(
880 A: *mut nmod_mpoly_struct,
881 B: *const nmod_mpoly_struct,
882 C: *const nmod_mpoly_struct,
883 ctx: *const nmod_mpoly_ctx_struct,
884 );
885 pub fn nmod_mpoly_sub_ui(
886 A: *mut nmod_mpoly_struct,
887 B: *const nmod_mpoly_struct,
888 c: ulong,
889 ctx: *const nmod_mpoly_ctx_struct,
890 );
891 pub fn nmod_mpoly_sub(
892 A: *mut nmod_mpoly_struct,
893 B: *const nmod_mpoly_struct,
894 C: *const nmod_mpoly_struct,
895 ctx: *const nmod_mpoly_ctx_struct,
896 );
897 pub fn _nmod_mpoly_add(
898 coeff1: *mut ulong,
899 exp1: *mut ulong,
900 coeff2: *const ulong,
901 exp2: *const ulong,
902 len2: slong,
903 coeff3: *const ulong,
904 exp3: *const ulong,
905 len3: slong,
906 N: slong,
907 cmpmask: *const ulong,
908 fctx: nmod_t,
909 ) -> slong;
910 pub fn _nmod_mpoly_sub(
911 coeff1: *mut ulong,
912 exp1: *mut ulong,
913 coeff2: *const ulong,
914 exp2: *const ulong,
915 len2: slong,
916 coeff3: *const ulong,
917 exp3: *const ulong,
918 len3: slong,
919 N: slong,
920 cmpmask: *const ulong,
921 fctx: nmod_t,
922 ) -> slong;
923 pub fn nmod_mpoly_neg(
924 A: *mut nmod_mpoly_struct,
925 B: *const nmod_mpoly_struct,
926 ctx: *const nmod_mpoly_ctx_struct,
927 );
928 pub fn nmod_mpoly_scalar_mul_ui(
929 A: *mut nmod_mpoly_struct,
930 B: *const nmod_mpoly_struct,
931 c: ulong,
932 ctx: *const nmod_mpoly_ctx_struct,
933 );
934 pub fn nmod_mpoly_make_monic(
935 A: *mut nmod_mpoly_struct,
936 B: *const nmod_mpoly_struct,
937 ctx: *const nmod_mpoly_ctx_struct,
938 );
939 pub fn nmod_mpoly_scalar_mul_nmod_invertible(
940 A: *mut nmod_mpoly_struct,
941 B: *const nmod_mpoly_struct,
942 c: ulong,
943 ctx: *const nmod_mpoly_ctx_struct,
944 );
945 pub fn nmod_mpoly_scalar_addmul_ui(
946 A: *mut nmod_mpoly_struct,
947 B: *const nmod_mpoly_struct,
948 C: *const nmod_mpoly_struct,
949 d: ulong,
950 ctx: *const nmod_mpoly_ctx_struct,
951 );
952 pub fn nmod_mpoly_derivative(
953 A: *mut nmod_mpoly_struct,
954 B: *const nmod_mpoly_struct,
955 var: slong,
956 ctx: *const nmod_mpoly_ctx_struct,
957 );
958 pub fn _ff_poly_pow_ui_is_not_feasible(length: slong, e: ulong) -> libc::c_int;
959 pub fn _ff_poly_pow_fmpz_is_not_feasible(length: slong, e: *const fmpz) -> libc::c_int;
960 pub fn _nmod_mpoly_eval_all_ui(
961 Acoeffs: *const ulong,
962 Aexps: *const ulong,
963 Alen: slong,
964 Abits: flint_bitcnt_t,
965 alphas: *const ulong,
966 mctx: *const mpoly_ctx_struct,
967 mod_: nmod_t,
968 ) -> ulong;
969 pub fn nmod_mpoly_evaluate_all_ui(
970 A: *const nmod_mpoly_struct,
971 vals: *const ulong,
972 ctx: *const nmod_mpoly_ctx_struct,
973 ) -> ulong;
974 pub fn nmod_mpoly_evaluate_one_ui(
975 A: *mut nmod_mpoly_struct,
976 B: *const nmod_mpoly_struct,
977 var: slong,
978 val: ulong,
979 ctx: *const nmod_mpoly_ctx_struct,
980 );
981 pub fn nmod_mpoly_compose_nmod_poly(
982 A: *mut nmod_poly_struct,
983 B: *const nmod_mpoly_struct,
984 C: *const *mut nmod_poly_struct,
985 ctx: *const nmod_mpoly_ctx_struct,
986 ) -> libc::c_int;
987 pub fn _nmod_mpoly_compose_mat(
988 A: *mut nmod_mpoly_struct,
989 B: *const nmod_mpoly_struct,
990 M: *const fmpz_mat_struct,
991 ctxB: *const nmod_mpoly_ctx_struct,
992 ctxAC: *const nmod_mpoly_ctx_struct,
993 );
994 pub fn nmod_mpoly_compose_nmod_mpoly_geobucket(
995 A: *mut nmod_mpoly_struct,
996 B: *const nmod_mpoly_struct,
997 C: *const *mut nmod_mpoly_struct,
998 ctxB: *const nmod_mpoly_ctx_struct,
999 ctxAC: *const nmod_mpoly_ctx_struct,
1000 ) -> libc::c_int;
1001 pub fn nmod_mpoly_compose_nmod_mpoly_horner(
1002 A: *mut nmod_mpoly_struct,
1003 B: *const nmod_mpoly_struct,
1004 C: *const *mut nmod_mpoly_struct,
1005 ctxB: *const nmod_mpoly_ctx_struct,
1006 ctxAC: *const nmod_mpoly_ctx_struct,
1007 ) -> libc::c_int;
1008 pub fn nmod_mpoly_compose_nmod_mpoly(
1009 A: *mut nmod_mpoly_struct,
1010 B: *const nmod_mpoly_struct,
1011 C: *const *mut nmod_mpoly_struct,
1012 ctxB: *const nmod_mpoly_ctx_struct,
1013 ctxAC: *const nmod_mpoly_ctx_struct,
1014 ) -> libc::c_int;
1015 pub fn nmod_mpoly_compose_nmod_mpoly_gen(
1016 A: *mut nmod_mpoly_struct,
1017 B: *const nmod_mpoly_struct,
1018 c: *const slong,
1019 ctxB: *const nmod_mpoly_ctx_struct,
1020 ctxAC: *const nmod_mpoly_ctx_struct,
1021 );
1022 pub fn nmod_mpoly_mul(
1023 A: *mut nmod_mpoly_struct,
1024 B: *const nmod_mpoly_struct,
1025 C: *const nmod_mpoly_struct,
1026 ctx: *const nmod_mpoly_ctx_struct,
1027 );
1028 pub fn nmod_mpoly_mul_johnson(
1029 A: *mut nmod_mpoly_struct,
1030 B: *const nmod_mpoly_struct,
1031 C: *const nmod_mpoly_struct,
1032 ctx: *const nmod_mpoly_ctx_struct,
1033 );
1034 pub fn nmod_mpoly_mul_heap_threaded(
1035 A: *mut nmod_mpoly_struct,
1036 B: *const nmod_mpoly_struct,
1037 C: *const nmod_mpoly_struct,
1038 ctx: *const nmod_mpoly_ctx_struct,
1039 );
1040 pub fn nmod_mpoly_mul_array(
1041 A: *mut nmod_mpoly_struct,
1042 B: *const nmod_mpoly_struct,
1043 C: *const nmod_mpoly_struct,
1044 ctx: *const nmod_mpoly_ctx_struct,
1045 ) -> libc::c_int;
1046 pub fn nmod_mpoly_mul_array_threaded(
1047 A: *mut nmod_mpoly_struct,
1048 B: *const nmod_mpoly_struct,
1049 C: *const nmod_mpoly_struct,
1050 ctx: *const nmod_mpoly_ctx_struct,
1051 ) -> libc::c_int;
1052 pub fn _nmod_mpoly_mul_dense(
1053 P: *mut nmod_mpoly_struct,
1054 A: *const nmod_mpoly_struct,
1055 maxAfields: *mut fmpz,
1056 B: *const nmod_mpoly_struct,
1057 maxBfields: *mut fmpz,
1058 ctx: *const nmod_mpoly_ctx_struct,
1059 ) -> libc::c_int;
1060 pub fn nmod_mpoly_mul_dense(
1061 A: *mut nmod_mpoly_struct,
1062 B: *const nmod_mpoly_struct,
1063 C: *const nmod_mpoly_struct,
1064 ctx: *const nmod_mpoly_ctx_struct,
1065 ) -> libc::c_int;
1066 pub fn _nmod_mpoly_mul_johnson(
1067 A: *mut nmod_mpoly_struct,
1068 coeff2: *const ulong,
1069 exp2: *const ulong,
1070 len2: slong,
1071 coeff3: *const ulong,
1072 exp3: *const ulong,
1073 len3: slong,
1074 bits: flint_bitcnt_t,
1075 N: slong,
1076 cmpmask: *const ulong,
1077 fctx: nmod_t,
1078 ) -> slong;
1079 pub fn _nmod_mpoly_mul_johnson_maxfields(
1080 A: *mut nmod_mpoly_struct,
1081 B: *const nmod_mpoly_struct,
1082 maxBfields: *mut fmpz,
1083 C: *const nmod_mpoly_struct,
1084 maxCfields: *mut fmpz,
1085 ctx: *const nmod_mpoly_ctx_struct,
1086 );
1087 pub fn _nmod_mpoly_mul_heap_threaded_pool_maxfields(
1088 A: *mut nmod_mpoly_struct,
1089 B: *const nmod_mpoly_struct,
1090 maxBfields: *mut fmpz,
1091 C: *const nmod_mpoly_struct,
1092 maxCfields: *mut fmpz,
1093 ctx: *const nmod_mpoly_ctx_struct,
1094 handles: *const thread_pool_handle,
1095 num_handles: slong,
1096 );
1097 pub fn _nmod_mpoly_mul_array_DEG(
1098 A: *mut nmod_mpoly_struct,
1099 B: *const nmod_mpoly_struct,
1100 maxBfields: *mut fmpz,
1101 C: *const nmod_mpoly_struct,
1102 maxCfields: *mut fmpz,
1103 ctx: *const nmod_mpoly_ctx_struct,
1104 ) -> libc::c_int;
1105 pub fn _nmod_mpoly_mul_array_LEX(
1106 A: *mut nmod_mpoly_struct,
1107 B: *const nmod_mpoly_struct,
1108 maxBfields: *mut fmpz,
1109 C: *const nmod_mpoly_struct,
1110 maxCfields: *mut fmpz,
1111 ctx: *const nmod_mpoly_ctx_struct,
1112 ) -> libc::c_int;
1113 pub fn _nmod_mpoly_mul_array_threaded_pool_DEG(
1114 A: *mut nmod_mpoly_struct,
1115 B: *const nmod_mpoly_struct,
1116 maxBfields: *mut fmpz,
1117 C: *const nmod_mpoly_struct,
1118 maxCfields: *mut fmpz,
1119 ctx: *const nmod_mpoly_ctx_struct,
1120 handles: *const thread_pool_handle,
1121 num_handles: slong,
1122 ) -> libc::c_int;
1123 pub fn _nmod_mpoly_mul_array_threaded_pool_LEX(
1124 A: *mut nmod_mpoly_struct,
1125 B: *const nmod_mpoly_struct,
1126 maxBfields: *mut fmpz,
1127 C: *const nmod_mpoly_struct,
1128 maxCfields: *mut fmpz,
1129 ctx: *const nmod_mpoly_ctx_struct,
1130 handles: *const thread_pool_handle,
1131 num_handles: slong,
1132 ) -> libc::c_int;
1133 pub fn _nmod_mpoly_pow_rmul(
1134 A: *mut nmod_mpoly_struct,
1135 Bcoeffs: *const ulong,
1136 Bexps: *const ulong,
1137 Blen: slong,
1138 k: ulong,
1139 N: slong,
1140 cmpmask: *const ulong,
1141 mod_: nmod_t,
1142 T: *mut nmod_mpoly_struct,
1143 );
1144 pub fn nmod_mpoly_pow_rmul(
1145 A: *mut nmod_mpoly_struct,
1146 B: *const nmod_mpoly_struct,
1147 k: ulong,
1148 ctx: *const nmod_mpoly_ctx_struct,
1149 );
1150 pub fn nmod_mpoly_pow_ui(
1151 A: *mut nmod_mpoly_struct,
1152 B: *const nmod_mpoly_struct,
1153 k: ulong,
1154 ctx: *const nmod_mpoly_ctx_struct,
1155 ) -> libc::c_int;
1156 pub fn nmod_mpoly_pow_fmpz(
1157 A: *mut nmod_mpoly_struct,
1158 B: *const nmod_mpoly_struct,
1159 k: *const fmpz,
1160 ctx: *const nmod_mpoly_ctx_struct,
1161 ) -> libc::c_int;
1162 pub fn nmod_mpoly_divides(
1163 Q: *mut nmod_mpoly_struct,
1164 A: *const nmod_mpoly_struct,
1165 B: *const nmod_mpoly_struct,
1166 ctx: *const nmod_mpoly_ctx_struct,
1167 ) -> libc::c_int;
1168 pub fn _nmod_mpoly_divides_threaded_pool(
1169 Q: *mut nmod_mpoly_struct,
1170 A: *const nmod_mpoly_struct,
1171 B: *const nmod_mpoly_struct,
1172 ctx: *const nmod_mpoly_ctx_struct,
1173 handles: *const thread_pool_handle,
1174 num_handles: slong,
1175 ) -> libc::c_int;
1176 pub fn nmod_mpoly_divides_monagan_pearce(
1177 Q: *mut nmod_mpoly_struct,
1178 A: *const nmod_mpoly_struct,
1179 B: *const nmod_mpoly_struct,
1180 ctx: *const nmod_mpoly_ctx_struct,
1181 ) -> libc::c_int;
1182 pub fn nmod_mpoly_divides_heap_threaded(
1183 Q: *mut nmod_mpoly_struct,
1184 A: *const nmod_mpoly_struct,
1185 B: *const nmod_mpoly_struct,
1186 ctx: *const nmod_mpoly_ctx_struct,
1187 ) -> libc::c_int;
1188 pub fn _nmod_mpoly_divides_heap_threaded_pool(
1189 Q: *mut nmod_mpoly_struct,
1190 A: *const nmod_mpoly_struct,
1191 B: *const nmod_mpoly_struct,
1192 ctx: *const nmod_mpoly_ctx_struct,
1193 handles: *const thread_pool_handle,
1194 num_handles: slong,
1195 ) -> libc::c_int;
1196 pub fn nmod_mpoly_divides_dense(
1197 Q: *mut nmod_mpoly_struct,
1198 A: *const nmod_mpoly_struct,
1199 B: *const nmod_mpoly_struct,
1200 ctx: *const nmod_mpoly_ctx_struct,
1201 ) -> libc::c_int;
1202 pub fn nmod_mpoly_div(
1203 Q: *mut nmod_mpoly_struct,
1204 A: *const nmod_mpoly_struct,
1205 B: *const nmod_mpoly_struct,
1206 ctx: *const nmod_mpoly_ctx_struct,
1207 );
1208 pub fn nmod_mpoly_divrem(
1209 Q: *mut nmod_mpoly_struct,
1210 R: *mut nmod_mpoly_struct,
1211 A: *const nmod_mpoly_struct,
1212 B: *const nmod_mpoly_struct,
1213 ctx: *const nmod_mpoly_ctx_struct,
1214 );
1215 pub fn nmod_mpoly_divrem_ideal(
1216 Q: *mut *mut nmod_mpoly_struct,
1217 R: *mut nmod_mpoly_struct,
1218 A: *const nmod_mpoly_struct,
1219 B: *const *mut nmod_mpoly_struct,
1220 len: slong,
1221 ctx: *const nmod_mpoly_ctx_struct,
1222 );
1223 #[link_name = "nmod_mpoly_divexact__extern"]
1224 pub fn nmod_mpoly_divexact(
1225 Q: *mut nmod_mpoly_struct,
1226 A: *const nmod_mpoly_struct,
1227 B: *const nmod_mpoly_struct,
1228 ctx: *const nmod_mpoly_ctx_struct,
1229 );
1230 pub fn _nmod_mpoly_divides_monagan_pearce(
1231 Q: *mut nmod_mpoly_struct,
1232 coeff2: *const ulong,
1233 exp2: *const ulong,
1234 len2: slong,
1235 coeff3: *const ulong,
1236 exp3: *const ulong,
1237 len3: slong,
1238 bits: flint_bitcnt_t,
1239 N: slong,
1240 cmpmask: *const ulong,
1241 fctx: nmod_t,
1242 ) -> libc::c_int;
1243 pub fn nmod_mpoly_div_monagan_pearce(
1244 Q: *mut nmod_mpoly_struct,
1245 A: *const nmod_mpoly_struct,
1246 B: *const nmod_mpoly_struct,
1247 ctx: *const nmod_mpoly_ctx_struct,
1248 );
1249 pub fn nmod_mpoly_divrem_monagan_pearce(
1250 q: *mut nmod_mpoly_struct,
1251 r: *mut nmod_mpoly_struct,
1252 poly2: *const nmod_mpoly_struct,
1253 poly3: *const nmod_mpoly_struct,
1254 ctx: *const nmod_mpoly_ctx_struct,
1255 );
1256 pub fn nmod_mpoly_divrem_ideal_monagan_pearce(
1257 Q: *mut *mut nmod_mpoly_struct,
1258 R: *mut nmod_mpoly_struct,
1259 A: *const nmod_mpoly_struct,
1260 B: *const *mut nmod_mpoly_struct,
1261 len: slong,
1262 ctx: *const nmod_mpoly_ctx_struct,
1263 );
1264 pub fn nmod_mpoly_sqrt_heap(
1265 Q: *mut nmod_mpoly_struct,
1266 A: *const nmod_mpoly_struct,
1267 ctx: *const nmod_mpoly_ctx_struct,
1268 ) -> libc::c_int;
1269 #[link_name = "nmod_mpoly_sqrt__extern"]
1270 pub fn nmod_mpoly_sqrt(
1271 Q: *mut nmod_mpoly_struct,
1272 A: *const nmod_mpoly_struct,
1273 ctx: *const nmod_mpoly_ctx_struct,
1274 ) -> libc::c_int;
1275 #[link_name = "nmod_mpoly_is_square__extern"]
1276 pub fn nmod_mpoly_is_square(
1277 A: *const nmod_mpoly_struct,
1278 ctx: *const nmod_mpoly_ctx_struct,
1279 ) -> libc::c_int;
1280 pub fn nmod_mpoly_quadratic_root(
1281 Q: *mut nmod_mpoly_struct,
1282 A: *const nmod_mpoly_struct,
1283 B: *const nmod_mpoly_struct,
1284 ctx: *const nmod_mpoly_ctx_struct,
1285 ) -> libc::c_int;
1286 pub fn nmod_mpoly_term_content(
1287 M: *mut nmod_mpoly_struct,
1288 A: *const nmod_mpoly_struct,
1289 ctx: *const nmod_mpoly_ctx_struct,
1290 );
1291 pub fn nmod_mpoly_content_vars(
1292 g: *mut nmod_mpoly_struct,
1293 A: *const nmod_mpoly_struct,
1294 vars: *mut slong,
1295 vars_length: slong,
1296 ctx: *const nmod_mpoly_ctx_struct,
1297 ) -> libc::c_int;
1298 pub fn nmod_mpoly_gcd(
1299 G: *mut nmod_mpoly_struct,
1300 A: *const nmod_mpoly_struct,
1301 B: *const nmod_mpoly_struct,
1302 ctx: *const nmod_mpoly_ctx_struct,
1303 ) -> libc::c_int;
1304 pub fn _nmod_mpoly_gcd_algo_small(
1305 G: *mut nmod_mpoly_struct,
1306 Abar: *mut nmod_mpoly_struct,
1307 Bbar: *mut nmod_mpoly_struct,
1308 A: *const nmod_mpoly_struct,
1309 B: *const nmod_mpoly_struct,
1310 ctx: *const nmod_mpoly_ctx_struct,
1311 algo: libc::c_uint,
1312 ) -> libc::c_int;
1313 pub fn _nmod_mpoly_gcd_algo(
1314 G: *mut nmod_mpoly_struct,
1315 Abar: *mut nmod_mpoly_struct,
1316 Bbar: *mut nmod_mpoly_struct,
1317 A: *const nmod_mpoly_struct,
1318 B: *const nmod_mpoly_struct,
1319 ctx: *const nmod_mpoly_ctx_struct,
1320 algo: libc::c_uint,
1321 ) -> libc::c_int;
1322 pub fn nmod_mpoly_gcd_cofactors(
1323 G: *mut nmod_mpoly_struct,
1324 Abar: *mut nmod_mpoly_struct,
1325 Bbar: *mut nmod_mpoly_struct,
1326 A: *const nmod_mpoly_struct,
1327 B: *const nmod_mpoly_struct,
1328 ctx: *const nmod_mpoly_ctx_struct,
1329 ) -> libc::c_int;
1330 pub fn nmod_mpoly_gcd_brown(
1331 G: *mut nmod_mpoly_struct,
1332 A: *const nmod_mpoly_struct,
1333 B: *const nmod_mpoly_struct,
1334 ctx: *const nmod_mpoly_ctx_struct,
1335 ) -> libc::c_int;
1336 pub fn nmod_mpoly_gcd_hensel(
1337 G: *mut nmod_mpoly_struct,
1338 A: *const nmod_mpoly_struct,
1339 B: *const nmod_mpoly_struct,
1340 ctx: *const nmod_mpoly_ctx_struct,
1341 ) -> libc::c_int;
1342 pub fn nmod_mpoly_gcd_zippel(
1343 G: *mut nmod_mpoly_struct,
1344 A: *const nmod_mpoly_struct,
1345 B: *const nmod_mpoly_struct,
1346 ctx: *const nmod_mpoly_ctx_struct,
1347 ) -> libc::c_int;
1348 pub fn nmod_mpoly_gcd_zippel2(
1349 G: *mut nmod_mpoly_struct,
1350 A: *const nmod_mpoly_struct,
1351 B: *const nmod_mpoly_struct,
1352 ctx: *const nmod_mpoly_ctx_struct,
1353 ) -> libc::c_int;
1354 pub fn nmod_mpoly_deflation(
1355 shift: *mut fmpz,
1356 stride: *mut fmpz,
1357 A: *const nmod_mpoly_struct,
1358 ctx: *const nmod_mpoly_ctx_struct,
1359 );
1360 pub fn nmod_mpoly_deflate(
1361 A: *mut nmod_mpoly_struct,
1362 B: *const nmod_mpoly_struct,
1363 shift: *const fmpz,
1364 stride: *const fmpz,
1365 ctx: *const nmod_mpoly_ctx_struct,
1366 );
1367 pub fn nmod_mpoly_inflate(
1368 A: *mut nmod_mpoly_struct,
1369 B: *const nmod_mpoly_struct,
1370 shift: *const fmpz,
1371 stride: *const fmpz,
1372 ctx: *const nmod_mpoly_ctx_struct,
1373 );
1374 #[doc = "Internal functions (guaranteed to change without notice)"]
1375 pub fn mpoly_void_ring_init_nmod_mpoly_ctx(
1376 R: *mut _bindgen_ty_2,
1377 ctx: *const nmod_mpoly_ctx_struct,
1378 );
1379 pub fn nmod_mpolyl_lead_coeff(
1380 c: *mut nmod_mpoly_struct,
1381 A: *const nmod_mpoly_struct,
1382 num_vars: slong,
1383 ctx: *const nmod_mpoly_ctx_struct,
1384 );
1385 pub fn nmod_mpolyl_content(
1386 g: *mut nmod_mpoly_struct,
1387 A: *const nmod_mpoly_struct,
1388 num_vars: slong,
1389 ctx: *const nmod_mpoly_ctx_struct,
1390 ) -> libc::c_int;
1391 pub fn _nmod_mpoly_to_nmod_poly_deflate(
1392 A: *mut nmod_poly_struct,
1393 B: *const nmod_mpoly_struct,
1394 var: slong,
1395 Bshift: *const ulong,
1396 Bstride: *const ulong,
1397 ctx: *const nmod_mpoly_ctx_struct,
1398 );
1399 pub fn _nmod_mpoly_from_nmod_poly_inflate(
1400 A: *mut nmod_mpoly_struct,
1401 Abits: flint_bitcnt_t,
1402 B: *const nmod_poly_struct,
1403 var: slong,
1404 Ashift: *const ulong,
1405 Astride: *const ulong,
1406 ctx: *const nmod_mpoly_ctx_struct,
1407 );
1408 pub fn nmod_mpoly_repack_bits(
1409 A: *mut nmod_mpoly_struct,
1410 B: *const nmod_mpoly_struct,
1411 Abits: flint_bitcnt_t,
1412 ctx: *const nmod_mpoly_ctx_struct,
1413 ) -> libc::c_int;
1414 pub fn nmod_mpoly_repack_bits_inplace(
1415 A: *mut nmod_mpoly_struct,
1416 Abits: flint_bitcnt_t,
1417 ctx: *const nmod_mpoly_ctx_struct,
1418 ) -> libc::c_int;
1419 pub fn nmod_mpoly_univar_init(
1420 A: *mut nmod_mpoly_univar_struct,
1421 ctx: *const nmod_mpoly_ctx_struct,
1422 );
1423 pub fn nmod_mpoly_univar_clear(
1424 A: *mut nmod_mpoly_univar_struct,
1425 ctx: *const nmod_mpoly_ctx_struct,
1426 );
1427 pub fn nmod_mpoly_univar_fit_length(
1428 A: *mut nmod_mpoly_univar_struct,
1429 length: slong,
1430 ctx: *const nmod_mpoly_ctx_struct,
1431 );
1432 pub fn nmod_mpoly_univar_print_pretty(
1433 A: *const nmod_mpoly_univar_struct,
1434 x: *mut *const libc::c_char,
1435 ctx: *const nmod_mpoly_ctx_struct,
1436 );
1437 pub fn nmod_mpoly_univar_assert_canonical(
1438 A: *mut nmod_mpoly_univar_struct,
1439 ctx: *const nmod_mpoly_ctx_struct,
1440 );
1441 #[link_name = "nmod_mpoly_univar_zero__extern"]
1442 pub fn nmod_mpoly_univar_zero(
1443 A: *mut nmod_mpoly_univar_struct,
1444 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
1445 );
1446 pub fn nmod_mpoly_univar_set_coeff_ui(
1447 A: *mut nmod_mpoly_univar_struct,
1448 e: ulong,
1449 c: *const nmod_mpoly_struct,
1450 ctx: *const nmod_mpoly_ctx_struct,
1451 );
1452 pub fn nmod_mpoly_to_univar(
1453 A: *mut nmod_mpoly_univar_struct,
1454 B: *const nmod_mpoly_struct,
1455 var: slong,
1456 ctx: *const nmod_mpoly_ctx_struct,
1457 );
1458 pub fn _nmod_mpoly_from_univar(
1459 A: *mut nmod_mpoly_struct,
1460 Abits: flint_bitcnt_t,
1461 B: *const nmod_mpoly_univar_struct,
1462 var: slong,
1463 ctx: *const nmod_mpoly_ctx_struct,
1464 );
1465 pub fn nmod_mpoly_from_univar(
1466 A: *mut nmod_mpoly_struct,
1467 B: *const nmod_mpoly_univar_struct,
1468 var: slong,
1469 ctx: *const nmod_mpoly_ctx_struct,
1470 );
1471 #[link_name = "nmod_mpoly_univar_swap__extern"]
1472 pub fn nmod_mpoly_univar_swap(
1473 A: *mut nmod_mpoly_univar_struct,
1474 B: *mut nmod_mpoly_univar_struct,
1475 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
1476 );
1477 pub fn nmod_mpoly_univar_degree_fits_si(
1478 A: *const nmod_mpoly_univar_struct,
1479 ctx: *const nmod_mpoly_ctx_struct,
1480 ) -> libc::c_int;
1481 #[link_name = "nmod_mpoly_univar_length__extern"]
1482 pub fn nmod_mpoly_univar_length(
1483 A: *const nmod_mpoly_univar_struct,
1484 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
1485 ) -> slong;
1486 pub fn nmod_mpoly_univar_get_term_exp_si(
1487 A: *mut nmod_mpoly_univar_struct,
1488 i: slong,
1489 ctx: *const nmod_mpoly_ctx_struct,
1490 ) -> slong;
1491 #[link_name = "nmod_mpoly_univar_get_term_coeff__extern"]
1492 pub fn nmod_mpoly_univar_get_term_coeff(
1493 c: *mut nmod_mpoly_struct,
1494 A: *const nmod_mpoly_univar_struct,
1495 i: slong,
1496 ctx: *const nmod_mpoly_ctx_struct,
1497 );
1498 #[link_name = "nmod_mpoly_univar_swap_term_coeff__extern"]
1499 pub fn nmod_mpoly_univar_swap_term_coeff(
1500 c: *mut nmod_mpoly_struct,
1501 A: *mut nmod_mpoly_univar_struct,
1502 i: slong,
1503 ctx: *const nmod_mpoly_ctx_struct,
1504 );
1505 pub fn nmod_mpoly_univar_pseudo_gcd(
1506 Gx: *mut nmod_mpoly_univar_struct,
1507 Ax: *const nmod_mpoly_univar_struct,
1508 Bx: *const nmod_mpoly_univar_struct,
1509 ctx: *const nmod_mpoly_ctx_struct,
1510 ) -> libc::c_int;
1511 pub fn nmod_mpoly_univar_resultant(
1512 R: *mut nmod_mpoly_struct,
1513 Ax: *const nmod_mpoly_univar_struct,
1514 Bx: *const nmod_mpoly_univar_struct,
1515 ctx: *const nmod_mpoly_ctx_struct,
1516 ) -> libc::c_int;
1517 pub fn nmod_mpoly_univar_discriminant(
1518 D: *mut nmod_mpoly_struct,
1519 Fx: *const nmod_mpoly_univar_struct,
1520 ctx: *const nmod_mpoly_ctx_struct,
1521 ) -> libc::c_int;
1522 pub fn nmod_mpoly_resultant(
1523 R: *mut nmod_mpoly_struct,
1524 A: *const nmod_mpoly_struct,
1525 B: *const nmod_mpoly_struct,
1526 var: slong,
1527 ctx: *const nmod_mpoly_ctx_struct,
1528 ) -> libc::c_int;
1529 pub fn nmod_mpoly_discriminant(
1530 R: *mut nmod_mpoly_struct,
1531 A: *const nmod_mpoly_struct,
1532 var: slong,
1533 ctx: *const nmod_mpoly_ctx_struct,
1534 ) -> libc::c_int;
1535 pub fn _nmod_mpoly_mul_array_chunked_LEX(
1536 P: *mut nmod_mpoly_struct,
1537 A: *const nmod_mpoly_struct,
1538 B: *const nmod_mpoly_struct,
1539 mults: *const ulong,
1540 ctx: *const nmod_mpoly_ctx_struct,
1541 );
1542 pub fn _nmod_mpoly_mul_array_chunked_DEG(
1543 P: *mut nmod_mpoly_struct,
1544 A: *const nmod_mpoly_struct,
1545 B: *const nmod_mpoly_struct,
1546 degb: ulong,
1547 ctx: *const nmod_mpoly_ctx_struct,
1548 );
1549 pub fn _nmod_mpoly_addmul_array1_ulong1(
1550 poly1: *mut ulong,
1551 poly2: *const ulong,
1552 exp2: *const ulong,
1553 len2: slong,
1554 poly3: *const ulong,
1555 exp3: *const ulong,
1556 len3: slong,
1557 );
1558 pub fn _nmod_mpoly_addmul_array1_ulong2(
1559 poly1: *mut ulong,
1560 poly2: *const ulong,
1561 exp2: *const ulong,
1562 len2: slong,
1563 poly3: *const ulong,
1564 exp3: *const ulong,
1565 len3: slong,
1566 );
1567 pub fn _nmod_mpoly_addmul_array1_ulong3(
1568 poly1: *mut ulong,
1569 poly2: *const ulong,
1570 exp2: *const ulong,
1571 len2: slong,
1572 poly3: *const ulong,
1573 exp3: *const ulong,
1574 len3: slong,
1575 );
1576 pub fn nmod_mpoly_append_array_sm1_LEX(
1577 P: *mut nmod_mpoly_struct,
1578 Plen: slong,
1579 coeff_array: *mut ulong,
1580 mults: *const ulong,
1581 num: slong,
1582 array_size: slong,
1583 top: slong,
1584 ctx: *const nmod_mpoly_ctx_struct,
1585 ) -> slong;
1586 pub fn nmod_mpoly_append_array_sm2_LEX(
1587 P: *mut nmod_mpoly_struct,
1588 Plen: slong,
1589 coeff_array: *mut ulong,
1590 mults: *const ulong,
1591 num: slong,
1592 array_size: slong,
1593 top: slong,
1594 ctx: *const nmod_mpoly_ctx_struct,
1595 ) -> slong;
1596 pub fn nmod_mpoly_append_array_sm3_LEX(
1597 P: *mut nmod_mpoly_struct,
1598 Plen: slong,
1599 coeff_array: *mut ulong,
1600 mults: *const ulong,
1601 num: slong,
1602 array_size: slong,
1603 top: slong,
1604 ctx: *const nmod_mpoly_ctx_struct,
1605 ) -> slong;
1606 pub fn nmod_mpoly_append_array_sm1_DEGLEX(
1607 P: *mut nmod_mpoly_struct,
1608 Plen: slong,
1609 coeff_array: *mut ulong,
1610 top: slong,
1611 nvars: slong,
1612 degb: slong,
1613 ctx: *const nmod_mpoly_ctx_struct,
1614 ) -> slong;
1615 pub fn nmod_mpoly_append_array_sm2_DEGLEX(
1616 P: *mut nmod_mpoly_struct,
1617 Plen: slong,
1618 coeff_array: *mut ulong,
1619 top: slong,
1620 nvars: slong,
1621 degb: slong,
1622 ctx: *const nmod_mpoly_ctx_struct,
1623 ) -> slong;
1624 pub fn nmod_mpoly_append_array_sm3_DEGLEX(
1625 P: *mut nmod_mpoly_struct,
1626 Plen: slong,
1627 coeff_array: *mut ulong,
1628 top: slong,
1629 nvars: slong,
1630 degb: slong,
1631 ctx: *const nmod_mpoly_ctx_struct,
1632 ) -> slong;
1633 pub fn nmod_mpoly_append_array_sm1_DEGREVLEX(
1634 P: *mut nmod_mpoly_struct,
1635 Plen: slong,
1636 coeff_array: *mut ulong,
1637 top: slong,
1638 nvars: slong,
1639 degb: slong,
1640 ctx: *const nmod_mpoly_ctx_struct,
1641 ) -> slong;
1642 pub fn nmod_mpoly_append_array_sm2_DEGREVLEX(
1643 P: *mut nmod_mpoly_struct,
1644 Plen: slong,
1645 coeff_array: *mut ulong,
1646 top: slong,
1647 nvars: slong,
1648 degb: slong,
1649 ctx: *const nmod_mpoly_ctx_struct,
1650 ) -> slong;
1651 pub fn nmod_mpoly_append_array_sm3_DEGREVLEX(
1652 P: *mut nmod_mpoly_struct,
1653 Plen: slong,
1654 coeff_array: *mut ulong,
1655 top: slong,
1656 nvars: slong,
1657 degb: slong,
1658 ctx: *const nmod_mpoly_ctx_struct,
1659 ) -> slong;
1660 pub fn nmod_mpolyd_ctx_init(dctx: *mut nmod_mpolyd_ctx_struct, nvars: slong);
1661 pub fn nmod_mpolyd_ctx_clear(dctx: *mut nmod_mpolyd_ctx_struct);
1662 #[link_name = "nmod_mpolyd_swap__extern"]
1663 pub fn nmod_mpolyd_swap(poly1: *mut nmod_mpolyd_struct, poly2: *mut nmod_mpolyd_struct);
1664 pub fn nmod_mpolyd_set_degbounds(A: *mut nmod_mpolyd_struct, bounds: *mut slong)
1665 -> libc::c_int;
1666 pub fn nmod_mpolyd_set_degbounds_perm(
1667 A: *mut nmod_mpolyd_struct,
1668 dctx: *const nmod_mpolyd_ctx_struct,
1669 bounds: *mut slong,
1670 ) -> libc::c_int;
1671 pub fn nmod_mpoly_convert_to_nmod_mpolyd(
1672 A: *mut nmod_mpolyd_struct,
1673 dctx: *const nmod_mpolyd_ctx_struct,
1674 B: *const nmod_mpoly_struct,
1675 ctx: *const nmod_mpoly_ctx_struct,
1676 );
1677 pub fn nmod_mpoly_convert_to_nmod_mpolyd_degbound(
1678 A: *mut nmod_mpolyd_struct,
1679 dctx: *const nmod_mpolyd_ctx_struct,
1680 B: *const nmod_mpoly_struct,
1681 ctx: *const nmod_mpoly_ctx_struct,
1682 );
1683 pub fn nmod_mpoly_convert_from_nmod_mpolyd(
1684 A: *mut nmod_mpoly_struct,
1685 ctx: *const nmod_mpoly_ctx_struct,
1686 B: *const nmod_mpolyd_struct,
1687 dctx: *const nmod_mpolyd_ctx_struct,
1688 );
1689 pub fn nmod_mpolyd_init(poly: *mut nmod_mpolyd_struct, nvars: slong);
1690 pub fn nmod_mpolyd_fit_length(poly: *mut nmod_mpolyd_struct, len: slong);
1691 pub fn nmod_mpolyd_zero(poly: *mut nmod_mpolyd_struct);
1692 pub fn nmod_mpolyd_set_nvars(poly: *mut nmod_mpolyd_struct, nvars: slong);
1693 pub fn nmod_mpolyd_set(A: *mut nmod_mpolyd_struct, B: *const nmod_mpolyd_struct);
1694 pub fn nmod_mpolyd_clear(poly: *mut nmod_mpolyd_struct);
1695 pub fn nmod_mpolyd_print(poly: *mut nmod_mpolyd_struct);
1696 pub fn nmod_mpolyd_length(A: *const nmod_mpolyd_struct) -> slong;
1697 pub fn nmod_mpolyu_init(
1698 A: *mut nmod_mpolyu_struct,
1699 bits: flint_bitcnt_t,
1700 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
1701 );
1702 pub fn nmod_mpolyu_clear(A: *mut nmod_mpolyu_struct, uctx: *const nmod_mpoly_ctx_struct);
1703 #[link_name = "nmod_mpolyu_swap__extern"]
1704 pub fn nmod_mpolyu_swap(
1705 A: *mut nmod_mpolyu_struct,
1706 B: *mut nmod_mpolyu_struct,
1707 UNUSED_uctx: *const nmod_mpoly_ctx_struct,
1708 );
1709 #[link_name = "nmod_mpolyu_zero__extern"]
1710 pub fn nmod_mpolyu_zero(A: *mut nmod_mpolyu_struct, UNUSED_uctx: *const nmod_mpoly_ctx_struct);
1711 pub fn nmod_mpolyu_is_one(
1712 A: *mut nmod_mpolyu_struct,
1713 uctx: *const nmod_mpoly_ctx_struct,
1714 ) -> libc::c_int;
1715 pub fn nmod_mpolyu_print_pretty(
1716 poly: *const nmod_mpolyu_struct,
1717 x: *mut *const libc::c_char,
1718 ctx: *const nmod_mpoly_ctx_struct,
1719 );
1720 pub fn nmod_mpolyu_fit_length(
1721 A: *mut nmod_mpolyu_struct,
1722 length: slong,
1723 uctx: *const nmod_mpoly_ctx_struct,
1724 );
1725 pub fn nmod_mpolyu_one(A: *mut nmod_mpolyu_struct, uctx: *const nmod_mpoly_ctx_struct);
1726 pub fn nmod_mpolyu_degrees_si(
1727 degs: *mut slong,
1728 A: *const nmod_mpolyu_struct,
1729 ctx: *const nmod_mpoly_ctx_struct,
1730 );
1731 pub fn nmod_mpolyu_repack_bits_inplace(
1732 A: *mut nmod_mpolyu_struct,
1733 bits: flint_bitcnt_t,
1734 ctx: *const nmod_mpoly_ctx_struct,
1735 );
1736 pub fn _nmod_mpolyu_get_coeff(
1737 A: *mut nmod_mpolyu_struct,
1738 pow: ulong,
1739 uctx: *const nmod_mpoly_ctx_struct,
1740 ) -> *mut nmod_mpoly_struct;
1741 pub fn nmod_mpolyu_shift_right(A: *mut nmod_mpolyu_struct, s: ulong);
1742 pub fn nmod_mpolyu_shift_left(A: *mut nmod_mpolyu_struct, s: ulong);
1743 pub fn nmod_mpolyu_content_mpoly(
1744 g: *mut nmod_mpoly_struct,
1745 A: *const nmod_mpolyu_struct,
1746 ctx: *const nmod_mpoly_ctx_struct,
1747 ) -> libc::c_int;
1748 pub fn nmod_mpolyu_scalar_mul_nmod(
1749 A: *mut nmod_mpolyu_struct,
1750 c: ulong,
1751 ctx: *const nmod_mpoly_ctx_struct,
1752 );
1753 pub fn nmod_mpolyu_set(
1754 A: *mut nmod_mpolyu_struct,
1755 B: *const nmod_mpolyu_struct,
1756 uctx: *const nmod_mpoly_ctx_struct,
1757 );
1758 pub fn nmod_mpolyu_cvtto_poly(
1759 a: *mut nmod_poly_struct,
1760 A: *mut nmod_mpolyu_struct,
1761 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
1762 );
1763 pub fn nmod_mpolyu_cvtfrom_poly(
1764 A: *mut nmod_mpolyu_struct,
1765 a: *mut nmod_poly_struct,
1766 ctx: *const nmod_mpoly_ctx_struct,
1767 );
1768 pub fn nmod_mpolyu_cvtfrom_poly_notmain(
1769 A: *mut nmod_mpolyu_struct,
1770 a: *mut nmod_poly_struct,
1771 var: slong,
1772 ctx: *const nmod_mpoly_ctx_struct,
1773 );
1774 pub fn nmod_mpoly_to_mpolyu_perm_deflate_threaded_pool(
1775 A: *mut nmod_mpolyu_struct,
1776 uctx: *const nmod_mpoly_ctx_struct,
1777 B: *const nmod_mpoly_struct,
1778 ctx: *const nmod_mpoly_ctx_struct,
1779 perm: *const slong,
1780 shift: *const ulong,
1781 stride: *const ulong,
1782 handles: *const thread_pool_handle,
1783 num_handles: slong,
1784 );
1785 pub fn nmod_mpoly_from_mpolyu_perm_inflate(
1786 A: *mut nmod_mpoly_struct,
1787 Abits: flint_bitcnt_t,
1788 ctx: *const nmod_mpoly_ctx_struct,
1789 B: *const nmod_mpolyu_struct,
1790 uctx: *const nmod_mpoly_ctx_struct,
1791 perm: *const slong,
1792 shift: *const ulong,
1793 stride: *const ulong,
1794 );
1795 pub fn nmod_mpolyuu_divides(
1796 Q: *mut nmod_mpolyu_struct,
1797 A: *const nmod_mpolyu_struct,
1798 B: *const nmod_mpolyu_struct,
1799 nmainvars: slong,
1800 ctx: *const nmod_mpoly_ctx_struct,
1801 ) -> libc::c_int;
1802 pub fn nmod_mpolyu_divexact_mpoly_inplace(
1803 A: *mut nmod_mpolyu_struct,
1804 c: *mut nmod_mpoly_struct,
1805 ctx: *const nmod_mpoly_ctx_struct,
1806 );
1807 pub fn nmod_mpolyu_mul_mpoly(
1808 A: *mut nmod_mpolyu_struct,
1809 B: *mut nmod_mpolyu_struct,
1810 c: *mut nmod_mpoly_struct,
1811 ctx: *const nmod_mpoly_ctx_struct,
1812 );
1813 pub fn nmod_mpolyu_mul_mpoly_inplace(
1814 A: *mut nmod_mpolyu_struct,
1815 c: *mut nmod_mpoly_struct,
1816 ctx: *const nmod_mpoly_ctx_struct,
1817 );
1818 pub fn nmod_mpolyu_setform(
1819 A: *mut nmod_mpolyu_struct,
1820 B: *mut nmod_mpolyu_struct,
1821 ctx: *const nmod_mpoly_ctx_struct,
1822 );
1823 pub fn nmod_mpolyu_gcdm_zippel(
1824 G: *mut nmod_mpolyu_struct,
1825 Abar: *mut nmod_mpolyu_struct,
1826 Bbar: *mut nmod_mpolyu_struct,
1827 A: *mut nmod_mpolyu_struct,
1828 B: *mut nmod_mpolyu_struct,
1829 ctx: *mut nmod_mpoly_ctx_struct,
1830 randstate: *mut flint_rand_struct,
1831 ) -> libc::c_int;
1832 #[link_name = "nmod_mpolyu_leadcoeff__extern"]
1833 pub fn nmod_mpolyu_leadcoeff(
1834 A: *mut nmod_mpolyu_struct,
1835 ctx: *const nmod_mpoly_ctx_struct,
1836 ) -> ulong;
1837 pub fn nmod_mpolyn_init(
1838 A: *mut nmod_mpolyn_struct,
1839 bits: flint_bitcnt_t,
1840 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
1841 );
1842 pub fn nmod_mpolyn_clear(A: *mut nmod_mpolyn_struct, UNUSED_ctx: *const nmod_mpoly_ctx_struct);
1843 pub fn nmod_mpolyn_swap(A: *mut nmod_mpolyn_struct, B: *mut nmod_mpolyn_struct);
1844 pub fn nmod_mpolyn_zero(A: *mut nmod_mpolyn_struct, UNUSED_ctx: *const nmod_mpoly_ctx_struct);
1845 pub fn nmod_mpolyn_is_zero(
1846 A: *mut nmod_mpolyn_struct,
1847 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
1848 ) -> libc::c_int;
1849 pub fn nmod_mpolyn_print_pretty(
1850 A: *const nmod_mpolyn_struct,
1851 x_in: *mut *const libc::c_char,
1852 ctx: *const nmod_mpoly_ctx_struct,
1853 );
1854 pub fn nmod_mpolyn_fit_length(
1855 A: *mut nmod_mpolyn_struct,
1856 length: slong,
1857 ctx: *const nmod_mpoly_ctx_struct,
1858 );
1859 pub fn nmod_mpolyn_set_length(
1860 A: *mut nmod_mpolyn_struct,
1861 newlen: slong,
1862 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
1863 );
1864 pub fn nmod_mpolyn_fit_bits(
1865 A: *mut nmod_mpolyn_struct,
1866 bits: slong,
1867 ctx: *const nmod_mpoly_ctx_struct,
1868 );
1869 pub fn nmod_mpolyn_is_canonical(
1870 A: *const nmod_mpolyn_struct,
1871 ctx: *const nmod_mpoly_ctx_struct,
1872 ) -> libc::c_int;
1873 pub fn nmod_mpolyn_set(
1874 A: *mut nmod_mpolyn_struct,
1875 B: *const nmod_mpolyn_struct,
1876 ctx: *const nmod_mpoly_ctx_struct,
1877 );
1878 pub fn nmod_mpolyn_set_mpoly(
1879 A: *mut nmod_mpolyn_struct,
1880 B: *const nmod_mpoly_struct,
1881 ctx: *const nmod_mpoly_ctx_struct,
1882 );
1883 pub fn nmod_mpoly_cvtfrom_mpolyn(
1884 A: *mut nmod_mpoly_struct,
1885 B: *const nmod_mpolyn_struct,
1886 var: slong,
1887 ctx: *const nmod_mpoly_ctx_struct,
1888 );
1889 pub fn nmod_mpolyn_mul_poly(
1890 A: *mut nmod_mpolyn_struct,
1891 B: *const nmod_mpolyn_struct,
1892 c: *const n_poly_struct,
1893 ctx: *const nmod_mpoly_ctx_struct,
1894 );
1895 pub fn nmod_mpoly_cvtto_mpolyn(
1896 A: *mut nmod_mpolyn_struct,
1897 B: *const nmod_mpoly_struct,
1898 var: slong,
1899 ctx: *const nmod_mpoly_ctx_struct,
1900 );
1901 #[link_name = "nmod_mpolyn_leadcoeff__extern"]
1902 pub fn nmod_mpolyn_leadcoeff(
1903 A: *mut nmod_mpolyn_struct,
1904 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
1905 ) -> ulong;
1906 #[link_name = "nmod_mpolyn_leadcoeff_poly__extern"]
1907 pub fn nmod_mpolyn_leadcoeff_poly(
1908 A: *mut nmod_mpolyn_struct,
1909 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
1910 ) -> *mut n_poly_struct;
1911 pub fn nmod_mpolyun_init(
1912 A: *mut nmod_mpolyun_struct,
1913 bits: flint_bitcnt_t,
1914 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
1915 );
1916 pub fn nmod_mpolyun_clear(A: *mut nmod_mpolyun_struct, ctx: *const nmod_mpoly_ctx_struct);
1917 #[link_name = "nmod_mpolyun_swap__extern"]
1918 pub fn nmod_mpolyun_swap(A: *mut nmod_mpolyun_struct, B: *mut nmod_mpolyun_struct);
1919 pub fn nmod_mpolyun_zero(A: *mut nmod_mpolyun_struct, ctx: *const nmod_mpoly_ctx_struct);
1920 pub fn nmod_mpolyun_print_pretty(
1921 poly: *const nmod_mpolyun_struct,
1922 x: *mut *const libc::c_char,
1923 ctx: *const nmod_mpoly_ctx_struct,
1924 );
1925 pub fn nmod_mpolyun_fit_length(
1926 A: *mut nmod_mpolyun_struct,
1927 length: slong,
1928 ctx: *const nmod_mpoly_ctx_struct,
1929 );
1930 pub fn nmod_mpolyun_is_canonical(
1931 A: *const nmod_mpolyun_struct,
1932 ctx: *const nmod_mpoly_ctx_struct,
1933 ) -> libc::c_int;
1934 pub fn nmod_mpolyun_shift_right(A: *mut nmod_mpolyun_struct, s: ulong);
1935 pub fn nmod_mpolyun_shift_left(A: *mut nmod_mpolyun_struct, s: ulong);
1936 pub fn nmod_mpolyn_lastdeg(
1937 A: *mut nmod_mpolyn_struct,
1938 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
1939 ) -> slong;
1940 pub fn nmod_mpolyun_lastdeg(
1941 A: *mut nmod_mpolyun_struct,
1942 UNUSED_ctx: *const nmod_mpoly_ctx_struct,
1943 ) -> slong;
1944 pub fn nmod_mpolyun_set(
1945 A: *mut nmod_mpolyun_struct,
1946 B: *const nmod_mpolyun_struct,
1947 ctx: *const nmod_mpoly_ctx_struct,
1948 );
1949 pub fn nmod_mpolyn_one(A: *mut nmod_mpolyn_struct, ctx: *const nmod_mpoly_ctx_struct);
1950 pub fn nmod_mpolyun_one(A: *mut nmod_mpolyun_struct, ctx: *const nmod_mpoly_ctx_struct);
1951 pub fn nmod_mpolyun_leadcoeff_last(
1952 A: *mut nmod_mpolyun_struct,
1953 ctx: *const nmod_mpoly_ctx_struct,
1954 ) -> ulong;
1955 pub fn nmod_mpolyn_set_mod(UNUSED_A: *mut nmod_mpolyn_struct, UNUSED_mod: nmod_t);
1956 pub fn nmod_mpolyun_set_mod(UNUSED_A: *mut nmod_mpolyun_struct, UNUSED_mod: nmod_t);
1957 pub fn nmod_mpolyn_is_nonzero_nmod(
1958 A: *const nmod_mpolyn_struct,
1959 ctx: *const nmod_mpoly_ctx_struct,
1960 ) -> libc::c_int;
1961 pub fn nmod_mpolyun_is_nonzero_nmod(
1962 A: *const nmod_mpolyun_struct,
1963 ctx: *const nmod_mpoly_ctx_struct,
1964 ) -> libc::c_int;
1965 pub fn nmod_mpolyn_scalar_mul_nmod(
1966 A: *mut nmod_mpolyn_struct,
1967 c: ulong,
1968 ctx: *const nmod_mpoly_ctx_struct,
1969 );
1970 pub fn nmod_mpolyun_scalar_mul_nmod(
1971 A: *mut nmod_mpolyun_struct,
1972 c: ulong,
1973 ctx: *const nmod_mpoly_ctx_struct,
1974 );
1975 pub fn nmod_mpolyn_mul_last(
1976 A: *mut nmod_mpolyn_struct,
1977 b: *mut n_poly_struct,
1978 ctx: *const nmod_mpoly_ctx_struct,
1979 );
1980 pub fn nmod_mpolyun_mul_last(
1981 A: *mut nmod_mpolyun_struct,
1982 b: *mut n_poly_struct,
1983 ctx: *const nmod_mpoly_ctx_struct,
1984 );
1985 pub fn nmod_mpolyn_equal(
1986 A: *const nmod_mpolyn_struct,
1987 B: *const nmod_mpolyn_struct,
1988 ctx: *const nmod_mpoly_ctx_struct,
1989 ) -> libc::c_int;
1990 pub fn nmod_mpolyun_equal(
1991 A: *const nmod_mpolyun_struct,
1992 B: *const nmod_mpolyun_struct,
1993 ctx: *const nmod_mpoly_ctx_struct,
1994 ) -> libc::c_int;
1995 pub fn nmod_mpolyu_cvtto_mpolyun(
1996 A: *mut nmod_mpolyun_struct,
1997 B: *const nmod_mpolyu_struct,
1998 k: slong,
1999 ctx: *const nmod_mpoly_ctx_struct,
2000 );
2001 pub fn nmod_mpolyu_cvtfrom_mpolyun(
2002 A: *mut nmod_mpolyu_struct,
2003 B: *const nmod_mpolyun_struct,
2004 var: slong,
2005 ctx: *const nmod_mpoly_ctx_struct,
2006 );
2007 pub fn nmod_mpolyun_mul_poly(
2008 A: *mut nmod_mpolyun_struct,
2009 B: *const nmod_mpolyun_struct,
2010 c: *const n_poly_struct,
2011 ctx: *const nmod_mpoly_ctx_struct,
2012 );
2013 pub fn nmod_mpolyn_content_last(
2014 a: *mut n_poly_struct,
2015 B: *mut nmod_mpolyn_struct,
2016 ctx: *const nmod_mpoly_ctx_struct,
2017 );
2018 pub fn nmod_mpolyun_content_last(
2019 a: *mut n_poly_struct,
2020 B: *mut nmod_mpolyun_struct,
2021 ctx: *const nmod_mpoly_ctx_struct,
2022 );
2023 pub fn nmod_mpolyn_divexact_last(
2024 A: *mut nmod_mpolyn_struct,
2025 b: *mut n_poly_struct,
2026 ctx: *const nmod_mpoly_ctx_struct,
2027 );
2028 pub fn nmod_mpolyun_divexact_last(
2029 A: *mut nmod_mpolyun_struct,
2030 b: *mut n_poly_struct,
2031 ctx: *const nmod_mpoly_ctx_struct,
2032 );
2033 pub fn nmod_mpolyn_divides(
2034 Q: *mut nmod_mpolyn_struct,
2035 A: *const nmod_mpolyn_struct,
2036 B: *const nmod_mpolyn_struct,
2037 ctx: *const nmod_mpoly_ctx_struct,
2038 ) -> libc::c_int;
2039 pub fn nmod_mpolyn_divides_threaded_pool(
2040 Q: *mut nmod_mpolyn_struct,
2041 A: *const nmod_mpolyn_struct,
2042 B: *const nmod_mpolyn_struct,
2043 ctx: *const nmod_mpoly_ctx_struct,
2044 handles: *const thread_pool_handle,
2045 num_handles: slong,
2046 ) -> libc::c_int;
2047 pub fn nmod_mpolyun_divides(
2048 Q: *mut nmod_mpolyun_struct,
2049 A: *const nmod_mpolyun_struct,
2050 B: *const nmod_mpolyun_struct,
2051 ctx: *const nmod_mpoly_ctx_struct,
2052 ) -> libc::c_int;
2053 pub fn nmod_mpoly_to_mpolyun_perm_deflate_threaded_pool(
2054 A: *mut nmod_mpolyun_struct,
2055 uctx: *const nmod_mpoly_ctx_struct,
2056 B: *const nmod_mpoly_struct,
2057 ctx: *const nmod_mpoly_ctx_struct,
2058 perm: *const slong,
2059 shift: *const ulong,
2060 stride: *const ulong,
2061 handles: *const thread_pool_handle,
2062 num_handles: slong,
2063 );
2064 pub fn nmod_mpoly_to_mpolyn_perm_deflate_threaded_pool(
2065 A: *mut nmod_mpolyn_struct,
2066 nctx: *const nmod_mpoly_ctx_struct,
2067 B: *const nmod_mpoly_struct,
2068 ctx: *const nmod_mpoly_ctx_struct,
2069 perm: *const slong,
2070 shift: *const ulong,
2071 stride: *const ulong,
2072 UNUSED_handles: *const thread_pool_handle,
2073 UNUSED_num_handles: slong,
2074 );
2075 pub fn nmod_mpoly_from_mpolyun_perm_inflate(
2076 A: *mut nmod_mpoly_struct,
2077 Abits: flint_bitcnt_t,
2078 ctx: *const nmod_mpoly_ctx_struct,
2079 B: *const nmod_mpolyun_struct,
2080 uctx: *const nmod_mpoly_ctx_struct,
2081 perm: *const slong,
2082 shift: *const ulong,
2083 stride: *const ulong,
2084 );
2085 pub fn nmod_mpoly_from_mpolyn_perm_inflate(
2086 A: *mut nmod_mpoly_struct,
2087 Abits: flint_bitcnt_t,
2088 ctx: *const nmod_mpoly_ctx_struct,
2089 B: *const nmod_mpolyn_struct,
2090 nctx: *const nmod_mpoly_ctx_struct,
2091 perm: *const slong,
2092 shift: *const ulong,
2093 stride: *const ulong,
2094 );
2095 #[link_name = "nmod_mpolyun_leadcoeff__extern"]
2096 pub fn nmod_mpolyun_leadcoeff(
2097 A: *mut nmod_mpolyun_struct,
2098 ctx: *const nmod_mpoly_ctx_struct,
2099 ) -> ulong;
2100 #[link_name = "nmod_mpolyun_leadcoeff_poly__extern"]
2101 pub fn nmod_mpolyun_leadcoeff_poly(
2102 A: *mut nmod_mpolyun_struct,
2103 ctx: *const nmod_mpoly_ctx_struct,
2104 ) -> *mut n_poly_struct;
2105 pub fn mpoly_gcd_get_use_first(
2106 rGdeg: slong,
2107 Adeg: slong,
2108 Bdeg: slong,
2109 gammadeg: slong,
2110 ) -> libc::c_int;
2111 pub fn nmod_mpoly_gcd_get_use_new(
2112 rGdeg: slong,
2113 Adeg: slong,
2114 Bdeg: slong,
2115 gammadeg: slong,
2116 degxAB: slong,
2117 degyAB: slong,
2118 numABgamma: slong,
2119 G: *const n_polyun_struct,
2120 Abar: *const n_polyun_struct,
2121 Bbar: *const n_polyun_struct,
2122 ) -> libc::c_int;
2123 pub fn nmod_mpolyu_setform_mpolyun(
2124 A: *mut nmod_mpolyu_struct,
2125 B: *mut nmod_mpolyun_struct,
2126 ctx: *const nmod_mpoly_ctx_struct,
2127 );
2128 pub fn nmod_mpolyn_gcd_brown_smprime_bivar(
2129 G: *mut nmod_mpolyn_struct,
2130 Abar: *mut nmod_mpolyn_struct,
2131 Bbar: *mut nmod_mpolyn_struct,
2132 A: *mut nmod_mpolyn_struct,
2133 B: *mut nmod_mpolyn_struct,
2134 ctx: *const nmod_mpoly_ctx_struct,
2135 Sp: *mut nmod_poly_stack_struct,
2136 ) -> libc::c_int;
2137 pub fn nmod_mpolyn_gcd_brown_smprime(
2138 G: *mut nmod_mpolyn_struct,
2139 Abar: *mut nmod_mpolyn_struct,
2140 Bbar: *mut nmod_mpolyn_struct,
2141 A: *mut nmod_mpolyn_struct,
2142 B: *mut nmod_mpolyn_struct,
2143 var: slong,
2144 ctx: *const nmod_mpoly_ctx_struct,
2145 Iv: *const mpoly_gcd_info_struct,
2146 Sp: *mut nmod_poly_stack_struct,
2147 ) -> libc::c_int;
2148 pub fn nmod_mpolyn_gcd_brown_smprime_threaded_pool(
2149 G: *mut nmod_mpolyn_struct,
2150 Abar: *mut nmod_mpolyn_struct,
2151 Bbar: *mut nmod_mpolyn_struct,
2152 A: *mut nmod_mpolyn_struct,
2153 B: *mut nmod_mpolyn_struct,
2154 var: slong,
2155 ctx: *const nmod_mpoly_ctx_struct,
2156 Iv: *const mpoly_gcd_info_struct,
2157 handles: *const thread_pool_handle,
2158 num_workers: slong,
2159 ) -> libc::c_int;
2160 pub fn nmod_mpolyn_gcd_brown_lgprime(
2161 G: *mut nmod_mpolyn_struct,
2162 Abar: *mut nmod_mpolyn_struct,
2163 Bbar: *mut nmod_mpolyn_struct,
2164 A: *mut nmod_mpolyn_struct,
2165 B: *mut nmod_mpolyn_struct,
2166 var: slong,
2167 ctx: *const nmod_mpoly_ctx_struct,
2168 ) -> libc::c_int;
2169 pub fn nmod_mpolyu_gcds_zippel(
2170 G: *mut nmod_mpolyu_struct,
2171 A: *mut nmod_mpolyu_struct,
2172 B: *mut nmod_mpolyu_struct,
2173 f: *mut nmod_mpolyu_struct,
2174 var: slong,
2175 ctx: *const nmod_mpoly_ctx_struct,
2176 randstate: *mut flint_rand_struct,
2177 degbound: *mut slong,
2178 ) -> nmod_gcds_ret_t;
2179 pub fn nmod_mpolyu_gcdp_zippel(
2180 G: *mut nmod_mpolyu_struct,
2181 Abar: *mut nmod_mpolyu_struct,
2182 Bbar: *mut nmod_mpolyu_struct,
2183 A: *mut nmod_mpolyu_struct,
2184 B: *mut nmod_mpolyu_struct,
2185 var: slong,
2186 ctx: *const nmod_mpoly_ctx_struct,
2187 randstate: *mut flint_rand_struct,
2188 ) -> libc::c_int;
2189 pub fn nmod_mpoly_to_mpolyl_perm_deflate(
2190 A: *mut nmod_mpoly_struct,
2191 lctx: *const nmod_mpoly_ctx_struct,
2192 B: *const nmod_mpoly_struct,
2193 ctx: *const nmod_mpoly_ctx_struct,
2194 perm: *const slong,
2195 shift: *const ulong,
2196 stride: *const ulong,
2197 );
2198 pub fn nmod_mpoly_from_mpolyl_perm_inflate(
2199 A: *mut nmod_mpoly_struct,
2200 Abits: flint_bitcnt_t,
2201 ctx: *const nmod_mpoly_ctx_struct,
2202 B: *const nmod_mpoly_struct,
2203 lctx: *const nmod_mpoly_ctx_struct,
2204 perm: *const slong,
2205 shift: *const ulong,
2206 stride: *const ulong,
2207 );
2208 pub fn nmod_mpolyl_gcd_zippel_smprime(
2209 rG: *mut nmod_mpoly_struct,
2210 rGdegs: *const slong,
2211 rAbar: *mut nmod_mpoly_struct,
2212 rBbar: *mut nmod_mpoly_struct,
2213 A: *const nmod_mpoly_struct,
2214 Adegs: *const slong,
2215 B: *const nmod_mpoly_struct,
2216 Bdegs: *const slong,
2217 gamma: *const nmod_mpoly_struct,
2218 gammadegs: *const slong,
2219 ctx: *const nmod_mpoly_ctx_struct,
2220 ) -> libc::c_int;
2221 pub fn nmod_mpolyl_gcd_zippel_lgprime(
2222 rG: *mut nmod_mpoly_struct,
2223 rGdegs: *const slong,
2224 rAbar: *mut nmod_mpoly_struct,
2225 rBbar: *mut nmod_mpoly_struct,
2226 A: *const nmod_mpoly_struct,
2227 Adegs: *const slong,
2228 B: *const nmod_mpoly_struct,
2229 Bdegs: *const slong,
2230 gamma: *const nmod_mpoly_struct,
2231 gammadegs: *const slong,
2232 ctx: *const nmod_mpoly_ctx_struct,
2233 ) -> libc::c_int;
2234 pub fn nmod_mpolyl_gcd_hensel_smprime(
2235 G: *mut nmod_mpoly_struct,
2236 Gdeg: slong,
2237 Abar: *mut nmod_mpoly_struct,
2238 Bbar: *mut nmod_mpoly_struct,
2239 A: *const nmod_mpoly_struct,
2240 B: *const nmod_mpoly_struct,
2241 ctx: *const nmod_mpoly_ctx_struct,
2242 ) -> libc::c_int;
2243 pub fn nmod_mpolyl_gcd_hensel_medprime(
2244 G: *mut nmod_mpoly_struct,
2245 Gdeg: slong,
2246 Abar: *mut nmod_mpoly_struct,
2247 Bbar: *mut nmod_mpoly_struct,
2248 smA: *const nmod_mpoly_struct,
2249 smB: *const nmod_mpoly_struct,
2250 smctx: *const nmod_mpoly_ctx_struct,
2251 ) -> libc::c_int;
2252 pub fn _nmod_mpoly_monomial_evals_cache(
2253 E: *mut n_poly_struct,
2254 Aexps: *const ulong,
2255 Abits: flint_bitcnt_t,
2256 Alen: slong,
2257 betas: *const ulong,
2258 start: slong,
2259 stop: slong,
2260 mctx: *const mpoly_ctx_struct,
2261 mod_: nmod_t,
2262 );
2263 pub fn _nmod_mpoly_monomial_evals2_cache(
2264 E: *mut n_polyun_struct,
2265 Aexps: *const ulong,
2266 Abits: flint_bitcnt_t,
2267 Alen: slong,
2268 betas: *const ulong,
2269 m: slong,
2270 ctx: *const mpoly_ctx_struct,
2271 mod_: nmod_t,
2272 );
2273 pub fn _nmod_poly_eval2_pow(
2274 vp: *mut ulong,
2275 vm: *mut ulong,
2276 P: *mut n_poly_struct,
2277 alphapow: *mut n_poly_struct,
2278 fctx: nmod_t,
2279 );
2280 pub fn nmod_mpolyn_interp_reduce_2sm_poly(
2281 E: *mut n_poly_struct,
2282 F: *mut n_poly_struct,
2283 A: *const nmod_mpolyn_struct,
2284 alphapow: *mut n_poly_struct,
2285 ctx: *const nmod_mpoly_ctx_struct,
2286 );
2287 pub fn nmod_mpolyn_interp_lift_2sm_poly(
2288 lastdeg_: *mut slong,
2289 F: *mut nmod_mpolyn_struct,
2290 A: *const n_poly_struct,
2291 B: *const n_poly_struct,
2292 alpha: ulong,
2293 ctx: *const nmod_mpoly_ctx_struct,
2294 );
2295 pub fn nmod_mpolyn_interp_crt_2sm_poly(
2296 lastdeg_: *mut slong,
2297 F: *mut nmod_mpolyn_struct,
2298 T: *mut nmod_mpolyn_struct,
2299 A: *const n_poly_struct,
2300 B: *const n_poly_struct,
2301 modulus: *const n_poly_struct,
2302 alphapow: *mut n_poly_struct,
2303 ctx: *const nmod_mpoly_ctx_struct,
2304 ) -> libc::c_int;
2305 pub fn nmod_mpolyn_interp_lift_sm_bpoly(
2306 F: *mut nmod_mpolyn_struct,
2307 A: *mut n_bpoly_struct,
2308 ctx: *const nmod_mpoly_ctx_struct,
2309 );
2310 pub fn nmod_mpolyn_interp_crt_sm_bpoly(
2311 lastdeg: *mut slong,
2312 F: *mut nmod_mpolyn_struct,
2313 T: *mut nmod_mpolyn_struct,
2314 A: *mut n_bpoly_struct,
2315 modulus: *mut n_poly_struct,
2316 alphapow: *mut n_poly_struct,
2317 ctx: *const nmod_mpoly_ctx_struct,
2318 ) -> libc::c_int;
2319 pub fn nmod_mpolyn_interp_reduce_2sm_mpolyn(
2320 E: *mut nmod_mpolyn_struct,
2321 F: *mut nmod_mpolyn_struct,
2322 A: *mut nmod_mpolyn_struct,
2323 var: slong,
2324 alphapow: *mut n_poly_struct,
2325 ctx: *const nmod_mpoly_ctx_struct,
2326 );
2327 pub fn nmod_mpolyn_interp_lift_2sm_mpolyn(
2328 lastdeg: *mut slong,
2329 T: *mut nmod_mpolyn_struct,
2330 A: *mut nmod_mpolyn_struct,
2331 B: *mut nmod_mpolyn_struct,
2332 var: slong,
2333 alpha: ulong,
2334 ctx: *const nmod_mpoly_ctx_struct,
2335 );
2336 pub fn nmod_mpolyn_interp_crt_2sm_mpolyn(
2337 lastdeg: *mut slong,
2338 F: *mut nmod_mpolyn_struct,
2339 T: *mut nmod_mpolyn_struct,
2340 A: *mut nmod_mpolyn_struct,
2341 B: *mut nmod_mpolyn_struct,
2342 var: slong,
2343 modulus: *mut n_poly_struct,
2344 alphapow: *mut n_poly_struct,
2345 ctx: *const nmod_mpoly_ctx_struct,
2346 ) -> libc::c_int;
2347 pub fn nmod_mpolyun_interp_reduce_sm_mpolyu(
2348 B: *mut nmod_mpolyu_struct,
2349 A: *mut nmod_mpolyun_struct,
2350 alpha: ulong,
2351 ctx: *const nmod_mpoly_ctx_struct,
2352 );
2353 pub fn nmod_mpolyn_interp_lift_sm_mpoly(
2354 A: *mut nmod_mpolyn_struct,
2355 B: *const nmod_mpoly_struct,
2356 ctx: *const nmod_mpoly_ctx_struct,
2357 );
2358 pub fn nmod_mpolyun_interp_lift_sm_mpolyu(
2359 A: *mut nmod_mpolyun_struct,
2360 B: *const nmod_mpolyu_struct,
2361 ctx: *const nmod_mpoly_ctx_struct,
2362 );
2363 pub fn nmod_mpolyn_interp_crt_sm_mpoly(
2364 lastdeg: *mut slong,
2365 F: *mut nmod_mpolyn_struct,
2366 T: *mut nmod_mpolyn_struct,
2367 A: *mut nmod_mpoly_struct,
2368 modulus: *mut n_poly_struct,
2369 alpha: ulong,
2370 ctx: *const nmod_mpoly_ctx_struct,
2371 ) -> libc::c_int;
2372 pub fn nmod_mpolyun_interp_crt_sm_mpolyu(
2373 lastdeg: *mut slong,
2374 F: *mut nmod_mpolyun_struct,
2375 T: *mut nmod_mpolyun_struct,
2376 A: *mut nmod_mpolyu_struct,
2377 modulus: *mut n_poly_struct,
2378 alpha: ulong,
2379 ctx: *const nmod_mpoly_ctx_struct,
2380 ) -> libc::c_int;
2381 pub fn nmod_mpolyn_interp_mcrt_sm_mpoly(
2382 lastdeg_: *mut slong,
2383 F: *mut nmod_mpolyn_struct,
2384 A: *const nmod_mpoly_struct,
2385 modulus: *const n_poly_struct,
2386 alphapow: *mut n_poly_struct,
2387 ctx: *const nmod_mpoly_ctx_struct,
2388 ) -> libc::c_int;
2389 pub fn nmod_mpoly_geobucket_init(
2390 B: *mut nmod_mpoly_geobucket_struct,
2391 ctx: *const nmod_mpoly_ctx_struct,
2392 );
2393 pub fn nmod_mpoly_geobucket_clear(
2394 B: *mut nmod_mpoly_geobucket_struct,
2395 ctx: *const nmod_mpoly_ctx_struct,
2396 );
2397 pub fn nmod_mpoly_geobucket_empty(
2398 p: *mut nmod_mpoly_struct,
2399 B: *mut nmod_mpoly_geobucket_struct,
2400 ctx: *const nmod_mpoly_ctx_struct,
2401 );
2402 pub fn nmod_mpoly_geobucket_fit_length(
2403 B: *mut nmod_mpoly_geobucket_struct,
2404 i: slong,
2405 ctx: *const nmod_mpoly_ctx_struct,
2406 );
2407 pub fn nmod_mpoly_geobucket_set(
2408 B: *mut nmod_mpoly_geobucket_struct,
2409 p: *mut nmod_mpoly_struct,
2410 ctx: *const nmod_mpoly_ctx_struct,
2411 );
2412 pub fn nmod_mpoly_geobucket_add(
2413 B: *mut nmod_mpoly_geobucket_struct,
2414 p: *mut nmod_mpoly_struct,
2415 ctx: *const nmod_mpoly_ctx_struct,
2416 );
2417 pub fn nmod_mpoly_geobucket_sub(
2418 B: *mut nmod_mpoly_geobucket_struct,
2419 p: *mut nmod_mpoly_struct,
2420 ctx: *const nmod_mpoly_ctx_struct,
2421 );
2422 #[doc = "Internal consistency checks"]
2423 pub fn nmod_mpoly_remainder_strongtest(
2424 r: *const nmod_mpoly_struct,
2425 g: *const nmod_mpoly_struct,
2426 ctx: *const nmod_mpoly_ctx_struct,
2427 );
2428}