use crate::deps::*;
use crate::flint::*;
pub const D_BITS: u32 = 53;
pub const D_MIN_NORMAL_EXPONENT: i32 = -1022;
pub const D_MAX_NORMAL_EXPONENT: u32 = 1023;
pub const D_EXPONENT_BIAS: u32 = 1023;
pub const D_EXPONENT_SHIFT: u32 = 52;
#[repr(C)]
#[derive(Copy, Clone)]
pub union double_uint64_u {
pub f: f64,
pub i: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of double_uint64_u"][::std::mem::size_of::<double_uint64_u>() - 8usize];
["Alignment of double_uint64_u"][::std::mem::align_of::<double_uint64_u>() - 8usize];
["Offset of field: double_uint64_u::f"][::std::mem::offset_of!(double_uint64_u, f) - 0usize];
["Offset of field: double_uint64_u::i"][::std::mem::offset_of!(double_uint64_u, i) - 0usize];
};
impl Default for double_uint64_u {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
extern "C" {
pub fn d_randtest(state: *mut flint_rand_struct) -> f64;
pub fn d_randtest_signed(state: *mut flint_rand_struct, minexp: slong, maxexp: slong) -> f64;
pub fn d_randtest_special(state: *mut flint_rand_struct, minexp: slong, maxexp: slong) -> f64;
#[link_name = "d_polyval__extern"]
pub fn d_polyval(poly: *const f64, len: libc::c_int, x: f64) -> f64;
pub fn d_lambertw(x: f64) -> f64;
#[link_name = "d_is_nan__extern"]
pub fn d_is_nan(x: f64) -> libc::c_int;
pub fn d_log2(x: f64) -> f64;
#[link_name = "d_mul_2exp_inrange__extern"]
pub fn d_mul_2exp_inrange(x: f64, i: libc::c_int) -> f64;
#[link_name = "d_mul_2exp_inrange2__extern"]
pub fn d_mul_2exp_inrange2(x: f64, i: libc::c_int) -> f64;
#[link_name = "d_mul_2exp__extern"]
pub fn d_mul_2exp(x: f64, i: libc::c_int) -> f64;
}