Skip to main content

flint_sys/
fq_default_poly_factor.rs

1/* automatically generated by rust-bindgen 0.70.1 */
2
3use crate::deps::*;
4use crate::fmpz_mod_types::*;
5use crate::fq_default::*;
6use crate::fq_default_poly::*;
7use crate::fq_nmod_types::*;
8use crate::fq_types::*;
9use crate::fq_zech_types::*;
10use crate::nmod_types::*;
11
12
13#[repr(C)]
14pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>);
15impl<T> __BindgenUnionField<T> {
16    #[inline]
17    pub const fn new() -> Self {
18        __BindgenUnionField(::std::marker::PhantomData)
19    }
20    #[inline]
21    pub unsafe fn as_ref(&self) -> &T {
22        ::std::mem::transmute(self)
23    }
24    #[inline]
25    pub unsafe fn as_mut(&mut self) -> &mut T {
26        ::std::mem::transmute(self)
27    }
28}
29impl<T> ::std::default::Default for __BindgenUnionField<T> {
30    #[inline]
31    fn default() -> Self {
32        Self::new()
33    }
34}
35impl<T> ::std::clone::Clone for __BindgenUnionField<T> {
36    #[inline]
37    fn clone(&self) -> Self {
38        *self
39    }
40}
41impl<T> ::std::marker::Copy for __BindgenUnionField<T> {}
42impl<T> ::std::fmt::Debug for __BindgenUnionField<T> {
43    fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
44        fmt.write_str("__BindgenUnionField")
45    }
46}
47impl<T> ::std::hash::Hash for __BindgenUnionField<T> {
48    fn hash<H: ::std::hash::Hasher>(&self, _state: &mut H) {}
49}
50impl<T> ::std::cmp::PartialEq for __BindgenUnionField<T> {
51    fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
52        true
53    }
54}
55impl<T> ::std::cmp::Eq for __BindgenUnionField<T> {}
56#[repr(C)]
57pub struct fq_default_poly_factor_struct {
58    pub fq: __BindgenUnionField<fq_poly_factor_t>,
59    pub fq_nmod: __BindgenUnionField<fq_nmod_poly_factor_t>,
60    pub fq_zech: __BindgenUnionField<fq_zech_poly_factor_t>,
61    pub nmod: __BindgenUnionField<nmod_poly_factor_t>,
62    pub fmpz_mod: __BindgenUnionField<fmpz_mod_poly_factor_t>,
63    pub bindgen_union_field: [u64; 4usize],
64}
65#[allow(clippy::unnecessary_operation, clippy::identity_op)]
66const _: () = {
67    ["Size of fq_default_poly_factor_struct"]
68        [::std::mem::size_of::<fq_default_poly_factor_struct>() - 32usize];
69    ["Alignment of fq_default_poly_factor_struct"]
70        [::std::mem::align_of::<fq_default_poly_factor_struct>() - 8usize];
71    ["Offset of field: fq_default_poly_factor_struct::fq"]
72        [::std::mem::offset_of!(fq_default_poly_factor_struct, fq) - 0usize];
73    ["Offset of field: fq_default_poly_factor_struct::fq_nmod"]
74        [::std::mem::offset_of!(fq_default_poly_factor_struct, fq_nmod) - 0usize];
75    ["Offset of field: fq_default_poly_factor_struct::fq_zech"]
76        [::std::mem::offset_of!(fq_default_poly_factor_struct, fq_zech) - 0usize];
77    ["Offset of field: fq_default_poly_factor_struct::nmod"]
78        [::std::mem::offset_of!(fq_default_poly_factor_struct, nmod) - 0usize];
79    ["Offset of field: fq_default_poly_factor_struct::fmpz_mod"]
80        [::std::mem::offset_of!(fq_default_poly_factor_struct, fmpz_mod) - 0usize];
81};
82impl Default for fq_default_poly_factor_struct {
83    fn default() -> Self {
84        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
85        unsafe {
86            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
87            s.assume_init()
88        }
89    }
90}
91pub type fq_default_poly_factor_t = [fq_default_poly_factor_struct; 1usize];
92extern "C" {
93    #[link_name = "fq_default_poly_factor_init__extern"]
94    pub fn fq_default_poly_factor_init(
95        fac: *mut fq_default_poly_factor_struct,
96        ctx: *const fq_default_ctx_struct,
97    );
98    #[link_name = "fq_default_poly_factor_clear__extern"]
99    pub fn fq_default_poly_factor_clear(
100        fac: *mut fq_default_poly_factor_struct,
101        ctx: *const fq_default_ctx_struct,
102    );
103    #[link_name = "fq_default_poly_factor_realloc__extern"]
104    pub fn fq_default_poly_factor_realloc(
105        fac: *mut fq_default_poly_factor_struct,
106        alloc: slong,
107        ctx: *const fq_default_ctx_struct,
108    );
109    #[link_name = "fq_default_poly_factor_fit_length__extern"]
110    pub fn fq_default_poly_factor_fit_length(
111        fac: *mut fq_default_poly_factor_struct,
112        len: slong,
113        ctx: *const fq_default_ctx_struct,
114    );
115    #[link_name = "fq_default_poly_factor_length__extern"]
116    pub fn fq_default_poly_factor_length(
117        fac: *mut fq_default_poly_factor_struct,
118        ctx: *const fq_default_ctx_struct,
119    ) -> slong;
120    #[link_name = "fq_default_poly_factor_exp__extern"]
121    pub fn fq_default_poly_factor_exp(
122        fac: *mut fq_default_poly_factor_struct,
123        i: slong,
124        ctx: *const fq_default_ctx_struct,
125    ) -> slong;
126    #[link_name = "fq_default_poly_factor_set__extern"]
127    pub fn fq_default_poly_factor_set(
128        res: *mut fq_default_poly_factor_struct,
129        fac: *const fq_default_poly_factor_struct,
130        ctx: *const fq_default_ctx_struct,
131    );
132    #[link_name = "fq_default_poly_factor_insert__extern"]
133    pub fn fq_default_poly_factor_insert(
134        fac: *mut fq_default_poly_factor_struct,
135        poly: *const fq_default_poly_struct,
136        exp: slong,
137        ctx: *const fq_default_ctx_struct,
138    );
139    #[link_name = "fq_default_poly_factor_get_poly__extern"]
140    pub fn fq_default_poly_factor_get_poly(
141        poly: *mut fq_default_poly_struct,
142        fac: *const fq_default_poly_factor_struct,
143        i: slong,
144        ctx: *const fq_default_ctx_struct,
145    );
146    #[link_name = "fq_default_poly_factor_print__extern"]
147    pub fn fq_default_poly_factor_print(
148        fac: *const fq_default_poly_factor_struct,
149        ctx: *const fq_default_ctx_struct,
150    );
151    #[link_name = "fq_default_poly_factor_print_pretty__extern"]
152    pub fn fq_default_poly_factor_print_pretty(
153        fac: *const fq_default_poly_factor_struct,
154        var: *const libc::c_char,
155        ctx: *const fq_default_ctx_struct,
156    );
157    #[link_name = "fq_default_poly_factor_concat__extern"]
158    pub fn fq_default_poly_factor_concat(
159        res: *mut fq_default_poly_factor_struct,
160        fac: *const fq_default_poly_factor_struct,
161        ctx: *const fq_default_ctx_struct,
162    );
163    #[link_name = "fq_default_poly_factor_pow__extern"]
164    pub fn fq_default_poly_factor_pow(
165        fac: *mut fq_default_poly_factor_struct,
166        exp: slong,
167        ctx: *const fq_default_ctx_struct,
168    );
169    #[link_name = "fq_default_poly_is_squarefree__extern"]
170    pub fn fq_default_poly_is_squarefree(
171        f: *const fq_default_poly_struct,
172        ctx: *const fq_default_ctx_struct,
173    ) -> libc::c_int;
174    #[link_name = "fq_default_poly_factor_squarefree__extern"]
175    pub fn fq_default_poly_factor_squarefree(
176        res: *mut fq_default_poly_factor_struct,
177        f: *const fq_default_poly_struct,
178        ctx: *const fq_default_ctx_struct,
179    );
180    #[link_name = "fq_default_poly_is_irreducible__extern"]
181    pub fn fq_default_poly_is_irreducible(
182        f: *const fq_default_poly_struct,
183        ctx: *const fq_default_ctx_struct,
184    ) -> libc::c_int;
185    #[link_name = "fq_default_poly_factor_distinct_deg__extern"]
186    pub fn fq_default_poly_factor_distinct_deg(
187        res: *mut fq_default_poly_factor_struct,
188        poly: *const fq_default_poly_struct,
189        degs: *const *mut slong,
190        ctx: *const fq_default_ctx_struct,
191    );
192    #[link_name = "fq_default_poly_factor_equal_deg__extern"]
193    pub fn fq_default_poly_factor_equal_deg(
194        factors: *mut fq_default_poly_factor_struct,
195        pol: *const fq_default_poly_struct,
196        d: slong,
197        ctx: *const fq_default_ctx_struct,
198    );
199    #[link_name = "fq_default_poly_factor__extern"]
200    pub fn fq_default_poly_factor(
201        result: *mut fq_default_poly_factor_struct,
202        leading_coeff: *mut fq_default_struct,
203        input: *const fq_default_poly_struct,
204        ctx: *const fq_default_ctx_struct,
205    );
206    #[link_name = "fq_default_poly_factor_split_single__extern"]
207    pub fn fq_default_poly_factor_split_single(
208        linfactor: *mut fq_default_poly_struct,
209        input: *const fq_default_poly_struct,
210        ctx: *const fq_default_ctx_struct,
211    );
212    #[link_name = "fq_default_poly_roots__extern"]
213    pub fn fq_default_poly_roots(
214        r: *mut fq_default_poly_factor_struct,
215        f: *const fq_default_poly_struct,
216        with_multiplicity: libc::c_int,
217        ctx: *const fq_default_ctx_struct,
218    );
219}