Skip to main content

flint_sys/
fmpq_poly.rs

1/* automatically generated by rust-bindgen 0.70.1 */
2
3use libc::*;
4use crate::deps::*;
5use crate::flint::*;
6use crate::fmpq_types::*;
7use crate::fmpz_types::*;
8use crate::nmod_types::*;
9
10
11pub const WEAK_CANONICALISE_CUTOFF: u32 = 25600;
12#[repr(C)]
13pub struct fmpq_poly_powers_precomp_struct {
14    pub powers: *mut fmpq_poly_struct,
15    pub len: slong,
16}
17#[allow(clippy::unnecessary_operation, clippy::identity_op)]
18const _: () = {
19    ["Size of fmpq_poly_powers_precomp_struct"]
20        [::std::mem::size_of::<fmpq_poly_powers_precomp_struct>() - 16usize];
21    ["Alignment of fmpq_poly_powers_precomp_struct"]
22        [::std::mem::align_of::<fmpq_poly_powers_precomp_struct>() - 8usize];
23    ["Offset of field: fmpq_poly_powers_precomp_struct::powers"]
24        [::std::mem::offset_of!(fmpq_poly_powers_precomp_struct, powers) - 0usize];
25    ["Offset of field: fmpq_poly_powers_precomp_struct::len"]
26        [::std::mem::offset_of!(fmpq_poly_powers_precomp_struct, len) - 8usize];
27};
28impl Default for fmpq_poly_powers_precomp_struct {
29    fn default() -> Self {
30        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
31        unsafe {
32            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
33            s.assume_init()
34        }
35    }
36}
37pub type fmpq_poly_powers_precomp_t = [fmpq_poly_powers_precomp_struct; 1usize];
38extern "C" {
39    pub fn fmpq_poly_init(poly: *mut fmpq_poly_struct);
40    pub fn fmpq_poly_init2(poly: *mut fmpq_poly_struct, alloc: slong);
41    pub fn fmpq_poly_realloc(poly: *mut fmpq_poly_struct, alloc: slong);
42    pub fn fmpq_poly_fit_length(poly: *mut fmpq_poly_struct, len: slong);
43    pub fn _fmpq_poly_set_length(poly: *mut fmpq_poly_struct, len: slong);
44    pub fn fmpq_poly_clear(poly: *mut fmpq_poly_struct);
45    pub fn _fmpq_poly_normalise(poly: *mut fmpq_poly_struct);
46    pub fn fmpq_poly_get_numerator(res: *mut fmpz_poly_struct, poly: *const fmpq_poly_struct);
47    pub fn fmpq_poly_get_denominator(den: *mut fmpz, poly: *const fmpq_poly_struct);
48    pub fn _fmpq_poly_canonicalise(rpoly: *mut fmpz, den: *mut fmpz, len: slong);
49    pub fn fmpq_poly_canonicalise(poly: *mut fmpq_poly_struct);
50    pub fn _fmpq_poly_is_canonical(poly: *const fmpz, den: *const fmpz, len: slong) -> libc::c_int;
51    pub fn fmpq_poly_is_canonical(poly: *const fmpq_poly_struct) -> libc::c_int;
52    #[link_name = "fmpq_poly_degree__extern"]
53    pub fn fmpq_poly_degree(poly: *const fmpq_poly_struct) -> slong;
54    #[link_name = "fmpq_poly_length__extern"]
55    pub fn fmpq_poly_length(poly: *const fmpq_poly_struct) -> slong;
56    pub fn fmpq_poly_randtest(
57        f: *mut fmpq_poly_struct,
58        state: *mut flint_rand_struct,
59        len: slong,
60        bits_in: flint_bitcnt_t,
61    );
62    pub fn fmpq_poly_randtest_unsigned(
63        f: *mut fmpq_poly_struct,
64        state: *mut flint_rand_struct,
65        len: slong,
66        bits_in: flint_bitcnt_t,
67    );
68    pub fn fmpq_poly_randtest_not_zero(
69        f: *mut fmpq_poly_struct,
70        state: *mut flint_rand_struct,
71        len: slong,
72        bits_in: flint_bitcnt_t,
73    );
74    pub fn fmpq_poly_set(poly1: *mut fmpq_poly_struct, poly2: *const fmpq_poly_struct);
75    pub fn fmpq_poly_set_si(poly: *mut fmpq_poly_struct, x: slong);
76    pub fn fmpq_poly_set_ui(poly: *mut fmpq_poly_struct, x: ulong);
77    pub fn fmpq_poly_set_fmpz(poly: *mut fmpq_poly_struct, x: *const fmpz);
78    pub fn fmpq_poly_set_fmpq(poly: *mut fmpq_poly_struct, x: *const fmpq);
79    pub fn fmpq_poly_set_fmpz_poly(rop: *mut fmpq_poly_struct, op: *const fmpz_poly_struct);
80    pub fn _fmpq_poly_get_nmod_poly(rop: *mut nmod_poly_struct, op: *const fmpq_poly_struct);
81    pub fn fmpq_poly_get_nmod_poly_den(
82        rop: *mut nmod_poly_struct,
83        op: *const fmpq_poly_struct,
84        den: libc::c_int,
85    );
86    pub fn fmpq_poly_get_nmod_poly(rop: *mut nmod_poly_struct, op: *const fmpq_poly_struct);
87    pub fn fmpq_poly_set_nmod_poly(rop: *mut fmpq_poly_struct, op: *const nmod_poly_struct);
88    pub fn _fmpq_poly_set_str(
89        poly: *mut fmpz,
90        den: *mut fmpz,
91        str_: *const libc::c_char,
92        len: slong,
93    ) -> libc::c_int;
94    pub fn fmpq_poly_set_str(poly: *mut fmpq_poly_struct, str_: *const libc::c_char)
95        -> libc::c_int;
96    pub fn fmpq_poly_get_str(poly: *const fmpq_poly_struct) -> *mut libc::c_char;
97    pub fn fmpq_poly_get_str_pretty(
98        poly: *const fmpq_poly_struct,
99        var: *const libc::c_char,
100    ) -> *mut libc::c_char;
101    pub fn _fmpq_poly_get_str_pretty(
102        poly: *const fmpz,
103        den: *const fmpz,
104        len: slong,
105        var: *const libc::c_char,
106    ) -> *mut libc::c_char;
107    pub fn fmpq_poly_zero(poly: *mut fmpq_poly_struct);
108    pub fn fmpq_poly_one(poly: *mut fmpq_poly_struct);
109    pub fn fmpq_poly_neg(poly1: *mut fmpq_poly_struct, poly2: *const fmpq_poly_struct);
110    pub fn fmpq_poly_inv(poly1: *mut fmpq_poly_struct, poly2: *const fmpq_poly_struct);
111    pub fn fmpq_poly_swap(poly1: *mut fmpq_poly_struct, poly2: *mut fmpq_poly_struct);
112    pub fn fmpq_poly_truncate(poly: *mut fmpq_poly_struct, n: slong);
113    pub fn fmpq_poly_set_trunc(res: *mut fmpq_poly_struct, poly: *const fmpq_poly_struct, n: slong);
114    pub fn fmpq_poly_get_slice(
115        rop: *mut fmpq_poly_struct,
116        op: *const fmpq_poly_struct,
117        i: slong,
118        j: slong,
119    );
120    pub fn fmpq_poly_reverse(res: *mut fmpq_poly_struct, poly: *const fmpq_poly_struct, n: slong);
121    pub fn fmpq_poly_get_coeff_fmpz(x: *mut fmpz, poly: *const fmpq_poly_struct, n: slong);
122    pub fn fmpq_poly_get_coeff_fmpq(x: *mut fmpq, poly: *const fmpq_poly_struct, n: slong);
123    pub fn fmpq_poly_set_coeff_si(poly: *mut fmpq_poly_struct, n: slong, x: slong);
124    pub fn fmpq_poly_set_coeff_ui(poly: *mut fmpq_poly_struct, n: slong, x: ulong);
125    pub fn fmpq_poly_set_coeff_fmpz(poly: *mut fmpq_poly_struct, n: slong, x: *const fmpz);
126    pub fn fmpq_poly_set_coeff_fmpq(poly: *mut fmpq_poly_struct, n: slong, x: *const fmpq);
127    pub fn fmpq_poly_equal(
128        poly1: *const fmpq_poly_struct,
129        poly2: *const fmpq_poly_struct,
130    ) -> libc::c_int;
131    pub fn _fmpq_poly_cmp(
132        lpoly: *const fmpz,
133        lden: *const fmpz,
134        rpoly: *const fmpz,
135        rden: *const fmpz,
136        len: slong,
137    ) -> libc::c_int;
138    pub fn fmpq_poly_cmp(
139        left: *const fmpq_poly_struct,
140        right: *const fmpq_poly_struct,
141    ) -> libc::c_int;
142    pub fn _fmpq_poly_equal_trunc(
143        poly1: *const fmpz,
144        den1: *const fmpz,
145        len1: slong,
146        poly2: *const fmpz,
147        den2: *const fmpz,
148        len2: slong,
149        n: slong,
150    ) -> libc::c_int;
151    pub fn fmpq_poly_equal_trunc(
152        poly1: *const fmpq_poly_struct,
153        poly2: *const fmpq_poly_struct,
154        n: slong,
155    ) -> libc::c_int;
156    #[link_name = "fmpq_poly_is_zero__extern"]
157    pub fn fmpq_poly_is_zero(poly: *const fmpq_poly_struct) -> libc::c_int;
158    pub fn fmpq_poly_is_one(poly: *const fmpq_poly_struct) -> libc::c_int;
159    #[link_name = "fmpq_poly_is_gen__extern"]
160    pub fn fmpq_poly_is_gen(op: *const fmpq_poly_struct) -> libc::c_int;
161    pub fn _fmpq_poly_add(
162        rpoly: *mut fmpz,
163        rden: *mut fmpz,
164        poly1: *const fmpz,
165        den1: *const fmpz,
166        len1: slong,
167        poly2: *const fmpz,
168        den2: *const fmpz,
169        len2: slong,
170    );
171    pub fn fmpq_poly_add(
172        res: *mut fmpq_poly_struct,
173        poly1: *const fmpq_poly_struct,
174        poly2: *const fmpq_poly_struct,
175    );
176    pub fn _fmpq_poly_add_can(
177        rpoly: *mut fmpz,
178        rden: *mut fmpz,
179        poly1: *const fmpz,
180        den1: *const fmpz,
181        len1: slong,
182        poly2: *const fmpz,
183        den2: *const fmpz,
184        len2: slong,
185        can: libc::c_int,
186    );
187    pub fn fmpq_poly_add_can(
188        res: *mut fmpq_poly_struct,
189        poly1: *const fmpq_poly_struct,
190        poly2: *const fmpq_poly_struct,
191        can: libc::c_int,
192    );
193    pub fn fmpq_poly_add_si(res: *mut fmpq_poly_struct, poly: *const fmpq_poly_struct, c: slong);
194    pub fn fmpq_poly_add_fmpz(
195        res: *mut fmpq_poly_struct,
196        poly: *const fmpq_poly_struct,
197        c: *const fmpz,
198    );
199    pub fn fmpq_poly_add_fmpq(
200        res: *mut fmpq_poly_struct,
201        poly: *const fmpq_poly_struct,
202        c: *const fmpq,
203    );
204    pub fn _fmpq_poly_add_series(
205        rpoly: *mut fmpz,
206        rden: *mut fmpz,
207        poly1: *const fmpz,
208        den1: *const fmpz,
209        len1: slong,
210        poly2: *const fmpz,
211        den2: *const fmpz,
212        len2: slong,
213        n: slong,
214    );
215    pub fn fmpq_poly_add_series(
216        res: *mut fmpq_poly_struct,
217        poly1: *const fmpq_poly_struct,
218        poly2: *const fmpq_poly_struct,
219        n: slong,
220    );
221    pub fn _fmpq_poly_add_series_can(
222        rpoly: *mut fmpz,
223        rden: *mut fmpz,
224        poly1: *const fmpz,
225        den1: *const fmpz,
226        len1: slong,
227        poly2: *const fmpz,
228        den2: *const fmpz,
229        len2: slong,
230        n: slong,
231        can: libc::c_int,
232    );
233    pub fn fmpq_poly_add_series_can(
234        res: *mut fmpq_poly_struct,
235        poly1: *const fmpq_poly_struct,
236        poly2: *const fmpq_poly_struct,
237        n: slong,
238        can: libc::c_int,
239    );
240    pub fn _fmpq_poly_sub(
241        rpoly: *mut fmpz,
242        rden: *mut fmpz,
243        poly1: *const fmpz,
244        den1: *const fmpz,
245        len1: slong,
246        poly2: *const fmpz,
247        den2: *const fmpz,
248        len2: slong,
249    );
250    pub fn fmpq_poly_sub(
251        res: *mut fmpq_poly_struct,
252        poly1: *const fmpq_poly_struct,
253        poly2: *const fmpq_poly_struct,
254    );
255    pub fn fmpq_poly_sub_si(res: *mut fmpq_poly_struct, poly: *const fmpq_poly_struct, c: slong);
256    pub fn fmpq_poly_si_sub(res: *mut fmpq_poly_struct, c: slong, poly: *const fmpq_poly_struct);
257    pub fn fmpq_poly_sub_fmpz(
258        res: *mut fmpq_poly_struct,
259        poly: *const fmpq_poly_struct,
260        c: *const fmpz,
261    );
262    pub fn fmpq_poly_fmpz_sub(
263        res: *mut fmpq_poly_struct,
264        c: *const fmpz,
265        poly: *const fmpq_poly_struct,
266    );
267    pub fn fmpq_poly_sub_fmpq(
268        res: *mut fmpq_poly_struct,
269        poly: *const fmpq_poly_struct,
270        c: *const fmpq,
271    );
272    pub fn fmpq_poly_fmpq_sub(
273        res: *mut fmpq_poly_struct,
274        c: *const fmpq,
275        poly: *const fmpq_poly_struct,
276    );
277    pub fn _fmpq_poly_sub_can(
278        rpoly: *mut fmpz,
279        rden: *mut fmpz,
280        poly1: *const fmpz,
281        den1: *const fmpz,
282        len1: slong,
283        poly2: *const fmpz,
284        den2: *const fmpz,
285        len2: slong,
286        can: libc::c_int,
287    );
288    pub fn fmpq_poly_sub_can(
289        res: *mut fmpq_poly_struct,
290        poly1: *const fmpq_poly_struct,
291        poly2: *const fmpq_poly_struct,
292        can: libc::c_int,
293    );
294    pub fn _fmpq_poly_sub_series(
295        rpoly: *mut fmpz,
296        rden: *mut fmpz,
297        poly1: *const fmpz,
298        den1: *const fmpz,
299        len1: slong,
300        poly2: *const fmpz,
301        den2: *const fmpz,
302        len2: slong,
303        n: slong,
304    );
305    pub fn fmpq_poly_sub_series(
306        res: *mut fmpq_poly_struct,
307        poly1: *const fmpq_poly_struct,
308        poly2: *const fmpq_poly_struct,
309        n: slong,
310    );
311    pub fn _fmpq_poly_sub_series_can(
312        rpoly: *mut fmpz,
313        rden: *mut fmpz,
314        poly1: *const fmpz,
315        den1: *const fmpz,
316        len1: slong,
317        poly2: *const fmpz,
318        den2: *const fmpz,
319        len2: slong,
320        n: slong,
321        can: libc::c_int,
322    );
323    pub fn fmpq_poly_sub_series_can(
324        res: *mut fmpq_poly_struct,
325        poly1: *const fmpq_poly_struct,
326        poly2: *const fmpq_poly_struct,
327        n: slong,
328        can: libc::c_int,
329    );
330    pub fn _fmpq_poly_scalar_mul_si(
331        rpoly: *mut fmpz,
332        rden: *mut fmpz,
333        poly: *const fmpz,
334        den: *const fmpz,
335        len: slong,
336        c: slong,
337    );
338    pub fn _fmpq_poly_scalar_mul_ui(
339        rpoly: *mut fmpz,
340        rden: *mut fmpz,
341        poly: *const fmpz,
342        den: *const fmpz,
343        len: slong,
344        c: ulong,
345    );
346    pub fn _fmpq_poly_scalar_mul_fmpz(
347        rpoly: *mut fmpz,
348        rden: *mut fmpz,
349        poly: *const fmpz,
350        den: *const fmpz,
351        len: slong,
352        c: *const fmpz,
353    );
354    pub fn _fmpq_poly_scalar_mul_fmpq(
355        rpoly: *mut fmpz,
356        rden: *mut fmpz,
357        poly: *const fmpz,
358        den: *const fmpz,
359        len: slong,
360        r: *const fmpz,
361        s: *const fmpz,
362    );
363    pub fn fmpq_poly_scalar_mul_si(
364        rop: *mut fmpq_poly_struct,
365        op: *const fmpq_poly_struct,
366        c: slong,
367    );
368    pub fn fmpq_poly_scalar_mul_ui(
369        rop: *mut fmpq_poly_struct,
370        op: *const fmpq_poly_struct,
371        c: ulong,
372    );
373    pub fn fmpq_poly_scalar_mul_fmpz(
374        rop: *mut fmpq_poly_struct,
375        op: *const fmpq_poly_struct,
376        c: *const fmpz,
377    );
378    pub fn fmpq_poly_scalar_mul_fmpq(
379        rop: *mut fmpq_poly_struct,
380        op: *const fmpq_poly_struct,
381        c: *const fmpq,
382    );
383    pub fn _fmpq_poly_scalar_div_si(
384        rpoly: *mut fmpz,
385        rden: *mut fmpz,
386        poly: *const fmpz,
387        den: *const fmpz,
388        len: slong,
389        c: slong,
390    );
391    pub fn _fmpq_poly_scalar_div_ui(
392        rpoly: *mut fmpz,
393        rden: *mut fmpz,
394        poly: *const fmpz,
395        den: *const fmpz,
396        len: slong,
397        c: ulong,
398    );
399    pub fn _fmpq_poly_scalar_div_fmpz(
400        rpoly: *mut fmpz,
401        rden: *mut fmpz,
402        poly: *const fmpz,
403        den: *const fmpz,
404        len: slong,
405        c: *const fmpz,
406    );
407    pub fn _fmpq_poly_scalar_div_fmpq(
408        rpoly: *mut fmpz,
409        rden: *mut fmpz,
410        poly: *const fmpz,
411        den: *const fmpz,
412        len: slong,
413        r: *const fmpz,
414        s: *const fmpz,
415    );
416    pub fn fmpq_poly_scalar_div_si(
417        rop: *mut fmpq_poly_struct,
418        op: *const fmpq_poly_struct,
419        c: slong,
420    );
421    pub fn fmpq_poly_scalar_div_ui(
422        rop: *mut fmpq_poly_struct,
423        op: *const fmpq_poly_struct,
424        c: ulong,
425    );
426    pub fn fmpq_poly_scalar_div_fmpz(
427        rop: *mut fmpq_poly_struct,
428        op: *const fmpq_poly_struct,
429        c: *const fmpz,
430    );
431    pub fn fmpq_poly_scalar_div_fmpq(
432        rop: *mut fmpq_poly_struct,
433        op: *const fmpq_poly_struct,
434        c: *const fmpq,
435    );
436    pub fn _fmpq_poly_mul(
437        rpoly: *mut fmpz,
438        rden: *mut fmpz,
439        poly1: *const fmpz,
440        den1: *const fmpz,
441        len1: slong,
442        poly2: *const fmpz,
443        den2: *const fmpz,
444        len2: slong,
445    );
446    pub fn fmpq_poly_mul(
447        res: *mut fmpq_poly_struct,
448        poly1: *const fmpq_poly_struct,
449        poly2: *const fmpq_poly_struct,
450    );
451    pub fn _fmpq_poly_mullow(
452        rpoly: *mut fmpz,
453        rden: *mut fmpz,
454        poly1: *const fmpz,
455        den1: *const fmpz,
456        len1: slong,
457        poly2: *const fmpz,
458        den2: *const fmpz,
459        len2: slong,
460        n: slong,
461    );
462    pub fn fmpq_poly_mullow(
463        res: *mut fmpq_poly_struct,
464        poly1: *const fmpq_poly_struct,
465        poly2: *const fmpq_poly_struct,
466        n: slong,
467    );
468    #[link_name = "fmpq_poly_addmul__extern"]
469    pub fn fmpq_poly_addmul(
470        rop: *mut fmpq_poly_struct,
471        op1: *const fmpq_poly_struct,
472        op2: *const fmpq_poly_struct,
473    );
474    #[link_name = "fmpq_poly_submul__extern"]
475    pub fn fmpq_poly_submul(
476        rop: *mut fmpq_poly_struct,
477        op1: *const fmpq_poly_struct,
478        op2: *const fmpq_poly_struct,
479    );
480    pub fn _fmpq_poly_pow(
481        rpoly: *mut fmpz,
482        rden: *mut fmpz,
483        poly: *const fmpz,
484        den: *const fmpz,
485        len: slong,
486        e: ulong,
487    );
488    pub fn fmpq_poly_pow(rpoly: *mut fmpq_poly_struct, poly: *const fmpq_poly_struct, e: ulong);
489    pub fn _fmpq_poly_pow_trunc(
490        res: *mut fmpz,
491        resden: *mut fmpz,
492        f: *const fmpz,
493        fden: *const fmpz,
494        flen: slong,
495        exp: ulong,
496        len: slong,
497    );
498    pub fn fmpq_poly_pow_trunc(
499        res: *mut fmpq_poly_struct,
500        poly: *const fmpq_poly_struct,
501        exp: ulong,
502        len: slong,
503    );
504    pub fn fmpq_poly_shift_left(
505        res: *mut fmpq_poly_struct,
506        poly: *const fmpq_poly_struct,
507        n: slong,
508    );
509    pub fn fmpq_poly_shift_right(
510        res: *mut fmpq_poly_struct,
511        poly: *const fmpq_poly_struct,
512        n: slong,
513    );
514    pub fn fmpq_poly_divrem(
515        Q: *mut fmpq_poly_struct,
516        R: *mut fmpq_poly_struct,
517        poly1: *const fmpq_poly_struct,
518        poly2: *const fmpq_poly_struct,
519    );
520    pub fn fmpq_poly_div(
521        Q: *mut fmpq_poly_struct,
522        poly1: *const fmpq_poly_struct,
523        poly2: *const fmpq_poly_struct,
524    );
525    pub fn fmpq_poly_rem(
526        R: *mut fmpq_poly_struct,
527        poly1: *const fmpq_poly_struct,
528        poly2: *const fmpq_poly_struct,
529    );
530    pub fn _fmpq_poly_powers_precompute(
531        B: *const fmpz,
532        UNUSED_denB: *const fmpz,
533        len: slong,
534    ) -> *mut fmpq_poly_struct;
535    pub fn fmpq_poly_powers_precompute(
536        pinv: *mut fmpq_poly_powers_precomp_struct,
537        poly: *mut fmpq_poly_struct,
538    );
539    pub fn _fmpq_poly_powers_clear(powers: *mut fmpq_poly_struct, len: slong);
540    pub fn fmpq_poly_powers_clear(pinv: *mut fmpq_poly_powers_precomp_struct);
541    pub fn _fmpq_poly_rem_powers_precomp(
542        A: *mut fmpz,
543        denA: *mut fmpz,
544        m: slong,
545        B: *const fmpz,
546        denB: *const fmpz,
547        n: slong,
548        powers: *mut fmpq_poly_struct,
549    );
550    pub fn fmpq_poly_rem_powers_precomp(
551        R: *mut fmpq_poly_struct,
552        A: *const fmpq_poly_struct,
553        B: *const fmpq_poly_struct,
554        B_inv: *const fmpq_poly_powers_precomp_struct,
555    );
556    pub fn _fmpq_poly_divides(
557        qpoly: *mut fmpz,
558        qden: *mut fmpz,
559        poly1: *const fmpz,
560        den1: *const fmpz,
561        len1: slong,
562        poly2: *const fmpz,
563        den2: *const fmpz,
564        len2: slong,
565    ) -> libc::c_int;
566    pub fn fmpq_poly_divides(
567        q: *mut fmpq_poly_struct,
568        poly1: *const fmpq_poly_struct,
569        poly2: *const fmpq_poly_struct,
570    ) -> libc::c_int;
571    pub fn fmpq_poly_remove(
572        q: *mut fmpq_poly_struct,
573        poly1: *const fmpq_poly_struct,
574        poly2: *const fmpq_poly_struct,
575    ) -> slong;
576    pub fn _fmpq_poly_inv_series_newton(
577        Qinv: *mut fmpz,
578        Qinvden: *mut fmpz,
579        Q: *const fmpz,
580        Qden: *const fmpz,
581        Qlen: slong,
582        n: slong,
583    );
584    pub fn fmpq_poly_inv_series_newton(
585        Qinv: *mut fmpq_poly_struct,
586        Q: *const fmpq_poly_struct,
587        n: slong,
588    );
589    #[link_name = "_fmpq_poly_inv_series__extern"]
590    pub fn _fmpq_poly_inv_series(
591        Qinv: *mut fmpz,
592        Qinvden: *mut fmpz,
593        Q: *const fmpz,
594        Qden: *const fmpz,
595        Qlen: slong,
596        n: slong,
597    );
598    #[link_name = "fmpq_poly_inv_series__extern"]
599    pub fn fmpq_poly_inv_series(Qinv: *mut fmpq_poly_struct, Q: *const fmpq_poly_struct, n: slong);
600    pub fn _fmpq_poly_div_series(
601        Q: *mut fmpz,
602        denQ: *mut fmpz,
603        A: *const fmpz,
604        denA: *const fmpz,
605        lenA: slong,
606        B: *const fmpz,
607        denB: *const fmpz,
608        lenB: slong,
609        n: slong,
610    );
611    pub fn fmpq_poly_div_series(
612        Q: *mut fmpq_poly_struct,
613        A: *const fmpq_poly_struct,
614        B: *const fmpq_poly_struct,
615        n: slong,
616    );
617    pub fn _fmpq_poly_gcd(
618        G: *mut fmpz,
619        denG: *mut fmpz,
620        A: *const fmpz,
621        lenA: slong,
622        B: *const fmpz,
623        lenB: slong,
624    );
625    pub fn fmpq_poly_gcd(
626        G: *mut fmpq_poly_struct,
627        A: *const fmpq_poly_struct,
628        B: *const fmpq_poly_struct,
629    );
630    pub fn _fmpq_poly_xgcd(
631        G: *mut fmpz,
632        denG: *mut fmpz,
633        S: *mut fmpz,
634        denS: *mut fmpz,
635        T: *mut fmpz,
636        denT: *mut fmpz,
637        A: *const fmpz,
638        denA: *const fmpz,
639        lenA: slong,
640        B: *const fmpz,
641        denB: *const fmpz,
642        lenB: slong,
643    );
644    pub fn fmpq_poly_xgcd(
645        G: *mut fmpq_poly_struct,
646        S: *mut fmpq_poly_struct,
647        T: *mut fmpq_poly_struct,
648        A: *const fmpq_poly_struct,
649        B: *const fmpq_poly_struct,
650    );
651    pub fn _fmpq_poly_lcm(
652        G: *mut fmpz,
653        denG: *mut fmpz,
654        A: *const fmpz,
655        lenA: slong,
656        B: *const fmpz,
657        lenB: slong,
658    );
659    pub fn fmpq_poly_lcm(
660        L: *mut fmpq_poly_struct,
661        A: *const fmpq_poly_struct,
662        B: *const fmpq_poly_struct,
663    );
664    pub fn _fmpq_poly_resultant(
665        rnum: *mut fmpz,
666        rden: *mut fmpz,
667        poly1: *const fmpz,
668        den1: *const fmpz,
669        len1: slong,
670        poly2: *const fmpz,
671        den2: *const fmpz,
672        len2: slong,
673    );
674    pub fn fmpq_poly_resultant(
675        r: *mut fmpq,
676        f: *const fmpq_poly_struct,
677        g: *const fmpq_poly_struct,
678    );
679    pub fn _fmpq_poly_resultant_div(
680        rnum: *mut fmpz,
681        rden: *mut fmpz,
682        poly1: *const fmpz,
683        den1: *const fmpz,
684        len1: slong,
685        poly2: *const fmpz,
686        den2: *const fmpz,
687        len2: slong,
688        divisor: *const fmpz,
689        nbits: slong,
690    );
691    pub fn fmpq_poly_resultant_div(
692        r: *mut fmpq,
693        f: *const fmpq_poly_struct,
694        g: *const fmpq_poly_struct,
695        divisor: *const fmpz,
696        nbits: slong,
697    );
698    pub fn _fmpq_poly_derivative(
699        rpoly: *mut fmpz,
700        rden: *mut fmpz,
701        poly: *const fmpz,
702        den: *const fmpz,
703        len: slong,
704    );
705    pub fn fmpq_poly_derivative(res: *mut fmpq_poly_struct, poly: *const fmpq_poly_struct);
706    pub fn _fmpq_poly_nth_derivative(
707        rpoly: *mut fmpz,
708        rden: *mut fmpz,
709        poly: *const fmpz,
710        den: *const fmpz,
711        n: ulong,
712        len: slong,
713    );
714    pub fn fmpq_poly_nth_derivative(
715        res: *mut fmpq_poly_struct,
716        poly: *const fmpq_poly_struct,
717        n: ulong,
718    );
719    pub fn _fmpq_poly_integral(
720        rpoly: *mut fmpz,
721        rden: *mut fmpz,
722        poly: *const fmpz,
723        den: *const fmpz,
724        len: slong,
725    );
726    pub fn fmpq_poly_integral(res: *mut fmpq_poly_struct, poly: *const fmpq_poly_struct);
727    pub fn _fmpq_poly_invsqrt_series(
728        rpoly: *mut fmpz,
729        rden: *mut fmpz,
730        poly: *const fmpz,
731        den: *const fmpz,
732        len: slong,
733        n: slong,
734    );
735    pub fn fmpq_poly_invsqrt_series(
736        res: *mut fmpq_poly_struct,
737        poly: *const fmpq_poly_struct,
738        n: slong,
739    );
740    pub fn _fmpq_poly_sqrt_series(
741        rpoly: *mut fmpz,
742        rden: *mut fmpz,
743        poly: *const fmpz,
744        den: *const fmpz,
745        len: slong,
746        n: slong,
747    );
748    pub fn fmpq_poly_sqrt_series(
749        res: *mut fmpq_poly_struct,
750        poly: *const fmpq_poly_struct,
751        n: slong,
752    );
753    pub fn _fmpq_poly_power_sums(
754        res: *mut fmpz,
755        rden: *mut fmpz,
756        poly: *const fmpz,
757        len: slong,
758        n: slong,
759    );
760    pub fn fmpq_poly_power_sums(
761        res: *mut fmpq_poly_struct,
762        poly: *const fmpq_poly_struct,
763        n: slong,
764    );
765    pub fn _fmpq_poly_power_sums_to_poly(
766        res: *mut fmpz,
767        poly: *const fmpz,
768        den: *const fmpz,
769        len: slong,
770    );
771    pub fn fmpq_poly_power_sums_to_fmpz_poly(
772        res: *mut fmpz_poly_struct,
773        Q: *const fmpq_poly_struct,
774    );
775    pub fn fmpq_poly_power_sums_to_poly(res: *mut fmpq_poly_struct, Q: *const fmpq_poly_struct);
776    pub fn _fmpq_poly_log_series(
777        g: *mut fmpz,
778        gden: *mut fmpz,
779        f: *const fmpz,
780        fden: *const fmpz,
781        flen: slong,
782        n: slong,
783    );
784    pub fn fmpq_poly_log_series(res: *mut fmpq_poly_struct, f: *const fmpq_poly_struct, n: slong);
785    pub fn _fmpq_poly_exp_series(
786        g: *mut fmpz,
787        gden: *mut fmpz,
788        h: *const fmpz,
789        hden: *const fmpz,
790        hlen: slong,
791        n: slong,
792    );
793    pub fn fmpq_poly_exp_series(
794        res: *mut fmpq_poly_struct,
795        poly: *const fmpq_poly_struct,
796        n: slong,
797    );
798    pub fn _fmpq_poly_exp_expinv_series(
799        g: *mut fmpz,
800        gden: *mut fmpz,
801        r: *mut fmpz,
802        rden: *mut fmpz,
803        h: *const fmpz,
804        hden: *const fmpz,
805        hlen: slong,
806        n: slong,
807    );
808    pub fn fmpq_poly_exp_expinv_series(
809        res1: *mut fmpq_poly_struct,
810        res2: *mut fmpq_poly_struct,
811        poly: *const fmpq_poly_struct,
812        n: slong,
813    );
814    pub fn _fmpq_poly_atan_series(
815        g: *mut fmpz,
816        gden: *mut fmpz,
817        h: *const fmpz,
818        hden: *const fmpz,
819        hlen: slong,
820        n: slong,
821    );
822    pub fn fmpq_poly_atan_series(
823        res: *mut fmpq_poly_struct,
824        poly: *const fmpq_poly_struct,
825        n: slong,
826    );
827    pub fn _fmpq_poly_atanh_series(
828        g: *mut fmpz,
829        gden: *mut fmpz,
830        h: *const fmpz,
831        hden: *const fmpz,
832        hlen: slong,
833        n: slong,
834    );
835    pub fn fmpq_poly_atanh_series(
836        res: *mut fmpq_poly_struct,
837        poly: *const fmpq_poly_struct,
838        n: slong,
839    );
840    pub fn _fmpq_poly_asin_series(
841        g: *mut fmpz,
842        gden: *mut fmpz,
843        h: *const fmpz,
844        hden: *const fmpz,
845        hlen: slong,
846        n: slong,
847    );
848    pub fn fmpq_poly_asin_series(
849        res: *mut fmpq_poly_struct,
850        poly: *const fmpq_poly_struct,
851        n: slong,
852    );
853    pub fn _fmpq_poly_asinh_series(
854        g: *mut fmpz,
855        gden: *mut fmpz,
856        h: *const fmpz,
857        hden: *const fmpz,
858        hlen: slong,
859        n: slong,
860    );
861    pub fn fmpq_poly_asinh_series(
862        res: *mut fmpq_poly_struct,
863        poly: *const fmpq_poly_struct,
864        n: slong,
865    );
866    pub fn _fmpq_poly_tan_series(
867        g: *mut fmpz,
868        gden: *mut fmpz,
869        h: *const fmpz,
870        hden: *const fmpz,
871        hlen: slong,
872        n: slong,
873    );
874    pub fn fmpq_poly_tan_series(
875        res: *mut fmpq_poly_struct,
876        poly: *const fmpq_poly_struct,
877        n: slong,
878    );
879    pub fn _fmpq_poly_sin_series(
880        g: *mut fmpz,
881        gden: *mut fmpz,
882        h: *const fmpz,
883        hden: *const fmpz,
884        hlen: slong,
885        n: slong,
886    );
887    pub fn fmpq_poly_sin_series(
888        res: *mut fmpq_poly_struct,
889        poly: *const fmpq_poly_struct,
890        n: slong,
891    );
892    pub fn _fmpq_poly_cos_series(
893        g: *mut fmpz,
894        gden: *mut fmpz,
895        h: *const fmpz,
896        hden: *const fmpz,
897        hlen: slong,
898        n: slong,
899    );
900    pub fn fmpq_poly_cos_series(
901        res: *mut fmpq_poly_struct,
902        poly: *const fmpq_poly_struct,
903        n: slong,
904    );
905    pub fn _fmpq_poly_sin_cos_series(
906        s: *mut fmpz,
907        sden: *mut fmpz,
908        c: *mut fmpz,
909        cden: *mut fmpz,
910        h: *const fmpz,
911        hden: *const fmpz,
912        hlen: slong,
913        n: slong,
914    );
915    pub fn fmpq_poly_sin_cos_series(
916        res1: *mut fmpq_poly_struct,
917        res2: *mut fmpq_poly_struct,
918        poly: *const fmpq_poly_struct,
919        n: slong,
920    );
921    pub fn _fmpq_poly_sinh_series(
922        g: *mut fmpz,
923        gden: *mut fmpz,
924        h: *const fmpz,
925        hden: *const fmpz,
926        hlen: slong,
927        n: slong,
928    );
929    pub fn fmpq_poly_sinh_series(
930        res: *mut fmpq_poly_struct,
931        poly: *const fmpq_poly_struct,
932        n: slong,
933    );
934    pub fn _fmpq_poly_cosh_series(
935        g: *mut fmpz,
936        gden: *mut fmpz,
937        h: *const fmpz,
938        hden: *const fmpz,
939        hlen: slong,
940        n: slong,
941    );
942    pub fn fmpq_poly_cosh_series(
943        res: *mut fmpq_poly_struct,
944        poly: *const fmpq_poly_struct,
945        n: slong,
946    );
947    pub fn _fmpq_poly_sinh_cosh_series(
948        s: *mut fmpz,
949        sden: *mut fmpz,
950        c: *mut fmpz,
951        cden: *mut fmpz,
952        h: *const fmpz,
953        hden: *const fmpz,
954        hlen: slong,
955        n: slong,
956    );
957    pub fn fmpq_poly_sinh_cosh_series(
958        res1: *mut fmpq_poly_struct,
959        res2: *mut fmpq_poly_struct,
960        poly: *const fmpq_poly_struct,
961        n: slong,
962    );
963    pub fn _fmpq_poly_tanh_series(
964        g: *mut fmpz,
965        gden: *mut fmpz,
966        h: *const fmpz,
967        hden: *const fmpz,
968        hlen: slong,
969        n: slong,
970    );
971    pub fn fmpq_poly_tanh_series(
972        res: *mut fmpq_poly_struct,
973        poly: *const fmpq_poly_struct,
974        n: slong,
975    );
976    pub fn _fmpq_poly_legendre_p(coeffs: *mut fmpz, den: *mut fmpz, n: ulong);
977    pub fn fmpq_poly_legendre_p(poly: *mut fmpq_poly_struct, n: ulong);
978    pub fn _fmpq_poly_laguerre_l(coeffs: *mut fmpz, den: *mut fmpz, n: ulong);
979    pub fn fmpq_poly_laguerre_l(poly: *mut fmpq_poly_struct, n: ulong);
980    pub fn _fmpq_poly_gegenbauer_c(coeffs: *mut fmpz, den: *mut fmpz, n: ulong, a: *const fmpq);
981    pub fn fmpq_poly_gegenbauer_c(poly: *mut fmpq_poly_struct, n: ulong, a: *const fmpq);
982    pub fn _fmpq_poly_evaluate_fmpz(
983        rnum: *mut fmpz,
984        rden: *mut fmpz,
985        poly: *const fmpz,
986        den: *const fmpz,
987        len: slong,
988        a: *const fmpz,
989    );
990    pub fn fmpq_poly_evaluate_fmpz(res: *mut fmpq, poly: *const fmpq_poly_struct, a: *const fmpz);
991    pub fn _fmpq_poly_evaluate_fmpq(
992        rnum: *mut fmpz,
993        rden: *mut fmpz,
994        poly: *const fmpz,
995        den: *const fmpz,
996        len: slong,
997        anum: *const fmpz,
998        aden: *const fmpz,
999    );
1000    pub fn fmpq_poly_evaluate_fmpq(res: *mut fmpq, poly: *const fmpq_poly_struct, a: *const fmpq);
1001    pub fn _fmpq_poly_interpolate_fmpq_vec(
1002        coeffs: *mut fmpz,
1003        den: *mut fmpz,
1004        xs: *const fmpq,
1005        ys: *const fmpq,
1006        n: slong,
1007    ) -> libc::c_int;
1008    pub fn fmpq_poly_interpolate_fmpq_vec(
1009        poly: *mut fmpq_poly_struct,
1010        xs: *const fmpq,
1011        ys: *const fmpq,
1012        n: slong,
1013    ) -> libc::c_int;
1014    pub fn fmpq_poly_interpolate_fmpz_fmpq_vec(
1015        poly: *mut fmpq_poly_struct,
1016        xs: *const fmpz,
1017        ys: *const fmpq,
1018        n: slong,
1019    ) -> libc::c_int;
1020    pub fn fmpq_poly_interpolate_fmpz_vec(
1021        poly: *mut fmpq_poly_struct,
1022        xs: *const fmpz,
1023        ys: *const fmpz,
1024        n: slong,
1025    ) -> libc::c_int;
1026    pub fn _fmpq_poly_interpolation_weights(
1027        w: *mut fmpz,
1028        wden: *mut fmpz,
1029        xs: *const fmpq,
1030        len: slong,
1031    );
1032    pub fn _fmpq_poly_interpolate_fast_precomp(
1033        poly: *mut fmpz,
1034        den: *mut fmpz,
1035        ys: *const fmpq,
1036        tree: *const *mut fmpz,
1037        weights: *const fmpz,
1038        len: slong,
1039    );
1040    pub fn _fmpq_poly_interpolate_fast(
1041        poly: *mut fmpz,
1042        den: *mut fmpz,
1043        xs: *const fmpq,
1044        ys: *const fmpq,
1045        len: slong,
1046    );
1047    pub fn fmpq_poly_interpolate_fast(
1048        poly: *mut fmpq_poly_struct,
1049        xs: *const fmpq,
1050        ys: *const fmpq,
1051        n: slong,
1052    );
1053    pub fn _fmpq_poly_interpolate_multi_mod(
1054        poly: *mut fmpz,
1055        den: *mut fmpz,
1056        xs: *const fmpq,
1057        ys: *const fmpq,
1058        n: slong,
1059    );
1060    pub fn fmpq_poly_interpolate_multi_mod(
1061        poly: *mut fmpq_poly_struct,
1062        xs: *const fmpq,
1063        ys: *const fmpq,
1064        n: slong,
1065    );
1066    pub fn _fmpq_poly_interpolate_barycentric(
1067        poly: *mut fmpz,
1068        den: *mut fmpz,
1069        xs: *const fmpq,
1070        ys: *const fmpq,
1071        n: slong,
1072    );
1073    pub fn fmpq_poly_interpolate_barycentric(
1074        poly: *mut fmpq_poly_struct,
1075        xs: *const fmpq,
1076        ys: *const fmpq,
1077        n: slong,
1078    );
1079    pub fn _fmpq_poly_compose(
1080        res: *mut fmpz,
1081        den: *mut fmpz,
1082        poly1: *const fmpz,
1083        den1: *const fmpz,
1084        len1: slong,
1085        poly2: *const fmpz,
1086        den2: *const fmpz,
1087        len2: slong,
1088    );
1089    pub fn fmpq_poly_compose(
1090        res: *mut fmpq_poly_struct,
1091        poly1: *const fmpq_poly_struct,
1092        poly2: *const fmpq_poly_struct,
1093    );
1094    pub fn _fmpq_poly_rescale(
1095        res: *mut fmpz,
1096        denr: *mut fmpz,
1097        poly: *const fmpz,
1098        den: *const fmpz,
1099        len: slong,
1100        xnum: *const fmpz,
1101        xden: *const fmpz,
1102    );
1103    pub fn fmpq_poly_rescale(
1104        res: *mut fmpq_poly_struct,
1105        poly: *const fmpq_poly_struct,
1106        x: *const fmpq,
1107    );
1108    pub fn _fmpq_poly_compose_series_horner(
1109        res: *mut fmpz,
1110        den: *mut fmpz,
1111        poly1: *const fmpz,
1112        den1: *const fmpz,
1113        len1: slong,
1114        poly2: *const fmpz,
1115        den2: *const fmpz,
1116        len2: slong,
1117        n: slong,
1118    );
1119    pub fn fmpq_poly_compose_series_horner(
1120        res: *mut fmpq_poly_struct,
1121        poly1: *const fmpq_poly_struct,
1122        poly2: *const fmpq_poly_struct,
1123        n: slong,
1124    );
1125    pub fn _fmpq_poly_compose_series_brent_kung(
1126        res: *mut fmpz,
1127        den: *mut fmpz,
1128        poly1: *const fmpz,
1129        den1: *const fmpz,
1130        len1: slong,
1131        poly2: *const fmpz,
1132        den2: *const fmpz,
1133        len2: slong,
1134        n: slong,
1135    );
1136    pub fn fmpq_poly_compose_series_brent_kung(
1137        res: *mut fmpq_poly_struct,
1138        poly1: *const fmpq_poly_struct,
1139        poly2: *const fmpq_poly_struct,
1140        n: slong,
1141    );
1142    pub fn _fmpq_poly_compose_series(
1143        res: *mut fmpz,
1144        den: *mut fmpz,
1145        poly1: *const fmpz,
1146        den1: *const fmpz,
1147        len1: slong,
1148        poly2: *const fmpz,
1149        den2: *const fmpz,
1150        len2: slong,
1151        n: slong,
1152    );
1153    pub fn fmpq_poly_compose_series(
1154        res: *mut fmpq_poly_struct,
1155        poly1: *const fmpq_poly_struct,
1156        poly2: *const fmpq_poly_struct,
1157        n: slong,
1158    );
1159    pub fn _fmpq_poly_revert_series_lagrange(
1160        res: *mut fmpz,
1161        den: *mut fmpz,
1162        poly1: *const fmpz,
1163        den1: *const fmpz,
1164        len1: slong,
1165        n: slong,
1166    );
1167    pub fn fmpq_poly_revert_series_lagrange(
1168        res: *mut fmpq_poly_struct,
1169        poly: *const fmpq_poly_struct,
1170        n: slong,
1171    );
1172    pub fn _fmpq_poly_revert_series_lagrange_fast(
1173        res: *mut fmpz,
1174        den: *mut fmpz,
1175        poly1: *const fmpz,
1176        den1: *const fmpz,
1177        len1: slong,
1178        n: slong,
1179    );
1180    pub fn fmpq_poly_revert_series_lagrange_fast(
1181        res: *mut fmpq_poly_struct,
1182        poly: *const fmpq_poly_struct,
1183        n: slong,
1184    );
1185    pub fn _fmpq_poly_revert_series_newton(
1186        res: *mut fmpz,
1187        den: *mut fmpz,
1188        poly1: *const fmpz,
1189        den1: *const fmpz,
1190        len1: slong,
1191        n: slong,
1192    );
1193    pub fn fmpq_poly_revert_series_newton(
1194        res: *mut fmpq_poly_struct,
1195        poly: *const fmpq_poly_struct,
1196        n: slong,
1197    );
1198    pub fn _fmpq_poly_revert_series(
1199        res: *mut fmpz,
1200        den: *mut fmpz,
1201        poly1: *const fmpz,
1202        den1: *const fmpz,
1203        len1: slong,
1204        n: slong,
1205    );
1206    pub fn fmpq_poly_revert_series(
1207        res: *mut fmpq_poly_struct,
1208        poly: *const fmpq_poly_struct,
1209        n: slong,
1210    );
1211    pub fn _fmpq_poly_content(res: *mut fmpq, poly: *const fmpz, den: *const fmpz, len: slong);
1212    pub fn fmpq_poly_content(res: *mut fmpq, poly: *const fmpq_poly_struct);
1213    pub fn _fmpq_poly_primitive_part(
1214        rpoly: *mut fmpz,
1215        rden: *mut fmpz,
1216        poly: *const fmpz,
1217        UNUSED_den: *const fmpz,
1218        len: slong,
1219    );
1220    pub fn fmpq_poly_primitive_part(res: *mut fmpq_poly_struct, poly: *const fmpq_poly_struct);
1221    pub fn _fmpq_poly_is_monic(poly: *const fmpz, den: *const fmpz, len: slong) -> libc::c_int;
1222    pub fn fmpq_poly_is_monic(poly: *const fmpq_poly_struct) -> libc::c_int;
1223    pub fn _fmpq_poly_make_monic(
1224        rpoly: *mut fmpz,
1225        rden: *mut fmpz,
1226        poly: *const fmpz,
1227        UNUSED_den: *const fmpz,
1228        len: slong,
1229    );
1230    pub fn fmpq_poly_make_monic(res: *mut fmpq_poly_struct, poly: *const fmpq_poly_struct);
1231    pub fn fmpq_poly_is_squarefree(poly: *const fmpq_poly_struct) -> libc::c_int;
1232    pub fn _fmpq_poly_discriminant(res: *mut fmpq, poly: *const fmpz, den: *const fmpz, len: slong);
1233    pub fn fmpq_poly_discriminant(res: *mut fmpq, poly: *const fmpq_poly_struct);
1234    pub fn _fmpq_poly_fprint(
1235        file: *mut FILE,
1236        poly: *const fmpz,
1237        den: *const fmpz,
1238        len: slong,
1239    ) -> libc::c_int;
1240    pub fn fmpq_poly_fprint(file: *mut FILE, poly: *const fmpq_poly_struct) -> libc::c_int;
1241    pub fn _fmpq_poly_fprint_pretty(
1242        file: *mut FILE,
1243        poly: *const fmpz,
1244        den: *const fmpz,
1245        len: slong,
1246        x: *const libc::c_char,
1247    ) -> libc::c_int;
1248    pub fn fmpq_poly_fprint_pretty(
1249        file: *mut FILE,
1250        poly: *const fmpq_poly_struct,
1251        var: *const libc::c_char,
1252    ) -> libc::c_int;
1253    pub fn fmpq_poly_fread(file: *mut FILE, poly: *mut fmpq_poly_struct) -> libc::c_int;
1254    pub fn _fmpq_poly_print(poly: *const fmpz, den: *const fmpz, len: slong) -> libc::c_int;
1255    pub fn fmpq_poly_print(poly: *const fmpq_poly_struct) -> libc::c_int;
1256    pub fn _fmpq_poly_print_pretty(
1257        poly: *const fmpz,
1258        den: *const fmpz,
1259        len: slong,
1260        x: *const libc::c_char,
1261    ) -> libc::c_int;
1262    pub fn fmpq_poly_print_pretty(
1263        poly: *const fmpq_poly_struct,
1264        var: *const libc::c_char,
1265    ) -> libc::c_int;
1266    pub fn fmpq_poly_read(poly: *mut fmpq_poly_struct) -> libc::c_int;
1267    pub fn fmpq_poly_debug(poly: *const fmpq_poly_struct) -> libc::c_int;
1268}