Skip to main content

flint_sys/
arb_poly.rs

1/* automatically generated by rust-bindgen 0.70.1 */
2
3use libc::*;
4use crate::deps::*;
5use crate::acb_types::*;
6use crate::arb_types::*;
7use crate::arf_types::*;
8use crate::flint::*;
9use crate::fmpq_types::*;
10use crate::fmpz_types::*;
11
12
13extern "C" {
14    pub fn arb_poly_init(poly: *mut arb_poly_struct);
15    pub fn arb_poly_init2(poly: *mut arb_poly_struct, len: slong);
16    pub fn arb_poly_clear(poly: *mut arb_poly_struct);
17    pub fn arb_poly_fit_length(poly: *mut arb_poly_struct, len: slong);
18    pub fn _arb_poly_set_length(poly: *mut arb_poly_struct, len: slong);
19    pub fn _arb_poly_normalise(poly: *mut arb_poly_struct);
20    #[link_name = "arb_poly_swap__extern"]
21    pub fn arb_poly_swap(poly1: *mut arb_poly_struct, poly2: *mut arb_poly_struct);
22    pub fn arb_poly_set(poly: *mut arb_poly_struct, src: *const arb_poly_struct);
23    pub fn arb_poly_set_round(poly: *mut arb_poly_struct, src: *const arb_poly_struct, prec: slong);
24    pub fn arb_poly_set_trunc(res: *mut arb_poly_struct, poly: *const arb_poly_struct, n: slong);
25    pub fn arb_poly_set_trunc_round(
26        res: *mut arb_poly_struct,
27        poly: *const arb_poly_struct,
28        n: slong,
29        prec: slong,
30    );
31    #[link_name = "arb_poly_length__extern"]
32    pub fn arb_poly_length(poly: *const arb_poly_struct) -> slong;
33    #[link_name = "arb_poly_degree__extern"]
34    pub fn arb_poly_degree(poly: *const arb_poly_struct) -> slong;
35    pub fn arb_poly_valuation(poly: *const arb_poly_struct) -> slong;
36    #[link_name = "arb_poly_is_zero__extern"]
37    pub fn arb_poly_is_zero(z: *const arb_poly_struct) -> libc::c_int;
38    #[link_name = "arb_poly_is_one__extern"]
39    pub fn arb_poly_is_one(z: *const arb_poly_struct) -> libc::c_int;
40    #[link_name = "arb_poly_is_x__extern"]
41    pub fn arb_poly_is_x(z: *const arb_poly_struct) -> libc::c_int;
42    #[link_name = "arb_poly_zero__extern"]
43    pub fn arb_poly_zero(poly: *mut arb_poly_struct);
44    #[link_name = "arb_poly_one__extern"]
45    pub fn arb_poly_one(poly: *mut arb_poly_struct);
46    pub fn arb_poly_set_coeff_si(poly: *mut arb_poly_struct, n: slong, x: slong);
47    pub fn arb_poly_set_coeff_arb(poly: *mut arb_poly_struct, n: slong, x: *const arb_struct);
48    pub fn arb_poly_get_coeff_arb(x: *mut arb_struct, poly: *const arb_poly_struct, n: slong);
49    pub fn _arb_poly_reverse(res: arb_ptr, poly: arb_srcptr, len: slong, n: slong);
50    pub fn _arb_poly_shift_right(res: arb_ptr, poly: arb_srcptr, len: slong, n: slong);
51    pub fn arb_poly_shift_right(res: *mut arb_poly_struct, poly: *const arb_poly_struct, n: slong);
52    pub fn _arb_poly_shift_left(res: arb_ptr, poly: arb_srcptr, len: slong, n: slong);
53    pub fn arb_poly_shift_left(res: *mut arb_poly_struct, poly: *const arb_poly_struct, n: slong);
54    #[link_name = "arb_poly_truncate__extern"]
55    pub fn arb_poly_truncate(poly: *mut arb_poly_struct, newlen: slong);
56    pub fn arb_poly_set_fmpz_poly(
57        poly: *mut arb_poly_struct,
58        src: *const fmpz_poly_struct,
59        prec: slong,
60    );
61    pub fn arb_poly_set_fmpq_poly(
62        poly: *mut arb_poly_struct,
63        src: *const fmpq_poly_struct,
64        prec: slong,
65    );
66    #[link_name = "arb_poly_set_arb__extern"]
67    pub fn arb_poly_set_arb(poly: *mut arb_poly_struct, c: *const arb_struct);
68    pub fn arb_poly_set_si(poly: *mut arb_poly_struct, c: slong);
69    pub fn arb_poly_get_unique_fmpz_poly(
70        res: *mut fmpz_poly_struct,
71        src: *const arb_poly_struct,
72    ) -> libc::c_int;
73    pub fn arb_poly_contains(
74        poly1: *const arb_poly_struct,
75        poly2: *const arb_poly_struct,
76    ) -> libc::c_int;
77    pub fn arb_poly_contains_fmpz_poly(
78        poly1: *const arb_poly_struct,
79        poly2: *const fmpz_poly_struct,
80    ) -> libc::c_int;
81    pub fn arb_poly_contains_fmpq_poly(
82        poly1: *const arb_poly_struct,
83        poly2: *const fmpq_poly_struct,
84    ) -> libc::c_int;
85    pub fn arb_poly_equal(A: *const arb_poly_struct, B: *const arb_poly_struct) -> libc::c_int;
86    pub fn _arb_poly_overlaps(
87        poly1: arb_srcptr,
88        len1: slong,
89        poly2: arb_srcptr,
90        len2: slong,
91    ) -> libc::c_int;
92    pub fn arb_poly_overlaps(
93        poly1: *const arb_poly_struct,
94        poly2: *const arb_poly_struct,
95    ) -> libc::c_int;
96    pub fn _arb_poly_majorant(res: arb_ptr, vec: arb_srcptr, len: slong, prec: slong);
97    pub fn arb_poly_majorant(res: *mut arb_poly_struct, poly: *const arb_poly_struct, prec: slong);
98    pub fn arb_poly_fprintd(file: *mut FILE, poly: *const arb_poly_struct, digits: slong);
99    pub fn arb_poly_printd(poly: *const arb_poly_struct, digits: slong);
100    pub fn arb_poly_randtest(
101        poly: *mut arb_poly_struct,
102        state: *mut flint_rand_struct,
103        len: slong,
104        prec: slong,
105        mag_bits: slong,
106    );
107    pub fn _arb_poly_add(
108        res: arb_ptr,
109        poly1: arb_srcptr,
110        len1: slong,
111        poly2: arb_srcptr,
112        len2: slong,
113        prec: slong,
114    );
115    pub fn arb_poly_add(
116        res: *mut arb_poly_struct,
117        poly1: *const arb_poly_struct,
118        poly2: *const arb_poly_struct,
119        prec: slong,
120    );
121    pub fn arb_poly_add_si(
122        res: *mut arb_poly_struct,
123        poly: *const arb_poly_struct,
124        c: slong,
125        prec: slong,
126    );
127    pub fn _arb_poly_sub(
128        res: arb_ptr,
129        poly1: arb_srcptr,
130        len1: slong,
131        poly2: arb_srcptr,
132        len2: slong,
133        prec: slong,
134    );
135    pub fn arb_poly_sub(
136        res: *mut arb_poly_struct,
137        poly1: *const arb_poly_struct,
138        poly2: *const arb_poly_struct,
139        prec: slong,
140    );
141    pub fn arb_poly_add_series(
142        res: *mut arb_poly_struct,
143        poly1: *const arb_poly_struct,
144        poly2: *const arb_poly_struct,
145        len: slong,
146        prec: slong,
147    );
148    pub fn arb_poly_sub_series(
149        res: *mut arb_poly_struct,
150        poly1: *const arb_poly_struct,
151        poly2: *const arb_poly_struct,
152        len: slong,
153        prec: slong,
154    );
155    #[link_name = "arb_poly_neg__extern"]
156    pub fn arb_poly_neg(res: *mut arb_poly_struct, poly: *const arb_poly_struct);
157    #[link_name = "arb_poly_scalar_mul_2exp_si__extern"]
158    pub fn arb_poly_scalar_mul_2exp_si(
159        res: *mut arb_poly_struct,
160        poly: *const arb_poly_struct,
161        c: slong,
162    );
163    #[link_name = "arb_poly_scalar_mul__extern"]
164    pub fn arb_poly_scalar_mul(
165        res: *mut arb_poly_struct,
166        poly: *const arb_poly_struct,
167        c: *const arb_struct,
168        prec: slong,
169    );
170    #[link_name = "arb_poly_scalar_div__extern"]
171    pub fn arb_poly_scalar_div(
172        res: *mut arb_poly_struct,
173        poly: *const arb_poly_struct,
174        c: *const arb_struct,
175        prec: slong,
176    );
177    pub fn _arb_poly_mullow_classical(
178        res: arb_ptr,
179        poly1: arb_srcptr,
180        len1: slong,
181        poly2: arb_srcptr,
182        len2: slong,
183        n: slong,
184        prec: slong,
185    );
186    pub fn arb_poly_mullow_classical(
187        res: *mut arb_poly_struct,
188        poly1: *const arb_poly_struct,
189        poly2: *const arb_poly_struct,
190        n: slong,
191        prec: slong,
192    );
193    pub fn _arb_poly_mullow_block(
194        C: arb_ptr,
195        A: arb_srcptr,
196        lenA: slong,
197        B: arb_srcptr,
198        lenB: slong,
199        n: slong,
200        prec: slong,
201    );
202    pub fn arb_poly_mullow_block(
203        res: *mut arb_poly_struct,
204        poly1: *const arb_poly_struct,
205        poly2: *const arb_poly_struct,
206        len: slong,
207        prec: slong,
208    );
209    pub fn _arb_poly_mullow(
210        C: arb_ptr,
211        A: arb_srcptr,
212        lenA: slong,
213        B: arb_srcptr,
214        lenB: slong,
215        n: slong,
216        prec: slong,
217    );
218    pub fn arb_poly_mullow(
219        res: *mut arb_poly_struct,
220        poly1: *const arb_poly_struct,
221        poly2: *const arb_poly_struct,
222        len: slong,
223        prec: slong,
224    );
225    pub fn _arb_poly_mulmid_block(
226        z: arb_ptr,
227        x: arb_srcptr,
228        xlen: slong,
229        y: arb_srcptr,
230        ylen: slong,
231        nlo: slong,
232        nhi: slong,
233        prec: slong,
234    );
235    pub fn arb_poly_mulmid_block(
236        res: *mut arb_poly_struct,
237        poly1: *const arb_poly_struct,
238        poly2: *const arb_poly_struct,
239        nlo: slong,
240        nhi: slong,
241        prec: slong,
242    );
243    pub fn _arb_poly_mulmid_classical(
244        z: arb_ptr,
245        x: arb_srcptr,
246        xlen: slong,
247        y: arb_srcptr,
248        ylen: slong,
249        nlo: slong,
250        nhi: slong,
251        prec: slong,
252    );
253    pub fn arb_poly_mulmid_classical(
254        res: *mut arb_poly_struct,
255        poly1: *const arb_poly_struct,
256        poly2: *const arb_poly_struct,
257        nlo: slong,
258        nhi: slong,
259        prec: slong,
260    );
261    pub fn _arb_poly_mulmid(
262        z: arb_ptr,
263        x: arb_srcptr,
264        xlen: slong,
265        y: arb_srcptr,
266        ylen: slong,
267        nlo: slong,
268        nhi: slong,
269        prec: slong,
270    );
271    pub fn arb_poly_mulmid(
272        res: *mut arb_poly_struct,
273        poly1: *const arb_poly_struct,
274        poly2: *const arb_poly_struct,
275        nlo: slong,
276        nhi: slong,
277        prec: slong,
278    );
279    pub fn _arb_poly_mul(
280        C: arb_ptr,
281        A: arb_srcptr,
282        lenA: slong,
283        B: arb_srcptr,
284        lenB: slong,
285        prec: slong,
286    );
287    pub fn arb_poly_mul(
288        res: *mut arb_poly_struct,
289        poly1: *const arb_poly_struct,
290        poly2: *const arb_poly_struct,
291        prec: slong,
292    );
293    #[link_name = "_arb_poly_mul_monic__extern"]
294    pub fn _arb_poly_mul_monic(
295        res: arb_ptr,
296        poly1: arb_srcptr,
297        len1: slong,
298        poly2: arb_srcptr,
299        len2: slong,
300        prec: slong,
301    );
302    pub fn _arb_poly_inv_series(Qinv: arb_ptr, Q: arb_srcptr, Qlen: slong, len: slong, prec: slong);
303    pub fn arb_poly_inv_series(
304        Qinv: *mut arb_poly_struct,
305        Q: *const arb_poly_struct,
306        n: slong,
307        prec: slong,
308    );
309    pub fn _arb_poly_div_series(
310        Q: arb_ptr,
311        A: arb_srcptr,
312        Alen: slong,
313        B: arb_srcptr,
314        Blen: slong,
315        n: slong,
316        prec: slong,
317    );
318    pub fn arb_poly_div_series(
319        Q: *mut arb_poly_struct,
320        A: *const arb_poly_struct,
321        B: *const arb_poly_struct,
322        n: slong,
323        prec: slong,
324    );
325    pub fn _arb_poly_div(
326        Q: arb_ptr,
327        A: arb_srcptr,
328        lenA: slong,
329        B: arb_srcptr,
330        lenB: slong,
331        prec: slong,
332    );
333    pub fn _arb_poly_divrem(
334        Q: arb_ptr,
335        R: arb_ptr,
336        A: arb_srcptr,
337        lenA: slong,
338        B: arb_srcptr,
339        lenB: slong,
340        prec: slong,
341    );
342    pub fn _arb_poly_rem(
343        R: arb_ptr,
344        A: arb_srcptr,
345        lenA: slong,
346        B: arb_srcptr,
347        lenB: slong,
348        prec: slong,
349    );
350    pub fn arb_poly_divrem(
351        Q: *mut arb_poly_struct,
352        R: *mut arb_poly_struct,
353        A: *const arb_poly_struct,
354        B: *const arb_poly_struct,
355        prec: slong,
356    ) -> libc::c_int;
357    pub fn _arb_poly_div_root(
358        Q: arb_ptr,
359        R: *mut arb_struct,
360        A: arb_srcptr,
361        len: slong,
362        c: *const arb_struct,
363        prec: slong,
364    );
365    pub fn _arb_poly_product_roots(poly: arb_ptr, xs: arb_srcptr, n: slong, prec: slong);
366    pub fn arb_poly_product_roots(
367        poly: *mut arb_poly_struct,
368        xs: arb_srcptr,
369        n: slong,
370        prec: slong,
371    );
372    pub fn _arb_poly_product_roots_complex(
373        poly: arb_ptr,
374        r: arb_srcptr,
375        rn: slong,
376        c: acb_srcptr,
377        cn: slong,
378        prec: slong,
379    );
380    pub fn arb_poly_product_roots_complex(
381        poly: *mut arb_poly_struct,
382        r: arb_srcptr,
383        rn: slong,
384        c: acb_srcptr,
385        cn: slong,
386        prec: slong,
387    );
388    pub fn _arb_poly_tree_alloc(len: slong) -> *mut arb_ptr;
389    pub fn _arb_poly_tree_free(tree: *mut arb_ptr, len: slong);
390    pub fn _arb_poly_tree_build(tree: *mut arb_ptr, roots: arb_srcptr, len: slong, prec: slong);
391    pub fn _arb_poly_taylor_shift(poly: arb_ptr, c: *const arb_struct, n: slong, prec: slong);
392    pub fn arb_poly_taylor_shift(
393        g: *mut arb_poly_struct,
394        f: *const arb_poly_struct,
395        c: *const arb_struct,
396        prec: slong,
397    );
398    pub fn _arb_poly_compose(
399        res: arb_ptr,
400        poly1: arb_srcptr,
401        len1: slong,
402        poly2: arb_srcptr,
403        len2: slong,
404        prec: slong,
405    );
406    pub fn arb_poly_compose(
407        res: *mut arb_poly_struct,
408        poly1: *const arb_poly_struct,
409        poly2: *const arb_poly_struct,
410        prec: slong,
411    );
412    pub fn _arb_poly_compose_series(
413        res: arb_ptr,
414        poly1: arb_srcptr,
415        len1: slong,
416        poly2: arb_srcptr,
417        len2: slong,
418        n: slong,
419        prec: slong,
420    );
421    pub fn arb_poly_compose_series(
422        res: *mut arb_poly_struct,
423        poly1: *const arb_poly_struct,
424        poly2: *const arb_poly_struct,
425        n: slong,
426        prec: slong,
427    );
428    pub fn _arb_poly_revert_series(
429        Qinv: arb_ptr,
430        Q: arb_srcptr,
431        Qlen: slong,
432        n: slong,
433        prec: slong,
434    );
435    pub fn arb_poly_revert_series(
436        Qinv: *mut arb_poly_struct,
437        Q: *const arb_poly_struct,
438        n: slong,
439        prec: slong,
440    );
441    pub fn _arb_poly_evaluate_horner(
442        res: *mut arb_struct,
443        f: arb_srcptr,
444        len: slong,
445        a: *const arb_struct,
446        prec: slong,
447    );
448    pub fn arb_poly_evaluate_horner(
449        res: *mut arb_struct,
450        f: *const arb_poly_struct,
451        a: *const arb_struct,
452        prec: slong,
453    );
454    pub fn _arb_poly_evaluate_rectangular(
455        y: *mut arb_struct,
456        poly: arb_srcptr,
457        len: slong,
458        x: *const arb_struct,
459        prec: slong,
460    );
461    pub fn arb_poly_evaluate_rectangular(
462        res: *mut arb_struct,
463        f: *const arb_poly_struct,
464        a: *const arb_struct,
465        prec: slong,
466    );
467    pub fn _arb_poly_evaluate(
468        res: *mut arb_struct,
469        f: arb_srcptr,
470        len: slong,
471        a: *const arb_struct,
472        prec: slong,
473    );
474    pub fn arb_poly_evaluate(
475        res: *mut arb_struct,
476        f: *const arb_poly_struct,
477        a: *const arb_struct,
478        prec: slong,
479    );
480    pub fn _arb_poly_evaluate2_horner(
481        y: *mut arb_struct,
482        z: *mut arb_struct,
483        f: arb_srcptr,
484        len: slong,
485        x: *const arb_struct,
486        prec: slong,
487    );
488    pub fn arb_poly_evaluate2_horner(
489        y: *mut arb_struct,
490        z: *mut arb_struct,
491        f: *const arb_poly_struct,
492        x: *const arb_struct,
493        prec: slong,
494    );
495    pub fn _arb_poly_evaluate2_rectangular(
496        y: *mut arb_struct,
497        z: *mut arb_struct,
498        f: arb_srcptr,
499        len: slong,
500        x: *const arb_struct,
501        prec: slong,
502    );
503    pub fn arb_poly_evaluate2_rectangular(
504        y: *mut arb_struct,
505        z: *mut arb_struct,
506        f: *const arb_poly_struct,
507        x: *const arb_struct,
508        prec: slong,
509    );
510    pub fn _arb_poly_evaluate2(
511        y: *mut arb_struct,
512        z: *mut arb_struct,
513        f: arb_srcptr,
514        len: slong,
515        x: *const arb_struct,
516        prec: slong,
517    );
518    pub fn arb_poly_evaluate2(
519        y: *mut arb_struct,
520        z: *mut arb_struct,
521        f: *const arb_poly_struct,
522        x: *const arb_struct,
523        prec: slong,
524    );
525    pub fn _arb_poly_evaluate_vec_iter(
526        ys: arb_ptr,
527        poly: arb_srcptr,
528        plen: slong,
529        xs: arb_srcptr,
530        n: slong,
531        prec: slong,
532    );
533    pub fn arb_poly_evaluate_vec_iter(
534        ys: arb_ptr,
535        poly: *const arb_poly_struct,
536        xs: arb_srcptr,
537        n: slong,
538        prec: slong,
539    );
540    pub fn _arb_poly_evaluate_vec_fast_precomp(
541        vs: arb_ptr,
542        poly: arb_srcptr,
543        plen: slong,
544        tree: *mut arb_ptr,
545        len: slong,
546        prec: slong,
547    );
548    pub fn _arb_poly_evaluate_vec_fast(
549        ys: arb_ptr,
550        poly: arb_srcptr,
551        plen: slong,
552        xs: arb_srcptr,
553        n: slong,
554        prec: slong,
555    );
556    pub fn arb_poly_evaluate_vec_fast(
557        ys: arb_ptr,
558        poly: *const arb_poly_struct,
559        xs: arb_srcptr,
560        n: slong,
561        prec: slong,
562    );
563    pub fn _arb_poly_interpolate_newton(
564        poly: arb_ptr,
565        xs: arb_srcptr,
566        ys: arb_srcptr,
567        n: slong,
568        prec: slong,
569    );
570    pub fn arb_poly_interpolate_newton(
571        poly: *mut arb_poly_struct,
572        xs: arb_srcptr,
573        ys: arb_srcptr,
574        n: slong,
575        prec: slong,
576    );
577    pub fn _arb_poly_interpolate_barycentric(
578        poly: arb_ptr,
579        xs: arb_srcptr,
580        ys: arb_srcptr,
581        n: slong,
582        prec: slong,
583    );
584    pub fn arb_poly_interpolate_barycentric(
585        poly: *mut arb_poly_struct,
586        xs: arb_srcptr,
587        ys: arb_srcptr,
588        n: slong,
589        prec: slong,
590    );
591    pub fn _arb_poly_interpolation_weights(w: arb_ptr, tree: *mut arb_ptr, len: slong, prec: slong);
592    pub fn _arb_poly_interpolate_fast_precomp(
593        poly: arb_ptr,
594        ys: arb_srcptr,
595        tree: *mut arb_ptr,
596        weights: arb_srcptr,
597        len: slong,
598        prec: slong,
599    );
600    pub fn _arb_poly_interpolate_fast(
601        poly: arb_ptr,
602        xs: arb_srcptr,
603        ys: arb_srcptr,
604        len: slong,
605        prec: slong,
606    );
607    pub fn arb_poly_interpolate_fast(
608        poly: *mut arb_poly_struct,
609        xs: arb_srcptr,
610        ys: arb_srcptr,
611        n: slong,
612        prec: slong,
613    );
614    pub fn _arb_poly_derivative(res: arb_ptr, poly: arb_srcptr, len: slong, prec: slong);
615    pub fn arb_poly_derivative(
616        res: *mut arb_poly_struct,
617        poly: *const arb_poly_struct,
618        prec: slong,
619    );
620    pub fn _arb_poly_nth_derivative(
621        res: arb_ptr,
622        poly: arb_srcptr,
623        n: ulong,
624        len: slong,
625        prec: slong,
626    );
627    pub fn arb_poly_nth_derivative(
628        res: *mut arb_poly_struct,
629        poly: *const arb_poly_struct,
630        n: ulong,
631        prec: slong,
632    );
633    pub fn _arb_poly_integral(res: arb_ptr, poly: arb_srcptr, len: slong, prec: slong);
634    pub fn arb_poly_integral(res: *mut arb_poly_struct, poly: *const arb_poly_struct, prec: slong);
635    pub fn arb_poly_borel_transform(
636        res: *mut arb_poly_struct,
637        poly: *const arb_poly_struct,
638        prec: slong,
639    );
640    pub fn _arb_poly_borel_transform(res: arb_ptr, poly: arb_srcptr, len: slong, prec: slong);
641    pub fn arb_poly_inv_borel_transform(
642        res: *mut arb_poly_struct,
643        poly: *const arb_poly_struct,
644        prec: slong,
645    );
646    pub fn _arb_poly_inv_borel_transform(res: arb_ptr, poly: arb_srcptr, len: slong, prec: slong);
647    pub fn _arb_poly_binomial_transform_basecase(
648        b: arb_ptr,
649        a: arb_srcptr,
650        alen: slong,
651        len: slong,
652        prec: slong,
653    );
654    pub fn arb_poly_binomial_transform_basecase(
655        b: *mut arb_poly_struct,
656        a: *const arb_poly_struct,
657        len: slong,
658        prec: slong,
659    );
660    pub fn _arb_poly_binomial_transform_convolution(
661        b: arb_ptr,
662        a: arb_srcptr,
663        alen: slong,
664        len: slong,
665        prec: slong,
666    );
667    pub fn arb_poly_binomial_transform_convolution(
668        b: *mut arb_poly_struct,
669        a: *const arb_poly_struct,
670        len: slong,
671        prec: slong,
672    );
673    pub fn _arb_poly_binomial_transform(
674        b: arb_ptr,
675        a: arb_srcptr,
676        alen: slong,
677        len: slong,
678        prec: slong,
679    );
680    pub fn arb_poly_binomial_transform(
681        b: *mut arb_poly_struct,
682        a: *const arb_poly_struct,
683        len: slong,
684        prec: slong,
685    );
686    pub fn _arb_poly_graeffe_transform(b: arb_ptr, a: arb_srcptr, len: slong, prec: slong);
687    pub fn arb_poly_graeffe_transform(
688        b: *mut arb_poly_struct,
689        a: *const arb_poly_struct,
690        prec: slong,
691    );
692    pub fn _arb_poly_pow_ui_trunc_binexp(
693        res: arb_ptr,
694        f: arb_srcptr,
695        flen: slong,
696        exp: ulong,
697        len: slong,
698        prec: slong,
699    );
700    pub fn arb_poly_pow_ui_trunc_binexp(
701        res: *mut arb_poly_struct,
702        poly: *const arb_poly_struct,
703        exp: ulong,
704        len: slong,
705        prec: slong,
706    );
707    pub fn _arb_poly_pow_ui(res: arb_ptr, f: arb_srcptr, flen: slong, exp: ulong, prec: slong);
708    pub fn arb_poly_pow_ui(
709        res: *mut arb_poly_struct,
710        poly: *const arb_poly_struct,
711        exp: ulong,
712        prec: slong,
713    );
714    pub fn _arb_poly_pow_series(
715        h: arb_ptr,
716        f: arb_srcptr,
717        flen: slong,
718        g: arb_srcptr,
719        glen: slong,
720        len: slong,
721        prec: slong,
722    );
723    pub fn arb_poly_pow_series(
724        h: *mut arb_poly_struct,
725        f: *const arb_poly_struct,
726        g: *const arb_poly_struct,
727        len: slong,
728        prec: slong,
729    );
730    pub fn _arb_poly_pow_arb_series(
731        h: arb_ptr,
732        f: arb_srcptr,
733        flen: slong,
734        g: *const arb_struct,
735        len: slong,
736        prec: slong,
737    );
738    pub fn arb_poly_pow_arb_series(
739        h: *mut arb_poly_struct,
740        f: *const arb_poly_struct,
741        g: *const arb_struct,
742        len: slong,
743        prec: slong,
744    );
745    pub fn _arb_poly_binomial_pow_arb_series(
746        h: arb_ptr,
747        f: arb_srcptr,
748        flen: slong,
749        g: *const arb_struct,
750        len: slong,
751        prec: slong,
752    );
753    pub fn _arb_poly_rsqrt_series(g: arb_ptr, h: arb_srcptr, hlen: slong, len: slong, prec: slong);
754    pub fn arb_poly_rsqrt_series(
755        g: *mut arb_poly_struct,
756        h: *const arb_poly_struct,
757        n: slong,
758        prec: slong,
759    );
760    pub fn _arb_poly_sqrt_series(g: arb_ptr, h: arb_srcptr, hlen: slong, len: slong, prec: slong);
761    pub fn arb_poly_sqrt_series(
762        g: *mut arb_poly_struct,
763        h: *const arb_poly_struct,
764        n: slong,
765        prec: slong,
766    );
767    pub fn _arb_poly_log_series(res: arb_ptr, f: arb_srcptr, flen: slong, n: slong, prec: slong);
768    pub fn arb_poly_log_series(
769        res: *mut arb_poly_struct,
770        f: *const arb_poly_struct,
771        n: slong,
772        prec: slong,
773    );
774    pub fn _arb_poly_log1p_series(res: arb_ptr, f: arb_srcptr, flen: slong, n: slong, prec: slong);
775    pub fn arb_poly_log1p_series(
776        res: *mut arb_poly_struct,
777        f: *const arb_poly_struct,
778        n: slong,
779        prec: slong,
780    );
781    pub fn _arb_poly_atan_series(res: arb_ptr, f: arb_srcptr, flen: slong, n: slong, prec: slong);
782    pub fn arb_poly_atan_series(
783        res: *mut arb_poly_struct,
784        f: *const arb_poly_struct,
785        n: slong,
786        prec: slong,
787    );
788    pub fn _arb_poly_asin_series(res: arb_ptr, f: arb_srcptr, flen: slong, n: slong, prec: slong);
789    pub fn arb_poly_asin_series(
790        res: *mut arb_poly_struct,
791        f: *const arb_poly_struct,
792        n: slong,
793        prec: slong,
794    );
795    pub fn _arb_poly_acos_series(res: arb_ptr, f: arb_srcptr, flen: slong, n: slong, prec: slong);
796    pub fn arb_poly_acos_series(
797        res: *mut arb_poly_struct,
798        f: *const arb_poly_struct,
799        n: slong,
800        prec: slong,
801    );
802    pub fn _arb_poly_exp_series_basecase(
803        f: arb_ptr,
804        h: arb_srcptr,
805        hlen: slong,
806        n: slong,
807        prec: slong,
808    );
809    pub fn arb_poly_exp_series_basecase(
810        f: *mut arb_poly_struct,
811        h: *const arb_poly_struct,
812        n: slong,
813        prec: slong,
814    );
815    pub fn _arb_poly_exp_series(f: arb_ptr, h: arb_srcptr, hlen: slong, n: slong, prec: slong);
816    pub fn arb_poly_exp_series(
817        f: *mut arb_poly_struct,
818        h: *const arb_poly_struct,
819        n: slong,
820        prec: slong,
821    );
822    pub fn _arb_poly_sinh_cosh_series_basecase(
823        s: arb_ptr,
824        c: arb_ptr,
825        h: arb_srcptr,
826        hlen: slong,
827        n: slong,
828        prec: slong,
829    );
830    pub fn arb_poly_sinh_cosh_series_basecase(
831        s: *mut arb_poly_struct,
832        c: *mut arb_poly_struct,
833        h: *const arb_poly_struct,
834        n: slong,
835        prec: slong,
836    );
837    pub fn _arb_poly_sinh_cosh_series_exponential(
838        s: arb_ptr,
839        c: arb_ptr,
840        h: arb_srcptr,
841        hlen: slong,
842        n: slong,
843        prec: slong,
844    );
845    pub fn arb_poly_sinh_cosh_series_exponential(
846        s: *mut arb_poly_struct,
847        c: *mut arb_poly_struct,
848        h: *const arb_poly_struct,
849        n: slong,
850        prec: slong,
851    );
852    pub fn _arb_poly_sinh_cosh_series(
853        s: arb_ptr,
854        c: arb_ptr,
855        h: arb_srcptr,
856        hlen: slong,
857        n: slong,
858        prec: slong,
859    );
860    pub fn arb_poly_sinh_cosh_series(
861        s: *mut arb_poly_struct,
862        c: *mut arb_poly_struct,
863        h: *const arb_poly_struct,
864        n: slong,
865        prec: slong,
866    );
867    pub fn _arb_poly_sinh_series(s: arb_ptr, h: arb_srcptr, hlen: slong, n: slong, prec: slong);
868    pub fn arb_poly_sinh_series(
869        s: *mut arb_poly_struct,
870        h: *const arb_poly_struct,
871        n: slong,
872        prec: slong,
873    );
874    pub fn _arb_poly_cosh_series(c: arb_ptr, h: arb_srcptr, hlen: slong, n: slong, prec: slong);
875    pub fn arb_poly_cosh_series(
876        c: *mut arb_poly_struct,
877        h: *const arb_poly_struct,
878        n: slong,
879        prec: slong,
880    );
881    pub fn _arb_poly_sin_cos_series(
882        s: arb_ptr,
883        c: arb_ptr,
884        h: arb_srcptr,
885        hlen: slong,
886        len: slong,
887        prec: slong,
888    );
889    pub fn arb_poly_sin_cos_series(
890        s: *mut arb_poly_struct,
891        c: *mut arb_poly_struct,
892        h: *const arb_poly_struct,
893        n: slong,
894        prec: slong,
895    );
896    pub fn _arb_poly_sin_cos_pi_series(
897        s: arb_ptr,
898        c: arb_ptr,
899        h: arb_srcptr,
900        hlen: slong,
901        len: slong,
902        prec: slong,
903    );
904    pub fn arb_poly_sin_cos_pi_series(
905        s: *mut arb_poly_struct,
906        c: *mut arb_poly_struct,
907        h: *const arb_poly_struct,
908        n: slong,
909        prec: slong,
910    );
911    pub fn _arb_poly_sin_series(g: arb_ptr, h: arb_srcptr, hlen: slong, n: slong, prec: slong);
912    pub fn arb_poly_sin_series(
913        g: *mut arb_poly_struct,
914        h: *const arb_poly_struct,
915        n: slong,
916        prec: slong,
917    );
918    pub fn _arb_poly_cos_series(g: arb_ptr, h: arb_srcptr, hlen: slong, n: slong, prec: slong);
919    pub fn arb_poly_cos_series(
920        g: *mut arb_poly_struct,
921        h: *const arb_poly_struct,
922        n: slong,
923        prec: slong,
924    );
925    pub fn _arb_poly_sin_pi_series(g: arb_ptr, h: arb_srcptr, hlen: slong, n: slong, prec: slong);
926    pub fn arb_poly_sin_pi_series(
927        g: *mut arb_poly_struct,
928        h: *const arb_poly_struct,
929        n: slong,
930        prec: slong,
931    );
932    pub fn _arb_poly_cos_pi_series(g: arb_ptr, h: arb_srcptr, hlen: slong, n: slong, prec: slong);
933    pub fn arb_poly_cos_pi_series(
934        g: *mut arb_poly_struct,
935        h: *const arb_poly_struct,
936        n: slong,
937        prec: slong,
938    );
939    pub fn _arb_poly_cot_pi_series(g: arb_ptr, h: arb_srcptr, hlen: slong, n: slong, prec: slong);
940    pub fn arb_poly_cot_pi_series(
941        g: *mut arb_poly_struct,
942        h: *const arb_poly_struct,
943        n: slong,
944        prec: slong,
945    );
946    pub fn _arb_poly_tan_series(g: arb_ptr, h: arb_srcptr, hlen: slong, len: slong, prec: slong);
947    pub fn arb_poly_tan_series(
948        g: *mut arb_poly_struct,
949        h: *const arb_poly_struct,
950        n: slong,
951        prec: slong,
952    );
953    pub fn _arb_poly_sinc_series(g: arb_ptr, h: arb_srcptr, hlen: slong, n: slong, prec: slong);
954    pub fn arb_poly_sinc_series(
955        g: *mut arb_poly_struct,
956        h: *const arb_poly_struct,
957        n: slong,
958        prec: slong,
959    );
960    pub fn _arb_poly_sinc_pi_series(g: arb_ptr, h: arb_srcptr, hlen: slong, n: slong, prec: slong);
961    pub fn arb_poly_sinc_pi_series(
962        g: *mut arb_poly_struct,
963        h: *const arb_poly_struct,
964        n: slong,
965        prec: slong,
966    );
967    pub fn _arb_poly_evaluate_acb_horner(
968        res: *mut acb_struct,
969        f: arb_srcptr,
970        len: slong,
971        x: *const acb_struct,
972        prec: slong,
973    );
974    pub fn arb_poly_evaluate_acb_horner(
975        res: *mut acb_struct,
976        f: *const arb_poly_struct,
977        a: *const acb_struct,
978        prec: slong,
979    );
980    pub fn _arb_poly_evaluate_acb_rectangular(
981        y: *mut acb_struct,
982        poly: arb_srcptr,
983        len: slong,
984        x: *const acb_struct,
985        prec: slong,
986    );
987    pub fn arb_poly_evaluate_acb_rectangular(
988        res: *mut acb_struct,
989        f: *const arb_poly_struct,
990        a: *const acb_struct,
991        prec: slong,
992    );
993    pub fn _arb_poly_evaluate_acb(
994        res: *mut acb_struct,
995        f: arb_srcptr,
996        len: slong,
997        x: *const acb_struct,
998        prec: slong,
999    );
1000    pub fn arb_poly_evaluate_acb(
1001        res: *mut acb_struct,
1002        f: *const arb_poly_struct,
1003        a: *const acb_struct,
1004        prec: slong,
1005    );
1006    pub fn _arb_poly_evaluate2_acb_horner(
1007        y: *mut acb_struct,
1008        z: *mut acb_struct,
1009        f: arb_srcptr,
1010        len: slong,
1011        x: *const acb_struct,
1012        prec: slong,
1013    );
1014    pub fn arb_poly_evaluate2_acb_horner(
1015        y: *mut acb_struct,
1016        z: *mut acb_struct,
1017        f: *const arb_poly_struct,
1018        x: *const acb_struct,
1019        prec: slong,
1020    );
1021    pub fn _arb_poly_evaluate2_acb_rectangular(
1022        y: *mut acb_struct,
1023        z: *mut acb_struct,
1024        f: arb_srcptr,
1025        len: slong,
1026        x: *const acb_struct,
1027        prec: slong,
1028    );
1029    pub fn arb_poly_evaluate2_acb_rectangular(
1030        y: *mut acb_struct,
1031        z: *mut acb_struct,
1032        f: *const arb_poly_struct,
1033        x: *const acb_struct,
1034        prec: slong,
1035    );
1036    pub fn _arb_poly_evaluate2_acb(
1037        y: *mut acb_struct,
1038        z: *mut acb_struct,
1039        f: arb_srcptr,
1040        len: slong,
1041        x: *const acb_struct,
1042        prec: slong,
1043    );
1044    pub fn arb_poly_evaluate2_acb(
1045        y: *mut acb_struct,
1046        z: *mut acb_struct,
1047        f: *const arb_poly_struct,
1048        x: *const acb_struct,
1049        prec: slong,
1050    );
1051    pub fn _arb_poly_lambertw_series(
1052        res: arb_ptr,
1053        z: arb_srcptr,
1054        zlen: slong,
1055        flags: libc::c_int,
1056        len: slong,
1057        prec: slong,
1058    );
1059    pub fn arb_poly_lambertw_series(
1060        res: *mut arb_poly_struct,
1061        z: *const arb_poly_struct,
1062        flags: libc::c_int,
1063        len: slong,
1064        prec: slong,
1065    );
1066    pub fn _arb_poly_gamma_series(
1067        res: arb_ptr,
1068        h: arb_srcptr,
1069        hlen: slong,
1070        len: slong,
1071        prec: slong,
1072    );
1073    pub fn arb_poly_gamma_series(
1074        res: *mut arb_poly_struct,
1075        f: *const arb_poly_struct,
1076        n: slong,
1077        prec: slong,
1078    );
1079    pub fn _arb_poly_rgamma_series(
1080        res: arb_ptr,
1081        h: arb_srcptr,
1082        hlen: slong,
1083        len: slong,
1084        prec: slong,
1085    );
1086    pub fn arb_poly_rgamma_series(
1087        res: *mut arb_poly_struct,
1088        f: *const arb_poly_struct,
1089        n: slong,
1090        prec: slong,
1091    );
1092    pub fn _arb_poly_lgamma_series(
1093        res: arb_ptr,
1094        h: arb_srcptr,
1095        hlen: slong,
1096        len: slong,
1097        prec: slong,
1098    );
1099    pub fn arb_poly_lgamma_series(
1100        res: *mut arb_poly_struct,
1101        f: *const arb_poly_struct,
1102        n: slong,
1103        prec: slong,
1104    );
1105    pub fn _arb_poly_digamma_series(
1106        res: arb_ptr,
1107        h: arb_srcptr,
1108        hlen: slong,
1109        len: slong,
1110        prec: slong,
1111    );
1112    pub fn arb_poly_digamma_series(
1113        res: *mut arb_poly_struct,
1114        f: *const arb_poly_struct,
1115        n: slong,
1116        prec: slong,
1117    );
1118    pub fn _arb_poly_rising_ui_series(
1119        res: arb_ptr,
1120        f: arb_srcptr,
1121        flen: slong,
1122        r: ulong,
1123        trunc: slong,
1124        prec: slong,
1125    );
1126    pub fn arb_poly_rising_ui_series(
1127        res: *mut arb_poly_struct,
1128        f: *const arb_poly_struct,
1129        r: ulong,
1130        trunc: slong,
1131        prec: slong,
1132    );
1133    pub fn _arb_poly_zeta_series(
1134        res: arb_ptr,
1135        h: arb_srcptr,
1136        hlen: slong,
1137        a: *const arb_struct,
1138        deflate: libc::c_int,
1139        len: slong,
1140        prec: slong,
1141    );
1142    pub fn arb_poly_zeta_series(
1143        res: *mut arb_poly_struct,
1144        f: *const arb_poly_struct,
1145        a: *const arb_struct,
1146        deflate: libc::c_int,
1147        n: slong,
1148        prec: slong,
1149    );
1150    pub fn _arb_poly_riemann_siegel_theta_series(
1151        res: arb_ptr,
1152        h: arb_srcptr,
1153        hlen: slong,
1154        len: slong,
1155        prec: slong,
1156    );
1157    pub fn arb_poly_riemann_siegel_theta_series(
1158        res: *mut arb_poly_struct,
1159        h: *const arb_poly_struct,
1160        n: slong,
1161        prec: slong,
1162    );
1163    pub fn _arb_poly_riemann_siegel_z_series(
1164        res: arb_ptr,
1165        h: arb_srcptr,
1166        hlen: slong,
1167        len: slong,
1168        prec: slong,
1169    );
1170    pub fn arb_poly_riemann_siegel_z_series(
1171        res: *mut arb_poly_struct,
1172        h: *const arb_poly_struct,
1173        n: slong,
1174        prec: slong,
1175    );
1176    pub fn _arb_poly_swinnerton_dyer_ui_prec(n: ulong) -> slong;
1177    pub fn _arb_poly_swinnerton_dyer_ui(T: arb_ptr, n: ulong, trunc: slong, prec: slong);
1178    pub fn arb_poly_swinnerton_dyer_ui(poly: *mut arb_poly_struct, n: ulong, prec: slong);
1179    pub fn _arb_poly_newton_convergence_factor(
1180        convergence_factor: *mut arf_struct,
1181        poly: arb_srcptr,
1182        len: slong,
1183        convergence_interval: *const arb_struct,
1184        prec: slong,
1185    );
1186    pub fn _arb_poly_newton_step(
1187        xnew: *mut arb_struct,
1188        poly: arb_srcptr,
1189        len: slong,
1190        x: *const arb_struct,
1191        convergence_interval: *const arb_struct,
1192        convergence_factor: *const arf_struct,
1193        prec: slong,
1194    ) -> libc::c_int;
1195    pub fn _arb_poly_newton_refine_root(
1196        r: *mut arb_struct,
1197        poly: arb_srcptr,
1198        len: slong,
1199        start: *const arb_struct,
1200        convergence_interval: *const arb_struct,
1201        convergence_factor: *const arf_struct,
1202        eval_extra_prec: slong,
1203        prec: slong,
1204    );
1205    pub fn _arb_poly_root_bound_fujiwara(bound: *mut mag_struct, poly: arb_srcptr, len: slong);
1206    pub fn arb_poly_root_bound_fujiwara(bound: *mut mag_struct, poly: *mut arb_poly_struct);
1207    #[link_name = "arb_poly_allocated_bytes__extern"]
1208    pub fn arb_poly_allocated_bytes(x: *const arb_poly_struct) -> slong;
1209    #[link_name = "n_zerobits__extern"]
1210    pub fn n_zerobits(e: ulong) -> libc::c_int;
1211    #[link_name = "poly_pow_length__extern"]
1212    pub fn poly_pow_length(poly_len: slong, exp: ulong, trunc: slong) -> slong;
1213}