Skip to main content

flint_sys/
nf_elem.rs

1/* automatically generated by rust-bindgen 0.70.1 */
2
3use crate::deps::*;
4use crate::flint::*;
5use crate::fmpq_types::*;
6use crate::fmpz_mod_types::*;
7use crate::fmpz_types::*;
8use crate::nf::*;
9use crate::nmod_types::*;
10
11
12#[repr(C)]
13pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>);
14impl<T> __BindgenUnionField<T> {
15    #[inline]
16    pub const fn new() -> Self {
17        __BindgenUnionField(::std::marker::PhantomData)
18    }
19    #[inline]
20    pub unsafe fn as_ref(&self) -> &T {
21        ::std::mem::transmute(self)
22    }
23    #[inline]
24    pub unsafe fn as_mut(&mut self) -> &mut T {
25        ::std::mem::transmute(self)
26    }
27}
28impl<T> ::std::default::Default for __BindgenUnionField<T> {
29    #[inline]
30    fn default() -> Self {
31        Self::new()
32    }
33}
34impl<T> ::std::clone::Clone for __BindgenUnionField<T> {
35    #[inline]
36    fn clone(&self) -> Self {
37        *self
38    }
39}
40impl<T> ::std::marker::Copy for __BindgenUnionField<T> {}
41impl<T> ::std::fmt::Debug for __BindgenUnionField<T> {
42    fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
43        fmt.write_str("__BindgenUnionField")
44    }
45}
46impl<T> ::std::hash::Hash for __BindgenUnionField<T> {
47    fn hash<H: ::std::hash::Hasher>(&self, _state: &mut H) {}
48}
49impl<T> ::std::cmp::PartialEq for __BindgenUnionField<T> {
50    fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
51        true
52    }
53}
54impl<T> ::std::cmp::Eq for __BindgenUnionField<T> {}
55#[repr(C)]
56pub struct lnf_elem_struct {
57    pub num: fmpz_t,
58    pub den: fmpz_t,
59}
60#[allow(clippy::unnecessary_operation, clippy::identity_op)]
61const _: () = {
62    ["Size of lnf_elem_struct"][::std::mem::size_of::<lnf_elem_struct>() - 16usize];
63    ["Alignment of lnf_elem_struct"][::std::mem::align_of::<lnf_elem_struct>() - 8usize];
64    ["Offset of field: lnf_elem_struct::num"]
65        [::std::mem::offset_of!(lnf_elem_struct, num) - 0usize];
66    ["Offset of field: lnf_elem_struct::den"]
67        [::std::mem::offset_of!(lnf_elem_struct, den) - 8usize];
68};
69impl Default for lnf_elem_struct {
70    fn default() -> Self {
71        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
72        unsafe {
73            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
74            s.assume_init()
75        }
76    }
77}
78pub type lnf_elem_t = [lnf_elem_struct; 1usize];
79#[repr(C)]
80pub struct qnf_elem_struct {
81    pub num: [fmpz; 3usize],
82    pub den: fmpz_t,
83}
84#[allow(clippy::unnecessary_operation, clippy::identity_op)]
85const _: () = {
86    ["Size of qnf_elem_struct"][::std::mem::size_of::<qnf_elem_struct>() - 32usize];
87    ["Alignment of qnf_elem_struct"][::std::mem::align_of::<qnf_elem_struct>() - 8usize];
88    ["Offset of field: qnf_elem_struct::num"]
89        [::std::mem::offset_of!(qnf_elem_struct, num) - 0usize];
90    ["Offset of field: qnf_elem_struct::den"]
91        [::std::mem::offset_of!(qnf_elem_struct, den) - 24usize];
92};
93impl Default for qnf_elem_struct {
94    fn default() -> Self {
95        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
96        unsafe {
97            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
98            s.assume_init()
99        }
100    }
101}
102pub type qnf_elem_t = [qnf_elem_struct; 1usize];
103#[repr(C)]
104pub struct nf_elem_struct {
105    pub elem: __BindgenUnionField<fmpq_poly_t>,
106    pub lelem: __BindgenUnionField<lnf_elem_t>,
107    pub qelem: __BindgenUnionField<qnf_elem_t>,
108    pub bindgen_union_field: [u64; 4usize],
109}
110#[allow(clippy::unnecessary_operation, clippy::identity_op)]
111const _: () = {
112    ["Size of nf_elem_struct"][::std::mem::size_of::<nf_elem_struct>() - 32usize];
113    ["Alignment of nf_elem_struct"][::std::mem::align_of::<nf_elem_struct>() - 8usize];
114    ["Offset of field: nf_elem_struct::elem"]
115        [::std::mem::offset_of!(nf_elem_struct, elem) - 0usize];
116    ["Offset of field: nf_elem_struct::lelem"]
117        [::std::mem::offset_of!(nf_elem_struct, lelem) - 0usize];
118    ["Offset of field: nf_elem_struct::qelem"]
119        [::std::mem::offset_of!(nf_elem_struct, qelem) - 0usize];
120};
121impl Default for nf_elem_struct {
122    fn default() -> Self {
123        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
124        unsafe {
125            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
126            s.assume_init()
127        }
128    }
129}
130pub type nf_elem_t = [nf_elem_struct; 1usize];
131extern "C" {
132    pub fn nf_elem_init(a: *mut nf_elem_struct, nf: *const nf_struct);
133    pub fn nf_elem_clear(a: *mut nf_elem_struct, nf: *const nf_struct);
134    pub fn nf_elem_swap(a: *mut nf_elem_struct, b: *mut nf_elem_struct, nf: *const nf_struct);
135    pub fn nf_elem_randtest(
136        a: *mut nf_elem_struct,
137        state: *mut flint_rand_struct,
138        bits: flint_bitcnt_t,
139        nf: *const nf_struct,
140    );
141    pub fn nf_elem_randtest_not_zero(
142        a: *mut nf_elem_struct,
143        state: *mut flint_rand_struct,
144        bits: flint_bitcnt_t,
145        nf: *const nf_struct,
146    );
147    #[link_name = "nf_elem_canonicalise__extern"]
148    pub fn nf_elem_canonicalise(a: *mut nf_elem_struct, nf: *const nf_struct);
149    pub fn _nf_elem_reduce(a: *mut nf_elem_struct, nf: *const nf_struct);
150    pub fn nf_elem_reduce(a: *mut nf_elem_struct, nf: *const nf_struct);
151    pub fn _nf_elem_invertible_check(a: *mut nf_elem_struct, nf: *const nf_struct) -> libc::c_int;
152    pub fn _nf_elem_equal(
153        a: *const nf_elem_struct,
154        b: *const nf_elem_struct,
155        nf: *const nf_struct,
156    ) -> libc::c_int;
157    pub fn nf_elem_equal(
158        a: *const nf_elem_struct,
159        b: *const nf_elem_struct,
160        nf: *const nf_struct,
161    ) -> libc::c_int;
162    #[link_name = "nf_elem_is_zero__extern"]
163    pub fn nf_elem_is_zero(a: *const nf_elem_struct, nf: *const nf_struct) -> libc::c_int;
164    #[link_name = "nf_elem_is_one__extern"]
165    pub fn nf_elem_is_one(a: *const nf_elem_struct, nf: *const nf_struct) -> libc::c_int;
166    pub fn nf_elem_is_gen(a: *const nf_elem_struct, nf: *const nf_struct) -> libc::c_int;
167    #[link_name = "nf_elem_is_integer__extern"]
168    pub fn nf_elem_is_integer(a: *const nf_elem_struct, nf: *const nf_struct) -> libc::c_int;
169    #[link_name = "nf_elem_is_rational__extern"]
170    pub fn nf_elem_is_rational(a: *const nf_elem_struct, nf: *const nf_struct) -> libc::c_int;
171    pub fn nf_elem_equal_si(
172        a: *const nf_elem_struct,
173        b: slong,
174        nf: *const nf_struct,
175    ) -> libc::c_int;
176    pub fn nf_elem_equal_ui(
177        a: *const nf_elem_struct,
178        b: ulong,
179        nf: *const nf_struct,
180    ) -> libc::c_int;
181    pub fn nf_elem_equal_fmpz(
182        a: *const nf_elem_struct,
183        b: *const fmpz,
184        nf: *const nf_struct,
185    ) -> libc::c_int;
186    pub fn nf_elem_equal_fmpq(
187        a: *const nf_elem_struct,
188        b: *const fmpq,
189        nf: *const nf_struct,
190    ) -> libc::c_int;
191    pub fn nf_elem_print_pretty(
192        a: *const nf_elem_struct,
193        nf: *const nf_struct,
194        var: *const libc::c_char,
195    );
196    pub fn nf_elem_get_str_pretty(
197        a: *const nf_elem_struct,
198        var: *const libc::c_char,
199        nf: *const nf_struct,
200    ) -> *mut libc::c_char;
201    pub fn nf_elem_zero(a: *mut nf_elem_struct, nf: *const nf_struct);
202    pub fn nf_elem_one(a: *mut nf_elem_struct, nf: *const nf_struct);
203    pub fn nf_elem_gen(a: *mut nf_elem_struct, nf: *const nf_struct);
204    pub fn nf_elem_set(a: *mut nf_elem_struct, b: *const nf_elem_struct, nf: *const nf_struct);
205    pub fn nf_elem_set_si(a: *mut nf_elem_struct, c: slong, nf: *const nf_struct);
206    pub fn nf_elem_set_ui(a: *mut nf_elem_struct, c: ulong, nf: *const nf_struct);
207    pub fn nf_elem_set_fmpz(a: *mut nf_elem_struct, c: *const fmpz, nf: *const nf_struct);
208    pub fn nf_elem_set_fmpq(a: *mut nf_elem_struct, c: *const fmpq, nf: *const nf_struct);
209    pub fn nf_elem_set_fmpq_poly(
210        a: *mut nf_elem_struct,
211        pol: *const fmpq_poly_struct,
212        nf: *const nf_struct,
213    );
214    pub fn nf_elem_set_fmpz_mat_row(
215        b: *mut nf_elem_struct,
216        M: *const fmpz_mat_struct,
217        i: slong,
218        den: *mut fmpz,
219        nf: *const nf_struct,
220    );
221    pub fn nf_elem_get_fmpz_mat_row(
222        M: *mut fmpz_mat_struct,
223        i: slong,
224        den: *mut fmpz,
225        b: *const nf_elem_struct,
226        nf: *const nf_struct,
227    );
228    pub fn nf_elem_get_fmpq_poly(
229        pol: *mut fmpq_poly_struct,
230        a: *const nf_elem_struct,
231        nf: *const nf_struct,
232    );
233    pub fn nf_elem_get_nmod_poly_den(
234        pol: *mut nmod_poly_struct,
235        a: *const nf_elem_struct,
236        nf: *const nf_struct,
237        den: libc::c_int,
238    );
239    pub fn _nf_elem_get_nmod_poly(
240        pol: *mut nmod_poly_struct,
241        a: *const nf_elem_struct,
242        nf: *const nf_struct,
243    );
244    pub fn nf_elem_get_nmod_poly(
245        pol: *mut nmod_poly_struct,
246        a: *const nf_elem_struct,
247        nf: *const nf_struct,
248    );
249    pub fn nf_elem_get_fmpz_mod_poly_den(
250        pol: *mut fmpz_mod_poly_struct,
251        a: *const nf_elem_struct,
252        nf: *const nf_struct,
253        den: libc::c_int,
254        ctx: *const fmpz_mod_ctx_struct,
255    );
256    pub fn _nf_elem_get_fmpz_mod_poly(
257        pol: *mut fmpz_mod_poly_struct,
258        a: *const nf_elem_struct,
259        nf: *const nf_struct,
260        ctx: *const fmpz_mod_ctx_struct,
261    );
262    pub fn nf_elem_get_fmpz_mod_poly(
263        pol: *mut fmpz_mod_poly_struct,
264        a: *const nf_elem_struct,
265        nf: *const nf_struct,
266        ctx: *const fmpz_mod_ctx_struct,
267    );
268    #[link_name = "nf_elem_get_den__extern"]
269    pub fn nf_elem_get_den(d: *mut fmpz, b: *const nf_elem_struct, nf: *const nf_struct);
270    #[link_name = "nf_elem_set_den__extern"]
271    pub fn nf_elem_set_den(b: *mut nf_elem_struct, d: *mut fmpz, nf: *const nf_struct);
272    pub fn nf_elem_get_coeff_fmpq(
273        a: *mut fmpq,
274        b: *const nf_elem_struct,
275        i: slong,
276        nf: *const nf_struct,
277    );
278    pub fn nf_elem_get_coeff_fmpz(
279        a: *mut fmpz,
280        b: *const nf_elem_struct,
281        i: slong,
282        nf: *const nf_struct,
283    );
284    #[link_name = "nf_elem_den_is_one__extern"]
285    pub fn nf_elem_den_is_one(a: *const nf_elem_struct, nf: *const nf_struct) -> libc::c_int;
286    pub fn _nf_elem_set_coeff_num_fmpz(
287        a: *mut nf_elem_struct,
288        i: slong,
289        b: *const fmpz,
290        nf: *const nf_struct,
291    );
292    pub fn nf_elem_neg(a: *mut nf_elem_struct, b: *const nf_elem_struct, nf: *const nf_struct);
293    pub fn nf_elem_add_si(
294        a: *mut nf_elem_struct,
295        b: *const nf_elem_struct,
296        c: slong,
297        nf: *const nf_struct,
298    );
299    pub fn nf_elem_add_fmpz(
300        a: *mut nf_elem_struct,
301        b: *const nf_elem_struct,
302        c: *const fmpz,
303        nf: *const nf_struct,
304    );
305    pub fn nf_elem_add_fmpq(
306        a: *mut nf_elem_struct,
307        b: *const nf_elem_struct,
308        c: *const fmpq,
309        nf: *const nf_struct,
310    );
311    pub fn nf_elem_sub_si(
312        a: *mut nf_elem_struct,
313        b: *const nf_elem_struct,
314        c: slong,
315        nf: *const nf_struct,
316    );
317    pub fn nf_elem_sub_fmpz(
318        a: *mut nf_elem_struct,
319        b: *const nf_elem_struct,
320        c: *const fmpz,
321        nf: *const nf_struct,
322    );
323    pub fn nf_elem_sub_fmpq(
324        a: *mut nf_elem_struct,
325        b: *const nf_elem_struct,
326        c: *const fmpq,
327        nf: *const nf_struct,
328    );
329    pub fn nf_elem_si_sub(
330        a: *mut nf_elem_struct,
331        c: slong,
332        b: *const nf_elem_struct,
333        nf: *const nf_struct,
334    );
335    pub fn nf_elem_fmpz_sub(
336        a: *mut nf_elem_struct,
337        c: *const fmpz,
338        b: *const nf_elem_struct,
339        nf: *const nf_struct,
340    );
341    pub fn nf_elem_fmpq_sub(
342        a: *mut nf_elem_struct,
343        c: *const fmpq,
344        b: *const nf_elem_struct,
345        nf: *const nf_struct,
346    );
347    pub fn nf_elem_scalar_mul_si(
348        a: *mut nf_elem_struct,
349        b: *const nf_elem_struct,
350        c: slong,
351        nf: *const nf_struct,
352    );
353    pub fn nf_elem_scalar_mul_fmpz(
354        a: *mut nf_elem_struct,
355        b: *const nf_elem_struct,
356        c: *const fmpz,
357        nf: *const nf_struct,
358    );
359    pub fn nf_elem_scalar_mul_fmpq(
360        a: *mut nf_elem_struct,
361        b: *const nf_elem_struct,
362        c: *const fmpq,
363        nf: *const nf_struct,
364    );
365    pub fn nf_elem_scalar_div_si(
366        a: *mut nf_elem_struct,
367        b: *const nf_elem_struct,
368        c: slong,
369        nf: *const nf_struct,
370    );
371    pub fn nf_elem_scalar_div_fmpz(
372        a: *mut nf_elem_struct,
373        b: *const nf_elem_struct,
374        c: *const fmpz,
375        nf: *const nf_struct,
376    );
377    pub fn nf_elem_scalar_div_fmpq(
378        a: *mut nf_elem_struct,
379        b: *const nf_elem_struct,
380        c: *const fmpq,
381        nf: *const nf_struct,
382    );
383    pub fn _nf_elem_add_lf(
384        a: *mut nf_elem_struct,
385        b: *const nf_elem_struct,
386        c: *const nf_elem_struct,
387        nf: *const nf_struct,
388        can: libc::c_int,
389    );
390    pub fn _nf_elem_sub_lf(
391        a: *mut nf_elem_struct,
392        b: *const nf_elem_struct,
393        c: *const nf_elem_struct,
394        nf: *const nf_struct,
395        can: libc::c_int,
396    );
397    pub fn _nf_elem_add_qf(
398        a: *mut nf_elem_struct,
399        b: *const nf_elem_struct,
400        c: *const nf_elem_struct,
401        nf: *const nf_struct,
402        can: libc::c_int,
403    );
404    pub fn nf_elem_add_qf(
405        a: *mut nf_elem_struct,
406        b: *const nf_elem_struct,
407        c: *const nf_elem_struct,
408        nf: *const nf_struct,
409    );
410    pub fn _nf_elem_sub_qf(
411        a: *mut nf_elem_struct,
412        b: *const nf_elem_struct,
413        c: *const nf_elem_struct,
414        nf: *const nf_struct,
415        can: libc::c_int,
416    );
417    pub fn nf_elem_sub_qf(
418        a: *mut nf_elem_struct,
419        b: *const nf_elem_struct,
420        c: *const nf_elem_struct,
421        nf: *const nf_struct,
422    );
423    pub fn _nf_elem_add(
424        a: *mut nf_elem_struct,
425        b: *const nf_elem_struct,
426        c: *const nf_elem_struct,
427        nf: *const nf_struct,
428    );
429    pub fn nf_elem_add(
430        a: *mut nf_elem_struct,
431        b: *const nf_elem_struct,
432        c: *const nf_elem_struct,
433        nf: *const nf_struct,
434    );
435    pub fn _nf_elem_sub(
436        a: *mut nf_elem_struct,
437        b: *const nf_elem_struct,
438        c: *const nf_elem_struct,
439        nf: *const nf_struct,
440    );
441    pub fn nf_elem_sub(
442        a: *mut nf_elem_struct,
443        b: *const nf_elem_struct,
444        c: *const nf_elem_struct,
445        nf: *const nf_struct,
446    );
447    pub fn nf_elem_mul_gen(a: *mut nf_elem_struct, b: *const nf_elem_struct, nf: *const nf_struct);
448    pub fn _nf_elem_mul(
449        a: *mut nf_elem_struct,
450        b: *const nf_elem_struct,
451        c: *const nf_elem_struct,
452        nf: *const nf_struct,
453    );
454    pub fn nf_elem_mul(
455        a: *mut nf_elem_struct,
456        b: *const nf_elem_struct,
457        c: *const nf_elem_struct,
458        nf: *const nf_struct,
459    );
460    pub fn _nf_elem_mul_red(
461        a: *mut nf_elem_struct,
462        b: *const nf_elem_struct,
463        c: *const nf_elem_struct,
464        nf: *const nf_struct,
465        red: libc::c_int,
466    );
467    pub fn nf_elem_mul_red(
468        a: *mut nf_elem_struct,
469        b: *const nf_elem_struct,
470        c: *const nf_elem_struct,
471        nf: *const nf_struct,
472        red: libc::c_int,
473    );
474    pub fn _nf_elem_inv(a: *mut nf_elem_struct, b: *const nf_elem_struct, nf: *const nf_struct);
475    pub fn nf_elem_inv(a: *mut nf_elem_struct, b: *const nf_elem_struct, nf: *const nf_struct);
476    pub fn _nf_elem_div(
477        a: *mut nf_elem_struct,
478        b: *const nf_elem_struct,
479        c: *const nf_elem_struct,
480        nf: *const nf_struct,
481    );
482    pub fn nf_elem_div(
483        a: *mut nf_elem_struct,
484        b: *const nf_elem_struct,
485        c: *const nf_elem_struct,
486        nf: *const nf_struct,
487    );
488    pub fn _nf_elem_pow(
489        res: *mut nf_elem_struct,
490        b: *const nf_elem_struct,
491        e: ulong,
492        nf: *const nf_struct,
493    );
494    pub fn nf_elem_pow(
495        res: *mut nf_elem_struct,
496        a: *const nf_elem_struct,
497        e: ulong,
498        nf: *const nf_struct,
499    );
500    pub fn _nf_elem_norm(
501        rnum: *mut fmpz,
502        rden: *mut fmpz,
503        a: *const nf_elem_struct,
504        nf: *const nf_struct,
505    );
506    pub fn nf_elem_norm(res: *mut fmpq, a: *const nf_elem_struct, nf: *const nf_struct);
507    pub fn _nf_elem_norm_div(
508        rnum: *mut fmpz,
509        rden: *mut fmpz,
510        a: *const nf_elem_struct,
511        nf: *const nf_struct,
512        divisor: *const fmpz,
513        nbits: slong,
514    );
515    pub fn nf_elem_norm_div(
516        res: *mut fmpq,
517        a: *const nf_elem_struct,
518        nf: *const nf_struct,
519        divisor: *const fmpz,
520        nbits: slong,
521    );
522    pub fn _nf_elem_trace(
523        rnum: *mut fmpz,
524        rden: *mut fmpz,
525        a: *const nf_elem_struct,
526        nf: *const nf_struct,
527    );
528    pub fn nf_elem_trace(res: *mut fmpq, a: *const nf_elem_struct, nf: *const nf_struct);
529    pub fn nf_elem_rep_mat(
530        res: *mut fmpq_mat_struct,
531        a: *const nf_elem_struct,
532        nf: *const nf_struct,
533    );
534    pub fn nf_elem_rep_mat_fmpz_mat_den(
535        res: *mut fmpz_mat_struct,
536        den: *mut fmpz,
537        a: *const nf_elem_struct,
538        nf: *const nf_struct,
539    );
540    pub fn nf_elem_mod_fmpz_den(
541        res: *mut nf_elem_struct,
542        a: *const nf_elem_struct,
543        mod_: *const fmpz,
544        nf: *const nf_struct,
545        den: libc::c_int,
546    );
547    pub fn _nf_elem_mod_fmpz(
548        res: *mut nf_elem_struct,
549        a: *const nf_elem_struct,
550        mod_: *const fmpz,
551        nf: *const nf_struct,
552        sign: libc::c_int,
553    );
554    pub fn nf_elem_mod_fmpz(
555        res: *mut nf_elem_struct,
556        a: *const nf_elem_struct,
557        mod_: *const fmpz,
558        nf: *const nf_struct,
559    );
560    pub fn nf_elem_smod_fmpz_den(
561        res: *mut nf_elem_struct,
562        a: *const nf_elem_struct,
563        mod_: *const fmpz,
564        nf: *const nf_struct,
565        den: libc::c_int,
566    );
567    pub fn nf_elem_smod_fmpz(
568        res: *mut nf_elem_struct,
569        a: *const nf_elem_struct,
570        mod_: *const fmpz,
571        nf: *const nf_struct,
572    );
573    pub fn nf_elem_coprime_den(
574        res: *mut nf_elem_struct,
575        a: *const nf_elem_struct,
576        mod_: *const fmpz,
577        nf: *const nf_struct,
578    );
579    pub fn nf_elem_coprime_den_signed(
580        res: *mut nf_elem_struct,
581        a: *const nf_elem_struct,
582        mod_: *const fmpz,
583        nf: *const nf_struct,
584    );
585}