use crate::deps::*;
use crate::arb_types::*;
use crate::flint::*;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct di_t {
pub a: f64,
pub b: f64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of di_t"][::std::mem::size_of::<di_t>() - 16usize];
["Alignment of di_t"][::std::mem::align_of::<di_t>() - 8usize];
["Offset of field: di_t::a"][::std::mem::offset_of!(di_t, a) - 0usize];
["Offset of field: di_t::b"][::std::mem::offset_of!(di_t, b) - 8usize];
};
extern "C" {
#[link_name = "di_interval__extern"]
pub fn di_interval(a: f64, b: f64) -> di_t;
#[link_name = "_di_below__extern"]
pub fn _di_below(x: f64) -> f64;
#[link_name = "_di_above__extern"]
pub fn _di_above(x: f64) -> f64;
#[link_name = "di_neg__extern"]
pub fn di_neg(x: di_t) -> di_t;
#[link_name = "di_fast_add__extern"]
pub fn di_fast_add(x: di_t, y: di_t) -> di_t;
#[link_name = "di_fast_sub__extern"]
pub fn di_fast_sub(x: di_t, y: di_t) -> di_t;
pub fn di_fast_mul(x: di_t, y: di_t) -> di_t;
pub fn di_fast_sqr(x: di_t) -> di_t;
pub fn di_fast_div(x: di_t, y: di_t) -> di_t;
#[link_name = "di_fast_add_d__extern"]
pub fn di_fast_add_d(x: di_t, y: f64) -> di_t;
#[link_name = "di_fast_sub_d__extern"]
pub fn di_fast_sub_d(x: di_t, y: f64) -> di_t;
#[link_name = "di_fast_mul_d__extern"]
pub fn di_fast_mul_d(x: di_t, y: f64) -> di_t;
#[link_name = "di_fast_div_d__extern"]
pub fn di_fast_div_d(x: di_t, y: f64) -> di_t;
pub fn di_fast_log_nonnegative(x: di_t) -> di_t;
#[link_name = "di_fast_mid__extern"]
pub fn di_fast_mid(x: di_t) -> di_t;
#[link_name = "di_fast_ubound_radius__extern"]
pub fn di_fast_ubound_radius(x: di_t) -> f64;
#[link_name = "di_print__extern"]
pub fn di_print(x: di_t);
pub fn arb_get_di(x: *const arb_struct) -> di_t;
pub fn arb_set_di(res: *mut arb_struct, x: di_t, prec: slong);
#[link_name = "d_randtest2__extern"]
pub fn d_randtest2(state: *mut flint_rand_struct) -> f64;
#[link_name = "di_randtest__extern"]
pub fn di_randtest(state: *mut flint_rand_struct) -> di_t;
}