arb_sys/
acb.rs

1#![allow(non_camel_case_types)]
2
3//! *See the [Arb documentation](https://arblib.org/).
4
5use crate::arb::{arb_ptr, arb_struct};
6use crate::arf::{arf_srcptr, arf_struct};
7use crate::mag::{mag_srcptr, mag_struct};
8use flint_sys::deps::*;
9use flint_sys::flint::*;
10use flint_sys::fmpq::fmpq;
11use flint_sys::fmpz::fmpz;
12use libc::{c_int, FILE};
13
14#[repr(C)]
15#[derive(Copy, Clone, Debug)]
16pub struct acb_struct {
17    pub real: arb_struct,
18    pub imag: arb_struct,
19}
20
21pub type acb_t = [acb_struct; 1usize];
22pub type acb_ptr = *mut acb_struct;
23pub type acb_srcptr = *const acb_struct;
24
25extern "C" {
26    pub fn acb_init(x: *mut acb_struct);
27    pub fn acb_clear(x: *mut acb_struct);
28    pub fn _acb_vec_init(n: mp_limb_signed_t) -> acb_ptr;
29    pub fn _acb_vec_clear(v: acb_ptr, n: mp_limb_signed_t);
30    pub fn acb_real_ptr(z: *mut acb_struct) -> arb_ptr;
31    pub fn acb_imag_ptr(z: *mut acb_struct) -> arb_ptr;
32    pub fn acb_get_real(re: *mut arb_struct, z: *const acb_struct);
33    pub fn acb_get_imag(im: *mut arb_struct, z: *const acb_struct);
34    pub fn acb_get_mid(res: *mut acb_struct, x: *const acb_struct);
35    pub fn acb_is_zero(z: *const acb_struct) -> c_int;
36    pub fn acb_is_one(z: *const acb_struct) -> c_int;
37    pub fn acb_is_exact(z: *const acb_struct) -> c_int;
38    pub fn acb_is_int(z: *const acb_struct) -> c_int;
39    pub fn acb_is_int_2exp_si(z: *const acb_struct, e: mp_limb_signed_t) -> c_int;
40    pub fn acb_zero(z: *mut acb_struct);
41    pub fn acb_one(z: *mut acb_struct);
42    pub fn acb_onei(z: *mut acb_struct);
43    pub fn acb_set(z: *mut acb_struct, x: *const acb_struct);
44    pub fn acb_set_round(z: *mut acb_struct, x: *const acb_struct, prec: mp_limb_signed_t);
45    pub fn acb_neg_round(z: *mut acb_struct, x: *const acb_struct, prec: mp_limb_signed_t);
46    pub fn acb_swap(z: *mut acb_struct, x: *mut acb_struct);
47    pub fn acb_equal(x: *const acb_struct, y: *const acb_struct) -> c_int;
48    pub fn acb_equal_si(x: *const acb_struct, y: mp_limb_signed_t) -> c_int;
49    pub fn acb_eq(x: *const acb_struct, y: *const acb_struct) -> c_int;
50    pub fn acb_ne(x: *const acb_struct, y: *const acb_struct) -> c_int;
51    pub fn acb_overlaps(x: *const acb_struct, y: *const acb_struct) -> c_int;
52    pub fn acb_contains_zero(x: *const acb_struct) -> c_int;
53    pub fn acb_contains_fmpq(x: *const acb_struct, y: *const fmpq) -> c_int;
54    pub fn acb_contains_fmpz(x: *const acb_struct, y: *const fmpz) -> c_int;
55    pub fn acb_contains(x: *const acb_struct, y: *const acb_struct) -> c_int;
56    pub fn acb_contains_interior(x: *const acb_struct, y: *const acb_struct) -> c_int;
57    pub fn acb_set_ui(z: *mut acb_struct, c: mp_limb_t);
58    pub fn acb_set_d(z: *mut acb_struct, c: f64);
59    pub fn acb_set_si(z: *mut acb_struct, c: mp_limb_signed_t);
60    pub fn acb_set_si_si(z: *mut acb_struct, x: mp_limb_signed_t, y: mp_limb_signed_t);
61    pub fn acb_set_d_d(z: *mut acb_struct, x: f64, y: f64);
62    pub fn acb_set_fmpz(z: *mut acb_struct, c: *const fmpz);
63    pub fn acb_set_fmpz_fmpz(z: *mut acb_struct, x: *const fmpz, y: *const fmpz);
64    pub fn acb_set_round_fmpz(z: *mut acb_struct, y: *const fmpz, prec: mp_limb_signed_t);
65    pub fn acb_contains_int(x: *const acb_struct) -> c_int;
66    pub fn acb_get_unique_fmpz(z: *mut fmpz, x: *const acb_struct) -> c_int;
67    pub fn acb_set_fmpq(z: *mut acb_struct, c: *const fmpq, prec: mp_limb_signed_t);
68    pub fn acb_set_arb(z: *mut acb_struct, c: *const arb_struct);
69    pub fn acb_set_arb_arb(z: *mut acb_struct, x: *const arb_struct, y: *const arb_struct);
70    pub fn acb_set_round_arb(z: *mut acb_struct, x: *const arb_struct, prec: mp_limb_signed_t);
71    pub fn acb_trim(z: *mut acb_struct, x: *const acb_struct);
72    pub fn acb_add_error_arf(x: *mut acb_struct, err: *const arf_struct);
73    pub fn acb_add_error_mag(x: *mut acb_struct, err: *const mag_struct);
74    pub fn acb_get_mag(z: *mut mag_struct, x: *const acb_struct);
75    pub fn acb_get_mag_lower(z: *mut mag_struct, x: *const acb_struct);
76    pub fn acb_get_abs_ubound_arf(u: *mut arf_struct, z: *const acb_struct, prec: mp_limb_signed_t);
77    pub fn acb_get_abs_lbound_arf(u: *mut arf_struct, z: *const acb_struct, prec: mp_limb_signed_t);
78    pub fn acb_get_rad_ubound_arf(u: *mut arf_struct, z: *const acb_struct, prec: mp_limb_signed_t);
79    pub fn acb_union(
80        res: *mut acb_struct,
81        x: *mut acb_struct,
82        y: *mut acb_struct,
83        prec: mp_limb_signed_t,
84    );
85    pub fn acb_arg(r: *mut arb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
86    pub fn acb_sgn(res: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
87    pub fn acb_csgn(res: *mut arb_struct, z: *mut acb_struct);
88    pub fn acb_real_abs(
89        res: *mut acb_struct,
90        z: *mut acb_struct,
91        analytic: c_int,
92        prec: mp_limb_signed_t,
93    );
94    pub fn acb_real_sgn(
95        res: *mut acb_struct,
96        z: *mut acb_struct,
97        analytic: c_int,
98        prec: mp_limb_signed_t,
99    );
100    pub fn acb_real_heaviside(
101        res: *mut acb_struct,
102        z: *mut acb_struct,
103        analytic: c_int,
104        prec: mp_limb_signed_t,
105    );
106    pub fn acb_real_floor(
107        res: *mut acb_struct,
108        z: *mut acb_struct,
109        analytic: c_int,
110        prec: mp_limb_signed_t,
111    );
112    pub fn acb_real_ceil(
113        res: *mut acb_struct,
114        z: *mut acb_struct,
115        analytic: c_int,
116        prec: mp_limb_signed_t,
117    );
118    pub fn acb_real_max(
119        res: *mut acb_struct,
120        x: *mut acb_struct,
121        y: *mut acb_struct,
122        analytic: c_int,
123        prec: mp_limb_signed_t,
124    );
125    pub fn acb_real_min(
126        res: *mut acb_struct,
127        x: *mut acb_struct,
128        y: *mut acb_struct,
129        analytic: c_int,
130        prec: mp_limb_signed_t,
131    );
132    pub fn acb_real_sqrtpos(
133        res: *mut acb_struct,
134        z: *mut acb_struct,
135        analytic: c_int,
136        prec: mp_limb_signed_t,
137    );
138    pub fn acb_sqrt_analytic(
139        res: *mut acb_struct,
140        z: *mut acb_struct,
141        analytic: c_int,
142        prec: mp_limb_signed_t,
143    );
144    pub fn acb_rsqrt_analytic(
145        res: *mut acb_struct,
146        z: *mut acb_struct,
147        analytic: c_int,
148        prec: mp_limb_signed_t,
149    );
150    pub fn acb_log_analytic(
151        res: *mut acb_struct,
152        z: *mut acb_struct,
153        analytic: c_int,
154        prec: mp_limb_signed_t,
155    );
156    pub fn acb_pow_analytic(
157        res: *mut acb_struct,
158        z: *mut acb_struct,
159        w: *mut acb_struct,
160        analytic: c_int,
161        prec: mp_limb_signed_t,
162    );
163    pub fn acb_add(
164        z: *mut acb_struct,
165        x: *mut acb_struct,
166        y: *mut acb_struct,
167        prec: mp_limb_signed_t,
168    );
169    pub fn acb_sub(
170        z: *mut acb_struct,
171        x: *mut acb_struct,
172        y: *mut acb_struct,
173        prec: mp_limb_signed_t,
174    );
175    pub fn acb_add_si(z: *mut acb_struct, x: *mut acb_struct, c: mp_limb_t, prec: mp_limb_signed_t);
176    pub fn acb_add_ui(z: *mut acb_struct, x: *mut acb_struct, c: mp_limb_t, prec: mp_limb_signed_t);
177    pub fn acb_sub_si(z: *mut acb_struct, x: *mut acb_struct, c: mp_limb_t, prec: mp_limb_signed_t);
178    pub fn acb_sub_ui(z: *mut acb_struct, x: *mut acb_struct, c: mp_limb_t, prec: mp_limb_signed_t);
179    pub fn acb_add_fmpz(
180        z: *mut acb_struct,
181        x: *mut acb_struct,
182        y: *mut fmpz,
183        prec: mp_limb_signed_t,
184    );
185    pub fn acb_add_arb(
186        z: *mut acb_struct,
187        x: *mut acb_struct,
188        y: *mut arb_struct,
189        prec: mp_limb_signed_t,
190    );
191    pub fn acb_sub_fmpz(
192        z: *mut acb_struct,
193        x: *mut acb_struct,
194        y: *mut fmpz,
195        prec: mp_limb_signed_t,
196    );
197    pub fn acb_sub_arb(
198        z: *mut acb_struct,
199        x: *mut acb_struct,
200        y: *mut arb_struct,
201        prec: mp_limb_signed_t,
202    );
203    pub fn acb_neg(z: *mut acb_struct, x: *mut acb_struct);
204    pub fn acb_conj(z: *mut acb_struct, x: *mut acb_struct);
205    pub fn acb_abs(u: *mut arb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
206    pub fn acb_mul_ui(z: *mut acb_struct, x: *mut acb_struct, y: mp_limb_t, prec: mp_limb_signed_t);
207    pub fn acb_mul_si(
208        z: *mut acb_struct,
209        x: *mut acb_struct,
210        y: mp_limb_signed_t,
211        prec: mp_limb_signed_t,
212    );
213    pub fn acb_mul_fmpz(
214        z: *mut acb_struct,
215        x: *mut acb_struct,
216        y: *mut fmpz,
217        prec: mp_limb_signed_t,
218    );
219    pub fn acb_mul_arb(
220        z: *mut acb_struct,
221        x: *mut acb_struct,
222        y: *mut arb_struct,
223        prec: mp_limb_signed_t,
224    );
225    pub fn acb_mul_onei(z: *mut acb_struct, x: *mut acb_struct);
226    pub fn acb_div_onei(z: *mut acb_struct, x: *mut acb_struct);
227    pub fn acb_mul(
228        z: *mut acb_struct,
229        x: *mut acb_struct,
230        y: *mut acb_struct,
231        prec: mp_limb_signed_t,
232    );
233    pub fn acb_mul_naive(
234        z: *mut acb_struct,
235        x: *mut acb_struct,
236        y: *mut acb_struct,
237        prec: mp_limb_signed_t,
238    );
239    pub fn acb_mul_2exp_si(z: *mut acb_struct, x: *mut acb_struct, e: mp_limb_signed_t);
240    pub fn acb_mul_2exp_fmpz(z: *mut acb_struct, x: *mut acb_struct, c: *mut fmpz);
241    pub fn acb_addmul(
242        z: *mut acb_struct,
243        x: *mut acb_struct,
244        y: *mut acb_struct,
245        prec: mp_limb_signed_t,
246    );
247    pub fn acb_submul(
248        z: *mut acb_struct,
249        x: *mut acb_struct,
250        y: *mut acb_struct,
251        prec: mp_limb_signed_t,
252    );
253    pub fn acb_addmul_ui(
254        z: *mut acb_struct,
255        x: *mut acb_struct,
256        y: mp_limb_t,
257        prec: mp_limb_signed_t,
258    );
259    pub fn acb_addmul_si(
260        z: *mut acb_struct,
261        x: *mut acb_struct,
262        y: mp_limb_signed_t,
263        prec: mp_limb_signed_t,
264    );
265    pub fn acb_submul_ui(
266        z: *mut acb_struct,
267        x: *mut acb_struct,
268        y: mp_limb_t,
269        prec: mp_limb_signed_t,
270    );
271    pub fn acb_submul_si(
272        z: *mut acb_struct,
273        x: *mut acb_struct,
274        y: mp_limb_signed_t,
275        prec: mp_limb_signed_t,
276    );
277    pub fn acb_addmul_fmpz(
278        z: *mut acb_struct,
279        x: *mut acb_struct,
280        y: *mut fmpz,
281        prec: mp_limb_signed_t,
282    );
283    pub fn acb_submul_fmpz(
284        z: *mut acb_struct,
285        x: *mut acb_struct,
286        y: *mut fmpz,
287        prec: mp_limb_signed_t,
288    );
289    pub fn acb_addmul_arb(
290        z: *mut acb_struct,
291        x: *mut acb_struct,
292        y: *mut arb_struct,
293        prec: mp_limb_signed_t,
294    );
295    pub fn acb_submul_arb(
296        z: *mut acb_struct,
297        x: *mut acb_struct,
298        y: *mut arb_struct,
299        prec: mp_limb_signed_t,
300    );
301    pub fn acb_dot_simple(
302        res: *mut acb_struct,
303        initial: *mut acb_struct,
304        subtract: c_int,
305        x: acb_srcptr,
306        xstep: mp_limb_signed_t,
307        y: acb_srcptr,
308        ystep: mp_limb_signed_t,
309        len: mp_limb_signed_t,
310        prec: mp_limb_signed_t,
311    );
312    pub fn acb_dot_precise(
313        res: *mut acb_struct,
314        initial: *mut acb_struct,
315        subtract: c_int,
316        x: acb_srcptr,
317        xstep: mp_limb_signed_t,
318        y: acb_srcptr,
319        ystep: mp_limb_signed_t,
320        len: mp_limb_signed_t,
321        prec: mp_limb_signed_t,
322    );
323    pub fn acb_dot(
324        res: *mut acb_struct,
325        initial: *mut acb_struct,
326        subtract: c_int,
327        x: acb_srcptr,
328        xstep: mp_limb_signed_t,
329        y: acb_srcptr,
330        ystep: mp_limb_signed_t,
331        len: mp_limb_signed_t,
332        prec: mp_limb_signed_t,
333    );
334    pub fn acb_approx_dot(
335        res: *mut acb_struct,
336        initial: *mut acb_struct,
337        subtract: c_int,
338        x: acb_srcptr,
339        xstep: mp_limb_signed_t,
340        y: acb_srcptr,
341        ystep: mp_limb_signed_t,
342        len: mp_limb_signed_t,
343        prec: mp_limb_signed_t,
344    );
345    pub fn acb_dot_ui(
346        res: *mut acb_struct,
347        initial: *mut acb_struct,
348        subtract: c_int,
349        x: acb_srcptr,
350        xstep: mp_limb_signed_t,
351        y: *const mp_limb_t,
352        ystep: mp_limb_signed_t,
353        len: mp_limb_signed_t,
354        prec: mp_limb_signed_t,
355    );
356    pub fn acb_dot_si(
357        res: *mut acb_struct,
358        initial: *mut acb_struct,
359        subtract: c_int,
360        x: acb_srcptr,
361        xstep: mp_limb_signed_t,
362        y: *const mp_limb_signed_t,
363        ystep: mp_limb_signed_t,
364        len: mp_limb_signed_t,
365        prec: mp_limb_signed_t,
366    );
367    pub fn acb_dot_uiui(
368        res: *mut acb_struct,
369        initial: *mut acb_struct,
370        subtract: c_int,
371        x: acb_srcptr,
372        xstep: mp_limb_signed_t,
373        y: *const mp_limb_t,
374        ystep: mp_limb_signed_t,
375        len: mp_limb_signed_t,
376        prec: mp_limb_signed_t,
377    );
378    pub fn acb_dot_siui(
379        res: *mut acb_struct,
380        initial: *mut acb_struct,
381        subtract: c_int,
382        x: acb_srcptr,
383        xstep: mp_limb_signed_t,
384        y: *const mp_limb_t,
385        ystep: mp_limb_signed_t,
386        len: mp_limb_signed_t,
387        prec: mp_limb_signed_t,
388    );
389    pub fn acb_dot_fmpz(
390        res: *mut acb_struct,
391        initial: *mut acb_struct,
392        subtract: c_int,
393        x: acb_srcptr,
394        xstep: mp_limb_signed_t,
395        y: *const fmpz,
396        ystep: mp_limb_signed_t,
397        len: mp_limb_signed_t,
398        prec: mp_limb_signed_t,
399    );
400    pub fn acb_inv(z: *mut acb_struct, x: *mut acb_struct, prec: mp_limb_signed_t);
401    pub fn acb_div(
402        z: *mut acb_struct,
403        x: *mut acb_struct,
404        y: *mut acb_struct,
405        prec: mp_limb_signed_t,
406    );
407    pub fn acb_div_ui(z: *mut acb_struct, x: *mut acb_struct, c: mp_limb_t, prec: mp_limb_signed_t);
408    pub fn acb_div_si(
409        z: *mut acb_struct,
410        x: *mut acb_struct,
411        c: mp_limb_signed_t,
412        prec: mp_limb_signed_t,
413    );
414    pub fn acb_div_arb(
415        z: *mut acb_struct,
416        x: *mut acb_struct,
417        c: *mut arb_struct,
418        prec: mp_limb_signed_t,
419    );
420    pub fn acb_div_fmpz(
421        z: *mut acb_struct,
422        x: *mut acb_struct,
423        c: *mut fmpz,
424        prec: mp_limb_signed_t,
425    );
426    pub fn acb_cube(y: *mut acb_struct, x: *mut acb_struct, prec: mp_limb_signed_t);
427    pub fn acb_pow_fmpz(
428        y: *mut acb_struct,
429        b: *mut acb_struct,
430        e: *mut fmpz,
431        prec: mp_limb_signed_t,
432    );
433    pub fn acb_pow_ui(y: *mut acb_struct, b: *mut acb_struct, e: mp_limb_t, prec: mp_limb_signed_t);
434    pub fn acb_pow_si(
435        y: *mut acb_struct,
436        b: *mut acb_struct,
437        e: mp_limb_signed_t,
438        prec: mp_limb_signed_t,
439    );
440    pub fn acb_const_pi(x: *mut acb_struct, prec: mp_limb_signed_t);
441    pub fn acb_log(r: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
442    pub fn acb_log1p(r: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
443    pub fn acb_exp(r: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
444    pub fn acb_exp_pi_i(r: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
445    pub fn acb_exp_invexp(
446        r: *mut acb_struct,
447        s: *mut acb_struct,
448        z: *mut acb_struct,
449        prec: mp_limb_signed_t,
450    );
451    pub fn acb_expm1(r: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
452    pub fn acb_sin(r: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
453    pub fn acb_cos(r: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
454    pub fn acb_sin_cos(
455        s: *mut acb_struct,
456        c: *mut acb_struct,
457        z: *mut acb_struct,
458        prec: mp_limb_signed_t,
459    );
460    pub fn acb_tan(r: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
461    pub fn acb_cot(r: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
462    pub fn acb_asin(r: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
463    pub fn acb_acos(r: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
464    pub fn acb_atan(r: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
465    pub fn acb_asinh(r: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
466    pub fn acb_acosh(r: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
467    pub fn acb_atanh(r: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
468    pub fn acb_sinh(y: *mut acb_struct, x: *mut acb_struct, prec: mp_limb_signed_t);
469    pub fn acb_cosh(y: *mut acb_struct, x: *mut acb_struct, prec: mp_limb_signed_t);
470    pub fn acb_sinh_cosh(
471        y: *mut acb_struct,
472        z: *mut acb_struct,
473        x: *mut acb_struct,
474        prec: mp_limb_signed_t,
475    );
476    pub fn acb_tanh(y: *mut acb_struct, x: *mut acb_struct, prec: mp_limb_signed_t);
477    pub fn acb_coth(y: *mut acb_struct, x: *mut acb_struct, prec: mp_limb_signed_t);
478    pub fn acb_sech(r: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
479    pub fn acb_csch(r: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
480    pub fn acb_sec(y: *mut acb_struct, x: *mut acb_struct, prec: mp_limb_signed_t);
481    pub fn acb_csc(y: *mut acb_struct, x: *mut acb_struct, prec: mp_limb_signed_t);
482    pub fn acb_sin_pi(r: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
483    pub fn acb_cos_pi(r: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
484    pub fn acb_sin_cos_pi(
485        s: *mut acb_struct,
486        c: *mut acb_struct,
487        z: *mut acb_struct,
488        prec: mp_limb_signed_t,
489    );
490    pub fn acb_tan_pi(r: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
491    pub fn acb_cot_pi(r: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
492    pub fn acb_csc_pi(y: *mut acb_struct, x: *mut acb_struct, prec: mp_limb_signed_t);
493    pub fn acb_sinc(res: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
494    pub fn acb_sinc_pi(res: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
495    pub fn acb_pow_arb(
496        z: *mut acb_struct,
497        x: *mut acb_struct,
498        y: *mut arb_struct,
499        prec: mp_limb_signed_t,
500    );
501    pub fn acb_pow(
502        r: *mut acb_struct,
503        x: *mut acb_struct,
504        y: *mut acb_struct,
505        prec: mp_limb_signed_t,
506    );
507    pub fn acb_sqrt(y: *mut acb_struct, x: *mut acb_struct, prec: mp_limb_signed_t);
508    pub fn acb_rsqrt(y: *mut acb_struct, x: *mut acb_struct, prec: mp_limb_signed_t);
509    pub fn acb_root_ui(
510        y: *mut acb_struct,
511        x: *mut acb_struct,
512        k: mp_limb_t,
513        prec: mp_limb_signed_t,
514    );
515    pub fn acb_quadratic_roots_fmpz(
516        r1: *mut acb_struct,
517        r2: *mut acb_struct,
518        a: *mut fmpz,
519        b: *mut fmpz,
520        c: *mut fmpz,
521        prec: mp_limb_signed_t,
522    );
523    pub fn acb_chebyshev_t_ui(
524        a: *mut acb_struct,
525        n: mp_limb_t,
526        x: *mut acb_struct,
527        prec: mp_limb_signed_t,
528    );
529    pub fn acb_chebyshev_t2_ui(
530        a: *mut acb_struct,
531        b: *mut acb_struct,
532        n: mp_limb_t,
533        x: *mut acb_struct,
534        prec: mp_limb_signed_t,
535    );
536    pub fn acb_chebyshev_u_ui(
537        a: *mut acb_struct,
538        n: mp_limb_t,
539        x: *mut acb_struct,
540        prec: mp_limb_signed_t,
541    );
542    pub fn acb_chebyshev_u2_ui(
543        a: *mut acb_struct,
544        b: *mut acb_struct,
545        n: mp_limb_t,
546        x: *mut acb_struct,
547        prec: mp_limb_signed_t,
548    );
549    pub fn acb_rising_ui_bs(
550        y: *mut acb_struct,
551        x: *mut acb_struct,
552        n: mp_limb_t,
553        prec: mp_limb_signed_t,
554    );
555    pub fn acb_rising_ui_rs(
556        y: *mut acb_struct,
557        x: *mut acb_struct,
558        n: mp_limb_t,
559        m: mp_limb_t,
560        prec: mp_limb_signed_t,
561    );
562    pub fn acb_rising_ui_rec(
563        y: *mut acb_struct,
564        x: *mut acb_struct,
565        n: mp_limb_t,
566        prec: mp_limb_signed_t,
567    );
568    pub fn acb_rising_ui(
569        z: *mut acb_struct,
570        x: *mut acb_struct,
571        n: mp_limb_t,
572        prec: mp_limb_signed_t,
573    );
574    pub fn acb_rising(
575        z: *mut acb_struct,
576        x: *mut acb_struct,
577        n: *mut acb_struct,
578        prec: mp_limb_signed_t,
579    );
580    pub fn acb_rising2_ui_bs(
581        u: *mut acb_struct,
582        v: *mut acb_struct,
583        x: *mut acb_struct,
584        n: mp_limb_t,
585        prec: mp_limb_signed_t,
586    );
587    pub fn acb_rising2_ui_rs(
588        u: *mut acb_struct,
589        v: *mut acb_struct,
590        x: *mut acb_struct,
591        n: mp_limb_t,
592        m: mp_limb_t,
593        prec: mp_limb_signed_t,
594    );
595    pub fn acb_rising2_ui(
596        u: *mut acb_struct,
597        v: *mut acb_struct,
598        x: *mut acb_struct,
599        n: mp_limb_t,
600        prec: mp_limb_signed_t,
601    );
602    pub fn acb_rising_ui_get_mag(bound: *mut mag_struct, s: *mut acb_struct, n: mp_limb_t);
603    pub fn acb_gamma(y: *mut acb_struct, x: *mut acb_struct, prec: mp_limb_signed_t);
604    pub fn acb_rgamma(y: *mut acb_struct, x: *mut acb_struct, prec: mp_limb_signed_t);
605    pub fn acb_lgamma(y: *mut acb_struct, x: *mut acb_struct, prec: mp_limb_signed_t);
606    pub fn acb_log_sin_pi(res: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
607    pub fn acb_digamma(y: *mut acb_struct, x: *mut acb_struct, prec: mp_limb_signed_t);
608    pub fn acb_zeta(z: *mut acb_struct, s: *mut acb_struct, prec: mp_limb_signed_t);
609    pub fn acb_hurwitz_zeta(
610        z: *mut acb_struct,
611        s: *mut acb_struct,
612        a: *mut acb_struct,
613        prec: mp_limb_signed_t,
614    );
615    pub fn acb_polygamma(
616        res: *mut acb_struct,
617        s: *mut acb_struct,
618        z: *mut acb_struct,
619        prec: mp_limb_signed_t,
620    );
621    pub fn acb_bernoulli_poly_ui(
622        res: *mut acb_struct,
623        n: mp_limb_t,
624        x: *mut acb_struct,
625        prec: mp_limb_signed_t,
626    );
627    pub fn acb_log_barnes_g(res: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
628    pub fn acb_barnes_g(res: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
629    pub fn acb_polylog(
630        w: *mut acb_struct,
631        s: *mut acb_struct,
632        z: *mut acb_struct,
633        prec: mp_limb_signed_t,
634    );
635    pub fn acb_polylog_si(
636        w: *mut acb_struct,
637        s: mp_limb_signed_t,
638        z: *mut acb_struct,
639        prec: mp_limb_signed_t,
640    );
641    pub fn acb_agm1(m: *mut acb_struct, z: *mut acb_struct, prec: mp_limb_signed_t);
642    pub fn acb_agm1_cpx(
643        m: acb_ptr,
644        z: *mut acb_struct,
645        len: mp_limb_signed_t,
646        prec: mp_limb_signed_t,
647    );
648    pub fn acb_agm(
649        res: *mut acb_struct,
650        a: *mut acb_struct,
651        b: *mut acb_struct,
652        prec: mp_limb_signed_t,
653    );
654    pub fn acb_lambertw_asymp(
655        res: *mut acb_struct,
656        z: *mut acb_struct,
657        k: *mut fmpz,
658        L: mp_limb_signed_t,
659        M: mp_limb_signed_t,
660        prec: mp_limb_signed_t,
661    );
662    pub fn acb_lambertw_check_branch(
663        w: *mut acb_struct,
664        k: *mut fmpz,
665        prec: mp_limb_signed_t,
666    ) -> c_int;
667    pub fn acb_lambertw_bound_deriv(
668        res: *mut mag_struct,
669        z: *mut acb_struct,
670        ez1: *mut acb_struct,
671        k: *mut fmpz,
672    );
673    pub fn acb_lambertw(
674        res: *mut acb_struct,
675        z: *mut acb_struct,
676        k: *mut fmpz,
677        flags: c_int,
678        prec: mp_limb_signed_t,
679    );
680    pub fn acb_sqr(res: *mut acb_struct, val: *mut acb_struct, prec: mp_limb_signed_t);
681    pub fn acb_is_finite(x: *mut acb_struct) -> c_int;
682    pub fn acb_indeterminate(x: *mut acb_struct);
683    pub fn _acb_vec_entry_ptr(vec: acb_ptr, i: mp_limb_signed_t) -> acb_ptr;
684    pub fn _acb_vec_zero(A: acb_ptr, n: mp_limb_signed_t);
685    pub fn _acb_vec_is_zero(vec: acb_srcptr, len: mp_limb_signed_t) -> c_int;
686    pub fn _acb_vec_set(res: acb_ptr, vec: acb_srcptr, len: mp_limb_signed_t);
687    pub fn _acb_vec_set_round(
688        res: acb_ptr,
689        vec: acb_srcptr,
690        len: mp_limb_signed_t,
691        prec: mp_limb_signed_t,
692    );
693    pub fn _acb_vec_neg(res: acb_ptr, vec: acb_srcptr, len: mp_limb_signed_t);
694    pub fn _acb_vec_add(
695        res: acb_ptr,
696        vec1: acb_srcptr,
697        vec2: acb_srcptr,
698        len: mp_limb_signed_t,
699        prec: mp_limb_signed_t,
700    );
701    pub fn _acb_vec_sub(
702        res: acb_ptr,
703        vec1: acb_srcptr,
704        vec2: acb_srcptr,
705        len: mp_limb_signed_t,
706        prec: mp_limb_signed_t,
707    );
708    pub fn _acb_vec_scalar_submul(
709        res: acb_ptr,
710        vec: acb_srcptr,
711        len: mp_limb_signed_t,
712        c: *mut acb_struct,
713        prec: mp_limb_signed_t,
714    );
715    pub fn _acb_vec_scalar_addmul(
716        res: acb_ptr,
717        vec: acb_srcptr,
718        len: mp_limb_signed_t,
719        c: *mut acb_struct,
720        prec: mp_limb_signed_t,
721    );
722    pub fn _acb_vec_scalar_mul(
723        res: acb_ptr,
724        vec: acb_srcptr,
725        len: mp_limb_signed_t,
726        c: *mut acb_struct,
727        prec: mp_limb_signed_t,
728    );
729    pub fn _acb_vec_scalar_mul_ui(
730        res: acb_ptr,
731        vec: acb_srcptr,
732        len: mp_limb_signed_t,
733        c: mp_limb_t,
734        prec: mp_limb_signed_t,
735    );
736    pub fn _acb_vec_scalar_mul_2exp_si(
737        res: acb_ptr,
738        vec: acb_srcptr,
739        len: mp_limb_signed_t,
740        c: mp_limb_signed_t,
741    );
742    pub fn _acb_vec_scalar_mul_onei(res: acb_ptr, vec: acb_srcptr, len: mp_limb_signed_t);
743    pub fn _acb_vec_scalar_div_ui(
744        res: acb_ptr,
745        vec: acb_srcptr,
746        len: mp_limb_signed_t,
747        c: mp_limb_t,
748        prec: mp_limb_signed_t,
749    );
750    pub fn _acb_vec_scalar_div(
751        res: acb_ptr,
752        vec: acb_srcptr,
753        len: mp_limb_signed_t,
754        c: *mut acb_struct,
755        prec: mp_limb_signed_t,
756    );
757    pub fn _acb_vec_scalar_mul_arb(
758        res: acb_ptr,
759        vec: acb_srcptr,
760        len: mp_limb_signed_t,
761        c: *mut arb_struct,
762        prec: mp_limb_signed_t,
763    );
764    pub fn _acb_vec_scalar_div_arb(
765        res: acb_ptr,
766        vec: acb_srcptr,
767        len: mp_limb_signed_t,
768        c: *mut arb_struct,
769        prec: mp_limb_signed_t,
770    );
771    pub fn _acb_vec_scalar_mul_fmpz(
772        res: acb_ptr,
773        vec: acb_srcptr,
774        len: mp_limb_signed_t,
775        c: *mut fmpz,
776        prec: mp_limb_signed_t,
777    );
778    pub fn _acb_vec_scalar_div_fmpz(
779        res: acb_ptr,
780        vec: acb_srcptr,
781        len: mp_limb_signed_t,
782        c: *mut fmpz,
783        prec: mp_limb_signed_t,
784    );
785    pub fn acb_fprint(file: *mut FILE, x: *mut acb_struct);
786    pub fn acb_print(x: *mut acb_struct);
787    pub fn acb_fprintd(file: *mut FILE, z: *mut acb_struct, digits: mp_limb_signed_t);
788    pub fn acb_printd(z: *mut acb_struct, digits: mp_limb_signed_t);
789    pub fn acb_fprintn(
790        fp: *mut FILE,
791        z: *mut acb_struct,
792        digits: mp_limb_signed_t,
793        flags: mp_limb_t,
794    );
795    pub fn acb_printn(x: *mut acb_struct, digits: mp_limb_signed_t, flags: mp_limb_t);
796    pub fn acb_randtest(
797        z: *mut acb_struct,
798        state: *mut flint_rand_s,
799        prec: mp_limb_signed_t,
800        mag_bits: mp_limb_signed_t,
801    );
802    pub fn acb_randtest_special(
803        z: *mut acb_struct,
804        state: *mut flint_rand_s,
805        prec: mp_limb_signed_t,
806        mag_bits: mp_limb_signed_t,
807    );
808    pub fn acb_randtest_precise(
809        z: *mut acb_struct,
810        state: *mut flint_rand_s,
811        prec: mp_limb_signed_t,
812        mag_bits: mp_limb_signed_t,
813    );
814    pub fn acb_randtest_param(
815        z: *mut acb_struct,
816        state: *mut flint_rand_s,
817        prec: mp_limb_signed_t,
818        mag_bits: mp_limb_signed_t,
819    );
820    pub fn acb_rel_error_bits(x: *mut acb_struct) -> mp_limb_signed_t;
821    pub fn acb_rel_accuracy_bits(x: *mut acb_struct) -> mp_limb_signed_t;
822    pub fn acb_rel_one_accuracy_bits(x: *mut acb_struct) -> mp_limb_signed_t;
823    pub fn acb_bits(x: *mut acb_struct) -> mp_limb_signed_t;
824    pub fn acb_is_real(x: *mut acb_struct) -> c_int;
825    pub fn _acb_vec_is_real(v: acb_srcptr, len: mp_limb_signed_t) -> c_int;
826    pub fn _acb_vec_bits(vec: acb_srcptr, len: mp_limb_signed_t) -> mp_limb_signed_t;
827    pub fn _acb_vec_set_powers(
828        xs: acb_ptr,
829        x: *mut acb_struct,
830        len: mp_limb_signed_t,
831        prec: mp_limb_signed_t,
832    );
833    pub fn _acb_vec_add_error_arf_vec(res: acb_ptr, err: arf_srcptr, len: mp_limb_signed_t);
834    pub fn _acb_vec_add_error_mag_vec(res: acb_ptr, err: mag_srcptr, len: mp_limb_signed_t);
835    pub fn _acb_vec_indeterminate(vec: acb_ptr, len: mp_limb_signed_t);
836    pub fn _acb_vec_trim(res: acb_ptr, vec: acb_srcptr, len: mp_limb_signed_t);
837    pub fn _acb_vec_get_unique_fmpz_vec(
838        res: *mut fmpz,
839        vec: acb_srcptr,
840        len: mp_limb_signed_t,
841    ) -> c_int;
842    pub fn _acb_vec_sort_pretty(vec: acb_ptr, len: mp_limb_signed_t);
843    pub fn acb_unit_root(res: *mut acb_struct, order: mp_limb_t, prec: mp_limb_signed_t);
844    pub fn _acb_vec_unit_roots(
845        z: acb_ptr,
846        order: mp_limb_signed_t,
847        len: mp_limb_signed_t,
848        prec: mp_limb_signed_t,
849    );
850    pub fn acb_allocated_bytes(x: *mut acb_struct) -> mp_limb_signed_t;
851    pub fn _acb_vec_allocated_bytes(vec: acb_srcptr, len: mp_limb_signed_t) -> mp_limb_signed_t;
852    pub fn _acb_vec_estimate_allocated_bytes(len: mp_limb_signed_t, prec: mp_limb_signed_t) -> f64;
853}