1use 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}