Skip to main content

flint_sys/
arb.rs

1/* automatically generated by rust-bindgen 0.70.1 */
2
3use libc::*;
4use crate::deps::*;
5use crate::arb_types::*;
6use crate::arf::*;
7use crate::arf_types::*;
8use crate::flint::*;
9
10
11pub const ARB_ATAN_TAB1_BITS: u32 = 8;
12pub const ARB_ATAN_TAB1_PREC: u32 = 512;
13pub const ARB_ATAN_TAB1_LIMBS: u32 = 8;
14pub const ARB_ATAN_TAB21_BITS: u32 = 5;
15pub const ARB_ATAN_TAB22_BITS: u32 = 5;
16pub const ARB_ATAN_TAB2_PREC: u32 = 4608;
17pub const ARB_ATAN_TAB2_LIMBS: u32 = 72;
18pub const ARB_ATAN_NEWTON_PREC: u32 = 3400;
19pub const ARB_LOG_TAB11_BITS: u32 = 7;
20pub const ARB_LOG_TAB12_BITS: u32 = 7;
21pub const ARB_LOG_TAB1_PREC: u32 = 512;
22pub const ARB_LOG_TAB1_LIMBS: u32 = 8;
23pub const ARB_LOG_TAB21_BITS: u32 = 5;
24pub const ARB_LOG_TAB22_BITS: u32 = 5;
25pub const ARB_LOG_TAB2_PREC: u32 = 4608;
26pub const ARB_LOG_TAB2_LIMBS: u32 = 72;
27pub const ARB_LOG_PRIME_CACHE_NUM: u32 = 13;
28pub const ARB_EXP_TAB1_NUM: u32 = 178;
29pub const ARB_EXP_TAB1_BITS: u32 = 8;
30pub const ARB_EXP_TAB1_PREC: u32 = 512;
31pub const ARB_EXP_TAB1_LIMBS: u32 = 8;
32pub const ARB_EXP_TAB21_NUM: u32 = 23;
33pub const ARB_EXP_TAB21_BITS: u32 = 5;
34pub const ARB_EXP_TAB22_BITS: u32 = 5;
35pub const ARB_EXP_TAB2_PREC: u32 = 4608;
36pub const ARB_EXP_TAB2_LIMBS: u32 = 72;
37pub const ARB_LOG_REDUCTION_DEFAULT_MAX_PREC: u32 = 4000000;
38pub const ARB_EXP_LOG_REDUCTION_PREC: u32 = 2240;
39pub const ARB_LOG_NEWTON_PREC: u32 = 2800;
40pub const ARB_SIN_COS_TAB1_NUM: u32 = 203;
41pub const ARB_SIN_COS_TAB1_BITS: u32 = 8;
42pub const ARB_SIN_COS_TAB1_PREC: u32 = 512;
43pub const ARB_SIN_COS_TAB1_LIMBS: u32 = 8;
44pub const ARB_SIN_COS_TAB21_NUM: u32 = 26;
45pub const ARB_SIN_COS_TAB21_BITS: u32 = 5;
46pub const ARB_SIN_COS_TAB22_BITS: u32 = 5;
47pub const ARB_SIN_COS_TAB2_PREC: u32 = 4608;
48pub const ARB_SIN_COS_TAB2_LIMBS: u32 = 72;
49pub const ARB_PI4_TAB_LIMBS: u32 = 72;
50pub const ARB_ATAN_GAUSS_PRIME_CACHE_NUM: u32 = 13;
51pub const ARB_SIN_COS_ATAN_REDUCTION_DEFAULT_MAX_PREC: u32 = 4000000;
52pub const ARB_SIN_COS_ATAN_REDUCTION_PREC: u32 = 2600;
53extern "C" {
54    #[link_name = "arb_init__extern"]
55    pub fn arb_init(x: *mut arb_struct);
56    pub fn arb_clear(x: *mut arb_struct);
57    pub fn _arb_vec_init(n: slong) -> arb_ptr;
58    pub fn _arb_vec_clear(v: arb_ptr, n: slong);
59    #[link_name = "arb_mid_ptr__extern"]
60    pub fn arb_mid_ptr(z: *mut arb_struct) -> arf_ptr;
61    #[link_name = "arb_rad_ptr__extern"]
62    pub fn arb_rad_ptr(z: *mut arb_struct) -> mag_ptr;
63    #[link_name = "arb_is_exact__extern"]
64    pub fn arb_is_exact(x: *const arb_struct) -> libc::c_int;
65    #[link_name = "arb_equal__extern"]
66    pub fn arb_equal(x: *const arb_struct, y: *const arb_struct) -> libc::c_int;
67    #[link_name = "arb_equal_si__extern"]
68    pub fn arb_equal_si(x: *const arb_struct, y: slong) -> libc::c_int;
69    pub fn arb_eq(x: *const arb_struct, y: *const arb_struct) -> libc::c_int;
70    pub fn arb_ne(x: *const arb_struct, y: *const arb_struct) -> libc::c_int;
71    pub fn arb_lt(x: *const arb_struct, y: *const arb_struct) -> libc::c_int;
72    pub fn arb_le(x: *const arb_struct, y: *const arb_struct) -> libc::c_int;
73    pub fn arb_gt(x: *const arb_struct, y: *const arb_struct) -> libc::c_int;
74    pub fn arb_ge(x: *const arb_struct, y: *const arb_struct) -> libc::c_int;
75    pub fn arb_zero(x: *mut arb_struct);
76    #[link_name = "arb_is_zero__extern"]
77    pub fn arb_is_zero(x: *const arb_struct) -> libc::c_int;
78    #[link_name = "arb_pos_inf__extern"]
79    pub fn arb_pos_inf(x: *mut arb_struct);
80    #[link_name = "arb_neg_inf__extern"]
81    pub fn arb_neg_inf(x: *mut arb_struct);
82    #[link_name = "arb_zero_pm_inf__extern"]
83    pub fn arb_zero_pm_inf(x: *mut arb_struct);
84    #[link_name = "arb_zero_pm_one__extern"]
85    pub fn arb_zero_pm_one(x: *mut arb_struct);
86    #[link_name = "arb_unit_interval__extern"]
87    pub fn arb_unit_interval(x: *mut arb_struct);
88    pub fn arb_indeterminate(x: *mut arb_struct);
89    pub fn arb_is_finite(x: *const arb_struct) -> libc::c_int;
90    pub fn arb_set(y: *mut arb_struct, x: *const arb_struct);
91    #[link_name = "arb_swap__extern"]
92    pub fn arb_swap(x: *mut arb_struct, y: *mut arb_struct);
93    pub fn arb_set_round(z: *mut arb_struct, x: *const arb_struct, prec: slong);
94    pub fn arb_trim(y: *mut arb_struct, x: *const arb_struct);
95    pub fn arb_neg(y: *mut arb_struct, x: *const arb_struct);
96    pub fn arb_neg_round(y: *mut arb_struct, x: *const arb_struct, prec: slong);
97    pub fn arb_abs(y: *mut arb_struct, x: *const arb_struct);
98    pub fn arb_nonnegative_abs(y: *mut arb_struct, x: *const arb_struct);
99    pub fn arb_sgn(res: *mut arb_struct, x: *const arb_struct);
100    pub fn arb_sgn_nonzero(x: *const arb_struct) -> libc::c_int;
101    pub fn _arb_digits_round_inplace(
102        s: *mut libc::c_char,
103        shift: *mut flint_bitcnt_t,
104        error: *mut fmpz,
105        n: slong,
106        rnd: arf_rnd_t,
107    );
108    pub fn arb_set_str(res: *mut arb_struct, inp: *const libc::c_char, prec: slong) -> libc::c_int;
109    pub fn arb_get_str(x: *const arb_struct, n: slong, flags: ulong) -> *mut libc::c_char;
110    #[link_name = "arb_set_arf__extern"]
111    pub fn arb_set_arf(x: *mut arb_struct, y: *const arf_struct);
112    pub fn arb_set_si(y: *mut arb_struct, x: slong);
113    pub fn arb_set_ui(y: *mut arb_struct, x: ulong);
114    pub fn arb_set_d(y: *mut arb_struct, x: f64);
115    pub fn arb_set_fmpz(y: *mut arb_struct, x: *const fmpz);
116    #[link_name = "arb_set_fmpz_2exp__extern"]
117    pub fn arb_set_fmpz_2exp(x: *mut arb_struct, y: *const fmpz, exp: *const fmpz);
118    pub fn arb_set_round_fmpz_2exp(
119        y: *mut arb_struct,
120        x: *const fmpz,
121        exp: *const fmpz,
122        prec: slong,
123    );
124    pub fn arb_set_round_fmpz(y: *mut arb_struct, x: *const fmpz, prec: slong);
125    #[link_name = "arb_is_one__extern"]
126    pub fn arb_is_one(f: *const arb_struct) -> libc::c_int;
127    pub fn arb_one(f: *mut arb_struct);
128    pub fn arb_fprint(file: *mut FILE, x: *const arb_struct);
129    pub fn arb_fprintd(file: *mut FILE, x: *const arb_struct, digits: slong);
130    pub fn arb_fprintn(file: *mut FILE, x: *const arb_struct, digits: slong, flags: ulong);
131    pub fn arb_print(x: *const arb_struct);
132    pub fn arb_printd(x: *const arb_struct, digits: slong);
133    pub fn arb_printn(x: *const arb_struct, digits: slong, flags: ulong);
134    pub fn _arb_vec_printn(vec: arb_srcptr, len: slong, ndigits: slong, flags: ulong);
135    pub fn _arb_vec_printd(vec: arb_srcptr, len: slong, ndigits: slong);
136    pub fn arb_mul_2exp_si(y: *mut arb_struct, x: *const arb_struct, e: slong);
137    #[link_name = "arb_mul_2exp_fmpz__extern"]
138    pub fn arb_mul_2exp_fmpz(y: *mut arb_struct, x: *const arb_struct, e: *const fmpz);
139    #[link_name = "arb_is_int__extern"]
140    pub fn arb_is_int(x: *const arb_struct) -> libc::c_int;
141    #[link_name = "arb_is_int_2exp_si__extern"]
142    pub fn arb_is_int_2exp_si(x: *const arb_struct, e: slong) -> libc::c_int;
143    pub fn arb_contains_zero(x: *const arb_struct) -> libc::c_int;
144    pub fn arb_is_nonzero(x: *const arb_struct) -> libc::c_int;
145    pub fn arb_is_positive(x: *const arb_struct) -> libc::c_int;
146    pub fn arb_is_nonnegative(x: *const arb_struct) -> libc::c_int;
147    pub fn arb_is_negative(x: *const arb_struct) -> libc::c_int;
148    pub fn arb_is_nonpositive(x: *const arb_struct) -> libc::c_int;
149    pub fn arb_contains_negative(x: *const arb_struct) -> libc::c_int;
150    pub fn arb_contains_nonpositive(x: *const arb_struct) -> libc::c_int;
151    pub fn arb_contains_positive(x: *const arb_struct) -> libc::c_int;
152    pub fn arb_contains_nonnegative(x: *const arb_struct) -> libc::c_int;
153    pub fn arb_get_mag_lower(z: *mut mag_struct, x: *const arb_struct);
154    pub fn arb_get_mag_lower_nonnegative(z: *mut mag_struct, x: *const arb_struct);
155    #[link_name = "arb_get_mag__extern"]
156    pub fn arb_get_mag(z: *mut mag_struct, x: *const arb_struct);
157    #[link_name = "arb_get_mid_arb__extern"]
158    pub fn arb_get_mid_arb(z: *mut arb_struct, x: *const arb_struct);
159    #[link_name = "arb_get_rad_arb__extern"]
160    pub fn arb_get_rad_arb(z: *mut arb_struct, x: *const arb_struct);
161    pub fn arb_get_abs_ubound_arf(u: *mut arf_struct, x: *const arb_struct, prec: slong);
162    pub fn arb_get_abs_lbound_arf(u: *mut arf_struct, x: *const arb_struct, prec: slong);
163    pub fn arb_get_ubound_arf(u: *mut arf_struct, x: *const arb_struct, prec: slong);
164    pub fn arb_get_lbound_arf(u: *mut arf_struct, x: *const arb_struct, prec: slong);
165    pub fn arb_nonnegative_part(res: *mut arb_struct, x: *const arb_struct);
166    pub fn arb_rel_error_bits(x: *const arb_struct) -> slong;
167    #[link_name = "arb_rel_accuracy_bits__extern"]
168    pub fn arb_rel_accuracy_bits(x: *const arb_struct) -> slong;
169    pub fn arb_rel_one_accuracy_bits(x: *const arb_struct) -> slong;
170    #[link_name = "arb_bits__extern"]
171    pub fn arb_bits(x: *const arb_struct) -> slong;
172    pub fn arb_randtest_exact(
173        x: *mut arb_struct,
174        state: *mut flint_rand_struct,
175        prec: slong,
176        mag_bits: slong,
177    );
178    pub fn arb_randtest_wide(
179        x: *mut arb_struct,
180        state: *mut flint_rand_struct,
181        prec: slong,
182        mag_bits: slong,
183    );
184    pub fn arb_randtest_precise(
185        x: *mut arb_struct,
186        state: *mut flint_rand_struct,
187        prec: slong,
188        mag_bits: slong,
189    );
190    pub fn arb_randtest_positive(
191        x: *mut arb_struct,
192        state: *mut flint_rand_struct,
193        prec: slong,
194        mag_bits: slong,
195    );
196    pub fn arb_randtest(
197        x: *mut arb_struct,
198        state: *mut flint_rand_struct,
199        prec: slong,
200        mag_bits: slong,
201    );
202    pub fn arb_randtest_special(
203        x: *mut arb_struct,
204        state: *mut flint_rand_struct,
205        prec: slong,
206        mag_bits: slong,
207    );
208    pub fn arb_urandom(x: *mut arb_struct, state: *mut flint_rand_struct, prec: slong);
209    pub fn arb_add_error_arf(x: *mut arb_struct, err: *const arf_struct);
210    pub fn arb_add_error_2exp_si(x: *mut arb_struct, err: slong);
211    pub fn arb_add_error_2exp_fmpz(x: *mut arb_struct, err: *const fmpz);
212    pub fn arb_add_error(x: *mut arb_struct, error: *const arb_struct);
213    #[link_name = "arb_add_error_mag__extern"]
214    pub fn arb_add_error_mag(x: *mut arb_struct, err: *const mag_struct);
215    pub fn arb_contains_arf(x: *const arb_struct, y: *const arf_struct) -> libc::c_int;
216    pub fn arb_contains_fmpq(x: *const arb_struct, y: *const fmpq) -> libc::c_int;
217    pub fn arb_contains_fmpz(x: *const arb_struct, y: *const fmpz) -> libc::c_int;
218    pub fn arb_contains_si(x: *const arb_struct, y: slong) -> libc::c_int;
219    pub fn arb_contains_mpfr(x: *const arb_struct, y: *const __mpfr_struct) -> libc::c_int;
220    pub fn arb_overlaps(x: *const arb_struct, y: *const arb_struct) -> libc::c_int;
221    pub fn arb_contains(x: *const arb_struct, y: *const arb_struct) -> libc::c_int;
222    pub fn arb_contains_interior(x: *const arb_struct, y: *const arb_struct) -> libc::c_int;
223    pub fn arb_contains_int(x: *const arb_struct) -> libc::c_int;
224    pub fn arb_get_interval_fmpz_2exp(
225        a: *mut fmpz,
226        b: *mut fmpz,
227        exp: *mut fmpz,
228        x: *const arb_struct,
229    );
230    pub fn arb_get_unique_fmpz(z: *mut fmpz, x: *const arb_struct) -> libc::c_int;
231    pub fn arb_get_fmpz_mid_rad_10exp(
232        mid: *mut fmpz,
233        rad: *mut fmpz,
234        exp: *mut fmpz,
235        x: *const arb_struct,
236        n: slong,
237    );
238    pub fn arb_floor(z: *mut arb_struct, x: *const arb_struct, prec: slong);
239    pub fn arb_ceil(z: *mut arb_struct, x: *const arb_struct, prec: slong);
240    pub fn arb_nint(res: *mut arb_struct, x: *const arb_struct, prec: slong);
241    pub fn arb_trunc(res: *mut arb_struct, x: *const arb_struct, prec: slong);
242    pub fn arb_set_interval_arf(
243        x: *mut arb_struct,
244        a: *const arf_struct,
245        b: *const arf_struct,
246        prec: slong,
247    );
248    pub fn arb_set_interval_mpfr(
249        x: *mut arb_struct,
250        a: *const __mpfr_struct,
251        b: *const __mpfr_struct,
252        prec: slong,
253    );
254    pub fn arb_get_interval_arf(
255        a: *mut arf_struct,
256        b: *mut arf_struct,
257        x: *const arb_struct,
258        prec: slong,
259    );
260    pub fn arb_get_interval_mpfr(
261        a: *mut __mpfr_struct,
262        b: *mut __mpfr_struct,
263        x: *const arb_struct,
264    );
265    pub fn arb_set_interval_mag(
266        res: *mut arb_struct,
267        a: *const mag_struct,
268        b: *const mag_struct,
269        prec: slong,
270    );
271    pub fn arb_set_interval_neg_pos_mag(
272        res: *mut arb_struct,
273        a: *const mag_struct,
274        b: *const mag_struct,
275        prec: slong,
276    );
277    pub fn arb_union(z: *mut arb_struct, x: *const arb_struct, y: *const arb_struct, prec: slong);
278    pub fn arb_intersection(
279        z: *mut arb_struct,
280        x: *const arb_struct,
281        y: *const arb_struct,
282        prec: slong,
283    ) -> libc::c_int;
284    pub fn arb_get_rand_fmpq(
285        q: *mut fmpq,
286        state: *mut flint_rand_struct,
287        x: *const arb_struct,
288        bits: slong,
289    );
290    pub fn arb_min(z: *mut arb_struct, x: *const arb_struct, y: *const arb_struct, prec: slong);
291    pub fn arb_max(z: *mut arb_struct, x: *const arb_struct, y: *const arb_struct, prec: slong);
292    pub fn arb_minmax(
293        z1: *mut arb_struct,
294        z2: *mut arb_struct,
295        x: *const arb_struct,
296        y: *const arb_struct,
297        prec: slong,
298    );
299    pub fn arb_can_round_arf(x: *const arb_struct, prec: slong, rnd: arf_rnd_t) -> libc::c_int;
300    pub fn arb_can_round_mpfr(x: *const arb_struct, prec: slong, rnd: mpfr_rnd_t) -> libc::c_int;
301    pub fn arb_add(z: *mut arb_struct, x: *const arb_struct, y: *const arb_struct, prec: slong);
302    pub fn arb_add_arf(z: *mut arb_struct, x: *const arb_struct, y: *const arf_struct, prec: slong);
303    pub fn arb_add_ui(z: *mut arb_struct, x: *const arb_struct, y: ulong, prec: slong);
304    pub fn arb_add_si(z: *mut arb_struct, x: *const arb_struct, y: slong, prec: slong);
305    pub fn arb_add_fmpz(z: *mut arb_struct, x: *const arb_struct, y: *const fmpz, prec: slong);
306    pub fn arb_add_fmpz_2exp(
307        z: *mut arb_struct,
308        x: *const arb_struct,
309        man: *const fmpz,
310        exp: *const fmpz,
311        prec: slong,
312    );
313    pub fn arb_sub(z: *mut arb_struct, x: *const arb_struct, y: *const arb_struct, prec: slong);
314    pub fn arb_sub_arf(z: *mut arb_struct, x: *const arb_struct, y: *const arf_struct, prec: slong);
315    pub fn arb_sub_ui(z: *mut arb_struct, x: *const arb_struct, y: ulong, prec: slong);
316    pub fn arb_sub_si(z: *mut arb_struct, x: *const arb_struct, y: slong, prec: slong);
317    pub fn arb_sub_fmpz(z: *mut arb_struct, x: *const arb_struct, y: *const fmpz, prec: slong);
318    pub fn arb_mul(z: *mut arb_struct, x: *const arb_struct, y: *const arb_struct, prec: slong);
319    pub fn arb_mul_arf(z: *mut arb_struct, x: *const arb_struct, y: *const arf_struct, prec: slong);
320    pub fn arb_mul_si(z: *mut arb_struct, x: *const arb_struct, y: slong, prec: slong);
321    pub fn arb_mul_ui(z: *mut arb_struct, x: *const arb_struct, y: ulong, prec: slong);
322    pub fn arb_mul_fmpz(z: *mut arb_struct, x: *const arb_struct, y: *const fmpz, prec: slong);
323    pub fn arb_addmul(z: *mut arb_struct, x: *const arb_struct, y: *const arb_struct, prec: slong);
324    pub fn arb_addmul_arf(
325        z: *mut arb_struct,
326        x: *const arb_struct,
327        y: *const arf_struct,
328        prec: slong,
329    );
330    pub fn arb_addmul_si(z: *mut arb_struct, x: *const arb_struct, y: slong, prec: slong);
331    pub fn arb_addmul_ui(z: *mut arb_struct, x: *const arb_struct, y: ulong, prec: slong);
332    pub fn arb_addmul_fmpz(z: *mut arb_struct, x: *const arb_struct, y: *const fmpz, prec: slong);
333    pub fn arb_submul(z: *mut arb_struct, x: *const arb_struct, y: *const arb_struct, prec: slong);
334    pub fn arb_submul_arf(
335        z: *mut arb_struct,
336        x: *const arb_struct,
337        y: *const arf_struct,
338        prec: slong,
339    );
340    pub fn arb_submul_si(z: *mut arb_struct, x: *const arb_struct, y: slong, prec: slong);
341    pub fn arb_submul_ui(z: *mut arb_struct, x: *const arb_struct, y: ulong, prec: slong);
342    pub fn arb_submul_fmpz(z: *mut arb_struct, x: *const arb_struct, y: *const fmpz, prec: slong);
343    pub fn arb_fma(
344        res: *mut arb_struct,
345        x: *const arb_struct,
346        y: *const arb_struct,
347        z: *const arb_struct,
348        prec: slong,
349    );
350    pub fn arb_fma_arf(
351        res: *mut arb_struct,
352        x: *const arb_struct,
353        y: *const arf_struct,
354        z: *const arb_struct,
355        prec: slong,
356    );
357    pub fn arb_fma_si(
358        res: *mut arb_struct,
359        x: *const arb_struct,
360        y: slong,
361        z: *const arb_struct,
362        prec: slong,
363    );
364    pub fn arb_fma_ui(
365        res: *mut arb_struct,
366        x: *const arb_struct,
367        y: ulong,
368        z: *const arb_struct,
369        prec: slong,
370    );
371    pub fn arb_fma_fmpz(
372        res: *mut arb_struct,
373        x: *const arb_struct,
374        y: *const fmpz,
375        z: *const arb_struct,
376        prec: slong,
377    );
378    pub fn arb_dot_simple(
379        res: *mut arb_struct,
380        initial: *const arb_struct,
381        subtract: libc::c_int,
382        x: arb_srcptr,
383        xstep: slong,
384        y: arb_srcptr,
385        ystep: slong,
386        len: slong,
387        prec: slong,
388    );
389    pub fn arb_dot_precise(
390        res: *mut arb_struct,
391        initial: *const arb_struct,
392        subtract: libc::c_int,
393        x: arb_srcptr,
394        xstep: slong,
395        y: arb_srcptr,
396        ystep: slong,
397        len: slong,
398        prec: slong,
399    );
400    pub fn arb_dot(
401        res: *mut arb_struct,
402        initial: *const arb_struct,
403        subtract: libc::c_int,
404        x: arb_srcptr,
405        xstep: slong,
406        y: arb_srcptr,
407        ystep: slong,
408        len: slong,
409        prec: slong,
410    );
411    pub fn arb_approx_dot(
412        res: *mut arb_struct,
413        initial: *const arb_struct,
414        subtract: libc::c_int,
415        x: arb_srcptr,
416        xstep: slong,
417        y: arb_srcptr,
418        ystep: slong,
419        len: slong,
420        prec: slong,
421    );
422    pub fn arb_dot_ui(
423        res: *mut arb_struct,
424        initial: *const arb_struct,
425        subtract: libc::c_int,
426        x: arb_srcptr,
427        xstep: slong,
428        y: *const ulong,
429        ystep: slong,
430        len: slong,
431        prec: slong,
432    );
433    pub fn arb_dot_si(
434        res: *mut arb_struct,
435        initial: *const arb_struct,
436        subtract: libc::c_int,
437        x: arb_srcptr,
438        xstep: slong,
439        y: *const slong,
440        ystep: slong,
441        len: slong,
442        prec: slong,
443    );
444    pub fn arb_dot_uiui(
445        res: *mut arb_struct,
446        initial: *const arb_struct,
447        subtract: libc::c_int,
448        x: arb_srcptr,
449        xstep: slong,
450        y: *const ulong,
451        ystep: slong,
452        len: slong,
453        prec: slong,
454    );
455    pub fn arb_dot_siui(
456        res: *mut arb_struct,
457        initial: *const arb_struct,
458        subtract: libc::c_int,
459        x: arb_srcptr,
460        xstep: slong,
461        y: *const ulong,
462        ystep: slong,
463        len: slong,
464        prec: slong,
465    );
466    pub fn arb_dot_fmpz(
467        res: *mut arb_struct,
468        initial: *const arb_struct,
469        subtract: libc::c_int,
470        x: arb_srcptr,
471        xstep: slong,
472        y: *const fmpz,
473        ystep: slong,
474        len: slong,
475        prec: slong,
476    );
477    pub fn arb_div(z: *mut arb_struct, x: *const arb_struct, y: *const arb_struct, prec: slong);
478    pub fn arb_div_arf(z: *mut arb_struct, x: *const arb_struct, y: *const arf_struct, prec: slong);
479    pub fn arb_div_si(z: *mut arb_struct, x: *const arb_struct, y: slong, prec: slong);
480    pub fn arb_div_ui(z: *mut arb_struct, x: *const arb_struct, y: ulong, prec: slong);
481    pub fn arb_div_fmpz(z: *mut arb_struct, x: *const arb_struct, y: *const fmpz, prec: slong);
482    pub fn arb_fmpz_div_fmpz(z: *mut arb_struct, x: *const fmpz, y: *const fmpz, prec: slong);
483    pub fn arb_ui_div(z: *mut arb_struct, x: ulong, y: *const arb_struct, prec: slong);
484    pub fn arb_div_arf_newton(
485        res: *mut arb_struct,
486        x: *const arb_struct,
487        y: *const arf_struct,
488        prec: slong,
489    );
490    pub fn arb_div_newton(
491        res: *mut arb_struct,
492        x: *const arb_struct,
493        y: *const arb_struct,
494        prec: slong,
495    );
496    pub fn arb_fmpz_divapprox(res: *mut fmpz, x: *const fmpz, y: *const fmpz);
497    #[link_name = "arb_inv__extern"]
498    pub fn arb_inv(y: *mut arb_struct, x: *const arb_struct, prec: slong);
499    #[link_name = "arb_set_fmpq__extern"]
500    pub fn arb_set_fmpq(y: *mut arb_struct, x: *const fmpq, prec: slong);
501    pub fn arb_sqrt(z: *mut arb_struct, x: *const arb_struct, prec: slong);
502    pub fn arb_sqrt_arf(z: *mut arb_struct, x: *const arf_struct, prec: slong);
503    pub fn arb_sqrt_fmpz(z: *mut arb_struct, x: *const fmpz, prec: slong);
504    pub fn arb_sqrt_ui(z: *mut arb_struct, x: ulong, prec: slong);
505    pub fn arb_sqrtpos(z: *mut arb_struct, x: *const arb_struct, prec: slong);
506    pub fn arb_hypot(z: *mut arb_struct, x: *const arb_struct, y: *const arb_struct, prec: slong);
507    pub fn arb_rsqrt(z: *mut arb_struct, x: *const arb_struct, prec: slong);
508    pub fn arb_rsqrt_ui(z: *mut arb_struct, x: ulong, prec: slong);
509    pub fn arb_sqrt1pm1(r: *mut arb_struct, z: *const arb_struct, prec: slong);
510    pub fn arb_rsqrt_arf_newton(res: *mut arb_struct, x: *const arf_struct, prec: slong);
511    pub fn arb_sqrt_arf_newton(res: *mut arb_struct, x: *const arf_struct, prec: slong);
512    pub fn arb_sqrt_newton(z: *mut arb_struct, x: *const arb_struct, prec: slong);
513    pub fn arb_pow_fmpz_binexp(
514        y: *mut arb_struct,
515        b: *const arb_struct,
516        e: *const fmpz,
517        prec: slong,
518    );
519    pub fn arb_pow_fmpz(y: *mut arb_struct, b: *const arb_struct, e: *const fmpz, prec: slong);
520    pub fn arb_pow_ui(y: *mut arb_struct, b: *const arb_struct, e: ulong, prec: slong);
521    pub fn arb_ui_pow_ui(y: *mut arb_struct, b: ulong, e: ulong, prec: slong);
522    pub fn arb_si_pow_ui(y: *mut arb_struct, b: slong, e: ulong, prec: slong);
523    pub fn arb_pow_fmpq(y: *mut arb_struct, x: *const arb_struct, a: *const fmpq, prec: slong);
524    pub fn arb_div_2expm1_ui(z: *mut arb_struct, x: *const arb_struct, n: ulong, prec: slong);
525    pub fn arb_pow(z: *mut arb_struct, x: *const arb_struct, y: *const arb_struct, prec: slong);
526    pub fn arb_root_ui(z: *mut arb_struct, x: *const arb_struct, k: ulong, prec: slong);
527    pub fn arb_root(z: *mut arb_struct, x: *const arb_struct, k: ulong, prec: slong);
528    pub fn _arb_log_precompute_reductions(
529        rel: *mut libc::c_short,
530        eps: *mut f64,
531        alpha: arb_srcptr,
532        n: slong,
533        max_rel: slong,
534        C: f64,
535    );
536    pub fn arb_log(z: *mut arb_struct, x: *const arb_struct, prec: slong);
537    pub fn arb_log_arf(z: *mut arb_struct, x: *const arf_struct, prec: slong);
538    pub fn arb_log_ui(z: *mut arb_struct, x: ulong, prec: slong);
539    pub fn arb_log_fmpz(z: *mut arb_struct, x: *const fmpz, prec: slong);
540    pub fn arb_log1p(r: *mut arb_struct, z: *const arb_struct, prec: slong);
541    pub fn arb_log_base_ui(res: *mut arb_struct, x: *const arb_struct, b: ulong, prec: slong);
542    pub fn arb_log_hypot(
543        res: *mut arb_struct,
544        x: *const arb_struct,
545        y: *const arb_struct,
546        prec: slong,
547    );
548    pub fn arb_exp(z: *mut arb_struct, x: *const arb_struct, prec: slong);
549    pub fn arb_expm1(z: *mut arb_struct, x: *const arb_struct, prec: slong);
550    pub fn arb_exp_invexp(
551        z: *mut arb_struct,
552        w: *mut arb_struct,
553        x: *const arb_struct,
554        prec: slong,
555    );
556    pub fn arb_sin(s: *mut arb_struct, x: *const arb_struct, prec: slong);
557    pub fn arb_cos(c: *mut arb_struct, x: *const arb_struct, prec: slong);
558    pub fn arb_sin_cos(s: *mut arb_struct, c: *mut arb_struct, x: *const arb_struct, prec: slong);
559    pub fn arb_sin_pi(s: *mut arb_struct, x: *const arb_struct, prec: slong);
560    pub fn arb_cos_pi(c: *mut arb_struct, x: *const arb_struct, prec: slong);
561    pub fn arb_sin_cos_pi(
562        s: *mut arb_struct,
563        c: *mut arb_struct,
564        x: *const arb_struct,
565        prec: slong,
566    );
567    pub fn arb_tan(y: *mut arb_struct, x: *const arb_struct, prec: slong);
568    pub fn arb_cot(y: *mut arb_struct, x: *const arb_struct, prec: slong);
569    pub fn arb_tan_pi(y: *mut arb_struct, x: *const arb_struct, prec: slong);
570    pub fn arb_cot_pi(y: *mut arb_struct, x: *const arb_struct, prec: slong);
571    pub fn _arb_sin_pi_fmpq_algebraic(s: *mut arb_struct, p: ulong, q: ulong, prec: slong);
572    pub fn _arb_cos_pi_fmpq_algebraic(c: *mut arb_struct, p: ulong, q: ulong, prec: slong);
573    pub fn _arb_sin_cos_pi_fmpq_algebraic(
574        s: *mut arb_struct,
575        c: *mut arb_struct,
576        p: ulong,
577        q: ulong,
578        prec: slong,
579    );
580    pub fn arb_sin_cos_pi_fmpq(s: *mut arb_struct, c: *mut arb_struct, x: *const fmpq, prec: slong);
581    pub fn arb_sin_pi_fmpq(s: *mut arb_struct, x: *const fmpq, prec: slong);
582    pub fn arb_cos_pi_fmpq(c: *mut arb_struct, x: *const fmpq, prec: slong);
583    pub fn arb_sinc(z: *mut arb_struct, x: *const arb_struct, prec: slong);
584    pub fn arb_sinc_pi(z: *mut arb_struct, x: *const arb_struct, prec: slong);
585    pub fn arb_sinh(z: *mut arb_struct, x: *const arb_struct, prec: slong);
586    pub fn arb_cosh(z: *mut arb_struct, x: *const arb_struct, prec: slong);
587    pub fn arb_sinh_cosh(s: *mut arb_struct, c: *mut arb_struct, x: *const arb_struct, prec: slong);
588    pub fn arb_tanh(y: *mut arb_struct, x: *const arb_struct, prec: slong);
589    pub fn arb_coth(y: *mut arb_struct, x: *const arb_struct, prec: slong);
590    pub fn arb_atan_arf(z: *mut arb_struct, x: *const arf_struct, prec: slong);
591    pub fn arb_atan(z: *mut arb_struct, x: *const arb_struct, prec: slong);
592    pub fn arb_atan2(z: *mut arb_struct, b: *const arb_struct, a: *const arb_struct, prec: slong);
593    pub fn arb_asin(z: *mut arb_struct, x: *const arb_struct, prec: slong);
594    pub fn arb_acos(z: *mut arb_struct, x: *const arb_struct, prec: slong);
595    pub fn arb_atanh(z: *mut arb_struct, x: *const arb_struct, prec: slong);
596    pub fn arb_asinh(z: *mut arb_struct, x: *const arb_struct, prec: slong);
597    pub fn arb_acosh(z: *mut arb_struct, x: *const arb_struct, prec: slong);
598    pub fn arb_sec(res: *mut arb_struct, x: *const arb_struct, prec: slong);
599    pub fn arb_csc(res: *mut arb_struct, x: *const arb_struct, prec: slong);
600    pub fn arb_csc_pi(res: *mut arb_struct, x: *const arb_struct, prec: slong);
601    pub fn arb_sech(res: *mut arb_struct, x: *const arb_struct, prec: slong);
602    pub fn arb_csch(res: *mut arb_struct, x: *const arb_struct, prec: slong);
603    pub fn arb_fac_ui(z: *mut arb_struct, n: ulong, prec: slong);
604    pub fn arb_doublefac_ui(z: *mut arb_struct, n: ulong, prec: slong);
605    pub fn arb_bin_ui(z: *mut arb_struct, n: *const arb_struct, k: ulong, prec: slong);
606    pub fn arb_bin_uiui(z: *mut arb_struct, n: ulong, k: ulong, prec: slong);
607    pub fn arb_fib_fmpz(z: *mut arb_struct, n: *const fmpz, prec: slong);
608    pub fn arb_fib_ui(z: *mut arb_struct, n: ulong, prec: slong);
609    pub fn arb_const_pi(z: *mut arb_struct, prec: slong);
610    pub fn arb_const_sqrt_pi(z: *mut arb_struct, prec: slong);
611    pub fn arb_const_log_sqrt2pi(z: *mut arb_struct, prec: slong);
612    pub fn arb_const_log2(z: *mut arb_struct, prec: slong);
613    pub fn arb_const_log10(z: *mut arb_struct, prec: slong);
614    pub fn arb_const_euler(z: *mut arb_struct, prec: slong);
615    pub fn arb_const_catalan(z: *mut arb_struct, prec: slong);
616    pub fn arb_const_e(z: *mut arb_struct, prec: slong);
617    pub fn arb_const_khinchin(z: *mut arb_struct, prec: slong);
618    pub fn arb_const_glaisher(z: *mut arb_struct, prec: slong);
619    pub fn arb_const_reciprocal_fibonacci(res: *mut arb_struct, prec: slong);
620    pub fn arb_agm(z: *mut arb_struct, x: *const arb_struct, y: *const arb_struct, prec: slong);
621    pub fn arb_lgamma(z: *mut arb_struct, x: *const arb_struct, prec: slong);
622    pub fn arb_rgamma(z: *mut arb_struct, x: *const arb_struct, prec: slong);
623    pub fn arb_gamma(z: *mut arb_struct, x: *const arb_struct, prec: slong);
624    pub fn arb_gamma_fmpq(z: *mut arb_struct, x: *const fmpq, prec: slong);
625    pub fn arb_gamma_fmpz(z: *mut arb_struct, x: *const fmpz, prec: slong);
626    pub fn arb_digamma(y: *mut arb_struct, x: *const arb_struct, prec: slong);
627    pub fn arb_zeta(z: *mut arb_struct, s: *const arb_struct, prec: slong);
628    pub fn arb_hurwitz_zeta(
629        z: *mut arb_struct,
630        s: *const arb_struct,
631        a: *const arb_struct,
632        prec: slong,
633    );
634    pub fn arb_rising_ui(z: *mut arb_struct, x: *const arb_struct, n: ulong, prec: slong);
635    pub fn arb_rising_fmpq_ui(y: *mut arb_struct, x: *const fmpq, n: ulong, prec: slong);
636    pub fn arb_rising(z: *mut arb_struct, x: *const arb_struct, n: *const arb_struct, prec: slong);
637    pub fn arb_rising2_ui(
638        u: *mut arb_struct,
639        v: *mut arb_struct,
640        x: *const arb_struct,
641        n: ulong,
642        prec: slong,
643    );
644    pub fn arb_log_ui_from_prev(
645        s: *mut arb_struct,
646        k: ulong,
647        log_prev: *mut arb_struct,
648        prev: ulong,
649        prec: slong,
650    );
651    pub fn arb_const_apery(s: *mut arb_struct, prec: slong);
652    pub fn arb_zeta_ui_asymp(x: *mut arb_struct, s: ulong, prec: slong);
653    pub fn arb_zeta_ui_borwein_bsplit(x: *mut arb_struct, s: ulong, prec: slong);
654    pub fn arb_zeta_ui_euler_product(z: *mut arb_struct, s: ulong, prec: slong);
655    pub fn arb_zeta_ui_bernoulli(x: *mut arb_struct, n: ulong, prec: slong);
656    pub fn arb_zeta_ui_vec_borwein(z: arb_ptr, start: ulong, num: slong, step: ulong, prec: slong);
657    pub fn arb_zeta_ui(x: *mut arb_struct, n: ulong, prec: slong);
658    pub fn arb_zeta_ui_vec_even(x: arb_ptr, start: ulong, num: slong, prec: slong);
659    pub fn arb_zeta_ui_vec_odd(x: arb_ptr, start: ulong, num: slong, prec: slong);
660    pub fn arb_zeta_ui_vec(x: arb_ptr, start: ulong, num: slong, prec: slong);
661    pub fn arb_bernoulli_ui(b: *mut arb_struct, n: ulong, prec: slong);
662    pub fn arb_bernoulli_ui_zeta(b: *mut arb_struct, n: ulong, prec: slong);
663    pub fn arb_bernoulli_fmpz(b: *mut arb_struct, n: *const fmpz, prec: slong);
664    pub fn arb_bernoulli_poly_ui(res: *mut arb_struct, n: ulong, x: *const arb_struct, prec: slong);
665    pub fn arb_polylog(w: *mut arb_struct, s: *const arb_struct, z: *const arb_struct, prec: slong);
666    pub fn arb_polylog_si(w: *mut arb_struct, s: slong, z: *const arb_struct, prec: slong);
667    pub fn arb_chebyshev_t_ui(a: *mut arb_struct, n: ulong, x: *const arb_struct, prec: slong);
668    pub fn arb_chebyshev_t2_ui(
669        a: *mut arb_struct,
670        b: *mut arb_struct,
671        n: ulong,
672        x: *const arb_struct,
673        prec: slong,
674    );
675    pub fn arb_chebyshev_u_ui(a: *mut arb_struct, n: ulong, x: *const arb_struct, prec: slong);
676    pub fn arb_chebyshev_u2_ui(
677        a: *mut arb_struct,
678        b: *mut arb_struct,
679        n: ulong,
680        x: *const arb_struct,
681        prec: slong,
682    );
683    pub fn arb_power_sum_vec(
684        res: arb_ptr,
685        a: *const arb_struct,
686        b: *const arb_struct,
687        len: slong,
688        prec: slong,
689    );
690    pub fn arb_bell_sum_taylor(
691        res: *mut arb_struct,
692        n: *const fmpz,
693        a: *const fmpz,
694        b: *const fmpz,
695        mmag: *const fmpz,
696        prec: slong,
697    );
698    pub fn arb_bell_sum_bsplit(
699        res: *mut arb_struct,
700        n: *const fmpz,
701        a: *const fmpz,
702        b: *const fmpz,
703        mmag: *const fmpz,
704        prec: slong,
705    );
706    pub fn arb_bell_fmpz(res: *mut arb_struct, n: *const fmpz, prec: slong);
707    pub fn arb_bell_ui(res: *mut arb_struct, n: ulong, prec: slong);
708    pub fn arb_euler_number_fmpz(res: *mut arb_struct, n: *const fmpz, prec: slong);
709    pub fn arb_euler_number_ui(res: *mut arb_struct, n: ulong, prec: slong);
710    pub fn arb_fmpz_euler_number_ui_multi_mod(res: *mut fmpz, n: ulong, alpha: f64);
711    pub fn arb_fmpz_euler_number_ui(res: *mut fmpz, n: ulong);
712    pub fn arb_partitions_fmpz(res: *mut arb_struct, n: *const fmpz, prec: slong);
713    pub fn arb_partitions_ui(res: *mut arb_struct, n: ulong, prec: slong);
714    pub fn arb_primorial_nth_ui(res: *mut arb_struct, n: ulong, prec: slong);
715    pub fn arb_primorial_ui(res: *mut arb_struct, n: ulong, prec: slong);
716    pub fn arb_lambertw(
717        res: *mut arb_struct,
718        x: *const arb_struct,
719        flags: libc::c_int,
720        prec: slong,
721    );
722    #[link_name = "arb_sqr__extern"]
723    pub fn arb_sqr(res: *mut arb_struct, val: *const arb_struct, prec: slong);
724    pub fn _arb_vec_entry_ptr(vec: arb_ptr, i: slong) -> arb_ptr;
725    pub fn _arb_vec_zero(A: arb_ptr, n: slong);
726    pub fn _arb_vec_indeterminate(vec: arb_ptr, len: slong);
727    pub fn _arb_vec_is_zero(vec: arb_srcptr, len: slong) -> libc::c_int;
728    pub fn _arb_vec_is_finite(x: arb_srcptr, len: slong) -> libc::c_int;
729    pub fn _arb_vec_equal(vec1: arb_srcptr, vec2: arb_srcptr, len: slong) -> libc::c_int;
730    pub fn _arb_vec_overlaps(vec1: arb_srcptr, vec2: arb_srcptr, len: slong) -> libc::c_int;
731    pub fn _arb_vec_contains(vec1: arb_srcptr, vec2: arb_srcptr, len: slong) -> libc::c_int;
732    pub fn _arb_vec_set(res: arb_ptr, vec: arb_srcptr, len: slong);
733    pub fn _arb_vec_swap(res: arb_ptr, vec: arb_ptr, len: slong);
734    pub fn _arb_vec_neg(B: arb_ptr, A: arb_srcptr, n: slong);
735    pub fn _arb_vec_set_round(res: arb_ptr, vec: arb_srcptr, len: slong, prec: slong);
736    pub fn _arb_vec_sub(C: arb_ptr, A: arb_srcptr, B: arb_srcptr, n: slong, prec: slong);
737    pub fn _arb_vec_add(C: arb_ptr, A: arb_srcptr, B: arb_srcptr, n: slong, prec: slong);
738    pub fn _arb_vec_scalar_mul(
739        res: arb_ptr,
740        vec: arb_srcptr,
741        len: slong,
742        c: *const arb_struct,
743        prec: slong,
744    );
745    pub fn _arb_vec_scalar_mul_fmpz(
746        res: arb_ptr,
747        vec: arb_srcptr,
748        len: slong,
749        c: *const fmpz,
750        prec: slong,
751    );
752    pub fn _arb_vec_scalar_mul_2exp_si(res: arb_ptr, src: arb_srcptr, len: slong, c: slong);
753    pub fn _arb_vec_scalar_div(
754        res: arb_ptr,
755        vec: arb_srcptr,
756        len: slong,
757        c: *const arb_struct,
758        prec: slong,
759    );
760    pub fn _arb_vec_scalar_addmul(
761        res: arb_ptr,
762        vec: arb_srcptr,
763        len: slong,
764        c: *const arb_struct,
765        prec: slong,
766    );
767    pub fn _arb_vec_get_mag(bound: *mut mag_struct, vec: arb_srcptr, len: slong);
768    pub fn _arb_vec_bits(x: arb_srcptr, len: slong) -> slong;
769    pub fn _arb_vec_set_powers(xs: arb_ptr, x: *const arb_struct, len: slong, prec: slong);
770    pub fn _arb_vec_add_error_arf_vec(res: arb_ptr, err: arf_srcptr, len: slong);
771    pub fn _arb_vec_add_error_mag_vec(res: arb_ptr, err: mag_srcptr, len: slong);
772    pub fn _arb_vec_trim(res: arb_ptr, vec: arb_srcptr, len: slong);
773    pub fn _arb_vec_get_unique_fmpz_vec(res: *mut fmpz, vec: arb_srcptr, len: slong)
774        -> libc::c_int;
775    pub static mut arb_atan_tab1: [[ulong; 8usize]; 256usize];
776    pub static mut arb_atan_tab21: [[ulong; 72usize]; 32usize];
777    pub static mut arb_atan_tab22: [[ulong; 72usize]; 32usize];
778    pub static arb_atan_pi2_minus_one: [ulong; 72usize];
779    pub fn _arb_atan_taylor_naive(
780        y: nn_ptr,
781        error: *mut ulong,
782        x: nn_srcptr,
783        xn: slong,
784        N: ulong,
785        alternating: libc::c_int,
786    );
787    pub fn _arb_atan_taylor_rs(
788        y: nn_ptr,
789        error: *mut ulong,
790        x: nn_srcptr,
791        xn: slong,
792        N: ulong,
793        alternating: libc::c_int,
794    );
795    pub fn arb_atan_newton(res: *mut arb_struct, x: *const arb_struct, prec: slong);
796    pub fn arb_atan_arf_newton(res: *mut arb_struct, x: *const arf_struct, prec: slong);
797    pub static mut arb_log_tab11: [[ulong; 8usize]; 128usize];
798    pub static mut arb_log_tab12: [[ulong; 8usize]; 128usize];
799    pub static mut arb_log_tab21: [[ulong; 72usize]; 32usize];
800    pub static mut arb_log_tab22: [[ulong; 72usize]; 32usize];
801    pub static arb_log_log2_tab: nn_srcptr;
802    pub fn arb_log_newton(res: *mut arb_struct, x: *const arb_struct, prec: slong);
803    pub fn arb_log_arf_newton(res: *mut arb_struct, x: *const arf_struct, prec: slong);
804    pub static mut arb_log_p_tab: [[ulong; 72usize]; 13usize];
805    pub fn arb_log_primes_vec_bsplit(res: arb_ptr, n: slong, prec: slong);
806    pub fn _arb_log_p_ensure_cached(prec: slong);
807    pub fn _arb_log_p_cache_vec() -> arb_srcptr;
808    pub static mut arb_exp_tab1: [[ulong; 8usize]; 178usize];
809    pub static mut arb_exp_tab21: [[ulong; 72usize]; 23usize];
810    pub static mut arb_exp_tab22: [[ulong; 72usize]; 32usize];
811    pub fn _arb_exp_taylor_naive(y: nn_ptr, error: *mut ulong, x: nn_srcptr, xn: slong, N: ulong);
812    pub fn _arb_exp_taylor_rs(y: nn_ptr, error: *mut ulong, x: nn_srcptr, xn: slong, N: ulong);
813    pub fn arb_exp_arf_bb(
814        z: *mut arb_struct,
815        x: *const arf_struct,
816        prec: slong,
817        minus_one: libc::c_int,
818    );
819    pub fn arb_exp_arf_rs_generic(
820        res: *mut arb_struct,
821        x: *const arf_struct,
822        prec: slong,
823        minus_one: libc::c_int,
824    );
825    pub fn _arb_get_mpn_fixed_mod_log2(
826        w: nn_ptr,
827        q: *mut fmpz,
828        error: *mut ulong,
829        x: *const arf_struct,
830        wn: slong,
831    ) -> libc::c_int;
832    pub fn _arb_exp_taylor_bound(mag: slong, prec: slong) -> slong;
833    pub fn _arb_exp_sum_bs_powtab(
834        T: *mut fmpz,
835        Q: *mut fmpz,
836        Qexp: *mut flint_bitcnt_t,
837        x: *const fmpz,
838        r: flint_bitcnt_t,
839        N: slong,
840    );
841    pub fn _arb_exp_sum_bs_simple(
842        T: *mut fmpz,
843        Q: *mut fmpz,
844        Qexp: *mut flint_bitcnt_t,
845        x: *const fmpz,
846        r: flint_bitcnt_t,
847        N: slong,
848    );
849    pub fn arb_exp_arf_log_reduction(
850        res: *mut arb_struct,
851        x: *const arf_struct,
852        prec: slong,
853        minus_one: libc::c_int,
854    );
855    pub fn arb_exp_arf_generic(
856        z: *mut arb_struct,
857        x: *const arf_struct,
858        prec: slong,
859        minus_one: libc::c_int,
860    );
861    pub fn arb_exp_arf(
862        z: *mut arb_struct,
863        x: *const arf_struct,
864        prec: slong,
865        minus_one: libc::c_int,
866        maglim: slong,
867    );
868    pub static mut arb_sin_cos_tab1: [[ulong; 8usize]; 406usize];
869    pub static mut arb_sin_cos_tab21: [[ulong; 72usize]; 52usize];
870    pub static mut arb_sin_cos_tab22: [[ulong; 72usize]; 64usize];
871    pub static arb_pi4_tab: [ulong; 72usize];
872    pub fn _arb_sin_cos_taylor_naive(
873        ysin: nn_ptr,
874        ycos: nn_ptr,
875        error: *mut ulong,
876        x: nn_srcptr,
877        xn: slong,
878        N: ulong,
879    );
880    pub fn _arb_sin_cos_taylor_rs(
881        ysin: nn_ptr,
882        ycos: nn_ptr,
883        error: *mut ulong,
884        x: nn_srcptr,
885        xn: slong,
886        N: ulong,
887        sinonly: libc::c_int,
888        alternating: libc::c_int,
889    );
890    pub fn _arb_get_mpn_fixed_mod_pi4(
891        w: nn_ptr,
892        q: *mut fmpz,
893        octant: *mut libc::c_int,
894        error: *mut ulong,
895        x: *const arf_struct,
896        wn: slong,
897    ) -> libc::c_int;
898    pub fn arb_sin_cos_arf_bb(
899        zsin: *mut arb_struct,
900        zcos: *mut arb_struct,
901        x: *const arf_struct,
902        prec: slong,
903    );
904    pub fn arb_sin_cos_arf_rs_generic(
905        res_sin: *mut arb_struct,
906        res_cos: *mut arb_struct,
907        x: *const arf_struct,
908        prec: slong,
909    );
910    pub fn arb_sin_cos_arf_generic(
911        res_sin: *mut arb_struct,
912        res_cos: *mut arb_struct,
913        x: *const arf_struct,
914        prec: slong,
915    );
916    pub fn _arb_sin_cos_wide(
917        s: *mut arb_struct,
918        c: *mut arb_struct,
919        x: *const arf_struct,
920        r: *const mag_struct,
921        prec: slong,
922    );
923    pub fn arb_sin_cos_wide(
924        s: *mut arb_struct,
925        c: *mut arb_struct,
926        x: *const arb_struct,
927        prec: slong,
928    );
929    pub fn _arb_sin_cos_generic(
930        s: *mut arb_struct,
931        c: *mut arb_struct,
932        x: *const arf_struct,
933        xrad: *const mag_struct,
934        prec: slong,
935    );
936    pub fn arb_sin_cos_generic(
937        s: *mut arb_struct,
938        c: *mut arb_struct,
939        x: *const arb_struct,
940        prec: slong,
941    );
942    pub fn arb_atan_gauss_primes_vec_bsplit(res: arb_ptr, n: slong, prec: slong);
943    pub static mut arb_atan_gauss_tab: [[ulong; 72usize]; 13usize];
944    pub fn _arb_atan_gauss_p_ensure_cached(prec: slong);
945    pub fn _arb_atan_gauss_p_cache_vec() -> arb_srcptr;
946    pub fn arb_sin_cos_arf_atan_reduction(
947        res1: *mut arb_struct,
948        res2: *mut arb_struct,
949        x: *const arf_struct,
950        prec: slong,
951    );
952    #[link_name = "_arb_mpn_leading_zeros__extern"]
953    pub fn _arb_mpn_leading_zeros(d: nn_srcptr, n: slong) -> flint_bitcnt_t;
954    pub fn _arb_atan_sum_bs_simple(
955        T: *mut fmpz,
956        Q: *mut fmpz,
957        Qexp: *mut flint_bitcnt_t,
958        x: *const fmpz,
959        r: flint_bitcnt_t,
960        N: slong,
961    );
962    pub fn _arb_atan_sum_bs_powtab(
963        T: *mut fmpz,
964        Q: *mut fmpz,
965        Qexp: *mut flint_bitcnt_t,
966        x: *const fmpz,
967        r: flint_bitcnt_t,
968        N: slong,
969    );
970    pub fn arb_atan_arf_bb(z: *mut arb_struct, x: *const arf_struct, prec: slong);
971    pub fn arb_atan_frac_bsplit(
972        s: *mut arb_struct,
973        p: *const fmpz,
974        q: *const fmpz,
975        hyperbolic: libc::c_int,
976        prec: slong,
977    );
978    #[link_name = "arb_allocated_bytes__extern"]
979    pub fn arb_allocated_bytes(x: *const arb_struct) -> slong;
980    pub fn _arb_vec_allocated_bytes(vec: arb_srcptr, len: slong) -> slong;
981    pub fn _arb_vec_estimate_allocated_bytes(len: slong, prec: slong) -> f64;
982    pub fn arb_load_str(res: *mut arb_struct, data: *const libc::c_char) -> libc::c_int;
983    pub fn arb_dump_str(x: *const arb_struct) -> *mut libc::c_char;
984    pub fn arb_load_file(res: *mut arb_struct, stream: *mut FILE) -> libc::c_int;
985    pub fn arb_dump_file(stream: *mut FILE, x: *const arb_struct) -> libc::c_int;
986}