use libc::*;
use crate::deps::*;
use crate::flint::*;
use crate::fmpq_types::*;
use crate::fmpz_types::*;
use crate::nmod_types::*;
pub const WEAK_CANONICALISE_CUTOFF: u32 = 25600;
#[repr(C)]
pub struct fmpq_poly_powers_precomp_struct {
pub powers: *mut fmpq_poly_struct,
pub len: slong,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of fmpq_poly_powers_precomp_struct"]
[::std::mem::size_of::<fmpq_poly_powers_precomp_struct>() - 16usize];
["Alignment of fmpq_poly_powers_precomp_struct"]
[::std::mem::align_of::<fmpq_poly_powers_precomp_struct>() - 8usize];
["Offset of field: fmpq_poly_powers_precomp_struct::powers"]
[::std::mem::offset_of!(fmpq_poly_powers_precomp_struct, powers) - 0usize];
["Offset of field: fmpq_poly_powers_precomp_struct::len"]
[::std::mem::offset_of!(fmpq_poly_powers_precomp_struct, len) - 8usize];
};
impl Default for fmpq_poly_powers_precomp_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type fmpq_poly_powers_precomp_t = [fmpq_poly_powers_precomp_struct; 1usize];
extern "C" {
pub fn fmpq_poly_init(poly: *mut fmpq_poly_struct);
pub fn fmpq_poly_init2(poly: *mut fmpq_poly_struct, alloc: slong);
pub fn fmpq_poly_realloc(poly: *mut fmpq_poly_struct, alloc: slong);
pub fn fmpq_poly_fit_length(poly: *mut fmpq_poly_struct, len: slong);
pub fn _fmpq_poly_set_length(poly: *mut fmpq_poly_struct, len: slong);
pub fn fmpq_poly_clear(poly: *mut fmpq_poly_struct);
pub fn _fmpq_poly_normalise(poly: *mut fmpq_poly_struct);
pub fn fmpq_poly_get_numerator(res: *mut fmpz_poly_struct, poly: *const fmpq_poly_struct);
pub fn fmpq_poly_get_denominator(den: *mut fmpz, poly: *const fmpq_poly_struct);
pub fn _fmpq_poly_canonicalise(rpoly: *mut fmpz, den: *mut fmpz, len: slong);
pub fn fmpq_poly_canonicalise(poly: *mut fmpq_poly_struct);
pub fn _fmpq_poly_is_canonical(poly: *const fmpz, den: *const fmpz, len: slong) -> libc::c_int;
pub fn fmpq_poly_is_canonical(poly: *const fmpq_poly_struct) -> libc::c_int;
#[link_name = "fmpq_poly_degree__extern"]
pub fn fmpq_poly_degree(poly: *const fmpq_poly_struct) -> slong;
#[link_name = "fmpq_poly_length__extern"]
pub fn fmpq_poly_length(poly: *const fmpq_poly_struct) -> slong;
pub fn fmpq_poly_randtest(
f: *mut fmpq_poly_struct,
state: *mut flint_rand_struct,
len: slong,
bits_in: flint_bitcnt_t,
);
pub fn fmpq_poly_randtest_unsigned(
f: *mut fmpq_poly_struct,
state: *mut flint_rand_struct,
len: slong,
bits_in: flint_bitcnt_t,
);
pub fn fmpq_poly_randtest_not_zero(
f: *mut fmpq_poly_struct,
state: *mut flint_rand_struct,
len: slong,
bits_in: flint_bitcnt_t,
);
pub fn fmpq_poly_set(poly1: *mut fmpq_poly_struct, poly2: *const fmpq_poly_struct);
pub fn fmpq_poly_set_si(poly: *mut fmpq_poly_struct, x: slong);
pub fn fmpq_poly_set_ui(poly: *mut fmpq_poly_struct, x: ulong);
pub fn fmpq_poly_set_fmpz(poly: *mut fmpq_poly_struct, x: *const fmpz);
pub fn fmpq_poly_set_fmpq(poly: *mut fmpq_poly_struct, x: *const fmpq);
pub fn fmpq_poly_set_fmpz_poly(rop: *mut fmpq_poly_struct, op: *const fmpz_poly_struct);
pub fn _fmpq_poly_get_nmod_poly(rop: *mut nmod_poly_struct, op: *const fmpq_poly_struct);
pub fn fmpq_poly_get_nmod_poly_den(
rop: *mut nmod_poly_struct,
op: *const fmpq_poly_struct,
den: libc::c_int,
);
pub fn fmpq_poly_get_nmod_poly(rop: *mut nmod_poly_struct, op: *const fmpq_poly_struct);
pub fn fmpq_poly_set_nmod_poly(rop: *mut fmpq_poly_struct, op: *const nmod_poly_struct);
pub fn _fmpq_poly_set_str(
poly: *mut fmpz,
den: *mut fmpz,
str_: *const libc::c_char,
len: slong,
) -> libc::c_int;
pub fn fmpq_poly_set_str(poly: *mut fmpq_poly_struct, str_: *const libc::c_char)
-> libc::c_int;
pub fn fmpq_poly_get_str(poly: *const fmpq_poly_struct) -> *mut libc::c_char;
pub fn fmpq_poly_get_str_pretty(
poly: *const fmpq_poly_struct,
var: *const libc::c_char,
) -> *mut libc::c_char;
pub fn _fmpq_poly_get_str_pretty(
poly: *const fmpz,
den: *const fmpz,
len: slong,
var: *const libc::c_char,
) -> *mut libc::c_char;
pub fn fmpq_poly_zero(poly: *mut fmpq_poly_struct);
pub fn fmpq_poly_one(poly: *mut fmpq_poly_struct);
pub fn fmpq_poly_neg(poly1: *mut fmpq_poly_struct, poly2: *const fmpq_poly_struct);
pub fn fmpq_poly_inv(poly1: *mut fmpq_poly_struct, poly2: *const fmpq_poly_struct);
pub fn fmpq_poly_swap(poly1: *mut fmpq_poly_struct, poly2: *mut fmpq_poly_struct);
pub fn fmpq_poly_truncate(poly: *mut fmpq_poly_struct, n: slong);
pub fn fmpq_poly_set_trunc(res: *mut fmpq_poly_struct, poly: *const fmpq_poly_struct, n: slong);
pub fn fmpq_poly_get_slice(
rop: *mut fmpq_poly_struct,
op: *const fmpq_poly_struct,
i: slong,
j: slong,
);
pub fn fmpq_poly_reverse(res: *mut fmpq_poly_struct, poly: *const fmpq_poly_struct, n: slong);
pub fn fmpq_poly_get_coeff_fmpz(x: *mut fmpz, poly: *const fmpq_poly_struct, n: slong);
pub fn fmpq_poly_get_coeff_fmpq(x: *mut fmpq, poly: *const fmpq_poly_struct, n: slong);
pub fn fmpq_poly_set_coeff_si(poly: *mut fmpq_poly_struct, n: slong, x: slong);
pub fn fmpq_poly_set_coeff_ui(poly: *mut fmpq_poly_struct, n: slong, x: ulong);
pub fn fmpq_poly_set_coeff_fmpz(poly: *mut fmpq_poly_struct, n: slong, x: *const fmpz);
pub fn fmpq_poly_set_coeff_fmpq(poly: *mut fmpq_poly_struct, n: slong, x: *const fmpq);
pub fn fmpq_poly_equal(
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
) -> libc::c_int;
pub fn _fmpq_poly_cmp(
lpoly: *const fmpz,
lden: *const fmpz,
rpoly: *const fmpz,
rden: *const fmpz,
len: slong,
) -> libc::c_int;
pub fn fmpq_poly_cmp(
left: *const fmpq_poly_struct,
right: *const fmpq_poly_struct,
) -> libc::c_int;
pub fn _fmpq_poly_equal_trunc(
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
n: slong,
) -> libc::c_int;
pub fn fmpq_poly_equal_trunc(
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
n: slong,
) -> libc::c_int;
#[link_name = "fmpq_poly_is_zero__extern"]
pub fn fmpq_poly_is_zero(poly: *const fmpq_poly_struct) -> libc::c_int;
pub fn fmpq_poly_is_one(poly: *const fmpq_poly_struct) -> libc::c_int;
#[link_name = "fmpq_poly_is_gen__extern"]
pub fn fmpq_poly_is_gen(op: *const fmpq_poly_struct) -> libc::c_int;
pub fn _fmpq_poly_add(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
);
pub fn fmpq_poly_add(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
);
pub fn _fmpq_poly_add_can(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
can: libc::c_int,
);
pub fn fmpq_poly_add_can(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
can: libc::c_int,
);
pub fn fmpq_poly_add_si(res: *mut fmpq_poly_struct, poly: *const fmpq_poly_struct, c: slong);
pub fn fmpq_poly_add_fmpz(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
c: *const fmpz,
);
pub fn fmpq_poly_add_fmpq(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
c: *const fmpq,
);
pub fn _fmpq_poly_add_series(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
n: slong,
);
pub fn fmpq_poly_add_series(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_add_series_can(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
n: slong,
can: libc::c_int,
);
pub fn fmpq_poly_add_series_can(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
n: slong,
can: libc::c_int,
);
pub fn _fmpq_poly_sub(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
);
pub fn fmpq_poly_sub(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
);
pub fn fmpq_poly_sub_si(res: *mut fmpq_poly_struct, poly: *const fmpq_poly_struct, c: slong);
pub fn fmpq_poly_si_sub(res: *mut fmpq_poly_struct, c: slong, poly: *const fmpq_poly_struct);
pub fn fmpq_poly_sub_fmpz(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
c: *const fmpz,
);
pub fn fmpq_poly_fmpz_sub(
res: *mut fmpq_poly_struct,
c: *const fmpz,
poly: *const fmpq_poly_struct,
);
pub fn fmpq_poly_sub_fmpq(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
c: *const fmpq,
);
pub fn fmpq_poly_fmpq_sub(
res: *mut fmpq_poly_struct,
c: *const fmpq,
poly: *const fmpq_poly_struct,
);
pub fn _fmpq_poly_sub_can(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
can: libc::c_int,
);
pub fn fmpq_poly_sub_can(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
can: libc::c_int,
);
pub fn _fmpq_poly_sub_series(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
n: slong,
);
pub fn fmpq_poly_sub_series(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_sub_series_can(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
n: slong,
can: libc::c_int,
);
pub fn fmpq_poly_sub_series_can(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
n: slong,
can: libc::c_int,
);
pub fn _fmpq_poly_scalar_mul_si(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
c: slong,
);
pub fn _fmpq_poly_scalar_mul_ui(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
c: ulong,
);
pub fn _fmpq_poly_scalar_mul_fmpz(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
c: *const fmpz,
);
pub fn _fmpq_poly_scalar_mul_fmpq(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
r: *const fmpz,
s: *const fmpz,
);
pub fn fmpq_poly_scalar_mul_si(
rop: *mut fmpq_poly_struct,
op: *const fmpq_poly_struct,
c: slong,
);
pub fn fmpq_poly_scalar_mul_ui(
rop: *mut fmpq_poly_struct,
op: *const fmpq_poly_struct,
c: ulong,
);
pub fn fmpq_poly_scalar_mul_fmpz(
rop: *mut fmpq_poly_struct,
op: *const fmpq_poly_struct,
c: *const fmpz,
);
pub fn fmpq_poly_scalar_mul_fmpq(
rop: *mut fmpq_poly_struct,
op: *const fmpq_poly_struct,
c: *const fmpq,
);
pub fn _fmpq_poly_scalar_div_si(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
c: slong,
);
pub fn _fmpq_poly_scalar_div_ui(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
c: ulong,
);
pub fn _fmpq_poly_scalar_div_fmpz(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
c: *const fmpz,
);
pub fn _fmpq_poly_scalar_div_fmpq(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
r: *const fmpz,
s: *const fmpz,
);
pub fn fmpq_poly_scalar_div_si(
rop: *mut fmpq_poly_struct,
op: *const fmpq_poly_struct,
c: slong,
);
pub fn fmpq_poly_scalar_div_ui(
rop: *mut fmpq_poly_struct,
op: *const fmpq_poly_struct,
c: ulong,
);
pub fn fmpq_poly_scalar_div_fmpz(
rop: *mut fmpq_poly_struct,
op: *const fmpq_poly_struct,
c: *const fmpz,
);
pub fn fmpq_poly_scalar_div_fmpq(
rop: *mut fmpq_poly_struct,
op: *const fmpq_poly_struct,
c: *const fmpq,
);
pub fn _fmpq_poly_mul(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
);
pub fn fmpq_poly_mul(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
);
pub fn _fmpq_poly_mullow(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
n: slong,
);
pub fn fmpq_poly_mullow(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
n: slong,
);
#[link_name = "fmpq_poly_addmul__extern"]
pub fn fmpq_poly_addmul(
rop: *mut fmpq_poly_struct,
op1: *const fmpq_poly_struct,
op2: *const fmpq_poly_struct,
);
#[link_name = "fmpq_poly_submul__extern"]
pub fn fmpq_poly_submul(
rop: *mut fmpq_poly_struct,
op1: *const fmpq_poly_struct,
op2: *const fmpq_poly_struct,
);
pub fn _fmpq_poly_pow(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
e: ulong,
);
pub fn fmpq_poly_pow(rpoly: *mut fmpq_poly_struct, poly: *const fmpq_poly_struct, e: ulong);
pub fn _fmpq_poly_pow_trunc(
res: *mut fmpz,
resden: *mut fmpz,
f: *const fmpz,
fden: *const fmpz,
flen: slong,
exp: ulong,
len: slong,
);
pub fn fmpq_poly_pow_trunc(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
exp: ulong,
len: slong,
);
pub fn fmpq_poly_shift_left(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn fmpq_poly_shift_right(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn fmpq_poly_divrem(
Q: *mut fmpq_poly_struct,
R: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
);
pub fn fmpq_poly_div(
Q: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
);
pub fn fmpq_poly_rem(
R: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
);
pub fn _fmpq_poly_powers_precompute(
B: *const fmpz,
UNUSED_denB: *const fmpz,
len: slong,
) -> *mut fmpq_poly_struct;
pub fn fmpq_poly_powers_precompute(
pinv: *mut fmpq_poly_powers_precomp_struct,
poly: *mut fmpq_poly_struct,
);
pub fn _fmpq_poly_powers_clear(powers: *mut fmpq_poly_struct, len: slong);
pub fn fmpq_poly_powers_clear(pinv: *mut fmpq_poly_powers_precomp_struct);
pub fn _fmpq_poly_rem_powers_precomp(
A: *mut fmpz,
denA: *mut fmpz,
m: slong,
B: *const fmpz,
denB: *const fmpz,
n: slong,
powers: *mut fmpq_poly_struct,
);
pub fn fmpq_poly_rem_powers_precomp(
R: *mut fmpq_poly_struct,
A: *const fmpq_poly_struct,
B: *const fmpq_poly_struct,
B_inv: *const fmpq_poly_powers_precomp_struct,
);
pub fn _fmpq_poly_divides(
qpoly: *mut fmpz,
qden: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
) -> libc::c_int;
pub fn fmpq_poly_divides(
q: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
) -> libc::c_int;
pub fn fmpq_poly_remove(
q: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
) -> slong;
pub fn _fmpq_poly_inv_series_newton(
Qinv: *mut fmpz,
Qinvden: *mut fmpz,
Q: *const fmpz,
Qden: *const fmpz,
Qlen: slong,
n: slong,
);
pub fn fmpq_poly_inv_series_newton(
Qinv: *mut fmpq_poly_struct,
Q: *const fmpq_poly_struct,
n: slong,
);
#[link_name = "_fmpq_poly_inv_series__extern"]
pub fn _fmpq_poly_inv_series(
Qinv: *mut fmpz,
Qinvden: *mut fmpz,
Q: *const fmpz,
Qden: *const fmpz,
Qlen: slong,
n: slong,
);
#[link_name = "fmpq_poly_inv_series__extern"]
pub fn fmpq_poly_inv_series(Qinv: *mut fmpq_poly_struct, Q: *const fmpq_poly_struct, n: slong);
pub fn _fmpq_poly_div_series(
Q: *mut fmpz,
denQ: *mut fmpz,
A: *const fmpz,
denA: *const fmpz,
lenA: slong,
B: *const fmpz,
denB: *const fmpz,
lenB: slong,
n: slong,
);
pub fn fmpq_poly_div_series(
Q: *mut fmpq_poly_struct,
A: *const fmpq_poly_struct,
B: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_gcd(
G: *mut fmpz,
denG: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
);
pub fn fmpq_poly_gcd(
G: *mut fmpq_poly_struct,
A: *const fmpq_poly_struct,
B: *const fmpq_poly_struct,
);
pub fn _fmpq_poly_xgcd(
G: *mut fmpz,
denG: *mut fmpz,
S: *mut fmpz,
denS: *mut fmpz,
T: *mut fmpz,
denT: *mut fmpz,
A: *const fmpz,
denA: *const fmpz,
lenA: slong,
B: *const fmpz,
denB: *const fmpz,
lenB: slong,
);
pub fn fmpq_poly_xgcd(
G: *mut fmpq_poly_struct,
S: *mut fmpq_poly_struct,
T: *mut fmpq_poly_struct,
A: *const fmpq_poly_struct,
B: *const fmpq_poly_struct,
);
pub fn _fmpq_poly_lcm(
G: *mut fmpz,
denG: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
);
pub fn fmpq_poly_lcm(
L: *mut fmpq_poly_struct,
A: *const fmpq_poly_struct,
B: *const fmpq_poly_struct,
);
pub fn _fmpq_poly_resultant(
rnum: *mut fmpz,
rden: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
);
pub fn fmpq_poly_resultant(
r: *mut fmpq,
f: *const fmpq_poly_struct,
g: *const fmpq_poly_struct,
);
pub fn _fmpq_poly_resultant_div(
rnum: *mut fmpz,
rden: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
divisor: *const fmpz,
nbits: slong,
);
pub fn fmpq_poly_resultant_div(
r: *mut fmpq,
f: *const fmpq_poly_struct,
g: *const fmpq_poly_struct,
divisor: *const fmpz,
nbits: slong,
);
pub fn _fmpq_poly_derivative(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
);
pub fn fmpq_poly_derivative(res: *mut fmpq_poly_struct, poly: *const fmpq_poly_struct);
pub fn _fmpq_poly_nth_derivative(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
n: ulong,
len: slong,
);
pub fn fmpq_poly_nth_derivative(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: ulong,
);
pub fn _fmpq_poly_integral(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
);
pub fn fmpq_poly_integral(res: *mut fmpq_poly_struct, poly: *const fmpq_poly_struct);
pub fn _fmpq_poly_invsqrt_series(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
n: slong,
);
pub fn fmpq_poly_invsqrt_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_sqrt_series(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
n: slong,
);
pub fn fmpq_poly_sqrt_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_power_sums(
res: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
len: slong,
n: slong,
);
pub fn fmpq_poly_power_sums(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_power_sums_to_poly(
res: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
);
pub fn fmpq_poly_power_sums_to_fmpz_poly(
res: *mut fmpz_poly_struct,
Q: *const fmpq_poly_struct,
);
pub fn fmpq_poly_power_sums_to_poly(res: *mut fmpq_poly_struct, Q: *const fmpq_poly_struct);
pub fn _fmpq_poly_log_series(
g: *mut fmpz,
gden: *mut fmpz,
f: *const fmpz,
fden: *const fmpz,
flen: slong,
n: slong,
);
pub fn fmpq_poly_log_series(res: *mut fmpq_poly_struct, f: *const fmpq_poly_struct, n: slong);
pub fn _fmpq_poly_exp_series(
g: *mut fmpz,
gden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_exp_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_exp_expinv_series(
g: *mut fmpz,
gden: *mut fmpz,
r: *mut fmpz,
rden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_exp_expinv_series(
res1: *mut fmpq_poly_struct,
res2: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_atan_series(
g: *mut fmpz,
gden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_atan_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_atanh_series(
g: *mut fmpz,
gden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_atanh_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_asin_series(
g: *mut fmpz,
gden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_asin_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_asinh_series(
g: *mut fmpz,
gden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_asinh_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_tan_series(
g: *mut fmpz,
gden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_tan_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_sin_series(
g: *mut fmpz,
gden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_sin_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_cos_series(
g: *mut fmpz,
gden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_cos_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_sin_cos_series(
s: *mut fmpz,
sden: *mut fmpz,
c: *mut fmpz,
cden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_sin_cos_series(
res1: *mut fmpq_poly_struct,
res2: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_sinh_series(
g: *mut fmpz,
gden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_sinh_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_cosh_series(
g: *mut fmpz,
gden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_cosh_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_sinh_cosh_series(
s: *mut fmpz,
sden: *mut fmpz,
c: *mut fmpz,
cden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_sinh_cosh_series(
res1: *mut fmpq_poly_struct,
res2: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_tanh_series(
g: *mut fmpz,
gden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_tanh_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_legendre_p(coeffs: *mut fmpz, den: *mut fmpz, n: ulong);
pub fn fmpq_poly_legendre_p(poly: *mut fmpq_poly_struct, n: ulong);
pub fn _fmpq_poly_laguerre_l(coeffs: *mut fmpz, den: *mut fmpz, n: ulong);
pub fn fmpq_poly_laguerre_l(poly: *mut fmpq_poly_struct, n: ulong);
pub fn _fmpq_poly_gegenbauer_c(coeffs: *mut fmpz, den: *mut fmpz, n: ulong, a: *const fmpq);
pub fn fmpq_poly_gegenbauer_c(poly: *mut fmpq_poly_struct, n: ulong, a: *const fmpq);
pub fn _fmpq_poly_evaluate_fmpz(
rnum: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
a: *const fmpz,
);
pub fn fmpq_poly_evaluate_fmpz(res: *mut fmpq, poly: *const fmpq_poly_struct, a: *const fmpz);
pub fn _fmpq_poly_evaluate_fmpq(
rnum: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
anum: *const fmpz,
aden: *const fmpz,
);
pub fn fmpq_poly_evaluate_fmpq(res: *mut fmpq, poly: *const fmpq_poly_struct, a: *const fmpq);
pub fn _fmpq_poly_interpolate_fmpq_vec(
coeffs: *mut fmpz,
den: *mut fmpz,
xs: *const fmpq,
ys: *const fmpq,
n: slong,
) -> libc::c_int;
pub fn fmpq_poly_interpolate_fmpq_vec(
poly: *mut fmpq_poly_struct,
xs: *const fmpq,
ys: *const fmpq,
n: slong,
) -> libc::c_int;
pub fn fmpq_poly_interpolate_fmpz_fmpq_vec(
poly: *mut fmpq_poly_struct,
xs: *const fmpz,
ys: *const fmpq,
n: slong,
) -> libc::c_int;
pub fn fmpq_poly_interpolate_fmpz_vec(
poly: *mut fmpq_poly_struct,
xs: *const fmpz,
ys: *const fmpz,
n: slong,
) -> libc::c_int;
pub fn _fmpq_poly_interpolation_weights(
w: *mut fmpz,
wden: *mut fmpz,
xs: *const fmpq,
len: slong,
);
pub fn _fmpq_poly_interpolate_fast_precomp(
poly: *mut fmpz,
den: *mut fmpz,
ys: *const fmpq,
tree: *const *mut fmpz,
weights: *const fmpz,
len: slong,
);
pub fn _fmpq_poly_interpolate_fast(
poly: *mut fmpz,
den: *mut fmpz,
xs: *const fmpq,
ys: *const fmpq,
len: slong,
);
pub fn fmpq_poly_interpolate_fast(
poly: *mut fmpq_poly_struct,
xs: *const fmpq,
ys: *const fmpq,
n: slong,
);
pub fn _fmpq_poly_interpolate_multi_mod(
poly: *mut fmpz,
den: *mut fmpz,
xs: *const fmpq,
ys: *const fmpq,
n: slong,
);
pub fn fmpq_poly_interpolate_multi_mod(
poly: *mut fmpq_poly_struct,
xs: *const fmpq,
ys: *const fmpq,
n: slong,
);
pub fn _fmpq_poly_interpolate_barycentric(
poly: *mut fmpz,
den: *mut fmpz,
xs: *const fmpq,
ys: *const fmpq,
n: slong,
);
pub fn fmpq_poly_interpolate_barycentric(
poly: *mut fmpq_poly_struct,
xs: *const fmpq,
ys: *const fmpq,
n: slong,
);
pub fn _fmpq_poly_compose(
res: *mut fmpz,
den: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
);
pub fn fmpq_poly_compose(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
);
pub fn _fmpq_poly_rescale(
res: *mut fmpz,
denr: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
xnum: *const fmpz,
xden: *const fmpz,
);
pub fn fmpq_poly_rescale(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
x: *const fmpq,
);
pub fn _fmpq_poly_compose_series_horner(
res: *mut fmpz,
den: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
n: slong,
);
pub fn fmpq_poly_compose_series_horner(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_compose_series_brent_kung(
res: *mut fmpz,
den: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
n: slong,
);
pub fn fmpq_poly_compose_series_brent_kung(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_compose_series(
res: *mut fmpz,
den: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
n: slong,
);
pub fn fmpq_poly_compose_series(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_revert_series_lagrange(
res: *mut fmpz,
den: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
n: slong,
);
pub fn fmpq_poly_revert_series_lagrange(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_revert_series_lagrange_fast(
res: *mut fmpz,
den: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
n: slong,
);
pub fn fmpq_poly_revert_series_lagrange_fast(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_revert_series_newton(
res: *mut fmpz,
den: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
n: slong,
);
pub fn fmpq_poly_revert_series_newton(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_revert_series(
res: *mut fmpz,
den: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
n: slong,
);
pub fn fmpq_poly_revert_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_content(res: *mut fmpq, poly: *const fmpz, den: *const fmpz, len: slong);
pub fn fmpq_poly_content(res: *mut fmpq, poly: *const fmpq_poly_struct);
pub fn _fmpq_poly_primitive_part(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
UNUSED_den: *const fmpz,
len: slong,
);
pub fn fmpq_poly_primitive_part(res: *mut fmpq_poly_struct, poly: *const fmpq_poly_struct);
pub fn _fmpq_poly_is_monic(poly: *const fmpz, den: *const fmpz, len: slong) -> libc::c_int;
pub fn fmpq_poly_is_monic(poly: *const fmpq_poly_struct) -> libc::c_int;
pub fn _fmpq_poly_make_monic(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
UNUSED_den: *const fmpz,
len: slong,
);
pub fn fmpq_poly_make_monic(res: *mut fmpq_poly_struct, poly: *const fmpq_poly_struct);
pub fn fmpq_poly_is_squarefree(poly: *const fmpq_poly_struct) -> libc::c_int;
pub fn _fmpq_poly_discriminant(res: *mut fmpq, poly: *const fmpz, den: *const fmpz, len: slong);
pub fn fmpq_poly_discriminant(res: *mut fmpq, poly: *const fmpq_poly_struct);
pub fn _fmpq_poly_fprint(
file: *mut FILE,
poly: *const fmpz,
den: *const fmpz,
len: slong,
) -> libc::c_int;
pub fn fmpq_poly_fprint(file: *mut FILE, poly: *const fmpq_poly_struct) -> libc::c_int;
pub fn _fmpq_poly_fprint_pretty(
file: *mut FILE,
poly: *const fmpz,
den: *const fmpz,
len: slong,
x: *const libc::c_char,
) -> libc::c_int;
pub fn fmpq_poly_fprint_pretty(
file: *mut FILE,
poly: *const fmpq_poly_struct,
var: *const libc::c_char,
) -> libc::c_int;
pub fn fmpq_poly_fread(file: *mut FILE, poly: *mut fmpq_poly_struct) -> libc::c_int;
pub fn _fmpq_poly_print(poly: *const fmpz, den: *const fmpz, len: slong) -> libc::c_int;
pub fn fmpq_poly_print(poly: *const fmpq_poly_struct) -> libc::c_int;
pub fn _fmpq_poly_print_pretty(
poly: *const fmpz,
den: *const fmpz,
len: slong,
x: *const libc::c_char,
) -> libc::c_int;
pub fn fmpq_poly_print_pretty(
poly: *const fmpq_poly_struct,
var: *const libc::c_char,
) -> libc::c_int;
pub fn fmpq_poly_read(poly: *mut fmpq_poly_struct) -> libc::c_int;
pub fn fmpq_poly_debug(poly: *const fmpq_poly_struct) -> libc::c_int;
}