use libc::*;
use crate::deps::*;
use crate::flint::*;
use crate::fmpz_mod_types::*;
use crate::fmpz_types::*;
use crate::nmod_types::*;
pub const FMPZ_MOD_POLY_HGCD_CUTOFF: u32 = 128;
pub const FMPZ_MOD_POLY_GCD_CUTOFF: u32 = 256;
pub const FMPZ_MOD_POLY_INV_NEWTON_CUTOFF: u32 = 64;
pub const FMPZ_MOD_POLY_EVALUATE_FMPZ_VEC: u32 = 32;
#[repr(C)]
pub struct fmpz_mod_poly_res_struct {
pub res: fmpz_t,
pub lc: fmpz_t,
pub len0: slong,
pub len1: slong,
pub off: slong,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of fmpz_mod_poly_res_struct"]
[::std::mem::size_of::<fmpz_mod_poly_res_struct>() - 40usize];
["Alignment of fmpz_mod_poly_res_struct"]
[::std::mem::align_of::<fmpz_mod_poly_res_struct>() - 8usize];
["Offset of field: fmpz_mod_poly_res_struct::res"]
[::std::mem::offset_of!(fmpz_mod_poly_res_struct, res) - 0usize];
["Offset of field: fmpz_mod_poly_res_struct::lc"]
[::std::mem::offset_of!(fmpz_mod_poly_res_struct, lc) - 8usize];
["Offset of field: fmpz_mod_poly_res_struct::len0"]
[::std::mem::offset_of!(fmpz_mod_poly_res_struct, len0) - 16usize];
["Offset of field: fmpz_mod_poly_res_struct::len1"]
[::std::mem::offset_of!(fmpz_mod_poly_res_struct, len1) - 24usize];
["Offset of field: fmpz_mod_poly_res_struct::off"]
[::std::mem::offset_of!(fmpz_mod_poly_res_struct, off) - 32usize];
};
impl Default for fmpz_mod_poly_res_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_mod_poly_res_t = [fmpz_mod_poly_res_struct; 1usize];
#[repr(C)]
pub struct fmpz_mod_poly_frobenius_powers_2exp_struct {
pub pow: *mut fmpz_mod_poly_struct,
pub len: slong,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of fmpz_mod_poly_frobenius_powers_2exp_struct"]
[::std::mem::size_of::<fmpz_mod_poly_frobenius_powers_2exp_struct>() - 16usize];
["Alignment of fmpz_mod_poly_frobenius_powers_2exp_struct"]
[::std::mem::align_of::<fmpz_mod_poly_frobenius_powers_2exp_struct>() - 8usize];
["Offset of field: fmpz_mod_poly_frobenius_powers_2exp_struct::pow"]
[::std::mem::offset_of!(fmpz_mod_poly_frobenius_powers_2exp_struct, pow) - 0usize];
["Offset of field: fmpz_mod_poly_frobenius_powers_2exp_struct::len"]
[::std::mem::offset_of!(fmpz_mod_poly_frobenius_powers_2exp_struct, len) - 8usize];
};
impl Default for fmpz_mod_poly_frobenius_powers_2exp_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_mod_poly_frobenius_powers_2exp_t =
[fmpz_mod_poly_frobenius_powers_2exp_struct; 1usize];
#[repr(C)]
pub struct fmpz_mod_poly_frobenius_powers_struct {
pub pow: *mut fmpz_mod_poly_struct,
pub len: slong,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of fmpz_mod_poly_frobenius_powers_struct"]
[::std::mem::size_of::<fmpz_mod_poly_frobenius_powers_struct>() - 16usize];
["Alignment of fmpz_mod_poly_frobenius_powers_struct"]
[::std::mem::align_of::<fmpz_mod_poly_frobenius_powers_struct>() - 8usize];
["Offset of field: fmpz_mod_poly_frobenius_powers_struct::pow"]
[::std::mem::offset_of!(fmpz_mod_poly_frobenius_powers_struct, pow) - 0usize];
["Offset of field: fmpz_mod_poly_frobenius_powers_struct::len"]
[::std::mem::offset_of!(fmpz_mod_poly_frobenius_powers_struct, len) - 8usize];
};
impl Default for fmpz_mod_poly_frobenius_powers_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_mod_poly_frobenius_powers_t = [fmpz_mod_poly_frobenius_powers_struct; 1usize];
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct fmpz_mod_poly_matrix_precompute_arg_t {
pub A: *mut fmpz_mat_struct,
pub poly1: *mut fmpz_mod_poly_struct,
pub poly2: *mut fmpz_mod_poly_struct,
pub poly2inv: *mut fmpz_mod_poly_struct,
pub ctx: *const fmpz_mod_ctx_struct,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of fmpz_mod_poly_matrix_precompute_arg_t"]
[::std::mem::size_of::<fmpz_mod_poly_matrix_precompute_arg_t>() - 40usize];
["Alignment of fmpz_mod_poly_matrix_precompute_arg_t"]
[::std::mem::align_of::<fmpz_mod_poly_matrix_precompute_arg_t>() - 8usize];
["Offset of field: fmpz_mod_poly_matrix_precompute_arg_t::A"]
[::std::mem::offset_of!(fmpz_mod_poly_matrix_precompute_arg_t, A) - 0usize];
["Offset of field: fmpz_mod_poly_matrix_precompute_arg_t::poly1"]
[::std::mem::offset_of!(fmpz_mod_poly_matrix_precompute_arg_t, poly1) - 8usize];
["Offset of field: fmpz_mod_poly_matrix_precompute_arg_t::poly2"]
[::std::mem::offset_of!(fmpz_mod_poly_matrix_precompute_arg_t, poly2) - 16usize];
["Offset of field: fmpz_mod_poly_matrix_precompute_arg_t::poly2inv"]
[::std::mem::offset_of!(fmpz_mod_poly_matrix_precompute_arg_t, poly2inv) - 24usize];
["Offset of field: fmpz_mod_poly_matrix_precompute_arg_t::ctx"]
[::std::mem::offset_of!(fmpz_mod_poly_matrix_precompute_arg_t, ctx) - 32usize];
};
impl Default for fmpz_mod_poly_matrix_precompute_arg_t {
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()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct fmpz_mod_poly_compose_mod_precomp_preinv_arg_t {
pub A: *mut fmpz_mat_struct,
pub res: *mut fmpz_mod_poly_struct,
pub poly1: *mut fmpz_mod_poly_struct,
pub poly3: *mut fmpz_mod_poly_struct,
pub poly3inv: *mut fmpz_mod_poly_struct,
pub ctx: *const fmpz_mod_ctx_struct,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of fmpz_mod_poly_compose_mod_precomp_preinv_arg_t"]
[::std::mem::size_of::<fmpz_mod_poly_compose_mod_precomp_preinv_arg_t>() - 48usize];
["Alignment of fmpz_mod_poly_compose_mod_precomp_preinv_arg_t"]
[::std::mem::align_of::<fmpz_mod_poly_compose_mod_precomp_preinv_arg_t>() - 8usize];
["Offset of field: fmpz_mod_poly_compose_mod_precomp_preinv_arg_t::A"]
[::std::mem::offset_of!(fmpz_mod_poly_compose_mod_precomp_preinv_arg_t, A) - 0usize];
["Offset of field: fmpz_mod_poly_compose_mod_precomp_preinv_arg_t::res"]
[::std::mem::offset_of!(fmpz_mod_poly_compose_mod_precomp_preinv_arg_t, res) - 8usize];
["Offset of field: fmpz_mod_poly_compose_mod_precomp_preinv_arg_t::poly1"]
[::std::mem::offset_of!(fmpz_mod_poly_compose_mod_precomp_preinv_arg_t, poly1) - 16usize];
["Offset of field: fmpz_mod_poly_compose_mod_precomp_preinv_arg_t::poly3"]
[::std::mem::offset_of!(fmpz_mod_poly_compose_mod_precomp_preinv_arg_t, poly3) - 24usize];
["Offset of field: fmpz_mod_poly_compose_mod_precomp_preinv_arg_t::poly3inv"][::std::mem::offset_of!(
fmpz_mod_poly_compose_mod_precomp_preinv_arg_t,
poly3inv
) - 32usize];
["Offset of field: fmpz_mod_poly_compose_mod_precomp_preinv_arg_t::ctx"]
[::std::mem::offset_of!(fmpz_mod_poly_compose_mod_precomp_preinv_arg_t, ctx) - 40usize];
};
impl Default for fmpz_mod_poly_compose_mod_precomp_preinv_arg_t {
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()
}
}
}
#[repr(C)]
pub struct fmpz_mod_poly_radix_struct {
pub V: *mut fmpz,
pub W: *mut fmpz,
pub Rpow: *mut *mut fmpz,
pub Rinv: *mut *mut fmpz,
pub degR: slong,
pub k: slong,
pub invL: fmpz,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of fmpz_mod_poly_radix_struct"]
[::std::mem::size_of::<fmpz_mod_poly_radix_struct>() - 56usize];
["Alignment of fmpz_mod_poly_radix_struct"]
[::std::mem::align_of::<fmpz_mod_poly_radix_struct>() - 8usize];
["Offset of field: fmpz_mod_poly_radix_struct::V"]
[::std::mem::offset_of!(fmpz_mod_poly_radix_struct, V) - 0usize];
["Offset of field: fmpz_mod_poly_radix_struct::W"]
[::std::mem::offset_of!(fmpz_mod_poly_radix_struct, W) - 8usize];
["Offset of field: fmpz_mod_poly_radix_struct::Rpow"]
[::std::mem::offset_of!(fmpz_mod_poly_radix_struct, Rpow) - 16usize];
["Offset of field: fmpz_mod_poly_radix_struct::Rinv"]
[::std::mem::offset_of!(fmpz_mod_poly_radix_struct, Rinv) - 24usize];
["Offset of field: fmpz_mod_poly_radix_struct::degR"]
[::std::mem::offset_of!(fmpz_mod_poly_radix_struct, degR) - 32usize];
["Offset of field: fmpz_mod_poly_radix_struct::k"]
[::std::mem::offset_of!(fmpz_mod_poly_radix_struct, k) - 40usize];
["Offset of field: fmpz_mod_poly_radix_struct::invL"]
[::std::mem::offset_of!(fmpz_mod_poly_radix_struct, invL) - 48usize];
};
impl Default for fmpz_mod_poly_radix_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_mod_poly_radix_t = [fmpz_mod_poly_radix_struct; 1usize];
#[repr(C)]
pub struct fmpz_mod_berlekamp_massey_struct {
pub npoints: slong,
pub R0: fmpz_mod_poly_t,
pub R1: fmpz_mod_poly_t,
pub V0: fmpz_mod_poly_t,
pub V1: fmpz_mod_poly_t,
pub qt: fmpz_mod_poly_t,
pub rt: fmpz_mod_poly_t,
pub points: fmpz_mod_poly_t,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of fmpz_mod_berlekamp_massey_struct"]
[::std::mem::size_of::<fmpz_mod_berlekamp_massey_struct>() - 176usize];
["Alignment of fmpz_mod_berlekamp_massey_struct"]
[::std::mem::align_of::<fmpz_mod_berlekamp_massey_struct>() - 8usize];
["Offset of field: fmpz_mod_berlekamp_massey_struct::npoints"]
[::std::mem::offset_of!(fmpz_mod_berlekamp_massey_struct, npoints) - 0usize];
["Offset of field: fmpz_mod_berlekamp_massey_struct::R0"]
[::std::mem::offset_of!(fmpz_mod_berlekamp_massey_struct, R0) - 8usize];
["Offset of field: fmpz_mod_berlekamp_massey_struct::R1"]
[::std::mem::offset_of!(fmpz_mod_berlekamp_massey_struct, R1) - 32usize];
["Offset of field: fmpz_mod_berlekamp_massey_struct::V0"]
[::std::mem::offset_of!(fmpz_mod_berlekamp_massey_struct, V0) - 56usize];
["Offset of field: fmpz_mod_berlekamp_massey_struct::V1"]
[::std::mem::offset_of!(fmpz_mod_berlekamp_massey_struct, V1) - 80usize];
["Offset of field: fmpz_mod_berlekamp_massey_struct::qt"]
[::std::mem::offset_of!(fmpz_mod_berlekamp_massey_struct, qt) - 104usize];
["Offset of field: fmpz_mod_berlekamp_massey_struct::rt"]
[::std::mem::offset_of!(fmpz_mod_berlekamp_massey_struct, rt) - 128usize];
["Offset of field: fmpz_mod_berlekamp_massey_struct::points"]
[::std::mem::offset_of!(fmpz_mod_berlekamp_massey_struct, points) - 152usize];
};
impl Default for fmpz_mod_berlekamp_massey_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_mod_berlekamp_massey_t = [fmpz_mod_berlekamp_massey_struct; 1usize];
extern "C" {
#[link_name = "fmpz_mod_poly_init__extern"]
pub fn fmpz_mod_poly_init(
poly: *mut fmpz_mod_poly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_init2(
poly: *mut fmpz_mod_poly_struct,
alloc: slong,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_clear(
poly: *mut fmpz_mod_poly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_realloc(
poly: *mut fmpz_mod_poly_struct,
alloc: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_fit_length(poly: *mut fmpz_mod_poly_struct, len: slong);
#[link_name = "fmpz_mod_poly_fit_length__extern"]
pub fn fmpz_mod_poly_fit_length(
poly: *mut fmpz_mod_poly_struct,
len: slong,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
#[link_name = "_fmpz_mod_poly_normalise__extern"]
pub fn _fmpz_mod_poly_normalise(poly: *mut fmpz_mod_poly_struct);
pub fn _fmpz_mod_poly_set_length(poly: *mut fmpz_mod_poly_struct, len: slong);
pub fn fmpz_mod_poly_truncate(
poly: *mut fmpz_mod_poly_struct,
len: slong,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_set_trunc(
res: *mut fmpz_mod_poly_struct,
poly: *const fmpz_mod_poly_struct,
n: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_is_canonical(
A: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mod_poly_randtest(
f: *mut fmpz_mod_poly_struct,
state: *mut flint_rand_struct,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_randtest_irreducible(
f: *mut fmpz_mod_poly_struct,
state: *mut flint_rand_struct,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_randtest_not_zero(
f: *mut fmpz_mod_poly_struct,
state: *mut flint_rand_struct,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_randtest_monic(
f: *mut fmpz_mod_poly_struct,
state: *mut flint_rand_struct,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_randtest_monic_irreducible(
f: *mut fmpz_mod_poly_struct,
state: *mut flint_rand_struct,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_randtest_monic_primitive(
f: *mut fmpz_mod_poly_struct,
state: *mut flint_rand_struct,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_randtest_trinomial(
f: *mut fmpz_mod_poly_struct,
state: *mut flint_rand_struct,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_randtest_trinomial_irreducible(
f: *mut fmpz_mod_poly_struct,
state: *mut flint_rand_struct,
len: slong,
max_attempts: slong,
ctx: *const fmpz_mod_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mod_poly_randtest_pentomial(
f: *mut fmpz_mod_poly_struct,
state: *mut flint_rand_struct,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_randtest_pentomial_irreducible(
f: *mut fmpz_mod_poly_struct,
state: *mut flint_rand_struct,
len: slong,
max_attempts: slong,
ctx: *const fmpz_mod_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mod_poly_randtest_sparse_irreducible(
poly: *mut fmpz_mod_poly_struct,
state: *mut flint_rand_struct,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
#[link_name = "fmpz_mod_poly_length__extern"]
pub fn fmpz_mod_poly_length(
poly: *const fmpz_mod_poly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> slong;
#[link_name = "fmpz_mod_poly_degree__extern"]
pub fn fmpz_mod_poly_degree(
poly: *const fmpz_mod_poly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> slong;
#[link_name = "fmpz_mod_poly_lead__extern"]
pub fn fmpz_mod_poly_lead(
poly: *const fmpz_mod_poly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> *mut fmpz;
#[link_name = "fmpz_mod_poly_is_monic__extern"]
pub fn fmpz_mod_poly_is_monic(
f: *const fmpz_mod_poly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> libc::c_int;
#[link_name = "fmpz_mod_poly_is_one__extern"]
pub fn fmpz_mod_poly_is_one(
poly: *const fmpz_mod_poly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mod_poly_is_gen(
op: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mod_poly_is_unit(
op: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mod_poly_set(
poly1: *mut fmpz_mod_poly_struct,
poly2: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
#[link_name = "fmpz_mod_poly_swap__extern"]
pub fn fmpz_mod_poly_swap(
poly1: *mut fmpz_mod_poly_struct,
poly2: *mut fmpz_mod_poly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_reverse(res: *mut fmpz, poly: *const fmpz, len: slong, n: slong);
pub fn fmpz_mod_poly_reverse(
res: *mut fmpz_mod_poly_struct,
poly: *const fmpz_mod_poly_struct,
n: slong,
ctx: *const fmpz_mod_ctx_struct,
);
#[link_name = "fmpz_mod_poly_zero__extern"]
pub fn fmpz_mod_poly_zero(
poly: *mut fmpz_mod_poly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_one(poly: *mut fmpz_mod_poly_struct, ctx: *const fmpz_mod_ctx_struct);
pub fn fmpz_mod_poly_gen(poly: *mut fmpz_mod_poly_struct, ctx: *const fmpz_mod_ctx_struct);
pub fn fmpz_mod_poly_zero_coeffs(
poly: *mut fmpz_mod_poly_struct,
i: slong,
j: slong,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_deflation(
input: *const fmpz_mod_poly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> ulong;
pub fn fmpz_mod_poly_deflate(
result: *mut fmpz_mod_poly_struct,
input: *const fmpz_mod_poly_struct,
deflation: ulong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_inflate(
result: *mut fmpz_mod_poly_struct,
input: *const fmpz_mod_poly_struct,
inflation: ulong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_set_ui(
f: *mut fmpz_mod_poly_struct,
x: ulong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_set_nmod_poly(f: *mut fmpz_mod_poly_struct, g: *const nmod_poly_struct);
pub fn fmpz_mod_poly_set_fmpz(
poly: *mut fmpz_mod_poly_struct,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_set_fmpz_poly(
f: *mut fmpz_mod_poly_struct,
g: *const fmpz_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_get_nmod_poly(f: *mut nmod_poly_struct, g: *const fmpz_mod_poly_struct);
pub fn fmpz_mod_poly_get_fmpz_poly(
f: *mut fmpz_poly_struct,
g: *const fmpz_mod_poly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_equal(
poly1: *const fmpz_mod_poly_struct,
poly2: *const fmpz_mod_poly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mod_poly_equal_trunc(
poly1: *const fmpz_mod_poly_struct,
poly2: *const fmpz_mod_poly_struct,
n: slong,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mod_poly_is_zero(
poly: *const fmpz_mod_poly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mod_poly_set_coeff_fmpz(
poly: *mut fmpz_mod_poly_struct,
n: slong,
x: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_set_coeff_ui(
poly: *mut fmpz_mod_poly_struct,
n: slong,
x: ulong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_set_coeff_si(
poly: *mut fmpz_mod_poly_struct,
n: slong,
x: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_get_coeff_fmpz(
x: *mut fmpz,
poly: *const fmpz_mod_poly_struct,
n: slong,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_shift_left(res: *mut fmpz, poly: *const fmpz, len: slong, n: slong);
pub fn fmpz_mod_poly_shift_left(
f: *mut fmpz_mod_poly_struct,
g: *const fmpz_mod_poly_struct,
n: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_shift_right(res: *mut fmpz, poly: *const fmpz, len: slong, n: slong);
pub fn fmpz_mod_poly_shift_right(
f: *mut fmpz_mod_poly_struct,
g: *const fmpz_mod_poly_struct,
n: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_neg(
res: *mut fmpz,
poly: *const fmpz,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_neg(
res: *mut fmpz_mod_poly_struct,
poly: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_add(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_add(
res: *mut fmpz_mod_poly_struct,
poly1: *const fmpz_mod_poly_struct,
poly2: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_sub(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_sub(
res: *mut fmpz_mod_poly_struct,
poly1: *const fmpz_mod_poly_struct,
poly2: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_add_series(
res: *mut fmpz_mod_poly_struct,
poly1: *const fmpz_mod_poly_struct,
poly2: *const fmpz_mod_poly_struct,
n: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_sub_series(
res: *mut fmpz_mod_poly_struct,
poly1: *const fmpz_mod_poly_struct,
poly2: *const fmpz_mod_poly_struct,
n: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_scalar_mul_fmpz(
res: *mut fmpz,
poly: *const fmpz,
len: slong,
x: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_scalar_mul_ui(
res: *mut fmpz,
poly: *const fmpz,
len: slong,
x: ulong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_scalar_mul_fmpz(
res: *mut fmpz_mod_poly_struct,
poly: *const fmpz_mod_poly_struct,
x: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_scalar_mul_ui(
res: *mut fmpz_mod_poly_struct,
poly: *const fmpz_mod_poly_struct,
x: ulong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_scalar_addmul_fmpz(
A: *mut fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
x: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_scalar_div_fmpz(
res: *mut fmpz,
poly: *const fmpz,
len: slong,
x: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_scalar_div_fmpz(
res: *mut fmpz_mod_poly_struct,
poly: *const fmpz_mod_poly_struct,
x: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_mul(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_mul(
res: *mut fmpz_mod_poly_struct,
poly1: *const fmpz_mod_poly_struct,
poly2: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_mullow(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
n: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_mullow(
res: *mut fmpz_mod_poly_struct,
poly1: *const fmpz_mod_poly_struct,
poly2: *const fmpz_mod_poly_struct,
n: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_mulmid(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
nlo: slong,
nhi: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_mulmid(
res: *mut fmpz_mod_poly_struct,
poly1: *const fmpz_mod_poly_struct,
poly2: *const fmpz_mod_poly_struct,
nlo: slong,
nhi: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_sqr(
res: *mut fmpz,
poly: *const fmpz,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_mulhigh(
res: *mut fmpz_mod_poly_struct,
poly1: *const fmpz_mod_poly_struct,
poly2: *const fmpz_mod_poly_struct,
start: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_sqr(
res: *mut fmpz_mod_poly_struct,
poly: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_mulmod(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
f: *const fmpz,
lenf: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_mulmod(
res: *mut fmpz_mod_poly_struct,
poly1: *const fmpz_mod_poly_struct,
poly2: *const fmpz_mod_poly_struct,
f: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_mulmod_preinv(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
f: *const fmpz,
lenf: slong,
finv: *const fmpz,
lenfinv: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_mulmod_preinv(
res: *mut fmpz_mod_poly_struct,
poly1: *const fmpz_mod_poly_struct,
poly2: *const fmpz_mod_poly_struct,
f: *const fmpz_mod_poly_struct,
finv: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_pow(
rop: *mut fmpz,
op: *const fmpz,
len: slong,
e: ulong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_pow(
rop: *mut fmpz_mod_poly_struct,
op: *const fmpz_mod_poly_struct,
e: ulong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_pow_trunc(
res: *mut fmpz,
poly: *const fmpz,
e: ulong,
trunc: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_pow_trunc(
res: *mut fmpz_mod_poly_struct,
poly: *const fmpz_mod_poly_struct,
e: ulong,
trunc: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_pow_trunc_binexp(
res: *mut fmpz,
poly: *const fmpz,
e: ulong,
trunc: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_pow_trunc_binexp(
res: *mut fmpz_mod_poly_struct,
poly: *const fmpz_mod_poly_struct,
e: ulong,
trunc: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_powmod_ui_binexp(
res: *mut fmpz,
poly: *const fmpz,
e: ulong,
f: *const fmpz,
lenf: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_powmod_ui_binexp(
res: *mut fmpz_mod_poly_struct,
poly: *const fmpz_mod_poly_struct,
e: ulong,
f: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_powmod_ui_binexp_preinv(
res: *mut fmpz,
poly: *const fmpz,
e: ulong,
f: *const fmpz,
lenf: slong,
finv: *const fmpz,
lenfinv: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_powmod_ui_binexp_preinv(
res: *mut fmpz_mod_poly_struct,
poly: *const fmpz_mod_poly_struct,
e: ulong,
f: *const fmpz_mod_poly_struct,
finv: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_powmod_fmpz_binexp(
res: *mut fmpz,
poly: *const fmpz,
e: *const fmpz,
f: *const fmpz,
lenf: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_powmod_fmpz_binexp(
res: *mut fmpz_mod_poly_struct,
poly: *const fmpz_mod_poly_struct,
e: *const fmpz,
f: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_powmod_fmpz_binexp_preinv(
res: *mut fmpz,
poly: *const fmpz,
e: *const fmpz,
f: *const fmpz,
lenf: slong,
finv: *const fmpz,
lenfinv: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_powmod_fmpz_binexp_preinv(
res: *mut fmpz_mod_poly_struct,
poly: *const fmpz_mod_poly_struct,
e: *const fmpz,
f: *const fmpz_mod_poly_struct,
finv: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_powmod_x_fmpz_preinv(
res: *mut fmpz,
e: *const fmpz,
f: *const fmpz,
lenf: slong,
finv: *const fmpz,
lenfinv: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_powmod_x_fmpz_preinv(
res: *mut fmpz_mod_poly_struct,
e: *const fmpz,
f: *const fmpz_mod_poly_struct,
finv: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_powmod_linear_fmpz_preinv(
res: *mut fmpz_mod_poly_struct,
a: *const fmpz,
e: *const fmpz,
f: *const fmpz_mod_poly_struct,
finv: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_powers_mod_preinv_naive(
res: *mut *mut fmpz,
f: *const fmpz,
flen: slong,
n: slong,
g: *const fmpz,
glen: slong,
ginv: *const fmpz,
ginvlen: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_powers_mod_naive(
res: *mut fmpz_mod_poly_struct,
f: *const fmpz_mod_poly_struct,
n: slong,
g: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_powers_mod_preinv_threaded_pool(
res: *mut *mut fmpz,
f: *const fmpz,
flen: slong,
n: slong,
g: *const fmpz,
glen: slong,
ginv: *const fmpz,
ginvlen: slong,
ctx: *const fmpz_mod_ctx_struct,
threads: *mut thread_pool_handle,
num_threads: slong,
);
pub fn fmpz_mod_poly_powers_mod_bsgs(
res: *mut fmpz_mod_poly_struct,
f: *const fmpz_mod_poly_struct,
n: slong,
g: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_frobenius_powers_2exp_precomp(
pow: *mut fmpz_mod_poly_frobenius_powers_2exp_struct,
f: *const fmpz_mod_poly_struct,
finv: *const fmpz_mod_poly_struct,
m: ulong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_frobenius_powers_2exp_clear(
pow: *mut fmpz_mod_poly_frobenius_powers_2exp_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_frobenius_power(
res: *mut fmpz_mod_poly_struct,
pow: *mut fmpz_mod_poly_frobenius_powers_2exp_struct,
f: *const fmpz_mod_poly_struct,
m: ulong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_frobenius_powers_precomp(
pow: *mut fmpz_mod_poly_frobenius_powers_struct,
f: *const fmpz_mod_poly_struct,
finv: *const fmpz_mod_poly_struct,
m: ulong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_frobenius_powers_clear(
pow: *mut fmpz_mod_poly_frobenius_powers_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_divrem_basecase(
Q: *mut fmpz,
R: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
invB: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_divrem_basecase(
Q: *mut fmpz_mod_poly_struct,
R: *mut fmpz_mod_poly_struct,
A: *const fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_div_newton_n_preinv(
Q: *mut fmpz,
A: *const fmpz,
lenA: slong,
UNUSED_B: *const fmpz,
lenB: slong,
Binv: *const fmpz,
lenBinv: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_div_newton_n_preinv(
Q: *mut fmpz_mod_poly_struct,
A: *const fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
Binv: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_divrem_newton_n_preinv(
Q: *mut fmpz,
R: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
Binv: *const fmpz,
lenBinv: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_divrem_newton_n_preinv(
Q: *mut fmpz_mod_poly_struct,
R: *mut fmpz_mod_poly_struct,
A: *const fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
Binv: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_remove(
f: *mut fmpz_mod_poly_struct,
p: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> ulong;
pub fn _fmpz_mod_poly_rem_basecase(
R: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
invB: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_rem_basecase(
R: *mut fmpz_mod_poly_struct,
A: *const fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_divrem(
Q: *mut fmpz,
R: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
invB: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_divrem(
Q: *mut fmpz_mod_poly_struct,
R: *mut fmpz_mod_poly_struct,
A: *const fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_div(
Q: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
invB: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_div(
Q: *mut fmpz_mod_poly_struct,
A: *const fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_divrem_f(
f: *mut fmpz,
Q: *mut fmpz,
R: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_divrem_f(
f: *mut fmpz,
Q: *mut fmpz_mod_poly_struct,
R: *mut fmpz_mod_poly_struct,
A: *const fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_rem(
R: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
invB: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_rem(
R: *mut fmpz_mod_poly_struct,
A: *const fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_rem_f(
f: *mut fmpz,
R: *mut fmpz_mod_poly_struct,
A: *const fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_divides_classical(
Q: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
ctx: *const fmpz_mod_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mod_poly_divides_classical(
Q: *mut fmpz_mod_poly_struct,
A: *const fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> libc::c_int;
pub fn _fmpz_mod_poly_divides(
Q: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
ctx: *const fmpz_mod_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mod_poly_divides(
Q: *mut fmpz_mod_poly_struct,
A: *const fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> libc::c_int;
pub fn _fmpz_mod_poly_inv_series(
Qinv: *mut fmpz,
Q: *const fmpz,
Qlen: slong,
n: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_inv_series(
Qinv: *mut fmpz_mod_poly_struct,
Q: *const fmpz_mod_poly_struct,
n: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_inv_series_f(
f: *mut fmpz,
Qinv: *mut fmpz_mod_poly_struct,
Q: *const fmpz_mod_poly_struct,
n: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_div_series(
Q: *mut fmpz,
A: *const fmpz,
Alen: slong,
B: *const fmpz,
Blen: slong,
n: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_div_series(
Q: *mut fmpz_mod_poly_struct,
A: *const fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
n: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_make_monic(
res: *mut fmpz_mod_poly_struct,
poly: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_make_monic_f(
f: *mut fmpz,
res: *mut fmpz_mod_poly_struct,
poly: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_gcd(
G: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
ctx: *const fmpz_mod_ctx_struct,
) -> slong;
pub fn fmpz_mod_poly_gcd(
G: *mut fmpz_mod_poly_struct,
A: *const fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_gcd_euclidean_f(
f: *mut fmpz,
G: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
ctx: *const fmpz_mod_ctx_struct,
) -> slong;
pub fn fmpz_mod_poly_gcd_euclidean_f(
f: *mut fmpz,
G: *mut fmpz_mod_poly_struct,
A: *const fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
#[link_name = "_fmpz_mod_poly_gcd_f__extern"]
pub fn _fmpz_mod_poly_gcd_f(
f: *mut fmpz,
G: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
ctx: *const fmpz_mod_ctx_struct,
) -> slong;
#[link_name = "fmpz_mod_poly_gcd_f__extern"]
pub fn fmpz_mod_poly_gcd_f(
f: *mut fmpz,
G: *mut fmpz_mod_poly_struct,
A: *const fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_hgcd(
M: *mut *mut fmpz,
lenM: *mut slong,
A: *mut fmpz,
lenA: *mut slong,
B: *mut fmpz,
lenB: *mut slong,
a: *const fmpz,
lena: slong,
b: *const fmpz,
lenb: slong,
ctx: *const fmpz_mod_ctx_struct,
) -> slong;
pub fn _fmpz_mod_poly_xgcd_euclidean_f(
f: *mut fmpz,
G: *mut fmpz,
S: *mut fmpz,
T: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
invB: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
) -> slong;
pub fn fmpz_mod_poly_xgcd_euclidean_f(
f: *mut fmpz,
G: *mut fmpz_mod_poly_struct,
S: *mut fmpz_mod_poly_struct,
T: *mut fmpz_mod_poly_struct,
A: *const fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_xgcd(
G: *mut fmpz,
S: *mut fmpz,
T: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
UNUSED_invB: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
) -> slong;
pub fn fmpz_mod_poly_xgcd(
G: *mut fmpz_mod_poly_struct,
S: *mut fmpz_mod_poly_struct,
T: *mut fmpz_mod_poly_struct,
A: *const fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
#[link_name = "_fmpz_mod_poly_xgcd_f__extern"]
pub fn _fmpz_mod_poly_xgcd_f(
f: *mut fmpz,
G: *mut fmpz,
S: *mut fmpz,
T: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
invB: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
) -> slong;
#[link_name = "fmpz_mod_poly_xgcd_f__extern"]
pub fn fmpz_mod_poly_xgcd_f(
f: *mut fmpz,
G: *mut fmpz_mod_poly_struct,
S: *mut fmpz_mod_poly_struct,
T: *mut fmpz_mod_poly_struct,
A: *const fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_gcdinv_euclidean_f(
f: *mut fmpz,
G: *mut fmpz,
S: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
UNUSED_invA: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
) -> slong;
pub fn fmpz_mod_poly_gcdinv_euclidean_f(
f: *mut fmpz,
G: *mut fmpz_mod_poly_struct,
S: *mut fmpz_mod_poly_struct,
A: *const fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_gcdinv_euclidean(
G: *mut fmpz,
S: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
invA: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
) -> slong;
pub fn fmpz_mod_poly_gcdinv_euclidean(
G: *mut fmpz_mod_poly_struct,
S: *mut fmpz_mod_poly_struct,
A: *const fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_gcdinv(
G: *mut fmpz,
S: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
ctx: *const fmpz_mod_ctx_struct,
) -> slong;
pub fn fmpz_mod_poly_gcdinv(
G: *mut fmpz_mod_poly_struct,
S: *mut fmpz_mod_poly_struct,
A: *const fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_gcdinv_f(
f: *mut fmpz,
G: *mut fmpz,
S: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
ctx: *const fmpz_mod_ctx_struct,
) -> slong;
pub fn fmpz_mod_poly_gcdinv_f(
f: *mut fmpz,
G: *mut fmpz_mod_poly_struct,
S: *mut fmpz_mod_poly_struct,
A: *const fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_invmod(
A: *mut fmpz,
B: *const fmpz,
lenB: slong,
P: *const fmpz,
lenP: slong,
ctx: *const fmpz_mod_ctx_struct,
) -> libc::c_int;
pub fn _fmpz_mod_poly_invmod_f(
f: *mut fmpz,
A: *mut fmpz,
B: *const fmpz,
lenB: slong,
P: *const fmpz,
lenP: slong,
ctx: *const fmpz_mod_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mod_poly_invmod(
A: *mut fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
P: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mod_poly_invmod_f(
f: *mut fmpz,
A: *mut fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
P: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> libc::c_int;
pub fn _fmpz_mod_poly_invsqrt_series(
g: *mut fmpz,
h: *const fmpz,
hlen: slong,
n: slong,
mod_: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_invsqrt_series(
g: *mut fmpz_mod_poly_struct,
h: *const fmpz_mod_poly_struct,
n: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_sqrt_series(
g: *mut fmpz,
h: *const fmpz,
hlen: slong,
n: slong,
mod_: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_sqrt_series(
g: *mut fmpz_mod_poly_struct,
h: *const fmpz_mod_poly_struct,
n: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_sqrt(
s: *mut fmpz,
p: *const fmpz,
len: slong,
mod_: *const fmpz_mod_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mod_poly_sqrt(
b: *mut fmpz_mod_poly_struct,
a: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> libc::c_int;
pub fn _fmpz_mod_poly_minpoly_bm(
poly: *mut fmpz,
seq: *const fmpz,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
) -> slong;
pub fn fmpz_mod_poly_minpoly_bm(
poly: *mut fmpz_mod_poly_struct,
seq: *const fmpz,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_minpoly_hgcd(
poly: *mut fmpz,
seq: *const fmpz,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
) -> slong;
pub fn fmpz_mod_poly_minpoly_hgcd(
poly: *mut fmpz_mod_poly_struct,
seq: *const fmpz,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_minpoly(
poly: *mut fmpz,
seq: *const fmpz,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
) -> slong;
pub fn fmpz_mod_poly_minpoly(
poly: *mut fmpz_mod_poly_struct,
seq: *const fmpz,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_resultant(
res: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_resultant(
res: *mut fmpz,
A: *const fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_discriminant(
d: *mut fmpz,
poly: *const fmpz,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_discriminant(
d: *mut fmpz,
f: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_derivative(
res: *mut fmpz,
poly: *const fmpz,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_derivative(
res: *mut fmpz_mod_poly_struct,
poly: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_evaluate_fmpz(
res: *mut fmpz,
poly: *const fmpz,
len: slong,
a: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_evaluate_fmpz(
res: *mut fmpz,
poly: *const fmpz_mod_poly_struct,
a: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_tree_alloc(len: slong) -> *mut *mut fmpz_poly_struct;
pub fn _fmpz_mod_poly_tree_free(tree: *mut *mut fmpz_poly_struct, len: slong);
pub fn _fmpz_mod_poly_tree_build(
tree: *mut *mut fmpz_poly_struct,
roots: *const fmpz,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_evaluate_fmpz_vec_iter(
ys: *mut fmpz,
coeffs: *const fmpz,
len: slong,
xs: *const fmpz,
n: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_evaluate_fmpz_vec_iter(
ys: *mut fmpz,
poly: *const fmpz_mod_poly_struct,
xs: *const fmpz,
n: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_evaluate_fmpz_vec_fast_precomp(
vs: *mut fmpz,
poly: *const fmpz,
plen: slong,
tree: *const *mut fmpz_poly_struct,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_evaluate_fmpz_vec_fast(
ys: *mut fmpz,
poly: *const fmpz,
plen: slong,
xs: *const fmpz,
n: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_evaluate_fmpz_vec_fast(
ys: *mut fmpz,
poly: *const fmpz_mod_poly_struct,
xs: *const fmpz,
n: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_evaluate_fmpz_vec(
ys: *mut fmpz,
coeffs: *const fmpz,
len: slong,
xs: *const fmpz,
n: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_evaluate_fmpz_vec(
ys: *mut fmpz,
poly: *const fmpz_mod_poly_struct,
xs: *const fmpz,
n: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_compose(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_compose(
res: *mut fmpz_mod_poly_struct,
poly1: *const fmpz_mod_poly_struct,
poly2: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_compose_mod(
res: *mut fmpz,
f: *const fmpz,
lenf: slong,
g: *const fmpz,
h: *const fmpz,
lenh: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_compose_mod(
res: *mut fmpz_mod_poly_struct,
poly1: *const fmpz_mod_poly_struct,
poly2: *const fmpz_mod_poly_struct,
poly3: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_compose_mod_brent_kung(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
poly3: *const fmpz,
len3: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_compose_mod_brent_kung(
res: *mut fmpz_mod_poly_struct,
poly1: *const fmpz_mod_poly_struct,
poly2: *const fmpz_mod_poly_struct,
poly3: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_reduce_matrix_mod_poly(
A: *mut fmpz_mat_struct,
B: *const fmpz_mat_struct,
f: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_precompute_matrix(
A: *mut fmpz_mat_struct,
poly1: *const fmpz,
poly2: *const fmpz,
len2: slong,
poly2inv: *const fmpz,
len2inv: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_precompute_matrix_worker(arg_ptr: *mut libc::c_void);
pub fn fmpz_mod_poly_precompute_matrix(
A: *mut fmpz_mat_struct,
poly1: *const fmpz_mod_poly_struct,
poly2: *const fmpz_mod_poly_struct,
poly2inv: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_compose_mod_brent_kung_precomp_preinv(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
A: *const fmpz_mat_struct,
poly3: *const fmpz,
len3: slong,
poly3inv: *const fmpz,
len3inv: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_compose_mod_brent_kung_precomp_preinv_worker(arg_ptr: *mut libc::c_void);
pub fn fmpz_mod_poly_compose_mod_brent_kung_precomp_preinv(
res: *mut fmpz_mod_poly_struct,
poly1: *const fmpz_mod_poly_struct,
A: *const fmpz_mat_struct,
poly3: *const fmpz_mod_poly_struct,
poly3inv: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_compose_mod_brent_kung_preinv(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
poly3: *const fmpz,
len3: slong,
poly3inv: *const fmpz,
len3inv: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_compose_mod_brent_kung_preinv(
res: *mut fmpz_mod_poly_struct,
poly1: *const fmpz_mod_poly_struct,
poly2: *const fmpz_mod_poly_struct,
poly3: *const fmpz_mod_poly_struct,
poly3inv: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_compose_mod_horner(
res: *mut fmpz,
f: *const fmpz,
lenf: slong,
g: *const fmpz,
h: *const fmpz,
lenh: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_compose_mod_horner(
res: *mut fmpz_mod_poly_struct,
poly1: *const fmpz_mod_poly_struct,
poly2: *const fmpz_mod_poly_struct,
poly3: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_compose_mod_brent_kung_vec_preinv(
res: *mut fmpz_mod_poly_struct,
polys: *const fmpz_mod_poly_struct,
UNUSED_lenpolys: slong,
l: slong,
g: *const fmpz,
glen: slong,
poly: *const fmpz,
len: slong,
polyinv: *const fmpz,
leninv: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_compose_mod_brent_kung_vec_preinv(
res: *mut fmpz_mod_poly_struct,
polys: *const fmpz_mod_poly_struct,
len1: slong,
n: slong,
g: *const fmpz_mod_poly_struct,
poly: *const fmpz_mod_poly_struct,
polyinv: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_compose_mod_brent_kung_vec_preinv_threaded_pool(
res: *mut fmpz_mod_poly_struct,
polys: *const fmpz_mod_poly_struct,
UNUSED_lenpolys: slong,
l: slong,
g: *const fmpz,
glen: slong,
poly: *const fmpz,
len: slong,
polyinv: *const fmpz,
leninv: slong,
ctx: *const fmpz_mod_ctx_struct,
threads: *mut thread_pool_handle,
num_threads: slong,
);
pub fn fmpz_mod_poly_compose_mod_brent_kung_vec_preinv_threaded_pool(
res: *mut fmpz_mod_poly_struct,
polys: *const fmpz_mod_poly_struct,
len1: slong,
n: slong,
g: *const fmpz_mod_poly_struct,
poly: *const fmpz_mod_poly_struct,
polyinv: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
threads: *mut thread_pool_handle,
num_threads: slong,
);
pub fn fmpz_mod_poly_compose_mod_brent_kung_vec_preinv_threaded(
res: *mut fmpz_mod_poly_struct,
polys: *const fmpz_mod_poly_struct,
len1: slong,
n: slong,
g: *const fmpz_mod_poly_struct,
poly: *const fmpz_mod_poly_struct,
polyinv: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_hamming_weight(
A: *const fmpz_mod_poly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> slong;
pub fn _fmpz_mod_poly_radix_init(
Rpow: *mut *mut fmpz,
Rinv: *mut *mut fmpz,
R: *const fmpz,
lenR: slong,
k: slong,
invL: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_radix_init(
D: *mut fmpz_mod_poly_radix_struct,
R: *const fmpz_mod_poly_struct,
degF: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_radix_clear(D: *mut fmpz_mod_poly_radix_struct);
pub fn _fmpz_mod_poly_radix(
B: *mut *mut fmpz,
F: *const fmpz,
Rpow: *mut *mut fmpz,
Rinv: *mut *mut fmpz,
degR: slong,
k: slong,
i: slong,
W: *mut fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_radix(
B: *mut *mut fmpz_mod_poly_struct,
F: *const fmpz_mod_poly_struct,
D: *const fmpz_mod_poly_radix_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_get_str(
poly: *const fmpz_mod_poly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> *mut libc::c_char;
pub fn fmpz_mod_poly_get_str_pretty(
poly: *const fmpz_mod_poly_struct,
x: *const libc::c_char,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> *mut libc::c_char;
pub fn _fmpz_mod_poly_fprint(
file: *mut FILE,
poly: *const fmpz,
len: slong,
p: *const fmpz,
) -> libc::c_int;
pub fn fmpz_mod_poly_fprint(
file: *mut FILE,
poly: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mod_poly_fprint_pretty(
file: *mut FILE,
poly: *const fmpz_mod_poly_struct,
x: *const libc::c_char,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mod_poly_fread(
file: *mut FILE,
poly: *mut fmpz_mod_poly_struct,
ctx: *mut fmpz_mod_ctx_struct,
) -> libc::c_int;
pub fn _fmpz_mod_poly_print(poly: *const fmpz, len: slong, p: *const fmpz) -> libc::c_int;
pub fn fmpz_mod_poly_print(
poly: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> libc::c_int;
pub fn fmpz_mod_poly_print_pretty(
poly: *const fmpz_mod_poly_struct,
x: *const libc::c_char,
ctx: *const fmpz_mod_ctx_struct,
) -> libc::c_int;
pub fn _fmpz_mod_poly_product_roots_fmpz_vec(
poly: *mut fmpz,
xs: *const fmpz,
n: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_product_roots_fmpz_vec(
poly: *mut fmpz_mod_poly_struct,
xs: *const fmpz,
n: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_find_distinct_nonzero_roots(
roots: *mut fmpz,
P: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> libc::c_int;
pub fn _fmpz_mod_poly_split_rabin(
a: *mut fmpz_mod_poly_struct,
b: *mut fmpz_mod_poly_struct,
f: *const fmpz_mod_poly_struct,
halfp: *const fmpz,
t: *mut fmpz_mod_poly_struct,
t2: *mut fmpz_mod_poly_struct,
randstate: *mut flint_rand_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_mat_charpoly(
p: *mut fmpz,
M: *const fmpz_mod_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_charpoly(
p: *mut fmpz_mod_poly_struct,
M: *const fmpz_mod_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_minpoly(
p: *mut fmpz_mod_poly_struct,
M: *const fmpz_mod_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_berlekamp_massey_init(
B: *mut fmpz_mod_berlekamp_massey_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_berlekamp_massey_start_over(
B: *mut fmpz_mod_berlekamp_massey_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_berlekamp_massey_clear(
B: *mut fmpz_mod_berlekamp_massey_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_berlekamp_massey_print(
B: *const fmpz_mod_berlekamp_massey_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_berlekamp_massey_add_points(
B: *mut fmpz_mod_berlekamp_massey_struct,
a: *const fmpz,
count: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_berlekamp_massey_add_zeros(
B: *mut fmpz_mod_berlekamp_massey_struct,
count: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_berlekamp_massey_add_point(
B: *mut fmpz_mod_berlekamp_massey_struct,
a: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_berlekamp_massey_add_point_ui(
B: *mut fmpz_mod_berlekamp_massey_struct,
a: ulong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_berlekamp_massey_reduce(
B: *mut fmpz_mod_berlekamp_massey_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> libc::c_int;
#[link_name = "fmpz_mod_berlekamp_massey_points__extern"]
pub fn fmpz_mod_berlekamp_massey_points(
B: *const fmpz_mod_berlekamp_massey_struct,
) -> *const fmpz;
#[link_name = "fmpz_mod_berlekamp_massey_point_count__extern"]
pub fn fmpz_mod_berlekamp_massey_point_count(
B: *const fmpz_mod_berlekamp_massey_struct,
) -> slong;
#[link_name = "fmpz_mod_berlekamp_massey_V_poly__extern"]
pub fn fmpz_mod_berlekamp_massey_V_poly(
B: *const fmpz_mod_berlekamp_massey_struct,
) -> *const fmpz_mod_poly_struct;
#[link_name = "fmpz_mod_berlekamp_massey_R_poly__extern"]
pub fn fmpz_mod_berlekamp_massey_R_poly(
B: *const fmpz_mod_berlekamp_massey_struct,
) -> *const fmpz_mod_poly_struct;
pub fn fmpz_mod_poly_add_si(
res: *mut fmpz_mod_poly_struct,
poly: *const fmpz_mod_poly_struct,
c: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_sub_si(
res: *mut fmpz_mod_poly_struct,
poly: *const fmpz_mod_poly_struct,
c: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_si_sub(
res: *mut fmpz_mod_poly_struct,
c: slong,
poly: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_add_fmpz(
res: *mut fmpz_mod_poly_struct,
poly: *const fmpz_mod_poly_struct,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_sub_fmpz(
res: *mut fmpz_mod_poly_struct,
poly: *const fmpz_mod_poly_struct,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_fmpz_sub(
res: *mut fmpz_mod_poly_struct,
c: *const fmpz,
poly: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
}