Skip to main content

flint_sys/
qfb.rs

1/* automatically generated by rust-bindgen 0.70.1 */
2
3use crate::deps::*;
4use crate::flint::*;
5
6
7#[repr(C)]
8pub struct qfb {
9    pub a: fmpz_t,
10    pub b: fmpz_t,
11    pub c: fmpz_t,
12}
13#[allow(clippy::unnecessary_operation, clippy::identity_op)]
14const _: () = {
15    ["Size of qfb"][::std::mem::size_of::<qfb>() - 24usize];
16    ["Alignment of qfb"][::std::mem::align_of::<qfb>() - 8usize];
17    ["Offset of field: qfb::a"][::std::mem::offset_of!(qfb, a) - 0usize];
18    ["Offset of field: qfb::b"][::std::mem::offset_of!(qfb, b) - 8usize];
19    ["Offset of field: qfb::c"][::std::mem::offset_of!(qfb, c) - 16usize];
20};
21impl Default for qfb {
22    fn default() -> Self {
23        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
24        unsafe {
25            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
26            s.assume_init()
27        }
28    }
29}
30pub type qfb_t = [qfb; 1usize];
31#[repr(C)]
32pub struct qfb_hash_t {
33    pub q: qfb_t,
34    pub q2: qfb_t,
35    pub iter: slong,
36}
37#[allow(clippy::unnecessary_operation, clippy::identity_op)]
38const _: () = {
39    ["Size of qfb_hash_t"][::std::mem::size_of::<qfb_hash_t>() - 56usize];
40    ["Alignment of qfb_hash_t"][::std::mem::align_of::<qfb_hash_t>() - 8usize];
41    ["Offset of field: qfb_hash_t::q"][::std::mem::offset_of!(qfb_hash_t, q) - 0usize];
42    ["Offset of field: qfb_hash_t::q2"][::std::mem::offset_of!(qfb_hash_t, q2) - 24usize];
43    ["Offset of field: qfb_hash_t::iter"][::std::mem::offset_of!(qfb_hash_t, iter) - 48usize];
44};
45impl Default for qfb_hash_t {
46    fn default() -> Self {
47        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
48        unsafe {
49            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
50            s.assume_init()
51        }
52    }
53}
54extern "C" {
55    #[link_name = "qfb_init__extern"]
56    pub fn qfb_init(q: *mut qfb);
57    #[link_name = "qfb_clear__extern"]
58    pub fn qfb_clear(q: *mut qfb);
59    #[link_name = "qfb_equal__extern"]
60    pub fn qfb_equal(f: *mut qfb, g: *mut qfb) -> libc::c_int;
61    #[link_name = "qfb_set__extern"]
62    pub fn qfb_set(f: *mut qfb, g: *mut qfb);
63    #[link_name = "qfb_discriminant__extern"]
64    pub fn qfb_discriminant(D: *mut fmpz, f: *mut qfb);
65    pub fn qfb_print(q: *mut qfb);
66    #[link_name = "qfb_array_clear__extern"]
67    pub fn qfb_array_clear(forms: *mut *mut qfb, num: slong);
68    pub fn qfb_hash_init(depth: slong) -> *mut qfb_hash_t;
69    pub fn qfb_hash_clear(qhash: *mut qfb_hash_t, depth: slong);
70    pub fn qfb_hash_insert(
71        qhash: *mut qfb_hash_t,
72        q: *mut qfb,
73        q2: *mut qfb,
74        iter: slong,
75        depth: slong,
76    );
77    pub fn qfb_hash_find(qhash: *mut qfb_hash_t, q: *mut qfb, depth: slong) -> slong;
78    pub fn qfb_reduce(r: *mut qfb, f: *mut qfb, D: *mut fmpz);
79    pub fn qfb_is_reduced(r: *mut qfb) -> libc::c_int;
80    pub fn qfb_reduced_forms(forms: *mut *mut qfb, d: slong) -> slong;
81    pub fn qfb_reduced_forms_large(forms: *mut *mut qfb, d: slong) -> slong;
82    pub fn qfb_nucomp(r: *mut qfb, f: *const qfb, g: *const qfb, D: *mut fmpz, L: *mut fmpz);
83    pub fn qfb_nudupl(r: *mut qfb, f: *const qfb, D: *mut fmpz, L: *mut fmpz);
84    pub fn qfb_pow_ui(r: *mut qfb, f: *mut qfb, D: *mut fmpz, exp: ulong);
85    pub fn qfb_pow(r: *mut qfb, f: *mut qfb, D: *mut fmpz, exp: *mut fmpz);
86    pub fn qfb_pow_with_root(r: *mut qfb, f: *mut qfb, D: *mut fmpz, e: *mut fmpz, L: *mut fmpz);
87    #[link_name = "qfb_inverse__extern"]
88    pub fn qfb_inverse(r: *mut qfb, f: *mut qfb);
89    #[link_name = "qfb_is_principal_form__extern"]
90    pub fn qfb_is_principal_form(f: *mut qfb, D: *mut fmpz) -> libc::c_int;
91    #[link_name = "qfb_principal_form__extern"]
92    pub fn qfb_principal_form(f: *mut qfb, D: *mut fmpz);
93    #[link_name = "qfb_is_primitive__extern"]
94    pub fn qfb_is_primitive(f: *mut qfb) -> libc::c_int;
95    pub fn qfb_prime_form(r: *mut qfb, D: *mut fmpz, p: *mut fmpz);
96    pub fn qfb_exponent_element(
97        exponent: *mut fmpz,
98        f: *mut qfb,
99        n: *mut fmpz,
100        B1: ulong,
101        B2_sqrt: ulong,
102    ) -> libc::c_int;
103    pub fn qfb_exponent(
104        exponent: *mut fmpz,
105        n: *mut fmpz,
106        B1: ulong,
107        B2_sqrt: ulong,
108        c: slong,
109    ) -> libc::c_int;
110    pub fn qfb_exponent_grh(
111        exponent: *mut fmpz,
112        n: *mut fmpz,
113        B1: ulong,
114        B2_sqrt: ulong,
115    ) -> libc::c_int;
116}