Skip to main content

flint_sys/
nmod_poly_factor.rs

1/* automatically generated by rust-bindgen 0.70.1 */
2
3use crate::deps::*;
4use crate::flint::*;
5use crate::limb_types::*;
6use crate::nmod_types::*;
7
8
9#[repr(C)]
10pub struct nmod_poly_interval_poly_arg_t {
11    pub baby: *mut nmod_poly_struct,
12    pub res: *mut nmod_poly_struct,
13    pub H: *mut nmod_poly_struct,
14    pub v: *mut nmod_poly_struct,
15    pub vinv: *mut nmod_poly_struct,
16    pub tmp: nn_ptr,
17    pub m: slong,
18}
19#[allow(clippy::unnecessary_operation, clippy::identity_op)]
20const _: () = {
21    ["Size of nmod_poly_interval_poly_arg_t"]
22        [::std::mem::size_of::<nmod_poly_interval_poly_arg_t>() - 56usize];
23    ["Alignment of nmod_poly_interval_poly_arg_t"]
24        [::std::mem::align_of::<nmod_poly_interval_poly_arg_t>() - 8usize];
25    ["Offset of field: nmod_poly_interval_poly_arg_t::baby"]
26        [::std::mem::offset_of!(nmod_poly_interval_poly_arg_t, baby) - 0usize];
27    ["Offset of field: nmod_poly_interval_poly_arg_t::res"]
28        [::std::mem::offset_of!(nmod_poly_interval_poly_arg_t, res) - 8usize];
29    ["Offset of field: nmod_poly_interval_poly_arg_t::H"]
30        [::std::mem::offset_of!(nmod_poly_interval_poly_arg_t, H) - 16usize];
31    ["Offset of field: nmod_poly_interval_poly_arg_t::v"]
32        [::std::mem::offset_of!(nmod_poly_interval_poly_arg_t, v) - 24usize];
33    ["Offset of field: nmod_poly_interval_poly_arg_t::vinv"]
34        [::std::mem::offset_of!(nmod_poly_interval_poly_arg_t, vinv) - 32usize];
35    ["Offset of field: nmod_poly_interval_poly_arg_t::tmp"]
36        [::std::mem::offset_of!(nmod_poly_interval_poly_arg_t, tmp) - 40usize];
37    ["Offset of field: nmod_poly_interval_poly_arg_t::m"]
38        [::std::mem::offset_of!(nmod_poly_interval_poly_arg_t, m) - 48usize];
39};
40impl Default for nmod_poly_interval_poly_arg_t {
41    fn default() -> Self {
42        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
43        unsafe {
44            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
45            s.assume_init()
46        }
47    }
48}
49extern "C" {
50    pub fn nmod_poly_factor_init(fac: *mut nmod_poly_factor_struct);
51    pub fn nmod_poly_factor_clear(fac: *mut nmod_poly_factor_struct);
52    pub fn nmod_poly_factor_realloc(fac: *mut nmod_poly_factor_struct, alloc: slong);
53    pub fn nmod_poly_factor_fit_length(fac: *mut nmod_poly_factor_struct, len: slong);
54    pub fn nmod_poly_factor_set(
55        res: *mut nmod_poly_factor_struct,
56        fac: *const nmod_poly_factor_struct,
57    );
58    #[link_name = "nmod_poly_factor_swap__extern"]
59    pub fn nmod_poly_factor_swap(a: *mut nmod_poly_factor_struct, b: *mut nmod_poly_factor_struct);
60    pub fn nmod_poly_factor_get_poly(
61        a: *mut nmod_poly_struct,
62        b: *const nmod_poly_factor_struct,
63        i: slong,
64    );
65    pub fn nmod_poly_factor_insert(
66        fac: *mut nmod_poly_factor_struct,
67        poly: *const nmod_poly_struct,
68        exp: slong,
69    );
70    pub fn nmod_poly_factor_print(fac: *const nmod_poly_factor_struct);
71    pub fn nmod_poly_factor_print_pretty(
72        fac: *const nmod_poly_factor_struct,
73        var: *const libc::c_char,
74    );
75    pub fn nmod_poly_factor_concat(
76        res: *mut nmod_poly_factor_struct,
77        fac: *const nmod_poly_factor_struct,
78    );
79    pub fn nmod_poly_factor_pow(fac: *mut nmod_poly_factor_struct, exp: slong);
80    pub fn nmod_poly_factor_equal_deg(
81        factors: *mut nmod_poly_factor_struct,
82        pol: *const nmod_poly_struct,
83        d: slong,
84    );
85    pub fn nmod_poly_factor_equal_deg_prob(
86        factor: *mut nmod_poly_struct,
87        state: *mut flint_rand_struct,
88        pol: *const nmod_poly_struct,
89        d: slong,
90    ) -> libc::c_int;
91    pub fn nmod_poly_factor_distinct_deg(
92        res: *mut nmod_poly_factor_struct,
93        poly: *const nmod_poly_struct,
94        degs: *const *mut slong,
95    );
96    pub fn nmod_poly_factor_distinct_deg_threaded(
97        res: *mut nmod_poly_factor_struct,
98        poly: *const nmod_poly_struct,
99        degs: *const *mut slong,
100    );
101    pub fn nmod_poly_is_irreducible(f: *const nmod_poly_struct) -> libc::c_int;
102    pub fn nmod_poly_is_irreducible_rabin(f: *const nmod_poly_struct) -> libc::c_int;
103    pub fn nmod_poly_is_irreducible_ddf(f: *const nmod_poly_struct) -> libc::c_int;
104    pub fn _nmod_poly_is_squarefree(f: nn_srcptr, len: slong, mod_: nmod_t) -> libc::c_int;
105    pub fn nmod_poly_is_squarefree(f: *const nmod_poly_struct) -> libc::c_int;
106    pub fn nmod_poly_factor_cantor_zassenhaus(
107        res: *mut nmod_poly_factor_struct,
108        f: *const nmod_poly_struct,
109    );
110    pub fn nmod_poly_factor_berlekamp(
111        factors: *mut nmod_poly_factor_struct,
112        f: *const nmod_poly_struct,
113    );
114    pub fn nmod_poly_factor_kaltofen_shoup(
115        res: *mut nmod_poly_factor_struct,
116        poly: *const nmod_poly_struct,
117    );
118    pub fn nmod_poly_factor_squarefree(
119        res: *mut nmod_poly_factor_struct,
120        f: *const nmod_poly_struct,
121    );
122    pub fn nmod_poly_factor_with_berlekamp(
123        result: *mut nmod_poly_factor_struct,
124        input: *const nmod_poly_struct,
125    ) -> ulong;
126    pub fn nmod_poly_factor_with_cantor_zassenhaus(
127        result: *mut nmod_poly_factor_struct,
128        input: *const nmod_poly_struct,
129    ) -> ulong;
130    pub fn nmod_poly_factor_with_kaltofen_shoup(
131        result: *mut nmod_poly_factor_struct,
132        input: *const nmod_poly_struct,
133    ) -> ulong;
134    pub fn nmod_poly_factor(
135        result: *mut nmod_poly_factor_struct,
136        input: *const nmod_poly_struct,
137    ) -> ulong;
138    pub fn _nmod_poly_interval_poly_worker(arg_ptr: *mut libc::c_void);
139    pub fn nmod_poly_roots(
140        r: *mut nmod_poly_factor_struct,
141        f: *const nmod_poly_struct,
142        with_multiplicity: libc::c_int,
143    );
144    pub fn nmod_poly_roots_factored(
145        r: *mut nmod_poly_factor_struct,
146        f: *const nmod_poly_struct,
147        with_multiplicity: libc::c_int,
148        n: *const n_factor_t,
149    ) -> libc::c_int;
150}