use crate::deps::*;
use crate::flint::*;
use crate::fmpz_mod_types::*;
use crate::fmpz_mpoly::*;
use crate::fmpz_poly_factor::*;
use crate::fmpz_types::*;
use crate::mpoly_types::*;
use crate::nmod_types::*;
#[repr(C)]
pub struct fmpz_mpolyv_struct {
pub coeffs: *mut fmpz_mpoly_struct,
pub alloc: slong,
pub length: slong,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of fmpz_mpolyv_struct"][::std::mem::size_of::<fmpz_mpolyv_struct>() - 24usize];
["Alignment of fmpz_mpolyv_struct"][::std::mem::align_of::<fmpz_mpolyv_struct>() - 8usize];
["Offset of field: fmpz_mpolyv_struct::coeffs"]
[::std::mem::offset_of!(fmpz_mpolyv_struct, coeffs) - 0usize];
["Offset of field: fmpz_mpolyv_struct::alloc"]
[::std::mem::offset_of!(fmpz_mpolyv_struct, alloc) - 8usize];
["Offset of field: fmpz_mpolyv_struct::length"]
[::std::mem::offset_of!(fmpz_mpolyv_struct, length) - 16usize];
};
impl Default for fmpz_mpolyv_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 fmpz_mpolyv_t = [fmpz_mpolyv_struct; 1usize];
#[repr(C)]
pub struct fmpz_poly_pfrac_struct {
pub r: slong,
pub bits: *mut flint_bitcnt_t,
pub a: fmpz_poly_t,
pub newa: fmpz_poly_t,
pub t: fmpz_poly_t,
pub b: *mut fmpz_poly_struct,
pub bprod: *mut fmpz_poly_struct,
pub old_pk: fmpz_t,
pub pk: fmpz_t,
pub p: fmpz_t,
pub halfpks: *mut fmpz,
pub ctxp: fmpz_mod_ctx_t,
pub ctxs: *mut fmpz_mod_ctx_struct,
pub T: fmpz_mod_poly_t,
pub R: fmpz_mod_poly_t,
pub Q: fmpz_mod_poly_t,
pub B: *mut fmpz_mod_poly_struct,
pub invBprod: *mut fmpz_mod_poly_struct,
pub inwBprod: *mut fmpz_mod_poly_struct,
pub B_inv: *mut fmpz_mod_poly_struct,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of fmpz_poly_pfrac_struct"][::std::mem::size_of::<fmpz_poly_pfrac_struct>() - 360usize];
["Alignment of fmpz_poly_pfrac_struct"]
[::std::mem::align_of::<fmpz_poly_pfrac_struct>() - 8usize];
["Offset of field: fmpz_poly_pfrac_struct::r"]
[::std::mem::offset_of!(fmpz_poly_pfrac_struct, r) - 0usize];
["Offset of field: fmpz_poly_pfrac_struct::bits"]
[::std::mem::offset_of!(fmpz_poly_pfrac_struct, bits) - 8usize];
["Offset of field: fmpz_poly_pfrac_struct::a"]
[::std::mem::offset_of!(fmpz_poly_pfrac_struct, a) - 16usize];
["Offset of field: fmpz_poly_pfrac_struct::newa"]
[::std::mem::offset_of!(fmpz_poly_pfrac_struct, newa) - 40usize];
["Offset of field: fmpz_poly_pfrac_struct::t"]
[::std::mem::offset_of!(fmpz_poly_pfrac_struct, t) - 64usize];
["Offset of field: fmpz_poly_pfrac_struct::b"]
[::std::mem::offset_of!(fmpz_poly_pfrac_struct, b) - 88usize];
["Offset of field: fmpz_poly_pfrac_struct::bprod"]
[::std::mem::offset_of!(fmpz_poly_pfrac_struct, bprod) - 96usize];
["Offset of field: fmpz_poly_pfrac_struct::old_pk"]
[::std::mem::offset_of!(fmpz_poly_pfrac_struct, old_pk) - 104usize];
["Offset of field: fmpz_poly_pfrac_struct::pk"]
[::std::mem::offset_of!(fmpz_poly_pfrac_struct, pk) - 112usize];
["Offset of field: fmpz_poly_pfrac_struct::p"]
[::std::mem::offset_of!(fmpz_poly_pfrac_struct, p) - 120usize];
["Offset of field: fmpz_poly_pfrac_struct::halfpks"]
[::std::mem::offset_of!(fmpz_poly_pfrac_struct, halfpks) - 128usize];
["Offset of field: fmpz_poly_pfrac_struct::ctxp"]
[::std::mem::offset_of!(fmpz_poly_pfrac_struct, ctxp) - 136usize];
["Offset of field: fmpz_poly_pfrac_struct::ctxs"]
[::std::mem::offset_of!(fmpz_poly_pfrac_struct, ctxs) - 248usize];
["Offset of field: fmpz_poly_pfrac_struct::T"]
[::std::mem::offset_of!(fmpz_poly_pfrac_struct, T) - 256usize];
["Offset of field: fmpz_poly_pfrac_struct::R"]
[::std::mem::offset_of!(fmpz_poly_pfrac_struct, R) - 280usize];
["Offset of field: fmpz_poly_pfrac_struct::Q"]
[::std::mem::offset_of!(fmpz_poly_pfrac_struct, Q) - 304usize];
["Offset of field: fmpz_poly_pfrac_struct::B"]
[::std::mem::offset_of!(fmpz_poly_pfrac_struct, B) - 328usize];
["Offset of field: fmpz_poly_pfrac_struct::invBprod"]
[::std::mem::offset_of!(fmpz_poly_pfrac_struct, invBprod) - 336usize];
["Offset of field: fmpz_poly_pfrac_struct::inwBprod"]
[::std::mem::offset_of!(fmpz_poly_pfrac_struct, inwBprod) - 344usize];
["Offset of field: fmpz_poly_pfrac_struct::B_inv"]
[::std::mem::offset_of!(fmpz_poly_pfrac_struct, B_inv) - 352usize];
};
impl Default for fmpz_poly_pfrac_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 fmpz_poly_pfrac_t = [fmpz_poly_pfrac_struct; 1usize];
#[repr(C)]
pub struct fmpz_mpoly_pfrac_struct {
pub bits: flint_bitcnt_t,
pub w: slong,
pub r: slong,
pub prod_mbetas: *mut fmpz_mpoly_struct,
pub prod_mbetas_coeffs: *mut fmpz_mpolyv_struct,
pub mbetas: *mut fmpz_mpoly_struct,
pub deltas: *mut fmpz_mpoly_struct,
pub xalpha: *mut fmpz_mpoly_struct,
pub q: *mut fmpz_mpoly_struct,
pub U: *mut fmpz_mpoly_univar_struct,
pub G: *mut fmpz_mpoly_geobucket_struct,
pub qt: *mut fmpz_mpoly_struct,
pub newt: *mut fmpz_mpoly_struct,
pub delta_coeffs: *mut fmpz_mpolyv_struct,
pub uni_pfrac: fmpz_poly_pfrac_t,
pub uni_a: fmpz_poly_t,
pub uni_c: *mut fmpz_poly_struct,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of fmpz_mpoly_pfrac_struct"]
[::std::mem::size_of::<fmpz_mpoly_pfrac_struct>() - 504usize];
["Alignment of fmpz_mpoly_pfrac_struct"]
[::std::mem::align_of::<fmpz_mpoly_pfrac_struct>() - 8usize];
["Offset of field: fmpz_mpoly_pfrac_struct::bits"]
[::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, bits) - 0usize];
["Offset of field: fmpz_mpoly_pfrac_struct::w"]
[::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, w) - 8usize];
["Offset of field: fmpz_mpoly_pfrac_struct::r"]
[::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, r) - 16usize];
["Offset of field: fmpz_mpoly_pfrac_struct::prod_mbetas"]
[::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, prod_mbetas) - 24usize];
["Offset of field: fmpz_mpoly_pfrac_struct::prod_mbetas_coeffs"]
[::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, prod_mbetas_coeffs) - 32usize];
["Offset of field: fmpz_mpoly_pfrac_struct::mbetas"]
[::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, mbetas) - 40usize];
["Offset of field: fmpz_mpoly_pfrac_struct::deltas"]
[::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, deltas) - 48usize];
["Offset of field: fmpz_mpoly_pfrac_struct::xalpha"]
[::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, xalpha) - 56usize];
["Offset of field: fmpz_mpoly_pfrac_struct::q"]
[::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, q) - 64usize];
["Offset of field: fmpz_mpoly_pfrac_struct::U"]
[::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, U) - 72usize];
["Offset of field: fmpz_mpoly_pfrac_struct::G"]
[::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, G) - 80usize];
["Offset of field: fmpz_mpoly_pfrac_struct::qt"]
[::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, qt) - 88usize];
["Offset of field: fmpz_mpoly_pfrac_struct::newt"]
[::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, newt) - 96usize];
["Offset of field: fmpz_mpoly_pfrac_struct::delta_coeffs"]
[::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, delta_coeffs) - 104usize];
["Offset of field: fmpz_mpoly_pfrac_struct::uni_pfrac"]
[::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, uni_pfrac) - 112usize];
["Offset of field: fmpz_mpoly_pfrac_struct::uni_a"]
[::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, uni_a) - 472usize];
["Offset of field: fmpz_mpoly_pfrac_struct::uni_c"]
[::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, uni_c) - 496usize];
};
impl Default for fmpz_mpoly_pfrac_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 fmpz_mpoly_pfrac_t = [fmpz_mpoly_pfrac_struct; 1usize];
#[repr(C)]
pub struct fmpz_bpoly_struct {
pub coeffs: *mut fmpz_poly_struct,
pub alloc: slong,
pub length: slong,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of fmpz_bpoly_struct"][::std::mem::size_of::<fmpz_bpoly_struct>() - 24usize];
["Alignment of fmpz_bpoly_struct"][::std::mem::align_of::<fmpz_bpoly_struct>() - 8usize];
["Offset of field: fmpz_bpoly_struct::coeffs"]
[::std::mem::offset_of!(fmpz_bpoly_struct, coeffs) - 0usize];
["Offset of field: fmpz_bpoly_struct::alloc"]
[::std::mem::offset_of!(fmpz_bpoly_struct, alloc) - 8usize];
["Offset of field: fmpz_bpoly_struct::length"]
[::std::mem::offset_of!(fmpz_bpoly_struct, length) - 16usize];
};
impl Default for fmpz_bpoly_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 fmpz_bpoly_t = [fmpz_bpoly_struct; 1usize];
#[repr(C)]
pub struct fmpz_tpoly_struct {
pub coeffs: *mut fmpz_bpoly_struct,
pub alloc: slong,
pub length: slong,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of fmpz_tpoly_struct"][::std::mem::size_of::<fmpz_tpoly_struct>() - 24usize];
["Alignment of fmpz_tpoly_struct"][::std::mem::align_of::<fmpz_tpoly_struct>() - 8usize];
["Offset of field: fmpz_tpoly_struct::coeffs"]
[::std::mem::offset_of!(fmpz_tpoly_struct, coeffs) - 0usize];
["Offset of field: fmpz_tpoly_struct::alloc"]
[::std::mem::offset_of!(fmpz_tpoly_struct, alloc) - 8usize];
["Offset of field: fmpz_tpoly_struct::length"]
[::std::mem::offset_of!(fmpz_tpoly_struct, length) - 16usize];
};
impl Default for fmpz_tpoly_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 fmpz_tpoly_t = [fmpz_tpoly_struct; 1usize];
extern "C" {
pub fn tuple_print(alpha: *mut fmpz, n: slong);
pub fn tuple_saturate(alpha: *mut fmpz, n: slong, m: slong);
pub fn tuple_next(alpha: *mut fmpz, n: slong);
#[link_name = "fmpz_mpoly_factor_init__extern"]
pub fn fmpz_mpoly_factor_init(
f: *mut fmpz_mpoly_factor_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_init2(
f: *mut fmpz_mpoly_factor_struct,
alloc: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_realloc(
f: *mut fmpz_mpoly_factor_struct,
alloc: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_fit_length(
f: *mut fmpz_mpoly_factor_struct,
len: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_clear(
f: *mut fmpz_mpoly_factor_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
#[link_name = "fmpz_mpoly_factor_length__extern"]
pub fn fmpz_mpoly_factor_length(
f: *const fmpz_mpoly_factor_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
) -> slong;
pub fn fmpz_mpoly_factor_get_constant_fmpz(
c: *mut fmpz,
f: *const fmpz_mpoly_factor_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_get_constant_fmpq(
c: *mut fmpq,
f: *const fmpz_mpoly_factor_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
#[link_name = "fmpz_mpoly_factor_get_base__extern"]
pub fn fmpz_mpoly_factor_get_base(
p: *mut fmpz_mpoly_struct,
f: *const fmpz_mpoly_factor_struct,
i: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
#[link_name = "fmpz_mpoly_factor_swap_base__extern"]
pub fn fmpz_mpoly_factor_swap_base(
p: *mut fmpz_mpoly_struct,
f: *mut fmpz_mpoly_factor_struct,
i: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_get_exp_si(
f: *mut fmpz_mpoly_factor_struct,
i: slong,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
) -> slong;
pub fn fmpz_mpoly_factor_set(
f: *mut fmpz_mpoly_factor_struct,
g: *const fmpz_mpoly_factor_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_cmp(
f: *const fmpz_mpoly_factor_struct,
g: *const fmpz_mpoly_factor_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_factor_print_pretty(
f: *const fmpz_mpoly_factor_struct,
vars: *mut *const libc::c_char,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_content(
f: *mut fmpz_mpoly_factor_struct,
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_factor_squarefree(
f: *mut fmpz_mpoly_factor_struct,
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_factor(
f: *mut fmpz_mpoly_factor_struct,
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
#[link_name = "fmpz_mpoly_factor_swap__extern"]
pub fn fmpz_mpoly_factor_swap(
f: *mut fmpz_mpoly_factor_struct,
g: *mut fmpz_mpoly_factor_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_set_fmpz(
f: *mut fmpz_mpoly_factor_struct,
a: *const fmpz,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_zero(
f: *mut fmpz_mpoly_factor_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_one(
f: *mut fmpz_mpoly_factor_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_sort(
f: *mut fmpz_mpoly_factor_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_expand(
A: *mut fmpz_mpoly_struct,
f: *const fmpz_mpoly_factor_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_factor_bound_si(
B: *mut fmpz,
A: *const fmpz,
degs: *const slong,
nvars: slong,
) -> libc::c_int;
#[link_name = "fmpz_mpoly_factor_matches__extern"]
pub fn fmpz_mpoly_factor_matches(
A: *const fmpz_mpoly_struct,
f: *const fmpz_mpoly_factor_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_factor_append_fmpz_swap(
f: *mut fmpz_mpoly_factor_struct,
A: *mut fmpz_mpoly_struct,
e: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_append_ui(
f: *mut fmpz_mpoly_factor_struct,
A: *const fmpz_mpoly_struct,
e: ulong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_interp_lift_p(
A: *mut fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
Ap: *mut nmod_mpoly_struct,
ctxp: *const nmod_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_interp_reduce_p(
Ap: *mut nmod_mpoly_struct,
ctxp: *const nmod_mpoly_ctx_struct,
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_interp_mcrt_p(
coeffbits: *mut flint_bitcnt_t,
H: *mut fmpz_mpoly_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
m: *const fmpz,
A: *const nmod_mpoly_struct,
ctxp: *const nmod_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_interp_reduce_p_mpolyn(
E: *mut nmod_mpolyn_struct,
pctx: *const nmod_mpoly_ctx_struct,
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_interp_lift_p_mpolyn(
A: *mut fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
B: *const nmod_mpolyn_struct,
pctx: *const nmod_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_interp_crt_p_mpolyn(
F: *mut fmpz_mpoly_struct,
T: *mut fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
modulus: *mut fmpz,
A: *const nmod_mpolyn_struct,
pctx: *const nmod_mpoly_ctx_struct,
) -> libc::c_int;
#[link_name = "fmpz_mpolyv_init__extern"]
pub fn fmpz_mpolyv_init(A: *mut fmpz_mpolyv_struct, UNUSED_ctx: *const fmpz_mpoly_ctx_struct);
#[link_name = "fmpz_mpolyv_swap__extern"]
pub fn fmpz_mpolyv_swap(
A: *mut fmpz_mpolyv_struct,
B: *mut fmpz_mpolyv_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpolyv_clear(A: *mut fmpz_mpolyv_struct, ctx: *const fmpz_mpoly_ctx_struct);
pub fn fmpz_mpolyv_print_pretty(
poly: *const fmpz_mpolyv_struct,
x: *mut *const libc::c_char,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpolyv_fit_length(
A: *mut fmpz_mpolyv_struct,
length: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpolyv_set_coeff(
A: *mut fmpz_mpolyv_struct,
i: slong,
c: *mut fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_to_mpolyv(
A: *mut fmpz_mpolyv_struct,
B: *const fmpz_mpoly_struct,
xalpha: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_from_mpolyv(
A: *mut fmpz_mpoly_struct,
Abits: flint_bitcnt_t,
B: *const fmpz_mpolyv_struct,
xalpha: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_vec_content_mpoly(
g: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
Alen: slong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn _fmpz_mpoly_vec_divexact_mpoly(
A: *mut fmpz_mpoly_struct,
Alen: slong,
c: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_vec_mul_mpoly(
A: *mut fmpz_mpoly_struct,
Alen: slong,
c: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_gcd_algo(
G: *mut fmpz_mpoly_struct,
Abar: *mut fmpz_mpoly_struct,
Bbar: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
algo: libc::c_uint,
) -> libc::c_int;
pub fn fmpz_mpoly_to_mpolyl_perm_deflate(
A: *mut fmpz_mpoly_struct,
lctx: *const fmpz_mpoly_ctx_struct,
B: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
perm: *const slong,
shift: *const ulong,
stride: *const ulong,
);
pub fn fmpz_mpoly_from_mpolyl_perm_inflate(
A: *mut fmpz_mpoly_struct,
Abits: flint_bitcnt_t,
ctx: *const fmpz_mpoly_ctx_struct,
B: *const fmpz_mpoly_struct,
lctx: *const fmpz_mpoly_ctx_struct,
perm: *const slong,
shift: *const ulong,
stride: *const ulong,
);
pub fn fmpz_mpolyl_gcd_brown(
G: *mut fmpz_mpoly_struct,
Abar: *mut fmpz_mpoly_struct,
Bbar: *mut fmpz_mpoly_struct,
A: *mut fmpz_mpoly_struct,
B: *mut fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
Iv: *const mpoly_gcd_info_struct,
) -> libc::c_int;
pub fn fmpz_mpolyl_gcd_brown_threaded_pool(
G: *mut fmpz_mpoly_struct,
Abar: *mut fmpz_mpoly_struct,
Bbar: *mut fmpz_mpoly_struct,
A: *mut fmpz_mpoly_struct,
B: *mut fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
Iv: *const mpoly_gcd_info_struct,
handles: *const thread_pool_handle,
num_handles: slong,
) -> libc::c_int;
pub fn fmpz_mpolyl_gcd_zippel(
G: *mut fmpz_mpoly_struct,
Abar: *mut fmpz_mpoly_struct,
Bbar: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
randstate: *mut flint_rand_struct,
) -> libc::c_int;
pub fn fmpz_mpolyl_gcd_zippel2(
G: *mut fmpz_mpoly_struct,
Abar: *mut fmpz_mpoly_struct,
Bbar: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
Gamma: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpolyl_gcd_hensel(
G: *mut fmpz_mpoly_struct,
Gdeg: slong,
Abar: *mut fmpz_mpoly_struct,
Bbar: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_poly_pfrac_init(Iv: *mut fmpz_poly_pfrac_struct);
pub fn fmpz_poly_pfrac_clear(Iv: *mut fmpz_poly_pfrac_struct);
pub fn fmpz_poly_pfrac_precompute(
Iv: *mut fmpz_poly_pfrac_struct,
b: *const fmpz_poly_struct,
r: slong,
) -> libc::c_int;
pub fn fmpz_poly_pfrac_precomp(
c: *mut fmpz_poly_struct,
A: *const fmpz_poly_struct,
Iv: *mut fmpz_poly_pfrac_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_pfrac_init(
Iv: *mut fmpz_mpoly_pfrac_struct,
bits: flint_bitcnt_t,
r: slong,
w: slong,
betas: *const fmpz_mpoly_struct,
alpha: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_pfrac_clear(
Iv: *mut fmpz_mpoly_pfrac_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_pfrac(
l: slong,
t: *mut fmpz_mpoly_struct,
degs: *const slong,
Iv: *mut fmpz_mpoly_pfrac_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_hlift(
m: slong,
f: *mut fmpz_mpoly_struct,
r: slong,
alpha: *const fmpz,
A: *const fmpz_mpoly_struct,
degs: *const slong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn _fmpz_mpoly_get_lead0(
c: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_set_lead0(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
c: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
#[link_name = "fmpz_bpoly_init__extern"]
pub fn fmpz_bpoly_init(A: *mut fmpz_bpoly_struct);
#[link_name = "fmpz_bpoly_swap__extern"]
pub fn fmpz_bpoly_swap(A: *mut fmpz_bpoly_struct, B: *mut fmpz_bpoly_struct);
pub fn fmpz_bpoly_clear(A: *mut fmpz_bpoly_struct);
pub fn fmpz_bpoly_realloc(A: *mut fmpz_bpoly_struct, len: slong);
#[link_name = "fmpz_bpoly_fit_length__extern"]
pub fn fmpz_bpoly_fit_length(A: *mut fmpz_bpoly_struct, len: slong);
pub fn fmpz_bpoly_print_pretty(
A: *mut fmpz_bpoly_struct,
var0: *const libc::c_char,
var1: *const libc::c_char,
);
#[link_name = "fmpz_bpoly_lead__extern"]
pub fn fmpz_bpoly_lead(A: *mut fmpz_bpoly_struct) -> *mut fmpz_poly_struct;
#[link_name = "fmpz_bpoly_zero__extern"]
pub fn fmpz_bpoly_zero(A: *mut fmpz_bpoly_struct);
#[link_name = "fmpz_bpoly_degree0__extern"]
pub fn fmpz_bpoly_degree0(A: *const fmpz_bpoly_struct) -> slong;
pub fn fmpz_bpoly_degree1(A: *const fmpz_bpoly_struct) -> slong;
pub fn fmpz_bpoly_set_coeff(
A: *mut fmpz_bpoly_struct,
exp0: slong,
exp1: slong,
c: *const fmpz,
);
pub fn fmpz_mpoly_set_fmpz_bpoly(
A: *mut fmpz_mpoly_struct,
Abits: flint_bitcnt_t,
B: *const fmpz_bpoly_struct,
var0: slong,
var1: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_get_bpoly(
A: *mut fmpz_bpoly_struct,
B: *const fmpz_mpoly_struct,
var0: slong,
var1: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
#[link_name = "fmpz_tpoly_init__extern"]
pub fn fmpz_tpoly_init(A: *mut fmpz_tpoly_struct);
#[link_name = "fmpz_tpoly_swap__extern"]
pub fn fmpz_tpoly_swap(A: *mut fmpz_tpoly_struct, B: *mut fmpz_tpoly_struct);
pub fn fmpz_tpoly_fit_length(A: *mut fmpz_tpoly_struct, len: slong);
pub fn fmpz_tpoly_clear(A: *mut fmpz_tpoly_struct);
pub fn fmpz_bpoly_factor(
c: *mut fmpz_poly_struct,
F: *mut fmpz_tpoly_struct,
B: *mut fmpz_bpoly_struct,
);
pub fn fmpz_bpoly_factor_ordered(
c: *mut fmpz_poly_struct,
F: *mut fmpz_tpoly_struct,
B: *mut fmpz_bpoly_struct,
alpha: *const fmpz,
Bevalf: *const fmpz_poly_factor_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_unit_normalize(A: *mut fmpz_mpoly_struct, ctx: *const fmpz_mpoly_ctx_struct);
pub fn _fmpz_mpoly_factor_squarefree(
f: *mut fmpz_mpoly_factor_struct,
A: *mut fmpz_mpoly_struct,
e: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_factor_lcc_wang(
lc_divs: *mut fmpz_mpoly_struct,
lcAfac: *const fmpz_mpoly_factor_struct,
Auc: *const fmpz,
Auf: *const fmpz_poly_struct,
r: slong,
alpha: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_factor_irred_zassenhaus(
fac: *mut fmpz_mpolyv_struct,
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
UNUSED_Z: *mut zassenhaus_prune_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_factor_irred_wang(
fac: *mut fmpz_mpolyv_struct,
A: *const fmpz_mpoly_struct,
lcAfac: *const fmpz_mpoly_factor_struct,
lcAfac_irred: libc::c_int,
lcA: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
state: *mut flint_rand_struct,
Z: *mut zassenhaus_prune_struct,
allow_shift: libc::c_int,
) -> libc::c_int;
pub fn fmpz_mpoly_factor_irred_zippel(
fac: *mut fmpz_mpolyv_struct,
A: *const fmpz_mpoly_struct,
lcAfac: *const fmpz_mpoly_factor_struct,
lcAfac_irred: libc::c_int,
lcA: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
state: *mut flint_rand_struct,
Z: *mut zassenhaus_prune_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_factor_irred(
f: *mut fmpz_mpoly_factor_struct,
ctx: *const fmpz_mpoly_ctx_struct,
algo: libc::c_uint,
) -> libc::c_int;
pub fn fmpz_mpoly_factor_zassenhaus(
f: *mut fmpz_mpoly_factor_struct,
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_factor_wang(
f: *mut fmpz_mpoly_factor_struct,
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_factor_zippel(
f: *mut fmpz_mpoly_factor_struct,
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn _fmpz_mpoly_evaluate_rest_fmpz(
E: *mut fmpz,
starts: *mut slong,
ends: *mut slong,
stops: *mut slong,
es: *mut ulong,
Acoeffs: *const fmpz,
Aexps: *const ulong,
Alen: slong,
var: slong,
alphas: *const fmpz,
offsets: *const slong,
shifts: *const slong,
N: slong,
mask: ulong,
nvars: slong,
) -> libc::c_int;
pub fn _fmpz_mpoly_eval_rest_to_poly(
E: *mut fmpz_poly_struct,
A: *const fmpz_mpoly_struct,
alphas: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_lcc_kaltofen_step(
divs: *mut fmpz_mpoly_struct,
r: slong,
Af: *mut fmpz_mpoly_factor_struct,
Au: *const fmpz_poly_struct,
v: slong,
alphas: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_factor_lcc_kaltofen(
divs: *mut fmpz_mpoly_struct,
lcAf_: *const fmpz_mpoly_factor_struct,
A: *const fmpz_mpoly_struct,
r: slong,
alpha: *const fmpz,
degs: *mut slong,
uf: *const fmpz_poly_factor_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_evaluate_rest_except_one(
e: *mut fmpz_poly_struct,
A: *const fmpz_mpoly_struct,
alphas: *const fmpz,
v: slong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_compression_do(
L: *mut fmpz_mpoly_struct,
Lctx: *const fmpz_mpoly_ctx_struct,
Acoeffs: *mut fmpz,
Alen: slong,
M: *mut mpoly_compression_struct,
);
pub fn fmpz_mpoly_compression_undo(
A: *mut fmpz_mpoly_struct,
Abits: flint_bitcnt_t,
Actx: *const fmpz_mpoly_ctx_struct,
L: *mut fmpz_mpoly_struct,
Lctx: *const fmpz_mpoly_ctx_struct,
M: *mut mpoly_compression_struct,
);
}