use libc::*;
use crate::deps::*;
use crate::acb_types::*;
use crate::flint::*;
use crate::fmpz_mod_types::*;
use crate::fmpz_types::*;
use crate::mpoly_types::*;
#[repr(C)]
pub struct fmpz_mpoly_univar_struct {
pub coeffs: *mut fmpz_mpoly_struct,
pub exps: *mut fmpz,
pub alloc: slong,
pub length: slong,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of fmpz_mpoly_univar_struct"]
[::std::mem::size_of::<fmpz_mpoly_univar_struct>() - 32usize];
["Alignment of fmpz_mpoly_univar_struct"]
[::std::mem::align_of::<fmpz_mpoly_univar_struct>() - 8usize];
["Offset of field: fmpz_mpoly_univar_struct::coeffs"]
[::std::mem::offset_of!(fmpz_mpoly_univar_struct, coeffs) - 0usize];
["Offset of field: fmpz_mpoly_univar_struct::exps"]
[::std::mem::offset_of!(fmpz_mpoly_univar_struct, exps) - 8usize];
["Offset of field: fmpz_mpoly_univar_struct::alloc"]
[::std::mem::offset_of!(fmpz_mpoly_univar_struct, alloc) - 16usize];
["Offset of field: fmpz_mpoly_univar_struct::length"]
[::std::mem::offset_of!(fmpz_mpoly_univar_struct, length) - 24usize];
};
impl Default for fmpz_mpoly_univar_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_univar_t = [fmpz_mpoly_univar_struct; 1usize];
#[repr(C)]
pub struct fmpz_mpolyd_struct {
pub nvars: slong,
pub degb_alloc: slong,
pub deg_bounds: *mut slong,
pub length: slong,
pub coeff_alloc: slong,
pub coeffs: *mut fmpz,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of fmpz_mpolyd_struct"][::std::mem::size_of::<fmpz_mpolyd_struct>() - 48usize];
["Alignment of fmpz_mpolyd_struct"][::std::mem::align_of::<fmpz_mpolyd_struct>() - 8usize];
["Offset of field: fmpz_mpolyd_struct::nvars"]
[::std::mem::offset_of!(fmpz_mpolyd_struct, nvars) - 0usize];
["Offset of field: fmpz_mpolyd_struct::degb_alloc"]
[::std::mem::offset_of!(fmpz_mpolyd_struct, degb_alloc) - 8usize];
["Offset of field: fmpz_mpolyd_struct::deg_bounds"]
[::std::mem::offset_of!(fmpz_mpolyd_struct, deg_bounds) - 16usize];
["Offset of field: fmpz_mpolyd_struct::length"]
[::std::mem::offset_of!(fmpz_mpolyd_struct, length) - 24usize];
["Offset of field: fmpz_mpolyd_struct::coeff_alloc"]
[::std::mem::offset_of!(fmpz_mpolyd_struct, coeff_alloc) - 32usize];
["Offset of field: fmpz_mpolyd_struct::coeffs"]
[::std::mem::offset_of!(fmpz_mpolyd_struct, coeffs) - 40usize];
};
impl Default for fmpz_mpolyd_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_mpolyd_t = [fmpz_mpolyd_struct; 1usize];
#[repr(C)]
pub struct fmpz_mpoly_vec_struct {
pub p: *mut fmpz_mpoly_struct,
pub alloc: slong,
pub length: slong,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of fmpz_mpoly_vec_struct"][::std::mem::size_of::<fmpz_mpoly_vec_struct>() - 24usize];
["Alignment of fmpz_mpoly_vec_struct"]
[::std::mem::align_of::<fmpz_mpoly_vec_struct>() - 8usize];
["Offset of field: fmpz_mpoly_vec_struct::p"]
[::std::mem::offset_of!(fmpz_mpoly_vec_struct, p) - 0usize];
["Offset of field: fmpz_mpoly_vec_struct::alloc"]
[::std::mem::offset_of!(fmpz_mpoly_vec_struct, alloc) - 8usize];
["Offset of field: fmpz_mpoly_vec_struct::length"]
[::std::mem::offset_of!(fmpz_mpoly_vec_struct, length) - 16usize];
};
impl Default for fmpz_mpoly_vec_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_vec_t = [fmpz_mpoly_vec_struct; 1usize];
#[repr(C)]
pub struct _fmpz_mpoly_stripe_struct {
pub big_mem: *mut libc::c_char,
pub big_mem_alloc: slong,
pub N: slong,
pub bits: flint_bitcnt_t,
pub cmpmask: *const ulong,
pub startidx: *mut slong,
pub endidx: *mut slong,
pub emin: *mut ulong,
pub emax: *mut ulong,
pub coeff_bits: flint_bitcnt_t,
pub upperclosed: libc::c_int,
pub flint_small: libc::c_int,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of _fmpz_mpoly_stripe_struct"]
[::std::mem::size_of::<_fmpz_mpoly_stripe_struct>() - 88usize];
["Alignment of _fmpz_mpoly_stripe_struct"]
[::std::mem::align_of::<_fmpz_mpoly_stripe_struct>() - 8usize];
["Offset of field: _fmpz_mpoly_stripe_struct::big_mem"]
[::std::mem::offset_of!(_fmpz_mpoly_stripe_struct, big_mem) - 0usize];
["Offset of field: _fmpz_mpoly_stripe_struct::big_mem_alloc"]
[::std::mem::offset_of!(_fmpz_mpoly_stripe_struct, big_mem_alloc) - 8usize];
["Offset of field: _fmpz_mpoly_stripe_struct::N"]
[::std::mem::offset_of!(_fmpz_mpoly_stripe_struct, N) - 16usize];
["Offset of field: _fmpz_mpoly_stripe_struct::bits"]
[::std::mem::offset_of!(_fmpz_mpoly_stripe_struct, bits) - 24usize];
["Offset of field: _fmpz_mpoly_stripe_struct::cmpmask"]
[::std::mem::offset_of!(_fmpz_mpoly_stripe_struct, cmpmask) - 32usize];
["Offset of field: _fmpz_mpoly_stripe_struct::startidx"]
[::std::mem::offset_of!(_fmpz_mpoly_stripe_struct, startidx) - 40usize];
["Offset of field: _fmpz_mpoly_stripe_struct::endidx"]
[::std::mem::offset_of!(_fmpz_mpoly_stripe_struct, endidx) - 48usize];
["Offset of field: _fmpz_mpoly_stripe_struct::emin"]
[::std::mem::offset_of!(_fmpz_mpoly_stripe_struct, emin) - 56usize];
["Offset of field: _fmpz_mpoly_stripe_struct::emax"]
[::std::mem::offset_of!(_fmpz_mpoly_stripe_struct, emax) - 64usize];
["Offset of field: _fmpz_mpoly_stripe_struct::coeff_bits"]
[::std::mem::offset_of!(_fmpz_mpoly_stripe_struct, coeff_bits) - 72usize];
["Offset of field: _fmpz_mpoly_stripe_struct::upperclosed"]
[::std::mem::offset_of!(_fmpz_mpoly_stripe_struct, upperclosed) - 80usize];
["Offset of field: _fmpz_mpoly_stripe_struct::flint_small"]
[::std::mem::offset_of!(_fmpz_mpoly_stripe_struct, flint_small) - 84usize];
};
impl Default for _fmpz_mpoly_stripe_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_stripe_struct = _fmpz_mpoly_stripe_struct;
pub type fmpz_mpoly_stripe_t = [fmpz_mpoly_stripe_struct; 1usize];
#[repr(C)]
pub struct fmpz_mpolyd_ctx_struct {
pub nvars: slong,
pub perm: *mut slong,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of fmpz_mpolyd_ctx_struct"][::std::mem::size_of::<fmpz_mpolyd_ctx_struct>() - 16usize];
["Alignment of fmpz_mpolyd_ctx_struct"]
[::std::mem::align_of::<fmpz_mpolyd_ctx_struct>() - 8usize];
["Offset of field: fmpz_mpolyd_ctx_struct::nvars"]
[::std::mem::offset_of!(fmpz_mpolyd_ctx_struct, nvars) - 0usize];
["Offset of field: fmpz_mpolyd_ctx_struct::perm"]
[::std::mem::offset_of!(fmpz_mpolyd_ctx_struct, perm) - 8usize];
};
impl Default for fmpz_mpolyd_ctx_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_mpolyd_ctx_t = [fmpz_mpolyd_ctx_struct; 1usize];
#[repr(C)]
pub struct _bindgen_ty_3 {
pub powers: *mut fmpz,
pub length: slong,
pub alloc: slong,
pub tmp: fmpz_t,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of _bindgen_ty_3"][::std::mem::size_of::<_bindgen_ty_3>() - 32usize];
["Alignment of _bindgen_ty_3"][::std::mem::align_of::<_bindgen_ty_3>() - 8usize];
["Offset of field: _bindgen_ty_3::powers"]
[::std::mem::offset_of!(_bindgen_ty_3, powers) - 0usize];
["Offset of field: _bindgen_ty_3::length"]
[::std::mem::offset_of!(_bindgen_ty_3, length) - 8usize];
["Offset of field: _bindgen_ty_3::alloc"]
[::std::mem::offset_of!(_bindgen_ty_3, alloc) - 16usize];
["Offset of field: _bindgen_ty_3::tmp"][::std::mem::offset_of!(_bindgen_ty_3, tmp) - 24usize];
};
impl Default for _bindgen_ty_3 {
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_pow_cache_t = [_bindgen_ty_3; 1usize];
#[repr(C)]
pub struct fmpz_mpoly_geobucket {
pub polys: [fmpz_mpoly_struct; 32usize],
pub temps: [fmpz_mpoly_struct; 32usize],
pub length: slong,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of fmpz_mpoly_geobucket"][::std::mem::size_of::<fmpz_mpoly_geobucket>() - 2568usize];
["Alignment of fmpz_mpoly_geobucket"][::std::mem::align_of::<fmpz_mpoly_geobucket>() - 8usize];
["Offset of field: fmpz_mpoly_geobucket::polys"]
[::std::mem::offset_of!(fmpz_mpoly_geobucket, polys) - 0usize];
["Offset of field: fmpz_mpoly_geobucket::temps"]
[::std::mem::offset_of!(fmpz_mpoly_geobucket, temps) - 1280usize];
["Offset of field: fmpz_mpoly_geobucket::length"]
[::std::mem::offset_of!(fmpz_mpoly_geobucket, length) - 2560usize];
};
impl Default for fmpz_mpoly_geobucket {
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_geobucket_struct = fmpz_mpoly_geobucket;
pub type fmpz_mpoly_geobucket_t = [fmpz_mpoly_geobucket_struct; 1usize];
extern "C" {
#[link_name = "fmpz_mpoly_term_coeff_ref__extern"]
pub fn fmpz_mpoly_term_coeff_ref(
A: *mut fmpz_mpoly_struct,
i: slong,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
) -> *mut fmpz;
#[link_name = "fmpz_mpoly_leadcoeff__extern"]
pub fn fmpz_mpoly_leadcoeff(A: *const fmpz_mpoly_struct) -> *mut fmpz;
pub fn fmpz_mpoly_ctx_init(ctx: *mut fmpz_mpoly_ctx_struct, nvars: slong, ord: ordering_t);
pub fn fmpz_mpoly_ctx_init_rand(
mctx: *mut fmpz_mpoly_ctx_struct,
state: *mut flint_rand_struct,
max_nvars: slong,
);
pub fn fmpz_mpoly_ctx_clear(ctx: *mut fmpz_mpoly_ctx_struct);
#[link_name = "fmpz_mpoly_ctx_nvars__extern"]
pub fn fmpz_mpoly_ctx_nvars(ctx: *const fmpz_mpoly_ctx_struct) -> slong;
#[link_name = "fmpz_mpoly_ctx_ord__extern"]
pub fn fmpz_mpoly_ctx_ord(ctx: *const fmpz_mpoly_ctx_struct) -> ordering_t;
pub fn fmpz_mpoly_init(A: *mut fmpz_mpoly_struct, UNUSED_ctx: *const fmpz_mpoly_ctx_struct);
pub fn fmpz_mpoly_init2(
A: *mut fmpz_mpoly_struct,
alloc: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_init3(
A: *mut fmpz_mpoly_struct,
alloc: slong,
bits: flint_bitcnt_t,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_realloc(
Acoeff: *mut *mut fmpz,
Aexp: *mut *mut ulong,
Aalloc: *mut slong,
len: slong,
N: slong,
);
pub fn fmpz_mpoly_realloc(
A: *mut fmpz_mpoly_struct,
alloc: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_fit_length(
Acoeff: *mut *mut fmpz,
Aexp: *mut *mut ulong,
Aalloc: *mut slong,
len: slong,
N: slong,
);
pub fn fmpz_mpoly_fit_length(
A: *mut fmpz_mpoly_struct,
len: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_fit_length_reset_bits(
A: *mut fmpz_mpoly_struct,
len: slong,
bits: flint_bitcnt_t,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_clear(A: *mut fmpz_mpoly_struct, UNUSED_ctx: *const fmpz_mpoly_ctx_struct);
pub fn _fmpz_mpoly_set_length(
A: *mut fmpz_mpoly_struct,
newlen: slong,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_truncate(
A: *mut fmpz_mpoly_struct,
newlen: slong,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_fit_bits(
A: *mut fmpz_mpoly_struct,
bits: flint_bitcnt_t,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_set_str_pretty(
A: *mut fmpz_mpoly_struct,
str_: *const libc::c_char,
x: *mut *const libc::c_char,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn _fmpz_mpoly_get_str_pretty(
poly: *const fmpz,
exps: *const ulong,
len: slong,
x: *mut *const libc::c_char,
bits: slong,
mctx: *const mpoly_ctx_struct,
) -> *mut libc::c_char;
pub fn fmpz_mpoly_get_str_pretty(
A: *const fmpz_mpoly_struct,
x: *mut *const libc::c_char,
ctx: *const fmpz_mpoly_ctx_struct,
) -> *mut libc::c_char;
pub fn _fmpz_mpoly_fprint_pretty(
file: *mut FILE,
poly: *const fmpz,
exps: *const ulong,
len: slong,
x_in: *mut *const libc::c_char,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_fprint_pretty(
file: *mut FILE,
A: *const fmpz_mpoly_struct,
x: *mut *const libc::c_char,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn _fmpz_mpoly_print_pretty(
poly: *const fmpz,
exps: *const ulong,
len: slong,
x: *mut *const libc::c_char,
bits: slong,
mctx: *const mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_print_pretty(
A: *const fmpz_mpoly_struct,
x: *mut *const libc::c_char,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_gen(
poly: *mut fmpz_mpoly_struct,
i: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_is_gen(
poly: *const fmpz_mpoly_struct,
k: slong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn _fmpz_mpoly_set(
poly1: *mut fmpz,
exps1: *mut ulong,
poly2: *const fmpz,
exps2: *const ulong,
n: slong,
N: slong,
);
pub fn fmpz_mpoly_set(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_equal(
poly1: *mut fmpz,
exps1: *mut ulong,
poly2: *const fmpz,
exps2: *const ulong,
n: slong,
N: slong,
) -> libc::c_int;
pub fn fmpz_mpoly_equal(
A: *const fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
#[link_name = "fmpz_mpoly_swap__extern"]
pub fn fmpz_mpoly_swap(
A: *mut fmpz_mpoly_struct,
B: *mut fmpz_mpoly_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
#[link_name = "_fmpz_mpoly_fits_small__extern"]
pub fn _fmpz_mpoly_fits_small(poly: *const fmpz, len: slong) -> libc::c_int;
pub fn fmpz_mpoly_max_bits(A: *const fmpz_mpoly_struct) -> slong;
pub fn fmpz_mpoly_is_fmpz(
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_get_fmpz(
c: *mut fmpz,
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_set_si(
A: *mut fmpz_mpoly_struct,
c: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_set_ui(
A: *mut fmpz_mpoly_struct,
c: ulong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_set_fmpz(
A: *mut fmpz_mpoly_struct,
c: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
#[link_name = "fmpz_mpoly_zero__extern"]
pub fn fmpz_mpoly_zero(A: *mut fmpz_mpoly_struct, ctx: *const fmpz_mpoly_ctx_struct);
#[link_name = "fmpz_mpoly_one__extern"]
pub fn fmpz_mpoly_one(A: *mut fmpz_mpoly_struct, ctx: *const fmpz_mpoly_ctx_struct);
pub fn fmpz_mpoly_equal_si(
A: *const fmpz_mpoly_struct,
c: slong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_equal_ui(
A: *const fmpz_mpoly_struct,
c: ulong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_equal_fmpz(
A: *const fmpz_mpoly_struct,
c: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
#[link_name = "fmpz_mpoly_is_zero__extern"]
pub fn fmpz_mpoly_is_zero(
A: *const fmpz_mpoly_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
#[link_name = "fmpz_mpoly_is_one__extern"]
pub fn fmpz_mpoly_is_one(
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_degrees_fit_si(
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_degrees_fmpz(
degs: *mut *mut fmpz,
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_degrees_si(
degs: *mut slong,
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_degree_fmpz(
deg: *mut fmpz,
A: *const fmpz_mpoly_struct,
var: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_degree_si(
A: *const fmpz_mpoly_struct,
var: slong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> slong;
pub fn fmpz_mpoly_total_degree_fits_si(
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_total_degree_fmpz(
td: *mut fmpz,
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_total_degree_si(
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> slong;
pub fn fmpz_mpoly_used_vars(
used: *mut libc::c_int,
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_get_coeff_si_fmpz(
A: *const fmpz_mpoly_struct,
exp: *const *mut fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
) -> slong;
pub fn fmpz_mpoly_get_coeff_ui_fmpz(
A: *const fmpz_mpoly_struct,
exp: *const *mut fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ulong;
pub fn fmpz_mpoly_get_coeff_fmpz_fmpz(
c: *mut fmpz,
A: *const fmpz_mpoly_struct,
exp: *const *mut fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_get_coeff_si_ui(
A: *const fmpz_mpoly_struct,
exp: *const ulong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> slong;
pub fn fmpz_mpoly_get_coeff_ui_ui(
A: *const fmpz_mpoly_struct,
exp: *const ulong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ulong;
pub fn fmpz_mpoly_get_coeff_fmpz_ui(
c: *mut fmpz,
A: *const fmpz_mpoly_struct,
exp: *const ulong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_get_coeff_fmpz_monomial(
c: *mut fmpz,
A: *const fmpz_mpoly_struct,
M: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_set_coeff_si_ui(
A: *mut fmpz_mpoly_struct,
c: slong,
exp: *const ulong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_set_coeff_ui_ui(
A: *mut fmpz_mpoly_struct,
c: ulong,
exp: *const ulong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_set_coeff_fmpz_ui(
A: *mut fmpz_mpoly_struct,
c: *const fmpz,
exp: *const ulong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_set_coeff_si_fmpz(
A: *mut fmpz_mpoly_struct,
c: slong,
exp: *const *mut fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_set_coeff_ui_fmpz(
A: *mut fmpz_mpoly_struct,
c: ulong,
exp: *const *mut fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_set_coeff_fmpz_fmpz(
A: *mut fmpz_mpoly_struct,
c: *const fmpz,
exp: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_set_coeff_fmpz_fmpz(
A: *mut fmpz_mpoly_struct,
c: *const fmpz,
exp: *const *mut fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_set_coeff_fmpz_monomial(
A: *mut fmpz_mpoly_struct,
c: *const fmpz,
M: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_get_coeff_vars_ui(
C: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
vars: *const slong,
exps: *const ulong,
length: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_is_fmpz_poly(
A: *const fmpz_mpoly_struct,
var: slong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_get_fmpz_poly(
A: *mut fmpz_poly_struct,
B: *const fmpz_mpoly_struct,
var: slong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn _fmpz_mpoly_set_fmpz_poly(
A: *mut fmpz_mpoly_struct,
Abits: flint_bitcnt_t,
Bcoeffs: *const fmpz,
Blen: slong,
var: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_set_fmpz_poly(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_poly_struct,
v: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_set_fmpz_poly_one_var(
A: *mut fmpz_mpoly_struct,
Aminbits: flint_bitcnt_t,
Acoeffs: *mut fmpz,
Adeg: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_set_gen_fmpz_poly(
res: *mut fmpz_mpoly_struct,
var: slong,
pol: *const fmpz_poly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_cmp(
A: *const fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_is_canonical(
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
#[link_name = "fmpz_mpoly_length__extern"]
pub fn fmpz_mpoly_length(
A: *const fmpz_mpoly_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
) -> slong;
pub fn fmpz_mpoly_resize(
A: *mut fmpz_mpoly_struct,
new_length: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_get_term_coeff_fmpz(
c: *mut fmpz,
A: *const fmpz_mpoly_struct,
i: slong,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_get_term_coeff_ui(
A: *const fmpz_mpoly_struct,
i: slong,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
) -> ulong;
pub fn fmpz_mpoly_get_term_coeff_si(
A: *const fmpz_mpoly_struct,
i: slong,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
) -> slong;
pub fn fmpz_mpoly_set_term_coeff_fmpz(
A: *mut fmpz_mpoly_struct,
i: slong,
c: *const fmpz,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_set_term_coeff_ui(
A: *mut fmpz_mpoly_struct,
i: slong,
c: ulong,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_set_term_coeff_si(
A: *mut fmpz_mpoly_struct,
i: slong,
c: slong,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_term_exp_fits_ui(
A: *const fmpz_mpoly_struct,
i: slong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_term_exp_fits_si(
A: *const fmpz_mpoly_struct,
i: slong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_get_term_exp_si(
exp: *mut slong,
A: *const fmpz_mpoly_struct,
i: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_get_term_exp_ui(
exp: *mut ulong,
A: *const fmpz_mpoly_struct,
i: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_get_term_exp_fmpz(
exp: *mut *mut fmpz,
A: *const fmpz_mpoly_struct,
i: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_get_term_var_exp_si(
A: *const fmpz_mpoly_struct,
i: slong,
var: slong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> slong;
pub fn fmpz_mpoly_get_term_var_exp_ui(
A: *const fmpz_mpoly_struct,
i: slong,
var: slong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ulong;
pub fn fmpz_mpoly_get_term(
M: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
i: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_get_term_monomial(
M: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
i: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_set_term_exp_ui(
A: *mut fmpz_mpoly_struct,
i: slong,
exp: *const ulong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_set_term_exp_fmpz(
A: *mut fmpz_mpoly_struct,
i: slong,
exp: *const *mut fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_push_term_si_ui(
A: *mut fmpz_mpoly_struct,
c: slong,
exp: *const ulong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_push_term_si_fmpz(
A: *mut fmpz_mpoly_struct,
c: slong,
exp: *const *mut fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_push_term_si_ffmpz(
A: *mut fmpz_mpoly_struct,
c: slong,
exp: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_push_term_ui_ui(
A: *mut fmpz_mpoly_struct,
c: ulong,
exp: *const ulong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_push_term_ui_fmpz(
A: *mut fmpz_mpoly_struct,
c: ulong,
exp: *const *mut fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_push_term_ui_ffmpz(
A: *mut fmpz_mpoly_struct,
c: ulong,
exp: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_push_term_fmpz_ui(
A: *mut fmpz_mpoly_struct,
c: *const fmpz,
exp: *const ulong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_push_term_fmpz_fmpz(
A: *mut fmpz_mpoly_struct,
c: *const fmpz,
exp: *const *mut fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_push_term_fmpz_ffmpz(
A: *mut fmpz_mpoly_struct,
c: *const fmpz,
exp: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_push_exp_ui(
A: *mut fmpz_mpoly_struct,
exp: *const ulong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_push_exp_ffmpz(
A: *mut fmpz_mpoly_struct,
exp: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_push_exp_pfmpz(
A: *mut fmpz_mpoly_struct,
exp: *const *mut fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_combine_like_terms(
A: *mut fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_reverse(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_sort_terms(A: *mut fmpz_mpoly_struct, ctx: *const fmpz_mpoly_ctx_struct);
pub fn _fmpz_mpoly_radix_sort1(
A: *mut fmpz_mpoly_struct,
left: slong,
right: slong,
pos: flint_bitcnt_t,
cmpmask: ulong,
totalmask: ulong,
);
pub fn _fmpz_mpoly_radix_sort(
A: *mut fmpz_mpoly_struct,
left: slong,
right: slong,
pos: flint_bitcnt_t,
N: slong,
cmpmask: *mut ulong,
);
pub fn fmpz_mpoly_assert_canonical(
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_randtest_bound(
A: *mut fmpz_mpoly_struct,
state: *mut flint_rand_struct,
length: slong,
coeff_bits: flint_bitcnt_t,
exp_bound: ulong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_randtest_bounds(
A: *mut fmpz_mpoly_struct,
state: *mut flint_rand_struct,
length: slong,
coeff_bits: flint_bitcnt_t,
exp_bounds: *mut ulong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_randtest_bits(
A: *mut fmpz_mpoly_struct,
state: *mut flint_rand_struct,
length: slong,
coeff_bits: flint_bitcnt_t,
exp_bits: flint_bitcnt_t,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_add_si(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
c: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_add_ui(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
c: ulong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_add_fmpz(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
c: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_add(
poly1: *mut fmpz,
exps1: *mut ulong,
poly2: *const fmpz,
exps2: *const ulong,
len2: slong,
poly3: *const fmpz,
exps3: *const ulong,
len3: slong,
N: slong,
cmpmask: *const ulong,
) -> slong;
pub fn fmpz_mpoly_add(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
C: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_sub_si(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
c: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_sub_ui(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
c: ulong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_sub_fmpz(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
c: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_sub(
poly1: *mut fmpz,
exps1: *mut ulong,
poly2: *const fmpz,
exps2: *const ulong,
len2: slong,
poly3: *const fmpz,
exps3: *const ulong,
len3: slong,
N: slong,
cmpmask: *const ulong,
) -> slong;
pub fn fmpz_mpoly_sub(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
C: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_neg(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_scalar_mul_si(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
c: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_scalar_mul_ui(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
c: ulong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_scalar_mul_fmpz(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
c: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_scalar_fmma(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
c: *const fmpz,
D: *const fmpz_mpoly_struct,
e: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_scalar_divexact_si(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
c: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_scalar_divexact_ui(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
c: ulong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_scalar_divexact_fmpz(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
c: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_scalar_divides_si(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
c: slong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_scalar_divides_ui(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
c: ulong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_scalar_divides_fmpz(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
c: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_derivative(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
var: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_integral(
A: *mut fmpz_mpoly_struct,
scale: *mut fmpz,
B: *const fmpz_mpoly_struct,
var: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_pow_ui_is_not_feasible(bbits: flint_bitcnt_t, e: ulong) -> libc::c_int;
pub fn _fmpz_pow_fmpz_is_not_feasible(bbits: flint_bitcnt_t, e: *const fmpz) -> libc::c_int;
pub fn fmpz_mpoly_evaluate_all_fmpz(
ev: *mut fmpz,
A: *const fmpz_mpoly_struct,
vals: *const *mut fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_evaluate_all_nmod(
A: *const fmpz_mpoly_struct,
alphas: *const ulong,
ctx: *const fmpz_mpoly_ctx_struct,
fpctx: nmod_t,
) -> ulong;
pub fn fmpz_mpoly_evaluate_all_fmpz_mod(
ev: *mut fmpz,
A: *const fmpz_mpoly_struct,
alphas: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
fpctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mpoly_evaluate_acb(
res: *mut acb_struct,
pol: *const fmpz_mpoly_struct,
x: acb_srcptr,
prec: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_evaluate_one_fmpz(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
var: slong,
val: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_compose_fmpz_poly(
A: *mut fmpz_poly_struct,
B: *const fmpz_mpoly_struct,
C: *const *mut fmpz_poly_struct,
ctxB: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn _fmpz_mpoly_compose_mat(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
M: *const fmpz_mat_struct,
ctxB: *const fmpz_mpoly_ctx_struct,
ctxAC: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_compose_fmpz_mpoly_geobucket(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
C: *const *mut fmpz_mpoly_struct,
ctxB: *const fmpz_mpoly_ctx_struct,
ctxAC: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_compose_fmpz_mpoly_horner(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
C: *const *mut fmpz_mpoly_struct,
ctxB: *const fmpz_mpoly_ctx_struct,
ctxAC: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_compose_fmpz_mpoly(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
C: *const *mut fmpz_mpoly_struct,
ctxB: *const fmpz_mpoly_ctx_struct,
ctxAC: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_compose_fmpz_mpoly_gen(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
c: *const slong,
ctxB: *const fmpz_mpoly_ctx_struct,
ctxAC: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_mul(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
C: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_mul_monomial(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
C: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_mul_johnson_maxfields(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
maxBfields: *mut fmpz,
C: *const fmpz_mpoly_struct,
maxCfields: *mut fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_mul_johnson(
poly1: *mut *mut fmpz,
exp1: *mut *mut ulong,
alloc: *mut slong,
poly2: *const fmpz,
exp2: *const ulong,
len2: slong,
poly3: *const fmpz,
exp3: *const ulong,
len3: slong,
bits: flint_bitcnt_t,
N: slong,
cmpmask: *const ulong,
) -> slong;
pub fn fmpz_mpoly_mul_johnson(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
C: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_mul_heap_threaded_pool_maxfields(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
maxBfields: *mut fmpz,
C: *const fmpz_mpoly_struct,
maxCfields: *mut fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
handles: *const thread_pool_handle,
num_handles: slong,
);
pub fn fmpz_mpoly_mul_heap_threaded(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
C: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_mul_array(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
C: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_mul_array_threaded(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
C: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn _fmpz_mpoly_mul_dense(
P: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
maxAfields: *mut fmpz,
B: *const fmpz_mpoly_struct,
maxBfields: *mut fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_mul_dense(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
C: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn _fmpz_mpoly_mul_array_DEG(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
maxBfields: *mut fmpz,
C: *const fmpz_mpoly_struct,
maxCfields: *mut fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn _fmpz_mpoly_mul_array_LEX(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
maxBfields: *mut fmpz,
C: *const fmpz_mpoly_struct,
maxCfields: *mut fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn _fmpz_mpoly_mul_array_threaded_pool_DEG(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
maxBfields: *mut fmpz,
C: *const fmpz_mpoly_struct,
maxCfields: *mut fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
handles: *const thread_pool_handle,
num_handles: slong,
) -> libc::c_int;
pub fn _fmpz_mpoly_mul_array_threaded_pool_LEX(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
maxBfields: *mut fmpz,
C: *const fmpz_mpoly_struct,
maxCfields: *mut fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
handles: *const thread_pool_handle,
num_handles: slong,
) -> libc::c_int;
pub fn fmpz_mpoly_pow_ui(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
k: ulong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_pow_fmpz(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
k: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_divides(
Q: *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_mpoly_divides_monagan_pearce(
Q: *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_mpoly_divides_heap_threaded(
Q: *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_mpoly_divides_heap_threaded_pool(
Q: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
handles: *const thread_pool_handle,
num_handles: slong,
) -> libc::c_int;
pub fn _fmpz_mpoly_divides_array(
poly1: *mut *mut fmpz,
exp1: *mut *mut ulong,
alloc: *mut slong,
poly2: *const fmpz,
exp2: *const ulong,
len2: slong,
poly3: *const fmpz,
exp3: *const ulong,
len3: slong,
mults: *mut slong,
num: slong,
bits: slong,
) -> slong;
pub fn fmpz_mpoly_divides_array(
poly1: *mut fmpz_mpoly_struct,
poly2: *const fmpz_mpoly_struct,
poly3: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn mpoly_divides_select_exps(
S: *mut fmpz_mpoly_struct,
zctx: *mut fmpz_mpoly_ctx_struct,
nworkers: slong,
Aexp: *mut ulong,
Alen: slong,
Bexp: *mut ulong,
Blen: slong,
bits: flint_bitcnt_t,
) -> libc::c_int;
pub fn _fmpz_mpoly_divides_monagan_pearce(
poly1: *mut *mut fmpz,
exp1: *mut *mut ulong,
alloc: *mut slong,
poly2: *const fmpz,
exp2: *const ulong,
len2: slong,
poly3: *const fmpz,
exp3: *const ulong,
len3: slong,
bits: flint_bitcnt_t,
N: slong,
cmpmask: *const ulong,
) -> slong;
pub fn fmpz_mpoly_divrem(
Q: *mut fmpz_mpoly_struct,
R: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_quasidivrem(
scale: *mut fmpz,
Q: *mut fmpz_mpoly_struct,
R: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_div(
Q: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_quasidiv(
scale: *mut fmpz,
Q: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_divrem_ideal(
Q: *mut *mut fmpz_mpoly_struct,
R: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
B: *const *mut fmpz_mpoly_struct,
len: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_quasidivrem_ideal(
scale: *mut fmpz,
Q: *mut *mut fmpz_mpoly_struct,
R: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
B: *const *mut fmpz_mpoly_struct,
len: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
#[link_name = "fmpz_mpoly_divexact__extern"]
pub fn fmpz_mpoly_divexact(
Q: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_div_monagan_pearce(
polyq: *mut *mut fmpz,
expq: *mut *mut ulong,
allocq: *mut slong,
poly2: *const fmpz,
exp2: *const ulong,
len2: slong,
poly3: *const fmpz,
exp3: *const ulong,
len3: slong,
bits: slong,
N: slong,
cmpmask: *const ulong,
) -> slong;
pub fn fmpz_mpoly_div_monagan_pearce(
q: *mut fmpz_mpoly_struct,
poly2: *const fmpz_mpoly_struct,
poly3: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_divrem_monagan_pearce(
lenr: *mut slong,
polyq: *mut *mut fmpz,
expq: *mut *mut ulong,
allocq: *mut slong,
polyr: *mut *mut fmpz,
expr: *mut *mut ulong,
allocr: *mut slong,
poly2: *const fmpz,
exp2: *const ulong,
len2: slong,
poly3: *const fmpz,
exp3: *const ulong,
len3: slong,
bits: slong,
N: slong,
cmpmask: *const ulong,
) -> slong;
pub fn fmpz_mpoly_divrem_monagan_pearce(
q: *mut fmpz_mpoly_struct,
r: *mut fmpz_mpoly_struct,
poly2: *const fmpz_mpoly_struct,
poly3: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_divrem_array(
lenr: *mut slong,
polyq: *mut *mut fmpz,
expq: *mut *mut ulong,
allocq: *mut slong,
polyr: *mut *mut fmpz,
expr: *mut *mut ulong,
allocr: *mut slong,
poly2: *const fmpz,
exp2: *const ulong,
len2: slong,
poly3: *const fmpz,
exp3: *const ulong,
len3: slong,
mults: *mut slong,
num: slong,
bits: slong,
) -> slong;
pub fn fmpz_mpoly_divrem_array(
q: *mut fmpz_mpoly_struct,
r: *mut fmpz_mpoly_struct,
poly2: *const fmpz_mpoly_struct,
poly3: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_quasidivrem_heap(
scale: *mut fmpz,
q: *mut fmpz_mpoly_struct,
r: *mut fmpz_mpoly_struct,
poly2: *const fmpz_mpoly_struct,
poly3: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_quasidiv_heap(
scale: *mut fmpz,
q: *mut fmpz_mpoly_struct,
poly2: *const fmpz_mpoly_struct,
poly3: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_divrem_ideal_monagan_pearce(
polyq: *mut *mut fmpz_mpoly_struct,
polyr: *mut *mut fmpz,
expr: *mut *mut ulong,
allocr: *mut slong,
poly2: *const fmpz,
exp2: *const ulong,
len2: slong,
poly3: *const *mut fmpz_mpoly_struct,
exp3: *const *mut ulong,
len: slong,
N: slong,
bits: slong,
ctx: *const fmpz_mpoly_ctx_struct,
cmpmask: *const ulong,
) -> slong;
pub fn fmpz_mpoly_divrem_ideal_monagan_pearce(
q: *mut *mut fmpz_mpoly_struct,
r: *mut fmpz_mpoly_struct,
poly2: *const fmpz_mpoly_struct,
poly3: *const *mut fmpz_mpoly_struct,
len: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_quasidivrem_ideal_heap(
scale: *mut fmpz,
q: *mut *mut fmpz_mpoly_struct,
r: *mut fmpz_mpoly_struct,
poly2: *const fmpz_mpoly_struct,
poly3: *const *mut fmpz_mpoly_struct,
len: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_sqrt_heap(
polyq: *mut *mut fmpz,
expq: *mut *mut ulong,
allocq: *mut slong,
poly2: *const fmpz,
exp2: *const ulong,
len2: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
check: libc::c_int,
) -> slong;
pub fn fmpz_mpoly_sqrt_heap(
q: *mut fmpz_mpoly_struct,
poly2: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
check: libc::c_int,
) -> libc::c_int;
#[link_name = "fmpz_mpoly_sqrt__extern"]
pub fn fmpz_mpoly_sqrt(
q: *mut fmpz_mpoly_struct,
poly2: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
#[link_name = "fmpz_mpoly_is_square__extern"]
pub fn fmpz_mpoly_is_square(
poly2: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_term_content(
M: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_primitive_part(
res: *mut fmpz_mpoly_struct,
f: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_content_vars(
g: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
vars: *mut slong,
vars_length: slong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_deflation(
shift: *mut fmpz,
stride: *mut fmpz,
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_deflate(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
shift: *const fmpz,
stride: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_inflate(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
shift: *const fmpz,
stride: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_gcd_cofactors(
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,
) -> libc::c_int;
pub fn fmpz_mpoly_gcd_hensel(
G: *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_mpoly_gcd_brown(
G: *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_mpoly_gcd_subresultant(
G: *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_mpoly_gcd_zippel(
G: *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_mpoly_gcd_zippel2(
G: *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_mpoly_gcd(
G: *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_mpoly_univar_init(
A: *mut fmpz_mpoly_univar_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_univar_clear(
A: *mut fmpz_mpoly_univar_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_univar_fit_length(
A: *mut fmpz_mpoly_univar_struct,
length: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_univar_print_pretty(
A: *const fmpz_mpoly_univar_struct,
x: *mut *const libc::c_char,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_univar_assert_canonical(
A: *mut fmpz_mpoly_univar_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
#[link_name = "fmpz_mpoly_univar_zero__extern"]
pub fn fmpz_mpoly_univar_zero(
A: *mut fmpz_mpoly_univar_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_univar_set_coeff_ui(
A: *mut fmpz_mpoly_univar_struct,
e: ulong,
c: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_to_univar(
A: *mut fmpz_mpoly_univar_struct,
B: *const fmpz_mpoly_struct,
var: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_from_univar(
A: *mut fmpz_mpoly_struct,
Abits: flint_bitcnt_t,
B: *const fmpz_mpoly_univar_struct,
var: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_from_univar(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_univar_struct,
var: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
#[link_name = "fmpz_mpoly_univar_swap__extern"]
pub fn fmpz_mpoly_univar_swap(
A: *mut fmpz_mpoly_univar_struct,
B: *mut fmpz_mpoly_univar_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_univar_degree_fits_si(
A: *const fmpz_mpoly_univar_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
#[link_name = "fmpz_mpoly_univar_length__extern"]
pub fn fmpz_mpoly_univar_length(
A: *const fmpz_mpoly_univar_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
) -> slong;
pub fn fmpz_mpoly_univar_get_term_exp_si(
A: *mut fmpz_mpoly_univar_struct,
i: slong,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
) -> slong;
#[link_name = "fmpz_mpoly_univar_get_term_coeff__extern"]
pub fn fmpz_mpoly_univar_get_term_coeff(
c: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_univar_struct,
i: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
#[link_name = "fmpz_mpoly_univar_swap_term_coeff__extern"]
pub fn fmpz_mpoly_univar_swap_term_coeff(
c: *mut fmpz_mpoly_struct,
A: *mut fmpz_mpoly_univar_struct,
i: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_univar_pseudo_gcd(
gx: *mut fmpz_mpoly_univar_struct,
ax: *const fmpz_mpoly_univar_struct,
bx: *const fmpz_mpoly_univar_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_univar_resultant(
d: *mut fmpz_mpoly_struct,
ax: *const fmpz_mpoly_univar_struct,
bx: *const fmpz_mpoly_univar_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_univar_discriminant(
d: *mut fmpz_mpoly_struct,
fx: *const fmpz_mpoly_univar_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_resultant(
R: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
var: slong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_discriminant(
R: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
var: slong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_symmetric_gens(
res: *mut fmpz_mpoly_struct,
k: ulong,
vars: *mut slong,
n: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_symmetric(
res: *mut fmpz_mpoly_struct,
k: ulong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_vec_init(
vec: *mut fmpz_mpoly_vec_struct,
len: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_vec_print(F: *const fmpz_mpoly_vec_struct, ctx: *const fmpz_mpoly_ctx_struct);
pub fn fmpz_mpoly_vec_swap(
x: *mut fmpz_mpoly_vec_struct,
y: *mut fmpz_mpoly_vec_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_vec_fit_length(
vec: *mut fmpz_mpoly_vec_struct,
len: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_vec_clear(vec: *mut fmpz_mpoly_vec_struct, ctx: *const fmpz_mpoly_ctx_struct);
pub fn fmpz_mpoly_vec_set(
dest: *mut fmpz_mpoly_vec_struct,
src: *const fmpz_mpoly_vec_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_vec_append(
vec: *mut fmpz_mpoly_vec_struct,
f: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_vec_insert_unique(
vec: *mut fmpz_mpoly_vec_struct,
f: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> slong;
pub fn fmpz_mpoly_vec_set_length(
vec: *mut fmpz_mpoly_vec_struct,
len: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_vec_randtest_not_zero(
vec: *mut fmpz_mpoly_vec_struct,
state: *mut flint_rand_struct,
len: slong,
poly_len: slong,
bits: slong,
exp_bound: ulong,
ctx: *mut fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_spoly(
res: *mut fmpz_mpoly_struct,
f: *const fmpz_mpoly_struct,
g: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_vec_set_primitive_unique(
G: *mut fmpz_mpoly_vec_struct,
F: *const fmpz_mpoly_vec_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_reduction_primitive_part(
res: *mut fmpz_mpoly_struct,
f: *const fmpz_mpoly_struct,
Iv: *const fmpz_mpoly_vec_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_vec_is_groebner(
G: *const fmpz_mpoly_vec_struct,
F: *const fmpz_mpoly_vec_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_buchberger_naive(
G: *mut fmpz_mpoly_vec_struct,
F: *const fmpz_mpoly_vec_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_buchberger_naive_with_limits(
G: *mut fmpz_mpoly_vec_struct,
F: *const fmpz_mpoly_vec_struct,
ideal_len_limit: slong,
poly_len_limit: slong,
poly_bits_limit: slong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_vec_autoreduction(
H: *mut fmpz_mpoly_vec_struct,
F: *const fmpz_mpoly_vec_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_vec_autoreduction_groebner(
H: *mut fmpz_mpoly_vec_struct,
G: *const fmpz_mpoly_vec_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_vec_is_autoreduced(
G: *const fmpz_mpoly_vec_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
#[doc = "Internal functions (guaranteed to change without notice)"]
pub fn mpoly_void_ring_init_fmpz_mpoly_ctx(
R: *mut _bindgen_ty_2,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_pow_fps(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
k: ulong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpolyl_lead_coeff(
c: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
num_vars: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpolyl_content(
g: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
num_vars: slong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn _fmpz_mpoly_to_fmpz_poly_deflate(
A: *mut fmpz_poly_struct,
B: *const fmpz_mpoly_struct,
var: slong,
Bshift: *const ulong,
Bstride: *const ulong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_to_fmpz_poly(
poly1: *mut fmpz_poly_struct,
poly1_shift: *mut slong,
poly2: *const fmpz_mpoly_struct,
var: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_from_fmpz_poly_inflate(
A: *mut fmpz_mpoly_struct,
Abits: flint_bitcnt_t,
B: *const fmpz_poly_struct,
var: slong,
Ashift: *const ulong,
Astride: *const ulong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_from_fmpz_poly(
poly1: *mut fmpz_mpoly_struct,
poly2: *const fmpz_poly_struct,
shift2: slong,
var: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_repack_bits(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
Abits: flint_bitcnt_t,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpoly_repack_bits_inplace(
A: *mut fmpz_mpoly_struct,
Abits: flint_bitcnt_t,
ctx: *const fmpz_mpoly_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mpolyd_init(poly: *mut fmpz_mpolyd_struct, nvars: slong);
pub fn fmpz_mpolyd_fit_length(poly: *mut fmpz_mpolyd_struct, len: slong);
pub fn fmpz_mpolyd_clear(poly: *mut fmpz_mpolyd_struct);
pub fn fmpz_pow_cache_init(T: *mut _bindgen_ty_3, val: *const fmpz);
pub fn fmpz_pow_cache_clear(T: *mut _bindgen_ty_3);
pub fn fmpz_pow_cache_mulpow_ui(
a: *mut fmpz,
b: *const fmpz,
k: ulong,
T: *mut _bindgen_ty_3,
) -> libc::c_int;
pub fn fmpz_pow_cache_mulpow_fmpz(
a: *mut fmpz,
b: *const fmpz,
k: *const fmpz,
T: *mut _bindgen_ty_3,
) -> libc::c_int;
pub fn fmpz_mpoly_to_mpoly_perm_deflate_threaded_pool(
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,
handles: *const thread_pool_handle,
num_handles: slong,
);
pub fn fmpz_mpoly_from_mpoly_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_mpoly_height(
max: *mut fmpz,
A: *const fmpz_mpoly_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_heights(
max: *mut fmpz,
sum: *mut fmpz,
A: *const fmpz_mpoly_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_geobucket_init(
B: *mut fmpz_mpoly_geobucket_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_geobucket_clear(
B: *mut fmpz_mpoly_geobucket_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_geobucket_empty(
p: *mut fmpz_mpoly_struct,
B: *mut fmpz_mpoly_geobucket_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_geobucket_fit_length(
B: *mut fmpz_mpoly_geobucket_struct,
i: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_geobucket_set(
B: *mut fmpz_mpoly_geobucket_struct,
p: *mut fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_geobucket_add(
B: *mut fmpz_mpoly_geobucket_struct,
p: *mut fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_geobucket_sub(
B: *mut fmpz_mpoly_geobucket_struct,
p: *mut fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_mul_array_chunked_DEG(
P: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
degb: ulong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_mul_array_chunked_LEX(
P: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
mults: *const ulong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_addmul_array1_slong1(
poly1: *mut ulong,
poly2: *const slong,
exp2: *const ulong,
len2: slong,
poly3: *const slong,
exp3: *const ulong,
len3: slong,
);
pub fn _fmpz_mpoly_addmul_array1_slong2(
poly1: *mut ulong,
poly2: *const slong,
exp2: *const ulong,
len2: slong,
poly3: *const slong,
exp3: *const ulong,
len3: slong,
);
pub fn _fmpz_mpoly_addmul_array1_slong(
poly1: *mut ulong,
poly2: *const slong,
exp2: *const ulong,
len2: slong,
poly3: *const slong,
exp3: *const ulong,
len3: slong,
);
pub fn _fmpz_mpoly_addmul_array1_fmpz(
poly1: *mut fmpz,
poly2: *const fmpz,
exp2: *const ulong,
len2: slong,
poly3: *const fmpz,
exp3: *const ulong,
len3: slong,
);
pub fn _fmpz_mpoly_submul_array1_slong1(
poly1: *mut ulong,
poly2: *const slong,
exp2: *const ulong,
len2: slong,
poly3: *const slong,
exp3: *const ulong,
len3: slong,
);
pub fn _fmpz_mpoly_submul_array1_slong2(
poly1: *mut ulong,
poly2: *const slong,
exp2: *const ulong,
len2: slong,
poly3: *const slong,
exp3: *const ulong,
len3: slong,
);
pub fn _fmpz_mpoly_submul_array1_slong(
poly1: *mut ulong,
poly2: *const slong,
exp2: *const ulong,
len2: slong,
poly3: *const slong,
exp3: *const ulong,
len3: slong,
);
pub fn _fmpz_mpoly_submul_array1_fmpz(
poly1: *mut fmpz,
poly2: *const fmpz,
exp2: *const ulong,
len2: slong,
poly3: *const fmpz,
exp3: *const ulong,
len3: slong,
);
pub fn _fmpz_mpoly_submul_array1_slong2_1(
poly1: *mut ulong,
d: slong,
exp2: ulong,
poly3: *const slong,
exp3: *const ulong,
len3: slong,
);
pub fn _fmpz_mpoly_submul_array1_slong_1(
poly1: *mut ulong,
d: slong,
exp2: ulong,
poly3: *const slong,
exp3: *const ulong,
len3: slong,
);
pub fn _fmpz_mpoly_submul_array1_fmpz_1(
poly1: *mut fmpz,
d: *const fmpz,
exp2: ulong,
poly3: *const fmpz,
exp3: *const ulong,
len3: slong,
);
pub fn fmpz_mpoly_append_array_sm1_LEX(
P: *mut fmpz_mpoly_struct,
Plen: slong,
coeff_array: *mut ulong,
mults: *const ulong,
num: slong,
array_size: slong,
top: slong,
) -> slong;
pub fn fmpz_mpoly_append_array_sm2_LEX(
P: *mut fmpz_mpoly_struct,
Plen: slong,
coeff_array: *mut ulong,
mults: *const ulong,
num: slong,
array_size: slong,
top: slong,
) -> slong;
pub fn fmpz_mpoly_append_array_sm3_LEX(
P: *mut fmpz_mpoly_struct,
Plen: slong,
coeff_array: *mut ulong,
mults: *const ulong,
num: slong,
array_size: slong,
top: slong,
) -> slong;
pub fn fmpz_mpoly_append_array_fmpz_LEX(
P: *mut fmpz_mpoly_struct,
Plen: slong,
coeff_array: *mut fmpz,
mults: *const ulong,
num: slong,
array_size: slong,
top: slong,
) -> slong;
pub fn fmpz_mpoly_append_array_sm1_DEGLEX(
P: *mut fmpz_mpoly_struct,
Plen: slong,
coeff_array: *mut ulong,
top: slong,
nvars: slong,
degb: slong,
) -> slong;
pub fn fmpz_mpoly_append_array_sm2_DEGLEX(
P: *mut fmpz_mpoly_struct,
Plen: slong,
coeff_array: *mut ulong,
top: slong,
nvars: slong,
degb: slong,
) -> slong;
pub fn fmpz_mpoly_append_array_sm3_DEGLEX(
P: *mut fmpz_mpoly_struct,
Plen: slong,
coeff_array: *mut ulong,
top: slong,
nvars: slong,
degb: slong,
) -> slong;
pub fn fmpz_mpoly_append_array_fmpz_DEGLEX(
P: *mut fmpz_mpoly_struct,
Plen: slong,
coeff_array: *mut fmpz,
top: slong,
nvars: slong,
degb: slong,
) -> slong;
pub fn fmpz_mpoly_append_array_sm1_DEGREVLEX(
P: *mut fmpz_mpoly_struct,
Plen: slong,
coeff_array: *mut ulong,
top: slong,
nvars: slong,
degb: slong,
) -> slong;
pub fn fmpz_mpoly_append_array_sm2_DEGREVLEX(
P: *mut fmpz_mpoly_struct,
Plen: slong,
coeff_array: *mut ulong,
top: slong,
nvars: slong,
degb: slong,
) -> slong;
pub fn fmpz_mpoly_append_array_sm3_DEGREVLEX(
P: *mut fmpz_mpoly_struct,
Plen: slong,
coeff_array: *mut ulong,
top: slong,
nvars: slong,
degb: slong,
) -> slong;
pub fn fmpz_mpoly_append_array_fmpz_DEGREVLEX(
P: *mut fmpz_mpoly_struct,
Plen: slong,
coeff_array: *mut fmpz,
top: slong,
nvars: slong,
degb: slong,
) -> slong;
pub fn _fmpz_mpoly_from_ulong_array1(
poly1: *mut *mut fmpz,
exp1: *mut *mut ulong,
alloc: *mut slong,
poly2: *mut ulong,
mults: *const slong,
num: slong,
bits: slong,
k: slong,
) -> slong;
pub fn _fmpz_mpoly_from_ulong_array2(
poly1: *mut *mut fmpz,
exp1: *mut *mut ulong,
alloc: *mut slong,
poly2: *mut ulong,
mults: *const slong,
num: slong,
bits: slong,
k: slong,
) -> slong;
pub fn _fmpz_mpoly_from_ulong_array(
poly1: *mut *mut fmpz,
exp1: *mut *mut ulong,
alloc: *mut slong,
poly2: *mut ulong,
mults: *const slong,
num: slong,
bits: slong,
k: slong,
) -> slong;
pub fn _fmpz_mpoly_from_fmpz_array(
poly1: *mut *mut fmpz,
exp1: *mut *mut ulong,
alloc: *mut slong,
poly2: *mut fmpz,
mults: *const slong,
num: slong,
bits: slong,
k: slong,
) -> slong;
pub fn _fmpz_mpoly_to_ulong_array1(
p: *mut ulong,
coeffs: *const fmpz,
exps: *const ulong,
len: slong,
);
pub fn _fmpz_mpoly_to_ulong_array2(
p: *mut ulong,
coeffs: *const fmpz,
exps: *const ulong,
len: slong,
);
pub fn _fmpz_mpoly_to_ulong_array(
p: *mut ulong,
coeffs: *const fmpz,
exps: *const ulong,
len: slong,
);
pub fn _fmpz_mpoly_to_fmpz_array(
p: *mut fmpz,
coeffs: *const fmpz,
exps: *const ulong,
len: slong,
);
pub fn _fmpz_mpoly_add_uiuiui_fmpz(c: *mut ulong, d: *const fmpz);
pub fn _fmpz_mpoly_sub_uiuiui_fmpz(c: *mut ulong, d: *const fmpz);
#[link_name = "_fmpz_mpoly_submul_uiuiui_fmpz__extern"]
pub fn _fmpz_mpoly_submul_uiuiui_fmpz(c: *mut ulong, d1: slong, d2: slong);
#[link_name = "_fmpz_mpoly_addmul_uiuiui_fmpz__extern"]
pub fn _fmpz_mpoly_addmul_uiuiui_fmpz(c: *mut ulong, d1: slong, d2: slong);
#[doc = "Internal consistency checks"]
pub fn fmpz_mpoly_remainder_test(
r: *const fmpz_mpoly_struct,
g: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_remainder_strongtest(
r: *const fmpz_mpoly_struct,
g: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
}