Skip to main content

flint_sys/
fmpz_mpoly_factor.rs

1/* automatically generated by rust-bindgen 0.70.1 */
2
3use crate::deps::*;
4use crate::flint::*;
5use crate::fmpz_mod_types::*;
6use crate::fmpz_mpoly::*;
7use crate::fmpz_poly_factor::*;
8use crate::fmpz_types::*;
9use crate::mpoly_types::*;
10use crate::nmod_types::*;
11
12
13#[repr(C)]
14pub struct fmpz_mpolyv_struct {
15    pub coeffs: *mut fmpz_mpoly_struct,
16    pub alloc: slong,
17    pub length: slong,
18}
19#[allow(clippy::unnecessary_operation, clippy::identity_op)]
20const _: () = {
21    ["Size of fmpz_mpolyv_struct"][::std::mem::size_of::<fmpz_mpolyv_struct>() - 24usize];
22    ["Alignment of fmpz_mpolyv_struct"][::std::mem::align_of::<fmpz_mpolyv_struct>() - 8usize];
23    ["Offset of field: fmpz_mpolyv_struct::coeffs"]
24        [::std::mem::offset_of!(fmpz_mpolyv_struct, coeffs) - 0usize];
25    ["Offset of field: fmpz_mpolyv_struct::alloc"]
26        [::std::mem::offset_of!(fmpz_mpolyv_struct, alloc) - 8usize];
27    ["Offset of field: fmpz_mpolyv_struct::length"]
28        [::std::mem::offset_of!(fmpz_mpolyv_struct, length) - 16usize];
29};
30impl Default for fmpz_mpolyv_struct {
31    fn default() -> Self {
32        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
33        unsafe {
34            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
35            s.assume_init()
36        }
37    }
38}
39pub type fmpz_mpolyv_t = [fmpz_mpolyv_struct; 1usize];
40#[repr(C)]
41pub struct fmpz_poly_pfrac_struct {
42    pub r: slong,
43    pub bits: *mut flint_bitcnt_t,
44    pub a: fmpz_poly_t,
45    pub newa: fmpz_poly_t,
46    pub t: fmpz_poly_t,
47    pub b: *mut fmpz_poly_struct,
48    pub bprod: *mut fmpz_poly_struct,
49    pub old_pk: fmpz_t,
50    pub pk: fmpz_t,
51    pub p: fmpz_t,
52    pub halfpks: *mut fmpz,
53    pub ctxp: fmpz_mod_ctx_t,
54    pub ctxs: *mut fmpz_mod_ctx_struct,
55    pub T: fmpz_mod_poly_t,
56    pub R: fmpz_mod_poly_t,
57    pub Q: fmpz_mod_poly_t,
58    pub B: *mut fmpz_mod_poly_struct,
59    pub invBprod: *mut fmpz_mod_poly_struct,
60    pub inwBprod: *mut fmpz_mod_poly_struct,
61    pub B_inv: *mut fmpz_mod_poly_struct,
62}
63#[allow(clippy::unnecessary_operation, clippy::identity_op)]
64const _: () = {
65    ["Size of fmpz_poly_pfrac_struct"][::std::mem::size_of::<fmpz_poly_pfrac_struct>() - 360usize];
66    ["Alignment of fmpz_poly_pfrac_struct"]
67        [::std::mem::align_of::<fmpz_poly_pfrac_struct>() - 8usize];
68    ["Offset of field: fmpz_poly_pfrac_struct::r"]
69        [::std::mem::offset_of!(fmpz_poly_pfrac_struct, r) - 0usize];
70    ["Offset of field: fmpz_poly_pfrac_struct::bits"]
71        [::std::mem::offset_of!(fmpz_poly_pfrac_struct, bits) - 8usize];
72    ["Offset of field: fmpz_poly_pfrac_struct::a"]
73        [::std::mem::offset_of!(fmpz_poly_pfrac_struct, a) - 16usize];
74    ["Offset of field: fmpz_poly_pfrac_struct::newa"]
75        [::std::mem::offset_of!(fmpz_poly_pfrac_struct, newa) - 40usize];
76    ["Offset of field: fmpz_poly_pfrac_struct::t"]
77        [::std::mem::offset_of!(fmpz_poly_pfrac_struct, t) - 64usize];
78    ["Offset of field: fmpz_poly_pfrac_struct::b"]
79        [::std::mem::offset_of!(fmpz_poly_pfrac_struct, b) - 88usize];
80    ["Offset of field: fmpz_poly_pfrac_struct::bprod"]
81        [::std::mem::offset_of!(fmpz_poly_pfrac_struct, bprod) - 96usize];
82    ["Offset of field: fmpz_poly_pfrac_struct::old_pk"]
83        [::std::mem::offset_of!(fmpz_poly_pfrac_struct, old_pk) - 104usize];
84    ["Offset of field: fmpz_poly_pfrac_struct::pk"]
85        [::std::mem::offset_of!(fmpz_poly_pfrac_struct, pk) - 112usize];
86    ["Offset of field: fmpz_poly_pfrac_struct::p"]
87        [::std::mem::offset_of!(fmpz_poly_pfrac_struct, p) - 120usize];
88    ["Offset of field: fmpz_poly_pfrac_struct::halfpks"]
89        [::std::mem::offset_of!(fmpz_poly_pfrac_struct, halfpks) - 128usize];
90    ["Offset of field: fmpz_poly_pfrac_struct::ctxp"]
91        [::std::mem::offset_of!(fmpz_poly_pfrac_struct, ctxp) - 136usize];
92    ["Offset of field: fmpz_poly_pfrac_struct::ctxs"]
93        [::std::mem::offset_of!(fmpz_poly_pfrac_struct, ctxs) - 248usize];
94    ["Offset of field: fmpz_poly_pfrac_struct::T"]
95        [::std::mem::offset_of!(fmpz_poly_pfrac_struct, T) - 256usize];
96    ["Offset of field: fmpz_poly_pfrac_struct::R"]
97        [::std::mem::offset_of!(fmpz_poly_pfrac_struct, R) - 280usize];
98    ["Offset of field: fmpz_poly_pfrac_struct::Q"]
99        [::std::mem::offset_of!(fmpz_poly_pfrac_struct, Q) - 304usize];
100    ["Offset of field: fmpz_poly_pfrac_struct::B"]
101        [::std::mem::offset_of!(fmpz_poly_pfrac_struct, B) - 328usize];
102    ["Offset of field: fmpz_poly_pfrac_struct::invBprod"]
103        [::std::mem::offset_of!(fmpz_poly_pfrac_struct, invBprod) - 336usize];
104    ["Offset of field: fmpz_poly_pfrac_struct::inwBprod"]
105        [::std::mem::offset_of!(fmpz_poly_pfrac_struct, inwBprod) - 344usize];
106    ["Offset of field: fmpz_poly_pfrac_struct::B_inv"]
107        [::std::mem::offset_of!(fmpz_poly_pfrac_struct, B_inv) - 352usize];
108};
109impl Default for fmpz_poly_pfrac_struct {
110    fn default() -> Self {
111        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
112        unsafe {
113            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
114            s.assume_init()
115        }
116    }
117}
118pub type fmpz_poly_pfrac_t = [fmpz_poly_pfrac_struct; 1usize];
119#[repr(C)]
120pub struct fmpz_mpoly_pfrac_struct {
121    pub bits: flint_bitcnt_t,
122    pub w: slong,
123    pub r: slong,
124    pub prod_mbetas: *mut fmpz_mpoly_struct,
125    pub prod_mbetas_coeffs: *mut fmpz_mpolyv_struct,
126    pub mbetas: *mut fmpz_mpoly_struct,
127    pub deltas: *mut fmpz_mpoly_struct,
128    pub xalpha: *mut fmpz_mpoly_struct,
129    pub q: *mut fmpz_mpoly_struct,
130    pub U: *mut fmpz_mpoly_univar_struct,
131    pub G: *mut fmpz_mpoly_geobucket_struct,
132    pub qt: *mut fmpz_mpoly_struct,
133    pub newt: *mut fmpz_mpoly_struct,
134    pub delta_coeffs: *mut fmpz_mpolyv_struct,
135    pub uni_pfrac: fmpz_poly_pfrac_t,
136    pub uni_a: fmpz_poly_t,
137    pub uni_c: *mut fmpz_poly_struct,
138}
139#[allow(clippy::unnecessary_operation, clippy::identity_op)]
140const _: () = {
141    ["Size of fmpz_mpoly_pfrac_struct"]
142        [::std::mem::size_of::<fmpz_mpoly_pfrac_struct>() - 504usize];
143    ["Alignment of fmpz_mpoly_pfrac_struct"]
144        [::std::mem::align_of::<fmpz_mpoly_pfrac_struct>() - 8usize];
145    ["Offset of field: fmpz_mpoly_pfrac_struct::bits"]
146        [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, bits) - 0usize];
147    ["Offset of field: fmpz_mpoly_pfrac_struct::w"]
148        [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, w) - 8usize];
149    ["Offset of field: fmpz_mpoly_pfrac_struct::r"]
150        [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, r) - 16usize];
151    ["Offset of field: fmpz_mpoly_pfrac_struct::prod_mbetas"]
152        [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, prod_mbetas) - 24usize];
153    ["Offset of field: fmpz_mpoly_pfrac_struct::prod_mbetas_coeffs"]
154        [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, prod_mbetas_coeffs) - 32usize];
155    ["Offset of field: fmpz_mpoly_pfrac_struct::mbetas"]
156        [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, mbetas) - 40usize];
157    ["Offset of field: fmpz_mpoly_pfrac_struct::deltas"]
158        [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, deltas) - 48usize];
159    ["Offset of field: fmpz_mpoly_pfrac_struct::xalpha"]
160        [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, xalpha) - 56usize];
161    ["Offset of field: fmpz_mpoly_pfrac_struct::q"]
162        [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, q) - 64usize];
163    ["Offset of field: fmpz_mpoly_pfrac_struct::U"]
164        [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, U) - 72usize];
165    ["Offset of field: fmpz_mpoly_pfrac_struct::G"]
166        [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, G) - 80usize];
167    ["Offset of field: fmpz_mpoly_pfrac_struct::qt"]
168        [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, qt) - 88usize];
169    ["Offset of field: fmpz_mpoly_pfrac_struct::newt"]
170        [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, newt) - 96usize];
171    ["Offset of field: fmpz_mpoly_pfrac_struct::delta_coeffs"]
172        [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, delta_coeffs) - 104usize];
173    ["Offset of field: fmpz_mpoly_pfrac_struct::uni_pfrac"]
174        [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, uni_pfrac) - 112usize];
175    ["Offset of field: fmpz_mpoly_pfrac_struct::uni_a"]
176        [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, uni_a) - 472usize];
177    ["Offset of field: fmpz_mpoly_pfrac_struct::uni_c"]
178        [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, uni_c) - 496usize];
179};
180impl Default for fmpz_mpoly_pfrac_struct {
181    fn default() -> Self {
182        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
183        unsafe {
184            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
185            s.assume_init()
186        }
187    }
188}
189pub type fmpz_mpoly_pfrac_t = [fmpz_mpoly_pfrac_struct; 1usize];
190#[repr(C)]
191pub struct fmpz_bpoly_struct {
192    pub coeffs: *mut fmpz_poly_struct,
193    pub alloc: slong,
194    pub length: slong,
195}
196#[allow(clippy::unnecessary_operation, clippy::identity_op)]
197const _: () = {
198    ["Size of fmpz_bpoly_struct"][::std::mem::size_of::<fmpz_bpoly_struct>() - 24usize];
199    ["Alignment of fmpz_bpoly_struct"][::std::mem::align_of::<fmpz_bpoly_struct>() - 8usize];
200    ["Offset of field: fmpz_bpoly_struct::coeffs"]
201        [::std::mem::offset_of!(fmpz_bpoly_struct, coeffs) - 0usize];
202    ["Offset of field: fmpz_bpoly_struct::alloc"]
203        [::std::mem::offset_of!(fmpz_bpoly_struct, alloc) - 8usize];
204    ["Offset of field: fmpz_bpoly_struct::length"]
205        [::std::mem::offset_of!(fmpz_bpoly_struct, length) - 16usize];
206};
207impl Default for fmpz_bpoly_struct {
208    fn default() -> Self {
209        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
210        unsafe {
211            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
212            s.assume_init()
213        }
214    }
215}
216pub type fmpz_bpoly_t = [fmpz_bpoly_struct; 1usize];
217#[repr(C)]
218pub struct fmpz_tpoly_struct {
219    pub coeffs: *mut fmpz_bpoly_struct,
220    pub alloc: slong,
221    pub length: slong,
222}
223#[allow(clippy::unnecessary_operation, clippy::identity_op)]
224const _: () = {
225    ["Size of fmpz_tpoly_struct"][::std::mem::size_of::<fmpz_tpoly_struct>() - 24usize];
226    ["Alignment of fmpz_tpoly_struct"][::std::mem::align_of::<fmpz_tpoly_struct>() - 8usize];
227    ["Offset of field: fmpz_tpoly_struct::coeffs"]
228        [::std::mem::offset_of!(fmpz_tpoly_struct, coeffs) - 0usize];
229    ["Offset of field: fmpz_tpoly_struct::alloc"]
230        [::std::mem::offset_of!(fmpz_tpoly_struct, alloc) - 8usize];
231    ["Offset of field: fmpz_tpoly_struct::length"]
232        [::std::mem::offset_of!(fmpz_tpoly_struct, length) - 16usize];
233};
234impl Default for fmpz_tpoly_struct {
235    fn default() -> Self {
236        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
237        unsafe {
238            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
239            s.assume_init()
240        }
241    }
242}
243pub type fmpz_tpoly_t = [fmpz_tpoly_struct; 1usize];
244extern "C" {
245    pub fn tuple_print(alpha: *mut fmpz, n: slong);
246    pub fn tuple_saturate(alpha: *mut fmpz, n: slong, m: slong);
247    pub fn tuple_next(alpha: *mut fmpz, n: slong);
248    #[link_name = "fmpz_mpoly_factor_init__extern"]
249    pub fn fmpz_mpoly_factor_init(
250        f: *mut fmpz_mpoly_factor_struct,
251        UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
252    );
253    pub fn fmpz_mpoly_factor_init2(
254        f: *mut fmpz_mpoly_factor_struct,
255        alloc: slong,
256        ctx: *const fmpz_mpoly_ctx_struct,
257    );
258    pub fn fmpz_mpoly_factor_realloc(
259        f: *mut fmpz_mpoly_factor_struct,
260        alloc: slong,
261        ctx: *const fmpz_mpoly_ctx_struct,
262    );
263    pub fn fmpz_mpoly_factor_fit_length(
264        f: *mut fmpz_mpoly_factor_struct,
265        len: slong,
266        ctx: *const fmpz_mpoly_ctx_struct,
267    );
268    pub fn fmpz_mpoly_factor_clear(
269        f: *mut fmpz_mpoly_factor_struct,
270        ctx: *const fmpz_mpoly_ctx_struct,
271    );
272    #[link_name = "fmpz_mpoly_factor_length__extern"]
273    pub fn fmpz_mpoly_factor_length(
274        f: *const fmpz_mpoly_factor_struct,
275        UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
276    ) -> slong;
277    pub fn fmpz_mpoly_factor_get_constant_fmpz(
278        c: *mut fmpz,
279        f: *const fmpz_mpoly_factor_struct,
280        UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
281    );
282    pub fn fmpz_mpoly_factor_get_constant_fmpq(
283        c: *mut fmpq,
284        f: *const fmpz_mpoly_factor_struct,
285        UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
286    );
287    #[link_name = "fmpz_mpoly_factor_get_base__extern"]
288    pub fn fmpz_mpoly_factor_get_base(
289        p: *mut fmpz_mpoly_struct,
290        f: *const fmpz_mpoly_factor_struct,
291        i: slong,
292        ctx: *const fmpz_mpoly_ctx_struct,
293    );
294    #[link_name = "fmpz_mpoly_factor_swap_base__extern"]
295    pub fn fmpz_mpoly_factor_swap_base(
296        p: *mut fmpz_mpoly_struct,
297        f: *mut fmpz_mpoly_factor_struct,
298        i: slong,
299        ctx: *const fmpz_mpoly_ctx_struct,
300    );
301    pub fn fmpz_mpoly_factor_get_exp_si(
302        f: *mut fmpz_mpoly_factor_struct,
303        i: slong,
304        UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
305    ) -> slong;
306    pub fn fmpz_mpoly_factor_set(
307        f: *mut fmpz_mpoly_factor_struct,
308        g: *const fmpz_mpoly_factor_struct,
309        ctx: *const fmpz_mpoly_ctx_struct,
310    );
311    pub fn fmpz_mpoly_factor_cmp(
312        f: *const fmpz_mpoly_factor_struct,
313        g: *const fmpz_mpoly_factor_struct,
314        ctx: *const fmpz_mpoly_ctx_struct,
315    ) -> libc::c_int;
316    pub fn fmpz_mpoly_factor_print_pretty(
317        f: *const fmpz_mpoly_factor_struct,
318        vars: *mut *const libc::c_char,
319        ctx: *const fmpz_mpoly_ctx_struct,
320    );
321    pub fn fmpz_mpoly_factor_content(
322        f: *mut fmpz_mpoly_factor_struct,
323        A: *const fmpz_mpoly_struct,
324        ctx: *const fmpz_mpoly_ctx_struct,
325    ) -> libc::c_int;
326    pub fn fmpz_mpoly_factor_squarefree(
327        f: *mut fmpz_mpoly_factor_struct,
328        A: *const fmpz_mpoly_struct,
329        ctx: *const fmpz_mpoly_ctx_struct,
330    ) -> libc::c_int;
331    pub fn fmpz_mpoly_factor(
332        f: *mut fmpz_mpoly_factor_struct,
333        A: *const fmpz_mpoly_struct,
334        ctx: *const fmpz_mpoly_ctx_struct,
335    ) -> libc::c_int;
336    #[link_name = "fmpz_mpoly_factor_swap__extern"]
337    pub fn fmpz_mpoly_factor_swap(
338        f: *mut fmpz_mpoly_factor_struct,
339        g: *mut fmpz_mpoly_factor_struct,
340        UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
341    );
342    pub fn fmpz_mpoly_factor_set_fmpz(
343        f: *mut fmpz_mpoly_factor_struct,
344        a: *const fmpz,
345        UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
346    );
347    pub fn fmpz_mpoly_factor_zero(
348        f: *mut fmpz_mpoly_factor_struct,
349        UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
350    );
351    pub fn fmpz_mpoly_factor_one(
352        f: *mut fmpz_mpoly_factor_struct,
353        UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
354    );
355    pub fn fmpz_mpoly_factor_sort(
356        f: *mut fmpz_mpoly_factor_struct,
357        ctx: *const fmpz_mpoly_ctx_struct,
358    );
359    pub fn fmpz_mpoly_factor_expand(
360        A: *mut fmpz_mpoly_struct,
361        f: *const fmpz_mpoly_factor_struct,
362        ctx: *const fmpz_mpoly_ctx_struct,
363    ) -> libc::c_int;
364    pub fn fmpz_mpoly_factor_bound_si(
365        B: *mut fmpz,
366        A: *const fmpz,
367        degs: *const slong,
368        nvars: slong,
369    ) -> libc::c_int;
370    #[link_name = "fmpz_mpoly_factor_matches__extern"]
371    pub fn fmpz_mpoly_factor_matches(
372        A: *const fmpz_mpoly_struct,
373        f: *const fmpz_mpoly_factor_struct,
374        ctx: *const fmpz_mpoly_ctx_struct,
375    ) -> libc::c_int;
376    pub fn fmpz_mpoly_factor_append_fmpz_swap(
377        f: *mut fmpz_mpoly_factor_struct,
378        A: *mut fmpz_mpoly_struct,
379        e: *const fmpz,
380        ctx: *const fmpz_mpoly_ctx_struct,
381    );
382    pub fn fmpz_mpoly_factor_append_ui(
383        f: *mut fmpz_mpoly_factor_struct,
384        A: *const fmpz_mpoly_struct,
385        e: ulong,
386        ctx: *const fmpz_mpoly_ctx_struct,
387    );
388    pub fn fmpz_mpoly_interp_lift_p(
389        A: *mut fmpz_mpoly_struct,
390        ctx: *const fmpz_mpoly_ctx_struct,
391        Ap: *mut nmod_mpoly_struct,
392        ctxp: *const nmod_mpoly_ctx_struct,
393    );
394    pub fn fmpz_mpoly_interp_reduce_p(
395        Ap: *mut nmod_mpoly_struct,
396        ctxp: *const nmod_mpoly_ctx_struct,
397        A: *const fmpz_mpoly_struct,
398        ctx: *const fmpz_mpoly_ctx_struct,
399    );
400    pub fn fmpz_mpoly_interp_mcrt_p(
401        coeffbits: *mut flint_bitcnt_t,
402        H: *mut fmpz_mpoly_struct,
403        UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
404        m: *const fmpz,
405        A: *const nmod_mpoly_struct,
406        ctxp: *const nmod_mpoly_ctx_struct,
407    ) -> libc::c_int;
408    pub fn fmpz_mpoly_interp_reduce_p_mpolyn(
409        E: *mut nmod_mpolyn_struct,
410        pctx: *const nmod_mpoly_ctx_struct,
411        A: *const fmpz_mpoly_struct,
412        ctx: *const fmpz_mpoly_ctx_struct,
413    );
414    pub fn fmpz_mpoly_interp_lift_p_mpolyn(
415        A: *mut fmpz_mpoly_struct,
416        ctx: *const fmpz_mpoly_ctx_struct,
417        B: *const nmod_mpolyn_struct,
418        pctx: *const nmod_mpoly_ctx_struct,
419    );
420    pub fn fmpz_mpoly_interp_crt_p_mpolyn(
421        F: *mut fmpz_mpoly_struct,
422        T: *mut fmpz_mpoly_struct,
423        ctx: *const fmpz_mpoly_ctx_struct,
424        modulus: *mut fmpz,
425        A: *const nmod_mpolyn_struct,
426        pctx: *const nmod_mpoly_ctx_struct,
427    ) -> libc::c_int;
428    #[link_name = "fmpz_mpolyv_init__extern"]
429    pub fn fmpz_mpolyv_init(A: *mut fmpz_mpolyv_struct, UNUSED_ctx: *const fmpz_mpoly_ctx_struct);
430    #[link_name = "fmpz_mpolyv_swap__extern"]
431    pub fn fmpz_mpolyv_swap(
432        A: *mut fmpz_mpolyv_struct,
433        B: *mut fmpz_mpolyv_struct,
434        UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
435    );
436    pub fn fmpz_mpolyv_clear(A: *mut fmpz_mpolyv_struct, ctx: *const fmpz_mpoly_ctx_struct);
437    pub fn fmpz_mpolyv_print_pretty(
438        poly: *const fmpz_mpolyv_struct,
439        x: *mut *const libc::c_char,
440        ctx: *const fmpz_mpoly_ctx_struct,
441    );
442    pub fn fmpz_mpolyv_fit_length(
443        A: *mut fmpz_mpolyv_struct,
444        length: slong,
445        ctx: *const fmpz_mpoly_ctx_struct,
446    );
447    pub fn fmpz_mpolyv_set_coeff(
448        A: *mut fmpz_mpolyv_struct,
449        i: slong,
450        c: *mut fmpz_mpoly_struct,
451        ctx: *const fmpz_mpoly_ctx_struct,
452    );
453    pub fn fmpz_mpoly_to_mpolyv(
454        A: *mut fmpz_mpolyv_struct,
455        B: *const fmpz_mpoly_struct,
456        xalpha: *const fmpz_mpoly_struct,
457        ctx: *const fmpz_mpoly_ctx_struct,
458    );
459    pub fn fmpz_mpoly_from_mpolyv(
460        A: *mut fmpz_mpoly_struct,
461        Abits: flint_bitcnt_t,
462        B: *const fmpz_mpolyv_struct,
463        xalpha: *const fmpz_mpoly_struct,
464        ctx: *const fmpz_mpoly_ctx_struct,
465    );
466    pub fn _fmpz_mpoly_vec_content_mpoly(
467        g: *mut fmpz_mpoly_struct,
468        A: *const fmpz_mpoly_struct,
469        Alen: slong,
470        ctx: *const fmpz_mpoly_ctx_struct,
471    ) -> libc::c_int;
472    pub fn _fmpz_mpoly_vec_divexact_mpoly(
473        A: *mut fmpz_mpoly_struct,
474        Alen: slong,
475        c: *const fmpz_mpoly_struct,
476        ctx: *const fmpz_mpoly_ctx_struct,
477    );
478    pub fn _fmpz_mpoly_vec_mul_mpoly(
479        A: *mut fmpz_mpoly_struct,
480        Alen: slong,
481        c: *const fmpz_mpoly_struct,
482        ctx: *const fmpz_mpoly_ctx_struct,
483    );
484    pub fn _fmpz_mpoly_gcd_algo(
485        G: *mut fmpz_mpoly_struct,
486        Abar: *mut fmpz_mpoly_struct,
487        Bbar: *mut fmpz_mpoly_struct,
488        A: *const fmpz_mpoly_struct,
489        B: *const fmpz_mpoly_struct,
490        ctx: *const fmpz_mpoly_ctx_struct,
491        algo: libc::c_uint,
492    ) -> libc::c_int;
493    pub fn fmpz_mpoly_to_mpolyl_perm_deflate(
494        A: *mut fmpz_mpoly_struct,
495        lctx: *const fmpz_mpoly_ctx_struct,
496        B: *const fmpz_mpoly_struct,
497        ctx: *const fmpz_mpoly_ctx_struct,
498        perm: *const slong,
499        shift: *const ulong,
500        stride: *const ulong,
501    );
502    pub fn fmpz_mpoly_from_mpolyl_perm_inflate(
503        A: *mut fmpz_mpoly_struct,
504        Abits: flint_bitcnt_t,
505        ctx: *const fmpz_mpoly_ctx_struct,
506        B: *const fmpz_mpoly_struct,
507        lctx: *const fmpz_mpoly_ctx_struct,
508        perm: *const slong,
509        shift: *const ulong,
510        stride: *const ulong,
511    );
512    pub fn fmpz_mpolyl_gcd_brown(
513        G: *mut fmpz_mpoly_struct,
514        Abar: *mut fmpz_mpoly_struct,
515        Bbar: *mut fmpz_mpoly_struct,
516        A: *mut fmpz_mpoly_struct,
517        B: *mut fmpz_mpoly_struct,
518        ctx: *const fmpz_mpoly_ctx_struct,
519        Iv: *const mpoly_gcd_info_struct,
520    ) -> libc::c_int;
521    pub fn fmpz_mpolyl_gcd_brown_threaded_pool(
522        G: *mut fmpz_mpoly_struct,
523        Abar: *mut fmpz_mpoly_struct,
524        Bbar: *mut fmpz_mpoly_struct,
525        A: *mut fmpz_mpoly_struct,
526        B: *mut fmpz_mpoly_struct,
527        ctx: *const fmpz_mpoly_ctx_struct,
528        Iv: *const mpoly_gcd_info_struct,
529        handles: *const thread_pool_handle,
530        num_handles: slong,
531    ) -> libc::c_int;
532    pub fn fmpz_mpolyl_gcd_zippel(
533        G: *mut fmpz_mpoly_struct,
534        Abar: *mut fmpz_mpoly_struct,
535        Bbar: *mut fmpz_mpoly_struct,
536        A: *const fmpz_mpoly_struct,
537        B: *const fmpz_mpoly_struct,
538        ctx: *const fmpz_mpoly_ctx_struct,
539        randstate: *mut flint_rand_struct,
540    ) -> libc::c_int;
541    pub fn fmpz_mpolyl_gcd_zippel2(
542        G: *mut fmpz_mpoly_struct,
543        Abar: *mut fmpz_mpoly_struct,
544        Bbar: *mut fmpz_mpoly_struct,
545        A: *const fmpz_mpoly_struct,
546        B: *const fmpz_mpoly_struct,
547        Gamma: *const fmpz_mpoly_struct,
548        ctx: *const fmpz_mpoly_ctx_struct,
549    ) -> libc::c_int;
550    pub fn fmpz_mpolyl_gcd_hensel(
551        G: *mut fmpz_mpoly_struct,
552        Gdeg: slong,
553        Abar: *mut fmpz_mpoly_struct,
554        Bbar: *mut fmpz_mpoly_struct,
555        A: *const fmpz_mpoly_struct,
556        B: *const fmpz_mpoly_struct,
557        ctx: *const fmpz_mpoly_ctx_struct,
558    ) -> libc::c_int;
559    pub fn fmpz_poly_pfrac_init(Iv: *mut fmpz_poly_pfrac_struct);
560    pub fn fmpz_poly_pfrac_clear(Iv: *mut fmpz_poly_pfrac_struct);
561    pub fn fmpz_poly_pfrac_precompute(
562        Iv: *mut fmpz_poly_pfrac_struct,
563        b: *const fmpz_poly_struct,
564        r: slong,
565    ) -> libc::c_int;
566    pub fn fmpz_poly_pfrac_precomp(
567        c: *mut fmpz_poly_struct,
568        A: *const fmpz_poly_struct,
569        Iv: *mut fmpz_poly_pfrac_struct,
570    ) -> libc::c_int;
571    pub fn fmpz_mpoly_pfrac_init(
572        Iv: *mut fmpz_mpoly_pfrac_struct,
573        bits: flint_bitcnt_t,
574        r: slong,
575        w: slong,
576        betas: *const fmpz_mpoly_struct,
577        alpha: *const fmpz,
578        ctx: *const fmpz_mpoly_ctx_struct,
579    ) -> libc::c_int;
580    pub fn fmpz_mpoly_pfrac_clear(
581        Iv: *mut fmpz_mpoly_pfrac_struct,
582        ctx: *const fmpz_mpoly_ctx_struct,
583    );
584    pub fn fmpz_mpoly_pfrac(
585        l: slong,
586        t: *mut fmpz_mpoly_struct,
587        degs: *const slong,
588        Iv: *mut fmpz_mpoly_pfrac_struct,
589        ctx: *const fmpz_mpoly_ctx_struct,
590    ) -> libc::c_int;
591    pub fn fmpz_mpoly_hlift(
592        m: slong,
593        f: *mut fmpz_mpoly_struct,
594        r: slong,
595        alpha: *const fmpz,
596        A: *const fmpz_mpoly_struct,
597        degs: *const slong,
598        ctx: *const fmpz_mpoly_ctx_struct,
599    ) -> libc::c_int;
600    pub fn _fmpz_mpoly_get_lead0(
601        c: *mut fmpz_mpoly_struct,
602        A: *const fmpz_mpoly_struct,
603        ctx: *const fmpz_mpoly_ctx_struct,
604    );
605    pub fn _fmpz_mpoly_set_lead0(
606        A: *mut fmpz_mpoly_struct,
607        B: *const fmpz_mpoly_struct,
608        c: *const fmpz_mpoly_struct,
609        ctx: *const fmpz_mpoly_ctx_struct,
610    );
611    #[link_name = "fmpz_bpoly_init__extern"]
612    pub fn fmpz_bpoly_init(A: *mut fmpz_bpoly_struct);
613    #[link_name = "fmpz_bpoly_swap__extern"]
614    pub fn fmpz_bpoly_swap(A: *mut fmpz_bpoly_struct, B: *mut fmpz_bpoly_struct);
615    pub fn fmpz_bpoly_clear(A: *mut fmpz_bpoly_struct);
616    pub fn fmpz_bpoly_realloc(A: *mut fmpz_bpoly_struct, len: slong);
617    #[link_name = "fmpz_bpoly_fit_length__extern"]
618    pub fn fmpz_bpoly_fit_length(A: *mut fmpz_bpoly_struct, len: slong);
619    pub fn fmpz_bpoly_print_pretty(
620        A: *mut fmpz_bpoly_struct,
621        var0: *const libc::c_char,
622        var1: *const libc::c_char,
623    );
624    #[link_name = "fmpz_bpoly_lead__extern"]
625    pub fn fmpz_bpoly_lead(A: *mut fmpz_bpoly_struct) -> *mut fmpz_poly_struct;
626    #[link_name = "fmpz_bpoly_zero__extern"]
627    pub fn fmpz_bpoly_zero(A: *mut fmpz_bpoly_struct);
628    #[link_name = "fmpz_bpoly_degree0__extern"]
629    pub fn fmpz_bpoly_degree0(A: *const fmpz_bpoly_struct) -> slong;
630    pub fn fmpz_bpoly_degree1(A: *const fmpz_bpoly_struct) -> slong;
631    pub fn fmpz_bpoly_set_coeff(
632        A: *mut fmpz_bpoly_struct,
633        exp0: slong,
634        exp1: slong,
635        c: *const fmpz,
636    );
637    pub fn fmpz_mpoly_set_fmpz_bpoly(
638        A: *mut fmpz_mpoly_struct,
639        Abits: flint_bitcnt_t,
640        B: *const fmpz_bpoly_struct,
641        var0: slong,
642        var1: slong,
643        ctx: *const fmpz_mpoly_ctx_struct,
644    );
645    pub fn fmpz_mpoly_get_bpoly(
646        A: *mut fmpz_bpoly_struct,
647        B: *const fmpz_mpoly_struct,
648        var0: slong,
649        var1: slong,
650        ctx: *const fmpz_mpoly_ctx_struct,
651    );
652    #[link_name = "fmpz_tpoly_init__extern"]
653    pub fn fmpz_tpoly_init(A: *mut fmpz_tpoly_struct);
654    #[link_name = "fmpz_tpoly_swap__extern"]
655    pub fn fmpz_tpoly_swap(A: *mut fmpz_tpoly_struct, B: *mut fmpz_tpoly_struct);
656    pub fn fmpz_tpoly_fit_length(A: *mut fmpz_tpoly_struct, len: slong);
657    pub fn fmpz_tpoly_clear(A: *mut fmpz_tpoly_struct);
658    pub fn fmpz_bpoly_factor(
659        c: *mut fmpz_poly_struct,
660        F: *mut fmpz_tpoly_struct,
661        B: *mut fmpz_bpoly_struct,
662    );
663    pub fn fmpz_bpoly_factor_ordered(
664        c: *mut fmpz_poly_struct,
665        F: *mut fmpz_tpoly_struct,
666        B: *mut fmpz_bpoly_struct,
667        alpha: *const fmpz,
668        Bevalf: *const fmpz_poly_factor_struct,
669    ) -> libc::c_int;
670    pub fn fmpz_mpoly_unit_normalize(A: *mut fmpz_mpoly_struct, ctx: *const fmpz_mpoly_ctx_struct);
671    pub fn _fmpz_mpoly_factor_squarefree(
672        f: *mut fmpz_mpoly_factor_struct,
673        A: *mut fmpz_mpoly_struct,
674        e: *const fmpz,
675        ctx: *const fmpz_mpoly_ctx_struct,
676    ) -> libc::c_int;
677    pub fn fmpz_mpoly_factor_lcc_wang(
678        lc_divs: *mut fmpz_mpoly_struct,
679        lcAfac: *const fmpz_mpoly_factor_struct,
680        Auc: *const fmpz,
681        Auf: *const fmpz_poly_struct,
682        r: slong,
683        alpha: *const fmpz,
684        ctx: *const fmpz_mpoly_ctx_struct,
685    ) -> libc::c_int;
686    pub fn fmpz_mpoly_factor_irred_zassenhaus(
687        fac: *mut fmpz_mpolyv_struct,
688        A: *const fmpz_mpoly_struct,
689        ctx: *const fmpz_mpoly_ctx_struct,
690        UNUSED_Z: *mut zassenhaus_prune_struct,
691    ) -> libc::c_int;
692    pub fn fmpz_mpoly_factor_irred_wang(
693        fac: *mut fmpz_mpolyv_struct,
694        A: *const fmpz_mpoly_struct,
695        lcAfac: *const fmpz_mpoly_factor_struct,
696        lcAfac_irred: libc::c_int,
697        lcA: *const fmpz_mpoly_struct,
698        ctx: *const fmpz_mpoly_ctx_struct,
699        state: *mut flint_rand_struct,
700        Z: *mut zassenhaus_prune_struct,
701        allow_shift: libc::c_int,
702    ) -> libc::c_int;
703    pub fn fmpz_mpoly_factor_irred_zippel(
704        fac: *mut fmpz_mpolyv_struct,
705        A: *const fmpz_mpoly_struct,
706        lcAfac: *const fmpz_mpoly_factor_struct,
707        lcAfac_irred: libc::c_int,
708        lcA: *const fmpz_mpoly_struct,
709        ctx: *const fmpz_mpoly_ctx_struct,
710        state: *mut flint_rand_struct,
711        Z: *mut zassenhaus_prune_struct,
712    ) -> libc::c_int;
713    pub fn fmpz_mpoly_factor_irred(
714        f: *mut fmpz_mpoly_factor_struct,
715        ctx: *const fmpz_mpoly_ctx_struct,
716        algo: libc::c_uint,
717    ) -> libc::c_int;
718    pub fn fmpz_mpoly_factor_zassenhaus(
719        f: *mut fmpz_mpoly_factor_struct,
720        A: *const fmpz_mpoly_struct,
721        ctx: *const fmpz_mpoly_ctx_struct,
722    ) -> libc::c_int;
723    pub fn fmpz_mpoly_factor_wang(
724        f: *mut fmpz_mpoly_factor_struct,
725        A: *const fmpz_mpoly_struct,
726        ctx: *const fmpz_mpoly_ctx_struct,
727    ) -> libc::c_int;
728    pub fn fmpz_mpoly_factor_zippel(
729        f: *mut fmpz_mpoly_factor_struct,
730        A: *const fmpz_mpoly_struct,
731        ctx: *const fmpz_mpoly_ctx_struct,
732    ) -> libc::c_int;
733    pub fn _fmpz_mpoly_evaluate_rest_fmpz(
734        E: *mut fmpz,
735        starts: *mut slong,
736        ends: *mut slong,
737        stops: *mut slong,
738        es: *mut ulong,
739        Acoeffs: *const fmpz,
740        Aexps: *const ulong,
741        Alen: slong,
742        var: slong,
743        alphas: *const fmpz,
744        offsets: *const slong,
745        shifts: *const slong,
746        N: slong,
747        mask: ulong,
748        nvars: slong,
749    ) -> libc::c_int;
750    pub fn _fmpz_mpoly_eval_rest_to_poly(
751        E: *mut fmpz_poly_struct,
752        A: *const fmpz_mpoly_struct,
753        alphas: *const fmpz,
754        ctx: *const fmpz_mpoly_ctx_struct,
755    );
756    pub fn fmpz_mpoly_factor_lcc_kaltofen_step(
757        divs: *mut fmpz_mpoly_struct,
758        r: slong,
759        Af: *mut fmpz_mpoly_factor_struct,
760        Au: *const fmpz_poly_struct,
761        v: slong,
762        alphas: *const fmpz,
763        ctx: *const fmpz_mpoly_ctx_struct,
764    ) -> libc::c_int;
765    pub fn fmpz_mpoly_factor_lcc_kaltofen(
766        divs: *mut fmpz_mpoly_struct,
767        lcAf_: *const fmpz_mpoly_factor_struct,
768        A: *const fmpz_mpoly_struct,
769        r: slong,
770        alpha: *const fmpz,
771        degs: *mut slong,
772        uf: *const fmpz_poly_factor_struct,
773        ctx: *const fmpz_mpoly_ctx_struct,
774    ) -> libc::c_int;
775    pub fn fmpz_mpoly_evaluate_rest_except_one(
776        e: *mut fmpz_poly_struct,
777        A: *const fmpz_mpoly_struct,
778        alphas: *const fmpz,
779        v: slong,
780        ctx: *const fmpz_mpoly_ctx_struct,
781    ) -> libc::c_int;
782    pub fn fmpz_mpoly_compression_do(
783        L: *mut fmpz_mpoly_struct,
784        Lctx: *const fmpz_mpoly_ctx_struct,
785        Acoeffs: *mut fmpz,
786        Alen: slong,
787        M: *mut mpoly_compression_struct,
788    );
789    pub fn fmpz_mpoly_compression_undo(
790        A: *mut fmpz_mpoly_struct,
791        Abits: flint_bitcnt_t,
792        Actx: *const fmpz_mpoly_ctx_struct,
793        L: *mut fmpz_mpoly_struct,
794        Lctx: *const fmpz_mpoly_ctx_struct,
795        M: *mut mpoly_compression_struct,
796    );
797}