#[repr(C)]
#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
pub struct __BindgenBitfieldUnit<Storage> {
storage: Storage,
}
impl<Storage> __BindgenBitfieldUnit<Storage> {
#[inline]
pub const fn new(storage: Storage) -> Self {
Self { storage }
}
}
impl<Storage> __BindgenBitfieldUnit<Storage>
where
Storage: AsRef<[u8]> + AsMut<[u8]>,
{
#[inline]
fn extract_bit(byte: u8, index: usize) -> bool {
let bit_index = if cfg!(target_endian = "big") {
7 - (index % 8)
} else {
index % 8
};
let mask = 1 << bit_index;
byte & mask == mask
}
#[inline]
pub fn get_bit(&self, index: usize) -> bool {
debug_assert!(index / 8 < self.storage.as_ref().len());
let byte_index = index / 8;
let byte = self.storage.as_ref()[byte_index];
Self::extract_bit(byte, index)
}
#[inline]
pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
debug_assert!(index / 8 < core::mem::size_of::<Storage>());
let byte_index = index / 8;
let byte = unsafe {
*(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize)
};
Self::extract_bit(byte, index)
}
#[inline]
fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
let bit_index = if cfg!(target_endian = "big") {
7 - (index % 8)
} else {
index % 8
};
let mask = 1 << bit_index;
if val { byte | mask } else { byte & !mask }
}
#[inline]
pub fn set_bit(&mut self, index: usize, val: bool) {
debug_assert!(index / 8 < self.storage.as_ref().len());
let byte_index = index / 8;
let byte = &mut self.storage.as_mut()[byte_index];
*byte = Self::change_bit(*byte, index, val);
}
#[inline]
pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
debug_assert!(index / 8 < core::mem::size_of::<Storage>());
let byte_index = index / 8;
let byte = unsafe {
(core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize)
};
unsafe { *byte = Self::change_bit(*byte, index, val) };
}
#[inline]
pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
debug_assert!(bit_width <= 64);
debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
let mut val = 0;
for i in 0..(bit_width as usize) {
if self.get_bit(i + bit_offset) {
let index = if cfg!(target_endian = "big") {
bit_width as usize - 1 - i
} else {
i
};
val |= 1 << index;
}
}
val
}
#[inline]
pub unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
debug_assert!(bit_width <= 64);
debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
let mut val = 0;
for i in 0..(bit_width as usize) {
if unsafe { Self::raw_get_bit(this, i + bit_offset) } {
let index = if cfg!(target_endian = "big") {
bit_width as usize - 1 - i
} else {
i
};
val |= 1 << index;
}
}
val
}
#[inline]
pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
debug_assert!(bit_width <= 64);
debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
for i in 0..(bit_width as usize) {
let mask = 1 << i;
let val_bit_is_set = val & mask == mask;
let index = if cfg!(target_endian = "big") {
bit_width as usize - 1 - i
} else {
i
};
self.set_bit(index + bit_offset, val_bit_is_set);
}
}
#[inline]
pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
debug_assert!(bit_width <= 64);
debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
for i in 0..(bit_width as usize) {
let mask = 1 << i;
let val_bit_is_set = val & mask == mask;
let index = if cfg!(target_endian = "big") {
bit_width as usize - 1 - i
} else {
i
};
unsafe { Self::raw_set_bit(this, index + bit_offset, val_bit_is_set) };
}
}
}
pub const MPD_HIDE_SYMBOLS_START: &[u8; 28] = b"GCC visibility push(hidden)\0";
pub const MPD_HIDE_SYMBOLS_END: &[u8; 19] = b"GCC visibility pop\0";
pub const MPD_MAJOR_VERSION: u32 = 4;
pub const MPD_MINOR_VERSION: u32 = 0;
pub const MPD_MICRO_VERSION: u32 = 1;
pub const MPD_VERSION: &[u8; 6] = b"4.0.1\0";
pub const MPD_VERSION_HEX: u32 = 67109120;
pub const MPD_CONFIG_64: u32 = 1;
pub const MPD_BITS_PER_UINT: u32 = 64;
pub const MPD_SIZE_MAX: i32 = -1;
pub const MPD_RADIX: i64 = -8446744073709551616;
pub const MPD_RDIGITS: u32 = 19;
pub const MPD_MAX_POW10: u32 = 19;
pub const MPD_EXPDIGITS: u32 = 19;
pub const MPD_MAXTRANSFORM_2N: u64 = 4294967296;
pub const MPD_MAX_PREC: u64 = 999999999999999999;
pub const MPD_MAX_PREC_LOG2: u32 = 64;
pub const MPD_ELIMIT: u64 = 1000000000000000000;
pub const MPD_MAX_EMAX: u64 = 999999999999999999;
pub const MPD_MIN_EMIN: i64 = -999999999999999999;
pub const MPD_MIN_ETINY: i64 = -1999999999999999997;
pub const MPD_EXP_INF: u64 = 2000000000000000001;
pub const MPD_EXP_CLAMP: i64 = -4000000000000000001;
pub const MPD_MAXIMPORT: u64 = 105263157894736842;
pub const MPD_IEEE_CONTEXT_MAX_BITS: u32 = 512;
pub const MPD_Clamped: u32 = 1;
pub const MPD_Conversion_syntax: u32 = 2;
pub const MPD_Division_by_zero: u32 = 4;
pub const MPD_Division_impossible: u32 = 8;
pub const MPD_Division_undefined: u32 = 16;
pub const MPD_Fpu_error: u32 = 32;
pub const MPD_Inexact: u32 = 64;
pub const MPD_Invalid_context: u32 = 128;
pub const MPD_Invalid_operation: u32 = 256;
pub const MPD_Malloc_error: u32 = 512;
pub const MPD_Not_implemented: u32 = 1024;
pub const MPD_Overflow: u32 = 2048;
pub const MPD_Rounded: u32 = 4096;
pub const MPD_Subnormal: u32 = 8192;
pub const MPD_Underflow: u32 = 16384;
pub const MPD_Max_status: u32 = 32767;
pub const MPD_IEEE_Invalid_operation: u32 = 954;
pub const MPD_Errors: u32 = 958;
pub const MPD_Traps: u32 = 19390;
pub const MPD_Insufficient_storage: u32 = 512;
pub const MPD_DECIMAL32: u32 = 32;
pub const MPD_DECIMAL64: u32 = 64;
pub const MPD_DECIMAL128: u32 = 128;
pub const MPD_MINALLOC_MIN: u32 = 2;
pub const MPD_MINALLOC_MAX: u32 = 64;
pub const MPD_NUM_FLAGS: u32 = 15;
pub const MPD_MAX_FLAG_STRING: u32 = 208;
pub const MPD_MAX_FLAG_LIST: u32 = 226;
pub const MPD_MAX_SIGNAL_LIST: u32 = 121;
pub type __off_t = ::std::os::raw::c_long;
pub type __off64_t = ::std::os::raw::c_long;
pub type FILE = _IO_FILE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_marker {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_codecvt {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_wide_data {
_unused: [u8; 0],
}
pub type _IO_lock_t = ::std::os::raw::c_void;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_FILE {
pub _flags: ::std::os::raw::c_int,
pub _IO_read_ptr: *mut ::std::os::raw::c_char,
pub _IO_read_end: *mut ::std::os::raw::c_char,
pub _IO_read_base: *mut ::std::os::raw::c_char,
pub _IO_write_base: *mut ::std::os::raw::c_char,
pub _IO_write_ptr: *mut ::std::os::raw::c_char,
pub _IO_write_end: *mut ::std::os::raw::c_char,
pub _IO_buf_base: *mut ::std::os::raw::c_char,
pub _IO_buf_end: *mut ::std::os::raw::c_char,
pub _IO_save_base: *mut ::std::os::raw::c_char,
pub _IO_backup_base: *mut ::std::os::raw::c_char,
pub _IO_save_end: *mut ::std::os::raw::c_char,
pub _markers: *mut _IO_marker,
pub _chain: *mut _IO_FILE,
pub _fileno: ::std::os::raw::c_int,
pub _bitfield_align_1: [u32; 0],
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>,
pub _short_backupbuf: [::std::os::raw::c_char; 1usize],
pub _old_offset: __off_t,
pub _cur_column: ::std::os::raw::c_ushort,
pub _vtable_offset: ::std::os::raw::c_schar,
pub _shortbuf: [::std::os::raw::c_char; 1usize],
pub _lock: *mut _IO_lock_t,
pub _offset: __off64_t,
pub _codecvt: *mut _IO_codecvt,
pub _wide_data: *mut _IO_wide_data,
pub _freeres_list: *mut _IO_FILE,
pub _freeres_buf: *mut ::std::os::raw::c_void,
pub _prevchain: *mut *mut _IO_FILE,
pub _mode: ::std::os::raw::c_int,
pub _unused2: [::std::os::raw::c_char; 20usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of _IO_FILE"][::std::mem::size_of::<_IO_FILE>() - 216usize];
["Alignment of _IO_FILE"][::std::mem::align_of::<_IO_FILE>() - 8usize];
["Offset of field: _IO_FILE::_flags"][::std::mem::offset_of!(_IO_FILE, _flags) - 0usize];
["Offset of field: _IO_FILE::_IO_read_ptr"]
[::std::mem::offset_of!(_IO_FILE, _IO_read_ptr) - 8usize];
["Offset of field: _IO_FILE::_IO_read_end"]
[::std::mem::offset_of!(_IO_FILE, _IO_read_end) - 16usize];
["Offset of field: _IO_FILE::_IO_read_base"]
[::std::mem::offset_of!(_IO_FILE, _IO_read_base) - 24usize];
["Offset of field: _IO_FILE::_IO_write_base"]
[::std::mem::offset_of!(_IO_FILE, _IO_write_base) - 32usize];
["Offset of field: _IO_FILE::_IO_write_ptr"]
[::std::mem::offset_of!(_IO_FILE, _IO_write_ptr) - 40usize];
["Offset of field: _IO_FILE::_IO_write_end"]
[::std::mem::offset_of!(_IO_FILE, _IO_write_end) - 48usize];
["Offset of field: _IO_FILE::_IO_buf_base"]
[::std::mem::offset_of!(_IO_FILE, _IO_buf_base) - 56usize];
["Offset of field: _IO_FILE::_IO_buf_end"]
[::std::mem::offset_of!(_IO_FILE, _IO_buf_end) - 64usize];
["Offset of field: _IO_FILE::_IO_save_base"]
[::std::mem::offset_of!(_IO_FILE, _IO_save_base) - 72usize];
["Offset of field: _IO_FILE::_IO_backup_base"]
[::std::mem::offset_of!(_IO_FILE, _IO_backup_base) - 80usize];
["Offset of field: _IO_FILE::_IO_save_end"]
[::std::mem::offset_of!(_IO_FILE, _IO_save_end) - 88usize];
["Offset of field: _IO_FILE::_markers"][::std::mem::offset_of!(_IO_FILE, _markers) - 96usize];
["Offset of field: _IO_FILE::_chain"][::std::mem::offset_of!(_IO_FILE, _chain) - 104usize];
["Offset of field: _IO_FILE::_fileno"][::std::mem::offset_of!(_IO_FILE, _fileno) - 112usize];
["Offset of field: _IO_FILE::_short_backupbuf"]
[::std::mem::offset_of!(_IO_FILE, _short_backupbuf) - 119usize];
["Offset of field: _IO_FILE::_old_offset"]
[::std::mem::offset_of!(_IO_FILE, _old_offset) - 120usize];
["Offset of field: _IO_FILE::_cur_column"]
[::std::mem::offset_of!(_IO_FILE, _cur_column) - 128usize];
["Offset of field: _IO_FILE::_vtable_offset"]
[::std::mem::offset_of!(_IO_FILE, _vtable_offset) - 130usize];
["Offset of field: _IO_FILE::_shortbuf"]
[::std::mem::offset_of!(_IO_FILE, _shortbuf) - 131usize];
["Offset of field: _IO_FILE::_lock"][::std::mem::offset_of!(_IO_FILE, _lock) - 136usize];
["Offset of field: _IO_FILE::_offset"][::std::mem::offset_of!(_IO_FILE, _offset) - 144usize];
["Offset of field: _IO_FILE::_codecvt"][::std::mem::offset_of!(_IO_FILE, _codecvt) - 152usize];
["Offset of field: _IO_FILE::_wide_data"]
[::std::mem::offset_of!(_IO_FILE, _wide_data) - 160usize];
["Offset of field: _IO_FILE::_freeres_list"]
[::std::mem::offset_of!(_IO_FILE, _freeres_list) - 168usize];
["Offset of field: _IO_FILE::_freeres_buf"]
[::std::mem::offset_of!(_IO_FILE, _freeres_buf) - 176usize];
["Offset of field: _IO_FILE::_prevchain"]
[::std::mem::offset_of!(_IO_FILE, _prevchain) - 184usize];
["Offset of field: _IO_FILE::_mode"][::std::mem::offset_of!(_IO_FILE, _mode) - 192usize];
["Offset of field: _IO_FILE::_unused2"][::std::mem::offset_of!(_IO_FILE, _unused2) - 196usize];
};
impl _IO_FILE {
#[inline]
pub fn _flags2(&self) -> ::std::os::raw::c_int {
unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 24u8) as u32) }
}
#[inline]
pub fn set__flags2(&mut self, val: ::std::os::raw::c_int) {
unsafe {
let val: u32 = ::std::mem::transmute(val);
self._bitfield_1.set(0usize, 24u8, val as u64)
}
}
#[inline]
pub unsafe fn _flags2_raw(this: *const Self) -> ::std::os::raw::c_int {
unsafe {
::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
::std::ptr::addr_of!((*this)._bitfield_1),
0usize,
24u8,
) as u32)
}
}
#[inline]
pub unsafe fn set__flags2_raw(this: *mut Self, val: ::std::os::raw::c_int) {
unsafe {
let val: u32 = ::std::mem::transmute(val);
<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
::std::ptr::addr_of_mut!((*this)._bitfield_1),
0usize,
24u8,
val as u64,
)
}
}
#[inline]
pub fn new_bitfield_1(_flags2: ::std::os::raw::c_int) -> __BindgenBitfieldUnit<[u8; 3usize]> {
let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default();
__bindgen_bitfield_unit.set(0usize, 24u8, {
let _flags2: u32 = unsafe { ::std::mem::transmute(_flags2) };
_flags2 as u64
});
__bindgen_bitfield_unit
}
}
pub type mpd_uint_t = u64;
pub type mpd_size_t = usize;
pub type mpd_ssize_t = i64;
pub const MPD_ROUND_UP: _bindgen_ty_1 = 0;
pub const MPD_ROUND_DOWN: _bindgen_ty_1 = 1;
pub const MPD_ROUND_CEILING: _bindgen_ty_1 = 2;
pub const MPD_ROUND_FLOOR: _bindgen_ty_1 = 3;
pub const MPD_ROUND_HALF_UP: _bindgen_ty_1 = 4;
pub const MPD_ROUND_HALF_DOWN: _bindgen_ty_1 = 5;
pub const MPD_ROUND_HALF_EVEN: _bindgen_ty_1 = 6;
pub const MPD_ROUND_05UP: _bindgen_ty_1 = 7;
pub const MPD_ROUND_TRUNC: _bindgen_ty_1 = 8;
pub const MPD_ROUND_GUARD: _bindgen_ty_1 = 9;
pub type _bindgen_ty_1 = ::std::os::raw::c_uint;
pub const MPD_CLAMP_DEFAULT: _bindgen_ty_2 = 0;
pub const MPD_CLAMP_IEEE_754: _bindgen_ty_2 = 1;
pub const MPD_CLAMP_GUARD: _bindgen_ty_2 = 2;
pub type _bindgen_ty_2 = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mpd_context_t {
pub prec: mpd_ssize_t,
pub emax: mpd_ssize_t,
pub emin: mpd_ssize_t,
pub traps: u32,
pub status: u32,
pub newtrap: u32,
pub round: ::std::os::raw::c_int,
pub clamp: ::std::os::raw::c_int,
pub allcr: ::std::os::raw::c_int,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of mpd_context_t"][::std::mem::size_of::<mpd_context_t>() - 48usize];
["Alignment of mpd_context_t"][::std::mem::align_of::<mpd_context_t>() - 8usize];
["Offset of field: mpd_context_t::prec"][::std::mem::offset_of!(mpd_context_t, prec) - 0usize];
["Offset of field: mpd_context_t::emax"][::std::mem::offset_of!(mpd_context_t, emax) - 8usize];
["Offset of field: mpd_context_t::emin"][::std::mem::offset_of!(mpd_context_t, emin) - 16usize];
["Offset of field: mpd_context_t::traps"]
[::std::mem::offset_of!(mpd_context_t, traps) - 24usize];
["Offset of field: mpd_context_t::status"]
[::std::mem::offset_of!(mpd_context_t, status) - 28usize];
["Offset of field: mpd_context_t::newtrap"]
[::std::mem::offset_of!(mpd_context_t, newtrap) - 32usize];
["Offset of field: mpd_context_t::round"]
[::std::mem::offset_of!(mpd_context_t, round) - 36usize];
["Offset of field: mpd_context_t::clamp"]
[::std::mem::offset_of!(mpd_context_t, clamp) - 40usize];
["Offset of field: mpd_context_t::allcr"]
[::std::mem::offset_of!(mpd_context_t, allcr) - 44usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mpd_t {
pub flags: u8,
pub exp: mpd_ssize_t,
pub digits: mpd_ssize_t,
pub len: mpd_ssize_t,
pub alloc: mpd_ssize_t,
pub data: *mut mpd_uint_t,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of mpd_t"][::std::mem::size_of::<mpd_t>() - 48usize];
["Alignment of mpd_t"][::std::mem::align_of::<mpd_t>() - 8usize];
["Offset of field: mpd_t::flags"][::std::mem::offset_of!(mpd_t, flags) - 0usize];
["Offset of field: mpd_t::exp"][::std::mem::offset_of!(mpd_t, exp) - 8usize];
["Offset of field: mpd_t::digits"][::std::mem::offset_of!(mpd_t, digits) - 16usize];
["Offset of field: mpd_t::len"][::std::mem::offset_of!(mpd_t, len) - 24usize];
["Offset of field: mpd_t::alloc"][::std::mem::offset_of!(mpd_t, alloc) - 32usize];
["Offset of field: mpd_t::data"][::std::mem::offset_of!(mpd_t, data) - 40usize];
};
pub const mpd_triple_class_MPD_TRIPLE_NORMAL: mpd_triple_class = 0;
pub const mpd_triple_class_MPD_TRIPLE_INF: mpd_triple_class = 1;
pub const mpd_triple_class_MPD_TRIPLE_QNAN: mpd_triple_class = 2;
pub const mpd_triple_class_MPD_TRIPLE_SNAN: mpd_triple_class = 3;
pub const mpd_triple_class_MPD_TRIPLE_ERROR: mpd_triple_class = 4;
pub type mpd_triple_class = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mpd_uint128_triple_t {
pub tag: mpd_triple_class,
pub sign: u8,
pub hi: u64,
pub lo: u64,
pub exp: i64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of mpd_uint128_triple_t"][::std::mem::size_of::<mpd_uint128_triple_t>() - 32usize];
["Alignment of mpd_uint128_triple_t"][::std::mem::align_of::<mpd_uint128_triple_t>() - 8usize];
["Offset of field: mpd_uint128_triple_t::tag"]
[::std::mem::offset_of!(mpd_uint128_triple_t, tag) - 0usize];
["Offset of field: mpd_uint128_triple_t::sign"]
[::std::mem::offset_of!(mpd_uint128_triple_t, sign) - 4usize];
["Offset of field: mpd_uint128_triple_t::hi"]
[::std::mem::offset_of!(mpd_uint128_triple_t, hi) - 8usize];
["Offset of field: mpd_uint128_triple_t::lo"]
[::std::mem::offset_of!(mpd_uint128_triple_t, lo) - 16usize];
["Offset of field: mpd_uint128_triple_t::exp"]
[::std::mem::offset_of!(mpd_uint128_triple_t, exp) - 24usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mpd_spec_t {
pub min_width: mpd_ssize_t,
pub prec: mpd_ssize_t,
pub type_: ::std::os::raw::c_char,
pub align: ::std::os::raw::c_char,
pub sign: ::std::os::raw::c_char,
pub sign_coerce: ::std::os::raw::c_char,
pub fill: [::std::os::raw::c_char; 5usize],
pub dot: *const ::std::os::raw::c_char,
pub sep: *const ::std::os::raw::c_char,
pub grouping: *const ::std::os::raw::c_char,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of mpd_spec_t"][::std::mem::size_of::<mpd_spec_t>() - 56usize];
["Alignment of mpd_spec_t"][::std::mem::align_of::<mpd_spec_t>() - 8usize];
["Offset of field: mpd_spec_t::min_width"]
[::std::mem::offset_of!(mpd_spec_t, min_width) - 0usize];
["Offset of field: mpd_spec_t::prec"][::std::mem::offset_of!(mpd_spec_t, prec) - 8usize];
["Offset of field: mpd_spec_t::type_"][::std::mem::offset_of!(mpd_spec_t, type_) - 16usize];
["Offset of field: mpd_spec_t::align"][::std::mem::offset_of!(mpd_spec_t, align) - 17usize];
["Offset of field: mpd_spec_t::sign"][::std::mem::offset_of!(mpd_spec_t, sign) - 18usize];
["Offset of field: mpd_spec_t::sign_coerce"]
[::std::mem::offset_of!(mpd_spec_t, sign_coerce) - 19usize];
["Offset of field: mpd_spec_t::fill"][::std::mem::offset_of!(mpd_spec_t, fill) - 20usize];
["Offset of field: mpd_spec_t::dot"][::std::mem::offset_of!(mpd_spec_t, dot) - 32usize];
["Offset of field: mpd_spec_t::sep"][::std::mem::offset_of!(mpd_spec_t, sep) - 40usize];
["Offset of field: mpd_spec_t::grouping"]
[::std::mem::offset_of!(mpd_spec_t, grouping) - 48usize];
};
unsafe extern "C" {
pub fn mpd_version() -> *const ::std::os::raw::c_char;
pub static mut MPD_MINALLOC: mpd_ssize_t;
pub fn mpd_dflt_traphandler(arg1: *mut mpd_context_t);
pub fn mpd_setminalloc(n: mpd_ssize_t);
pub fn mpd_init(ctx: *mut mpd_context_t, prec: mpd_ssize_t);
pub fn mpd_maxcontext(ctx: *mut mpd_context_t);
pub fn mpd_defaultcontext(ctx: *mut mpd_context_t);
pub fn mpd_basiccontext(ctx: *mut mpd_context_t);
pub fn mpd_ieee_context(
ctx: *mut mpd_context_t,
bits: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn mpd_getprec(ctx: *const mpd_context_t) -> mpd_ssize_t;
pub fn mpd_getemax(ctx: *const mpd_context_t) -> mpd_ssize_t;
pub fn mpd_getemin(ctx: *const mpd_context_t) -> mpd_ssize_t;
pub fn mpd_getround(ctx: *const mpd_context_t) -> ::std::os::raw::c_int;
pub fn mpd_gettraps(ctx: *const mpd_context_t) -> u32;
pub fn mpd_getstatus(ctx: *const mpd_context_t) -> u32;
pub fn mpd_getclamp(ctx: *const mpd_context_t) -> ::std::os::raw::c_int;
pub fn mpd_getcr(ctx: *const mpd_context_t) -> ::std::os::raw::c_int;
pub fn mpd_qsetprec(ctx: *mut mpd_context_t, prec: mpd_ssize_t) -> ::std::os::raw::c_int;
pub fn mpd_qsetemax(ctx: *mut mpd_context_t, emax: mpd_ssize_t) -> ::std::os::raw::c_int;
pub fn mpd_qsetemin(ctx: *mut mpd_context_t, emin: mpd_ssize_t) -> ::std::os::raw::c_int;
pub fn mpd_qsetround(
ctx: *mut mpd_context_t,
newround: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn mpd_qsettraps(ctx: *mut mpd_context_t, flags: u32) -> ::std::os::raw::c_int;
pub fn mpd_qsetstatus(ctx: *mut mpd_context_t, flags: u32) -> ::std::os::raw::c_int;
pub fn mpd_qsetclamp(
ctx: *mut mpd_context_t,
c: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn mpd_qsetcr(ctx: *mut mpd_context_t, c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
pub fn mpd_addstatus_raise(ctx: *mut mpd_context_t, flags: u32);
pub fn mpd_from_uint128_triple(
result: *mut mpd_t,
triple: *const mpd_uint128_triple_t,
status: *mut u32,
) -> ::std::os::raw::c_int;
pub fn mpd_as_uint128_triple(a: *const mpd_t) -> mpd_uint128_triple_t;
pub fn mpd_to_sci(dec: *const mpd_t, fmt: ::std::os::raw::c_int)
-> *mut ::std::os::raw::c_char;
pub fn mpd_to_eng(dec: *const mpd_t, fmt: ::std::os::raw::c_int)
-> *mut ::std::os::raw::c_char;
pub fn mpd_to_sci_size(
res: *mut *mut ::std::os::raw::c_char,
dec: *const mpd_t,
fmt: ::std::os::raw::c_int,
) -> mpd_ssize_t;
pub fn mpd_to_eng_size(
res: *mut *mut ::std::os::raw::c_char,
dec: *const mpd_t,
fmt: ::std::os::raw::c_int,
) -> mpd_ssize_t;
pub fn mpd_validate_lconv(spec: *mut mpd_spec_t) -> ::std::os::raw::c_int;
pub fn mpd_parse_fmt_str(
spec: *mut mpd_spec_t,
fmt: *const ::std::os::raw::c_char,
caps: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn mpd_qformat_spec(
dec: *const mpd_t,
spec: *const mpd_spec_t,
ctx: *const mpd_context_t,
status: *mut u32,
) -> *mut ::std::os::raw::c_char;
pub fn mpd_qformat(
dec: *const mpd_t,
fmt: *const ::std::os::raw::c_char,
ctx: *const mpd_context_t,
status: *mut u32,
) -> *mut ::std::os::raw::c_char;
pub fn mpd_snprint_flags(
dest: *mut ::std::os::raw::c_char,
nmemb: ::std::os::raw::c_int,
flags: u32,
) -> ::std::os::raw::c_int;
pub fn mpd_lsnprint_flags(
dest: *mut ::std::os::raw::c_char,
nmemb: ::std::os::raw::c_int,
flags: u32,
flag_string: *mut *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn mpd_lsnprint_signals(
dest: *mut ::std::os::raw::c_char,
nmemb: ::std::os::raw::c_int,
flags: u32,
signal_string: *mut *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn mpd_fprint(file: *mut FILE, dec: *const mpd_t);
pub fn mpd_print(dec: *const mpd_t);
pub fn mpd_qset_string(
dec: *mut mpd_t,
s: *const ::std::os::raw::c_char,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qset_string_exact(
dec: *mut mpd_t,
s: *const ::std::os::raw::c_char,
status: *mut u32,
);
pub fn mpd_seterror(result: *mut mpd_t, flags: u32, status: *mut u32);
pub fn mpd_setspecial(result: *mut mpd_t, sign: u8, type_: u8);
pub fn mpd_zerocoeff(result: *mut mpd_t);
pub fn mpd_qmaxcoeff(result: *mut mpd_t, ctx: *const mpd_context_t, status: *mut u32);
pub fn mpd_qset_ssize(
result: *mut mpd_t,
a: mpd_ssize_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qset_i32(result: *mut mpd_t, a: i32, ctx: *const mpd_context_t, status: *mut u32);
pub fn mpd_qset_uint(
result: *mut mpd_t,
a: mpd_uint_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qset_u32(result: *mut mpd_t, a: u32, ctx: *const mpd_context_t, status: *mut u32);
pub fn mpd_qset_i64(result: *mut mpd_t, a: i64, ctx: *const mpd_context_t, status: *mut u32);
pub fn mpd_qset_u64(result: *mut mpd_t, a: u64, ctx: *const mpd_context_t, status: *mut u32);
pub fn mpd_qset_i64_exact(result: *mut mpd_t, a: i64, status: *mut u32);
pub fn mpd_qset_u64_exact(result: *mut mpd_t, a: u64, status: *mut u32);
pub fn mpd_qsset_ssize(
result: *mut mpd_t,
a: mpd_ssize_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qsset_i32(result: *mut mpd_t, a: i32, ctx: *const mpd_context_t, status: *mut u32);
pub fn mpd_qsset_uint(
result: *mut mpd_t,
a: mpd_uint_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qsset_u32(result: *mut mpd_t, a: u32, ctx: *const mpd_context_t, status: *mut u32);
pub fn mpd_qget_ssize(dec: *const mpd_t, status: *mut u32) -> mpd_ssize_t;
pub fn mpd_qget_uint(dec: *const mpd_t, status: *mut u32) -> mpd_uint_t;
pub fn mpd_qabs_uint(dec: *const mpd_t, status: *mut u32) -> mpd_uint_t;
pub fn mpd_qget_i32(dec: *const mpd_t, status: *mut u32) -> i32;
pub fn mpd_qget_u32(dec: *const mpd_t, status: *mut u32) -> u32;
pub fn mpd_qget_i64(dec: *const mpd_t, status: *mut u32) -> i64;
pub fn mpd_qget_u64(dec: *const mpd_t, status: *mut u32) -> u64;
pub fn mpd_qcheck_nan(
nanresult: *mut mpd_t,
a: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
) -> ::std::os::raw::c_int;
pub fn mpd_qcheck_nans(
nanresult: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
) -> ::std::os::raw::c_int;
pub fn mpd_qfinalize(result: *mut mpd_t, ctx: *const mpd_context_t, status: *mut u32);
pub fn mpd_class(a: *const mpd_t, ctx: *const mpd_context_t) -> *const ::std::os::raw::c_char;
pub fn mpd_qcopy(
result: *mut mpd_t,
a: *const mpd_t,
status: *mut u32,
) -> ::std::os::raw::c_int;
pub fn mpd_qcopy_cxx(result: *mut mpd_t, a: *const mpd_t) -> ::std::os::raw::c_int;
pub fn mpd_qncopy(a: *const mpd_t) -> *mut mpd_t;
pub fn mpd_qcopy_abs(
result: *mut mpd_t,
a: *const mpd_t,
status: *mut u32,
) -> ::std::os::raw::c_int;
pub fn mpd_qcopy_negate(
result: *mut mpd_t,
a: *const mpd_t,
status: *mut u32,
) -> ::std::os::raw::c_int;
pub fn mpd_qcopy_sign(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
status: *mut u32,
) -> ::std::os::raw::c_int;
pub fn mpd_qand(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qinvert(
result: *mut mpd_t,
a: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qlogb(
result: *mut mpd_t,
a: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qor(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qscaleb(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qxor(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_same_quantum(a: *const mpd_t, b: *const mpd_t) -> ::std::os::raw::c_int;
pub fn mpd_qrotate(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qshiftl(
result: *mut mpd_t,
a: *const mpd_t,
n: mpd_ssize_t,
status: *mut u32,
) -> ::std::os::raw::c_int;
pub fn mpd_qshiftr(
result: *mut mpd_t,
a: *const mpd_t,
n: mpd_ssize_t,
status: *mut u32,
) -> mpd_uint_t;
pub fn mpd_qshiftr_inplace(result: *mut mpd_t, n: mpd_ssize_t) -> mpd_uint_t;
pub fn mpd_qshift(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qshiftn(
result: *mut mpd_t,
a: *const mpd_t,
n: mpd_ssize_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qcmp(a: *const mpd_t, b: *const mpd_t, status: *mut u32) -> ::std::os::raw::c_int;
pub fn mpd_qcompare(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
) -> ::std::os::raw::c_int;
pub fn mpd_qcompare_signal(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
) -> ::std::os::raw::c_int;
pub fn mpd_cmp_total(a: *const mpd_t, b: *const mpd_t) -> ::std::os::raw::c_int;
pub fn mpd_cmp_total_mag(a: *const mpd_t, b: *const mpd_t) -> ::std::os::raw::c_int;
pub fn mpd_compare_total(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
) -> ::std::os::raw::c_int;
pub fn mpd_compare_total_mag(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
) -> ::std::os::raw::c_int;
pub fn mpd_qround_to_intx(
result: *mut mpd_t,
a: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qround_to_int(
result: *mut mpd_t,
a: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qtrunc(
result: *mut mpd_t,
a: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qfloor(
result: *mut mpd_t,
a: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qceil(
result: *mut mpd_t,
a: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qabs(
result: *mut mpd_t,
a: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qmax(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qmax_mag(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qmin(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qmin_mag(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qminus(
result: *mut mpd_t,
a: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qplus(
result: *mut mpd_t,
a: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qnext_minus(
result: *mut mpd_t,
a: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qnext_plus(
result: *mut mpd_t,
a: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qnext_toward(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qquantize(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qrescale(
result: *mut mpd_t,
a: *const mpd_t,
exp: mpd_ssize_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qrescale_fmt(
result: *mut mpd_t,
a: *const mpd_t,
exp: mpd_ssize_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qreduce(
result: *mut mpd_t,
a: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qadd(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qadd_ssize(
result: *mut mpd_t,
a: *const mpd_t,
b: mpd_ssize_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qadd_i32(
result: *mut mpd_t,
a: *const mpd_t,
b: i32,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qadd_uint(
result: *mut mpd_t,
a: *const mpd_t,
b: mpd_uint_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qadd_u32(
result: *mut mpd_t,
a: *const mpd_t,
b: u32,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qsub(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qsub_ssize(
result: *mut mpd_t,
a: *const mpd_t,
b: mpd_ssize_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qsub_i32(
result: *mut mpd_t,
a: *const mpd_t,
b: i32,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qsub_uint(
result: *mut mpd_t,
a: *const mpd_t,
b: mpd_uint_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qsub_u32(
result: *mut mpd_t,
a: *const mpd_t,
b: u32,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qmul(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qmul_ssize(
result: *mut mpd_t,
a: *const mpd_t,
b: mpd_ssize_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qmul_i32(
result: *mut mpd_t,
a: *const mpd_t,
b: i32,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qmul_uint(
result: *mut mpd_t,
a: *const mpd_t,
b: mpd_uint_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qmul_u32(
result: *mut mpd_t,
a: *const mpd_t,
b: u32,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qfma(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
c: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qdiv(
q: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qdiv_ssize(
result: *mut mpd_t,
a: *const mpd_t,
b: mpd_ssize_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qdiv_i32(
result: *mut mpd_t,
a: *const mpd_t,
b: i32,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qdiv_uint(
result: *mut mpd_t,
a: *const mpd_t,
b: mpd_uint_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qdiv_u32(
result: *mut mpd_t,
a: *const mpd_t,
b: u32,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qdivint(
q: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qrem(
r: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qrem_near(
r: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qdivmod(
q: *mut mpd_t,
r: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qpow(
result: *mut mpd_t,
base: *const mpd_t,
exp: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qpowmod(
result: *mut mpd_t,
base: *const mpd_t,
exp: *const mpd_t,
mod_: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qexp(
result: *mut mpd_t,
a: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qln10(result: *mut mpd_t, prec: mpd_ssize_t, status: *mut u32);
pub fn mpd_qln(
result: *mut mpd_t,
a: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qlog10(
result: *mut mpd_t,
a: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qsqrt(
result: *mut mpd_t,
a: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qinvroot(
result: *mut mpd_t,
a: *const mpd_t,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qadd_i64(
result: *mut mpd_t,
a: *const mpd_t,
b: i64,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qadd_u64(
result: *mut mpd_t,
a: *const mpd_t,
b: u64,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qsub_i64(
result: *mut mpd_t,
a: *const mpd_t,
b: i64,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qsub_u64(
result: *mut mpd_t,
a: *const mpd_t,
b: u64,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qmul_i64(
result: *mut mpd_t,
a: *const mpd_t,
b: i64,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qmul_u64(
result: *mut mpd_t,
a: *const mpd_t,
b: u64,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qdiv_i64(
result: *mut mpd_t,
a: *const mpd_t,
b: i64,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qdiv_u64(
result: *mut mpd_t,
a: *const mpd_t,
b: u64,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_sizeinbase(a: *const mpd_t, base: u32) -> usize;
pub fn mpd_qimport_u16(
result: *mut mpd_t,
srcdata: *const u16,
srclen: usize,
srcsign: u8,
srcbase: u32,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qimport_u32(
result: *mut mpd_t,
srcdata: *const u32,
srclen: usize,
srcsign: u8,
srcbase: u32,
ctx: *const mpd_context_t,
status: *mut u32,
);
pub fn mpd_qexport_u16(
rdata: *mut *mut u16,
rlen: usize,
base: u32,
src: *const mpd_t,
status: *mut u32,
) -> usize;
pub fn mpd_qexport_u32(
rdata: *mut *mut u32,
rlen: usize,
base: u32,
src: *const mpd_t,
status: *mut u32,
) -> usize;
pub fn mpd_format(
dec: *const mpd_t,
fmt: *const ::std::os::raw::c_char,
ctx: *mut mpd_context_t,
) -> *mut ::std::os::raw::c_char;
pub fn mpd_import_u16(
result: *mut mpd_t,
srcdata: *const u16,
srclen: usize,
srcsign: u8,
base: u32,
ctx: *mut mpd_context_t,
);
pub fn mpd_import_u32(
result: *mut mpd_t,
srcdata: *const u32,
srclen: usize,
srcsign: u8,
base: u32,
ctx: *mut mpd_context_t,
);
pub fn mpd_export_u16(
rdata: *mut *mut u16,
rlen: usize,
base: u32,
src: *const mpd_t,
ctx: *mut mpd_context_t,
) -> usize;
pub fn mpd_export_u32(
rdata: *mut *mut u32,
rlen: usize,
base: u32,
src: *const mpd_t,
ctx: *mut mpd_context_t,
) -> usize;
pub fn mpd_finalize(result: *mut mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_check_nan(
result: *mut mpd_t,
a: *const mpd_t,
ctx: *mut mpd_context_t,
) -> ::std::os::raw::c_int;
pub fn mpd_check_nans(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *mut mpd_context_t,
) -> ::std::os::raw::c_int;
pub fn mpd_set_string(
result: *mut mpd_t,
s: *const ::std::os::raw::c_char,
ctx: *mut mpd_context_t,
);
pub fn mpd_maxcoeff(result: *mut mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_sset_ssize(result: *mut mpd_t, a: mpd_ssize_t, ctx: *mut mpd_context_t);
pub fn mpd_sset_i32(result: *mut mpd_t, a: i32, ctx: *mut mpd_context_t);
pub fn mpd_sset_uint(result: *mut mpd_t, a: mpd_uint_t, ctx: *mut mpd_context_t);
pub fn mpd_sset_u32(result: *mut mpd_t, a: u32, ctx: *mut mpd_context_t);
pub fn mpd_set_ssize(result: *mut mpd_t, a: mpd_ssize_t, ctx: *mut mpd_context_t);
pub fn mpd_set_i32(result: *mut mpd_t, a: i32, ctx: *mut mpd_context_t);
pub fn mpd_set_uint(result: *mut mpd_t, a: mpd_uint_t, ctx: *mut mpd_context_t);
pub fn mpd_set_u32(result: *mut mpd_t, a: u32, ctx: *mut mpd_context_t);
pub fn mpd_set_i64(result: *mut mpd_t, a: i64, ctx: *mut mpd_context_t);
pub fn mpd_set_u64(result: *mut mpd_t, a: u64, ctx: *mut mpd_context_t);
pub fn mpd_get_ssize(a: *const mpd_t, ctx: *mut mpd_context_t) -> mpd_ssize_t;
pub fn mpd_get_uint(a: *const mpd_t, ctx: *mut mpd_context_t) -> mpd_uint_t;
pub fn mpd_abs_uint(a: *const mpd_t, ctx: *mut mpd_context_t) -> mpd_uint_t;
pub fn mpd_get_i32(a: *const mpd_t, ctx: *mut mpd_context_t) -> i32;
pub fn mpd_get_u32(a: *const mpd_t, ctx: *mut mpd_context_t) -> u32;
pub fn mpd_get_i64(a: *const mpd_t, ctx: *mut mpd_context_t) -> i64;
pub fn mpd_get_u64(a: *const mpd_t, ctx: *mut mpd_context_t) -> u64;
pub fn mpd_and(result: *mut mpd_t, a: *const mpd_t, b: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_copy(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_canonical(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_copy_abs(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_copy_negate(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_copy_sign(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *mut mpd_context_t,
);
pub fn mpd_invert(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_logb(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_or(result: *mut mpd_t, a: *const mpd_t, b: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_rotate(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *mut mpd_context_t,
);
pub fn mpd_scaleb(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *mut mpd_context_t,
);
pub fn mpd_shiftl(result: *mut mpd_t, a: *const mpd_t, n: mpd_ssize_t, ctx: *mut mpd_context_t);
pub fn mpd_shiftr(
result: *mut mpd_t,
a: *const mpd_t,
n: mpd_ssize_t,
ctx: *mut mpd_context_t,
) -> mpd_uint_t;
pub fn mpd_shiftn(result: *mut mpd_t, a: *const mpd_t, n: mpd_ssize_t, ctx: *mut mpd_context_t);
pub fn mpd_shift(result: *mut mpd_t, a: *const mpd_t, b: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_xor(result: *mut mpd_t, a: *const mpd_t, b: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_abs(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_cmp(
a: *const mpd_t,
b: *const mpd_t,
ctx: *mut mpd_context_t,
) -> ::std::os::raw::c_int;
pub fn mpd_compare(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *mut mpd_context_t,
) -> ::std::os::raw::c_int;
pub fn mpd_compare_signal(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *mut mpd_context_t,
) -> ::std::os::raw::c_int;
pub fn mpd_add(result: *mut mpd_t, a: *const mpd_t, b: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_add_ssize(
result: *mut mpd_t,
a: *const mpd_t,
b: mpd_ssize_t,
ctx: *mut mpd_context_t,
);
pub fn mpd_add_i32(result: *mut mpd_t, a: *const mpd_t, b: i32, ctx: *mut mpd_context_t);
pub fn mpd_add_uint(
result: *mut mpd_t,
a: *const mpd_t,
b: mpd_uint_t,
ctx: *mut mpd_context_t,
);
pub fn mpd_add_u32(result: *mut mpd_t, a: *const mpd_t, b: u32, ctx: *mut mpd_context_t);
pub fn mpd_sub(result: *mut mpd_t, a: *const mpd_t, b: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_sub_ssize(
result: *mut mpd_t,
a: *const mpd_t,
b: mpd_ssize_t,
ctx: *mut mpd_context_t,
);
pub fn mpd_sub_i32(result: *mut mpd_t, a: *const mpd_t, b: i32, ctx: *mut mpd_context_t);
pub fn mpd_sub_uint(
result: *mut mpd_t,
a: *const mpd_t,
b: mpd_uint_t,
ctx: *mut mpd_context_t,
);
pub fn mpd_sub_u32(result: *mut mpd_t, a: *const mpd_t, b: u32, ctx: *mut mpd_context_t);
pub fn mpd_div(q: *mut mpd_t, a: *const mpd_t, b: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_div_ssize(
result: *mut mpd_t,
a: *const mpd_t,
b: mpd_ssize_t,
ctx: *mut mpd_context_t,
);
pub fn mpd_div_i32(result: *mut mpd_t, a: *const mpd_t, b: i32, ctx: *mut mpd_context_t);
pub fn mpd_div_uint(
result: *mut mpd_t,
a: *const mpd_t,
b: mpd_uint_t,
ctx: *mut mpd_context_t,
);
pub fn mpd_div_u32(result: *mut mpd_t, a: *const mpd_t, b: u32, ctx: *mut mpd_context_t);
pub fn mpd_divmod(
q: *mut mpd_t,
r: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *mut mpd_context_t,
);
pub fn mpd_divint(q: *mut mpd_t, a: *const mpd_t, b: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_exp(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_fma(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
c: *const mpd_t,
ctx: *mut mpd_context_t,
);
pub fn mpd_ln(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_log10(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_max(result: *mut mpd_t, a: *const mpd_t, b: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_max_mag(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *mut mpd_context_t,
);
pub fn mpd_min(result: *mut mpd_t, a: *const mpd_t, b: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_min_mag(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *mut mpd_context_t,
);
pub fn mpd_minus(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_mul(result: *mut mpd_t, a: *const mpd_t, b: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_mul_ssize(
result: *mut mpd_t,
a: *const mpd_t,
b: mpd_ssize_t,
ctx: *mut mpd_context_t,
);
pub fn mpd_mul_i32(result: *mut mpd_t, a: *const mpd_t, b: i32, ctx: *mut mpd_context_t);
pub fn mpd_mul_uint(
result: *mut mpd_t,
a: *const mpd_t,
b: mpd_uint_t,
ctx: *mut mpd_context_t,
);
pub fn mpd_mul_u32(result: *mut mpd_t, a: *const mpd_t, b: u32, ctx: *mut mpd_context_t);
pub fn mpd_next_minus(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_next_plus(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_next_toward(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *mut mpd_context_t,
);
pub fn mpd_plus(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_pow(
result: *mut mpd_t,
base: *const mpd_t,
exp: *const mpd_t,
ctx: *mut mpd_context_t,
);
pub fn mpd_powmod(
result: *mut mpd_t,
base: *const mpd_t,
exp: *const mpd_t,
mod_: *const mpd_t,
ctx: *mut mpd_context_t,
);
pub fn mpd_quantize(
result: *mut mpd_t,
a: *const mpd_t,
b: *const mpd_t,
ctx: *mut mpd_context_t,
);
pub fn mpd_rescale(
result: *mut mpd_t,
a: *const mpd_t,
exp: mpd_ssize_t,
ctx: *mut mpd_context_t,
);
pub fn mpd_reduce(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_rem(r: *mut mpd_t, a: *const mpd_t, b: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_rem_near(r: *mut mpd_t, a: *const mpd_t, b: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_round_to_intx(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_round_to_int(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_trunc(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_floor(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_ceil(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_sqrt(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_invroot(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
pub fn mpd_add_i64(result: *mut mpd_t, a: *const mpd_t, b: i64, ctx: *mut mpd_context_t);
pub fn mpd_add_u64(result: *mut mpd_t, a: *const mpd_t, b: u64, ctx: *mut mpd_context_t);
pub fn mpd_sub_i64(result: *mut mpd_t, a: *const mpd_t, b: i64, ctx: *mut mpd_context_t);
pub fn mpd_sub_u64(result: *mut mpd_t, a: *const mpd_t, b: u64, ctx: *mut mpd_context_t);
pub fn mpd_div_i64(result: *mut mpd_t, a: *const mpd_t, b: i64, ctx: *mut mpd_context_t);
pub fn mpd_div_u64(result: *mut mpd_t, a: *const mpd_t, b: u64, ctx: *mut mpd_context_t);
pub fn mpd_mul_i64(result: *mut mpd_t, a: *const mpd_t, b: i64, ctx: *mut mpd_context_t);
pub fn mpd_mul_u64(result: *mut mpd_t, a: *const mpd_t, b: u64, ctx: *mut mpd_context_t);
pub fn mpd_qsset_i64(result: *mut mpd_t, a: i64, ctx: *const mpd_context_t, status: *mut u32);
pub fn mpd_qsset_u64(result: *mut mpd_t, a: u64, ctx: *const mpd_context_t, status: *mut u32);
pub fn mpd_sset_i64(result: *mut mpd_t, a: i64, ctx: *mut mpd_context_t);
pub fn mpd_sset_u64(result: *mut mpd_t, a: u64, ctx: *mut mpd_context_t);
pub fn mpd_adjexp(dec: *const mpd_t) -> mpd_ssize_t;
pub fn mpd_etiny(ctx: *const mpd_context_t) -> mpd_ssize_t;
pub fn mpd_etop(ctx: *const mpd_context_t) -> mpd_ssize_t;
pub fn mpd_msword(dec: *const mpd_t) -> mpd_uint_t;
pub fn mpd_word_digits(word: mpd_uint_t) -> ::std::os::raw::c_int;
pub fn mpd_msd(word: mpd_uint_t) -> mpd_uint_t;
pub fn mpd_lsd(word: mpd_uint_t) -> mpd_uint_t;
pub fn mpd_digits_to_size(digits: mpd_ssize_t) -> mpd_ssize_t;
pub fn mpd_exp_digits(exp: mpd_ssize_t) -> ::std::os::raw::c_int;
pub fn mpd_iscanonical(dec: *const mpd_t) -> ::std::os::raw::c_int;
pub fn mpd_isfinite(dec: *const mpd_t) -> ::std::os::raw::c_int;
pub fn mpd_isinfinite(dec: *const mpd_t) -> ::std::os::raw::c_int;
pub fn mpd_isinteger(dec: *const mpd_t) -> ::std::os::raw::c_int;
pub fn mpd_isnan(dec: *const mpd_t) -> ::std::os::raw::c_int;
pub fn mpd_isnegative(dec: *const mpd_t) -> ::std::os::raw::c_int;
pub fn mpd_ispositive(dec: *const mpd_t) -> ::std::os::raw::c_int;
pub fn mpd_isqnan(dec: *const mpd_t) -> ::std::os::raw::c_int;
pub fn mpd_issigned(dec: *const mpd_t) -> ::std::os::raw::c_int;
pub fn mpd_issnan(dec: *const mpd_t) -> ::std::os::raw::c_int;
pub fn mpd_isspecial(dec: *const mpd_t) -> ::std::os::raw::c_int;
pub fn mpd_iszero(dec: *const mpd_t) -> ::std::os::raw::c_int;
pub fn mpd_iszerocoeff(dec: *const mpd_t) -> ::std::os::raw::c_int;
pub fn mpd_isnormal(dec: *const mpd_t, ctx: *const mpd_context_t) -> ::std::os::raw::c_int;
pub fn mpd_issubnormal(dec: *const mpd_t, ctx: *const mpd_context_t) -> ::std::os::raw::c_int;
pub fn mpd_isoddword(word: mpd_uint_t) -> ::std::os::raw::c_int;
pub fn mpd_isoddcoeff(dec: *const mpd_t) -> ::std::os::raw::c_int;
pub fn mpd_isodd(dec: *const mpd_t) -> ::std::os::raw::c_int;
pub fn mpd_iseven(dec: *const mpd_t) -> ::std::os::raw::c_int;
pub fn mpd_sign(dec: *const mpd_t) -> u8;
pub fn mpd_arith_sign(dec: *const mpd_t) -> ::std::os::raw::c_int;
pub fn mpd_radix() -> ::std::os::raw::c_long;
pub fn mpd_isdynamic(dec: *const mpd_t) -> ::std::os::raw::c_int;
pub fn mpd_isstatic(dec: *const mpd_t) -> ::std::os::raw::c_int;
pub fn mpd_isdynamic_data(dec: *const mpd_t) -> ::std::os::raw::c_int;
pub fn mpd_isstatic_data(dec: *const mpd_t) -> ::std::os::raw::c_int;
pub fn mpd_isshared_data(dec: *const mpd_t) -> ::std::os::raw::c_int;
pub fn mpd_isconst_data(dec: *const mpd_t) -> ::std::os::raw::c_int;
pub fn mpd_trail_zeros(dec: *const mpd_t) -> mpd_ssize_t;
pub fn mpd_setdigits(result: *mut mpd_t);
pub fn mpd_set_sign(result: *mut mpd_t, sign: u8);
pub fn mpd_signcpy(result: *mut mpd_t, a: *const mpd_t);
pub fn mpd_set_infinity(result: *mut mpd_t);
pub fn mpd_set_qnan(result: *mut mpd_t);
pub fn mpd_set_snan(result: *mut mpd_t);
pub fn mpd_set_negative(result: *mut mpd_t);
pub fn mpd_set_positive(result: *mut mpd_t);
pub fn mpd_set_dynamic(result: *mut mpd_t);
pub fn mpd_set_static(result: *mut mpd_t);
pub fn mpd_set_dynamic_data(result: *mut mpd_t);
pub fn mpd_set_static_data(result: *mut mpd_t);
pub fn mpd_set_shared_data(result: *mut mpd_t);
pub fn mpd_set_const_data(result: *mut mpd_t);
pub fn mpd_clear_flags(result: *mut mpd_t);
pub fn mpd_set_flags(result: *mut mpd_t, flags: u8);
pub fn mpd_copy_flags(result: *mut mpd_t, a: *const mpd_t);
pub fn mpd_callocfunc_em(nmemb: usize, size: usize) -> *mut ::std::os::raw::c_void;
pub fn mpd_alloc(nmemb: mpd_size_t, size: mpd_size_t) -> *mut ::std::os::raw::c_void;
pub fn mpd_calloc(nmemb: mpd_size_t, size: mpd_size_t) -> *mut ::std::os::raw::c_void;
pub fn mpd_realloc(
ptr: *mut ::std::os::raw::c_void,
nmemb: mpd_size_t,
size: mpd_size_t,
err: *mut u8,
) -> *mut ::std::os::raw::c_void;
pub fn mpd_sh_alloc(
struct_size: mpd_size_t,
nmemb: mpd_size_t,
size: mpd_size_t,
) -> *mut ::std::os::raw::c_void;
pub fn mpd_qnew() -> *mut mpd_t;
pub fn mpd_new(ctx: *mut mpd_context_t) -> *mut mpd_t;
pub fn mpd_qnew_size(nwords: mpd_ssize_t) -> *mut mpd_t;
pub fn mpd_del(dec: *mut mpd_t);
pub fn mpd_uint_zero(dest: *mut mpd_uint_t, len: mpd_size_t);
pub fn mpd_qresize(
result: *mut mpd_t,
nwords: mpd_ssize_t,
status: *mut u32,
) -> ::std::os::raw::c_int;
pub fn mpd_qresize_zero(
result: *mut mpd_t,
nwords: mpd_ssize_t,
status: *mut u32,
) -> ::std::os::raw::c_int;
pub fn mpd_minalloc(result: *mut mpd_t);
pub fn mpd_resize(
result: *mut mpd_t,
nwords: mpd_ssize_t,
ctx: *mut mpd_context_t,
) -> ::std::os::raw::c_int;
pub fn mpd_resize_zero(
result: *mut mpd_t,
nwords: mpd_ssize_t,
ctx: *mut mpd_context_t,
) -> ::std::os::raw::c_int;
}