flint_sys/
fq_default_poly_factor.rs1use 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}