flint_sys/
double_interval.rs1use crate::deps::*;
4use crate::arb_types::*;
5use crate::flint::*;
6
7
8#[repr(C)]
9#[derive(Debug, Default, Copy, Clone)]
10pub struct di_t {
11 pub a: f64,
12 pub b: f64,
13}
14#[allow(clippy::unnecessary_operation, clippy::identity_op)]
15const _: () = {
16 ["Size of di_t"][::std::mem::size_of::<di_t>() - 16usize];
17 ["Alignment of di_t"][::std::mem::align_of::<di_t>() - 8usize];
18 ["Offset of field: di_t::a"][::std::mem::offset_of!(di_t, a) - 0usize];
19 ["Offset of field: di_t::b"][::std::mem::offset_of!(di_t, b) - 8usize];
20};
21extern "C" {
22 #[link_name = "di_interval__extern"]
23 pub fn di_interval(a: f64, b: f64) -> di_t;
24 #[link_name = "_di_below__extern"]
25 pub fn _di_below(x: f64) -> f64;
26 #[link_name = "_di_above__extern"]
27 pub fn _di_above(x: f64) -> f64;
28 #[link_name = "di_neg__extern"]
29 pub fn di_neg(x: di_t) -> di_t;
30 #[link_name = "di_fast_add__extern"]
31 pub fn di_fast_add(x: di_t, y: di_t) -> di_t;
32 #[link_name = "di_fast_sub__extern"]
33 pub fn di_fast_sub(x: di_t, y: di_t) -> di_t;
34 pub fn di_fast_mul(x: di_t, y: di_t) -> di_t;
35 pub fn di_fast_sqr(x: di_t) -> di_t;
36 pub fn di_fast_div(x: di_t, y: di_t) -> di_t;
37 #[link_name = "di_fast_add_d__extern"]
38 pub fn di_fast_add_d(x: di_t, y: f64) -> di_t;
39 #[link_name = "di_fast_sub_d__extern"]
40 pub fn di_fast_sub_d(x: di_t, y: f64) -> di_t;
41 #[link_name = "di_fast_mul_d__extern"]
42 pub fn di_fast_mul_d(x: di_t, y: f64) -> di_t;
43 #[link_name = "di_fast_div_d__extern"]
44 pub fn di_fast_div_d(x: di_t, y: f64) -> di_t;
45 pub fn di_fast_log_nonnegative(x: di_t) -> di_t;
46 #[link_name = "di_fast_mid__extern"]
47 pub fn di_fast_mid(x: di_t) -> di_t;
48 #[link_name = "di_fast_ubound_radius__extern"]
49 pub fn di_fast_ubound_radius(x: di_t) -> f64;
50 #[link_name = "di_print__extern"]
51 pub fn di_print(x: di_t);
52 pub fn arb_get_di(x: *const arb_struct) -> di_t;
53 pub fn arb_set_di(res: *mut arb_struct, x: di_t, prec: slong);
54 #[link_name = "d_randtest2__extern"]
55 pub fn d_randtest2(state: *mut flint_rand_struct) -> f64;
56 #[link_name = "di_randtest__extern"]
57 pub fn di_randtest(state: *mut flint_rand_struct) -> di_t;
58}