Skip to main content

flint_sys/
fmpz_factor.rs

1/* automatically generated by rust-bindgen 0.70.1 */
2
3use libc::*;
4use crate::deps::*;
5use crate::flint::*;
6use crate::fmpz_types::*;
7
8
9#[repr(C)]
10pub struct ecm_s {
11    pub t: nn_ptr,
12    pub u: nn_ptr,
13    pub v: nn_ptr,
14    pub w: nn_ptr,
15    pub x: nn_ptr,
16    pub z: nn_ptr,
17    pub a24: nn_ptr,
18    pub ninv: nn_ptr,
19    pub one: nn_ptr,
20    pub GCD_table: *mut libc::c_uchar,
21    pub prime_table: *mut *mut libc::c_uchar,
22    pub n_size: ulong,
23    pub normbits: ulong,
24}
25#[allow(clippy::unnecessary_operation, clippy::identity_op)]
26const _: () = {
27    ["Size of ecm_s"][::std::mem::size_of::<ecm_s>() - 104usize];
28    ["Alignment of ecm_s"][::std::mem::align_of::<ecm_s>() - 8usize];
29    ["Offset of field: ecm_s::t"][::std::mem::offset_of!(ecm_s, t) - 0usize];
30    ["Offset of field: ecm_s::u"][::std::mem::offset_of!(ecm_s, u) - 8usize];
31    ["Offset of field: ecm_s::v"][::std::mem::offset_of!(ecm_s, v) - 16usize];
32    ["Offset of field: ecm_s::w"][::std::mem::offset_of!(ecm_s, w) - 24usize];
33    ["Offset of field: ecm_s::x"][::std::mem::offset_of!(ecm_s, x) - 32usize];
34    ["Offset of field: ecm_s::z"][::std::mem::offset_of!(ecm_s, z) - 40usize];
35    ["Offset of field: ecm_s::a24"][::std::mem::offset_of!(ecm_s, a24) - 48usize];
36    ["Offset of field: ecm_s::ninv"][::std::mem::offset_of!(ecm_s, ninv) - 56usize];
37    ["Offset of field: ecm_s::one"][::std::mem::offset_of!(ecm_s, one) - 64usize];
38    ["Offset of field: ecm_s::GCD_table"][::std::mem::offset_of!(ecm_s, GCD_table) - 72usize];
39    ["Offset of field: ecm_s::prime_table"][::std::mem::offset_of!(ecm_s, prime_table) - 80usize];
40    ["Offset of field: ecm_s::n_size"][::std::mem::offset_of!(ecm_s, n_size) - 88usize];
41    ["Offset of field: ecm_s::normbits"][::std::mem::offset_of!(ecm_s, normbits) - 96usize];
42};
43impl Default for ecm_s {
44    fn default() -> Self {
45        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
46        unsafe {
47            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
48            s.assume_init()
49        }
50    }
51}
52pub type ecm_t = [ecm_s; 1usize];
53extern "C" {
54    pub fn fmpz_factor_init(factor: *mut fmpz_factor_struct);
55    pub fn fmpz_factor_clear(factor: *mut fmpz_factor_struct);
56    pub fn _fmpz_factor_fit_length(factor: *mut fmpz_factor_struct, len: slong);
57    pub fn _fmpz_factor_set_length(factor: *mut fmpz_factor_struct, newlen: slong);
58    pub fn _fmpz_factor_append(factor: *mut fmpz_factor_struct, p: *const fmpz, exp: ulong);
59    pub fn _fmpz_factor_append_ui(factor: *mut fmpz_factor_struct, p: ulong, exp: ulong);
60    pub fn _fmpz_factor_concat(
61        factor1: *mut fmpz_factor_struct,
62        factor2: *mut fmpz_factor_struct,
63        exp: ulong,
64    );
65    pub fn fmpz_factor_fprint(fs: *mut FILE, factor: *const fmpz_factor_struct) -> libc::c_int;
66    pub fn fmpz_factor_print(factor: *const fmpz_factor_struct) -> libc::c_int;
67    pub fn _fmpz_factor_extend_factor_ui(factor: *mut fmpz_factor_struct, n: ulong);
68    pub fn fmpz_factor_trial_range(
69        factor: *mut fmpz_factor_struct,
70        n: *const fmpz,
71        start: ulong,
72        num_primes: ulong,
73    ) -> libc::c_int;
74    pub fn fmpz_factor_trial(
75        factor: *mut fmpz_factor_struct,
76        n: *const fmpz,
77        num_primes: slong,
78    ) -> libc::c_int;
79    pub fn fmpz_factor_no_trial(factor: *mut fmpz_factor_struct, n: *const fmpz);
80    pub fn fmpz_factor_si(factor: *mut fmpz_factor_struct, n: slong);
81    pub fn fmpz_factor(factor: *mut fmpz_factor_struct, n: *const fmpz);
82    pub fn fmpz_factor_smooth(
83        factor: *mut fmpz_factor_struct,
84        n: *const fmpz,
85        bits: slong,
86        proved: libc::c_int,
87    ) -> libc::c_int;
88    pub fn fmpz_factor_pp1(
89        factor: *mut fmpz,
90        n: *const fmpz,
91        B1: ulong,
92        B2_sqrt: ulong,
93        c: ulong,
94    ) -> libc::c_int;
95    pub fn fmpz_factor_refine(res: *mut fmpz_factor_struct, f: *const fmpz_factor_struct);
96    pub fn flint_mpn_sqr_and_add_a(
97        y: nn_ptr,
98        a: nn_ptr,
99        n: nn_ptr,
100        n_size: ulong,
101        ninv: nn_ptr,
102        normbits: ulong,
103    );
104    pub fn flint_mpn_factor_pollard_brent_single(
105        factor: nn_ptr,
106        n: nn_ptr,
107        ninv: nn_ptr,
108        a: nn_ptr,
109        y: nn_ptr,
110        n_size: ulong,
111        normbits: ulong,
112        max_iters: ulong,
113    ) -> libc::c_int;
114    pub fn fmpz_factor_pollard_brent_single(
115        p_factor: *mut fmpz,
116        n_in: *mut fmpz,
117        yi: *mut fmpz,
118        ai: *mut fmpz,
119        max_iters: ulong,
120    ) -> libc::c_int;
121    pub fn fmpz_factor_pollard_brent(
122        factor: *mut fmpz,
123        state: *mut flint_rand_struct,
124        n: *mut fmpz,
125        max_tries: ulong,
126        max_iters: ulong,
127    ) -> libc::c_int;
128    pub fn fmpz_factor_expand_iterative(n: *mut fmpz, factor: *const fmpz_factor_struct);
129    pub fn fmpz_factor_expand_multiexp(n: *mut fmpz, factor: *const fmpz_factor_struct);
130    pub fn fmpz_factor_expand(n: *mut fmpz, factor: *const fmpz_factor_struct);
131    pub fn fmpz_factor_euler_phi(res: *mut fmpz, fac: *const fmpz_factor_struct);
132    pub fn fmpz_factor_moebius_mu(fac: *const fmpz_factor_struct) -> libc::c_int;
133    pub fn fmpz_factor_divisor_sigma(res: *mut fmpz, k: ulong, fac: *const fmpz_factor_struct);
134    pub fn fmpz_factor_ecm_init(ecm_inf: *mut ecm_s, sz: ulong);
135    pub fn fmpz_factor_ecm_clear(ecm_inf: *mut ecm_s);
136    pub fn fmpz_factor_ecm_double(
137        x: nn_ptr,
138        z: nn_ptr,
139        x0: nn_ptr,
140        z0: nn_ptr,
141        n: nn_ptr,
142        ecm_inf: *mut ecm_s,
143    );
144    pub fn fmpz_factor_ecm_add(
145        x: nn_ptr,
146        z: nn_ptr,
147        x1: nn_ptr,
148        z1: nn_ptr,
149        x2: nn_ptr,
150        z2: nn_ptr,
151        x0: nn_ptr,
152        z0: nn_ptr,
153        n: nn_ptr,
154        ecm_inf: *mut ecm_s,
155    );
156    pub fn fmpz_factor_ecm_mul_montgomery_ladder(
157        x: nn_ptr,
158        z: nn_ptr,
159        x0: nn_ptr,
160        z0: nn_ptr,
161        k: ulong,
162        n: nn_ptr,
163        ecm_inf: *mut ecm_s,
164    );
165    pub fn fmpz_factor_ecm_select_curve(
166        f: nn_ptr,
167        sig: nn_ptr,
168        n: nn_ptr,
169        ecm_inf: *mut ecm_s,
170    ) -> libc::c_int;
171    pub fn fmpz_factor_ecm_stage_I(
172        f: nn_ptr,
173        prime_array: *const ulong,
174        num: ulong,
175        B1: ulong,
176        n: nn_ptr,
177        ecm_inf: *mut ecm_s,
178    ) -> libc::c_int;
179    pub fn fmpz_factor_ecm_stage_II(
180        f: nn_ptr,
181        B1: ulong,
182        B2: ulong,
183        P: ulong,
184        n: nn_ptr,
185        ecm_inf: *mut ecm_s,
186    ) -> libc::c_int;
187    pub fn fmpz_factor_ecm(
188        f: *mut fmpz,
189        curves: ulong,
190        B1: ulong,
191        B2: ulong,
192        state: *mut flint_rand_struct,
193        n_in: *const fmpz,
194    ) -> libc::c_int;
195    pub fn fmpz_factor_get_fmpz(z: *mut fmpz, factor: *const fmpz_factor_struct, i: slong);
196}