Skip to main content

flint_sys/
arith.rs

1/* automatically generated by rust-bindgen 0.70.1 */
2
3use crate::deps::*;
4use crate::flint::*;
5use crate::fmpq_types::*;
6use crate::fmpz_types::*;
7
8
9pub const BELL_NUMBER_TAB_SIZE: u32 = 26;
10pub const SMALL_EULER_LIMIT: u32 = 25;
11pub const BERNOULLI_SMALL_NUMER_LIMIT: u32 = 35;
12#[repr(C)]
13pub struct trig_prod_struct {
14    pub n: libc::c_int,
15    pub prefactor: libc::c_int,
16    pub sqrt_p: ulong,
17    pub sqrt_q: ulong,
18    pub cos_p: [slong; 64usize],
19    pub cos_q: [ulong; 64usize],
20}
21#[allow(clippy::unnecessary_operation, clippy::identity_op)]
22const _: () = {
23    ["Size of trig_prod_struct"][::std::mem::size_of::<trig_prod_struct>() - 1048usize];
24    ["Alignment of trig_prod_struct"][::std::mem::align_of::<trig_prod_struct>() - 8usize];
25    ["Offset of field: trig_prod_struct::n"][::std::mem::offset_of!(trig_prod_struct, n) - 0usize];
26    ["Offset of field: trig_prod_struct::prefactor"]
27        [::std::mem::offset_of!(trig_prod_struct, prefactor) - 4usize];
28    ["Offset of field: trig_prod_struct::sqrt_p"]
29        [::std::mem::offset_of!(trig_prod_struct, sqrt_p) - 8usize];
30    ["Offset of field: trig_prod_struct::sqrt_q"]
31        [::std::mem::offset_of!(trig_prod_struct, sqrt_q) - 16usize];
32    ["Offset of field: trig_prod_struct::cos_p"]
33        [::std::mem::offset_of!(trig_prod_struct, cos_p) - 24usize];
34    ["Offset of field: trig_prod_struct::cos_q"]
35        [::std::mem::offset_of!(trig_prod_struct, cos_q) - 536usize];
36};
37impl Default for trig_prod_struct {
38    fn default() -> Self {
39        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
40        unsafe {
41            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
42            s.assume_init()
43        }
44    }
45}
46pub type trig_prod_t = [trig_prod_struct; 1usize];
47extern "C" {
48    pub fn _arith_harmonic_number(num: *mut fmpz, den: *mut fmpz, n: slong);
49    pub fn arith_harmonic_number(x: *mut fmpq, n: slong);
50    pub fn arith_ramanujan_tau(res: *mut fmpz, n: *const fmpz);
51    pub fn arith_ramanujan_tau_series(res: *mut fmpz_poly_struct, n: slong);
52    pub fn arith_divisors(res: *mut fmpz_poly_struct, n: *const fmpz);
53    pub fn arith_stirling_number_1u(s: *mut fmpz, n: ulong, k: ulong);
54    pub fn arith_stirling_number_1(s: *mut fmpz, n: ulong, k: ulong);
55    pub fn arith_stirling_number_2(s: *mut fmpz, n: ulong, k: ulong);
56    pub fn arith_stirling_number_1u_vec(row: *mut fmpz, n: ulong, klen: slong);
57    pub fn arith_stirling_number_1_vec(row: *mut fmpz, n: ulong, klen: slong);
58    pub fn arith_stirling_number_2_vec(row: *mut fmpz, n: ulong, klen: slong);
59    pub fn arith_stirling_matrix_1u(mat: *mut fmpz_mat_struct);
60    pub fn arith_stirling_matrix_1(mat: *mut fmpz_mat_struct);
61    pub fn arith_stirling_matrix_2(mat: *mut fmpz_mat_struct);
62    pub static bell_number_tab: [ulong; 0usize];
63    pub fn arith_bell_number_size(n: ulong) -> f64;
64    pub fn arith_bell_number(b: *mut fmpz, n: ulong);
65    pub fn arith_bell_number_dobinski(res: *mut fmpz, n: ulong);
66    pub fn arith_bell_number_multi_mod(res: *mut fmpz, n: ulong);
67    pub fn arith_bell_number_vec(b: *mut fmpz, n: slong);
68    pub fn arith_bell_number_vec_recursive(b: *mut fmpz, n: slong);
69    pub fn arith_bell_number_vec_multi_mod(b: *mut fmpz, n: slong);
70    pub fn arith_bell_number_nmod(n: ulong, mod_: nmod_t) -> ulong;
71    pub fn arith_bell_number_nmod_vec(b: nn_ptr, n: slong, mod_: nmod_t);
72    pub fn arith_bell_number_nmod_vec_recursive(b: nn_ptr, n: slong, mod_: nmod_t);
73    pub fn arith_bell_number_nmod_vec_series(b: nn_ptr, n: slong, mod_: nmod_t) -> libc::c_int;
74    pub fn arith_bell_number_nmod_vec_ogf(res: nn_ptr, len: slong, mod_: nmod_t);
75    pub static euler_number_small: [ulong; 13usize];
76    pub fn arith_euler_number_size(n: ulong) -> f64;
77    pub fn arith_euler_number_vec(res: *mut fmpz, n: slong);
78    pub fn arith_euler_number(res: *mut fmpz, n: ulong);
79    pub fn arith_euler_polynomial(poly: *mut fmpq_poly_struct, n: ulong);
80    pub static _bernoulli_numer_small: [slong; 18usize];
81    pub fn _arith_bernoulli_number(num: *mut fmpz, den: *mut fmpz, n: ulong);
82    pub fn arith_bernoulli_number(x: *mut fmpq, n: ulong);
83    pub fn _arith_bernoulli_number_vec(num: *mut fmpz, den: *mut fmpz, n: slong);
84    pub fn arith_bernoulli_number_vec(num: *mut fmpq, n: slong);
85    pub fn arith_bernoulli_number_denom(den: *mut fmpz, n: ulong);
86    pub fn arith_bernoulli_number_size(n: ulong) -> f64;
87    pub fn arith_bernoulli_polynomial(poly: *mut fmpq_poly_struct, n: ulong);
88    pub fn _arith_bernoulli_number_vec_multi_mod(num: *mut fmpz, den: *mut fmpz, n: slong);
89    pub fn _arith_bernoulli_number_vec_recursive(num: *mut fmpz, den: *mut fmpz, n: slong);
90    pub fn arith_landau_function_vec(res: *mut fmpz, len: slong);
91    #[link_name = "trig_prod_init__extern"]
92    pub fn trig_prod_init(sum: *mut trig_prod_struct);
93    pub fn arith_hrr_expsum_factored(prod: *mut trig_prod_struct, k: ulong, n: ulong);
94    pub static partitions_lookup: [libc::c_uint; 128usize];
95    pub fn arith_number_of_partitions_nmod_vec(res: nn_ptr, len: slong, mod_: nmod_t);
96    pub fn arith_number_of_partitions_vec(res: *mut fmpz, len: slong);
97    pub fn arith_number_of_partitions(x: *mut fmpz, n: ulong);
98    pub fn arith_sum_of_squares(r: *mut fmpz, k: ulong, n: *const fmpz);
99    pub fn arith_sum_of_squares_vec(r: *mut fmpz, k: ulong, n: slong);
100}