elina_sys/
bindings.rs

1/* automatically generated by rust-bindgen 0.59.1 */
2
3pub const _FEATURES_H: u32 = 1;
4pub const _DEFAULT_SOURCE: u32 = 1;
5pub const __GLIBC_USE_ISOC2X: u32 = 0;
6pub const __USE_ISOC11: u32 = 1;
7pub const __USE_ISOC99: u32 = 1;
8pub const __USE_ISOC95: u32 = 1;
9pub const __USE_POSIX_IMPLICITLY: u32 = 1;
10pub const _POSIX_SOURCE: u32 = 1;
11pub const _POSIX_C_SOURCE: u32 = 200809;
12pub const __USE_POSIX: u32 = 1;
13pub const __USE_POSIX2: u32 = 1;
14pub const __USE_POSIX199309: u32 = 1;
15pub const __USE_POSIX199506: u32 = 1;
16pub const __USE_XOPEN2K: u32 = 1;
17pub const __USE_XOPEN2K8: u32 = 1;
18pub const _ATFILE_SOURCE: u32 = 1;
19pub const __USE_MISC: u32 = 1;
20pub const __USE_ATFILE: u32 = 1;
21pub const __USE_FORTIFY_LEVEL: u32 = 0;
22pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0;
23pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0;
24pub const _STDC_PREDEF_H: u32 = 1;
25pub const __STDC_IEC_559__: u32 = 1;
26pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
27pub const __STDC_ISO_10646__: u32 = 201706;
28pub const __GNU_LIBRARY__: u32 = 6;
29pub const __GLIBC__: u32 = 2;
30pub const __GLIBC_MINOR__: u32 = 31;
31pub const _SYS_CDEFS_H: u32 = 1;
32pub const __glibc_c99_flexarr_available: u32 = 1;
33pub const __WORDSIZE: u32 = 64;
34pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
35pub const __SYSCALL_WORDSIZE: u32 = 64;
36pub const __LONG_DOUBLE_USES_FLOAT128: u32 = 0;
37pub const __HAVE_GENERIC_SELECTION: u32 = 1;
38pub const __GLIBC_USE_LIB_EXT2: u32 = 0;
39pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0;
40pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 0;
41pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0;
42pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 0;
43pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0;
44pub const _STDLIB_H: u32 = 1;
45pub const WNOHANG: u32 = 1;
46pub const WUNTRACED: u32 = 2;
47pub const WSTOPPED: u32 = 2;
48pub const WEXITED: u32 = 4;
49pub const WCONTINUED: u32 = 8;
50pub const WNOWAIT: u32 = 16777216;
51pub const __WNOTHREAD: u32 = 536870912;
52pub const __WALL: u32 = 1073741824;
53pub const __WCLONE: u32 = 2147483648;
54pub const __ENUM_IDTYPE_T: u32 = 1;
55pub const __W_CONTINUED: u32 = 65535;
56pub const __WCOREFLAG: u32 = 128;
57pub const __HAVE_FLOAT128: u32 = 0;
58pub const __HAVE_DISTINCT_FLOAT128: u32 = 0;
59pub const __HAVE_FLOAT64X: u32 = 1;
60pub const __HAVE_FLOAT64X_LONG_DOUBLE: u32 = 1;
61pub const __HAVE_FLOAT16: u32 = 0;
62pub const __HAVE_FLOAT32: u32 = 1;
63pub const __HAVE_FLOAT64: u32 = 1;
64pub const __HAVE_FLOAT32X: u32 = 1;
65pub const __HAVE_FLOAT128X: u32 = 0;
66pub const __HAVE_DISTINCT_FLOAT16: u32 = 0;
67pub const __HAVE_DISTINCT_FLOAT32: u32 = 0;
68pub const __HAVE_DISTINCT_FLOAT64: u32 = 0;
69pub const __HAVE_DISTINCT_FLOAT32X: u32 = 0;
70pub const __HAVE_DISTINCT_FLOAT64X: u32 = 0;
71pub const __HAVE_DISTINCT_FLOAT128X: u32 = 0;
72pub const __HAVE_FLOATN_NOT_TYPEDEF: u32 = 0;
73pub const __ldiv_t_defined: u32 = 1;
74pub const __lldiv_t_defined: u32 = 1;
75pub const RAND_MAX: u32 = 2147483647;
76pub const EXIT_FAILURE: u32 = 1;
77pub const EXIT_SUCCESS: u32 = 0;
78pub const _SYS_TYPES_H: u32 = 1;
79pub const _BITS_TYPES_H: u32 = 1;
80pub const __TIMESIZE: u32 = 64;
81pub const _BITS_TYPESIZES_H: u32 = 1;
82pub const __OFF_T_MATCHES_OFF64_T: u32 = 1;
83pub const __INO_T_MATCHES_INO64_T: u32 = 1;
84pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1;
85pub const __STATFS_MATCHES_STATFS64: u32 = 1;
86pub const __FD_SETSIZE: u32 = 1024;
87pub const _BITS_TIME64_H: u32 = 1;
88pub const __clock_t_defined: u32 = 1;
89pub const __clockid_t_defined: u32 = 1;
90pub const __time_t_defined: u32 = 1;
91pub const __timer_t_defined: u32 = 1;
92pub const _BITS_STDINT_INTN_H: u32 = 1;
93pub const __BIT_TYPES_DEFINED__: u32 = 1;
94pub const _ENDIAN_H: u32 = 1;
95pub const _BITS_ENDIAN_H: u32 = 1;
96pub const __LITTLE_ENDIAN: u32 = 1234;
97pub const __BIG_ENDIAN: u32 = 4321;
98pub const __PDP_ENDIAN: u32 = 3412;
99pub const _BITS_ENDIANNESS_H: u32 = 1;
100pub const __BYTE_ORDER: u32 = 1234;
101pub const __FLOAT_WORD_ORDER: u32 = 1234;
102pub const LITTLE_ENDIAN: u32 = 1234;
103pub const BIG_ENDIAN: u32 = 4321;
104pub const PDP_ENDIAN: u32 = 3412;
105pub const BYTE_ORDER: u32 = 1234;
106pub const _BITS_BYTESWAP_H: u32 = 1;
107pub const _BITS_UINTN_IDENTITY_H: u32 = 1;
108pub const _SYS_SELECT_H: u32 = 1;
109pub const __FD_ZERO_STOS: &'static [u8; 6usize] = b"stosq\0";
110pub const __sigset_t_defined: u32 = 1;
111pub const __timeval_defined: u32 = 1;
112pub const _STRUCT_TIMESPEC: u32 = 1;
113pub const FD_SETSIZE: u32 = 1024;
114pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1;
115pub const _THREAD_SHARED_TYPES_H: u32 = 1;
116pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1;
117pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40;
118pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56;
119pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56;
120pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32;
121pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4;
122pub const __SIZEOF_PTHREAD_COND_T: u32 = 48;
123pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4;
124pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8;
125pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4;
126pub const _THREAD_MUTEX_INTERNAL_H: u32 = 1;
127pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1;
128pub const __have_pthread_attr_t: u32 = 1;
129pub const _ALLOCA_H: u32 = 1;
130pub const _STDIO_H: u32 = 1;
131pub const __GNUC_VA_LIST: u32 = 1;
132pub const _____fpos_t_defined: u32 = 1;
133pub const ____mbstate_t_defined: u32 = 1;
134pub const _____fpos64_t_defined: u32 = 1;
135pub const ____FILE_defined: u32 = 1;
136pub const __FILE_defined: u32 = 1;
137pub const __struct_FILE_defined: u32 = 1;
138pub const _IO_EOF_SEEN: u32 = 16;
139pub const _IO_ERR_SEEN: u32 = 32;
140pub const _IO_USER_LOCK: u32 = 32768;
141pub const _IOFBF: u32 = 0;
142pub const _IOLBF: u32 = 1;
143pub const _IONBF: u32 = 2;
144pub const BUFSIZ: u32 = 8192;
145pub const EOF: i32 = -1;
146pub const SEEK_SET: u32 = 0;
147pub const SEEK_CUR: u32 = 1;
148pub const SEEK_END: u32 = 2;
149pub const P_tmpdir: &'static [u8; 5usize] = b"/tmp\0";
150pub const _BITS_STDIO_LIM_H: u32 = 1;
151pub const L_tmpnam: u32 = 20;
152pub const TMP_MAX: u32 = 238328;
153pub const FILENAME_MAX: u32 = 4096;
154pub const L_ctermid: u32 = 9;
155pub const FOPEN_MAX: u32 = 16;
156pub const _LIBC_LIMITS_H_: u32 = 1;
157pub const MB_LEN_MAX: u32 = 16;
158pub const _BITS_POSIX1_LIM_H: u32 = 1;
159pub const _POSIX_AIO_LISTIO_MAX: u32 = 2;
160pub const _POSIX_AIO_MAX: u32 = 1;
161pub const _POSIX_ARG_MAX: u32 = 4096;
162pub const _POSIX_CHILD_MAX: u32 = 25;
163pub const _POSIX_DELAYTIMER_MAX: u32 = 32;
164pub const _POSIX_HOST_NAME_MAX: u32 = 255;
165pub const _POSIX_LINK_MAX: u32 = 8;
166pub const _POSIX_LOGIN_NAME_MAX: u32 = 9;
167pub const _POSIX_MAX_CANON: u32 = 255;
168pub const _POSIX_MAX_INPUT: u32 = 255;
169pub const _POSIX_MQ_OPEN_MAX: u32 = 8;
170pub const _POSIX_MQ_PRIO_MAX: u32 = 32;
171pub const _POSIX_NAME_MAX: u32 = 14;
172pub const _POSIX_NGROUPS_MAX: u32 = 8;
173pub const _POSIX_OPEN_MAX: u32 = 20;
174pub const _POSIX_PATH_MAX: u32 = 256;
175pub const _POSIX_PIPE_BUF: u32 = 512;
176pub const _POSIX_RE_DUP_MAX: u32 = 255;
177pub const _POSIX_RTSIG_MAX: u32 = 8;
178pub const _POSIX_SEM_NSEMS_MAX: u32 = 256;
179pub const _POSIX_SEM_VALUE_MAX: u32 = 32767;
180pub const _POSIX_SIGQUEUE_MAX: u32 = 32;
181pub const _POSIX_SSIZE_MAX: u32 = 32767;
182pub const _POSIX_STREAM_MAX: u32 = 8;
183pub const _POSIX_SYMLINK_MAX: u32 = 255;
184pub const _POSIX_SYMLOOP_MAX: u32 = 8;
185pub const _POSIX_TIMER_MAX: u32 = 32;
186pub const _POSIX_TTY_NAME_MAX: u32 = 9;
187pub const _POSIX_TZNAME_MAX: u32 = 6;
188pub const _POSIX_CLOCKRES_MIN: u32 = 20000000;
189pub const NR_OPEN: u32 = 1024;
190pub const NGROUPS_MAX: u32 = 65536;
191pub const ARG_MAX: u32 = 131072;
192pub const LINK_MAX: u32 = 127;
193pub const MAX_CANON: u32 = 255;
194pub const MAX_INPUT: u32 = 255;
195pub const NAME_MAX: u32 = 255;
196pub const PATH_MAX: u32 = 4096;
197pub const PIPE_BUF: u32 = 4096;
198pub const XATTR_NAME_MAX: u32 = 255;
199pub const XATTR_SIZE_MAX: u32 = 65536;
200pub const XATTR_LIST_MAX: u32 = 65536;
201pub const RTSIG_MAX: u32 = 32;
202pub const _POSIX_THREAD_KEYS_MAX: u32 = 128;
203pub const PTHREAD_KEYS_MAX: u32 = 1024;
204pub const _POSIX_THREAD_DESTRUCTOR_ITERATIONS: u32 = 4;
205pub const PTHREAD_DESTRUCTOR_ITERATIONS: u32 = 4;
206pub const _POSIX_THREAD_THREADS_MAX: u32 = 64;
207pub const AIO_PRIO_DELTA_MAX: u32 = 20;
208pub const PTHREAD_STACK_MIN: u32 = 16384;
209pub const DELAYTIMER_MAX: u32 = 2147483647;
210pub const TTY_NAME_MAX: u32 = 32;
211pub const LOGIN_NAME_MAX: u32 = 256;
212pub const HOST_NAME_MAX: u32 = 64;
213pub const MQ_PRIO_MAX: u32 = 32768;
214pub const SEM_VALUE_MAX: u32 = 2147483647;
215pub const _BITS_POSIX2_LIM_H: u32 = 1;
216pub const _POSIX2_BC_BASE_MAX: u32 = 99;
217pub const _POSIX2_BC_DIM_MAX: u32 = 2048;
218pub const _POSIX2_BC_SCALE_MAX: u32 = 99;
219pub const _POSIX2_BC_STRING_MAX: u32 = 1000;
220pub const _POSIX2_COLL_WEIGHTS_MAX: u32 = 2;
221pub const _POSIX2_EXPR_NEST_MAX: u32 = 32;
222pub const _POSIX2_LINE_MAX: u32 = 2048;
223pub const _POSIX2_RE_DUP_MAX: u32 = 255;
224pub const _POSIX2_CHARCLASS_NAME_MAX: u32 = 14;
225pub const BC_BASE_MAX: u32 = 99;
226pub const BC_DIM_MAX: u32 = 2048;
227pub const BC_SCALE_MAX: u32 = 99;
228pub const BC_STRING_MAX: u32 = 1000;
229pub const COLL_WEIGHTS_MAX: u32 = 255;
230pub const EXPR_NEST_MAX: u32 = 32;
231pub const LINE_MAX: u32 = 2048;
232pub const CHARCLASS_NAME_MAX: u32 = 2048;
233pub const RE_DUP_MAX: u32 = 32767;
234pub const _MATH_H: u32 = 1;
235pub const _BITS_LIBM_SIMD_DECL_STUBS_H: u32 = 1;
236pub const __FP_LOGB0_IS_MIN: u32 = 1;
237pub const __FP_LOGBNAN_IS_MIN: u32 = 1;
238pub const FP_ILOGB0: i32 = -2147483648;
239pub const FP_ILOGBNAN: i32 = -2147483648;
240pub const __MATH_DECLARING_DOUBLE: u32 = 1;
241pub const __MATH_DECLARING_FLOATN: u32 = 0;
242pub const __MATH_DECLARE_LDOUBLE: u32 = 1;
243pub const MATH_ERRNO: u32 = 1;
244pub const MATH_ERREXCEPT: u32 = 2;
245pub const math_errhandling: u32 = 3;
246pub const M_E: f64 = 2.718281828459045;
247pub const M_LOG2E: f64 = 1.4426950408889634;
248pub const M_LOG10E: f64 = 0.4342944819032518;
249pub const M_LN2: f64 = 0.6931471805599453;
250pub const M_LN10: f64 = 2.302585092994046;
251pub const M_PI: f64 = 3.141592653589793;
252pub const M_PI_2: f64 = 1.5707963267948966;
253pub const M_PI_4: f64 = 0.7853981633974483;
254pub const M_1_PI: f64 = 0.3183098861837907;
255pub const M_2_PI: f64 = 0.6366197723675814;
256pub const M_2_SQRTPI: f64 = 1.1283791670955126;
257pub const M_SQRT2: f64 = 1.4142135623730951;
258pub const M_SQRT1_2: f64 = 0.7071067811865476;
259pub const _STRING_H: u32 = 1;
260pub const _BITS_TYPES_LOCALE_T_H: u32 = 1;
261pub const _BITS_TYPES___LOCALE_T_H: u32 = 1;
262pub const _STRINGS_H: u32 = 1;
263pub const _ASSERT_H: u32 = 1;
264pub const _STDINT_H: u32 = 1;
265pub const _BITS_WCHAR_H: u32 = 1;
266pub const _BITS_STDINT_UINTN_H: u32 = 1;
267pub const INT8_MIN: i32 = -128;
268pub const INT16_MIN: i32 = -32768;
269pub const INT32_MIN: i32 = -2147483648;
270pub const INT8_MAX: u32 = 127;
271pub const INT16_MAX: u32 = 32767;
272pub const INT32_MAX: u32 = 2147483647;
273pub const UINT8_MAX: u32 = 255;
274pub const UINT16_MAX: u32 = 65535;
275pub const UINT32_MAX: u32 = 4294967295;
276pub const INT_LEAST8_MIN: i32 = -128;
277pub const INT_LEAST16_MIN: i32 = -32768;
278pub const INT_LEAST32_MIN: i32 = -2147483648;
279pub const INT_LEAST8_MAX: u32 = 127;
280pub const INT_LEAST16_MAX: u32 = 32767;
281pub const INT_LEAST32_MAX: u32 = 2147483647;
282pub const UINT_LEAST8_MAX: u32 = 255;
283pub const UINT_LEAST16_MAX: u32 = 65535;
284pub const UINT_LEAST32_MAX: u32 = 4294967295;
285pub const INT_FAST8_MIN: i32 = -128;
286pub const INT_FAST16_MIN: i64 = -9223372036854775808;
287pub const INT_FAST32_MIN: i64 = -9223372036854775808;
288pub const INT_FAST8_MAX: u32 = 127;
289pub const INT_FAST16_MAX: u64 = 9223372036854775807;
290pub const INT_FAST32_MAX: u64 = 9223372036854775807;
291pub const UINT_FAST8_MAX: u32 = 255;
292pub const UINT_FAST16_MAX: i32 = -1;
293pub const UINT_FAST32_MAX: i32 = -1;
294pub const INTPTR_MIN: i64 = -9223372036854775808;
295pub const INTPTR_MAX: u64 = 9223372036854775807;
296pub const UINTPTR_MAX: i32 = -1;
297pub const PTRDIFF_MIN: i64 = -9223372036854775808;
298pub const PTRDIFF_MAX: u64 = 9223372036854775807;
299pub const SIG_ATOMIC_MIN: i32 = -2147483648;
300pub const SIG_ATOMIC_MAX: u32 = 2147483647;
301pub const SIZE_MAX: i32 = -1;
302pub const WINT_MIN: u32 = 0;
303pub const WINT_MAX: u32 = 4294967295;
304pub const __GMP_HAVE_HOST_CPU_FAMILY_power: u32 = 0;
305pub const __GMP_HAVE_HOST_CPU_FAMILY_powerpc: u32 = 0;
306pub const GMP_LIMB_BITS: u32 = 64;
307pub const GMP_NAIL_BITS: u32 = 0;
308pub const GMP_NUMB_BITS: u32 = 64;
309pub const __GNU_MP__: u32 = 6;
310pub const __GMP_LIBGMP_DLL: u32 = 0;
311pub const __GMP_MP_SIZE_T_INT: u32 = 0;
312pub const _GMP_H_HAVE_FILE: u32 = 1;
313pub const _GMP_H_HAVE_VA_LIST: u32 = 1;
314pub const __GMP_INLINE_PROTOTYPES: u32 = 1;
315pub const __GMP_CC: &'static [u8; 4usize] = b"gcc\0";
316pub const __GMP_CFLAGS: &'static [u8; 70usize] =
317    b"-O2 -pedantic -fomit-frame-pointer -m64 -mtune=haswell -march=haswell\0";
318pub const __GNU_MP_VERSION: u32 = 6;
319pub const __GNU_MP_VERSION_MINOR: u32 = 2;
320pub const __GNU_MP_VERSION_PATCHLEVEL: u32 = 0;
321pub const __GNU_MP_RELEASE: u32 = 60200;
322pub const MPFR_VERSION_MAJOR: u32 = 4;
323pub const MPFR_VERSION_MINOR: u32 = 1;
324pub const MPFR_VERSION_PATCHLEVEL: u32 = 0;
325pub const MPFR_VERSION_STRING: &'static [u8; 6usize] = b"4.1.0\0";
326pub const MPFR_FLAGS_UNDERFLOW: u32 = 1;
327pub const MPFR_FLAGS_OVERFLOW: u32 = 2;
328pub const MPFR_FLAGS_NAN: u32 = 4;
329pub const MPFR_FLAGS_INEXACT: u32 = 8;
330pub const MPFR_FLAGS_ERANGE: u32 = 16;
331pub const MPFR_FLAGS_DIVBY0: u32 = 32;
332pub const MPFR_FLAGS_ALL: u32 = 63;
333pub const _MPFR_PREC_FORMAT: u32 = 3;
334pub const _MPFR_EXP_FORMAT: u32 = 3;
335pub const MPFR_PREC_MIN: u32 = 1;
336pub const MPFR_USE_C99_FEATURE: u32 = 1;
337pub const _MPFR_H_HAVE_INTMAX_T: u32 = 1;
338pub const _MPFR_H_HAVE_FILE: u32 = 1;
339pub const _MPFR_H_HAVE_VA_LIST: u32 = 1;
340pub const _MPFR_H_HAVE_VA_LIST_FILE: u32 = 1;
341pub const ELINA_INT_ZERO: u32 = 0;
342pub const ELINA_INT_ONE: u32 = 1;
343pub type size_t = ::std::os::raw::c_ulong;
344pub type wchar_t = ::std::os::raw::c_int;
345pub const idtype_t_P_ALL: idtype_t = 0;
346pub const idtype_t_P_PID: idtype_t = 1;
347pub const idtype_t_P_PGID: idtype_t = 2;
348pub type idtype_t = ::std::os::raw::c_uint;
349pub type _Float32 = f32;
350pub type _Float64 = f64;
351pub type _Float32x = f64;
352pub type _Float64x = u128;
353#[repr(C)]
354#[derive(Debug, Copy, Clone)]
355pub struct div_t {
356    pub quot: ::std::os::raw::c_int,
357    pub rem: ::std::os::raw::c_int,
358}
359#[test]
360fn bindgen_test_layout_div_t() {
361    assert_eq!(
362        ::std::mem::size_of::<div_t>(),
363        8usize,
364        concat!("Size of: ", stringify!(div_t))
365    );
366    assert_eq!(
367        ::std::mem::align_of::<div_t>(),
368        4usize,
369        concat!("Alignment of ", stringify!(div_t))
370    );
371    assert_eq!(
372        unsafe { &(*(::std::ptr::null::<div_t>())).quot as *const _ as usize },
373        0usize,
374        concat!(
375            "Offset of field: ",
376            stringify!(div_t),
377            "::",
378            stringify!(quot)
379        )
380    );
381    assert_eq!(
382        unsafe { &(*(::std::ptr::null::<div_t>())).rem as *const _ as usize },
383        4usize,
384        concat!(
385            "Offset of field: ",
386            stringify!(div_t),
387            "::",
388            stringify!(rem)
389        )
390    );
391}
392#[repr(C)]
393#[derive(Debug, Copy, Clone)]
394pub struct ldiv_t {
395    pub quot: ::std::os::raw::c_long,
396    pub rem: ::std::os::raw::c_long,
397}
398#[test]
399fn bindgen_test_layout_ldiv_t() {
400    assert_eq!(
401        ::std::mem::size_of::<ldiv_t>(),
402        16usize,
403        concat!("Size of: ", stringify!(ldiv_t))
404    );
405    assert_eq!(
406        ::std::mem::align_of::<ldiv_t>(),
407        8usize,
408        concat!("Alignment of ", stringify!(ldiv_t))
409    );
410    assert_eq!(
411        unsafe { &(*(::std::ptr::null::<ldiv_t>())).quot as *const _ as usize },
412        0usize,
413        concat!(
414            "Offset of field: ",
415            stringify!(ldiv_t),
416            "::",
417            stringify!(quot)
418        )
419    );
420    assert_eq!(
421        unsafe { &(*(::std::ptr::null::<ldiv_t>())).rem as *const _ as usize },
422        8usize,
423        concat!(
424            "Offset of field: ",
425            stringify!(ldiv_t),
426            "::",
427            stringify!(rem)
428        )
429    );
430}
431#[repr(C)]
432#[derive(Debug, Copy, Clone)]
433pub struct lldiv_t {
434    pub quot: ::std::os::raw::c_longlong,
435    pub rem: ::std::os::raw::c_longlong,
436}
437#[test]
438fn bindgen_test_layout_lldiv_t() {
439    assert_eq!(
440        ::std::mem::size_of::<lldiv_t>(),
441        16usize,
442        concat!("Size of: ", stringify!(lldiv_t))
443    );
444    assert_eq!(
445        ::std::mem::align_of::<lldiv_t>(),
446        8usize,
447        concat!("Alignment of ", stringify!(lldiv_t))
448    );
449    assert_eq!(
450        unsafe { &(*(::std::ptr::null::<lldiv_t>())).quot as *const _ as usize },
451        0usize,
452        concat!(
453            "Offset of field: ",
454            stringify!(lldiv_t),
455            "::",
456            stringify!(quot)
457        )
458    );
459    assert_eq!(
460        unsafe { &(*(::std::ptr::null::<lldiv_t>())).rem as *const _ as usize },
461        8usize,
462        concat!(
463            "Offset of field: ",
464            stringify!(lldiv_t),
465            "::",
466            stringify!(rem)
467        )
468    );
469}
470extern "C" {
471    pub fn __ctype_get_mb_cur_max() -> size_t;
472}
473extern "C" {
474    pub fn atof(__nptr: *const ::std::os::raw::c_char) -> f64;
475}
476extern "C" {
477    pub fn atoi(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
478}
479extern "C" {
480    pub fn atol(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
481}
482extern "C" {
483    pub fn atoll(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong;
484}
485extern "C" {
486    pub fn strtod(
487        __nptr: *const ::std::os::raw::c_char,
488        __endptr: *mut *mut ::std::os::raw::c_char,
489    ) -> f64;
490}
491extern "C" {
492    pub fn strtof(
493        __nptr: *const ::std::os::raw::c_char,
494        __endptr: *mut *mut ::std::os::raw::c_char,
495    ) -> f32;
496}
497extern "C" {
498    pub fn strtold(
499        __nptr: *const ::std::os::raw::c_char,
500        __endptr: *mut *mut ::std::os::raw::c_char,
501    ) -> u128;
502}
503extern "C" {
504    pub fn strtol(
505        __nptr: *const ::std::os::raw::c_char,
506        __endptr: *mut *mut ::std::os::raw::c_char,
507        __base: ::std::os::raw::c_int,
508    ) -> ::std::os::raw::c_long;
509}
510extern "C" {
511    pub fn strtoul(
512        __nptr: *const ::std::os::raw::c_char,
513        __endptr: *mut *mut ::std::os::raw::c_char,
514        __base: ::std::os::raw::c_int,
515    ) -> ::std::os::raw::c_ulong;
516}
517extern "C" {
518    pub fn strtoq(
519        __nptr: *const ::std::os::raw::c_char,
520        __endptr: *mut *mut ::std::os::raw::c_char,
521        __base: ::std::os::raw::c_int,
522    ) -> ::std::os::raw::c_longlong;
523}
524extern "C" {
525    pub fn strtouq(
526        __nptr: *const ::std::os::raw::c_char,
527        __endptr: *mut *mut ::std::os::raw::c_char,
528        __base: ::std::os::raw::c_int,
529    ) -> ::std::os::raw::c_ulonglong;
530}
531extern "C" {
532    pub fn strtoll(
533        __nptr: *const ::std::os::raw::c_char,
534        __endptr: *mut *mut ::std::os::raw::c_char,
535        __base: ::std::os::raw::c_int,
536    ) -> ::std::os::raw::c_longlong;
537}
538extern "C" {
539    pub fn strtoull(
540        __nptr: *const ::std::os::raw::c_char,
541        __endptr: *mut *mut ::std::os::raw::c_char,
542        __base: ::std::os::raw::c_int,
543    ) -> ::std::os::raw::c_ulonglong;
544}
545extern "C" {
546    pub fn l64a(__n: ::std::os::raw::c_long) -> *mut ::std::os::raw::c_char;
547}
548extern "C" {
549    pub fn a64l(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
550}
551pub type __u_char = ::std::os::raw::c_uchar;
552pub type __u_short = ::std::os::raw::c_ushort;
553pub type __u_int = ::std::os::raw::c_uint;
554pub type __u_long = ::std::os::raw::c_ulong;
555pub type __int8_t = ::std::os::raw::c_schar;
556pub type __uint8_t = ::std::os::raw::c_uchar;
557pub type __int16_t = ::std::os::raw::c_short;
558pub type __uint16_t = ::std::os::raw::c_ushort;
559pub type __int32_t = ::std::os::raw::c_int;
560pub type __uint32_t = ::std::os::raw::c_uint;
561pub type __int64_t = ::std::os::raw::c_long;
562pub type __uint64_t = ::std::os::raw::c_ulong;
563pub type __int_least8_t = __int8_t;
564pub type __uint_least8_t = __uint8_t;
565pub type __int_least16_t = __int16_t;
566pub type __uint_least16_t = __uint16_t;
567pub type __int_least32_t = __int32_t;
568pub type __uint_least32_t = __uint32_t;
569pub type __int_least64_t = __int64_t;
570pub type __uint_least64_t = __uint64_t;
571pub type __quad_t = ::std::os::raw::c_long;
572pub type __u_quad_t = ::std::os::raw::c_ulong;
573pub type __intmax_t = ::std::os::raw::c_long;
574pub type __uintmax_t = ::std::os::raw::c_ulong;
575pub type __dev_t = ::std::os::raw::c_ulong;
576pub type __uid_t = ::std::os::raw::c_uint;
577pub type __gid_t = ::std::os::raw::c_uint;
578pub type __ino_t = ::std::os::raw::c_ulong;
579pub type __ino64_t = ::std::os::raw::c_ulong;
580pub type __mode_t = ::std::os::raw::c_uint;
581pub type __nlink_t = ::std::os::raw::c_ulong;
582pub type __off_t = ::std::os::raw::c_long;
583pub type __off64_t = ::std::os::raw::c_long;
584pub type __pid_t = ::std::os::raw::c_int;
585#[repr(C)]
586#[derive(Debug, Copy, Clone)]
587pub struct __fsid_t {
588    pub __val: [::std::os::raw::c_int; 2usize],
589}
590#[test]
591fn bindgen_test_layout___fsid_t() {
592    assert_eq!(
593        ::std::mem::size_of::<__fsid_t>(),
594        8usize,
595        concat!("Size of: ", stringify!(__fsid_t))
596    );
597    assert_eq!(
598        ::std::mem::align_of::<__fsid_t>(),
599        4usize,
600        concat!("Alignment of ", stringify!(__fsid_t))
601    );
602    assert_eq!(
603        unsafe { &(*(::std::ptr::null::<__fsid_t>())).__val as *const _ as usize },
604        0usize,
605        concat!(
606            "Offset of field: ",
607            stringify!(__fsid_t),
608            "::",
609            stringify!(__val)
610        )
611    );
612}
613pub type __clock_t = ::std::os::raw::c_long;
614pub type __rlim_t = ::std::os::raw::c_ulong;
615pub type __rlim64_t = ::std::os::raw::c_ulong;
616pub type __id_t = ::std::os::raw::c_uint;
617pub type __time_t = ::std::os::raw::c_long;
618pub type __useconds_t = ::std::os::raw::c_uint;
619pub type __suseconds_t = ::std::os::raw::c_long;
620pub type __daddr_t = ::std::os::raw::c_int;
621pub type __key_t = ::std::os::raw::c_int;
622pub type __clockid_t = ::std::os::raw::c_int;
623pub type __timer_t = *mut ::std::os::raw::c_void;
624pub type __blksize_t = ::std::os::raw::c_long;
625pub type __blkcnt_t = ::std::os::raw::c_long;
626pub type __blkcnt64_t = ::std::os::raw::c_long;
627pub type __fsblkcnt_t = ::std::os::raw::c_ulong;
628pub type __fsblkcnt64_t = ::std::os::raw::c_ulong;
629pub type __fsfilcnt_t = ::std::os::raw::c_ulong;
630pub type __fsfilcnt64_t = ::std::os::raw::c_ulong;
631pub type __fsword_t = ::std::os::raw::c_long;
632pub type __ssize_t = ::std::os::raw::c_long;
633pub type __syscall_slong_t = ::std::os::raw::c_long;
634pub type __syscall_ulong_t = ::std::os::raw::c_ulong;
635pub type __loff_t = __off64_t;
636pub type __caddr_t = *mut ::std::os::raw::c_char;
637pub type __intptr_t = ::std::os::raw::c_long;
638pub type __socklen_t = ::std::os::raw::c_uint;
639pub type __sig_atomic_t = ::std::os::raw::c_int;
640pub type u_char = __u_char;
641pub type u_short = __u_short;
642pub type u_int = __u_int;
643pub type u_long = __u_long;
644pub type quad_t = __quad_t;
645pub type u_quad_t = __u_quad_t;
646pub type fsid_t = __fsid_t;
647pub type loff_t = __loff_t;
648pub type ino_t = __ino_t;
649pub type dev_t = __dev_t;
650pub type gid_t = __gid_t;
651pub type mode_t = __mode_t;
652pub type nlink_t = __nlink_t;
653pub type uid_t = __uid_t;
654pub type off_t = __off_t;
655pub type pid_t = __pid_t;
656pub type id_t = __id_t;
657pub type ssize_t = __ssize_t;
658pub type daddr_t = __daddr_t;
659pub type caddr_t = __caddr_t;
660pub type key_t = __key_t;
661pub type clock_t = __clock_t;
662pub type clockid_t = __clockid_t;
663pub type time_t = __time_t;
664pub type timer_t = __timer_t;
665pub type ulong = ::std::os::raw::c_ulong;
666pub type ushort = ::std::os::raw::c_ushort;
667pub type uint = ::std::os::raw::c_uint;
668pub type u_int8_t = __uint8_t;
669pub type u_int16_t = __uint16_t;
670pub type u_int32_t = __uint32_t;
671pub type u_int64_t = __uint64_t;
672pub type register_t = ::std::os::raw::c_long;
673#[repr(C)]
674#[derive(Debug, Copy, Clone)]
675pub struct __sigset_t {
676    pub __val: [::std::os::raw::c_ulong; 16usize],
677}
678#[test]
679fn bindgen_test_layout___sigset_t() {
680    assert_eq!(
681        ::std::mem::size_of::<__sigset_t>(),
682        128usize,
683        concat!("Size of: ", stringify!(__sigset_t))
684    );
685    assert_eq!(
686        ::std::mem::align_of::<__sigset_t>(),
687        8usize,
688        concat!("Alignment of ", stringify!(__sigset_t))
689    );
690    assert_eq!(
691        unsafe { &(*(::std::ptr::null::<__sigset_t>())).__val as *const _ as usize },
692        0usize,
693        concat!(
694            "Offset of field: ",
695            stringify!(__sigset_t),
696            "::",
697            stringify!(__val)
698        )
699    );
700}
701pub type sigset_t = __sigset_t;
702#[repr(C)]
703#[derive(Debug, Copy, Clone)]
704pub struct timeval {
705    pub tv_sec: __time_t,
706    pub tv_usec: __suseconds_t,
707}
708#[test]
709fn bindgen_test_layout_timeval() {
710    assert_eq!(
711        ::std::mem::size_of::<timeval>(),
712        16usize,
713        concat!("Size of: ", stringify!(timeval))
714    );
715    assert_eq!(
716        ::std::mem::align_of::<timeval>(),
717        8usize,
718        concat!("Alignment of ", stringify!(timeval))
719    );
720    assert_eq!(
721        unsafe { &(*(::std::ptr::null::<timeval>())).tv_sec as *const _ as usize },
722        0usize,
723        concat!(
724            "Offset of field: ",
725            stringify!(timeval),
726            "::",
727            stringify!(tv_sec)
728        )
729    );
730    assert_eq!(
731        unsafe { &(*(::std::ptr::null::<timeval>())).tv_usec as *const _ as usize },
732        8usize,
733        concat!(
734            "Offset of field: ",
735            stringify!(timeval),
736            "::",
737            stringify!(tv_usec)
738        )
739    );
740}
741#[repr(C)]
742#[derive(Debug, Copy, Clone)]
743pub struct timespec {
744    pub tv_sec: __time_t,
745    pub tv_nsec: __syscall_slong_t,
746}
747#[test]
748fn bindgen_test_layout_timespec() {
749    assert_eq!(
750        ::std::mem::size_of::<timespec>(),
751        16usize,
752        concat!("Size of: ", stringify!(timespec))
753    );
754    assert_eq!(
755        ::std::mem::align_of::<timespec>(),
756        8usize,
757        concat!("Alignment of ", stringify!(timespec))
758    );
759    assert_eq!(
760        unsafe { &(*(::std::ptr::null::<timespec>())).tv_sec as *const _ as usize },
761        0usize,
762        concat!(
763            "Offset of field: ",
764            stringify!(timespec),
765            "::",
766            stringify!(tv_sec)
767        )
768    );
769    assert_eq!(
770        unsafe { &(*(::std::ptr::null::<timespec>())).tv_nsec as *const _ as usize },
771        8usize,
772        concat!(
773            "Offset of field: ",
774            stringify!(timespec),
775            "::",
776            stringify!(tv_nsec)
777        )
778    );
779}
780pub type suseconds_t = __suseconds_t;
781pub type __fd_mask = ::std::os::raw::c_long;
782#[repr(C)]
783#[derive(Debug, Copy, Clone)]
784pub struct fd_set {
785    pub __fds_bits: [__fd_mask; 16usize],
786}
787#[test]
788fn bindgen_test_layout_fd_set() {
789    assert_eq!(
790        ::std::mem::size_of::<fd_set>(),
791        128usize,
792        concat!("Size of: ", stringify!(fd_set))
793    );
794    assert_eq!(
795        ::std::mem::align_of::<fd_set>(),
796        8usize,
797        concat!("Alignment of ", stringify!(fd_set))
798    );
799    assert_eq!(
800        unsafe { &(*(::std::ptr::null::<fd_set>())).__fds_bits as *const _ as usize },
801        0usize,
802        concat!(
803            "Offset of field: ",
804            stringify!(fd_set),
805            "::",
806            stringify!(__fds_bits)
807        )
808    );
809}
810pub type fd_mask = __fd_mask;
811extern "C" {
812    pub fn select(
813        __nfds: ::std::os::raw::c_int,
814        __readfds: *mut fd_set,
815        __writefds: *mut fd_set,
816        __exceptfds: *mut fd_set,
817        __timeout: *mut timeval,
818    ) -> ::std::os::raw::c_int;
819}
820extern "C" {
821    pub fn pselect(
822        __nfds: ::std::os::raw::c_int,
823        __readfds: *mut fd_set,
824        __writefds: *mut fd_set,
825        __exceptfds: *mut fd_set,
826        __timeout: *const timespec,
827        __sigmask: *const __sigset_t,
828    ) -> ::std::os::raw::c_int;
829}
830pub type blksize_t = __blksize_t;
831pub type blkcnt_t = __blkcnt_t;
832pub type fsblkcnt_t = __fsblkcnt_t;
833pub type fsfilcnt_t = __fsfilcnt_t;
834#[repr(C)]
835#[derive(Debug, Copy, Clone)]
836pub struct __pthread_internal_list {
837    pub __prev: *mut __pthread_internal_list,
838    pub __next: *mut __pthread_internal_list,
839}
840#[test]
841fn bindgen_test_layout___pthread_internal_list() {
842    assert_eq!(
843        ::std::mem::size_of::<__pthread_internal_list>(),
844        16usize,
845        concat!("Size of: ", stringify!(__pthread_internal_list))
846    );
847    assert_eq!(
848        ::std::mem::align_of::<__pthread_internal_list>(),
849        8usize,
850        concat!("Alignment of ", stringify!(__pthread_internal_list))
851    );
852    assert_eq!(
853        unsafe { &(*(::std::ptr::null::<__pthread_internal_list>())).__prev as *const _ as usize },
854        0usize,
855        concat!(
856            "Offset of field: ",
857            stringify!(__pthread_internal_list),
858            "::",
859            stringify!(__prev)
860        )
861    );
862    assert_eq!(
863        unsafe { &(*(::std::ptr::null::<__pthread_internal_list>())).__next as *const _ as usize },
864        8usize,
865        concat!(
866            "Offset of field: ",
867            stringify!(__pthread_internal_list),
868            "::",
869            stringify!(__next)
870        )
871    );
872}
873pub type __pthread_list_t = __pthread_internal_list;
874#[repr(C)]
875#[derive(Debug, Copy, Clone)]
876pub struct __pthread_internal_slist {
877    pub __next: *mut __pthread_internal_slist,
878}
879#[test]
880fn bindgen_test_layout___pthread_internal_slist() {
881    assert_eq!(
882        ::std::mem::size_of::<__pthread_internal_slist>(),
883        8usize,
884        concat!("Size of: ", stringify!(__pthread_internal_slist))
885    );
886    assert_eq!(
887        ::std::mem::align_of::<__pthread_internal_slist>(),
888        8usize,
889        concat!("Alignment of ", stringify!(__pthread_internal_slist))
890    );
891    assert_eq!(
892        unsafe { &(*(::std::ptr::null::<__pthread_internal_slist>())).__next as *const _ as usize },
893        0usize,
894        concat!(
895            "Offset of field: ",
896            stringify!(__pthread_internal_slist),
897            "::",
898            stringify!(__next)
899        )
900    );
901}
902pub type __pthread_slist_t = __pthread_internal_slist;
903#[repr(C)]
904#[derive(Debug, Copy, Clone)]
905pub struct __pthread_mutex_s {
906    pub __lock: ::std::os::raw::c_int,
907    pub __count: ::std::os::raw::c_uint,
908    pub __owner: ::std::os::raw::c_int,
909    pub __nusers: ::std::os::raw::c_uint,
910    pub __kind: ::std::os::raw::c_int,
911    pub __spins: ::std::os::raw::c_short,
912    pub __elision: ::std::os::raw::c_short,
913    pub __list: __pthread_list_t,
914}
915#[test]
916fn bindgen_test_layout___pthread_mutex_s() {
917    assert_eq!(
918        ::std::mem::size_of::<__pthread_mutex_s>(),
919        40usize,
920        concat!("Size of: ", stringify!(__pthread_mutex_s))
921    );
922    assert_eq!(
923        ::std::mem::align_of::<__pthread_mutex_s>(),
924        8usize,
925        concat!("Alignment of ", stringify!(__pthread_mutex_s))
926    );
927    assert_eq!(
928        unsafe { &(*(::std::ptr::null::<__pthread_mutex_s>())).__lock as *const _ as usize },
929        0usize,
930        concat!(
931            "Offset of field: ",
932            stringify!(__pthread_mutex_s),
933            "::",
934            stringify!(__lock)
935        )
936    );
937    assert_eq!(
938        unsafe { &(*(::std::ptr::null::<__pthread_mutex_s>())).__count as *const _ as usize },
939        4usize,
940        concat!(
941            "Offset of field: ",
942            stringify!(__pthread_mutex_s),
943            "::",
944            stringify!(__count)
945        )
946    );
947    assert_eq!(
948        unsafe { &(*(::std::ptr::null::<__pthread_mutex_s>())).__owner as *const _ as usize },
949        8usize,
950        concat!(
951            "Offset of field: ",
952            stringify!(__pthread_mutex_s),
953            "::",
954            stringify!(__owner)
955        )
956    );
957    assert_eq!(
958        unsafe { &(*(::std::ptr::null::<__pthread_mutex_s>())).__nusers as *const _ as usize },
959        12usize,
960        concat!(
961            "Offset of field: ",
962            stringify!(__pthread_mutex_s),
963            "::",
964            stringify!(__nusers)
965        )
966    );
967    assert_eq!(
968        unsafe { &(*(::std::ptr::null::<__pthread_mutex_s>())).__kind as *const _ as usize },
969        16usize,
970        concat!(
971            "Offset of field: ",
972            stringify!(__pthread_mutex_s),
973            "::",
974            stringify!(__kind)
975        )
976    );
977    assert_eq!(
978        unsafe { &(*(::std::ptr::null::<__pthread_mutex_s>())).__spins as *const _ as usize },
979        20usize,
980        concat!(
981            "Offset of field: ",
982            stringify!(__pthread_mutex_s),
983            "::",
984            stringify!(__spins)
985        )
986    );
987    assert_eq!(
988        unsafe { &(*(::std::ptr::null::<__pthread_mutex_s>())).__elision as *const _ as usize },
989        22usize,
990        concat!(
991            "Offset of field: ",
992            stringify!(__pthread_mutex_s),
993            "::",
994            stringify!(__elision)
995        )
996    );
997    assert_eq!(
998        unsafe { &(*(::std::ptr::null::<__pthread_mutex_s>())).__list as *const _ as usize },
999        24usize,
1000        concat!(
1001            "Offset of field: ",
1002            stringify!(__pthread_mutex_s),
1003            "::",
1004            stringify!(__list)
1005        )
1006    );
1007}
1008#[repr(C)]
1009#[derive(Debug, Copy, Clone)]
1010pub struct __pthread_rwlock_arch_t {
1011    pub __readers: ::std::os::raw::c_uint,
1012    pub __writers: ::std::os::raw::c_uint,
1013    pub __wrphase_futex: ::std::os::raw::c_uint,
1014    pub __writers_futex: ::std::os::raw::c_uint,
1015    pub __pad3: ::std::os::raw::c_uint,
1016    pub __pad4: ::std::os::raw::c_uint,
1017    pub __cur_writer: ::std::os::raw::c_int,
1018    pub __shared: ::std::os::raw::c_int,
1019    pub __rwelision: ::std::os::raw::c_schar,
1020    pub __pad1: [::std::os::raw::c_uchar; 7usize],
1021    pub __pad2: ::std::os::raw::c_ulong,
1022    pub __flags: ::std::os::raw::c_uint,
1023}
1024#[test]
1025fn bindgen_test_layout___pthread_rwlock_arch_t() {
1026    assert_eq!(
1027        ::std::mem::size_of::<__pthread_rwlock_arch_t>(),
1028        56usize,
1029        concat!("Size of: ", stringify!(__pthread_rwlock_arch_t))
1030    );
1031    assert_eq!(
1032        ::std::mem::align_of::<__pthread_rwlock_arch_t>(),
1033        8usize,
1034        concat!("Alignment of ", stringify!(__pthread_rwlock_arch_t))
1035    );
1036    assert_eq!(
1037        unsafe {
1038            &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__readers as *const _ as usize
1039        },
1040        0usize,
1041        concat!(
1042            "Offset of field: ",
1043            stringify!(__pthread_rwlock_arch_t),
1044            "::",
1045            stringify!(__readers)
1046        )
1047    );
1048    assert_eq!(
1049        unsafe {
1050            &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__writers as *const _ as usize
1051        },
1052        4usize,
1053        concat!(
1054            "Offset of field: ",
1055            stringify!(__pthread_rwlock_arch_t),
1056            "::",
1057            stringify!(__writers)
1058        )
1059    );
1060    assert_eq!(
1061        unsafe {
1062            &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__wrphase_futex as *const _ as usize
1063        },
1064        8usize,
1065        concat!(
1066            "Offset of field: ",
1067            stringify!(__pthread_rwlock_arch_t),
1068            "::",
1069            stringify!(__wrphase_futex)
1070        )
1071    );
1072    assert_eq!(
1073        unsafe {
1074            &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__writers_futex as *const _ as usize
1075        },
1076        12usize,
1077        concat!(
1078            "Offset of field: ",
1079            stringify!(__pthread_rwlock_arch_t),
1080            "::",
1081            stringify!(__writers_futex)
1082        )
1083    );
1084    assert_eq!(
1085        unsafe { &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__pad3 as *const _ as usize },
1086        16usize,
1087        concat!(
1088            "Offset of field: ",
1089            stringify!(__pthread_rwlock_arch_t),
1090            "::",
1091            stringify!(__pad3)
1092        )
1093    );
1094    assert_eq!(
1095        unsafe { &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__pad4 as *const _ as usize },
1096        20usize,
1097        concat!(
1098            "Offset of field: ",
1099            stringify!(__pthread_rwlock_arch_t),
1100            "::",
1101            stringify!(__pad4)
1102        )
1103    );
1104    assert_eq!(
1105        unsafe {
1106            &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__cur_writer as *const _ as usize
1107        },
1108        24usize,
1109        concat!(
1110            "Offset of field: ",
1111            stringify!(__pthread_rwlock_arch_t),
1112            "::",
1113            stringify!(__cur_writer)
1114        )
1115    );
1116    assert_eq!(
1117        unsafe {
1118            &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__shared as *const _ as usize
1119        },
1120        28usize,
1121        concat!(
1122            "Offset of field: ",
1123            stringify!(__pthread_rwlock_arch_t),
1124            "::",
1125            stringify!(__shared)
1126        )
1127    );
1128    assert_eq!(
1129        unsafe {
1130            &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__rwelision as *const _ as usize
1131        },
1132        32usize,
1133        concat!(
1134            "Offset of field: ",
1135            stringify!(__pthread_rwlock_arch_t),
1136            "::",
1137            stringify!(__rwelision)
1138        )
1139    );
1140    assert_eq!(
1141        unsafe { &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__pad1 as *const _ as usize },
1142        33usize,
1143        concat!(
1144            "Offset of field: ",
1145            stringify!(__pthread_rwlock_arch_t),
1146            "::",
1147            stringify!(__pad1)
1148        )
1149    );
1150    assert_eq!(
1151        unsafe { &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__pad2 as *const _ as usize },
1152        40usize,
1153        concat!(
1154            "Offset of field: ",
1155            stringify!(__pthread_rwlock_arch_t),
1156            "::",
1157            stringify!(__pad2)
1158        )
1159    );
1160    assert_eq!(
1161        unsafe { &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__flags as *const _ as usize },
1162        48usize,
1163        concat!(
1164            "Offset of field: ",
1165            stringify!(__pthread_rwlock_arch_t),
1166            "::",
1167            stringify!(__flags)
1168        )
1169    );
1170}
1171#[repr(C)]
1172#[derive(Copy, Clone)]
1173pub struct __pthread_cond_s {
1174    pub __bindgen_anon_1: __pthread_cond_s__bindgen_ty_1,
1175    pub __bindgen_anon_2: __pthread_cond_s__bindgen_ty_2,
1176    pub __g_refs: [::std::os::raw::c_uint; 2usize],
1177    pub __g_size: [::std::os::raw::c_uint; 2usize],
1178    pub __g1_orig_size: ::std::os::raw::c_uint,
1179    pub __wrefs: ::std::os::raw::c_uint,
1180    pub __g_signals: [::std::os::raw::c_uint; 2usize],
1181}
1182#[repr(C)]
1183#[derive(Copy, Clone)]
1184pub union __pthread_cond_s__bindgen_ty_1 {
1185    pub __wseq: ::std::os::raw::c_ulonglong,
1186    pub __wseq32: __pthread_cond_s__bindgen_ty_1__bindgen_ty_1,
1187}
1188#[repr(C)]
1189#[derive(Debug, Copy, Clone)]
1190pub struct __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 {
1191    pub __low: ::std::os::raw::c_uint,
1192    pub __high: ::std::os::raw::c_uint,
1193}
1194#[test]
1195fn bindgen_test_layout___pthread_cond_s__bindgen_ty_1__bindgen_ty_1() {
1196    assert_eq!(
1197        ::std::mem::size_of::<__pthread_cond_s__bindgen_ty_1__bindgen_ty_1>(),
1198        8usize,
1199        concat!(
1200            "Size of: ",
1201            stringify!(__pthread_cond_s__bindgen_ty_1__bindgen_ty_1)
1202        )
1203    );
1204    assert_eq!(
1205        ::std::mem::align_of::<__pthread_cond_s__bindgen_ty_1__bindgen_ty_1>(),
1206        4usize,
1207        concat!(
1208            "Alignment of ",
1209            stringify!(__pthread_cond_s__bindgen_ty_1__bindgen_ty_1)
1210        )
1211    );
1212    assert_eq!(
1213        unsafe {
1214            &(*(::std::ptr::null::<__pthread_cond_s__bindgen_ty_1__bindgen_ty_1>())).__low
1215                as *const _ as usize
1216        },
1217        0usize,
1218        concat!(
1219            "Offset of field: ",
1220            stringify!(__pthread_cond_s__bindgen_ty_1__bindgen_ty_1),
1221            "::",
1222            stringify!(__low)
1223        )
1224    );
1225    assert_eq!(
1226        unsafe {
1227            &(*(::std::ptr::null::<__pthread_cond_s__bindgen_ty_1__bindgen_ty_1>())).__high
1228                as *const _ as usize
1229        },
1230        4usize,
1231        concat!(
1232            "Offset of field: ",
1233            stringify!(__pthread_cond_s__bindgen_ty_1__bindgen_ty_1),
1234            "::",
1235            stringify!(__high)
1236        )
1237    );
1238}
1239#[test]
1240fn bindgen_test_layout___pthread_cond_s__bindgen_ty_1() {
1241    assert_eq!(
1242        ::std::mem::size_of::<__pthread_cond_s__bindgen_ty_1>(),
1243        8usize,
1244        concat!("Size of: ", stringify!(__pthread_cond_s__bindgen_ty_1))
1245    );
1246    assert_eq!(
1247        ::std::mem::align_of::<__pthread_cond_s__bindgen_ty_1>(),
1248        8usize,
1249        concat!("Alignment of ", stringify!(__pthread_cond_s__bindgen_ty_1))
1250    );
1251    assert_eq!(
1252        unsafe {
1253            &(*(::std::ptr::null::<__pthread_cond_s__bindgen_ty_1>())).__wseq as *const _ as usize
1254        },
1255        0usize,
1256        concat!(
1257            "Offset of field: ",
1258            stringify!(__pthread_cond_s__bindgen_ty_1),
1259            "::",
1260            stringify!(__wseq)
1261        )
1262    );
1263    assert_eq!(
1264        unsafe {
1265            &(*(::std::ptr::null::<__pthread_cond_s__bindgen_ty_1>())).__wseq32 as *const _ as usize
1266        },
1267        0usize,
1268        concat!(
1269            "Offset of field: ",
1270            stringify!(__pthread_cond_s__bindgen_ty_1),
1271            "::",
1272            stringify!(__wseq32)
1273        )
1274    );
1275}
1276#[repr(C)]
1277#[derive(Copy, Clone)]
1278pub union __pthread_cond_s__bindgen_ty_2 {
1279    pub __g1_start: ::std::os::raw::c_ulonglong,
1280    pub __g1_start32: __pthread_cond_s__bindgen_ty_2__bindgen_ty_1,
1281}
1282#[repr(C)]
1283#[derive(Debug, Copy, Clone)]
1284pub struct __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 {
1285    pub __low: ::std::os::raw::c_uint,
1286    pub __high: ::std::os::raw::c_uint,
1287}
1288#[test]
1289fn bindgen_test_layout___pthread_cond_s__bindgen_ty_2__bindgen_ty_1() {
1290    assert_eq!(
1291        ::std::mem::size_of::<__pthread_cond_s__bindgen_ty_2__bindgen_ty_1>(),
1292        8usize,
1293        concat!(
1294            "Size of: ",
1295            stringify!(__pthread_cond_s__bindgen_ty_2__bindgen_ty_1)
1296        )
1297    );
1298    assert_eq!(
1299        ::std::mem::align_of::<__pthread_cond_s__bindgen_ty_2__bindgen_ty_1>(),
1300        4usize,
1301        concat!(
1302            "Alignment of ",
1303            stringify!(__pthread_cond_s__bindgen_ty_2__bindgen_ty_1)
1304        )
1305    );
1306    assert_eq!(
1307        unsafe {
1308            &(*(::std::ptr::null::<__pthread_cond_s__bindgen_ty_2__bindgen_ty_1>())).__low
1309                as *const _ as usize
1310        },
1311        0usize,
1312        concat!(
1313            "Offset of field: ",
1314            stringify!(__pthread_cond_s__bindgen_ty_2__bindgen_ty_1),
1315            "::",
1316            stringify!(__low)
1317        )
1318    );
1319    assert_eq!(
1320        unsafe {
1321            &(*(::std::ptr::null::<__pthread_cond_s__bindgen_ty_2__bindgen_ty_1>())).__high
1322                as *const _ as usize
1323        },
1324        4usize,
1325        concat!(
1326            "Offset of field: ",
1327            stringify!(__pthread_cond_s__bindgen_ty_2__bindgen_ty_1),
1328            "::",
1329            stringify!(__high)
1330        )
1331    );
1332}
1333#[test]
1334fn bindgen_test_layout___pthread_cond_s__bindgen_ty_2() {
1335    assert_eq!(
1336        ::std::mem::size_of::<__pthread_cond_s__bindgen_ty_2>(),
1337        8usize,
1338        concat!("Size of: ", stringify!(__pthread_cond_s__bindgen_ty_2))
1339    );
1340    assert_eq!(
1341        ::std::mem::align_of::<__pthread_cond_s__bindgen_ty_2>(),
1342        8usize,
1343        concat!("Alignment of ", stringify!(__pthread_cond_s__bindgen_ty_2))
1344    );
1345    assert_eq!(
1346        unsafe {
1347            &(*(::std::ptr::null::<__pthread_cond_s__bindgen_ty_2>())).__g1_start as *const _
1348                as usize
1349        },
1350        0usize,
1351        concat!(
1352            "Offset of field: ",
1353            stringify!(__pthread_cond_s__bindgen_ty_2),
1354            "::",
1355            stringify!(__g1_start)
1356        )
1357    );
1358    assert_eq!(
1359        unsafe {
1360            &(*(::std::ptr::null::<__pthread_cond_s__bindgen_ty_2>())).__g1_start32 as *const _
1361                as usize
1362        },
1363        0usize,
1364        concat!(
1365            "Offset of field: ",
1366            stringify!(__pthread_cond_s__bindgen_ty_2),
1367            "::",
1368            stringify!(__g1_start32)
1369        )
1370    );
1371}
1372#[test]
1373fn bindgen_test_layout___pthread_cond_s() {
1374    assert_eq!(
1375        ::std::mem::size_of::<__pthread_cond_s>(),
1376        48usize,
1377        concat!("Size of: ", stringify!(__pthread_cond_s))
1378    );
1379    assert_eq!(
1380        ::std::mem::align_of::<__pthread_cond_s>(),
1381        8usize,
1382        concat!("Alignment of ", stringify!(__pthread_cond_s))
1383    );
1384    assert_eq!(
1385        unsafe { &(*(::std::ptr::null::<__pthread_cond_s>())).__g_refs as *const _ as usize },
1386        16usize,
1387        concat!(
1388            "Offset of field: ",
1389            stringify!(__pthread_cond_s),
1390            "::",
1391            stringify!(__g_refs)
1392        )
1393    );
1394    assert_eq!(
1395        unsafe { &(*(::std::ptr::null::<__pthread_cond_s>())).__g_size as *const _ as usize },
1396        24usize,
1397        concat!(
1398            "Offset of field: ",
1399            stringify!(__pthread_cond_s),
1400            "::",
1401            stringify!(__g_size)
1402        )
1403    );
1404    assert_eq!(
1405        unsafe { &(*(::std::ptr::null::<__pthread_cond_s>())).__g1_orig_size as *const _ as usize },
1406        32usize,
1407        concat!(
1408            "Offset of field: ",
1409            stringify!(__pthread_cond_s),
1410            "::",
1411            stringify!(__g1_orig_size)
1412        )
1413    );
1414    assert_eq!(
1415        unsafe { &(*(::std::ptr::null::<__pthread_cond_s>())).__wrefs as *const _ as usize },
1416        36usize,
1417        concat!(
1418            "Offset of field: ",
1419            stringify!(__pthread_cond_s),
1420            "::",
1421            stringify!(__wrefs)
1422        )
1423    );
1424    assert_eq!(
1425        unsafe { &(*(::std::ptr::null::<__pthread_cond_s>())).__g_signals as *const _ as usize },
1426        40usize,
1427        concat!(
1428            "Offset of field: ",
1429            stringify!(__pthread_cond_s),
1430            "::",
1431            stringify!(__g_signals)
1432        )
1433    );
1434}
1435pub type pthread_t = ::std::os::raw::c_ulong;
1436#[repr(C)]
1437#[derive(Copy, Clone)]
1438pub union pthread_mutexattr_t {
1439    pub __size: [::std::os::raw::c_char; 4usize],
1440    pub __align: ::std::os::raw::c_int,
1441}
1442#[test]
1443fn bindgen_test_layout_pthread_mutexattr_t() {
1444    assert_eq!(
1445        ::std::mem::size_of::<pthread_mutexattr_t>(),
1446        4usize,
1447        concat!("Size of: ", stringify!(pthread_mutexattr_t))
1448    );
1449    assert_eq!(
1450        ::std::mem::align_of::<pthread_mutexattr_t>(),
1451        4usize,
1452        concat!("Alignment of ", stringify!(pthread_mutexattr_t))
1453    );
1454    assert_eq!(
1455        unsafe { &(*(::std::ptr::null::<pthread_mutexattr_t>())).__size as *const _ as usize },
1456        0usize,
1457        concat!(
1458            "Offset of field: ",
1459            stringify!(pthread_mutexattr_t),
1460            "::",
1461            stringify!(__size)
1462        )
1463    );
1464    assert_eq!(
1465        unsafe { &(*(::std::ptr::null::<pthread_mutexattr_t>())).__align as *const _ as usize },
1466        0usize,
1467        concat!(
1468            "Offset of field: ",
1469            stringify!(pthread_mutexattr_t),
1470            "::",
1471            stringify!(__align)
1472        )
1473    );
1474}
1475#[repr(C)]
1476#[derive(Copy, Clone)]
1477pub union pthread_condattr_t {
1478    pub __size: [::std::os::raw::c_char; 4usize],
1479    pub __align: ::std::os::raw::c_int,
1480}
1481#[test]
1482fn bindgen_test_layout_pthread_condattr_t() {
1483    assert_eq!(
1484        ::std::mem::size_of::<pthread_condattr_t>(),
1485        4usize,
1486        concat!("Size of: ", stringify!(pthread_condattr_t))
1487    );
1488    assert_eq!(
1489        ::std::mem::align_of::<pthread_condattr_t>(),
1490        4usize,
1491        concat!("Alignment of ", stringify!(pthread_condattr_t))
1492    );
1493    assert_eq!(
1494        unsafe { &(*(::std::ptr::null::<pthread_condattr_t>())).__size as *const _ as usize },
1495        0usize,
1496        concat!(
1497            "Offset of field: ",
1498            stringify!(pthread_condattr_t),
1499            "::",
1500            stringify!(__size)
1501        )
1502    );
1503    assert_eq!(
1504        unsafe { &(*(::std::ptr::null::<pthread_condattr_t>())).__align as *const _ as usize },
1505        0usize,
1506        concat!(
1507            "Offset of field: ",
1508            stringify!(pthread_condattr_t),
1509            "::",
1510            stringify!(__align)
1511        )
1512    );
1513}
1514pub type pthread_key_t = ::std::os::raw::c_uint;
1515pub type pthread_once_t = ::std::os::raw::c_int;
1516#[repr(C)]
1517#[derive(Copy, Clone)]
1518pub union pthread_attr_t {
1519    pub __size: [::std::os::raw::c_char; 56usize],
1520    pub __align: ::std::os::raw::c_long,
1521}
1522#[test]
1523fn bindgen_test_layout_pthread_attr_t() {
1524    assert_eq!(
1525        ::std::mem::size_of::<pthread_attr_t>(),
1526        56usize,
1527        concat!("Size of: ", stringify!(pthread_attr_t))
1528    );
1529    assert_eq!(
1530        ::std::mem::align_of::<pthread_attr_t>(),
1531        8usize,
1532        concat!("Alignment of ", stringify!(pthread_attr_t))
1533    );
1534    assert_eq!(
1535        unsafe { &(*(::std::ptr::null::<pthread_attr_t>())).__size as *const _ as usize },
1536        0usize,
1537        concat!(
1538            "Offset of field: ",
1539            stringify!(pthread_attr_t),
1540            "::",
1541            stringify!(__size)
1542        )
1543    );
1544    assert_eq!(
1545        unsafe { &(*(::std::ptr::null::<pthread_attr_t>())).__align as *const _ as usize },
1546        0usize,
1547        concat!(
1548            "Offset of field: ",
1549            stringify!(pthread_attr_t),
1550            "::",
1551            stringify!(__align)
1552        )
1553    );
1554}
1555#[repr(C)]
1556#[derive(Copy, Clone)]
1557pub union pthread_mutex_t {
1558    pub __data: __pthread_mutex_s,
1559    pub __size: [::std::os::raw::c_char; 40usize],
1560    pub __align: ::std::os::raw::c_long,
1561}
1562#[test]
1563fn bindgen_test_layout_pthread_mutex_t() {
1564    assert_eq!(
1565        ::std::mem::size_of::<pthread_mutex_t>(),
1566        40usize,
1567        concat!("Size of: ", stringify!(pthread_mutex_t))
1568    );
1569    assert_eq!(
1570        ::std::mem::align_of::<pthread_mutex_t>(),
1571        8usize,
1572        concat!("Alignment of ", stringify!(pthread_mutex_t))
1573    );
1574    assert_eq!(
1575        unsafe { &(*(::std::ptr::null::<pthread_mutex_t>())).__data as *const _ as usize },
1576        0usize,
1577        concat!(
1578            "Offset of field: ",
1579            stringify!(pthread_mutex_t),
1580            "::",
1581            stringify!(__data)
1582        )
1583    );
1584    assert_eq!(
1585        unsafe { &(*(::std::ptr::null::<pthread_mutex_t>())).__size as *const _ as usize },
1586        0usize,
1587        concat!(
1588            "Offset of field: ",
1589            stringify!(pthread_mutex_t),
1590            "::",
1591            stringify!(__size)
1592        )
1593    );
1594    assert_eq!(
1595        unsafe { &(*(::std::ptr::null::<pthread_mutex_t>())).__align as *const _ as usize },
1596        0usize,
1597        concat!(
1598            "Offset of field: ",
1599            stringify!(pthread_mutex_t),
1600            "::",
1601            stringify!(__align)
1602        )
1603    );
1604}
1605#[repr(C)]
1606#[derive(Copy, Clone)]
1607pub union pthread_cond_t {
1608    pub __data: __pthread_cond_s,
1609    pub __size: [::std::os::raw::c_char; 48usize],
1610    pub __align: ::std::os::raw::c_longlong,
1611}
1612#[test]
1613fn bindgen_test_layout_pthread_cond_t() {
1614    assert_eq!(
1615        ::std::mem::size_of::<pthread_cond_t>(),
1616        48usize,
1617        concat!("Size of: ", stringify!(pthread_cond_t))
1618    );
1619    assert_eq!(
1620        ::std::mem::align_of::<pthread_cond_t>(),
1621        8usize,
1622        concat!("Alignment of ", stringify!(pthread_cond_t))
1623    );
1624    assert_eq!(
1625        unsafe { &(*(::std::ptr::null::<pthread_cond_t>())).__data as *const _ as usize },
1626        0usize,
1627        concat!(
1628            "Offset of field: ",
1629            stringify!(pthread_cond_t),
1630            "::",
1631            stringify!(__data)
1632        )
1633    );
1634    assert_eq!(
1635        unsafe { &(*(::std::ptr::null::<pthread_cond_t>())).__size as *const _ as usize },
1636        0usize,
1637        concat!(
1638            "Offset of field: ",
1639            stringify!(pthread_cond_t),
1640            "::",
1641            stringify!(__size)
1642        )
1643    );
1644    assert_eq!(
1645        unsafe { &(*(::std::ptr::null::<pthread_cond_t>())).__align as *const _ as usize },
1646        0usize,
1647        concat!(
1648            "Offset of field: ",
1649            stringify!(pthread_cond_t),
1650            "::",
1651            stringify!(__align)
1652        )
1653    );
1654}
1655#[repr(C)]
1656#[derive(Copy, Clone)]
1657pub union pthread_rwlock_t {
1658    pub __data: __pthread_rwlock_arch_t,
1659    pub __size: [::std::os::raw::c_char; 56usize],
1660    pub __align: ::std::os::raw::c_long,
1661}
1662#[test]
1663fn bindgen_test_layout_pthread_rwlock_t() {
1664    assert_eq!(
1665        ::std::mem::size_of::<pthread_rwlock_t>(),
1666        56usize,
1667        concat!("Size of: ", stringify!(pthread_rwlock_t))
1668    );
1669    assert_eq!(
1670        ::std::mem::align_of::<pthread_rwlock_t>(),
1671        8usize,
1672        concat!("Alignment of ", stringify!(pthread_rwlock_t))
1673    );
1674    assert_eq!(
1675        unsafe { &(*(::std::ptr::null::<pthread_rwlock_t>())).__data as *const _ as usize },
1676        0usize,
1677        concat!(
1678            "Offset of field: ",
1679            stringify!(pthread_rwlock_t),
1680            "::",
1681            stringify!(__data)
1682        )
1683    );
1684    assert_eq!(
1685        unsafe { &(*(::std::ptr::null::<pthread_rwlock_t>())).__size as *const _ as usize },
1686        0usize,
1687        concat!(
1688            "Offset of field: ",
1689            stringify!(pthread_rwlock_t),
1690            "::",
1691            stringify!(__size)
1692        )
1693    );
1694    assert_eq!(
1695        unsafe { &(*(::std::ptr::null::<pthread_rwlock_t>())).__align as *const _ as usize },
1696        0usize,
1697        concat!(
1698            "Offset of field: ",
1699            stringify!(pthread_rwlock_t),
1700            "::",
1701            stringify!(__align)
1702        )
1703    );
1704}
1705#[repr(C)]
1706#[derive(Copy, Clone)]
1707pub union pthread_rwlockattr_t {
1708    pub __size: [::std::os::raw::c_char; 8usize],
1709    pub __align: ::std::os::raw::c_long,
1710}
1711#[test]
1712fn bindgen_test_layout_pthread_rwlockattr_t() {
1713    assert_eq!(
1714        ::std::mem::size_of::<pthread_rwlockattr_t>(),
1715        8usize,
1716        concat!("Size of: ", stringify!(pthread_rwlockattr_t))
1717    );
1718    assert_eq!(
1719        ::std::mem::align_of::<pthread_rwlockattr_t>(),
1720        8usize,
1721        concat!("Alignment of ", stringify!(pthread_rwlockattr_t))
1722    );
1723    assert_eq!(
1724        unsafe { &(*(::std::ptr::null::<pthread_rwlockattr_t>())).__size as *const _ as usize },
1725        0usize,
1726        concat!(
1727            "Offset of field: ",
1728            stringify!(pthread_rwlockattr_t),
1729            "::",
1730            stringify!(__size)
1731        )
1732    );
1733    assert_eq!(
1734        unsafe { &(*(::std::ptr::null::<pthread_rwlockattr_t>())).__align as *const _ as usize },
1735        0usize,
1736        concat!(
1737            "Offset of field: ",
1738            stringify!(pthread_rwlockattr_t),
1739            "::",
1740            stringify!(__align)
1741        )
1742    );
1743}
1744pub type pthread_spinlock_t = ::std::os::raw::c_int;
1745#[repr(C)]
1746#[derive(Copy, Clone)]
1747pub union pthread_barrier_t {
1748    pub __size: [::std::os::raw::c_char; 32usize],
1749    pub __align: ::std::os::raw::c_long,
1750}
1751#[test]
1752fn bindgen_test_layout_pthread_barrier_t() {
1753    assert_eq!(
1754        ::std::mem::size_of::<pthread_barrier_t>(),
1755        32usize,
1756        concat!("Size of: ", stringify!(pthread_barrier_t))
1757    );
1758    assert_eq!(
1759        ::std::mem::align_of::<pthread_barrier_t>(),
1760        8usize,
1761        concat!("Alignment of ", stringify!(pthread_barrier_t))
1762    );
1763    assert_eq!(
1764        unsafe { &(*(::std::ptr::null::<pthread_barrier_t>())).__size as *const _ as usize },
1765        0usize,
1766        concat!(
1767            "Offset of field: ",
1768            stringify!(pthread_barrier_t),
1769            "::",
1770            stringify!(__size)
1771        )
1772    );
1773    assert_eq!(
1774        unsafe { &(*(::std::ptr::null::<pthread_barrier_t>())).__align as *const _ as usize },
1775        0usize,
1776        concat!(
1777            "Offset of field: ",
1778            stringify!(pthread_barrier_t),
1779            "::",
1780            stringify!(__align)
1781        )
1782    );
1783}
1784#[repr(C)]
1785#[derive(Copy, Clone)]
1786pub union pthread_barrierattr_t {
1787    pub __size: [::std::os::raw::c_char; 4usize],
1788    pub __align: ::std::os::raw::c_int,
1789}
1790#[test]
1791fn bindgen_test_layout_pthread_barrierattr_t() {
1792    assert_eq!(
1793        ::std::mem::size_of::<pthread_barrierattr_t>(),
1794        4usize,
1795        concat!("Size of: ", stringify!(pthread_barrierattr_t))
1796    );
1797    assert_eq!(
1798        ::std::mem::align_of::<pthread_barrierattr_t>(),
1799        4usize,
1800        concat!("Alignment of ", stringify!(pthread_barrierattr_t))
1801    );
1802    assert_eq!(
1803        unsafe { &(*(::std::ptr::null::<pthread_barrierattr_t>())).__size as *const _ as usize },
1804        0usize,
1805        concat!(
1806            "Offset of field: ",
1807            stringify!(pthread_barrierattr_t),
1808            "::",
1809            stringify!(__size)
1810        )
1811    );
1812    assert_eq!(
1813        unsafe { &(*(::std::ptr::null::<pthread_barrierattr_t>())).__align as *const _ as usize },
1814        0usize,
1815        concat!(
1816            "Offset of field: ",
1817            stringify!(pthread_barrierattr_t),
1818            "::",
1819            stringify!(__align)
1820        )
1821    );
1822}
1823extern "C" {
1824    pub fn random() -> ::std::os::raw::c_long;
1825}
1826extern "C" {
1827    pub fn srandom(__seed: ::std::os::raw::c_uint);
1828}
1829extern "C" {
1830    pub fn initstate(
1831        __seed: ::std::os::raw::c_uint,
1832        __statebuf: *mut ::std::os::raw::c_char,
1833        __statelen: size_t,
1834    ) -> *mut ::std::os::raw::c_char;
1835}
1836extern "C" {
1837    pub fn setstate(__statebuf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
1838}
1839#[repr(C)]
1840#[derive(Debug, Copy, Clone)]
1841pub struct random_data {
1842    pub fptr: *mut i32,
1843    pub rptr: *mut i32,
1844    pub state: *mut i32,
1845    pub rand_type: ::std::os::raw::c_int,
1846    pub rand_deg: ::std::os::raw::c_int,
1847    pub rand_sep: ::std::os::raw::c_int,
1848    pub end_ptr: *mut i32,
1849}
1850#[test]
1851fn bindgen_test_layout_random_data() {
1852    assert_eq!(
1853        ::std::mem::size_of::<random_data>(),
1854        48usize,
1855        concat!("Size of: ", stringify!(random_data))
1856    );
1857    assert_eq!(
1858        ::std::mem::align_of::<random_data>(),
1859        8usize,
1860        concat!("Alignment of ", stringify!(random_data))
1861    );
1862    assert_eq!(
1863        unsafe { &(*(::std::ptr::null::<random_data>())).fptr as *const _ as usize },
1864        0usize,
1865        concat!(
1866            "Offset of field: ",
1867            stringify!(random_data),
1868            "::",
1869            stringify!(fptr)
1870        )
1871    );
1872    assert_eq!(
1873        unsafe { &(*(::std::ptr::null::<random_data>())).rptr as *const _ as usize },
1874        8usize,
1875        concat!(
1876            "Offset of field: ",
1877            stringify!(random_data),
1878            "::",
1879            stringify!(rptr)
1880        )
1881    );
1882    assert_eq!(
1883        unsafe { &(*(::std::ptr::null::<random_data>())).state as *const _ as usize },
1884        16usize,
1885        concat!(
1886            "Offset of field: ",
1887            stringify!(random_data),
1888            "::",
1889            stringify!(state)
1890        )
1891    );
1892    assert_eq!(
1893        unsafe { &(*(::std::ptr::null::<random_data>())).rand_type as *const _ as usize },
1894        24usize,
1895        concat!(
1896            "Offset of field: ",
1897            stringify!(random_data),
1898            "::",
1899            stringify!(rand_type)
1900        )
1901    );
1902    assert_eq!(
1903        unsafe { &(*(::std::ptr::null::<random_data>())).rand_deg as *const _ as usize },
1904        28usize,
1905        concat!(
1906            "Offset of field: ",
1907            stringify!(random_data),
1908            "::",
1909            stringify!(rand_deg)
1910        )
1911    );
1912    assert_eq!(
1913        unsafe { &(*(::std::ptr::null::<random_data>())).rand_sep as *const _ as usize },
1914        32usize,
1915        concat!(
1916            "Offset of field: ",
1917            stringify!(random_data),
1918            "::",
1919            stringify!(rand_sep)
1920        )
1921    );
1922    assert_eq!(
1923        unsafe { &(*(::std::ptr::null::<random_data>())).end_ptr as *const _ as usize },
1924        40usize,
1925        concat!(
1926            "Offset of field: ",
1927            stringify!(random_data),
1928            "::",
1929            stringify!(end_ptr)
1930        )
1931    );
1932}
1933extern "C" {
1934    pub fn random_r(__buf: *mut random_data, __result: *mut i32) -> ::std::os::raw::c_int;
1935}
1936extern "C" {
1937    pub fn srandom_r(
1938        __seed: ::std::os::raw::c_uint,
1939        __buf: *mut random_data,
1940    ) -> ::std::os::raw::c_int;
1941}
1942extern "C" {
1943    pub fn initstate_r(
1944        __seed: ::std::os::raw::c_uint,
1945        __statebuf: *mut ::std::os::raw::c_char,
1946        __statelen: size_t,
1947        __buf: *mut random_data,
1948    ) -> ::std::os::raw::c_int;
1949}
1950extern "C" {
1951    pub fn setstate_r(
1952        __statebuf: *mut ::std::os::raw::c_char,
1953        __buf: *mut random_data,
1954    ) -> ::std::os::raw::c_int;
1955}
1956extern "C" {
1957    pub fn rand() -> ::std::os::raw::c_int;
1958}
1959extern "C" {
1960    pub fn srand(__seed: ::std::os::raw::c_uint);
1961}
1962extern "C" {
1963    pub fn rand_r(__seed: *mut ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
1964}
1965extern "C" {
1966    pub fn drand48() -> f64;
1967}
1968extern "C" {
1969    pub fn erand48(__xsubi: *mut ::std::os::raw::c_ushort) -> f64;
1970}
1971extern "C" {
1972    pub fn lrand48() -> ::std::os::raw::c_long;
1973}
1974extern "C" {
1975    pub fn nrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long;
1976}
1977extern "C" {
1978    pub fn mrand48() -> ::std::os::raw::c_long;
1979}
1980extern "C" {
1981    pub fn jrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long;
1982}
1983extern "C" {
1984    pub fn srand48(__seedval: ::std::os::raw::c_long);
1985}
1986extern "C" {
1987    pub fn seed48(__seed16v: *mut ::std::os::raw::c_ushort) -> *mut ::std::os::raw::c_ushort;
1988}
1989extern "C" {
1990    pub fn lcong48(__param: *mut ::std::os::raw::c_ushort);
1991}
1992#[repr(C)]
1993#[derive(Debug, Copy, Clone)]
1994pub struct drand48_data {
1995    pub __x: [::std::os::raw::c_ushort; 3usize],
1996    pub __old_x: [::std::os::raw::c_ushort; 3usize],
1997    pub __c: ::std::os::raw::c_ushort,
1998    pub __init: ::std::os::raw::c_ushort,
1999    pub __a: ::std::os::raw::c_ulonglong,
2000}
2001#[test]
2002fn bindgen_test_layout_drand48_data() {
2003    assert_eq!(
2004        ::std::mem::size_of::<drand48_data>(),
2005        24usize,
2006        concat!("Size of: ", stringify!(drand48_data))
2007    );
2008    assert_eq!(
2009        ::std::mem::align_of::<drand48_data>(),
2010        8usize,
2011        concat!("Alignment of ", stringify!(drand48_data))
2012    );
2013    assert_eq!(
2014        unsafe { &(*(::std::ptr::null::<drand48_data>())).__x as *const _ as usize },
2015        0usize,
2016        concat!(
2017            "Offset of field: ",
2018            stringify!(drand48_data),
2019            "::",
2020            stringify!(__x)
2021        )
2022    );
2023    assert_eq!(
2024        unsafe { &(*(::std::ptr::null::<drand48_data>())).__old_x as *const _ as usize },
2025        6usize,
2026        concat!(
2027            "Offset of field: ",
2028            stringify!(drand48_data),
2029            "::",
2030            stringify!(__old_x)
2031        )
2032    );
2033    assert_eq!(
2034        unsafe { &(*(::std::ptr::null::<drand48_data>())).__c as *const _ as usize },
2035        12usize,
2036        concat!(
2037            "Offset of field: ",
2038            stringify!(drand48_data),
2039            "::",
2040            stringify!(__c)
2041        )
2042    );
2043    assert_eq!(
2044        unsafe { &(*(::std::ptr::null::<drand48_data>())).__init as *const _ as usize },
2045        14usize,
2046        concat!(
2047            "Offset of field: ",
2048            stringify!(drand48_data),
2049            "::",
2050            stringify!(__init)
2051        )
2052    );
2053    assert_eq!(
2054        unsafe { &(*(::std::ptr::null::<drand48_data>())).__a as *const _ as usize },
2055        16usize,
2056        concat!(
2057            "Offset of field: ",
2058            stringify!(drand48_data),
2059            "::",
2060            stringify!(__a)
2061        )
2062    );
2063}
2064extern "C" {
2065    pub fn drand48_r(__buffer: *mut drand48_data, __result: *mut f64) -> ::std::os::raw::c_int;
2066}
2067extern "C" {
2068    pub fn erand48_r(
2069        __xsubi: *mut ::std::os::raw::c_ushort,
2070        __buffer: *mut drand48_data,
2071        __result: *mut f64,
2072    ) -> ::std::os::raw::c_int;
2073}
2074extern "C" {
2075    pub fn lrand48_r(
2076        __buffer: *mut drand48_data,
2077        __result: *mut ::std::os::raw::c_long,
2078    ) -> ::std::os::raw::c_int;
2079}
2080extern "C" {
2081    pub fn nrand48_r(
2082        __xsubi: *mut ::std::os::raw::c_ushort,
2083        __buffer: *mut drand48_data,
2084        __result: *mut ::std::os::raw::c_long,
2085    ) -> ::std::os::raw::c_int;
2086}
2087extern "C" {
2088    pub fn mrand48_r(
2089        __buffer: *mut drand48_data,
2090        __result: *mut ::std::os::raw::c_long,
2091    ) -> ::std::os::raw::c_int;
2092}
2093extern "C" {
2094    pub fn jrand48_r(
2095        __xsubi: *mut ::std::os::raw::c_ushort,
2096        __buffer: *mut drand48_data,
2097        __result: *mut ::std::os::raw::c_long,
2098    ) -> ::std::os::raw::c_int;
2099}
2100extern "C" {
2101    pub fn srand48_r(
2102        __seedval: ::std::os::raw::c_long,
2103        __buffer: *mut drand48_data,
2104    ) -> ::std::os::raw::c_int;
2105}
2106extern "C" {
2107    pub fn seed48_r(
2108        __seed16v: *mut ::std::os::raw::c_ushort,
2109        __buffer: *mut drand48_data,
2110    ) -> ::std::os::raw::c_int;
2111}
2112extern "C" {
2113    pub fn lcong48_r(
2114        __param: *mut ::std::os::raw::c_ushort,
2115        __buffer: *mut drand48_data,
2116    ) -> ::std::os::raw::c_int;
2117}
2118extern "C" {
2119    pub fn malloc(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void;
2120}
2121extern "C" {
2122    pub fn calloc(
2123        __nmemb: ::std::os::raw::c_ulong,
2124        __size: ::std::os::raw::c_ulong,
2125    ) -> *mut ::std::os::raw::c_void;
2126}
2127extern "C" {
2128    pub fn realloc(
2129        __ptr: *mut ::std::os::raw::c_void,
2130        __size: ::std::os::raw::c_ulong,
2131    ) -> *mut ::std::os::raw::c_void;
2132}
2133extern "C" {
2134    pub fn reallocarray(
2135        __ptr: *mut ::std::os::raw::c_void,
2136        __nmemb: size_t,
2137        __size: size_t,
2138    ) -> *mut ::std::os::raw::c_void;
2139}
2140extern "C" {
2141    pub fn free(__ptr: *mut ::std::os::raw::c_void);
2142}
2143extern "C" {
2144    pub fn alloca(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void;
2145}
2146extern "C" {
2147    pub fn valloc(__size: size_t) -> *mut ::std::os::raw::c_void;
2148}
2149extern "C" {
2150    pub fn posix_memalign(
2151        __memptr: *mut *mut ::std::os::raw::c_void,
2152        __alignment: size_t,
2153        __size: size_t,
2154    ) -> ::std::os::raw::c_int;
2155}
2156extern "C" {
2157    pub fn aligned_alloc(__alignment: size_t, __size: size_t) -> *mut ::std::os::raw::c_void;
2158}
2159extern "C" {
2160    pub fn abort();
2161}
2162extern "C" {
2163    pub fn atexit(__func: ::std::option::Option<unsafe extern "C" fn()>) -> ::std::os::raw::c_int;
2164}
2165extern "C" {
2166    pub fn at_quick_exit(
2167        __func: ::std::option::Option<unsafe extern "C" fn()>,
2168    ) -> ::std::os::raw::c_int;
2169}
2170extern "C" {
2171    pub fn on_exit(
2172        __func: ::std::option::Option<
2173            unsafe extern "C" fn(
2174                __status: ::std::os::raw::c_int,
2175                __arg: *mut ::std::os::raw::c_void,
2176            ),
2177        >,
2178        __arg: *mut ::std::os::raw::c_void,
2179    ) -> ::std::os::raw::c_int;
2180}
2181extern "C" {
2182    pub fn exit(__status: ::std::os::raw::c_int);
2183}
2184extern "C" {
2185    pub fn quick_exit(__status: ::std::os::raw::c_int);
2186}
2187extern "C" {
2188    pub fn _Exit(__status: ::std::os::raw::c_int);
2189}
2190extern "C" {
2191    pub fn getenv(__name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
2192}
2193extern "C" {
2194    pub fn putenv(__string: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int;
2195}
2196extern "C" {
2197    pub fn setenv(
2198        __name: *const ::std::os::raw::c_char,
2199        __value: *const ::std::os::raw::c_char,
2200        __replace: ::std::os::raw::c_int,
2201    ) -> ::std::os::raw::c_int;
2202}
2203extern "C" {
2204    pub fn unsetenv(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
2205}
2206extern "C" {
2207    pub fn clearenv() -> ::std::os::raw::c_int;
2208}
2209extern "C" {
2210    pub fn mktemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
2211}
2212extern "C" {
2213    pub fn mkstemp(__template: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int;
2214}
2215extern "C" {
2216    pub fn mkstemps(
2217        __template: *mut ::std::os::raw::c_char,
2218        __suffixlen: ::std::os::raw::c_int,
2219    ) -> ::std::os::raw::c_int;
2220}
2221extern "C" {
2222    pub fn mkdtemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
2223}
2224extern "C" {
2225    pub fn system(__command: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
2226}
2227extern "C" {
2228    pub fn realpath(
2229        __name: *const ::std::os::raw::c_char,
2230        __resolved: *mut ::std::os::raw::c_char,
2231    ) -> *mut ::std::os::raw::c_char;
2232}
2233pub type __compar_fn_t = ::std::option::Option<
2234    unsafe extern "C" fn(
2235        arg1: *const ::std::os::raw::c_void,
2236        arg2: *const ::std::os::raw::c_void,
2237    ) -> ::std::os::raw::c_int,
2238>;
2239extern "C" {
2240    pub fn bsearch(
2241        __key: *const ::std::os::raw::c_void,
2242        __base: *const ::std::os::raw::c_void,
2243        __nmemb: size_t,
2244        __size: size_t,
2245        __compar: __compar_fn_t,
2246    ) -> *mut ::std::os::raw::c_void;
2247}
2248extern "C" {
2249    pub fn qsort(
2250        __base: *mut ::std::os::raw::c_void,
2251        __nmemb: size_t,
2252        __size: size_t,
2253        __compar: __compar_fn_t,
2254    );
2255}
2256extern "C" {
2257    pub fn abs(__x: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2258}
2259extern "C" {
2260    pub fn labs(__x: ::std::os::raw::c_long) -> ::std::os::raw::c_long;
2261}
2262extern "C" {
2263    pub fn llabs(__x: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong;
2264}
2265extern "C" {
2266    pub fn div(__numer: ::std::os::raw::c_int, __denom: ::std::os::raw::c_int) -> div_t;
2267}
2268extern "C" {
2269    pub fn ldiv(__numer: ::std::os::raw::c_long, __denom: ::std::os::raw::c_long) -> ldiv_t;
2270}
2271extern "C" {
2272    pub fn lldiv(
2273        __numer: ::std::os::raw::c_longlong,
2274        __denom: ::std::os::raw::c_longlong,
2275    ) -> lldiv_t;
2276}
2277extern "C" {
2278    pub fn ecvt(
2279        __value: f64,
2280        __ndigit: ::std::os::raw::c_int,
2281        __decpt: *mut ::std::os::raw::c_int,
2282        __sign: *mut ::std::os::raw::c_int,
2283    ) -> *mut ::std::os::raw::c_char;
2284}
2285extern "C" {
2286    pub fn fcvt(
2287        __value: f64,
2288        __ndigit: ::std::os::raw::c_int,
2289        __decpt: *mut ::std::os::raw::c_int,
2290        __sign: *mut ::std::os::raw::c_int,
2291    ) -> *mut ::std::os::raw::c_char;
2292}
2293extern "C" {
2294    pub fn gcvt(
2295        __value: f64,
2296        __ndigit: ::std::os::raw::c_int,
2297        __buf: *mut ::std::os::raw::c_char,
2298    ) -> *mut ::std::os::raw::c_char;
2299}
2300extern "C" {
2301    pub fn qecvt(
2302        __value: u128,
2303        __ndigit: ::std::os::raw::c_int,
2304        __decpt: *mut ::std::os::raw::c_int,
2305        __sign: *mut ::std::os::raw::c_int,
2306    ) -> *mut ::std::os::raw::c_char;
2307}
2308extern "C" {
2309    pub fn qfcvt(
2310        __value: u128,
2311        __ndigit: ::std::os::raw::c_int,
2312        __decpt: *mut ::std::os::raw::c_int,
2313        __sign: *mut ::std::os::raw::c_int,
2314    ) -> *mut ::std::os::raw::c_char;
2315}
2316extern "C" {
2317    pub fn qgcvt(
2318        __value: u128,
2319        __ndigit: ::std::os::raw::c_int,
2320        __buf: *mut ::std::os::raw::c_char,
2321    ) -> *mut ::std::os::raw::c_char;
2322}
2323extern "C" {
2324    pub fn ecvt_r(
2325        __value: f64,
2326        __ndigit: ::std::os::raw::c_int,
2327        __decpt: *mut ::std::os::raw::c_int,
2328        __sign: *mut ::std::os::raw::c_int,
2329        __buf: *mut ::std::os::raw::c_char,
2330        __len: size_t,
2331    ) -> ::std::os::raw::c_int;
2332}
2333extern "C" {
2334    pub fn fcvt_r(
2335        __value: f64,
2336        __ndigit: ::std::os::raw::c_int,
2337        __decpt: *mut ::std::os::raw::c_int,
2338        __sign: *mut ::std::os::raw::c_int,
2339        __buf: *mut ::std::os::raw::c_char,
2340        __len: size_t,
2341    ) -> ::std::os::raw::c_int;
2342}
2343extern "C" {
2344    pub fn qecvt_r(
2345        __value: u128,
2346        __ndigit: ::std::os::raw::c_int,
2347        __decpt: *mut ::std::os::raw::c_int,
2348        __sign: *mut ::std::os::raw::c_int,
2349        __buf: *mut ::std::os::raw::c_char,
2350        __len: size_t,
2351    ) -> ::std::os::raw::c_int;
2352}
2353extern "C" {
2354    pub fn qfcvt_r(
2355        __value: u128,
2356        __ndigit: ::std::os::raw::c_int,
2357        __decpt: *mut ::std::os::raw::c_int,
2358        __sign: *mut ::std::os::raw::c_int,
2359        __buf: *mut ::std::os::raw::c_char,
2360        __len: size_t,
2361    ) -> ::std::os::raw::c_int;
2362}
2363extern "C" {
2364    pub fn mblen(__s: *const ::std::os::raw::c_char, __n: size_t) -> ::std::os::raw::c_int;
2365}
2366extern "C" {
2367    pub fn mbtowc(
2368        __pwc: *mut wchar_t,
2369        __s: *const ::std::os::raw::c_char,
2370        __n: size_t,
2371    ) -> ::std::os::raw::c_int;
2372}
2373extern "C" {
2374    pub fn wctomb(__s: *mut ::std::os::raw::c_char, __wchar: wchar_t) -> ::std::os::raw::c_int;
2375}
2376extern "C" {
2377    pub fn mbstowcs(
2378        __pwcs: *mut wchar_t,
2379        __s: *const ::std::os::raw::c_char,
2380        __n: size_t,
2381    ) -> size_t;
2382}
2383extern "C" {
2384    pub fn wcstombs(
2385        __s: *mut ::std::os::raw::c_char,
2386        __pwcs: *const wchar_t,
2387        __n: size_t,
2388    ) -> size_t;
2389}
2390extern "C" {
2391    pub fn rpmatch(__response: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
2392}
2393extern "C" {
2394    pub fn getsubopt(
2395        __optionp: *mut *mut ::std::os::raw::c_char,
2396        __tokens: *const *mut ::std::os::raw::c_char,
2397        __valuep: *mut *mut ::std::os::raw::c_char,
2398    ) -> ::std::os::raw::c_int;
2399}
2400extern "C" {
2401    pub fn getloadavg(__loadavg: *mut f64, __nelem: ::std::os::raw::c_int)
2402        -> ::std::os::raw::c_int;
2403}
2404pub type va_list = __builtin_va_list;
2405pub type __gnuc_va_list = __builtin_va_list;
2406#[repr(C)]
2407#[derive(Copy, Clone)]
2408pub struct __mbstate_t {
2409    pub __count: ::std::os::raw::c_int,
2410    pub __value: __mbstate_t__bindgen_ty_1,
2411}
2412#[repr(C)]
2413#[derive(Copy, Clone)]
2414pub union __mbstate_t__bindgen_ty_1 {
2415    pub __wch: ::std::os::raw::c_uint,
2416    pub __wchb: [::std::os::raw::c_char; 4usize],
2417}
2418#[test]
2419fn bindgen_test_layout___mbstate_t__bindgen_ty_1() {
2420    assert_eq!(
2421        ::std::mem::size_of::<__mbstate_t__bindgen_ty_1>(),
2422        4usize,
2423        concat!("Size of: ", stringify!(__mbstate_t__bindgen_ty_1))
2424    );
2425    assert_eq!(
2426        ::std::mem::align_of::<__mbstate_t__bindgen_ty_1>(),
2427        4usize,
2428        concat!("Alignment of ", stringify!(__mbstate_t__bindgen_ty_1))
2429    );
2430    assert_eq!(
2431        unsafe { &(*(::std::ptr::null::<__mbstate_t__bindgen_ty_1>())).__wch as *const _ as usize },
2432        0usize,
2433        concat!(
2434            "Offset of field: ",
2435            stringify!(__mbstate_t__bindgen_ty_1),
2436            "::",
2437            stringify!(__wch)
2438        )
2439    );
2440    assert_eq!(
2441        unsafe {
2442            &(*(::std::ptr::null::<__mbstate_t__bindgen_ty_1>())).__wchb as *const _ as usize
2443        },
2444        0usize,
2445        concat!(
2446            "Offset of field: ",
2447            stringify!(__mbstate_t__bindgen_ty_1),
2448            "::",
2449            stringify!(__wchb)
2450        )
2451    );
2452}
2453#[test]
2454fn bindgen_test_layout___mbstate_t() {
2455    assert_eq!(
2456        ::std::mem::size_of::<__mbstate_t>(),
2457        8usize,
2458        concat!("Size of: ", stringify!(__mbstate_t))
2459    );
2460    assert_eq!(
2461        ::std::mem::align_of::<__mbstate_t>(),
2462        4usize,
2463        concat!("Alignment of ", stringify!(__mbstate_t))
2464    );
2465    assert_eq!(
2466        unsafe { &(*(::std::ptr::null::<__mbstate_t>())).__count as *const _ as usize },
2467        0usize,
2468        concat!(
2469            "Offset of field: ",
2470            stringify!(__mbstate_t),
2471            "::",
2472            stringify!(__count)
2473        )
2474    );
2475    assert_eq!(
2476        unsafe { &(*(::std::ptr::null::<__mbstate_t>())).__value as *const _ as usize },
2477        4usize,
2478        concat!(
2479            "Offset of field: ",
2480            stringify!(__mbstate_t),
2481            "::",
2482            stringify!(__value)
2483        )
2484    );
2485}
2486#[repr(C)]
2487#[derive(Copy, Clone)]
2488pub struct _G_fpos_t {
2489    pub __pos: __off_t,
2490    pub __state: __mbstate_t,
2491}
2492#[test]
2493fn bindgen_test_layout__G_fpos_t() {
2494    assert_eq!(
2495        ::std::mem::size_of::<_G_fpos_t>(),
2496        16usize,
2497        concat!("Size of: ", stringify!(_G_fpos_t))
2498    );
2499    assert_eq!(
2500        ::std::mem::align_of::<_G_fpos_t>(),
2501        8usize,
2502        concat!("Alignment of ", stringify!(_G_fpos_t))
2503    );
2504    assert_eq!(
2505        unsafe { &(*(::std::ptr::null::<_G_fpos_t>())).__pos as *const _ as usize },
2506        0usize,
2507        concat!(
2508            "Offset of field: ",
2509            stringify!(_G_fpos_t),
2510            "::",
2511            stringify!(__pos)
2512        )
2513    );
2514    assert_eq!(
2515        unsafe { &(*(::std::ptr::null::<_G_fpos_t>())).__state as *const _ as usize },
2516        8usize,
2517        concat!(
2518            "Offset of field: ",
2519            stringify!(_G_fpos_t),
2520            "::",
2521            stringify!(__state)
2522        )
2523    );
2524}
2525pub type __fpos_t = _G_fpos_t;
2526#[repr(C)]
2527#[derive(Copy, Clone)]
2528pub struct _G_fpos64_t {
2529    pub __pos: __off64_t,
2530    pub __state: __mbstate_t,
2531}
2532#[test]
2533fn bindgen_test_layout__G_fpos64_t() {
2534    assert_eq!(
2535        ::std::mem::size_of::<_G_fpos64_t>(),
2536        16usize,
2537        concat!("Size of: ", stringify!(_G_fpos64_t))
2538    );
2539    assert_eq!(
2540        ::std::mem::align_of::<_G_fpos64_t>(),
2541        8usize,
2542        concat!("Alignment of ", stringify!(_G_fpos64_t))
2543    );
2544    assert_eq!(
2545        unsafe { &(*(::std::ptr::null::<_G_fpos64_t>())).__pos as *const _ as usize },
2546        0usize,
2547        concat!(
2548            "Offset of field: ",
2549            stringify!(_G_fpos64_t),
2550            "::",
2551            stringify!(__pos)
2552        )
2553    );
2554    assert_eq!(
2555        unsafe { &(*(::std::ptr::null::<_G_fpos64_t>())).__state as *const _ as usize },
2556        8usize,
2557        concat!(
2558            "Offset of field: ",
2559            stringify!(_G_fpos64_t),
2560            "::",
2561            stringify!(__state)
2562        )
2563    );
2564}
2565pub type __fpos64_t = _G_fpos64_t;
2566pub type __FILE = _IO_FILE;
2567pub type FILE = _IO_FILE;
2568#[repr(C)]
2569#[derive(Debug, Copy, Clone)]
2570pub struct _IO_marker {
2571    _unused: [u8; 0],
2572}
2573#[repr(C)]
2574#[derive(Debug, Copy, Clone)]
2575pub struct _IO_codecvt {
2576    _unused: [u8; 0],
2577}
2578#[repr(C)]
2579#[derive(Debug, Copy, Clone)]
2580pub struct _IO_wide_data {
2581    _unused: [u8; 0],
2582}
2583pub type _IO_lock_t = ::std::os::raw::c_void;
2584#[repr(C)]
2585#[derive(Debug, Copy, Clone)]
2586pub struct _IO_FILE {
2587    pub _flags: ::std::os::raw::c_int,
2588    pub _IO_read_ptr: *mut ::std::os::raw::c_char,
2589    pub _IO_read_end: *mut ::std::os::raw::c_char,
2590    pub _IO_read_base: *mut ::std::os::raw::c_char,
2591    pub _IO_write_base: *mut ::std::os::raw::c_char,
2592    pub _IO_write_ptr: *mut ::std::os::raw::c_char,
2593    pub _IO_write_end: *mut ::std::os::raw::c_char,
2594    pub _IO_buf_base: *mut ::std::os::raw::c_char,
2595    pub _IO_buf_end: *mut ::std::os::raw::c_char,
2596    pub _IO_save_base: *mut ::std::os::raw::c_char,
2597    pub _IO_backup_base: *mut ::std::os::raw::c_char,
2598    pub _IO_save_end: *mut ::std::os::raw::c_char,
2599    pub _markers: *mut _IO_marker,
2600    pub _chain: *mut _IO_FILE,
2601    pub _fileno: ::std::os::raw::c_int,
2602    pub _flags2: ::std::os::raw::c_int,
2603    pub _old_offset: __off_t,
2604    pub _cur_column: ::std::os::raw::c_ushort,
2605    pub _vtable_offset: ::std::os::raw::c_schar,
2606    pub _shortbuf: [::std::os::raw::c_char; 1usize],
2607    pub _lock: *mut _IO_lock_t,
2608    pub _offset: __off64_t,
2609    pub _codecvt: *mut _IO_codecvt,
2610    pub _wide_data: *mut _IO_wide_data,
2611    pub _freeres_list: *mut _IO_FILE,
2612    pub _freeres_buf: *mut ::std::os::raw::c_void,
2613    pub __pad5: size_t,
2614    pub _mode: ::std::os::raw::c_int,
2615    pub _unused2: [::std::os::raw::c_char; 20usize],
2616}
2617#[test]
2618fn bindgen_test_layout__IO_FILE() {
2619    assert_eq!(
2620        ::std::mem::size_of::<_IO_FILE>(),
2621        216usize,
2622        concat!("Size of: ", stringify!(_IO_FILE))
2623    );
2624    assert_eq!(
2625        ::std::mem::align_of::<_IO_FILE>(),
2626        8usize,
2627        concat!("Alignment of ", stringify!(_IO_FILE))
2628    );
2629    assert_eq!(
2630        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._flags as *const _ as usize },
2631        0usize,
2632        concat!(
2633            "Offset of field: ",
2634            stringify!(_IO_FILE),
2635            "::",
2636            stringify!(_flags)
2637        )
2638    );
2639    assert_eq!(
2640        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_read_ptr as *const _ as usize },
2641        8usize,
2642        concat!(
2643            "Offset of field: ",
2644            stringify!(_IO_FILE),
2645            "::",
2646            stringify!(_IO_read_ptr)
2647        )
2648    );
2649    assert_eq!(
2650        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_read_end as *const _ as usize },
2651        16usize,
2652        concat!(
2653            "Offset of field: ",
2654            stringify!(_IO_FILE),
2655            "::",
2656            stringify!(_IO_read_end)
2657        )
2658    );
2659    assert_eq!(
2660        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_read_base as *const _ as usize },
2661        24usize,
2662        concat!(
2663            "Offset of field: ",
2664            stringify!(_IO_FILE),
2665            "::",
2666            stringify!(_IO_read_base)
2667        )
2668    );
2669    assert_eq!(
2670        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_write_base as *const _ as usize },
2671        32usize,
2672        concat!(
2673            "Offset of field: ",
2674            stringify!(_IO_FILE),
2675            "::",
2676            stringify!(_IO_write_base)
2677        )
2678    );
2679    assert_eq!(
2680        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_write_ptr as *const _ as usize },
2681        40usize,
2682        concat!(
2683            "Offset of field: ",
2684            stringify!(_IO_FILE),
2685            "::",
2686            stringify!(_IO_write_ptr)
2687        )
2688    );
2689    assert_eq!(
2690        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_write_end as *const _ as usize },
2691        48usize,
2692        concat!(
2693            "Offset of field: ",
2694            stringify!(_IO_FILE),
2695            "::",
2696            stringify!(_IO_write_end)
2697        )
2698    );
2699    assert_eq!(
2700        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_buf_base as *const _ as usize },
2701        56usize,
2702        concat!(
2703            "Offset of field: ",
2704            stringify!(_IO_FILE),
2705            "::",
2706            stringify!(_IO_buf_base)
2707        )
2708    );
2709    assert_eq!(
2710        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_buf_end as *const _ as usize },
2711        64usize,
2712        concat!(
2713            "Offset of field: ",
2714            stringify!(_IO_FILE),
2715            "::",
2716            stringify!(_IO_buf_end)
2717        )
2718    );
2719    assert_eq!(
2720        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_save_base as *const _ as usize },
2721        72usize,
2722        concat!(
2723            "Offset of field: ",
2724            stringify!(_IO_FILE),
2725            "::",
2726            stringify!(_IO_save_base)
2727        )
2728    );
2729    assert_eq!(
2730        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_backup_base as *const _ as usize },
2731        80usize,
2732        concat!(
2733            "Offset of field: ",
2734            stringify!(_IO_FILE),
2735            "::",
2736            stringify!(_IO_backup_base)
2737        )
2738    );
2739    assert_eq!(
2740        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_save_end as *const _ as usize },
2741        88usize,
2742        concat!(
2743            "Offset of field: ",
2744            stringify!(_IO_FILE),
2745            "::",
2746            stringify!(_IO_save_end)
2747        )
2748    );
2749    assert_eq!(
2750        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._markers as *const _ as usize },
2751        96usize,
2752        concat!(
2753            "Offset of field: ",
2754            stringify!(_IO_FILE),
2755            "::",
2756            stringify!(_markers)
2757        )
2758    );
2759    assert_eq!(
2760        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._chain as *const _ as usize },
2761        104usize,
2762        concat!(
2763            "Offset of field: ",
2764            stringify!(_IO_FILE),
2765            "::",
2766            stringify!(_chain)
2767        )
2768    );
2769    assert_eq!(
2770        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._fileno as *const _ as usize },
2771        112usize,
2772        concat!(
2773            "Offset of field: ",
2774            stringify!(_IO_FILE),
2775            "::",
2776            stringify!(_fileno)
2777        )
2778    );
2779    assert_eq!(
2780        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._flags2 as *const _ as usize },
2781        116usize,
2782        concat!(
2783            "Offset of field: ",
2784            stringify!(_IO_FILE),
2785            "::",
2786            stringify!(_flags2)
2787        )
2788    );
2789    assert_eq!(
2790        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._old_offset as *const _ as usize },
2791        120usize,
2792        concat!(
2793            "Offset of field: ",
2794            stringify!(_IO_FILE),
2795            "::",
2796            stringify!(_old_offset)
2797        )
2798    );
2799    assert_eq!(
2800        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._cur_column as *const _ as usize },
2801        128usize,
2802        concat!(
2803            "Offset of field: ",
2804            stringify!(_IO_FILE),
2805            "::",
2806            stringify!(_cur_column)
2807        )
2808    );
2809    assert_eq!(
2810        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._vtable_offset as *const _ as usize },
2811        130usize,
2812        concat!(
2813            "Offset of field: ",
2814            stringify!(_IO_FILE),
2815            "::",
2816            stringify!(_vtable_offset)
2817        )
2818    );
2819    assert_eq!(
2820        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._shortbuf as *const _ as usize },
2821        131usize,
2822        concat!(
2823            "Offset of field: ",
2824            stringify!(_IO_FILE),
2825            "::",
2826            stringify!(_shortbuf)
2827        )
2828    );
2829    assert_eq!(
2830        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._lock as *const _ as usize },
2831        136usize,
2832        concat!(
2833            "Offset of field: ",
2834            stringify!(_IO_FILE),
2835            "::",
2836            stringify!(_lock)
2837        )
2838    );
2839    assert_eq!(
2840        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._offset as *const _ as usize },
2841        144usize,
2842        concat!(
2843            "Offset of field: ",
2844            stringify!(_IO_FILE),
2845            "::",
2846            stringify!(_offset)
2847        )
2848    );
2849    assert_eq!(
2850        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._codecvt as *const _ as usize },
2851        152usize,
2852        concat!(
2853            "Offset of field: ",
2854            stringify!(_IO_FILE),
2855            "::",
2856            stringify!(_codecvt)
2857        )
2858    );
2859    assert_eq!(
2860        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._wide_data as *const _ as usize },
2861        160usize,
2862        concat!(
2863            "Offset of field: ",
2864            stringify!(_IO_FILE),
2865            "::",
2866            stringify!(_wide_data)
2867        )
2868    );
2869    assert_eq!(
2870        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._freeres_list as *const _ as usize },
2871        168usize,
2872        concat!(
2873            "Offset of field: ",
2874            stringify!(_IO_FILE),
2875            "::",
2876            stringify!(_freeres_list)
2877        )
2878    );
2879    assert_eq!(
2880        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._freeres_buf as *const _ as usize },
2881        176usize,
2882        concat!(
2883            "Offset of field: ",
2884            stringify!(_IO_FILE),
2885            "::",
2886            stringify!(_freeres_buf)
2887        )
2888    );
2889    assert_eq!(
2890        unsafe { &(*(::std::ptr::null::<_IO_FILE>())).__pad5 as *const _ as usize },
2891        184usize,
2892        concat!(
2893            "Offset of field: ",
2894            stringify!(_IO_FILE),
2895            "::",
2896            stringify!(__pad5)
2897        )
2898    );
2899    assert_eq!(
2900        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._mode as *const _ as usize },
2901        192usize,
2902        concat!(
2903            "Offset of field: ",
2904            stringify!(_IO_FILE),
2905            "::",
2906            stringify!(_mode)
2907        )
2908    );
2909    assert_eq!(
2910        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._unused2 as *const _ as usize },
2911        196usize,
2912        concat!(
2913            "Offset of field: ",
2914            stringify!(_IO_FILE),
2915            "::",
2916            stringify!(_unused2)
2917        )
2918    );
2919}
2920pub type fpos_t = __fpos_t;
2921extern "C" {
2922    pub static mut stdin: *mut FILE;
2923}
2924extern "C" {
2925    pub static mut stdout: *mut FILE;
2926}
2927extern "C" {
2928    pub static mut stderr: *mut FILE;
2929}
2930extern "C" {
2931    pub fn remove(__filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
2932}
2933extern "C" {
2934    pub fn rename(
2935        __old: *const ::std::os::raw::c_char,
2936        __new: *const ::std::os::raw::c_char,
2937    ) -> ::std::os::raw::c_int;
2938}
2939extern "C" {
2940    pub fn renameat(
2941        __oldfd: ::std::os::raw::c_int,
2942        __old: *const ::std::os::raw::c_char,
2943        __newfd: ::std::os::raw::c_int,
2944        __new: *const ::std::os::raw::c_char,
2945    ) -> ::std::os::raw::c_int;
2946}
2947extern "C" {
2948    pub fn tmpfile() -> *mut FILE;
2949}
2950extern "C" {
2951    pub fn tmpnam(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
2952}
2953extern "C" {
2954    pub fn tmpnam_r(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
2955}
2956extern "C" {
2957    pub fn tempnam(
2958        __dir: *const ::std::os::raw::c_char,
2959        __pfx: *const ::std::os::raw::c_char,
2960    ) -> *mut ::std::os::raw::c_char;
2961}
2962extern "C" {
2963    pub fn fclose(__stream: *mut FILE) -> ::std::os::raw::c_int;
2964}
2965extern "C" {
2966    pub fn fflush(__stream: *mut FILE) -> ::std::os::raw::c_int;
2967}
2968extern "C" {
2969    pub fn fflush_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
2970}
2971extern "C" {
2972    pub fn fopen(
2973        __filename: *const ::std::os::raw::c_char,
2974        __modes: *const ::std::os::raw::c_char,
2975    ) -> *mut FILE;
2976}
2977extern "C" {
2978    pub fn freopen(
2979        __filename: *const ::std::os::raw::c_char,
2980        __modes: *const ::std::os::raw::c_char,
2981        __stream: *mut FILE,
2982    ) -> *mut FILE;
2983}
2984extern "C" {
2985    pub fn fdopen(__fd: ::std::os::raw::c_int, __modes: *const ::std::os::raw::c_char)
2986        -> *mut FILE;
2987}
2988extern "C" {
2989    pub fn fmemopen(
2990        __s: *mut ::std::os::raw::c_void,
2991        __len: size_t,
2992        __modes: *const ::std::os::raw::c_char,
2993    ) -> *mut FILE;
2994}
2995extern "C" {
2996    pub fn open_memstream(
2997        __bufloc: *mut *mut ::std::os::raw::c_char,
2998        __sizeloc: *mut size_t,
2999    ) -> *mut FILE;
3000}
3001extern "C" {
3002    pub fn setbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char);
3003}
3004extern "C" {
3005    pub fn setvbuf(
3006        __stream: *mut FILE,
3007        __buf: *mut ::std::os::raw::c_char,
3008        __modes: ::std::os::raw::c_int,
3009        __n: size_t,
3010    ) -> ::std::os::raw::c_int;
3011}
3012extern "C" {
3013    pub fn setbuffer(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char, __size: size_t);
3014}
3015extern "C" {
3016    pub fn setlinebuf(__stream: *mut FILE);
3017}
3018extern "C" {
3019    pub fn fprintf(
3020        __stream: *mut FILE,
3021        __format: *const ::std::os::raw::c_char,
3022        ...
3023    ) -> ::std::os::raw::c_int;
3024}
3025extern "C" {
3026    pub fn printf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
3027}
3028extern "C" {
3029    pub fn sprintf(
3030        __s: *mut ::std::os::raw::c_char,
3031        __format: *const ::std::os::raw::c_char,
3032        ...
3033    ) -> ::std::os::raw::c_int;
3034}
3035extern "C" {
3036    pub fn vfprintf(
3037        __s: *mut FILE,
3038        __format: *const ::std::os::raw::c_char,
3039        __arg: *mut __va_list_tag,
3040    ) -> ::std::os::raw::c_int;
3041}
3042extern "C" {
3043    pub fn vprintf(
3044        __format: *const ::std::os::raw::c_char,
3045        __arg: *mut __va_list_tag,
3046    ) -> ::std::os::raw::c_int;
3047}
3048extern "C" {
3049    pub fn vsprintf(
3050        __s: *mut ::std::os::raw::c_char,
3051        __format: *const ::std::os::raw::c_char,
3052        __arg: *mut __va_list_tag,
3053    ) -> ::std::os::raw::c_int;
3054}
3055extern "C" {
3056    pub fn snprintf(
3057        __s: *mut ::std::os::raw::c_char,
3058        __maxlen: ::std::os::raw::c_ulong,
3059        __format: *const ::std::os::raw::c_char,
3060        ...
3061    ) -> ::std::os::raw::c_int;
3062}
3063extern "C" {
3064    pub fn vsnprintf(
3065        __s: *mut ::std::os::raw::c_char,
3066        __maxlen: ::std::os::raw::c_ulong,
3067        __format: *const ::std::os::raw::c_char,
3068        __arg: *mut __va_list_tag,
3069    ) -> ::std::os::raw::c_int;
3070}
3071extern "C" {
3072    pub fn vdprintf(
3073        __fd: ::std::os::raw::c_int,
3074        __fmt: *const ::std::os::raw::c_char,
3075        __arg: *mut __va_list_tag,
3076    ) -> ::std::os::raw::c_int;
3077}
3078extern "C" {
3079    pub fn dprintf(
3080        __fd: ::std::os::raw::c_int,
3081        __fmt: *const ::std::os::raw::c_char,
3082        ...
3083    ) -> ::std::os::raw::c_int;
3084}
3085extern "C" {
3086    pub fn fscanf(
3087        __stream: *mut FILE,
3088        __format: *const ::std::os::raw::c_char,
3089        ...
3090    ) -> ::std::os::raw::c_int;
3091}
3092extern "C" {
3093    pub fn scanf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
3094}
3095extern "C" {
3096    pub fn sscanf(
3097        __s: *const ::std::os::raw::c_char,
3098        __format: *const ::std::os::raw::c_char,
3099        ...
3100    ) -> ::std::os::raw::c_int;
3101}
3102extern "C" {
3103    #[link_name = "\u{1}__isoc99_fscanf"]
3104    pub fn fscanf1(
3105        __stream: *mut FILE,
3106        __format: *const ::std::os::raw::c_char,
3107        ...
3108    ) -> ::std::os::raw::c_int;
3109}
3110extern "C" {
3111    #[link_name = "\u{1}__isoc99_scanf"]
3112    pub fn scanf1(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
3113}
3114extern "C" {
3115    #[link_name = "\u{1}__isoc99_sscanf"]
3116    pub fn sscanf1(
3117        __s: *const ::std::os::raw::c_char,
3118        __format: *const ::std::os::raw::c_char,
3119        ...
3120    ) -> ::std::os::raw::c_int;
3121}
3122extern "C" {
3123    pub fn vfscanf(
3124        __s: *mut FILE,
3125        __format: *const ::std::os::raw::c_char,
3126        __arg: *mut __va_list_tag,
3127    ) -> ::std::os::raw::c_int;
3128}
3129extern "C" {
3130    pub fn vscanf(
3131        __format: *const ::std::os::raw::c_char,
3132        __arg: *mut __va_list_tag,
3133    ) -> ::std::os::raw::c_int;
3134}
3135extern "C" {
3136    pub fn vsscanf(
3137        __s: *const ::std::os::raw::c_char,
3138        __format: *const ::std::os::raw::c_char,
3139        __arg: *mut __va_list_tag,
3140    ) -> ::std::os::raw::c_int;
3141}
3142extern "C" {
3143    #[link_name = "\u{1}__isoc99_vfscanf"]
3144    pub fn vfscanf1(
3145        __s: *mut FILE,
3146        __format: *const ::std::os::raw::c_char,
3147        __arg: *mut __va_list_tag,
3148    ) -> ::std::os::raw::c_int;
3149}
3150extern "C" {
3151    #[link_name = "\u{1}__isoc99_vscanf"]
3152    pub fn vscanf1(
3153        __format: *const ::std::os::raw::c_char,
3154        __arg: *mut __va_list_tag,
3155    ) -> ::std::os::raw::c_int;
3156}
3157extern "C" {
3158    #[link_name = "\u{1}__isoc99_vsscanf"]
3159    pub fn vsscanf1(
3160        __s: *const ::std::os::raw::c_char,
3161        __format: *const ::std::os::raw::c_char,
3162        __arg: *mut __va_list_tag,
3163    ) -> ::std::os::raw::c_int;
3164}
3165extern "C" {
3166    pub fn fgetc(__stream: *mut FILE) -> ::std::os::raw::c_int;
3167}
3168extern "C" {
3169    pub fn getc(__stream: *mut FILE) -> ::std::os::raw::c_int;
3170}
3171extern "C" {
3172    pub fn getchar() -> ::std::os::raw::c_int;
3173}
3174extern "C" {
3175    pub fn getc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
3176}
3177extern "C" {
3178    pub fn getchar_unlocked() -> ::std::os::raw::c_int;
3179}
3180extern "C" {
3181    pub fn fgetc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
3182}
3183extern "C" {
3184    pub fn fputc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
3185}
3186extern "C" {
3187    pub fn putc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
3188}
3189extern "C" {
3190    pub fn putchar(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3191}
3192extern "C" {
3193    pub fn fputc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE)
3194        -> ::std::os::raw::c_int;
3195}
3196extern "C" {
3197    pub fn putc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
3198}
3199extern "C" {
3200    pub fn putchar_unlocked(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3201}
3202extern "C" {
3203    pub fn getw(__stream: *mut FILE) -> ::std::os::raw::c_int;
3204}
3205extern "C" {
3206    pub fn putw(__w: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
3207}
3208extern "C" {
3209    pub fn fgets(
3210        __s: *mut ::std::os::raw::c_char,
3211        __n: ::std::os::raw::c_int,
3212        __stream: *mut FILE,
3213    ) -> *mut ::std::os::raw::c_char;
3214}
3215extern "C" {
3216    pub fn __getdelim(
3217        __lineptr: *mut *mut ::std::os::raw::c_char,
3218        __n: *mut size_t,
3219        __delimiter: ::std::os::raw::c_int,
3220        __stream: *mut FILE,
3221    ) -> __ssize_t;
3222}
3223extern "C" {
3224    pub fn getdelim(
3225        __lineptr: *mut *mut ::std::os::raw::c_char,
3226        __n: *mut size_t,
3227        __delimiter: ::std::os::raw::c_int,
3228        __stream: *mut FILE,
3229    ) -> __ssize_t;
3230}
3231extern "C" {
3232    pub fn getline(
3233        __lineptr: *mut *mut ::std::os::raw::c_char,
3234        __n: *mut size_t,
3235        __stream: *mut FILE,
3236    ) -> __ssize_t;
3237}
3238extern "C" {
3239    pub fn fputs(__s: *const ::std::os::raw::c_char, __stream: *mut FILE) -> ::std::os::raw::c_int;
3240}
3241extern "C" {
3242    pub fn puts(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3243}
3244extern "C" {
3245    pub fn ungetc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
3246}
3247extern "C" {
3248    pub fn fread(
3249        __ptr: *mut ::std::os::raw::c_void,
3250        __size: ::std::os::raw::c_ulong,
3251        __n: ::std::os::raw::c_ulong,
3252        __stream: *mut FILE,
3253    ) -> ::std::os::raw::c_ulong;
3254}
3255extern "C" {
3256    pub fn fwrite(
3257        __ptr: *const ::std::os::raw::c_void,
3258        __size: ::std::os::raw::c_ulong,
3259        __n: ::std::os::raw::c_ulong,
3260        __s: *mut FILE,
3261    ) -> ::std::os::raw::c_ulong;
3262}
3263extern "C" {
3264    pub fn fread_unlocked(
3265        __ptr: *mut ::std::os::raw::c_void,
3266        __size: size_t,
3267        __n: size_t,
3268        __stream: *mut FILE,
3269    ) -> size_t;
3270}
3271extern "C" {
3272    pub fn fwrite_unlocked(
3273        __ptr: *const ::std::os::raw::c_void,
3274        __size: size_t,
3275        __n: size_t,
3276        __stream: *mut FILE,
3277    ) -> size_t;
3278}
3279extern "C" {
3280    pub fn fseek(
3281        __stream: *mut FILE,
3282        __off: ::std::os::raw::c_long,
3283        __whence: ::std::os::raw::c_int,
3284    ) -> ::std::os::raw::c_int;
3285}
3286extern "C" {
3287    pub fn ftell(__stream: *mut FILE) -> ::std::os::raw::c_long;
3288}
3289extern "C" {
3290    pub fn rewind(__stream: *mut FILE);
3291}
3292extern "C" {
3293    pub fn fseeko(
3294        __stream: *mut FILE,
3295        __off: __off_t,
3296        __whence: ::std::os::raw::c_int,
3297    ) -> ::std::os::raw::c_int;
3298}
3299extern "C" {
3300    pub fn ftello(__stream: *mut FILE) -> __off_t;
3301}
3302extern "C" {
3303    pub fn fgetpos(__stream: *mut FILE, __pos: *mut fpos_t) -> ::std::os::raw::c_int;
3304}
3305extern "C" {
3306    pub fn fsetpos(__stream: *mut FILE, __pos: *const fpos_t) -> ::std::os::raw::c_int;
3307}
3308extern "C" {
3309    pub fn clearerr(__stream: *mut FILE);
3310}
3311extern "C" {
3312    pub fn feof(__stream: *mut FILE) -> ::std::os::raw::c_int;
3313}
3314extern "C" {
3315    pub fn ferror(__stream: *mut FILE) -> ::std::os::raw::c_int;
3316}
3317extern "C" {
3318    pub fn clearerr_unlocked(__stream: *mut FILE);
3319}
3320extern "C" {
3321    pub fn feof_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
3322}
3323extern "C" {
3324    pub fn ferror_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
3325}
3326extern "C" {
3327    pub fn perror(__s: *const ::std::os::raw::c_char);
3328}
3329extern "C" {
3330    pub static mut sys_nerr: ::std::os::raw::c_int;
3331}
3332extern "C" {
3333    pub static mut sys_errlist: [*const ::std::os::raw::c_char; 0usize];
3334}
3335extern "C" {
3336    pub fn fileno(__stream: *mut FILE) -> ::std::os::raw::c_int;
3337}
3338extern "C" {
3339    pub fn fileno_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
3340}
3341extern "C" {
3342    pub fn popen(
3343        __command: *const ::std::os::raw::c_char,
3344        __modes: *const ::std::os::raw::c_char,
3345    ) -> *mut FILE;
3346}
3347extern "C" {
3348    pub fn pclose(__stream: *mut FILE) -> ::std::os::raw::c_int;
3349}
3350extern "C" {
3351    pub fn ctermid(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
3352}
3353extern "C" {
3354    pub fn flockfile(__stream: *mut FILE);
3355}
3356extern "C" {
3357    pub fn ftrylockfile(__stream: *mut FILE) -> ::std::os::raw::c_int;
3358}
3359extern "C" {
3360    pub fn funlockfile(__stream: *mut FILE);
3361}
3362extern "C" {
3363    pub fn __uflow(arg1: *mut FILE) -> ::std::os::raw::c_int;
3364}
3365extern "C" {
3366    pub fn __overflow(arg1: *mut FILE, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3367}
3368pub type float_t = f32;
3369pub type double_t = f64;
3370extern "C" {
3371    pub fn __fpclassify(__value: f64) -> ::std::os::raw::c_int;
3372}
3373extern "C" {
3374    pub fn __signbit(__value: f64) -> ::std::os::raw::c_int;
3375}
3376extern "C" {
3377    pub fn __isinf(__value: f64) -> ::std::os::raw::c_int;
3378}
3379extern "C" {
3380    pub fn __finite(__value: f64) -> ::std::os::raw::c_int;
3381}
3382extern "C" {
3383    pub fn __isnan(__value: f64) -> ::std::os::raw::c_int;
3384}
3385extern "C" {
3386    pub fn __iseqsig(__x: f64, __y: f64) -> ::std::os::raw::c_int;
3387}
3388extern "C" {
3389    pub fn __issignaling(__value: f64) -> ::std::os::raw::c_int;
3390}
3391extern "C" {
3392    pub fn acos(__x: f64) -> f64;
3393}
3394extern "C" {
3395    pub fn __acos(__x: f64) -> f64;
3396}
3397extern "C" {
3398    pub fn asin(__x: f64) -> f64;
3399}
3400extern "C" {
3401    pub fn __asin(__x: f64) -> f64;
3402}
3403extern "C" {
3404    pub fn atan(__x: f64) -> f64;
3405}
3406extern "C" {
3407    pub fn __atan(__x: f64) -> f64;
3408}
3409extern "C" {
3410    pub fn atan2(__y: f64, __x: f64) -> f64;
3411}
3412extern "C" {
3413    pub fn __atan2(__y: f64, __x: f64) -> f64;
3414}
3415extern "C" {
3416    pub fn cos(__x: f64) -> f64;
3417}
3418extern "C" {
3419    pub fn __cos(__x: f64) -> f64;
3420}
3421extern "C" {
3422    pub fn sin(__x: f64) -> f64;
3423}
3424extern "C" {
3425    pub fn __sin(__x: f64) -> f64;
3426}
3427extern "C" {
3428    pub fn tan(__x: f64) -> f64;
3429}
3430extern "C" {
3431    pub fn __tan(__x: f64) -> f64;
3432}
3433extern "C" {
3434    pub fn cosh(__x: f64) -> f64;
3435}
3436extern "C" {
3437    pub fn __cosh(__x: f64) -> f64;
3438}
3439extern "C" {
3440    pub fn sinh(__x: f64) -> f64;
3441}
3442extern "C" {
3443    pub fn __sinh(__x: f64) -> f64;
3444}
3445extern "C" {
3446    pub fn tanh(__x: f64) -> f64;
3447}
3448extern "C" {
3449    pub fn __tanh(__x: f64) -> f64;
3450}
3451extern "C" {
3452    pub fn acosh(__x: f64) -> f64;
3453}
3454extern "C" {
3455    pub fn __acosh(__x: f64) -> f64;
3456}
3457extern "C" {
3458    pub fn asinh(__x: f64) -> f64;
3459}
3460extern "C" {
3461    pub fn __asinh(__x: f64) -> f64;
3462}
3463extern "C" {
3464    pub fn atanh(__x: f64) -> f64;
3465}
3466extern "C" {
3467    pub fn __atanh(__x: f64) -> f64;
3468}
3469extern "C" {
3470    pub fn exp(__x: f64) -> f64;
3471}
3472extern "C" {
3473    pub fn __exp(__x: f64) -> f64;
3474}
3475extern "C" {
3476    pub fn frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64;
3477}
3478extern "C" {
3479    pub fn __frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64;
3480}
3481extern "C" {
3482    pub fn ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64;
3483}
3484extern "C" {
3485    pub fn __ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64;
3486}
3487extern "C" {
3488    pub fn log(__x: f64) -> f64;
3489}
3490extern "C" {
3491    pub fn __log(__x: f64) -> f64;
3492}
3493extern "C" {
3494    pub fn log10(__x: f64) -> f64;
3495}
3496extern "C" {
3497    pub fn __log10(__x: f64) -> f64;
3498}
3499extern "C" {
3500    pub fn modf(__x: f64, __iptr: *mut f64) -> f64;
3501}
3502extern "C" {
3503    pub fn __modf(__x: f64, __iptr: *mut f64) -> f64;
3504}
3505extern "C" {
3506    pub fn expm1(__x: f64) -> f64;
3507}
3508extern "C" {
3509    pub fn __expm1(__x: f64) -> f64;
3510}
3511extern "C" {
3512    pub fn log1p(__x: f64) -> f64;
3513}
3514extern "C" {
3515    pub fn __log1p(__x: f64) -> f64;
3516}
3517extern "C" {
3518    pub fn logb(__x: f64) -> f64;
3519}
3520extern "C" {
3521    pub fn __logb(__x: f64) -> f64;
3522}
3523extern "C" {
3524    pub fn exp2(__x: f64) -> f64;
3525}
3526extern "C" {
3527    pub fn __exp2(__x: f64) -> f64;
3528}
3529extern "C" {
3530    pub fn log2(__x: f64) -> f64;
3531}
3532extern "C" {
3533    pub fn __log2(__x: f64) -> f64;
3534}
3535extern "C" {
3536    pub fn pow(__x: f64, __y: f64) -> f64;
3537}
3538extern "C" {
3539    pub fn __pow(__x: f64, __y: f64) -> f64;
3540}
3541extern "C" {
3542    pub fn sqrt(__x: f64) -> f64;
3543}
3544extern "C" {
3545    pub fn __sqrt(__x: f64) -> f64;
3546}
3547extern "C" {
3548    pub fn hypot(__x: f64, __y: f64) -> f64;
3549}
3550extern "C" {
3551    pub fn __hypot(__x: f64, __y: f64) -> f64;
3552}
3553extern "C" {
3554    pub fn cbrt(__x: f64) -> f64;
3555}
3556extern "C" {
3557    pub fn __cbrt(__x: f64) -> f64;
3558}
3559extern "C" {
3560    pub fn ceil(__x: f64) -> f64;
3561}
3562extern "C" {
3563    pub fn __ceil(__x: f64) -> f64;
3564}
3565extern "C" {
3566    pub fn fabs(__x: f64) -> f64;
3567}
3568extern "C" {
3569    pub fn __fabs(__x: f64) -> f64;
3570}
3571extern "C" {
3572    pub fn floor(__x: f64) -> f64;
3573}
3574extern "C" {
3575    pub fn __floor(__x: f64) -> f64;
3576}
3577extern "C" {
3578    pub fn fmod(__x: f64, __y: f64) -> f64;
3579}
3580extern "C" {
3581    pub fn __fmod(__x: f64, __y: f64) -> f64;
3582}
3583extern "C" {
3584    pub fn isinf(__value: f64) -> ::std::os::raw::c_int;
3585}
3586extern "C" {
3587    pub fn finite(__value: f64) -> ::std::os::raw::c_int;
3588}
3589extern "C" {
3590    pub fn drem(__x: f64, __y: f64) -> f64;
3591}
3592extern "C" {
3593    pub fn __drem(__x: f64, __y: f64) -> f64;
3594}
3595extern "C" {
3596    pub fn significand(__x: f64) -> f64;
3597}
3598extern "C" {
3599    pub fn __significand(__x: f64) -> f64;
3600}
3601extern "C" {
3602    pub fn copysign(__x: f64, __y: f64) -> f64;
3603}
3604extern "C" {
3605    pub fn __copysign(__x: f64, __y: f64) -> f64;
3606}
3607extern "C" {
3608    pub fn nan(__tagb: *const ::std::os::raw::c_char) -> f64;
3609}
3610extern "C" {
3611    pub fn __nan(__tagb: *const ::std::os::raw::c_char) -> f64;
3612}
3613extern "C" {
3614    pub fn isnan(__value: f64) -> ::std::os::raw::c_int;
3615}
3616extern "C" {
3617    pub fn j0(arg1: f64) -> f64;
3618}
3619extern "C" {
3620    pub fn __j0(arg1: f64) -> f64;
3621}
3622extern "C" {
3623    pub fn j1(arg1: f64) -> f64;
3624}
3625extern "C" {
3626    pub fn __j1(arg1: f64) -> f64;
3627}
3628extern "C" {
3629    pub fn jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
3630}
3631extern "C" {
3632    pub fn __jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
3633}
3634extern "C" {
3635    pub fn y0(arg1: f64) -> f64;
3636}
3637extern "C" {
3638    pub fn __y0(arg1: f64) -> f64;
3639}
3640extern "C" {
3641    pub fn y1(arg1: f64) -> f64;
3642}
3643extern "C" {
3644    pub fn __y1(arg1: f64) -> f64;
3645}
3646extern "C" {
3647    pub fn yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
3648}
3649extern "C" {
3650    pub fn __yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
3651}
3652extern "C" {
3653    pub fn erf(arg1: f64) -> f64;
3654}
3655extern "C" {
3656    pub fn __erf(arg1: f64) -> f64;
3657}
3658extern "C" {
3659    pub fn erfc(arg1: f64) -> f64;
3660}
3661extern "C" {
3662    pub fn __erfc(arg1: f64) -> f64;
3663}
3664extern "C" {
3665    pub fn lgamma(arg1: f64) -> f64;
3666}
3667extern "C" {
3668    pub fn __lgamma(arg1: f64) -> f64;
3669}
3670extern "C" {
3671    pub fn tgamma(arg1: f64) -> f64;
3672}
3673extern "C" {
3674    pub fn __tgamma(arg1: f64) -> f64;
3675}
3676extern "C" {
3677    pub fn gamma(arg1: f64) -> f64;
3678}
3679extern "C" {
3680    pub fn __gamma(arg1: f64) -> f64;
3681}
3682extern "C" {
3683    pub fn lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64;
3684}
3685extern "C" {
3686    pub fn __lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64;
3687}
3688extern "C" {
3689    pub fn rint(__x: f64) -> f64;
3690}
3691extern "C" {
3692    pub fn __rint(__x: f64) -> f64;
3693}
3694extern "C" {
3695    pub fn nextafter(__x: f64, __y: f64) -> f64;
3696}
3697extern "C" {
3698    pub fn __nextafter(__x: f64, __y: f64) -> f64;
3699}
3700extern "C" {
3701    pub fn nexttoward(__x: f64, __y: u128) -> f64;
3702}
3703extern "C" {
3704    pub fn __nexttoward(__x: f64, __y: u128) -> f64;
3705}
3706extern "C" {
3707    pub fn remainder(__x: f64, __y: f64) -> f64;
3708}
3709extern "C" {
3710    pub fn __remainder(__x: f64, __y: f64) -> f64;
3711}
3712extern "C" {
3713    pub fn scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64;
3714}
3715extern "C" {
3716    pub fn __scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64;
3717}
3718extern "C" {
3719    pub fn ilogb(__x: f64) -> ::std::os::raw::c_int;
3720}
3721extern "C" {
3722    pub fn __ilogb(__x: f64) -> ::std::os::raw::c_int;
3723}
3724extern "C" {
3725    pub fn scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64;
3726}
3727extern "C" {
3728    pub fn __scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64;
3729}
3730extern "C" {
3731    pub fn nearbyint(__x: f64) -> f64;
3732}
3733extern "C" {
3734    pub fn __nearbyint(__x: f64) -> f64;
3735}
3736extern "C" {
3737    pub fn round(__x: f64) -> f64;
3738}
3739extern "C" {
3740    pub fn __round(__x: f64) -> f64;
3741}
3742extern "C" {
3743    pub fn trunc(__x: f64) -> f64;
3744}
3745extern "C" {
3746    pub fn __trunc(__x: f64) -> f64;
3747}
3748extern "C" {
3749    pub fn remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64;
3750}
3751extern "C" {
3752    pub fn __remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64;
3753}
3754extern "C" {
3755    pub fn lrint(__x: f64) -> ::std::os::raw::c_long;
3756}
3757extern "C" {
3758    pub fn __lrint(__x: f64) -> ::std::os::raw::c_long;
3759}
3760extern "C" {
3761    pub fn llrint(__x: f64) -> ::std::os::raw::c_longlong;
3762}
3763extern "C" {
3764    pub fn __llrint(__x: f64) -> ::std::os::raw::c_longlong;
3765}
3766extern "C" {
3767    pub fn lround(__x: f64) -> ::std::os::raw::c_long;
3768}
3769extern "C" {
3770    pub fn __lround(__x: f64) -> ::std::os::raw::c_long;
3771}
3772extern "C" {
3773    pub fn llround(__x: f64) -> ::std::os::raw::c_longlong;
3774}
3775extern "C" {
3776    pub fn __llround(__x: f64) -> ::std::os::raw::c_longlong;
3777}
3778extern "C" {
3779    pub fn fdim(__x: f64, __y: f64) -> f64;
3780}
3781extern "C" {
3782    pub fn __fdim(__x: f64, __y: f64) -> f64;
3783}
3784extern "C" {
3785    pub fn fmax(__x: f64, __y: f64) -> f64;
3786}
3787extern "C" {
3788    pub fn __fmax(__x: f64, __y: f64) -> f64;
3789}
3790extern "C" {
3791    pub fn fmin(__x: f64, __y: f64) -> f64;
3792}
3793extern "C" {
3794    pub fn __fmin(__x: f64, __y: f64) -> f64;
3795}
3796extern "C" {
3797    pub fn fma(__x: f64, __y: f64, __z: f64) -> f64;
3798}
3799extern "C" {
3800    pub fn __fma(__x: f64, __y: f64, __z: f64) -> f64;
3801}
3802extern "C" {
3803    pub fn scalb(__x: f64, __n: f64) -> f64;
3804}
3805extern "C" {
3806    pub fn __scalb(__x: f64, __n: f64) -> f64;
3807}
3808extern "C" {
3809    pub fn __fpclassifyf(__value: f32) -> ::std::os::raw::c_int;
3810}
3811extern "C" {
3812    pub fn __signbitf(__value: f32) -> ::std::os::raw::c_int;
3813}
3814extern "C" {
3815    pub fn __isinff(__value: f32) -> ::std::os::raw::c_int;
3816}
3817extern "C" {
3818    pub fn __finitef(__value: f32) -> ::std::os::raw::c_int;
3819}
3820extern "C" {
3821    pub fn __isnanf(__value: f32) -> ::std::os::raw::c_int;
3822}
3823extern "C" {
3824    pub fn __iseqsigf(__x: f32, __y: f32) -> ::std::os::raw::c_int;
3825}
3826extern "C" {
3827    pub fn __issignalingf(__value: f32) -> ::std::os::raw::c_int;
3828}
3829extern "C" {
3830    pub fn acosf(__x: f32) -> f32;
3831}
3832extern "C" {
3833    pub fn __acosf(__x: f32) -> f32;
3834}
3835extern "C" {
3836    pub fn asinf(__x: f32) -> f32;
3837}
3838extern "C" {
3839    pub fn __asinf(__x: f32) -> f32;
3840}
3841extern "C" {
3842    pub fn atanf(__x: f32) -> f32;
3843}
3844extern "C" {
3845    pub fn __atanf(__x: f32) -> f32;
3846}
3847extern "C" {
3848    pub fn atan2f(__y: f32, __x: f32) -> f32;
3849}
3850extern "C" {
3851    pub fn __atan2f(__y: f32, __x: f32) -> f32;
3852}
3853extern "C" {
3854    pub fn cosf(__x: f32) -> f32;
3855}
3856extern "C" {
3857    pub fn __cosf(__x: f32) -> f32;
3858}
3859extern "C" {
3860    pub fn sinf(__x: f32) -> f32;
3861}
3862extern "C" {
3863    pub fn __sinf(__x: f32) -> f32;
3864}
3865extern "C" {
3866    pub fn tanf(__x: f32) -> f32;
3867}
3868extern "C" {
3869    pub fn __tanf(__x: f32) -> f32;
3870}
3871extern "C" {
3872    pub fn coshf(__x: f32) -> f32;
3873}
3874extern "C" {
3875    pub fn __coshf(__x: f32) -> f32;
3876}
3877extern "C" {
3878    pub fn sinhf(__x: f32) -> f32;
3879}
3880extern "C" {
3881    pub fn __sinhf(__x: f32) -> f32;
3882}
3883extern "C" {
3884    pub fn tanhf(__x: f32) -> f32;
3885}
3886extern "C" {
3887    pub fn __tanhf(__x: f32) -> f32;
3888}
3889extern "C" {
3890    pub fn acoshf(__x: f32) -> f32;
3891}
3892extern "C" {
3893    pub fn __acoshf(__x: f32) -> f32;
3894}
3895extern "C" {
3896    pub fn asinhf(__x: f32) -> f32;
3897}
3898extern "C" {
3899    pub fn __asinhf(__x: f32) -> f32;
3900}
3901extern "C" {
3902    pub fn atanhf(__x: f32) -> f32;
3903}
3904extern "C" {
3905    pub fn __atanhf(__x: f32) -> f32;
3906}
3907extern "C" {
3908    pub fn expf(__x: f32) -> f32;
3909}
3910extern "C" {
3911    pub fn __expf(__x: f32) -> f32;
3912}
3913extern "C" {
3914    pub fn frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32;
3915}
3916extern "C" {
3917    pub fn __frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32;
3918}
3919extern "C" {
3920    pub fn ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32;
3921}
3922extern "C" {
3923    pub fn __ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32;
3924}
3925extern "C" {
3926    pub fn logf(__x: f32) -> f32;
3927}
3928extern "C" {
3929    pub fn __logf(__x: f32) -> f32;
3930}
3931extern "C" {
3932    pub fn log10f(__x: f32) -> f32;
3933}
3934extern "C" {
3935    pub fn __log10f(__x: f32) -> f32;
3936}
3937extern "C" {
3938    pub fn modff(__x: f32, __iptr: *mut f32) -> f32;
3939}
3940extern "C" {
3941    pub fn __modff(__x: f32, __iptr: *mut f32) -> f32;
3942}
3943extern "C" {
3944    pub fn expm1f(__x: f32) -> f32;
3945}
3946extern "C" {
3947    pub fn __expm1f(__x: f32) -> f32;
3948}
3949extern "C" {
3950    pub fn log1pf(__x: f32) -> f32;
3951}
3952extern "C" {
3953    pub fn __log1pf(__x: f32) -> f32;
3954}
3955extern "C" {
3956    pub fn logbf(__x: f32) -> f32;
3957}
3958extern "C" {
3959    pub fn __logbf(__x: f32) -> f32;
3960}
3961extern "C" {
3962    pub fn exp2f(__x: f32) -> f32;
3963}
3964extern "C" {
3965    pub fn __exp2f(__x: f32) -> f32;
3966}
3967extern "C" {
3968    pub fn log2f(__x: f32) -> f32;
3969}
3970extern "C" {
3971    pub fn __log2f(__x: f32) -> f32;
3972}
3973extern "C" {
3974    pub fn powf(__x: f32, __y: f32) -> f32;
3975}
3976extern "C" {
3977    pub fn __powf(__x: f32, __y: f32) -> f32;
3978}
3979extern "C" {
3980    pub fn sqrtf(__x: f32) -> f32;
3981}
3982extern "C" {
3983    pub fn __sqrtf(__x: f32) -> f32;
3984}
3985extern "C" {
3986    pub fn hypotf(__x: f32, __y: f32) -> f32;
3987}
3988extern "C" {
3989    pub fn __hypotf(__x: f32, __y: f32) -> f32;
3990}
3991extern "C" {
3992    pub fn cbrtf(__x: f32) -> f32;
3993}
3994extern "C" {
3995    pub fn __cbrtf(__x: f32) -> f32;
3996}
3997extern "C" {
3998    pub fn ceilf(__x: f32) -> f32;
3999}
4000extern "C" {
4001    pub fn __ceilf(__x: f32) -> f32;
4002}
4003extern "C" {
4004    pub fn fabsf(__x: f32) -> f32;
4005}
4006extern "C" {
4007    pub fn __fabsf(__x: f32) -> f32;
4008}
4009extern "C" {
4010    pub fn floorf(__x: f32) -> f32;
4011}
4012extern "C" {
4013    pub fn __floorf(__x: f32) -> f32;
4014}
4015extern "C" {
4016    pub fn fmodf(__x: f32, __y: f32) -> f32;
4017}
4018extern "C" {
4019    pub fn __fmodf(__x: f32, __y: f32) -> f32;
4020}
4021extern "C" {
4022    pub fn isinff(__value: f32) -> ::std::os::raw::c_int;
4023}
4024extern "C" {
4025    pub fn finitef(__value: f32) -> ::std::os::raw::c_int;
4026}
4027extern "C" {
4028    pub fn dremf(__x: f32, __y: f32) -> f32;
4029}
4030extern "C" {
4031    pub fn __dremf(__x: f32, __y: f32) -> f32;
4032}
4033extern "C" {
4034    pub fn significandf(__x: f32) -> f32;
4035}
4036extern "C" {
4037    pub fn __significandf(__x: f32) -> f32;
4038}
4039extern "C" {
4040    pub fn copysignf(__x: f32, __y: f32) -> f32;
4041}
4042extern "C" {
4043    pub fn __copysignf(__x: f32, __y: f32) -> f32;
4044}
4045extern "C" {
4046    pub fn nanf(__tagb: *const ::std::os::raw::c_char) -> f32;
4047}
4048extern "C" {
4049    pub fn __nanf(__tagb: *const ::std::os::raw::c_char) -> f32;
4050}
4051extern "C" {
4052    pub fn isnanf(__value: f32) -> ::std::os::raw::c_int;
4053}
4054extern "C" {
4055    pub fn j0f(arg1: f32) -> f32;
4056}
4057extern "C" {
4058    pub fn __j0f(arg1: f32) -> f32;
4059}
4060extern "C" {
4061    pub fn j1f(arg1: f32) -> f32;
4062}
4063extern "C" {
4064    pub fn __j1f(arg1: f32) -> f32;
4065}
4066extern "C" {
4067    pub fn jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32;
4068}
4069extern "C" {
4070    pub fn __jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32;
4071}
4072extern "C" {
4073    pub fn y0f(arg1: f32) -> f32;
4074}
4075extern "C" {
4076    pub fn __y0f(arg1: f32) -> f32;
4077}
4078extern "C" {
4079    pub fn y1f(arg1: f32) -> f32;
4080}
4081extern "C" {
4082    pub fn __y1f(arg1: f32) -> f32;
4083}
4084extern "C" {
4085    pub fn ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32;
4086}
4087extern "C" {
4088    pub fn __ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32;
4089}
4090extern "C" {
4091    pub fn erff(arg1: f32) -> f32;
4092}
4093extern "C" {
4094    pub fn __erff(arg1: f32) -> f32;
4095}
4096extern "C" {
4097    pub fn erfcf(arg1: f32) -> f32;
4098}
4099extern "C" {
4100    pub fn __erfcf(arg1: f32) -> f32;
4101}
4102extern "C" {
4103    pub fn lgammaf(arg1: f32) -> f32;
4104}
4105extern "C" {
4106    pub fn __lgammaf(arg1: f32) -> f32;
4107}
4108extern "C" {
4109    pub fn tgammaf(arg1: f32) -> f32;
4110}
4111extern "C" {
4112    pub fn __tgammaf(arg1: f32) -> f32;
4113}
4114extern "C" {
4115    pub fn gammaf(arg1: f32) -> f32;
4116}
4117extern "C" {
4118    pub fn __gammaf(arg1: f32) -> f32;
4119}
4120extern "C" {
4121    pub fn lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32;
4122}
4123extern "C" {
4124    pub fn __lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32;
4125}
4126extern "C" {
4127    pub fn rintf(__x: f32) -> f32;
4128}
4129extern "C" {
4130    pub fn __rintf(__x: f32) -> f32;
4131}
4132extern "C" {
4133    pub fn nextafterf(__x: f32, __y: f32) -> f32;
4134}
4135extern "C" {
4136    pub fn __nextafterf(__x: f32, __y: f32) -> f32;
4137}
4138extern "C" {
4139    pub fn nexttowardf(__x: f32, __y: u128) -> f32;
4140}
4141extern "C" {
4142    pub fn __nexttowardf(__x: f32, __y: u128) -> f32;
4143}
4144extern "C" {
4145    pub fn remainderf(__x: f32, __y: f32) -> f32;
4146}
4147extern "C" {
4148    pub fn __remainderf(__x: f32, __y: f32) -> f32;
4149}
4150extern "C" {
4151    pub fn scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32;
4152}
4153extern "C" {
4154    pub fn __scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32;
4155}
4156extern "C" {
4157    pub fn ilogbf(__x: f32) -> ::std::os::raw::c_int;
4158}
4159extern "C" {
4160    pub fn __ilogbf(__x: f32) -> ::std::os::raw::c_int;
4161}
4162extern "C" {
4163    pub fn scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32;
4164}
4165extern "C" {
4166    pub fn __scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32;
4167}
4168extern "C" {
4169    pub fn nearbyintf(__x: f32) -> f32;
4170}
4171extern "C" {
4172    pub fn __nearbyintf(__x: f32) -> f32;
4173}
4174extern "C" {
4175    pub fn roundf(__x: f32) -> f32;
4176}
4177extern "C" {
4178    pub fn __roundf(__x: f32) -> f32;
4179}
4180extern "C" {
4181    pub fn truncf(__x: f32) -> f32;
4182}
4183extern "C" {
4184    pub fn __truncf(__x: f32) -> f32;
4185}
4186extern "C" {
4187    pub fn remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32;
4188}
4189extern "C" {
4190    pub fn __remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32;
4191}
4192extern "C" {
4193    pub fn lrintf(__x: f32) -> ::std::os::raw::c_long;
4194}
4195extern "C" {
4196    pub fn __lrintf(__x: f32) -> ::std::os::raw::c_long;
4197}
4198extern "C" {
4199    pub fn llrintf(__x: f32) -> ::std::os::raw::c_longlong;
4200}
4201extern "C" {
4202    pub fn __llrintf(__x: f32) -> ::std::os::raw::c_longlong;
4203}
4204extern "C" {
4205    pub fn lroundf(__x: f32) -> ::std::os::raw::c_long;
4206}
4207extern "C" {
4208    pub fn __lroundf(__x: f32) -> ::std::os::raw::c_long;
4209}
4210extern "C" {
4211    pub fn llroundf(__x: f32) -> ::std::os::raw::c_longlong;
4212}
4213extern "C" {
4214    pub fn __llroundf(__x: f32) -> ::std::os::raw::c_longlong;
4215}
4216extern "C" {
4217    pub fn fdimf(__x: f32, __y: f32) -> f32;
4218}
4219extern "C" {
4220    pub fn __fdimf(__x: f32, __y: f32) -> f32;
4221}
4222extern "C" {
4223    pub fn fmaxf(__x: f32, __y: f32) -> f32;
4224}
4225extern "C" {
4226    pub fn __fmaxf(__x: f32, __y: f32) -> f32;
4227}
4228extern "C" {
4229    pub fn fminf(__x: f32, __y: f32) -> f32;
4230}
4231extern "C" {
4232    pub fn __fminf(__x: f32, __y: f32) -> f32;
4233}
4234extern "C" {
4235    pub fn fmaf(__x: f32, __y: f32, __z: f32) -> f32;
4236}
4237extern "C" {
4238    pub fn __fmaf(__x: f32, __y: f32, __z: f32) -> f32;
4239}
4240extern "C" {
4241    pub fn scalbf(__x: f32, __n: f32) -> f32;
4242}
4243extern "C" {
4244    pub fn __scalbf(__x: f32, __n: f32) -> f32;
4245}
4246extern "C" {
4247    pub fn __fpclassifyl(__value: u128) -> ::std::os::raw::c_int;
4248}
4249extern "C" {
4250    pub fn __signbitl(__value: u128) -> ::std::os::raw::c_int;
4251}
4252extern "C" {
4253    pub fn __isinfl(__value: u128) -> ::std::os::raw::c_int;
4254}
4255extern "C" {
4256    pub fn __finitel(__value: u128) -> ::std::os::raw::c_int;
4257}
4258extern "C" {
4259    pub fn __isnanl(__value: u128) -> ::std::os::raw::c_int;
4260}
4261extern "C" {
4262    pub fn __iseqsigl(__x: u128, __y: u128) -> ::std::os::raw::c_int;
4263}
4264extern "C" {
4265    pub fn __issignalingl(__value: u128) -> ::std::os::raw::c_int;
4266}
4267extern "C" {
4268    pub fn acosl(__x: u128) -> u128;
4269}
4270extern "C" {
4271    pub fn __acosl(__x: u128) -> u128;
4272}
4273extern "C" {
4274    pub fn asinl(__x: u128) -> u128;
4275}
4276extern "C" {
4277    pub fn __asinl(__x: u128) -> u128;
4278}
4279extern "C" {
4280    pub fn atanl(__x: u128) -> u128;
4281}
4282extern "C" {
4283    pub fn __atanl(__x: u128) -> u128;
4284}
4285extern "C" {
4286    pub fn atan2l(__y: u128, __x: u128) -> u128;
4287}
4288extern "C" {
4289    pub fn __atan2l(__y: u128, __x: u128) -> u128;
4290}
4291extern "C" {
4292    pub fn cosl(__x: u128) -> u128;
4293}
4294extern "C" {
4295    pub fn __cosl(__x: u128) -> u128;
4296}
4297extern "C" {
4298    pub fn sinl(__x: u128) -> u128;
4299}
4300extern "C" {
4301    pub fn __sinl(__x: u128) -> u128;
4302}
4303extern "C" {
4304    pub fn tanl(__x: u128) -> u128;
4305}
4306extern "C" {
4307    pub fn __tanl(__x: u128) -> u128;
4308}
4309extern "C" {
4310    pub fn coshl(__x: u128) -> u128;
4311}
4312extern "C" {
4313    pub fn __coshl(__x: u128) -> u128;
4314}
4315extern "C" {
4316    pub fn sinhl(__x: u128) -> u128;
4317}
4318extern "C" {
4319    pub fn __sinhl(__x: u128) -> u128;
4320}
4321extern "C" {
4322    pub fn tanhl(__x: u128) -> u128;
4323}
4324extern "C" {
4325    pub fn __tanhl(__x: u128) -> u128;
4326}
4327extern "C" {
4328    pub fn acoshl(__x: u128) -> u128;
4329}
4330extern "C" {
4331    pub fn __acoshl(__x: u128) -> u128;
4332}
4333extern "C" {
4334    pub fn asinhl(__x: u128) -> u128;
4335}
4336extern "C" {
4337    pub fn __asinhl(__x: u128) -> u128;
4338}
4339extern "C" {
4340    pub fn atanhl(__x: u128) -> u128;
4341}
4342extern "C" {
4343    pub fn __atanhl(__x: u128) -> u128;
4344}
4345extern "C" {
4346    pub fn expl(__x: u128) -> u128;
4347}
4348extern "C" {
4349    pub fn __expl(__x: u128) -> u128;
4350}
4351extern "C" {
4352    pub fn frexpl(__x: u128, __exponent: *mut ::std::os::raw::c_int) -> u128;
4353}
4354extern "C" {
4355    pub fn __frexpl(__x: u128, __exponent: *mut ::std::os::raw::c_int) -> u128;
4356}
4357extern "C" {
4358    pub fn ldexpl(__x: u128, __exponent: ::std::os::raw::c_int) -> u128;
4359}
4360extern "C" {
4361    pub fn __ldexpl(__x: u128, __exponent: ::std::os::raw::c_int) -> u128;
4362}
4363extern "C" {
4364    pub fn logl(__x: u128) -> u128;
4365}
4366extern "C" {
4367    pub fn __logl(__x: u128) -> u128;
4368}
4369extern "C" {
4370    pub fn log10l(__x: u128) -> u128;
4371}
4372extern "C" {
4373    pub fn __log10l(__x: u128) -> u128;
4374}
4375extern "C" {
4376    pub fn modfl(__x: u128, __iptr: *mut u128) -> u128;
4377}
4378extern "C" {
4379    pub fn __modfl(__x: u128, __iptr: *mut u128) -> u128;
4380}
4381extern "C" {
4382    pub fn expm1l(__x: u128) -> u128;
4383}
4384extern "C" {
4385    pub fn __expm1l(__x: u128) -> u128;
4386}
4387extern "C" {
4388    pub fn log1pl(__x: u128) -> u128;
4389}
4390extern "C" {
4391    pub fn __log1pl(__x: u128) -> u128;
4392}
4393extern "C" {
4394    pub fn logbl(__x: u128) -> u128;
4395}
4396extern "C" {
4397    pub fn __logbl(__x: u128) -> u128;
4398}
4399extern "C" {
4400    pub fn exp2l(__x: u128) -> u128;
4401}
4402extern "C" {
4403    pub fn __exp2l(__x: u128) -> u128;
4404}
4405extern "C" {
4406    pub fn log2l(__x: u128) -> u128;
4407}
4408extern "C" {
4409    pub fn __log2l(__x: u128) -> u128;
4410}
4411extern "C" {
4412    pub fn powl(__x: u128, __y: u128) -> u128;
4413}
4414extern "C" {
4415    pub fn __powl(__x: u128, __y: u128) -> u128;
4416}
4417extern "C" {
4418    pub fn sqrtl(__x: u128) -> u128;
4419}
4420extern "C" {
4421    pub fn __sqrtl(__x: u128) -> u128;
4422}
4423extern "C" {
4424    pub fn hypotl(__x: u128, __y: u128) -> u128;
4425}
4426extern "C" {
4427    pub fn __hypotl(__x: u128, __y: u128) -> u128;
4428}
4429extern "C" {
4430    pub fn cbrtl(__x: u128) -> u128;
4431}
4432extern "C" {
4433    pub fn __cbrtl(__x: u128) -> u128;
4434}
4435extern "C" {
4436    pub fn ceill(__x: u128) -> u128;
4437}
4438extern "C" {
4439    pub fn __ceill(__x: u128) -> u128;
4440}
4441extern "C" {
4442    pub fn fabsl(__x: u128) -> u128;
4443}
4444extern "C" {
4445    pub fn __fabsl(__x: u128) -> u128;
4446}
4447extern "C" {
4448    pub fn floorl(__x: u128) -> u128;
4449}
4450extern "C" {
4451    pub fn __floorl(__x: u128) -> u128;
4452}
4453extern "C" {
4454    pub fn fmodl(__x: u128, __y: u128) -> u128;
4455}
4456extern "C" {
4457    pub fn __fmodl(__x: u128, __y: u128) -> u128;
4458}
4459extern "C" {
4460    pub fn isinfl(__value: u128) -> ::std::os::raw::c_int;
4461}
4462extern "C" {
4463    pub fn finitel(__value: u128) -> ::std::os::raw::c_int;
4464}
4465extern "C" {
4466    pub fn dreml(__x: u128, __y: u128) -> u128;
4467}
4468extern "C" {
4469    pub fn __dreml(__x: u128, __y: u128) -> u128;
4470}
4471extern "C" {
4472    pub fn significandl(__x: u128) -> u128;
4473}
4474extern "C" {
4475    pub fn __significandl(__x: u128) -> u128;
4476}
4477extern "C" {
4478    pub fn copysignl(__x: u128, __y: u128) -> u128;
4479}
4480extern "C" {
4481    pub fn __copysignl(__x: u128, __y: u128) -> u128;
4482}
4483extern "C" {
4484    pub fn nanl(__tagb: *const ::std::os::raw::c_char) -> u128;
4485}
4486extern "C" {
4487    pub fn __nanl(__tagb: *const ::std::os::raw::c_char) -> u128;
4488}
4489extern "C" {
4490    pub fn isnanl(__value: u128) -> ::std::os::raw::c_int;
4491}
4492extern "C" {
4493    pub fn j0l(arg1: u128) -> u128;
4494}
4495extern "C" {
4496    pub fn __j0l(arg1: u128) -> u128;
4497}
4498extern "C" {
4499    pub fn j1l(arg1: u128) -> u128;
4500}
4501extern "C" {
4502    pub fn __j1l(arg1: u128) -> u128;
4503}
4504extern "C" {
4505    pub fn jnl(arg1: ::std::os::raw::c_int, arg2: u128) -> u128;
4506}
4507extern "C" {
4508    pub fn __jnl(arg1: ::std::os::raw::c_int, arg2: u128) -> u128;
4509}
4510extern "C" {
4511    pub fn y0l(arg1: u128) -> u128;
4512}
4513extern "C" {
4514    pub fn __y0l(arg1: u128) -> u128;
4515}
4516extern "C" {
4517    pub fn y1l(arg1: u128) -> u128;
4518}
4519extern "C" {
4520    pub fn __y1l(arg1: u128) -> u128;
4521}
4522extern "C" {
4523    pub fn ynl(arg1: ::std::os::raw::c_int, arg2: u128) -> u128;
4524}
4525extern "C" {
4526    pub fn __ynl(arg1: ::std::os::raw::c_int, arg2: u128) -> u128;
4527}
4528extern "C" {
4529    pub fn erfl(arg1: u128) -> u128;
4530}
4531extern "C" {
4532    pub fn __erfl(arg1: u128) -> u128;
4533}
4534extern "C" {
4535    pub fn erfcl(arg1: u128) -> u128;
4536}
4537extern "C" {
4538    pub fn __erfcl(arg1: u128) -> u128;
4539}
4540extern "C" {
4541    pub fn lgammal(arg1: u128) -> u128;
4542}
4543extern "C" {
4544    pub fn __lgammal(arg1: u128) -> u128;
4545}
4546extern "C" {
4547    pub fn tgammal(arg1: u128) -> u128;
4548}
4549extern "C" {
4550    pub fn __tgammal(arg1: u128) -> u128;
4551}
4552extern "C" {
4553    pub fn gammal(arg1: u128) -> u128;
4554}
4555extern "C" {
4556    pub fn __gammal(arg1: u128) -> u128;
4557}
4558extern "C" {
4559    pub fn lgammal_r(arg1: u128, __signgamp: *mut ::std::os::raw::c_int) -> u128;
4560}
4561extern "C" {
4562    pub fn __lgammal_r(arg1: u128, __signgamp: *mut ::std::os::raw::c_int) -> u128;
4563}
4564extern "C" {
4565    pub fn rintl(__x: u128) -> u128;
4566}
4567extern "C" {
4568    pub fn __rintl(__x: u128) -> u128;
4569}
4570extern "C" {
4571    pub fn nextafterl(__x: u128, __y: u128) -> u128;
4572}
4573extern "C" {
4574    pub fn __nextafterl(__x: u128, __y: u128) -> u128;
4575}
4576extern "C" {
4577    pub fn nexttowardl(__x: u128, __y: u128) -> u128;
4578}
4579extern "C" {
4580    pub fn __nexttowardl(__x: u128, __y: u128) -> u128;
4581}
4582extern "C" {
4583    pub fn remainderl(__x: u128, __y: u128) -> u128;
4584}
4585extern "C" {
4586    pub fn __remainderl(__x: u128, __y: u128) -> u128;
4587}
4588extern "C" {
4589    pub fn scalbnl(__x: u128, __n: ::std::os::raw::c_int) -> u128;
4590}
4591extern "C" {
4592    pub fn __scalbnl(__x: u128, __n: ::std::os::raw::c_int) -> u128;
4593}
4594extern "C" {
4595    pub fn ilogbl(__x: u128) -> ::std::os::raw::c_int;
4596}
4597extern "C" {
4598    pub fn __ilogbl(__x: u128) -> ::std::os::raw::c_int;
4599}
4600extern "C" {
4601    pub fn scalblnl(__x: u128, __n: ::std::os::raw::c_long) -> u128;
4602}
4603extern "C" {
4604    pub fn __scalblnl(__x: u128, __n: ::std::os::raw::c_long) -> u128;
4605}
4606extern "C" {
4607    pub fn nearbyintl(__x: u128) -> u128;
4608}
4609extern "C" {
4610    pub fn __nearbyintl(__x: u128) -> u128;
4611}
4612extern "C" {
4613    pub fn roundl(__x: u128) -> u128;
4614}
4615extern "C" {
4616    pub fn __roundl(__x: u128) -> u128;
4617}
4618extern "C" {
4619    pub fn truncl(__x: u128) -> u128;
4620}
4621extern "C" {
4622    pub fn __truncl(__x: u128) -> u128;
4623}
4624extern "C" {
4625    pub fn remquol(__x: u128, __y: u128, __quo: *mut ::std::os::raw::c_int) -> u128;
4626}
4627extern "C" {
4628    pub fn __remquol(__x: u128, __y: u128, __quo: *mut ::std::os::raw::c_int) -> u128;
4629}
4630extern "C" {
4631    pub fn lrintl(__x: u128) -> ::std::os::raw::c_long;
4632}
4633extern "C" {
4634    pub fn __lrintl(__x: u128) -> ::std::os::raw::c_long;
4635}
4636extern "C" {
4637    pub fn llrintl(__x: u128) -> ::std::os::raw::c_longlong;
4638}
4639extern "C" {
4640    pub fn __llrintl(__x: u128) -> ::std::os::raw::c_longlong;
4641}
4642extern "C" {
4643    pub fn lroundl(__x: u128) -> ::std::os::raw::c_long;
4644}
4645extern "C" {
4646    pub fn __lroundl(__x: u128) -> ::std::os::raw::c_long;
4647}
4648extern "C" {
4649    pub fn llroundl(__x: u128) -> ::std::os::raw::c_longlong;
4650}
4651extern "C" {
4652    pub fn __llroundl(__x: u128) -> ::std::os::raw::c_longlong;
4653}
4654extern "C" {
4655    pub fn fdiml(__x: u128, __y: u128) -> u128;
4656}
4657extern "C" {
4658    pub fn __fdiml(__x: u128, __y: u128) -> u128;
4659}
4660extern "C" {
4661    pub fn fmaxl(__x: u128, __y: u128) -> u128;
4662}
4663extern "C" {
4664    pub fn __fmaxl(__x: u128, __y: u128) -> u128;
4665}
4666extern "C" {
4667    pub fn fminl(__x: u128, __y: u128) -> u128;
4668}
4669extern "C" {
4670    pub fn __fminl(__x: u128, __y: u128) -> u128;
4671}
4672extern "C" {
4673    pub fn fmal(__x: u128, __y: u128, __z: u128) -> u128;
4674}
4675extern "C" {
4676    pub fn __fmal(__x: u128, __y: u128, __z: u128) -> u128;
4677}
4678extern "C" {
4679    pub fn scalbl(__x: u128, __n: u128) -> u128;
4680}
4681extern "C" {
4682    pub fn __scalbl(__x: u128, __n: u128) -> u128;
4683}
4684extern "C" {
4685    pub static mut signgam: ::std::os::raw::c_int;
4686}
4687pub const FP_NAN: ::std::os::raw::c_uint = 0;
4688pub const FP_INFINITE: ::std::os::raw::c_uint = 1;
4689pub const FP_ZERO: ::std::os::raw::c_uint = 2;
4690pub const FP_SUBNORMAL: ::std::os::raw::c_uint = 3;
4691pub const FP_NORMAL: ::std::os::raw::c_uint = 4;
4692pub type _bindgen_ty_1 = ::std::os::raw::c_uint;
4693extern "C" {
4694    pub fn memcpy(
4695        __dest: *mut ::std::os::raw::c_void,
4696        __src: *const ::std::os::raw::c_void,
4697        __n: ::std::os::raw::c_ulong,
4698    ) -> *mut ::std::os::raw::c_void;
4699}
4700extern "C" {
4701    pub fn memmove(
4702        __dest: *mut ::std::os::raw::c_void,
4703        __src: *const ::std::os::raw::c_void,
4704        __n: ::std::os::raw::c_ulong,
4705    ) -> *mut ::std::os::raw::c_void;
4706}
4707extern "C" {
4708    pub fn memccpy(
4709        __dest: *mut ::std::os::raw::c_void,
4710        __src: *const ::std::os::raw::c_void,
4711        __c: ::std::os::raw::c_int,
4712        __n: ::std::os::raw::c_ulong,
4713    ) -> *mut ::std::os::raw::c_void;
4714}
4715extern "C" {
4716    pub fn memset(
4717        __s: *mut ::std::os::raw::c_void,
4718        __c: ::std::os::raw::c_int,
4719        __n: ::std::os::raw::c_ulong,
4720    ) -> *mut ::std::os::raw::c_void;
4721}
4722extern "C" {
4723    pub fn memcmp(
4724        __s1: *const ::std::os::raw::c_void,
4725        __s2: *const ::std::os::raw::c_void,
4726        __n: ::std::os::raw::c_ulong,
4727    ) -> ::std::os::raw::c_int;
4728}
4729extern "C" {
4730    pub fn memchr(
4731        __s: *const ::std::os::raw::c_void,
4732        __c: ::std::os::raw::c_int,
4733        __n: ::std::os::raw::c_ulong,
4734    ) -> *mut ::std::os::raw::c_void;
4735}
4736extern "C" {
4737    pub fn strcpy(
4738        __dest: *mut ::std::os::raw::c_char,
4739        __src: *const ::std::os::raw::c_char,
4740    ) -> *mut ::std::os::raw::c_char;
4741}
4742extern "C" {
4743    pub fn strncpy(
4744        __dest: *mut ::std::os::raw::c_char,
4745        __src: *const ::std::os::raw::c_char,
4746        __n: ::std::os::raw::c_ulong,
4747    ) -> *mut ::std::os::raw::c_char;
4748}
4749extern "C" {
4750    pub fn strcat(
4751        __dest: *mut ::std::os::raw::c_char,
4752        __src: *const ::std::os::raw::c_char,
4753    ) -> *mut ::std::os::raw::c_char;
4754}
4755extern "C" {
4756    pub fn strncat(
4757        __dest: *mut ::std::os::raw::c_char,
4758        __src: *const ::std::os::raw::c_char,
4759        __n: ::std::os::raw::c_ulong,
4760    ) -> *mut ::std::os::raw::c_char;
4761}
4762extern "C" {
4763    pub fn strcmp(
4764        __s1: *const ::std::os::raw::c_char,
4765        __s2: *const ::std::os::raw::c_char,
4766    ) -> ::std::os::raw::c_int;
4767}
4768extern "C" {
4769    pub fn strncmp(
4770        __s1: *const ::std::os::raw::c_char,
4771        __s2: *const ::std::os::raw::c_char,
4772        __n: ::std::os::raw::c_ulong,
4773    ) -> ::std::os::raw::c_int;
4774}
4775extern "C" {
4776    pub fn strcoll(
4777        __s1: *const ::std::os::raw::c_char,
4778        __s2: *const ::std::os::raw::c_char,
4779    ) -> ::std::os::raw::c_int;
4780}
4781extern "C" {
4782    pub fn strxfrm(
4783        __dest: *mut ::std::os::raw::c_char,
4784        __src: *const ::std::os::raw::c_char,
4785        __n: ::std::os::raw::c_ulong,
4786    ) -> ::std::os::raw::c_ulong;
4787}
4788#[repr(C)]
4789#[derive(Debug, Copy, Clone)]
4790pub struct __locale_struct {
4791    pub __locales: [*mut __locale_data; 13usize],
4792    pub __ctype_b: *const ::std::os::raw::c_ushort,
4793    pub __ctype_tolower: *const ::std::os::raw::c_int,
4794    pub __ctype_toupper: *const ::std::os::raw::c_int,
4795    pub __names: [*const ::std::os::raw::c_char; 13usize],
4796}
4797#[test]
4798fn bindgen_test_layout___locale_struct() {
4799    assert_eq!(
4800        ::std::mem::size_of::<__locale_struct>(),
4801        232usize,
4802        concat!("Size of: ", stringify!(__locale_struct))
4803    );
4804    assert_eq!(
4805        ::std::mem::align_of::<__locale_struct>(),
4806        8usize,
4807        concat!("Alignment of ", stringify!(__locale_struct))
4808    );
4809    assert_eq!(
4810        unsafe { &(*(::std::ptr::null::<__locale_struct>())).__locales as *const _ as usize },
4811        0usize,
4812        concat!(
4813            "Offset of field: ",
4814            stringify!(__locale_struct),
4815            "::",
4816            stringify!(__locales)
4817        )
4818    );
4819    assert_eq!(
4820        unsafe { &(*(::std::ptr::null::<__locale_struct>())).__ctype_b as *const _ as usize },
4821        104usize,
4822        concat!(
4823            "Offset of field: ",
4824            stringify!(__locale_struct),
4825            "::",
4826            stringify!(__ctype_b)
4827        )
4828    );
4829    assert_eq!(
4830        unsafe { &(*(::std::ptr::null::<__locale_struct>())).__ctype_tolower as *const _ as usize },
4831        112usize,
4832        concat!(
4833            "Offset of field: ",
4834            stringify!(__locale_struct),
4835            "::",
4836            stringify!(__ctype_tolower)
4837        )
4838    );
4839    assert_eq!(
4840        unsafe { &(*(::std::ptr::null::<__locale_struct>())).__ctype_toupper as *const _ as usize },
4841        120usize,
4842        concat!(
4843            "Offset of field: ",
4844            stringify!(__locale_struct),
4845            "::",
4846            stringify!(__ctype_toupper)
4847        )
4848    );
4849    assert_eq!(
4850        unsafe { &(*(::std::ptr::null::<__locale_struct>())).__names as *const _ as usize },
4851        128usize,
4852        concat!(
4853            "Offset of field: ",
4854            stringify!(__locale_struct),
4855            "::",
4856            stringify!(__names)
4857        )
4858    );
4859}
4860pub type __locale_t = *mut __locale_struct;
4861pub type locale_t = __locale_t;
4862extern "C" {
4863    pub fn strcoll_l(
4864        __s1: *const ::std::os::raw::c_char,
4865        __s2: *const ::std::os::raw::c_char,
4866        __l: locale_t,
4867    ) -> ::std::os::raw::c_int;
4868}
4869extern "C" {
4870    pub fn strxfrm_l(
4871        __dest: *mut ::std::os::raw::c_char,
4872        __src: *const ::std::os::raw::c_char,
4873        __n: size_t,
4874        __l: locale_t,
4875    ) -> size_t;
4876}
4877extern "C" {
4878    pub fn strdup(__s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
4879}
4880extern "C" {
4881    pub fn strndup(
4882        __string: *const ::std::os::raw::c_char,
4883        __n: ::std::os::raw::c_ulong,
4884    ) -> *mut ::std::os::raw::c_char;
4885}
4886extern "C" {
4887    pub fn strchr(
4888        __s: *const ::std::os::raw::c_char,
4889        __c: ::std::os::raw::c_int,
4890    ) -> *mut ::std::os::raw::c_char;
4891}
4892extern "C" {
4893    pub fn strrchr(
4894        __s: *const ::std::os::raw::c_char,
4895        __c: ::std::os::raw::c_int,
4896    ) -> *mut ::std::os::raw::c_char;
4897}
4898extern "C" {
4899    pub fn strcspn(
4900        __s: *const ::std::os::raw::c_char,
4901        __reject: *const ::std::os::raw::c_char,
4902    ) -> ::std::os::raw::c_ulong;
4903}
4904extern "C" {
4905    pub fn strspn(
4906        __s: *const ::std::os::raw::c_char,
4907        __accept: *const ::std::os::raw::c_char,
4908    ) -> ::std::os::raw::c_ulong;
4909}
4910extern "C" {
4911    pub fn strpbrk(
4912        __s: *const ::std::os::raw::c_char,
4913        __accept: *const ::std::os::raw::c_char,
4914    ) -> *mut ::std::os::raw::c_char;
4915}
4916extern "C" {
4917    pub fn strstr(
4918        __haystack: *const ::std::os::raw::c_char,
4919        __needle: *const ::std::os::raw::c_char,
4920    ) -> *mut ::std::os::raw::c_char;
4921}
4922extern "C" {
4923    pub fn strtok(
4924        __s: *mut ::std::os::raw::c_char,
4925        __delim: *const ::std::os::raw::c_char,
4926    ) -> *mut ::std::os::raw::c_char;
4927}
4928extern "C" {
4929    pub fn __strtok_r(
4930        __s: *mut ::std::os::raw::c_char,
4931        __delim: *const ::std::os::raw::c_char,
4932        __save_ptr: *mut *mut ::std::os::raw::c_char,
4933    ) -> *mut ::std::os::raw::c_char;
4934}
4935extern "C" {
4936    pub fn strtok_r(
4937        __s: *mut ::std::os::raw::c_char,
4938        __delim: *const ::std::os::raw::c_char,
4939        __save_ptr: *mut *mut ::std::os::raw::c_char,
4940    ) -> *mut ::std::os::raw::c_char;
4941}
4942extern "C" {
4943    pub fn strlen(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ulong;
4944}
4945extern "C" {
4946    pub fn strnlen(__string: *const ::std::os::raw::c_char, __maxlen: size_t) -> size_t;
4947}
4948extern "C" {
4949    pub fn strerror(__errnum: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
4950}
4951extern "C" {
4952    #[link_name = "\u{1}__xpg_strerror_r"]
4953    pub fn strerror_r(
4954        __errnum: ::std::os::raw::c_int,
4955        __buf: *mut ::std::os::raw::c_char,
4956        __buflen: size_t,
4957    ) -> ::std::os::raw::c_int;
4958}
4959extern "C" {
4960    pub fn strerror_l(
4961        __errnum: ::std::os::raw::c_int,
4962        __l: locale_t,
4963    ) -> *mut ::std::os::raw::c_char;
4964}
4965extern "C" {
4966    pub fn bcmp(
4967        __s1: *const ::std::os::raw::c_void,
4968        __s2: *const ::std::os::raw::c_void,
4969        __n: ::std::os::raw::c_ulong,
4970    ) -> ::std::os::raw::c_int;
4971}
4972extern "C" {
4973    pub fn bcopy(
4974        __src: *const ::std::os::raw::c_void,
4975        __dest: *mut ::std::os::raw::c_void,
4976        __n: size_t,
4977    );
4978}
4979extern "C" {
4980    pub fn bzero(__s: *mut ::std::os::raw::c_void, __n: ::std::os::raw::c_ulong);
4981}
4982extern "C" {
4983    pub fn index(
4984        __s: *const ::std::os::raw::c_char,
4985        __c: ::std::os::raw::c_int,
4986    ) -> *mut ::std::os::raw::c_char;
4987}
4988extern "C" {
4989    pub fn rindex(
4990        __s: *const ::std::os::raw::c_char,
4991        __c: ::std::os::raw::c_int,
4992    ) -> *mut ::std::os::raw::c_char;
4993}
4994extern "C" {
4995    pub fn ffs(__i: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
4996}
4997extern "C" {
4998    pub fn ffsl(__l: ::std::os::raw::c_long) -> ::std::os::raw::c_int;
4999}
5000extern "C" {
5001    pub fn ffsll(__ll: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int;
5002}
5003extern "C" {
5004    pub fn strcasecmp(
5005        __s1: *const ::std::os::raw::c_char,
5006        __s2: *const ::std::os::raw::c_char,
5007    ) -> ::std::os::raw::c_int;
5008}
5009extern "C" {
5010    pub fn strncasecmp(
5011        __s1: *const ::std::os::raw::c_char,
5012        __s2: *const ::std::os::raw::c_char,
5013        __n: ::std::os::raw::c_ulong,
5014    ) -> ::std::os::raw::c_int;
5015}
5016extern "C" {
5017    pub fn strcasecmp_l(
5018        __s1: *const ::std::os::raw::c_char,
5019        __s2: *const ::std::os::raw::c_char,
5020        __loc: locale_t,
5021    ) -> ::std::os::raw::c_int;
5022}
5023extern "C" {
5024    pub fn strncasecmp_l(
5025        __s1: *const ::std::os::raw::c_char,
5026        __s2: *const ::std::os::raw::c_char,
5027        __n: size_t,
5028        __loc: locale_t,
5029    ) -> ::std::os::raw::c_int;
5030}
5031extern "C" {
5032    pub fn explicit_bzero(__s: *mut ::std::os::raw::c_void, __n: size_t);
5033}
5034extern "C" {
5035    pub fn strsep(
5036        __stringp: *mut *mut ::std::os::raw::c_char,
5037        __delim: *const ::std::os::raw::c_char,
5038    ) -> *mut ::std::os::raw::c_char;
5039}
5040extern "C" {
5041    pub fn strsignal(__sig: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
5042}
5043extern "C" {
5044    pub fn __stpcpy(
5045        __dest: *mut ::std::os::raw::c_char,
5046        __src: *const ::std::os::raw::c_char,
5047    ) -> *mut ::std::os::raw::c_char;
5048}
5049extern "C" {
5050    pub fn stpcpy(
5051        __dest: *mut ::std::os::raw::c_char,
5052        __src: *const ::std::os::raw::c_char,
5053    ) -> *mut ::std::os::raw::c_char;
5054}
5055extern "C" {
5056    pub fn __stpncpy(
5057        __dest: *mut ::std::os::raw::c_char,
5058        __src: *const ::std::os::raw::c_char,
5059        __n: size_t,
5060    ) -> *mut ::std::os::raw::c_char;
5061}
5062extern "C" {
5063    pub fn stpncpy(
5064        __dest: *mut ::std::os::raw::c_char,
5065        __src: *const ::std::os::raw::c_char,
5066        __n: ::std::os::raw::c_ulong,
5067    ) -> *mut ::std::os::raw::c_char;
5068}
5069extern "C" {
5070    pub fn __assert_fail(
5071        __assertion: *const ::std::os::raw::c_char,
5072        __file: *const ::std::os::raw::c_char,
5073        __line: ::std::os::raw::c_uint,
5074        __function: *const ::std::os::raw::c_char,
5075    );
5076}
5077extern "C" {
5078    pub fn __assert_perror_fail(
5079        __errnum: ::std::os::raw::c_int,
5080        __file: *const ::std::os::raw::c_char,
5081        __line: ::std::os::raw::c_uint,
5082        __function: *const ::std::os::raw::c_char,
5083    );
5084}
5085extern "C" {
5086    pub fn __assert(
5087        __assertion: *const ::std::os::raw::c_char,
5088        __file: *const ::std::os::raw::c_char,
5089        __line: ::std::os::raw::c_int,
5090    );
5091}
5092pub type int_least8_t = __int_least8_t;
5093pub type int_least16_t = __int_least16_t;
5094pub type int_least32_t = __int_least32_t;
5095pub type int_least64_t = __int_least64_t;
5096pub type uint_least8_t = __uint_least8_t;
5097pub type uint_least16_t = __uint_least16_t;
5098pub type uint_least32_t = __uint_least32_t;
5099pub type uint_least64_t = __uint_least64_t;
5100pub type int_fast8_t = ::std::os::raw::c_schar;
5101pub type int_fast16_t = ::std::os::raw::c_long;
5102pub type int_fast32_t = ::std::os::raw::c_long;
5103pub type int_fast64_t = ::std::os::raw::c_long;
5104pub type uint_fast8_t = ::std::os::raw::c_uchar;
5105pub type uint_fast16_t = ::std::os::raw::c_ulong;
5106pub type uint_fast32_t = ::std::os::raw::c_ulong;
5107pub type uint_fast64_t = ::std::os::raw::c_ulong;
5108pub type intmax_t = __intmax_t;
5109pub type uintmax_t = __uintmax_t;
5110#[repr(C)]
5111#[repr(align(16))]
5112#[derive(Debug, Copy, Clone)]
5113pub struct max_align_t {
5114    pub __clang_max_align_nonce1: ::std::os::raw::c_longlong,
5115    pub __bindgen_padding_0: u64,
5116    pub __clang_max_align_nonce2: u128,
5117}
5118#[test]
5119fn bindgen_test_layout_max_align_t() {
5120    assert_eq!(
5121        ::std::mem::size_of::<max_align_t>(),
5122        32usize,
5123        concat!("Size of: ", stringify!(max_align_t))
5124    );
5125    assert_eq!(
5126        ::std::mem::align_of::<max_align_t>(),
5127        16usize,
5128        concat!("Alignment of ", stringify!(max_align_t))
5129    );
5130    assert_eq!(
5131        unsafe {
5132            &(*(::std::ptr::null::<max_align_t>())).__clang_max_align_nonce1 as *const _ as usize
5133        },
5134        0usize,
5135        concat!(
5136            "Offset of field: ",
5137            stringify!(max_align_t),
5138            "::",
5139            stringify!(__clang_max_align_nonce1)
5140        )
5141    );
5142    assert_eq!(
5143        unsafe {
5144            &(*(::std::ptr::null::<max_align_t>())).__clang_max_align_nonce2 as *const _ as usize
5145        },
5146        16usize,
5147        concat!(
5148            "Offset of field: ",
5149            stringify!(max_align_t),
5150            "::",
5151            stringify!(__clang_max_align_nonce2)
5152        )
5153    );
5154}
5155pub type mp_limb_t = ::std::os::raw::c_ulong;
5156pub type mp_limb_signed_t = ::std::os::raw::c_long;
5157pub type mp_bitcnt_t = ::std::os::raw::c_ulong;
5158#[repr(C)]
5159#[derive(Debug, Copy, Clone)]
5160pub struct __mpz_struct {
5161    pub _mp_alloc: ::std::os::raw::c_int,
5162    pub _mp_size: ::std::os::raw::c_int,
5163    pub _mp_d: *mut mp_limb_t,
5164}
5165#[test]
5166fn bindgen_test_layout___mpz_struct() {
5167    assert_eq!(
5168        ::std::mem::size_of::<__mpz_struct>(),
5169        16usize,
5170        concat!("Size of: ", stringify!(__mpz_struct))
5171    );
5172    assert_eq!(
5173        ::std::mem::align_of::<__mpz_struct>(),
5174        8usize,
5175        concat!("Alignment of ", stringify!(__mpz_struct))
5176    );
5177    assert_eq!(
5178        unsafe { &(*(::std::ptr::null::<__mpz_struct>()))._mp_alloc as *const _ as usize },
5179        0usize,
5180        concat!(
5181            "Offset of field: ",
5182            stringify!(__mpz_struct),
5183            "::",
5184            stringify!(_mp_alloc)
5185        )
5186    );
5187    assert_eq!(
5188        unsafe { &(*(::std::ptr::null::<__mpz_struct>()))._mp_size as *const _ as usize },
5189        4usize,
5190        concat!(
5191            "Offset of field: ",
5192            stringify!(__mpz_struct),
5193            "::",
5194            stringify!(_mp_size)
5195        )
5196    );
5197    assert_eq!(
5198        unsafe { &(*(::std::ptr::null::<__mpz_struct>()))._mp_d as *const _ as usize },
5199        8usize,
5200        concat!(
5201            "Offset of field: ",
5202            stringify!(__mpz_struct),
5203            "::",
5204            stringify!(_mp_d)
5205        )
5206    );
5207}
5208pub type MP_INT = __mpz_struct;
5209pub type mpz_t = [__mpz_struct; 1usize];
5210pub type mp_ptr = *mut mp_limb_t;
5211pub type mp_srcptr = *const mp_limb_t;
5212pub type mp_size_t = ::std::os::raw::c_long;
5213pub type mp_exp_t = ::std::os::raw::c_long;
5214#[repr(C)]
5215#[derive(Debug, Copy, Clone)]
5216pub struct __mpq_struct {
5217    pub _mp_num: __mpz_struct,
5218    pub _mp_den: __mpz_struct,
5219}
5220#[test]
5221fn bindgen_test_layout___mpq_struct() {
5222    assert_eq!(
5223        ::std::mem::size_of::<__mpq_struct>(),
5224        32usize,
5225        concat!("Size of: ", stringify!(__mpq_struct))
5226    );
5227    assert_eq!(
5228        ::std::mem::align_of::<__mpq_struct>(),
5229        8usize,
5230        concat!("Alignment of ", stringify!(__mpq_struct))
5231    );
5232    assert_eq!(
5233        unsafe { &(*(::std::ptr::null::<__mpq_struct>()))._mp_num as *const _ as usize },
5234        0usize,
5235        concat!(
5236            "Offset of field: ",
5237            stringify!(__mpq_struct),
5238            "::",
5239            stringify!(_mp_num)
5240        )
5241    );
5242    assert_eq!(
5243        unsafe { &(*(::std::ptr::null::<__mpq_struct>()))._mp_den as *const _ as usize },
5244        16usize,
5245        concat!(
5246            "Offset of field: ",
5247            stringify!(__mpq_struct),
5248            "::",
5249            stringify!(_mp_den)
5250        )
5251    );
5252}
5253pub type MP_RAT = __mpq_struct;
5254pub type mpq_t = [__mpq_struct; 1usize];
5255#[repr(C)]
5256#[derive(Debug, Copy, Clone)]
5257pub struct __mpf_struct {
5258    pub _mp_prec: ::std::os::raw::c_int,
5259    pub _mp_size: ::std::os::raw::c_int,
5260    pub _mp_exp: mp_exp_t,
5261    pub _mp_d: *mut mp_limb_t,
5262}
5263#[test]
5264fn bindgen_test_layout___mpf_struct() {
5265    assert_eq!(
5266        ::std::mem::size_of::<__mpf_struct>(),
5267        24usize,
5268        concat!("Size of: ", stringify!(__mpf_struct))
5269    );
5270    assert_eq!(
5271        ::std::mem::align_of::<__mpf_struct>(),
5272        8usize,
5273        concat!("Alignment of ", stringify!(__mpf_struct))
5274    );
5275    assert_eq!(
5276        unsafe { &(*(::std::ptr::null::<__mpf_struct>()))._mp_prec as *const _ as usize },
5277        0usize,
5278        concat!(
5279            "Offset of field: ",
5280            stringify!(__mpf_struct),
5281            "::",
5282            stringify!(_mp_prec)
5283        )
5284    );
5285    assert_eq!(
5286        unsafe { &(*(::std::ptr::null::<__mpf_struct>()))._mp_size as *const _ as usize },
5287        4usize,
5288        concat!(
5289            "Offset of field: ",
5290            stringify!(__mpf_struct),
5291            "::",
5292            stringify!(_mp_size)
5293        )
5294    );
5295    assert_eq!(
5296        unsafe { &(*(::std::ptr::null::<__mpf_struct>()))._mp_exp as *const _ as usize },
5297        8usize,
5298        concat!(
5299            "Offset of field: ",
5300            stringify!(__mpf_struct),
5301            "::",
5302            stringify!(_mp_exp)
5303        )
5304    );
5305    assert_eq!(
5306        unsafe { &(*(::std::ptr::null::<__mpf_struct>()))._mp_d as *const _ as usize },
5307        16usize,
5308        concat!(
5309            "Offset of field: ",
5310            stringify!(__mpf_struct),
5311            "::",
5312            stringify!(_mp_d)
5313        )
5314    );
5315}
5316pub type mpf_t = [__mpf_struct; 1usize];
5317pub const gmp_randalg_t_GMP_RAND_ALG_DEFAULT: gmp_randalg_t = 0;
5318pub const gmp_randalg_t_GMP_RAND_ALG_LC: gmp_randalg_t = 0;
5319pub type gmp_randalg_t = ::std::os::raw::c_uint;
5320#[repr(C)]
5321#[derive(Copy, Clone)]
5322pub struct __gmp_randstate_struct {
5323    pub _mp_seed: mpz_t,
5324    pub _mp_alg: gmp_randalg_t,
5325    pub _mp_algdata: __gmp_randstate_struct__bindgen_ty_1,
5326}
5327#[repr(C)]
5328#[derive(Copy, Clone)]
5329pub union __gmp_randstate_struct__bindgen_ty_1 {
5330    pub _mp_lc: *mut ::std::os::raw::c_void,
5331}
5332#[test]
5333fn bindgen_test_layout___gmp_randstate_struct__bindgen_ty_1() {
5334    assert_eq!(
5335        ::std::mem::size_of::<__gmp_randstate_struct__bindgen_ty_1>(),
5336        8usize,
5337        concat!(
5338            "Size of: ",
5339            stringify!(__gmp_randstate_struct__bindgen_ty_1)
5340        )
5341    );
5342    assert_eq!(
5343        ::std::mem::align_of::<__gmp_randstate_struct__bindgen_ty_1>(),
5344        8usize,
5345        concat!(
5346            "Alignment of ",
5347            stringify!(__gmp_randstate_struct__bindgen_ty_1)
5348        )
5349    );
5350    assert_eq!(
5351        unsafe {
5352            &(*(::std::ptr::null::<__gmp_randstate_struct__bindgen_ty_1>()))._mp_lc as *const _
5353                as usize
5354        },
5355        0usize,
5356        concat!(
5357            "Offset of field: ",
5358            stringify!(__gmp_randstate_struct__bindgen_ty_1),
5359            "::",
5360            stringify!(_mp_lc)
5361        )
5362    );
5363}
5364#[test]
5365fn bindgen_test_layout___gmp_randstate_struct() {
5366    assert_eq!(
5367        ::std::mem::size_of::<__gmp_randstate_struct>(),
5368        32usize,
5369        concat!("Size of: ", stringify!(__gmp_randstate_struct))
5370    );
5371    assert_eq!(
5372        ::std::mem::align_of::<__gmp_randstate_struct>(),
5373        8usize,
5374        concat!("Alignment of ", stringify!(__gmp_randstate_struct))
5375    );
5376    assert_eq!(
5377        unsafe { &(*(::std::ptr::null::<__gmp_randstate_struct>()))._mp_seed as *const _ as usize },
5378        0usize,
5379        concat!(
5380            "Offset of field: ",
5381            stringify!(__gmp_randstate_struct),
5382            "::",
5383            stringify!(_mp_seed)
5384        )
5385    );
5386    assert_eq!(
5387        unsafe { &(*(::std::ptr::null::<__gmp_randstate_struct>()))._mp_alg as *const _ as usize },
5388        16usize,
5389        concat!(
5390            "Offset of field: ",
5391            stringify!(__gmp_randstate_struct),
5392            "::",
5393            stringify!(_mp_alg)
5394        )
5395    );
5396    assert_eq!(
5397        unsafe {
5398            &(*(::std::ptr::null::<__gmp_randstate_struct>()))._mp_algdata as *const _ as usize
5399        },
5400        24usize,
5401        concat!(
5402            "Offset of field: ",
5403            stringify!(__gmp_randstate_struct),
5404            "::",
5405            stringify!(_mp_algdata)
5406        )
5407    );
5408}
5409pub type gmp_randstate_t = [__gmp_randstate_struct; 1usize];
5410pub type mpz_srcptr = *const __mpz_struct;
5411pub type mpz_ptr = *mut __mpz_struct;
5412pub type mpf_srcptr = *const __mpf_struct;
5413pub type mpf_ptr = *mut __mpf_struct;
5414pub type mpq_srcptr = *const __mpq_struct;
5415pub type mpq_ptr = *mut __mpq_struct;
5416extern "C" {
5417    pub fn __gmp_set_memory_functions(
5418        arg1: ::std::option::Option<
5419            unsafe extern "C" fn(arg1: size_t) -> *mut ::std::os::raw::c_void,
5420        >,
5421        arg2: ::std::option::Option<
5422            unsafe extern "C" fn(
5423                arg1: *mut ::std::os::raw::c_void,
5424                arg2: size_t,
5425                arg3: size_t,
5426            ) -> *mut ::std::os::raw::c_void,
5427        >,
5428        arg3: ::std::option::Option<
5429            unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: size_t),
5430        >,
5431    );
5432}
5433extern "C" {
5434    pub fn __gmp_get_memory_functions(
5435        arg1: *mut ::std::option::Option<
5436            unsafe extern "C" fn(arg1: size_t) -> *mut ::std::os::raw::c_void,
5437        >,
5438        arg2: *mut ::std::option::Option<
5439            unsafe extern "C" fn(
5440                arg1: *mut ::std::os::raw::c_void,
5441                arg2: size_t,
5442                arg3: size_t,
5443            ) -> *mut ::std::os::raw::c_void,
5444        >,
5445        arg3: *mut ::std::option::Option<
5446            unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: size_t),
5447        >,
5448    );
5449}
5450extern "C" {
5451    pub static __gmp_bits_per_limb: ::std::os::raw::c_int;
5452}
5453extern "C" {
5454    pub static mut __gmp_errno: ::std::os::raw::c_int;
5455}
5456extern "C" {
5457    pub static __gmp_version: *const ::std::os::raw::c_char;
5458}
5459extern "C" {
5460    pub fn __gmp_randinit(arg1: *mut __gmp_randstate_struct, arg2: gmp_randalg_t, ...);
5461}
5462extern "C" {
5463    pub fn __gmp_randinit_default(arg1: *mut __gmp_randstate_struct);
5464}
5465extern "C" {
5466    pub fn __gmp_randinit_lc_2exp(
5467        arg1: *mut __gmp_randstate_struct,
5468        arg2: mpz_srcptr,
5469        arg3: ::std::os::raw::c_ulong,
5470        arg4: mp_bitcnt_t,
5471    );
5472}
5473extern "C" {
5474    pub fn __gmp_randinit_lc_2exp_size(
5475        arg1: *mut __gmp_randstate_struct,
5476        arg2: mp_bitcnt_t,
5477    ) -> ::std::os::raw::c_int;
5478}
5479extern "C" {
5480    pub fn __gmp_randinit_mt(arg1: *mut __gmp_randstate_struct);
5481}
5482extern "C" {
5483    pub fn __gmp_randinit_set(
5484        arg1: *mut __gmp_randstate_struct,
5485        arg2: *const __gmp_randstate_struct,
5486    );
5487}
5488extern "C" {
5489    pub fn __gmp_randseed(arg1: *mut __gmp_randstate_struct, arg2: mpz_srcptr);
5490}
5491extern "C" {
5492    pub fn __gmp_randseed_ui(arg1: *mut __gmp_randstate_struct, arg2: ::std::os::raw::c_ulong);
5493}
5494extern "C" {
5495    pub fn __gmp_randclear(arg1: *mut __gmp_randstate_struct);
5496}
5497extern "C" {
5498    pub fn __gmp_urandomb_ui(
5499        arg1: *mut __gmp_randstate_struct,
5500        arg2: ::std::os::raw::c_ulong,
5501    ) -> ::std::os::raw::c_ulong;
5502}
5503extern "C" {
5504    pub fn __gmp_urandomm_ui(
5505        arg1: *mut __gmp_randstate_struct,
5506        arg2: ::std::os::raw::c_ulong,
5507    ) -> ::std::os::raw::c_ulong;
5508}
5509extern "C" {
5510    pub fn __gmp_asprintf(
5511        arg1: *mut *mut ::std::os::raw::c_char,
5512        arg2: *const ::std::os::raw::c_char,
5513        ...
5514    ) -> ::std::os::raw::c_int;
5515}
5516extern "C" {
5517    pub fn __gmp_fprintf(
5518        arg1: *mut FILE,
5519        arg2: *const ::std::os::raw::c_char,
5520        ...
5521    ) -> ::std::os::raw::c_int;
5522}
5523extern "C" {
5524    pub fn __gmp_printf(arg1: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
5525}
5526extern "C" {
5527    pub fn __gmp_snprintf(
5528        arg1: *mut ::std::os::raw::c_char,
5529        arg2: size_t,
5530        arg3: *const ::std::os::raw::c_char,
5531        ...
5532    ) -> ::std::os::raw::c_int;
5533}
5534extern "C" {
5535    pub fn __gmp_sprintf(
5536        arg1: *mut ::std::os::raw::c_char,
5537        arg2: *const ::std::os::raw::c_char,
5538        ...
5539    ) -> ::std::os::raw::c_int;
5540}
5541extern "C" {
5542    pub fn __gmp_vasprintf(
5543        arg1: *mut *mut ::std::os::raw::c_char,
5544        arg2: *const ::std::os::raw::c_char,
5545        arg3: *mut __va_list_tag,
5546    ) -> ::std::os::raw::c_int;
5547}
5548extern "C" {
5549    pub fn __gmp_vfprintf(
5550        arg1: *mut FILE,
5551        arg2: *const ::std::os::raw::c_char,
5552        arg3: *mut __va_list_tag,
5553    ) -> ::std::os::raw::c_int;
5554}
5555extern "C" {
5556    pub fn __gmp_vprintf(
5557        arg1: *const ::std::os::raw::c_char,
5558        arg2: *mut __va_list_tag,
5559    ) -> ::std::os::raw::c_int;
5560}
5561extern "C" {
5562    pub fn __gmp_vsnprintf(
5563        arg1: *mut ::std::os::raw::c_char,
5564        arg2: size_t,
5565        arg3: *const ::std::os::raw::c_char,
5566        arg4: *mut __va_list_tag,
5567    ) -> ::std::os::raw::c_int;
5568}
5569extern "C" {
5570    pub fn __gmp_vsprintf(
5571        arg1: *mut ::std::os::raw::c_char,
5572        arg2: *const ::std::os::raw::c_char,
5573        arg3: *mut __va_list_tag,
5574    ) -> ::std::os::raw::c_int;
5575}
5576extern "C" {
5577    pub fn __gmp_fscanf(
5578        arg1: *mut FILE,
5579        arg2: *const ::std::os::raw::c_char,
5580        ...
5581    ) -> ::std::os::raw::c_int;
5582}
5583extern "C" {
5584    pub fn __gmp_scanf(arg1: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
5585}
5586extern "C" {
5587    pub fn __gmp_sscanf(
5588        arg1: *const ::std::os::raw::c_char,
5589        arg2: *const ::std::os::raw::c_char,
5590        ...
5591    ) -> ::std::os::raw::c_int;
5592}
5593extern "C" {
5594    pub fn __gmp_vfscanf(
5595        arg1: *mut FILE,
5596        arg2: *const ::std::os::raw::c_char,
5597        arg3: *mut __va_list_tag,
5598    ) -> ::std::os::raw::c_int;
5599}
5600extern "C" {
5601    pub fn __gmp_vscanf(
5602        arg1: *const ::std::os::raw::c_char,
5603        arg2: *mut __va_list_tag,
5604    ) -> ::std::os::raw::c_int;
5605}
5606extern "C" {
5607    pub fn __gmp_vsscanf(
5608        arg1: *const ::std::os::raw::c_char,
5609        arg2: *const ::std::os::raw::c_char,
5610        arg3: *mut __va_list_tag,
5611    ) -> ::std::os::raw::c_int;
5612}
5613extern "C" {
5614    pub fn __gmpz_realloc(arg1: mpz_ptr, arg2: mp_size_t) -> *mut ::std::os::raw::c_void;
5615}
5616extern "C" {
5617    pub fn __gmpz_abs(arg1: mpz_ptr, arg2: mpz_srcptr);
5618}
5619extern "C" {
5620    pub fn __gmpz_add(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mpz_srcptr);
5621}
5622extern "C" {
5623    pub fn __gmpz_add_ui(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: ::std::os::raw::c_ulong);
5624}
5625extern "C" {
5626    pub fn __gmpz_addmul(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mpz_srcptr);
5627}
5628extern "C" {
5629    pub fn __gmpz_addmul_ui(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: ::std::os::raw::c_ulong);
5630}
5631extern "C" {
5632    pub fn __gmpz_and(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mpz_srcptr);
5633}
5634extern "C" {
5635    pub fn __gmpz_array_init(arg1: mpz_ptr, arg2: mp_size_t, arg3: mp_size_t);
5636}
5637extern "C" {
5638    pub fn __gmpz_bin_ui(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: ::std::os::raw::c_ulong);
5639}
5640extern "C" {
5641    pub fn __gmpz_bin_uiui(
5642        arg1: mpz_ptr,
5643        arg2: ::std::os::raw::c_ulong,
5644        arg3: ::std::os::raw::c_ulong,
5645    );
5646}
5647extern "C" {
5648    pub fn __gmpz_cdiv_q(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mpz_srcptr);
5649}
5650extern "C" {
5651    pub fn __gmpz_cdiv_q_2exp(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mp_bitcnt_t);
5652}
5653extern "C" {
5654    pub fn __gmpz_cdiv_q_ui(
5655        arg1: mpz_ptr,
5656        arg2: mpz_srcptr,
5657        arg3: ::std::os::raw::c_ulong,
5658    ) -> ::std::os::raw::c_ulong;
5659}
5660extern "C" {
5661    pub fn __gmpz_cdiv_qr(arg1: mpz_ptr, arg2: mpz_ptr, arg3: mpz_srcptr, arg4: mpz_srcptr);
5662}
5663extern "C" {
5664    pub fn __gmpz_cdiv_qr_ui(
5665        arg1: mpz_ptr,
5666        arg2: mpz_ptr,
5667        arg3: mpz_srcptr,
5668        arg4: ::std::os::raw::c_ulong,
5669    ) -> ::std::os::raw::c_ulong;
5670}
5671extern "C" {
5672    pub fn __gmpz_cdiv_r(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mpz_srcptr);
5673}
5674extern "C" {
5675    pub fn __gmpz_cdiv_r_2exp(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mp_bitcnt_t);
5676}
5677extern "C" {
5678    pub fn __gmpz_cdiv_r_ui(
5679        arg1: mpz_ptr,
5680        arg2: mpz_srcptr,
5681        arg3: ::std::os::raw::c_ulong,
5682    ) -> ::std::os::raw::c_ulong;
5683}
5684extern "C" {
5685    pub fn __gmpz_cdiv_ui(
5686        arg1: mpz_srcptr,
5687        arg2: ::std::os::raw::c_ulong,
5688    ) -> ::std::os::raw::c_ulong;
5689}
5690extern "C" {
5691    pub fn __gmpz_clear(arg1: mpz_ptr);
5692}
5693extern "C" {
5694    pub fn __gmpz_clears(arg1: mpz_ptr, ...);
5695}
5696extern "C" {
5697    pub fn __gmpz_clrbit(arg1: mpz_ptr, arg2: mp_bitcnt_t);
5698}
5699extern "C" {
5700    pub fn __gmpz_cmp(arg1: mpz_srcptr, arg2: mpz_srcptr) -> ::std::os::raw::c_int;
5701}
5702extern "C" {
5703    pub fn __gmpz_cmp_d(arg1: mpz_srcptr, arg2: f64) -> ::std::os::raw::c_int;
5704}
5705extern "C" {
5706    pub fn __gmpz_cmp_si(arg1: mpz_srcptr, arg2: ::std::os::raw::c_long) -> ::std::os::raw::c_int;
5707}
5708extern "C" {
5709    pub fn __gmpz_cmp_ui(arg1: mpz_srcptr, arg2: ::std::os::raw::c_ulong) -> ::std::os::raw::c_int;
5710}
5711extern "C" {
5712    pub fn __gmpz_cmpabs(arg1: mpz_srcptr, arg2: mpz_srcptr) -> ::std::os::raw::c_int;
5713}
5714extern "C" {
5715    pub fn __gmpz_cmpabs_d(arg1: mpz_srcptr, arg2: f64) -> ::std::os::raw::c_int;
5716}
5717extern "C" {
5718    pub fn __gmpz_cmpabs_ui(
5719        arg1: mpz_srcptr,
5720        arg2: ::std::os::raw::c_ulong,
5721    ) -> ::std::os::raw::c_int;
5722}
5723extern "C" {
5724    pub fn __gmpz_com(arg1: mpz_ptr, arg2: mpz_srcptr);
5725}
5726extern "C" {
5727    pub fn __gmpz_combit(arg1: mpz_ptr, arg2: mp_bitcnt_t);
5728}
5729extern "C" {
5730    pub fn __gmpz_congruent_p(
5731        arg1: mpz_srcptr,
5732        arg2: mpz_srcptr,
5733        arg3: mpz_srcptr,
5734    ) -> ::std::os::raw::c_int;
5735}
5736extern "C" {
5737    pub fn __gmpz_congruent_2exp_p(
5738        arg1: mpz_srcptr,
5739        arg2: mpz_srcptr,
5740        arg3: mp_bitcnt_t,
5741    ) -> ::std::os::raw::c_int;
5742}
5743extern "C" {
5744    pub fn __gmpz_congruent_ui_p(
5745        arg1: mpz_srcptr,
5746        arg2: ::std::os::raw::c_ulong,
5747        arg3: ::std::os::raw::c_ulong,
5748    ) -> ::std::os::raw::c_int;
5749}
5750extern "C" {
5751    pub fn __gmpz_divexact(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mpz_srcptr);
5752}
5753extern "C" {
5754    pub fn __gmpz_divexact_ui(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: ::std::os::raw::c_ulong);
5755}
5756extern "C" {
5757    pub fn __gmpz_divisible_p(arg1: mpz_srcptr, arg2: mpz_srcptr) -> ::std::os::raw::c_int;
5758}
5759extern "C" {
5760    pub fn __gmpz_divisible_ui_p(
5761        arg1: mpz_srcptr,
5762        arg2: ::std::os::raw::c_ulong,
5763    ) -> ::std::os::raw::c_int;
5764}
5765extern "C" {
5766    pub fn __gmpz_divisible_2exp_p(arg1: mpz_srcptr, arg2: mp_bitcnt_t) -> ::std::os::raw::c_int;
5767}
5768extern "C" {
5769    pub fn __gmpz_dump(arg1: mpz_srcptr);
5770}
5771extern "C" {
5772    pub fn __gmpz_export(
5773        arg1: *mut ::std::os::raw::c_void,
5774        arg2: *mut size_t,
5775        arg3: ::std::os::raw::c_int,
5776        arg4: size_t,
5777        arg5: ::std::os::raw::c_int,
5778        arg6: size_t,
5779        arg7: mpz_srcptr,
5780    ) -> *mut ::std::os::raw::c_void;
5781}
5782extern "C" {
5783    pub fn __gmpz_fac_ui(arg1: mpz_ptr, arg2: ::std::os::raw::c_ulong);
5784}
5785extern "C" {
5786    pub fn __gmpz_2fac_ui(arg1: mpz_ptr, arg2: ::std::os::raw::c_ulong);
5787}
5788extern "C" {
5789    pub fn __gmpz_mfac_uiui(
5790        arg1: mpz_ptr,
5791        arg2: ::std::os::raw::c_ulong,
5792        arg3: ::std::os::raw::c_ulong,
5793    );
5794}
5795extern "C" {
5796    pub fn __gmpz_primorial_ui(arg1: mpz_ptr, arg2: ::std::os::raw::c_ulong);
5797}
5798extern "C" {
5799    pub fn __gmpz_fdiv_q(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mpz_srcptr);
5800}
5801extern "C" {
5802    pub fn __gmpz_fdiv_q_2exp(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mp_bitcnt_t);
5803}
5804extern "C" {
5805    pub fn __gmpz_fdiv_q_ui(
5806        arg1: mpz_ptr,
5807        arg2: mpz_srcptr,
5808        arg3: ::std::os::raw::c_ulong,
5809    ) -> ::std::os::raw::c_ulong;
5810}
5811extern "C" {
5812    pub fn __gmpz_fdiv_qr(arg1: mpz_ptr, arg2: mpz_ptr, arg3: mpz_srcptr, arg4: mpz_srcptr);
5813}
5814extern "C" {
5815    pub fn __gmpz_fdiv_qr_ui(
5816        arg1: mpz_ptr,
5817        arg2: mpz_ptr,
5818        arg3: mpz_srcptr,
5819        arg4: ::std::os::raw::c_ulong,
5820    ) -> ::std::os::raw::c_ulong;
5821}
5822extern "C" {
5823    pub fn __gmpz_fdiv_r(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mpz_srcptr);
5824}
5825extern "C" {
5826    pub fn __gmpz_fdiv_r_2exp(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mp_bitcnt_t);
5827}
5828extern "C" {
5829    pub fn __gmpz_fdiv_r_ui(
5830        arg1: mpz_ptr,
5831        arg2: mpz_srcptr,
5832        arg3: ::std::os::raw::c_ulong,
5833    ) -> ::std::os::raw::c_ulong;
5834}
5835extern "C" {
5836    pub fn __gmpz_fdiv_ui(
5837        arg1: mpz_srcptr,
5838        arg2: ::std::os::raw::c_ulong,
5839    ) -> ::std::os::raw::c_ulong;
5840}
5841extern "C" {
5842    pub fn __gmpz_fib_ui(arg1: mpz_ptr, arg2: ::std::os::raw::c_ulong);
5843}
5844extern "C" {
5845    pub fn __gmpz_fib2_ui(arg1: mpz_ptr, arg2: mpz_ptr, arg3: ::std::os::raw::c_ulong);
5846}
5847extern "C" {
5848    pub fn __gmpz_fits_sint_p(arg1: mpz_srcptr) -> ::std::os::raw::c_int;
5849}
5850extern "C" {
5851    pub fn __gmpz_fits_slong_p(arg1: mpz_srcptr) -> ::std::os::raw::c_int;
5852}
5853extern "C" {
5854    pub fn __gmpz_fits_sshort_p(arg1: mpz_srcptr) -> ::std::os::raw::c_int;
5855}
5856extern "C" {
5857    pub fn __gmpz_fits_uint_p(arg1: mpz_srcptr) -> ::std::os::raw::c_int;
5858}
5859extern "C" {
5860    pub fn __gmpz_fits_ulong_p(arg1: mpz_srcptr) -> ::std::os::raw::c_int;
5861}
5862extern "C" {
5863    pub fn __gmpz_fits_ushort_p(arg1: mpz_srcptr) -> ::std::os::raw::c_int;
5864}
5865extern "C" {
5866    pub fn __gmpz_gcd(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mpz_srcptr);
5867}
5868extern "C" {
5869    pub fn __gmpz_gcd_ui(
5870        arg1: mpz_ptr,
5871        arg2: mpz_srcptr,
5872        arg3: ::std::os::raw::c_ulong,
5873    ) -> ::std::os::raw::c_ulong;
5874}
5875extern "C" {
5876    pub fn __gmpz_gcdext(
5877        arg1: mpz_ptr,
5878        arg2: mpz_ptr,
5879        arg3: mpz_ptr,
5880        arg4: mpz_srcptr,
5881        arg5: mpz_srcptr,
5882    );
5883}
5884extern "C" {
5885    pub fn __gmpz_get_d(arg1: mpz_srcptr) -> f64;
5886}
5887extern "C" {
5888    pub fn __gmpz_get_d_2exp(arg1: *mut ::std::os::raw::c_long, arg2: mpz_srcptr) -> f64;
5889}
5890extern "C" {
5891    pub fn __gmpz_get_si(arg1: mpz_srcptr) -> ::std::os::raw::c_long;
5892}
5893extern "C" {
5894    pub fn __gmpz_get_str(
5895        arg1: *mut ::std::os::raw::c_char,
5896        arg2: ::std::os::raw::c_int,
5897        arg3: mpz_srcptr,
5898    ) -> *mut ::std::os::raw::c_char;
5899}
5900extern "C" {
5901    pub fn __gmpz_get_ui(arg1: mpz_srcptr) -> ::std::os::raw::c_ulong;
5902}
5903extern "C" {
5904    pub fn __gmpz_getlimbn(arg1: mpz_srcptr, arg2: mp_size_t) -> mp_limb_t;
5905}
5906extern "C" {
5907    pub fn __gmpz_hamdist(arg1: mpz_srcptr, arg2: mpz_srcptr) -> mp_bitcnt_t;
5908}
5909extern "C" {
5910    pub fn __gmpz_import(
5911        arg1: mpz_ptr,
5912        arg2: size_t,
5913        arg3: ::std::os::raw::c_int,
5914        arg4: size_t,
5915        arg5: ::std::os::raw::c_int,
5916        arg6: size_t,
5917        arg7: *const ::std::os::raw::c_void,
5918    );
5919}
5920extern "C" {
5921    pub fn __gmpz_init(arg1: mpz_ptr);
5922}
5923extern "C" {
5924    pub fn __gmpz_init2(arg1: mpz_ptr, arg2: mp_bitcnt_t);
5925}
5926extern "C" {
5927    pub fn __gmpz_inits(arg1: mpz_ptr, ...);
5928}
5929extern "C" {
5930    pub fn __gmpz_init_set(arg1: mpz_ptr, arg2: mpz_srcptr);
5931}
5932extern "C" {
5933    pub fn __gmpz_init_set_d(arg1: mpz_ptr, arg2: f64);
5934}
5935extern "C" {
5936    pub fn __gmpz_init_set_si(arg1: mpz_ptr, arg2: ::std::os::raw::c_long);
5937}
5938extern "C" {
5939    pub fn __gmpz_init_set_str(
5940        arg1: mpz_ptr,
5941        arg2: *const ::std::os::raw::c_char,
5942        arg3: ::std::os::raw::c_int,
5943    ) -> ::std::os::raw::c_int;
5944}
5945extern "C" {
5946    pub fn __gmpz_init_set_ui(arg1: mpz_ptr, arg2: ::std::os::raw::c_ulong);
5947}
5948extern "C" {
5949    pub fn __gmpz_inp_raw(arg1: mpz_ptr, arg2: *mut FILE) -> size_t;
5950}
5951extern "C" {
5952    pub fn __gmpz_inp_str(arg1: mpz_ptr, arg2: *mut FILE, arg3: ::std::os::raw::c_int) -> size_t;
5953}
5954extern "C" {
5955    pub fn __gmpz_invert(
5956        arg1: mpz_ptr,
5957        arg2: mpz_srcptr,
5958        arg3: mpz_srcptr,
5959    ) -> ::std::os::raw::c_int;
5960}
5961extern "C" {
5962    pub fn __gmpz_ior(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mpz_srcptr);
5963}
5964extern "C" {
5965    pub fn __gmpz_jacobi(arg1: mpz_srcptr, arg2: mpz_srcptr) -> ::std::os::raw::c_int;
5966}
5967extern "C" {
5968    pub fn __gmpz_kronecker_si(
5969        arg1: mpz_srcptr,
5970        arg2: ::std::os::raw::c_long,
5971    ) -> ::std::os::raw::c_int;
5972}
5973extern "C" {
5974    pub fn __gmpz_kronecker_ui(
5975        arg1: mpz_srcptr,
5976        arg2: ::std::os::raw::c_ulong,
5977    ) -> ::std::os::raw::c_int;
5978}
5979extern "C" {
5980    pub fn __gmpz_si_kronecker(
5981        arg1: ::std::os::raw::c_long,
5982        arg2: mpz_srcptr,
5983    ) -> ::std::os::raw::c_int;
5984}
5985extern "C" {
5986    pub fn __gmpz_ui_kronecker(
5987        arg1: ::std::os::raw::c_ulong,
5988        arg2: mpz_srcptr,
5989    ) -> ::std::os::raw::c_int;
5990}
5991extern "C" {
5992    pub fn __gmpz_lcm(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mpz_srcptr);
5993}
5994extern "C" {
5995    pub fn __gmpz_lcm_ui(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: ::std::os::raw::c_ulong);
5996}
5997extern "C" {
5998    pub fn __gmpz_lucnum_ui(arg1: mpz_ptr, arg2: ::std::os::raw::c_ulong);
5999}
6000extern "C" {
6001    pub fn __gmpz_lucnum2_ui(arg1: mpz_ptr, arg2: mpz_ptr, arg3: ::std::os::raw::c_ulong);
6002}
6003extern "C" {
6004    pub fn __gmpz_millerrabin(
6005        arg1: mpz_srcptr,
6006        arg2: ::std::os::raw::c_int,
6007    ) -> ::std::os::raw::c_int;
6008}
6009extern "C" {
6010    pub fn __gmpz_mod(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mpz_srcptr);
6011}
6012extern "C" {
6013    pub fn __gmpz_mul(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mpz_srcptr);
6014}
6015extern "C" {
6016    pub fn __gmpz_mul_2exp(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mp_bitcnt_t);
6017}
6018extern "C" {
6019    pub fn __gmpz_mul_si(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: ::std::os::raw::c_long);
6020}
6021extern "C" {
6022    pub fn __gmpz_mul_ui(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: ::std::os::raw::c_ulong);
6023}
6024extern "C" {
6025    pub fn __gmpz_neg(arg1: mpz_ptr, arg2: mpz_srcptr);
6026}
6027extern "C" {
6028    pub fn __gmpz_nextprime(arg1: mpz_ptr, arg2: mpz_srcptr);
6029}
6030extern "C" {
6031    pub fn __gmpz_out_raw(arg1: *mut FILE, arg2: mpz_srcptr) -> size_t;
6032}
6033extern "C" {
6034    pub fn __gmpz_out_str(arg1: *mut FILE, arg2: ::std::os::raw::c_int, arg3: mpz_srcptr)
6035        -> size_t;
6036}
6037extern "C" {
6038    pub fn __gmpz_perfect_power_p(arg1: mpz_srcptr) -> ::std::os::raw::c_int;
6039}
6040extern "C" {
6041    pub fn __gmpz_perfect_square_p(arg1: mpz_srcptr) -> ::std::os::raw::c_int;
6042}
6043extern "C" {
6044    pub fn __gmpz_popcount(arg1: mpz_srcptr) -> mp_bitcnt_t;
6045}
6046extern "C" {
6047    pub fn __gmpz_pow_ui(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: ::std::os::raw::c_ulong);
6048}
6049extern "C" {
6050    pub fn __gmpz_powm(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mpz_srcptr, arg4: mpz_srcptr);
6051}
6052extern "C" {
6053    pub fn __gmpz_powm_sec(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mpz_srcptr, arg4: mpz_srcptr);
6054}
6055extern "C" {
6056    pub fn __gmpz_powm_ui(
6057        arg1: mpz_ptr,
6058        arg2: mpz_srcptr,
6059        arg3: ::std::os::raw::c_ulong,
6060        arg4: mpz_srcptr,
6061    );
6062}
6063extern "C" {
6064    pub fn __gmpz_probab_prime_p(
6065        arg1: mpz_srcptr,
6066        arg2: ::std::os::raw::c_int,
6067    ) -> ::std::os::raw::c_int;
6068}
6069extern "C" {
6070    pub fn __gmpz_random(arg1: mpz_ptr, arg2: mp_size_t);
6071}
6072extern "C" {
6073    pub fn __gmpz_random2(arg1: mpz_ptr, arg2: mp_size_t);
6074}
6075extern "C" {
6076    pub fn __gmpz_realloc2(arg1: mpz_ptr, arg2: mp_bitcnt_t);
6077}
6078extern "C" {
6079    pub fn __gmpz_remove(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mpz_srcptr) -> mp_bitcnt_t;
6080}
6081extern "C" {
6082    pub fn __gmpz_root(
6083        arg1: mpz_ptr,
6084        arg2: mpz_srcptr,
6085        arg3: ::std::os::raw::c_ulong,
6086    ) -> ::std::os::raw::c_int;
6087}
6088extern "C" {
6089    pub fn __gmpz_rootrem(
6090        arg1: mpz_ptr,
6091        arg2: mpz_ptr,
6092        arg3: mpz_srcptr,
6093        arg4: ::std::os::raw::c_ulong,
6094    );
6095}
6096extern "C" {
6097    pub fn __gmpz_rrandomb(arg1: mpz_ptr, arg2: *mut __gmp_randstate_struct, arg3: mp_bitcnt_t);
6098}
6099extern "C" {
6100    pub fn __gmpz_scan0(arg1: mpz_srcptr, arg2: mp_bitcnt_t) -> mp_bitcnt_t;
6101}
6102extern "C" {
6103    pub fn __gmpz_scan1(arg1: mpz_srcptr, arg2: mp_bitcnt_t) -> mp_bitcnt_t;
6104}
6105extern "C" {
6106    pub fn __gmpz_set(arg1: mpz_ptr, arg2: mpz_srcptr);
6107}
6108extern "C" {
6109    pub fn __gmpz_set_d(arg1: mpz_ptr, arg2: f64);
6110}
6111extern "C" {
6112    pub fn __gmpz_set_f(arg1: mpz_ptr, arg2: mpf_srcptr);
6113}
6114extern "C" {
6115    pub fn __gmpz_set_q(arg1: mpz_ptr, arg2: mpq_srcptr);
6116}
6117extern "C" {
6118    pub fn __gmpz_set_si(arg1: mpz_ptr, arg2: ::std::os::raw::c_long);
6119}
6120extern "C" {
6121    pub fn __gmpz_set_str(
6122        arg1: mpz_ptr,
6123        arg2: *const ::std::os::raw::c_char,
6124        arg3: ::std::os::raw::c_int,
6125    ) -> ::std::os::raw::c_int;
6126}
6127extern "C" {
6128    pub fn __gmpz_set_ui(arg1: mpz_ptr, arg2: ::std::os::raw::c_ulong);
6129}
6130extern "C" {
6131    pub fn __gmpz_setbit(arg1: mpz_ptr, arg2: mp_bitcnt_t);
6132}
6133extern "C" {
6134    pub fn __gmpz_size(arg1: mpz_srcptr) -> size_t;
6135}
6136extern "C" {
6137    pub fn __gmpz_sizeinbase(arg1: mpz_srcptr, arg2: ::std::os::raw::c_int) -> size_t;
6138}
6139extern "C" {
6140    pub fn __gmpz_sqrt(arg1: mpz_ptr, arg2: mpz_srcptr);
6141}
6142extern "C" {
6143    pub fn __gmpz_sqrtrem(arg1: mpz_ptr, arg2: mpz_ptr, arg3: mpz_srcptr);
6144}
6145extern "C" {
6146    pub fn __gmpz_sub(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mpz_srcptr);
6147}
6148extern "C" {
6149    pub fn __gmpz_sub_ui(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: ::std::os::raw::c_ulong);
6150}
6151extern "C" {
6152    pub fn __gmpz_ui_sub(arg1: mpz_ptr, arg2: ::std::os::raw::c_ulong, arg3: mpz_srcptr);
6153}
6154extern "C" {
6155    pub fn __gmpz_submul(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mpz_srcptr);
6156}
6157extern "C" {
6158    pub fn __gmpz_submul_ui(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: ::std::os::raw::c_ulong);
6159}
6160extern "C" {
6161    pub fn __gmpz_swap(arg1: mpz_ptr, arg2: mpz_ptr);
6162}
6163extern "C" {
6164    pub fn __gmpz_tdiv_ui(
6165        arg1: mpz_srcptr,
6166        arg2: ::std::os::raw::c_ulong,
6167    ) -> ::std::os::raw::c_ulong;
6168}
6169extern "C" {
6170    pub fn __gmpz_tdiv_q(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mpz_srcptr);
6171}
6172extern "C" {
6173    pub fn __gmpz_tdiv_q_2exp(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mp_bitcnt_t);
6174}
6175extern "C" {
6176    pub fn __gmpz_tdiv_q_ui(
6177        arg1: mpz_ptr,
6178        arg2: mpz_srcptr,
6179        arg3: ::std::os::raw::c_ulong,
6180    ) -> ::std::os::raw::c_ulong;
6181}
6182extern "C" {
6183    pub fn __gmpz_tdiv_qr(arg1: mpz_ptr, arg2: mpz_ptr, arg3: mpz_srcptr, arg4: mpz_srcptr);
6184}
6185extern "C" {
6186    pub fn __gmpz_tdiv_qr_ui(
6187        arg1: mpz_ptr,
6188        arg2: mpz_ptr,
6189        arg3: mpz_srcptr,
6190        arg4: ::std::os::raw::c_ulong,
6191    ) -> ::std::os::raw::c_ulong;
6192}
6193extern "C" {
6194    pub fn __gmpz_tdiv_r(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mpz_srcptr);
6195}
6196extern "C" {
6197    pub fn __gmpz_tdiv_r_2exp(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mp_bitcnt_t);
6198}
6199extern "C" {
6200    pub fn __gmpz_tdiv_r_ui(
6201        arg1: mpz_ptr,
6202        arg2: mpz_srcptr,
6203        arg3: ::std::os::raw::c_ulong,
6204    ) -> ::std::os::raw::c_ulong;
6205}
6206extern "C" {
6207    pub fn __gmpz_tstbit(arg1: mpz_srcptr, arg2: mp_bitcnt_t) -> ::std::os::raw::c_int;
6208}
6209extern "C" {
6210    pub fn __gmpz_ui_pow_ui(
6211        arg1: mpz_ptr,
6212        arg2: ::std::os::raw::c_ulong,
6213        arg3: ::std::os::raw::c_ulong,
6214    );
6215}
6216extern "C" {
6217    pub fn __gmpz_urandomb(arg1: mpz_ptr, arg2: *mut __gmp_randstate_struct, arg3: mp_bitcnt_t);
6218}
6219extern "C" {
6220    pub fn __gmpz_urandomm(arg1: mpz_ptr, arg2: *mut __gmp_randstate_struct, arg3: mpz_srcptr);
6221}
6222extern "C" {
6223    pub fn __gmpz_xor(arg1: mpz_ptr, arg2: mpz_srcptr, arg3: mpz_srcptr);
6224}
6225extern "C" {
6226    pub fn __gmpz_limbs_read(arg1: mpz_srcptr) -> mp_srcptr;
6227}
6228extern "C" {
6229    pub fn __gmpz_limbs_write(arg1: mpz_ptr, arg2: mp_size_t) -> mp_ptr;
6230}
6231extern "C" {
6232    pub fn __gmpz_limbs_modify(arg1: mpz_ptr, arg2: mp_size_t) -> mp_ptr;
6233}
6234extern "C" {
6235    pub fn __gmpz_limbs_finish(arg1: mpz_ptr, arg2: mp_size_t);
6236}
6237extern "C" {
6238    pub fn __gmpz_roinit_n(arg1: mpz_ptr, arg2: mp_srcptr, arg3: mp_size_t) -> mpz_srcptr;
6239}
6240extern "C" {
6241    pub fn __gmpq_abs(arg1: mpq_ptr, arg2: mpq_srcptr);
6242}
6243extern "C" {
6244    pub fn __gmpq_add(arg1: mpq_ptr, arg2: mpq_srcptr, arg3: mpq_srcptr);
6245}
6246extern "C" {
6247    pub fn __gmpq_canonicalize(arg1: mpq_ptr);
6248}
6249extern "C" {
6250    pub fn __gmpq_clear(arg1: mpq_ptr);
6251}
6252extern "C" {
6253    pub fn __gmpq_clears(arg1: mpq_ptr, ...);
6254}
6255extern "C" {
6256    pub fn __gmpq_cmp(arg1: mpq_srcptr, arg2: mpq_srcptr) -> ::std::os::raw::c_int;
6257}
6258extern "C" {
6259    pub fn __gmpq_cmp_si(
6260        arg1: mpq_srcptr,
6261        arg2: ::std::os::raw::c_long,
6262        arg3: ::std::os::raw::c_ulong,
6263    ) -> ::std::os::raw::c_int;
6264}
6265extern "C" {
6266    pub fn __gmpq_cmp_ui(
6267        arg1: mpq_srcptr,
6268        arg2: ::std::os::raw::c_ulong,
6269        arg3: ::std::os::raw::c_ulong,
6270    ) -> ::std::os::raw::c_int;
6271}
6272extern "C" {
6273    pub fn __gmpq_cmp_z(arg1: mpq_srcptr, arg2: mpz_srcptr) -> ::std::os::raw::c_int;
6274}
6275extern "C" {
6276    pub fn __gmpq_div(arg1: mpq_ptr, arg2: mpq_srcptr, arg3: mpq_srcptr);
6277}
6278extern "C" {
6279    pub fn __gmpq_div_2exp(arg1: mpq_ptr, arg2: mpq_srcptr, arg3: mp_bitcnt_t);
6280}
6281extern "C" {
6282    pub fn __gmpq_equal(arg1: mpq_srcptr, arg2: mpq_srcptr) -> ::std::os::raw::c_int;
6283}
6284extern "C" {
6285    pub fn __gmpq_get_num(arg1: mpz_ptr, arg2: mpq_srcptr);
6286}
6287extern "C" {
6288    pub fn __gmpq_get_den(arg1: mpz_ptr, arg2: mpq_srcptr);
6289}
6290extern "C" {
6291    pub fn __gmpq_get_d(arg1: mpq_srcptr) -> f64;
6292}
6293extern "C" {
6294    pub fn __gmpq_get_str(
6295        arg1: *mut ::std::os::raw::c_char,
6296        arg2: ::std::os::raw::c_int,
6297        arg3: mpq_srcptr,
6298    ) -> *mut ::std::os::raw::c_char;
6299}
6300extern "C" {
6301    pub fn __gmpq_init(arg1: mpq_ptr);
6302}
6303extern "C" {
6304    pub fn __gmpq_inits(arg1: mpq_ptr, ...);
6305}
6306extern "C" {
6307    pub fn __gmpq_inp_str(arg1: mpq_ptr, arg2: *mut FILE, arg3: ::std::os::raw::c_int) -> size_t;
6308}
6309extern "C" {
6310    pub fn __gmpq_inv(arg1: mpq_ptr, arg2: mpq_srcptr);
6311}
6312extern "C" {
6313    pub fn __gmpq_mul(arg1: mpq_ptr, arg2: mpq_srcptr, arg3: mpq_srcptr);
6314}
6315extern "C" {
6316    pub fn __gmpq_mul_2exp(arg1: mpq_ptr, arg2: mpq_srcptr, arg3: mp_bitcnt_t);
6317}
6318extern "C" {
6319    pub fn __gmpq_neg(arg1: mpq_ptr, arg2: mpq_srcptr);
6320}
6321extern "C" {
6322    pub fn __gmpq_out_str(arg1: *mut FILE, arg2: ::std::os::raw::c_int, arg3: mpq_srcptr)
6323        -> size_t;
6324}
6325extern "C" {
6326    pub fn __gmpq_set(arg1: mpq_ptr, arg2: mpq_srcptr);
6327}
6328extern "C" {
6329    pub fn __gmpq_set_d(arg1: mpq_ptr, arg2: f64);
6330}
6331extern "C" {
6332    pub fn __gmpq_set_den(arg1: mpq_ptr, arg2: mpz_srcptr);
6333}
6334extern "C" {
6335    pub fn __gmpq_set_f(arg1: mpq_ptr, arg2: mpf_srcptr);
6336}
6337extern "C" {
6338    pub fn __gmpq_set_num(arg1: mpq_ptr, arg2: mpz_srcptr);
6339}
6340extern "C" {
6341    pub fn __gmpq_set_si(
6342        arg1: mpq_ptr,
6343        arg2: ::std::os::raw::c_long,
6344        arg3: ::std::os::raw::c_ulong,
6345    );
6346}
6347extern "C" {
6348    pub fn __gmpq_set_str(
6349        arg1: mpq_ptr,
6350        arg2: *const ::std::os::raw::c_char,
6351        arg3: ::std::os::raw::c_int,
6352    ) -> ::std::os::raw::c_int;
6353}
6354extern "C" {
6355    pub fn __gmpq_set_ui(
6356        arg1: mpq_ptr,
6357        arg2: ::std::os::raw::c_ulong,
6358        arg3: ::std::os::raw::c_ulong,
6359    );
6360}
6361extern "C" {
6362    pub fn __gmpq_set_z(arg1: mpq_ptr, arg2: mpz_srcptr);
6363}
6364extern "C" {
6365    pub fn __gmpq_sub(arg1: mpq_ptr, arg2: mpq_srcptr, arg3: mpq_srcptr);
6366}
6367extern "C" {
6368    pub fn __gmpq_swap(arg1: mpq_ptr, arg2: mpq_ptr);
6369}
6370extern "C" {
6371    pub fn __gmpf_abs(arg1: mpf_ptr, arg2: mpf_srcptr);
6372}
6373extern "C" {
6374    pub fn __gmpf_add(arg1: mpf_ptr, arg2: mpf_srcptr, arg3: mpf_srcptr);
6375}
6376extern "C" {
6377    pub fn __gmpf_add_ui(arg1: mpf_ptr, arg2: mpf_srcptr, arg3: ::std::os::raw::c_ulong);
6378}
6379extern "C" {
6380    pub fn __gmpf_ceil(arg1: mpf_ptr, arg2: mpf_srcptr);
6381}
6382extern "C" {
6383    pub fn __gmpf_clear(arg1: mpf_ptr);
6384}
6385extern "C" {
6386    pub fn __gmpf_clears(arg1: mpf_ptr, ...);
6387}
6388extern "C" {
6389    pub fn __gmpf_cmp(arg1: mpf_srcptr, arg2: mpf_srcptr) -> ::std::os::raw::c_int;
6390}
6391extern "C" {
6392    pub fn __gmpf_cmp_z(arg1: mpf_srcptr, arg2: mpz_srcptr) -> ::std::os::raw::c_int;
6393}
6394extern "C" {
6395    pub fn __gmpf_cmp_d(arg1: mpf_srcptr, arg2: f64) -> ::std::os::raw::c_int;
6396}
6397extern "C" {
6398    pub fn __gmpf_cmp_si(arg1: mpf_srcptr, arg2: ::std::os::raw::c_long) -> ::std::os::raw::c_int;
6399}
6400extern "C" {
6401    pub fn __gmpf_cmp_ui(arg1: mpf_srcptr, arg2: ::std::os::raw::c_ulong) -> ::std::os::raw::c_int;
6402}
6403extern "C" {
6404    pub fn __gmpf_div(arg1: mpf_ptr, arg2: mpf_srcptr, arg3: mpf_srcptr);
6405}
6406extern "C" {
6407    pub fn __gmpf_div_2exp(arg1: mpf_ptr, arg2: mpf_srcptr, arg3: mp_bitcnt_t);
6408}
6409extern "C" {
6410    pub fn __gmpf_div_ui(arg1: mpf_ptr, arg2: mpf_srcptr, arg3: ::std::os::raw::c_ulong);
6411}
6412extern "C" {
6413    pub fn __gmpf_dump(arg1: mpf_srcptr);
6414}
6415extern "C" {
6416    pub fn __gmpf_eq(
6417        arg1: mpf_srcptr,
6418        arg2: mpf_srcptr,
6419        arg3: mp_bitcnt_t,
6420    ) -> ::std::os::raw::c_int;
6421}
6422extern "C" {
6423    pub fn __gmpf_fits_sint_p(arg1: mpf_srcptr) -> ::std::os::raw::c_int;
6424}
6425extern "C" {
6426    pub fn __gmpf_fits_slong_p(arg1: mpf_srcptr) -> ::std::os::raw::c_int;
6427}
6428extern "C" {
6429    pub fn __gmpf_fits_sshort_p(arg1: mpf_srcptr) -> ::std::os::raw::c_int;
6430}
6431extern "C" {
6432    pub fn __gmpf_fits_uint_p(arg1: mpf_srcptr) -> ::std::os::raw::c_int;
6433}
6434extern "C" {
6435    pub fn __gmpf_fits_ulong_p(arg1: mpf_srcptr) -> ::std::os::raw::c_int;
6436}
6437extern "C" {
6438    pub fn __gmpf_fits_ushort_p(arg1: mpf_srcptr) -> ::std::os::raw::c_int;
6439}
6440extern "C" {
6441    pub fn __gmpf_floor(arg1: mpf_ptr, arg2: mpf_srcptr);
6442}
6443extern "C" {
6444    pub fn __gmpf_get_d(arg1: mpf_srcptr) -> f64;
6445}
6446extern "C" {
6447    pub fn __gmpf_get_d_2exp(arg1: *mut ::std::os::raw::c_long, arg2: mpf_srcptr) -> f64;
6448}
6449extern "C" {
6450    pub fn __gmpf_get_default_prec() -> mp_bitcnt_t;
6451}
6452extern "C" {
6453    pub fn __gmpf_get_prec(arg1: mpf_srcptr) -> mp_bitcnt_t;
6454}
6455extern "C" {
6456    pub fn __gmpf_get_si(arg1: mpf_srcptr) -> ::std::os::raw::c_long;
6457}
6458extern "C" {
6459    pub fn __gmpf_get_str(
6460        arg1: *mut ::std::os::raw::c_char,
6461        arg2: *mut mp_exp_t,
6462        arg3: ::std::os::raw::c_int,
6463        arg4: size_t,
6464        arg5: mpf_srcptr,
6465    ) -> *mut ::std::os::raw::c_char;
6466}
6467extern "C" {
6468    pub fn __gmpf_get_ui(arg1: mpf_srcptr) -> ::std::os::raw::c_ulong;
6469}
6470extern "C" {
6471    pub fn __gmpf_init(arg1: mpf_ptr);
6472}
6473extern "C" {
6474    pub fn __gmpf_init2(arg1: mpf_ptr, arg2: mp_bitcnt_t);
6475}
6476extern "C" {
6477    pub fn __gmpf_inits(arg1: mpf_ptr, ...);
6478}
6479extern "C" {
6480    pub fn __gmpf_init_set(arg1: mpf_ptr, arg2: mpf_srcptr);
6481}
6482extern "C" {
6483    pub fn __gmpf_init_set_d(arg1: mpf_ptr, arg2: f64);
6484}
6485extern "C" {
6486    pub fn __gmpf_init_set_si(arg1: mpf_ptr, arg2: ::std::os::raw::c_long);
6487}
6488extern "C" {
6489    pub fn __gmpf_init_set_str(
6490        arg1: mpf_ptr,
6491        arg2: *const ::std::os::raw::c_char,
6492        arg3: ::std::os::raw::c_int,
6493    ) -> ::std::os::raw::c_int;
6494}
6495extern "C" {
6496    pub fn __gmpf_init_set_ui(arg1: mpf_ptr, arg2: ::std::os::raw::c_ulong);
6497}
6498extern "C" {
6499    pub fn __gmpf_inp_str(arg1: mpf_ptr, arg2: *mut FILE, arg3: ::std::os::raw::c_int) -> size_t;
6500}
6501extern "C" {
6502    pub fn __gmpf_integer_p(arg1: mpf_srcptr) -> ::std::os::raw::c_int;
6503}
6504extern "C" {
6505    pub fn __gmpf_mul(arg1: mpf_ptr, arg2: mpf_srcptr, arg3: mpf_srcptr);
6506}
6507extern "C" {
6508    pub fn __gmpf_mul_2exp(arg1: mpf_ptr, arg2: mpf_srcptr, arg3: mp_bitcnt_t);
6509}
6510extern "C" {
6511    pub fn __gmpf_mul_ui(arg1: mpf_ptr, arg2: mpf_srcptr, arg3: ::std::os::raw::c_ulong);
6512}
6513extern "C" {
6514    pub fn __gmpf_neg(arg1: mpf_ptr, arg2: mpf_srcptr);
6515}
6516extern "C" {
6517    pub fn __gmpf_out_str(
6518        arg1: *mut FILE,
6519        arg2: ::std::os::raw::c_int,
6520        arg3: size_t,
6521        arg4: mpf_srcptr,
6522    ) -> size_t;
6523}
6524extern "C" {
6525    pub fn __gmpf_pow_ui(arg1: mpf_ptr, arg2: mpf_srcptr, arg3: ::std::os::raw::c_ulong);
6526}
6527extern "C" {
6528    pub fn __gmpf_random2(arg1: mpf_ptr, arg2: mp_size_t, arg3: mp_exp_t);
6529}
6530extern "C" {
6531    pub fn __gmpf_reldiff(arg1: mpf_ptr, arg2: mpf_srcptr, arg3: mpf_srcptr);
6532}
6533extern "C" {
6534    pub fn __gmpf_set(arg1: mpf_ptr, arg2: mpf_srcptr);
6535}
6536extern "C" {
6537    pub fn __gmpf_set_d(arg1: mpf_ptr, arg2: f64);
6538}
6539extern "C" {
6540    pub fn __gmpf_set_default_prec(arg1: mp_bitcnt_t);
6541}
6542extern "C" {
6543    pub fn __gmpf_set_prec(arg1: mpf_ptr, arg2: mp_bitcnt_t);
6544}
6545extern "C" {
6546    pub fn __gmpf_set_prec_raw(arg1: mpf_ptr, arg2: mp_bitcnt_t);
6547}
6548extern "C" {
6549    pub fn __gmpf_set_q(arg1: mpf_ptr, arg2: mpq_srcptr);
6550}
6551extern "C" {
6552    pub fn __gmpf_set_si(arg1: mpf_ptr, arg2: ::std::os::raw::c_long);
6553}
6554extern "C" {
6555    pub fn __gmpf_set_str(
6556        arg1: mpf_ptr,
6557        arg2: *const ::std::os::raw::c_char,
6558        arg3: ::std::os::raw::c_int,
6559    ) -> ::std::os::raw::c_int;
6560}
6561extern "C" {
6562    pub fn __gmpf_set_ui(arg1: mpf_ptr, arg2: ::std::os::raw::c_ulong);
6563}
6564extern "C" {
6565    pub fn __gmpf_set_z(arg1: mpf_ptr, arg2: mpz_srcptr);
6566}
6567extern "C" {
6568    pub fn __gmpf_size(arg1: mpf_srcptr) -> size_t;
6569}
6570extern "C" {
6571    pub fn __gmpf_sqrt(arg1: mpf_ptr, arg2: mpf_srcptr);
6572}
6573extern "C" {
6574    pub fn __gmpf_sqrt_ui(arg1: mpf_ptr, arg2: ::std::os::raw::c_ulong);
6575}
6576extern "C" {
6577    pub fn __gmpf_sub(arg1: mpf_ptr, arg2: mpf_srcptr, arg3: mpf_srcptr);
6578}
6579extern "C" {
6580    pub fn __gmpf_sub_ui(arg1: mpf_ptr, arg2: mpf_srcptr, arg3: ::std::os::raw::c_ulong);
6581}
6582extern "C" {
6583    pub fn __gmpf_swap(arg1: mpf_ptr, arg2: mpf_ptr);
6584}
6585extern "C" {
6586    pub fn __gmpf_trunc(arg1: mpf_ptr, arg2: mpf_srcptr);
6587}
6588extern "C" {
6589    pub fn __gmpf_ui_div(arg1: mpf_ptr, arg2: ::std::os::raw::c_ulong, arg3: mpf_srcptr);
6590}
6591extern "C" {
6592    pub fn __gmpf_ui_sub(arg1: mpf_ptr, arg2: ::std::os::raw::c_ulong, arg3: mpf_srcptr);
6593}
6594extern "C" {
6595    pub fn __gmpf_urandomb(
6596        arg1: *mut __mpf_struct,
6597        arg2: *mut __gmp_randstate_struct,
6598        arg3: mp_bitcnt_t,
6599    );
6600}
6601extern "C" {
6602    pub fn __gmpn_add(
6603        arg1: mp_ptr,
6604        arg2: mp_srcptr,
6605        arg3: mp_size_t,
6606        arg4: mp_srcptr,
6607        arg5: mp_size_t,
6608    ) -> mp_limb_t;
6609}
6610extern "C" {
6611    pub fn __gmpn_add_1(
6612        arg1: mp_ptr,
6613        arg2: mp_srcptr,
6614        arg3: mp_size_t,
6615        arg4: mp_limb_t,
6616    ) -> mp_limb_t;
6617}
6618extern "C" {
6619    pub fn __gmpn_add_n(
6620        arg1: mp_ptr,
6621        arg2: mp_srcptr,
6622        arg3: mp_srcptr,
6623        arg4: mp_size_t,
6624    ) -> mp_limb_t;
6625}
6626extern "C" {
6627    pub fn __gmpn_addmul_1(
6628        arg1: mp_ptr,
6629        arg2: mp_srcptr,
6630        arg3: mp_size_t,
6631        arg4: mp_limb_t,
6632    ) -> mp_limb_t;
6633}
6634extern "C" {
6635    pub fn __gmpn_cmp(arg1: mp_srcptr, arg2: mp_srcptr, arg3: mp_size_t) -> ::std::os::raw::c_int;
6636}
6637extern "C" {
6638    pub fn __gmpn_zero_p(arg1: mp_srcptr, arg2: mp_size_t) -> ::std::os::raw::c_int;
6639}
6640extern "C" {
6641    pub fn __gmpn_divexact_1(arg1: mp_ptr, arg2: mp_srcptr, arg3: mp_size_t, arg4: mp_limb_t);
6642}
6643extern "C" {
6644    pub fn __gmpn_divexact_by3c(
6645        arg1: mp_ptr,
6646        arg2: mp_srcptr,
6647        arg3: mp_size_t,
6648        arg4: mp_limb_t,
6649    ) -> mp_limb_t;
6650}
6651extern "C" {
6652    pub fn __gmpn_divrem(
6653        arg1: mp_ptr,
6654        arg2: mp_size_t,
6655        arg3: mp_ptr,
6656        arg4: mp_size_t,
6657        arg5: mp_srcptr,
6658        arg6: mp_size_t,
6659    ) -> mp_limb_t;
6660}
6661extern "C" {
6662    pub fn __gmpn_divrem_1(
6663        arg1: mp_ptr,
6664        arg2: mp_size_t,
6665        arg3: mp_srcptr,
6666        arg4: mp_size_t,
6667        arg5: mp_limb_t,
6668    ) -> mp_limb_t;
6669}
6670extern "C" {
6671    pub fn __gmpn_divrem_2(
6672        arg1: mp_ptr,
6673        arg2: mp_size_t,
6674        arg3: mp_ptr,
6675        arg4: mp_size_t,
6676        arg5: mp_srcptr,
6677    ) -> mp_limb_t;
6678}
6679extern "C" {
6680    pub fn __gmpn_div_qr_1(
6681        arg1: mp_ptr,
6682        arg2: *mut mp_limb_t,
6683        arg3: mp_srcptr,
6684        arg4: mp_size_t,
6685        arg5: mp_limb_t,
6686    ) -> mp_limb_t;
6687}
6688extern "C" {
6689    pub fn __gmpn_div_qr_2(
6690        arg1: mp_ptr,
6691        arg2: mp_ptr,
6692        arg3: mp_srcptr,
6693        arg4: mp_size_t,
6694        arg5: mp_srcptr,
6695    ) -> mp_limb_t;
6696}
6697extern "C" {
6698    pub fn __gmpn_gcd(
6699        arg1: mp_ptr,
6700        arg2: mp_ptr,
6701        arg3: mp_size_t,
6702        arg4: mp_ptr,
6703        arg5: mp_size_t,
6704    ) -> mp_size_t;
6705}
6706extern "C" {
6707    pub fn __gmpn_gcd_11(arg1: mp_limb_t, arg2: mp_limb_t) -> mp_limb_t;
6708}
6709extern "C" {
6710    pub fn __gmpn_gcd_1(arg1: mp_srcptr, arg2: mp_size_t, arg3: mp_limb_t) -> mp_limb_t;
6711}
6712extern "C" {
6713    pub fn __gmpn_gcdext_1(
6714        arg1: *mut mp_limb_signed_t,
6715        arg2: *mut mp_limb_signed_t,
6716        arg3: mp_limb_t,
6717        arg4: mp_limb_t,
6718    ) -> mp_limb_t;
6719}
6720extern "C" {
6721    pub fn __gmpn_gcdext(
6722        arg1: mp_ptr,
6723        arg2: mp_ptr,
6724        arg3: *mut mp_size_t,
6725        arg4: mp_ptr,
6726        arg5: mp_size_t,
6727        arg6: mp_ptr,
6728        arg7: mp_size_t,
6729    ) -> mp_size_t;
6730}
6731extern "C" {
6732    pub fn __gmpn_get_str(
6733        arg1: *mut ::std::os::raw::c_uchar,
6734        arg2: ::std::os::raw::c_int,
6735        arg3: mp_ptr,
6736        arg4: mp_size_t,
6737    ) -> size_t;
6738}
6739extern "C" {
6740    pub fn __gmpn_hamdist(arg1: mp_srcptr, arg2: mp_srcptr, arg3: mp_size_t) -> mp_bitcnt_t;
6741}
6742extern "C" {
6743    pub fn __gmpn_lshift(
6744        arg1: mp_ptr,
6745        arg2: mp_srcptr,
6746        arg3: mp_size_t,
6747        arg4: ::std::os::raw::c_uint,
6748    ) -> mp_limb_t;
6749}
6750extern "C" {
6751    pub fn __gmpn_mod_1(arg1: mp_srcptr, arg2: mp_size_t, arg3: mp_limb_t) -> mp_limb_t;
6752}
6753extern "C" {
6754    pub fn __gmpn_mul(
6755        arg1: mp_ptr,
6756        arg2: mp_srcptr,
6757        arg3: mp_size_t,
6758        arg4: mp_srcptr,
6759        arg5: mp_size_t,
6760    ) -> mp_limb_t;
6761}
6762extern "C" {
6763    pub fn __gmpn_mul_1(
6764        arg1: mp_ptr,
6765        arg2: mp_srcptr,
6766        arg3: mp_size_t,
6767        arg4: mp_limb_t,
6768    ) -> mp_limb_t;
6769}
6770extern "C" {
6771    pub fn __gmpn_mul_n(arg1: mp_ptr, arg2: mp_srcptr, arg3: mp_srcptr, arg4: mp_size_t);
6772}
6773extern "C" {
6774    pub fn __gmpn_sqr(arg1: mp_ptr, arg2: mp_srcptr, arg3: mp_size_t);
6775}
6776extern "C" {
6777    pub fn __gmpn_neg(arg1: mp_ptr, arg2: mp_srcptr, arg3: mp_size_t) -> mp_limb_t;
6778}
6779extern "C" {
6780    pub fn __gmpn_com(arg1: mp_ptr, arg2: mp_srcptr, arg3: mp_size_t);
6781}
6782extern "C" {
6783    pub fn __gmpn_perfect_square_p(arg1: mp_srcptr, arg2: mp_size_t) -> ::std::os::raw::c_int;
6784}
6785extern "C" {
6786    pub fn __gmpn_perfect_power_p(arg1: mp_srcptr, arg2: mp_size_t) -> ::std::os::raw::c_int;
6787}
6788extern "C" {
6789    pub fn __gmpn_popcount(arg1: mp_srcptr, arg2: mp_size_t) -> mp_bitcnt_t;
6790}
6791extern "C" {
6792    pub fn __gmpn_pow_1(
6793        arg1: mp_ptr,
6794        arg2: mp_srcptr,
6795        arg3: mp_size_t,
6796        arg4: mp_limb_t,
6797        arg5: mp_ptr,
6798    ) -> mp_size_t;
6799}
6800extern "C" {
6801    pub fn __gmpn_preinv_mod_1(
6802        arg1: mp_srcptr,
6803        arg2: mp_size_t,
6804        arg3: mp_limb_t,
6805        arg4: mp_limb_t,
6806    ) -> mp_limb_t;
6807}
6808extern "C" {
6809    pub fn __gmpn_random(arg1: mp_ptr, arg2: mp_size_t);
6810}
6811extern "C" {
6812    pub fn __gmpn_random2(arg1: mp_ptr, arg2: mp_size_t);
6813}
6814extern "C" {
6815    pub fn __gmpn_rshift(
6816        arg1: mp_ptr,
6817        arg2: mp_srcptr,
6818        arg3: mp_size_t,
6819        arg4: ::std::os::raw::c_uint,
6820    ) -> mp_limb_t;
6821}
6822extern "C" {
6823    pub fn __gmpn_scan0(arg1: mp_srcptr, arg2: mp_bitcnt_t) -> mp_bitcnt_t;
6824}
6825extern "C" {
6826    pub fn __gmpn_scan1(arg1: mp_srcptr, arg2: mp_bitcnt_t) -> mp_bitcnt_t;
6827}
6828extern "C" {
6829    pub fn __gmpn_set_str(
6830        arg1: mp_ptr,
6831        arg2: *const ::std::os::raw::c_uchar,
6832        arg3: size_t,
6833        arg4: ::std::os::raw::c_int,
6834    ) -> mp_size_t;
6835}
6836extern "C" {
6837    pub fn __gmpn_sizeinbase(
6838        arg1: mp_srcptr,
6839        arg2: mp_size_t,
6840        arg3: ::std::os::raw::c_int,
6841    ) -> size_t;
6842}
6843extern "C" {
6844    pub fn __gmpn_sqrtrem(
6845        arg1: mp_ptr,
6846        arg2: mp_ptr,
6847        arg3: mp_srcptr,
6848        arg4: mp_size_t,
6849    ) -> mp_size_t;
6850}
6851extern "C" {
6852    pub fn __gmpn_sub(
6853        arg1: mp_ptr,
6854        arg2: mp_srcptr,
6855        arg3: mp_size_t,
6856        arg4: mp_srcptr,
6857        arg5: mp_size_t,
6858    ) -> mp_limb_t;
6859}
6860extern "C" {
6861    pub fn __gmpn_sub_1(
6862        arg1: mp_ptr,
6863        arg2: mp_srcptr,
6864        arg3: mp_size_t,
6865        arg4: mp_limb_t,
6866    ) -> mp_limb_t;
6867}
6868extern "C" {
6869    pub fn __gmpn_sub_n(
6870        arg1: mp_ptr,
6871        arg2: mp_srcptr,
6872        arg3: mp_srcptr,
6873        arg4: mp_size_t,
6874    ) -> mp_limb_t;
6875}
6876extern "C" {
6877    pub fn __gmpn_submul_1(
6878        arg1: mp_ptr,
6879        arg2: mp_srcptr,
6880        arg3: mp_size_t,
6881        arg4: mp_limb_t,
6882    ) -> mp_limb_t;
6883}
6884extern "C" {
6885    pub fn __gmpn_tdiv_qr(
6886        arg1: mp_ptr,
6887        arg2: mp_ptr,
6888        arg3: mp_size_t,
6889        arg4: mp_srcptr,
6890        arg5: mp_size_t,
6891        arg6: mp_srcptr,
6892        arg7: mp_size_t,
6893    );
6894}
6895extern "C" {
6896    pub fn __gmpn_and_n(arg1: mp_ptr, arg2: mp_srcptr, arg3: mp_srcptr, arg4: mp_size_t);
6897}
6898extern "C" {
6899    pub fn __gmpn_andn_n(arg1: mp_ptr, arg2: mp_srcptr, arg3: mp_srcptr, arg4: mp_size_t);
6900}
6901extern "C" {
6902    pub fn __gmpn_nand_n(arg1: mp_ptr, arg2: mp_srcptr, arg3: mp_srcptr, arg4: mp_size_t);
6903}
6904extern "C" {
6905    pub fn __gmpn_ior_n(arg1: mp_ptr, arg2: mp_srcptr, arg3: mp_srcptr, arg4: mp_size_t);
6906}
6907extern "C" {
6908    pub fn __gmpn_iorn_n(arg1: mp_ptr, arg2: mp_srcptr, arg3: mp_srcptr, arg4: mp_size_t);
6909}
6910extern "C" {
6911    pub fn __gmpn_nior_n(arg1: mp_ptr, arg2: mp_srcptr, arg3: mp_srcptr, arg4: mp_size_t);
6912}
6913extern "C" {
6914    pub fn __gmpn_xor_n(arg1: mp_ptr, arg2: mp_srcptr, arg3: mp_srcptr, arg4: mp_size_t);
6915}
6916extern "C" {
6917    pub fn __gmpn_xnor_n(arg1: mp_ptr, arg2: mp_srcptr, arg3: mp_srcptr, arg4: mp_size_t);
6918}
6919extern "C" {
6920    pub fn __gmpn_copyi(arg1: mp_ptr, arg2: mp_srcptr, arg3: mp_size_t);
6921}
6922extern "C" {
6923    pub fn __gmpn_copyd(arg1: mp_ptr, arg2: mp_srcptr, arg3: mp_size_t);
6924}
6925extern "C" {
6926    pub fn __gmpn_zero(arg1: mp_ptr, arg2: mp_size_t);
6927}
6928extern "C" {
6929    pub fn __gmpn_cnd_add_n(
6930        arg1: mp_limb_t,
6931        arg2: mp_ptr,
6932        arg3: mp_srcptr,
6933        arg4: mp_srcptr,
6934        arg5: mp_size_t,
6935    ) -> mp_limb_t;
6936}
6937extern "C" {
6938    pub fn __gmpn_cnd_sub_n(
6939        arg1: mp_limb_t,
6940        arg2: mp_ptr,
6941        arg3: mp_srcptr,
6942        arg4: mp_srcptr,
6943        arg5: mp_size_t,
6944    ) -> mp_limb_t;
6945}
6946extern "C" {
6947    pub fn __gmpn_sec_add_1(
6948        arg1: mp_ptr,
6949        arg2: mp_srcptr,
6950        arg3: mp_size_t,
6951        arg4: mp_limb_t,
6952        arg5: mp_ptr,
6953    ) -> mp_limb_t;
6954}
6955extern "C" {
6956    pub fn __gmpn_sec_add_1_itch(arg1: mp_size_t) -> mp_size_t;
6957}
6958extern "C" {
6959    pub fn __gmpn_sec_sub_1(
6960        arg1: mp_ptr,
6961        arg2: mp_srcptr,
6962        arg3: mp_size_t,
6963        arg4: mp_limb_t,
6964        arg5: mp_ptr,
6965    ) -> mp_limb_t;
6966}
6967extern "C" {
6968    pub fn __gmpn_sec_sub_1_itch(arg1: mp_size_t) -> mp_size_t;
6969}
6970extern "C" {
6971    pub fn __gmpn_cnd_swap(
6972        arg1: mp_limb_t,
6973        arg2: *mut mp_limb_t,
6974        arg3: *mut mp_limb_t,
6975        arg4: mp_size_t,
6976    );
6977}
6978extern "C" {
6979    pub fn __gmpn_sec_mul(
6980        arg1: mp_ptr,
6981        arg2: mp_srcptr,
6982        arg3: mp_size_t,
6983        arg4: mp_srcptr,
6984        arg5: mp_size_t,
6985        arg6: mp_ptr,
6986    );
6987}
6988extern "C" {
6989    pub fn __gmpn_sec_mul_itch(arg1: mp_size_t, arg2: mp_size_t) -> mp_size_t;
6990}
6991extern "C" {
6992    pub fn __gmpn_sec_sqr(arg1: mp_ptr, arg2: mp_srcptr, arg3: mp_size_t, arg4: mp_ptr);
6993}
6994extern "C" {
6995    pub fn __gmpn_sec_sqr_itch(arg1: mp_size_t) -> mp_size_t;
6996}
6997extern "C" {
6998    pub fn __gmpn_sec_powm(
6999        arg1: mp_ptr,
7000        arg2: mp_srcptr,
7001        arg3: mp_size_t,
7002        arg4: mp_srcptr,
7003        arg5: mp_bitcnt_t,
7004        arg6: mp_srcptr,
7005        arg7: mp_size_t,
7006        arg8: mp_ptr,
7007    );
7008}
7009extern "C" {
7010    pub fn __gmpn_sec_powm_itch(arg1: mp_size_t, arg2: mp_bitcnt_t, arg3: mp_size_t) -> mp_size_t;
7011}
7012extern "C" {
7013    pub fn __gmpn_sec_tabselect(
7014        arg1: *mut mp_limb_t,
7015        arg2: *const mp_limb_t,
7016        arg3: mp_size_t,
7017        arg4: mp_size_t,
7018        arg5: mp_size_t,
7019    );
7020}
7021extern "C" {
7022    pub fn __gmpn_sec_div_qr(
7023        arg1: mp_ptr,
7024        arg2: mp_ptr,
7025        arg3: mp_size_t,
7026        arg4: mp_srcptr,
7027        arg5: mp_size_t,
7028        arg6: mp_ptr,
7029    ) -> mp_limb_t;
7030}
7031extern "C" {
7032    pub fn __gmpn_sec_div_qr_itch(arg1: mp_size_t, arg2: mp_size_t) -> mp_size_t;
7033}
7034extern "C" {
7035    pub fn __gmpn_sec_div_r(
7036        arg1: mp_ptr,
7037        arg2: mp_size_t,
7038        arg3: mp_srcptr,
7039        arg4: mp_size_t,
7040        arg5: mp_ptr,
7041    );
7042}
7043extern "C" {
7044    pub fn __gmpn_sec_div_r_itch(arg1: mp_size_t, arg2: mp_size_t) -> mp_size_t;
7045}
7046extern "C" {
7047    pub fn __gmpn_sec_invert(
7048        arg1: mp_ptr,
7049        arg2: mp_ptr,
7050        arg3: mp_srcptr,
7051        arg4: mp_size_t,
7052        arg5: mp_bitcnt_t,
7053        arg6: mp_ptr,
7054    ) -> ::std::os::raw::c_int;
7055}
7056extern "C" {
7057    pub fn __gmpn_sec_invert_itch(arg1: mp_size_t) -> mp_size_t;
7058}
7059pub const GMP_ERROR_NONE: ::std::os::raw::c_uint = 0;
7060pub const GMP_ERROR_UNSUPPORTED_ARGUMENT: ::std::os::raw::c_uint = 1;
7061pub const GMP_ERROR_DIVISION_BY_ZERO: ::std::os::raw::c_uint = 2;
7062pub const GMP_ERROR_SQRT_OF_NEGATIVE: ::std::os::raw::c_uint = 4;
7063pub const GMP_ERROR_INVALID_ARGUMENT: ::std::os::raw::c_uint = 8;
7064pub type _bindgen_ty_2 = ::std::os::raw::c_uint;
7065pub type mpfr_void = ::std::os::raw::c_void;
7066pub type mpfr_int = ::std::os::raw::c_int;
7067pub type mpfr_uint = ::std::os::raw::c_uint;
7068pub type mpfr_long = ::std::os::raw::c_long;
7069pub type mpfr_ulong = ::std::os::raw::c_ulong;
7070pub type mpfr_size_t = size_t;
7071pub type mpfr_flags_t = ::std::os::raw::c_uint;
7072pub const mpfr_rnd_t_MPFR_RNDN: mpfr_rnd_t = 0;
7073pub const mpfr_rnd_t_MPFR_RNDZ: mpfr_rnd_t = 1;
7074pub const mpfr_rnd_t_MPFR_RNDU: mpfr_rnd_t = 2;
7075pub const mpfr_rnd_t_MPFR_RNDD: mpfr_rnd_t = 3;
7076pub const mpfr_rnd_t_MPFR_RNDA: mpfr_rnd_t = 4;
7077pub const mpfr_rnd_t_MPFR_RNDF: mpfr_rnd_t = 5;
7078pub const mpfr_rnd_t_MPFR_RNDNA: mpfr_rnd_t = -1;
7079pub type mpfr_rnd_t = ::std::os::raw::c_int;
7080pub type mpfr_prec_t = ::std::os::raw::c_long;
7081pub type mpfr_uprec_t = ::std::os::raw::c_ulong;
7082pub type mpfr_sign_t = ::std::os::raw::c_int;
7083pub type mpfr_exp_t = ::std::os::raw::c_long;
7084pub type mpfr_uexp_t = ::std::os::raw::c_ulong;
7085#[repr(C)]
7086#[derive(Debug, Copy, Clone)]
7087pub struct __mpfr_struct {
7088    pub _mpfr_prec: mpfr_prec_t,
7089    pub _mpfr_sign: mpfr_sign_t,
7090    pub _mpfr_exp: mpfr_exp_t,
7091    pub _mpfr_d: *mut mp_limb_t,
7092}
7093#[test]
7094fn bindgen_test_layout___mpfr_struct() {
7095    assert_eq!(
7096        ::std::mem::size_of::<__mpfr_struct>(),
7097        32usize,
7098        concat!("Size of: ", stringify!(__mpfr_struct))
7099    );
7100    assert_eq!(
7101        ::std::mem::align_of::<__mpfr_struct>(),
7102        8usize,
7103        concat!("Alignment of ", stringify!(__mpfr_struct))
7104    );
7105    assert_eq!(
7106        unsafe { &(*(::std::ptr::null::<__mpfr_struct>()))._mpfr_prec as *const _ as usize },
7107        0usize,
7108        concat!(
7109            "Offset of field: ",
7110            stringify!(__mpfr_struct),
7111            "::",
7112            stringify!(_mpfr_prec)
7113        )
7114    );
7115    assert_eq!(
7116        unsafe { &(*(::std::ptr::null::<__mpfr_struct>()))._mpfr_sign as *const _ as usize },
7117        8usize,
7118        concat!(
7119            "Offset of field: ",
7120            stringify!(__mpfr_struct),
7121            "::",
7122            stringify!(_mpfr_sign)
7123        )
7124    );
7125    assert_eq!(
7126        unsafe { &(*(::std::ptr::null::<__mpfr_struct>()))._mpfr_exp as *const _ as usize },
7127        16usize,
7128        concat!(
7129            "Offset of field: ",
7130            stringify!(__mpfr_struct),
7131            "::",
7132            stringify!(_mpfr_exp)
7133        )
7134    );
7135    assert_eq!(
7136        unsafe { &(*(::std::ptr::null::<__mpfr_struct>()))._mpfr_d as *const _ as usize },
7137        24usize,
7138        concat!(
7139            "Offset of field: ",
7140            stringify!(__mpfr_struct),
7141            "::",
7142            stringify!(_mpfr_d)
7143        )
7144    );
7145}
7146pub type mpfr_t = [__mpfr_struct; 1usize];
7147pub type mpfr_ptr = *mut __mpfr_struct;
7148pub type mpfr_srcptr = *const __mpfr_struct;
7149pub const mpfr_kind_t_MPFR_NAN_KIND: mpfr_kind_t = 0;
7150pub const mpfr_kind_t_MPFR_INF_KIND: mpfr_kind_t = 1;
7151pub const mpfr_kind_t_MPFR_ZERO_KIND: mpfr_kind_t = 2;
7152pub const mpfr_kind_t_MPFR_REGULAR_KIND: mpfr_kind_t = 3;
7153pub type mpfr_kind_t = ::std::os::raw::c_uint;
7154pub const mpfr_free_cache_t_MPFR_FREE_LOCAL_CACHE: mpfr_free_cache_t = 1;
7155pub const mpfr_free_cache_t_MPFR_FREE_GLOBAL_CACHE: mpfr_free_cache_t = 2;
7156pub type mpfr_free_cache_t = ::std::os::raw::c_uint;
7157extern "C" {
7158    pub fn mpfr_get_version() -> *const ::std::os::raw::c_char;
7159}
7160extern "C" {
7161    pub fn mpfr_get_patches() -> *const ::std::os::raw::c_char;
7162}
7163extern "C" {
7164    pub fn mpfr_buildopt_tls_p() -> ::std::os::raw::c_int;
7165}
7166extern "C" {
7167    pub fn mpfr_buildopt_float128_p() -> ::std::os::raw::c_int;
7168}
7169extern "C" {
7170    pub fn mpfr_buildopt_decimal_p() -> ::std::os::raw::c_int;
7171}
7172extern "C" {
7173    pub fn mpfr_buildopt_gmpinternals_p() -> ::std::os::raw::c_int;
7174}
7175extern "C" {
7176    pub fn mpfr_buildopt_sharedcache_p() -> ::std::os::raw::c_int;
7177}
7178extern "C" {
7179    pub fn mpfr_buildopt_tune_case() -> *const ::std::os::raw::c_char;
7180}
7181extern "C" {
7182    pub fn mpfr_get_emin() -> mpfr_exp_t;
7183}
7184extern "C" {
7185    pub fn mpfr_set_emin(arg1: mpfr_exp_t) -> ::std::os::raw::c_int;
7186}
7187extern "C" {
7188    pub fn mpfr_get_emin_min() -> mpfr_exp_t;
7189}
7190extern "C" {
7191    pub fn mpfr_get_emin_max() -> mpfr_exp_t;
7192}
7193extern "C" {
7194    pub fn mpfr_get_emax() -> mpfr_exp_t;
7195}
7196extern "C" {
7197    pub fn mpfr_set_emax(arg1: mpfr_exp_t) -> ::std::os::raw::c_int;
7198}
7199extern "C" {
7200    pub fn mpfr_get_emax_min() -> mpfr_exp_t;
7201}
7202extern "C" {
7203    pub fn mpfr_get_emax_max() -> mpfr_exp_t;
7204}
7205extern "C" {
7206    pub fn mpfr_set_default_rounding_mode(arg1: mpfr_rnd_t);
7207}
7208extern "C" {
7209    pub fn mpfr_get_default_rounding_mode() -> mpfr_rnd_t;
7210}
7211extern "C" {
7212    pub fn mpfr_print_rnd_mode(arg1: mpfr_rnd_t) -> *const ::std::os::raw::c_char;
7213}
7214extern "C" {
7215    pub fn mpfr_clear_flags();
7216}
7217extern "C" {
7218    pub fn mpfr_clear_underflow();
7219}
7220extern "C" {
7221    pub fn mpfr_clear_overflow();
7222}
7223extern "C" {
7224    pub fn mpfr_clear_divby0();
7225}
7226extern "C" {
7227    pub fn mpfr_clear_nanflag();
7228}
7229extern "C" {
7230    pub fn mpfr_clear_inexflag();
7231}
7232extern "C" {
7233    pub fn mpfr_clear_erangeflag();
7234}
7235extern "C" {
7236    pub fn mpfr_set_underflow();
7237}
7238extern "C" {
7239    pub fn mpfr_set_overflow();
7240}
7241extern "C" {
7242    pub fn mpfr_set_divby0();
7243}
7244extern "C" {
7245    pub fn mpfr_set_nanflag();
7246}
7247extern "C" {
7248    pub fn mpfr_set_inexflag();
7249}
7250extern "C" {
7251    pub fn mpfr_set_erangeflag();
7252}
7253extern "C" {
7254    pub fn mpfr_underflow_p() -> ::std::os::raw::c_int;
7255}
7256extern "C" {
7257    pub fn mpfr_overflow_p() -> ::std::os::raw::c_int;
7258}
7259extern "C" {
7260    pub fn mpfr_divby0_p() -> ::std::os::raw::c_int;
7261}
7262extern "C" {
7263    pub fn mpfr_nanflag_p() -> ::std::os::raw::c_int;
7264}
7265extern "C" {
7266    pub fn mpfr_inexflag_p() -> ::std::os::raw::c_int;
7267}
7268extern "C" {
7269    pub fn mpfr_erangeflag_p() -> ::std::os::raw::c_int;
7270}
7271extern "C" {
7272    pub fn mpfr_flags_clear(arg1: mpfr_flags_t);
7273}
7274extern "C" {
7275    pub fn mpfr_flags_set(arg1: mpfr_flags_t);
7276}
7277extern "C" {
7278    pub fn mpfr_flags_test(arg1: mpfr_flags_t) -> mpfr_flags_t;
7279}
7280extern "C" {
7281    pub fn mpfr_flags_save() -> mpfr_flags_t;
7282}
7283extern "C" {
7284    pub fn mpfr_flags_restore(arg1: mpfr_flags_t, arg2: mpfr_flags_t);
7285}
7286extern "C" {
7287    pub fn mpfr_check_range(
7288        arg1: mpfr_ptr,
7289        arg2: ::std::os::raw::c_int,
7290        arg3: mpfr_rnd_t,
7291    ) -> ::std::os::raw::c_int;
7292}
7293extern "C" {
7294    pub fn mpfr_init2(arg1: mpfr_ptr, arg2: mpfr_prec_t);
7295}
7296extern "C" {
7297    pub fn mpfr_init(arg1: mpfr_ptr);
7298}
7299extern "C" {
7300    pub fn mpfr_clear(arg1: mpfr_ptr);
7301}
7302extern "C" {
7303    pub fn mpfr_inits2(arg1: mpfr_prec_t, arg2: mpfr_ptr, ...);
7304}
7305extern "C" {
7306    pub fn mpfr_inits(arg1: mpfr_ptr, ...);
7307}
7308extern "C" {
7309    pub fn mpfr_clears(arg1: mpfr_ptr, ...);
7310}
7311extern "C" {
7312    pub fn mpfr_prec_round(
7313        arg1: mpfr_ptr,
7314        arg2: mpfr_prec_t,
7315        arg3: mpfr_rnd_t,
7316    ) -> ::std::os::raw::c_int;
7317}
7318extern "C" {
7319    pub fn mpfr_can_round(
7320        arg1: mpfr_srcptr,
7321        arg2: mpfr_exp_t,
7322        arg3: mpfr_rnd_t,
7323        arg4: mpfr_rnd_t,
7324        arg5: mpfr_prec_t,
7325    ) -> ::std::os::raw::c_int;
7326}
7327extern "C" {
7328    pub fn mpfr_min_prec(arg1: mpfr_srcptr) -> mpfr_prec_t;
7329}
7330extern "C" {
7331    pub fn mpfr_get_exp(arg1: mpfr_srcptr) -> mpfr_exp_t;
7332}
7333extern "C" {
7334    pub fn mpfr_set_exp(arg1: mpfr_ptr, arg2: mpfr_exp_t) -> ::std::os::raw::c_int;
7335}
7336extern "C" {
7337    pub fn mpfr_get_prec(arg1: mpfr_srcptr) -> mpfr_prec_t;
7338}
7339extern "C" {
7340    pub fn mpfr_set_prec(arg1: mpfr_ptr, arg2: mpfr_prec_t);
7341}
7342extern "C" {
7343    pub fn mpfr_set_prec_raw(arg1: mpfr_ptr, arg2: mpfr_prec_t);
7344}
7345extern "C" {
7346    pub fn mpfr_set_default_prec(arg1: mpfr_prec_t);
7347}
7348extern "C" {
7349    pub fn mpfr_get_default_prec() -> mpfr_prec_t;
7350}
7351extern "C" {
7352    pub fn mpfr_set_d(arg1: mpfr_ptr, arg2: f64, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
7353}
7354extern "C" {
7355    pub fn mpfr_set_flt(arg1: mpfr_ptr, arg2: f32, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
7356}
7357extern "C" {
7358    pub fn mpfr_set_ld(arg1: mpfr_ptr, arg2: u128, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
7359}
7360extern "C" {
7361    pub fn mpfr_set_z(arg1: mpfr_ptr, arg2: mpz_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
7362}
7363extern "C" {
7364    pub fn mpfr_set_z_2exp(
7365        arg1: mpfr_ptr,
7366        arg2: mpz_srcptr,
7367        arg3: mpfr_exp_t,
7368        arg4: mpfr_rnd_t,
7369    ) -> ::std::os::raw::c_int;
7370}
7371extern "C" {
7372    pub fn mpfr_set_nan(arg1: mpfr_ptr);
7373}
7374extern "C" {
7375    pub fn mpfr_set_inf(arg1: mpfr_ptr, arg2: ::std::os::raw::c_int);
7376}
7377extern "C" {
7378    pub fn mpfr_set_zero(arg1: mpfr_ptr, arg2: ::std::os::raw::c_int);
7379}
7380extern "C" {
7381    pub fn mpfr_set_f(arg1: mpfr_ptr, arg2: mpf_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
7382}
7383extern "C" {
7384    pub fn mpfr_cmp_f(arg1: mpfr_srcptr, arg2: mpf_srcptr) -> ::std::os::raw::c_int;
7385}
7386extern "C" {
7387    pub fn mpfr_get_f(arg1: mpf_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
7388}
7389extern "C" {
7390    pub fn mpfr_set_si(
7391        arg1: mpfr_ptr,
7392        arg2: ::std::os::raw::c_long,
7393        arg3: mpfr_rnd_t,
7394    ) -> ::std::os::raw::c_int;
7395}
7396extern "C" {
7397    pub fn mpfr_set_ui(
7398        arg1: mpfr_ptr,
7399        arg2: ::std::os::raw::c_ulong,
7400        arg3: mpfr_rnd_t,
7401    ) -> ::std::os::raw::c_int;
7402}
7403extern "C" {
7404    pub fn mpfr_set_si_2exp(
7405        arg1: mpfr_ptr,
7406        arg2: ::std::os::raw::c_long,
7407        arg3: mpfr_exp_t,
7408        arg4: mpfr_rnd_t,
7409    ) -> ::std::os::raw::c_int;
7410}
7411extern "C" {
7412    pub fn mpfr_set_ui_2exp(
7413        arg1: mpfr_ptr,
7414        arg2: ::std::os::raw::c_ulong,
7415        arg3: mpfr_exp_t,
7416        arg4: mpfr_rnd_t,
7417    ) -> ::std::os::raw::c_int;
7418}
7419extern "C" {
7420    pub fn mpfr_set_q(arg1: mpfr_ptr, arg2: mpq_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
7421}
7422extern "C" {
7423    pub fn mpfr_mul_q(
7424        arg1: mpfr_ptr,
7425        arg2: mpfr_srcptr,
7426        arg3: mpq_srcptr,
7427        arg4: mpfr_rnd_t,
7428    ) -> ::std::os::raw::c_int;
7429}
7430extern "C" {
7431    pub fn mpfr_div_q(
7432        arg1: mpfr_ptr,
7433        arg2: mpfr_srcptr,
7434        arg3: mpq_srcptr,
7435        arg4: mpfr_rnd_t,
7436    ) -> ::std::os::raw::c_int;
7437}
7438extern "C" {
7439    pub fn mpfr_add_q(
7440        arg1: mpfr_ptr,
7441        arg2: mpfr_srcptr,
7442        arg3: mpq_srcptr,
7443        arg4: mpfr_rnd_t,
7444    ) -> ::std::os::raw::c_int;
7445}
7446extern "C" {
7447    pub fn mpfr_sub_q(
7448        arg1: mpfr_ptr,
7449        arg2: mpfr_srcptr,
7450        arg3: mpq_srcptr,
7451        arg4: mpfr_rnd_t,
7452    ) -> ::std::os::raw::c_int;
7453}
7454extern "C" {
7455    pub fn mpfr_cmp_q(arg1: mpfr_srcptr, arg2: mpq_srcptr) -> ::std::os::raw::c_int;
7456}
7457extern "C" {
7458    pub fn mpfr_get_q(q: mpq_ptr, f: mpfr_srcptr);
7459}
7460extern "C" {
7461    pub fn mpfr_set_str(
7462        arg1: mpfr_ptr,
7463        arg2: *const ::std::os::raw::c_char,
7464        arg3: ::std::os::raw::c_int,
7465        arg4: mpfr_rnd_t,
7466    ) -> ::std::os::raw::c_int;
7467}
7468extern "C" {
7469    pub fn mpfr_init_set_str(
7470        arg1: mpfr_ptr,
7471        arg2: *const ::std::os::raw::c_char,
7472        arg3: ::std::os::raw::c_int,
7473        arg4: mpfr_rnd_t,
7474    ) -> ::std::os::raw::c_int;
7475}
7476extern "C" {
7477    pub fn mpfr_set4(
7478        arg1: mpfr_ptr,
7479        arg2: mpfr_srcptr,
7480        arg3: mpfr_rnd_t,
7481        arg4: ::std::os::raw::c_int,
7482    ) -> ::std::os::raw::c_int;
7483}
7484extern "C" {
7485    pub fn mpfr_abs(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
7486}
7487extern "C" {
7488    pub fn mpfr_set(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
7489}
7490extern "C" {
7491    pub fn mpfr_neg(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
7492}
7493extern "C" {
7494    pub fn mpfr_signbit(arg1: mpfr_srcptr) -> ::std::os::raw::c_int;
7495}
7496extern "C" {
7497    pub fn mpfr_setsign(
7498        arg1: mpfr_ptr,
7499        arg2: mpfr_srcptr,
7500        arg3: ::std::os::raw::c_int,
7501        arg4: mpfr_rnd_t,
7502    ) -> ::std::os::raw::c_int;
7503}
7504extern "C" {
7505    pub fn mpfr_copysign(
7506        arg1: mpfr_ptr,
7507        arg2: mpfr_srcptr,
7508        arg3: mpfr_srcptr,
7509        arg4: mpfr_rnd_t,
7510    ) -> ::std::os::raw::c_int;
7511}
7512extern "C" {
7513    pub fn mpfr_get_z_2exp(arg1: mpz_ptr, arg2: mpfr_srcptr) -> mpfr_exp_t;
7514}
7515extern "C" {
7516    pub fn mpfr_get_flt(arg1: mpfr_srcptr, arg2: mpfr_rnd_t) -> f32;
7517}
7518extern "C" {
7519    pub fn mpfr_get_d(arg1: mpfr_srcptr, arg2: mpfr_rnd_t) -> f64;
7520}
7521extern "C" {
7522    pub fn mpfr_get_ld(arg1: mpfr_srcptr, arg2: mpfr_rnd_t) -> u128;
7523}
7524extern "C" {
7525    pub fn mpfr_get_d1(arg1: mpfr_srcptr) -> f64;
7526}
7527extern "C" {
7528    pub fn mpfr_get_d_2exp(
7529        arg1: *mut ::std::os::raw::c_long,
7530        arg2: mpfr_srcptr,
7531        arg3: mpfr_rnd_t,
7532    ) -> f64;
7533}
7534extern "C" {
7535    pub fn mpfr_get_ld_2exp(
7536        arg1: *mut ::std::os::raw::c_long,
7537        arg2: mpfr_srcptr,
7538        arg3: mpfr_rnd_t,
7539    ) -> u128;
7540}
7541extern "C" {
7542    pub fn mpfr_frexp(
7543        arg1: *mut mpfr_exp_t,
7544        arg2: mpfr_ptr,
7545        arg3: mpfr_srcptr,
7546        arg4: mpfr_rnd_t,
7547    ) -> ::std::os::raw::c_int;
7548}
7549extern "C" {
7550    pub fn mpfr_get_si(arg1: mpfr_srcptr, arg2: mpfr_rnd_t) -> ::std::os::raw::c_long;
7551}
7552extern "C" {
7553    pub fn mpfr_get_ui(arg1: mpfr_srcptr, arg2: mpfr_rnd_t) -> ::std::os::raw::c_ulong;
7554}
7555extern "C" {
7556    pub fn mpfr_get_str_ndigits(arg1: ::std::os::raw::c_int, arg2: mpfr_prec_t) -> size_t;
7557}
7558extern "C" {
7559    pub fn mpfr_get_str(
7560        arg1: *mut ::std::os::raw::c_char,
7561        arg2: *mut mpfr_exp_t,
7562        arg3: ::std::os::raw::c_int,
7563        arg4: size_t,
7564        arg5: mpfr_srcptr,
7565        arg6: mpfr_rnd_t,
7566    ) -> *mut ::std::os::raw::c_char;
7567}
7568extern "C" {
7569    pub fn mpfr_get_z(z: mpz_ptr, f: mpfr_srcptr, arg1: mpfr_rnd_t) -> ::std::os::raw::c_int;
7570}
7571extern "C" {
7572    pub fn mpfr_free_str(arg1: *mut ::std::os::raw::c_char);
7573}
7574extern "C" {
7575    pub fn mpfr_urandom(
7576        arg1: mpfr_ptr,
7577        arg2: *mut __gmp_randstate_struct,
7578        arg3: mpfr_rnd_t,
7579    ) -> ::std::os::raw::c_int;
7580}
7581extern "C" {
7582    pub fn mpfr_grandom(
7583        arg1: mpfr_ptr,
7584        arg2: mpfr_ptr,
7585        arg3: *mut __gmp_randstate_struct,
7586        arg4: mpfr_rnd_t,
7587    ) -> ::std::os::raw::c_int;
7588}
7589extern "C" {
7590    pub fn mpfr_nrandom(
7591        arg1: mpfr_ptr,
7592        arg2: *mut __gmp_randstate_struct,
7593        arg3: mpfr_rnd_t,
7594    ) -> ::std::os::raw::c_int;
7595}
7596extern "C" {
7597    pub fn mpfr_erandom(
7598        arg1: mpfr_ptr,
7599        arg2: *mut __gmp_randstate_struct,
7600        arg3: mpfr_rnd_t,
7601    ) -> ::std::os::raw::c_int;
7602}
7603extern "C" {
7604    pub fn mpfr_urandomb(
7605        arg1: mpfr_ptr,
7606        arg2: *mut __gmp_randstate_struct,
7607    ) -> ::std::os::raw::c_int;
7608}
7609extern "C" {
7610    pub fn mpfr_nextabove(arg1: mpfr_ptr);
7611}
7612extern "C" {
7613    pub fn mpfr_nextbelow(arg1: mpfr_ptr);
7614}
7615extern "C" {
7616    pub fn mpfr_nexttoward(arg1: mpfr_ptr, arg2: mpfr_srcptr);
7617}
7618extern "C" {
7619    pub fn mpfr_printf(arg1: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
7620}
7621extern "C" {
7622    pub fn mpfr_asprintf(
7623        arg1: *mut *mut ::std::os::raw::c_char,
7624        arg2: *const ::std::os::raw::c_char,
7625        ...
7626    ) -> ::std::os::raw::c_int;
7627}
7628extern "C" {
7629    pub fn mpfr_sprintf(
7630        arg1: *mut ::std::os::raw::c_char,
7631        arg2: *const ::std::os::raw::c_char,
7632        ...
7633    ) -> ::std::os::raw::c_int;
7634}
7635extern "C" {
7636    pub fn mpfr_snprintf(
7637        arg1: *mut ::std::os::raw::c_char,
7638        arg2: size_t,
7639        arg3: *const ::std::os::raw::c_char,
7640        ...
7641    ) -> ::std::os::raw::c_int;
7642}
7643extern "C" {
7644    pub fn mpfr_pow(
7645        arg1: mpfr_ptr,
7646        arg2: mpfr_srcptr,
7647        arg3: mpfr_srcptr,
7648        arg4: mpfr_rnd_t,
7649    ) -> ::std::os::raw::c_int;
7650}
7651extern "C" {
7652    pub fn mpfr_pow_si(
7653        arg1: mpfr_ptr,
7654        arg2: mpfr_srcptr,
7655        arg3: ::std::os::raw::c_long,
7656        arg4: mpfr_rnd_t,
7657    ) -> ::std::os::raw::c_int;
7658}
7659extern "C" {
7660    pub fn mpfr_pow_ui(
7661        arg1: mpfr_ptr,
7662        arg2: mpfr_srcptr,
7663        arg3: ::std::os::raw::c_ulong,
7664        arg4: mpfr_rnd_t,
7665    ) -> ::std::os::raw::c_int;
7666}
7667extern "C" {
7668    pub fn mpfr_ui_pow_ui(
7669        arg1: mpfr_ptr,
7670        arg2: ::std::os::raw::c_ulong,
7671        arg3: ::std::os::raw::c_ulong,
7672        arg4: mpfr_rnd_t,
7673    ) -> ::std::os::raw::c_int;
7674}
7675extern "C" {
7676    pub fn mpfr_ui_pow(
7677        arg1: mpfr_ptr,
7678        arg2: ::std::os::raw::c_ulong,
7679        arg3: mpfr_srcptr,
7680        arg4: mpfr_rnd_t,
7681    ) -> ::std::os::raw::c_int;
7682}
7683extern "C" {
7684    pub fn mpfr_pow_z(
7685        arg1: mpfr_ptr,
7686        arg2: mpfr_srcptr,
7687        arg3: mpz_srcptr,
7688        arg4: mpfr_rnd_t,
7689    ) -> ::std::os::raw::c_int;
7690}
7691extern "C" {
7692    pub fn mpfr_sqrt(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
7693}
7694extern "C" {
7695    pub fn mpfr_sqrt_ui(
7696        arg1: mpfr_ptr,
7697        arg2: ::std::os::raw::c_ulong,
7698        arg3: mpfr_rnd_t,
7699    ) -> ::std::os::raw::c_int;
7700}
7701extern "C" {
7702    pub fn mpfr_rec_sqrt(
7703        arg1: mpfr_ptr,
7704        arg2: mpfr_srcptr,
7705        arg3: mpfr_rnd_t,
7706    ) -> ::std::os::raw::c_int;
7707}
7708extern "C" {
7709    pub fn mpfr_add(
7710        arg1: mpfr_ptr,
7711        arg2: mpfr_srcptr,
7712        arg3: mpfr_srcptr,
7713        arg4: mpfr_rnd_t,
7714    ) -> ::std::os::raw::c_int;
7715}
7716extern "C" {
7717    pub fn mpfr_sub(
7718        arg1: mpfr_ptr,
7719        arg2: mpfr_srcptr,
7720        arg3: mpfr_srcptr,
7721        arg4: mpfr_rnd_t,
7722    ) -> ::std::os::raw::c_int;
7723}
7724extern "C" {
7725    pub fn mpfr_mul(
7726        arg1: mpfr_ptr,
7727        arg2: mpfr_srcptr,
7728        arg3: mpfr_srcptr,
7729        arg4: mpfr_rnd_t,
7730    ) -> ::std::os::raw::c_int;
7731}
7732extern "C" {
7733    pub fn mpfr_div(
7734        arg1: mpfr_ptr,
7735        arg2: mpfr_srcptr,
7736        arg3: mpfr_srcptr,
7737        arg4: mpfr_rnd_t,
7738    ) -> ::std::os::raw::c_int;
7739}
7740extern "C" {
7741    pub fn mpfr_add_ui(
7742        arg1: mpfr_ptr,
7743        arg2: mpfr_srcptr,
7744        arg3: ::std::os::raw::c_ulong,
7745        arg4: mpfr_rnd_t,
7746    ) -> ::std::os::raw::c_int;
7747}
7748extern "C" {
7749    pub fn mpfr_sub_ui(
7750        arg1: mpfr_ptr,
7751        arg2: mpfr_srcptr,
7752        arg3: ::std::os::raw::c_ulong,
7753        arg4: mpfr_rnd_t,
7754    ) -> ::std::os::raw::c_int;
7755}
7756extern "C" {
7757    pub fn mpfr_ui_sub(
7758        arg1: mpfr_ptr,
7759        arg2: ::std::os::raw::c_ulong,
7760        arg3: mpfr_srcptr,
7761        arg4: mpfr_rnd_t,
7762    ) -> ::std::os::raw::c_int;
7763}
7764extern "C" {
7765    pub fn mpfr_mul_ui(
7766        arg1: mpfr_ptr,
7767        arg2: mpfr_srcptr,
7768        arg3: ::std::os::raw::c_ulong,
7769        arg4: mpfr_rnd_t,
7770    ) -> ::std::os::raw::c_int;
7771}
7772extern "C" {
7773    pub fn mpfr_div_ui(
7774        arg1: mpfr_ptr,
7775        arg2: mpfr_srcptr,
7776        arg3: ::std::os::raw::c_ulong,
7777        arg4: mpfr_rnd_t,
7778    ) -> ::std::os::raw::c_int;
7779}
7780extern "C" {
7781    pub fn mpfr_ui_div(
7782        arg1: mpfr_ptr,
7783        arg2: ::std::os::raw::c_ulong,
7784        arg3: mpfr_srcptr,
7785        arg4: mpfr_rnd_t,
7786    ) -> ::std::os::raw::c_int;
7787}
7788extern "C" {
7789    pub fn mpfr_add_si(
7790        arg1: mpfr_ptr,
7791        arg2: mpfr_srcptr,
7792        arg3: ::std::os::raw::c_long,
7793        arg4: mpfr_rnd_t,
7794    ) -> ::std::os::raw::c_int;
7795}
7796extern "C" {
7797    pub fn mpfr_sub_si(
7798        arg1: mpfr_ptr,
7799        arg2: mpfr_srcptr,
7800        arg3: ::std::os::raw::c_long,
7801        arg4: mpfr_rnd_t,
7802    ) -> ::std::os::raw::c_int;
7803}
7804extern "C" {
7805    pub fn mpfr_si_sub(
7806        arg1: mpfr_ptr,
7807        arg2: ::std::os::raw::c_long,
7808        arg3: mpfr_srcptr,
7809        arg4: mpfr_rnd_t,
7810    ) -> ::std::os::raw::c_int;
7811}
7812extern "C" {
7813    pub fn mpfr_mul_si(
7814        arg1: mpfr_ptr,
7815        arg2: mpfr_srcptr,
7816        arg3: ::std::os::raw::c_long,
7817        arg4: mpfr_rnd_t,
7818    ) -> ::std::os::raw::c_int;
7819}
7820extern "C" {
7821    pub fn mpfr_div_si(
7822        arg1: mpfr_ptr,
7823        arg2: mpfr_srcptr,
7824        arg3: ::std::os::raw::c_long,
7825        arg4: mpfr_rnd_t,
7826    ) -> ::std::os::raw::c_int;
7827}
7828extern "C" {
7829    pub fn mpfr_si_div(
7830        arg1: mpfr_ptr,
7831        arg2: ::std::os::raw::c_long,
7832        arg3: mpfr_srcptr,
7833        arg4: mpfr_rnd_t,
7834    ) -> ::std::os::raw::c_int;
7835}
7836extern "C" {
7837    pub fn mpfr_add_d(
7838        arg1: mpfr_ptr,
7839        arg2: mpfr_srcptr,
7840        arg3: f64,
7841        arg4: mpfr_rnd_t,
7842    ) -> ::std::os::raw::c_int;
7843}
7844extern "C" {
7845    pub fn mpfr_sub_d(
7846        arg1: mpfr_ptr,
7847        arg2: mpfr_srcptr,
7848        arg3: f64,
7849        arg4: mpfr_rnd_t,
7850    ) -> ::std::os::raw::c_int;
7851}
7852extern "C" {
7853    pub fn mpfr_d_sub(
7854        arg1: mpfr_ptr,
7855        arg2: f64,
7856        arg3: mpfr_srcptr,
7857        arg4: mpfr_rnd_t,
7858    ) -> ::std::os::raw::c_int;
7859}
7860extern "C" {
7861    pub fn mpfr_mul_d(
7862        arg1: mpfr_ptr,
7863        arg2: mpfr_srcptr,
7864        arg3: f64,
7865        arg4: mpfr_rnd_t,
7866    ) -> ::std::os::raw::c_int;
7867}
7868extern "C" {
7869    pub fn mpfr_div_d(
7870        arg1: mpfr_ptr,
7871        arg2: mpfr_srcptr,
7872        arg3: f64,
7873        arg4: mpfr_rnd_t,
7874    ) -> ::std::os::raw::c_int;
7875}
7876extern "C" {
7877    pub fn mpfr_d_div(
7878        arg1: mpfr_ptr,
7879        arg2: f64,
7880        arg3: mpfr_srcptr,
7881        arg4: mpfr_rnd_t,
7882    ) -> ::std::os::raw::c_int;
7883}
7884extern "C" {
7885    pub fn mpfr_sqr(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
7886}
7887extern "C" {
7888    pub fn mpfr_const_pi(arg1: mpfr_ptr, arg2: mpfr_rnd_t) -> ::std::os::raw::c_int;
7889}
7890extern "C" {
7891    pub fn mpfr_const_log2(arg1: mpfr_ptr, arg2: mpfr_rnd_t) -> ::std::os::raw::c_int;
7892}
7893extern "C" {
7894    pub fn mpfr_const_euler(arg1: mpfr_ptr, arg2: mpfr_rnd_t) -> ::std::os::raw::c_int;
7895}
7896extern "C" {
7897    pub fn mpfr_const_catalan(arg1: mpfr_ptr, arg2: mpfr_rnd_t) -> ::std::os::raw::c_int;
7898}
7899extern "C" {
7900    pub fn mpfr_agm(
7901        arg1: mpfr_ptr,
7902        arg2: mpfr_srcptr,
7903        arg3: mpfr_srcptr,
7904        arg4: mpfr_rnd_t,
7905    ) -> ::std::os::raw::c_int;
7906}
7907extern "C" {
7908    pub fn mpfr_log(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
7909}
7910extern "C" {
7911    pub fn mpfr_log2(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
7912}
7913extern "C" {
7914    pub fn mpfr_log10(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t)
7915        -> ::std::os::raw::c_int;
7916}
7917extern "C" {
7918    pub fn mpfr_log1p(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t)
7919        -> ::std::os::raw::c_int;
7920}
7921extern "C" {
7922    pub fn mpfr_log_ui(
7923        arg1: mpfr_ptr,
7924        arg2: ::std::os::raw::c_ulong,
7925        arg3: mpfr_rnd_t,
7926    ) -> ::std::os::raw::c_int;
7927}
7928extern "C" {
7929    pub fn mpfr_exp(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
7930}
7931extern "C" {
7932    pub fn mpfr_exp2(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
7933}
7934extern "C" {
7935    pub fn mpfr_exp10(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t)
7936        -> ::std::os::raw::c_int;
7937}
7938extern "C" {
7939    pub fn mpfr_expm1(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t)
7940        -> ::std::os::raw::c_int;
7941}
7942extern "C" {
7943    pub fn mpfr_eint(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
7944}
7945extern "C" {
7946    pub fn mpfr_li2(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
7947}
7948extern "C" {
7949    pub fn mpfr_cmp(arg1: mpfr_srcptr, arg2: mpfr_srcptr) -> ::std::os::raw::c_int;
7950}
7951extern "C" {
7952    pub fn mpfr_cmp3(
7953        arg1: mpfr_srcptr,
7954        arg2: mpfr_srcptr,
7955        arg3: ::std::os::raw::c_int,
7956    ) -> ::std::os::raw::c_int;
7957}
7958extern "C" {
7959    pub fn mpfr_cmp_d(arg1: mpfr_srcptr, arg2: f64) -> ::std::os::raw::c_int;
7960}
7961extern "C" {
7962    pub fn mpfr_cmp_ld(arg1: mpfr_srcptr, arg2: u128) -> ::std::os::raw::c_int;
7963}
7964extern "C" {
7965    pub fn mpfr_cmp_ui(arg1: mpfr_srcptr, arg2: ::std::os::raw::c_ulong) -> ::std::os::raw::c_int;
7966}
7967extern "C" {
7968    pub fn mpfr_cmp_si(arg1: mpfr_srcptr, arg2: ::std::os::raw::c_long) -> ::std::os::raw::c_int;
7969}
7970extern "C" {
7971    pub fn mpfr_cmp_ui_2exp(
7972        arg1: mpfr_srcptr,
7973        arg2: ::std::os::raw::c_ulong,
7974        arg3: mpfr_exp_t,
7975    ) -> ::std::os::raw::c_int;
7976}
7977extern "C" {
7978    pub fn mpfr_cmp_si_2exp(
7979        arg1: mpfr_srcptr,
7980        arg2: ::std::os::raw::c_long,
7981        arg3: mpfr_exp_t,
7982    ) -> ::std::os::raw::c_int;
7983}
7984extern "C" {
7985    pub fn mpfr_cmpabs(arg1: mpfr_srcptr, arg2: mpfr_srcptr) -> ::std::os::raw::c_int;
7986}
7987extern "C" {
7988    pub fn mpfr_cmpabs_ui(
7989        arg1: mpfr_srcptr,
7990        arg2: ::std::os::raw::c_ulong,
7991    ) -> ::std::os::raw::c_int;
7992}
7993extern "C" {
7994    pub fn mpfr_reldiff(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_srcptr, arg4: mpfr_rnd_t);
7995}
7996extern "C" {
7997    pub fn mpfr_eq(
7998        arg1: mpfr_srcptr,
7999        arg2: mpfr_srcptr,
8000        arg3: ::std::os::raw::c_ulong,
8001    ) -> ::std::os::raw::c_int;
8002}
8003extern "C" {
8004    pub fn mpfr_sgn(arg1: mpfr_srcptr) -> ::std::os::raw::c_int;
8005}
8006extern "C" {
8007    pub fn mpfr_mul_2exp(
8008        arg1: mpfr_ptr,
8009        arg2: mpfr_srcptr,
8010        arg3: ::std::os::raw::c_ulong,
8011        arg4: mpfr_rnd_t,
8012    ) -> ::std::os::raw::c_int;
8013}
8014extern "C" {
8015    pub fn mpfr_div_2exp(
8016        arg1: mpfr_ptr,
8017        arg2: mpfr_srcptr,
8018        arg3: ::std::os::raw::c_ulong,
8019        arg4: mpfr_rnd_t,
8020    ) -> ::std::os::raw::c_int;
8021}
8022extern "C" {
8023    pub fn mpfr_mul_2ui(
8024        arg1: mpfr_ptr,
8025        arg2: mpfr_srcptr,
8026        arg3: ::std::os::raw::c_ulong,
8027        arg4: mpfr_rnd_t,
8028    ) -> ::std::os::raw::c_int;
8029}
8030extern "C" {
8031    pub fn mpfr_div_2ui(
8032        arg1: mpfr_ptr,
8033        arg2: mpfr_srcptr,
8034        arg3: ::std::os::raw::c_ulong,
8035        arg4: mpfr_rnd_t,
8036    ) -> ::std::os::raw::c_int;
8037}
8038extern "C" {
8039    pub fn mpfr_mul_2si(
8040        arg1: mpfr_ptr,
8041        arg2: mpfr_srcptr,
8042        arg3: ::std::os::raw::c_long,
8043        arg4: mpfr_rnd_t,
8044    ) -> ::std::os::raw::c_int;
8045}
8046extern "C" {
8047    pub fn mpfr_div_2si(
8048        arg1: mpfr_ptr,
8049        arg2: mpfr_srcptr,
8050        arg3: ::std::os::raw::c_long,
8051        arg4: mpfr_rnd_t,
8052    ) -> ::std::os::raw::c_int;
8053}
8054extern "C" {
8055    pub fn mpfr_rint(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
8056}
8057extern "C" {
8058    pub fn mpfr_roundeven(arg1: mpfr_ptr, arg2: mpfr_srcptr) -> ::std::os::raw::c_int;
8059}
8060extern "C" {
8061    pub fn mpfr_round(arg1: mpfr_ptr, arg2: mpfr_srcptr) -> ::std::os::raw::c_int;
8062}
8063extern "C" {
8064    pub fn mpfr_trunc(arg1: mpfr_ptr, arg2: mpfr_srcptr) -> ::std::os::raw::c_int;
8065}
8066extern "C" {
8067    pub fn mpfr_ceil(arg1: mpfr_ptr, arg2: mpfr_srcptr) -> ::std::os::raw::c_int;
8068}
8069extern "C" {
8070    pub fn mpfr_floor(arg1: mpfr_ptr, arg2: mpfr_srcptr) -> ::std::os::raw::c_int;
8071}
8072extern "C" {
8073    pub fn mpfr_rint_roundeven(
8074        arg1: mpfr_ptr,
8075        arg2: mpfr_srcptr,
8076        arg3: mpfr_rnd_t,
8077    ) -> ::std::os::raw::c_int;
8078}
8079extern "C" {
8080    pub fn mpfr_rint_round(
8081        arg1: mpfr_ptr,
8082        arg2: mpfr_srcptr,
8083        arg3: mpfr_rnd_t,
8084    ) -> ::std::os::raw::c_int;
8085}
8086extern "C" {
8087    pub fn mpfr_rint_trunc(
8088        arg1: mpfr_ptr,
8089        arg2: mpfr_srcptr,
8090        arg3: mpfr_rnd_t,
8091    ) -> ::std::os::raw::c_int;
8092}
8093extern "C" {
8094    pub fn mpfr_rint_ceil(
8095        arg1: mpfr_ptr,
8096        arg2: mpfr_srcptr,
8097        arg3: mpfr_rnd_t,
8098    ) -> ::std::os::raw::c_int;
8099}
8100extern "C" {
8101    pub fn mpfr_rint_floor(
8102        arg1: mpfr_ptr,
8103        arg2: mpfr_srcptr,
8104        arg3: mpfr_rnd_t,
8105    ) -> ::std::os::raw::c_int;
8106}
8107extern "C" {
8108    pub fn mpfr_frac(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
8109}
8110extern "C" {
8111    pub fn mpfr_modf(
8112        arg1: mpfr_ptr,
8113        arg2: mpfr_ptr,
8114        arg3: mpfr_srcptr,
8115        arg4: mpfr_rnd_t,
8116    ) -> ::std::os::raw::c_int;
8117}
8118extern "C" {
8119    pub fn mpfr_remquo(
8120        arg1: mpfr_ptr,
8121        arg2: *mut ::std::os::raw::c_long,
8122        arg3: mpfr_srcptr,
8123        arg4: mpfr_srcptr,
8124        arg5: mpfr_rnd_t,
8125    ) -> ::std::os::raw::c_int;
8126}
8127extern "C" {
8128    pub fn mpfr_remainder(
8129        arg1: mpfr_ptr,
8130        arg2: mpfr_srcptr,
8131        arg3: mpfr_srcptr,
8132        arg4: mpfr_rnd_t,
8133    ) -> ::std::os::raw::c_int;
8134}
8135extern "C" {
8136    pub fn mpfr_fmod(
8137        arg1: mpfr_ptr,
8138        arg2: mpfr_srcptr,
8139        arg3: mpfr_srcptr,
8140        arg4: mpfr_rnd_t,
8141    ) -> ::std::os::raw::c_int;
8142}
8143extern "C" {
8144    pub fn mpfr_fmodquo(
8145        arg1: mpfr_ptr,
8146        arg2: *mut ::std::os::raw::c_long,
8147        arg3: mpfr_srcptr,
8148        arg4: mpfr_srcptr,
8149        arg5: mpfr_rnd_t,
8150    ) -> ::std::os::raw::c_int;
8151}
8152extern "C" {
8153    pub fn mpfr_fits_ulong_p(arg1: mpfr_srcptr, arg2: mpfr_rnd_t) -> ::std::os::raw::c_int;
8154}
8155extern "C" {
8156    pub fn mpfr_fits_slong_p(arg1: mpfr_srcptr, arg2: mpfr_rnd_t) -> ::std::os::raw::c_int;
8157}
8158extern "C" {
8159    pub fn mpfr_fits_uint_p(arg1: mpfr_srcptr, arg2: mpfr_rnd_t) -> ::std::os::raw::c_int;
8160}
8161extern "C" {
8162    pub fn mpfr_fits_sint_p(arg1: mpfr_srcptr, arg2: mpfr_rnd_t) -> ::std::os::raw::c_int;
8163}
8164extern "C" {
8165    pub fn mpfr_fits_ushort_p(arg1: mpfr_srcptr, arg2: mpfr_rnd_t) -> ::std::os::raw::c_int;
8166}
8167extern "C" {
8168    pub fn mpfr_fits_sshort_p(arg1: mpfr_srcptr, arg2: mpfr_rnd_t) -> ::std::os::raw::c_int;
8169}
8170extern "C" {
8171    pub fn mpfr_fits_uintmax_p(arg1: mpfr_srcptr, arg2: mpfr_rnd_t) -> ::std::os::raw::c_int;
8172}
8173extern "C" {
8174    pub fn mpfr_fits_intmax_p(arg1: mpfr_srcptr, arg2: mpfr_rnd_t) -> ::std::os::raw::c_int;
8175}
8176extern "C" {
8177    pub fn mpfr_extract(arg1: mpz_ptr, arg2: mpfr_srcptr, arg3: ::std::os::raw::c_uint);
8178}
8179extern "C" {
8180    pub fn mpfr_swap(arg1: mpfr_ptr, arg2: mpfr_ptr);
8181}
8182extern "C" {
8183    pub fn mpfr_dump(arg1: mpfr_srcptr);
8184}
8185extern "C" {
8186    pub fn mpfr_nan_p(arg1: mpfr_srcptr) -> ::std::os::raw::c_int;
8187}
8188extern "C" {
8189    pub fn mpfr_inf_p(arg1: mpfr_srcptr) -> ::std::os::raw::c_int;
8190}
8191extern "C" {
8192    pub fn mpfr_number_p(arg1: mpfr_srcptr) -> ::std::os::raw::c_int;
8193}
8194extern "C" {
8195    pub fn mpfr_integer_p(arg1: mpfr_srcptr) -> ::std::os::raw::c_int;
8196}
8197extern "C" {
8198    pub fn mpfr_zero_p(arg1: mpfr_srcptr) -> ::std::os::raw::c_int;
8199}
8200extern "C" {
8201    pub fn mpfr_regular_p(arg1: mpfr_srcptr) -> ::std::os::raw::c_int;
8202}
8203extern "C" {
8204    pub fn mpfr_greater_p(arg1: mpfr_srcptr, arg2: mpfr_srcptr) -> ::std::os::raw::c_int;
8205}
8206extern "C" {
8207    pub fn mpfr_greaterequal_p(arg1: mpfr_srcptr, arg2: mpfr_srcptr) -> ::std::os::raw::c_int;
8208}
8209extern "C" {
8210    pub fn mpfr_less_p(arg1: mpfr_srcptr, arg2: mpfr_srcptr) -> ::std::os::raw::c_int;
8211}
8212extern "C" {
8213    pub fn mpfr_lessequal_p(arg1: mpfr_srcptr, arg2: mpfr_srcptr) -> ::std::os::raw::c_int;
8214}
8215extern "C" {
8216    pub fn mpfr_lessgreater_p(arg1: mpfr_srcptr, arg2: mpfr_srcptr) -> ::std::os::raw::c_int;
8217}
8218extern "C" {
8219    pub fn mpfr_equal_p(arg1: mpfr_srcptr, arg2: mpfr_srcptr) -> ::std::os::raw::c_int;
8220}
8221extern "C" {
8222    pub fn mpfr_unordered_p(arg1: mpfr_srcptr, arg2: mpfr_srcptr) -> ::std::os::raw::c_int;
8223}
8224extern "C" {
8225    pub fn mpfr_atanh(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t)
8226        -> ::std::os::raw::c_int;
8227}
8228extern "C" {
8229    pub fn mpfr_acosh(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t)
8230        -> ::std::os::raw::c_int;
8231}
8232extern "C" {
8233    pub fn mpfr_asinh(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t)
8234        -> ::std::os::raw::c_int;
8235}
8236extern "C" {
8237    pub fn mpfr_cosh(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
8238}
8239extern "C" {
8240    pub fn mpfr_sinh(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
8241}
8242extern "C" {
8243    pub fn mpfr_tanh(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
8244}
8245extern "C" {
8246    pub fn mpfr_sinh_cosh(
8247        arg1: mpfr_ptr,
8248        arg2: mpfr_ptr,
8249        arg3: mpfr_srcptr,
8250        arg4: mpfr_rnd_t,
8251    ) -> ::std::os::raw::c_int;
8252}
8253extern "C" {
8254    pub fn mpfr_sech(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
8255}
8256extern "C" {
8257    pub fn mpfr_csch(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
8258}
8259extern "C" {
8260    pub fn mpfr_coth(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
8261}
8262extern "C" {
8263    pub fn mpfr_acos(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
8264}
8265extern "C" {
8266    pub fn mpfr_asin(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
8267}
8268extern "C" {
8269    pub fn mpfr_atan(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
8270}
8271extern "C" {
8272    pub fn mpfr_sin(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
8273}
8274extern "C" {
8275    pub fn mpfr_sin_cos(
8276        arg1: mpfr_ptr,
8277        arg2: mpfr_ptr,
8278        arg3: mpfr_srcptr,
8279        arg4: mpfr_rnd_t,
8280    ) -> ::std::os::raw::c_int;
8281}
8282extern "C" {
8283    pub fn mpfr_cos(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
8284}
8285extern "C" {
8286    pub fn mpfr_tan(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
8287}
8288extern "C" {
8289    pub fn mpfr_atan2(
8290        arg1: mpfr_ptr,
8291        arg2: mpfr_srcptr,
8292        arg3: mpfr_srcptr,
8293        arg4: mpfr_rnd_t,
8294    ) -> ::std::os::raw::c_int;
8295}
8296extern "C" {
8297    pub fn mpfr_sec(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
8298}
8299extern "C" {
8300    pub fn mpfr_csc(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
8301}
8302extern "C" {
8303    pub fn mpfr_cot(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
8304}
8305extern "C" {
8306    pub fn mpfr_hypot(
8307        arg1: mpfr_ptr,
8308        arg2: mpfr_srcptr,
8309        arg3: mpfr_srcptr,
8310        arg4: mpfr_rnd_t,
8311    ) -> ::std::os::raw::c_int;
8312}
8313extern "C" {
8314    pub fn mpfr_erf(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
8315}
8316extern "C" {
8317    pub fn mpfr_erfc(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
8318}
8319extern "C" {
8320    pub fn mpfr_cbrt(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
8321}
8322extern "C" {
8323    pub fn mpfr_root(
8324        arg1: mpfr_ptr,
8325        arg2: mpfr_srcptr,
8326        arg3: ::std::os::raw::c_ulong,
8327        arg4: mpfr_rnd_t,
8328    ) -> ::std::os::raw::c_int;
8329}
8330extern "C" {
8331    pub fn mpfr_rootn_ui(
8332        arg1: mpfr_ptr,
8333        arg2: mpfr_srcptr,
8334        arg3: ::std::os::raw::c_ulong,
8335        arg4: mpfr_rnd_t,
8336    ) -> ::std::os::raw::c_int;
8337}
8338extern "C" {
8339    pub fn mpfr_gamma(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t)
8340        -> ::std::os::raw::c_int;
8341}
8342extern "C" {
8343    pub fn mpfr_gamma_inc(
8344        arg1: mpfr_ptr,
8345        arg2: mpfr_srcptr,
8346        arg3: mpfr_srcptr,
8347        arg4: mpfr_rnd_t,
8348    ) -> ::std::os::raw::c_int;
8349}
8350extern "C" {
8351    pub fn mpfr_beta(
8352        arg1: mpfr_ptr,
8353        arg2: mpfr_srcptr,
8354        arg3: mpfr_srcptr,
8355        arg4: mpfr_rnd_t,
8356    ) -> ::std::os::raw::c_int;
8357}
8358extern "C" {
8359    pub fn mpfr_lngamma(
8360        arg1: mpfr_ptr,
8361        arg2: mpfr_srcptr,
8362        arg3: mpfr_rnd_t,
8363    ) -> ::std::os::raw::c_int;
8364}
8365extern "C" {
8366    pub fn mpfr_lgamma(
8367        arg1: mpfr_ptr,
8368        arg2: *mut ::std::os::raw::c_int,
8369        arg3: mpfr_srcptr,
8370        arg4: mpfr_rnd_t,
8371    ) -> ::std::os::raw::c_int;
8372}
8373extern "C" {
8374    pub fn mpfr_digamma(
8375        arg1: mpfr_ptr,
8376        arg2: mpfr_srcptr,
8377        arg3: mpfr_rnd_t,
8378    ) -> ::std::os::raw::c_int;
8379}
8380extern "C" {
8381    pub fn mpfr_zeta(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
8382}
8383extern "C" {
8384    pub fn mpfr_zeta_ui(
8385        arg1: mpfr_ptr,
8386        arg2: ::std::os::raw::c_ulong,
8387        arg3: mpfr_rnd_t,
8388    ) -> ::std::os::raw::c_int;
8389}
8390extern "C" {
8391    pub fn mpfr_fac_ui(
8392        arg1: mpfr_ptr,
8393        arg2: ::std::os::raw::c_ulong,
8394        arg3: mpfr_rnd_t,
8395    ) -> ::std::os::raw::c_int;
8396}
8397extern "C" {
8398    pub fn mpfr_j0(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
8399}
8400extern "C" {
8401    pub fn mpfr_j1(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
8402}
8403extern "C" {
8404    pub fn mpfr_jn(
8405        arg1: mpfr_ptr,
8406        arg2: ::std::os::raw::c_long,
8407        arg3: mpfr_srcptr,
8408        arg4: mpfr_rnd_t,
8409    ) -> ::std::os::raw::c_int;
8410}
8411extern "C" {
8412    pub fn mpfr_y0(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
8413}
8414extern "C" {
8415    pub fn mpfr_y1(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
8416}
8417extern "C" {
8418    pub fn mpfr_yn(
8419        arg1: mpfr_ptr,
8420        arg2: ::std::os::raw::c_long,
8421        arg3: mpfr_srcptr,
8422        arg4: mpfr_rnd_t,
8423    ) -> ::std::os::raw::c_int;
8424}
8425extern "C" {
8426    pub fn mpfr_ai(arg1: mpfr_ptr, arg2: mpfr_srcptr, arg3: mpfr_rnd_t) -> ::std::os::raw::c_int;
8427}
8428extern "C" {
8429    pub fn mpfr_min(
8430        arg1: mpfr_ptr,
8431        arg2: mpfr_srcptr,
8432        arg3: mpfr_srcptr,
8433        arg4: mpfr_rnd_t,
8434    ) -> ::std::os::raw::c_int;
8435}
8436extern "C" {
8437    pub fn mpfr_max(
8438        arg1: mpfr_ptr,
8439        arg2: mpfr_srcptr,
8440        arg3: mpfr_srcptr,
8441        arg4: mpfr_rnd_t,
8442    ) -> ::std::os::raw::c_int;
8443}
8444extern "C" {
8445    pub fn mpfr_dim(
8446        arg1: mpfr_ptr,
8447        arg2: mpfr_srcptr,
8448        arg3: mpfr_srcptr,
8449        arg4: mpfr_rnd_t,
8450    ) -> ::std::os::raw::c_int;
8451}
8452extern "C" {
8453    pub fn mpfr_mul_z(
8454        arg1: mpfr_ptr,
8455        arg2: mpfr_srcptr,
8456        arg3: mpz_srcptr,
8457        arg4: mpfr_rnd_t,
8458    ) -> ::std::os::raw::c_int;
8459}
8460extern "C" {
8461    pub fn mpfr_div_z(
8462        arg1: mpfr_ptr,
8463        arg2: mpfr_srcptr,
8464        arg3: mpz_srcptr,
8465        arg4: mpfr_rnd_t,
8466    ) -> ::std::os::raw::c_int;
8467}
8468extern "C" {
8469    pub fn mpfr_add_z(
8470        arg1: mpfr_ptr,
8471        arg2: mpfr_srcptr,
8472        arg3: mpz_srcptr,
8473        arg4: mpfr_rnd_t,
8474    ) -> ::std::os::raw::c_int;
8475}
8476extern "C" {
8477    pub fn mpfr_sub_z(
8478        arg1: mpfr_ptr,
8479        arg2: mpfr_srcptr,
8480        arg3: mpz_srcptr,
8481        arg4: mpfr_rnd_t,
8482    ) -> ::std::os::raw::c_int;
8483}
8484extern "C" {
8485    pub fn mpfr_z_sub(
8486        arg1: mpfr_ptr,
8487        arg2: mpz_srcptr,
8488        arg3: mpfr_srcptr,
8489        arg4: mpfr_rnd_t,
8490    ) -> ::std::os::raw::c_int;
8491}
8492extern "C" {
8493    pub fn mpfr_cmp_z(arg1: mpfr_srcptr, arg2: mpz_srcptr) -> ::std::os::raw::c_int;
8494}
8495extern "C" {
8496    pub fn mpfr_fma(
8497        arg1: mpfr_ptr,
8498        arg2: mpfr_srcptr,
8499        arg3: mpfr_srcptr,
8500        arg4: mpfr_srcptr,
8501        arg5: mpfr_rnd_t,
8502    ) -> ::std::os::raw::c_int;
8503}
8504extern "C" {
8505    pub fn mpfr_fms(
8506        arg1: mpfr_ptr,
8507        arg2: mpfr_srcptr,
8508        arg3: mpfr_srcptr,
8509        arg4: mpfr_srcptr,
8510        arg5: mpfr_rnd_t,
8511    ) -> ::std::os::raw::c_int;
8512}
8513extern "C" {
8514    pub fn mpfr_fmma(
8515        arg1: mpfr_ptr,
8516        arg2: mpfr_srcptr,
8517        arg3: mpfr_srcptr,
8518        arg4: mpfr_srcptr,
8519        arg5: mpfr_srcptr,
8520        arg6: mpfr_rnd_t,
8521    ) -> ::std::os::raw::c_int;
8522}
8523extern "C" {
8524    pub fn mpfr_fmms(
8525        arg1: mpfr_ptr,
8526        arg2: mpfr_srcptr,
8527        arg3: mpfr_srcptr,
8528        arg4: mpfr_srcptr,
8529        arg5: mpfr_srcptr,
8530        arg6: mpfr_rnd_t,
8531    ) -> ::std::os::raw::c_int;
8532}
8533extern "C" {
8534    pub fn mpfr_sum(
8535        arg1: mpfr_ptr,
8536        arg2: *const mpfr_ptr,
8537        arg3: ::std::os::raw::c_ulong,
8538        arg4: mpfr_rnd_t,
8539    ) -> ::std::os::raw::c_int;
8540}
8541extern "C" {
8542    pub fn mpfr_dot(
8543        arg1: mpfr_ptr,
8544        arg2: *const mpfr_ptr,
8545        arg3: *const mpfr_ptr,
8546        arg4: ::std::os::raw::c_ulong,
8547        arg5: mpfr_rnd_t,
8548    ) -> ::std::os::raw::c_int;
8549}
8550extern "C" {
8551    pub fn mpfr_free_cache();
8552}
8553extern "C" {
8554    pub fn mpfr_free_cache2(arg1: mpfr_free_cache_t);
8555}
8556extern "C" {
8557    pub fn mpfr_free_pool();
8558}
8559extern "C" {
8560    pub fn mpfr_mp_memory_cleanup() -> ::std::os::raw::c_int;
8561}
8562extern "C" {
8563    pub fn mpfr_subnormalize(
8564        arg1: mpfr_ptr,
8565        arg2: ::std::os::raw::c_int,
8566        arg3: mpfr_rnd_t,
8567    ) -> ::std::os::raw::c_int;
8568}
8569extern "C" {
8570    pub fn mpfr_strtofr(
8571        arg1: mpfr_ptr,
8572        arg2: *const ::std::os::raw::c_char,
8573        arg3: *mut *mut ::std::os::raw::c_char,
8574        arg4: ::std::os::raw::c_int,
8575        arg5: mpfr_rnd_t,
8576    ) -> ::std::os::raw::c_int;
8577}
8578extern "C" {
8579    pub fn mpfr_round_nearest_away_begin(arg1: *mut __mpfr_struct);
8580}
8581extern "C" {
8582    pub fn mpfr_round_nearest_away_end(
8583        arg1: *mut __mpfr_struct,
8584        arg2: ::std::os::raw::c_int,
8585    ) -> ::std::os::raw::c_int;
8586}
8587extern "C" {
8588    pub fn mpfr_custom_get_size(arg1: mpfr_prec_t) -> size_t;
8589}
8590extern "C" {
8591    pub fn mpfr_custom_init(arg1: *mut ::std::os::raw::c_void, arg2: mpfr_prec_t);
8592}
8593extern "C" {
8594    pub fn mpfr_custom_get_significand(arg1: mpfr_srcptr) -> *mut ::std::os::raw::c_void;
8595}
8596extern "C" {
8597    pub fn mpfr_custom_get_exp(arg1: mpfr_srcptr) -> mpfr_exp_t;
8598}
8599extern "C" {
8600    pub fn mpfr_custom_move(arg1: mpfr_ptr, arg2: *mut ::std::os::raw::c_void);
8601}
8602extern "C" {
8603    pub fn mpfr_custom_init_set(
8604        arg1: mpfr_ptr,
8605        arg2: ::std::os::raw::c_int,
8606        arg3: mpfr_exp_t,
8607        arg4: mpfr_prec_t,
8608        arg5: *mut ::std::os::raw::c_void,
8609    );
8610}
8611extern "C" {
8612    pub fn mpfr_custom_get_kind(arg1: mpfr_srcptr) -> ::std::os::raw::c_int;
8613}
8614extern "C" {
8615    pub fn mpfr_total_order_p(arg1: mpfr_srcptr, arg2: mpfr_srcptr) -> ::std::os::raw::c_int;
8616}
8617extern "C" {
8618    pub fn __gmpfr_set_sj(
8619        arg1: *mut __mpfr_struct,
8620        arg2: intmax_t,
8621        arg3: mpfr_rnd_t,
8622    ) -> ::std::os::raw::c_int;
8623}
8624extern "C" {
8625    pub fn __gmpfr_set_sj_2exp(
8626        arg1: *mut __mpfr_struct,
8627        arg2: intmax_t,
8628        arg3: intmax_t,
8629        arg4: mpfr_rnd_t,
8630    ) -> ::std::os::raw::c_int;
8631}
8632extern "C" {
8633    pub fn __gmpfr_set_uj(
8634        arg1: *mut __mpfr_struct,
8635        arg2: uintmax_t,
8636        arg3: mpfr_rnd_t,
8637    ) -> ::std::os::raw::c_int;
8638}
8639extern "C" {
8640    pub fn __gmpfr_set_uj_2exp(
8641        arg1: *mut __mpfr_struct,
8642        arg2: uintmax_t,
8643        arg3: intmax_t,
8644        arg4: mpfr_rnd_t,
8645    ) -> ::std::os::raw::c_int;
8646}
8647extern "C" {
8648    pub fn __gmpfr_mpfr_get_sj(arg1: mpfr_srcptr, arg2: mpfr_rnd_t) -> intmax_t;
8649}
8650extern "C" {
8651    pub fn __gmpfr_mpfr_get_uj(arg1: mpfr_srcptr, arg2: mpfr_rnd_t) -> uintmax_t;
8652}
8653extern "C" {
8654    pub fn __gmpfr_inp_str(
8655        arg1: mpfr_ptr,
8656        arg2: *mut FILE,
8657        arg3: ::std::os::raw::c_int,
8658        arg4: mpfr_rnd_t,
8659    ) -> size_t;
8660}
8661extern "C" {
8662    pub fn __gmpfr_out_str(
8663        arg1: *mut FILE,
8664        arg2: ::std::os::raw::c_int,
8665        arg3: size_t,
8666        arg4: mpfr_srcptr,
8667        arg5: mpfr_rnd_t,
8668    ) -> size_t;
8669}
8670extern "C" {
8671    pub fn __gmpfr_fprintf(
8672        arg1: *mut FILE,
8673        arg2: *const ::std::os::raw::c_char,
8674        ...
8675    ) -> ::std::os::raw::c_int;
8676}
8677extern "C" {
8678    pub fn __gmpfr_fpif_export(arg1: *mut FILE, arg2: mpfr_ptr) -> ::std::os::raw::c_int;
8679}
8680extern "C" {
8681    pub fn __gmpfr_fpif_import(arg1: mpfr_ptr, arg2: *mut FILE) -> ::std::os::raw::c_int;
8682}
8683extern "C" {
8684    pub fn __gmpfr_vprintf(
8685        arg1: *const ::std::os::raw::c_char,
8686        arg2: *mut __va_list_tag,
8687    ) -> ::std::os::raw::c_int;
8688}
8689extern "C" {
8690    pub fn __gmpfr_vasprintf(
8691        arg1: *mut *mut ::std::os::raw::c_char,
8692        arg2: *const ::std::os::raw::c_char,
8693        arg3: *mut __va_list_tag,
8694    ) -> ::std::os::raw::c_int;
8695}
8696extern "C" {
8697    pub fn __gmpfr_vsprintf(
8698        arg1: *mut ::std::os::raw::c_char,
8699        arg2: *const ::std::os::raw::c_char,
8700        arg3: *mut __va_list_tag,
8701    ) -> ::std::os::raw::c_int;
8702}
8703extern "C" {
8704    pub fn __gmpfr_vsnprintf(
8705        arg1: *mut ::std::os::raw::c_char,
8706        arg2: size_t,
8707        arg3: *const ::std::os::raw::c_char,
8708        arg4: *mut __va_list_tag,
8709    ) -> ::std::os::raw::c_int;
8710}
8711extern "C" {
8712    pub fn __gmpfr_vfprintf(
8713        arg1: *mut FILE,
8714        arg2: *const ::std::os::raw::c_char,
8715        arg3: *mut __va_list_tag,
8716    ) -> ::std::os::raw::c_int;
8717}
8718pub type bool_ = ::std::os::raw::c_char;
8719pub const false_: bool_ = 0;
8720pub const true_: bool_ = 1;
8721pub const elina_scalar_discr_t_ELINA_SCALAR_DOUBLE: elina_scalar_discr_t = 0;
8722pub const elina_scalar_discr_t_ELINA_SCALAR_MPQ: elina_scalar_discr_t = 1;
8723pub const elina_scalar_discr_t_ELINA_SCALAR_MPFR: elina_scalar_discr_t = 2;
8724pub type elina_scalar_discr_t = ::std::os::raw::c_uint;
8725#[repr(C)]
8726#[derive(Copy, Clone)]
8727pub struct elina_scalar_t {
8728    pub discr: elina_scalar_discr_t,
8729    pub val: elina_scalar_t__bindgen_ty_1,
8730}
8731#[repr(C)]
8732#[derive(Copy, Clone)]
8733pub union elina_scalar_t__bindgen_ty_1 {
8734    pub dbl: f64,
8735    pub mpq: mpq_ptr,
8736    pub mpfr: mpfr_ptr,
8737}
8738#[test]
8739fn bindgen_test_layout_elina_scalar_t__bindgen_ty_1() {
8740    assert_eq!(
8741        ::std::mem::size_of::<elina_scalar_t__bindgen_ty_1>(),
8742        8usize,
8743        concat!("Size of: ", stringify!(elina_scalar_t__bindgen_ty_1))
8744    );
8745    assert_eq!(
8746        ::std::mem::align_of::<elina_scalar_t__bindgen_ty_1>(),
8747        8usize,
8748        concat!("Alignment of ", stringify!(elina_scalar_t__bindgen_ty_1))
8749    );
8750    assert_eq!(
8751        unsafe {
8752            &(*(::std::ptr::null::<elina_scalar_t__bindgen_ty_1>())).dbl as *const _ as usize
8753        },
8754        0usize,
8755        concat!(
8756            "Offset of field: ",
8757            stringify!(elina_scalar_t__bindgen_ty_1),
8758            "::",
8759            stringify!(dbl)
8760        )
8761    );
8762    assert_eq!(
8763        unsafe {
8764            &(*(::std::ptr::null::<elina_scalar_t__bindgen_ty_1>())).mpq as *const _ as usize
8765        },
8766        0usize,
8767        concat!(
8768            "Offset of field: ",
8769            stringify!(elina_scalar_t__bindgen_ty_1),
8770            "::",
8771            stringify!(mpq)
8772        )
8773    );
8774    assert_eq!(
8775        unsafe {
8776            &(*(::std::ptr::null::<elina_scalar_t__bindgen_ty_1>())).mpfr as *const _ as usize
8777        },
8778        0usize,
8779        concat!(
8780            "Offset of field: ",
8781            stringify!(elina_scalar_t__bindgen_ty_1),
8782            "::",
8783            stringify!(mpfr)
8784        )
8785    );
8786}
8787#[test]
8788fn bindgen_test_layout_elina_scalar_t() {
8789    assert_eq!(
8790        ::std::mem::size_of::<elina_scalar_t>(),
8791        16usize,
8792        concat!("Size of: ", stringify!(elina_scalar_t))
8793    );
8794    assert_eq!(
8795        ::std::mem::align_of::<elina_scalar_t>(),
8796        8usize,
8797        concat!("Alignment of ", stringify!(elina_scalar_t))
8798    );
8799    assert_eq!(
8800        unsafe { &(*(::std::ptr::null::<elina_scalar_t>())).discr as *const _ as usize },
8801        0usize,
8802        concat!(
8803            "Offset of field: ",
8804            stringify!(elina_scalar_t),
8805            "::",
8806            stringify!(discr)
8807        )
8808    );
8809    assert_eq!(
8810        unsafe { &(*(::std::ptr::null::<elina_scalar_t>())).val as *const _ as usize },
8811        8usize,
8812        concat!(
8813            "Offset of field: ",
8814            stringify!(elina_scalar_t),
8815            "::",
8816            stringify!(val)
8817        )
8818    );
8819}
8820extern "C" {
8821    pub fn elina_scalar_alloc() -> *mut elina_scalar_t;
8822}
8823extern "C" {
8824    pub fn elina_scalar_free(scalar: *mut elina_scalar_t);
8825}
8826extern "C" {
8827    pub fn elina_scalar_reinit(scalar: *mut elina_scalar_t, d: elina_scalar_discr_t);
8828}
8829extern "C" {
8830    pub fn elina_scalar_print(a: *mut elina_scalar_t);
8831}
8832extern "C" {
8833    pub fn elina_scalar_fprint(stream: *mut FILE, a: *mut elina_scalar_t);
8834}
8835extern "C" {
8836    pub static mut elina_scalar_print_prec: ::std::os::raw::c_int;
8837}
8838extern "C" {
8839    pub fn elina_scalar_swap(a: *mut elina_scalar_t, b: *mut elina_scalar_t);
8840}
8841extern "C" {
8842    pub fn elina_scalar_set(scalar: *mut elina_scalar_t, scalar2: *mut elina_scalar_t);
8843}
8844extern "C" {
8845    pub fn elina_scalar_set_mpq(scalar: *mut elina_scalar_t, mpq: *mut __mpq_struct);
8846}
8847extern "C" {
8848    pub fn elina_scalar_set_int(scalar: *mut elina_scalar_t, i: ::std::os::raw::c_long);
8849}
8850extern "C" {
8851    pub fn elina_scalar_set_frac(
8852        scalar: *mut elina_scalar_t,
8853        i: ::std::os::raw::c_long,
8854        j: ::std::os::raw::c_ulong,
8855    );
8856}
8857extern "C" {
8858    pub fn elina_scalar_set_double(scalar: *mut elina_scalar_t, k: f64);
8859}
8860extern "C" {
8861    pub fn elina_scalar_set_mpfr(scalar: *mut elina_scalar_t, mpfr: *mut __mpfr_struct);
8862}
8863extern "C" {
8864    pub fn elina_scalar_set_infty(scalar: *mut elina_scalar_t, sgn: ::std::os::raw::c_int);
8865}
8866extern "C" {
8867    pub fn elina_scalar_alloc_set(scalar2: *mut elina_scalar_t) -> *mut elina_scalar_t;
8868}
8869extern "C" {
8870    pub fn elina_scalar_alloc_set_mpq(mpq: *mut __mpq_struct) -> *mut elina_scalar_t;
8871}
8872extern "C" {
8873    pub fn elina_scalar_alloc_set_double(k: f64) -> *mut elina_scalar_t;
8874}
8875extern "C" {
8876    pub fn elina_scalar_alloc_set_mpfr(mpfr: *mut __mpfr_struct) -> *mut elina_scalar_t;
8877}
8878extern "C" {
8879    pub fn elina_mpq_set_scalar(
8880        mpq: *mut __mpq_struct,
8881        scalar: *mut elina_scalar_t,
8882        round: mpfr_rnd_t,
8883    ) -> ::std::os::raw::c_int;
8884}
8885extern "C" {
8886    pub fn elina_double_set_scalar(
8887        k: *mut f64,
8888        scalar: *mut elina_scalar_t,
8889        round: mpfr_rnd_t,
8890    ) -> ::std::os::raw::c_int;
8891}
8892extern "C" {
8893    pub fn elina_mpfr_set_scalar(
8894        mpfr: *mut __mpfr_struct,
8895        scalar: *mut elina_scalar_t,
8896        round: mpfr_rnd_t,
8897    ) -> ::std::os::raw::c_int;
8898}
8899extern "C" {
8900    pub fn elina_scalar_infty(scalar: *mut elina_scalar_t) -> ::std::os::raw::c_int;
8901}
8902extern "C" {
8903    pub fn elina_scalar_cmp(
8904        a: *mut elina_scalar_t,
8905        b: *mut elina_scalar_t,
8906    ) -> ::std::os::raw::c_int;
8907}
8908extern "C" {
8909    pub fn elina_scalar_cmp_int(
8910        a: *mut elina_scalar_t,
8911        b: ::std::os::raw::c_int,
8912    ) -> ::std::os::raw::c_int;
8913}
8914extern "C" {
8915    pub fn elina_scalar_equal(a: *mut elina_scalar_t, b: *mut elina_scalar_t) -> bool_;
8916}
8917extern "C" {
8918    pub fn elina_scalar_equal_int(a: *mut elina_scalar_t, b: ::std::os::raw::c_int) -> bool_;
8919}
8920extern "C" {
8921    pub fn elina_scalar_sgn(a: *mut elina_scalar_t) -> ::std::os::raw::c_int;
8922}
8923extern "C" {
8924    pub fn elina_scalar_neg(a: *mut elina_scalar_t, b: *mut elina_scalar_t);
8925}
8926extern "C" {
8927    pub fn elina_scalar_inv(a: *mut elina_scalar_t, b: *mut elina_scalar_t);
8928}
8929extern "C" {
8930    pub fn elina_scalar_hash(a: *mut elina_scalar_t) -> ::std::os::raw::c_long;
8931}
8932pub type elina_int_t = ::std::os::raw::c_longlong;
8933#[repr(C)]
8934#[derive(Debug, Copy, Clone)]
8935pub struct elina_rat_t {
8936    pub n: elina_int_t,
8937    pub d: elina_int_t,
8938}
8939#[test]
8940fn bindgen_test_layout_elina_rat_t() {
8941    assert_eq!(
8942        ::std::mem::size_of::<elina_rat_t>(),
8943        16usize,
8944        concat!("Size of: ", stringify!(elina_rat_t))
8945    );
8946    assert_eq!(
8947        ::std::mem::align_of::<elina_rat_t>(),
8948        8usize,
8949        concat!("Alignment of ", stringify!(elina_rat_t))
8950    );
8951    assert_eq!(
8952        unsafe { &(*(::std::ptr::null::<elina_rat_t>())).n as *const _ as usize },
8953        0usize,
8954        concat!(
8955            "Offset of field: ",
8956            stringify!(elina_rat_t),
8957            "::",
8958            stringify!(n)
8959        )
8960    );
8961    assert_eq!(
8962        unsafe { &(*(::std::ptr::null::<elina_rat_t>())).d as *const _ as usize },
8963        8usize,
8964        concat!(
8965            "Offset of field: ",
8966            stringify!(elina_rat_t),
8967            "::",
8968            stringify!(d)
8969        )
8970    );
8971}
8972#[repr(C)]
8973#[derive(Debug, Copy, Clone)]
8974pub struct comp_t {
8975    pub num: ::std::os::raw::c_ushort,
8976    pub next: *mut comp_t,
8977}
8978#[test]
8979fn bindgen_test_layout_comp_t() {
8980    assert_eq!(
8981        ::std::mem::size_of::<comp_t>(),
8982        16usize,
8983        concat!("Size of: ", stringify!(comp_t))
8984    );
8985    assert_eq!(
8986        ::std::mem::align_of::<comp_t>(),
8987        8usize,
8988        concat!("Alignment of ", stringify!(comp_t))
8989    );
8990    assert_eq!(
8991        unsafe { &(*(::std::ptr::null::<comp_t>())).num as *const _ as usize },
8992        0usize,
8993        concat!(
8994            "Offset of field: ",
8995            stringify!(comp_t),
8996            "::",
8997            stringify!(num)
8998        )
8999    );
9000    assert_eq!(
9001        unsafe { &(*(::std::ptr::null::<comp_t>())).next as *const _ as usize },
9002        8usize,
9003        concat!(
9004            "Offset of field: ",
9005            stringify!(comp_t),
9006            "::",
9007            stringify!(next)
9008        )
9009    );
9010}
9011#[repr(C)]
9012#[derive(Debug, Copy, Clone)]
9013pub struct comp_list_t {
9014    pub head: *mut comp_t,
9015    pub next: *mut comp_list_t,
9016    pub size: ::std::os::raw::c_ushort,
9017}
9018#[test]
9019fn bindgen_test_layout_comp_list_t() {
9020    assert_eq!(
9021        ::std::mem::size_of::<comp_list_t>(),
9022        24usize,
9023        concat!("Size of: ", stringify!(comp_list_t))
9024    );
9025    assert_eq!(
9026        ::std::mem::align_of::<comp_list_t>(),
9027        8usize,
9028        concat!("Alignment of ", stringify!(comp_list_t))
9029    );
9030    assert_eq!(
9031        unsafe { &(*(::std::ptr::null::<comp_list_t>())).head as *const _ as usize },
9032        0usize,
9033        concat!(
9034            "Offset of field: ",
9035            stringify!(comp_list_t),
9036            "::",
9037            stringify!(head)
9038        )
9039    );
9040    assert_eq!(
9041        unsafe { &(*(::std::ptr::null::<comp_list_t>())).next as *const _ as usize },
9042        8usize,
9043        concat!(
9044            "Offset of field: ",
9045            stringify!(comp_list_t),
9046            "::",
9047            stringify!(next)
9048        )
9049    );
9050    assert_eq!(
9051        unsafe { &(*(::std::ptr::null::<comp_list_t>())).size as *const _ as usize },
9052        16usize,
9053        concat!(
9054            "Offset of field: ",
9055            stringify!(comp_list_t),
9056            "::",
9057            stringify!(size)
9058        )
9059    );
9060}
9061#[repr(C)]
9062#[derive(Debug, Copy, Clone)]
9063pub struct array_comp_list_t {
9064    pub head: *mut comp_list_t,
9065    pub size: ::std::os::raw::c_ushort,
9066}
9067#[test]
9068fn bindgen_test_layout_array_comp_list_t() {
9069    assert_eq!(
9070        ::std::mem::size_of::<array_comp_list_t>(),
9071        16usize,
9072        concat!("Size of: ", stringify!(array_comp_list_t))
9073    );
9074    assert_eq!(
9075        ::std::mem::align_of::<array_comp_list_t>(),
9076        8usize,
9077        concat!("Alignment of ", stringify!(array_comp_list_t))
9078    );
9079    assert_eq!(
9080        unsafe { &(*(::std::ptr::null::<array_comp_list_t>())).head as *const _ as usize },
9081        0usize,
9082        concat!(
9083            "Offset of field: ",
9084            stringify!(array_comp_list_t),
9085            "::",
9086            stringify!(head)
9087        )
9088    );
9089    assert_eq!(
9090        unsafe { &(*(::std::ptr::null::<array_comp_list_t>())).size as *const _ as usize },
9091        8usize,
9092        concat!(
9093            "Offset of field: ",
9094            stringify!(array_comp_list_t),
9095            "::",
9096            stringify!(size)
9097        )
9098    );
9099}
9100extern "C" {
9101    pub fn create_comp_list() -> *mut comp_list_t;
9102}
9103extern "C" {
9104    pub fn copy_comp_list(src: *mut comp_list_t) -> *mut comp_list_t;
9105}
9106extern "C" {
9107    pub fn free_comp_list(cl: *mut comp_list_t);
9108}
9109extern "C" {
9110    pub fn comp_list_size(cl: *mut comp_list_t) -> ::std::os::raw::c_ushort;
9111}
9112extern "C" {
9113    pub fn insert_comp(cl: *mut comp_list_t, num: ::std::os::raw::c_ushort);
9114}
9115extern "C" {
9116    pub fn contains_comp(
9117        cl: *mut comp_list_t,
9118        num: ::std::os::raw::c_ushort,
9119    ) -> ::std::os::raw::c_int;
9120}
9121extern "C" {
9122    pub fn remove_comp(cl: *mut comp_list_t, num: ::std::os::raw::c_ushort);
9123}
9124extern "C" {
9125    pub fn fprint_comp_list(stream: *mut FILE, cl: *mut comp_list_t, n: ::std::os::raw::c_ushort);
9126}
9127extern "C" {
9128    pub fn print_comp_list(cl: *mut comp_list_t, n: ::std::os::raw::c_ushort);
9129}
9130extern "C" {
9131    pub fn to_sorted_array(
9132        cl: *mut comp_list_t,
9133        n: ::std::os::raw::c_ushort,
9134    ) -> *mut ::std::os::raw::c_ushort;
9135}
9136extern "C" {
9137    pub fn map_index(
9138        dst: *mut ::std::os::raw::c_ushort,
9139        src: *mut ::std::os::raw::c_ushort,
9140        comp_size: ::std::os::raw::c_ushort,
9141    ) -> *mut ::std::os::raw::c_ushort;
9142}
9143extern "C" {
9144    pub fn intersection_comp_list(
9145        c1: *mut comp_list_t,
9146        c2: *mut comp_list_t,
9147        n: ::std::os::raw::c_ushort,
9148    ) -> *mut comp_list_t;
9149}
9150extern "C" {
9151    pub fn is_disjoint(
9152        cl1: *mut comp_list_t,
9153        cl2: *mut comp_list_t,
9154        n: ::std::os::raw::c_ushort,
9155    ) -> ::std::os::raw::c_int;
9156}
9157extern "C" {
9158    pub fn is_disjoint_with_map(
9159        cl: *mut comp_list_t,
9160        map: *mut ::std::os::raw::c_char,
9161    ) -> ::std::os::raw::c_int;
9162}
9163extern "C" {
9164    pub fn is_map_disjoint(
9165        cmap: *mut ::std::os::raw::c_ushort,
9166        map2: *mut ::std::os::raw::c_char,
9167        n: ::std::os::raw::c_ushort,
9168    ) -> ::std::os::raw::c_short;
9169}
9170extern "C" {
9171    pub fn is_included(
9172        cl1: *mut comp_list_t,
9173        cl2: *mut comp_list_t,
9174        n: ::std::os::raw::c_ushort,
9175    ) -> ::std::os::raw::c_int;
9176}
9177extern "C" {
9178    pub fn union_comp_list(
9179        cl1: *mut comp_list_t,
9180        cl2: *mut comp_list_t,
9181        map: *mut ::std::os::raw::c_char,
9182    );
9183}
9184extern "C" {
9185    pub fn union_comp_list_direct(
9186        cl1: *mut comp_list_t,
9187        cl2: *mut comp_list_t,
9188        n: ::std::os::raw::c_ushort,
9189    );
9190}
9191extern "C" {
9192    pub fn unite_comp_lists(
9193        cl1: *mut comp_list_t,
9194        cl2: *mut comp_list_t,
9195        map: *mut ::std::os::raw::c_char,
9196        i: ::std::os::raw::c_int,
9197        j: ::std::os::raw::c_int,
9198        n: ::std::os::raw::c_ushort,
9199    );
9200}
9201extern "C" {
9202    pub fn create_map(
9203        cl: *mut comp_list_t,
9204        n: ::std::os::raw::c_ushort,
9205    ) -> *mut ::std::os::raw::c_char;
9206}
9207extern "C" {
9208    pub fn is_equal_map(
9209        map1: *mut ::std::os::raw::c_char,
9210        map2: *mut ::std::os::raw::c_char,
9211        n: ::std::os::raw::c_ushort,
9212    ) -> ::std::os::raw::c_int;
9213}
9214extern "C" {
9215    pub fn create_array_comp_list() -> *mut array_comp_list_t;
9216}
9217extern "C" {
9218    pub fn copy_array_comp_list(src: *mut array_comp_list_t) -> *mut array_comp_list_t;
9219}
9220extern "C" {
9221    pub fn free_array_comp_list(acl: *mut array_comp_list_t);
9222}
9223extern "C" {
9224    pub fn insert_comp_list(acl: *mut array_comp_list_t, cl: *mut comp_list_t);
9225}
9226extern "C" {
9227    pub fn insert_comp_list_tail(acl: *mut array_comp_list_t, cl: *mut comp_list_t);
9228}
9229extern "C" {
9230    pub fn insert_comp_list_with_union(
9231        acl: *mut array_comp_list_t,
9232        cl: *mut comp_list_t,
9233        n: ::std::os::raw::c_ushort,
9234    );
9235}
9236extern "C" {
9237    pub fn find(acl: *mut array_comp_list_t, num: ::std::os::raw::c_ushort) -> *mut comp_list_t;
9238}
9239extern "C" {
9240    pub fn find_index(acl: *mut array_comp_list_t, cl: *mut comp_list_t)
9241        -> ::std::os::raw::c_short;
9242}
9243extern "C" {
9244    pub fn remove_comp_list(acl: *mut array_comp_list_t, cl: *mut comp_list_t);
9245}
9246extern "C" {
9247    pub fn print_array_comp_list(acl: *mut array_comp_list_t, n: ::std::os::raw::c_ushort);
9248}
9249extern "C" {
9250    pub fn clear_array_comp_list(acl: *mut array_comp_list_t);
9251}
9252extern "C" {
9253    pub fn create_array_map(
9254        acl: *mut array_comp_list_t,
9255        n: ::std::os::raw::c_ushort,
9256    ) -> *mut ::std::os::raw::c_ushort;
9257}
9258extern "C" {
9259    pub fn compute_diff(
9260        map: *mut ::std::os::raw::c_char,
9261        cl: *mut comp_list_t,
9262        n: ::std::os::raw::c_ushort,
9263    ) -> *mut comp_list_t;
9264}
9265extern "C" {
9266    pub fn intersection_array_comp_list(
9267        acl1: *mut array_comp_list_t,
9268        acl2: *mut array_comp_list_t,
9269        n: ::std::os::raw::c_ushort,
9270    ) -> *mut array_comp_list_t;
9271}
9272extern "C" {
9273    pub fn intersection_comp_list_compute_diff(
9274        c1: *mut comp_list_t,
9275        c2: *mut comp_list_t,
9276        n: ::std::os::raw::c_ushort,
9277    ) -> *mut array_comp_list_t;
9278}
9279extern "C" {
9280    pub fn intersection_comp_list_compute_diff_both(
9281        c1: *mut comp_list_t,
9282        c2: *mut comp_list_t,
9283        n: ::std::os::raw::c_ushort,
9284    ) -> *mut array_comp_list_t;
9285}
9286extern "C" {
9287    pub fn comp_array_union_direct(
9288        acl1: *mut array_comp_list_t,
9289        acl2: *mut array_comp_list_t,
9290        om1: *mut ::std::os::raw::c_ushort,
9291        om2: *mut ::std::os::raw::c_ushort,
9292        n: ::std::os::raw::c_ushort,
9293    ) -> *mut comp_list_t;
9294}
9295extern "C" {
9296    pub fn union_array_comp_list(
9297        acl1: *mut array_comp_list_t,
9298        acl2: *mut array_comp_list_t,
9299        n: ::std::os::raw::c_ushort,
9300    ) -> *mut array_comp_list_t;
9301}
9302extern "C" {
9303    pub fn is_equal_array_comp_list(
9304        acl1: *mut array_comp_list_t,
9305        acl2: *mut array_comp_list_t,
9306        n: ::std::os::raw::c_ushort,
9307    ) -> ::std::os::raw::c_int;
9308}
9309extern "C" {
9310    pub fn is_lequal_array_comp_list(
9311        acl1: *mut array_comp_list_t,
9312        acl2: *mut array_comp_list_t,
9313        n: ::std::os::raw::c_ushort,
9314    ) -> ::std::os::raw::c_int;
9315}
9316extern "C" {
9317    pub fn is_connected(
9318        acl: *mut array_comp_list_t,
9319        i: ::std::os::raw::c_ushort,
9320        j: ::std::os::raw::c_ushort,
9321    ) -> ::std::os::raw::c_int;
9322}
9323extern "C" {
9324    pub fn is_comp_list_included(
9325        acl: *mut array_comp_list_t,
9326        cl: *mut comp_list_t,
9327        n: ::std::os::raw::c_ushort,
9328    ) -> ::std::os::raw::c_short;
9329}
9330extern "C" {
9331    pub fn is_covered(
9332        acl: *mut array_comp_list_t,
9333        clr: *mut comp_list_t,
9334        n: ::std::os::raw::c_ushort,
9335    ) -> ::std::os::raw::c_short;
9336}
9337extern "C" {
9338    pub fn create_intersection_map(
9339        acl1: *mut array_comp_list_t,
9340        acl2: *mut array_comp_list_t,
9341        num: ::std::os::raw::c_ushort,
9342    ) -> *mut ::std::os::raw::c_char;
9343}
9344extern "C" {
9345    pub fn extract(m: *mut f64, n: ::std::os::raw::c_ushort) -> *mut array_comp_list_t;
9346}
9347extern "C" {
9348    pub fn extract_comps(
9349        m: *mut ::std::os::raw::c_char,
9350        n: ::std::os::raw::c_ushort,
9351    ) -> *mut array_comp_list_t;
9352}
9353extern "C" {
9354    pub fn comp_list_serialize_common(
9355        dst: *mut ::std::os::raw::c_void,
9356        cl: *mut comp_list_t,
9357        length: ::std::os::raw::c_ushort,
9358        dry_run: ::std::os::raw::c_int,
9359    ) -> size_t;
9360}
9361extern "C" {
9362    pub fn array_comp_list_serialize_common(
9363        dst: *mut ::std::os::raw::c_void,
9364        acl: *mut array_comp_list_t,
9365        dry_run: ::std::os::raw::c_int,
9366    ) -> size_t;
9367}
9368extern "C" {
9369    pub fn comp_list_deserialize(
9370        p: *mut ::std::os::raw::c_void,
9371        length: ::std::os::raw::c_ushort,
9372        size: *mut size_t,
9373    ) -> *mut comp_list_t;
9374}
9375extern "C" {
9376    pub fn array_comp_list_deserialize(
9377        p: *mut ::std::os::raw::c_void,
9378        size: *mut size_t,
9379    ) -> *mut array_comp_list_t;
9380}
9381#[repr(C)]
9382#[derive(Debug, Copy, Clone)]
9383pub struct elina_interval_t {
9384    pub inf: *mut elina_scalar_t,
9385    pub sup: *mut elina_scalar_t,
9386}
9387#[test]
9388fn bindgen_test_layout_elina_interval_t() {
9389    assert_eq!(
9390        ::std::mem::size_of::<elina_interval_t>(),
9391        16usize,
9392        concat!("Size of: ", stringify!(elina_interval_t))
9393    );
9394    assert_eq!(
9395        ::std::mem::align_of::<elina_interval_t>(),
9396        8usize,
9397        concat!("Alignment of ", stringify!(elina_interval_t))
9398    );
9399    assert_eq!(
9400        unsafe { &(*(::std::ptr::null::<elina_interval_t>())).inf as *const _ as usize },
9401        0usize,
9402        concat!(
9403            "Offset of field: ",
9404            stringify!(elina_interval_t),
9405            "::",
9406            stringify!(inf)
9407        )
9408    );
9409    assert_eq!(
9410        unsafe { &(*(::std::ptr::null::<elina_interval_t>())).sup as *const _ as usize },
9411        8usize,
9412        concat!(
9413            "Offset of field: ",
9414            stringify!(elina_interval_t),
9415            "::",
9416            stringify!(sup)
9417        )
9418    );
9419}
9420extern "C" {
9421    pub fn elina_interval_alloc() -> *mut elina_interval_t;
9422}
9423extern "C" {
9424    pub fn elina_interval_reinit(
9425        interval: *mut elina_interval_t,
9426        elina_scalar_discr: elina_scalar_discr_t,
9427    );
9428}
9429extern "C" {
9430    pub fn elina_interval_free(interval: *mut elina_interval_t);
9431}
9432extern "C" {
9433    pub fn elina_interval_fprint(stream: *mut FILE, a: *mut elina_interval_t);
9434}
9435extern "C" {
9436    pub fn elina_interval_print(a: *mut elina_interval_t);
9437}
9438extern "C" {
9439    pub fn elina_interval_swap(a: *mut elina_interval_t, b: *mut elina_interval_t);
9440}
9441extern "C" {
9442    pub fn elina_interval_set(interval: *mut elina_interval_t, interval2: *mut elina_interval_t);
9443}
9444extern "C" {
9445    pub fn elina_interval_set_scalar(
9446        interval: *mut elina_interval_t,
9447        inf: *mut elina_scalar_t,
9448        sup: *mut elina_scalar_t,
9449    );
9450}
9451extern "C" {
9452    pub fn elina_interval_set_mpq(
9453        interval: *mut elina_interval_t,
9454        inf: *mut __mpq_struct,
9455        sup: *mut __mpq_struct,
9456    );
9457}
9458extern "C" {
9459    pub fn elina_interval_set_int(
9460        interval: *mut elina_interval_t,
9461        inf: ::std::os::raw::c_long,
9462        sup: ::std::os::raw::c_long,
9463    );
9464}
9465extern "C" {
9466    pub fn elina_interval_set_frac(
9467        interval: *mut elina_interval_t,
9468        numinf: ::std::os::raw::c_long,
9469        deninf: ::std::os::raw::c_ulong,
9470        numsup: ::std::os::raw::c_long,
9471        densup: ::std::os::raw::c_ulong,
9472    );
9473}
9474extern "C" {
9475    pub fn elina_interval_set_double(interval: *mut elina_interval_t, inf: f64, sup: f64);
9476}
9477extern "C" {
9478    pub fn elina_interval_set_mpfr(
9479        interval: *mut elina_interval_t,
9480        inf: *mut __mpfr_struct,
9481        sup: *mut __mpfr_struct,
9482    );
9483}
9484extern "C" {
9485    pub fn elina_interval_set_top(interval: *mut elina_interval_t);
9486}
9487extern "C" {
9488    pub fn elina_interval_set_bottom(interval: *mut elina_interval_t);
9489}
9490extern "C" {
9491    pub fn elina_interval_alloc_set(interval: *mut elina_interval_t) -> *mut elina_interval_t;
9492}
9493extern "C" {
9494    pub fn elina_interval_is_top(interval: *mut elina_interval_t) -> bool_;
9495}
9496extern "C" {
9497    pub fn elina_interval_is_bottom(interval: *mut elina_interval_t) -> bool_;
9498}
9499extern "C" {
9500    pub fn elina_interval_is_leq(i1: *mut elina_interval_t, i2: *mut elina_interval_t) -> bool_;
9501}
9502extern "C" {
9503    pub fn elina_interval_cmp(
9504        i1: *mut elina_interval_t,
9505        i2: *mut elina_interval_t,
9506    ) -> ::std::os::raw::c_int;
9507}
9508extern "C" {
9509    pub fn elina_interval_equal(i1: *mut elina_interval_t, i2: *mut elina_interval_t) -> bool_;
9510}
9511extern "C" {
9512    pub fn elina_interval_equal_int(i: *mut elina_interval_t, b: ::std::os::raw::c_int) -> bool_;
9513}
9514extern "C" {
9515    pub fn elina_interval_neg(a: *mut elina_interval_t, b: *mut elina_interval_t);
9516}
9517extern "C" {
9518    pub fn elina_interval_hash(itv: *mut elina_interval_t) -> ::std::os::raw::c_long;
9519}
9520extern "C" {
9521    pub fn elina_interval_array_alloc(size: size_t) -> *mut *mut elina_interval_t;
9522}
9523extern "C" {
9524    pub fn elina_interval_array_free(array: *mut *mut elina_interval_t, size: size_t);
9525}
9526pub const elina_coeff_discr_t_ELINA_COEFF_SCALAR: elina_coeff_discr_t = 0;
9527pub const elina_coeff_discr_t_ELINA_COEFF_INTERVAL: elina_coeff_discr_t = 1;
9528pub type elina_coeff_discr_t = ::std::os::raw::c_uint;
9529#[repr(C)]
9530#[derive(Copy, Clone)]
9531pub struct elina_coeff_t {
9532    pub discr: elina_coeff_discr_t,
9533    pub val: elina_coeff_t__bindgen_ty_1,
9534}
9535#[repr(C)]
9536#[derive(Copy, Clone)]
9537pub union elina_coeff_t__bindgen_ty_1 {
9538    pub scalar: *mut elina_scalar_t,
9539    pub interval: *mut elina_interval_t,
9540}
9541#[test]
9542fn bindgen_test_layout_elina_coeff_t__bindgen_ty_1() {
9543    assert_eq!(
9544        ::std::mem::size_of::<elina_coeff_t__bindgen_ty_1>(),
9545        8usize,
9546        concat!("Size of: ", stringify!(elina_coeff_t__bindgen_ty_1))
9547    );
9548    assert_eq!(
9549        ::std::mem::align_of::<elina_coeff_t__bindgen_ty_1>(),
9550        8usize,
9551        concat!("Alignment of ", stringify!(elina_coeff_t__bindgen_ty_1))
9552    );
9553    assert_eq!(
9554        unsafe {
9555            &(*(::std::ptr::null::<elina_coeff_t__bindgen_ty_1>())).scalar as *const _ as usize
9556        },
9557        0usize,
9558        concat!(
9559            "Offset of field: ",
9560            stringify!(elina_coeff_t__bindgen_ty_1),
9561            "::",
9562            stringify!(scalar)
9563        )
9564    );
9565    assert_eq!(
9566        unsafe {
9567            &(*(::std::ptr::null::<elina_coeff_t__bindgen_ty_1>())).interval as *const _ as usize
9568        },
9569        0usize,
9570        concat!(
9571            "Offset of field: ",
9572            stringify!(elina_coeff_t__bindgen_ty_1),
9573            "::",
9574            stringify!(interval)
9575        )
9576    );
9577}
9578#[test]
9579fn bindgen_test_layout_elina_coeff_t() {
9580    assert_eq!(
9581        ::std::mem::size_of::<elina_coeff_t>(),
9582        16usize,
9583        concat!("Size of: ", stringify!(elina_coeff_t))
9584    );
9585    assert_eq!(
9586        ::std::mem::align_of::<elina_coeff_t>(),
9587        8usize,
9588        concat!("Alignment of ", stringify!(elina_coeff_t))
9589    );
9590    assert_eq!(
9591        unsafe { &(*(::std::ptr::null::<elina_coeff_t>())).discr as *const _ as usize },
9592        0usize,
9593        concat!(
9594            "Offset of field: ",
9595            stringify!(elina_coeff_t),
9596            "::",
9597            stringify!(discr)
9598        )
9599    );
9600    assert_eq!(
9601        unsafe { &(*(::std::ptr::null::<elina_coeff_t>())).val as *const _ as usize },
9602        8usize,
9603        concat!(
9604            "Offset of field: ",
9605            stringify!(elina_coeff_t),
9606            "::",
9607            stringify!(val)
9608        )
9609    );
9610}
9611extern "C" {
9612    pub fn elina_coeff_alloc(elina_coeff_discr: elina_coeff_discr_t) -> *mut elina_coeff_t;
9613}
9614extern "C" {
9615    pub fn elina_coeff_reinit(
9616        coeff: *mut elina_coeff_t,
9617        elina_coeff_discr: elina_coeff_discr_t,
9618        elina_scalar_discr: elina_scalar_discr_t,
9619    );
9620}
9621extern "C" {
9622    pub fn elina_coeff_free(a: *mut elina_coeff_t);
9623}
9624extern "C" {
9625    pub fn elina_coeff_fprint(stream: *mut FILE, a: *mut elina_coeff_t);
9626}
9627extern "C" {
9628    pub fn elina_coeff_print(a: *mut elina_coeff_t);
9629}
9630extern "C" {
9631    pub fn elina_coeff_reduce(coeff: *mut elina_coeff_t);
9632}
9633extern "C" {
9634    pub fn elina_coeff_swap(a: *mut elina_coeff_t, b: *mut elina_coeff_t);
9635}
9636extern "C" {
9637    pub fn elina_coeff_set(a: *mut elina_coeff_t, b: *mut elina_coeff_t);
9638}
9639extern "C" {
9640    pub fn elina_coeff_set_scalar(coeff: *mut elina_coeff_t, scalar: *mut elina_scalar_t);
9641}
9642extern "C" {
9643    pub fn elina_coeff_set_scalar_mpq(coeff: *mut elina_coeff_t, mpq: *mut __mpq_struct);
9644}
9645extern "C" {
9646    pub fn elina_coeff_set_scalar_int(coeff: *mut elina_coeff_t, num: ::std::os::raw::c_long);
9647}
9648extern "C" {
9649    pub fn elina_coeff_set_scalar_frac(
9650        coeff: *mut elina_coeff_t,
9651        num: ::std::os::raw::c_long,
9652        den: ::std::os::raw::c_ulong,
9653    );
9654}
9655extern "C" {
9656    pub fn elina_coeff_set_scalar_double(coeff: *mut elina_coeff_t, num: f64);
9657}
9658extern "C" {
9659    pub fn elina_coeff_set_scalar_mpfr(coeff: *mut elina_coeff_t, mpfr: *mut __mpfr_struct);
9660}
9661extern "C" {
9662    pub fn elina_coeff_set_interval(coeff: *mut elina_coeff_t, itv: *mut elina_interval_t);
9663}
9664extern "C" {
9665    pub fn elina_coeff_set_interval_scalar(
9666        coeff: *mut elina_coeff_t,
9667        inf: *mut elina_scalar_t,
9668        sup: *mut elina_scalar_t,
9669    );
9670}
9671extern "C" {
9672    pub fn elina_coeff_set_interval_mpq(
9673        coeff: *mut elina_coeff_t,
9674        inf: *mut __mpq_struct,
9675        sup: *mut __mpq_struct,
9676    );
9677}
9678extern "C" {
9679    pub fn elina_coeff_set_interval_int(
9680        coeff: *mut elina_coeff_t,
9681        inf: ::std::os::raw::c_long,
9682        sup: ::std::os::raw::c_long,
9683    );
9684}
9685extern "C" {
9686    pub fn elina_coeff_set_interval_frac(
9687        coeff: *mut elina_coeff_t,
9688        numinf: ::std::os::raw::c_long,
9689        deninf: ::std::os::raw::c_ulong,
9690        numsup: ::std::os::raw::c_long,
9691        densup: ::std::os::raw::c_ulong,
9692    );
9693}
9694extern "C" {
9695    pub fn elina_coeff_set_interval_double(coeff: *mut elina_coeff_t, inf: f64, sup: f64);
9696}
9697extern "C" {
9698    pub fn elina_coeff_set_interval_top(coeff: *mut elina_coeff_t);
9699}
9700extern "C" {
9701    pub fn elina_coeff_set_interval_mpfr(
9702        coeff: *mut elina_coeff_t,
9703        inf: *mut __mpfr_struct,
9704        sup: *mut __mpfr_struct,
9705    );
9706}
9707extern "C" {
9708    pub fn elina_coeff_alloc_set(coeff: *mut elina_coeff_t) -> *mut elina_coeff_t;
9709}
9710extern "C" {
9711    pub fn elina_coeff_alloc_set_scalar(scalar: *mut elina_scalar_t) -> *mut elina_coeff_t;
9712}
9713extern "C" {
9714    pub fn elina_coeff_alloc_set_interval(interval: *mut elina_interval_t) -> *mut elina_coeff_t;
9715}
9716extern "C" {
9717    pub fn elina_coeff_cmp(
9718        coeff1: *mut elina_coeff_t,
9719        coeff2: *mut elina_coeff_t,
9720    ) -> ::std::os::raw::c_int;
9721}
9722extern "C" {
9723    pub fn elina_coeff_equal(coeff1: *mut elina_coeff_t, coeff2: *mut elina_coeff_t) -> bool_;
9724}
9725extern "C" {
9726    pub fn elina_coeff_zero(coeff: *mut elina_coeff_t) -> bool_;
9727}
9728extern "C" {
9729    pub fn elina_coeff_equal_int(coeff: *mut elina_coeff_t, i: ::std::os::raw::c_int) -> bool_;
9730}
9731extern "C" {
9732    pub fn elina_coeff_neg(a: *mut elina_coeff_t, b: *mut elina_coeff_t);
9733}
9734extern "C" {
9735    pub fn elina_coeff_hash(coeff: *mut elina_coeff_t) -> ::std::os::raw::c_long;
9736}
9737extern "C" {
9738    pub fn elina_coeff_init(coeff: *mut elina_coeff_t, elina_coeff_discr: elina_coeff_discr_t);
9739}
9740extern "C" {
9741    pub fn elina_coeff_init_set(coeff: *mut elina_coeff_t, coeff2: *mut elina_coeff_t);
9742}
9743extern "C" {
9744    pub fn elina_coeff_clear(coeff: *mut elina_coeff_t);
9745}
9746pub type elina_dim_t = ::std::os::raw::c_uint;
9747#[repr(C)]
9748#[derive(Debug, Copy, Clone)]
9749pub struct elina_dimension_t {
9750    pub intdim: size_t,
9751    pub realdim: size_t,
9752}
9753#[test]
9754fn bindgen_test_layout_elina_dimension_t() {
9755    assert_eq!(
9756        ::std::mem::size_of::<elina_dimension_t>(),
9757        16usize,
9758        concat!("Size of: ", stringify!(elina_dimension_t))
9759    );
9760    assert_eq!(
9761        ::std::mem::align_of::<elina_dimension_t>(),
9762        8usize,
9763        concat!("Alignment of ", stringify!(elina_dimension_t))
9764    );
9765    assert_eq!(
9766        unsafe { &(*(::std::ptr::null::<elina_dimension_t>())).intdim as *const _ as usize },
9767        0usize,
9768        concat!(
9769            "Offset of field: ",
9770            stringify!(elina_dimension_t),
9771            "::",
9772            stringify!(intdim)
9773        )
9774    );
9775    assert_eq!(
9776        unsafe { &(*(::std::ptr::null::<elina_dimension_t>())).realdim as *const _ as usize },
9777        8usize,
9778        concat!(
9779            "Offset of field: ",
9780            stringify!(elina_dimension_t),
9781            "::",
9782            stringify!(realdim)
9783        )
9784    );
9785}
9786#[repr(C)]
9787#[derive(Debug, Copy, Clone)]
9788pub struct elina_dimchange_t {
9789    pub dim: *mut elina_dim_t,
9790    pub intdim: size_t,
9791    pub realdim: size_t,
9792}
9793#[test]
9794fn bindgen_test_layout_elina_dimchange_t() {
9795    assert_eq!(
9796        ::std::mem::size_of::<elina_dimchange_t>(),
9797        24usize,
9798        concat!("Size of: ", stringify!(elina_dimchange_t))
9799    );
9800    assert_eq!(
9801        ::std::mem::align_of::<elina_dimchange_t>(),
9802        8usize,
9803        concat!("Alignment of ", stringify!(elina_dimchange_t))
9804    );
9805    assert_eq!(
9806        unsafe { &(*(::std::ptr::null::<elina_dimchange_t>())).dim as *const _ as usize },
9807        0usize,
9808        concat!(
9809            "Offset of field: ",
9810            stringify!(elina_dimchange_t),
9811            "::",
9812            stringify!(dim)
9813        )
9814    );
9815    assert_eq!(
9816        unsafe { &(*(::std::ptr::null::<elina_dimchange_t>())).intdim as *const _ as usize },
9817        8usize,
9818        concat!(
9819            "Offset of field: ",
9820            stringify!(elina_dimchange_t),
9821            "::",
9822            stringify!(intdim)
9823        )
9824    );
9825    assert_eq!(
9826        unsafe { &(*(::std::ptr::null::<elina_dimchange_t>())).realdim as *const _ as usize },
9827        16usize,
9828        concat!(
9829            "Offset of field: ",
9830            stringify!(elina_dimchange_t),
9831            "::",
9832            stringify!(realdim)
9833        )
9834    );
9835}
9836#[repr(C)]
9837#[derive(Debug, Copy, Clone)]
9838pub struct elina_dimchange2_t {
9839    pub add: *mut elina_dimchange_t,
9840    pub remove: *mut elina_dimchange_t,
9841}
9842#[test]
9843fn bindgen_test_layout_elina_dimchange2_t() {
9844    assert_eq!(
9845        ::std::mem::size_of::<elina_dimchange2_t>(),
9846        16usize,
9847        concat!("Size of: ", stringify!(elina_dimchange2_t))
9848    );
9849    assert_eq!(
9850        ::std::mem::align_of::<elina_dimchange2_t>(),
9851        8usize,
9852        concat!("Alignment of ", stringify!(elina_dimchange2_t))
9853    );
9854    assert_eq!(
9855        unsafe { &(*(::std::ptr::null::<elina_dimchange2_t>())).add as *const _ as usize },
9856        0usize,
9857        concat!(
9858            "Offset of field: ",
9859            stringify!(elina_dimchange2_t),
9860            "::",
9861            stringify!(add)
9862        )
9863    );
9864    assert_eq!(
9865        unsafe { &(*(::std::ptr::null::<elina_dimchange2_t>())).remove as *const _ as usize },
9866        8usize,
9867        concat!(
9868            "Offset of field: ",
9869            stringify!(elina_dimchange2_t),
9870            "::",
9871            stringify!(remove)
9872        )
9873    );
9874}
9875#[repr(C)]
9876#[derive(Debug, Copy, Clone)]
9877pub struct elina_dimperm_t {
9878    pub dim: *mut elina_dim_t,
9879    pub size: size_t,
9880}
9881#[test]
9882fn bindgen_test_layout_elina_dimperm_t() {
9883    assert_eq!(
9884        ::std::mem::size_of::<elina_dimperm_t>(),
9885        16usize,
9886        concat!("Size of: ", stringify!(elina_dimperm_t))
9887    );
9888    assert_eq!(
9889        ::std::mem::align_of::<elina_dimperm_t>(),
9890        8usize,
9891        concat!("Alignment of ", stringify!(elina_dimperm_t))
9892    );
9893    assert_eq!(
9894        unsafe { &(*(::std::ptr::null::<elina_dimperm_t>())).dim as *const _ as usize },
9895        0usize,
9896        concat!(
9897            "Offset of field: ",
9898            stringify!(elina_dimperm_t),
9899            "::",
9900            stringify!(dim)
9901        )
9902    );
9903    assert_eq!(
9904        unsafe { &(*(::std::ptr::null::<elina_dimperm_t>())).size as *const _ as usize },
9905        8usize,
9906        concat!(
9907            "Offset of field: ",
9908            stringify!(elina_dimperm_t),
9909            "::",
9910            stringify!(size)
9911        )
9912    );
9913}
9914extern "C" {
9915    pub fn elina_dimchange_init(dimchange: *mut elina_dimchange_t, intdim: size_t, realdim: size_t);
9916}
9917extern "C" {
9918    pub fn elina_dimchange_alloc(intdim: size_t, realdim: size_t) -> *mut elina_dimchange_t;
9919}
9920extern "C" {
9921    pub fn elina_dimchange_clear(dimchange: *mut elina_dimchange_t);
9922}
9923extern "C" {
9924    pub fn elina_dimchange_free(dimchange: *mut elina_dimchange_t);
9925}
9926extern "C" {
9927    pub fn elina_dimchange_fprint(stream: *mut FILE, dimchange: *mut elina_dimchange_t);
9928}
9929extern "C" {
9930    pub fn elina_dimchange_add_invert(dimchange: *mut elina_dimchange_t);
9931}
9932extern "C" {
9933    pub fn elina_dimchange2_init(
9934        dimchange2: *mut elina_dimchange2_t,
9935        add: *mut elina_dimchange_t,
9936        remove: *mut elina_dimchange_t,
9937    );
9938}
9939extern "C" {
9940    pub fn elina_dimchange2_alloc(
9941        add: *mut elina_dimchange_t,
9942        remove: *mut elina_dimchange_t,
9943    ) -> *mut elina_dimchange2_t;
9944}
9945extern "C" {
9946    pub fn elina_dimchange2_clear(dimchange2: *mut elina_dimchange2_t);
9947}
9948extern "C" {
9949    pub fn elina_dimchange2_free(dimchange2: *mut elina_dimchange2_t);
9950}
9951extern "C" {
9952    pub fn elina_dimchange2_fprint(stream: *mut FILE, dimchange2: *mut elina_dimchange2_t);
9953}
9954extern "C" {
9955    pub fn elina_dimperm_init(dimperm: *mut elina_dimperm_t, size: size_t);
9956}
9957extern "C" {
9958    pub fn elina_dimperm_alloc(size: size_t) -> *mut elina_dimperm_t;
9959}
9960extern "C" {
9961    pub fn elina_dimperm_clear(dimperm: *mut elina_dimperm_t);
9962}
9963extern "C" {
9964    pub fn elina_dimperm_free(dimperm: *mut elina_dimperm_t);
9965}
9966extern "C" {
9967    pub fn elina_dimperm_fprint(stream: *mut FILE, perm: *mut elina_dimperm_t);
9968}
9969extern "C" {
9970    pub fn elina_dimperm_set_id(perm: *mut elina_dimperm_t);
9971}
9972extern "C" {
9973    pub fn elina_dimperm_compose(
9974        perm: *mut elina_dimperm_t,
9975        perm1: *mut elina_dimperm_t,
9976        perm2: *mut elina_dimperm_t,
9977    );
9978}
9979extern "C" {
9980    pub fn elina_dimperm_invert(nperm: *mut elina_dimperm_t, perm: *mut elina_dimperm_t);
9981}
9982pub const elina_linexpr_discr_t_ELINA_LINEXPR_DENSE: elina_linexpr_discr_t = 0;
9983pub const elina_linexpr_discr_t_ELINA_LINEXPR_SPARSE: elina_linexpr_discr_t = 1;
9984pub type elina_linexpr_discr_t = ::std::os::raw::c_uint;
9985#[repr(C)]
9986#[derive(Copy, Clone)]
9987pub struct elina_linterm_t {
9988    pub dim: elina_dim_t,
9989    pub coeff: elina_coeff_t,
9990}
9991#[test]
9992fn bindgen_test_layout_elina_linterm_t() {
9993    assert_eq!(
9994        ::std::mem::size_of::<elina_linterm_t>(),
9995        24usize,
9996        concat!("Size of: ", stringify!(elina_linterm_t))
9997    );
9998    assert_eq!(
9999        ::std::mem::align_of::<elina_linterm_t>(),
10000        8usize,
10001        concat!("Alignment of ", stringify!(elina_linterm_t))
10002    );
10003    assert_eq!(
10004        unsafe { &(*(::std::ptr::null::<elina_linterm_t>())).dim as *const _ as usize },
10005        0usize,
10006        concat!(
10007            "Offset of field: ",
10008            stringify!(elina_linterm_t),
10009            "::",
10010            stringify!(dim)
10011        )
10012    );
10013    assert_eq!(
10014        unsafe { &(*(::std::ptr::null::<elina_linterm_t>())).coeff as *const _ as usize },
10015        8usize,
10016        concat!(
10017            "Offset of field: ",
10018            stringify!(elina_linterm_t),
10019            "::",
10020            stringify!(coeff)
10021        )
10022    );
10023}
10024#[repr(C)]
10025#[derive(Copy, Clone)]
10026pub struct elina_linexpr0_t {
10027    pub cst: elina_coeff_t,
10028    pub discr: elina_linexpr_discr_t,
10029    pub size: size_t,
10030    pub p: elina_linexpr0_t__bindgen_ty_1,
10031}
10032#[repr(C)]
10033#[derive(Copy, Clone)]
10034pub union elina_linexpr0_t__bindgen_ty_1 {
10035    pub coeff: *mut elina_coeff_t,
10036    pub linterm: *mut elina_linterm_t,
10037}
10038#[test]
10039fn bindgen_test_layout_elina_linexpr0_t__bindgen_ty_1() {
10040    assert_eq!(
10041        ::std::mem::size_of::<elina_linexpr0_t__bindgen_ty_1>(),
10042        8usize,
10043        concat!("Size of: ", stringify!(elina_linexpr0_t__bindgen_ty_1))
10044    );
10045    assert_eq!(
10046        ::std::mem::align_of::<elina_linexpr0_t__bindgen_ty_1>(),
10047        8usize,
10048        concat!("Alignment of ", stringify!(elina_linexpr0_t__bindgen_ty_1))
10049    );
10050    assert_eq!(
10051        unsafe {
10052            &(*(::std::ptr::null::<elina_linexpr0_t__bindgen_ty_1>())).coeff as *const _ as usize
10053        },
10054        0usize,
10055        concat!(
10056            "Offset of field: ",
10057            stringify!(elina_linexpr0_t__bindgen_ty_1),
10058            "::",
10059            stringify!(coeff)
10060        )
10061    );
10062    assert_eq!(
10063        unsafe {
10064            &(*(::std::ptr::null::<elina_linexpr0_t__bindgen_ty_1>())).linterm as *const _ as usize
10065        },
10066        0usize,
10067        concat!(
10068            "Offset of field: ",
10069            stringify!(elina_linexpr0_t__bindgen_ty_1),
10070            "::",
10071            stringify!(linterm)
10072        )
10073    );
10074}
10075#[test]
10076fn bindgen_test_layout_elina_linexpr0_t() {
10077    assert_eq!(
10078        ::std::mem::size_of::<elina_linexpr0_t>(),
10079        40usize,
10080        concat!("Size of: ", stringify!(elina_linexpr0_t))
10081    );
10082    assert_eq!(
10083        ::std::mem::align_of::<elina_linexpr0_t>(),
10084        8usize,
10085        concat!("Alignment of ", stringify!(elina_linexpr0_t))
10086    );
10087    assert_eq!(
10088        unsafe { &(*(::std::ptr::null::<elina_linexpr0_t>())).cst as *const _ as usize },
10089        0usize,
10090        concat!(
10091            "Offset of field: ",
10092            stringify!(elina_linexpr0_t),
10093            "::",
10094            stringify!(cst)
10095        )
10096    );
10097    assert_eq!(
10098        unsafe { &(*(::std::ptr::null::<elina_linexpr0_t>())).discr as *const _ as usize },
10099        16usize,
10100        concat!(
10101            "Offset of field: ",
10102            stringify!(elina_linexpr0_t),
10103            "::",
10104            stringify!(discr)
10105        )
10106    );
10107    assert_eq!(
10108        unsafe { &(*(::std::ptr::null::<elina_linexpr0_t>())).size as *const _ as usize },
10109        24usize,
10110        concat!(
10111            "Offset of field: ",
10112            stringify!(elina_linexpr0_t),
10113            "::",
10114            stringify!(size)
10115        )
10116    );
10117    assert_eq!(
10118        unsafe { &(*(::std::ptr::null::<elina_linexpr0_t>())).p as *const _ as usize },
10119        32usize,
10120        concat!(
10121            "Offset of field: ",
10122            stringify!(elina_linexpr0_t),
10123            "::",
10124            stringify!(p)
10125        )
10126    );
10127}
10128pub const elina_linexpr_type_t_ELINA_LINEXPR_INTLINEAR: elina_linexpr_type_t = 0;
10129pub const elina_linexpr_type_t_ELINA_LINEXPR_QUASILINEAR: elina_linexpr_type_t = 1;
10130pub const elina_linexpr_type_t_ELINA_LINEXPR_LINEAR: elina_linexpr_type_t = 2;
10131pub type elina_linexpr_type_t = ::std::os::raw::c_uint;
10132extern "C" {
10133    pub fn elina_linexpr0_alloc(
10134        lin_discr: elina_linexpr_discr_t,
10135        size: size_t,
10136    ) -> *mut elina_linexpr0_t;
10137}
10138extern "C" {
10139    pub fn elina_linexpr0_realloc(e: *mut elina_linexpr0_t, size: size_t);
10140}
10141extern "C" {
10142    pub fn elina_linexpr0_minimize(e: *mut elina_linexpr0_t);
10143}
10144extern "C" {
10145    pub fn elina_linexpr0_free(linexpr: *mut elina_linexpr0_t);
10146}
10147extern "C" {
10148    pub fn elina_linexpr0_copy(a: *mut elina_linexpr0_t) -> *mut elina_linexpr0_t;
10149}
10150extern "C" {
10151    pub fn elina_linexpr0_fprint(
10152        stream: *mut FILE,
10153        a: *mut elina_linexpr0_t,
10154        name_of_dim: *mut *mut ::std::os::raw::c_char,
10155    );
10156}
10157extern "C" {
10158    pub fn elina_linexpr0_print(
10159        a: *mut elina_linexpr0_t,
10160        name_of_dim: *mut *mut ::std::os::raw::c_char,
10161    );
10162}
10163extern "C" {
10164    pub fn elina_linexpr0_is_integer(a: *mut elina_linexpr0_t, intdim: size_t) -> bool_;
10165}
10166extern "C" {
10167    pub fn elina_linexpr0_is_real(a: *mut elina_linexpr0_t, intdim: size_t) -> bool_;
10168}
10169extern "C" {
10170    pub fn elina_linexpr0_type(a: *mut elina_linexpr0_t) -> elina_linexpr_type_t;
10171}
10172extern "C" {
10173    pub fn elina_linexpr0_is_linear(a: *mut elina_linexpr0_t) -> bool_;
10174}
10175extern "C" {
10176    pub fn elina_linexpr0_is_quasilinear(a: *mut elina_linexpr0_t) -> bool_;
10177}
10178extern "C" {
10179    pub fn elina_linexpr0_array_type(
10180        texpr: *mut *mut elina_linexpr0_t,
10181        size: size_t,
10182    ) -> elina_linexpr_type_t;
10183}
10184extern "C" {
10185    pub fn elina_linexpr0_array_is_linear(texpr: *mut *mut elina_linexpr0_t, size: size_t)
10186        -> bool_;
10187}
10188extern "C" {
10189    pub fn elina_linexpr0_array_is_quasilinear(
10190        texpr: *mut *mut elina_linexpr0_t,
10191        size: size_t,
10192    ) -> bool_;
10193}
10194extern "C" {
10195    pub fn elina_linexpr0_size(expr: *mut elina_linexpr0_t) -> size_t;
10196}
10197extern "C" {
10198    pub fn elina_linexpr0_cstref(expr: *mut elina_linexpr0_t) -> *mut elina_coeff_t;
10199}
10200extern "C" {
10201    pub fn elina_linexpr0_coeffref(
10202        expr: *mut elina_linexpr0_t,
10203        dim: elina_dim_t,
10204    ) -> *mut elina_coeff_t;
10205}
10206extern "C" {
10207    pub fn elina_linexpr0_get_cst(coeff: *mut elina_coeff_t, expr: *mut elina_linexpr0_t);
10208}
10209extern "C" {
10210    pub fn elina_linexpr0_get_coeff(
10211        coeff: *mut elina_coeff_t,
10212        expr: *mut elina_linexpr0_t,
10213        dim: elina_dim_t,
10214    ) -> bool_;
10215}
10216extern "C" {
10217    pub fn elina_linexpr0_set_cst(expr: *mut elina_linexpr0_t, cst: *mut elina_coeff_t);
10218}
10219extern "C" {
10220    pub fn elina_linexpr0_set_cst_scalar(expr: *mut elina_linexpr0_t, scalar: *mut elina_scalar_t);
10221}
10222extern "C" {
10223    pub fn elina_linexpr0_set_cst_scalar_int(
10224        expr: *mut elina_linexpr0_t,
10225        num: ::std::os::raw::c_int,
10226    );
10227}
10228extern "C" {
10229    pub fn elina_linexpr0_set_cst_scalar_frac(
10230        expr: *mut elina_linexpr0_t,
10231        num: ::std::os::raw::c_long,
10232        den: ::std::os::raw::c_ulong,
10233    );
10234}
10235extern "C" {
10236    pub fn elina_linexpr0_set_cst_scalar_double(expr: *mut elina_linexpr0_t, num: f64);
10237}
10238extern "C" {
10239    pub fn elina_linexpr0_set_cst_interval(expr: *mut elina_linexpr0_t, itv: *mut elina_interval_t);
10240}
10241extern "C" {
10242    pub fn elina_linexpr0_set_cst_interval_scalar(
10243        expr: *mut elina_linexpr0_t,
10244        inf: *mut elina_scalar_t,
10245        sup: *mut elina_scalar_t,
10246    );
10247}
10248extern "C" {
10249    pub fn elina_linexpr0_set_cst_interval_int(
10250        expr: *mut elina_linexpr0_t,
10251        inf: ::std::os::raw::c_int,
10252        sup: ::std::os::raw::c_int,
10253    );
10254}
10255extern "C" {
10256    pub fn elina_linexpr0_set_cst_interval_frac(
10257        expr: *mut elina_linexpr0_t,
10258        numinf: ::std::os::raw::c_long,
10259        deninf: ::std::os::raw::c_ulong,
10260        numsup: ::std::os::raw::c_long,
10261        densup: ::std::os::raw::c_ulong,
10262    );
10263}
10264extern "C" {
10265    pub fn elina_linexpr0_set_cst_interval_double(expr: *mut elina_linexpr0_t, inf: f64, sup: f64);
10266}
10267extern "C" {
10268    pub fn elina_linexpr0_set_coeff(
10269        expr: *mut elina_linexpr0_t,
10270        dim: elina_dim_t,
10271        coeff: *mut elina_coeff_t,
10272    ) -> bool_;
10273}
10274extern "C" {
10275    pub fn elina_linexpr0_set_coeff_scalar(
10276        expr: *mut elina_linexpr0_t,
10277        dim: elina_dim_t,
10278        scalar: *mut elina_scalar_t,
10279    ) -> bool_;
10280}
10281extern "C" {
10282    pub fn elina_linexpr0_set_coeff_scalar_int(
10283        expr: *mut elina_linexpr0_t,
10284        dim: elina_dim_t,
10285        num: ::std::os::raw::c_int,
10286    ) -> bool_;
10287}
10288extern "C" {
10289    pub fn elina_linexpr0_set_coeff_scalar_frac(
10290        expr: *mut elina_linexpr0_t,
10291        dim: elina_dim_t,
10292        num: ::std::os::raw::c_long,
10293        den: ::std::os::raw::c_ulong,
10294    ) -> bool_;
10295}
10296extern "C" {
10297    pub fn elina_linexpr0_set_coeff_scalar_double(
10298        expr: *mut elina_linexpr0_t,
10299        dim: elina_dim_t,
10300        num: f64,
10301    ) -> bool_;
10302}
10303extern "C" {
10304    pub fn elina_linexpr0_set_coeff_interval(
10305        expr: *mut elina_linexpr0_t,
10306        dim: elina_dim_t,
10307        itv: *mut elina_interval_t,
10308    ) -> bool_;
10309}
10310extern "C" {
10311    pub fn elina_linexpr0_set_coeff_interval_scalar(
10312        expr: *mut elina_linexpr0_t,
10313        dim: elina_dim_t,
10314        inf: *mut elina_scalar_t,
10315        sup: *mut elina_scalar_t,
10316    ) -> bool_;
10317}
10318extern "C" {
10319    pub fn elina_linexpr0_set_coeff_interval_int(
10320        expr: *mut elina_linexpr0_t,
10321        dim: elina_dim_t,
10322        inf: ::std::os::raw::c_int,
10323        sup: ::std::os::raw::c_int,
10324    ) -> bool_;
10325}
10326extern "C" {
10327    pub fn elina_linexpr0_set_coeff_interval_frac(
10328        expr: *mut elina_linexpr0_t,
10329        dim: elina_dim_t,
10330        numinf: ::std::os::raw::c_long,
10331        deninf: ::std::os::raw::c_ulong,
10332        numsup: ::std::os::raw::c_long,
10333        densup: ::std::os::raw::c_ulong,
10334    ) -> bool_;
10335}
10336extern "C" {
10337    pub fn elina_linexpr0_set_coeff_interval_double(
10338        expr: *mut elina_linexpr0_t,
10339        dim: elina_dim_t,
10340        inf: f64,
10341        sup: f64,
10342    ) -> bool_;
10343}
10344pub const elina_coefftag_t_ELINA_COEFF: elina_coefftag_t = 0;
10345pub const elina_coefftag_t_ELINA_COEFF_S: elina_coefftag_t = 1;
10346pub const elina_coefftag_t_ELINA_COEFF_S_MPQ: elina_coefftag_t = 2;
10347pub const elina_coefftag_t_ELINA_COEFF_S_MPFR: elina_coefftag_t = 3;
10348pub const elina_coefftag_t_ELINA_COEFF_S_INT: elina_coefftag_t = 4;
10349pub const elina_coefftag_t_ELINA_COEFF_S_FRAC: elina_coefftag_t = 5;
10350pub const elina_coefftag_t_ELINA_COEFF_S_DOUBLE: elina_coefftag_t = 6;
10351pub const elina_coefftag_t_ELINA_COEFF_I: elina_coefftag_t = 7;
10352pub const elina_coefftag_t_ELINA_COEFF_I_SCALAR: elina_coefftag_t = 8;
10353pub const elina_coefftag_t_ELINA_COEFF_I_MPQ: elina_coefftag_t = 9;
10354pub const elina_coefftag_t_ELINA_COEFF_I_MPFR: elina_coefftag_t = 10;
10355pub const elina_coefftag_t_ELINA_COEFF_I_INT: elina_coefftag_t = 11;
10356pub const elina_coefftag_t_ELINA_COEFF_I_FRAC: elina_coefftag_t = 12;
10357pub const elina_coefftag_t_ELINA_COEFF_I_DOUBLE: elina_coefftag_t = 13;
10358pub const elina_coefftag_t_ELINA_CST: elina_coefftag_t = 14;
10359pub const elina_coefftag_t_ELINA_CST_S: elina_coefftag_t = 15;
10360pub const elina_coefftag_t_ELINA_CST_S_MPQ: elina_coefftag_t = 16;
10361pub const elina_coefftag_t_ELINA_CST_S_MPFR: elina_coefftag_t = 17;
10362pub const elina_coefftag_t_ELINA_CST_S_INT: elina_coefftag_t = 18;
10363pub const elina_coefftag_t_ELINA_CST_S_FRAC: elina_coefftag_t = 19;
10364pub const elina_coefftag_t_ELINA_CST_S_DOUBLE: elina_coefftag_t = 20;
10365pub const elina_coefftag_t_ELINA_CST_I: elina_coefftag_t = 21;
10366pub const elina_coefftag_t_ELINA_CST_I_SCALAR: elina_coefftag_t = 22;
10367pub const elina_coefftag_t_ELINA_CST_I_MPQ: elina_coefftag_t = 23;
10368pub const elina_coefftag_t_ELINA_CST_I_MPFR: elina_coefftag_t = 24;
10369pub const elina_coefftag_t_ELINA_CST_I_INT: elina_coefftag_t = 25;
10370pub const elina_coefftag_t_ELINA_CST_I_FRAC: elina_coefftag_t = 26;
10371pub const elina_coefftag_t_ELINA_CST_I_DOUBLE: elina_coefftag_t = 27;
10372pub const elina_coefftag_t_ELINA_END: elina_coefftag_t = 28;
10373pub type elina_coefftag_t = ::std::os::raw::c_uint;
10374extern "C" {
10375    pub fn elina_linexpr0_set_list_generic(
10376        get_pcoeff: ::std::option::Option<
10377            unsafe extern "C" fn(
10378                expr: *mut ::std::os::raw::c_void,
10379                cst: bool_,
10380                va: *mut va_list,
10381            ) -> *mut elina_coeff_t,
10382        >,
10383        expr: *mut ::std::os::raw::c_void,
10384        va: *mut va_list,
10385    ) -> bool_;
10386}
10387extern "C" {
10388    pub fn elina_linexpr0_set_list(expr: *mut elina_linexpr0_t, ...) -> bool_;
10389}
10390extern "C" {
10391    pub fn elina_linexpr0_add_dimensions_with(
10392        expr: *mut elina_linexpr0_t,
10393        dimchange: *mut elina_dimchange_t,
10394    );
10395}
10396extern "C" {
10397    pub fn elina_linexpr0_add_dimensions(
10398        expr: *mut elina_linexpr0_t,
10399        dimchange: *mut elina_dimchange_t,
10400    ) -> *mut elina_linexpr0_t;
10401}
10402extern "C" {
10403    pub fn elina_linexpr0_permute_dimensions_with(
10404        expr: *mut elina_linexpr0_t,
10405        perm: *mut elina_dimperm_t,
10406    );
10407}
10408extern "C" {
10409    pub fn elina_linexpr0_permute_dimensions(
10410        expr: *mut elina_linexpr0_t,
10411        perm: *mut elina_dimperm_t,
10412    ) -> *mut elina_linexpr0_t;
10413}
10414extern "C" {
10415    pub fn elina_linexpr0_hash(expr: *mut elina_linexpr0_t) -> ::std::os::raw::c_long;
10416}
10417extern "C" {
10418    pub fn elina_linexpr0_equal(
10419        expr1: *mut elina_linexpr0_t,
10420        expr2: *mut elina_linexpr0_t,
10421    ) -> bool_;
10422}
10423extern "C" {
10424    pub fn elina_linexpr0_compare(
10425        expr1: *mut elina_linexpr0_t,
10426        expr2: *mut elina_linexpr0_t,
10427    ) -> ::std::os::raw::c_int;
10428}
10429extern "C" {
10430    pub fn elina_linexpr0_array_alloc(size: size_t) -> *mut *mut elina_linexpr0_t;
10431}
10432extern "C" {
10433    pub fn elina_linexpr0_array_free(texpr: *mut *mut elina_linexpr0_t, size: size_t);
10434}
10435pub const elina_texpr_op_t_ELINA_TEXPR_ADD: elina_texpr_op_t = 0;
10436pub const elina_texpr_op_t_ELINA_TEXPR_SUB: elina_texpr_op_t = 1;
10437pub const elina_texpr_op_t_ELINA_TEXPR_MUL: elina_texpr_op_t = 2;
10438pub const elina_texpr_op_t_ELINA_TEXPR_DIV: elina_texpr_op_t = 3;
10439pub const elina_texpr_op_t_ELINA_TEXPR_MOD: elina_texpr_op_t = 4;
10440pub const elina_texpr_op_t_ELINA_TEXPR_POW: elina_texpr_op_t = 5;
10441pub const elina_texpr_op_t_ELINA_TEXPR_NEG: elina_texpr_op_t = 6;
10442pub const elina_texpr_op_t_ELINA_TEXPR_CAST: elina_texpr_op_t = 7;
10443pub const elina_texpr_op_t_ELINA_TEXPR_SQRT: elina_texpr_op_t = 8;
10444pub type elina_texpr_op_t = ::std::os::raw::c_uint;
10445pub const elina_texpr_rtype_t_ELINA_RTYPE_REAL: elina_texpr_rtype_t = 0;
10446pub const elina_texpr_rtype_t_ELINA_RTYPE_INT: elina_texpr_rtype_t = 1;
10447pub const elina_texpr_rtype_t_ELINA_RTYPE_SINGLE: elina_texpr_rtype_t = 2;
10448pub const elina_texpr_rtype_t_ELINA_RTYPE_DOUBLE: elina_texpr_rtype_t = 3;
10449pub const elina_texpr_rtype_t_ELINA_RTYPE_EXTENDED: elina_texpr_rtype_t = 4;
10450pub const elina_texpr_rtype_t_ELINA_RTYPE_QUAD: elina_texpr_rtype_t = 5;
10451pub const elina_texpr_rtype_t_ELINA_RTYPE_SIZE: elina_texpr_rtype_t = 6;
10452pub type elina_texpr_rtype_t = ::std::os::raw::c_uint;
10453pub const elina_texpr_rdir_t_ELINA_RDIR_NEAREST: elina_texpr_rdir_t = 0;
10454pub const elina_texpr_rdir_t_ELINA_RDIR_ZERO: elina_texpr_rdir_t = 1;
10455pub const elina_texpr_rdir_t_ELINA_RDIR_UP: elina_texpr_rdir_t = 2;
10456pub const elina_texpr_rdir_t_ELINA_RDIR_DOWN: elina_texpr_rdir_t = 3;
10457pub const elina_texpr_rdir_t_ELINA_RDIR_RND: elina_texpr_rdir_t = 4;
10458pub const elina_texpr_rdir_t_ELINA_RDIR_SIZE: elina_texpr_rdir_t = 5;
10459pub type elina_texpr_rdir_t = ::std::os::raw::c_uint;
10460#[repr(C)]
10461#[derive(Debug, Copy, Clone)]
10462pub struct elina_texpr0_node_t {
10463    pub op: elina_texpr_op_t,
10464    pub type_: elina_texpr_rtype_t,
10465    pub dir: elina_texpr_rdir_t,
10466    pub exprA: *mut elina_texpr0_t,
10467    pub exprB: *mut elina_texpr0_t,
10468}
10469#[test]
10470fn bindgen_test_layout_elina_texpr0_node_t() {
10471    assert_eq!(
10472        ::std::mem::size_of::<elina_texpr0_node_t>(),
10473        32usize,
10474        concat!("Size of: ", stringify!(elina_texpr0_node_t))
10475    );
10476    assert_eq!(
10477        ::std::mem::align_of::<elina_texpr0_node_t>(),
10478        8usize,
10479        concat!("Alignment of ", stringify!(elina_texpr0_node_t))
10480    );
10481    assert_eq!(
10482        unsafe { &(*(::std::ptr::null::<elina_texpr0_node_t>())).op as *const _ as usize },
10483        0usize,
10484        concat!(
10485            "Offset of field: ",
10486            stringify!(elina_texpr0_node_t),
10487            "::",
10488            stringify!(op)
10489        )
10490    );
10491    assert_eq!(
10492        unsafe { &(*(::std::ptr::null::<elina_texpr0_node_t>())).type_ as *const _ as usize },
10493        4usize,
10494        concat!(
10495            "Offset of field: ",
10496            stringify!(elina_texpr0_node_t),
10497            "::",
10498            stringify!(type_)
10499        )
10500    );
10501    assert_eq!(
10502        unsafe { &(*(::std::ptr::null::<elina_texpr0_node_t>())).dir as *const _ as usize },
10503        8usize,
10504        concat!(
10505            "Offset of field: ",
10506            stringify!(elina_texpr0_node_t),
10507            "::",
10508            stringify!(dir)
10509        )
10510    );
10511    assert_eq!(
10512        unsafe { &(*(::std::ptr::null::<elina_texpr0_node_t>())).exprA as *const _ as usize },
10513        16usize,
10514        concat!(
10515            "Offset of field: ",
10516            stringify!(elina_texpr0_node_t),
10517            "::",
10518            stringify!(exprA)
10519        )
10520    );
10521    assert_eq!(
10522        unsafe { &(*(::std::ptr::null::<elina_texpr0_node_t>())).exprB as *const _ as usize },
10523        24usize,
10524        concat!(
10525            "Offset of field: ",
10526            stringify!(elina_texpr0_node_t),
10527            "::",
10528            stringify!(exprB)
10529        )
10530    );
10531}
10532pub const elina_texpr_discr_t_ELINA_TEXPR_CST: elina_texpr_discr_t = 0;
10533pub const elina_texpr_discr_t_ELINA_TEXPR_DIM: elina_texpr_discr_t = 1;
10534pub const elina_texpr_discr_t_ELINA_TEXPR_NODE: elina_texpr_discr_t = 2;
10535pub type elina_texpr_discr_t = ::std::os::raw::c_uint;
10536#[repr(C)]
10537#[derive(Copy, Clone)]
10538pub struct elina_texpr0_t {
10539    pub discr: elina_texpr_discr_t,
10540    pub val: elina_texpr0_t__bindgen_ty_1,
10541}
10542#[repr(C)]
10543#[derive(Copy, Clone)]
10544pub union elina_texpr0_t__bindgen_ty_1 {
10545    pub cst: elina_coeff_t,
10546    pub dim: elina_dim_t,
10547    pub node: *mut elina_texpr0_node_t,
10548}
10549#[test]
10550fn bindgen_test_layout_elina_texpr0_t__bindgen_ty_1() {
10551    assert_eq!(
10552        ::std::mem::size_of::<elina_texpr0_t__bindgen_ty_1>(),
10553        16usize,
10554        concat!("Size of: ", stringify!(elina_texpr0_t__bindgen_ty_1))
10555    );
10556    assert_eq!(
10557        ::std::mem::align_of::<elina_texpr0_t__bindgen_ty_1>(),
10558        8usize,
10559        concat!("Alignment of ", stringify!(elina_texpr0_t__bindgen_ty_1))
10560    );
10561    assert_eq!(
10562        unsafe {
10563            &(*(::std::ptr::null::<elina_texpr0_t__bindgen_ty_1>())).cst as *const _ as usize
10564        },
10565        0usize,
10566        concat!(
10567            "Offset of field: ",
10568            stringify!(elina_texpr0_t__bindgen_ty_1),
10569            "::",
10570            stringify!(cst)
10571        )
10572    );
10573    assert_eq!(
10574        unsafe {
10575            &(*(::std::ptr::null::<elina_texpr0_t__bindgen_ty_1>())).dim as *const _ as usize
10576        },
10577        0usize,
10578        concat!(
10579            "Offset of field: ",
10580            stringify!(elina_texpr0_t__bindgen_ty_1),
10581            "::",
10582            stringify!(dim)
10583        )
10584    );
10585    assert_eq!(
10586        unsafe {
10587            &(*(::std::ptr::null::<elina_texpr0_t__bindgen_ty_1>())).node as *const _ as usize
10588        },
10589        0usize,
10590        concat!(
10591            "Offset of field: ",
10592            stringify!(elina_texpr0_t__bindgen_ty_1),
10593            "::",
10594            stringify!(node)
10595        )
10596    );
10597}
10598#[test]
10599fn bindgen_test_layout_elina_texpr0_t() {
10600    assert_eq!(
10601        ::std::mem::size_of::<elina_texpr0_t>(),
10602        24usize,
10603        concat!("Size of: ", stringify!(elina_texpr0_t))
10604    );
10605    assert_eq!(
10606        ::std::mem::align_of::<elina_texpr0_t>(),
10607        8usize,
10608        concat!("Alignment of ", stringify!(elina_texpr0_t))
10609    );
10610    assert_eq!(
10611        unsafe { &(*(::std::ptr::null::<elina_texpr0_t>())).discr as *const _ as usize },
10612        0usize,
10613        concat!(
10614            "Offset of field: ",
10615            stringify!(elina_texpr0_t),
10616            "::",
10617            stringify!(discr)
10618        )
10619    );
10620    assert_eq!(
10621        unsafe { &(*(::std::ptr::null::<elina_texpr0_t>())).val as *const _ as usize },
10622        8usize,
10623        concat!(
10624            "Offset of field: ",
10625            stringify!(elina_texpr0_t),
10626            "::",
10627            stringify!(val)
10628        )
10629    );
10630}
10631extern "C" {
10632    pub fn elina_texpr0_cst(coeff: *mut elina_coeff_t) -> *mut elina_texpr0_t;
10633}
10634extern "C" {
10635    pub fn elina_texpr0_cst_scalar(scalar: *mut elina_scalar_t) -> *mut elina_texpr0_t;
10636}
10637extern "C" {
10638    pub fn elina_texpr0_cst_scalar_mpq(mpq: *mut __mpq_struct) -> *mut elina_texpr0_t;
10639}
10640extern "C" {
10641    pub fn elina_texpr0_cst_scalar_mpfr(mpfr: *mut __mpfr_struct) -> *mut elina_texpr0_t;
10642}
10643extern "C" {
10644    pub fn elina_texpr0_cst_scalar_int(num: ::std::os::raw::c_long) -> *mut elina_texpr0_t;
10645}
10646extern "C" {
10647    pub fn elina_texpr0_cst_scalar_frac(
10648        num: ::std::os::raw::c_long,
10649        den: ::std::os::raw::c_ulong,
10650    ) -> *mut elina_texpr0_t;
10651}
10652extern "C" {
10653    pub fn elina_texpr0_cst_scalar_double(num: f64) -> *mut elina_texpr0_t;
10654}
10655extern "C" {
10656    pub fn elina_texpr0_cst_interval(itv: *mut elina_interval_t) -> *mut elina_texpr0_t;
10657}
10658extern "C" {
10659    pub fn elina_texpr0_cst_interval_scalar(
10660        inf: *mut elina_scalar_t,
10661        sup: *mut elina_scalar_t,
10662    ) -> *mut elina_texpr0_t;
10663}
10664extern "C" {
10665    pub fn elina_texpr0_cst_interval_mpq(
10666        inf: *mut __mpq_struct,
10667        sup: *mut __mpq_struct,
10668    ) -> *mut elina_texpr0_t;
10669}
10670extern "C" {
10671    pub fn elina_texpr0_cst_interval_mpfr(
10672        inf: *mut __mpfr_struct,
10673        sup: *mut __mpfr_struct,
10674    ) -> *mut elina_texpr0_t;
10675}
10676extern "C" {
10677    pub fn elina_texpr0_cst_interval_int(
10678        inf: ::std::os::raw::c_long,
10679        sup: ::std::os::raw::c_long,
10680    ) -> *mut elina_texpr0_t;
10681}
10682extern "C" {
10683    pub fn elina_texpr0_cst_interval_frac(
10684        numinf: ::std::os::raw::c_long,
10685        deninf: ::std::os::raw::c_ulong,
10686        numsup: ::std::os::raw::c_long,
10687        densup: ::std::os::raw::c_ulong,
10688    ) -> *mut elina_texpr0_t;
10689}
10690extern "C" {
10691    pub fn elina_texpr0_cst_interval_double(inf: f64, sup: f64) -> *mut elina_texpr0_t;
10692}
10693extern "C" {
10694    pub fn elina_texpr0_cst_interval_top() -> *mut elina_texpr0_t;
10695}
10696extern "C" {
10697    pub fn elina_texpr0_dim(dim: elina_dim_t) -> *mut elina_texpr0_t;
10698}
10699extern "C" {
10700    pub fn elina_texpr0_unop(
10701        op: elina_texpr_op_t,
10702        opA: *mut elina_texpr0_t,
10703        type_: elina_texpr_rtype_t,
10704        dir: elina_texpr_rdir_t,
10705    ) -> *mut elina_texpr0_t;
10706}
10707extern "C" {
10708    pub fn elina_texpr0_binop(
10709        op: elina_texpr_op_t,
10710        opA: *mut elina_texpr0_t,
10711        opB: *mut elina_texpr0_t,
10712        type_: elina_texpr_rtype_t,
10713        dir: elina_texpr_rdir_t,
10714    ) -> *mut elina_texpr0_t;
10715}
10716extern "C" {
10717    pub fn elina_texpr0_copy(expr: *mut elina_texpr0_t) -> *mut elina_texpr0_t;
10718}
10719extern "C" {
10720    pub fn elina_texpr0_free(expr: *mut elina_texpr0_t);
10721}
10722extern "C" {
10723    pub fn elina_texpr0_from_linexpr0(e: *mut elina_linexpr0_t) -> *mut elina_texpr0_t;
10724}
10725extern "C" {
10726    pub fn elina_texpr0_fprint(
10727        stream: *mut FILE,
10728        a: *mut elina_texpr0_t,
10729        name_of_dim: *mut *mut ::std::os::raw::c_char,
10730    );
10731}
10732extern "C" {
10733    pub fn elina_texpr0_print(
10734        a: *mut elina_texpr0_t,
10735        name_of_dim: *mut *mut ::std::os::raw::c_char,
10736    );
10737}
10738extern "C" {
10739    pub fn elina_texpr0_depth(a: *mut elina_texpr0_t) -> size_t;
10740}
10741extern "C" {
10742    pub fn elina_texpr0_size(a: *mut elina_texpr0_t) -> size_t;
10743}
10744extern "C" {
10745    pub fn elina_texpr0_max_dim(a: *mut elina_texpr0_t) -> elina_dim_t;
10746}
10747extern "C" {
10748    pub fn elina_texpr0_has_dim(a: *mut elina_texpr0_t, d: elina_dim_t) -> bool_;
10749}
10750extern "C" {
10751    pub fn elina_texpr0_dimlist(a: *mut elina_texpr0_t) -> *mut elina_dim_t;
10752}
10753extern "C" {
10754    pub fn elina_texpr0_is_interval_cst(a: *mut elina_texpr0_t) -> bool_;
10755}
10756extern "C" {
10757    pub fn elina_texpr0_is_interval_linear(a: *mut elina_texpr0_t) -> bool_;
10758}
10759extern "C" {
10760    pub fn elina_texpr0_is_interval_polynomial(a: *mut elina_texpr0_t) -> bool_;
10761}
10762extern "C" {
10763    pub fn elina_texpr0_is_interval_polyfrac(a: *mut elina_texpr0_t) -> bool_;
10764}
10765extern "C" {
10766    pub fn elina_texpr0_is_scalar(a: *mut elina_texpr0_t) -> bool_;
10767}
10768extern "C" {
10769    pub fn elina_texpr0_array_is_interval_linear(
10770        texpr: *mut *mut elina_texpr0_t,
10771        size: size_t,
10772    ) -> bool_;
10773}
10774extern "C" {
10775    pub fn elina_texpr0_array_is_interval_polynomial(
10776        texpr: *mut *mut elina_texpr0_t,
10777        size: size_t,
10778    ) -> bool_;
10779}
10780extern "C" {
10781    pub fn elina_texpr0_array_is_interval_polyfrac(
10782        texpr: *mut *mut elina_texpr0_t,
10783        size: size_t,
10784    ) -> bool_;
10785}
10786extern "C" {
10787    pub fn elina_texpr0_array_is_scalar(texpr: *mut *mut elina_texpr0_t, size: size_t) -> bool_;
10788}
10789extern "C" {
10790    pub fn elina_texpr0_substitute(
10791        a: *mut elina_texpr0_t,
10792        dim: elina_dim_t,
10793        dst: *mut elina_texpr0_t,
10794    ) -> *mut elina_texpr0_t;
10795}
10796extern "C" {
10797    pub fn elina_texpr0_substitute_with(
10798        a: *mut elina_texpr0_t,
10799        dim: elina_dim_t,
10800        dst: *mut elina_texpr0_t,
10801    );
10802}
10803extern "C" {
10804    pub fn elina_texpr0_add_dimensions(
10805        expr: *mut elina_texpr0_t,
10806        dimchange: *mut elina_dimchange_t,
10807    ) -> *mut elina_texpr0_t;
10808}
10809extern "C" {
10810    pub fn elina_texpr0_remove_dimensions(
10811        expr: *mut elina_texpr0_t,
10812        dimchange: *mut elina_dimchange_t,
10813    ) -> *mut elina_texpr0_t;
10814}
10815extern "C" {
10816    pub fn elina_texpr0_permute_dimensions(
10817        expr: *mut elina_texpr0_t,
10818        dimperm: *mut elina_dimperm_t,
10819    ) -> *mut elina_texpr0_t;
10820}
10821extern "C" {
10822    pub fn elina_texpr0_add_dimensions_with(
10823        expr: *mut elina_texpr0_t,
10824        dimchange: *mut elina_dimchange_t,
10825    );
10826}
10827extern "C" {
10828    pub fn elina_texpr0_remove_dimensions_with(
10829        expr: *mut elina_texpr0_t,
10830        dimchange: *mut elina_dimchange_t,
10831    );
10832}
10833extern "C" {
10834    pub fn elina_texpr0_permute_dimensions_with(
10835        expr: *mut elina_texpr0_t,
10836        perm: *mut elina_dimperm_t,
10837    );
10838}
10839extern "C" {
10840    pub fn elina_texpr0_hash(a: *mut elina_texpr0_t) -> ::std::os::raw::c_long;
10841}
10842extern "C" {
10843    pub fn elina_texpr0_equal(a1: *mut elina_texpr0_t, a2: *mut elina_texpr0_t) -> bool_;
10844}
10845extern "C" {
10846    pub fn elina_texpr0_node(
10847        op: elina_texpr_op_t,
10848        type_: elina_texpr_rtype_t,
10849        dir: elina_texpr_rdir_t,
10850        opA: *mut elina_texpr0_t,
10851        opB: *mut elina_texpr0_t,
10852    ) -> *mut elina_texpr0_t;
10853}
10854extern "C" {
10855    pub fn elina_texpr0_node_free(node: *mut elina_texpr0_node_t);
10856}
10857extern "C" {
10858    pub fn elina_texpr0_clear(node: *mut elina_texpr0_t);
10859}
10860pub const elina_constyp_t_ELINA_CONS_EQ: elina_constyp_t = 0;
10861pub const elina_constyp_t_ELINA_CONS_SUPEQ: elina_constyp_t = 1;
10862pub const elina_constyp_t_ELINA_CONS_SUP: elina_constyp_t = 2;
10863pub const elina_constyp_t_ELINA_CONS_EQMOD: elina_constyp_t = 3;
10864pub const elina_constyp_t_ELINA_CONS_DISEQ: elina_constyp_t = 4;
10865pub type elina_constyp_t = ::std::os::raw::c_uint;
10866#[repr(C)]
10867#[derive(Debug, Copy, Clone)]
10868pub struct elina_lincons0_t {
10869    pub linexpr0: *mut elina_linexpr0_t,
10870    pub constyp: elina_constyp_t,
10871    pub scalar: *mut elina_scalar_t,
10872}
10873#[test]
10874fn bindgen_test_layout_elina_lincons0_t() {
10875    assert_eq!(
10876        ::std::mem::size_of::<elina_lincons0_t>(),
10877        24usize,
10878        concat!("Size of: ", stringify!(elina_lincons0_t))
10879    );
10880    assert_eq!(
10881        ::std::mem::align_of::<elina_lincons0_t>(),
10882        8usize,
10883        concat!("Alignment of ", stringify!(elina_lincons0_t))
10884    );
10885    assert_eq!(
10886        unsafe { &(*(::std::ptr::null::<elina_lincons0_t>())).linexpr0 as *const _ as usize },
10887        0usize,
10888        concat!(
10889            "Offset of field: ",
10890            stringify!(elina_lincons0_t),
10891            "::",
10892            stringify!(linexpr0)
10893        )
10894    );
10895    assert_eq!(
10896        unsafe { &(*(::std::ptr::null::<elina_lincons0_t>())).constyp as *const _ as usize },
10897        8usize,
10898        concat!(
10899            "Offset of field: ",
10900            stringify!(elina_lincons0_t),
10901            "::",
10902            stringify!(constyp)
10903        )
10904    );
10905    assert_eq!(
10906        unsafe { &(*(::std::ptr::null::<elina_lincons0_t>())).scalar as *const _ as usize },
10907        16usize,
10908        concat!(
10909            "Offset of field: ",
10910            stringify!(elina_lincons0_t),
10911            "::",
10912            stringify!(scalar)
10913        )
10914    );
10915}
10916#[repr(C)]
10917#[derive(Debug, Copy, Clone)]
10918pub struct elina_lincons0_array_t {
10919    pub p: *mut elina_lincons0_t,
10920    pub size: size_t,
10921}
10922#[test]
10923fn bindgen_test_layout_elina_lincons0_array_t() {
10924    assert_eq!(
10925        ::std::mem::size_of::<elina_lincons0_array_t>(),
10926        16usize,
10927        concat!("Size of: ", stringify!(elina_lincons0_array_t))
10928    );
10929    assert_eq!(
10930        ::std::mem::align_of::<elina_lincons0_array_t>(),
10931        8usize,
10932        concat!("Alignment of ", stringify!(elina_lincons0_array_t))
10933    );
10934    assert_eq!(
10935        unsafe { &(*(::std::ptr::null::<elina_lincons0_array_t>())).p as *const _ as usize },
10936        0usize,
10937        concat!(
10938            "Offset of field: ",
10939            stringify!(elina_lincons0_array_t),
10940            "::",
10941            stringify!(p)
10942        )
10943    );
10944    assert_eq!(
10945        unsafe { &(*(::std::ptr::null::<elina_lincons0_array_t>())).size as *const _ as usize },
10946        8usize,
10947        concat!(
10948            "Offset of field: ",
10949            stringify!(elina_lincons0_array_t),
10950            "::",
10951            stringify!(size)
10952        )
10953    );
10954}
10955extern "C" {
10956    pub fn elina_lincons0_make(
10957        constyp: elina_constyp_t,
10958        linexpr: *mut elina_linexpr0_t,
10959        scalar: *mut elina_scalar_t,
10960    ) -> elina_lincons0_t;
10961}
10962extern "C" {
10963    pub fn elina_lincons0_make_unsat() -> elina_lincons0_t;
10964}
10965extern "C" {
10966    pub fn elina_lincons0_copy(cons: *mut elina_lincons0_t) -> elina_lincons0_t;
10967}
10968extern "C" {
10969    pub fn elina_lincons0_clear(cons: *mut elina_lincons0_t);
10970}
10971extern "C" {
10972    pub fn elina_lincons0_print(
10973        cons: *mut elina_lincons0_t,
10974        name_of_dim: *mut *mut ::std::os::raw::c_char,
10975    );
10976}
10977extern "C" {
10978    pub fn elina_lincons0_fprint(
10979        stream: *mut FILE,
10980        cons: *mut elina_lincons0_t,
10981        name_of_dim: *mut *mut ::std::os::raw::c_char,
10982    );
10983}
10984extern "C" {
10985    pub fn elina_lincons0_is_unsat(cons: *mut elina_lincons0_t) -> bool_;
10986}
10987extern "C" {
10988    pub fn elina_lincons0_is_sat(cons: *mut elina_lincons0_t) -> bool_;
10989}
10990extern "C" {
10991    pub fn elina_lincons0_add_dimensions_with(
10992        cons: *mut elina_lincons0_t,
10993        dimchange: *mut elina_dimchange_t,
10994    );
10995}
10996extern "C" {
10997    pub fn elina_lincons0_add_dimensions(
10998        cons: *mut elina_lincons0_t,
10999        dimchange: *mut elina_dimchange_t,
11000    ) -> elina_lincons0_t;
11001}
11002extern "C" {
11003    pub fn elina_lincons0_permute_dimensions_with(
11004        cons: *mut elina_lincons0_t,
11005        perm: *mut elina_dimperm_t,
11006    );
11007}
11008extern "C" {
11009    pub fn elina_lincons0_permute_dimensions(
11010        cons: *mut elina_lincons0_t,
11011        perm: *mut elina_dimperm_t,
11012    ) -> elina_lincons0_t;
11013}
11014extern "C" {
11015    pub fn elina_lincons0_array_make(size: size_t) -> elina_lincons0_array_t;
11016}
11017extern "C" {
11018    pub fn elina_lincons0_array_resize(array: *mut elina_lincons0_array_t, size: size_t);
11019}
11020extern "C" {
11021    pub fn elina_lincons0_array_clear(array: *mut elina_lincons0_array_t);
11022}
11023extern "C" {
11024    pub fn elina_lincons0_array_print(
11025        elina_lincons0_array: *mut elina_lincons0_array_t,
11026        name_of_dim: *mut *mut ::std::os::raw::c_char,
11027    );
11028}
11029extern "C" {
11030    pub fn elina_lincons0_array_fprint(
11031        stream: *mut FILE,
11032        elina_lincons0_array: *mut elina_lincons0_array_t,
11033        name_of_dim: *mut *mut ::std::os::raw::c_char,
11034    );
11035}
11036extern "C" {
11037    pub fn elina_lincons0_array_type(array: *mut elina_lincons0_array_t) -> elina_linexpr_type_t;
11038}
11039extern "C" {
11040    pub fn elina_lincons0_array_is_linear(array: *mut elina_lincons0_array_t) -> bool_;
11041}
11042extern "C" {
11043    pub fn elina_lincons0_array_is_quasilinear(array: *mut elina_lincons0_array_t) -> bool_;
11044}
11045extern "C" {
11046    pub fn elina_lincons0_array_add_dimensions_with(
11047        array: *mut elina_lincons0_array_t,
11048        dimchange: *mut elina_dimchange_t,
11049    );
11050}
11051extern "C" {
11052    pub fn elina_lincons0_array_add_dimensions(
11053        array: *mut elina_lincons0_array_t,
11054        dimchange: *mut elina_dimchange_t,
11055    ) -> elina_lincons0_array_t;
11056}
11057extern "C" {
11058    pub fn elina_lincons0_array_permute_dimensions_with(
11059        array: *mut elina_lincons0_array_t,
11060        perm: *mut elina_dimperm_t,
11061    );
11062}
11063extern "C" {
11064    pub fn elina_lincons0_array_permute_dimensions(
11065        array: *mut elina_lincons0_array_t,
11066        perm: *mut elina_dimperm_t,
11067    ) -> elina_lincons0_array_t;
11068}
11069#[repr(C)]
11070#[derive(Debug, Copy, Clone)]
11071pub struct elina_tcons0_t {
11072    pub texpr0: *mut elina_texpr0_t,
11073    pub constyp: elina_constyp_t,
11074    pub scalar: *mut elina_scalar_t,
11075}
11076#[test]
11077fn bindgen_test_layout_elina_tcons0_t() {
11078    assert_eq!(
11079        ::std::mem::size_of::<elina_tcons0_t>(),
11080        24usize,
11081        concat!("Size of: ", stringify!(elina_tcons0_t))
11082    );
11083    assert_eq!(
11084        ::std::mem::align_of::<elina_tcons0_t>(),
11085        8usize,
11086        concat!("Alignment of ", stringify!(elina_tcons0_t))
11087    );
11088    assert_eq!(
11089        unsafe { &(*(::std::ptr::null::<elina_tcons0_t>())).texpr0 as *const _ as usize },
11090        0usize,
11091        concat!(
11092            "Offset of field: ",
11093            stringify!(elina_tcons0_t),
11094            "::",
11095            stringify!(texpr0)
11096        )
11097    );
11098    assert_eq!(
11099        unsafe { &(*(::std::ptr::null::<elina_tcons0_t>())).constyp as *const _ as usize },
11100        8usize,
11101        concat!(
11102            "Offset of field: ",
11103            stringify!(elina_tcons0_t),
11104            "::",
11105            stringify!(constyp)
11106        )
11107    );
11108    assert_eq!(
11109        unsafe { &(*(::std::ptr::null::<elina_tcons0_t>())).scalar as *const _ as usize },
11110        16usize,
11111        concat!(
11112            "Offset of field: ",
11113            stringify!(elina_tcons0_t),
11114            "::",
11115            stringify!(scalar)
11116        )
11117    );
11118}
11119#[repr(C)]
11120#[derive(Debug, Copy, Clone)]
11121pub struct elina_tcons0_array_t {
11122    pub p: *mut elina_tcons0_t,
11123    pub size: size_t,
11124}
11125#[test]
11126fn bindgen_test_layout_elina_tcons0_array_t() {
11127    assert_eq!(
11128        ::std::mem::size_of::<elina_tcons0_array_t>(),
11129        16usize,
11130        concat!("Size of: ", stringify!(elina_tcons0_array_t))
11131    );
11132    assert_eq!(
11133        ::std::mem::align_of::<elina_tcons0_array_t>(),
11134        8usize,
11135        concat!("Alignment of ", stringify!(elina_tcons0_array_t))
11136    );
11137    assert_eq!(
11138        unsafe { &(*(::std::ptr::null::<elina_tcons0_array_t>())).p as *const _ as usize },
11139        0usize,
11140        concat!(
11141            "Offset of field: ",
11142            stringify!(elina_tcons0_array_t),
11143            "::",
11144            stringify!(p)
11145        )
11146    );
11147    assert_eq!(
11148        unsafe { &(*(::std::ptr::null::<elina_tcons0_array_t>())).size as *const _ as usize },
11149        8usize,
11150        concat!(
11151            "Offset of field: ",
11152            stringify!(elina_tcons0_array_t),
11153            "::",
11154            stringify!(size)
11155        )
11156    );
11157}
11158extern "C" {
11159    pub fn elina_tcons0_make_unsat() -> elina_tcons0_t;
11160}
11161extern "C" {
11162    pub fn elina_tcons0_fprint(
11163        stream: *mut FILE,
11164        cons: *mut elina_tcons0_t,
11165        name_of_dim: *mut *mut ::std::os::raw::c_char,
11166    );
11167}
11168extern "C" {
11169    pub fn elina_tcons0_array_make(size: size_t) -> elina_tcons0_array_t;
11170}
11171extern "C" {
11172    pub fn elina_tcons0_array_resize(array: *mut elina_tcons0_array_t, size: size_t);
11173}
11174extern "C" {
11175    pub fn elina_tcons0_array_clear(array: *mut elina_tcons0_array_t);
11176}
11177extern "C" {
11178    pub fn elina_tcons0_array_fprint(
11179        stream: *mut FILE,
11180        elina_tcons0_array: *mut elina_tcons0_array_t,
11181        name_of_dim: *mut *mut ::std::os::raw::c_char,
11182    );
11183}
11184extern "C" {
11185    pub fn elina_tcons0_array_is_interval_linear(array: *mut elina_tcons0_array_t) -> bool_;
11186}
11187extern "C" {
11188    pub fn elina_tcons0_array_add_dimensions_with(
11189        array: *mut elina_tcons0_array_t,
11190        dimchange: *mut elina_dimchange_t,
11191    );
11192}
11193extern "C" {
11194    pub fn elina_tcons0_array_add_dimensions(
11195        array: *mut elina_tcons0_array_t,
11196        dimchange: *mut elina_dimchange_t,
11197    ) -> elina_tcons0_array_t;
11198}
11199extern "C" {
11200    pub fn elina_tcons0_array_remove_dimensions_with(
11201        array: *mut elina_tcons0_array_t,
11202        dimchange: *mut elina_dimchange_t,
11203    );
11204}
11205extern "C" {
11206    pub fn elina_tcons0_array_remove_dimensions(
11207        array: *mut elina_tcons0_array_t,
11208        dimchange: *mut elina_dimchange_t,
11209    ) -> elina_tcons0_array_t;
11210}
11211extern "C" {
11212    pub fn elina_tcons0_array_permute_dimensions_with(
11213        array: *mut elina_tcons0_array_t,
11214        perm: *mut elina_dimperm_t,
11215    );
11216}
11217extern "C" {
11218    pub fn elina_tcons0_array_permute_dimensions(
11219        array: *mut elina_tcons0_array_t,
11220        perm: *mut elina_dimperm_t,
11221    ) -> elina_tcons0_array_t;
11222}
11223#[repr(C)]
11224#[derive(Debug, Copy, Clone)]
11225pub struct elina_membuf_t {
11226    pub ptr: *mut ::std::os::raw::c_void,
11227    pub size: size_t,
11228}
11229#[test]
11230fn bindgen_test_layout_elina_membuf_t() {
11231    assert_eq!(
11232        ::std::mem::size_of::<elina_membuf_t>(),
11233        16usize,
11234        concat!("Size of: ", stringify!(elina_membuf_t))
11235    );
11236    assert_eq!(
11237        ::std::mem::align_of::<elina_membuf_t>(),
11238        8usize,
11239        concat!("Alignment of ", stringify!(elina_membuf_t))
11240    );
11241    assert_eq!(
11242        unsafe { &(*(::std::ptr::null::<elina_membuf_t>())).ptr as *const _ as usize },
11243        0usize,
11244        concat!(
11245            "Offset of field: ",
11246            stringify!(elina_membuf_t),
11247            "::",
11248            stringify!(ptr)
11249        )
11250    );
11251    assert_eq!(
11252        unsafe { &(*(::std::ptr::null::<elina_membuf_t>())).size as *const _ as usize },
11253        8usize,
11254        concat!(
11255            "Offset of field: ",
11256            stringify!(elina_membuf_t),
11257            "::",
11258            stringify!(size)
11259        )
11260    );
11261}
11262pub const elina_funid_t_ELINA_FUNID_UNKNOWN: elina_funid_t = 0;
11263pub const elina_funid_t_ELINA_FUNID_COPY: elina_funid_t = 1;
11264pub const elina_funid_t_ELINA_FUNID_FREE: elina_funid_t = 2;
11265pub const elina_funid_t_ELINA_FUNID_ASIZE: elina_funid_t = 3;
11266pub const elina_funid_t_ELINA_FUNID_MINIMIZE: elina_funid_t = 4;
11267pub const elina_funid_t_ELINA_FUNID_CANONICALIZE: elina_funid_t = 5;
11268pub const elina_funid_t_ELINA_FUNID_HASH: elina_funid_t = 6;
11269pub const elina_funid_t_ELINA_FUNID_APPROXIMATE: elina_funid_t = 7;
11270pub const elina_funid_t_ELINA_FUNID_FPRINT: elina_funid_t = 8;
11271pub const elina_funid_t_ELINA_FUNID_FPRINTDIFF: elina_funid_t = 9;
11272pub const elina_funid_t_ELINA_FUNID_FDUMP: elina_funid_t = 10;
11273pub const elina_funid_t_ELINA_FUNID_SERIALIZE_RAW: elina_funid_t = 11;
11274pub const elina_funid_t_ELINA_FUNID_DESERIALIZE_RAW: elina_funid_t = 12;
11275pub const elina_funid_t_ELINA_FUNID_BOTTOM: elina_funid_t = 13;
11276pub const elina_funid_t_ELINA_FUNID_TOP: elina_funid_t = 14;
11277pub const elina_funid_t_ELINA_FUNID_OF_BOX: elina_funid_t = 15;
11278pub const elina_funid_t_ELINA_FUNID_DIMENSION: elina_funid_t = 16;
11279pub const elina_funid_t_ELINA_FUNID_IS_BOTTOM: elina_funid_t = 17;
11280pub const elina_funid_t_ELINA_FUNID_IS_TOP: elina_funid_t = 18;
11281pub const elina_funid_t_ELINA_FUNID_IS_LEQ: elina_funid_t = 19;
11282pub const elina_funid_t_ELINA_FUNID_IS_EQ: elina_funid_t = 20;
11283pub const elina_funid_t_ELINA_FUNID_IS_DIMENSION_UNCONSTRAINED: elina_funid_t = 21;
11284pub const elina_funid_t_ELINA_FUNID_SAT_INTERVAL: elina_funid_t = 22;
11285pub const elina_funid_t_ELINA_FUNID_SAT_LINCONS: elina_funid_t = 23;
11286pub const elina_funid_t_ELINA_FUNID_SAT_TCONS: elina_funid_t = 24;
11287pub const elina_funid_t_ELINA_FUNID_BOUND_DIMENSION: elina_funid_t = 25;
11288pub const elina_funid_t_ELINA_FUNID_BOUND_LINEXPR: elina_funid_t = 26;
11289pub const elina_funid_t_ELINA_FUNID_BOUND_TEXPR: elina_funid_t = 27;
11290pub const elina_funid_t_ELINA_FUNID_TO_BOX: elina_funid_t = 28;
11291pub const elina_funid_t_ELINA_FUNID_TO_LINCONS_ARRAY: elina_funid_t = 29;
11292pub const elina_funid_t_ELINA_FUNID_TO_TCONS_ARRAY: elina_funid_t = 30;
11293pub const elina_funid_t_ELINA_FUNID_TO_GENERATOR_ARRAY: elina_funid_t = 31;
11294pub const elina_funid_t_ELINA_FUNID_MEET: elina_funid_t = 32;
11295pub const elina_funid_t_ELINA_FUNID_MEET_ARRAY: elina_funid_t = 33;
11296pub const elina_funid_t_ELINA_FUNID_MEET_LINCONS_ARRAY: elina_funid_t = 34;
11297pub const elina_funid_t_ELINA_FUNID_MEET_TCONS_ARRAY: elina_funid_t = 35;
11298pub const elina_funid_t_ELINA_FUNID_JOIN: elina_funid_t = 36;
11299pub const elina_funid_t_ELINA_FUNID_JOIN_ARRAY: elina_funid_t = 37;
11300pub const elina_funid_t_ELINA_FUNID_ADD_RAY_ARRAY: elina_funid_t = 38;
11301pub const elina_funid_t_ELINA_FUNID_ASSIGN_LINEXPR_ARRAY: elina_funid_t = 39;
11302pub const elina_funid_t_ELINA_FUNID_SUBSTITUTE_LINEXPR_ARRAY: elina_funid_t = 40;
11303pub const elina_funid_t_ELINA_FUNID_ASSIGN_TEXPR_ARRAY: elina_funid_t = 41;
11304pub const elina_funid_t_ELINA_FUNID_SUBSTITUTE_TEXPR_ARRAY: elina_funid_t = 42;
11305pub const elina_funid_t_ELINA_FUNID_ADD_DIMENSIONS: elina_funid_t = 43;
11306pub const elina_funid_t_ELINA_FUNID_REMOVE_DIMENSIONS: elina_funid_t = 44;
11307pub const elina_funid_t_ELINA_FUNID_PERMUTE_DIMENSIONS: elina_funid_t = 45;
11308pub const elina_funid_t_ELINA_FUNID_FORGET_ARRAY: elina_funid_t = 46;
11309pub const elina_funid_t_ELINA_FUNID_EXPAND: elina_funid_t = 47;
11310pub const elina_funid_t_ELINA_FUNID_FOLD: elina_funid_t = 48;
11311pub const elina_funid_t_ELINA_FUNID_WIDENING: elina_funid_t = 49;
11312pub const elina_funid_t_ELINA_FUNID_CLOSURE: elina_funid_t = 50;
11313pub const elina_funid_t_ELINA_FUNID_SIZE: elina_funid_t = 51;
11314pub const elina_funid_t_ELINA_FUNID_CHANGE_ENVIRONMENT: elina_funid_t = 52;
11315pub const elina_funid_t_ELINA_FUNID_RENAME_ARRAY: elina_funid_t = 53;
11316pub const elina_funid_t_ELINA_FUNID_SIZE2: elina_funid_t = 54;
11317pub type elina_funid_t = ::std::os::raw::c_uint;
11318extern "C" {
11319    pub static mut elina_name_of_funid: [*const ::std::os::raw::c_char; 54usize];
11320}
11321pub const elina_exc_t_ELINA_EXC_NONE: elina_exc_t = 0;
11322pub const elina_exc_t_ELINA_EXC_TIMEOUT: elina_exc_t = 1;
11323pub const elina_exc_t_ELINA_EXC_OUT_OF_SPACE: elina_exc_t = 2;
11324pub const elina_exc_t_ELINA_EXC_OVERFLOW: elina_exc_t = 3;
11325pub const elina_exc_t_ELINA_EXC_INVALID_ARGUMENT: elina_exc_t = 4;
11326pub const elina_exc_t_ELINA_EXC_NOT_IMPLEMENTED: elina_exc_t = 5;
11327pub const elina_exc_t_ELINA_EXC_SIZE: elina_exc_t = 6;
11328pub type elina_exc_t = ::std::os::raw::c_uint;
11329extern "C" {
11330    pub static mut elina_name_of_exception: [*const ::std::os::raw::c_char; 6usize];
11331}
11332#[repr(C)]
11333#[derive(Debug, Copy, Clone)]
11334pub struct elina_exclog_t {
11335    pub exn: elina_exc_t,
11336    pub funid: elina_funid_t,
11337    pub msg: *mut ::std::os::raw::c_char,
11338    pub tail: *mut elina_exclog_t,
11339}
11340#[test]
11341fn bindgen_test_layout_elina_exclog_t() {
11342    assert_eq!(
11343        ::std::mem::size_of::<elina_exclog_t>(),
11344        24usize,
11345        concat!("Size of: ", stringify!(elina_exclog_t))
11346    );
11347    assert_eq!(
11348        ::std::mem::align_of::<elina_exclog_t>(),
11349        8usize,
11350        concat!("Alignment of ", stringify!(elina_exclog_t))
11351    );
11352    assert_eq!(
11353        unsafe { &(*(::std::ptr::null::<elina_exclog_t>())).exn as *const _ as usize },
11354        0usize,
11355        concat!(
11356            "Offset of field: ",
11357            stringify!(elina_exclog_t),
11358            "::",
11359            stringify!(exn)
11360        )
11361    );
11362    assert_eq!(
11363        unsafe { &(*(::std::ptr::null::<elina_exclog_t>())).funid as *const _ as usize },
11364        4usize,
11365        concat!(
11366            "Offset of field: ",
11367            stringify!(elina_exclog_t),
11368            "::",
11369            stringify!(funid)
11370        )
11371    );
11372    assert_eq!(
11373        unsafe { &(*(::std::ptr::null::<elina_exclog_t>())).msg as *const _ as usize },
11374        8usize,
11375        concat!(
11376            "Offset of field: ",
11377            stringify!(elina_exclog_t),
11378            "::",
11379            stringify!(msg)
11380        )
11381    );
11382    assert_eq!(
11383        unsafe { &(*(::std::ptr::null::<elina_exclog_t>())).tail as *const _ as usize },
11384        16usize,
11385        concat!(
11386            "Offset of field: ",
11387            stringify!(elina_exclog_t),
11388            "::",
11389            stringify!(tail)
11390        )
11391    );
11392}
11393#[repr(C)]
11394#[derive(Debug, Copy, Clone)]
11395pub struct elina_result_t {
11396    pub exclog: *mut elina_exclog_t,
11397    pub exn: elina_exc_t,
11398    pub flag_exact: bool_,
11399    pub flag_best: bool_,
11400}
11401#[test]
11402fn bindgen_test_layout_elina_result_t() {
11403    assert_eq!(
11404        ::std::mem::size_of::<elina_result_t>(),
11405        16usize,
11406        concat!("Size of: ", stringify!(elina_result_t))
11407    );
11408    assert_eq!(
11409        ::std::mem::align_of::<elina_result_t>(),
11410        8usize,
11411        concat!("Alignment of ", stringify!(elina_result_t))
11412    );
11413    assert_eq!(
11414        unsafe { &(*(::std::ptr::null::<elina_result_t>())).exclog as *const _ as usize },
11415        0usize,
11416        concat!(
11417            "Offset of field: ",
11418            stringify!(elina_result_t),
11419            "::",
11420            stringify!(exclog)
11421        )
11422    );
11423    assert_eq!(
11424        unsafe { &(*(::std::ptr::null::<elina_result_t>())).exn as *const _ as usize },
11425        8usize,
11426        concat!(
11427            "Offset of field: ",
11428            stringify!(elina_result_t),
11429            "::",
11430            stringify!(exn)
11431        )
11432    );
11433    assert_eq!(
11434        unsafe { &(*(::std::ptr::null::<elina_result_t>())).flag_exact as *const _ as usize },
11435        12usize,
11436        concat!(
11437            "Offset of field: ",
11438            stringify!(elina_result_t),
11439            "::",
11440            stringify!(flag_exact)
11441        )
11442    );
11443    assert_eq!(
11444        unsafe { &(*(::std::ptr::null::<elina_result_t>())).flag_best as *const _ as usize },
11445        13usize,
11446        concat!(
11447            "Offset of field: ",
11448            stringify!(elina_result_t),
11449            "::",
11450            stringify!(flag_best)
11451        )
11452    );
11453}
11454#[repr(C)]
11455#[derive(Debug, Copy, Clone)]
11456pub struct elina_funopt_t {
11457    pub algorithm: ::std::os::raw::c_int,
11458    pub timeout: size_t,
11459    pub max_object_size: size_t,
11460    pub flag_exact_wanted: bool_,
11461    pub flag_best_wanted: bool_,
11462}
11463#[test]
11464fn bindgen_test_layout_elina_funopt_t() {
11465    assert_eq!(
11466        ::std::mem::size_of::<elina_funopt_t>(),
11467        32usize,
11468        concat!("Size of: ", stringify!(elina_funopt_t))
11469    );
11470    assert_eq!(
11471        ::std::mem::align_of::<elina_funopt_t>(),
11472        8usize,
11473        concat!("Alignment of ", stringify!(elina_funopt_t))
11474    );
11475    assert_eq!(
11476        unsafe { &(*(::std::ptr::null::<elina_funopt_t>())).algorithm as *const _ as usize },
11477        0usize,
11478        concat!(
11479            "Offset of field: ",
11480            stringify!(elina_funopt_t),
11481            "::",
11482            stringify!(algorithm)
11483        )
11484    );
11485    assert_eq!(
11486        unsafe { &(*(::std::ptr::null::<elina_funopt_t>())).timeout as *const _ as usize },
11487        8usize,
11488        concat!(
11489            "Offset of field: ",
11490            stringify!(elina_funopt_t),
11491            "::",
11492            stringify!(timeout)
11493        )
11494    );
11495    assert_eq!(
11496        unsafe { &(*(::std::ptr::null::<elina_funopt_t>())).max_object_size as *const _ as usize },
11497        16usize,
11498        concat!(
11499            "Offset of field: ",
11500            stringify!(elina_funopt_t),
11501            "::",
11502            stringify!(max_object_size)
11503        )
11504    );
11505    assert_eq!(
11506        unsafe {
11507            &(*(::std::ptr::null::<elina_funopt_t>())).flag_exact_wanted as *const _ as usize
11508        },
11509        24usize,
11510        concat!(
11511            "Offset of field: ",
11512            stringify!(elina_funopt_t),
11513            "::",
11514            stringify!(flag_exact_wanted)
11515        )
11516    );
11517    assert_eq!(
11518        unsafe { &(*(::std::ptr::null::<elina_funopt_t>())).flag_best_wanted as *const _ as usize },
11519        25usize,
11520        concat!(
11521            "Offset of field: ",
11522            stringify!(elina_funopt_t),
11523            "::",
11524            stringify!(flag_best_wanted)
11525        )
11526    );
11527}
11528#[repr(C)]
11529#[derive(Debug, Copy, Clone)]
11530pub struct elina_option_t {
11531    pub funopt: [elina_funopt_t; 51usize],
11532    pub abort_if_exception: [bool_; 6usize],
11533    pub scalar_discr: elina_scalar_discr_t,
11534}
11535#[test]
11536fn bindgen_test_layout_elina_option_t() {
11537    assert_eq!(
11538        ::std::mem::size_of::<elina_option_t>(),
11539        1648usize,
11540        concat!("Size of: ", stringify!(elina_option_t))
11541    );
11542    assert_eq!(
11543        ::std::mem::align_of::<elina_option_t>(),
11544        8usize,
11545        concat!("Alignment of ", stringify!(elina_option_t))
11546    );
11547    assert_eq!(
11548        unsafe { &(*(::std::ptr::null::<elina_option_t>())).funopt as *const _ as usize },
11549        0usize,
11550        concat!(
11551            "Offset of field: ",
11552            stringify!(elina_option_t),
11553            "::",
11554            stringify!(funopt)
11555        )
11556    );
11557    assert_eq!(
11558        unsafe {
11559            &(*(::std::ptr::null::<elina_option_t>())).abort_if_exception as *const _ as usize
11560        },
11561        1632usize,
11562        concat!(
11563            "Offset of field: ",
11564            stringify!(elina_option_t),
11565            "::",
11566            stringify!(abort_if_exception)
11567        )
11568    );
11569    assert_eq!(
11570        unsafe { &(*(::std::ptr::null::<elina_option_t>())).scalar_discr as *const _ as usize },
11571        1640usize,
11572        concat!(
11573            "Offset of field: ",
11574            stringify!(elina_option_t),
11575            "::",
11576            stringify!(scalar_discr)
11577        )
11578    );
11579}
11580#[repr(C)]
11581#[derive(Debug, Copy, Clone)]
11582pub struct elina_manager_t {
11583    pub library: *const ::std::os::raw::c_char,
11584    pub version: *const ::std::os::raw::c_char,
11585    pub internal: *mut ::std::os::raw::c_void,
11586    pub funptr: [*mut ::std::os::raw::c_void; 51usize],
11587    pub option: elina_option_t,
11588    pub result: elina_result_t,
11589    pub internal_free:
11590        ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
11591    pub count: size_t,
11592}
11593#[test]
11594fn bindgen_test_layout_elina_manager_t() {
11595    assert_eq!(
11596        ::std::mem::size_of::<elina_manager_t>(),
11597        2112usize,
11598        concat!("Size of: ", stringify!(elina_manager_t))
11599    );
11600    assert_eq!(
11601        ::std::mem::align_of::<elina_manager_t>(),
11602        8usize,
11603        concat!("Alignment of ", stringify!(elina_manager_t))
11604    );
11605    assert_eq!(
11606        unsafe { &(*(::std::ptr::null::<elina_manager_t>())).library as *const _ as usize },
11607        0usize,
11608        concat!(
11609            "Offset of field: ",
11610            stringify!(elina_manager_t),
11611            "::",
11612            stringify!(library)
11613        )
11614    );
11615    assert_eq!(
11616        unsafe { &(*(::std::ptr::null::<elina_manager_t>())).version as *const _ as usize },
11617        8usize,
11618        concat!(
11619            "Offset of field: ",
11620            stringify!(elina_manager_t),
11621            "::",
11622            stringify!(version)
11623        )
11624    );
11625    assert_eq!(
11626        unsafe { &(*(::std::ptr::null::<elina_manager_t>())).internal as *const _ as usize },
11627        16usize,
11628        concat!(
11629            "Offset of field: ",
11630            stringify!(elina_manager_t),
11631            "::",
11632            stringify!(internal)
11633        )
11634    );
11635    assert_eq!(
11636        unsafe { &(*(::std::ptr::null::<elina_manager_t>())).funptr as *const _ as usize },
11637        24usize,
11638        concat!(
11639            "Offset of field: ",
11640            stringify!(elina_manager_t),
11641            "::",
11642            stringify!(funptr)
11643        )
11644    );
11645    assert_eq!(
11646        unsafe { &(*(::std::ptr::null::<elina_manager_t>())).option as *const _ as usize },
11647        432usize,
11648        concat!(
11649            "Offset of field: ",
11650            stringify!(elina_manager_t),
11651            "::",
11652            stringify!(option)
11653        )
11654    );
11655    assert_eq!(
11656        unsafe { &(*(::std::ptr::null::<elina_manager_t>())).result as *const _ as usize },
11657        2080usize,
11658        concat!(
11659            "Offset of field: ",
11660            stringify!(elina_manager_t),
11661            "::",
11662            stringify!(result)
11663        )
11664    );
11665    assert_eq!(
11666        unsafe { &(*(::std::ptr::null::<elina_manager_t>())).internal_free as *const _ as usize },
11667        2096usize,
11668        concat!(
11669            "Offset of field: ",
11670            stringify!(elina_manager_t),
11671            "::",
11672            stringify!(internal_free)
11673        )
11674    );
11675    assert_eq!(
11676        unsafe { &(*(::std::ptr::null::<elina_manager_t>())).count as *const _ as usize },
11677        2104usize,
11678        concat!(
11679            "Offset of field: ",
11680            stringify!(elina_manager_t),
11681            "::",
11682            stringify!(count)
11683        )
11684    );
11685}
11686extern "C" {
11687    pub fn elina_manager_clear_exclog(man: *mut elina_manager_t);
11688}
11689extern "C" {
11690    pub fn elina_manager_free(man: *mut elina_manager_t);
11691}
11692extern "C" {
11693    pub fn elina_manager_get_library(man: *mut elina_manager_t) -> *const ::std::os::raw::c_char;
11694}
11695extern "C" {
11696    pub fn elina_manager_get_version(man: *mut elina_manager_t) -> *const ::std::os::raw::c_char;
11697}
11698extern "C" {
11699    pub fn elina_manager_get_funopt(
11700        man: *mut elina_manager_t,
11701        funid: elina_funid_t,
11702    ) -> elina_funopt_t;
11703}
11704extern "C" {
11705    pub fn elina_manager_get_abort_if_exception(
11706        man: *mut elina_manager_t,
11707        exn: elina_exc_t,
11708    ) -> bool_;
11709}
11710extern "C" {
11711    pub fn elina_manager_get_exception(man: *mut elina_manager_t) -> elina_exc_t;
11712}
11713extern "C" {
11714    pub fn elina_manager_get_exclog(man: *mut elina_manager_t) -> *mut elina_exclog_t;
11715}
11716extern "C" {
11717    pub fn elina_manager_get_flag_exact(man: *mut elina_manager_t) -> bool_;
11718}
11719extern "C" {
11720    pub fn elina_manager_get_flag_best(man: *mut elina_manager_t) -> bool_;
11721}
11722extern "C" {
11723    pub fn elina_funopt_init(fopt: *mut elina_funopt_t);
11724}
11725extern "C" {
11726    pub fn elina_manager_set_funopt(
11727        man: *mut elina_manager_t,
11728        funid: elina_funid_t,
11729        funopt: *mut elina_funopt_t,
11730    );
11731}
11732extern "C" {
11733    pub fn elina_manager_set_abort_if_exception(
11734        man: *mut elina_manager_t,
11735        exn: elina_exc_t,
11736        flag: bool_,
11737    );
11738}
11739extern "C" {
11740    pub fn elina_fpu_init() -> bool_;
11741}
11742extern "C" {
11743    pub fn elina_manager_alloc(
11744        library: *const ::std::os::raw::c_char,
11745        version: *const ::std::os::raw::c_char,
11746        internal: *mut ::std::os::raw::c_void,
11747        internal_free: ::std::option::Option<
11748            unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void),
11749        >,
11750    ) -> *mut elina_manager_t;
11751}
11752extern "C" {
11753    pub fn elina_manager_raise_exception(
11754        man: *mut elina_manager_t,
11755        exn: elina_exc_t,
11756        funid: elina_funid_t,
11757        msg: *const ::std::os::raw::c_char,
11758    );
11759}
11760extern "C" {
11761    pub fn elina_exc_cons(
11762        exn: elina_exc_t,
11763        funid: elina_funid_t,
11764        msg: *const ::std::os::raw::c_char,
11765        tail: *mut elina_exclog_t,
11766    ) -> *mut elina_exclog_t;
11767}
11768extern "C" {
11769    pub fn elina_exclog_free(head: *mut elina_exclog_t);
11770}
11771#[repr(C)]
11772#[derive(Debug, Copy, Clone)]
11773pub struct elina_abstract0_t {
11774    pub value: *mut ::std::os::raw::c_void,
11775    pub man: *mut elina_manager_t,
11776}
11777#[test]
11778fn bindgen_test_layout_elina_abstract0_t() {
11779    assert_eq!(
11780        ::std::mem::size_of::<elina_abstract0_t>(),
11781        16usize,
11782        concat!("Size of: ", stringify!(elina_abstract0_t))
11783    );
11784    assert_eq!(
11785        ::std::mem::align_of::<elina_abstract0_t>(),
11786        8usize,
11787        concat!("Alignment of ", stringify!(elina_abstract0_t))
11788    );
11789    assert_eq!(
11790        unsafe { &(*(::std::ptr::null::<elina_abstract0_t>())).value as *const _ as usize },
11791        0usize,
11792        concat!(
11793            "Offset of field: ",
11794            stringify!(elina_abstract0_t),
11795            "::",
11796            stringify!(value)
11797        )
11798    );
11799    assert_eq!(
11800        unsafe { &(*(::std::ptr::null::<elina_abstract0_t>())).man as *const _ as usize },
11801        8usize,
11802        concat!(
11803            "Offset of field: ",
11804            stringify!(elina_abstract0_t),
11805            "::",
11806            stringify!(man)
11807        )
11808    );
11809}
11810extern "C" {
11811    pub fn elina_abstract0_copy(
11812        man: *mut elina_manager_t,
11813        a: *mut elina_abstract0_t,
11814    ) -> *mut elina_abstract0_t;
11815}
11816extern "C" {
11817    pub fn elina_abstract0_free(man: *mut elina_manager_t, a: *mut elina_abstract0_t);
11818}
11819extern "C" {
11820    pub fn elina_abstract0_size(man: *mut elina_manager_t, a: *mut elina_abstract0_t) -> size_t;
11821}
11822extern "C" {
11823    pub fn elina_abstract0_minimize(man: *mut elina_manager_t, a: *mut elina_abstract0_t);
11824}
11825extern "C" {
11826    pub fn elina_abstract0_canonicalize(man: *mut elina_manager_t, a: *mut elina_abstract0_t);
11827}
11828extern "C" {
11829    pub fn elina_abstract0_hash(
11830        man: *mut elina_manager_t,
11831        a: *mut elina_abstract0_t,
11832    ) -> ::std::os::raw::c_int;
11833}
11834extern "C" {
11835    pub fn elina_abstract0_approximate(
11836        man: *mut elina_manager_t,
11837        a: *mut elina_abstract0_t,
11838        algorithm: ::std::os::raw::c_int,
11839    );
11840}
11841extern "C" {
11842    pub fn elina_abstract0_fprint(
11843        stream: *mut FILE,
11844        man: *mut elina_manager_t,
11845        a: *mut elina_abstract0_t,
11846        name_of_dim: *mut *mut ::std::os::raw::c_char,
11847    );
11848}
11849extern "C" {
11850    pub fn elina_abstract0_fprintdiff(
11851        stream: *mut FILE,
11852        man: *mut elina_manager_t,
11853        a1: *mut elina_abstract0_t,
11854        a2: *mut elina_abstract0_t,
11855        name_of_dim: *mut *mut ::std::os::raw::c_char,
11856    );
11857}
11858extern "C" {
11859    pub fn elina_abstract0_fdump(
11860        stream: *mut FILE,
11861        man: *mut elina_manager_t,
11862        a: *mut elina_abstract0_t,
11863    );
11864}
11865extern "C" {
11866    pub fn elina_abstract0_serialize_raw(
11867        man: *mut elina_manager_t,
11868        a: *mut elina_abstract0_t,
11869    ) -> elina_membuf_t;
11870}
11871extern "C" {
11872    pub fn elina_abstract0_deserialize_raw(
11873        man: *mut elina_manager_t,
11874        ptr: *mut ::std::os::raw::c_void,
11875        size: *mut size_t,
11876    ) -> *mut elina_abstract0_t;
11877}
11878extern "C" {
11879    pub fn elina_abstract0_bottom(
11880        man: *mut elina_manager_t,
11881        intdim: size_t,
11882        realdim: size_t,
11883    ) -> *mut elina_abstract0_t;
11884}
11885extern "C" {
11886    pub fn elina_abstract0_top(
11887        man: *mut elina_manager_t,
11888        intdim: size_t,
11889        realdim: size_t,
11890    ) -> *mut elina_abstract0_t;
11891}
11892extern "C" {
11893    pub fn elina_abstract0_of_box(
11894        man: *mut elina_manager_t,
11895        intdim: size_t,
11896        realdim: size_t,
11897        tinterval: *mut *mut elina_interval_t,
11898    ) -> *mut elina_abstract0_t;
11899}
11900extern "C" {
11901    pub fn elina_abstract0_dimension(
11902        man: *mut elina_manager_t,
11903        a: *mut elina_abstract0_t,
11904    ) -> elina_dimension_t;
11905}
11906extern "C" {
11907    pub fn elina_abstract0_is_bottom(man: *mut elina_manager_t, a: *mut elina_abstract0_t)
11908        -> bool_;
11909}
11910extern "C" {
11911    pub fn elina_abstract0_is_top(man: *mut elina_manager_t, a: *mut elina_abstract0_t) -> bool_;
11912}
11913extern "C" {
11914    pub fn elina_abstract0_is_leq(
11915        man: *mut elina_manager_t,
11916        a1: *mut elina_abstract0_t,
11917        a2: *mut elina_abstract0_t,
11918    ) -> bool_;
11919}
11920extern "C" {
11921    pub fn elina_abstract0_is_eq(
11922        man: *mut elina_manager_t,
11923        a1: *mut elina_abstract0_t,
11924        a2: *mut elina_abstract0_t,
11925    ) -> bool_;
11926}
11927extern "C" {
11928    pub fn elina_abstract0_sat_lincons(
11929        man: *mut elina_manager_t,
11930        a: *mut elina_abstract0_t,
11931        lincons: *mut elina_lincons0_t,
11932    ) -> bool_;
11933}
11934extern "C" {
11935    pub fn elina_abstract0_sat_tcons(
11936        man: *mut elina_manager_t,
11937        a: *mut elina_abstract0_t,
11938        tcons: *mut elina_tcons0_t,
11939    ) -> bool_;
11940}
11941extern "C" {
11942    pub fn elina_abstract0_sat_interval(
11943        man: *mut elina_manager_t,
11944        a: *mut elina_abstract0_t,
11945        dim: elina_dim_t,
11946        interval: *mut elina_interval_t,
11947    ) -> bool_;
11948}
11949extern "C" {
11950    pub fn elina_abstract0_is_dimension_unconstrained(
11951        man: *mut elina_manager_t,
11952        a: *mut elina_abstract0_t,
11953        dim: elina_dim_t,
11954    ) -> bool_;
11955}
11956extern "C" {
11957    pub fn elina_abstract0_bound_linexpr(
11958        man: *mut elina_manager_t,
11959        a: *mut elina_abstract0_t,
11960        expr: *mut elina_linexpr0_t,
11961    ) -> *mut elina_interval_t;
11962}
11963extern "C" {
11964    pub fn elina_abstract0_bound_texpr(
11965        man: *mut elina_manager_t,
11966        a: *mut elina_abstract0_t,
11967        expr: *mut elina_texpr0_t,
11968    ) -> *mut elina_interval_t;
11969}
11970extern "C" {
11971    pub fn elina_abstract0_bound_dimension(
11972        man: *mut elina_manager_t,
11973        a: *mut elina_abstract0_t,
11974        dim: elina_dim_t,
11975    ) -> *mut elina_interval_t;
11976}
11977extern "C" {
11978    pub fn elina_abstract0_to_lincons_array(
11979        man: *mut elina_manager_t,
11980        a: *mut elina_abstract0_t,
11981    ) -> elina_lincons0_array_t;
11982}
11983extern "C" {
11984    pub fn elina_abstract0_to_tcons_array(
11985        man: *mut elina_manager_t,
11986        a: *mut elina_abstract0_t,
11987    ) -> elina_tcons0_array_t;
11988}
11989extern "C" {
11990    pub fn elina_abstract0_to_box(
11991        man: *mut elina_manager_t,
11992        a: *mut elina_abstract0_t,
11993    ) -> *mut *mut elina_interval_t;
11994}
11995extern "C" {
11996    pub fn elina_abstract0_meet(
11997        man: *mut elina_manager_t,
11998        destructive: bool_,
11999        a1: *mut elina_abstract0_t,
12000        a2: *mut elina_abstract0_t,
12001    ) -> *mut elina_abstract0_t;
12002}
12003extern "C" {
12004    pub fn elina_abstract0_join(
12005        man: *mut elina_manager_t,
12006        destructive: bool_,
12007        a1: *mut elina_abstract0_t,
12008        a2: *mut elina_abstract0_t,
12009    ) -> *mut elina_abstract0_t;
12010}
12011extern "C" {
12012    pub fn elina_abstract0_meet_array(
12013        man: *mut elina_manager_t,
12014        tab: *mut *mut elina_abstract0_t,
12015        size: size_t,
12016    ) -> *mut elina_abstract0_t;
12017}
12018extern "C" {
12019    pub fn elina_abstract0_join_array(
12020        man: *mut elina_manager_t,
12021        tab: *mut *mut elina_abstract0_t,
12022        size: size_t,
12023    ) -> *mut elina_abstract0_t;
12024}
12025extern "C" {
12026    pub fn elina_abstract0_meet_lincons_array(
12027        man: *mut elina_manager_t,
12028        destructive: bool_,
12029        a: *mut elina_abstract0_t,
12030        array: *mut elina_lincons0_array_t,
12031    ) -> *mut elina_abstract0_t;
12032}
12033extern "C" {
12034    pub fn elina_abstract0_meet_tcons_array(
12035        man: *mut elina_manager_t,
12036        destructive: bool_,
12037        a: *mut elina_abstract0_t,
12038        array: *mut elina_tcons0_array_t,
12039    ) -> *mut elina_abstract0_t;
12040}
12041extern "C" {
12042    pub fn elina_abstract0_assign_linexpr_array(
12043        man: *mut elina_manager_t,
12044        destructive: bool_,
12045        org: *mut elina_abstract0_t,
12046        tdim: *mut elina_dim_t,
12047        texpr: *mut *mut elina_linexpr0_t,
12048        size: size_t,
12049        dest: *mut elina_abstract0_t,
12050    ) -> *mut elina_abstract0_t;
12051}
12052extern "C" {
12053    pub fn elina_abstract0_assign_texpr_array(
12054        man: *mut elina_manager_t,
12055        destructive: bool_,
12056        org: *mut elina_abstract0_t,
12057        tdim: *mut elina_dim_t,
12058        texpr: *mut *mut elina_texpr0_t,
12059        size: size_t,
12060        dest: *mut elina_abstract0_t,
12061    ) -> *mut elina_abstract0_t;
12062}
12063extern "C" {
12064    pub fn elina_abstract0_substitute_linexpr_array(
12065        man: *mut elina_manager_t,
12066        destructive: bool_,
12067        org: *mut elina_abstract0_t,
12068        tdim: *mut elina_dim_t,
12069        texpr: *mut *mut elina_linexpr0_t,
12070        size: size_t,
12071        dest: *mut elina_abstract0_t,
12072    ) -> *mut elina_abstract0_t;
12073}
12074extern "C" {
12075    pub fn elina_abstract0_substitute_texpr_array(
12076        man: *mut elina_manager_t,
12077        destructive: bool_,
12078        org: *mut elina_abstract0_t,
12079        tdim: *mut elina_dim_t,
12080        texpr: *mut *mut elina_texpr0_t,
12081        size: size_t,
12082        dest: *mut elina_abstract0_t,
12083    ) -> *mut elina_abstract0_t;
12084}
12085extern "C" {
12086    pub fn elina_abstract0_forget_array(
12087        man: *mut elina_manager_t,
12088        destructive: bool_,
12089        a: *mut elina_abstract0_t,
12090        tdim: *mut elina_dim_t,
12091        size: size_t,
12092        project: bool_,
12093    ) -> *mut elina_abstract0_t;
12094}
12095extern "C" {
12096    pub fn elina_abstract0_add_dimensions(
12097        man: *mut elina_manager_t,
12098        destructive: bool_,
12099        a: *mut elina_abstract0_t,
12100        dimchange: *mut elina_dimchange_t,
12101        project: bool_,
12102    ) -> *mut elina_abstract0_t;
12103}
12104extern "C" {
12105    pub fn elina_abstract0_remove_dimensions(
12106        man: *mut elina_manager_t,
12107        destructive: bool_,
12108        a: *mut elina_abstract0_t,
12109        dimchange: *mut elina_dimchange_t,
12110    ) -> *mut elina_abstract0_t;
12111}
12112extern "C" {
12113    pub fn elina_abstract0_permute_dimensions(
12114        man: *mut elina_manager_t,
12115        destructive: bool_,
12116        a: *mut elina_abstract0_t,
12117        perm: *mut elina_dimperm_t,
12118    ) -> *mut elina_abstract0_t;
12119}
12120extern "C" {
12121    pub fn elina_abstract0_expand(
12122        man: *mut elina_manager_t,
12123        destructive: bool_,
12124        a: *mut elina_abstract0_t,
12125        dim: elina_dim_t,
12126        n: size_t,
12127    ) -> *mut elina_abstract0_t;
12128}
12129extern "C" {
12130    pub fn elina_abstract0_fold(
12131        man: *mut elina_manager_t,
12132        destructive: bool_,
12133        a: *mut elina_abstract0_t,
12134        tdim: *mut elina_dim_t,
12135        size: size_t,
12136    ) -> *mut elina_abstract0_t;
12137}
12138extern "C" {
12139    pub fn elina_abstract0_widening(
12140        man: *mut elina_manager_t,
12141        a1: *mut elina_abstract0_t,
12142        a2: *mut elina_abstract0_t,
12143    ) -> *mut elina_abstract0_t;
12144}
12145extern "C" {
12146    pub fn elina_abstract0_closure(
12147        man: *mut elina_manager_t,
12148        destructive: bool_,
12149        a: *mut elina_abstract0_t,
12150    ) -> *mut elina_abstract0_t;
12151}
12152extern "C" {
12153    pub fn elina_abstract0_of_lincons_array(
12154        man: *mut elina_manager_t,
12155        intdim: size_t,
12156        realdim: size_t,
12157        array: *mut elina_lincons0_array_t,
12158    ) -> *mut elina_abstract0_t;
12159}
12160extern "C" {
12161    pub fn elina_abstract0_of_tcons_array(
12162        man: *mut elina_manager_t,
12163        intdim: size_t,
12164        realdim: size_t,
12165        array: *mut elina_tcons0_array_t,
12166    ) -> *mut elina_abstract0_t;
12167}
12168extern "C" {
12169    pub fn elina_abstract0_assign_linexpr(
12170        man: *mut elina_manager_t,
12171        destructive: bool_,
12172        org: *mut elina_abstract0_t,
12173        dim: elina_dim_t,
12174        expr: *mut elina_linexpr0_t,
12175        dest: *mut elina_abstract0_t,
12176    ) -> *mut elina_abstract0_t;
12177}
12178extern "C" {
12179    pub fn elina_abstract0_assign_texpr(
12180        man: *mut elina_manager_t,
12181        destructive: bool_,
12182        org: *mut elina_abstract0_t,
12183        dim: elina_dim_t,
12184        expr: *mut elina_texpr0_t,
12185        dest: *mut elina_abstract0_t,
12186    ) -> *mut elina_abstract0_t;
12187}
12188extern "C" {
12189    pub fn elina_abstract0_substitute_linexpr(
12190        man: *mut elina_manager_t,
12191        destructive: bool_,
12192        org: *mut elina_abstract0_t,
12193        dim: elina_dim_t,
12194        expr: *mut elina_linexpr0_t,
12195        dest: *mut elina_abstract0_t,
12196    ) -> *mut elina_abstract0_t;
12197}
12198extern "C" {
12199    pub fn elina_abstract0_substitute_texpr(
12200        man: *mut elina_manager_t,
12201        destructive: bool_,
12202        org: *mut elina_abstract0_t,
12203        dim: elina_dim_t,
12204        expr: *mut elina_texpr0_t,
12205        dest: *mut elina_abstract0_t,
12206    ) -> *mut elina_abstract0_t;
12207}
12208extern "C" {
12209    pub fn elina_abstract0_apply_dimchange2(
12210        man: *mut elina_manager_t,
12211        destructive: bool_,
12212        a: *mut elina_abstract0_t,
12213        dimchange2: *mut elina_dimchange2_t,
12214        project: bool_,
12215    ) -> *mut elina_abstract0_t;
12216}
12217extern "C" {
12218    pub fn elina_abstract0_widening_threshold(
12219        man: *mut elina_manager_t,
12220        a1: *mut elina_abstract0_t,
12221        a2: *mut elina_abstract0_t,
12222        array: *mut elina_lincons0_array_t,
12223    ) -> *mut elina_abstract0_t;
12224}
12225extern "C" {
12226    pub fn elina_abstract0_checkman1_raise(
12227        funid: elina_funid_t,
12228        man: *mut elina_manager_t,
12229        a: *mut elina_abstract0_t,
12230    );
12231}
12232extern "C" {
12233    pub fn elina_abstract0_checkman2(
12234        funid: elina_funid_t,
12235        man: *mut elina_manager_t,
12236        a1: *mut elina_abstract0_t,
12237        a2: *mut elina_abstract0_t,
12238    ) -> bool_;
12239}
12240extern "C" {
12241    pub fn elina_abstract0_checkman_array(
12242        funid: elina_funid_t,
12243        man: *mut elina_manager_t,
12244        tab: *mut *mut elina_abstract0_t,
12245        size: size_t,
12246    ) -> bool_;
12247}
12248extern "C" {
12249    pub fn elina_abstract0_check_abstract2(
12250        funid: elina_funid_t,
12251        man: *mut elina_manager_t,
12252        a1: *mut elina_abstract0_t,
12253        a2: *mut elina_abstract0_t,
12254    ) -> bool_;
12255}
12256extern "C" {
12257    pub fn elina_abstract0_check_abstract_array(
12258        funid: elina_funid_t,
12259        man: *mut elina_manager_t,
12260        tab: *mut *mut elina_abstract0_t,
12261        size: size_t,
12262    ) -> bool_;
12263}
12264extern "C" {
12265    pub fn elina_abstract0_check_dim_raise(
12266        funid: elina_funid_t,
12267        man: *mut elina_manager_t,
12268        dimension: elina_dimension_t,
12269        dim: elina_dim_t,
12270        prefix: *const ::std::os::raw::c_char,
12271    );
12272}
12273extern "C" {
12274    pub fn elina_abstract0_check_dim_array(
12275        funid: elina_funid_t,
12276        man: *mut elina_manager_t,
12277        dimension: elina_dimension_t,
12278        tdim: *mut elina_dim_t,
12279        size: size_t,
12280    ) -> bool_;
12281}
12282extern "C" {
12283    pub fn elina_abstract0_check_expr_raise(
12284        funid: elina_funid_t,
12285        man: *mut elina_manager_t,
12286        dimension: elina_dimension_t,
12287        dim: elina_dim_t,
12288        prefix: *mut ::std::os::raw::c_char,
12289    );
12290}
12291extern "C" {
12292    pub fn elina_abstract0_check_linexpr_check(
12293        dimension: elina_dimension_t,
12294        expr: *mut elina_linexpr0_t,
12295    ) -> elina_dim_t;
12296}
12297extern "C" {
12298    pub fn elina_abstract0_check_linexpr(
12299        funid: elina_funid_t,
12300        man: *mut elina_manager_t,
12301        dimension: elina_dimension_t,
12302        expr: *mut elina_linexpr0_t,
12303    ) -> bool_;
12304}
12305extern "C" {
12306    pub fn elina_abstract0_check_texpr_check(
12307        dimension: elina_dimension_t,
12308        expr: *mut elina_texpr0_t,
12309    ) -> elina_dim_t;
12310}
12311extern "C" {
12312    pub fn elina_abstract0_check_texpr(
12313        funid: elina_funid_t,
12314        man: *mut elina_manager_t,
12315        dimension: elina_dimension_t,
12316        expr: *mut elina_texpr0_t,
12317    ) -> bool_;
12318}
12319extern "C" {
12320    pub fn elina_abstract0_check_linexpr_array(
12321        funid: elina_funid_t,
12322        man: *mut elina_manager_t,
12323        dimension: elina_dimension_t,
12324        texpr: *mut *mut elina_linexpr0_t,
12325        size: size_t,
12326    ) -> bool_;
12327}
12328extern "C" {
12329    pub fn elina_abstract0_check_lincons_array(
12330        funid: elina_funid_t,
12331        man: *mut elina_manager_t,
12332        dimension: elina_dimension_t,
12333        array: *mut elina_lincons0_array_t,
12334    ) -> bool_;
12335}
12336extern "C" {
12337    pub fn elina_abstract0_check_texpr_array(
12338        funid: elina_funid_t,
12339        man: *mut elina_manager_t,
12340        dimension: elina_dimension_t,
12341        texpr: *mut *mut elina_texpr0_t,
12342        size: size_t,
12343    ) -> bool_;
12344}
12345extern "C" {
12346    pub fn elina_abstract0_check_tcons_array(
12347        funid: elina_funid_t,
12348        man: *mut elina_manager_t,
12349        dimension: elina_dimension_t,
12350        array: *mut elina_tcons0_array_t,
12351    ) -> bool_;
12352}
12353extern "C" {
12354    pub fn elina_abstract0_meetjoin(
12355        funid: elina_funid_t,
12356        man: *mut elina_manager_t,
12357        destructive: bool_,
12358        a1: *mut elina_abstract0_t,
12359        a2: *mut elina_abstract0_t,
12360    ) -> *mut elina_abstract0_t;
12361}
12362extern "C" {
12363    pub fn elina_abstract0_asssub_linexpr(
12364        funid: elina_funid_t,
12365        man: *mut elina_manager_t,
12366        destructive: bool_,
12367        a: *mut elina_abstract0_t,
12368        dim: elina_dim_t,
12369        expr: *mut elina_linexpr0_t,
12370        dest: *mut elina_abstract0_t,
12371    ) -> *mut elina_abstract0_t;
12372}
12373extern "C" {
12374    pub fn elina_abstract0_asssub_linexpr_array(
12375        funid: elina_funid_t,
12376        man: *mut elina_manager_t,
12377        destructive: bool_,
12378        a: *mut elina_abstract0_t,
12379        tdim: *mut elina_dim_t,
12380        texpr: *mut *mut elina_linexpr0_t,
12381        size: size_t,
12382        dest: *mut elina_abstract0_t,
12383    ) -> *mut elina_abstract0_t;
12384}
12385extern "C" {
12386    pub fn elina_abstract0_asssub_texpr(
12387        funid: elina_funid_t,
12388        man: *mut elina_manager_t,
12389        destructive: bool_,
12390        a: *mut elina_abstract0_t,
12391        dim: elina_dim_t,
12392        expr: *mut elina_texpr0_t,
12393        dest: *mut elina_abstract0_t,
12394    ) -> *mut elina_abstract0_t;
12395}
12396extern "C" {
12397    pub fn elina_abstract0_asssub_texpr_array(
12398        funid: elina_funid_t,
12399        man: *mut elina_manager_t,
12400        destructive: bool_,
12401        a: *mut elina_abstract0_t,
12402        tdim: *mut elina_dim_t,
12403        texpr: *mut *mut elina_texpr0_t,
12404        size: size_t,
12405        dest: *mut elina_abstract0_t,
12406    ) -> *mut elina_abstract0_t;
12407}
12408extern "C" {
12409    pub fn elina_scalar_add_uint(
12410        a: *mut elina_scalar_t,
12411        b: *mut elina_scalar_t,
12412        c: ::std::os::raw::c_ulong,
12413        discr: elina_scalar_discr_t,
12414    );
12415}
12416extern "C" {
12417    pub fn elina_scalar_add(
12418        op: *mut elina_scalar_t,
12419        op1: *mut elina_scalar_t,
12420        op2: *mut elina_scalar_t,
12421        discr: elina_scalar_discr_t,
12422    );
12423}
12424extern "C" {
12425    pub fn elina_scalar_mul(
12426        op: *mut elina_scalar_t,
12427        op1: *mut elina_scalar_t,
12428        op2: *mut elina_scalar_t,
12429        discr: elina_scalar_discr_t,
12430    );
12431}
12432extern "C" {
12433    pub fn elina_scalar_sub_uint(
12434        a: *mut elina_scalar_t,
12435        b: *mut elina_scalar_t,
12436        c: ::std::os::raw::c_ulong,
12437        discr: elina_scalar_discr_t,
12438    );
12439}
12440extern "C" {
12441    pub fn elina_scalar_sub(
12442        a: *mut elina_scalar_t,
12443        b: *mut elina_scalar_t,
12444        c: *mut elina_scalar_t,
12445        discr: elina_scalar_discr_t,
12446    );
12447}
12448extern "C" {
12449    pub fn elina_scalar_div_2(dst: *mut elina_scalar_t, src: *mut elina_scalar_t);
12450}
12451extern "C" {
12452    pub fn elina_scalar_div(
12453        a: *mut elina_scalar_t,
12454        b: *mut elina_scalar_t,
12455        c: *mut elina_scalar_t,
12456        discr: elina_scalar_discr_t,
12457    );
12458}
12459extern "C" {
12460    pub fn elina_scalar_max(
12461        op: *mut elina_scalar_t,
12462        op1: *mut elina_scalar_t,
12463        op2: *mut elina_scalar_t,
12464    );
12465}
12466extern "C" {
12467    pub fn elina_scalar_min(
12468        op: *mut elina_scalar_t,
12469        op1: *mut elina_scalar_t,
12470        op2: *mut elina_scalar_t,
12471    );
12472}
12473extern "C" {
12474    pub fn elina_scalar_sqrt(
12475        up: *mut elina_scalar_t,
12476        down: *mut elina_scalar_t,
12477        b: *mut elina_scalar_t,
12478        discr: elina_scalar_discr_t,
12479    );
12480}
12481extern "C" {
12482    pub fn int_set_elina_scalar(a: *mut ::std::os::raw::c_long, scalar: *mut elina_scalar_t);
12483}
12484extern "C" {
12485    pub fn elina_scalar_pow(
12486        up: *mut elina_scalar_t,
12487        down: *mut elina_scalar_t,
12488        b: *mut elina_scalar_t,
12489        n: ::std::os::raw::c_ulong,
12490        discr: elina_scalar_discr_t,
12491    );
12492}
12493extern "C" {
12494    pub fn elina_scalar_ceil(
12495        a: *mut elina_scalar_t,
12496        b: *mut elina_scalar_t,
12497        discr: elina_scalar_discr_t,
12498    );
12499}
12500extern "C" {
12501    pub fn elina_scalar_floor(
12502        a: *mut elina_scalar_t,
12503        b: *mut elina_scalar_t,
12504        discr: elina_scalar_discr_t,
12505    );
12506}
12507extern "C" {
12508    pub fn elina_scalar_trunc(
12509        a: *mut elina_scalar_t,
12510        b: *mut elina_scalar_t,
12511        discr: elina_scalar_discr_t,
12512    );
12513}
12514extern "C" {
12515    pub fn elina_scalar_to_double(
12516        a: *mut elina_scalar_t,
12517        b: *mut elina_scalar_t,
12518        discr: elina_scalar_discr_t,
12519    );
12520}
12521extern "C" {
12522    pub fn elina_scalar_to_float(
12523        a: *mut elina_scalar_t,
12524        b: *mut elina_scalar_t,
12525        discr: elina_scalar_discr_t,
12526    );
12527}
12528extern "C" {
12529    pub fn elina_scalar_is_integer(a: *mut elina_scalar_t) -> bool_;
12530}
12531extern "C" {
12532    pub fn elina_scalar_set_to_int(
12533        a: *mut elina_scalar_t,
12534        i: elina_int_t,
12535        discr: elina_scalar_discr_t,
12536    );
12537}
12538extern "C" {
12539    pub fn elina_scalar_mul_2exp(
12540        a: *mut elina_scalar_t,
12541        b: *mut elina_scalar_t,
12542        c: ::std::os::raw::c_int,
12543        discr: elina_scalar_discr_t,
12544    );
12545}
12546extern "C" {
12547    pub fn elina_scalar_convert(a: *mut elina_scalar_t, discr: elina_scalar_discr_t);
12548}
12549extern "C" {
12550    pub fn elina_interval_add(
12551        op: *mut elina_interval_t,
12552        op1: *mut elina_interval_t,
12553        op2: *mut elina_interval_t,
12554        discr: elina_scalar_discr_t,
12555    );
12556}
12557extern "C" {
12558    pub fn elina_interval_mul_scalar(
12559        dst: *mut elina_interval_t,
12560        src: *mut elina_interval_t,
12561        mul: *mut elina_scalar_t,
12562        discr: elina_scalar_discr_t,
12563    );
12564}
12565extern "C" {
12566    pub fn elina_interval_mul(
12567        op: *mut elina_interval_t,
12568        op1: *mut elina_interval_t,
12569        op2: *mut elina_interval_t,
12570        discr: elina_scalar_discr_t,
12571    );
12572}
12573extern "C" {
12574    pub fn elina_interval_sub(
12575        a: *mut elina_interval_t,
12576        b: *mut elina_interval_t,
12577        c: *mut elina_interval_t,
12578        discr: elina_scalar_discr_t,
12579    );
12580}
12581extern "C" {
12582    pub fn elina_interval_sqrt(
12583        dst: *mut elina_interval_t,
12584        src: *mut elina_interval_t,
12585        discr: elina_scalar_discr_t,
12586    ) -> bool_;
12587}
12588extern "C" {
12589    pub fn elina_interval_pow(
12590        a: *mut elina_interval_t,
12591        b: *mut elina_interval_t,
12592        n: *mut elina_interval_t,
12593        discr: elina_scalar_discr_t,
12594    );
12595}
12596extern "C" {
12597    pub fn elina_interval_abs(
12598        a: *mut elina_interval_t,
12599        b: *mut elina_interval_t,
12600        discr: elina_scalar_discr_t,
12601    );
12602}
12603extern "C" {
12604    pub fn elina_interval_trunc(
12605        a: *mut elina_interval_t,
12606        b: *mut elina_interval_t,
12607        discr: elina_scalar_discr_t,
12608    );
12609}
12610extern "C" {
12611    pub fn elina_interval_ceil(
12612        a: *mut elina_interval_t,
12613        b: *mut elina_interval_t,
12614        discr: elina_scalar_discr_t,
12615    );
12616}
12617extern "C" {
12618    pub fn elina_interval_floor(
12619        a: *mut elina_interval_t,
12620        b: *mut elina_interval_t,
12621        discr: elina_scalar_discr_t,
12622    );
12623}
12624extern "C" {
12625    pub fn elina_interval_to_int(
12626        a: *mut elina_interval_t,
12627        b: *mut elina_interval_t,
12628        discr: elina_scalar_discr_t,
12629    );
12630}
12631extern "C" {
12632    pub fn elina_interval_to_float(
12633        a: *mut elina_interval_t,
12634        b: *mut elina_interval_t,
12635        discr: elina_scalar_discr_t,
12636    );
12637}
12638extern "C" {
12639    pub fn elina_interval_to_double(
12640        a: *mut elina_interval_t,
12641        b: *mut elina_interval_t,
12642        discr: elina_scalar_discr_t,
12643    );
12644}
12645extern "C" {
12646    pub fn elina_interval_div(
12647        a: *mut elina_interval_t,
12648        b: *mut elina_interval_t,
12649        c: *mut elina_interval_t,
12650        discr: elina_scalar_discr_t,
12651    );
12652}
12653extern "C" {
12654    pub fn elina_interval_mod(
12655        a: *mut elina_interval_t,
12656        b: *mut elina_interval_t,
12657        c: *mut elina_interval_t,
12658        is_int: bool_,
12659        discr: elina_scalar_discr_t,
12660    );
12661}
12662extern "C" {
12663    pub fn elina_interval_is_int(a: *mut elina_interval_t, discr: elina_scalar_discr_t) -> bool_;
12664}
12665extern "C" {
12666    pub fn elina_interval_magnitude(a: *mut elina_scalar_t, b: *mut elina_interval_t);
12667}
12668extern "C" {
12669    pub fn elina_interval_range_rel(
12670        a: *mut elina_scalar_t,
12671        b: *mut elina_interval_t,
12672        discr: elina_scalar_discr_t,
12673    );
12674}
12675extern "C" {
12676    pub fn elina_interval_enlarge_bound(
12677        a: *mut elina_interval_t,
12678        b: *mut elina_interval_t,
12679        c: *mut elina_scalar_t,
12680        discr: elina_scalar_discr_t,
12681    );
12682}
12683extern "C" {
12684    pub fn elina_interval_canonicalize(
12685        a: *mut elina_interval_t,
12686        integer: bool_,
12687        discr: elina_scalar_discr_t,
12688    ) -> bool_;
12689}
12690extern "C" {
12691    pub fn elina_interval_set_to_int(
12692        a: *mut elina_interval_t,
12693        i: elina_int_t,
12694        j: elina_int_t,
12695        discr: elina_scalar_discr_t,
12696    );
12697}
12698extern "C" {
12699    pub fn elina_interval_mul_2exp(
12700        a: *mut elina_interval_t,
12701        b: *mut elina_interval_t,
12702        i: ::std::os::raw::c_int,
12703        discr: elina_scalar_discr_t,
12704    );
12705}
12706extern "C" {
12707    pub fn elina_interval_convert(a: *mut elina_interval_t, discr: elina_scalar_discr_t);
12708}
12709extern "C" {
12710    pub fn elina_coeff_mul_scalar(
12711        dst: *mut elina_coeff_t,
12712        src: *mut elina_coeff_t,
12713        mul: *mut elina_scalar_t,
12714        discr: elina_scalar_discr_t,
12715    );
12716}
12717extern "C" {
12718    pub fn elina_coeff_add(
12719        op: *mut elina_coeff_t,
12720        op1: *mut elina_coeff_t,
12721        op2: *mut elina_coeff_t,
12722        discr: elina_scalar_discr_t,
12723    );
12724}
12725extern "C" {
12726    pub fn elina_coeff_sub_num(
12727        dst: *mut elina_coeff_t,
12728        src: *mut elina_coeff_t,
12729        sub: *mut elina_scalar_t,
12730        discr: elina_scalar_discr_t,
12731    );
12732}
12733extern "C" {
12734    pub fn elina_coeff_mul_interval(
12735        dst: *mut elina_coeff_t,
12736        src: *mut elina_coeff_t,
12737        interval: *mut elina_interval_t,
12738        discr: elina_scalar_discr_t,
12739    );
12740}
12741extern "C" {
12742    pub fn elina_interval_set_elina_coeff(
12743        interval: *mut elina_interval_t,
12744        coeff: *mut elina_coeff_t,
12745    );
12746}
12747extern "C" {
12748    pub fn elina_linexpr0_reinit(expr: *mut elina_linexpr0_t, size: size_t);
12749}
12750extern "C" {
12751    pub fn elina_linexpr0_init(expr: *mut elina_linexpr0_t, size: size_t);
12752}
12753extern "C" {
12754    pub fn elina_linexpr0_clear(e: *mut elina_linexpr0_t);
12755}
12756extern "C" {
12757    pub fn elina_linexpr0_neg(expr: *mut elina_linexpr0_t);
12758}
12759extern "C" {
12760    pub fn elina_linexpr0_scale(
12761        expr: *mut elina_linexpr0_t,
12762        interval: *mut elina_interval_t,
12763        discr: elina_scalar_discr_t,
12764    );
12765}
12766extern "C" {
12767    pub fn elina_linexpr0_add(
12768        res: *mut *mut elina_linexpr0_t,
12769        exprA: *mut *mut elina_linexpr0_t,
12770        exprB: *mut *mut elina_linexpr0_t,
12771        discr: elina_scalar_discr_t,
12772    );
12773}
12774extern "C" {
12775    pub fn elina_linexpr0_sub(
12776        res: *mut *mut elina_linexpr0_t,
12777        exprA: *mut *mut elina_linexpr0_t,
12778        exprB: *mut *mut elina_linexpr0_t,
12779        discr: elina_scalar_discr_t,
12780    );
12781}
12782extern "C" {
12783    pub fn elina_linexpr0_div(
12784        expr: *mut elina_linexpr0_t,
12785        interval: *mut elina_interval_t,
12786        discr: elina_scalar_discr_t,
12787    );
12788}
12789extern "C" {
12790    pub fn linearize_elina_lincons0_array(
12791        array: *mut elina_lincons0_array_t,
12792        meet: bool_,
12793        discr: elina_scalar_discr_t,
12794    );
12795}
12796extern "C" {
12797    pub fn quasilinearize_elina_linexpr0(
12798        expr: *mut elina_linexpr0_t,
12799        env: *mut *mut elina_interval_t,
12800        for_meet_inequality: bool_,
12801        discr: elina_scalar_discr_t,
12802    ) -> bool_;
12803}
12804extern "C" {
12805    pub fn quasilinearize_elina_lincons0(
12806        cons: *mut elina_lincons0_t,
12807        env: *mut *mut elina_interval_t,
12808        meet: bool_,
12809        discr: elina_scalar_discr_t,
12810    ) -> bool_;
12811}
12812extern "C" {
12813    pub fn quasilinearize_elina_lincons0_array(
12814        array: *mut elina_lincons0_array_t,
12815        env: *mut *mut elina_interval_t,
12816        meet: bool_,
12817        discr: elina_scalar_discr_t,
12818    ) -> bool_;
12819}
12820extern "C" {
12821    pub fn elina_lincons0_reduce_integer(
12822        cons: *mut elina_lincons0_t,
12823        intdim: size_t,
12824        discr: elina_scalar_discr_t,
12825    );
12826}
12827extern "C" {
12828    pub fn elina_lincons0_array_reduce_integer(
12829        array: *mut elina_lincons0_array_t,
12830        intdim: size_t,
12831        discr: elina_scalar_discr_t,
12832    ) -> ::std::os::raw::c_char;
12833}
12834extern "C" {
12835    pub fn elina_lincons0_set_bool(
12836        cons: *mut elina_lincons0_t,
12837        value: bool_,
12838        discr: elina_scalar_discr_t,
12839    );
12840}
12841extern "C" {
12842    pub fn eval_elina_cstlincons0(cons: *mut elina_lincons0_t) -> ::std::os::raw::c_char;
12843}
12844extern "C" {
12845    pub fn elina_lincons0_array_reinit(array: *mut elina_lincons0_array_t, size: size_t);
12846}
12847extern "C" {
12848    pub fn elina_interval_eval_elina_linexpr0(
12849        itv: *mut elina_interval_t,
12850        expr: *mut elina_linexpr0_t,
12851        env: *mut *mut elina_interval_t,
12852        discr: elina_scalar_discr_t,
12853    ) -> bool_;
12854}
12855extern "C" {
12856    pub fn eval_elina_linexpr0(
12857        man: *mut elina_manager_t,
12858        abs: *mut elina_abstract0_t,
12859        expr: *mut elina_linexpr0_t,
12860        discr: elina_scalar_discr_t,
12861        pexact: *mut bool_,
12862    ) -> *mut elina_interval_t;
12863}
12864extern "C" {
12865    pub fn elina_quasilinearize_linexpr0(
12866        man: *mut elina_manager_t,
12867        abs: *mut ::std::os::raw::c_void,
12868        linexpr0: *mut elina_linexpr0_t,
12869        pexact: *mut bool_,
12870        discr: elina_scalar_discr_t,
12871    ) -> *mut elina_linexpr0_t;
12872}
12873extern "C" {
12874    pub fn elina_quasilinearize_lincons0(
12875        man: *mut elina_manager_t,
12876        abs: *mut ::std::os::raw::c_void,
12877        lincons0: *mut elina_lincons0_t,
12878        pexact: *mut bool_,
12879        discr: elina_scalar_discr_t,
12880        meet: bool_,
12881    ) -> elina_lincons0_t;
12882}
12883extern "C" {
12884    pub fn elina_quasilinearize_linexpr0_array(
12885        man: *mut elina_manager_t,
12886        abs: *mut ::std::os::raw::c_void,
12887        texpr: *mut *mut elina_linexpr0_t,
12888        size: size_t,
12889        pexact: *mut bool_,
12890        discr: elina_scalar_discr_t,
12891    ) -> *mut *mut elina_linexpr0_t;
12892}
12893extern "C" {
12894    pub fn elina_quasilinearize_lincons0_array(
12895        man: *mut elina_manager_t,
12896        abs: *mut ::std::os::raw::c_void,
12897        array: *mut elina_lincons0_array_t,
12898        pexact: *mut bool_,
12899        discr: elina_scalar_discr_t,
12900        linearize: bool_,
12901        meet: bool_,
12902    ) -> elina_lincons0_array_t;
12903}
12904extern "C" {
12905    pub fn elina_eval_texpr0(
12906        man: *mut elina_manager_t,
12907        abs: *mut elina_abstract0_t,
12908        expr: *mut elina_texpr0_t,
12909        discr: elina_scalar_discr_t,
12910        pexact: *mut bool_,
12911    ) -> *mut elina_interval_t;
12912}
12913extern "C" {
12914    pub fn elina_intlinearize_texpr0_intlinear(
12915        man: *mut elina_manager_t,
12916        expr: *mut elina_texpr0_t,
12917        discr: elina_scalar_discr_t,
12918    ) -> *mut elina_linexpr0_t;
12919}
12920extern "C" {
12921    pub fn elina_intlinearize_texpr0(
12922        man: *mut elina_manager_t,
12923        abs: *mut elina_abstract0_t,
12924        expr: *mut elina_texpr0_t,
12925        pexact: *mut bool_,
12926        discr: elina_scalar_discr_t,
12927        quasilinearize: bool_,
12928    ) -> *mut elina_linexpr0_t;
12929}
12930extern "C" {
12931    pub fn elina_intlinearize_texpr0_array(
12932        man: *mut elina_manager_t,
12933        abs: *mut elina_abstract0_t,
12934        texpr: *mut *mut elina_texpr0_t,
12935        size: size_t,
12936        pexact: *mut bool_,
12937        discr: elina_scalar_discr_t,
12938        quasilinearize: bool_,
12939    ) -> *mut *mut elina_linexpr0_t;
12940}
12941extern "C" {
12942    pub fn elina_intlinearize_tcons0(
12943        man: *mut elina_manager_t,
12944        abs: *mut elina_abstract0_t,
12945        cons: *mut elina_tcons0_t,
12946        pexact: *mut bool_,
12947        discr: elina_scalar_discr_t,
12948        quasilinearize: bool_,
12949        meet: bool_,
12950    ) -> elina_lincons0_t;
12951}
12952extern "C" {
12953    pub fn elina_intlinearize_tcons0_array(
12954        man: *mut elina_manager_t,
12955        abs: *mut elina_abstract0_t,
12956        array: *mut elina_tcons0_array_t,
12957        pexact: *mut bool_,
12958        discr: elina_scalar_discr_t,
12959        type_: elina_linexpr_type_t,
12960        meet: bool_,
12961        boxize: bool_,
12962        kmax: size_t,
12963        intervalonly: bool_,
12964    ) -> elina_lincons0_array_t;
12965}
12966extern "C" {
12967    pub fn elina_generic_sat_tcons(
12968        man: *mut elina_manager_t,
12969        abs: *mut ::std::os::raw::c_void,
12970        cons: *mut elina_tcons0_t,
12971        discr: elina_scalar_discr_t,
12972        quasilinearize: bool_,
12973    ) -> bool_;
12974}
12975extern "C" {
12976    pub fn elina_generic_bound_texpr(
12977        man: *mut elina_manager_t,
12978        abs: *mut ::std::os::raw::c_void,
12979        expr: *mut elina_texpr0_t,
12980        discr: elina_scalar_discr_t,
12981        quasilinearize: bool_,
12982    ) -> *mut elina_interval_t;
12983}
12984extern "C" {
12985    pub fn elina_generic_to_tcons_array(
12986        man: *mut elina_manager_t,
12987        abs: *mut ::std::os::raw::c_void,
12988    ) -> elina_tcons0_array_t;
12989}
12990extern "C" {
12991    pub fn elina_generic_meetjoin_array(
12992        meet: bool_,
12993        man: *mut elina_manager_t,
12994        tab: *mut *mut ::std::os::raw::c_void,
12995        size: size_t,
12996    ) -> *mut ::std::os::raw::c_void;
12997}
12998extern "C" {
12999    pub fn elina_generic_meet_quasilinearize_lincons_array(
13000        man: *mut elina_manager_t,
13001        destructive: bool_,
13002        abs: *mut ::std::os::raw::c_void,
13003        array: *mut elina_lincons0_array_t,
13004        discr: elina_scalar_discr_t,
13005        linearize: bool_,
13006        meet_lincons_array: ::std::option::Option<
13007            unsafe extern "C" fn(
13008                arg1: *mut elina_manager_t,
13009                arg2: bool_,
13010                arg3: *mut ::std::os::raw::c_void,
13011                arg4: *mut elina_lincons0_array_t,
13012            ) -> *mut ::std::os::raw::c_void,
13013        >,
13014    ) -> *mut ::std::os::raw::c_void;
13015}
13016extern "C" {
13017    pub fn elina_generic_meet_intlinearize_tcons_array(
13018        man: *mut elina_manager_t,
13019        destructive: bool_,
13020        abs: *mut ::std::os::raw::c_void,
13021        array: *mut elina_tcons0_array_t,
13022        discr: elina_scalar_discr_t,
13023        linearize: elina_linexpr_type_t,
13024        meet_lincons_array: ::std::option::Option<
13025            unsafe extern "C" fn(
13026                arg1: *mut elina_manager_t,
13027                arg2: bool_,
13028                arg3: *mut ::std::os::raw::c_void,
13029                arg4: *mut elina_lincons0_array_t,
13030            ) -> *mut ::std::os::raw::c_void,
13031        >,
13032    ) -> *mut ::std::os::raw::c_void;
13033}
13034extern "C" {
13035    pub fn elina_generic_asssub_linexpr_array(
13036        assign: bool_,
13037        man: *mut elina_manager_t,
13038        destructive: bool_,
13039        abs: *mut ::std::os::raw::c_void,
13040        tdim: *mut elina_dim_t,
13041        texpr: *mut *mut elina_linexpr0_t,
13042        size: size_t,
13043        dest: *mut ::std::os::raw::c_void,
13044    ) -> *mut ::std::os::raw::c_void;
13045}
13046extern "C" {
13047    pub fn elina_generic_asssub_texpr_array(
13048        assign: bool_,
13049        man: *mut elina_manager_t,
13050        destructive: bool_,
13051        abs: *mut ::std::os::raw::c_void,
13052        tdim: *mut elina_dim_t,
13053        texpr: *mut *mut elina_texpr0_t,
13054        size: size_t,
13055        dest: *mut ::std::os::raw::c_void,
13056    ) -> *mut ::std::os::raw::c_void;
13057}
13058#[repr(C)]
13059#[derive(Debug, Copy, Clone)]
13060pub struct elina_float_const {
13061    pub ulp: *mut elina_interval_t,
13062    pub min: *mut elina_interval_t,
13063    pub min_normal: *mut elina_interval_t,
13064    pub max: *mut elina_interval_t,
13065    pub max_exact: *mut elina_interval_t,
13066}
13067#[test]
13068fn bindgen_test_layout_elina_float_const() {
13069    assert_eq!(
13070        ::std::mem::size_of::<elina_float_const>(),
13071        40usize,
13072        concat!("Size of: ", stringify!(elina_float_const))
13073    );
13074    assert_eq!(
13075        ::std::mem::align_of::<elina_float_const>(),
13076        8usize,
13077        concat!("Alignment of ", stringify!(elina_float_const))
13078    );
13079    assert_eq!(
13080        unsafe { &(*(::std::ptr::null::<elina_float_const>())).ulp as *const _ as usize },
13081        0usize,
13082        concat!(
13083            "Offset of field: ",
13084            stringify!(elina_float_const),
13085            "::",
13086            stringify!(ulp)
13087        )
13088    );
13089    assert_eq!(
13090        unsafe { &(*(::std::ptr::null::<elina_float_const>())).min as *const _ as usize },
13091        8usize,
13092        concat!(
13093            "Offset of field: ",
13094            stringify!(elina_float_const),
13095            "::",
13096            stringify!(min)
13097        )
13098    );
13099    assert_eq!(
13100        unsafe { &(*(::std::ptr::null::<elina_float_const>())).min_normal as *const _ as usize },
13101        16usize,
13102        concat!(
13103            "Offset of field: ",
13104            stringify!(elina_float_const),
13105            "::",
13106            stringify!(min_normal)
13107        )
13108    );
13109    assert_eq!(
13110        unsafe { &(*(::std::ptr::null::<elina_float_const>())).max as *const _ as usize },
13111        24usize,
13112        concat!(
13113            "Offset of field: ",
13114            stringify!(elina_float_const),
13115            "::",
13116            stringify!(max)
13117        )
13118    );
13119    assert_eq!(
13120        unsafe { &(*(::std::ptr::null::<elina_float_const>())).max_exact as *const _ as usize },
13121        32usize,
13122        concat!(
13123            "Offset of field: ",
13124            stringify!(elina_float_const),
13125            "::",
13126            stringify!(max_exact)
13127        )
13128    );
13129}
13130extern "C" {
13131    pub fn elina_interval_eval_elina_texpr0(
13132        res: *mut elina_interval_t,
13133        expr: *mut elina_texpr0_t,
13134        discr: elina_scalar_discr_t,
13135        env: *mut *mut elina_interval_t,
13136    );
13137}
13138extern "C" {
13139    pub fn elina_intlinearize_elina_texpr0_intlinear(
13140        res: *mut *mut elina_linexpr0_t,
13141        expr: *mut elina_texpr0_t,
13142        discr: elina_scalar_discr_t,
13143    ) -> bool_;
13144}
13145extern "C" {
13146    pub fn elina_boxize_lincons0_array(
13147        res: *mut *mut elina_interval_t,
13148        tchange: *mut bool_,
13149        array: *mut elina_lincons0_array_t,
13150        env: *mut *mut elina_interval_t,
13151        intdim: size_t,
13152        kmax: size_t,
13153        intervalonly: bool_,
13154        discr: elina_scalar_discr_t,
13155    ) -> bool_;
13156}
13157extern "C" {
13158    pub fn elina_interval_intlinearize_texpr0_rec(
13159        expr: *mut elina_texpr0_t,
13160        env: *mut *mut elina_interval_t,
13161        intdim: size_t,
13162        lres: *mut *mut elina_linexpr0_t,
13163        ires: *mut elina_interval_t,
13164        discr: elina_scalar_discr_t,
13165    ) -> elina_texpr_rtype_t;
13166}
13167extern "C" {
13168    pub fn elina_intlinearize_elina_tcons0(
13169        res: *mut elina_lincons0_t,
13170        cons: *mut elina_tcons0_t,
13171        env: *mut *mut elina_interval_t,
13172        intdim: size_t,
13173        discr: elina_scalar_discr_t,
13174    ) -> bool_;
13175}
13176pub const opt_pk_status_t_opt_pk_status_conseps: opt_pk_status_t = 1;
13177pub const opt_pk_status_t_opt_pk_status_consgauss: opt_pk_status_t = 2;
13178pub const opt_pk_status_t_opt_pk_status_gengauss: opt_pk_status_t = 4;
13179pub const opt_pk_status_t_opt_pk_status_minimaleps: opt_pk_status_t = 8;
13180pub type opt_pk_status_t = ::std::os::raw::c_uint;
13181#[repr(C)]
13182#[derive(Debug, Copy, Clone)]
13183pub struct opt_pk_t {
13184    pub C: *mut opt_matrix_t,
13185    pub F: *mut opt_matrix_t,
13186    pub satC: *mut opt_satmat_t,
13187    pub satF: *mut opt_satmat_t,
13188    pub intdim: ::std::os::raw::c_ushort,
13189    pub realdim: ::std::os::raw::c_ushort,
13190    pub nbeq: size_t,
13191    pub nbline: size_t,
13192    pub is_minimized: bool_,
13193    pub status: opt_pk_status_t,
13194}
13195#[test]
13196fn bindgen_test_layout_opt_pk_t() {
13197    assert_eq!(
13198        ::std::mem::size_of::<opt_pk_t>(),
13199        64usize,
13200        concat!("Size of: ", stringify!(opt_pk_t))
13201    );
13202    assert_eq!(
13203        ::std::mem::align_of::<opt_pk_t>(),
13204        8usize,
13205        concat!("Alignment of ", stringify!(opt_pk_t))
13206    );
13207    assert_eq!(
13208        unsafe { &(*(::std::ptr::null::<opt_pk_t>())).C as *const _ as usize },
13209        0usize,
13210        concat!(
13211            "Offset of field: ",
13212            stringify!(opt_pk_t),
13213            "::",
13214            stringify!(C)
13215        )
13216    );
13217    assert_eq!(
13218        unsafe { &(*(::std::ptr::null::<opt_pk_t>())).F as *const _ as usize },
13219        8usize,
13220        concat!(
13221            "Offset of field: ",
13222            stringify!(opt_pk_t),
13223            "::",
13224            stringify!(F)
13225        )
13226    );
13227    assert_eq!(
13228        unsafe { &(*(::std::ptr::null::<opt_pk_t>())).satC as *const _ as usize },
13229        16usize,
13230        concat!(
13231            "Offset of field: ",
13232            stringify!(opt_pk_t),
13233            "::",
13234            stringify!(satC)
13235        )
13236    );
13237    assert_eq!(
13238        unsafe { &(*(::std::ptr::null::<opt_pk_t>())).satF as *const _ as usize },
13239        24usize,
13240        concat!(
13241            "Offset of field: ",
13242            stringify!(opt_pk_t),
13243            "::",
13244            stringify!(satF)
13245        )
13246    );
13247    assert_eq!(
13248        unsafe { &(*(::std::ptr::null::<opt_pk_t>())).intdim as *const _ as usize },
13249        32usize,
13250        concat!(
13251            "Offset of field: ",
13252            stringify!(opt_pk_t),
13253            "::",
13254            stringify!(intdim)
13255        )
13256    );
13257    assert_eq!(
13258        unsafe { &(*(::std::ptr::null::<opt_pk_t>())).realdim as *const _ as usize },
13259        34usize,
13260        concat!(
13261            "Offset of field: ",
13262            stringify!(opt_pk_t),
13263            "::",
13264            stringify!(realdim)
13265        )
13266    );
13267    assert_eq!(
13268        unsafe { &(*(::std::ptr::null::<opt_pk_t>())).nbeq as *const _ as usize },
13269        40usize,
13270        concat!(
13271            "Offset of field: ",
13272            stringify!(opt_pk_t),
13273            "::",
13274            stringify!(nbeq)
13275        )
13276    );
13277    assert_eq!(
13278        unsafe { &(*(::std::ptr::null::<opt_pk_t>())).nbline as *const _ as usize },
13279        48usize,
13280        concat!(
13281            "Offset of field: ",
13282            stringify!(opt_pk_t),
13283            "::",
13284            stringify!(nbline)
13285        )
13286    );
13287    assert_eq!(
13288        unsafe { &(*(::std::ptr::null::<opt_pk_t>())).is_minimized as *const _ as usize },
13289        56usize,
13290        concat!(
13291            "Offset of field: ",
13292            stringify!(opt_pk_t),
13293            "::",
13294            stringify!(is_minimized)
13295        )
13296    );
13297    assert_eq!(
13298        unsafe { &(*(::std::ptr::null::<opt_pk_t>())).status as *const _ as usize },
13299        60usize,
13300        concat!(
13301            "Offset of field: ",
13302            stringify!(opt_pk_t),
13303            "::",
13304            stringify!(status)
13305        )
13306    );
13307}
13308#[repr(C)]
13309#[derive(Debug, Copy, Clone)]
13310pub struct opt_pk_internal_t {
13311    _unused: [u8; 0],
13312}
13313#[repr(C)]
13314#[derive(Debug, Copy, Clone)]
13315pub struct opt_pk_array_t {
13316    pub poly: *mut *mut opt_pk_t,
13317    pub acl: *mut array_comp_list_t,
13318    pub maxcols: ::std::os::raw::c_ushort,
13319    pub is_bottom: bool_,
13320}
13321#[test]
13322fn bindgen_test_layout_opt_pk_array_t() {
13323    assert_eq!(
13324        ::std::mem::size_of::<opt_pk_array_t>(),
13325        24usize,
13326        concat!("Size of: ", stringify!(opt_pk_array_t))
13327    );
13328    assert_eq!(
13329        ::std::mem::align_of::<opt_pk_array_t>(),
13330        8usize,
13331        concat!("Alignment of ", stringify!(opt_pk_array_t))
13332    );
13333    assert_eq!(
13334        unsafe { &(*(::std::ptr::null::<opt_pk_array_t>())).poly as *const _ as usize },
13335        0usize,
13336        concat!(
13337            "Offset of field: ",
13338            stringify!(opt_pk_array_t),
13339            "::",
13340            stringify!(poly)
13341        )
13342    );
13343    assert_eq!(
13344        unsafe { &(*(::std::ptr::null::<opt_pk_array_t>())).acl as *const _ as usize },
13345        8usize,
13346        concat!(
13347            "Offset of field: ",
13348            stringify!(opt_pk_array_t),
13349            "::",
13350            stringify!(acl)
13351        )
13352    );
13353    assert_eq!(
13354        unsafe { &(*(::std::ptr::null::<opt_pk_array_t>())).maxcols as *const _ as usize },
13355        16usize,
13356        concat!(
13357            "Offset of field: ",
13358            stringify!(opt_pk_array_t),
13359            "::",
13360            stringify!(maxcols)
13361        )
13362    );
13363    assert_eq!(
13364        unsafe { &(*(::std::ptr::null::<opt_pk_array_t>())).is_bottom as *const _ as usize },
13365        18usize,
13366        concat!(
13367            "Offset of field: ",
13368            stringify!(opt_pk_array_t),
13369            "::",
13370            stringify!(is_bottom)
13371        )
13372    );
13373}
13374extern "C" {
13375    pub fn opt_pk_manager_alloc(strict: bool_) -> *mut elina_manager_t;
13376}
13377extern "C" {
13378    pub fn opt_pk_manager_get_internal(man: *mut elina_manager_t) -> *mut opt_pk_internal_t;
13379}
13380extern "C" {
13381    pub fn opt_pk_set_approximate_max_coeff_size(opk: *mut opt_pk_internal_t, size: size_t);
13382}
13383extern "C" {
13384    pub fn opt_pk_internal_alloc(strict: bool_) -> *mut opt_pk_internal_t;
13385}
13386extern "C" {
13387    pub fn opt_pk_internal_free(pk: *mut opt_pk_internal_t);
13388}
13389extern "C" {
13390    pub fn opt_pk_copy(man: *mut elina_manager_t, o: *mut opt_pk_array_t) -> *mut opt_pk_array_t;
13391}
13392extern "C" {
13393    pub fn opt_pk_free(man: *mut elina_manager_t, o: *mut opt_pk_array_t);
13394}
13395extern "C" {
13396    pub fn opt_pk_size(man: *mut elina_manager_t, o: *mut opt_pk_array_t) -> size_t;
13397}
13398extern "C" {
13399    pub fn opt_pk_minimize(man: *mut elina_manager_t, o: *mut opt_pk_array_t);
13400}
13401extern "C" {
13402    pub fn opt_pk_array_canonicalize(man: *mut elina_manager_t, o: *mut opt_pk_array_t);
13403}
13404extern "C" {
13405    pub fn opt_pk_array_fprint(
13406        stream: *mut FILE,
13407        man: *mut elina_manager_t,
13408        o: *mut opt_pk_array_t,
13409        name_of_dim: *mut *mut ::std::os::raw::c_char,
13410    );
13411}
13412extern "C" {
13413    pub fn opt_pk_array_serialize_raw(
13414        man: *mut elina_manager_t,
13415        a: *mut opt_pk_array_t,
13416    ) -> elina_membuf_t;
13417}
13418extern "C" {
13419    pub fn opt_pk_array_deserialize_raw(
13420        man: *mut elina_manager_t,
13421        p: *mut ::std::os::raw::c_void,
13422        size: *mut size_t,
13423    ) -> *mut opt_pk_array_t;
13424}
13425extern "C" {
13426    pub fn opt_pk_bottom(
13427        man: *mut elina_manager_t,
13428        intdim: size_t,
13429        realdim: size_t,
13430    ) -> *mut opt_pk_array_t;
13431}
13432extern "C" {
13433    pub fn opt_pk_top(
13434        man: *mut elina_manager_t,
13435        intdim: size_t,
13436        realdim: size_t,
13437    ) -> *mut opt_pk_array_t;
13438}
13439extern "C" {
13440    pub fn opt_pk_of_box(
13441        man: *mut elina_manager_t,
13442        intdim: size_t,
13443        realdim: size_t,
13444        tinterval: *mut *mut elina_interval_t,
13445    ) -> *mut opt_pk_array_t;
13446}
13447extern "C" {
13448    pub fn opt_pk_dimension(man: *mut elina_manager_t, o: *mut opt_pk_array_t)
13449        -> elina_dimension_t;
13450}
13451extern "C" {
13452    pub fn opt_pk_is_bottom(man: *mut elina_manager_t, o: *mut opt_pk_array_t) -> bool_;
13453}
13454extern "C" {
13455    pub fn opt_pk_is_top(man: *mut elina_manager_t, o: *mut opt_pk_array_t) -> bool_;
13456}
13457extern "C" {
13458    pub fn opt_pk_is_leq(
13459        man: *mut elina_manager_t,
13460        o1: *mut opt_pk_array_t,
13461        o2: *mut opt_pk_array_t,
13462    ) -> bool_;
13463}
13464extern "C" {
13465    pub fn opt_pk_is_eq(
13466        man: *mut elina_manager_t,
13467        o1: *mut opt_pk_array_t,
13468        o2: *mut opt_pk_array_t,
13469    ) -> bool_;
13470}
13471extern "C" {
13472    pub fn opt_pk_sat_lincons(
13473        man: *mut elina_manager_t,
13474        oa: *mut opt_pk_array_t,
13475        lincons: *mut elina_lincons0_t,
13476    ) -> bool_;
13477}
13478extern "C" {
13479    pub fn opt_pk_sat_tcons(
13480        man: *mut elina_manager_t,
13481        oa: *mut opt_pk_array_t,
13482        cons: *mut elina_tcons0_t,
13483    ) -> bool_;
13484}
13485extern "C" {
13486    pub fn opt_pk_is_dimension_unconstrained(
13487        man: *mut elina_manager_t,
13488        oa: *mut opt_pk_array_t,
13489        dim: elina_dim_t,
13490    ) -> bool_;
13491}
13492extern "C" {
13493    pub fn opt_pk_bound_linexpr(
13494        man: *mut elina_manager_t,
13495        o: *mut opt_pk_array_t,
13496        expr: *mut elina_linexpr0_t,
13497    ) -> *mut elina_interval_t;
13498}
13499extern "C" {
13500    pub fn opt_pk_bound_dimension(
13501        man: *mut elina_manager_t,
13502        o: *mut opt_pk_array_t,
13503        dim: elina_dim_t,
13504    ) -> *mut elina_interval_t;
13505}
13506extern "C" {
13507    pub fn opt_pk_to_lincons_array(
13508        man: *mut elina_manager_t,
13509        o: *mut opt_pk_array_t,
13510    ) -> elina_lincons0_array_t;
13511}
13512extern "C" {
13513    pub fn opt_pk_to_box(
13514        man: *mut elina_manager_t,
13515        o: *mut opt_pk_array_t,
13516    ) -> *mut *mut elina_interval_t;
13517}
13518extern "C" {
13519    pub fn opt_pk_meet(
13520        man: *mut elina_manager_t,
13521        destructive: bool_,
13522        o1: *mut opt_pk_array_t,
13523        o2: *mut opt_pk_array_t,
13524    ) -> *mut opt_pk_array_t;
13525}
13526extern "C" {
13527    pub fn opt_pk_join(
13528        man: *mut elina_manager_t,
13529        destructive: bool_,
13530        oa: *mut opt_pk_array_t,
13531        ob: *mut opt_pk_array_t,
13532    ) -> *mut opt_pk_array_t;
13533}
13534extern "C" {
13535    pub fn opt_pk_meet_lincons_array(
13536        man: *mut elina_manager_t,
13537        destructive: bool_,
13538        o: *mut opt_pk_array_t,
13539        array: *mut elina_lincons0_array_t,
13540    ) -> *mut opt_pk_array_t;
13541}
13542extern "C" {
13543    pub fn opt_pk_meet_tcons_array(
13544        man: *mut elina_manager_t,
13545        destructive: bool_,
13546        oa: *mut opt_pk_array_t,
13547        array: *mut elina_tcons0_array_t,
13548    ) -> *mut opt_pk_array_t;
13549}
13550extern "C" {
13551    pub fn opt_pk_assign_linexpr_array(
13552        man: *mut elina_manager_t,
13553        destructive: bool_,
13554        oa: *mut opt_pk_array_t,
13555        tdim: *mut elina_dim_t,
13556        texpr: *mut *mut elina_linexpr0_t,
13557        size: size_t,
13558        dest: *mut opt_pk_array_t,
13559    ) -> *mut opt_pk_array_t;
13560}
13561extern "C" {
13562    pub fn opt_pk_substitute_linexpr_array(
13563        man: *mut elina_manager_t,
13564        destructive: bool_,
13565        oa: *mut opt_pk_array_t,
13566        tdim: *mut elina_dim_t,
13567        texpr: *mut *mut elina_linexpr0_t,
13568        size: size_t,
13569        dest: *mut opt_pk_array_t,
13570    ) -> *mut opt_pk_array_t;
13571}
13572extern "C" {
13573    pub fn opt_pk_assign_texpr_array(
13574        man: *mut elina_manager_t,
13575        destructive: bool_,
13576        oa: *mut opt_pk_array_t,
13577        tdim: *mut elina_dim_t,
13578        texpr: *mut *mut elina_texpr0_t,
13579        size: size_t,
13580        dest: *mut opt_pk_array_t,
13581    ) -> *mut opt_pk_array_t;
13582}
13583extern "C" {
13584    pub fn opt_pk_forget_array(
13585        man: *mut elina_manager_t,
13586        destructive: bool_,
13587        o: *mut opt_pk_array_t,
13588        tdim: *mut elina_dim_t,
13589        size: size_t,
13590        project: bool_,
13591    ) -> *mut opt_pk_array_t;
13592}
13593extern "C" {
13594    pub fn opt_pk_add_dimensions(
13595        man: *mut elina_manager_t,
13596        destructive: bool_,
13597        o: *mut opt_pk_array_t,
13598        dimchange: *mut elina_dimchange_t,
13599        project: bool_,
13600    ) -> *mut opt_pk_array_t;
13601}
13602extern "C" {
13603    pub fn opt_pk_remove_dimensions(
13604        man: *mut elina_manager_t,
13605        destructive: bool_,
13606        o: *mut opt_pk_array_t,
13607        dimchange: *mut elina_dimchange_t,
13608    ) -> *mut opt_pk_array_t;
13609}
13610extern "C" {
13611    pub fn opt_pk_permute_dimensions(
13612        man: *mut elina_manager_t,
13613        destructive: bool_,
13614        o: *mut opt_pk_array_t,
13615        permutation: *mut elina_dimperm_t,
13616    ) -> *mut opt_pk_array_t;
13617}
13618extern "C" {
13619    pub fn remove_block_and_factor(op: *mut opt_pk_array_t, cl: *mut comp_list_t);
13620}
13621extern "C" {
13622    pub fn opt_pk_expand(
13623        man: *mut elina_manager_t,
13624        destructive: bool_,
13625        o: *mut opt_pk_array_t,
13626        dim: elina_dim_t,
13627        n: size_t,
13628    ) -> *mut opt_pk_array_t;
13629}
13630extern "C" {
13631    pub fn opt_pk_fold(
13632        man: *mut elina_manager_t,
13633        destructive: bool_,
13634        o: *mut opt_pk_array_t,
13635        tdim: *mut elina_dim_t,
13636        size: size_t,
13637    ) -> *mut opt_pk_array_t;
13638}
13639extern "C" {
13640    pub fn opt_pk_widening(
13641        man: *mut elina_manager_t,
13642        o1: *mut opt_pk_array_t,
13643        o2: *mut opt_pk_array_t,
13644    ) -> *mut opt_pk_array_t;
13645}
13646extern "C" {
13647    pub fn foreach_linterm_of_linexpr0(
13648        e: *mut elina_linexpr0_t,
13649        f: ::std::option::Option<
13650            unsafe extern "C" fn(i: size_t, dim: elina_dim_t, coeff: *mut elina_coeff_t),
13651        >,
13652    );
13653}
13654pub type __builtin_va_list = [__va_list_tag; 1usize];
13655#[repr(C)]
13656#[derive(Debug, Copy, Clone)]
13657pub struct __va_list_tag {
13658    pub gp_offset: ::std::os::raw::c_uint,
13659    pub fp_offset: ::std::os::raw::c_uint,
13660    pub overflow_arg_area: *mut ::std::os::raw::c_void,
13661    pub reg_save_area: *mut ::std::os::raw::c_void,
13662}
13663#[test]
13664fn bindgen_test_layout___va_list_tag() {
13665    assert_eq!(
13666        ::std::mem::size_of::<__va_list_tag>(),
13667        24usize,
13668        concat!("Size of: ", stringify!(__va_list_tag))
13669    );
13670    assert_eq!(
13671        ::std::mem::align_of::<__va_list_tag>(),
13672        8usize,
13673        concat!("Alignment of ", stringify!(__va_list_tag))
13674    );
13675    assert_eq!(
13676        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).gp_offset as *const _ as usize },
13677        0usize,
13678        concat!(
13679            "Offset of field: ",
13680            stringify!(__va_list_tag),
13681            "::",
13682            stringify!(gp_offset)
13683        )
13684    );
13685    assert_eq!(
13686        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).fp_offset as *const _ as usize },
13687        4usize,
13688        concat!(
13689            "Offset of field: ",
13690            stringify!(__va_list_tag),
13691            "::",
13692            stringify!(fp_offset)
13693        )
13694    );
13695    assert_eq!(
13696        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).overflow_arg_area as *const _ as usize },
13697        8usize,
13698        concat!(
13699            "Offset of field: ",
13700            stringify!(__va_list_tag),
13701            "::",
13702            stringify!(overflow_arg_area)
13703        )
13704    );
13705    assert_eq!(
13706        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).reg_save_area as *const _ as usize },
13707        16usize,
13708        concat!(
13709            "Offset of field: ",
13710            stringify!(__va_list_tag),
13711            "::",
13712            stringify!(reg_save_area)
13713        )
13714    );
13715}
13716#[repr(C)]
13717#[derive(Debug, Copy, Clone)]
13718pub struct __locale_data {
13719    pub _address: u8,
13720}
13721#[repr(C)]
13722#[derive(Debug, Copy, Clone)]
13723pub struct opt_matrix_t {
13724    pub _address: u8,
13725}
13726#[repr(C)]
13727#[derive(Debug, Copy, Clone)]
13728pub struct opt_satmat_t {
13729    pub _address: u8,
13730}