use crate::deps::*;
use crate::flint::*;
pub const FLINT_HAVE_NATIVE_mpn_2add_n_inplace: u32 = 1;
pub const FLINT_HAVE_NATIVE_mpn_addlsh1_n_ip1: u32 = 2;
pub const FLINT_MPN_MUL_FUNC_TAB_WIDTH: u32 = 17;
pub const FLINT_MPN_SQR_FUNC_TAB_WIDTH: u32 = 14;
pub const FLINT_MUL_USE_FUNC_TAB: u32 = 1;
pub const FLINT_MPN_MULLOW_FUNC_TAB_WIDTH: u32 = 8;
pub const FLINT_MPN_MULHIGH_FUNC_TAB_WIDTH: u32 = 13;
pub const FLINT_MPN_MULHIGH_BEST_TAB_N: u32 = 9;
pub const FLINT_MPN_SQRHIGH_FUNC_TAB_WIDTH: u32 = 8;
pub const FLINT_MPN_MULHIGH_NORMALISED_FUNC_TAB_WIDTH: u32 = 9;
pub const FLINT_MPN_SQRHIGH_NORMALISED_FUNC_TAB_WIDTH: u32 = 8;
pub const FLINT_HAVE_NATIVE_mpn_mullow_basecase: u32 = 1;
pub const FLINT_HAVE_NATIVE_mpn_mulhigh_basecase: u32 = 1;
pub const FLINT_HAVE_NATIVE_mpn_sqrhigh_basecase: u32 = 1;
pub const FLINT_MPN_MULLOW_MULDERS_CUTOFF: u32 = 50;
pub const FLINT_MPN_MULHIGH_MULDERS_CUTOFF: u32 = 40;
pub const FLINT_MPN_MULHIGH_MUL_CUTOFF: u32 = 2000;
pub const FLINT_MPN_MULHIGH_K_TAB_SIZE: u32 = 2048;
pub const FLINT_MPN_SQRHIGH_MULDERS_CUTOFF: u32 = 90;
pub const FLINT_MPN_SQRHIGH_SQR_CUTOFF: u32 = 2000;
pub const FLINT_MPN_SQRHIGH_K_TAB_SIZE: u32 = 2048;
pub const MPN_MULMOD_PRECOND_NONE: u32 = 0;
pub const MPN_MULMOD_PRECOND_SHOUP: u32 = 1;
pub const MPN_MULMOD_PRECOND_MATRIX: u32 = 2;
pub type flint_mpn_mul_func_t = ::std::option::Option<
unsafe extern "C" fn(arg1: mp_ptr, arg2: mp_srcptr, arg3: mp_srcptr) -> mp_limb_t,
>;
pub type flint_mpn_mul_func_n_t = ::std::option::Option<
unsafe extern "C" fn(
arg1: mp_ptr,
arg2: mp_srcptr,
arg3: mp_srcptr,
arg4: mp_size_t,
) -> mp_limb_t,
>;
pub type flint_mpn_sqr_func_t =
::std::option::Option<unsafe extern "C" fn(arg1: mp_ptr, arg2: mp_srcptr) -> mp_limb_t>;
#[repr(C)]
pub struct mp_limb_pair_t {
pub m1: mp_limb_t,
pub m2: mp_limb_t,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of mp_limb_pair_t"][::std::mem::size_of::<mp_limb_pair_t>() - 16usize];
["Alignment of mp_limb_pair_t"][::std::mem::align_of::<mp_limb_pair_t>() - 8usize];
["Offset of field: mp_limb_pair_t::m1"][::std::mem::offset_of!(mp_limb_pair_t, m1) - 0usize];
["Offset of field: mp_limb_pair_t::m2"][::std::mem::offset_of!(mp_limb_pair_t, m2) - 8usize];
};
impl Default for mp_limb_pair_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()
}
}
}
pub type flint_mpn_sqrhigh_normalised_func_t =
::std::option::Option<unsafe extern "C" fn(arg1: mp_ptr, arg2: mp_srcptr) -> mp_limb_pair_t>;
pub type flint_mpn_mulhigh_normalised_func_t = ::std::option::Option<
unsafe extern "C" fn(arg1: mp_ptr, arg2: mp_srcptr, arg3: mp_srcptr) -> mp_limb_pair_t,
>;
extern "C" {
#[link_name = "flint_mpn_zero__extern"]
pub fn flint_mpn_zero(xp: mp_ptr, n: mp_size_t);
#[link_name = "flint_mpn_copyi__extern"]
pub fn flint_mpn_copyi(xp: mp_ptr, yp: mp_srcptr, n: mp_size_t);
#[link_name = "flint_mpn_copyd__extern"]
pub fn flint_mpn_copyd(xp: mp_ptr, yp: mp_srcptr, n: mp_size_t);
#[link_name = "flint_mpn_store__extern"]
pub fn flint_mpn_store(xp: mp_ptr, n: mp_size_t, y: mp_limb_t);
#[link_name = "flint_mpn_zero_p__extern"]
pub fn flint_mpn_zero_p(x: mp_srcptr, xsize: mp_size_t) -> libc::c_int;
#[link_name = "flint_mpn_equal_p__extern"]
pub fn flint_mpn_equal_p(x: mp_srcptr, y: mp_srcptr, xsize: mp_size_t) -> libc::c_int;
#[link_name = "flint_mpn_negmod_n__extern"]
pub fn flint_mpn_negmod_n(res: mp_ptr, x: mp_srcptr, m: mp_srcptr, n: mp_size_t);
#[link_name = "flint_mpn_addmod_n__extern"]
pub fn flint_mpn_addmod_n(res: mp_ptr, x: mp_srcptr, y: mp_srcptr, m: mp_srcptr, n: mp_size_t);
#[link_name = "flint_mpn_submod_n__extern"]
pub fn flint_mpn_submod_n(res: mp_ptr, x: mp_srcptr, y: mp_srcptr, m: mp_srcptr, n: mp_size_t);
#[link_name = "flint_mpn_addmod_n_m__extern"]
pub fn flint_mpn_addmod_n_m(
res: mp_ptr,
x: mp_srcptr,
y: mp_srcptr,
yn: mp_size_t,
m: mp_srcptr,
n: mp_size_t,
);
#[link_name = "flint_mpn_submod_n_m__extern"]
pub fn flint_mpn_submod_n_m(
res: mp_ptr,
x: mp_srcptr,
y: mp_srcptr,
yn: mp_size_t,
m: mp_srcptr,
n: mp_size_t,
);
#[link_name = "flint_mpn_negmod_2__extern"]
pub fn flint_mpn_negmod_2(res: mp_ptr, x: mp_srcptr, m: mp_srcptr);
#[link_name = "flint_mpn_addmod_2__extern"]
pub fn flint_mpn_addmod_2(res: mp_ptr, x: mp_srcptr, y: mp_srcptr, m: mp_srcptr);
#[link_name = "_flint_mpn_addmod_2__extern"]
pub fn _flint_mpn_addmod_2(res: mp_ptr, x: mp_srcptr, y: mp_srcptr, m: mp_srcptr);
#[link_name = "flint_mpn_submod_2__extern"]
pub fn flint_mpn_submod_2(res: mp_ptr, x: mp_srcptr, y: mp_srcptr, m: mp_srcptr);
#[link_name = "flint_mpn_signed_sub_n__extern"]
pub fn flint_mpn_signed_sub_n(
res: mp_ptr,
x: mp_srcptr,
y: mp_srcptr,
n: mp_size_t,
) -> libc::c_int;
#[link_name = "flint_mpn_signed_sub_2__extern"]
pub fn flint_mpn_signed_sub_2(res: mp_ptr, x: mp_srcptr, y: mp_srcptr) -> libc::c_int;
#[link_name = "flint_mpn_signed_sub_3__extern"]
pub fn flint_mpn_signed_sub_3(res: mp_ptr, x: mp_srcptr, y: mp_srcptr) -> libc::c_int;
#[link_name = "flint_mpn_signed_sub_4__extern"]
pub fn flint_mpn_signed_sub_4(res: mp_ptr, x: mp_srcptr, y: mp_srcptr) -> libc::c_int;
#[link_name = "flint_mpn_signed_sub_5__extern"]
pub fn flint_mpn_signed_sub_5(res: mp_ptr, x: mp_srcptr, y: mp_srcptr) -> libc::c_int;
#[link_name = "flint_mpn_signed_sub_6__extern"]
pub fn flint_mpn_signed_sub_6(res: mp_ptr, x: mp_srcptr, y: mp_srcptr) -> libc::c_int;
#[link_name = "flint_mpn_signed_sub_7__extern"]
pub fn flint_mpn_signed_sub_7(res: mp_ptr, x: mp_srcptr, y: mp_srcptr) -> libc::c_int;
#[link_name = "flint_mpn_signed_sub_8__extern"]
pub fn flint_mpn_signed_sub_8(res: mp_ptr, x: mp_srcptr, y: mp_srcptr) -> libc::c_int;
#[link_name = "flint_mpn_signed_div2__extern"]
pub fn flint_mpn_signed_div2(res: mp_ptr, x: mp_srcptr, n: mp_size_t);
pub fn flint_mpn_mulmod_preinvn_2(
r: mp_ptr,
a: mp_srcptr,
b: mp_srcptr,
d: mp_srcptr,
dinv: mp_srcptr,
norm: ulong,
);
pub fn flint_mpn_get_str(
res: *mut libc::c_char,
base: libc::c_int,
x: mp_srcptr,
xn: mp_size_t,
negative: libc::c_int,
) -> *mut libc::c_char;
pub fn flint_mpn_2add_n_inplace(
arg1: mp_ptr,
arg2: mp_srcptr,
arg3: mp_srcptr,
arg4: mp_size_t,
) -> mp_limb_t;
#[link_name = "mpn_add_nc__extern"]
pub fn mpn_add_nc(
rp: mp_ptr,
up: mp_srcptr,
vp: mp_srcptr,
n: mp_size_t,
ci: mp_limb_t,
) -> mp_limb_t;
#[link_name = "mpn_sub_nc__extern"]
pub fn mpn_sub_nc(
rp: mp_ptr,
up: mp_srcptr,
vp: mp_srcptr,
n: mp_size_t,
ci: mp_limb_t,
) -> mp_limb_t;
pub fn flint_mpn_sumdiff_n(
s: mp_ptr,
d: mp_ptr,
x: mp_srcptr,
y: mp_srcptr,
n: mp_size_t,
) -> mp_limb_t;
pub fn __gmpn_addlsh1_n(
arg1: mp_ptr,
arg2: mp_srcptr,
arg3: mp_srcptr,
arg4: mp_size_t,
) -> mp_limb_t;
pub fn __gmpn_rsh1add_n(
arg1: mp_ptr,
arg2: mp_srcptr,
arg3: mp_srcptr,
arg4: mp_size_t,
) -> mp_limb_t;
pub fn __gmpn_rsh1sub_n(
arg1: mp_ptr,
arg2: mp_srcptr,
arg3: mp_srcptr,
arg4: mp_size_t,
) -> mp_limb_t;
pub static mut flint_mpn_mul_func_tab: [[flint_mpn_mul_func_t; 17usize]; 0usize];
pub static flint_mpn_mul_n_func_tab: [flint_mpn_mul_func_t; 0usize];
pub static flint_mpn_sqr_func_tab: [flint_mpn_sqr_func_t; 0usize];
pub fn flint_mpn_mul_toom22(
pp: mp_ptr,
ap: mp_srcptr,
an: mp_size_t,
bp: mp_srcptr,
bn: mp_size_t,
scratch: mp_ptr,
);
pub fn flint_mpn_mul_toom32(
pp: mp_ptr,
ap: mp_srcptr,
an: mp_size_t,
bp: mp_srcptr,
bn: mp_size_t,
scratch: mp_ptr,
);
pub fn _flint_mpn_mul(
r: mp_ptr,
x: mp_srcptr,
xn: mp_size_t,
y: mp_srcptr,
yn: mp_size_t,
) -> mp_limb_t;
pub fn _flint_mpn_mul_n(r: mp_ptr, x: mp_srcptr, y: mp_srcptr, n: mp_size_t);
pub fn _flint_mpn_sqr(r: mp_ptr, x: mp_srcptr, n: mp_size_t) -> mp_limb_t;
#[link_name = "flint_mpn_mul__extern"]
pub fn flint_mpn_mul(
r: mp_ptr,
x: mp_srcptr,
xn: mp_size_t,
y: mp_srcptr,
yn: mp_size_t,
) -> mp_limb_t;
#[link_name = "flint_mpn_mul_n__extern"]
pub fn flint_mpn_mul_n(r: mp_ptr, x: mp_srcptr, y: mp_srcptr, n: mp_size_t);
#[link_name = "flint_mpn_sqr__extern"]
pub fn flint_mpn_sqr(r: mp_ptr, x: mp_srcptr, n: mp_size_t) -> mp_limb_t;
pub static flint_mpn_mullow_func_tab: [flint_mpn_mul_func_t; 0usize];
pub static flint_mpn_mulhigh_func_tab: [flint_mpn_mul_func_t; 0usize];
pub static flint_mpn_sqrhigh_func_tab: [flint_mpn_sqr_func_t; 0usize];
pub static flint_mpn_mulhigh_normalised_func_tab: [flint_mpn_mulhigh_normalised_func_t; 0usize];
pub static flint_mpn_sqrhigh_normalised_func_tab: [flint_mpn_sqrhigh_normalised_func_t; 0usize];
pub static flint_mpn_mulhigh_k_tab: [libc::c_short; 2048usize];
pub fn flint_mpn_mullow_basecase(
res: mp_ptr,
u: mp_srcptr,
v: mp_srcptr,
n: mp_size_t,
) -> mp_limb_t;
pub fn _flint_mpn_mullow_n_mulders_recursive(
rp: mp_ptr,
np: mp_srcptr,
mp: mp_srcptr,
n: mp_size_t,
);
pub fn _flint_mpn_mullow_n_mulders(
res: mp_ptr,
u: mp_srcptr,
v: mp_srcptr,
n: mp_size_t,
) -> mp_limb_t;
pub fn _flint_mpn_mullow_n_mul(
res: mp_ptr,
u: mp_srcptr,
v: mp_srcptr,
n: mp_size_t,
) -> mp_limb_t;
pub fn _flint_mpn_mullow_n(res: mp_ptr, u: mp_srcptr, v: mp_srcptr, n: mp_size_t) -> mp_limb_t;
pub fn _flint_mpn_mulhigh_basecase(
res: mp_ptr,
u: mp_srcptr,
v: mp_srcptr,
n: mp_size_t,
) -> mp_limb_t;
pub fn _flint_mpn_mulhigh_n_mulders_recursive(
rp: mp_ptr,
np: mp_srcptr,
mp: mp_srcptr,
n: mp_size_t,
);
pub fn _flint_mpn_mulhigh_n_naive(
rp: mp_ptr,
up: mp_srcptr,
vp: mp_srcptr,
n: mp_size_t,
) -> mp_limb_t;
pub fn _flint_mpn_mulhigh_n_recursive(
r: mp_ptr,
x: mp_srcptr,
y: mp_srcptr,
n: mp_size_t,
) -> mp_limb_t;
pub fn _flint_mpn_mulhigh_n_mulders(
res: mp_ptr,
u: mp_srcptr,
v: mp_srcptr,
n: mp_size_t,
) -> mp_limb_t;
pub fn _flint_mpn_mulhigh_n_mul(
res: mp_ptr,
u: mp_srcptr,
v: mp_srcptr,
n: mp_size_t,
) -> mp_limb_t;
pub fn _flint_mpn_mulhigh_n(res: mp_ptr, u: mp_srcptr, v: mp_srcptr, n: mp_size_t)
-> mp_limb_t;
#[link_name = "_flint_mpn_mulhigh_n_basecase2__extern"]
pub fn _flint_mpn_mulhigh_n_basecase2(
rp: mp_ptr,
xp: mp_srcptr,
yp: mp_srcptr,
n: mp_size_t,
) -> mp_limb_t;
#[link_name = "flint_mpn_mullow_n__extern"]
pub fn flint_mpn_mullow_n(rp: mp_ptr, xp: mp_srcptr, yp: mp_srcptr, n: mp_size_t) -> mp_limb_t;
#[link_name = "flint_mpn_mulhigh_n__extern"]
pub fn flint_mpn_mulhigh_n(rp: mp_ptr, xp: mp_srcptr, yp: mp_srcptr, n: mp_size_t)
-> mp_limb_t;
#[link_name = "flint_mpn_mul_or_mullow_n__extern"]
pub fn flint_mpn_mul_or_mullow_n(rp: mp_ptr, xp: mp_srcptr, yp: mp_srcptr, n: mp_size_t);
#[link_name = "flint_mpn_mul_or_mulhigh_n__extern"]
pub fn flint_mpn_mul_or_mulhigh_n(rp: mp_ptr, xp: mp_srcptr, yp: mp_srcptr, n: mp_size_t);
pub fn _flint_mpn_sqrhigh_basecase_even(
arg1: mp_ptr,
arg2: mp_srcptr,
arg3: mp_size_t,
) -> mp_limb_t;
pub fn _flint_mpn_sqrhigh_basecase_odd(
arg1: mp_ptr,
arg2: mp_srcptr,
arg3: mp_size_t,
) -> mp_limb_t;
#[link_name = "_flint_mpn_sqrhigh_basecase__extern"]
pub fn _flint_mpn_sqrhigh_basecase(rp: mp_ptr, xp: mp_srcptr, n: mp_size_t) -> mp_limb_t;
pub fn _flint_mpn_sqrhigh_mulders_recursive(rp: mp_ptr, np: mp_srcptr, n: mp_size_t);
pub fn _flint_mpn_sqrhigh_mulders(res: mp_ptr, u: mp_srcptr, n: mp_size_t) -> mp_limb_t;
pub fn _flint_mpn_sqrhigh_sqr(res: mp_ptr, u: mp_srcptr, n: mp_size_t) -> mp_limb_t;
pub fn _flint_mpn_sqrhigh(res: mp_ptr, u: mp_srcptr, n: mp_size_t) -> mp_limb_t;
#[link_name = "flint_mpn_sqrhigh__extern"]
pub fn flint_mpn_sqrhigh(rp: mp_ptr, xp: mp_srcptr, n: mp_size_t) -> mp_limb_t;
pub fn _flint_mpn_mulhigh_normalised(
rp: mp_ptr,
xp: mp_srcptr,
yp: mp_srcptr,
n: mp_size_t,
) -> mp_limb_pair_t;
#[link_name = "flint_mpn_mulhigh_normalised__extern"]
pub fn flint_mpn_mulhigh_normalised(
rp: mp_ptr,
xp: mp_srcptr,
yp: mp_srcptr,
n: mp_size_t,
) -> mp_limb_pair_t;
pub fn _flint_mpn_sqrhigh_normalised(rp: mp_ptr, xp: mp_srcptr, n: mp_size_t)
-> mp_limb_pair_t;
#[link_name = "flint_mpn_sqrhigh_normalised__extern"]
pub fn flint_mpn_sqrhigh_normalised(rp: mp_ptr, xp: mp_srcptr, n: mp_size_t) -> mp_limb_pair_t;
pub fn flint_mpn_preinv1(d: mp_limb_t, d2: mp_limb_t) -> mp_limb_t;
pub fn flint_mpn_preinvn(dinv: mp_ptr, d: mp_srcptr, n: mp_size_t);
#[link_name = "flint_mpn_divisible_1_odd__extern"]
pub fn flint_mpn_divisible_1_odd(x: mp_srcptr, xsize: mp_size_t, d: mp_limb_t) -> libc::c_int;
#[link_name = "mpn_tdiv_q__extern"]
pub fn mpn_tdiv_q(qp: mp_ptr, np: mp_srcptr, nn: mp_size_t, dp: mp_srcptr, dn: mp_size_t);
pub fn flint_mpn_divides(
q: mp_ptr,
ap: mp_srcptr,
an: mp_size_t,
bp: mp_srcptr,
bn: mp_size_t,
scr: mp_ptr,
) -> libc::c_int;
pub fn flint_mpn_mod_preinvn(
r: mp_ptr,
a: mp_srcptr,
m: mp_size_t,
d: mp_srcptr,
n: mp_size_t,
dinv: mp_srcptr,
);
pub fn flint_mpn_divrem_preinv1(
q: mp_ptr,
a: mp_ptr,
m: mp_size_t,
b: mp_srcptr,
n: mp_size_t,
dinv: mp_limb_t,
) -> mp_limb_t;
pub fn flint_mpn_divrem_preinvn(
q: mp_ptr,
r: mp_ptr,
a: mp_srcptr,
m: mp_size_t,
d: mp_srcptr,
n: mp_size_t,
dinv: mp_srcptr,
) -> mp_limb_t;
pub fn flint_mpn_divrem_1_preinv(
qp: mp_ptr,
up: mp_srcptr,
n: mp_size_t,
d: mp_limb_t,
dinv: mp_limb_t,
norm: libc::c_uint,
) -> mp_limb_t;
pub fn flint_mpn_divrem_2_1_preinv_norm(
qp: mp_ptr,
up: mp_srcptr,
d: mp_limb_t,
dinv: mp_limb_t,
) -> mp_limb_t;
pub fn flint_mpn_divrem_2_1_preinv_unnorm(
qp: mp_ptr,
up: mp_srcptr,
d: mp_limb_t,
dinv: mp_limb_t,
norm: libc::c_uint,
) -> mp_limb_t;
pub fn flint_mpn_divrem_3_1_preinv_norm(
qp: mp_ptr,
up: mp_srcptr,
d: mp_limb_t,
dinv: mp_limb_t,
) -> mp_limb_t;
pub fn flint_mpn_divrem_3_1_preinv_unnorm(
qp: mp_ptr,
up: mp_srcptr,
d: mp_limb_t,
dinv: mp_limb_t,
norm: libc::c_uint,
) -> mp_limb_t;
pub fn flint_mpn_fmms1(
y: mp_ptr,
a1: mp_limb_t,
x1: mp_srcptr,
a2: mp_limb_t,
x2: mp_srcptr,
n: mp_size_t,
) -> mp_size_t;
pub fn flint_mpn_debug(x: mp_srcptr, xsize: mp_size_t);
pub fn flint_mpn_remove_2exp(
x: mp_ptr,
xsize: mp_size_t,
bits: *mut flint_bitcnt_t,
) -> mp_size_t;
pub fn flint_mpn_remove_power_ascending(
x: mp_ptr,
xsize: mp_size_t,
p: mp_ptr,
psize: mp_size_t,
exp: *mut ulong,
) -> mp_size_t;
pub fn flint_mpn_factor_trial(
x: mp_srcptr,
xsize: mp_size_t,
start: slong,
stop: slong,
) -> libc::c_int;
pub fn flint_mpn_factor_trial_tree(
factors: *mut slong,
x: mp_srcptr,
xsize: mp_size_t,
num_primes: slong,
) -> libc::c_int;
pub fn flint_mpn_gcd_full2(
gp: mp_ptr,
ap: mp_srcptr,
an: mp_size_t,
bp: mp_srcptr,
bn: mp_size_t,
scr: mp_ptr,
) -> mp_size_t;
pub fn flint_mpn_gcd_full(
gp: mp_ptr,
ap: mp_srcptr,
an: mp_size_t,
bp: mp_srcptr,
bn: mp_size_t,
) -> mp_size_t;
pub fn flint_mpn_mulmod_preinv1(
r: mp_ptr,
a: mp_srcptr,
b: mp_srcptr,
n: mp_size_t,
d: mp_srcptr,
dinv: mp_limb_t,
norm: ulong,
);
pub fn flint_mpn_mulmod_preinvn(
r: mp_ptr,
a: mp_srcptr,
b: mp_srcptr,
n: mp_size_t,
d: mp_srcptr,
dinv: mp_srcptr,
norm: ulong,
);
pub fn flint_mpn_mulmod_want_precond(n: mp_size_t, num: slong, norm: ulong) -> libc::c_int;
pub fn flint_mpn_mulmod_precond_matrix_precompute(
apre: mp_ptr,
a: mp_srcptr,
n: mp_size_t,
d: mp_srcptr,
dinv: mp_srcptr,
norm: ulong,
);
pub fn flint_mpn_mulmod_precond_matrix_alloc(n: mp_size_t) -> mp_size_t;
pub fn flint_mpn_mulmod_precond_matrix(
rp: mp_ptr,
apre: mp_srcptr,
b: mp_srcptr,
n: mp_size_t,
d: mp_srcptr,
dinv: mp_srcptr,
norm: ulong,
);
pub fn flint_mpn_mulmod_precond_shoup_precompute(
apre: mp_ptr,
a: mp_srcptr,
n: mp_size_t,
dnormed: mp_srcptr,
dinv: mp_srcptr,
norm: ulong,
);
pub fn flint_mpn_mulmod_precond_shoup(
res: mp_ptr,
a: mp_srcptr,
apre: mp_srcptr,
b: mp_srcptr,
n: mp_size_t,
d: mp_srcptr,
norm: ulong,
);
pub fn flint_mpn_fmmamod_preinvn(
r: mp_ptr,
a: mp_srcptr,
b: mp_srcptr,
e: mp_srcptr,
f: mp_srcptr,
n: mp_size_t,
d: mp_srcptr,
dinv: mp_srcptr,
norm: ulong,
);
pub fn flint_mpn_fmmamod_preinvn_2(
r: mp_ptr,
a: mp_srcptr,
b: mp_srcptr,
e: mp_srcptr,
f: mp_srcptr,
d: mp_srcptr,
dinv: mp_srcptr,
norm: ulong,
);
pub fn flint_mpn_fmmamod_precond_matrix(
rp: mp_ptr,
apre1: mp_srcptr,
b1: mp_srcptr,
apre2: mp_srcptr,
b2: mp_srcptr,
n: mp_size_t,
d: mp_srcptr,
dinv: mp_srcptr,
norm: ulong,
);
pub fn flint_mpn_mulmod_2expp1_basecase(
xp: mp_ptr,
yp: mp_srcptr,
zp: mp_srcptr,
c: libc::c_int,
b: flint_bitcnt_t,
tp: mp_ptr,
) -> libc::c_int;
pub fn flint_mpn_get_d(
ptr: mp_srcptr,
size: mp_size_t,
sign: mp_size_t,
exp: libc::c_long,
) -> f64;
pub fn flint_mpn_rrandom(rp: mp_ptr, state: *mut flint_rand_struct, n: mp_size_t);
pub fn flint_mpn_rrandomb(rp: mp_ptr, state: *mut flint_rand_struct, n: flint_bitcnt_t);
pub fn flint_mpn_urandomb(rp: mp_ptr, state: *mut flint_rand_struct, n: flint_bitcnt_t);
pub fn flint_mpn_urandomm(
rp: mp_ptr,
state: *mut flint_rand_struct,
xp: mp_srcptr,
xn: mp_size_t,
);
}