1use libc::*;
4use crate::deps::*;
5use crate::acb_types::*;
6use crate::arb_types::*;
7use crate::flint::*;
8use crate::fmpq_types::*;
9use crate::fmpz_types::*;
10
11
12extern "C" {
13 pub fn acb_poly_init(poly: *mut acb_poly_struct);
14 pub fn acb_poly_init2(poly: *mut acb_poly_struct, len: slong);
15 pub fn acb_poly_clear(poly: *mut acb_poly_struct);
16 pub fn acb_poly_fit_length(poly: *mut acb_poly_struct, len: slong);
17 pub fn _acb_poly_set_length(poly: *mut acb_poly_struct, len: slong);
18 pub fn _acb_poly_normalise(poly: *mut acb_poly_struct);
19 #[link_name = "acb_poly_swap__extern"]
20 pub fn acb_poly_swap(poly1: *mut acb_poly_struct, poly2: *mut acb_poly_struct);
21 #[link_name = "acb_poly_length__extern"]
22 pub fn acb_poly_length(poly: *const acb_poly_struct) -> slong;
23 #[link_name = "acb_poly_degree__extern"]
24 pub fn acb_poly_degree(poly: *const acb_poly_struct) -> slong;
25 pub fn acb_poly_valuation(poly: *const acb_poly_struct) -> slong;
26 #[link_name = "acb_poly_is_zero__extern"]
27 pub fn acb_poly_is_zero(z: *const acb_poly_struct) -> libc::c_int;
28 #[link_name = "acb_poly_is_one__extern"]
29 pub fn acb_poly_is_one(z: *const acb_poly_struct) -> libc::c_int;
30 #[link_name = "acb_poly_is_x__extern"]
31 pub fn acb_poly_is_x(z: *const acb_poly_struct) -> libc::c_int;
32 #[link_name = "acb_poly_zero__extern"]
33 pub fn acb_poly_zero(poly: *mut acb_poly_struct);
34 #[link_name = "acb_poly_one__extern"]
35 pub fn acb_poly_one(poly: *mut acb_poly_struct);
36 pub fn acb_poly_set_coeff_si(poly: *mut acb_poly_struct, n: slong, x: slong);
37 pub fn acb_poly_set_coeff_acb(poly: *mut acb_poly_struct, n: slong, x: *const acb_struct);
38 pub fn acb_poly_get_coeff_acb(x: *mut acb_struct, poly: *const acb_poly_struct, n: slong);
39 pub fn _acb_poly_shift_right(res: acb_ptr, poly: acb_srcptr, len: slong, n: slong);
40 pub fn acb_poly_shift_right(res: *mut acb_poly_struct, poly: *const acb_poly_struct, n: slong);
41 pub fn _acb_poly_shift_left(res: acb_ptr, poly: acb_srcptr, len: slong, n: slong);
42 pub fn acb_poly_shift_left(res: *mut acb_poly_struct, poly: *const acb_poly_struct, n: slong);
43 #[link_name = "acb_poly_truncate__extern"]
44 pub fn acb_poly_truncate(poly: *mut acb_poly_struct, newlen: slong);
45 pub fn _acb_poly_majorant(res: arb_ptr, vec: acb_srcptr, len: slong, prec: slong);
46 pub fn acb_poly_majorant(res: *mut arb_poly_struct, poly: *const acb_poly_struct, prec: slong);
47 pub fn acb_poly_fprintd(file: *mut FILE, poly: *const acb_poly_struct, digits: slong);
48 pub fn acb_poly_printd(poly: *const acb_poly_struct, digits: slong);
49 pub fn _acb_poly_evaluate_horner(
50 res: *mut acb_struct,
51 f: acb_srcptr,
52 len: slong,
53 a: *const acb_struct,
54 prec: slong,
55 );
56 pub fn acb_poly_evaluate_horner(
57 res: *mut acb_struct,
58 f: *const acb_poly_struct,
59 a: *const acb_struct,
60 prec: slong,
61 );
62 pub fn _acb_poly_evaluate_rectangular(
63 y: *mut acb_struct,
64 poly: acb_srcptr,
65 len: slong,
66 x: *const acb_struct,
67 prec: slong,
68 );
69 pub fn acb_poly_evaluate_rectangular(
70 res: *mut acb_struct,
71 f: *const acb_poly_struct,
72 a: *const acb_struct,
73 prec: slong,
74 );
75 pub fn _acb_poly_evaluate(
76 res: *mut acb_struct,
77 f: acb_srcptr,
78 len: slong,
79 a: *const acb_struct,
80 prec: slong,
81 );
82 pub fn acb_poly_evaluate(
83 res: *mut acb_struct,
84 f: *const acb_poly_struct,
85 a: *const acb_struct,
86 prec: slong,
87 );
88 pub fn _acb_poly_evaluate2_horner(
89 y: *mut acb_struct,
90 z: *mut acb_struct,
91 f: acb_srcptr,
92 len: slong,
93 x: *const acb_struct,
94 prec: slong,
95 );
96 pub fn acb_poly_evaluate2_horner(
97 y: *mut acb_struct,
98 z: *mut acb_struct,
99 f: *const acb_poly_struct,
100 x: *const acb_struct,
101 prec: slong,
102 );
103 pub fn _acb_poly_evaluate2_rectangular(
104 y: *mut acb_struct,
105 z: *mut acb_struct,
106 f: acb_srcptr,
107 len: slong,
108 x: *const acb_struct,
109 prec: slong,
110 );
111 pub fn acb_poly_evaluate2_rectangular(
112 y: *mut acb_struct,
113 z: *mut acb_struct,
114 f: *const acb_poly_struct,
115 x: *const acb_struct,
116 prec: slong,
117 );
118 pub fn _acb_poly_evaluate2(
119 y: *mut acb_struct,
120 z: *mut acb_struct,
121 f: acb_srcptr,
122 len: slong,
123 x: *const acb_struct,
124 prec: slong,
125 );
126 pub fn acb_poly_evaluate2(
127 y: *mut acb_struct,
128 z: *mut acb_struct,
129 f: *const acb_poly_struct,
130 x: *const acb_struct,
131 prec: slong,
132 );
133 pub fn _acb_poly_derivative(res: acb_ptr, poly: acb_srcptr, len: slong, prec: slong);
134 pub fn acb_poly_derivative(
135 res: *mut acb_poly_struct,
136 poly: *const acb_poly_struct,
137 prec: slong,
138 );
139 pub fn _acb_poly_nth_derivative(
140 res: acb_ptr,
141 poly: acb_srcptr,
142 n: ulong,
143 len: slong,
144 prec: slong,
145 );
146 pub fn acb_poly_nth_derivative(
147 res: *mut acb_poly_struct,
148 poly: *const acb_poly_struct,
149 n: ulong,
150 prec: slong,
151 );
152 pub fn _acb_poly_integral(res: acb_ptr, poly: acb_srcptr, len: slong, prec: slong);
153 pub fn acb_poly_integral(res: *mut acb_poly_struct, poly: *const acb_poly_struct, prec: slong);
154 pub fn acb_poly_borel_transform(
155 res: *mut acb_poly_struct,
156 poly: *const acb_poly_struct,
157 prec: slong,
158 );
159 pub fn _acb_poly_borel_transform(res: acb_ptr, poly: acb_srcptr, len: slong, prec: slong);
160 pub fn acb_poly_inv_borel_transform(
161 res: *mut acb_poly_struct,
162 poly: *const acb_poly_struct,
163 prec: slong,
164 );
165 pub fn _acb_poly_inv_borel_transform(res: acb_ptr, poly: acb_srcptr, len: slong, prec: slong);
166 pub fn _acb_poly_binomial_transform_basecase(
167 b: acb_ptr,
168 a: acb_srcptr,
169 alen: slong,
170 len: slong,
171 prec: slong,
172 );
173 pub fn acb_poly_binomial_transform_basecase(
174 b: *mut acb_poly_struct,
175 a: *const acb_poly_struct,
176 len: slong,
177 prec: slong,
178 );
179 pub fn _acb_poly_binomial_transform_convolution(
180 b: acb_ptr,
181 a: acb_srcptr,
182 alen: slong,
183 len: slong,
184 prec: slong,
185 );
186 pub fn acb_poly_binomial_transform_convolution(
187 b: *mut acb_poly_struct,
188 a: *const acb_poly_struct,
189 len: slong,
190 prec: slong,
191 );
192 pub fn _acb_poly_binomial_transform(
193 b: acb_ptr,
194 a: acb_srcptr,
195 alen: slong,
196 len: slong,
197 prec: slong,
198 );
199 pub fn acb_poly_binomial_transform(
200 b: *mut acb_poly_struct,
201 a: *const acb_poly_struct,
202 len: slong,
203 prec: slong,
204 );
205 pub fn _acb_poly_graeffe_transform(b: acb_ptr, a: acb_srcptr, len: slong, prec: slong);
206 pub fn acb_poly_graeffe_transform(
207 b: *mut acb_poly_struct,
208 a: *const acb_poly_struct,
209 prec: slong,
210 );
211 pub fn acb_poly_set(dest: *mut acb_poly_struct, src: *const acb_poly_struct);
212 pub fn acb_poly_set_round(dest: *mut acb_poly_struct, src: *const acb_poly_struct, prec: slong);
213 pub fn acb_poly_set_trunc(res: *mut acb_poly_struct, poly: *const acb_poly_struct, n: slong);
214 pub fn acb_poly_set_trunc_round(
215 res: *mut acb_poly_struct,
216 poly: *const acb_poly_struct,
217 n: slong,
218 prec: slong,
219 );
220 pub fn acb_poly_set_arb_poly(poly: *mut acb_poly_struct, re: *const arb_poly_struct);
221 pub fn acb_poly_set2_arb_poly(
222 poly: *mut acb_poly_struct,
223 re: *const arb_poly_struct,
224 im: *const arb_poly_struct,
225 );
226 pub fn acb_poly_set_fmpq_poly(
227 poly: *mut acb_poly_struct,
228 re: *const fmpq_poly_struct,
229 prec: slong,
230 );
231 pub fn acb_poly_set2_fmpq_poly(
232 poly: *mut acb_poly_struct,
233 re: *const fmpq_poly_struct,
234 im: *const fmpq_poly_struct,
235 prec: slong,
236 );
237 pub fn acb_poly_set_fmpz_poly(
238 poly: *mut acb_poly_struct,
239 src: *const fmpz_poly_struct,
240 prec: slong,
241 );
242 pub fn acb_poly_set2_fmpz_poly(
243 poly: *mut acb_poly_struct,
244 re: *const fmpz_poly_struct,
245 im: *const fmpz_poly_struct,
246 prec: slong,
247 );
248 pub fn acb_poly_get_unique_fmpz_poly(
249 res: *mut fmpz_poly_struct,
250 src: *const acb_poly_struct,
251 ) -> libc::c_int;
252 #[link_name = "acb_poly_set_acb__extern"]
253 pub fn acb_poly_set_acb(poly: *mut acb_poly_struct, c: *const acb_struct);
254 pub fn acb_poly_set_si(poly: *mut acb_poly_struct, c: slong);
255 pub fn acb_poly_randtest(
256 poly: *mut acb_poly_struct,
257 state: *mut flint_rand_struct,
258 len: slong,
259 prec: slong,
260 mag_bits: slong,
261 );
262 pub fn acb_poly_equal(A: *const acb_poly_struct, B: *const acb_poly_struct) -> libc::c_int;
263 pub fn acb_poly_contains_fmpz_poly(
264 poly1: *const acb_poly_struct,
265 poly2: *const fmpz_poly_struct,
266 ) -> libc::c_int;
267 pub fn acb_poly_contains_fmpq_poly(
268 poly1: *const acb_poly_struct,
269 poly2: *const fmpq_poly_struct,
270 ) -> libc::c_int;
271 pub fn _acb_poly_overlaps(
272 poly1: acb_srcptr,
273 len1: slong,
274 poly2: acb_srcptr,
275 len2: slong,
276 ) -> libc::c_int;
277 pub fn acb_poly_overlaps(
278 poly1: *const acb_poly_struct,
279 poly2: *const acb_poly_struct,
280 ) -> libc::c_int;
281 pub fn acb_poly_contains(
282 poly1: *const acb_poly_struct,
283 poly2: *const acb_poly_struct,
284 ) -> libc::c_int;
285 #[link_name = "acb_poly_is_real__extern"]
286 pub fn acb_poly_is_real(poly: *const acb_poly_struct) -> libc::c_int;
287 pub fn _acb_poly_add(
288 res: acb_ptr,
289 poly1: acb_srcptr,
290 len1: slong,
291 poly2: acb_srcptr,
292 len2: slong,
293 prec: slong,
294 );
295 pub fn acb_poly_add(
296 res: *mut acb_poly_struct,
297 poly1: *const acb_poly_struct,
298 poly2: *const acb_poly_struct,
299 prec: slong,
300 );
301 pub fn acb_poly_add_si(
302 res: *mut acb_poly_struct,
303 poly: *const acb_poly_struct,
304 c: slong,
305 prec: slong,
306 );
307 pub fn _acb_poly_sub(
308 res: acb_ptr,
309 poly1: acb_srcptr,
310 len1: slong,
311 poly2: acb_srcptr,
312 len2: slong,
313 prec: slong,
314 );
315 pub fn acb_poly_sub(
316 res: *mut acb_poly_struct,
317 poly1: *const acb_poly_struct,
318 poly2: *const acb_poly_struct,
319 prec: slong,
320 );
321 pub fn acb_poly_add_series(
322 res: *mut acb_poly_struct,
323 poly1: *const acb_poly_struct,
324 poly2: *const acb_poly_struct,
325 len: slong,
326 prec: slong,
327 );
328 pub fn acb_poly_sub_series(
329 res: *mut acb_poly_struct,
330 poly1: *const acb_poly_struct,
331 poly2: *const acb_poly_struct,
332 len: slong,
333 prec: slong,
334 );
335 #[link_name = "acb_poly_neg__extern"]
336 pub fn acb_poly_neg(res: *mut acb_poly_struct, poly: *const acb_poly_struct);
337 #[link_name = "acb_poly_scalar_mul_2exp_si__extern"]
338 pub fn acb_poly_scalar_mul_2exp_si(
339 res: *mut acb_poly_struct,
340 poly: *const acb_poly_struct,
341 c: slong,
342 );
343 #[link_name = "acb_poly_scalar_mul__extern"]
344 pub fn acb_poly_scalar_mul(
345 res: *mut acb_poly_struct,
346 poly: *const acb_poly_struct,
347 c: *const acb_struct,
348 prec: slong,
349 );
350 #[link_name = "acb_poly_scalar_div__extern"]
351 pub fn acb_poly_scalar_div(
352 res: *mut acb_poly_struct,
353 poly: *const acb_poly_struct,
354 c: *const acb_struct,
355 prec: slong,
356 );
357 pub fn acb_poly_mullow_classical(
358 res: *mut acb_poly_struct,
359 poly1: *const acb_poly_struct,
360 poly2: *const acb_poly_struct,
361 n: slong,
362 prec: slong,
363 );
364 pub fn _acb_poly_mullow_classical(
365 res: acb_ptr,
366 poly1: acb_srcptr,
367 len1: slong,
368 poly2: acb_srcptr,
369 len2: slong,
370 n: slong,
371 prec: slong,
372 );
373 pub fn _acb_poly_mullow_transpose(
374 res: acb_ptr,
375 poly1: acb_srcptr,
376 len1: slong,
377 poly2: acb_srcptr,
378 len2: slong,
379 n: slong,
380 prec: slong,
381 );
382 pub fn acb_poly_mullow_transpose(
383 res: *mut acb_poly_struct,
384 poly1: *const acb_poly_struct,
385 poly2: *const acb_poly_struct,
386 n: slong,
387 prec: slong,
388 );
389 pub fn _acb_poly_mullow_transpose_gauss(
390 res: acb_ptr,
391 poly1: acb_srcptr,
392 len1: slong,
393 poly2: acb_srcptr,
394 len2: slong,
395 n: slong,
396 prec: slong,
397 );
398 pub fn acb_poly_mullow_transpose_gauss(
399 res: *mut acb_poly_struct,
400 poly1: *const acb_poly_struct,
401 poly2: *const acb_poly_struct,
402 n: slong,
403 prec: slong,
404 );
405 pub fn _acb_poly_mullow(
406 res: acb_ptr,
407 poly1: acb_srcptr,
408 len1: slong,
409 poly2: acb_srcptr,
410 len2: slong,
411 n: slong,
412 prec: slong,
413 );
414 pub fn acb_poly_mullow(
415 res: *mut acb_poly_struct,
416 poly1: *const acb_poly_struct,
417 poly2: *const acb_poly_struct,
418 n: slong,
419 prec: slong,
420 );
421 pub fn _acb_poly_mul(
422 C: acb_ptr,
423 A: acb_srcptr,
424 lenA: slong,
425 B: acb_srcptr,
426 lenB: slong,
427 prec: slong,
428 );
429 pub fn acb_poly_mul(
430 res: *mut acb_poly_struct,
431 poly1: *const acb_poly_struct,
432 poly2: *const acb_poly_struct,
433 prec: slong,
434 );
435 pub fn _acb_poly_mulmid_transpose(
436 z: acb_ptr,
437 x: acb_srcptr,
438 xlen: slong,
439 y: acb_srcptr,
440 ylen: slong,
441 nlo: slong,
442 nhi: slong,
443 prec: slong,
444 );
445 pub fn acb_poly_mulmid_transpose(
446 res: *mut acb_poly_struct,
447 poly1: *const acb_poly_struct,
448 poly2: *const acb_poly_struct,
449 nlo: slong,
450 nhi: slong,
451 prec: slong,
452 );
453 pub fn _acb_poly_mulmid_classical(
454 z: acb_ptr,
455 x: acb_srcptr,
456 xlen: slong,
457 y: acb_srcptr,
458 ylen: slong,
459 nlo: slong,
460 nhi: slong,
461 prec: slong,
462 );
463 pub fn acb_poly_mulmid_classical(
464 res: *mut acb_poly_struct,
465 poly1: *const acb_poly_struct,
466 poly2: *const acb_poly_struct,
467 nlo: slong,
468 nhi: slong,
469 prec: slong,
470 );
471 pub fn _acb_poly_mulmid(
472 z: acb_ptr,
473 x: acb_srcptr,
474 xlen: slong,
475 y: acb_srcptr,
476 ylen: slong,
477 nlo: slong,
478 nhi: slong,
479 prec: slong,
480 );
481 pub fn acb_poly_mulmid(
482 res: *mut acb_poly_struct,
483 poly1: *const acb_poly_struct,
484 poly2: *const acb_poly_struct,
485 nlo: slong,
486 nhi: slong,
487 prec: slong,
488 );
489 #[link_name = "_acb_poly_mul_monic__extern"]
490 pub fn _acb_poly_mul_monic(
491 res: acb_ptr,
492 poly1: acb_srcptr,
493 len1: slong,
494 poly2: acb_srcptr,
495 len2: slong,
496 prec: slong,
497 );
498 pub fn _acb_poly_inv_series(Qinv: acb_ptr, Q: acb_srcptr, Qlen: slong, len: slong, prec: slong);
499 pub fn acb_poly_inv_series(
500 Qinv: *mut acb_poly_struct,
501 Q: *const acb_poly_struct,
502 n: slong,
503 prec: slong,
504 );
505 pub fn _acb_poly_div_series(
506 Q: acb_ptr,
507 A: acb_srcptr,
508 Alen: slong,
509 B: acb_srcptr,
510 Blen: slong,
511 n: slong,
512 prec: slong,
513 );
514 pub fn acb_poly_div_series(
515 Q: *mut acb_poly_struct,
516 A: *const acb_poly_struct,
517 B: *const acb_poly_struct,
518 n: slong,
519 prec: slong,
520 );
521 pub fn _acb_poly_reverse(res: acb_ptr, poly: acb_srcptr, len: slong, n: slong);
522 pub fn _acb_poly_div(
523 Q: acb_ptr,
524 A: acb_srcptr,
525 lenA: slong,
526 B: acb_srcptr,
527 lenB: slong,
528 prec: slong,
529 );
530 pub fn _acb_poly_divrem(
531 Q: acb_ptr,
532 R: acb_ptr,
533 A: acb_srcptr,
534 lenA: slong,
535 B: acb_srcptr,
536 lenB: slong,
537 prec: slong,
538 );
539 pub fn _acb_poly_rem(
540 R: acb_ptr,
541 A: acb_srcptr,
542 lenA: slong,
543 B: acb_srcptr,
544 lenB: slong,
545 prec: slong,
546 );
547 pub fn acb_poly_divrem(
548 Q: *mut acb_poly_struct,
549 R: *mut acb_poly_struct,
550 A: *const acb_poly_struct,
551 B: *const acb_poly_struct,
552 prec: slong,
553 ) -> libc::c_int;
554 pub fn _acb_poly_div_root(
555 Q: acb_ptr,
556 R: *mut acb_struct,
557 A: acb_srcptr,
558 len: slong,
559 c: *const acb_struct,
560 prec: slong,
561 );
562 pub fn _acb_poly_taylor_shift(poly: acb_ptr, c: *const acb_struct, n: slong, prec: slong);
563 pub fn acb_poly_taylor_shift(
564 g: *mut acb_poly_struct,
565 f: *const acb_poly_struct,
566 c: *const acb_struct,
567 prec: slong,
568 );
569 pub fn _acb_poly_compose(
570 res: acb_ptr,
571 poly1: acb_srcptr,
572 len1: slong,
573 poly2: acb_srcptr,
574 len2: slong,
575 prec: slong,
576 );
577 pub fn acb_poly_compose(
578 res: *mut acb_poly_struct,
579 poly1: *const acb_poly_struct,
580 poly2: *const acb_poly_struct,
581 prec: slong,
582 );
583 pub fn _acb_poly_compose_series(
584 res: acb_ptr,
585 poly1: acb_srcptr,
586 len1: slong,
587 poly2: acb_srcptr,
588 len2: slong,
589 n: slong,
590 prec: slong,
591 );
592 pub fn acb_poly_compose_series(
593 res: *mut acb_poly_struct,
594 poly1: *const acb_poly_struct,
595 poly2: *const acb_poly_struct,
596 n: slong,
597 prec: slong,
598 );
599 pub fn _acb_poly_revert_series(
600 Qinv: acb_ptr,
601 Q: acb_srcptr,
602 Qlen: slong,
603 n: slong,
604 prec: slong,
605 );
606 pub fn acb_poly_revert_series(
607 Qinv: *mut acb_poly_struct,
608 Q: *const acb_poly_struct,
609 n: slong,
610 prec: slong,
611 );
612 pub fn _acb_poly_evaluate_vec_fast_precomp(
613 vs: acb_ptr,
614 poly: acb_srcptr,
615 plen: slong,
616 tree: *mut acb_ptr,
617 len: slong,
618 prec: slong,
619 );
620 pub fn _acb_poly_evaluate_vec_fast(
621 ys: acb_ptr,
622 poly: acb_srcptr,
623 plen: slong,
624 xs: acb_srcptr,
625 n: slong,
626 prec: slong,
627 );
628 pub fn acb_poly_evaluate_vec_fast(
629 ys: acb_ptr,
630 poly: *const acb_poly_struct,
631 xs: acb_srcptr,
632 n: slong,
633 prec: slong,
634 );
635 pub fn _acb_poly_evaluate_vec_iter(
636 ys: acb_ptr,
637 poly: acb_srcptr,
638 plen: slong,
639 xs: acb_srcptr,
640 n: slong,
641 prec: slong,
642 );
643 pub fn acb_poly_evaluate_vec_iter(
644 ys: acb_ptr,
645 poly: *const acb_poly_struct,
646 xs: acb_srcptr,
647 n: slong,
648 prec: slong,
649 );
650 pub fn _acb_poly_interpolate_barycentric(
651 poly: acb_ptr,
652 xs: acb_srcptr,
653 ys: acb_srcptr,
654 n: slong,
655 prec: slong,
656 );
657 pub fn acb_poly_interpolate_barycentric(
658 poly: *mut acb_poly_struct,
659 xs: acb_srcptr,
660 ys: acb_srcptr,
661 n: slong,
662 prec: slong,
663 );
664 pub fn _acb_poly_interpolation_weights(w: acb_ptr, tree: *mut acb_ptr, len: slong, prec: slong);
665 pub fn _acb_poly_interpolate_fast_precomp(
666 poly: acb_ptr,
667 ys: acb_srcptr,
668 tree: *mut acb_ptr,
669 weights: acb_srcptr,
670 len: slong,
671 prec: slong,
672 );
673 pub fn _acb_poly_interpolate_fast(
674 poly: acb_ptr,
675 xs: acb_srcptr,
676 ys: acb_srcptr,
677 len: slong,
678 prec: slong,
679 );
680 pub fn acb_poly_interpolate_fast(
681 poly: *mut acb_poly_struct,
682 xs: acb_srcptr,
683 ys: acb_srcptr,
684 n: slong,
685 prec: slong,
686 );
687 pub fn _acb_poly_interpolate_newton(
688 poly: acb_ptr,
689 xs: acb_srcptr,
690 ys: acb_srcptr,
691 n: slong,
692 prec: slong,
693 );
694 pub fn acb_poly_interpolate_newton(
695 poly: *mut acb_poly_struct,
696 xs: acb_srcptr,
697 ys: acb_srcptr,
698 n: slong,
699 prec: slong,
700 );
701 pub fn _acb_poly_product_roots(poly: acb_ptr, xs: acb_srcptr, n: slong, prec: slong);
702 pub fn acb_poly_product_roots(
703 poly: *mut acb_poly_struct,
704 xs: acb_srcptr,
705 n: slong,
706 prec: slong,
707 );
708 pub fn _acb_poly_tree_alloc(len: slong) -> *mut acb_ptr;
709 pub fn _acb_poly_tree_free(tree: *mut acb_ptr, len: slong);
710 pub fn _acb_poly_tree_build(tree: *mut acb_ptr, roots: acb_srcptr, len: slong, prec: slong);
711 pub fn _acb_poly_root_inclusion(
712 r: *mut acb_struct,
713 m: *const acb_struct,
714 poly: acb_srcptr,
715 polyder: acb_srcptr,
716 len: slong,
717 prec: slong,
718 );
719 pub fn _acb_poly_validate_roots(
720 roots: acb_ptr,
721 poly: acb_srcptr,
722 len: slong,
723 prec: slong,
724 ) -> slong;
725 pub fn _acb_poly_find_roots(
726 roots: acb_ptr,
727 poly: acb_srcptr,
728 initial: acb_srcptr,
729 len: slong,
730 maxiter: slong,
731 prec: slong,
732 ) -> slong;
733 pub fn acb_poly_find_roots(
734 roots: acb_ptr,
735 poly: *const acb_poly_struct,
736 initial: acb_srcptr,
737 maxiter: slong,
738 prec: slong,
739 ) -> slong;
740 pub fn _acb_poly_root_bound_fujiwara(bound: *mut mag_struct, poly: acb_srcptr, len: slong);
741 pub fn acb_poly_root_bound_fujiwara(bound: *mut mag_struct, poly: *mut acb_poly_struct);
742 pub fn _acb_poly_validate_real_roots(
743 roots: acb_srcptr,
744 poly: acb_srcptr,
745 len: slong,
746 prec: slong,
747 ) -> libc::c_int;
748 pub fn acb_poly_validate_real_roots(
749 roots: acb_srcptr,
750 poly: *const acb_poly_struct,
751 prec: slong,
752 ) -> libc::c_int;
753 pub fn _acb_poly_pow_ui_trunc_binexp(
754 res: acb_ptr,
755 f: acb_srcptr,
756 flen: slong,
757 exp: ulong,
758 len: slong,
759 prec: slong,
760 );
761 pub fn acb_poly_pow_ui_trunc_binexp(
762 res: *mut acb_poly_struct,
763 poly: *const acb_poly_struct,
764 exp: ulong,
765 len: slong,
766 prec: slong,
767 );
768 pub fn _acb_poly_pow_ui(res: acb_ptr, f: acb_srcptr, flen: slong, exp: ulong, prec: slong);
769 pub fn acb_poly_pow_ui(
770 res: *mut acb_poly_struct,
771 poly: *const acb_poly_struct,
772 exp: ulong,
773 prec: slong,
774 );
775 pub fn _acb_poly_rsqrt_series(g: acb_ptr, h: acb_srcptr, hlen: slong, len: slong, prec: slong);
776 pub fn acb_poly_rsqrt_series(
777 g: *mut acb_poly_struct,
778 h: *const acb_poly_struct,
779 n: slong,
780 prec: slong,
781 );
782 pub fn _acb_poly_sqrt_series(g: acb_ptr, h: acb_srcptr, hlen: slong, len: slong, prec: slong);
783 pub fn acb_poly_sqrt_series(
784 g: *mut acb_poly_struct,
785 h: *const acb_poly_struct,
786 n: slong,
787 prec: slong,
788 );
789 pub fn _acb_poly_log_series(res: acb_ptr, f: acb_srcptr, flen: slong, n: slong, prec: slong);
790 pub fn acb_poly_log_series(
791 res: *mut acb_poly_struct,
792 f: *const acb_poly_struct,
793 n: slong,
794 prec: slong,
795 );
796 pub fn _acb_poly_log1p_series(res: acb_ptr, f: acb_srcptr, flen: slong, n: slong, prec: slong);
797 pub fn acb_poly_log1p_series(
798 res: *mut acb_poly_struct,
799 f: *const acb_poly_struct,
800 n: slong,
801 prec: slong,
802 );
803 pub fn _acb_poly_atan_series(res: acb_ptr, f: acb_srcptr, flen: slong, n: slong, prec: slong);
804 pub fn acb_poly_atan_series(
805 res: *mut acb_poly_struct,
806 f: *const acb_poly_struct,
807 n: slong,
808 prec: slong,
809 );
810 pub fn _acb_poly_exp_series_basecase(
811 f: acb_ptr,
812 h: acb_srcptr,
813 hlen: slong,
814 n: slong,
815 prec: slong,
816 );
817 pub fn acb_poly_exp_series_basecase(
818 f: *mut acb_poly_struct,
819 h: *const acb_poly_struct,
820 n: slong,
821 prec: slong,
822 );
823 pub fn _acb_poly_exp_series(f: acb_ptr, h: acb_srcptr, hlen: slong, n: slong, prec: slong);
824 pub fn acb_poly_exp_series(
825 f: *mut acb_poly_struct,
826 h: *const acb_poly_struct,
827 n: slong,
828 prec: slong,
829 );
830 pub fn _acb_poly_exp_pi_i_series(f: acb_ptr, h: acb_srcptr, hlen: slong, n: slong, prec: slong);
831 pub fn acb_poly_exp_pi_i_series(
832 f: *mut acb_poly_struct,
833 h: *const acb_poly_struct,
834 n: slong,
835 prec: slong,
836 );
837 pub fn _acb_poly_sinh_cosh_series_basecase(
838 s: acb_ptr,
839 c: acb_ptr,
840 h: acb_srcptr,
841 hlen: slong,
842 n: slong,
843 prec: slong,
844 );
845 pub fn acb_poly_sinh_cosh_series_basecase(
846 s: *mut acb_poly_struct,
847 c: *mut acb_poly_struct,
848 h: *const acb_poly_struct,
849 n: slong,
850 prec: slong,
851 );
852 pub fn _acb_poly_sinh_cosh_series_exponential(
853 s: acb_ptr,
854 c: acb_ptr,
855 h: acb_srcptr,
856 hlen: slong,
857 n: slong,
858 prec: slong,
859 );
860 pub fn acb_poly_sinh_cosh_series_exponential(
861 s: *mut acb_poly_struct,
862 c: *mut acb_poly_struct,
863 h: *const acb_poly_struct,
864 n: slong,
865 prec: slong,
866 );
867 pub fn _acb_poly_sinh_cosh_series(
868 s: acb_ptr,
869 c: acb_ptr,
870 h: acb_srcptr,
871 hlen: slong,
872 n: slong,
873 prec: slong,
874 );
875 pub fn acb_poly_sinh_cosh_series(
876 s: *mut acb_poly_struct,
877 c: *mut acb_poly_struct,
878 h: *const acb_poly_struct,
879 n: slong,
880 prec: slong,
881 );
882 pub fn _acb_poly_sinh_series(s: acb_ptr, h: acb_srcptr, hlen: slong, n: slong, prec: slong);
883 pub fn acb_poly_sinh_series(
884 s: *mut acb_poly_struct,
885 h: *const acb_poly_struct,
886 n: slong,
887 prec: slong,
888 );
889 pub fn _acb_poly_cosh_series(c: acb_ptr, h: acb_srcptr, hlen: slong, n: slong, prec: slong);
890 pub fn acb_poly_cosh_series(
891 c: *mut acb_poly_struct,
892 h: *const acb_poly_struct,
893 n: slong,
894 prec: slong,
895 );
896 pub fn _acb_poly_sin_cos_series(
897 s: acb_ptr,
898 c: acb_ptr,
899 h: acb_srcptr,
900 hlen: slong,
901 len: slong,
902 prec: slong,
903 );
904 pub fn acb_poly_sin_cos_series(
905 s: *mut acb_poly_struct,
906 c: *mut acb_poly_struct,
907 h: *const acb_poly_struct,
908 n: slong,
909 prec: slong,
910 );
911 pub fn _acb_poly_sin_series(g: acb_ptr, h: acb_srcptr, hlen: slong, n: slong, prec: slong);
912 pub fn acb_poly_sin_series(
913 g: *mut acb_poly_struct,
914 h: *const acb_poly_struct,
915 n: slong,
916 prec: slong,
917 );
918 pub fn _acb_poly_cos_series(g: acb_ptr, h: acb_srcptr, hlen: slong, n: slong, prec: slong);
919 pub fn acb_poly_cos_series(
920 g: *mut acb_poly_struct,
921 h: *const acb_poly_struct,
922 n: slong,
923 prec: slong,
924 );
925 pub fn _acb_poly_sin_cos_pi_series(
926 s: acb_ptr,
927 c: acb_ptr,
928 h: acb_srcptr,
929 hlen: slong,
930 len: slong,
931 prec: slong,
932 );
933 pub fn acb_poly_sin_cos_pi_series(
934 s: *mut acb_poly_struct,
935 c: *mut acb_poly_struct,
936 h: *const acb_poly_struct,
937 n: slong,
938 prec: slong,
939 );
940 pub fn _acb_poly_sin_pi_series(g: acb_ptr, h: acb_srcptr, hlen: slong, n: slong, prec: slong);
941 pub fn acb_poly_sin_pi_series(
942 g: *mut acb_poly_struct,
943 h: *const acb_poly_struct,
944 n: slong,
945 prec: slong,
946 );
947 pub fn _acb_poly_cos_pi_series(g: acb_ptr, h: acb_srcptr, hlen: slong, n: slong, prec: slong);
948 pub fn acb_poly_cos_pi_series(
949 g: *mut acb_poly_struct,
950 h: *const acb_poly_struct,
951 n: slong,
952 prec: slong,
953 );
954 pub fn _acb_poly_cot_pi_series(g: acb_ptr, h: acb_srcptr, hlen: slong, len: slong, prec: slong);
955 pub fn acb_poly_cot_pi_series(
956 res: *mut acb_poly_struct,
957 f: *const acb_poly_struct,
958 len: slong,
959 prec: slong,
960 );
961 pub fn _acb_poly_tan_series(g: acb_ptr, h: acb_srcptr, hlen: slong, len: slong, prec: slong);
962 pub fn acb_poly_tan_series(
963 g: *mut acb_poly_struct,
964 h: *const acb_poly_struct,
965 n: slong,
966 prec: slong,
967 );
968 pub fn _acb_poly_sinc_series(g: acb_ptr, h: acb_srcptr, hlen: slong, n: slong, prec: slong);
969 pub fn acb_poly_sinc_series(
970 g: *mut acb_poly_struct,
971 h: *const acb_poly_struct,
972 n: slong,
973 prec: slong,
974 );
975 pub fn _acb_poly_sinc_pi_series(g: acb_ptr, h: acb_srcptr, hlen: slong, n: slong, prec: slong);
976 pub fn acb_poly_sinc_pi_series(
977 g: *mut acb_poly_struct,
978 h: *const acb_poly_struct,
979 n: slong,
980 prec: slong,
981 );
982 pub fn _acb_poly_lambertw_series(
983 res: acb_ptr,
984 z: acb_srcptr,
985 zlen: slong,
986 k: *const fmpz,
987 flags: libc::c_int,
988 len: slong,
989 prec: slong,
990 );
991 pub fn acb_poly_lambertw_series(
992 res: *mut acb_poly_struct,
993 z: *const acb_poly_struct,
994 k: *const fmpz,
995 flags: libc::c_int,
996 len: slong,
997 prec: slong,
998 );
999 pub fn _acb_poly_gamma_series(
1000 res: acb_ptr,
1001 h: acb_srcptr,
1002 hlen: slong,
1003 len: slong,
1004 prec: slong,
1005 );
1006 pub fn acb_poly_gamma_series(
1007 res: *mut acb_poly_struct,
1008 f: *const acb_poly_struct,
1009 n: slong,
1010 prec: slong,
1011 );
1012 pub fn _acb_poly_rgamma_series(
1013 res: acb_ptr,
1014 h: acb_srcptr,
1015 hlen: slong,
1016 len: slong,
1017 prec: slong,
1018 );
1019 pub fn acb_poly_rgamma_series(
1020 res: *mut acb_poly_struct,
1021 f: *const acb_poly_struct,
1022 n: slong,
1023 prec: slong,
1024 );
1025 pub fn _acb_poly_lgamma_series(
1026 res: acb_ptr,
1027 h: acb_srcptr,
1028 hlen: slong,
1029 len: slong,
1030 prec: slong,
1031 );
1032 pub fn acb_poly_lgamma_series(
1033 res: *mut acb_poly_struct,
1034 f: *const acb_poly_struct,
1035 n: slong,
1036 prec: slong,
1037 );
1038 pub fn _acb_poly_digamma_series(
1039 res: acb_ptr,
1040 h: acb_srcptr,
1041 hlen: slong,
1042 len: slong,
1043 prec: slong,
1044 );
1045 pub fn acb_poly_digamma_series(
1046 res: *mut acb_poly_struct,
1047 f: *const acb_poly_struct,
1048 n: slong,
1049 prec: slong,
1050 );
1051 pub fn _acb_poly_rising_ui_series(
1052 res: acb_ptr,
1053 f: acb_srcptr,
1054 flen: slong,
1055 r: ulong,
1056 trunc: slong,
1057 prec: slong,
1058 );
1059 pub fn acb_poly_rising_ui_series(
1060 res: *mut acb_poly_struct,
1061 f: *const acb_poly_struct,
1062 r: ulong,
1063 trunc: slong,
1064 prec: slong,
1065 );
1066 pub fn _acb_poly_pow_acb_series(
1067 h: acb_ptr,
1068 f: acb_srcptr,
1069 flen: slong,
1070 g: *const acb_struct,
1071 len: slong,
1072 prec: slong,
1073 );
1074 pub fn acb_poly_pow_acb_series(
1075 h: *mut acb_poly_struct,
1076 f: *const acb_poly_struct,
1077 g: *const acb_struct,
1078 len: slong,
1079 prec: slong,
1080 );
1081 pub fn _acb_poly_pow_series(
1082 h: acb_ptr,
1083 f: acb_srcptr,
1084 flen: slong,
1085 g: acb_srcptr,
1086 glen: slong,
1087 len: slong,
1088 prec: slong,
1089 );
1090 pub fn acb_poly_pow_series(
1091 h: *mut acb_poly_struct,
1092 f: *const acb_poly_struct,
1093 g: *const acb_poly_struct,
1094 len: slong,
1095 prec: slong,
1096 );
1097 pub fn _acb_poly_binomial_pow_acb_series(
1098 h: acb_ptr,
1099 f: acb_srcptr,
1100 flen: slong,
1101 g: *const acb_struct,
1102 len: slong,
1103 prec: slong,
1104 );
1105 #[link_name = "_acb_poly_acb_pow_cpx__extern"]
1106 pub fn _acb_poly_acb_pow_cpx(
1107 w: acb_ptr,
1108 a: *const acb_struct,
1109 b: *const acb_struct,
1110 len: slong,
1111 prec: slong,
1112 );
1113 pub fn _acb_poly_acb_invpow_cpx(
1114 res: acb_ptr,
1115 N: *const acb_struct,
1116 c: *const acb_struct,
1117 trunc: slong,
1118 prec: slong,
1119 );
1120 pub fn _acb_poly_mullow_cpx(
1121 res: acb_ptr,
1122 src: acb_srcptr,
1123 len: slong,
1124 c: *const acb_struct,
1125 trunc: slong,
1126 prec: slong,
1127 );
1128 pub fn _acb_poly_powsum_series_naive(
1129 z: acb_ptr,
1130 s: *const acb_struct,
1131 a: *const acb_struct,
1132 q: *const acb_struct,
1133 n: slong,
1134 len: slong,
1135 prec: slong,
1136 );
1137 pub fn _acb_poly_powsum_series_naive_threaded(
1138 z: acb_ptr,
1139 s: *const acb_struct,
1140 a: *const acb_struct,
1141 q: *const acb_struct,
1142 n: slong,
1143 len: slong,
1144 prec: slong,
1145 );
1146 pub fn _acb_poly_powsum_one_series_sieved(
1147 z: acb_ptr,
1148 s: *const acb_struct,
1149 n: slong,
1150 len: slong,
1151 prec: slong,
1152 );
1153 pub fn _acb_poly_zeta_em_sum(
1154 z: acb_ptr,
1155 s: *const acb_struct,
1156 a: *const acb_struct,
1157 deflate: libc::c_int,
1158 N: ulong,
1159 M: ulong,
1160 d: slong,
1161 prec: slong,
1162 );
1163 pub fn _acb_poly_zeta_em_choose_param(
1164 bound: *mut mag_struct,
1165 N: *mut ulong,
1166 M: *mut ulong,
1167 s: *const acb_struct,
1168 a: *const acb_struct,
1169 d: slong,
1170 target: slong,
1171 prec: slong,
1172 );
1173 pub fn _acb_poly_zeta_em_bound1(
1174 bound: *mut mag_struct,
1175 s: *const acb_struct,
1176 a: *const acb_struct,
1177 N: slong,
1178 M: slong,
1179 d: slong,
1180 wp: slong,
1181 );
1182 pub fn _acb_poly_zeta_em_bound(
1183 vec: arb_ptr,
1184 s: *const acb_struct,
1185 a: *const acb_struct,
1186 N: ulong,
1187 M: ulong,
1188 d: slong,
1189 wp: slong,
1190 );
1191 pub fn _acb_poly_zeta_em_tail_naive(
1192 sum: acb_ptr,
1193 s: *const acb_struct,
1194 Na: *const acb_struct,
1195 Nasx: acb_srcptr,
1196 M: slong,
1197 len: slong,
1198 prec: slong,
1199 );
1200 pub fn _acb_poly_zeta_em_tail_bsplit(
1201 z: acb_ptr,
1202 s: *const acb_struct,
1203 Na: *const acb_struct,
1204 Nasx: acb_srcptr,
1205 M: slong,
1206 len: slong,
1207 prec: slong,
1208 );
1209 pub fn _acb_poly_zeta_cpx_series(
1210 z: acb_ptr,
1211 s: *const acb_struct,
1212 a: *const acb_struct,
1213 deflate: libc::c_int,
1214 d: slong,
1215 prec: slong,
1216 );
1217 pub fn _acb_poly_zeta_series(
1218 res: acb_ptr,
1219 h: acb_srcptr,
1220 hlen: slong,
1221 a: *const acb_struct,
1222 deflate: libc::c_int,
1223 len: slong,
1224 prec: slong,
1225 );
1226 pub fn acb_poly_zeta_series(
1227 res: *mut acb_poly_struct,
1228 f: *const acb_poly_struct,
1229 a: *const acb_struct,
1230 deflate: libc::c_int,
1231 n: slong,
1232 prec: slong,
1233 );
1234 pub fn _acb_poly_polylog_cpx_zeta(
1235 w: acb_ptr,
1236 s: *const acb_struct,
1237 z: *const acb_struct,
1238 len: slong,
1239 prec: slong,
1240 );
1241 pub fn _acb_poly_polylog_cpx_small(
1242 w: acb_ptr,
1243 s: *const acb_struct,
1244 z: *const acb_struct,
1245 len: slong,
1246 prec: slong,
1247 );
1248 pub fn _acb_poly_polylog_cpx(
1249 w: acb_ptr,
1250 s: *const acb_struct,
1251 z: *const acb_struct,
1252 len: slong,
1253 prec: slong,
1254 );
1255 pub fn _acb_poly_polylog_series(
1256 res: acb_ptr,
1257 s: acb_srcptr,
1258 slen: slong,
1259 z: *const acb_struct,
1260 len: slong,
1261 prec: slong,
1262 );
1263 pub fn acb_poly_polylog_series(
1264 res: *mut acb_poly_struct,
1265 s: *const acb_poly_struct,
1266 z: *const acb_struct,
1267 n: slong,
1268 prec: slong,
1269 );
1270 pub fn _acb_poly_agm1_series(res: acb_ptr, z: acb_srcptr, zlen: slong, len: slong, prec: slong);
1271 pub fn acb_poly_agm1_series(
1272 res: *mut acb_poly_struct,
1273 z: *const acb_poly_struct,
1274 n: slong,
1275 prec: slong,
1276 );
1277 pub fn _acb_poly_elliptic_k_series(
1278 res: acb_ptr,
1279 z: acb_srcptr,
1280 zlen: slong,
1281 len: slong,
1282 prec: slong,
1283 );
1284 pub fn acb_poly_elliptic_k_series(
1285 res: *mut acb_poly_struct,
1286 z: *const acb_poly_struct,
1287 n: slong,
1288 prec: slong,
1289 );
1290 pub fn _acb_poly_elliptic_p_series(
1291 res: acb_ptr,
1292 z: acb_srcptr,
1293 zlen: slong,
1294 tau: *const acb_struct,
1295 len: slong,
1296 prec: slong,
1297 );
1298 pub fn acb_poly_elliptic_p_series(
1299 res: *mut acb_poly_struct,
1300 z: *const acb_poly_struct,
1301 tau: *const acb_struct,
1302 n: slong,
1303 prec: slong,
1304 );
1305 pub fn _acb_poly_erf_series(g: acb_ptr, h: acb_srcptr, hlen: slong, n: slong, prec: slong);
1306 pub fn acb_poly_erf_series(
1307 g: *mut acb_poly_struct,
1308 h: *const acb_poly_struct,
1309 n: slong,
1310 prec: slong,
1311 );
1312 #[link_name = "acb_poly_allocated_bytes__extern"]
1313 pub fn acb_poly_allocated_bytes(x: *const acb_poly_struct) -> slong;
1314 pub fn cd_poly_roots_initial_values(
1315 z_r: *mut f64,
1316 z_i: *mut f64,
1317 p_r: *const f64,
1318 p_i: *const f64,
1319 n: slong,
1320 z0: *const f64,
1321 d: slong,
1322 );
1323 pub fn cd_poly_weierstrass(
1324 results_r: *mut f64,
1325 results_i: *mut f64,
1326 lc_r: f64,
1327 lc_i: f64,
1328 values_r: *const f64,
1329 values_i: *const f64,
1330 n_start: slong,
1331 n_end: slong,
1332 d: slong,
1333 );
1334 pub fn cd_poly_weierstrass_distinct_orders(
1335 results_r: *mut f64,
1336 results_i: *mut f64,
1337 lc_r: f64,
1338 lc_i: f64,
1339 col_values_r: *const f64,
1340 col_values_i: *const f64,
1341 d: slong,
1342 row_values_r: *const f64,
1343 row_values_i: *const f64,
1344 n_start: slong,
1345 n_end: slong,
1346 );
1347 pub fn cd_poly_wdk_update(
1348 z_r: *mut f64,
1349 z_i: *mut f64,
1350 vp_r: *const f64,
1351 vp_i: *const f64,
1352 wdk_r: *const f64,
1353 wdk_i: *const f64,
1354 n_start: slong,
1355 n_end: slong,
1356 stepsize_bound: f64,
1357 ) -> f64;
1358 pub fn cd_poly_refine_roots(z: *mut f64, p: *const f64, n: slong, stepsize_bound: f64) -> f64;
1359 pub fn cd_poly_refine_roots_with_pivot(
1360 z: *mut f64,
1361 p: *const f64,
1362 n: slong,
1363 stepsize_bound: f64,
1364 ) -> f64;
1365 pub fn cd_poly_horner(
1366 results_r: *mut f64,
1367 results_i: *mut f64,
1368 values_r: *const f64,
1369 values_i: *const f64,
1370 n_start: slong,
1371 n_end: slong,
1372 coefficients_r: *const f64,
1373 coefficients_i: *const f64,
1374 n: slong,
1375 );
1376 pub fn cd_poly_find_roots(
1377 z: *mut f64,
1378 p: *const f64,
1379 z0: *const f64,
1380 n: slong,
1381 num_iter: slong,
1382 reltol: f64,
1383 ) -> f64;
1384 pub fn _acb_poly_find_roots_double(
1385 roots: acb_ptr,
1386 poly: acb_srcptr,
1387 initial: acb_srcptr,
1388 len: slong,
1389 maxiter: slong,
1390 prec: slong,
1391 ) -> f64;
1392}