1#[repr(C)]
4#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
5pub struct __BindgenBitfieldUnit<Storage> {
6 storage: Storage,
7}
8impl<Storage> __BindgenBitfieldUnit<Storage> {
9 #[inline]
10 pub const fn new(storage: Storage) -> Self {
11 Self { storage }
12 }
13}
14impl<Storage> __BindgenBitfieldUnit<Storage>
15where
16 Storage: AsRef<[u8]> + AsMut<[u8]>,
17{
18 #[inline]
19 fn extract_bit(byte: u8, index: usize) -> bool {
20 let bit_index = if cfg!(target_endian = "big") {
21 7 - (index % 8)
22 } else {
23 index % 8
24 };
25 let mask = 1 << bit_index;
26 byte & mask == mask
27 }
28 #[inline]
29 pub fn get_bit(&self, index: usize) -> bool {
30 debug_assert!(index / 8 < self.storage.as_ref().len());
31 let byte_index = index / 8;
32 let byte = self.storage.as_ref()[byte_index];
33 Self::extract_bit(byte, index)
34 }
35 #[inline]
36 pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
37 debug_assert!(index / 8 < core::mem::size_of::<Storage>());
38 let byte_index = index / 8;
39 let byte = unsafe {
40 *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize)
41 };
42 Self::extract_bit(byte, index)
43 }
44 #[inline]
45 fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
46 let bit_index = if cfg!(target_endian = "big") {
47 7 - (index % 8)
48 } else {
49 index % 8
50 };
51 let mask = 1 << bit_index;
52 if val { byte | mask } else { byte & !mask }
53 }
54 #[inline]
55 pub fn set_bit(&mut self, index: usize, val: bool) {
56 debug_assert!(index / 8 < self.storage.as_ref().len());
57 let byte_index = index / 8;
58 let byte = &mut self.storage.as_mut()[byte_index];
59 *byte = Self::change_bit(*byte, index, val);
60 }
61 #[inline]
62 pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
63 debug_assert!(index / 8 < core::mem::size_of::<Storage>());
64 let byte_index = index / 8;
65 let byte = unsafe {
66 (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize)
67 };
68 unsafe { *byte = Self::change_bit(*byte, index, val) };
69 }
70 #[inline]
71 pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
72 debug_assert!(bit_width <= 64);
73 debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
74 debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
75 let mut val = 0;
76 for i in 0..(bit_width as usize) {
77 if self.get_bit(i + bit_offset) {
78 let index = if cfg!(target_endian = "big") {
79 bit_width as usize - 1 - i
80 } else {
81 i
82 };
83 val |= 1 << index;
84 }
85 }
86 val
87 }
88 #[inline]
89 pub unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
90 debug_assert!(bit_width <= 64);
91 debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
92 debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
93 let mut val = 0;
94 for i in 0..(bit_width as usize) {
95 if unsafe { Self::raw_get_bit(this, i + bit_offset) } {
96 let index = if cfg!(target_endian = "big") {
97 bit_width as usize - 1 - i
98 } else {
99 i
100 };
101 val |= 1 << index;
102 }
103 }
104 val
105 }
106 #[inline]
107 pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
108 debug_assert!(bit_width <= 64);
109 debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
110 debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
111 for i in 0..(bit_width as usize) {
112 let mask = 1 << i;
113 let val_bit_is_set = val & mask == mask;
114 let index = if cfg!(target_endian = "big") {
115 bit_width as usize - 1 - i
116 } else {
117 i
118 };
119 self.set_bit(index + bit_offset, val_bit_is_set);
120 }
121 }
122 #[inline]
123 pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
124 debug_assert!(bit_width <= 64);
125 debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
126 debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
127 for i in 0..(bit_width as usize) {
128 let mask = 1 << i;
129 let val_bit_is_set = val & mask == mask;
130 let index = if cfg!(target_endian = "big") {
131 bit_width as usize - 1 - i
132 } else {
133 i
134 };
135 unsafe { Self::raw_set_bit(this, index + bit_offset, val_bit_is_set) };
136 }
137 }
138}
139pub const MPD_HIDE_SYMBOLS_START: &[u8; 28] = b"GCC visibility push(hidden)\0";
140pub const MPD_HIDE_SYMBOLS_END: &[u8; 19] = b"GCC visibility pop\0";
141pub const MPD_MAJOR_VERSION: u32 = 4;
142pub const MPD_MINOR_VERSION: u32 = 0;
143pub const MPD_MICRO_VERSION: u32 = 1;
144pub const MPD_VERSION: &[u8; 6] = b"4.0.1\0";
145pub const MPD_VERSION_HEX: u32 = 67109120;
146pub const MPD_CONFIG_64: u32 = 1;
147pub const MPD_BITS_PER_UINT: u32 = 64;
148pub const MPD_SIZE_MAX: i32 = -1;
149pub const MPD_RADIX: i64 = -8446744073709551616;
150pub const MPD_RDIGITS: u32 = 19;
151pub const MPD_MAX_POW10: u32 = 19;
152pub const MPD_EXPDIGITS: u32 = 19;
153pub const MPD_MAXTRANSFORM_2N: u64 = 4294967296;
154pub const MPD_MAX_PREC: u64 = 999999999999999999;
155pub const MPD_MAX_PREC_LOG2: u32 = 64;
156pub const MPD_ELIMIT: u64 = 1000000000000000000;
157pub const MPD_MAX_EMAX: u64 = 999999999999999999;
158pub const MPD_MIN_EMIN: i64 = -999999999999999999;
159pub const MPD_MIN_ETINY: i64 = -1999999999999999997;
160pub const MPD_EXP_INF: u64 = 2000000000000000001;
161pub const MPD_EXP_CLAMP: i64 = -4000000000000000001;
162pub const MPD_MAXIMPORT: u64 = 105263157894736842;
163pub const MPD_IEEE_CONTEXT_MAX_BITS: u32 = 512;
164pub const MPD_Clamped: u32 = 1;
165pub const MPD_Conversion_syntax: u32 = 2;
166pub const MPD_Division_by_zero: u32 = 4;
167pub const MPD_Division_impossible: u32 = 8;
168pub const MPD_Division_undefined: u32 = 16;
169pub const MPD_Fpu_error: u32 = 32;
170pub const MPD_Inexact: u32 = 64;
171pub const MPD_Invalid_context: u32 = 128;
172pub const MPD_Invalid_operation: u32 = 256;
173pub const MPD_Malloc_error: u32 = 512;
174pub const MPD_Not_implemented: u32 = 1024;
175pub const MPD_Overflow: u32 = 2048;
176pub const MPD_Rounded: u32 = 4096;
177pub const MPD_Subnormal: u32 = 8192;
178pub const MPD_Underflow: u32 = 16384;
179pub const MPD_Max_status: u32 = 32767;
180pub const MPD_IEEE_Invalid_operation: u32 = 954;
181pub const MPD_Errors: u32 = 958;
182pub const MPD_Traps: u32 = 19390;
183pub const MPD_Insufficient_storage: u32 = 512;
184pub const MPD_DECIMAL32: u32 = 32;
185pub const MPD_DECIMAL64: u32 = 64;
186pub const MPD_DECIMAL128: u32 = 128;
187pub const MPD_MINALLOC_MIN: u32 = 2;
188pub const MPD_MINALLOC_MAX: u32 = 64;
189pub const MPD_NUM_FLAGS: u32 = 15;
190pub const MPD_MAX_FLAG_STRING: u32 = 208;
191pub const MPD_MAX_FLAG_LIST: u32 = 226;
192pub const MPD_MAX_SIGNAL_LIST: u32 = 121;
193pub type __off_t = ::std::os::raw::c_long;
194pub type __off64_t = ::std::os::raw::c_long;
195pub type FILE = _IO_FILE;
196#[repr(C)]
197#[derive(Debug, Copy, Clone)]
198pub struct _IO_marker {
199 _unused: [u8; 0],
200}
201#[repr(C)]
202#[derive(Debug, Copy, Clone)]
203pub struct _IO_codecvt {
204 _unused: [u8; 0],
205}
206#[repr(C)]
207#[derive(Debug, Copy, Clone)]
208pub struct _IO_wide_data {
209 _unused: [u8; 0],
210}
211pub type _IO_lock_t = ::std::os::raw::c_void;
212#[repr(C)]
213#[derive(Debug, Copy, Clone)]
214pub struct _IO_FILE {
215 pub _flags: ::std::os::raw::c_int,
216 pub _IO_read_ptr: *mut ::std::os::raw::c_char,
217 pub _IO_read_end: *mut ::std::os::raw::c_char,
218 pub _IO_read_base: *mut ::std::os::raw::c_char,
219 pub _IO_write_base: *mut ::std::os::raw::c_char,
220 pub _IO_write_ptr: *mut ::std::os::raw::c_char,
221 pub _IO_write_end: *mut ::std::os::raw::c_char,
222 pub _IO_buf_base: *mut ::std::os::raw::c_char,
223 pub _IO_buf_end: *mut ::std::os::raw::c_char,
224 pub _IO_save_base: *mut ::std::os::raw::c_char,
225 pub _IO_backup_base: *mut ::std::os::raw::c_char,
226 pub _IO_save_end: *mut ::std::os::raw::c_char,
227 pub _markers: *mut _IO_marker,
228 pub _chain: *mut _IO_FILE,
229 pub _fileno: ::std::os::raw::c_int,
230 pub _bitfield_align_1: [u32; 0],
231 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>,
232 pub _short_backupbuf: [::std::os::raw::c_char; 1usize],
233 pub _old_offset: __off_t,
234 pub _cur_column: ::std::os::raw::c_ushort,
235 pub _vtable_offset: ::std::os::raw::c_schar,
236 pub _shortbuf: [::std::os::raw::c_char; 1usize],
237 pub _lock: *mut _IO_lock_t,
238 pub _offset: __off64_t,
239 pub _codecvt: *mut _IO_codecvt,
240 pub _wide_data: *mut _IO_wide_data,
241 pub _freeres_list: *mut _IO_FILE,
242 pub _freeres_buf: *mut ::std::os::raw::c_void,
243 pub _prevchain: *mut *mut _IO_FILE,
244 pub _mode: ::std::os::raw::c_int,
245 pub _unused2: [::std::os::raw::c_char; 20usize],
246}
247#[allow(clippy::unnecessary_operation, clippy::identity_op)]
248const _: () = {
249 ["Size of _IO_FILE"][::std::mem::size_of::<_IO_FILE>() - 216usize];
250 ["Alignment of _IO_FILE"][::std::mem::align_of::<_IO_FILE>() - 8usize];
251 ["Offset of field: _IO_FILE::_flags"][::std::mem::offset_of!(_IO_FILE, _flags) - 0usize];
252 ["Offset of field: _IO_FILE::_IO_read_ptr"]
253 [::std::mem::offset_of!(_IO_FILE, _IO_read_ptr) - 8usize];
254 ["Offset of field: _IO_FILE::_IO_read_end"]
255 [::std::mem::offset_of!(_IO_FILE, _IO_read_end) - 16usize];
256 ["Offset of field: _IO_FILE::_IO_read_base"]
257 [::std::mem::offset_of!(_IO_FILE, _IO_read_base) - 24usize];
258 ["Offset of field: _IO_FILE::_IO_write_base"]
259 [::std::mem::offset_of!(_IO_FILE, _IO_write_base) - 32usize];
260 ["Offset of field: _IO_FILE::_IO_write_ptr"]
261 [::std::mem::offset_of!(_IO_FILE, _IO_write_ptr) - 40usize];
262 ["Offset of field: _IO_FILE::_IO_write_end"]
263 [::std::mem::offset_of!(_IO_FILE, _IO_write_end) - 48usize];
264 ["Offset of field: _IO_FILE::_IO_buf_base"]
265 [::std::mem::offset_of!(_IO_FILE, _IO_buf_base) - 56usize];
266 ["Offset of field: _IO_FILE::_IO_buf_end"]
267 [::std::mem::offset_of!(_IO_FILE, _IO_buf_end) - 64usize];
268 ["Offset of field: _IO_FILE::_IO_save_base"]
269 [::std::mem::offset_of!(_IO_FILE, _IO_save_base) - 72usize];
270 ["Offset of field: _IO_FILE::_IO_backup_base"]
271 [::std::mem::offset_of!(_IO_FILE, _IO_backup_base) - 80usize];
272 ["Offset of field: _IO_FILE::_IO_save_end"]
273 [::std::mem::offset_of!(_IO_FILE, _IO_save_end) - 88usize];
274 ["Offset of field: _IO_FILE::_markers"][::std::mem::offset_of!(_IO_FILE, _markers) - 96usize];
275 ["Offset of field: _IO_FILE::_chain"][::std::mem::offset_of!(_IO_FILE, _chain) - 104usize];
276 ["Offset of field: _IO_FILE::_fileno"][::std::mem::offset_of!(_IO_FILE, _fileno) - 112usize];
277 ["Offset of field: _IO_FILE::_short_backupbuf"]
278 [::std::mem::offset_of!(_IO_FILE, _short_backupbuf) - 119usize];
279 ["Offset of field: _IO_FILE::_old_offset"]
280 [::std::mem::offset_of!(_IO_FILE, _old_offset) - 120usize];
281 ["Offset of field: _IO_FILE::_cur_column"]
282 [::std::mem::offset_of!(_IO_FILE, _cur_column) - 128usize];
283 ["Offset of field: _IO_FILE::_vtable_offset"]
284 [::std::mem::offset_of!(_IO_FILE, _vtable_offset) - 130usize];
285 ["Offset of field: _IO_FILE::_shortbuf"]
286 [::std::mem::offset_of!(_IO_FILE, _shortbuf) - 131usize];
287 ["Offset of field: _IO_FILE::_lock"][::std::mem::offset_of!(_IO_FILE, _lock) - 136usize];
288 ["Offset of field: _IO_FILE::_offset"][::std::mem::offset_of!(_IO_FILE, _offset) - 144usize];
289 ["Offset of field: _IO_FILE::_codecvt"][::std::mem::offset_of!(_IO_FILE, _codecvt) - 152usize];
290 ["Offset of field: _IO_FILE::_wide_data"]
291 [::std::mem::offset_of!(_IO_FILE, _wide_data) - 160usize];
292 ["Offset of field: _IO_FILE::_freeres_list"]
293 [::std::mem::offset_of!(_IO_FILE, _freeres_list) - 168usize];
294 ["Offset of field: _IO_FILE::_freeres_buf"]
295 [::std::mem::offset_of!(_IO_FILE, _freeres_buf) - 176usize];
296 ["Offset of field: _IO_FILE::_prevchain"]
297 [::std::mem::offset_of!(_IO_FILE, _prevchain) - 184usize];
298 ["Offset of field: _IO_FILE::_mode"][::std::mem::offset_of!(_IO_FILE, _mode) - 192usize];
299 ["Offset of field: _IO_FILE::_unused2"][::std::mem::offset_of!(_IO_FILE, _unused2) - 196usize];
300};
301impl _IO_FILE {
302 #[inline]
303 pub fn _flags2(&self) -> ::std::os::raw::c_int {
304 unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 24u8) as u32) }
305 }
306 #[inline]
307 pub fn set__flags2(&mut self, val: ::std::os::raw::c_int) {
308 unsafe {
309 let val: u32 = ::std::mem::transmute(val);
310 self._bitfield_1.set(0usize, 24u8, val as u64)
311 }
312 }
313 #[inline]
314 pub unsafe fn _flags2_raw(this: *const Self) -> ::std::os::raw::c_int {
315 unsafe {
316 ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get(
317 ::std::ptr::addr_of!((*this)._bitfield_1),
318 0usize,
319 24u8,
320 ) as u32)
321 }
322 }
323 #[inline]
324 pub unsafe fn set__flags2_raw(this: *mut Self, val: ::std::os::raw::c_int) {
325 unsafe {
326 let val: u32 = ::std::mem::transmute(val);
327 <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set(
328 ::std::ptr::addr_of_mut!((*this)._bitfield_1),
329 0usize,
330 24u8,
331 val as u64,
332 )
333 }
334 }
335 #[inline]
336 pub fn new_bitfield_1(_flags2: ::std::os::raw::c_int) -> __BindgenBitfieldUnit<[u8; 3usize]> {
337 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default();
338 __bindgen_bitfield_unit.set(0usize, 24u8, {
339 let _flags2: u32 = unsafe { ::std::mem::transmute(_flags2) };
340 _flags2 as u64
341 });
342 __bindgen_bitfield_unit
343 }
344}
345pub type mpd_uint_t = u64;
346pub type mpd_size_t = usize;
347pub type mpd_ssize_t = i64;
348pub const MPD_ROUND_UP: _bindgen_ty_1 = 0;
349pub const MPD_ROUND_DOWN: _bindgen_ty_1 = 1;
350pub const MPD_ROUND_CEILING: _bindgen_ty_1 = 2;
351pub const MPD_ROUND_FLOOR: _bindgen_ty_1 = 3;
352pub const MPD_ROUND_HALF_UP: _bindgen_ty_1 = 4;
353pub const MPD_ROUND_HALF_DOWN: _bindgen_ty_1 = 5;
354pub const MPD_ROUND_HALF_EVEN: _bindgen_ty_1 = 6;
355pub const MPD_ROUND_05UP: _bindgen_ty_1 = 7;
356pub const MPD_ROUND_TRUNC: _bindgen_ty_1 = 8;
357pub const MPD_ROUND_GUARD: _bindgen_ty_1 = 9;
358pub type _bindgen_ty_1 = ::std::os::raw::c_uint;
359pub const MPD_CLAMP_DEFAULT: _bindgen_ty_2 = 0;
360pub const MPD_CLAMP_IEEE_754: _bindgen_ty_2 = 1;
361pub const MPD_CLAMP_GUARD: _bindgen_ty_2 = 2;
362pub type _bindgen_ty_2 = ::std::os::raw::c_uint;
363#[repr(C)]
364#[derive(Debug, Copy, Clone)]
365pub struct mpd_context_t {
366 pub prec: mpd_ssize_t,
367 pub emax: mpd_ssize_t,
368 pub emin: mpd_ssize_t,
369 pub traps: u32,
370 pub status: u32,
371 pub newtrap: u32,
372 pub round: ::std::os::raw::c_int,
373 pub clamp: ::std::os::raw::c_int,
374 pub allcr: ::std::os::raw::c_int,
375}
376#[allow(clippy::unnecessary_operation, clippy::identity_op)]
377const _: () = {
378 ["Size of mpd_context_t"][::std::mem::size_of::<mpd_context_t>() - 48usize];
379 ["Alignment of mpd_context_t"][::std::mem::align_of::<mpd_context_t>() - 8usize];
380 ["Offset of field: mpd_context_t::prec"][::std::mem::offset_of!(mpd_context_t, prec) - 0usize];
381 ["Offset of field: mpd_context_t::emax"][::std::mem::offset_of!(mpd_context_t, emax) - 8usize];
382 ["Offset of field: mpd_context_t::emin"][::std::mem::offset_of!(mpd_context_t, emin) - 16usize];
383 ["Offset of field: mpd_context_t::traps"]
384 [::std::mem::offset_of!(mpd_context_t, traps) - 24usize];
385 ["Offset of field: mpd_context_t::status"]
386 [::std::mem::offset_of!(mpd_context_t, status) - 28usize];
387 ["Offset of field: mpd_context_t::newtrap"]
388 [::std::mem::offset_of!(mpd_context_t, newtrap) - 32usize];
389 ["Offset of field: mpd_context_t::round"]
390 [::std::mem::offset_of!(mpd_context_t, round) - 36usize];
391 ["Offset of field: mpd_context_t::clamp"]
392 [::std::mem::offset_of!(mpd_context_t, clamp) - 40usize];
393 ["Offset of field: mpd_context_t::allcr"]
394 [::std::mem::offset_of!(mpd_context_t, allcr) - 44usize];
395};
396#[repr(C)]
397#[derive(Debug, Copy, Clone)]
398pub struct mpd_t {
399 pub flags: u8,
400 pub exp: mpd_ssize_t,
401 pub digits: mpd_ssize_t,
402 pub len: mpd_ssize_t,
403 pub alloc: mpd_ssize_t,
404 pub data: *mut mpd_uint_t,
405}
406#[allow(clippy::unnecessary_operation, clippy::identity_op)]
407const _: () = {
408 ["Size of mpd_t"][::std::mem::size_of::<mpd_t>() - 48usize];
409 ["Alignment of mpd_t"][::std::mem::align_of::<mpd_t>() - 8usize];
410 ["Offset of field: mpd_t::flags"][::std::mem::offset_of!(mpd_t, flags) - 0usize];
411 ["Offset of field: mpd_t::exp"][::std::mem::offset_of!(mpd_t, exp) - 8usize];
412 ["Offset of field: mpd_t::digits"][::std::mem::offset_of!(mpd_t, digits) - 16usize];
413 ["Offset of field: mpd_t::len"][::std::mem::offset_of!(mpd_t, len) - 24usize];
414 ["Offset of field: mpd_t::alloc"][::std::mem::offset_of!(mpd_t, alloc) - 32usize];
415 ["Offset of field: mpd_t::data"][::std::mem::offset_of!(mpd_t, data) - 40usize];
416};
417pub const mpd_triple_class_MPD_TRIPLE_NORMAL: mpd_triple_class = 0;
418pub const mpd_triple_class_MPD_TRIPLE_INF: mpd_triple_class = 1;
419pub const mpd_triple_class_MPD_TRIPLE_QNAN: mpd_triple_class = 2;
420pub const mpd_triple_class_MPD_TRIPLE_SNAN: mpd_triple_class = 3;
421pub const mpd_triple_class_MPD_TRIPLE_ERROR: mpd_triple_class = 4;
422pub type mpd_triple_class = ::std::os::raw::c_uint;
423#[repr(C)]
424#[derive(Debug, Copy, Clone)]
425pub struct mpd_uint128_triple_t {
426 pub tag: mpd_triple_class,
427 pub sign: u8,
428 pub hi: u64,
429 pub lo: u64,
430 pub exp: i64,
431}
432#[allow(clippy::unnecessary_operation, clippy::identity_op)]
433const _: () = {
434 ["Size of mpd_uint128_triple_t"][::std::mem::size_of::<mpd_uint128_triple_t>() - 32usize];
435 ["Alignment of mpd_uint128_triple_t"][::std::mem::align_of::<mpd_uint128_triple_t>() - 8usize];
436 ["Offset of field: mpd_uint128_triple_t::tag"]
437 [::std::mem::offset_of!(mpd_uint128_triple_t, tag) - 0usize];
438 ["Offset of field: mpd_uint128_triple_t::sign"]
439 [::std::mem::offset_of!(mpd_uint128_triple_t, sign) - 4usize];
440 ["Offset of field: mpd_uint128_triple_t::hi"]
441 [::std::mem::offset_of!(mpd_uint128_triple_t, hi) - 8usize];
442 ["Offset of field: mpd_uint128_triple_t::lo"]
443 [::std::mem::offset_of!(mpd_uint128_triple_t, lo) - 16usize];
444 ["Offset of field: mpd_uint128_triple_t::exp"]
445 [::std::mem::offset_of!(mpd_uint128_triple_t, exp) - 24usize];
446};
447#[repr(C)]
448#[derive(Debug, Copy, Clone)]
449pub struct mpd_spec_t {
450 pub min_width: mpd_ssize_t,
451 pub prec: mpd_ssize_t,
452 pub type_: ::std::os::raw::c_char,
453 pub align: ::std::os::raw::c_char,
454 pub sign: ::std::os::raw::c_char,
455 pub sign_coerce: ::std::os::raw::c_char,
456 pub fill: [::std::os::raw::c_char; 5usize],
457 pub dot: *const ::std::os::raw::c_char,
458 pub sep: *const ::std::os::raw::c_char,
459 pub grouping: *const ::std::os::raw::c_char,
460}
461#[allow(clippy::unnecessary_operation, clippy::identity_op)]
462const _: () = {
463 ["Size of mpd_spec_t"][::std::mem::size_of::<mpd_spec_t>() - 56usize];
464 ["Alignment of mpd_spec_t"][::std::mem::align_of::<mpd_spec_t>() - 8usize];
465 ["Offset of field: mpd_spec_t::min_width"]
466 [::std::mem::offset_of!(mpd_spec_t, min_width) - 0usize];
467 ["Offset of field: mpd_spec_t::prec"][::std::mem::offset_of!(mpd_spec_t, prec) - 8usize];
468 ["Offset of field: mpd_spec_t::type_"][::std::mem::offset_of!(mpd_spec_t, type_) - 16usize];
469 ["Offset of field: mpd_spec_t::align"][::std::mem::offset_of!(mpd_spec_t, align) - 17usize];
470 ["Offset of field: mpd_spec_t::sign"][::std::mem::offset_of!(mpd_spec_t, sign) - 18usize];
471 ["Offset of field: mpd_spec_t::sign_coerce"]
472 [::std::mem::offset_of!(mpd_spec_t, sign_coerce) - 19usize];
473 ["Offset of field: mpd_spec_t::fill"][::std::mem::offset_of!(mpd_spec_t, fill) - 20usize];
474 ["Offset of field: mpd_spec_t::dot"][::std::mem::offset_of!(mpd_spec_t, dot) - 32usize];
475 ["Offset of field: mpd_spec_t::sep"][::std::mem::offset_of!(mpd_spec_t, sep) - 40usize];
476 ["Offset of field: mpd_spec_t::grouping"]
477 [::std::mem::offset_of!(mpd_spec_t, grouping) - 48usize];
478};
479unsafe extern "C" {
480 pub fn mpd_version() -> *const ::std::os::raw::c_char;
481 pub static mut MPD_MINALLOC: mpd_ssize_t;
482 pub fn mpd_dflt_traphandler(arg1: *mut mpd_context_t);
483 pub fn mpd_setminalloc(n: mpd_ssize_t);
484 pub fn mpd_init(ctx: *mut mpd_context_t, prec: mpd_ssize_t);
485 pub fn mpd_maxcontext(ctx: *mut mpd_context_t);
486 pub fn mpd_defaultcontext(ctx: *mut mpd_context_t);
487 pub fn mpd_basiccontext(ctx: *mut mpd_context_t);
488 pub fn mpd_ieee_context(
489 ctx: *mut mpd_context_t,
490 bits: ::std::os::raw::c_int,
491 ) -> ::std::os::raw::c_int;
492 pub fn mpd_getprec(ctx: *const mpd_context_t) -> mpd_ssize_t;
493 pub fn mpd_getemax(ctx: *const mpd_context_t) -> mpd_ssize_t;
494 pub fn mpd_getemin(ctx: *const mpd_context_t) -> mpd_ssize_t;
495 pub fn mpd_getround(ctx: *const mpd_context_t) -> ::std::os::raw::c_int;
496 pub fn mpd_gettraps(ctx: *const mpd_context_t) -> u32;
497 pub fn mpd_getstatus(ctx: *const mpd_context_t) -> u32;
498 pub fn mpd_getclamp(ctx: *const mpd_context_t) -> ::std::os::raw::c_int;
499 pub fn mpd_getcr(ctx: *const mpd_context_t) -> ::std::os::raw::c_int;
500 pub fn mpd_qsetprec(ctx: *mut mpd_context_t, prec: mpd_ssize_t) -> ::std::os::raw::c_int;
501 pub fn mpd_qsetemax(ctx: *mut mpd_context_t, emax: mpd_ssize_t) -> ::std::os::raw::c_int;
502 pub fn mpd_qsetemin(ctx: *mut mpd_context_t, emin: mpd_ssize_t) -> ::std::os::raw::c_int;
503 pub fn mpd_qsetround(
504 ctx: *mut mpd_context_t,
505 newround: ::std::os::raw::c_int,
506 ) -> ::std::os::raw::c_int;
507 pub fn mpd_qsettraps(ctx: *mut mpd_context_t, flags: u32) -> ::std::os::raw::c_int;
508 pub fn mpd_qsetstatus(ctx: *mut mpd_context_t, flags: u32) -> ::std::os::raw::c_int;
509 pub fn mpd_qsetclamp(
510 ctx: *mut mpd_context_t,
511 c: ::std::os::raw::c_int,
512 ) -> ::std::os::raw::c_int;
513 pub fn mpd_qsetcr(ctx: *mut mpd_context_t, c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
514 pub fn mpd_addstatus_raise(ctx: *mut mpd_context_t, flags: u32);
515 pub fn mpd_from_uint128_triple(
516 result: *mut mpd_t,
517 triple: *const mpd_uint128_triple_t,
518 status: *mut u32,
519 ) -> ::std::os::raw::c_int;
520 pub fn mpd_as_uint128_triple(a: *const mpd_t) -> mpd_uint128_triple_t;
521 pub fn mpd_to_sci(dec: *const mpd_t, fmt: ::std::os::raw::c_int)
522 -> *mut ::std::os::raw::c_char;
523 pub fn mpd_to_eng(dec: *const mpd_t, fmt: ::std::os::raw::c_int)
524 -> *mut ::std::os::raw::c_char;
525 pub fn mpd_to_sci_size(
526 res: *mut *mut ::std::os::raw::c_char,
527 dec: *const mpd_t,
528 fmt: ::std::os::raw::c_int,
529 ) -> mpd_ssize_t;
530 pub fn mpd_to_eng_size(
531 res: *mut *mut ::std::os::raw::c_char,
532 dec: *const mpd_t,
533 fmt: ::std::os::raw::c_int,
534 ) -> mpd_ssize_t;
535 pub fn mpd_validate_lconv(spec: *mut mpd_spec_t) -> ::std::os::raw::c_int;
536 pub fn mpd_parse_fmt_str(
537 spec: *mut mpd_spec_t,
538 fmt: *const ::std::os::raw::c_char,
539 caps: ::std::os::raw::c_int,
540 ) -> ::std::os::raw::c_int;
541 pub fn mpd_qformat_spec(
542 dec: *const mpd_t,
543 spec: *const mpd_spec_t,
544 ctx: *const mpd_context_t,
545 status: *mut u32,
546 ) -> *mut ::std::os::raw::c_char;
547 pub fn mpd_qformat(
548 dec: *const mpd_t,
549 fmt: *const ::std::os::raw::c_char,
550 ctx: *const mpd_context_t,
551 status: *mut u32,
552 ) -> *mut ::std::os::raw::c_char;
553 pub fn mpd_snprint_flags(
554 dest: *mut ::std::os::raw::c_char,
555 nmemb: ::std::os::raw::c_int,
556 flags: u32,
557 ) -> ::std::os::raw::c_int;
558 pub fn mpd_lsnprint_flags(
559 dest: *mut ::std::os::raw::c_char,
560 nmemb: ::std::os::raw::c_int,
561 flags: u32,
562 flag_string: *mut *const ::std::os::raw::c_char,
563 ) -> ::std::os::raw::c_int;
564 pub fn mpd_lsnprint_signals(
565 dest: *mut ::std::os::raw::c_char,
566 nmemb: ::std::os::raw::c_int,
567 flags: u32,
568 signal_string: *mut *const ::std::os::raw::c_char,
569 ) -> ::std::os::raw::c_int;
570 pub fn mpd_fprint(file: *mut FILE, dec: *const mpd_t);
571 pub fn mpd_print(dec: *const mpd_t);
572 pub fn mpd_qset_string(
573 dec: *mut mpd_t,
574 s: *const ::std::os::raw::c_char,
575 ctx: *const mpd_context_t,
576 status: *mut u32,
577 );
578 pub fn mpd_qset_string_exact(
579 dec: *mut mpd_t,
580 s: *const ::std::os::raw::c_char,
581 status: *mut u32,
582 );
583 pub fn mpd_seterror(result: *mut mpd_t, flags: u32, status: *mut u32);
584 pub fn mpd_setspecial(result: *mut mpd_t, sign: u8, type_: u8);
585 pub fn mpd_zerocoeff(result: *mut mpd_t);
586 pub fn mpd_qmaxcoeff(result: *mut mpd_t, ctx: *const mpd_context_t, status: *mut u32);
587 pub fn mpd_qset_ssize(
588 result: *mut mpd_t,
589 a: mpd_ssize_t,
590 ctx: *const mpd_context_t,
591 status: *mut u32,
592 );
593 pub fn mpd_qset_i32(result: *mut mpd_t, a: i32, ctx: *const mpd_context_t, status: *mut u32);
594 pub fn mpd_qset_uint(
595 result: *mut mpd_t,
596 a: mpd_uint_t,
597 ctx: *const mpd_context_t,
598 status: *mut u32,
599 );
600 pub fn mpd_qset_u32(result: *mut mpd_t, a: u32, ctx: *const mpd_context_t, status: *mut u32);
601 pub fn mpd_qset_i64(result: *mut mpd_t, a: i64, ctx: *const mpd_context_t, status: *mut u32);
602 pub fn mpd_qset_u64(result: *mut mpd_t, a: u64, ctx: *const mpd_context_t, status: *mut u32);
603 pub fn mpd_qset_i64_exact(result: *mut mpd_t, a: i64, status: *mut u32);
604 pub fn mpd_qset_u64_exact(result: *mut mpd_t, a: u64, status: *mut u32);
605 pub fn mpd_qsset_ssize(
606 result: *mut mpd_t,
607 a: mpd_ssize_t,
608 ctx: *const mpd_context_t,
609 status: *mut u32,
610 );
611 pub fn mpd_qsset_i32(result: *mut mpd_t, a: i32, ctx: *const mpd_context_t, status: *mut u32);
612 pub fn mpd_qsset_uint(
613 result: *mut mpd_t,
614 a: mpd_uint_t,
615 ctx: *const mpd_context_t,
616 status: *mut u32,
617 );
618 pub fn mpd_qsset_u32(result: *mut mpd_t, a: u32, ctx: *const mpd_context_t, status: *mut u32);
619 pub fn mpd_qget_ssize(dec: *const mpd_t, status: *mut u32) -> mpd_ssize_t;
620 pub fn mpd_qget_uint(dec: *const mpd_t, status: *mut u32) -> mpd_uint_t;
621 pub fn mpd_qabs_uint(dec: *const mpd_t, status: *mut u32) -> mpd_uint_t;
622 pub fn mpd_qget_i32(dec: *const mpd_t, status: *mut u32) -> i32;
623 pub fn mpd_qget_u32(dec: *const mpd_t, status: *mut u32) -> u32;
624 pub fn mpd_qget_i64(dec: *const mpd_t, status: *mut u32) -> i64;
625 pub fn mpd_qget_u64(dec: *const mpd_t, status: *mut u32) -> u64;
626 pub fn mpd_qcheck_nan(
627 nanresult: *mut mpd_t,
628 a: *const mpd_t,
629 ctx: *const mpd_context_t,
630 status: *mut u32,
631 ) -> ::std::os::raw::c_int;
632 pub fn mpd_qcheck_nans(
633 nanresult: *mut mpd_t,
634 a: *const mpd_t,
635 b: *const mpd_t,
636 ctx: *const mpd_context_t,
637 status: *mut u32,
638 ) -> ::std::os::raw::c_int;
639 pub fn mpd_qfinalize(result: *mut mpd_t, ctx: *const mpd_context_t, status: *mut u32);
640 pub fn mpd_class(a: *const mpd_t, ctx: *const mpd_context_t) -> *const ::std::os::raw::c_char;
641 pub fn mpd_qcopy(
642 result: *mut mpd_t,
643 a: *const mpd_t,
644 status: *mut u32,
645 ) -> ::std::os::raw::c_int;
646 pub fn mpd_qcopy_cxx(result: *mut mpd_t, a: *const mpd_t) -> ::std::os::raw::c_int;
647 pub fn mpd_qncopy(a: *const mpd_t) -> *mut mpd_t;
648 pub fn mpd_qcopy_abs(
649 result: *mut mpd_t,
650 a: *const mpd_t,
651 status: *mut u32,
652 ) -> ::std::os::raw::c_int;
653 pub fn mpd_qcopy_negate(
654 result: *mut mpd_t,
655 a: *const mpd_t,
656 status: *mut u32,
657 ) -> ::std::os::raw::c_int;
658 pub fn mpd_qcopy_sign(
659 result: *mut mpd_t,
660 a: *const mpd_t,
661 b: *const mpd_t,
662 status: *mut u32,
663 ) -> ::std::os::raw::c_int;
664 pub fn mpd_qand(
665 result: *mut mpd_t,
666 a: *const mpd_t,
667 b: *const mpd_t,
668 ctx: *const mpd_context_t,
669 status: *mut u32,
670 );
671 pub fn mpd_qinvert(
672 result: *mut mpd_t,
673 a: *const mpd_t,
674 ctx: *const mpd_context_t,
675 status: *mut u32,
676 );
677 pub fn mpd_qlogb(
678 result: *mut mpd_t,
679 a: *const mpd_t,
680 ctx: *const mpd_context_t,
681 status: *mut u32,
682 );
683 pub fn mpd_qor(
684 result: *mut mpd_t,
685 a: *const mpd_t,
686 b: *const mpd_t,
687 ctx: *const mpd_context_t,
688 status: *mut u32,
689 );
690 pub fn mpd_qscaleb(
691 result: *mut mpd_t,
692 a: *const mpd_t,
693 b: *const mpd_t,
694 ctx: *const mpd_context_t,
695 status: *mut u32,
696 );
697 pub fn mpd_qxor(
698 result: *mut mpd_t,
699 a: *const mpd_t,
700 b: *const mpd_t,
701 ctx: *const mpd_context_t,
702 status: *mut u32,
703 );
704 pub fn mpd_same_quantum(a: *const mpd_t, b: *const mpd_t) -> ::std::os::raw::c_int;
705 pub fn mpd_qrotate(
706 result: *mut mpd_t,
707 a: *const mpd_t,
708 b: *const mpd_t,
709 ctx: *const mpd_context_t,
710 status: *mut u32,
711 );
712 pub fn mpd_qshiftl(
713 result: *mut mpd_t,
714 a: *const mpd_t,
715 n: mpd_ssize_t,
716 status: *mut u32,
717 ) -> ::std::os::raw::c_int;
718 pub fn mpd_qshiftr(
719 result: *mut mpd_t,
720 a: *const mpd_t,
721 n: mpd_ssize_t,
722 status: *mut u32,
723 ) -> mpd_uint_t;
724 pub fn mpd_qshiftr_inplace(result: *mut mpd_t, n: mpd_ssize_t) -> mpd_uint_t;
725 pub fn mpd_qshift(
726 result: *mut mpd_t,
727 a: *const mpd_t,
728 b: *const mpd_t,
729 ctx: *const mpd_context_t,
730 status: *mut u32,
731 );
732 pub fn mpd_qshiftn(
733 result: *mut mpd_t,
734 a: *const mpd_t,
735 n: mpd_ssize_t,
736 ctx: *const mpd_context_t,
737 status: *mut u32,
738 );
739 pub fn mpd_qcmp(a: *const mpd_t, b: *const mpd_t, status: *mut u32) -> ::std::os::raw::c_int;
740 pub fn mpd_qcompare(
741 result: *mut mpd_t,
742 a: *const mpd_t,
743 b: *const mpd_t,
744 ctx: *const mpd_context_t,
745 status: *mut u32,
746 ) -> ::std::os::raw::c_int;
747 pub fn mpd_qcompare_signal(
748 result: *mut mpd_t,
749 a: *const mpd_t,
750 b: *const mpd_t,
751 ctx: *const mpd_context_t,
752 status: *mut u32,
753 ) -> ::std::os::raw::c_int;
754 pub fn mpd_cmp_total(a: *const mpd_t, b: *const mpd_t) -> ::std::os::raw::c_int;
755 pub fn mpd_cmp_total_mag(a: *const mpd_t, b: *const mpd_t) -> ::std::os::raw::c_int;
756 pub fn mpd_compare_total(
757 result: *mut mpd_t,
758 a: *const mpd_t,
759 b: *const mpd_t,
760 ) -> ::std::os::raw::c_int;
761 pub fn mpd_compare_total_mag(
762 result: *mut mpd_t,
763 a: *const mpd_t,
764 b: *const mpd_t,
765 ) -> ::std::os::raw::c_int;
766 pub fn mpd_qround_to_intx(
767 result: *mut mpd_t,
768 a: *const mpd_t,
769 ctx: *const mpd_context_t,
770 status: *mut u32,
771 );
772 pub fn mpd_qround_to_int(
773 result: *mut mpd_t,
774 a: *const mpd_t,
775 ctx: *const mpd_context_t,
776 status: *mut u32,
777 );
778 pub fn mpd_qtrunc(
779 result: *mut mpd_t,
780 a: *const mpd_t,
781 ctx: *const mpd_context_t,
782 status: *mut u32,
783 );
784 pub fn mpd_qfloor(
785 result: *mut mpd_t,
786 a: *const mpd_t,
787 ctx: *const mpd_context_t,
788 status: *mut u32,
789 );
790 pub fn mpd_qceil(
791 result: *mut mpd_t,
792 a: *const mpd_t,
793 ctx: *const mpd_context_t,
794 status: *mut u32,
795 );
796 pub fn mpd_qabs(
797 result: *mut mpd_t,
798 a: *const mpd_t,
799 ctx: *const mpd_context_t,
800 status: *mut u32,
801 );
802 pub fn mpd_qmax(
803 result: *mut mpd_t,
804 a: *const mpd_t,
805 b: *const mpd_t,
806 ctx: *const mpd_context_t,
807 status: *mut u32,
808 );
809 pub fn mpd_qmax_mag(
810 result: *mut mpd_t,
811 a: *const mpd_t,
812 b: *const mpd_t,
813 ctx: *const mpd_context_t,
814 status: *mut u32,
815 );
816 pub fn mpd_qmin(
817 result: *mut mpd_t,
818 a: *const mpd_t,
819 b: *const mpd_t,
820 ctx: *const mpd_context_t,
821 status: *mut u32,
822 );
823 pub fn mpd_qmin_mag(
824 result: *mut mpd_t,
825 a: *const mpd_t,
826 b: *const mpd_t,
827 ctx: *const mpd_context_t,
828 status: *mut u32,
829 );
830 pub fn mpd_qminus(
831 result: *mut mpd_t,
832 a: *const mpd_t,
833 ctx: *const mpd_context_t,
834 status: *mut u32,
835 );
836 pub fn mpd_qplus(
837 result: *mut mpd_t,
838 a: *const mpd_t,
839 ctx: *const mpd_context_t,
840 status: *mut u32,
841 );
842 pub fn mpd_qnext_minus(
843 result: *mut mpd_t,
844 a: *const mpd_t,
845 ctx: *const mpd_context_t,
846 status: *mut u32,
847 );
848 pub fn mpd_qnext_plus(
849 result: *mut mpd_t,
850 a: *const mpd_t,
851 ctx: *const mpd_context_t,
852 status: *mut u32,
853 );
854 pub fn mpd_qnext_toward(
855 result: *mut mpd_t,
856 a: *const mpd_t,
857 b: *const mpd_t,
858 ctx: *const mpd_context_t,
859 status: *mut u32,
860 );
861 pub fn mpd_qquantize(
862 result: *mut mpd_t,
863 a: *const mpd_t,
864 b: *const mpd_t,
865 ctx: *const mpd_context_t,
866 status: *mut u32,
867 );
868 pub fn mpd_qrescale(
869 result: *mut mpd_t,
870 a: *const mpd_t,
871 exp: mpd_ssize_t,
872 ctx: *const mpd_context_t,
873 status: *mut u32,
874 );
875 pub fn mpd_qrescale_fmt(
876 result: *mut mpd_t,
877 a: *const mpd_t,
878 exp: mpd_ssize_t,
879 ctx: *const mpd_context_t,
880 status: *mut u32,
881 );
882 pub fn mpd_qreduce(
883 result: *mut mpd_t,
884 a: *const mpd_t,
885 ctx: *const mpd_context_t,
886 status: *mut u32,
887 );
888 pub fn mpd_qadd(
889 result: *mut mpd_t,
890 a: *const mpd_t,
891 b: *const mpd_t,
892 ctx: *const mpd_context_t,
893 status: *mut u32,
894 );
895 pub fn mpd_qadd_ssize(
896 result: *mut mpd_t,
897 a: *const mpd_t,
898 b: mpd_ssize_t,
899 ctx: *const mpd_context_t,
900 status: *mut u32,
901 );
902 pub fn mpd_qadd_i32(
903 result: *mut mpd_t,
904 a: *const mpd_t,
905 b: i32,
906 ctx: *const mpd_context_t,
907 status: *mut u32,
908 );
909 pub fn mpd_qadd_uint(
910 result: *mut mpd_t,
911 a: *const mpd_t,
912 b: mpd_uint_t,
913 ctx: *const mpd_context_t,
914 status: *mut u32,
915 );
916 pub fn mpd_qadd_u32(
917 result: *mut mpd_t,
918 a: *const mpd_t,
919 b: u32,
920 ctx: *const mpd_context_t,
921 status: *mut u32,
922 );
923 pub fn mpd_qsub(
924 result: *mut mpd_t,
925 a: *const mpd_t,
926 b: *const mpd_t,
927 ctx: *const mpd_context_t,
928 status: *mut u32,
929 );
930 pub fn mpd_qsub_ssize(
931 result: *mut mpd_t,
932 a: *const mpd_t,
933 b: mpd_ssize_t,
934 ctx: *const mpd_context_t,
935 status: *mut u32,
936 );
937 pub fn mpd_qsub_i32(
938 result: *mut mpd_t,
939 a: *const mpd_t,
940 b: i32,
941 ctx: *const mpd_context_t,
942 status: *mut u32,
943 );
944 pub fn mpd_qsub_uint(
945 result: *mut mpd_t,
946 a: *const mpd_t,
947 b: mpd_uint_t,
948 ctx: *const mpd_context_t,
949 status: *mut u32,
950 );
951 pub fn mpd_qsub_u32(
952 result: *mut mpd_t,
953 a: *const mpd_t,
954 b: u32,
955 ctx: *const mpd_context_t,
956 status: *mut u32,
957 );
958 pub fn mpd_qmul(
959 result: *mut mpd_t,
960 a: *const mpd_t,
961 b: *const mpd_t,
962 ctx: *const mpd_context_t,
963 status: *mut u32,
964 );
965 pub fn mpd_qmul_ssize(
966 result: *mut mpd_t,
967 a: *const mpd_t,
968 b: mpd_ssize_t,
969 ctx: *const mpd_context_t,
970 status: *mut u32,
971 );
972 pub fn mpd_qmul_i32(
973 result: *mut mpd_t,
974 a: *const mpd_t,
975 b: i32,
976 ctx: *const mpd_context_t,
977 status: *mut u32,
978 );
979 pub fn mpd_qmul_uint(
980 result: *mut mpd_t,
981 a: *const mpd_t,
982 b: mpd_uint_t,
983 ctx: *const mpd_context_t,
984 status: *mut u32,
985 );
986 pub fn mpd_qmul_u32(
987 result: *mut mpd_t,
988 a: *const mpd_t,
989 b: u32,
990 ctx: *const mpd_context_t,
991 status: *mut u32,
992 );
993 pub fn mpd_qfma(
994 result: *mut mpd_t,
995 a: *const mpd_t,
996 b: *const mpd_t,
997 c: *const mpd_t,
998 ctx: *const mpd_context_t,
999 status: *mut u32,
1000 );
1001 pub fn mpd_qdiv(
1002 q: *mut mpd_t,
1003 a: *const mpd_t,
1004 b: *const mpd_t,
1005 ctx: *const mpd_context_t,
1006 status: *mut u32,
1007 );
1008 pub fn mpd_qdiv_ssize(
1009 result: *mut mpd_t,
1010 a: *const mpd_t,
1011 b: mpd_ssize_t,
1012 ctx: *const mpd_context_t,
1013 status: *mut u32,
1014 );
1015 pub fn mpd_qdiv_i32(
1016 result: *mut mpd_t,
1017 a: *const mpd_t,
1018 b: i32,
1019 ctx: *const mpd_context_t,
1020 status: *mut u32,
1021 );
1022 pub fn mpd_qdiv_uint(
1023 result: *mut mpd_t,
1024 a: *const mpd_t,
1025 b: mpd_uint_t,
1026 ctx: *const mpd_context_t,
1027 status: *mut u32,
1028 );
1029 pub fn mpd_qdiv_u32(
1030 result: *mut mpd_t,
1031 a: *const mpd_t,
1032 b: u32,
1033 ctx: *const mpd_context_t,
1034 status: *mut u32,
1035 );
1036 pub fn mpd_qdivint(
1037 q: *mut mpd_t,
1038 a: *const mpd_t,
1039 b: *const mpd_t,
1040 ctx: *const mpd_context_t,
1041 status: *mut u32,
1042 );
1043 pub fn mpd_qrem(
1044 r: *mut mpd_t,
1045 a: *const mpd_t,
1046 b: *const mpd_t,
1047 ctx: *const mpd_context_t,
1048 status: *mut u32,
1049 );
1050 pub fn mpd_qrem_near(
1051 r: *mut mpd_t,
1052 a: *const mpd_t,
1053 b: *const mpd_t,
1054 ctx: *const mpd_context_t,
1055 status: *mut u32,
1056 );
1057 pub fn mpd_qdivmod(
1058 q: *mut mpd_t,
1059 r: *mut mpd_t,
1060 a: *const mpd_t,
1061 b: *const mpd_t,
1062 ctx: *const mpd_context_t,
1063 status: *mut u32,
1064 );
1065 pub fn mpd_qpow(
1066 result: *mut mpd_t,
1067 base: *const mpd_t,
1068 exp: *const mpd_t,
1069 ctx: *const mpd_context_t,
1070 status: *mut u32,
1071 );
1072 pub fn mpd_qpowmod(
1073 result: *mut mpd_t,
1074 base: *const mpd_t,
1075 exp: *const mpd_t,
1076 mod_: *const mpd_t,
1077 ctx: *const mpd_context_t,
1078 status: *mut u32,
1079 );
1080 pub fn mpd_qexp(
1081 result: *mut mpd_t,
1082 a: *const mpd_t,
1083 ctx: *const mpd_context_t,
1084 status: *mut u32,
1085 );
1086 pub fn mpd_qln10(result: *mut mpd_t, prec: mpd_ssize_t, status: *mut u32);
1087 pub fn mpd_qln(
1088 result: *mut mpd_t,
1089 a: *const mpd_t,
1090 ctx: *const mpd_context_t,
1091 status: *mut u32,
1092 );
1093 pub fn mpd_qlog10(
1094 result: *mut mpd_t,
1095 a: *const mpd_t,
1096 ctx: *const mpd_context_t,
1097 status: *mut u32,
1098 );
1099 pub fn mpd_qsqrt(
1100 result: *mut mpd_t,
1101 a: *const mpd_t,
1102 ctx: *const mpd_context_t,
1103 status: *mut u32,
1104 );
1105 pub fn mpd_qinvroot(
1106 result: *mut mpd_t,
1107 a: *const mpd_t,
1108 ctx: *const mpd_context_t,
1109 status: *mut u32,
1110 );
1111 pub fn mpd_qadd_i64(
1112 result: *mut mpd_t,
1113 a: *const mpd_t,
1114 b: i64,
1115 ctx: *const mpd_context_t,
1116 status: *mut u32,
1117 );
1118 pub fn mpd_qadd_u64(
1119 result: *mut mpd_t,
1120 a: *const mpd_t,
1121 b: u64,
1122 ctx: *const mpd_context_t,
1123 status: *mut u32,
1124 );
1125 pub fn mpd_qsub_i64(
1126 result: *mut mpd_t,
1127 a: *const mpd_t,
1128 b: i64,
1129 ctx: *const mpd_context_t,
1130 status: *mut u32,
1131 );
1132 pub fn mpd_qsub_u64(
1133 result: *mut mpd_t,
1134 a: *const mpd_t,
1135 b: u64,
1136 ctx: *const mpd_context_t,
1137 status: *mut u32,
1138 );
1139 pub fn mpd_qmul_i64(
1140 result: *mut mpd_t,
1141 a: *const mpd_t,
1142 b: i64,
1143 ctx: *const mpd_context_t,
1144 status: *mut u32,
1145 );
1146 pub fn mpd_qmul_u64(
1147 result: *mut mpd_t,
1148 a: *const mpd_t,
1149 b: u64,
1150 ctx: *const mpd_context_t,
1151 status: *mut u32,
1152 );
1153 pub fn mpd_qdiv_i64(
1154 result: *mut mpd_t,
1155 a: *const mpd_t,
1156 b: i64,
1157 ctx: *const mpd_context_t,
1158 status: *mut u32,
1159 );
1160 pub fn mpd_qdiv_u64(
1161 result: *mut mpd_t,
1162 a: *const mpd_t,
1163 b: u64,
1164 ctx: *const mpd_context_t,
1165 status: *mut u32,
1166 );
1167 pub fn mpd_sizeinbase(a: *const mpd_t, base: u32) -> usize;
1168 pub fn mpd_qimport_u16(
1169 result: *mut mpd_t,
1170 srcdata: *const u16,
1171 srclen: usize,
1172 srcsign: u8,
1173 srcbase: u32,
1174 ctx: *const mpd_context_t,
1175 status: *mut u32,
1176 );
1177 pub fn mpd_qimport_u32(
1178 result: *mut mpd_t,
1179 srcdata: *const u32,
1180 srclen: usize,
1181 srcsign: u8,
1182 srcbase: u32,
1183 ctx: *const mpd_context_t,
1184 status: *mut u32,
1185 );
1186 pub fn mpd_qexport_u16(
1187 rdata: *mut *mut u16,
1188 rlen: usize,
1189 base: u32,
1190 src: *const mpd_t,
1191 status: *mut u32,
1192 ) -> usize;
1193 pub fn mpd_qexport_u32(
1194 rdata: *mut *mut u32,
1195 rlen: usize,
1196 base: u32,
1197 src: *const mpd_t,
1198 status: *mut u32,
1199 ) -> usize;
1200 pub fn mpd_format(
1201 dec: *const mpd_t,
1202 fmt: *const ::std::os::raw::c_char,
1203 ctx: *mut mpd_context_t,
1204 ) -> *mut ::std::os::raw::c_char;
1205 pub fn mpd_import_u16(
1206 result: *mut mpd_t,
1207 srcdata: *const u16,
1208 srclen: usize,
1209 srcsign: u8,
1210 base: u32,
1211 ctx: *mut mpd_context_t,
1212 );
1213 pub fn mpd_import_u32(
1214 result: *mut mpd_t,
1215 srcdata: *const u32,
1216 srclen: usize,
1217 srcsign: u8,
1218 base: u32,
1219 ctx: *mut mpd_context_t,
1220 );
1221 pub fn mpd_export_u16(
1222 rdata: *mut *mut u16,
1223 rlen: usize,
1224 base: u32,
1225 src: *const mpd_t,
1226 ctx: *mut mpd_context_t,
1227 ) -> usize;
1228 pub fn mpd_export_u32(
1229 rdata: *mut *mut u32,
1230 rlen: usize,
1231 base: u32,
1232 src: *const mpd_t,
1233 ctx: *mut mpd_context_t,
1234 ) -> usize;
1235 pub fn mpd_finalize(result: *mut mpd_t, ctx: *mut mpd_context_t);
1236 pub fn mpd_check_nan(
1237 result: *mut mpd_t,
1238 a: *const mpd_t,
1239 ctx: *mut mpd_context_t,
1240 ) -> ::std::os::raw::c_int;
1241 pub fn mpd_check_nans(
1242 result: *mut mpd_t,
1243 a: *const mpd_t,
1244 b: *const mpd_t,
1245 ctx: *mut mpd_context_t,
1246 ) -> ::std::os::raw::c_int;
1247 pub fn mpd_set_string(
1248 result: *mut mpd_t,
1249 s: *const ::std::os::raw::c_char,
1250 ctx: *mut mpd_context_t,
1251 );
1252 pub fn mpd_maxcoeff(result: *mut mpd_t, ctx: *mut mpd_context_t);
1253 pub fn mpd_sset_ssize(result: *mut mpd_t, a: mpd_ssize_t, ctx: *mut mpd_context_t);
1254 pub fn mpd_sset_i32(result: *mut mpd_t, a: i32, ctx: *mut mpd_context_t);
1255 pub fn mpd_sset_uint(result: *mut mpd_t, a: mpd_uint_t, ctx: *mut mpd_context_t);
1256 pub fn mpd_sset_u32(result: *mut mpd_t, a: u32, ctx: *mut mpd_context_t);
1257 pub fn mpd_set_ssize(result: *mut mpd_t, a: mpd_ssize_t, ctx: *mut mpd_context_t);
1258 pub fn mpd_set_i32(result: *mut mpd_t, a: i32, ctx: *mut mpd_context_t);
1259 pub fn mpd_set_uint(result: *mut mpd_t, a: mpd_uint_t, ctx: *mut mpd_context_t);
1260 pub fn mpd_set_u32(result: *mut mpd_t, a: u32, ctx: *mut mpd_context_t);
1261 pub fn mpd_set_i64(result: *mut mpd_t, a: i64, ctx: *mut mpd_context_t);
1262 pub fn mpd_set_u64(result: *mut mpd_t, a: u64, ctx: *mut mpd_context_t);
1263 pub fn mpd_get_ssize(a: *const mpd_t, ctx: *mut mpd_context_t) -> mpd_ssize_t;
1264 pub fn mpd_get_uint(a: *const mpd_t, ctx: *mut mpd_context_t) -> mpd_uint_t;
1265 pub fn mpd_abs_uint(a: *const mpd_t, ctx: *mut mpd_context_t) -> mpd_uint_t;
1266 pub fn mpd_get_i32(a: *const mpd_t, ctx: *mut mpd_context_t) -> i32;
1267 pub fn mpd_get_u32(a: *const mpd_t, ctx: *mut mpd_context_t) -> u32;
1268 pub fn mpd_get_i64(a: *const mpd_t, ctx: *mut mpd_context_t) -> i64;
1269 pub fn mpd_get_u64(a: *const mpd_t, ctx: *mut mpd_context_t) -> u64;
1270 pub fn mpd_and(result: *mut mpd_t, a: *const mpd_t, b: *const mpd_t, ctx: *mut mpd_context_t);
1271 pub fn mpd_copy(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
1272 pub fn mpd_canonical(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
1273 pub fn mpd_copy_abs(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
1274 pub fn mpd_copy_negate(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
1275 pub fn mpd_copy_sign(
1276 result: *mut mpd_t,
1277 a: *const mpd_t,
1278 b: *const mpd_t,
1279 ctx: *mut mpd_context_t,
1280 );
1281 pub fn mpd_invert(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
1282 pub fn mpd_logb(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
1283 pub fn mpd_or(result: *mut mpd_t, a: *const mpd_t, b: *const mpd_t, ctx: *mut mpd_context_t);
1284 pub fn mpd_rotate(
1285 result: *mut mpd_t,
1286 a: *const mpd_t,
1287 b: *const mpd_t,
1288 ctx: *mut mpd_context_t,
1289 );
1290 pub fn mpd_scaleb(
1291 result: *mut mpd_t,
1292 a: *const mpd_t,
1293 b: *const mpd_t,
1294 ctx: *mut mpd_context_t,
1295 );
1296 pub fn mpd_shiftl(result: *mut mpd_t, a: *const mpd_t, n: mpd_ssize_t, ctx: *mut mpd_context_t);
1297 pub fn mpd_shiftr(
1298 result: *mut mpd_t,
1299 a: *const mpd_t,
1300 n: mpd_ssize_t,
1301 ctx: *mut mpd_context_t,
1302 ) -> mpd_uint_t;
1303 pub fn mpd_shiftn(result: *mut mpd_t, a: *const mpd_t, n: mpd_ssize_t, ctx: *mut mpd_context_t);
1304 pub fn mpd_shift(result: *mut mpd_t, a: *const mpd_t, b: *const mpd_t, ctx: *mut mpd_context_t);
1305 pub fn mpd_xor(result: *mut mpd_t, a: *const mpd_t, b: *const mpd_t, ctx: *mut mpd_context_t);
1306 pub fn mpd_abs(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
1307 pub fn mpd_cmp(
1308 a: *const mpd_t,
1309 b: *const mpd_t,
1310 ctx: *mut mpd_context_t,
1311 ) -> ::std::os::raw::c_int;
1312 pub fn mpd_compare(
1313 result: *mut mpd_t,
1314 a: *const mpd_t,
1315 b: *const mpd_t,
1316 ctx: *mut mpd_context_t,
1317 ) -> ::std::os::raw::c_int;
1318 pub fn mpd_compare_signal(
1319 result: *mut mpd_t,
1320 a: *const mpd_t,
1321 b: *const mpd_t,
1322 ctx: *mut mpd_context_t,
1323 ) -> ::std::os::raw::c_int;
1324 pub fn mpd_add(result: *mut mpd_t, a: *const mpd_t, b: *const mpd_t, ctx: *mut mpd_context_t);
1325 pub fn mpd_add_ssize(
1326 result: *mut mpd_t,
1327 a: *const mpd_t,
1328 b: mpd_ssize_t,
1329 ctx: *mut mpd_context_t,
1330 );
1331 pub fn mpd_add_i32(result: *mut mpd_t, a: *const mpd_t, b: i32, ctx: *mut mpd_context_t);
1332 pub fn mpd_add_uint(
1333 result: *mut mpd_t,
1334 a: *const mpd_t,
1335 b: mpd_uint_t,
1336 ctx: *mut mpd_context_t,
1337 );
1338 pub fn mpd_add_u32(result: *mut mpd_t, a: *const mpd_t, b: u32, ctx: *mut mpd_context_t);
1339 pub fn mpd_sub(result: *mut mpd_t, a: *const mpd_t, b: *const mpd_t, ctx: *mut mpd_context_t);
1340 pub fn mpd_sub_ssize(
1341 result: *mut mpd_t,
1342 a: *const mpd_t,
1343 b: mpd_ssize_t,
1344 ctx: *mut mpd_context_t,
1345 );
1346 pub fn mpd_sub_i32(result: *mut mpd_t, a: *const mpd_t, b: i32, ctx: *mut mpd_context_t);
1347 pub fn mpd_sub_uint(
1348 result: *mut mpd_t,
1349 a: *const mpd_t,
1350 b: mpd_uint_t,
1351 ctx: *mut mpd_context_t,
1352 );
1353 pub fn mpd_sub_u32(result: *mut mpd_t, a: *const mpd_t, b: u32, ctx: *mut mpd_context_t);
1354 pub fn mpd_div(q: *mut mpd_t, a: *const mpd_t, b: *const mpd_t, ctx: *mut mpd_context_t);
1355 pub fn mpd_div_ssize(
1356 result: *mut mpd_t,
1357 a: *const mpd_t,
1358 b: mpd_ssize_t,
1359 ctx: *mut mpd_context_t,
1360 );
1361 pub fn mpd_div_i32(result: *mut mpd_t, a: *const mpd_t, b: i32, ctx: *mut mpd_context_t);
1362 pub fn mpd_div_uint(
1363 result: *mut mpd_t,
1364 a: *const mpd_t,
1365 b: mpd_uint_t,
1366 ctx: *mut mpd_context_t,
1367 );
1368 pub fn mpd_div_u32(result: *mut mpd_t, a: *const mpd_t, b: u32, ctx: *mut mpd_context_t);
1369 pub fn mpd_divmod(
1370 q: *mut mpd_t,
1371 r: *mut mpd_t,
1372 a: *const mpd_t,
1373 b: *const mpd_t,
1374 ctx: *mut mpd_context_t,
1375 );
1376 pub fn mpd_divint(q: *mut mpd_t, a: *const mpd_t, b: *const mpd_t, ctx: *mut mpd_context_t);
1377 pub fn mpd_exp(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
1378 pub fn mpd_fma(
1379 result: *mut mpd_t,
1380 a: *const mpd_t,
1381 b: *const mpd_t,
1382 c: *const mpd_t,
1383 ctx: *mut mpd_context_t,
1384 );
1385 pub fn mpd_ln(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
1386 pub fn mpd_log10(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
1387 pub fn mpd_max(result: *mut mpd_t, a: *const mpd_t, b: *const mpd_t, ctx: *mut mpd_context_t);
1388 pub fn mpd_max_mag(
1389 result: *mut mpd_t,
1390 a: *const mpd_t,
1391 b: *const mpd_t,
1392 ctx: *mut mpd_context_t,
1393 );
1394 pub fn mpd_min(result: *mut mpd_t, a: *const mpd_t, b: *const mpd_t, ctx: *mut mpd_context_t);
1395 pub fn mpd_min_mag(
1396 result: *mut mpd_t,
1397 a: *const mpd_t,
1398 b: *const mpd_t,
1399 ctx: *mut mpd_context_t,
1400 );
1401 pub fn mpd_minus(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
1402 pub fn mpd_mul(result: *mut mpd_t, a: *const mpd_t, b: *const mpd_t, ctx: *mut mpd_context_t);
1403 pub fn mpd_mul_ssize(
1404 result: *mut mpd_t,
1405 a: *const mpd_t,
1406 b: mpd_ssize_t,
1407 ctx: *mut mpd_context_t,
1408 );
1409 pub fn mpd_mul_i32(result: *mut mpd_t, a: *const mpd_t, b: i32, ctx: *mut mpd_context_t);
1410 pub fn mpd_mul_uint(
1411 result: *mut mpd_t,
1412 a: *const mpd_t,
1413 b: mpd_uint_t,
1414 ctx: *mut mpd_context_t,
1415 );
1416 pub fn mpd_mul_u32(result: *mut mpd_t, a: *const mpd_t, b: u32, ctx: *mut mpd_context_t);
1417 pub fn mpd_next_minus(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
1418 pub fn mpd_next_plus(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
1419 pub fn mpd_next_toward(
1420 result: *mut mpd_t,
1421 a: *const mpd_t,
1422 b: *const mpd_t,
1423 ctx: *mut mpd_context_t,
1424 );
1425 pub fn mpd_plus(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
1426 pub fn mpd_pow(
1427 result: *mut mpd_t,
1428 base: *const mpd_t,
1429 exp: *const mpd_t,
1430 ctx: *mut mpd_context_t,
1431 );
1432 pub fn mpd_powmod(
1433 result: *mut mpd_t,
1434 base: *const mpd_t,
1435 exp: *const mpd_t,
1436 mod_: *const mpd_t,
1437 ctx: *mut mpd_context_t,
1438 );
1439 pub fn mpd_quantize(
1440 result: *mut mpd_t,
1441 a: *const mpd_t,
1442 b: *const mpd_t,
1443 ctx: *mut mpd_context_t,
1444 );
1445 pub fn mpd_rescale(
1446 result: *mut mpd_t,
1447 a: *const mpd_t,
1448 exp: mpd_ssize_t,
1449 ctx: *mut mpd_context_t,
1450 );
1451 pub fn mpd_reduce(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
1452 pub fn mpd_rem(r: *mut mpd_t, a: *const mpd_t, b: *const mpd_t, ctx: *mut mpd_context_t);
1453 pub fn mpd_rem_near(r: *mut mpd_t, a: *const mpd_t, b: *const mpd_t, ctx: *mut mpd_context_t);
1454 pub fn mpd_round_to_intx(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
1455 pub fn mpd_round_to_int(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
1456 pub fn mpd_trunc(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
1457 pub fn mpd_floor(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
1458 pub fn mpd_ceil(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
1459 pub fn mpd_sqrt(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
1460 pub fn mpd_invroot(result: *mut mpd_t, a: *const mpd_t, ctx: *mut mpd_context_t);
1461 pub fn mpd_add_i64(result: *mut mpd_t, a: *const mpd_t, b: i64, ctx: *mut mpd_context_t);
1462 pub fn mpd_add_u64(result: *mut mpd_t, a: *const mpd_t, b: u64, ctx: *mut mpd_context_t);
1463 pub fn mpd_sub_i64(result: *mut mpd_t, a: *const mpd_t, b: i64, ctx: *mut mpd_context_t);
1464 pub fn mpd_sub_u64(result: *mut mpd_t, a: *const mpd_t, b: u64, ctx: *mut mpd_context_t);
1465 pub fn mpd_div_i64(result: *mut mpd_t, a: *const mpd_t, b: i64, ctx: *mut mpd_context_t);
1466 pub fn mpd_div_u64(result: *mut mpd_t, a: *const mpd_t, b: u64, ctx: *mut mpd_context_t);
1467 pub fn mpd_mul_i64(result: *mut mpd_t, a: *const mpd_t, b: i64, ctx: *mut mpd_context_t);
1468 pub fn mpd_mul_u64(result: *mut mpd_t, a: *const mpd_t, b: u64, ctx: *mut mpd_context_t);
1469 pub fn mpd_qsset_i64(result: *mut mpd_t, a: i64, ctx: *const mpd_context_t, status: *mut u32);
1470 pub fn mpd_qsset_u64(result: *mut mpd_t, a: u64, ctx: *const mpd_context_t, status: *mut u32);
1471 pub fn mpd_sset_i64(result: *mut mpd_t, a: i64, ctx: *mut mpd_context_t);
1472 pub fn mpd_sset_u64(result: *mut mpd_t, a: u64, ctx: *mut mpd_context_t);
1473 pub fn mpd_adjexp(dec: *const mpd_t) -> mpd_ssize_t;
1474 pub fn mpd_etiny(ctx: *const mpd_context_t) -> mpd_ssize_t;
1475 pub fn mpd_etop(ctx: *const mpd_context_t) -> mpd_ssize_t;
1476 pub fn mpd_msword(dec: *const mpd_t) -> mpd_uint_t;
1477 pub fn mpd_word_digits(word: mpd_uint_t) -> ::std::os::raw::c_int;
1478 pub fn mpd_msd(word: mpd_uint_t) -> mpd_uint_t;
1479 pub fn mpd_lsd(word: mpd_uint_t) -> mpd_uint_t;
1480 pub fn mpd_digits_to_size(digits: mpd_ssize_t) -> mpd_ssize_t;
1481 pub fn mpd_exp_digits(exp: mpd_ssize_t) -> ::std::os::raw::c_int;
1482 pub fn mpd_iscanonical(dec: *const mpd_t) -> ::std::os::raw::c_int;
1483 pub fn mpd_isfinite(dec: *const mpd_t) -> ::std::os::raw::c_int;
1484 pub fn mpd_isinfinite(dec: *const mpd_t) -> ::std::os::raw::c_int;
1485 pub fn mpd_isinteger(dec: *const mpd_t) -> ::std::os::raw::c_int;
1486 pub fn mpd_isnan(dec: *const mpd_t) -> ::std::os::raw::c_int;
1487 pub fn mpd_isnegative(dec: *const mpd_t) -> ::std::os::raw::c_int;
1488 pub fn mpd_ispositive(dec: *const mpd_t) -> ::std::os::raw::c_int;
1489 pub fn mpd_isqnan(dec: *const mpd_t) -> ::std::os::raw::c_int;
1490 pub fn mpd_issigned(dec: *const mpd_t) -> ::std::os::raw::c_int;
1491 pub fn mpd_issnan(dec: *const mpd_t) -> ::std::os::raw::c_int;
1492 pub fn mpd_isspecial(dec: *const mpd_t) -> ::std::os::raw::c_int;
1493 pub fn mpd_iszero(dec: *const mpd_t) -> ::std::os::raw::c_int;
1494 pub fn mpd_iszerocoeff(dec: *const mpd_t) -> ::std::os::raw::c_int;
1495 pub fn mpd_isnormal(dec: *const mpd_t, ctx: *const mpd_context_t) -> ::std::os::raw::c_int;
1496 pub fn mpd_issubnormal(dec: *const mpd_t, ctx: *const mpd_context_t) -> ::std::os::raw::c_int;
1497 pub fn mpd_isoddword(word: mpd_uint_t) -> ::std::os::raw::c_int;
1498 pub fn mpd_isoddcoeff(dec: *const mpd_t) -> ::std::os::raw::c_int;
1499 pub fn mpd_isodd(dec: *const mpd_t) -> ::std::os::raw::c_int;
1500 pub fn mpd_iseven(dec: *const mpd_t) -> ::std::os::raw::c_int;
1501 pub fn mpd_sign(dec: *const mpd_t) -> u8;
1502 pub fn mpd_arith_sign(dec: *const mpd_t) -> ::std::os::raw::c_int;
1503 pub fn mpd_radix() -> ::std::os::raw::c_long;
1504 pub fn mpd_isdynamic(dec: *const mpd_t) -> ::std::os::raw::c_int;
1505 pub fn mpd_isstatic(dec: *const mpd_t) -> ::std::os::raw::c_int;
1506 pub fn mpd_isdynamic_data(dec: *const mpd_t) -> ::std::os::raw::c_int;
1507 pub fn mpd_isstatic_data(dec: *const mpd_t) -> ::std::os::raw::c_int;
1508 pub fn mpd_isshared_data(dec: *const mpd_t) -> ::std::os::raw::c_int;
1509 pub fn mpd_isconst_data(dec: *const mpd_t) -> ::std::os::raw::c_int;
1510 pub fn mpd_trail_zeros(dec: *const mpd_t) -> mpd_ssize_t;
1511 pub fn mpd_setdigits(result: *mut mpd_t);
1512 pub fn mpd_set_sign(result: *mut mpd_t, sign: u8);
1513 pub fn mpd_signcpy(result: *mut mpd_t, a: *const mpd_t);
1514 pub fn mpd_set_infinity(result: *mut mpd_t);
1515 pub fn mpd_set_qnan(result: *mut mpd_t);
1516 pub fn mpd_set_snan(result: *mut mpd_t);
1517 pub fn mpd_set_negative(result: *mut mpd_t);
1518 pub fn mpd_set_positive(result: *mut mpd_t);
1519 pub fn mpd_set_dynamic(result: *mut mpd_t);
1520 pub fn mpd_set_static(result: *mut mpd_t);
1521 pub fn mpd_set_dynamic_data(result: *mut mpd_t);
1522 pub fn mpd_set_static_data(result: *mut mpd_t);
1523 pub fn mpd_set_shared_data(result: *mut mpd_t);
1524 pub fn mpd_set_const_data(result: *mut mpd_t);
1525 pub fn mpd_clear_flags(result: *mut mpd_t);
1526 pub fn mpd_set_flags(result: *mut mpd_t, flags: u8);
1527 pub fn mpd_copy_flags(result: *mut mpd_t, a: *const mpd_t);
1528 pub fn mpd_callocfunc_em(nmemb: usize, size: usize) -> *mut ::std::os::raw::c_void;
1529 pub fn mpd_alloc(nmemb: mpd_size_t, size: mpd_size_t) -> *mut ::std::os::raw::c_void;
1530 pub fn mpd_calloc(nmemb: mpd_size_t, size: mpd_size_t) -> *mut ::std::os::raw::c_void;
1531 pub fn mpd_realloc(
1532 ptr: *mut ::std::os::raw::c_void,
1533 nmemb: mpd_size_t,
1534 size: mpd_size_t,
1535 err: *mut u8,
1536 ) -> *mut ::std::os::raw::c_void;
1537 pub fn mpd_sh_alloc(
1538 struct_size: mpd_size_t,
1539 nmemb: mpd_size_t,
1540 size: mpd_size_t,
1541 ) -> *mut ::std::os::raw::c_void;
1542 pub fn mpd_qnew() -> *mut mpd_t;
1543 pub fn mpd_new(ctx: *mut mpd_context_t) -> *mut mpd_t;
1544 pub fn mpd_qnew_size(nwords: mpd_ssize_t) -> *mut mpd_t;
1545 pub fn mpd_del(dec: *mut mpd_t);
1546 pub fn mpd_uint_zero(dest: *mut mpd_uint_t, len: mpd_size_t);
1547 pub fn mpd_qresize(
1548 result: *mut mpd_t,
1549 nwords: mpd_ssize_t,
1550 status: *mut u32,
1551 ) -> ::std::os::raw::c_int;
1552 pub fn mpd_qresize_zero(
1553 result: *mut mpd_t,
1554 nwords: mpd_ssize_t,
1555 status: *mut u32,
1556 ) -> ::std::os::raw::c_int;
1557 pub fn mpd_minalloc(result: *mut mpd_t);
1558 pub fn mpd_resize(
1559 result: *mut mpd_t,
1560 nwords: mpd_ssize_t,
1561 ctx: *mut mpd_context_t,
1562 ) -> ::std::os::raw::c_int;
1563 pub fn mpd_resize_zero(
1564 result: *mut mpd_t,
1565 nwords: mpd_ssize_t,
1566 ctx: *mut mpd_context_t,
1567 ) -> ::std::os::raw::c_int;
1568}