arb_sys/
arb_poly.rs

1#![allow(non_camel_case_types)]
2
3//! *See the [Arb documentation](https://arblib.org/).
4
5use crate::acb::{acb_srcptr, acb_struct};
6use crate::arb::*;
7use crate::arf::arf_struct;
8use crate::mag::mag_struct;
9use flint_sys::deps::*;
10use flint_sys::flint::*;
11use flint_sys::fmpq_poly::fmpq_poly_struct;
12use flint_sys::fmpz_poly::fmpz_poly_struct;
13use libc::{c_int, FILE};
14
15#[repr(C)]
16#[derive(Debug, Copy, Clone)]
17pub struct arb_poly_struct {
18    pub coeffs: arb_ptr,
19    pub length: mp_limb_signed_t,
20    pub alloc: mp_limb_signed_t,
21}
22
23pub type arb_poly_t = [arb_poly_struct; 1usize];
24
25extern "C" {
26    pub fn arb_poly_init(poly: *mut arb_poly_struct);
27    pub fn arb_poly_init2(poly: *mut arb_poly_struct, len: mp_limb_signed_t);
28    pub fn arb_poly_clear(poly: *mut arb_poly_struct);
29    pub fn arb_poly_fit_length(poly: *mut arb_poly_struct, len: mp_limb_signed_t);
30    pub fn _arb_poly_set_length(poly: *mut arb_poly_struct, len: mp_limb_signed_t);
31    pub fn _arb_poly_normalise(poly: *mut arb_poly_struct);
32    pub fn arb_poly_set(poly: *mut arb_poly_struct, src: *const arb_poly_struct);
33    pub fn arb_poly_set_round(
34        poly: *mut arb_poly_struct,
35        src: *const arb_poly_struct,
36        prec: mp_limb_signed_t,
37    );
38    pub fn arb_poly_set_trunc(
39        res: *mut arb_poly_struct,
40        poly: *const arb_poly_struct,
41        n: mp_limb_signed_t,
42    );
43    pub fn arb_poly_set_trunc_round(
44        res: *mut arb_poly_struct,
45        poly: *const arb_poly_struct,
46        n: mp_limb_signed_t,
47        prec: mp_limb_signed_t,
48    );
49    pub fn arb_poly_valuation(poly: *mut arb_poly_struct) -> mp_limb_signed_t;
50    pub fn arb_poly_set_coeff_si(
51        poly: *mut arb_poly_struct,
52        n: mp_limb_signed_t,
53        x: mp_limb_signed_t,
54    );
55    pub fn arb_poly_set_coeff_arb(
56        poly: *mut arb_poly_struct,
57        n: mp_limb_signed_t,
58        x: *const arb_struct,
59    );
60    pub fn arb_poly_get_coeff_arb(
61        x: *mut arb_struct,
62        poly: *const arb_poly_struct,
63        n: mp_limb_signed_t,
64    );
65    pub fn _arb_poly_reverse(
66        res: arb_ptr,
67        poly: arb_srcptr,
68        len: mp_limb_signed_t,
69        n: mp_limb_signed_t,
70    );
71    pub fn _arb_poly_shift_right(
72        res: arb_ptr,
73        poly: arb_srcptr,
74        len: mp_limb_signed_t,
75        n: mp_limb_signed_t,
76    );
77    pub fn arb_poly_shift_right(
78        res: *mut arb_poly_struct,
79        poly: *const arb_poly_struct,
80        n: mp_limb_signed_t,
81    );
82    pub fn _arb_poly_shift_left(
83        res: arb_ptr,
84        poly: arb_srcptr,
85        len: mp_limb_signed_t,
86        n: mp_limb_signed_t,
87    );
88    pub fn arb_poly_shift_left(
89        res: *mut arb_poly_struct,
90        poly: *const arb_poly_struct,
91        n: mp_limb_signed_t,
92    );
93    pub fn arb_poly_set_fmpz_poly(
94        poly: *mut arb_poly_struct,
95        src: *const fmpz_poly_struct,
96        prec: mp_limb_signed_t,
97    );
98    pub fn arb_poly_set_fmpq_poly(
99        poly: *mut arb_poly_struct,
100        src: *const fmpq_poly_struct,
101        prec: mp_limb_signed_t,
102    );
103    pub fn arb_poly_set_si(poly: *mut arb_poly_struct, c: mp_limb_signed_t);
104    pub fn arb_poly_get_unique_fmpz_poly(
105        res: *mut fmpz_poly_struct,
106        src: *const arb_poly_struct,
107    ) -> c_int;
108    pub fn arb_poly_contains(poly1: *const arb_poly_struct, poly2: *const arb_poly_struct)
109        -> c_int;
110    pub fn arb_poly_contains_fmpz_poly(
111        poly1: *const arb_poly_struct,
112        poly2: *const fmpz_poly_struct,
113    ) -> c_int;
114    pub fn arb_poly_contains_fmpq_poly(
115        poly1: *const arb_poly_struct,
116        poly2: *const fmpq_poly_struct,
117    ) -> c_int;
118    pub fn arb_poly_equal(A: *const arb_poly_struct, B: *const arb_poly_struct) -> c_int;
119    pub fn _arb_poly_overlaps(
120        poly1: arb_srcptr,
121        len1: mp_limb_signed_t,
122        poly2: arb_srcptr,
123        len2: mp_limb_signed_t,
124    ) -> c_int;
125    pub fn arb_poly_overlaps(poly1: *const arb_poly_struct, poly2: *const arb_poly_struct)
126        -> c_int;
127    pub fn _arb_poly_majorant(
128        res: arb_ptr,
129        vec: arb_srcptr,
130        len: mp_limb_signed_t,
131        prec: mp_limb_signed_t,
132    );
133    pub fn arb_poly_majorant(
134        res: *mut arb_poly_struct,
135        poly: *const arb_poly_struct,
136        prec: mp_limb_signed_t,
137    );
138    pub fn arb_poly_fprintd(
139        file: *mut FILE,
140        poly: *const arb_poly_struct,
141        digits: mp_limb_signed_t,
142    );
143    pub fn arb_poly_randtest(
144        poly: *mut arb_poly_struct,
145        state: *const flint_rand_s,
146        len: mp_limb_signed_t,
147        prec: mp_limb_signed_t,
148        mag_bits: mp_limb_signed_t,
149    );
150    pub fn _arb_poly_add(
151        res: arb_ptr,
152        poly1: arb_srcptr,
153        len1: mp_limb_signed_t,
154        poly2: arb_srcptr,
155        len2: mp_limb_signed_t,
156        prec: mp_limb_signed_t,
157    );
158    pub fn arb_poly_add(
159        res: *mut arb_poly_struct,
160        poly1: *const arb_poly_struct,
161        poly2: *const arb_poly_struct,
162        prec: mp_limb_signed_t,
163    );
164    pub fn arb_poly_add_si(
165        res: *mut arb_poly_struct,
166        poly: *const arb_poly_struct,
167        c: mp_limb_signed_t,
168        prec: mp_limb_signed_t,
169    );
170    pub fn _arb_poly_sub(
171        res: arb_ptr,
172        poly1: arb_srcptr,
173        len1: mp_limb_signed_t,
174        poly2: arb_srcptr,
175        len2: mp_limb_signed_t,
176        prec: mp_limb_signed_t,
177    );
178    pub fn arb_poly_sub(
179        res: *mut arb_poly_struct,
180        poly1: *const arb_poly_struct,
181        poly2: *const arb_poly_struct,
182        prec: mp_limb_signed_t,
183    );
184    pub fn arb_poly_add_series(
185        res: *mut arb_poly_struct,
186        poly1: *const arb_poly_struct,
187        poly2: *const arb_poly_struct,
188        len: mp_limb_signed_t,
189        prec: mp_limb_signed_t,
190    );
191    pub fn arb_poly_sub_series(
192        res: *mut arb_poly_struct,
193        poly1: *const arb_poly_struct,
194        poly2: *const arb_poly_struct,
195        len: mp_limb_signed_t,
196        prec: mp_limb_signed_t,
197    );
198    pub fn _arb_poly_mullow_ztrunc(
199        res: arb_ptr,
200        poly1: arb_srcptr,
201        len1: mp_limb_signed_t,
202        poly2: arb_srcptr,
203        len2: mp_limb_signed_t,
204        n: mp_limb_signed_t,
205        prec: mp_limb_signed_t,
206    );
207    pub fn arb_poly_mullow_ztrunc(
208        res: *mut arb_poly_struct,
209        poly1: *const arb_poly_struct,
210        poly2: *const arb_poly_struct,
211        n: mp_limb_signed_t,
212        prec: mp_limb_signed_t,
213    );
214    pub fn _arb_poly_mullow_classical(
215        res: arb_ptr,
216        poly1: arb_srcptr,
217        len1: mp_limb_signed_t,
218        poly2: arb_srcptr,
219        len2: mp_limb_signed_t,
220        n: mp_limb_signed_t,
221        prec: mp_limb_signed_t,
222    );
223    pub fn arb_poly_mullow_classical(
224        res: *mut arb_poly_struct,
225        poly1: *const arb_poly_struct,
226        poly2: *const arb_poly_struct,
227        n: mp_limb_signed_t,
228        prec: mp_limb_signed_t,
229    );
230    pub fn _arb_poly_mullow_block(
231        C: arb_ptr,
232        A: arb_srcptr,
233        lenA: mp_limb_signed_t,
234        B: arb_srcptr,
235        lenB: mp_limb_signed_t,
236        n: mp_limb_signed_t,
237        prec: mp_limb_signed_t,
238    );
239    pub fn arb_poly_mullow_block(
240        res: *mut arb_poly_struct,
241        poly1: *const arb_poly_struct,
242        poly2: *const arb_poly_struct,
243        len: mp_limb_signed_t,
244        prec: mp_limb_signed_t,
245    );
246    pub fn _arb_poly_mullow(
247        C: arb_ptr,
248        A: arb_srcptr,
249        lenA: mp_limb_signed_t,
250        B: arb_srcptr,
251        lenB: mp_limb_signed_t,
252        n: mp_limb_signed_t,
253        prec: mp_limb_signed_t,
254    );
255    pub fn arb_poly_mullow(
256        res: *mut arb_poly_struct,
257        poly1: *const arb_poly_struct,
258        poly2: *const arb_poly_struct,
259        len: mp_limb_signed_t,
260        prec: mp_limb_signed_t,
261    );
262    pub fn _arb_poly_mul(
263        C: arb_ptr,
264        A: arb_srcptr,
265        lenA: mp_limb_signed_t,
266        B: arb_srcptr,
267        lenB: mp_limb_signed_t,
268        prec: mp_limb_signed_t,
269    );
270    pub fn arb_poly_mul(
271        res: *mut arb_poly_struct,
272        poly1: *const arb_poly_struct,
273        poly2: *const arb_poly_struct,
274        prec: mp_limb_signed_t,
275    );
276    pub fn _arb_poly_inv_series(
277        Qinv: arb_ptr,
278        Q: arb_srcptr,
279        Qlen: mp_limb_signed_t,
280        len: mp_limb_signed_t,
281        prec: mp_limb_signed_t,
282    );
283    pub fn arb_poly_inv_series(
284        Qinv: *mut arb_poly_struct,
285        Q: *const arb_poly_struct,
286        n: mp_limb_signed_t,
287        prec: mp_limb_signed_t,
288    );
289    pub fn _arb_poly_div_series(
290        Q: arb_ptr,
291        A: arb_srcptr,
292        Alen: mp_limb_signed_t,
293        B: arb_srcptr,
294        Blen: mp_limb_signed_t,
295        n: mp_limb_signed_t,
296        prec: mp_limb_signed_t,
297    );
298    pub fn arb_poly_div_series(
299        Q: *mut arb_poly_struct,
300        A: *const arb_poly_struct,
301        B: *const arb_poly_struct,
302        n: mp_limb_signed_t,
303        prec: mp_limb_signed_t,
304    );
305    pub fn _arb_poly_div(
306        Q: arb_ptr,
307        A: arb_srcptr,
308        lenA: mp_limb_signed_t,
309        B: arb_srcptr,
310        lenB: mp_limb_signed_t,
311        prec: mp_limb_signed_t,
312    );
313    pub fn _arb_poly_divrem(
314        Q: arb_ptr,
315        R: arb_ptr,
316        A: arb_srcptr,
317        lenA: mp_limb_signed_t,
318        B: arb_srcptr,
319        lenB: mp_limb_signed_t,
320        prec: mp_limb_signed_t,
321    );
322    pub fn _arb_poly_rem(
323        R: arb_ptr,
324        A: arb_srcptr,
325        lenA: mp_limb_signed_t,
326        B: arb_srcptr,
327        lenB: mp_limb_signed_t,
328        prec: mp_limb_signed_t,
329    );
330    pub fn arb_poly_divrem(
331        Q: *mut arb_poly_struct,
332        R: *mut arb_poly_struct,
333        A: *const arb_poly_struct,
334        B: *const arb_poly_struct,
335        prec: mp_limb_signed_t,
336    ) -> c_int;
337    pub fn _arb_poly_div_root(
338        Q: arb_ptr,
339        R: *mut arb_struct,
340        A: arb_srcptr,
341        len: mp_limb_signed_t,
342        c: *const arb_struct,
343        prec: mp_limb_signed_t,
344    );
345    pub fn _arb_poly_product_roots(
346        poly: arb_ptr,
347        xs: arb_srcptr,
348        n: mp_limb_signed_t,
349        prec: mp_limb_signed_t,
350    );
351    pub fn arb_poly_product_roots(
352        poly: *mut arb_poly_struct,
353        xs: arb_srcptr,
354        n: mp_limb_signed_t,
355        prec: mp_limb_signed_t,
356    );
357    pub fn _arb_poly_product_roots_complex(
358        poly: arb_ptr,
359        r: arb_srcptr,
360        rn: mp_limb_signed_t,
361        c: acb_srcptr,
362        cn: mp_limb_signed_t,
363        prec: mp_limb_signed_t,
364    );
365    pub fn arb_poly_product_roots_complex(
366        poly: *mut arb_poly_struct,
367        r: arb_srcptr,
368        rn: mp_limb_signed_t,
369        c: acb_srcptr,
370        cn: mp_limb_signed_t,
371        prec: mp_limb_signed_t,
372    );
373    pub fn _arb_poly_tree_alloc(len: mp_limb_signed_t) -> *mut arb_ptr;
374    pub fn _arb_poly_tree_free(tree: *mut arb_ptr, len: mp_limb_signed_t);
375    pub fn _arb_poly_tree_build(
376        tree: *mut arb_ptr,
377        roots: arb_srcptr,
378        len: mp_limb_signed_t,
379        prec: mp_limb_signed_t,
380    );
381    pub fn _arb_poly_taylor_shift_horner(
382        poly: arb_ptr,
383        c: *mut arb_struct,
384        n: mp_limb_signed_t,
385        prec: mp_limb_signed_t,
386    );
387    pub fn arb_poly_taylor_shift_horner(
388        g: *mut arb_poly_struct,
389        f: *mut arb_poly_struct,
390        c: *mut arb_struct,
391        prec: mp_limb_signed_t,
392    );
393    pub fn _arb_poly_taylor_shift_divconquer(
394        poly: arb_ptr,
395        c: *mut arb_struct,
396        n: mp_limb_signed_t,
397        prec: mp_limb_signed_t,
398    );
399    pub fn arb_poly_taylor_shift_divconquer(
400        g: *mut arb_poly_struct,
401        f: *mut arb_poly_struct,
402        c: *mut arb_struct,
403        prec: mp_limb_signed_t,
404    );
405    pub fn _arb_poly_taylor_shift_convolution(
406        poly: arb_ptr,
407        c: *mut arb_struct,
408        n: mp_limb_signed_t,
409        prec: mp_limb_signed_t,
410    );
411    pub fn arb_poly_taylor_shift_convolution(
412        g: *mut arb_poly_struct,
413        f: *mut arb_poly_struct,
414        c: *mut arb_struct,
415        prec: mp_limb_signed_t,
416    );
417    pub fn _arb_poly_taylor_shift(
418        poly: arb_ptr,
419        c: *mut arb_struct,
420        n: mp_limb_signed_t,
421        prec: mp_limb_signed_t,
422    );
423    pub fn arb_poly_taylor_shift(
424        g: *mut arb_poly_struct,
425        f: *mut arb_poly_struct,
426        c: *mut arb_struct,
427        prec: mp_limb_signed_t,
428    );
429    pub fn _arb_poly_compose(
430        res: arb_ptr,
431        poly1: arb_srcptr,
432        len1: mp_limb_signed_t,
433        poly2: arb_srcptr,
434        len2: mp_limb_signed_t,
435        prec: mp_limb_signed_t,
436    );
437    pub fn arb_poly_compose(
438        res: *mut arb_poly_struct,
439        poly1: *mut arb_poly_struct,
440        poly2: *mut arb_poly_struct,
441        prec: mp_limb_signed_t,
442    );
443    pub fn _arb_poly_compose_horner(
444        res: arb_ptr,
445        poly1: arb_srcptr,
446        len1: mp_limb_signed_t,
447        poly2: arb_srcptr,
448        len2: mp_limb_signed_t,
449        prec: mp_limb_signed_t,
450    );
451    pub fn arb_poly_compose_horner(
452        res: *mut arb_poly_struct,
453        poly1: *mut arb_poly_struct,
454        poly2: *mut arb_poly_struct,
455        prec: mp_limb_signed_t,
456    );
457    pub fn _arb_poly_compose_divconquer(
458        res: arb_ptr,
459        poly1: arb_srcptr,
460        len1: mp_limb_signed_t,
461        poly2: arb_srcptr,
462        len2: mp_limb_signed_t,
463        prec: mp_limb_signed_t,
464    );
465    pub fn arb_poly_compose_divconquer(
466        res: *mut arb_poly_struct,
467        poly1: *mut arb_poly_struct,
468        poly2: *mut arb_poly_struct,
469        prec: mp_limb_signed_t,
470    );
471    pub fn _arb_poly_compose_series_horner(
472        res: arb_ptr,
473        poly1: arb_srcptr,
474        len1: mp_limb_signed_t,
475        poly2: arb_srcptr,
476        len2: mp_limb_signed_t,
477        n: mp_limb_signed_t,
478        prec: mp_limb_signed_t,
479    );
480    pub fn arb_poly_compose_series_horner(
481        res: *mut arb_poly_struct,
482        poly1: *mut arb_poly_struct,
483        poly2: *mut arb_poly_struct,
484        n: mp_limb_signed_t,
485        prec: mp_limb_signed_t,
486    );
487    pub fn _arb_poly_compose_series(
488        res: arb_ptr,
489        poly1: arb_srcptr,
490        len1: mp_limb_signed_t,
491        poly2: arb_srcptr,
492        len2: mp_limb_signed_t,
493        n: mp_limb_signed_t,
494        prec: mp_limb_signed_t,
495    );
496    pub fn arb_poly_compose_series(
497        res: *mut arb_poly_struct,
498        poly1: *mut arb_poly_struct,
499        poly2: *mut arb_poly_struct,
500        n: mp_limb_signed_t,
501        prec: mp_limb_signed_t,
502    );
503    pub fn _arb_poly_revert_series_lagrange(
504        Qinv: arb_ptr,
505        Q: arb_srcptr,
506        Qlen: mp_limb_signed_t,
507        n: mp_limb_signed_t,
508        prec: mp_limb_signed_t,
509    );
510    pub fn arb_poly_revert_series_lagrange(
511        Qinv: *mut arb_poly_struct,
512        Q: *mut arb_poly_struct,
513        n: mp_limb_signed_t,
514        prec: mp_limb_signed_t,
515    );
516    pub fn _arb_poly_revert_series_newton(
517        Qinv: arb_ptr,
518        Q: arb_srcptr,
519        Qlen: mp_limb_signed_t,
520        n: mp_limb_signed_t,
521        prec: mp_limb_signed_t,
522    );
523    pub fn arb_poly_revert_series_newton(
524        Qinv: *mut arb_poly_struct,
525        Q: *mut arb_poly_struct,
526        n: mp_limb_signed_t,
527        prec: mp_limb_signed_t,
528    );
529    pub fn _arb_poly_revert_series_lagrange_fast(
530        Qinv: arb_ptr,
531        Q: arb_srcptr,
532        Qlen: mp_limb_signed_t,
533        n: mp_limb_signed_t,
534        prec: mp_limb_signed_t,
535    );
536    pub fn arb_poly_revert_series_lagrange_fast(
537        Qinv: *mut arb_poly_struct,
538        Q: *mut arb_poly_struct,
539        n: mp_limb_signed_t,
540        prec: mp_limb_signed_t,
541    );
542    pub fn _arb_poly_revert_series(
543        Qinv: arb_ptr,
544        Q: arb_srcptr,
545        Qlen: mp_limb_signed_t,
546        n: mp_limb_signed_t,
547        prec: mp_limb_signed_t,
548    );
549    pub fn arb_poly_revert_series(
550        Qinv: *mut arb_poly_struct,
551        Q: *mut arb_poly_struct,
552        n: mp_limb_signed_t,
553        prec: mp_limb_signed_t,
554    );
555    pub fn _arb_poly_evaluate_horner(
556        res: *mut arb_struct,
557        f: arb_srcptr,
558        len: mp_limb_signed_t,
559        a: *mut arb_struct,
560        prec: mp_limb_signed_t,
561    );
562    pub fn arb_poly_evaluate_horner(
563        res: *mut arb_struct,
564        f: *mut arb_poly_struct,
565        a: *mut arb_struct,
566        prec: mp_limb_signed_t,
567    );
568    pub fn _arb_poly_evaluate_rectangular(
569        y: *mut arb_struct,
570        poly: arb_srcptr,
571        len: mp_limb_signed_t,
572        x: *mut arb_struct,
573        prec: mp_limb_signed_t,
574    );
575    pub fn arb_poly_evaluate_rectangular(
576        res: *mut arb_struct,
577        f: *mut arb_poly_struct,
578        a: *mut arb_struct,
579        prec: mp_limb_signed_t,
580    );
581    pub fn _arb_poly_evaluate(
582        res: *mut arb_struct,
583        f: arb_srcptr,
584        len: mp_limb_signed_t,
585        a: *const arb_struct,
586        prec: mp_limb_signed_t,
587    );
588    pub fn arb_poly_evaluate(
589        res: *mut arb_struct,
590        f: *mut arb_poly_struct,
591        a: *mut arb_struct,
592        prec: mp_limb_signed_t,
593    );
594    pub fn _arb_poly_evaluate2_horner(
595        y: *mut arb_struct,
596        z: *mut arb_struct,
597        f: arb_srcptr,
598        len: mp_limb_signed_t,
599        x: *mut arb_struct,
600        prec: mp_limb_signed_t,
601    );
602    pub fn arb_poly_evaluate2_horner(
603        y: *mut arb_struct,
604        z: *mut arb_struct,
605        f: *mut arb_poly_struct,
606        x: *mut arb_struct,
607        prec: mp_limb_signed_t,
608    );
609    pub fn _arb_poly_evaluate2_rectangular(
610        y: *mut arb_struct,
611        z: *mut arb_struct,
612        f: arb_srcptr,
613        len: mp_limb_signed_t,
614        x: *mut arb_struct,
615        prec: mp_limb_signed_t,
616    );
617    pub fn arb_poly_evaluate2_rectangular(
618        y: *mut arb_struct,
619        z: *mut arb_struct,
620        f: *mut arb_poly_struct,
621        x: *mut arb_struct,
622        prec: mp_limb_signed_t,
623    );
624    pub fn _arb_poly_evaluate2(
625        y: *mut arb_struct,
626        z: *mut arb_struct,
627        f: arb_srcptr,
628        len: mp_limb_signed_t,
629        x: *mut arb_struct,
630        prec: mp_limb_signed_t,
631    );
632    pub fn arb_poly_evaluate2(
633        y: *mut arb_struct,
634        z: *mut arb_struct,
635        f: *mut arb_poly_struct,
636        x: *mut arb_struct,
637        prec: mp_limb_signed_t,
638    );
639    pub fn _arb_poly_evaluate_vec_iter(
640        ys: arb_ptr,
641        poly: arb_srcptr,
642        plen: mp_limb_signed_t,
643        xs: arb_srcptr,
644        n: mp_limb_signed_t,
645        prec: mp_limb_signed_t,
646    );
647    pub fn arb_poly_evaluate_vec_iter(
648        ys: arb_ptr,
649        poly: *mut arb_poly_struct,
650        xs: arb_srcptr,
651        n: mp_limb_signed_t,
652        prec: mp_limb_signed_t,
653    );
654    pub fn _arb_poly_evaluate_vec_fast_precomp(
655        vs: arb_ptr,
656        poly: arb_srcptr,
657        plen: mp_limb_signed_t,
658        tree: *mut arb_ptr,
659        len: mp_limb_signed_t,
660        prec: mp_limb_signed_t,
661    );
662    pub fn _arb_poly_evaluate_vec_fast(
663        ys: arb_ptr,
664        poly: arb_srcptr,
665        plen: mp_limb_signed_t,
666        xs: arb_srcptr,
667        n: mp_limb_signed_t,
668        prec: mp_limb_signed_t,
669    );
670    pub fn arb_poly_evaluate_vec_fast(
671        ys: arb_ptr,
672        poly: *const arb_poly_struct,
673        xs: arb_srcptr,
674        n: mp_limb_signed_t,
675        prec: mp_limb_signed_t,
676    );
677    pub fn _arb_poly_interpolate_newton(
678        poly: arb_ptr,
679        xs: arb_srcptr,
680        ys: arb_srcptr,
681        n: mp_limb_signed_t,
682        prec: mp_limb_signed_t,
683    );
684    pub fn arb_poly_interpolate_newton(
685        poly: *mut arb_poly_struct,
686        xs: arb_srcptr,
687        ys: arb_srcptr,
688        n: mp_limb_signed_t,
689        prec: mp_limb_signed_t,
690    );
691    pub fn _arb_poly_interpolate_barycentric(
692        poly: arb_ptr,
693        xs: arb_srcptr,
694        ys: arb_srcptr,
695        n: mp_limb_signed_t,
696        prec: mp_limb_signed_t,
697    );
698    pub fn arb_poly_interpolate_barycentric(
699        poly: *mut arb_poly_struct,
700        xs: arb_srcptr,
701        ys: arb_srcptr,
702        n: mp_limb_signed_t,
703        prec: mp_limb_signed_t,
704    );
705    pub fn _arb_poly_interpolation_weights(
706        w: arb_ptr,
707        tree: *mut arb_ptr,
708        len: mp_limb_signed_t,
709        prec: mp_limb_signed_t,
710    );
711    pub fn _arb_poly_interpolate_fast_precomp(
712        poly: arb_ptr,
713        ys: arb_srcptr,
714        tree: *mut arb_ptr,
715        weights: arb_srcptr,
716        len: mp_limb_signed_t,
717        prec: mp_limb_signed_t,
718    );
719    pub fn _arb_poly_interpolate_fast(
720        poly: arb_ptr,
721        xs: arb_srcptr,
722        ys: arb_srcptr,
723        len: mp_limb_signed_t,
724        prec: mp_limb_signed_t,
725    );
726    pub fn arb_poly_interpolate_fast(
727        poly: *mut arb_poly_struct,
728        xs: arb_srcptr,
729        ys: arb_srcptr,
730        n: mp_limb_signed_t,
731        prec: mp_limb_signed_t,
732    );
733    pub fn _arb_poly_derivative(
734        res: arb_ptr,
735        poly: arb_srcptr,
736        len: mp_limb_signed_t,
737        prec: mp_limb_signed_t,
738    );
739    pub fn arb_poly_derivative(
740        res: *mut arb_poly_struct,
741        poly: *const arb_poly_struct,
742        prec: mp_limb_signed_t,
743    );
744    pub fn _arb_poly_integral(
745        res: arb_ptr,
746        poly: arb_srcptr,
747        len: mp_limb_signed_t,
748        prec: mp_limb_signed_t,
749    );
750    pub fn arb_poly_integral(
751        res: *mut arb_poly_struct,
752        poly: *const arb_poly_struct,
753        prec: mp_limb_signed_t,
754    );
755    pub fn arb_poly_borel_transform(
756        res: *mut arb_poly_struct,
757        poly: *const arb_poly_struct,
758        prec: mp_limb_signed_t,
759    );
760    pub fn _arb_poly_borel_transform(
761        res: arb_ptr,
762        poly: arb_srcptr,
763        len: mp_limb_signed_t,
764        prec: mp_limb_signed_t,
765    );
766    pub fn arb_poly_inv_borel_transform(
767        res: *mut arb_poly_struct,
768        poly: *const arb_poly_struct,
769        prec: mp_limb_signed_t,
770    );
771    pub fn _arb_poly_inv_borel_transform(
772        res: arb_ptr,
773        poly: arb_srcptr,
774        len: mp_limb_signed_t,
775        prec: mp_limb_signed_t,
776    );
777    pub fn _arb_poly_binomial_transform_basecase(
778        b: arb_ptr,
779        a: arb_srcptr,
780        alen: mp_limb_signed_t,
781        len: mp_limb_signed_t,
782        prec: mp_limb_signed_t,
783    );
784    pub fn arb_poly_binomial_transform_basecase(
785        b: *mut arb_poly_struct,
786        a: *const arb_poly_struct,
787        len: mp_limb_signed_t,
788        prec: mp_limb_signed_t,
789    );
790    pub fn _arb_poly_binomial_transform_convolution(
791        b: arb_ptr,
792        a: arb_srcptr,
793        alen: mp_limb_signed_t,
794        len: mp_limb_signed_t,
795        prec: mp_limb_signed_t,
796    );
797    pub fn arb_poly_binomial_transform_convolution(
798        b: *mut arb_poly_struct,
799        a: *const arb_poly_struct,
800        len: mp_limb_signed_t,
801        prec: mp_limb_signed_t,
802    );
803    pub fn _arb_poly_binomial_transform(
804        b: arb_ptr,
805        a: arb_srcptr,
806        alen: mp_limb_signed_t,
807        len: mp_limb_signed_t,
808        prec: mp_limb_signed_t,
809    );
810    pub fn arb_poly_binomial_transform(
811        b: *mut arb_poly_struct,
812        a: *const arb_poly_struct,
813        len: mp_limb_signed_t,
814        prec: mp_limb_signed_t,
815    );
816    pub fn _arb_poly_pow_ui_trunc_binexp(
817        res: arb_ptr,
818        f: arb_srcptr,
819        flen: mp_limb_signed_t,
820        exp: mp_limb_t,
821        len: mp_limb_signed_t,
822        prec: mp_limb_signed_t,
823    );
824    pub fn arb_poly_pow_ui_trunc_binexp(
825        res: *mut arb_poly_struct,
826        poly: *const arb_poly_struct,
827        exp: mp_limb_t,
828        len: mp_limb_signed_t,
829        prec: mp_limb_signed_t,
830    );
831    pub fn _arb_poly_pow_ui(
832        res: arb_ptr,
833        f: arb_srcptr,
834        flen: mp_limb_signed_t,
835        exp: mp_limb_t,
836        prec: mp_limb_signed_t,
837    );
838    pub fn arb_poly_pow_ui(
839        res: *mut arb_poly_struct,
840        poly: *const arb_poly_struct,
841        exp: mp_limb_t,
842        prec: mp_limb_signed_t,
843    );
844    pub fn _arb_poly_pow_series(
845        h: arb_ptr,
846        f: arb_srcptr,
847        flen: mp_limb_signed_t,
848        g: arb_srcptr,
849        glen: mp_limb_signed_t,
850        len: mp_limb_signed_t,
851        prec: mp_limb_signed_t,
852    );
853    pub fn arb_poly_pow_series(
854        h: *mut arb_poly_struct,
855        f: *const arb_poly_struct,
856        g: *const arb_poly_struct,
857        len: mp_limb_signed_t,
858        prec: mp_limb_signed_t,
859    );
860    pub fn _arb_poly_pow_arb_series(
861        h: arb_ptr,
862        f: arb_srcptr,
863        flen: mp_limb_signed_t,
864        g: *const arb_struct,
865        len: mp_limb_signed_t,
866        prec: mp_limb_signed_t,
867    );
868    pub fn arb_poly_pow_arb_series(
869        h: *mut arb_poly_struct,
870        f: *const arb_poly_struct,
871        g: *const arb_struct,
872        len: mp_limb_signed_t,
873        prec: mp_limb_signed_t,
874    );
875    pub fn _arb_poly_binomial_pow_arb_series(
876        h: arb_ptr,
877        f: arb_srcptr,
878        flen: mp_limb_signed_t,
879        g: *const arb_struct,
880        len: mp_limb_signed_t,
881        prec: mp_limb_signed_t,
882    );
883    pub fn _arb_poly_rsqrt_series(
884        g: arb_ptr,
885        h: arb_srcptr,
886        hlen: mp_limb_signed_t,
887        len: mp_limb_signed_t,
888        prec: mp_limb_signed_t,
889    );
890    pub fn arb_poly_rsqrt_series(
891        g: *mut arb_poly_struct,
892        h: *const arb_poly_struct,
893        n: mp_limb_signed_t,
894        prec: mp_limb_signed_t,
895    );
896    pub fn _arb_poly_sqrt_series(
897        g: arb_ptr,
898        h: arb_srcptr,
899        hlen: mp_limb_signed_t,
900        len: mp_limb_signed_t,
901        prec: mp_limb_signed_t,
902    );
903    pub fn arb_poly_sqrt_series(
904        g: *mut arb_poly_struct,
905        h: *const arb_poly_struct,
906        n: mp_limb_signed_t,
907        prec: mp_limb_signed_t,
908    );
909    pub fn _arb_poly_log_series(
910        res: arb_ptr,
911        f: arb_srcptr,
912        flen: mp_limb_signed_t,
913        n: mp_limb_signed_t,
914        prec: mp_limb_signed_t,
915    );
916    pub fn arb_poly_log_series(
917        res: *mut arb_poly_struct,
918        f: *const arb_poly_struct,
919        n: mp_limb_signed_t,
920        prec: mp_limb_signed_t,
921    );
922    pub fn _arb_poly_log1p_series(
923        res: arb_ptr,
924        f: arb_srcptr,
925        flen: mp_limb_signed_t,
926        n: mp_limb_signed_t,
927        prec: mp_limb_signed_t,
928    );
929    pub fn arb_poly_log1p_series(
930        res: *mut arb_poly_struct,
931        f: *const arb_poly_struct,
932        n: mp_limb_signed_t,
933        prec: mp_limb_signed_t,
934    );
935    pub fn _arb_poly_atan_series(
936        res: arb_ptr,
937        f: arb_srcptr,
938        flen: mp_limb_signed_t,
939        n: mp_limb_signed_t,
940        prec: mp_limb_signed_t,
941    );
942    pub fn arb_poly_atan_series(
943        res: *mut arb_poly_struct,
944        f: *const arb_poly_struct,
945        n: mp_limb_signed_t,
946        prec: mp_limb_signed_t,
947    );
948    pub fn _arb_poly_asin_series(
949        res: arb_ptr,
950        f: arb_srcptr,
951        flen: mp_limb_signed_t,
952        n: mp_limb_signed_t,
953        prec: mp_limb_signed_t,
954    );
955    pub fn arb_poly_asin_series(
956        res: *mut arb_poly_struct,
957        f: *const arb_poly_struct,
958        n: mp_limb_signed_t,
959        prec: mp_limb_signed_t,
960    );
961    pub fn _arb_poly_acos_series(
962        res: arb_ptr,
963        f: arb_srcptr,
964        flen: mp_limb_signed_t,
965        n: mp_limb_signed_t,
966        prec: mp_limb_signed_t,
967    );
968    pub fn arb_poly_acos_series(
969        res: *mut arb_poly_struct,
970        f: *const arb_poly_struct,
971        n: mp_limb_signed_t,
972        prec: mp_limb_signed_t,
973    );
974    pub fn _arb_poly_exp_series_basecase(
975        f: arb_ptr,
976        h: arb_srcptr,
977        hlen: mp_limb_signed_t,
978        n: mp_limb_signed_t,
979        prec: mp_limb_signed_t,
980    );
981    pub fn arb_poly_exp_series_basecase(
982        f: *mut arb_poly_struct,
983        h: *mut arb_poly_struct,
984        n: mp_limb_signed_t,
985        prec: mp_limb_signed_t,
986    );
987    pub fn _arb_poly_exp_series(
988        f: arb_ptr,
989        h: arb_srcptr,
990        hlen: mp_limb_signed_t,
991        n: mp_limb_signed_t,
992        prec: mp_limb_signed_t,
993    );
994    pub fn arb_poly_exp_series(
995        f: *mut arb_poly_struct,
996        h: *mut arb_poly_struct,
997        n: mp_limb_signed_t,
998        prec: mp_limb_signed_t,
999    );
1000    pub fn _arb_poly_sinh_cosh_series_basecase(
1001        s: arb_ptr,
1002        c: arb_ptr,
1003        h: arb_srcptr,
1004        hlen: mp_limb_signed_t,
1005        n: mp_limb_signed_t,
1006        prec: mp_limb_signed_t,
1007    );
1008    pub fn arb_poly_sinh_cosh_series_basecase(
1009        s: *mut arb_poly_struct,
1010        c: *mut arb_poly_struct,
1011        h: *mut arb_poly_struct,
1012        n: mp_limb_signed_t,
1013        prec: mp_limb_signed_t,
1014    );
1015    pub fn _arb_poly_sinh_cosh_series_exponential(
1016        s: arb_ptr,
1017        c: arb_ptr,
1018        h: arb_srcptr,
1019        hlen: mp_limb_signed_t,
1020        n: mp_limb_signed_t,
1021        prec: mp_limb_signed_t,
1022    );
1023    pub fn arb_poly_sinh_cosh_series_exponential(
1024        s: *mut arb_poly_struct,
1025        c: *mut arb_poly_struct,
1026        h: *mut arb_poly_struct,
1027        n: mp_limb_signed_t,
1028        prec: mp_limb_signed_t,
1029    );
1030    pub fn _arb_poly_sinh_cosh_series(
1031        s: arb_ptr,
1032        c: arb_ptr,
1033        h: arb_srcptr,
1034        hlen: mp_limb_signed_t,
1035        n: mp_limb_signed_t,
1036        prec: mp_limb_signed_t,
1037    );
1038    pub fn arb_poly_sinh_cosh_series(
1039        s: *mut arb_poly_struct,
1040        c: *mut arb_poly_struct,
1041        h: *mut arb_poly_struct,
1042        n: mp_limb_signed_t,
1043        prec: mp_limb_signed_t,
1044    );
1045    pub fn _arb_poly_sinh_series(
1046        s: arb_ptr,
1047        h: arb_srcptr,
1048        hlen: mp_limb_signed_t,
1049        n: mp_limb_signed_t,
1050        prec: mp_limb_signed_t,
1051    );
1052    pub fn arb_poly_sinh_series(
1053        s: *mut arb_poly_struct,
1054        h: *mut arb_poly_struct,
1055        n: mp_limb_signed_t,
1056        prec: mp_limb_signed_t,
1057    );
1058    pub fn _arb_poly_cosh_series(
1059        c: arb_ptr,
1060        h: arb_srcptr,
1061        hlen: mp_limb_signed_t,
1062        n: mp_limb_signed_t,
1063        prec: mp_limb_signed_t,
1064    );
1065    pub fn arb_poly_cosh_series(
1066        c: *mut arb_poly_struct,
1067        h: *mut arb_poly_struct,
1068        n: mp_limb_signed_t,
1069        prec: mp_limb_signed_t,
1070    );
1071    pub fn _arb_poly_sin_cos_series_basecase(
1072        s: arb_ptr,
1073        c: arb_ptr,
1074        h: arb_srcptr,
1075        hlen: mp_limb_signed_t,
1076        n: mp_limb_signed_t,
1077        prec: mp_limb_signed_t,
1078        times_pi: c_int,
1079    );
1080    pub fn arb_poly_sin_cos_series_basecase(
1081        s: *mut arb_poly_struct,
1082        c: *mut arb_poly_struct,
1083        h: *mut arb_poly_struct,
1084        n: mp_limb_signed_t,
1085        prec: mp_limb_signed_t,
1086        times_pi: c_int,
1087    );
1088    pub fn _arb_poly_sin_cos_series_tangent(
1089        s: arb_ptr,
1090        c: arb_ptr,
1091        h: arb_srcptr,
1092        hlen: mp_limb_signed_t,
1093        len: mp_limb_signed_t,
1094        prec: mp_limb_signed_t,
1095        times_pi: c_int,
1096    );
1097    pub fn arb_poly_sin_cos_series_tangent(
1098        s: *mut arb_poly_struct,
1099        c: *mut arb_poly_struct,
1100        h: *mut arb_poly_struct,
1101        n: mp_limb_signed_t,
1102        prec: mp_limb_signed_t,
1103        times_pi: c_int,
1104    );
1105    pub fn _arb_poly_sin_cos_series(
1106        s: arb_ptr,
1107        c: arb_ptr,
1108        h: arb_srcptr,
1109        hlen: mp_limb_signed_t,
1110        len: mp_limb_signed_t,
1111        prec: mp_limb_signed_t,
1112    );
1113    pub fn arb_poly_sin_cos_series(
1114        s: *mut arb_poly_struct,
1115        c: *mut arb_poly_struct,
1116        h: *mut arb_poly_struct,
1117        n: mp_limb_signed_t,
1118        prec: mp_limb_signed_t,
1119    );
1120    pub fn _arb_poly_sin_cos_pi_series(
1121        s: arb_ptr,
1122        c: arb_ptr,
1123        h: arb_srcptr,
1124        hlen: mp_limb_signed_t,
1125        len: mp_limb_signed_t,
1126        prec: mp_limb_signed_t,
1127    );
1128    pub fn arb_poly_sin_cos_pi_series(
1129        s: *mut arb_poly_struct,
1130        c: *mut arb_poly_struct,
1131        h: *mut arb_poly_struct,
1132        n: mp_limb_signed_t,
1133        prec: mp_limb_signed_t,
1134    );
1135    pub fn _arb_poly_sin_series(
1136        g: arb_ptr,
1137        h: arb_srcptr,
1138        hlen: mp_limb_signed_t,
1139        n: mp_limb_signed_t,
1140        prec: mp_limb_signed_t,
1141    );
1142    pub fn arb_poly_sin_series(
1143        g: *mut arb_poly_struct,
1144        h: *mut arb_poly_struct,
1145        n: mp_limb_signed_t,
1146        prec: mp_limb_signed_t,
1147    );
1148    pub fn _arb_poly_cos_series(
1149        g: arb_ptr,
1150        h: arb_srcptr,
1151        hlen: mp_limb_signed_t,
1152        n: mp_limb_signed_t,
1153        prec: mp_limb_signed_t,
1154    );
1155    pub fn arb_poly_cos_series(
1156        g: *mut arb_poly_struct,
1157        h: *mut arb_poly_struct,
1158        n: mp_limb_signed_t,
1159        prec: mp_limb_signed_t,
1160    );
1161    pub fn _arb_poly_sin_pi_series(
1162        g: arb_ptr,
1163        h: arb_srcptr,
1164        hlen: mp_limb_signed_t,
1165        n: mp_limb_signed_t,
1166        prec: mp_limb_signed_t,
1167    );
1168    pub fn arb_poly_sin_pi_series(
1169        g: *mut arb_poly_struct,
1170        h: *mut arb_poly_struct,
1171        n: mp_limb_signed_t,
1172        prec: mp_limb_signed_t,
1173    );
1174    pub fn _arb_poly_cos_pi_series(
1175        g: arb_ptr,
1176        h: arb_srcptr,
1177        hlen: mp_limb_signed_t,
1178        n: mp_limb_signed_t,
1179        prec: mp_limb_signed_t,
1180    );
1181    pub fn arb_poly_cos_pi_series(
1182        g: *mut arb_poly_struct,
1183        h: *mut arb_poly_struct,
1184        n: mp_limb_signed_t,
1185        prec: mp_limb_signed_t,
1186    );
1187    pub fn _arb_poly_cot_pi_series(
1188        g: arb_ptr,
1189        h: arb_srcptr,
1190        hlen: mp_limb_signed_t,
1191        n: mp_limb_signed_t,
1192        prec: mp_limb_signed_t,
1193    );
1194    pub fn arb_poly_cot_pi_series(
1195        g: *mut arb_poly_struct,
1196        h: *mut arb_poly_struct,
1197        n: mp_limb_signed_t,
1198        prec: mp_limb_signed_t,
1199    );
1200    pub fn _arb_poly_tan_series(
1201        g: arb_ptr,
1202        h: arb_srcptr,
1203        hlen: mp_limb_signed_t,
1204        len: mp_limb_signed_t,
1205        prec: mp_limb_signed_t,
1206    );
1207    pub fn arb_poly_tan_series(
1208        g: *mut arb_poly_struct,
1209        h: *mut arb_poly_struct,
1210        n: mp_limb_signed_t,
1211        prec: mp_limb_signed_t,
1212    );
1213    pub fn _arb_poly_sinc_series(
1214        g: arb_ptr,
1215        h: arb_srcptr,
1216        hlen: mp_limb_signed_t,
1217        n: mp_limb_signed_t,
1218        prec: mp_limb_signed_t,
1219    );
1220    pub fn arb_poly_sinc_series(
1221        g: *mut arb_poly_struct,
1222        h: *mut arb_poly_struct,
1223        n: mp_limb_signed_t,
1224        prec: mp_limb_signed_t,
1225    );
1226    pub fn _arb_poly_sinc_pi_series(
1227        g: arb_ptr,
1228        h: arb_srcptr,
1229        hlen: mp_limb_signed_t,
1230        n: mp_limb_signed_t,
1231        prec: mp_limb_signed_t,
1232    );
1233    pub fn arb_poly_sinc_pi_series(
1234        g: *mut arb_poly_struct,
1235        h: *mut arb_poly_struct,
1236        n: mp_limb_signed_t,
1237        prec: mp_limb_signed_t,
1238    );
1239    pub fn _arb_poly_compose_series_brent_kung(
1240        res: arb_ptr,
1241        poly1: arb_srcptr,
1242        len1: mp_limb_signed_t,
1243        poly2: arb_srcptr,
1244        len2: mp_limb_signed_t,
1245        n: mp_limb_signed_t,
1246        prec: mp_limb_signed_t,
1247    );
1248    pub fn arb_poly_compose_series_brent_kung(
1249        res: *mut arb_poly_struct,
1250        poly1: *mut arb_poly_struct,
1251        poly2: *mut arb_poly_struct,
1252        n: mp_limb_signed_t,
1253        prec: mp_limb_signed_t,
1254    );
1255    pub fn _arb_poly_evaluate_acb_horner(
1256        res: *mut acb_struct,
1257        f: arb_srcptr,
1258        len: mp_limb_signed_t,
1259        x: *mut acb_struct,
1260        prec: mp_limb_signed_t,
1261    );
1262    pub fn arb_poly_evaluate_acb_horner(
1263        res: *mut acb_struct,
1264        f: *mut arb_poly_struct,
1265        a: *mut acb_struct,
1266        prec: mp_limb_signed_t,
1267    );
1268    pub fn _arb_poly_evaluate_acb_rectangular(
1269        y: *mut acb_struct,
1270        poly: arb_srcptr,
1271        len: mp_limb_signed_t,
1272        x: *mut acb_struct,
1273        prec: mp_limb_signed_t,
1274    );
1275    pub fn arb_poly_evaluate_acb_rectangular(
1276        res: *mut acb_struct,
1277        f: *mut arb_poly_struct,
1278        a: *mut acb_struct,
1279        prec: mp_limb_signed_t,
1280    );
1281    pub fn _arb_poly_evaluate_acb(
1282        res: *mut acb_struct,
1283        f: arb_srcptr,
1284        len: mp_limb_signed_t,
1285        x: *mut acb_struct,
1286        prec: mp_limb_signed_t,
1287    );
1288    pub fn arb_poly_evaluate_acb(
1289        res: *mut acb_struct,
1290        f: *mut arb_poly_struct,
1291        a: *mut acb_struct,
1292        prec: mp_limb_signed_t,
1293    );
1294    pub fn _arb_poly_evaluate2_acb_horner(
1295        y: *mut acb_struct,
1296        z: *mut acb_struct,
1297        f: arb_srcptr,
1298        len: mp_limb_signed_t,
1299        x: *mut acb_struct,
1300        prec: mp_limb_signed_t,
1301    );
1302    pub fn arb_poly_evaluate2_acb_horner(
1303        y: *mut acb_struct,
1304        z: *mut acb_struct,
1305        f: *mut arb_poly_struct,
1306        x: *mut acb_struct,
1307        prec: mp_limb_signed_t,
1308    );
1309    pub fn _arb_poly_evaluate2_acb_rectangular(
1310        y: *mut acb_struct,
1311        z: *mut acb_struct,
1312        f: arb_srcptr,
1313        len: mp_limb_signed_t,
1314        x: *mut acb_struct,
1315        prec: mp_limb_signed_t,
1316    );
1317    pub fn arb_poly_evaluate2_acb_rectangular(
1318        y: *mut acb_struct,
1319        z: *mut acb_struct,
1320        f: *mut arb_poly_struct,
1321        x: *mut acb_struct,
1322        prec: mp_limb_signed_t,
1323    );
1324    pub fn _arb_poly_evaluate2_acb(
1325        y: *mut acb_struct,
1326        z: *mut acb_struct,
1327        f: arb_srcptr,
1328        len: mp_limb_signed_t,
1329        x: *mut acb_struct,
1330        prec: mp_limb_signed_t,
1331    );
1332    pub fn arb_poly_evaluate2_acb(
1333        y: *mut acb_struct,
1334        z: *mut acb_struct,
1335        f: *mut arb_poly_struct,
1336        x: *mut acb_struct,
1337        prec: mp_limb_signed_t,
1338    );
1339    pub fn _arb_poly_lambertw_series(
1340        res: arb_ptr,
1341        z: arb_srcptr,
1342        zlen: mp_limb_signed_t,
1343        flags: c_int,
1344        len: mp_limb_signed_t,
1345        prec: mp_limb_signed_t,
1346    );
1347    pub fn arb_poly_lambertw_series(
1348        res: *mut arb_poly_struct,
1349        z: *mut arb_poly_struct,
1350        flags: c_int,
1351        len: mp_limb_signed_t,
1352        prec: mp_limb_signed_t,
1353    );
1354    pub fn _arb_poly_gamma_series(
1355        res: arb_ptr,
1356        h: arb_srcptr,
1357        hlen: mp_limb_signed_t,
1358        len: mp_limb_signed_t,
1359        prec: mp_limb_signed_t,
1360    );
1361    pub fn arb_poly_gamma_series(
1362        res: *mut arb_poly_struct,
1363        f: *mut arb_poly_struct,
1364        n: mp_limb_signed_t,
1365        prec: mp_limb_signed_t,
1366    );
1367    pub fn _arb_poly_rgamma_series(
1368        res: arb_ptr,
1369        h: arb_srcptr,
1370        hlen: mp_limb_signed_t,
1371        len: mp_limb_signed_t,
1372        prec: mp_limb_signed_t,
1373    );
1374    pub fn arb_poly_rgamma_series(
1375        res: *mut arb_poly_struct,
1376        f: *mut arb_poly_struct,
1377        n: mp_limb_signed_t,
1378        prec: mp_limb_signed_t,
1379    );
1380    pub fn _arb_poly_lgamma_series(
1381        res: arb_ptr,
1382        h: arb_srcptr,
1383        hlen: mp_limb_signed_t,
1384        len: mp_limb_signed_t,
1385        prec: mp_limb_signed_t,
1386    );
1387    pub fn arb_poly_lgamma_series(
1388        res: *mut arb_poly_struct,
1389        f: *mut arb_poly_struct,
1390        n: mp_limb_signed_t,
1391        prec: mp_limb_signed_t,
1392    );
1393    pub fn _arb_poly_digamma_series(
1394        res: arb_ptr,
1395        h: arb_srcptr,
1396        hlen: mp_limb_signed_t,
1397        len: mp_limb_signed_t,
1398        prec: mp_limb_signed_t,
1399    );
1400    pub fn arb_poly_digamma_series(
1401        res: *mut arb_poly_struct,
1402        f: *mut arb_poly_struct,
1403        n: mp_limb_signed_t,
1404        prec: mp_limb_signed_t,
1405    );
1406    pub fn _arb_poly_rising_ui_series(
1407        res: arb_ptr,
1408        f: arb_srcptr,
1409        flen: mp_limb_signed_t,
1410        r: mp_limb_t,
1411        trunc: mp_limb_signed_t,
1412        prec: mp_limb_signed_t,
1413    );
1414    pub fn arb_poly_rising_ui_series(
1415        res: *mut arb_poly_struct,
1416        f: *mut arb_poly_struct,
1417        r: mp_limb_t,
1418        trunc: mp_limb_signed_t,
1419        prec: mp_limb_signed_t,
1420    );
1421    pub fn _arb_poly_zeta_series(
1422        res: arb_ptr,
1423        h: arb_srcptr,
1424        hlen: mp_limb_signed_t,
1425        a: *mut arb_struct,
1426        deflate: c_int,
1427        len: mp_limb_signed_t,
1428        prec: mp_limb_signed_t,
1429    );
1430    pub fn arb_poly_zeta_series(
1431        res: *mut arb_poly_struct,
1432        f: *mut arb_poly_struct,
1433        a: *mut arb_struct,
1434        deflate: c_int,
1435        n: mp_limb_signed_t,
1436        prec: mp_limb_signed_t,
1437    );
1438    pub fn _arb_poly_riemann_siegel_theta_series(
1439        res: arb_ptr,
1440        h: arb_srcptr,
1441        hlen: mp_limb_signed_t,
1442        len: mp_limb_signed_t,
1443        prec: mp_limb_signed_t,
1444    );
1445    pub fn arb_poly_riemann_siegel_theta_series(
1446        res: *mut arb_poly_struct,
1447        h: *mut arb_poly_struct,
1448        n: mp_limb_signed_t,
1449        prec: mp_limb_signed_t,
1450    );
1451    pub fn _arb_poly_riemann_siegel_z_series(
1452        res: arb_ptr,
1453        h: arb_srcptr,
1454        hlen: mp_limb_signed_t,
1455        len: mp_limb_signed_t,
1456        prec: mp_limb_signed_t,
1457    );
1458    pub fn arb_poly_riemann_siegel_z_series(
1459        res: *mut arb_poly_struct,
1460        h: *mut arb_poly_struct,
1461        n: mp_limb_signed_t,
1462        prec: mp_limb_signed_t,
1463    );
1464    pub fn _arb_poly_swinnerton_dyer_ui_prec(n: mp_limb_t) -> mp_limb_signed_t;
1465    pub fn _arb_poly_swinnerton_dyer_ui(
1466        T: arb_ptr,
1467        n: mp_limb_t,
1468        trunc: mp_limb_signed_t,
1469        prec: mp_limb_signed_t,
1470    );
1471    pub fn arb_poly_swinnerton_dyer_ui(
1472        poly: *mut arb_poly_struct,
1473        n: mp_limb_t,
1474        prec: mp_limb_signed_t,
1475    );
1476    pub fn _arb_poly_newton_convergence_factor(
1477        convergence_factor: *mut arf_struct,
1478        poly: arb_srcptr,
1479        len: mp_limb_signed_t,
1480        convergence_interval: *mut arb_struct,
1481        prec: mp_limb_signed_t,
1482    );
1483    pub fn _arb_poly_newton_step(
1484        xnew: *mut arb_struct,
1485        poly: arb_srcptr,
1486        len: mp_limb_signed_t,
1487        x: *mut arb_struct,
1488        convergence_interval: *mut arb_struct,
1489        convergence_factor: *mut arf_struct,
1490        prec: mp_limb_signed_t,
1491    ) -> c_int;
1492    pub fn _arb_poly_newton_refine_root(
1493        r: *mut arb_struct,
1494        poly: arb_srcptr,
1495        len: mp_limb_signed_t,
1496        start: *mut arb_struct,
1497        convergence_interval: *mut arb_struct,
1498        convergence_factor: *mut arf_struct,
1499        eval_extra_prec: mp_limb_signed_t,
1500        prec: mp_limb_signed_t,
1501    );
1502    pub fn _arb_poly_root_bound_fujiwara(
1503        bound: *mut mag_struct,
1504        poly: arb_srcptr,
1505        len: mp_limb_signed_t,
1506    );
1507    pub fn arb_poly_root_bound_fujiwara(bound: *mut mag_struct, poly: *mut arb_poly_struct);
1508}
1509
1510pub unsafe fn arb_poly_length(poly: *const arb_poly_struct) -> mp_limb_signed_t {
1511    (*poly).length
1512}
1513
1514pub unsafe fn arb_poly_degree(poly: *const arb_poly_struct) -> mp_limb_signed_t {
1515    (*poly).length - 1
1516}
1517
1518pub unsafe fn arb_poly_is_zero(poly: *const arb_poly_struct) -> bool {
1519    (*poly).length == 0
1520}
1521
1522pub unsafe fn arb_poly_is_one(poly: *const arb_poly_struct) -> bool {
1523    ((*poly).length == 1) && (arb_is_one((*poly).coeffs) != 0)
1524}
1525
1526/*
1527pub unsafe fn arb_poly_is_x(poly: *const arb_poly_struct) -> bool {
1528    ((*poly).length == 2) && (arb_is_zero((*poly).coeffs) != 0)
1529        && (arb_is_one((*poly).coeffs + 1) != 0)
1530}*/