arb_sys/
arb.rs

1#![allow(non_camel_case_types)]
2
3//! See the [Arb documentation](https://arblib.org/).
4
5use crate::arf::{arf_ptr, arf_srcptr, arf_struct};
6use crate::mag::{mag_ptr, mag_srcptr, mag_struct};
7use flint_sys::deps::*;
8use flint_sys::flint::*;
9use flint_sys::fmpq::fmpq;
10use flint_sys::fmpz::fmpz;
11use libc::{c_char, c_int, FILE};
12
13#[repr(C)]
14#[derive(Copy, Clone, Debug)]
15pub struct arb_struct {
16    pub mid: arf_struct,
17    pub rad: mag_struct,
18}
19
20pub type arb_t = [arb_struct; 1usize];
21pub type arb_ptr = *mut arb_struct;
22pub type arb_srcptr = *const arb_struct;
23
24extern "C" {
25    pub fn arb_init(x: *mut arb_struct);
26    pub fn arb_clear(x: *mut arb_struct);
27    pub fn _arb_vec_init(n: mp_limb_signed_t) -> arb_ptr;
28    pub fn _arb_vec_clear(v: arb_ptr, n: mp_limb_signed_t);
29    pub fn arb_mid_ptr(z: *const arb_struct) -> arf_ptr;
30    pub fn arb_rad_ptr(z: *const arb_struct) -> mag_ptr;
31    pub fn arb_is_exact(x: *const arb_struct) -> c_int;
32    pub fn arb_equal(x: *const arb_struct, y: *const arb_struct) -> c_int;
33    pub fn arb_equal_si(x: *const arb_struct, y: mp_limb_signed_t) -> c_int;
34    pub fn arb_eq(x: *const arb_struct, y: *const arb_struct) -> c_int;
35    pub fn arb_ne(x: *const arb_struct, y: *const arb_struct) -> c_int;
36    pub fn arb_lt(x: *const arb_struct, y: *const arb_struct) -> c_int;
37    pub fn arb_le(x: *const arb_struct, y: *const arb_struct) -> c_int;
38    pub fn arb_gt(x: *const arb_struct, y: *const arb_struct) -> c_int;
39    pub fn arb_ge(x: *const arb_struct, y: *const arb_struct) -> c_int;
40    pub fn arb_zero(x: *mut arb_struct);
41    pub fn arb_is_zero(x: *const arb_struct) -> c_int;
42    pub fn arb_pos_inf(x: *mut arb_struct);
43    pub fn arb_neg_inf(x: *mut arb_struct);
44    pub fn arb_zero_pm_inf(x: *mut arb_struct);
45    pub fn arb_zero_pm_one(x: *mut arb_struct);
46    pub fn arb_unit_interval(x: *mut arb_struct);
47    pub fn arb_indeterminate(x: *mut arb_struct);
48    pub fn arb_is_finite(x: *const arb_struct) -> c_int;
49    pub fn arb_set(x: *mut arb_struct, y: *const arb_struct);
50    pub fn arb_swap(x: *mut arb_struct, y: *mut arb_struct);
51    pub fn arb_set_round(z: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
52    pub fn arb_trim(y: *mut arb_struct, x: *const arb_struct);
53    pub fn arb_neg(y: *mut arb_struct, x: *const arb_struct);
54    pub fn arb_neg_round(x: *mut arb_struct, y: *const arb_struct, prec: mp_limb_signed_t);
55    pub fn arb_abs(y: *mut arb_struct, x: *const arb_struct);
56    pub fn arb_sgn(res: *mut arb_struct, x: *const arb_struct);
57    pub fn arb_sgn_nonzero(x: *const arb_struct) -> c_int;
58    pub fn _arb_digits_round_inplace(
59        s: *mut c_char,
60        shift: *const mp_limb_t,
61        error: *const fmpz,
62        n: mp_limb_signed_t,
63        rnd: c_int,
64    );
65    pub fn arb_set_str(res: *mut arb_struct, inp: *const c_char, prec: mp_limb_signed_t) -> c_int;
66    pub fn arb_get_str(x: *const arb_struct, n: mp_limb_signed_t, flags: mp_limb_t) -> *mut c_char;
67    pub fn arb_set_arf(x: *mut arb_struct, y: *const arf_struct);
68    pub fn arb_set_si(x: *mut arb_struct, y: mp_limb_signed_t);
69    pub fn arb_set_ui(x: *mut arb_struct, y: mp_limb_t);
70    pub fn arb_set_d(x: *mut arb_struct, y: f64);
71    pub fn arb_set_fmpz(x: *mut arb_struct, y: *const fmpz);
72    pub fn arb_set_fmpz_2exp(x: *mut arb_struct, y: *const fmpz, exp: *const fmpz);
73    pub fn arb_set_round_fmpz_2exp(
74        y: *mut arb_struct,
75        x: *const fmpz,
76        exp: *const fmpz,
77        prec: mp_limb_signed_t,
78    );
79    pub fn arb_set_round_fmpz(y: *mut arb_struct, x: *const fmpz, prec: mp_limb_signed_t);
80    pub fn arb_is_one(f: *const arb_struct) -> c_int;
81    pub fn arb_one(f: *mut arb_struct);
82    pub fn arb_fprint(file: *mut FILE, x: *const arb_struct);
83    pub fn arb_fprintd(file: *mut FILE, x: *const arb_struct, digits: mp_limb_signed_t);
84    pub fn arb_fprintn(
85        file: *mut FILE,
86        x: *const arb_struct,
87        digits: mp_limb_signed_t,
88        flags: mp_limb_t,
89    );
90    pub fn arb_print(x: *const arb_struct);
91    pub fn arb_printd(x: *const arb_struct, digits: mp_limb_signed_t);
92    pub fn arb_printn(x: *const arb_struct, digits: mp_limb_signed_t, flags: mp_limb_t);
93    pub fn arb_mul_2exp_si(y: *mut arb_struct, x: *const arb_struct, e: mp_limb_signed_t);
94    pub fn arb_mul_2exp_fmpz(y: *mut arb_struct, x: *const arb_struct, e: *const fmpz);
95    pub fn arb_is_int(x: *const arb_struct) -> c_int;
96    pub fn arb_is_int_2exp_si(x: *const arb_struct, e: mp_limb_signed_t) -> c_int;
97    pub fn arb_contains_zero(x: *const arb_struct) -> c_int;
98    pub fn arb_is_nonzero(x: *const arb_struct) -> c_int;
99    pub fn arb_is_positive(x: *const arb_struct) -> c_int;
100    pub fn arb_is_nonnegative(x: *const arb_struct) -> c_int;
101    pub fn arb_is_negative(x: *const arb_struct) -> c_int;
102    pub fn arb_is_nonpositive(x: *const arb_struct) -> c_int;
103    pub fn arb_contains_negative(x: *const arb_struct) -> c_int;
104    pub fn arb_contains_nonpositive(x: *const arb_struct) -> c_int;
105    pub fn arb_contains_positive(x: *const arb_struct) -> c_int;
106    pub fn arb_contains_nonnegative(x: *const arb_struct) -> c_int;
107    pub fn arb_get_mag_lower(z: *mut mag_struct, x: *const arb_struct);
108    pub fn arb_get_mag_lower_nonnegative(z: *mut mag_struct, x: *const arb_struct);
109    pub fn arb_get_mag(z: *mut mag_struct, x: *const arb_struct);
110    pub fn arb_get_mid_arb(z: *mut arb_struct, x: *const arb_struct);
111    pub fn arb_get_rad_arb(z: *mut arb_struct, x: *const arb_struct);
112    pub fn arb_get_abs_ubound_arf(u: *mut arf_struct, x: *const arb_struct, prec: mp_limb_signed_t);
113    pub fn arb_get_abs_lbound_arf(u: *mut arf_struct, x: *const arb_struct, prec: mp_limb_signed_t);
114    pub fn arb_get_ubound_arf(u: *mut arf_struct, x: *const arb_struct, prec: mp_limb_signed_t);
115    pub fn arb_get_lbound_arf(u: *mut arf_struct, x: *const arb_struct, prec: mp_limb_signed_t);
116    pub fn arb_nonnegative_part(res: *mut arb_struct, x: *const arb_struct);
117    pub fn arb_rel_error_bits(x: *const arb_struct) -> mp_limb_signed_t;
118    pub fn arb_rel_accuracy_bits(x: *const arb_struct) -> mp_limb_signed_t;
119    pub fn arb_rel_one_accuracy_bits(x: *const arb_struct) -> mp_limb_signed_t;
120    pub fn arb_bits(x: *const arb_struct) -> mp_limb_signed_t;
121    pub fn arb_randtest_exact(
122        x: *mut arb_struct,
123        state: *const flint_rand_s,
124        prec: mp_limb_signed_t,
125        mag_bits: mp_limb_signed_t,
126    );
127    pub fn arb_randtest_wide(
128        x: *mut arb_struct,
129        state: *const flint_rand_s,
130        prec: mp_limb_signed_t,
131        mag_bits: mp_limb_signed_t,
132    );
133    pub fn arb_randtest_precise(
134        x: *mut arb_struct,
135        state: *const flint_rand_s,
136        prec: mp_limb_signed_t,
137        mag_bits: mp_limb_signed_t,
138    );
139    pub fn arb_randtest(
140        x: *mut arb_struct,
141        state: *const flint_rand_s,
142        prec: mp_limb_signed_t,
143        mag_bits: mp_limb_signed_t,
144    );
145    pub fn arb_randtest_special(
146        x: *mut arb_struct,
147        state: *const flint_rand_s,
148        prec: mp_limb_signed_t,
149        mag_bits: mp_limb_signed_t,
150    );
151    pub fn arb_urandom(x: *mut arb_struct, state: *const flint_rand_s, prec: mp_limb_signed_t);
152    pub fn arb_add_error_arf(x: *mut arb_struct, err: *const arf_struct);
153    pub fn arb_add_error_2exp_si(x: *mut arb_struct, err: mp_limb_signed_t);
154    pub fn arb_add_error_2exp_fmpz(x: *mut arb_struct, err: *const fmpz);
155    pub fn arb_add_error(x: *mut arb_struct, error: *const arb_struct);
156    pub fn arb_add_error_mag(x: *mut arb_struct, err: *const mag_struct);
157    pub fn arb_contains_arf(x: *const arb_struct, y: *const arf_struct) -> c_int;
158    pub fn arb_contains_fmpq(x: *const arb_struct, y: *const fmpq) -> c_int;
159    pub fn arb_contains_fmpz(x: *const arb_struct, y: *const fmpz) -> c_int;
160    pub fn arb_contains_si(x: *const arb_struct, y: mp_limb_signed_t) -> c_int;
161    pub fn arb_contains_mpfr(x: *const arb_struct, y: *const __mpfr_struct) -> c_int;
162    pub fn arb_overlaps(x: *const arb_struct, y: *const arb_struct) -> c_int;
163    pub fn arb_contains(x: *const arb_struct, y: *const arb_struct) -> c_int;
164    pub fn arb_contains_interior(x: *const arb_struct, y: *const arb_struct) -> c_int;
165    pub fn arb_contains_int(x: *const arb_struct) -> c_int;
166    pub fn arb_get_interval_fmpz_2exp(
167        a: *mut fmpz,
168        b: *mut fmpz,
169        exp: *mut fmpz,
170        x: *const arb_struct,
171    );
172    pub fn arb_get_unique_fmpz(z: *mut fmpz, x: *const arb_struct) -> c_int;
173    pub fn arb_get_fmpz_mid_rad_10exp(
174        mid: *mut fmpz,
175        rad: *mut fmpz,
176        exp: *mut fmpz,
177        x: *const arb_struct,
178        n: mp_limb_signed_t,
179    );
180    pub fn arb_floor(z: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
181    pub fn arb_ceil(z: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
182    pub fn arb_set_interval_arf(
183        x: *mut arb_struct,
184        a: *const arf_struct,
185        b: *const arf_struct,
186        prec: mp_limb_signed_t,
187    );
188    pub fn arb_set_interval_mpfr(
189        x: *mut arb_struct,
190        a: *const __mpfr_struct,
191        b: *const __mpfr_struct,
192        prec: mp_limb_signed_t,
193    );
194    pub fn arb_get_interval_arf(
195        a: *mut arf_struct,
196        b: *mut arf_struct,
197        x: *const arb_struct,
198        prec: mp_limb_signed_t,
199    );
200    pub fn arb_get_interval_mpfr(
201        a: *mut __mpfr_struct,
202        b: *mut __mpfr_struct,
203        x: *const arb_struct,
204    );
205    pub fn arb_set_interval_mag(
206        res: *mut arb_struct,
207        a: *const mag_struct,
208        b: *const mag_struct,
209        prec: mp_limb_signed_t,
210    );
211    pub fn arb_set_interval_neg_pos_mag(
212        res: *mut arb_struct,
213        a: *const mag_struct,
214        b: *const mag_struct,
215        prec: mp_limb_signed_t,
216    );
217    pub fn arb_union(
218        z: *mut arb_struct,
219        x: *const arb_struct,
220        y: *const arb_struct,
221        prec: mp_limb_signed_t,
222    );
223    pub fn arb_intersection(
224        z: *mut arb_struct,
225        x: *const arb_struct,
226        y: *const arb_struct,
227        prec: mp_limb_signed_t,
228    ) -> c_int;
229    pub fn arb_get_rand_fmpq(
230        q: *mut fmpq,
231        state: *const flint_rand_s,
232        x: *const arb_struct,
233        bits: mp_limb_signed_t,
234    );
235    pub fn arb_min(
236        z: *mut arb_struct,
237        x: *const arb_struct,
238        y: *const arb_struct,
239        prec: mp_limb_signed_t,
240    );
241    pub fn arb_max(
242        z: *mut arb_struct,
243        x: *const arb_struct,
244        y: *const arb_struct,
245        prec: mp_limb_signed_t,
246    );
247    pub fn arb_can_round_arf(x: *const arb_struct, prec: mp_limb_signed_t, rnd: c_int) -> c_int;
248    pub fn arb_can_round_mpfr(
249        x: *const arb_struct,
250        prec: mp_limb_signed_t,
251        rnd: mpfr_rnd_t,
252    ) -> c_int;
253    pub fn arb_add(
254        z: *mut arb_struct,
255        x: *const arb_struct,
256        y: *const arb_struct,
257        prec: mp_limb_signed_t,
258    );
259    pub fn arb_add_arf(
260        z: *mut arb_struct,
261        x: *const arb_struct,
262        y: *const arf_struct,
263        prec: mp_limb_signed_t,
264    );
265    pub fn arb_add_ui(
266        z: *mut arb_struct,
267        x: *const arb_struct,
268        y: mp_limb_t,
269        prec: mp_limb_signed_t,
270    );
271    pub fn arb_add_si(
272        z: *mut arb_struct,
273        x: *const arb_struct,
274        y: mp_limb_signed_t,
275        prec: mp_limb_signed_t,
276    );
277    pub fn arb_add_fmpz(
278        z: *mut arb_struct,
279        x: *const arb_struct,
280        y: *const fmpz,
281        prec: mp_limb_signed_t,
282    );
283    pub fn arb_add_fmpz_2exp(
284        z: *mut arb_struct,
285        x: *const arb_struct,
286        man: *const fmpz,
287        exp: *const fmpz,
288        prec: mp_limb_signed_t,
289    );
290    pub fn arb_sub(
291        z: *mut arb_struct,
292        x: *const arb_struct,
293        y: *const arb_struct,
294        prec: mp_limb_signed_t,
295    );
296    pub fn arb_sub_arf(
297        z: *mut arb_struct,
298        x: *const arb_struct,
299        y: *const arf_struct,
300        prec: mp_limb_signed_t,
301    );
302    pub fn arb_sub_ui(
303        z: *mut arb_struct,
304        x: *const arb_struct,
305        y: mp_limb_t,
306        prec: mp_limb_signed_t,
307    );
308    pub fn arb_sub_si(
309        z: *mut arb_struct,
310        x: *const arb_struct,
311        y: mp_limb_signed_t,
312        prec: mp_limb_signed_t,
313    );
314    pub fn arb_sub_fmpz(
315        z: *mut arb_struct,
316        x: *const arb_struct,
317        y: *const fmpz,
318        prec: mp_limb_signed_t,
319    );
320    pub fn arb_mul(
321        z: *mut arb_struct,
322        x: *const arb_struct,
323        y: *const arb_struct,
324        prec: mp_limb_signed_t,
325    );
326    pub fn arb_mul_arf(
327        z: *mut arb_struct,
328        x: *const arb_struct,
329        y: *const arf_struct,
330        prec: mp_limb_signed_t,
331    );
332    pub fn arb_mul_si(
333        z: *mut arb_struct,
334        x: *const arb_struct,
335        y: mp_limb_signed_t,
336        prec: mp_limb_signed_t,
337    );
338    pub fn arb_mul_ui(
339        z: *mut arb_struct,
340        x: *const arb_struct,
341        y: mp_limb_t,
342        prec: mp_limb_signed_t,
343    );
344    pub fn arb_mul_fmpz(
345        z: *mut arb_struct,
346        x: *const arb_struct,
347        y: *const fmpz,
348        prec: mp_limb_signed_t,
349    );
350    pub fn arb_addmul(
351        z: *mut arb_struct,
352        x: *const arb_struct,
353        y: *const arb_struct,
354        prec: mp_limb_signed_t,
355    );
356    pub fn arb_addmul_arf(
357        z: *mut arb_struct,
358        x: *const arb_struct,
359        y: *const arf_struct,
360        prec: mp_limb_signed_t,
361    );
362    pub fn arb_addmul_si(
363        z: *mut arb_struct,
364        x: *const arb_struct,
365        y: mp_limb_signed_t,
366        prec: mp_limb_signed_t,
367    );
368    pub fn arb_addmul_ui(
369        z: *mut arb_struct,
370        x: *const arb_struct,
371        y: mp_limb_t,
372        prec: mp_limb_signed_t,
373    );
374    pub fn arb_addmul_fmpz(
375        z: *mut arb_struct,
376        x: *const arb_struct,
377        y: *const fmpz,
378        prec: mp_limb_signed_t,
379    );
380    pub fn arb_submul(
381        z: *mut arb_struct,
382        x: *const arb_struct,
383        y: *const arb_struct,
384        prec: mp_limb_signed_t,
385    );
386    pub fn arb_submul_arf(
387        z: *mut arb_struct,
388        x: *const arb_struct,
389        y: *const arf_struct,
390        prec: mp_limb_signed_t,
391    );
392    pub fn arb_submul_si(
393        z: *mut arb_struct,
394        x: *const arb_struct,
395        y: mp_limb_signed_t,
396        prec: mp_limb_signed_t,
397    );
398    pub fn arb_submul_ui(
399        z: *mut arb_struct,
400        x: *const arb_struct,
401        y: mp_limb_t,
402        prec: mp_limb_signed_t,
403    );
404    pub fn arb_submul_fmpz(
405        z: *mut arb_struct,
406        x: *const arb_struct,
407        y: *const fmpz,
408        prec: mp_limb_signed_t,
409    );
410    pub fn arb_dot_simple(
411        res: *mut arb_struct,
412        initial: *const arb_struct,
413        subtract: c_int,
414        x: arb_srcptr,
415        xstep: mp_limb_signed_t,
416        y: arb_srcptr,
417        ystep: mp_limb_signed_t,
418        len: mp_limb_signed_t,
419        prec: mp_limb_signed_t,
420    );
421    pub fn arb_dot_precise(
422        res: *mut arb_struct,
423        initial: *const arb_struct,
424        subtract: c_int,
425        x: arb_srcptr,
426        xstep: mp_limb_signed_t,
427        y: arb_srcptr,
428        ystep: mp_limb_signed_t,
429        len: mp_limb_signed_t,
430        prec: mp_limb_signed_t,
431    );
432    pub fn arb_dot(
433        res: *mut arb_struct,
434        initial: *const arb_struct,
435        subtract: c_int,
436        x: arb_srcptr,
437        xstep: mp_limb_signed_t,
438        y: arb_srcptr,
439        ystep: mp_limb_signed_t,
440        len: mp_limb_signed_t,
441        prec: mp_limb_signed_t,
442    );
443    pub fn arb_approx_dot(
444        res: *mut arb_struct,
445        initial: *const arb_struct,
446        subtract: c_int,
447        x: arb_srcptr,
448        xstep: mp_limb_signed_t,
449        y: arb_srcptr,
450        ystep: mp_limb_signed_t,
451        len: mp_limb_signed_t,
452        prec: mp_limb_signed_t,
453    );
454    pub fn arb_dot_ui(
455        res: *mut arb_struct,
456        initial: *const arb_struct,
457        subtract: c_int,
458        x: arb_srcptr,
459        xstep: mp_limb_signed_t,
460        y: *const mp_limb_t,
461        ystep: mp_limb_signed_t,
462        len: mp_limb_signed_t,
463        prec: mp_limb_signed_t,
464    );
465    pub fn arb_dot_si(
466        res: *mut arb_struct,
467        initial: *const arb_struct,
468        subtract: c_int,
469        x: arb_srcptr,
470        xstep: mp_limb_signed_t,
471        y: *const mp_limb_signed_t,
472        ystep: mp_limb_signed_t,
473        len: mp_limb_signed_t,
474        prec: mp_limb_signed_t,
475    );
476    pub fn arb_dot_uiui(
477        res: *mut arb_struct,
478        initial: *const arb_struct,
479        subtract: c_int,
480        x: arb_srcptr,
481        xstep: mp_limb_signed_t,
482        y: *const mp_limb_t,
483        ystep: mp_limb_signed_t,
484        len: mp_limb_signed_t,
485        prec: mp_limb_signed_t,
486    );
487    pub fn arb_dot_siui(
488        res: *mut arb_struct,
489        initial: *const arb_struct,
490        subtract: c_int,
491        x: arb_srcptr,
492        xstep: mp_limb_signed_t,
493        y: *const mp_limb_t,
494        ystep: mp_limb_signed_t,
495        len: mp_limb_signed_t,
496        prec: mp_limb_signed_t,
497    );
498    pub fn arb_dot_fmpz(
499        res: *mut arb_struct,
500        initial: *const arb_struct,
501        subtract: c_int,
502        x: arb_srcptr,
503        xstep: mp_limb_signed_t,
504        y: *const fmpz,
505        ystep: mp_limb_signed_t,
506        len: mp_limb_signed_t,
507        prec: mp_limb_signed_t,
508    );
509    pub fn arb_div(
510        z: *mut arb_struct,
511        x: *const arb_struct,
512        y: *const arb_struct,
513        prec: mp_limb_signed_t,
514    );
515    pub fn arb_div_arf(
516        z: *mut arb_struct,
517        x: *const arb_struct,
518        y: *const arf_struct,
519        prec: mp_limb_signed_t,
520    );
521    pub fn arb_div_si(
522        z: *mut arb_struct,
523        x: *const arb_struct,
524        y: mp_limb_signed_t,
525        prec: mp_limb_signed_t,
526    );
527    pub fn arb_div_ui(
528        z: *mut arb_struct,
529        x: *const arb_struct,
530        y: mp_limb_t,
531        prec: mp_limb_signed_t,
532    );
533    pub fn arb_div_fmpz(
534        z: *mut arb_struct,
535        x: *const arb_struct,
536        y: *const fmpz,
537        prec: mp_limb_signed_t,
538    );
539    pub fn arb_fmpz_div_fmpz(
540        z: *mut arb_struct,
541        x: *const fmpz,
542        y: *const fmpz,
543        prec: mp_limb_signed_t,
544    );
545    pub fn arb_ui_div(
546        z: *mut arb_struct,
547        x: mp_limb_t,
548        y: *const arb_struct,
549        prec: mp_limb_signed_t,
550    );
551    pub fn arb_inv(y: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
552    pub fn arb_set_fmpq(y: *mut arb_struct, x: *const fmpq, prec: mp_limb_signed_t);
553    pub fn arb_sqrt(z: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
554    pub fn arb_sqrt_arf(z: *mut arb_struct, x: *const arf_struct, prec: mp_limb_signed_t);
555    pub fn arb_sqrt_fmpz(z: *mut arb_struct, x: *const fmpz, prec: mp_limb_signed_t);
556    pub fn arb_sqrt_ui(z: *mut arb_struct, x: mp_limb_t, prec: mp_limb_signed_t);
557    pub fn arb_sqrtpos(z: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
558    pub fn arb_hypot(
559        z: *mut arb_struct,
560        x: *const arb_struct,
561        y: *const arb_struct,
562        prec: mp_limb_signed_t,
563    );
564    pub fn arb_rsqrt(z: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
565    pub fn arb_rsqrt_ui(z: *mut arb_struct, x: mp_limb_t, prec: mp_limb_signed_t);
566    pub fn arb_sqrt1pm1(r: *mut arb_struct, z: *const arb_struct, prec: mp_limb_signed_t);
567    pub fn arb_pow_fmpz_binexp(
568        y: *mut arb_struct,
569        b: *const arb_struct,
570        e: *const fmpz,
571        prec: mp_limb_signed_t,
572    );
573    pub fn arb_pow_fmpz(
574        y: *mut arb_struct,
575        b: *const arb_struct,
576        e: *const fmpz,
577        prec: mp_limb_signed_t,
578    );
579    pub fn arb_pow_ui(
580        y: *mut arb_struct,
581        b: *const arb_struct,
582        e: mp_limb_t,
583        prec: mp_limb_signed_t,
584    );
585    pub fn arb_ui_pow_ui(y: *mut arb_struct, b: mp_limb_t, e: mp_limb_t, prec: mp_limb_signed_t);
586    pub fn arb_si_pow_ui(
587        y: *mut arb_struct,
588        b: mp_limb_signed_t,
589        e: mp_limb_t,
590        prec: mp_limb_signed_t,
591    );
592    pub fn arb_pow_fmpq(
593        y: *mut arb_struct,
594        x: *const arb_struct,
595        a: *const fmpq,
596        prec: mp_limb_signed_t,
597    );
598    pub fn arb_div_2expm1_ui(
599        z: *mut arb_struct,
600        x: *const arb_struct,
601        n: mp_limb_t,
602        prec: mp_limb_signed_t,
603    );
604    pub fn arb_pow(
605        z: *mut arb_struct,
606        x: *const arb_struct,
607        y: *const arb_struct,
608        prec: mp_limb_signed_t,
609    );
610    pub fn arb_root_ui(
611        z: *mut arb_struct,
612        x: *const arb_struct,
613        k: mp_limb_t,
614        prec: mp_limb_signed_t,
615    );
616    pub fn arb_root(z: *mut arb_struct, x: *const arb_struct, k: mp_limb_t, prec: mp_limb_signed_t);
617    pub fn arb_log(z: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
618    pub fn arb_log_arf(z: *mut arb_struct, x: *const arf_struct, prec: mp_limb_signed_t);
619    pub fn arb_log_ui(z: *mut arb_struct, x: mp_limb_t, prec: mp_limb_signed_t);
620    pub fn arb_log_fmpz(z: *mut arb_struct, x: *const fmpz, prec: mp_limb_signed_t);
621    pub fn arb_log1p(r: *mut arb_struct, z: *const arb_struct, prec: mp_limb_signed_t);
622    pub fn arb_log_base_ui(
623        res: *mut arb_struct,
624        x: *const arb_struct,
625        b: mp_limb_t,
626        prec: mp_limb_signed_t,
627    );
628    pub fn arb_log_hypot(
629        res: *mut arb_struct,
630        x: *const arb_struct,
631        y: *const arb_struct,
632        prec: mp_limb_signed_t,
633    );
634    pub fn arb_exp(z: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
635    pub fn arb_expm1(z: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
636    pub fn arb_exp_invexp(
637        z: *mut arb_struct,
638        w: *const arb_struct,
639        x: *const arb_struct,
640        prec: mp_limb_signed_t,
641    );
642    pub fn arb_sin(s: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
643    pub fn arb_cos(c: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
644    pub fn arb_sin_cos(
645        s: *mut arb_struct,
646        c: *mut arb_struct,
647        x: *const arb_struct,
648        prec: mp_limb_signed_t,
649    );
650    pub fn arb_sin_pi(s: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
651    pub fn arb_cos_pi(c: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
652    pub fn arb_sin_cos_pi(
653        s: *mut arb_struct,
654        c: *mut arb_struct,
655        x: *const arb_struct,
656        prec: mp_limb_signed_t,
657    );
658    pub fn arb_tan(y: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
659    pub fn arb_cot(y: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
660    pub fn arb_tan_pi(y: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
661    pub fn arb_cot_pi(y: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
662    pub fn _arb_sin_pi_fmpq_algebraic(
663        s: *mut arb_struct,
664        p: mp_limb_t,
665        q: mp_limb_t,
666        prec: mp_limb_signed_t,
667    );
668    pub fn _arb_cos_pi_fmpq_algebraic(
669        c: *mut arb_struct,
670        p: mp_limb_t,
671        q: mp_limb_t,
672        prec: mp_limb_signed_t,
673    );
674    pub fn _arb_sin_cos_pi_fmpq_algebraic(
675        s: *mut arb_struct,
676        c: *mut arb_struct,
677        p: mp_limb_t,
678        q: mp_limb_t,
679        prec: mp_limb_signed_t,
680    );
681    pub fn arb_sin_cos_pi_fmpq(
682        s: *mut arb_struct,
683        c: *mut arb_struct,
684        x: *const fmpq,
685        prec: mp_limb_signed_t,
686    );
687    pub fn arb_sin_pi_fmpq(s: *mut arb_struct, x: *const fmpq, prec: mp_limb_signed_t);
688    pub fn arb_cos_pi_fmpq(c: *mut arb_struct, x: *const fmpq, prec: mp_limb_signed_t);
689    pub fn arb_sinc(z: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
690    pub fn arb_sinc_pi(z: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
691    pub fn arb_sinh(z: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
692    pub fn arb_cosh(z: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
693    pub fn arb_sinh_cosh(
694        s: *mut arb_struct,
695        c: *mut arb_struct,
696        x: *const arb_struct,
697        prec: mp_limb_signed_t,
698    );
699    pub fn arb_tanh(y: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
700    pub fn arb_coth(y: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
701    pub fn arb_atan_arf(z: *mut arb_struct, x: *const arf_struct, prec: mp_limb_signed_t);
702    pub fn arb_atan(z: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
703    pub fn arb_atan2(
704        z: *mut arb_struct,
705        b: *const arb_struct,
706        a: *const arb_struct,
707        prec: mp_limb_signed_t,
708    );
709    pub fn arb_asin(z: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
710    pub fn arb_acos(z: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
711    pub fn arb_atanh(z: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
712    pub fn arb_asinh(z: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
713    pub fn arb_acosh(z: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
714    pub fn arb_sec(res: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
715    pub fn arb_csc(res: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
716    pub fn arb_csc_pi(res: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
717    pub fn arb_sech(res: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
718    pub fn arb_csch(res: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
719    pub fn arb_fac_ui(z: *mut arb_struct, n: mp_limb_t, prec: mp_limb_signed_t);
720    pub fn arb_doublefac_ui(z: *mut arb_struct, n: mp_limb_t, prec: mp_limb_signed_t);
721    pub fn arb_bin_ui(
722        z: *mut arb_struct,
723        n: *const arb_struct,
724        k: mp_limb_t,
725        prec: mp_limb_signed_t,
726    );
727    pub fn arb_bin_uiui(z: *mut arb_struct, n: mp_limb_t, k: mp_limb_t, prec: mp_limb_signed_t);
728    pub fn arb_fib_fmpz(z: *mut arb_struct, n: *const fmpz, prec: mp_limb_signed_t);
729    pub fn arb_fib_ui(z: *mut arb_struct, n: mp_limb_t, prec: mp_limb_signed_t);
730    pub fn arb_const_pi(z: *mut arb_struct, prec: mp_limb_signed_t);
731    pub fn arb_const_sqrt_pi(z: *mut arb_struct, prec: mp_limb_signed_t);
732    pub fn arb_const_log_sqrt2pi(z: *mut arb_struct, prec: mp_limb_signed_t);
733    pub fn arb_const_log2(z: *mut arb_struct, prec: mp_limb_signed_t);
734    pub fn arb_const_log10(z: *mut arb_struct, prec: mp_limb_signed_t);
735    pub fn arb_const_euler(z: *mut arb_struct, prec: mp_limb_signed_t);
736    pub fn arb_const_catalan(z: *mut arb_struct, prec: mp_limb_signed_t);
737    pub fn arb_const_e(z: *mut arb_struct, prec: mp_limb_signed_t);
738    pub fn arb_const_khinchin(z: *mut arb_struct, prec: mp_limb_signed_t);
739    pub fn arb_const_glaisher(z: *mut arb_struct, prec: mp_limb_signed_t);
740    pub fn arb_agm(
741        z: *mut arb_struct,
742        x: *const arb_struct,
743        y: *const arb_struct,
744        prec: mp_limb_signed_t,
745    );
746    pub fn arb_lgamma(z: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
747    pub fn arb_rgamma(z: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
748    pub fn arb_gamma(z: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
749    pub fn arb_gamma_fmpq(z: *mut arb_struct, x: *const fmpq, prec: mp_limb_signed_t);
750    pub fn arb_gamma_fmpz(z: *mut arb_struct, x: *const fmpz, prec: mp_limb_signed_t);
751    pub fn arb_digamma(y: *mut arb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
752    pub fn arb_zeta(z: *mut arb_struct, s: *const arb_struct, prec: mp_limb_signed_t);
753    pub fn arb_hurwitz_zeta(
754        z: *mut arb_struct,
755        s: *const arb_struct,
756        a: *const arb_struct,
757        prec: mp_limb_signed_t,
758    );
759    pub fn arb_rising_ui_bs(
760        y: *mut arb_struct,
761        x: *const arb_struct,
762        n: mp_limb_t,
763        prec: mp_limb_signed_t,
764    );
765    pub fn arb_rising_ui_rs(
766        y: *mut arb_struct,
767        x: *const arb_struct,
768        n: mp_limb_t,
769        m: mp_limb_t,
770        prec: mp_limb_signed_t,
771    );
772    pub fn arb_rising_ui_rec(
773        y: *mut arb_struct,
774        x: *const arb_struct,
775        n: mp_limb_t,
776        prec: mp_limb_signed_t,
777    );
778    pub fn arb_rising_ui(
779        z: *mut arb_struct,
780        x: *const arb_struct,
781        n: mp_limb_t,
782        prec: mp_limb_signed_t,
783    );
784    pub fn arb_rising_fmpq_ui(
785        y: *mut arb_struct,
786        x: *const fmpq,
787        n: mp_limb_t,
788        prec: mp_limb_signed_t,
789    );
790    pub fn arb_rising(
791        z: *mut arb_struct,
792        x: *const arb_struct,
793        n: *const arb_struct,
794        prec: mp_limb_signed_t,
795    );
796    pub fn arb_rising2_ui_rs(
797        u: *mut arb_struct,
798        v: *mut arb_struct,
799        x: *const arb_struct,
800        n: mp_limb_t,
801        m: mp_limb_t,
802        prec: mp_limb_signed_t,
803    );
804    pub fn arb_rising2_ui_bs(
805        u: *mut arb_struct,
806        v: *mut arb_struct,
807        x: *const arb_struct,
808        n: mp_limb_t,
809        prec: mp_limb_signed_t,
810    );
811    pub fn arb_rising2_ui(
812        u: *mut arb_struct,
813        v: *mut arb_struct,
814        x: *const arb_struct,
815        n: mp_limb_t,
816        prec: mp_limb_signed_t,
817    );
818    pub fn arb_log_ui_from_prev(
819        s: *mut arb_struct,
820        k: mp_limb_t,
821        log_prev: *const arb_struct,
822        prev: mp_limb_t,
823        prec: mp_limb_signed_t,
824    );
825    pub fn arb_const_apery(s: *mut arb_struct, prec: mp_limb_signed_t);
826    pub fn arb_zeta_ui_asymp(x: *mut arb_struct, s: mp_limb_t, prec: mp_limb_signed_t);
827    pub fn arb_zeta_ui_borwein_bsplit(x: *mut arb_struct, s: mp_limb_t, prec: mp_limb_signed_t);
828    pub fn arb_zeta_ui_euler_product(z: *mut arb_struct, s: mp_limb_t, prec: mp_limb_signed_t);
829    pub fn arb_zeta_ui_bernoulli(x: *mut arb_struct, n: mp_limb_t, prec: mp_limb_signed_t);
830    pub fn arb_zeta_ui_vec_borwein(
831        z: arb_ptr,
832        start: mp_limb_t,
833        num: mp_limb_signed_t,
834        step: mp_limb_t,
835        prec: mp_limb_signed_t,
836    );
837    pub fn arb_zeta_ui(x: *mut arb_struct, n: mp_limb_t, prec: mp_limb_signed_t);
838    pub fn arb_zeta_ui_vec_even(
839        x: arb_ptr,
840        start: mp_limb_t,
841        num: mp_limb_signed_t,
842        prec: mp_limb_signed_t,
843    );
844    pub fn arb_zeta_ui_vec_odd(
845        x: arb_ptr,
846        start: mp_limb_t,
847        num: mp_limb_signed_t,
848        prec: mp_limb_signed_t,
849    );
850    pub fn arb_zeta_ui_vec(
851        x: arb_ptr,
852        start: mp_limb_t,
853        num: mp_limb_signed_t,
854        prec: mp_limb_signed_t,
855    );
856    pub fn arb_bernoulli_ui(b: *mut arb_struct, n: mp_limb_t, prec: mp_limb_signed_t);
857    pub fn arb_bernoulli_ui_zeta(b: *mut arb_struct, n: mp_limb_t, prec: mp_limb_signed_t);
858    pub fn arb_bernoulli_fmpz(b: *mut arb_struct, n: *const fmpz, prec: mp_limb_signed_t);
859    pub fn arb_bernoulli_poly_ui(
860        res: *mut arb_struct,
861        n: mp_limb_t,
862        x: *const arb_struct,
863        prec: mp_limb_signed_t,
864    );
865    pub fn arb_polylog(
866        w: *mut arb_struct,
867        s: *const arb_struct,
868        z: *const arb_struct,
869        prec: mp_limb_signed_t,
870    );
871    pub fn arb_polylog_si(
872        w: *mut arb_struct,
873        s: mp_limb_signed_t,
874        z: *const arb_struct,
875        prec: mp_limb_signed_t,
876    );
877    pub fn arb_chebyshev_t_ui(
878        a: *mut arb_struct,
879        n: mp_limb_t,
880        x: *const arb_struct,
881        prec: mp_limb_signed_t,
882    );
883    pub fn arb_chebyshev_t2_ui(
884        a: *mut arb_struct,
885        b: *mut arb_struct,
886        n: mp_limb_t,
887        x: *const arb_struct,
888        prec: mp_limb_signed_t,
889    );
890    pub fn arb_chebyshev_u_ui(
891        a: *mut arb_struct,
892        n: mp_limb_t,
893        x: *const arb_struct,
894        prec: mp_limb_signed_t,
895    );
896    pub fn arb_chebyshev_u2_ui(
897        a: *mut arb_struct,
898        b: *mut arb_struct,
899        n: mp_limb_t,
900        x: *const arb_struct,
901        prec: mp_limb_signed_t,
902    );
903    pub fn arb_power_sum_vec(
904        res: arb_ptr,
905        a: *const arb_struct,
906        b: *const arb_struct,
907        len: mp_limb_signed_t,
908        prec: mp_limb_signed_t,
909    );
910    pub fn arb_bell_sum_taylor(
911        res: *mut arb_struct,
912        n: *const fmpz,
913        a: *const fmpz,
914        b: *const fmpz,
915        mmag: *const fmpz,
916        prec: mp_limb_signed_t,
917    );
918    pub fn arb_bell_sum_bsplit(
919        res: *mut arb_struct,
920        n: *const fmpz,
921        a: *const fmpz,
922        b: *const fmpz,
923        mmag: *const fmpz,
924        prec: mp_limb_signed_t,
925    );
926    pub fn arb_bell_fmpz(res: *mut arb_struct, n: *const fmpz, prec: mp_limb_signed_t);
927    pub fn arb_bell_ui(res: *mut arb_struct, n: mp_limb_t, prec: mp_limb_signed_t);
928    pub fn arb_euler_number_fmpz(res: *mut arb_struct, n: *const fmpz, prec: mp_limb_signed_t);
929    pub fn arb_euler_number_ui(res: *mut arb_struct, n: mp_limb_t, prec: mp_limb_signed_t);
930    pub fn arb_partitions_fmpz(res: *mut arb_struct, n: *const fmpz, prec: mp_limb_signed_t);
931    pub fn arb_partitions_ui(res: *mut arb_struct, n: mp_limb_t, prec: mp_limb_signed_t);
932    pub fn arb_lambertw(
933        res: *mut arb_struct,
934        x: *const arb_struct,
935        flags: c_int,
936        prec: mp_limb_signed_t,
937    );
938    pub fn arb_sqr(res: *mut arb_struct, val: *const arb_struct, prec: mp_limb_signed_t);
939    pub fn _arb_vec_entry_ptr(vec: arb_ptr, i: mp_limb_signed_t) -> arb_ptr;
940    pub fn _arb_vec_printn(
941        vec: arb_srcptr,
942        len: mp_limb_signed_t,
943        ndigits: mp_limb_signed_t,
944        flags: mp_limb_t,
945    );
946    pub fn _arb_vec_zero(A: arb_ptr, n: mp_limb_signed_t);
947    pub fn _arb_vec_is_zero(vec: arb_srcptr, len: mp_limb_signed_t) -> c_int;
948    pub fn _arb_vec_is_finite(x: arb_srcptr, len: mp_limb_signed_t) -> c_int;
949    pub fn _arb_vec_set(res: arb_ptr, vec: arb_srcptr, len: mp_limb_signed_t);
950    pub fn _arb_vec_set_round(
951        res: arb_ptr,
952        vec: arb_srcptr,
953        len: mp_limb_signed_t,
954        prec: mp_limb_signed_t,
955    );
956    pub fn _arb_vec_swap(res: arb_ptr, vec: arb_ptr, len: mp_limb_signed_t);
957    pub fn _arb_vec_neg(B: arb_ptr, A: arb_srcptr, n: mp_limb_signed_t);
958    pub fn _arb_vec_sub(
959        C: arb_ptr,
960        A: arb_srcptr,
961        B: arb_srcptr,
962        n: mp_limb_signed_t,
963        prec: mp_limb_signed_t,
964    );
965    pub fn _arb_vec_add(
966        C: arb_ptr,
967        A: arb_srcptr,
968        B: arb_srcptr,
969        n: mp_limb_signed_t,
970        prec: mp_limb_signed_t,
971    );
972    pub fn _arb_vec_scalar_mul(
973        res: arb_ptr,
974        vec: arb_srcptr,
975        len: mp_limb_signed_t,
976        c: *const arb_struct,
977        prec: mp_limb_signed_t,
978    );
979    pub fn _arb_vec_scalar_div(
980        res: arb_ptr,
981        vec: arb_srcptr,
982        len: mp_limb_signed_t,
983        c: *const arb_struct,
984        prec: mp_limb_signed_t,
985    );
986    pub fn _arb_vec_scalar_mul_fmpz(
987        res: arb_ptr,
988        vec: arb_srcptr,
989        len: mp_limb_signed_t,
990        c: *const fmpz,
991        prec: mp_limb_signed_t,
992    );
993    pub fn _arb_vec_scalar_mul_2exp_si(
994        res: arb_ptr,
995        src: arb_srcptr,
996        len: mp_limb_signed_t,
997        c: mp_limb_signed_t,
998    );
999    pub fn _arb_vec_scalar_addmul(
1000        res: arb_ptr,
1001        vec: arb_srcptr,
1002        len: mp_limb_signed_t,
1003        c: *const arb_struct,
1004        prec: mp_limb_signed_t,
1005    );
1006    pub fn _arb_vec_get_mag(bound: *mut mag_struct, vec: arb_srcptr, len: mp_limb_signed_t);
1007    pub fn _arb_vec_bits(x: arb_srcptr, len: mp_limb_signed_t) -> mp_limb_signed_t;
1008    pub fn _arb_vec_set_powers(
1009        xs: arb_ptr,
1010        x: *const arb_struct,
1011        len: mp_limb_signed_t,
1012        prec: mp_limb_signed_t,
1013    );
1014    pub fn _arb_vec_add_error_arf_vec(res: arb_ptr, err: arf_srcptr, len: mp_limb_signed_t);
1015    pub fn _arb_vec_add_error_mag_vec(res: arb_ptr, err: mag_srcptr, len: mp_limb_signed_t);
1016    pub fn _arb_vec_indeterminate(vec: arb_ptr, len: mp_limb_signed_t);
1017    pub fn _arb_vec_trim(res: arb_ptr, vec: arb_srcptr, len: mp_limb_signed_t);
1018    pub fn _arb_vec_get_unique_fmpz_vec(
1019        res: *mut fmpz,
1020        vec: arb_srcptr,
1021        len: mp_limb_signed_t,
1022    ) -> c_int;
1023    pub static mut arb_atan_tab1: [[mp_limb_t; 8usize]; 256usize];
1024    pub static mut arb_atan_tab21: [[mp_limb_t; 72usize]; 32usize];
1025    pub static mut arb_atan_tab22: [[mp_limb_t; 72usize]; 32usize];
1026    pub static arb_atan_pi2_minus_one: [mp_limb_t; 72usize];
1027    pub fn _arb_atan_taylor_naive(
1028        y: mp_ptr,
1029        error: *mut mp_limb_t,
1030        x: mp_srcptr,
1031        xn: mp_size_t,
1032        N: mp_limb_t,
1033        alternating: c_int,
1034    );
1035    pub fn _arb_atan_taylor_rs(
1036        y: mp_ptr,
1037        error: *mut mp_limb_t,
1038        x: mp_srcptr,
1039        xn: mp_size_t,
1040        N: mp_limb_t,
1041        alternating: c_int,
1042    );
1043    pub static mut arb_log_tab11: [[mp_limb_t; 8usize]; 128usize];
1044    pub static mut arb_log_tab12: [[mp_limb_t; 8usize]; 128usize];
1045    pub static mut arb_log_tab21: [[mp_limb_t; 72usize]; 32usize];
1046    pub static mut arb_log_tab22: [[mp_limb_t; 72usize]; 32usize];
1047    pub static arb_log_log2_tab: [mp_limb_t; 72usize];
1048    pub static mut arb_exp_tab1: [[mp_limb_t; 8usize]; 178usize];
1049    pub static mut arb_exp_tab21: [[mp_limb_t; 72usize]; 23usize];
1050    pub static mut arb_exp_tab22: [[mp_limb_t; 72usize]; 32usize];
1051    pub fn _arb_exp_taylor_naive(
1052        y: mp_ptr,
1053        error: *mut mp_limb_t,
1054        x: mp_srcptr,
1055        xn: mp_size_t,
1056        N: mp_limb_t,
1057    );
1058    pub fn _arb_exp_taylor_rs(
1059        y: mp_ptr,
1060        error: *mut mp_limb_t,
1061        x: mp_srcptr,
1062        xn: mp_size_t,
1063        N: mp_limb_t,
1064    );
1065    pub fn arb_exp_arf_bb(
1066        z: *mut arb_struct,
1067        x: *const arf_struct,
1068        prec: mp_limb_signed_t,
1069        minus_one: c_int,
1070    );
1071    pub fn arb_exp_arf_rs_generic(
1072        res: *mut arb_struct,
1073        x: *const arf_struct,
1074        prec: mp_limb_signed_t,
1075        minus_one: c_int,
1076    );
1077    pub fn _arb_get_mpn_fixed_mod_log2(
1078        w: mp_ptr,
1079        q: *mut fmpz,
1080        error: *mut mp_limb_t,
1081        x: *const arf_struct,
1082        wn: mp_size_t,
1083    ) -> c_int;
1084    pub fn _arb_exp_taylor_bound(mag: mp_limb_signed_t, prec: mp_limb_signed_t)
1085        -> mp_limb_signed_t;
1086    pub fn _arb_exp_sum_bs_powtab(
1087        T: *mut fmpz,
1088        Q: *mut fmpz,
1089        Qexp: *mut mp_limb_t,
1090        x: *const fmpz,
1091        r: mp_limb_t,
1092        N: mp_limb_signed_t,
1093    );
1094    pub fn _arb_exp_sum_bs_simple(
1095        T: *mut fmpz,
1096        Q: *mut fmpz,
1097        Qexp: *mut mp_limb_t,
1098        x: *const fmpz,
1099        r: mp_limb_t,
1100        N: mp_limb_signed_t,
1101    );
1102    pub static mut arb_sin_cos_tab1: [[mp_limb_t; 8usize]; 406usize];
1103    pub static mut arb_sin_cos_tab21: [[mp_limb_t; 72usize]; 52usize];
1104    pub static mut arb_sin_cos_tab22: [[mp_limb_t; 72usize]; 64usize];
1105    pub static arb_pi4_tab: [mp_limb_t; 72usize];
1106    pub fn _arb_sin_cos_taylor_naive(
1107        ysin: mp_ptr,
1108        ycos: mp_ptr,
1109        error: *mut mp_limb_t,
1110        x: mp_srcptr,
1111        xn: mp_size_t,
1112        N: mp_limb_t,
1113    );
1114    pub fn _arb_sin_cos_taylor_rs(
1115        ysin: mp_ptr,
1116        ycos: mp_ptr,
1117        error: *mut mp_limb_t,
1118        x: mp_srcptr,
1119        xn: mp_size_t,
1120        N: mp_limb_t,
1121        sinonly: c_int,
1122        alternating: c_int,
1123    );
1124    pub fn _arb_get_mpn_fixed_mod_pi4(
1125        w: mp_ptr,
1126        q: *mut fmpz,
1127        octant: *mut c_int,
1128        error: *mut mp_limb_t,
1129        x: *const arf_struct,
1130        wn: mp_size_t,
1131    ) -> c_int;
1132    pub fn arb_sin_cos_arf_bb(
1133        zsin: *mut arb_struct,
1134        zcos: *mut arb_struct,
1135        x: *const arf_struct,
1136        prec: mp_limb_signed_t,
1137    );
1138    pub fn arb_sin_cos_arf_rs_generic(
1139        res_sin: *mut arb_struct,
1140        res_cos: *mut arb_struct,
1141        x: *const arf_struct,
1142        prec: mp_limb_signed_t,
1143    );
1144    pub fn arb_sin_cos_arf_generic(
1145        res_sin: *mut arb_struct,
1146        res_cos: *mut arb_struct,
1147        x: *const arf_struct,
1148        prec: mp_limb_signed_t,
1149    );
1150    pub fn _arb_sin_cos_wide(
1151        s: *mut arb_struct,
1152        c: *mut arb_struct,
1153        x: *const arf_struct,
1154        r: *const mag_struct,
1155        prec: mp_limb_signed_t,
1156    );
1157    pub fn arb_sin_cos_wide(
1158        s: *mut arb_struct,
1159        c: *mut arb_struct,
1160        x: *const arb_struct,
1161        prec: mp_limb_signed_t,
1162    );
1163    pub fn _arb_sin_cos_generic(
1164        s: *mut arb_struct,
1165        c: *mut arb_struct,
1166        x: *const arf_struct,
1167        xrad: *const mag_struct,
1168        prec: mp_limb_signed_t,
1169    );
1170    pub fn arb_sin_cos_generic(
1171        s: *mut arb_struct,
1172        c: *mut arb_struct,
1173        x: *const arb_struct,
1174        prec: mp_limb_signed_t,
1175    );
1176    pub fn _arb_mpn_leading_zeros(d: mp_srcptr, n: mp_size_t) -> mp_limb_t;
1177    pub fn _arb_atan_sum_bs_simple(
1178        T: *mut fmpz,
1179        Q: *mut fmpz,
1180        Qexp: *mut mp_limb_t,
1181        x: *const fmpz,
1182        r: mp_limb_t,
1183        N: mp_limb_signed_t,
1184    );
1185    pub fn _arb_atan_sum_bs_powtab(
1186        T: *mut fmpz,
1187        Q: *mut fmpz,
1188        Qexp: *mut mp_limb_t,
1189        x: *const fmpz,
1190        r: mp_limb_t,
1191        N: mp_limb_signed_t,
1192    );
1193    pub fn arb_atan_arf_bb(z: *mut arb_struct, x: *const arf_struct, prec: mp_limb_signed_t);
1194    pub fn arb_allocated_bytes(x: *const arb_struct) -> mp_limb_signed_t;
1195    pub fn _arb_vec_allocated_bytes(vec: arb_srcptr, len: mp_limb_signed_t) -> mp_limb_signed_t;
1196    pub fn _arb_vec_estimate_allocated_bytes(len: mp_limb_signed_t, prec: mp_limb_signed_t) -> f64;
1197    pub fn arb_load_str(res: *mut arb_struct, data: *const c_char) -> c_int;
1198    pub fn arb_dump_str(x: *const arb_struct) -> *mut c_char;
1199    pub fn arb_load_file(res: *mut arb_struct, stream: *const FILE) -> c_int;
1200    pub fn arb_dump_file(stream: *mut FILE, x: *const arb_struct) -> c_int;
1201}