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