/* automatically generated by rust-bindgen */
/* acb.h */
unsafe extern "C" {
pub fn acb_init(x: *mut acb_struct);
pub fn acb_clear(x: *mut acb_struct);
pub fn _acb_vec_init(n: slong) -> acb_ptr;
pub fn _acb_vec_clear(v: acb_ptr, n: slong);
pub fn acb_real_ptr(z: *mut acb_struct) -> arb_ptr;
pub fn acb_imag_ptr(z: *mut acb_struct) -> arb_ptr;
pub fn acb_get_real(re: *mut arb_struct, z: *const acb_struct);
pub fn acb_get_imag(im: *mut arb_struct, z: *const acb_struct);
pub fn acb_get_mid(res: *mut acb_struct, x: *const acb_struct);
pub fn acb_is_zero(z: *const acb_struct) -> ::std::os::raw::c_int;
pub fn acb_is_one(z: *const acb_struct) -> ::std::os::raw::c_int;
pub fn acb_is_exact(z: *const acb_struct) -> ::std::os::raw::c_int;
pub fn acb_is_int(z: *const acb_struct) -> ::std::os::raw::c_int;
pub fn acb_is_int_2exp_si(z: *const acb_struct, e: slong) -> ::std::os::raw::c_int;
pub fn acb_zero(z: *mut acb_struct);
pub fn acb_one(z: *mut acb_struct);
pub fn acb_onei(z: *mut acb_struct);
pub fn acb_set(z: *mut acb_struct, x: *const acb_struct);
pub fn acb_set_round(z: *mut acb_struct, x: *const acb_struct, prec: slong);
pub fn acb_neg_round(z: *mut acb_struct, x: *const acb_struct, prec: slong);
pub fn acb_swap(z: *mut acb_struct, x: *mut acb_struct);
pub fn acb_equal(
x: *const acb_struct,
y: *const acb_struct,
) -> ::std::os::raw::c_int;
pub fn acb_equal_si(x: *const acb_struct, y: slong) -> ::std::os::raw::c_int;
pub fn acb_eq(x: *const acb_struct, y: *const acb_struct) -> ::std::os::raw::c_int;
pub fn acb_ne(x: *const acb_struct, y: *const acb_struct) -> ::std::os::raw::c_int;
pub fn acb_overlaps(
x: *const acb_struct,
y: *const acb_struct,
) -> ::std::os::raw::c_int;
pub fn acb_contains_zero(x: *const acb_struct) -> ::std::os::raw::c_int;
pub fn acb_contains_fmpq(
x: *const acb_struct,
y: *const fmpq,
) -> ::std::os::raw::c_int;
pub fn acb_contains_fmpz(
x: *const acb_struct,
y: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn acb_contains(
x: *const acb_struct,
y: *const acb_struct,
) -> ::std::os::raw::c_int;
pub fn acb_contains_interior(
x: *const acb_struct,
y: *const acb_struct,
) -> ::std::os::raw::c_int;
pub fn acb_set_ui(z: *mut acb_struct, c: ulong);
pub fn acb_set_d(z: *mut acb_struct, c: f64);
pub fn acb_set_si(z: *mut acb_struct, c: slong);
pub fn acb_set_si_si(z: *mut acb_struct, x: slong, y: slong);
pub fn acb_set_d_d(z: *mut acb_struct, x: f64, y: f64);
pub fn acb_set_fmpz(z: *mut acb_struct, c: *const fmpz);
pub fn acb_set_fmpz_fmpz(z: *mut acb_struct, x: *const fmpz, y: *const fmpz);
pub fn acb_set_round_fmpz(z: *mut acb_struct, y: *const fmpz, prec: slong);
pub fn acb_contains_int(x: *const acb_struct) -> ::std::os::raw::c_int;
pub fn acb_get_unique_fmpz(
z: *mut fmpz,
x: *const acb_struct,
) -> ::std::os::raw::c_int;
pub fn acb_set_fmpq(z: *mut acb_struct, c: *const fmpq, prec: slong);
pub fn acb_set_arb(z: *mut acb_struct, c: *const arb_struct);
pub fn acb_set_arb_arb(
z: *mut acb_struct,
x: *const arb_struct,
y: *const arb_struct,
);
pub fn acb_set_round_arb(z: *mut acb_struct, x: *const arb_struct, prec: slong);
pub fn acb_trim(z: *mut acb_struct, x: *const acb_struct);
pub fn acb_add_error_arf(x: *mut acb_struct, err: *const arf_struct);
pub fn acb_add_error_mag(x: *mut acb_struct, err: *const mag_struct);
pub fn acb_add_error_arb(x: *mut acb_struct, err: *const arb_struct);
pub fn acb_get_mag(z: *mut mag_struct, x: *const acb_struct);
pub fn acb_get_mag_lower(z: *mut mag_struct, x: *const acb_struct);
pub fn acb_get_abs_ubound_arf(u: *mut arf_struct, z: *const acb_struct, prec: slong);
pub fn acb_get_abs_lbound_arf(u: *mut arf_struct, z: *const acb_struct, prec: slong);
pub fn acb_get_rad_ubound_arf(u: *mut arf_struct, z: *const acb_struct, prec: slong);
pub fn acb_union(
res: *mut acb_struct,
x: *const acb_struct,
y: *const acb_struct,
prec: slong,
);
pub fn acb_arg(r: *mut arb_struct, z: *const acb_struct, prec: slong);
pub fn acb_sgn(res: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_csgn(res: *mut arb_struct, z: *const acb_struct);
pub fn acb_real_abs(
res: *mut acb_struct,
z: *const acb_struct,
analytic: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_real_sgn(
res: *mut acb_struct,
z: *const acb_struct,
analytic: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_real_heaviside(
res: *mut acb_struct,
z: *const acb_struct,
analytic: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_real_floor(
res: *mut acb_struct,
z: *const acb_struct,
analytic: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_real_ceil(
res: *mut acb_struct,
z: *const acb_struct,
analytic: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_real_max(
res: *mut acb_struct,
x: *const acb_struct,
y: *const acb_struct,
analytic: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_real_min(
res: *mut acb_struct,
x: *const acb_struct,
y: *const acb_struct,
analytic: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_real_sqrtpos(
res: *mut acb_struct,
z: *const acb_struct,
analytic: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_sqrt_analytic(
res: *mut acb_struct,
z: *const acb_struct,
analytic: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_rsqrt_analytic(
res: *mut acb_struct,
z: *const acb_struct,
analytic: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_log_analytic(
res: *mut acb_struct,
z: *const acb_struct,
analytic: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_pow_analytic(
res: *mut acb_struct,
z: *const acb_struct,
w: *const acb_struct,
analytic: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_add(
z: *mut acb_struct,
x: *const acb_struct,
y: *const acb_struct,
prec: slong,
);
pub fn acb_sub(
z: *mut acb_struct,
x: *const acb_struct,
y: *const acb_struct,
prec: slong,
);
pub fn acb_add_si(z: *mut acb_struct, x: *const acb_struct, c: slong, prec: slong);
pub fn acb_add_ui(z: *mut acb_struct, x: *const acb_struct, c: ulong, prec: slong);
pub fn acb_sub_si(z: *mut acb_struct, x: *const acb_struct, c: slong, prec: slong);
pub fn acb_sub_ui(z: *mut acb_struct, x: *const acb_struct, c: ulong, prec: slong);
pub fn acb_add_fmpz(
z: *mut acb_struct,
x: *const acb_struct,
y: *const fmpz,
prec: slong,
);
pub fn acb_add_arb(
z: *mut acb_struct,
x: *const acb_struct,
y: *const arb_struct,
prec: slong,
);
pub fn acb_sub_fmpz(
z: *mut acb_struct,
x: *const acb_struct,
y: *const fmpz,
prec: slong,
);
pub fn acb_sub_arb(
z: *mut acb_struct,
x: *const acb_struct,
y: *const arb_struct,
prec: slong,
);
pub fn acb_neg(z: *mut acb_struct, x: *const acb_struct);
pub fn acb_conj(z: *mut acb_struct, x: *const acb_struct);
pub fn acb_abs(u: *mut arb_struct, z: *const acb_struct, prec: slong);
pub fn acb_mul_arf(
z: *mut acb_struct,
x: *const acb_struct,
y: *const arf_struct,
prec: slong,
);
pub fn acb_mul_ui(z: *mut acb_struct, x: *const acb_struct, y: ulong, prec: slong);
pub fn acb_mul_si(z: *mut acb_struct, x: *const acb_struct, y: slong, prec: slong);
pub fn acb_mul_fmpz(
z: *mut acb_struct,
x: *const acb_struct,
y: *const fmpz,
prec: slong,
);
pub fn acb_mul_arb(
z: *mut acb_struct,
x: *const acb_struct,
y: *const arb_struct,
prec: slong,
);
pub fn acb_mul_onei(z: *mut acb_struct, x: *const acb_struct);
pub fn acb_div_onei(z: *mut acb_struct, x: *const acb_struct);
pub fn acb_mul_i_pow_si(z: *mut acb_struct, x: *const acb_struct, k: slong);
pub fn acb_mul(
z: *mut acb_struct,
x: *const acb_struct,
y: *const acb_struct,
prec: slong,
);
pub fn acb_mul_naive(
z: *mut acb_struct,
x: *const acb_struct,
y: *const acb_struct,
prec: slong,
);
pub fn acb_mul_2exp_si(z: *mut acb_struct, x: *const acb_struct, e: slong);
pub fn acb_mul_2exp_fmpz(z: *mut acb_struct, x: *const acb_struct, c: *const fmpz);
pub fn acb_addmul(
z: *mut acb_struct,
x: *const acb_struct,
y: *const acb_struct,
prec: slong,
);
pub fn acb_submul(
z: *mut acb_struct,
x: *const acb_struct,
y: *const acb_struct,
prec: slong,
);
pub fn acb_addmul_ui(
z: *mut acb_struct,
x: *const acb_struct,
y: ulong,
prec: slong,
);
pub fn acb_addmul_si(
z: *mut acb_struct,
x: *const acb_struct,
y: slong,
prec: slong,
);
pub fn acb_submul_ui(
z: *mut acb_struct,
x: *const acb_struct,
y: ulong,
prec: slong,
);
pub fn acb_submul_si(
z: *mut acb_struct,
x: *const acb_struct,
y: slong,
prec: slong,
);
pub fn acb_addmul_fmpz(
z: *mut acb_struct,
x: *const acb_struct,
y: *const fmpz,
prec: slong,
);
pub fn acb_submul_fmpz(
z: *mut acb_struct,
x: *const acb_struct,
y: *const fmpz,
prec: slong,
);
pub fn acb_addmul_arb(
z: *mut acb_struct,
x: *const acb_struct,
y: *const arb_struct,
prec: slong,
);
pub fn acb_submul_arb(
z: *mut acb_struct,
x: *const acb_struct,
y: *const arb_struct,
prec: slong,
);
pub fn acb_dot_simple(
res: *mut acb_struct,
initial: *const acb_struct,
subtract: ::std::os::raw::c_int,
x: acb_srcptr,
xstep: slong,
y: acb_srcptr,
ystep: slong,
len: slong,
prec: slong,
);
pub fn acb_dot_precise(
res: *mut acb_struct,
initial: *const acb_struct,
subtract: ::std::os::raw::c_int,
x: acb_srcptr,
xstep: slong,
y: acb_srcptr,
ystep: slong,
len: slong,
prec: slong,
);
pub fn acb_dot(
res: *mut acb_struct,
initial: *const acb_struct,
subtract: ::std::os::raw::c_int,
x: acb_srcptr,
xstep: slong,
y: acb_srcptr,
ystep: slong,
len: slong,
prec: slong,
);
pub fn acb_approx_dot(
res: *mut acb_struct,
initial: *const acb_struct,
subtract: ::std::os::raw::c_int,
x: acb_srcptr,
xstep: slong,
y: acb_srcptr,
ystep: slong,
len: slong,
prec: slong,
);
pub fn acb_dot_ui(
res: *mut acb_struct,
initial: *const acb_struct,
subtract: ::std::os::raw::c_int,
x: acb_srcptr,
xstep: slong,
y: *const ulong,
ystep: slong,
len: slong,
prec: slong,
);
pub fn acb_dot_si(
res: *mut acb_struct,
initial: *const acb_struct,
subtract: ::std::os::raw::c_int,
x: acb_srcptr,
xstep: slong,
y: *const slong,
ystep: slong,
len: slong,
prec: slong,
);
pub fn acb_dot_uiui(
res: *mut acb_struct,
initial: *const acb_struct,
subtract: ::std::os::raw::c_int,
x: acb_srcptr,
xstep: slong,
y: *const ulong,
ystep: slong,
len: slong,
prec: slong,
);
pub fn acb_dot_siui(
res: *mut acb_struct,
initial: *const acb_struct,
subtract: ::std::os::raw::c_int,
x: acb_srcptr,
xstep: slong,
y: *const ulong,
ystep: slong,
len: slong,
prec: slong,
);
pub fn acb_dot_fmpz(
res: *mut acb_struct,
initial: *const acb_struct,
subtract: ::std::os::raw::c_int,
x: acb_srcptr,
xstep: slong,
y: *const fmpz,
ystep: slong,
len: slong,
prec: slong,
);
pub fn acb_inv(z: *mut acb_struct, x: *const acb_struct, prec: slong);
pub fn acb_div(
z: *mut acb_struct,
x: *const acb_struct,
y: *const acb_struct,
prec: slong,
);
pub fn acb_div_ui(z: *mut acb_struct, x: *const acb_struct, c: ulong, prec: slong);
pub fn acb_div_si(z: *mut acb_struct, x: *const acb_struct, c: slong, prec: slong);
pub fn acb_div_arb(
z: *mut acb_struct,
x: *const acb_struct,
c: *const arb_struct,
prec: slong,
);
pub fn acb_div_fmpz(
z: *mut acb_struct,
x: *const acb_struct,
c: *const fmpz,
prec: slong,
);
pub fn acb_cube(y: *mut acb_struct, x: *const acb_struct, prec: slong);
pub fn acb_pow_fmpz(
y: *mut acb_struct,
b: *const acb_struct,
e: *const fmpz,
prec: slong,
);
pub fn acb_pow_ui(y: *mut acb_struct, b: *const acb_struct, e: ulong, prec: slong);
pub fn acb_pow_si(y: *mut acb_struct, b: *const acb_struct, e: slong, prec: slong);
pub fn acb_const_pi(x: *mut acb_struct, prec: slong);
pub fn acb_log(r: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_log1p(r: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_exp(r: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_exp_pi_i(r: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_exp_invexp(
r: *mut acb_struct,
s: *mut acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_expm1(r: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_sin(r: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_cos(r: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_sin_cos(
s: *mut acb_struct,
c: *mut acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_tan(r: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_cot(r: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_asin(r: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_acos(r: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_atan(r: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_asinh(r: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_acosh(r: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_atanh(r: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_sinh(y: *mut acb_struct, x: *const acb_struct, prec: slong);
pub fn acb_cosh(y: *mut acb_struct, x: *const acb_struct, prec: slong);
pub fn acb_sinh_cosh(
y: *mut acb_struct,
z: *mut acb_struct,
x: *const acb_struct,
prec: slong,
);
pub fn acb_tanh(y: *mut acb_struct, x: *const acb_struct, prec: slong);
pub fn acb_coth(y: *mut acb_struct, x: *const acb_struct, prec: slong);
pub fn acb_sech(r: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_csch(r: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_sec(y: *mut acb_struct, x: *const acb_struct, prec: slong);
pub fn acb_csc(y: *mut acb_struct, x: *const acb_struct, prec: slong);
pub fn acb_sin_pi(r: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_cos_pi(r: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_sin_cos_pi(
s: *mut acb_struct,
c: *mut acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_tan_pi(r: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_cot_pi(r: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_csc_pi(y: *mut acb_struct, x: *const acb_struct, prec: slong);
pub fn acb_sinc(res: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_sinc_pi(res: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_pow_arb(
z: *mut acb_struct,
x: *const acb_struct,
y: *const arb_struct,
prec: slong,
);
pub fn acb_pow(
r: *mut acb_struct,
x: *const acb_struct,
y: *const acb_struct,
prec: slong,
);
pub fn acb_sqrt(y: *mut acb_struct, x: *const acb_struct, prec: slong);
pub fn acb_rsqrt(y: *mut acb_struct, x: *const acb_struct, prec: slong);
pub fn acb_sqrts(
y1: *mut acb_struct,
y2: *mut acb_struct,
x: *const acb_struct,
prec: slong,
);
pub fn acb_root_ui(y: *mut acb_struct, x: *const acb_struct, k: ulong, prec: slong);
pub fn acb_quadratic_roots_fmpz(
r1: *mut acb_struct,
r2: *mut acb_struct,
a: *const fmpz,
b: *const fmpz,
c: *const fmpz,
prec: slong,
);
pub fn acb_chebyshev_t_ui(
a: *mut acb_struct,
n: ulong,
x: *const acb_struct,
prec: slong,
);
pub fn acb_chebyshev_t2_ui(
a: *mut acb_struct,
b: *mut acb_struct,
n: ulong,
x: *const acb_struct,
prec: slong,
);
pub fn acb_chebyshev_u_ui(
a: *mut acb_struct,
n: ulong,
x: *const acb_struct,
prec: slong,
);
pub fn acb_chebyshev_u2_ui(
a: *mut acb_struct,
b: *mut acb_struct,
n: ulong,
x: *const acb_struct,
prec: slong,
);
pub fn acb_rising_ui(
z: *mut acb_struct,
x: *const acb_struct,
n: ulong,
prec: slong,
);
pub fn acb_rising(
z: *mut acb_struct,
x: *const acb_struct,
n: *const acb_struct,
prec: slong,
);
pub fn acb_rising2_ui(
u: *mut acb_struct,
v: *mut acb_struct,
x: *const acb_struct,
n: ulong,
prec: slong,
);
pub fn acb_rising_ui_get_mag(bound: *mut mag_struct, s: *const acb_struct, n: ulong);
pub fn acb_gamma(y: *mut acb_struct, x: *const acb_struct, prec: slong);
pub fn acb_rgamma(y: *mut acb_struct, x: *const acb_struct, prec: slong);
pub fn acb_lgamma(y: *mut acb_struct, x: *const acb_struct, prec: slong);
pub fn acb_log_sin_pi(res: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_digamma(y: *mut acb_struct, x: *const acb_struct, prec: slong);
pub fn acb_zeta(z: *mut acb_struct, s: *const acb_struct, prec: slong);
pub fn acb_hurwitz_zeta(
z: *mut acb_struct,
s: *const acb_struct,
a: *const acb_struct,
prec: slong,
);
pub fn acb_polygamma(
res: *mut acb_struct,
s: *const acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_bernoulli_poly_ui(
res: *mut acb_struct,
n: ulong,
x: *const acb_struct,
prec: slong,
);
pub fn acb_log_barnes_g(res: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_barnes_g(res: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_polylog(
w: *mut acb_struct,
s: *const acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_polylog_si(
w: *mut acb_struct,
s: slong,
z: *const acb_struct,
prec: slong,
);
pub fn acb_agm1(m: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_agm1_cpx(m: acb_ptr, z: *const acb_struct, len: slong, prec: slong);
pub fn acb_agm(
res: *mut acb_struct,
a: *const acb_struct,
b: *const acb_struct,
prec: slong,
);
pub fn acb_lambertw_asymp(
res: *mut acb_struct,
z: *const acb_struct,
k: *const fmpz,
L: slong,
M: slong,
prec: slong,
);
pub fn acb_lambertw_check_branch(
w: *const acb_struct,
k: *const fmpz,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_lambertw_bound_deriv(
res: *mut mag_struct,
z: *const acb_struct,
ez1: *const acb_struct,
k: *const fmpz,
);
pub fn acb_lambertw(
res: *mut acb_struct,
z: *const acb_struct,
k: *const fmpz,
flags: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_sqr(res: *mut acb_struct, val: *const acb_struct, prec: slong);
pub fn acb_is_finite(x: *const acb_struct) -> ::std::os::raw::c_int;
pub fn acb_indeterminate(x: *mut acb_struct);
pub fn _acb_vec_entry_ptr(vec: acb_ptr, i: slong) -> acb_ptr;
pub fn _acb_vec_zero(A: acb_ptr, n: slong);
pub fn _acb_vec_is_zero(vec: acb_srcptr, len: slong) -> ::std::os::raw::c_int;
pub fn _acb_vec_set(res: acb_ptr, vec: acb_srcptr, len: slong);
pub fn _acb_vec_set_round(res: acb_ptr, vec: acb_srcptr, len: slong, prec: slong);
pub fn _acb_vec_swap(res: acb_ptr, vec: acb_ptr, len: slong);
pub fn _acb_vec_neg(res: acb_ptr, vec: acb_srcptr, len: slong);
pub fn _acb_vec_add(
res: acb_ptr,
vec1: acb_srcptr,
vec2: acb_srcptr,
len: slong,
prec: slong,
);
pub fn _acb_vec_sub(
res: acb_ptr,
vec1: acb_srcptr,
vec2: acb_srcptr,
len: slong,
prec: slong,
);
pub fn _acb_vec_scalar_submul(
res: acb_ptr,
vec: acb_srcptr,
len: slong,
c: *const acb_struct,
prec: slong,
);
pub fn _acb_vec_scalar_addmul(
res: acb_ptr,
vec: acb_srcptr,
len: slong,
c: *const acb_struct,
prec: slong,
);
pub fn _acb_vec_scalar_mul(
res: acb_ptr,
vec: acb_srcptr,
len: slong,
c: *const acb_struct,
prec: slong,
);
pub fn _acb_vec_scalar_mul_arb(
res: acb_ptr,
vec: acb_srcptr,
len: slong,
c: *const arb_struct,
prec: slong,
);
pub fn _acb_vec_scalar_mul_arf(
res: acb_ptr,
vec: acb_srcptr,
len: slong,
c: *const arf_struct,
prec: slong,
);
pub fn _acb_vec_scalar_mul_ui(
res: acb_ptr,
vec: acb_srcptr,
len: slong,
c: ulong,
prec: slong,
);
pub fn _acb_vec_scalar_mul_si(
res: acb_ptr,
vec: acb_srcptr,
len: slong,
c: slong,
prec: slong,
);
pub fn _acb_vec_scalar_mul_fmpz(
res: acb_ptr,
vec: acb_srcptr,
len: slong,
c: *const fmpz,
prec: slong,
);
pub fn _acb_vec_scalar_mul_2exp_si(
res: acb_ptr,
vec: acb_srcptr,
len: slong,
c: slong,
);
pub fn _acb_vec_scalar_mul_onei(res: acb_ptr, vec: acb_srcptr, len: slong);
pub fn _acb_vec_scalar_div_ui(
res: acb_ptr,
vec: acb_srcptr,
len: slong,
c: ulong,
prec: slong,
);
pub fn _acb_vec_scalar_div(
res: acb_ptr,
vec: acb_srcptr,
len: slong,
c: *const acb_struct,
prec: slong,
);
pub fn _acb_vec_scalar_div_arb(
res: acb_ptr,
vec: acb_srcptr,
len: slong,
c: *const arb_struct,
prec: slong,
);
pub fn _acb_vec_scalar_div_fmpz(
res: acb_ptr,
vec: acb_srcptr,
len: slong,
c: *const fmpz,
prec: slong,
);
pub fn _acb_vec_sqr(res: acb_ptr, vec: acb_srcptr, len: slong, prec: slong);
pub fn acb_fprint(file: *mut FILE, x: *const acb_struct);
pub fn acb_fprintd(file: *mut FILE, z: *const acb_struct, digits: slong);
pub fn acb_fprintn(fp: *mut FILE, z: *const acb_struct, digits: slong, flags: ulong);
pub fn acb_print(x: *const acb_struct);
pub fn acb_printd(z: *const acb_struct, digits: slong);
pub fn acb_printn(x: *const acb_struct, digits: slong, flags: ulong);
pub fn _acb_vec_printd(vec: acb_srcptr, len: slong, ndigits: slong);
pub fn _acb_vec_printn(vec: acb_srcptr, len: slong, ndigits: slong, flags: ulong);
pub fn acb_randtest(
z: *mut acb_struct,
state: *mut flint_rand_struct,
prec: slong,
mag_bits: slong,
);
pub fn acb_randtest_special(
z: *mut acb_struct,
state: *mut flint_rand_struct,
prec: slong,
mag_bits: slong,
);
pub fn acb_randtest_precise(
z: *mut acb_struct,
state: *mut flint_rand_struct,
prec: slong,
mag_bits: slong,
);
pub fn acb_randtest_param(
z: *mut acb_struct,
state: *mut flint_rand_struct,
prec: slong,
mag_bits: slong,
);
pub fn acb_urandom(z: *mut acb_struct, state: *mut flint_rand_struct, prec: slong);
pub fn acb_rel_error_bits(x: *const acb_struct) -> slong;
pub fn acb_rel_accuracy_bits(x: *const acb_struct) -> slong;
pub fn acb_rel_one_accuracy_bits(x: *const acb_struct) -> slong;
pub fn acb_bits(x: *const acb_struct) -> slong;
pub fn acb_is_real(x: *const acb_struct) -> ::std::os::raw::c_int;
pub fn _acb_vec_is_real(v: acb_srcptr, len: slong) -> ::std::os::raw::c_int;
pub fn _acb_vec_is_finite(vec: acb_srcptr, len: slong) -> ::std::os::raw::c_int;
pub fn _acb_vec_equal(
vec1: acb_srcptr,
vec2: acb_srcptr,
len: slong,
) -> ::std::os::raw::c_int;
pub fn _acb_vec_overlaps(
vec1: acb_srcptr,
vec2: acb_srcptr,
len: slong,
) -> ::std::os::raw::c_int;
pub fn _acb_vec_contains(
vec1: acb_srcptr,
vec2: acb_srcptr,
len: slong,
) -> ::std::os::raw::c_int;
pub fn _acb_vec_get_real(re: arb_ptr, vec: acb_srcptr, len: slong);
pub fn _acb_vec_get_imag(im: arb_ptr, vec: acb_srcptr, len: slong);
pub fn _acb_vec_set_real_imag(
vec: acb_ptr,
re: arb_srcptr,
im: arb_srcptr,
len: slong,
);
pub fn _acb_vec_bits(vec: acb_srcptr, len: slong) -> slong;
pub fn _acb_vec_set_powers(
xs: acb_ptr,
x: *const acb_struct,
len: slong,
prec: slong,
);
pub fn _acb_vec_add_error_arf_vec(res: acb_ptr, err: arf_srcptr, len: slong);
pub fn _acb_vec_add_error_mag_vec(res: acb_ptr, err: mag_srcptr, len: slong);
pub fn _acb_vec_indeterminate(vec: acb_ptr, len: slong);
pub fn _acb_vec_trim(res: acb_ptr, vec: acb_srcptr, len: slong);
pub fn _acb_vec_get_unique_fmpz_vec(
res: *mut fmpz,
vec: acb_srcptr,
len: slong,
) -> ::std::os::raw::c_int;
pub fn _acb_vec_sort_pretty(vec: acb_ptr, len: slong);
pub fn acb_unit_root(res: *mut acb_struct, order: ulong, prec: slong);
pub fn _acb_vec_unit_roots(z: acb_ptr, order: slong, len: slong, prec: slong);
pub fn acb_allocated_bytes(x: *const acb_struct) -> slong;
pub fn _acb_vec_allocated_bytes(vec: acb_srcptr, len: slong) -> slong;
pub fn _acb_vec_estimate_allocated_bytes(len: slong, prec: slong) -> f64;
}
/* acb_calc.h */
pub type acb_calc_func_t = ::std::option::Option<
unsafe extern "C" fn(
out: acb_ptr,
inp: *const acb_struct,
param: *mut ::std::os::raw::c_void,
order: slong,
prec: slong,
) -> ::std::os::raw::c_int,
>;
#[repr(C)]
pub struct acb_calc_integrate_opt_struct {
pub deg_limit: slong,
pub eval_limit: slong,
pub depth_limit: slong,
pub use_heap: ::std::os::raw::c_int,
pub verbose: ::std::os::raw::c_int,
}
impl Default for acb_calc_integrate_opt_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 acb_calc_integrate_opt_t = [acb_calc_integrate_opt_struct; 1usize];
unsafe extern "C" {
pub fn acb_calc_cauchy_bound(
bound: *mut arb_struct,
func: acb_calc_func_t,
param: *mut ::std::os::raw::c_void,
x: *const acb_struct,
radius: *const arb_struct,
maxdepth: slong,
prec: slong,
);
pub fn acb_calc_integrate_taylor(
res: *mut acb_struct,
func: acb_calc_func_t,
param: *mut ::std::os::raw::c_void,
a: *const acb_struct,
b: *const acb_struct,
inner_radius: *const arf_struct,
outer_radius: *const arf_struct,
accuracy_goal: slong,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_calc_integrate_opt_init(options: *mut acb_calc_integrate_opt_struct);
pub fn acb_calc_integrate(
res: *mut acb_struct,
f: acb_calc_func_t,
param: *mut ::std::os::raw::c_void,
a: *const acb_struct,
b: *const acb_struct,
goal: slong,
tol: *const mag_struct,
options: *const acb_calc_integrate_opt_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_calc_integrate_gl_auto_deg(
res: *mut acb_struct,
eval_count: *mut slong,
f: acb_calc_func_t,
param: *mut ::std::os::raw::c_void,
a: *const acb_struct,
b: *const acb_struct,
tol: *const mag_struct,
deg_limit: slong,
verbose: ::std::os::raw::c_int,
prec: slong,
) -> ::std::os::raw::c_int;
}
/* acb_dft.h */
#[repr(C)]
pub struct crt_struct {
pub num: ::std::os::raw::c_int,
pub n: nmod_t,
pub m: [slong; 15usize],
pub M: [ulong; 15usize],
pub vM: [ulong; 15usize],
}
impl Default for crt_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 crt_t = [crt_struct; 1usize];
pub type acb_dft_step_ptr = *mut acb_dft_step_struct;
#[repr(C)]
pub struct acb_dft_cyc_struct {
pub n: slong,
pub z: acb_ptr,
pub zclear: ::std::os::raw::c_int,
pub num: slong,
pub cyc: acb_dft_step_ptr,
}
impl Default for acb_dft_cyc_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 acb_dft_cyc_t = [acb_dft_cyc_struct; 1usize];
#[repr(C)]
pub struct acb_dft_rad2_struct {
pub e: ::std::os::raw::c_int,
pub n: slong,
pub dv: slong,
pub nz: slong,
pub z: acb_ptr,
}
impl Default for acb_dft_rad2_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 acb_dft_rad2_t = [acb_dft_rad2_struct; 1usize];
#[repr(C)]
pub struct acb_dft_bluestein_struct {
pub n: slong,
pub dv: slong,
pub z: acb_ptr,
pub g: acb_ptr,
pub rad2: acb_dft_rad2_t,
}
impl Default for acb_dft_bluestein_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 acb_dft_bluestein_t = [acb_dft_bluestein_struct; 1usize];
#[repr(C)]
pub struct acb_dft_prod_struct {
pub n: slong,
pub num: slong,
pub cyc: acb_dft_step_ptr,
}
impl Default for acb_dft_prod_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 acb_dft_prod_t = [acb_dft_prod_struct; 1usize];
#[repr(C)]
pub struct acb_dft_crt_struct {
pub n: slong,
pub c: crt_t,
pub dv: slong,
pub cyc: acb_dft_step_ptr,
}
impl Default for acb_dft_crt_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 acb_dft_crt_t = [acb_dft_crt_struct; 1usize];
#[repr(C)]
pub struct acb_dft_naive_struct {
pub n: slong,
pub dv: slong,
pub zclear: ::std::os::raw::c_int,
pub z: acb_ptr,
pub dz: slong,
}
impl Default for acb_dft_naive_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 acb_dft_naive_t = [acb_dft_naive_struct; 1usize];
#[repr(C)]
pub struct acb_dft_pre_struct {
pub n: slong,
pub type_: ::std::os::raw::c_int,
pub t: acb_dft_pre_struct__acb_dft_bindgen_ty_1,
}
#[repr(C)]
pub union acb_dft_pre_struct__acb_dft_bindgen_ty_1 {
pub rad2: ::std::mem::ManuallyDrop<acb_dft_rad2_t>,
pub cyc: ::std::mem::ManuallyDrop<acb_dft_cyc_t>,
pub prod: ::std::mem::ManuallyDrop<acb_dft_prod_t>,
pub crt: ::std::mem::ManuallyDrop<acb_dft_crt_t>,
pub naive: ::std::mem::ManuallyDrop<acb_dft_naive_t>,
pub bluestein: ::std::mem::ManuallyDrop<acb_dft_bluestein_t>,
}
impl Default for acb_dft_pre_struct__acb_dft_bindgen_ty_1 {
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()
}
}
}
impl Default for acb_dft_pre_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 acb_dft_pre_t = [acb_dft_pre_struct; 1usize];
#[repr(C)]
pub struct acb_dft_step_struct {
pub m: slong,
pub M: slong,
pub dv: slong,
pub z: acb_srcptr,
pub dz: slong,
pub pre: acb_dft_pre_t,
}
impl Default for acb_dft_step_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 const DFT_NAIVE: _acb_dft_bindgen_ty_2 = 0;
pub const DFT_CYC: _acb_dft_bindgen_ty_2 = 1;
pub const DFT_PROD: _acb_dft_bindgen_ty_2 = 2;
pub const DFT_CRT: _acb_dft_bindgen_ty_2 = 3;
pub const DFT_RAD2: _acb_dft_bindgen_ty_2 = 4;
pub const DFT_CONV: _acb_dft_bindgen_ty_2 = 5;
pub type _acb_dft_bindgen_ty_2 = ::std::os::raw::c_uint;
unsafe extern "C" {
pub fn _acb_dft_naive(
w: acb_ptr,
v: acb_srcptr,
dv: slong,
z: acb_srcptr,
dz: slong,
len: slong,
prec: slong,
);
pub fn acb_dft_naive(w: acb_ptr, v: acb_srcptr, len: slong, prec: slong);
pub fn acb_dft_crt(w: acb_ptr, v: acb_srcptr, len: slong, prec: slong);
pub fn acb_dft_cyc(w: acb_ptr, v: acb_srcptr, len: slong, prec: slong);
pub fn acb_dft_inverse_cyc(w: acb_ptr, v: acb_srcptr, len: slong, prec: slong);
pub fn acb_dft_rad2_inplace(v: acb_ptr, e: ::std::os::raw::c_int, prec: slong);
pub fn acb_dft_rad2(
w: acb_ptr,
v: acb_srcptr,
e: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_dft_bluestein(w: acb_ptr, v: acb_srcptr, len: slong, prec: slong);
pub fn acb_dft_prod(
w: acb_ptr,
v: acb_srcptr,
cyc: *mut slong,
num: slong,
prec: slong,
);
pub fn acb_dft_rad2_inplace_threaded(
v: acb_ptr,
e: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_dft_convol_naive(
w: acb_ptr,
f: acb_srcptr,
g: acb_srcptr,
len: slong,
prec: slong,
);
pub fn acb_dft_convol_dft(
w: acb_ptr,
f: acb_srcptr,
g: acb_srcptr,
len: slong,
prec: slong,
);
pub fn acb_dft_convol_rad2(
w: acb_ptr,
f: acb_srcptr,
g: acb_srcptr,
len: slong,
prec: slong,
);
pub fn acb_dft_convol_mullow(
w: acb_ptr,
f: acb_srcptr,
g: acb_srcptr,
len: slong,
prec: slong,
);
pub fn acb_dft_convol(
w: acb_ptr,
f: acb_srcptr,
g: acb_srcptr,
len: slong,
prec: slong,
);
pub fn crt_init(c: *mut crt_struct, n: ulong);
pub fn crt_decomp(
y: acb_ptr,
x: acb_srcptr,
dx: slong,
c: *const crt_struct,
len: ulong,
);
pub fn crt_recomp(y: acb_ptr, x: acb_srcptr, c: *const crt_struct, len: ulong);
pub fn acb_dft_step(
w: acb_ptr,
v: acb_srcptr,
cyc: acb_dft_step_ptr,
num: slong,
prec: slong,
);
pub fn acb_dft_precomp(
w: acb_ptr,
v: acb_srcptr,
pre: *const acb_dft_pre_struct,
prec: slong,
);
pub fn acb_dft_inverse_precomp(
w: acb_ptr,
v: acb_srcptr,
pre: *const acb_dft_pre_struct,
prec: slong,
);
pub fn acb_dft_naive_precomp(
w: acb_ptr,
v: acb_srcptr,
pol: *const acb_dft_naive_struct,
prec: slong,
);
pub fn acb_dft_cyc_precomp(
w: acb_ptr,
v: acb_srcptr,
cyc: *const acb_dft_cyc_struct,
prec: slong,
);
pub fn acb_dft_rad2_precomp_inplace(
v: acb_ptr,
rad2: *const acb_dft_rad2_struct,
prec: slong,
);
pub fn acb_dft_rad2_precomp(
w: acb_ptr,
v: acb_srcptr,
rad2: *const acb_dft_rad2_struct,
prec: slong,
);
pub fn acb_dft_crt_precomp(
w: acb_ptr,
v: acb_srcptr,
crt: *const acb_dft_crt_struct,
prec: slong,
);
pub fn acb_dft_prod_precomp(
w: acb_ptr,
v: acb_srcptr,
prod: *const acb_dft_prod_struct,
prec: slong,
);
pub fn acb_dft_bluestein_precomp(
w: acb_ptr,
v: acb_srcptr,
t: *const acb_dft_bluestein_struct,
prec: slong,
);
pub fn acb_dft_rad2_precomp_inplace_threaded(
v: acb_ptr,
rad2: *const acb_dft_rad2_struct,
prec: slong,
);
pub fn acb_dft_inverse_rad2_precomp_inplace(
v: acb_ptr,
rad2: *const acb_dft_rad2_struct,
prec: slong,
);
pub fn acb_dft_inverse_rad2_precomp(
w: acb_ptr,
v: acb_srcptr,
rad2: *const acb_dft_rad2_struct,
prec: slong,
);
pub fn acb_dft_convol_rad2_precomp(
w: acb_ptr,
f: acb_srcptr,
g: acb_srcptr,
len: slong,
rad2: *const acb_dft_rad2_struct,
prec: slong,
);
pub fn _acb_dft_precomp_init(
pre: *mut acb_dft_pre_struct,
dv: slong,
z: acb_ptr,
dz: slong,
len: slong,
prec: slong,
);
pub fn acb_dft_precomp_init(pre: *mut acb_dft_pre_struct, len: slong, prec: slong);
pub fn acb_dft_precomp_clear(pre: *mut acb_dft_pre_struct);
pub fn acb_dft(w: acb_ptr, v: acb_srcptr, len: slong, prec: slong);
pub fn acb_dft_inverse(w: acb_ptr, v: acb_srcptr, len: slong, prec: slong);
pub fn _acb_dft_steps_prod(
m: *mut slong,
num: slong,
prec: slong,
) -> acb_dft_step_ptr;
pub fn acb_dft_prod_clear(t: *mut acb_dft_prod_struct);
pub fn _acb_dft_cyc_init_z_fac(
t: *mut acb_dft_cyc_struct,
fac: n_factor_t,
dv: slong,
z: acb_ptr,
dz: slong,
len: slong,
prec: slong,
);
pub fn _acb_dft_cyc_init(
t: *mut acb_dft_cyc_struct,
dv: slong,
len: slong,
prec: slong,
);
pub fn acb_dft_cyc_clear(t: *mut acb_dft_cyc_struct);
pub fn _acb_dft_naive_init(
pol: *mut acb_dft_naive_struct,
dv: slong,
z: acb_ptr,
dz: slong,
len: slong,
prec: slong,
);
pub fn _acb_dft_rad2_init(
t: *mut acb_dft_rad2_struct,
dv: slong,
e: ::std::os::raw::c_int,
prec: slong,
);
pub fn _acb_dft_bluestein_init(
t: *mut acb_dft_bluestein_struct,
dv: slong,
n: slong,
prec: slong,
);
pub fn _acb_dft_crt_init(
crt: *mut acb_dft_crt_struct,
dv: slong,
len: slong,
prec: slong,
);
pub fn acb_dft_crt_init(crt: *mut acb_dft_crt_struct, len: slong, prec: slong);
pub fn acb_dft_crt_clear(crt: *mut acb_dft_crt_struct);
}
/* acb_dirichlet.h */
#[repr(C)]
pub struct acb_dirichlet_hurwitz_precomp_struct {
pub s: acb_struct,
pub err: mag_struct,
pub coeffs: acb_ptr,
pub deflate: ::std::os::raw::c_int,
pub A: slong,
pub N: slong,
pub K: slong,
}
impl Default for acb_dirichlet_hurwitz_precomp_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type acb_dirichlet_hurwitz_precomp_t = [acb_dirichlet_hurwitz_precomp_struct; 1usize];
#[repr(C)]
pub struct acb_dirichlet_roots_struct {
pub order: ulong,
pub reduced_order: ulong,
pub z: acb_t,
pub size: slong,
pub depth: slong,
pub Z: *mut acb_ptr,
pub use_pow: ::std::os::raw::c_int,
}
impl Default for acb_dirichlet_roots_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 acb_dirichlet_roots_t = [acb_dirichlet_roots_struct; 1usize];
#[repr(C)]
pub struct acb_dirichlet_platt_c_precomp_struct {
pub len: slong,
pub p: arb_ptr,
pub Xa: arb_struct,
pub Xb: arb_struct,
}
impl Default for acb_dirichlet_platt_c_precomp_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type acb_dirichlet_platt_c_precomp_t = [acb_dirichlet_platt_c_precomp_struct; 1usize];
#[repr(C)]
pub struct acb_dirichlet_platt_i_precomp_struct {
pub c1: arb_struct,
pub c2: arb_struct,
}
impl Default for acb_dirichlet_platt_i_precomp_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type acb_dirichlet_platt_i_precomp_t = [acb_dirichlet_platt_i_precomp_struct; 1usize];
#[repr(C)]
pub struct acb_dirichlet_platt_ws_precomp_struct {
pub pre_c: acb_dirichlet_platt_c_precomp_struct,
pub pre_i: acb_dirichlet_platt_i_precomp_struct,
}
impl Default for acb_dirichlet_platt_ws_precomp_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type acb_dirichlet_platt_ws_precomp_t = [acb_dirichlet_platt_ws_precomp_struct; 1usize];
unsafe extern "C" {
pub fn acb_dirichlet_powsum_term(
res: acb_ptr,
log_prev: *mut arb_struct,
prev: *mut ulong,
s: *const acb_struct,
k: ulong,
integer: ::std::os::raw::c_int,
critical_line: ::std::os::raw::c_int,
len: slong,
prec: slong,
);
pub fn acb_dirichlet_powsum_sieved(
z: acb_ptr,
s: *const acb_struct,
n: ulong,
len: slong,
prec: slong,
);
pub fn acb_dirichlet_powsum_smooth(
z: acb_ptr,
s: *const acb_struct,
n: ulong,
len: slong,
prec: slong,
);
pub fn acb_dirichlet_zeta_bound(res: *mut mag_struct, s: *const acb_struct);
pub fn acb_dirichlet_zeta_deriv_bound(
der1: *mut mag_struct,
der2: *mut mag_struct,
s: *const acb_struct,
);
pub fn acb_dirichlet_zeta_rs_f_coeffs(
c: acb_ptr,
p: *const arb_struct,
N: slong,
prec: slong,
);
pub fn acb_dirichlet_zeta_rs_d_coeffs(
d: arb_ptr,
sigma: *const arb_struct,
k: slong,
prec: slong,
);
pub fn acb_dirichlet_zeta_rs_bound(
err: *mut mag_struct,
s: *const acb_struct,
K: slong,
);
pub fn acb_dirichlet_zeta_rs_r(
res: *mut acb_struct,
s: *const acb_struct,
K: slong,
prec: slong,
);
pub fn acb_dirichlet_zeta_rs(
res: *mut acb_struct,
s: *const acb_struct,
K: slong,
prec: slong,
);
pub fn acb_dirichlet_zeta(res: *mut acb_struct, s: *const acb_struct, prec: slong);
pub fn acb_dirichlet_zeta_jet_rs(
res: acb_ptr,
s: *const acb_struct,
len: slong,
prec: slong,
);
pub fn acb_dirichlet_zeta_jet(
res: *mut acb_struct,
s: *const acb_struct,
deflate: ::std::os::raw::c_int,
len: slong,
prec: slong,
);
pub fn acb_dirichlet_hurwitz(
res: *mut acb_struct,
s: *const acb_struct,
a: *const acb_struct,
prec: slong,
);
pub fn acb_dirichlet_lerch_phi_integral(
res: *mut acb_struct,
z: *const acb_struct,
s: *const acb_struct,
a: *const acb_struct,
prec: slong,
);
pub fn acb_dirichlet_lerch_phi_direct(
res: *mut acb_struct,
z: *const acb_struct,
s: *const acb_struct,
a: *const acb_struct,
prec: slong,
);
pub fn acb_dirichlet_lerch_phi(
res: *mut acb_struct,
z: *const acb_struct,
s: *const acb_struct,
a: *const acb_struct,
prec: slong,
);
pub fn acb_dirichlet_stieltjes(
res: *mut acb_struct,
n: *const fmpz,
a: *const acb_struct,
prec: slong,
);
pub fn acb_dirichlet_hurwitz_precomp_init(
pre: *mut acb_dirichlet_hurwitz_precomp_struct,
s: *const acb_struct,
deflate: ::std::os::raw::c_int,
A: slong,
K: slong,
N: slong,
prec: slong,
);
pub fn acb_dirichlet_hurwitz_precomp_init_num(
pre: *mut acb_dirichlet_hurwitz_precomp_struct,
s: *const acb_struct,
deflate: ::std::os::raw::c_int,
num_eval: f64,
prec: slong,
);
pub fn acb_dirichlet_hurwitz_precomp_clear(
pre: *mut acb_dirichlet_hurwitz_precomp_struct,
);
pub fn acb_dirichlet_hurwitz_precomp_bound(
res: *mut mag_struct,
s: *const acb_struct,
A: slong,
K: slong,
N: slong,
);
pub fn acb_dirichlet_hurwitz_precomp_eval(
res: *mut acb_struct,
pre: *const acb_dirichlet_hurwitz_precomp_struct,
p: ulong,
q: ulong,
prec: slong,
);
pub fn acb_dirichlet_hurwitz_precomp_choose_param(
A: *mut ulong,
K: *mut ulong,
N: *mut ulong,
s: *const acb_struct,
num_eval: f64,
prec: slong,
);
pub fn _acb_dirichlet_euler_product_real_ui(
res: *mut arb_struct,
s: ulong,
chi: *const ::std::os::raw::c_schar,
mod_: ::std::os::raw::c_int,
reciprocal: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_dirichlet_eta(res: *mut acb_struct, s: *const acb_struct, prec: slong);
pub fn acb_dirichlet_xi(res: *mut acb_struct, s: *const acb_struct, prec: slong);
pub fn acb_dirichlet_pairing(
res: *mut acb_struct,
G: *const dirichlet_group_struct,
m: ulong,
n: ulong,
prec: slong,
);
pub fn acb_dirichlet_pairing_char(
res: *mut acb_struct,
G: *const dirichlet_group_struct,
a: *const dirichlet_char_struct,
b: *const dirichlet_char_struct,
prec: slong,
);
pub fn acb_dirichlet_roots_init(
t: *mut acb_dirichlet_roots_struct,
order: ulong,
num: slong,
prec: slong,
);
pub fn acb_dirichlet_roots_clear(t: *mut acb_dirichlet_roots_struct);
pub fn acb_dirichlet_root(
z: *mut acb_struct,
t: *const acb_dirichlet_roots_struct,
n: ulong,
prec: slong,
);
pub fn acb_dirichlet_chi(
res: *mut acb_struct,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
n: ulong,
prec: slong,
);
pub fn acb_dirichlet_chi_vec(
v: acb_ptr,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
nv: slong,
prec: slong,
);
pub fn acb_dirichlet_arb_quadratic_powers(
v: arb_ptr,
nv: slong,
x: *const arb_struct,
prec: slong,
);
pub fn acb_dirichlet_qseries_arb(
res: *mut acb_struct,
a: acb_srcptr,
x: *const arb_struct,
len: slong,
prec: slong,
);
pub fn acb_dirichlet_qseries_arb_powers_naive(
res: *mut acb_struct,
x: *const arb_struct,
parity: ::std::os::raw::c_int,
a: *const ulong,
z: *const acb_dirichlet_roots_struct,
len: slong,
prec: slong,
);
pub fn acb_dirichlet_qseries_arb_powers_smallorder(
res: *mut acb_struct,
x: *const arb_struct,
parity: ::std::os::raw::c_int,
a: *const ulong,
z: *const acb_dirichlet_roots_struct,
len: slong,
prec: slong,
);
pub fn acb_dirichlet_theta_length_d(q: ulong, x: f64, prec: slong) -> ulong;
pub fn acb_dirichlet_theta_length(
q: ulong,
x: *const arb_struct,
prec: slong,
) -> ulong;
pub fn mag_tail_kexpk2_arb(res: *mut mag_struct, a: *const arb_struct, n: ulong);
pub fn _acb_dirichlet_theta_argument_at_arb(
xt: *mut arb_struct,
q: ulong,
t: *const arb_struct,
prec: slong,
);
pub fn _acb_dirichlet_theta_arb_series(
res: *mut acb_struct,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
xt: *const arb_struct,
len: slong,
prec: slong,
);
pub fn acb_dirichlet_theta_arb(
res: *mut acb_struct,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
t: *const arb_struct,
prec: slong,
);
pub fn acb_dirichlet_ui_theta_arb(
res: *mut acb_struct,
G: *const dirichlet_group_struct,
a: ulong,
t: *const arb_struct,
prec: slong,
);
pub fn acb_dirichlet_gauss_sum_naive(
res: *mut acb_struct,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
prec: slong,
);
pub fn acb_dirichlet_gauss_sum_factor(
res: *mut acb_struct,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
prec: slong,
);
pub fn acb_dirichlet_gauss_sum_order2(
res: *mut acb_struct,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
prec: slong,
);
pub fn acb_dirichlet_gauss_sum_theta(
res: *mut acb_struct,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
prec: slong,
);
pub fn acb_dirichlet_gauss_sum(
res: *mut acb_struct,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
prec: slong,
);
pub fn acb_dirichlet_root_number_theta(
res: *mut acb_struct,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
prec: slong,
);
pub fn acb_dirichlet_root_number(
res: *mut acb_struct,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
prec: slong,
);
pub fn acb_dirichlet_si_poly_evaluate(
res: *mut acb_struct,
v: *mut slong,
len: slong,
z: *const acb_struct,
prec: slong,
);
pub fn acb_dirichlet_jacobi_sum_naive(
res: *mut acb_struct,
G: *const dirichlet_group_struct,
chi1: *const dirichlet_char_struct,
chi2: *const dirichlet_char_struct,
prec: slong,
);
pub fn jacobi_one_prime(p: ulong, e: ulong, pe: ulong, cond: ulong) -> ulong;
pub fn acb_dirichlet_jacobi_sum_factor(
res: *mut acb_struct,
G: *const dirichlet_group_struct,
chi1: *const dirichlet_char_struct,
chi2: *const dirichlet_char_struct,
prec: slong,
);
pub fn acb_dirichlet_jacobi_sum_gauss(
res: *mut acb_struct,
G: *const dirichlet_group_struct,
chi1: *const dirichlet_char_struct,
chi2: *const dirichlet_char_struct,
prec: slong,
);
pub fn acb_dirichlet_jacobi_sum(
res: *mut acb_struct,
G: *const dirichlet_group_struct,
chi1: *const dirichlet_char_struct,
chi2: *const dirichlet_char_struct,
prec: slong,
);
pub fn acb_dirichlet_jacobi_sum_ui(
res: *mut acb_struct,
G: *const dirichlet_group_struct,
a: ulong,
b: ulong,
prec: slong,
);
pub fn acb_dirichlet_l_euler_product(
res: *mut acb_struct,
s: *const acb_struct,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
prec: slong,
);
pub fn acb_dirichlet_l_hurwitz(
res: *mut acb_struct,
s: *const acb_struct,
precomp: *const acb_dirichlet_hurwitz_precomp_struct,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
prec: slong,
);
pub fn acb_dirichlet_l(
res: *mut acb_struct,
s: *const acb_struct,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
prec: slong,
);
pub fn acb_dirichlet_l_vec_hurwitz(
res: acb_ptr,
s: *const acb_struct,
precomp: *const acb_dirichlet_hurwitz_precomp_struct,
G: *const dirichlet_group_struct,
prec: slong,
);
pub fn acb_dirichlet_l_jet(
res: acb_ptr,
s: *const acb_struct,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
deflate: ::std::os::raw::c_int,
len: slong,
prec: slong,
);
pub fn acb_dirichlet_l_fmpq_afe(
res: *mut acb_struct,
s: *const fmpq,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
prec: slong,
);
pub fn acb_dirichlet_l_fmpq(
res: *mut acb_struct,
s: *const fmpq,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
prec: slong,
);
pub fn _acb_dirichlet_l_series(
res: acb_ptr,
s: acb_srcptr,
slen: slong,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
deflate: ::std::os::raw::c_int,
len: slong,
prec: slong,
);
pub fn acb_dirichlet_l_series(
res: *mut acb_poly_struct,
s: *const acb_poly_struct,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
deflate: ::std::os::raw::c_int,
len: slong,
prec: slong,
);
pub fn acb_dirichlet_hardy_theta(
res: acb_ptr,
t: *const acb_struct,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
len: slong,
prec: slong,
);
pub fn acb_dirichlet_hardy_z(
res: acb_ptr,
t: *const acb_struct,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
len: slong,
prec: slong,
);
pub fn _acb_dirichlet_hardy_theta_series(
res: acb_ptr,
s: acb_srcptr,
slen: slong,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
len: slong,
prec: slong,
);
pub fn acb_dirichlet_hardy_theta_series(
res: *mut acb_poly_struct,
s: *const acb_poly_struct,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
len: slong,
prec: slong,
);
pub fn _acb_dirichlet_hardy_z_series(
res: acb_ptr,
s: acb_srcptr,
slen: slong,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
len: slong,
prec: slong,
);
pub fn acb_dirichlet_hardy_z_series(
res: *mut acb_poly_struct,
s: *const acb_poly_struct,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
len: slong,
prec: slong,
);
pub fn acb_dirichlet_gram_point(
res: *mut arb_struct,
n: *const fmpz,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
prec: slong,
);
pub fn acb_dirichlet_turing_method_bound(p: *const fmpz) -> ulong;
pub fn _acb_dirichlet_definite_hardy_z(
res: *mut arb_struct,
t: *const arf_struct,
pprec: *mut slong,
) -> ::std::os::raw::c_int;
pub fn _acb_dirichlet_isolate_gram_hardy_z_zero(
a: *mut arf_struct,
b: *mut arf_struct,
n: *const fmpz,
);
pub fn _acb_dirichlet_isolate_rosser_hardy_z_zero(
a: *mut arf_struct,
b: *mut arf_struct,
n: *const fmpz,
);
pub fn _acb_dirichlet_isolate_turing_hardy_z_zero(
a: *mut arf_struct,
b: *mut arf_struct,
n: *const fmpz,
);
pub fn acb_dirichlet_isolate_hardy_z_zero(
a: *mut arf_struct,
b: *mut arf_struct,
n: *const fmpz,
);
pub fn _acb_dirichlet_refine_hardy_z_zero(
res: *mut arb_struct,
a: *const arf_struct,
b: *const arf_struct,
prec: slong,
);
pub fn acb_dirichlet_hardy_z_zeros(
res: arb_ptr,
n: *const fmpz,
len: slong,
prec: slong,
);
pub fn acb_dirichlet_zeta_zeros(
res: acb_ptr,
n: *const fmpz,
len: slong,
prec: slong,
);
pub fn acb_dirichlet_platt_zeta_zeros(
res: acb_ptr,
n: *const fmpz,
len: slong,
prec: slong,
) -> slong;
pub fn _acb_dirichlet_exact_zeta_nzeros(res: *mut fmpz, t: *const arf_struct);
pub fn acb_dirichlet_zeta_nzeros(
res: *mut arb_struct,
t: *const arb_struct,
prec: slong,
);
pub fn acb_dirichlet_backlund_s(
res: *mut arb_struct,
t: *const arb_struct,
prec: slong,
);
pub fn acb_dirichlet_backlund_s_bound(res: *mut mag_struct, t: *const arb_struct);
pub fn acb_dirichlet_zeta_nzeros_gram(res: *mut fmpz, n: *const fmpz);
pub fn acb_dirichlet_backlund_s_gram(n: *const fmpz) -> slong;
pub fn acb_dirichlet_secondary_zeta(
res: *mut acb_struct,
s: *const acb_struct,
prec: slong,
);
pub fn acb_dirichlet_vec_mellin_arb(
res: acb_ptr,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
len: slong,
t: *const arb_struct,
n: slong,
prec: slong,
);
pub fn acb_dirichlet_platt_c_precomp_init(
pre: *mut acb_dirichlet_platt_c_precomp_struct,
sigma: slong,
h: *const arb_struct,
k: ulong,
prec: slong,
);
pub fn acb_dirichlet_platt_c_precomp_clear(
pre: *mut acb_dirichlet_platt_c_precomp_struct,
);
pub fn acb_dirichlet_platt_c_bound_precomp(
res: *mut arb_struct,
pre: *const acb_dirichlet_platt_c_precomp_struct,
sigma: slong,
t0: *const arb_struct,
h: *const arb_struct,
k: slong,
prec: slong,
);
pub fn acb_dirichlet_platt_c_bound(
res: *mut arb_struct,
sigma: slong,
t0: *const arb_struct,
h: *const arb_struct,
k: slong,
prec: slong,
);
pub fn acb_dirichlet_platt_i_precomp_init(
pre: *mut acb_dirichlet_platt_i_precomp_struct,
A: slong,
H: *const arb_struct,
sigma: slong,
prec: slong,
);
pub fn acb_dirichlet_platt_i_precomp_clear(
pre: *mut acb_dirichlet_platt_i_precomp_struct,
);
pub fn acb_dirichlet_platt_i_bound_precomp(
res: *mut arb_struct,
pre_i: *const acb_dirichlet_platt_i_precomp_struct,
pre_c: *const acb_dirichlet_platt_c_precomp_struct,
t0: *const arb_struct,
A: slong,
H: *const arb_struct,
sigma: slong,
prec: slong,
);
pub fn acb_dirichlet_platt_i_bound(
res: *mut arb_struct,
t0: *const arb_struct,
A: slong,
H: *const arb_struct,
sigma: slong,
prec: slong,
);
pub fn acb_dirichlet_platt_ws_precomp_init(
pre: *mut acb_dirichlet_platt_ws_precomp_struct,
A: slong,
H: *const arb_struct,
sigma: slong,
prec: slong,
);
pub fn acb_dirichlet_platt_ws_precomp_clear(
pre: *mut acb_dirichlet_platt_ws_precomp_struct,
);
pub fn acb_dirichlet_platt_ws_interpolation_precomp(
res: *mut arb_struct,
deriv: *mut arf_struct,
pre: *const acb_dirichlet_platt_ws_precomp_struct,
t0: *const arb_struct,
p: arb_srcptr,
T: *const fmpz,
A: slong,
B: slong,
Ns_max: slong,
H: *const arb_struct,
sigma: slong,
prec: slong,
);
pub fn acb_dirichlet_platt_ws_interpolation(
res: *mut arb_struct,
deriv: *mut arf_struct,
t0: *const arb_struct,
p: arb_srcptr,
T: *const fmpz,
A: slong,
B: slong,
Ns_max: slong,
H: *const arb_struct,
sigma: slong,
prec: slong,
);
pub fn acb_dirichlet_platt_bound_C3(
res: *mut arb_struct,
t0: *const arb_struct,
A: slong,
H: *const arb_struct,
Ns: slong,
prec: slong,
);
pub fn acb_dirichlet_platt_scaled_lambda(
res: *mut arb_struct,
t: *const arb_struct,
prec: slong,
);
pub fn acb_dirichlet_platt_scaled_lambda_vec(
res: arb_ptr,
T: *const fmpz,
A: slong,
B: slong,
prec: slong,
);
pub fn acb_dirichlet_platt_beta(
res: *mut arb_struct,
t: *const arb_struct,
prec: slong,
);
pub fn acb_dirichlet_platt_lemma_32(
out: *mut arb_struct,
h: *const arb_struct,
t0: *const arb_struct,
x: *const arb_struct,
prec: slong,
);
pub fn acb_dirichlet_platt_lemma_A5(
out: *mut arb_struct,
B: slong,
h: *const arb_struct,
k: slong,
prec: slong,
);
pub fn acb_dirichlet_platt_lemma_A7(
out: *mut arb_struct,
sigma: slong,
t0: *const arb_struct,
h: *const arb_struct,
k: slong,
A: slong,
prec: slong,
);
pub fn acb_dirichlet_platt_lemma_A9(
out: *mut arb_struct,
sigma: slong,
t0: *const arb_struct,
h: *const arb_struct,
A: slong,
prec: slong,
);
pub fn acb_dirichlet_platt_lemma_A11(
out: *mut arb_struct,
t0: *const arb_struct,
h: *const arb_struct,
B: slong,
prec: slong,
);
pub fn acb_dirichlet_platt_lemma_B1(
out: *mut arb_struct,
sigma: slong,
t0: *const arb_struct,
h: *const arb_struct,
J: *const fmpz,
prec: slong,
);
pub fn acb_dirichlet_platt_lemma_B2(
out: *mut arb_struct,
K: slong,
h: *const arb_struct,
xi: *const arb_struct,
prec: slong,
);
pub fn acb_dirichlet_platt_multieval(
out: arb_ptr,
T: *const fmpz,
A: slong,
B: slong,
h: *const arb_struct,
J: *const fmpz,
K: slong,
sigma: slong,
prec: slong,
);
pub fn acb_dirichlet_platt_multieval_threaded(
out: arb_ptr,
T: *const fmpz,
A: slong,
B: slong,
h: *const arb_struct,
J: *const fmpz,
K: slong,
sigma: slong,
prec: slong,
);
pub fn _acb_dirichlet_platt_isolate_local_hardy_z_zeros(
res: arf_interval_ptr,
n: *const fmpz,
len: slong,
T: *const fmpz,
A: slong,
B: slong,
h: *const arb_struct,
J: *const fmpz,
K: slong,
sigma_grid: slong,
Ns_max: slong,
H: *const arb_struct,
sigma_interp: slong,
prec: slong,
) -> slong;
pub fn acb_dirichlet_platt_isolate_local_hardy_z_zeros(
res: arf_interval_ptr,
n: *const fmpz,
len: slong,
prec: slong,
) -> slong;
pub fn _acb_dirichlet_platt_local_hardy_z_zeros(
res: arb_ptr,
n: *const fmpz,
len: slong,
T: *const fmpz,
A: slong,
B: slong,
h: *const arb_struct,
J: *const fmpz,
K: slong,
sigma_grid: slong,
Ns_max: slong,
H: *const arb_struct,
sigma_interp: slong,
prec: slong,
) -> slong;
pub fn acb_dirichlet_platt_local_hardy_z_zeros(
res: arb_ptr,
n: *const fmpz,
len: slong,
prec: slong,
) -> slong;
pub fn acb_dirichlet_platt_hardy_z_zeros(
res: arb_ptr,
n: *const fmpz,
len: slong,
prec: slong,
) -> slong;
pub fn acb_dirichlet_dft_index(
w: acb_ptr,
v: acb_srcptr,
G: *const dirichlet_group_struct,
prec: slong,
);
pub fn acb_dirichlet_dft(
w: acb_ptr,
v: acb_srcptr,
G: *const dirichlet_group_struct,
prec: slong,
);
}
/* acb_elliptic.h */
unsafe extern "C" {
pub fn acb_elliptic_k(k: *mut acb_struct, m: *const acb_struct, prec: slong);
pub fn acb_elliptic_k_jet(w: acb_ptr, m: *const acb_struct, len: slong, prec: slong);
pub fn _acb_elliptic_k_series(
res: acb_ptr,
m: acb_srcptr,
zlen: slong,
len: slong,
prec: slong,
);
pub fn acb_elliptic_k_series(
res: *mut acb_poly_struct,
m: *const acb_poly_struct,
len: slong,
prec: slong,
);
pub fn acb_elliptic_e(res: *mut acb_struct, m: *const acb_struct, prec: slong);
pub fn acb_elliptic_rf(
res: *mut acb_struct,
x: *const acb_struct,
y: *const acb_struct,
z: *const acb_struct,
flags: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_elliptic_rj(
res: *mut acb_struct,
x: *const acb_struct,
y: *const acb_struct,
z: *const acb_struct,
p: *const acb_struct,
flags: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_elliptic_rj_carlson(
res: *mut acb_struct,
x: *const acb_struct,
y: *const acb_struct,
z: *const acb_struct,
p: *const acb_struct,
flags: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_elliptic_rj_integration(
res: *mut acb_struct,
x: *const acb_struct,
y: *const acb_struct,
z: *const acb_struct,
p: *const acb_struct,
flags: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_elliptic_rg(
res: *mut acb_struct,
x: *const acb_struct,
y: *const acb_struct,
z: *const acb_struct,
flags: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_elliptic_rc1(res: *mut acb_struct, x: *const acb_struct, prec: slong);
pub fn acb_elliptic_f(
res: *mut acb_struct,
phi: *const acb_struct,
m: *const acb_struct,
times_pi: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_elliptic_e_inc(
res: *mut acb_struct,
phi: *const acb_struct,
m: *const acb_struct,
times_pi: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_elliptic_pi(
r: *mut acb_struct,
n: *const acb_struct,
m: *const acb_struct,
prec: slong,
);
pub fn acb_elliptic_pi_inc(
res: *mut acb_struct,
n: *const acb_struct,
phi: *const acb_struct,
m: *const acb_struct,
times_pi: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_elliptic_p(
r: *mut acb_struct,
z: *const acb_struct,
tau: *const acb_struct,
prec: slong,
);
pub fn acb_elliptic_p_prime(
r: *mut acb_struct,
z: *const acb_struct,
tau: *const acb_struct,
prec: slong,
);
pub fn acb_elliptic_p_jet(
r: acb_ptr,
z: *const acb_struct,
tau: *const acb_struct,
len: slong,
prec: slong,
);
pub fn _acb_elliptic_p_series(
res: acb_ptr,
z: acb_srcptr,
zlen: slong,
tau: *const acb_struct,
len: slong,
prec: slong,
);
pub fn acb_elliptic_p_series(
res: *mut acb_poly_struct,
z: *const acb_poly_struct,
tau: *const acb_struct,
len: slong,
prec: slong,
);
pub fn acb_elliptic_zeta(
res: *mut acb_struct,
z: *const acb_struct,
tau: *const acb_struct,
prec: slong,
);
pub fn acb_elliptic_sigma(
res: *mut acb_struct,
z: *const acb_struct,
tau: *const acb_struct,
prec: slong,
);
pub fn acb_elliptic_roots(
e1: *mut acb_struct,
e2: *mut acb_struct,
e3: *mut acb_struct,
tau: *const acb_struct,
prec: slong,
);
pub fn acb_elliptic_invariants(
g2: *mut acb_struct,
g3: *mut acb_struct,
tau: *const acb_struct,
prec: slong,
);
pub fn acb_elliptic_inv_p(
res: *mut acb_struct,
z: *const acb_struct,
tau: *const acb_struct,
prec: slong,
);
}
/* acb_hypgeom.h */
unsafe extern "C" {
pub fn acb_hypgeom_rising_ui_forward(
res: *mut acb_struct,
x: *const acb_struct,
n: ulong,
prec: slong,
);
pub fn acb_hypgeom_rising_ui_rs(
res: *mut acb_struct,
x: *const acb_struct,
n: ulong,
m: ulong,
prec: slong,
);
pub fn acb_hypgeom_rising_ui_bs(
res: *mut acb_struct,
x: *const acb_struct,
n: ulong,
prec: slong,
);
pub fn acb_hypgeom_rising_ui_rec(
res: *mut acb_struct,
x: *const acb_struct,
n: ulong,
prec: slong,
);
pub fn acb_hypgeom_rising_ui(
y: *mut acb_struct,
x: *const acb_struct,
n: ulong,
prec: slong,
);
pub fn acb_hypgeom_rising(
y: *mut acb_struct,
x: *const acb_struct,
n: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_rising_ui_jet_powsum(
res: acb_ptr,
x: *const acb_struct,
n: ulong,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_rising_ui_jet_rs(
res: acb_ptr,
x: *const acb_struct,
n: ulong,
m: ulong,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_rising_ui_jet_bs(
res: acb_ptr,
x: *const acb_struct,
n: ulong,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_rising_ui_jet(
res: acb_ptr,
x: *const acb_struct,
n: ulong,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_log_rising_ui_jet(
res: acb_ptr,
z: *const acb_struct,
r: ulong,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_log_rising_ui(
res: acb_ptr,
z: *const acb_struct,
r: ulong,
prec: slong,
);
pub fn acb_hypgeom_gamma_stirling_sum_horner(
s: *mut acb_struct,
z: *const acb_struct,
N: slong,
prec: slong,
);
pub fn acb_hypgeom_gamma_stirling_sum_improved(
s: *mut acb_struct,
z: *const acb_struct,
N: slong,
K: slong,
prec: slong,
);
pub fn acb_hypgeom_gamma_stirling(
res: *mut acb_struct,
x: *const acb_struct,
reciprocal: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_hypgeom_gamma_taylor(
res: *mut acb_struct,
x: *const acb_struct,
reciprocal: ::std::os::raw::c_int,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_hypgeom_gamma(y: *mut acb_struct, x: *const acb_struct, prec: slong);
pub fn acb_hypgeom_rgamma(y: *mut acb_struct, x: *const acb_struct, prec: slong);
pub fn acb_hypgeom_lgamma(y: *mut acb_struct, x: *const acb_struct, prec: slong);
pub fn acb_hypgeom_pfq_bound_factor(
C: *mut mag_struct,
a: acb_srcptr,
p: slong,
b: acb_srcptr,
q: slong,
z: *const acb_struct,
n: ulong,
);
pub fn acb_hypgeom_pfq_choose_n(
a: acb_srcptr,
p: slong,
b: acb_srcptr,
q: slong,
z: *const acb_struct,
prec: slong,
) -> slong;
pub fn acb_hypgeom_pfq_sum_forward(
s: *mut acb_struct,
t: *mut acb_struct,
a: acb_srcptr,
p: slong,
b: acb_srcptr,
q: slong,
z: *const acb_struct,
n: slong,
prec: slong,
);
pub fn acb_hypgeom_pfq_sum_rs(
s: *mut acb_struct,
t: *mut acb_struct,
a: acb_srcptr,
p: slong,
b: acb_srcptr,
q: slong,
z: *const acb_struct,
n: slong,
prec: slong,
);
pub fn acb_hypgeom_pfq_sum_bs(
s: *mut acb_struct,
t: *mut acb_struct,
a: acb_srcptr,
p: slong,
b: acb_srcptr,
q: slong,
z: *const acb_struct,
n: slong,
prec: slong,
);
pub fn acb_hypgeom_pfq_sum_fme(
s: *mut acb_struct,
t: *mut acb_struct,
a: acb_srcptr,
p: slong,
b: acb_srcptr,
q: slong,
z: *const acb_struct,
n: slong,
prec: slong,
);
pub fn acb_hypgeom_pfq_sum(
s: *mut acb_struct,
t: *mut acb_struct,
a: acb_srcptr,
p: slong,
b: acb_srcptr,
q: slong,
z: *const acb_struct,
n: slong,
prec: slong,
);
pub fn acb_hypgeom_pfq_sum_bs_invz(
s: *mut acb_struct,
t: *mut acb_struct,
a: acb_srcptr,
p: slong,
b: acb_srcptr,
q: slong,
z: *const acb_struct,
n: slong,
prec: slong,
);
pub fn acb_hypgeom_pfq_sum_invz(
s: *mut acb_struct,
t: *mut acb_struct,
a: acb_srcptr,
p: slong,
b: acb_srcptr,
q: slong,
z: *const acb_struct,
zinv: *const acb_struct,
n: slong,
prec: slong,
);
pub fn acb_hypgeom_pfq_direct(
res: *mut acb_struct,
a: acb_srcptr,
p: slong,
b: acb_srcptr,
q: slong,
z: *const acb_struct,
n: slong,
prec: slong,
);
pub fn acb_hypgeom_pfq_series_choose_n(
a: *const acb_poly_struct,
p: slong,
b: *const acb_poly_struct,
q: slong,
z: *const acb_poly_struct,
len: slong,
prec: slong,
) -> slong;
pub fn acb_hypgeom_pfq_series_sum_forward(
s: *mut acb_poly_struct,
t: *mut acb_poly_struct,
a: *const acb_poly_struct,
p: slong,
b: *const acb_poly_struct,
q: slong,
z: *const acb_poly_struct,
regularized: ::std::os::raw::c_int,
n: slong,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_pfq_series_sum_bs(
s: *mut acb_poly_struct,
t: *mut acb_poly_struct,
a: *const acb_poly_struct,
p: slong,
b: *const acb_poly_struct,
q: slong,
z: *const acb_poly_struct,
regularized: ::std::os::raw::c_int,
n: slong,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_pfq_series_sum_rs(
s: *mut acb_poly_struct,
t: *mut acb_poly_struct,
a: *const acb_poly_struct,
p: slong,
b: *const acb_poly_struct,
q: slong,
z: *const acb_poly_struct,
regularized: ::std::os::raw::c_int,
n: slong,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_pfq_series_sum(
s: *mut acb_poly_struct,
t: *mut acb_poly_struct,
a: *const acb_poly_struct,
p: slong,
b: *const acb_poly_struct,
q: slong,
z: *const acb_poly_struct,
regularized: ::std::os::raw::c_int,
n: slong,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_pfq_series_direct(
res: *mut acb_poly_struct,
a: *const acb_poly_struct,
p: slong,
b: *const acb_poly_struct,
q: slong,
z: *const acb_poly_struct,
regularized: ::std::os::raw::c_int,
n: slong,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_pfq(
res: *mut acb_struct,
a: acb_srcptr,
p: slong,
b: acb_srcptr,
q: slong,
z: *const acb_struct,
regularized: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_hypgeom_u_asymp(
res: *mut acb_struct,
a: *const acb_struct,
b: *const acb_struct,
z: *const acb_struct,
n: slong,
prec: slong,
);
pub fn acb_hypgeom_u_1f1_series(
res: *mut acb_poly_struct,
a: *const acb_poly_struct,
b: *const acb_poly_struct,
z: *const acb_poly_struct,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_u_1f1(
res: *mut acb_struct,
a: *const acb_struct,
b: *const acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_u(
res: *mut acb_struct,
a: *const acb_struct,
b: *const acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_u_use_asymp(
z: *const acb_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_hypgeom_m_asymp(
res: *mut acb_struct,
a: *const acb_struct,
b: *const acb_struct,
z: *const acb_struct,
regularized: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_hypgeom_m_1f1(
res: *mut acb_struct,
a: *const acb_struct,
b: *const acb_struct,
z: *const acb_struct,
regularized: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_hypgeom_m(
res: *mut acb_struct,
a: *const acb_struct,
b: *const acb_struct,
z: *const acb_struct,
regularized: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_hypgeom_1f1(
res: *mut acb_struct,
a: *const acb_struct,
b: *const acb_struct,
z: *const acb_struct,
regularized: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_hypgeom_bessel_j_deriv_bound(
res: *mut mag_struct,
nu: *const acb_struct,
z: *const acb_struct,
d: ulong,
);
pub fn acb_hypgeom_bessel_j_0f1(
res: *mut acb_struct,
nu: *const acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_bessel_j_asymp(
res: *mut acb_struct,
nu: *const acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_bessel_j(
res: *mut acb_struct,
nu: *const acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn _acb_hypgeom_bessel_j_series(
res: acb_ptr,
nu: *const acb_struct,
z: acb_srcptr,
zlen: slong,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_bessel_j_series(
res: *mut acb_poly_struct,
nu: *const acb_struct,
z: *const acb_poly_struct,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_bessel_i_0f1(
res: *mut acb_struct,
nu: *const acb_struct,
z: *const acb_struct,
scaled: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_hypgeom_bessel_i_asymp(
res: *mut acb_struct,
nu: *const acb_struct,
z: *const acb_struct,
scaled: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_hypgeom_bessel_i(
res: *mut acb_struct,
nu: *const acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_bessel_i_scaled(
res: *mut acb_struct,
nu: *const acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_bessel_k_0f1(
res: *mut acb_struct,
nu: *const acb_struct,
z: *const acb_struct,
scaled: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_hypgeom_bessel_k_0f1_series(
res: *mut acb_poly_struct,
n: *const acb_poly_struct,
z: *const acb_poly_struct,
scaled: ::std::os::raw::c_int,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_bessel_k_asymp(
res: *mut acb_struct,
nu: *const acb_struct,
z: *const acb_struct,
scaled: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_hypgeom_bessel_k(
res: *mut acb_struct,
nu: *const acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_bessel_k_scaled(
res: *mut acb_struct,
nu: *const acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_bessel_y(
res: *mut acb_struct,
nu: *const acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_bessel_jy(
res1: *mut acb_struct,
res2: *mut acb_struct,
nu: *const acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_0f1_asymp(
res: *mut acb_struct,
a: *const acb_struct,
z: *const acb_struct,
regularized: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_hypgeom_0f1_direct(
res: *mut acb_struct,
a: *const acb_struct,
z: *const acb_struct,
regularized: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_hypgeom_0f1(
res: *mut acb_struct,
a: *const acb_struct,
z: *const acb_struct,
regularized: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_hypgeom_airy_bound(
ai: *mut mag_struct,
aip: *mut mag_struct,
bi: *mut mag_struct,
bip: *mut mag_struct,
z: *const acb_struct,
);
pub fn acb_hypgeom_airy_asymp(
ai: *mut acb_struct,
aip: *mut acb_struct,
bi: *mut acb_struct,
bip: *mut acb_struct,
z: *const acb_struct,
n: slong,
prec: slong,
);
pub fn acb_hypgeom_airy_direct(
ai: *mut acb_struct,
aip: *mut acb_struct,
bi: *mut acb_struct,
bip: *mut acb_struct,
z: *const acb_struct,
n: slong,
prec: slong,
);
pub fn acb_hypgeom_airy(
ai: *mut acb_struct,
aip: *mut acb_struct,
bi: *mut acb_struct,
bip: *mut acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_airy_jet(
ai: acb_ptr,
bi: acb_ptr,
z: *const acb_struct,
len: slong,
prec: slong,
);
pub fn _acb_hypgeom_airy_series(
ai: acb_ptr,
ai_prime: acb_ptr,
bi: acb_ptr,
bi_prime: acb_ptr,
z: acb_srcptr,
zlen: slong,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_airy_series(
ai: *mut acb_poly_struct,
ai_prime: *mut acb_poly_struct,
bi: *mut acb_poly_struct,
bi_prime: *mut acb_poly_struct,
z: *const acb_poly_struct,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_coulomb(
F: *mut acb_struct,
G: *mut acb_struct,
Hpos: *mut acb_struct,
Hneg: *mut acb_struct,
l: *const acb_struct,
eta: *const acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_coulomb_jet(
F: acb_ptr,
G: acb_ptr,
Hpos: acb_ptr,
Hneg: acb_ptr,
l: *const acb_struct,
eta: *const acb_struct,
z: *const acb_struct,
len: slong,
prec: slong,
);
pub fn _acb_hypgeom_coulomb_series(
F: acb_ptr,
G: acb_ptr,
Hpos: acb_ptr,
Hneg: acb_ptr,
l: *const acb_struct,
eta: *const acb_struct,
z: acb_srcptr,
zlen: slong,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_coulomb_series(
F: *mut acb_poly_struct,
G: *mut acb_poly_struct,
Hpos: *mut acb_poly_struct,
Hneg: *mut acb_poly_struct,
l: *const acb_struct,
eta: *const acb_struct,
z: *const acb_poly_struct,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_gamma_upper_asymp(
res: *mut acb_struct,
s: *const acb_struct,
z: *const acb_struct,
modified: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_hypgeom_gamma_upper_1f1a(
res: *mut acb_struct,
s: *const acb_struct,
z: *const acb_struct,
modified: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_hypgeom_gamma_upper_1f1b(
res: *mut acb_struct,
s: *const acb_struct,
z: *const acb_struct,
modified: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_hypgeom_gamma_upper_singular(
res: *mut acb_struct,
s: slong,
z: *const acb_struct,
modified: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_hypgeom_gamma_upper(
res: *mut acb_struct,
s: *const acb_struct,
z: *const acb_struct,
modified: ::std::os::raw::c_int,
prec: slong,
);
pub fn _acb_hypgeom_gamma_upper_series(
g: acb_ptr,
s: *const acb_struct,
h: acb_srcptr,
hlen: slong,
regularized: ::std::os::raw::c_int,
n: slong,
prec: slong,
);
pub fn acb_hypgeom_gamma_upper_series(
g: *mut acb_poly_struct,
s: *const acb_struct,
h: *const acb_poly_struct,
regularized: ::std::os::raw::c_int,
n: slong,
prec: slong,
);
pub fn acb_hypgeom_gamma_lower(
res: *mut acb_struct,
s: *const acb_struct,
z: *const acb_struct,
modified: ::std::os::raw::c_int,
prec: slong,
);
pub fn _acb_hypgeom_gamma_lower_series(
g: acb_ptr,
s: *const acb_struct,
h: acb_srcptr,
hlen: slong,
regularized: ::std::os::raw::c_int,
n: slong,
prec: slong,
);
pub fn acb_hypgeom_gamma_lower_series(
g: *mut acb_poly_struct,
s: *const acb_struct,
h: *const acb_poly_struct,
regularized: ::std::os::raw::c_int,
n: slong,
prec: slong,
);
pub fn acb_hypgeom_beta_lower(
res: *mut acb_struct,
a: *const acb_struct,
b: *const acb_struct,
z: *const acb_struct,
regularized: ::std::os::raw::c_int,
prec: slong,
);
pub fn _acb_hypgeom_beta_lower_series(
res: acb_ptr,
a: *const acb_struct,
b: *const acb_struct,
z: acb_srcptr,
zlen: slong,
regularized: ::std::os::raw::c_int,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_beta_lower_series(
res: *mut acb_poly_struct,
a: *const acb_struct,
b: *const acb_struct,
z: *const acb_poly_struct,
regularized: ::std::os::raw::c_int,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_expint(
res: *mut acb_struct,
s: *const acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_erf_propagated_error(
re: *mut mag_struct,
im: *mut mag_struct,
z: *const acb_struct,
);
pub fn acb_hypgeom_erf_1f1a(res: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_hypgeom_erf_1f1b(res: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_hypgeom_erf_asymp(
res: *mut acb_struct,
z: *const acb_struct,
complementary: ::std::os::raw::c_int,
prec: slong,
prec2: slong,
);
pub fn acb_hypgeom_erf(res: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn _acb_hypgeom_erf_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_erf_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_erfc(res: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn _acb_hypgeom_erfc_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_erfc_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_erfi(res: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn _acb_hypgeom_erfi_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_erfi_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_fresnel(
res1: *mut acb_struct,
res2: *mut acb_struct,
z: *const acb_struct,
normalized: ::std::os::raw::c_int,
prec: slong,
);
pub fn _acb_hypgeom_fresnel_series(
s: acb_ptr,
c: acb_ptr,
h: acb_srcptr,
hlen: slong,
normalized: ::std::os::raw::c_int,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_fresnel_series(
s: *mut acb_poly_struct,
c: *mut acb_poly_struct,
h: *const acb_poly_struct,
normalized: ::std::os::raw::c_int,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_ei_asymp(res: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_hypgeom_ei_2f2(res: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_hypgeom_ei(res: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn _acb_hypgeom_ei_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_ei_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_si_asymp(res: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_hypgeom_si_1f2(res: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_hypgeom_si(res: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn _acb_hypgeom_si_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_si_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_ci_asymp(res: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_hypgeom_ci_2f3(res: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_hypgeom_ci(res: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn _acb_hypgeom_ci_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_ci_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_shi(res: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn _acb_hypgeom_shi_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_shi_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_chi_asymp(
res: *mut acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_chi_2f3(res: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn acb_hypgeom_chi(res: *mut acb_struct, z: *const acb_struct, prec: slong);
pub fn _acb_hypgeom_chi_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_chi_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_li(
res: *mut acb_struct,
z: *const acb_struct,
offset: ::std::os::raw::c_int,
prec: slong,
);
pub fn _acb_hypgeom_li_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
offset: ::std::os::raw::c_int,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_li_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
offset: ::std::os::raw::c_int,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_2f1_continuation(
res0: *mut acb_struct,
res1: *mut acb_struct,
a: *const acb_struct,
b: *const acb_struct,
c: *const acb_struct,
z0: *const acb_struct,
z1: *const acb_struct,
f0: *const acb_struct,
f1: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_2f1_series_direct(
res: *mut acb_poly_struct,
a: *const acb_poly_struct,
b: *const acb_poly_struct,
c: *const acb_poly_struct,
z: *const acb_poly_struct,
regularized: ::std::os::raw::c_int,
len: slong,
prec: slong,
);
pub fn acb_hypgeom_2f1_direct(
res: *mut acb_struct,
a: *const acb_struct,
b: *const acb_struct,
c: *const acb_struct,
z: *const acb_struct,
regularized: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_hypgeom_2f1_transform(
res: *mut acb_struct,
a: *const acb_struct,
b: *const acb_struct,
c: *const acb_struct,
z: *const acb_struct,
regularized: ::std::os::raw::c_int,
which: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_hypgeom_2f1_transform_limit(
res: *mut acb_struct,
a: *const acb_struct,
b: *const acb_struct,
c: *const acb_struct,
z: *const acb_struct,
regularized: ::std::os::raw::c_int,
which: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_hypgeom_2f1_corner(
res: *mut acb_struct,
a: *const acb_struct,
b: *const acb_struct,
c: *const acb_struct,
z: *const acb_struct,
regularized: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_hypgeom_2f1_choose(z: *const acb_struct) -> ::std::os::raw::c_int;
pub fn acb_hypgeom_2f1(
res: *mut acb_struct,
a: *const acb_struct,
b: *const acb_struct,
c: *const acb_struct,
z: *const acb_struct,
regularized: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_hypgeom_legendre_p_uiui_rec(
res: *mut acb_struct,
n: ulong,
m: ulong,
z: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_legendre_p(
res: *mut acb_struct,
n: *const acb_struct,
m: *const acb_struct,
z: *const acb_struct,
type_: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_hypgeom_legendre_q(
res: *mut acb_struct,
n: *const acb_struct,
m: *const acb_struct,
z: *const acb_struct,
type_: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_hypgeom_jacobi_p(
res: *mut acb_struct,
n: *const acb_struct,
a: *const acb_struct,
b: *const acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_gegenbauer_c(
res: *mut acb_struct,
n: *const acb_struct,
m: *const acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_laguerre_l(
res: *mut acb_struct,
n: *const acb_struct,
m: *const acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_hermite_h(
res: *mut acb_struct,
n: *const acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_chebyshev_t(
res: *mut acb_struct,
n: *const acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_chebyshev_u(
res: *mut acb_struct,
n: *const acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_spherical_y(
res: *mut acb_struct,
n: slong,
m: slong,
theta: *const acb_struct,
phi: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_dilog_bernoulli(
res: *mut acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_dilog_continuation(
res: *mut acb_struct,
a: *const acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_dilog_bitburst(
res: *mut acb_struct,
z0: *mut acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_dilog_transform(
res: *mut acb_struct,
z: *const acb_struct,
algorithm: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_hypgeom_dilog_zero_taylor(
res: *mut acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_dilog_zero(
res: *mut acb_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_hypgeom_dilog(res: *mut acb_struct, z: *const acb_struct, prec: slong);
}
/* acb_mat.h */
unsafe extern "C" {
pub fn acb_mat_entry_ptr(mat: *mut acb_mat_struct, i: slong, j: slong) -> acb_ptr;
pub fn acb_mat_init(mat: *mut acb_mat_struct, r: slong, c: slong);
pub fn acb_mat_clear(mat: *mut acb_mat_struct);
pub fn acb_mat_swap(mat1: *mut acb_mat_struct, mat2: *mut acb_mat_struct);
pub fn acb_mat_swap_entrywise(mat1: *mut acb_mat_struct, mat2: *mut acb_mat_struct);
pub fn acb_mat_window_init(
window: *mut acb_mat_struct,
mat: *const acb_mat_struct,
r1: slong,
c1: slong,
r2: slong,
c2: slong,
);
pub fn acb_mat_window_clear(UNUSED_window: *mut acb_mat_struct);
pub fn acb_mat_set(dest: *mut acb_mat_struct, src: *const acb_mat_struct);
pub fn acb_mat_set_fmpz_mat(dest: *mut acb_mat_struct, src: *const fmpz_mat_struct);
pub fn acb_mat_set_round_fmpz_mat(
dest: *mut acb_mat_struct,
src: *const fmpz_mat_struct,
prec: slong,
);
pub fn acb_mat_set_fmpq_mat(
dest: *mut acb_mat_struct,
src: *const fmpq_mat_struct,
prec: slong,
);
pub fn acb_mat_set_arb_mat(dest: *mut acb_mat_struct, src: *const arb_mat_struct);
pub fn acb_mat_set_round_arb_mat(
dest: *mut acb_mat_struct,
src: *const arb_mat_struct,
prec: slong,
);
pub fn acb_mat_get_real(re: *mut arb_mat_struct, mat: *const acb_mat_struct);
pub fn acb_mat_get_imag(im: *mut arb_mat_struct, mat: *const acb_mat_struct);
pub fn acb_mat_set_real_imag(
mat: *mut acb_mat_struct,
re: *const arb_mat_struct,
im: *const arb_mat_struct,
);
pub fn acb_mat_randtest(
mat: *mut acb_mat_struct,
state: *mut flint_rand_struct,
prec: slong,
mag_bits: slong,
);
pub fn acb_mat_randtest_eig(
A: *mut acb_mat_struct,
state: *mut flint_rand_struct,
E: acb_srcptr,
prec: slong,
);
pub fn acb_mat_fprintd(file: *mut FILE, mat: *const acb_mat_struct, digits: slong);
pub fn acb_mat_printd(mat: *const acb_mat_struct, digits: slong);
pub fn acb_mat_eq(
mat1: *const acb_mat_struct,
mat2: *const acb_mat_struct,
) -> ::std::os::raw::c_int;
pub fn acb_mat_ne(
mat1: *const acb_mat_struct,
mat2: *const acb_mat_struct,
) -> ::std::os::raw::c_int;
pub fn acb_mat_equal(
mat1: *const acb_mat_struct,
mat2: *const acb_mat_struct,
) -> ::std::os::raw::c_int;
pub fn acb_mat_overlaps(
mat1: *const acb_mat_struct,
mat2: *const acb_mat_struct,
) -> ::std::os::raw::c_int;
pub fn acb_mat_contains(
mat1: *const acb_mat_struct,
mat2: *const acb_mat_struct,
) -> ::std::os::raw::c_int;
pub fn acb_mat_contains_fmpq_mat(
mat1: *const acb_mat_struct,
mat2: *const fmpq_mat_struct,
) -> ::std::os::raw::c_int;
pub fn acb_mat_contains_fmpz_mat(
mat1: *const acb_mat_struct,
mat2: *const fmpz_mat_struct,
) -> ::std::os::raw::c_int;
pub fn acb_mat_is_real(mat: *const acb_mat_struct) -> ::std::os::raw::c_int;
pub fn acb_mat_is_empty(mat: *const acb_mat_struct) -> ::std::os::raw::c_int;
pub fn acb_mat_is_square(mat: *const acb_mat_struct) -> ::std::os::raw::c_int;
pub fn acb_mat_is_exact(mat: *const acb_mat_struct) -> ::std::os::raw::c_int;
pub fn acb_mat_is_zero(mat: *const acb_mat_struct) -> ::std::os::raw::c_int;
pub fn acb_mat_is_finite(mat: *const acb_mat_struct) -> ::std::os::raw::c_int;
pub fn acb_mat_is_triu(mat: *const acb_mat_struct) -> ::std::os::raw::c_int;
pub fn acb_mat_is_tril(mat: *const acb_mat_struct) -> ::std::os::raw::c_int;
pub fn acb_mat_is_diag(mat: *const acb_mat_struct) -> ::std::os::raw::c_int;
pub fn acb_mat_get_mid(B: *mut acb_mat_struct, A: *const acb_mat_struct);
pub fn acb_mat_add_error_mag(mat: *mut acb_mat_struct, err: *const mag_struct);
pub fn acb_mat_zero(mat: *mut acb_mat_struct);
pub fn acb_mat_one(mat: *mut acb_mat_struct);
pub fn acb_mat_ones(mat: *mut acb_mat_struct);
pub fn acb_mat_onei(mat: *mut acb_mat_struct);
pub fn acb_mat_indeterminate(mat: *mut acb_mat_struct);
pub fn acb_mat_dft(
res: *mut acb_mat_struct,
kind: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_mat_transpose(mat1: *mut acb_mat_struct, mat2: *const acb_mat_struct);
pub fn acb_mat_conjugate(mat1: *mut acb_mat_struct, mat2: *const acb_mat_struct);
pub fn acb_mat_conjugate_transpose(
mat1: *mut acb_mat_struct,
mat2: *const acb_mat_struct,
);
pub fn acb_mat_bound_inf_norm(b: *mut mag_struct, A: *const acb_mat_struct);
pub fn acb_mat_frobenius_norm(
res: *mut arb_struct,
A: *const acb_mat_struct,
prec: slong,
);
pub fn acb_mat_bound_frobenius_norm(b: *mut mag_struct, A: *const acb_mat_struct);
pub fn acb_mat_neg(dest: *mut acb_mat_struct, src: *const acb_mat_struct);
pub fn acb_mat_add(
res: *mut acb_mat_struct,
mat1: *const acb_mat_struct,
mat2: *const acb_mat_struct,
prec: slong,
);
pub fn acb_mat_sub(
res: *mut acb_mat_struct,
mat1: *const acb_mat_struct,
mat2: *const acb_mat_struct,
prec: slong,
);
pub fn acb_mat_mul_classical(
res: *mut acb_mat_struct,
mat1: *const acb_mat_struct,
mat2: *const acb_mat_struct,
prec: slong,
);
pub fn acb_mat_mul_threaded(
res: *mut acb_mat_struct,
mat1: *const acb_mat_struct,
mat2: *const acb_mat_struct,
prec: slong,
);
pub fn acb_mat_mul_reorder(
res: *mut acb_mat_struct,
mat1: *const acb_mat_struct,
mat2: *const acb_mat_struct,
prec: slong,
);
pub fn acb_mat_mul(
res: *mut acb_mat_struct,
mat1: *const acb_mat_struct,
mat2: *const acb_mat_struct,
prec: slong,
);
pub fn acb_mat_mul_entrywise(
res: *mut acb_mat_struct,
mat1: *const acb_mat_struct,
mat2: *const acb_mat_struct,
prec: slong,
);
pub fn acb_mat_sqr_classical(
res: *mut acb_mat_struct,
mat: *const acb_mat_struct,
prec: slong,
);
pub fn acb_mat_sqr(
res: *mut acb_mat_struct,
mat: *const acb_mat_struct,
prec: slong,
);
pub fn acb_mat_pow_ui(
B: *mut acb_mat_struct,
A: *const acb_mat_struct,
exp: ulong,
prec: slong,
);
pub fn acb_mat_scalar_mul_2exp_si(
B: *mut acb_mat_struct,
A: *const acb_mat_struct,
c: slong,
);
pub fn acb_mat_scalar_mul_si(
B: *mut acb_mat_struct,
A: *const acb_mat_struct,
c: slong,
prec: slong,
);
pub fn acb_mat_scalar_mul_fmpz(
B: *mut acb_mat_struct,
A: *const acb_mat_struct,
c: *const fmpz,
prec: slong,
);
pub fn acb_mat_scalar_mul_arb(
B: *mut acb_mat_struct,
A: *const acb_mat_struct,
c: *const arb_struct,
prec: slong,
);
pub fn acb_mat_scalar_mul_acb(
B: *mut acb_mat_struct,
A: *const acb_mat_struct,
c: *const acb_struct,
prec: slong,
);
pub fn acb_mat_scalar_addmul_si(
B: *mut acb_mat_struct,
A: *const acb_mat_struct,
c: slong,
prec: slong,
);
pub fn acb_mat_scalar_addmul_fmpz(
B: *mut acb_mat_struct,
A: *const acb_mat_struct,
c: *const fmpz,
prec: slong,
);
pub fn acb_mat_scalar_addmul_arb(
B: *mut acb_mat_struct,
A: *const acb_mat_struct,
c: *const arb_struct,
prec: slong,
);
pub fn acb_mat_scalar_addmul_acb(
B: *mut acb_mat_struct,
A: *const acb_mat_struct,
c: *const acb_struct,
prec: slong,
);
pub fn acb_mat_scalar_div_si(
B: *mut acb_mat_struct,
A: *const acb_mat_struct,
c: slong,
prec: slong,
);
pub fn acb_mat_scalar_div_fmpz(
B: *mut acb_mat_struct,
A: *const acb_mat_struct,
c: *const fmpz,
prec: slong,
);
pub fn acb_mat_scalar_div_arb(
B: *mut acb_mat_struct,
A: *const acb_mat_struct,
c: *const arb_struct,
prec: slong,
);
pub fn acb_mat_scalar_div_acb(
B: *mut acb_mat_struct,
A: *const acb_mat_struct,
c: *const acb_struct,
prec: slong,
);
pub fn _acb_mat_vector_mul_row(
res: acb_ptr,
v: acb_srcptr,
A: *const acb_mat_struct,
prec: slong,
);
pub fn _acb_mat_vector_mul_col(
res: acb_ptr,
A: *const acb_mat_struct,
v: acb_srcptr,
prec: slong,
);
pub fn acb_mat_vector_mul_row(
res: acb_ptr,
v: acb_srcptr,
A: *const acb_mat_struct,
prec: slong,
);
pub fn acb_mat_vector_mul_col(
res: acb_ptr,
A: *const acb_mat_struct,
v: acb_srcptr,
prec: slong,
);
pub fn acb_mat_swap_rows(
mat: *mut acb_mat_struct,
perm: *mut slong,
r: slong,
s: slong,
);
pub fn acb_mat_find_pivot_partial(
mat: *const acb_mat_struct,
start_row: slong,
end_row: slong,
c: slong,
) -> slong;
pub fn acb_mat_solve_tril_classical(
X: *mut acb_mat_struct,
L: *const acb_mat_struct,
B: *const acb_mat_struct,
unit: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_mat_solve_tril_recursive(
X: *mut acb_mat_struct,
L: *const acb_mat_struct,
B: *const acb_mat_struct,
unit: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_mat_solve_tril(
X: *mut acb_mat_struct,
L: *const acb_mat_struct,
B: *const acb_mat_struct,
unit: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_mat_solve_triu_classical(
X: *mut acb_mat_struct,
U: *const acb_mat_struct,
B: *const acb_mat_struct,
unit: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_mat_solve_triu_recursive(
X: *mut acb_mat_struct,
U: *const acb_mat_struct,
B: *const acb_mat_struct,
unit: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_mat_solve_triu(
X: *mut acb_mat_struct,
U: *const acb_mat_struct,
B: *const acb_mat_struct,
unit: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_mat_lu_classical(
P: *mut slong,
LU: *mut acb_mat_struct,
A: *const acb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_mat_lu_recursive(
P: *mut slong,
LU: *mut acb_mat_struct,
A: *const acb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_mat_lu(
P: *mut slong,
LU: *mut acb_mat_struct,
A: *const acb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_mat_solve_lu_precomp(
X: *mut acb_mat_struct,
perm: *const slong,
A: *const acb_mat_struct,
B: *const acb_mat_struct,
prec: slong,
);
pub fn acb_mat_solve_lu(
X: *mut acb_mat_struct,
A: *const acb_mat_struct,
B: *const acb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_mat_solve(
X: *mut acb_mat_struct,
A: *const acb_mat_struct,
B: *const acb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_mat_solve_precond(
X: *mut acb_mat_struct,
A: *const acb_mat_struct,
B: *const acb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_mat_approx_mul(
C: *mut acb_mat_struct,
A: *const acb_mat_struct,
B: *const acb_mat_struct,
prec: slong,
);
pub fn acb_mat_approx_solve_triu(
X: *mut acb_mat_struct,
U: *const acb_mat_struct,
B: *const acb_mat_struct,
unit: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_mat_approx_solve_tril(
X: *mut acb_mat_struct,
L: *const acb_mat_struct,
B: *const acb_mat_struct,
unit: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_mat_approx_lu(
P: *mut slong,
LU: *mut acb_mat_struct,
A: *const acb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_mat_approx_solve_lu_precomp(
X: *mut acb_mat_struct,
perm: *const slong,
A: *const acb_mat_struct,
B: *const acb_mat_struct,
prec: slong,
);
pub fn acb_mat_approx_solve(
X: *mut acb_mat_struct,
A: *const acb_mat_struct,
B: *const acb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_mat_approx_inv(
X: *mut acb_mat_struct,
A: *const acb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_mat_inv(
X: *mut acb_mat_struct,
A: *const acb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_mat_det_lu(det: *mut acb_struct, A: *const acb_mat_struct, prec: slong);
pub fn acb_mat_det_precond(
det: *mut acb_struct,
A: *const acb_mat_struct,
prec: slong,
);
pub fn acb_mat_det(det: *mut acb_struct, A: *const acb_mat_struct, prec: slong);
pub fn acb_mat_approx_eig_qr(
E: acb_ptr,
L: *mut acb_mat_struct,
R: *mut acb_mat_struct,
A: *const acb_mat_struct,
tol: *const mag_struct,
maxiter: slong,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_mat_eig_global_enclosure(
eps: *mut mag_struct,
A: *const acb_mat_struct,
E: acb_srcptr,
R: *const acb_mat_struct,
prec: slong,
);
pub fn acb_mat_eig_enclosure_rump(
lambda: *mut acb_struct,
J: *mut acb_mat_struct,
X: *mut acb_mat_struct,
A: *const acb_mat_struct,
lambda_approx: *const acb_struct,
X_approx: *const acb_mat_struct,
prec: slong,
);
pub fn acb_mat_eig_simple_rump(
E: acb_ptr,
L: *mut acb_mat_struct,
R: *mut acb_mat_struct,
A: *const acb_mat_struct,
E_approx: acb_srcptr,
R_approx: *const acb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_mat_eig_simple_vdhoeven_mourrain(
E: acb_ptr,
L: *mut acb_mat_struct,
R: *mut acb_mat_struct,
A: *const acb_mat_struct,
E_approx: acb_srcptr,
R_approx: *const acb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_mat_eig_simple(
E: acb_ptr,
L: *mut acb_mat_struct,
R: *mut acb_mat_struct,
A: *const acb_mat_struct,
E_approx: acb_srcptr,
R_approx: *const acb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_mat_eig_multiple_rump(
E: acb_ptr,
A: *const acb_mat_struct,
E_approx: acb_srcptr,
R_approx: *const acb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_mat_eig_multiple(
E: acb_ptr,
A: *const acb_mat_struct,
E_approx: acb_srcptr,
R_approx: *const acb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_mat_exp_taylor_sum(
S: *mut acb_mat_struct,
A: *const acb_mat_struct,
N: slong,
prec: slong,
);
pub fn acb_mat_exp(B: *mut acb_mat_struct, A: *const acb_mat_struct, prec: slong);
pub fn _acb_mat_charpoly(poly: acb_ptr, mat: *const acb_mat_struct, prec: slong);
pub fn acb_mat_charpoly(
poly: *mut acb_poly_struct,
mat: *const acb_mat_struct,
prec: slong,
);
pub fn _acb_mat_companion(mat: *mut acb_mat_struct, poly: acb_srcptr, prec: slong);
pub fn acb_mat_companion(
mat: *mut acb_mat_struct,
poly: *const acb_poly_struct,
prec: slong,
);
pub fn acb_mat_trace(
trace: *mut acb_struct,
mat: *const acb_mat_struct,
prec: slong,
);
pub fn _acb_mat_diag_prod(
res: *mut acb_struct,
A: *const acb_mat_struct,
a: slong,
b: slong,
prec: slong,
);
pub fn acb_mat_diag_prod(
res: *mut acb_struct,
A: *const acb_mat_struct,
prec: slong,
);
pub fn acb_mat_allocated_bytes(x: *const acb_mat_struct) -> slong;
}
/* acb_modular.h */
#[repr(C)]
pub struct psl2z_struct {
pub a: fmpz,
pub b: fmpz,
pub c: fmpz,
pub d: fmpz,
}
impl Default for psl2z_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 psl2z_t = [psl2z_struct; 1usize];
unsafe extern "C" {
pub fn psl2z_init(g: *mut psl2z_struct);
pub fn psl2z_clear(g: *mut psl2z_struct);
pub fn psl2z_swap(f: *mut psl2z_struct, g: *mut psl2z_struct);
pub fn psl2z_set(h: *mut psl2z_struct, g: *const psl2z_struct);
pub fn psl2z_one(g: *mut psl2z_struct);
pub fn psl2z_fprint(file: *mut FILE, g: *const psl2z_struct);
pub fn psl2z_print(g: *const psl2z_struct);
pub fn psl2z_equal(
f: *const psl2z_struct,
g: *const psl2z_struct,
) -> ::std::os::raw::c_int;
pub fn psl2z_mul(
h: *mut psl2z_struct,
f: *const psl2z_struct,
g: *const psl2z_struct,
);
pub fn psl2z_inv(h: *mut psl2z_struct, g: *const psl2z_struct);
pub fn psl2z_is_one(g: *const psl2z_struct) -> ::std::os::raw::c_int;
pub fn psl2z_is_correct(g: *const psl2z_struct) -> ::std::os::raw::c_int;
pub fn psl2z_randtest(
g: *mut psl2z_struct,
state: *mut flint_rand_struct,
bits: slong,
);
pub fn acb_modular_transform(
w: *mut acb_struct,
g: *const psl2z_struct,
z: *const acb_struct,
prec: slong,
);
pub fn acb_modular_fundamental_domain_approx_d(
g: *mut psl2z_struct,
x: f64,
y: f64,
one_minus_eps: f64,
);
pub fn acb_modular_fundamental_domain_approx_arf(
g: *mut psl2z_struct,
xx: *const arf_struct,
yy: *const arf_struct,
one_minus_eps: *const arf_struct,
prec: slong,
);
pub fn acb_modular_fundamental_domain_approx(
w: *mut acb_struct,
g: *mut psl2z_struct,
z: *const acb_struct,
one_minus_eps: *const arf_struct,
prec: slong,
);
pub fn acb_modular_is_in_fundamental_domain(
z: *const acb_struct,
tol: *const arf_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_modular_addseq_theta(
exponents: *mut slong,
aindex: *mut slong,
bindex: *mut slong,
num: slong,
);
pub fn acb_modular_addseq_eta(
exponents: *mut slong,
aindex: *mut slong,
bindex: *mut slong,
num: slong,
);
pub fn acb_modular_fill_addseq(tab: *mut slong, len: slong);
pub fn acb_modular_theta_transform(
R: *mut ::std::os::raw::c_int,
S: *mut ::std::os::raw::c_int,
C: *mut ::std::os::raw::c_int,
g: *const psl2z_struct,
);
pub fn acb_modular_theta_const_sum(
theta2: *mut acb_struct,
theta3: *mut acb_struct,
theta4: *mut acb_struct,
q: *const acb_struct,
prec: slong,
);
pub fn acb_modular_theta_const_sum_basecase(
theta2: *mut acb_struct,
theta3: *mut acb_struct,
theta4: *mut acb_struct,
q: *const acb_struct,
N: slong,
prec: slong,
);
pub fn acb_modular_theta_const_sum_rs(
theta2: *mut acb_struct,
theta3: *mut acb_struct,
theta4: *mut acb_struct,
q: *const acb_struct,
N: slong,
prec: slong,
);
pub fn acb_modular_theta_sum(
theta1: acb_ptr,
theta2: acb_ptr,
theta3: acb_ptr,
theta4: acb_ptr,
w: *const acb_struct,
w_is_unit: ::std::os::raw::c_int,
q: *const acb_struct,
len: slong,
prec: slong,
);
pub fn acb_modular_theta_notransform(
theta1: *mut acb_struct,
theta2: *mut acb_struct,
theta3: *mut acb_struct,
theta4: *mut acb_struct,
z: *const acb_struct,
tau: *const acb_struct,
prec: slong,
);
pub fn acb_modular_theta(
theta1: *mut acb_struct,
theta2: *mut acb_struct,
theta3: *mut acb_struct,
theta4: *mut acb_struct,
z: *const acb_struct,
tau: *const acb_struct,
prec: slong,
);
pub fn acb_modular_theta_jet_notransform(
theta1: acb_ptr,
theta2: acb_ptr,
theta3: acb_ptr,
theta4: acb_ptr,
z: *const acb_struct,
tau: *const acb_struct,
len: slong,
prec: slong,
);
pub fn acb_modular_theta_jet(
theta1: acb_ptr,
theta2: acb_ptr,
theta3: acb_ptr,
theta4: acb_ptr,
z: *const acb_struct,
tau: *const acb_struct,
len: slong,
prec: slong,
);
pub fn _acb_modular_theta_series(
theta1: acb_ptr,
theta2: acb_ptr,
theta3: acb_ptr,
theta4: acb_ptr,
z: acb_srcptr,
zlen: slong,
tau: *const acb_struct,
len: slong,
prec: slong,
);
pub fn acb_modular_theta_series(
theta1: *mut acb_poly_struct,
theta2: *mut acb_poly_struct,
theta3: *mut acb_poly_struct,
theta4: *mut acb_poly_struct,
z: *const acb_poly_struct,
tau: *const acb_struct,
len: slong,
prec: slong,
);
pub fn acb_modular_j(z: *mut acb_struct, tau: *const acb_struct, prec: slong);
pub fn acb_modular_epsilon_arg(g: *const psl2z_struct) -> ::std::os::raw::c_int;
pub fn acb_modular_eta_sum(eta: *mut acb_struct, q: *const acb_struct, prec: slong);
pub fn acb_modular_eta(z: *mut acb_struct, tau: *const acb_struct, prec: slong);
pub fn acb_modular_lambda(r: *mut acb_struct, tau: *const acb_struct, prec: slong);
pub fn acb_modular_delta(r: *mut acb_struct, tau: *const acb_struct, prec: slong);
pub fn acb_modular_eisenstein(
r: acb_ptr,
tau: *const acb_struct,
len: slong,
prec: slong,
);
pub fn acb_modular_elliptic_p(
r: *mut acb_struct,
z: *const acb_struct,
tau: *const acb_struct,
prec: slong,
);
pub fn acb_modular_elliptic_p_zpx(
r: acb_ptr,
z: *const acb_struct,
tau: *const acb_struct,
len: slong,
prec: slong,
);
pub fn acb_modular_elliptic_k(k: *mut acb_struct, m: *const acb_struct, prec: slong);
pub fn acb_modular_elliptic_k_cpx(
w: acb_ptr,
m: *const acb_struct,
len: slong,
prec: slong,
);
pub fn acb_modular_elliptic_e(
res: *mut acb_struct,
m: *const acb_struct,
prec: slong,
);
pub fn acb_modular_hilbert_class_poly(res: *mut fmpz_poly_struct, D: slong);
pub fn _acb_modular_mul(
z: *mut acb_struct,
tmp1: *mut acb_struct,
tmp2: *mut acb_struct,
x: *const acb_struct,
y: *const acb_struct,
wprec: slong,
prec: slong,
);
}
/* acb_poly.h */
unsafe extern "C" {
pub fn acb_poly_init(poly: *mut acb_poly_struct);
pub fn acb_poly_init2(poly: *mut acb_poly_struct, len: slong);
pub fn acb_poly_clear(poly: *mut acb_poly_struct);
pub fn acb_poly_fit_length(poly: *mut acb_poly_struct, len: slong);
pub fn _acb_poly_set_length(poly: *mut acb_poly_struct, len: slong);
pub fn _acb_poly_normalise(poly: *mut acb_poly_struct);
pub fn acb_poly_swap(poly1: *mut acb_poly_struct, poly2: *mut acb_poly_struct);
pub fn acb_poly_length(poly: *const acb_poly_struct) -> slong;
pub fn acb_poly_degree(poly: *const acb_poly_struct) -> slong;
pub fn acb_poly_valuation(poly: *const acb_poly_struct) -> slong;
pub fn acb_poly_is_zero(z: *const acb_poly_struct) -> ::std::os::raw::c_int;
pub fn acb_poly_is_one(z: *const acb_poly_struct) -> ::std::os::raw::c_int;
pub fn acb_poly_is_x(z: *const acb_poly_struct) -> ::std::os::raw::c_int;
pub fn acb_poly_zero(poly: *mut acb_poly_struct);
pub fn acb_poly_one(poly: *mut acb_poly_struct);
pub fn acb_poly_set_coeff_si(poly: *mut acb_poly_struct, n: slong, x: slong);
pub fn acb_poly_set_coeff_acb(
poly: *mut acb_poly_struct,
n: slong,
x: *const acb_struct,
);
pub fn acb_poly_get_coeff_acb(
x: *mut acb_struct,
poly: *const acb_poly_struct,
n: slong,
);
pub fn _acb_poly_shift_right(res: acb_ptr, poly: acb_srcptr, len: slong, n: slong);
pub fn acb_poly_shift_right(
res: *mut acb_poly_struct,
poly: *const acb_poly_struct,
n: slong,
);
pub fn _acb_poly_shift_left(res: acb_ptr, poly: acb_srcptr, len: slong, n: slong);
pub fn acb_poly_shift_left(
res: *mut acb_poly_struct,
poly: *const acb_poly_struct,
n: slong,
);
pub fn acb_poly_truncate(poly: *mut acb_poly_struct, newlen: slong);
pub fn _acb_poly_majorant(res: arb_ptr, vec: acb_srcptr, len: slong, prec: slong);
pub fn acb_poly_majorant(
res: *mut arb_poly_struct,
poly: *const acb_poly_struct,
prec: slong,
);
pub fn acb_poly_fprintd(
file: *mut FILE,
poly: *const acb_poly_struct,
digits: slong,
);
pub fn acb_poly_printd(poly: *const acb_poly_struct, digits: slong);
pub fn _acb_poly_evaluate_horner(
res: *mut acb_struct,
f: acb_srcptr,
len: slong,
a: *const acb_struct,
prec: slong,
);
pub fn acb_poly_evaluate_horner(
res: *mut acb_struct,
f: *const acb_poly_struct,
a: *const acb_struct,
prec: slong,
);
pub fn _acb_poly_evaluate_rectangular(
y: *mut acb_struct,
poly: acb_srcptr,
len: slong,
x: *const acb_struct,
prec: slong,
);
pub fn acb_poly_evaluate_rectangular(
res: *mut acb_struct,
f: *const acb_poly_struct,
a: *const acb_struct,
prec: slong,
);
pub fn _acb_poly_evaluate(
res: *mut acb_struct,
f: acb_srcptr,
len: slong,
a: *const acb_struct,
prec: slong,
);
pub fn acb_poly_evaluate(
res: *mut acb_struct,
f: *const acb_poly_struct,
a: *const acb_struct,
prec: slong,
);
pub fn _acb_poly_evaluate2_horner(
y: *mut acb_struct,
z: *mut acb_struct,
f: acb_srcptr,
len: slong,
x: *const acb_struct,
prec: slong,
);
pub fn acb_poly_evaluate2_horner(
y: *mut acb_struct,
z: *mut acb_struct,
f: *const acb_poly_struct,
x: *const acb_struct,
prec: slong,
);
pub fn _acb_poly_evaluate2_rectangular(
y: *mut acb_struct,
z: *mut acb_struct,
f: acb_srcptr,
len: slong,
x: *const acb_struct,
prec: slong,
);
pub fn acb_poly_evaluate2_rectangular(
y: *mut acb_struct,
z: *mut acb_struct,
f: *const acb_poly_struct,
x: *const acb_struct,
prec: slong,
);
pub fn _acb_poly_evaluate2(
y: *mut acb_struct,
z: *mut acb_struct,
f: acb_srcptr,
len: slong,
x: *const acb_struct,
prec: slong,
);
pub fn acb_poly_evaluate2(
y: *mut acb_struct,
z: *mut acb_struct,
f: *const acb_poly_struct,
x: *const acb_struct,
prec: slong,
);
pub fn _acb_poly_derivative(res: acb_ptr, poly: acb_srcptr, len: slong, prec: slong);
pub fn acb_poly_derivative(
res: *mut acb_poly_struct,
poly: *const acb_poly_struct,
prec: slong,
);
pub fn _acb_poly_nth_derivative(
res: acb_ptr,
poly: acb_srcptr,
n: ulong,
len: slong,
prec: slong,
);
pub fn acb_poly_nth_derivative(
res: *mut acb_poly_struct,
poly: *const acb_poly_struct,
n: ulong,
prec: slong,
);
pub fn _acb_poly_integral(res: acb_ptr, poly: acb_srcptr, len: slong, prec: slong);
pub fn acb_poly_integral(
res: *mut acb_poly_struct,
poly: *const acb_poly_struct,
prec: slong,
);
pub fn acb_poly_borel_transform(
res: *mut acb_poly_struct,
poly: *const acb_poly_struct,
prec: slong,
);
pub fn _acb_poly_borel_transform(
res: acb_ptr,
poly: acb_srcptr,
len: slong,
prec: slong,
);
pub fn acb_poly_inv_borel_transform(
res: *mut acb_poly_struct,
poly: *const acb_poly_struct,
prec: slong,
);
pub fn _acb_poly_inv_borel_transform(
res: acb_ptr,
poly: acb_srcptr,
len: slong,
prec: slong,
);
pub fn _acb_poly_binomial_transform_basecase(
b: acb_ptr,
a: acb_srcptr,
alen: slong,
len: slong,
prec: slong,
);
pub fn acb_poly_binomial_transform_basecase(
b: *mut acb_poly_struct,
a: *const acb_poly_struct,
len: slong,
prec: slong,
);
pub fn _acb_poly_binomial_transform_convolution(
b: acb_ptr,
a: acb_srcptr,
alen: slong,
len: slong,
prec: slong,
);
pub fn acb_poly_binomial_transform_convolution(
b: *mut acb_poly_struct,
a: *const acb_poly_struct,
len: slong,
prec: slong,
);
pub fn _acb_poly_binomial_transform(
b: acb_ptr,
a: acb_srcptr,
alen: slong,
len: slong,
prec: slong,
);
pub fn acb_poly_binomial_transform(
b: *mut acb_poly_struct,
a: *const acb_poly_struct,
len: slong,
prec: slong,
);
pub fn _acb_poly_graeffe_transform(
b: acb_ptr,
a: acb_srcptr,
len: slong,
prec: slong,
);
pub fn acb_poly_graeffe_transform(
b: *mut acb_poly_struct,
a: *const acb_poly_struct,
prec: slong,
);
pub fn acb_poly_set(dest: *mut acb_poly_struct, src: *const acb_poly_struct);
pub fn acb_poly_set_round(
dest: *mut acb_poly_struct,
src: *const acb_poly_struct,
prec: slong,
);
pub fn acb_poly_set_trunc(
res: *mut acb_poly_struct,
poly: *const acb_poly_struct,
n: slong,
);
pub fn acb_poly_set_trunc_round(
res: *mut acb_poly_struct,
poly: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn acb_poly_set_arb_poly(poly: *mut acb_poly_struct, re: *const arb_poly_struct);
pub fn acb_poly_set2_arb_poly(
poly: *mut acb_poly_struct,
re: *const arb_poly_struct,
im: *const arb_poly_struct,
);
pub fn acb_poly_set_fmpq_poly(
poly: *mut acb_poly_struct,
re: *const fmpq_poly_struct,
prec: slong,
);
pub fn acb_poly_set2_fmpq_poly(
poly: *mut acb_poly_struct,
re: *const fmpq_poly_struct,
im: *const fmpq_poly_struct,
prec: slong,
);
pub fn acb_poly_set_fmpz_poly(
poly: *mut acb_poly_struct,
src: *const fmpz_poly_struct,
prec: slong,
);
pub fn acb_poly_set2_fmpz_poly(
poly: *mut acb_poly_struct,
re: *const fmpz_poly_struct,
im: *const fmpz_poly_struct,
prec: slong,
);
pub fn acb_poly_get_unique_fmpz_poly(
res: *mut fmpz_poly_struct,
src: *const acb_poly_struct,
) -> ::std::os::raw::c_int;
pub fn acb_poly_set_acb(poly: *mut acb_poly_struct, c: *const acb_struct);
pub fn acb_poly_set_si(poly: *mut acb_poly_struct, c: slong);
pub fn acb_poly_randtest(
poly: *mut acb_poly_struct,
state: *mut flint_rand_struct,
len: slong,
prec: slong,
mag_bits: slong,
);
pub fn acb_poly_equal(
A: *const acb_poly_struct,
B: *const acb_poly_struct,
) -> ::std::os::raw::c_int;
pub fn acb_poly_contains_fmpz_poly(
poly1: *const acb_poly_struct,
poly2: *const fmpz_poly_struct,
) -> ::std::os::raw::c_int;
pub fn acb_poly_contains_fmpq_poly(
poly1: *const acb_poly_struct,
poly2: *const fmpq_poly_struct,
) -> ::std::os::raw::c_int;
pub fn _acb_poly_overlaps(
poly1: acb_srcptr,
len1: slong,
poly2: acb_srcptr,
len2: slong,
) -> ::std::os::raw::c_int;
pub fn acb_poly_overlaps(
poly1: *const acb_poly_struct,
poly2: *const acb_poly_struct,
) -> ::std::os::raw::c_int;
pub fn acb_poly_contains(
poly1: *const acb_poly_struct,
poly2: *const acb_poly_struct,
) -> ::std::os::raw::c_int;
pub fn acb_poly_is_real(poly: *const acb_poly_struct) -> ::std::os::raw::c_int;
pub fn _acb_poly_add(
res: acb_ptr,
poly1: acb_srcptr,
len1: slong,
poly2: acb_srcptr,
len2: slong,
prec: slong,
);
pub fn acb_poly_add(
res: *mut acb_poly_struct,
poly1: *const acb_poly_struct,
poly2: *const acb_poly_struct,
prec: slong,
);
pub fn acb_poly_add_si(
res: *mut acb_poly_struct,
poly: *const acb_poly_struct,
c: slong,
prec: slong,
);
pub fn _acb_poly_sub(
res: acb_ptr,
poly1: acb_srcptr,
len1: slong,
poly2: acb_srcptr,
len2: slong,
prec: slong,
);
pub fn acb_poly_sub(
res: *mut acb_poly_struct,
poly1: *const acb_poly_struct,
poly2: *const acb_poly_struct,
prec: slong,
);
pub fn acb_poly_add_series(
res: *mut acb_poly_struct,
poly1: *const acb_poly_struct,
poly2: *const acb_poly_struct,
len: slong,
prec: slong,
);
pub fn acb_poly_sub_series(
res: *mut acb_poly_struct,
poly1: *const acb_poly_struct,
poly2: *const acb_poly_struct,
len: slong,
prec: slong,
);
pub fn acb_poly_neg(res: *mut acb_poly_struct, poly: *const acb_poly_struct);
pub fn acb_poly_scalar_mul_2exp_si(
res: *mut acb_poly_struct,
poly: *const acb_poly_struct,
c: slong,
);
pub fn acb_poly_scalar_mul(
res: *mut acb_poly_struct,
poly: *const acb_poly_struct,
c: *const acb_struct,
prec: slong,
);
pub fn acb_poly_scalar_mul_si(
res: *mut acb_poly_struct,
poly: *const acb_poly_struct,
c: slong,
prec: slong,
);
pub fn acb_poly_scalar_div(
res: *mut acb_poly_struct,
poly: *const acb_poly_struct,
c: *const acb_struct,
prec: slong,
);
pub fn acb_poly_mullow_classical(
res: *mut acb_poly_struct,
poly1: *const acb_poly_struct,
poly2: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_mullow_classical(
res: acb_ptr,
poly1: acb_srcptr,
len1: slong,
poly2: acb_srcptr,
len2: slong,
n: slong,
prec: slong,
);
pub fn _acb_poly_mullow_transpose(
res: acb_ptr,
poly1: acb_srcptr,
len1: slong,
poly2: acb_srcptr,
len2: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_mullow_transpose(
res: *mut acb_poly_struct,
poly1: *const acb_poly_struct,
poly2: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_mullow_transpose_gauss(
res: acb_ptr,
poly1: acb_srcptr,
len1: slong,
poly2: acb_srcptr,
len2: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_mullow_transpose_gauss(
res: *mut acb_poly_struct,
poly1: *const acb_poly_struct,
poly2: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_mullow(
res: acb_ptr,
poly1: acb_srcptr,
len1: slong,
poly2: acb_srcptr,
len2: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_mullow(
res: *mut acb_poly_struct,
poly1: *const acb_poly_struct,
poly2: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_mul(
C: acb_ptr,
A: acb_srcptr,
lenA: slong,
B: acb_srcptr,
lenB: slong,
prec: slong,
);
pub fn acb_poly_mul(
res: *mut acb_poly_struct,
poly1: *const acb_poly_struct,
poly2: *const acb_poly_struct,
prec: slong,
);
pub fn _acb_poly_mulmid_transpose(
z: acb_ptr,
x: acb_srcptr,
xlen: slong,
y: acb_srcptr,
ylen: slong,
nlo: slong,
nhi: slong,
prec: slong,
);
pub fn acb_poly_mulmid_transpose(
res: *mut acb_poly_struct,
poly1: *const acb_poly_struct,
poly2: *const acb_poly_struct,
nlo: slong,
nhi: slong,
prec: slong,
);
pub fn _acb_poly_mulmid_classical(
z: acb_ptr,
x: acb_srcptr,
xlen: slong,
y: acb_srcptr,
ylen: slong,
nlo: slong,
nhi: slong,
prec: slong,
);
pub fn acb_poly_mulmid_classical(
res: *mut acb_poly_struct,
poly1: *const acb_poly_struct,
poly2: *const acb_poly_struct,
nlo: slong,
nhi: slong,
prec: slong,
);
pub fn _acb_poly_mulmid(
z: acb_ptr,
x: acb_srcptr,
xlen: slong,
y: acb_srcptr,
ylen: slong,
nlo: slong,
nhi: slong,
prec: slong,
);
pub fn acb_poly_mulmid(
res: *mut acb_poly_struct,
poly1: *const acb_poly_struct,
poly2: *const acb_poly_struct,
nlo: slong,
nhi: slong,
prec: slong,
);
pub fn _acb_poly_mul_monic(
res: acb_ptr,
poly1: acb_srcptr,
len1: slong,
poly2: acb_srcptr,
len2: slong,
prec: slong,
);
pub fn _acb_poly_inv_series(
Qinv: acb_ptr,
Q: acb_srcptr,
Qlen: slong,
len: slong,
prec: slong,
);
pub fn acb_poly_inv_series(
Qinv: *mut acb_poly_struct,
Q: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_div_series(
Q: acb_ptr,
A: acb_srcptr,
Alen: slong,
B: acb_srcptr,
Blen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_div_series(
Q: *mut acb_poly_struct,
A: *const acb_poly_struct,
B: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_reverse(res: acb_ptr, poly: acb_srcptr, len: slong, n: slong);
pub fn _acb_poly_div(
Q: acb_ptr,
A: acb_srcptr,
lenA: slong,
B: acb_srcptr,
lenB: slong,
prec: slong,
);
pub fn _acb_poly_divrem(
Q: acb_ptr,
R: acb_ptr,
A: acb_srcptr,
lenA: slong,
B: acb_srcptr,
lenB: slong,
prec: slong,
);
pub fn _acb_poly_rem(
R: acb_ptr,
A: acb_srcptr,
lenA: slong,
B: acb_srcptr,
lenB: slong,
prec: slong,
);
pub fn acb_poly_divrem(
Q: *mut acb_poly_struct,
R: *mut acb_poly_struct,
A: *const acb_poly_struct,
B: *const acb_poly_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn _acb_poly_div_root(
Q: acb_ptr,
R: *mut acb_struct,
A: acb_srcptr,
len: slong,
c: *const acb_struct,
prec: slong,
);
pub fn _acb_poly_taylor_shift(
poly: acb_ptr,
c: *const acb_struct,
n: slong,
prec: slong,
);
pub fn acb_poly_taylor_shift(
g: *mut acb_poly_struct,
f: *const acb_poly_struct,
c: *const acb_struct,
prec: slong,
);
pub fn _acb_poly_compose(
res: acb_ptr,
poly1: acb_srcptr,
len1: slong,
poly2: acb_srcptr,
len2: slong,
prec: slong,
);
pub fn acb_poly_compose(
res: *mut acb_poly_struct,
poly1: *const acb_poly_struct,
poly2: *const acb_poly_struct,
prec: slong,
);
pub fn _acb_poly_compose_series(
res: acb_ptr,
poly1: acb_srcptr,
len1: slong,
poly2: acb_srcptr,
len2: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_compose_series(
res: *mut acb_poly_struct,
poly1: *const acb_poly_struct,
poly2: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_revert_series(
Qinv: acb_ptr,
Q: acb_srcptr,
Qlen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_revert_series(
Qinv: *mut acb_poly_struct,
Q: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_evaluate_vec_fast_precomp(
vs: acb_ptr,
poly: acb_srcptr,
plen: slong,
tree: *mut acb_ptr,
len: slong,
prec: slong,
);
pub fn _acb_poly_evaluate_vec_fast(
ys: acb_ptr,
poly: acb_srcptr,
plen: slong,
xs: acb_srcptr,
n: slong,
prec: slong,
);
pub fn acb_poly_evaluate_vec_fast(
ys: acb_ptr,
poly: *const acb_poly_struct,
xs: acb_srcptr,
n: slong,
prec: slong,
);
pub fn _acb_poly_evaluate_vec_iter(
ys: acb_ptr,
poly: acb_srcptr,
plen: slong,
xs: acb_srcptr,
n: slong,
prec: slong,
);
pub fn acb_poly_evaluate_vec_iter(
ys: acb_ptr,
poly: *const acb_poly_struct,
xs: acb_srcptr,
n: slong,
prec: slong,
);
pub fn _acb_poly_interpolate_barycentric(
poly: acb_ptr,
xs: acb_srcptr,
ys: acb_srcptr,
n: slong,
prec: slong,
);
pub fn acb_poly_interpolate_barycentric(
poly: *mut acb_poly_struct,
xs: acb_srcptr,
ys: acb_srcptr,
n: slong,
prec: slong,
);
pub fn _acb_poly_interpolation_weights(
w: acb_ptr,
tree: *mut acb_ptr,
len: slong,
prec: slong,
);
pub fn _acb_poly_interpolate_fast_precomp(
poly: acb_ptr,
ys: acb_srcptr,
tree: *mut acb_ptr,
weights: acb_srcptr,
len: slong,
prec: slong,
);
pub fn _acb_poly_interpolate_fast(
poly: acb_ptr,
xs: acb_srcptr,
ys: acb_srcptr,
len: slong,
prec: slong,
);
pub fn acb_poly_interpolate_fast(
poly: *mut acb_poly_struct,
xs: acb_srcptr,
ys: acb_srcptr,
n: slong,
prec: slong,
);
pub fn _acb_poly_interpolate_newton(
poly: acb_ptr,
xs: acb_srcptr,
ys: acb_srcptr,
n: slong,
prec: slong,
);
pub fn acb_poly_interpolate_newton(
poly: *mut acb_poly_struct,
xs: acb_srcptr,
ys: acb_srcptr,
n: slong,
prec: slong,
);
pub fn _acb_poly_product_roots(poly: acb_ptr, xs: acb_srcptr, n: slong, prec: slong);
pub fn acb_poly_product_roots(
poly: *mut acb_poly_struct,
xs: acb_srcptr,
n: slong,
prec: slong,
);
pub fn _acb_poly_tree_alloc(len: slong) -> *mut acb_ptr;
pub fn _acb_poly_tree_free(tree: *mut acb_ptr, len: slong);
pub fn _acb_poly_tree_build(
tree: *mut acb_ptr,
roots: acb_srcptr,
len: slong,
prec: slong,
);
pub fn _acb_poly_root_inclusion(
r: *mut acb_struct,
m: *const acb_struct,
poly: acb_srcptr,
polyder: acb_srcptr,
len: slong,
prec: slong,
);
pub fn _acb_poly_validate_roots(
roots: acb_ptr,
poly: acb_srcptr,
len: slong,
prec: slong,
) -> slong;
pub fn _acb_poly_find_roots(
roots: acb_ptr,
poly: acb_srcptr,
initial: acb_srcptr,
len: slong,
maxiter: slong,
prec: slong,
) -> slong;
pub fn acb_poly_find_roots(
roots: acb_ptr,
poly: *const acb_poly_struct,
initial: acb_srcptr,
maxiter: slong,
prec: slong,
) -> slong;
pub fn _acb_poly_root_bound_fujiwara(
bound: *mut mag_struct,
poly: acb_srcptr,
len: slong,
);
pub fn acb_poly_root_bound_fujiwara(
bound: *mut mag_struct,
poly: *mut acb_poly_struct,
);
pub fn _acb_poly_validate_real_roots(
roots: acb_srcptr,
poly: acb_srcptr,
len: slong,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_poly_validate_real_roots(
roots: acb_srcptr,
poly: *const acb_poly_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn _acb_poly_pow_ui_trunc_binexp(
res: acb_ptr,
f: acb_srcptr,
flen: slong,
exp: ulong,
len: slong,
prec: slong,
);
pub fn acb_poly_pow_ui_trunc_binexp(
res: *mut acb_poly_struct,
poly: *const acb_poly_struct,
exp: ulong,
len: slong,
prec: slong,
);
pub fn _acb_poly_pow_ui(
res: acb_ptr,
f: acb_srcptr,
flen: slong,
exp: ulong,
prec: slong,
);
pub fn acb_poly_pow_ui(
res: *mut acb_poly_struct,
poly: *const acb_poly_struct,
exp: ulong,
prec: slong,
);
pub fn _acb_poly_rsqrt_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn acb_poly_rsqrt_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_sqrt_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn acb_poly_sqrt_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_log_series(
res: acb_ptr,
f: acb_srcptr,
flen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_log_series(
res: *mut acb_poly_struct,
f: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_log1p_series(
res: acb_ptr,
f: acb_srcptr,
flen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_log1p_series(
res: *mut acb_poly_struct,
f: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_atan_series(
res: acb_ptr,
f: acb_srcptr,
flen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_atan_series(
res: *mut acb_poly_struct,
f: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_atanh_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_atanh_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_asin_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_asin_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_asinh_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_asinh_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_acos_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_acos_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_acosh_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_acosh_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_exp_series_basecase(
f: acb_ptr,
h: acb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_exp_series_basecase(
f: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_exp_series(
f: acb_ptr,
h: acb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_exp_series(
f: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_exp_pi_i_series(
f: acb_ptr,
h: acb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_exp_pi_i_series(
f: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_sinh_cosh_series_basecase(
s: acb_ptr,
c: acb_ptr,
h: acb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_sinh_cosh_series_basecase(
s: *mut acb_poly_struct,
c: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_sinh_cosh_series_exponential(
s: acb_ptr,
c: acb_ptr,
h: acb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_sinh_cosh_series_exponential(
s: *mut acb_poly_struct,
c: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_sinh_cosh_series(
s: acb_ptr,
c: acb_ptr,
h: acb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_sinh_cosh_series(
s: *mut acb_poly_struct,
c: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_sinh_series(
s: acb_ptr,
h: acb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_sinh_series(
s: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_cosh_series(
c: acb_ptr,
h: acb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_cosh_series(
c: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_tanh_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_tanh_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_sin_cos_series(
s: acb_ptr,
c: acb_ptr,
h: acb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn acb_poly_sin_cos_series(
s: *mut acb_poly_struct,
c: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_sin_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_sin_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_cos_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_cos_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_sin_cos_pi_series(
s: acb_ptr,
c: acb_ptr,
h: acb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn acb_poly_sin_cos_pi_series(
s: *mut acb_poly_struct,
c: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_sin_pi_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_sin_pi_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_cos_pi_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_cos_pi_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_cot_pi_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn acb_poly_cot_pi_series(
res: *mut acb_poly_struct,
f: *const acb_poly_struct,
len: slong,
prec: slong,
);
pub fn _acb_poly_cot_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_cot_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_coth_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_coth_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_tan_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn acb_poly_tan_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_tan_pi_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_tan_pi_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_sinc_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_sinc_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_sinc_pi_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_sinc_pi_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_lambertw_series(
res: acb_ptr,
z: acb_srcptr,
zlen: slong,
k: *const fmpz,
flags: ::std::os::raw::c_int,
len: slong,
prec: slong,
);
pub fn acb_poly_lambertw_series(
res: *mut acb_poly_struct,
z: *const acb_poly_struct,
k: *const fmpz,
flags: ::std::os::raw::c_int,
len: slong,
prec: slong,
);
pub fn _acb_poly_gamma_series(
res: acb_ptr,
h: acb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn acb_poly_gamma_series(
res: *mut acb_poly_struct,
f: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_rgamma_series(
res: acb_ptr,
h: acb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn acb_poly_rgamma_series(
res: *mut acb_poly_struct,
f: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_lgamma_series(
res: acb_ptr,
h: acb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn acb_poly_lgamma_series(
res: *mut acb_poly_struct,
f: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_digamma_series(
res: acb_ptr,
h: acb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn acb_poly_digamma_series(
res: *mut acb_poly_struct,
f: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_rising_ui_series(
res: acb_ptr,
f: acb_srcptr,
flen: slong,
r: ulong,
trunc: slong,
prec: slong,
);
pub fn acb_poly_rising_ui_series(
res: *mut acb_poly_struct,
f: *const acb_poly_struct,
r: ulong,
trunc: slong,
prec: slong,
);
pub fn _acb_poly_pow_acb_series(
h: acb_ptr,
f: acb_srcptr,
flen: slong,
g: *const acb_struct,
len: slong,
prec: slong,
);
pub fn acb_poly_pow_acb_series(
h: *mut acb_poly_struct,
f: *const acb_poly_struct,
g: *const acb_struct,
len: slong,
prec: slong,
);
pub fn _acb_poly_pow_series(
h: acb_ptr,
f: acb_srcptr,
flen: slong,
g: acb_srcptr,
glen: slong,
len: slong,
prec: slong,
);
pub fn acb_poly_pow_series(
h: *mut acb_poly_struct,
f: *const acb_poly_struct,
g: *const acb_poly_struct,
len: slong,
prec: slong,
);
pub fn _acb_poly_binomial_pow_acb_series(
h: acb_ptr,
f: acb_srcptr,
flen: slong,
g: *const acb_struct,
len: slong,
prec: slong,
);
pub fn _acb_poly_acb_pow_cpx(
w: acb_ptr,
a: *const acb_struct,
b: *const acb_struct,
len: slong,
prec: slong,
);
pub fn _acb_poly_acb_invpow_cpx(
res: acb_ptr,
N: *const acb_struct,
c: *const acb_struct,
trunc: slong,
prec: slong,
);
pub fn _acb_poly_mullow_cpx(
res: acb_ptr,
src: acb_srcptr,
len: slong,
c: *const acb_struct,
trunc: slong,
prec: slong,
);
pub fn _acb_poly_powsum_series_naive(
z: acb_ptr,
s: *const acb_struct,
a: *const acb_struct,
q: *const acb_struct,
n: slong,
len: slong,
prec: slong,
);
pub fn _acb_poly_powsum_series_naive_threaded(
z: acb_ptr,
s: *const acb_struct,
a: *const acb_struct,
q: *const acb_struct,
n: slong,
len: slong,
prec: slong,
);
pub fn _acb_poly_powsum_one_series_sieved(
z: acb_ptr,
s: *const acb_struct,
n: slong,
len: slong,
prec: slong,
);
pub fn _acb_poly_zeta_em_sum(
z: acb_ptr,
s: *const acb_struct,
a: *const acb_struct,
deflate: ::std::os::raw::c_int,
N: ulong,
M: ulong,
d: slong,
prec: slong,
);
pub fn _acb_poly_zeta_em_choose_param(
bound: *mut mag_struct,
N: *mut ulong,
M: *mut ulong,
s: *const acb_struct,
a: *const acb_struct,
d: slong,
target: slong,
prec: slong,
);
pub fn _acb_poly_zeta_em_bound1(
bound: *mut mag_struct,
s: *const acb_struct,
a: *const acb_struct,
N: slong,
M: slong,
d: slong,
wp: slong,
);
pub fn _acb_poly_zeta_em_bound(
vec: arb_ptr,
s: *const acb_struct,
a: *const acb_struct,
N: ulong,
M: ulong,
d: slong,
wp: slong,
);
pub fn _acb_poly_zeta_em_tail_naive(
sum: acb_ptr,
s: *const acb_struct,
Na: *const acb_struct,
Nasx: acb_srcptr,
M: slong,
len: slong,
prec: slong,
);
pub fn _acb_poly_zeta_em_tail_bsplit(
z: acb_ptr,
s: *const acb_struct,
Na: *const acb_struct,
Nasx: acb_srcptr,
M: slong,
len: slong,
prec: slong,
);
pub fn _acb_poly_zeta_cpx_series(
z: acb_ptr,
s: *const acb_struct,
a: *const acb_struct,
deflate: ::std::os::raw::c_int,
d: slong,
prec: slong,
);
pub fn _acb_poly_zeta_series(
res: acb_ptr,
h: acb_srcptr,
hlen: slong,
a: *const acb_struct,
deflate: ::std::os::raw::c_int,
len: slong,
prec: slong,
);
pub fn acb_poly_zeta_series(
res: *mut acb_poly_struct,
f: *const acb_poly_struct,
a: *const acb_struct,
deflate: ::std::os::raw::c_int,
n: slong,
prec: slong,
);
pub fn _acb_poly_polylog_cpx_zeta(
w: acb_ptr,
s: *const acb_struct,
z: *const acb_struct,
len: slong,
prec: slong,
);
pub fn _acb_poly_polylog_cpx_small(
w: acb_ptr,
s: *const acb_struct,
z: *const acb_struct,
len: slong,
prec: slong,
);
pub fn _acb_poly_polylog_cpx(
w: acb_ptr,
s: *const acb_struct,
z: *const acb_struct,
len: slong,
prec: slong,
);
pub fn _acb_poly_polylog_series(
res: acb_ptr,
s: acb_srcptr,
slen: slong,
z: *const acb_struct,
len: slong,
prec: slong,
);
pub fn acb_poly_polylog_series(
res: *mut acb_poly_struct,
s: *const acb_poly_struct,
z: *const acb_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_agm1_series(
res: acb_ptr,
z: acb_srcptr,
zlen: slong,
len: slong,
prec: slong,
);
pub fn acb_poly_agm1_series(
res: *mut acb_poly_struct,
z: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_elliptic_k_series(
res: acb_ptr,
z: acb_srcptr,
zlen: slong,
len: slong,
prec: slong,
);
pub fn acb_poly_elliptic_k_series(
res: *mut acb_poly_struct,
z: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_elliptic_p_series(
res: acb_ptr,
z: acb_srcptr,
zlen: slong,
tau: *const acb_struct,
len: slong,
prec: slong,
);
pub fn acb_poly_elliptic_p_series(
res: *mut acb_poly_struct,
z: *const acb_poly_struct,
tau: *const acb_struct,
n: slong,
prec: slong,
);
pub fn _acb_poly_erf_series(
g: acb_ptr,
h: acb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn acb_poly_erf_series(
g: *mut acb_poly_struct,
h: *const acb_poly_struct,
n: slong,
prec: slong,
);
pub fn acb_poly_allocated_bytes(x: *const acb_poly_struct) -> slong;
pub fn cd_poly_roots_initial_values(
z_r: *mut f64,
z_i: *mut f64,
p_r: *const f64,
p_i: *const f64,
n: slong,
z0: *const f64,
d: slong,
);
pub fn cd_poly_weierstrass(
results_r: *mut f64,
results_i: *mut f64,
lc_r: f64,
lc_i: f64,
values_r: *const f64,
values_i: *const f64,
n_start: slong,
n_end: slong,
d: slong,
);
pub fn cd_poly_weierstrass_distinct_orders(
results_r: *mut f64,
results_i: *mut f64,
lc_r: f64,
lc_i: f64,
col_values_r: *const f64,
col_values_i: *const f64,
d: slong,
row_values_r: *const f64,
row_values_i: *const f64,
n_start: slong,
n_end: slong,
);
pub fn cd_poly_wdk_update(
z_r: *mut f64,
z_i: *mut f64,
vp_r: *const f64,
vp_i: *const f64,
wdk_r: *const f64,
wdk_i: *const f64,
n_start: slong,
n_end: slong,
stepsize_bound: f64,
) -> f64;
pub fn cd_poly_refine_roots(
z: *mut f64,
p: *const f64,
n: slong,
stepsize_bound: f64,
) -> f64;
pub fn cd_poly_refine_roots_with_pivot(
z: *mut f64,
p: *const f64,
n: slong,
stepsize_bound: f64,
) -> f64;
pub fn cd_poly_horner(
results_r: *mut f64,
results_i: *mut f64,
values_r: *const f64,
values_i: *const f64,
n_start: slong,
n_end: slong,
coefficients_r: *const f64,
coefficients_i: *const f64,
n: slong,
);
pub fn cd_poly_find_roots(
z: *mut f64,
p: *const f64,
z0: *const f64,
n: slong,
num_iter: slong,
reltol: f64,
) -> f64;
pub fn _acb_poly_find_roots_double(
roots: acb_ptr,
poly: acb_srcptr,
initial: acb_srcptr,
len: slong,
maxiter: slong,
prec: slong,
) -> f64;
}
/* acb_theta.h */
#[repr(C)]
pub struct acb_theta_eld_struct {
pub dim: slong,
pub ambient_dim: slong,
pub last_coords: *mut slong,
pub min: slong,
pub mid: slong,
pub max: slong,
pub nr: slong,
pub nl: slong,
pub rchildren: *mut acb_theta_eld_struct,
pub lchildren: *mut acb_theta_eld_struct,
pub nb_pts: slong,
pub nb_border: slong,
pub box_: *mut slong,
}
impl Default for acb_theta_eld_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 acb_theta_eld_t = [acb_theta_eld_struct; 1usize];
#[repr(C)]
pub struct acb_theta_ctx_tau_struct {
pub g: slong,
pub allow_shift: ::std::os::raw::c_int,
pub yinv: arb_mat_struct,
pub cho: arb_mat_struct,
pub exp_tau_div_4: acb_mat_t,
pub exp_tau_div_2: acb_mat_t,
pub exp_tau: acb_mat_t,
pub exp_tau_div_4_inv: acb_mat_t,
pub exp_tau_div_2_inv: acb_mat_t,
pub exp_tau_inv: acb_mat_t,
pub exp_tau_a: acb_ptr,
pub exp_tau_a_inv: acb_ptr,
pub exp_a_tau_a_div_4: acb_ptr,
}
impl Default for acb_theta_ctx_tau_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 acb_theta_ctx_tau_t = [acb_theta_ctx_tau_struct; 1usize];
#[repr(C)]
pub struct acb_theta_ctx_z_struct {
pub g: slong,
pub exp_z: acb_ptr,
pub exp_2z: acb_ptr,
pub exp_z_inv: acb_ptr,
pub exp_2z_inv: acb_ptr,
pub v: arb_ptr,
pub u: arb_struct,
pub uinv: arb_struct,
pub is_real: ::std::os::raw::c_int,
}
impl Default for acb_theta_ctx_z_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 acb_theta_ctx_z_t = [acb_theta_ctx_z_struct; 1usize];
pub type acb_theta_sum_worker_t = ::std::option::Option<
unsafe extern "C" fn(
arg1: acb_ptr,
arg2: acb_srcptr,
arg3: acb_srcptr,
arg4: *const slong,
arg5: slong,
arg6: *const acb_struct,
arg7: *const slong,
arg8: slong,
arg9: slong,
arg10: slong,
arg11: slong,
),
>;
unsafe extern "C" {
pub fn sp2gz_set_blocks(
mat: *mut fmpz_mat_struct,
alpha: *const fmpz_mat_struct,
beta: *const fmpz_mat_struct,
gamma: *const fmpz_mat_struct,
delta: *const fmpz_mat_struct,
);
pub fn sp2gz_j(mat: *mut fmpz_mat_struct);
pub fn sp2gz_block_diag(mat: *mut fmpz_mat_struct, U: *const fmpz_mat_struct);
pub fn sp2gz_trig(mat: *mut fmpz_mat_struct, S: *const fmpz_mat_struct);
pub fn sp2gz_embed(res: *mut fmpz_mat_struct, mat: *const fmpz_mat_struct);
pub fn sp2gz_restrict(res: *mut fmpz_mat_struct, mat: *const fmpz_mat_struct);
pub fn sp2gz_fundamental(mat: *mut fmpz_mat_struct, j: slong);
pub fn sp2gz_is_correct(mat: *const fmpz_mat_struct) -> ::std::os::raw::c_int;
pub fn sp2gz_is_j(mat: *const fmpz_mat_struct) -> ::std::os::raw::c_int;
pub fn sp2gz_is_block_diag(mat: *const fmpz_mat_struct) -> ::std::os::raw::c_int;
pub fn sp2gz_is_trig(mat: *const fmpz_mat_struct) -> ::std::os::raw::c_int;
pub fn sp2gz_is_embedded(
res: *mut fmpz_mat_struct,
mat: *const fmpz_mat_struct,
) -> ::std::os::raw::c_int;
pub fn sp2gz_inv(inv: *mut fmpz_mat_struct, mat: *const fmpz_mat_struct);
pub fn sp2gz_decompose(
nb: *mut slong,
mat: *const fmpz_mat_struct,
) -> *mut fmpz_mat_struct;
pub fn sp2gz_randtest(
mat: *mut fmpz_mat_struct,
state: *mut flint_rand_struct,
bits: slong,
);
pub fn acb_siegel_cocycle(
c: *mut acb_mat_struct,
mat: *const fmpz_mat_struct,
tau: *const acb_mat_struct,
prec: slong,
);
pub fn acb_siegel_transform_cocycle_inv(
w: *mut acb_mat_struct,
c: *mut acb_mat_struct,
cinv: *mut acb_mat_struct,
mat: *const fmpz_mat_struct,
tau: *const acb_mat_struct,
prec: slong,
);
pub fn acb_siegel_transform(
w: *mut acb_mat_struct,
mat: *const fmpz_mat_struct,
tau: *const acb_mat_struct,
prec: slong,
);
pub fn acb_siegel_cho_yinv(
cho: *mut arb_mat_struct,
yinv: *mut arb_mat_struct,
tau: *const acb_mat_struct,
prec: slong,
);
pub fn acb_siegel_reduce(
mat: *mut fmpz_mat_struct,
tau: *const acb_mat_struct,
prec: slong,
);
pub fn acb_siegel_is_reduced(
tau: *const acb_mat_struct,
tol_exp: slong,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_siegel_kappa(
sqrtdet: *mut acb_struct,
mat: *const fmpz_mat_struct,
tau: *const acb_mat_struct,
sqr: ::std::os::raw::c_int,
prec: slong,
) -> slong;
pub fn acb_siegel_kappa2(mat: *const fmpz_mat_struct) -> slong;
pub fn acb_siegel_randtest(
tau: *mut acb_mat_struct,
state: *mut flint_rand_struct,
prec: slong,
mag_bits: slong,
);
pub fn acb_siegel_randtest_reduced(
tau: *mut acb_mat_struct,
state: *mut flint_rand_struct,
prec: slong,
mag_bits: slong,
);
pub fn acb_siegel_randtest_compact(
tau: *mut acb_mat_struct,
state: *mut flint_rand_struct,
exact: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_siegel_randtest_vec(
z: acb_ptr,
state: *mut flint_rand_struct,
g: slong,
prec: slong,
);
pub fn acb_siegel_randtest_vec_reduced(
zs: acb_ptr,
state: *mut flint_rand_struct,
nb: slong,
tau: *const acb_mat_struct,
exact: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_theta_char_get_arb(v: arb_ptr, a: ulong, g: slong);
pub fn acb_theta_char_get_acb(v: acb_ptr, a: ulong, g: slong);
pub fn acb_theta_char_set_slong_vec(vec: *const slong, len: slong) -> ulong;
pub fn acb_theta_char_dot(a: ulong, b: ulong, g: slong) -> slong;
pub fn acb_theta_char_dot_slong(a: ulong, n: *const slong, g: slong) -> slong;
pub fn acb_theta_char_table(
ch: *mut ulong,
e: *mut slong,
mat: *const fmpz_mat_struct,
ab: ulong,
all: ::std::os::raw::c_int,
);
pub fn acb_theta_char_shuffle(
res: acb_ptr,
mat: *const fmpz_mat_struct,
th: acb_srcptr,
sqr: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_theta_jet_nb(ord: slong, g: slong) -> slong;
pub fn acb_theta_jet_total_order(tup: *const slong, g: slong) -> slong;
pub fn acb_theta_jet_tuples(tups: *mut slong, ord: slong, g: slong);
pub fn acb_theta_jet_index(tup: *const slong, g: slong) -> slong;
pub fn acb_theta_jet_mul(
res: acb_ptr,
v1: acb_srcptr,
v2: acb_srcptr,
ord: slong,
g: slong,
prec: slong,
);
pub fn acb_theta_jet_compose(
res: acb_ptr,
v: acb_srcptr,
N: *const acb_mat_struct,
ord: slong,
prec: slong,
);
pub fn acb_theta_jet_exp_pi_i(
res: acb_ptr,
a: arb_srcptr,
ord: slong,
g: slong,
prec: slong,
);
pub fn acb_theta_jet_exp_qf(
res: acb_ptr,
z: acb_srcptr,
N: *const acb_mat_struct,
ord: slong,
prec: slong,
);
pub fn acb_theta_eld_init(E: *mut acb_theta_eld_struct, d: slong, g: slong);
pub fn acb_theta_eld_clear(E: *mut acb_theta_eld_struct);
pub fn acb_theta_eld_set(
E: *mut acb_theta_eld_struct,
C: *const arb_mat_struct,
R2: *const arf_struct,
v: arb_srcptr,
) -> ::std::os::raw::c_int;
pub fn acb_theta_eld_points(pts: *mut slong, E: *const acb_theta_eld_struct);
pub fn acb_theta_eld_border(pts: *mut slong, E: *const acb_theta_eld_struct);
pub fn acb_theta_eld_contains(
E: *const acb_theta_eld_struct,
pt: *const slong,
) -> ::std::os::raw::c_int;
pub fn acb_theta_eld_print(E: *const acb_theta_eld_struct);
pub fn acb_theta_eld_distances(
ds: arb_ptr,
zs: acb_srcptr,
nb: slong,
tau: *const acb_mat_struct,
prec: slong,
);
pub fn acb_theta_sum_radius(
R2: *mut arf_struct,
eps: *mut arf_struct,
cho: *const arb_mat_struct,
ord: slong,
prec: slong,
);
pub fn acb_theta_sum_jet_radius(
R2: *mut arf_struct,
eps: *mut arf_struct,
cho: *const arb_mat_struct,
v: arb_srcptr,
ord: slong,
prec: slong,
);
pub fn acb_theta_sum_term(
res: *mut acb_struct,
z: acb_srcptr,
tau: *const acb_mat_struct,
tup: *const slong,
n: *const slong,
prec: slong,
);
pub fn acb_theta_sum_addprec(d: *const arb_struct) -> slong;
pub fn acb_theta_ctx_tau_init(
ctx: *mut acb_theta_ctx_tau_struct,
allow_shift: ::std::os::raw::c_int,
g: slong,
);
pub fn acb_theta_ctx_tau_clear(ctx: *mut acb_theta_ctx_tau_struct);
pub fn acb_theta_ctx_z_init(ctx: *mut acb_theta_ctx_z_struct, g: slong);
pub fn acb_theta_ctx_z_clear(ctx: *mut acb_theta_ctx_z_struct);
pub fn acb_theta_ctx_z_vec_init(nb: slong, g: slong) -> *mut acb_theta_ctx_z_struct;
pub fn acb_theta_ctx_z_vec_clear(vec: *mut acb_theta_ctx_z_struct, nb: slong);
pub fn acb_theta_ctx_exp_inv(
exp_inv: *mut acb_struct,
exp: *const acb_struct,
x: *const acb_struct,
is_real: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_theta_ctx_sqr_inv(
sqr_inv: *mut acb_struct,
inv: *const acb_struct,
sqr: *const acb_struct,
is_real: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_theta_ctx_tau_set(
ctx: *mut acb_theta_ctx_tau_struct,
tau: *const acb_mat_struct,
prec: slong,
);
pub fn acb_theta_ctx_tau_dupl(ctx: *mut acb_theta_ctx_tau_struct, prec: slong);
pub fn acb_theta_ctx_tau_overlaps(
ctx1: *const acb_theta_ctx_tau_struct,
ctx2: *const acb_theta_ctx_tau_struct,
) -> ::std::os::raw::c_int;
pub fn acb_theta_ctx_z_set(
ctx: *mut acb_theta_ctx_z_struct,
z: acb_srcptr,
ctx_tau: *const acb_theta_ctx_tau_struct,
prec: slong,
);
pub fn acb_theta_ctx_z_dupl(ctx: *mut acb_theta_ctx_z_struct, prec: slong);
pub fn acb_theta_ctx_z_add_real(
res: *mut acb_theta_ctx_z_struct,
ctx: *const acb_theta_ctx_z_struct,
ctx_real: *const acb_theta_ctx_z_struct,
prec: slong,
);
pub fn acb_theta_ctx_z_common_v(
v: arb_ptr,
vec: *const acb_theta_ctx_z_struct,
nb: slong,
prec: slong,
);
pub fn acb_theta_ctx_z_overlaps(
ctx1: *const acb_theta_ctx_z_struct,
ctx2: *const acb_theta_ctx_z_struct,
) -> ::std::os::raw::c_int;
pub fn acb_theta_sum_sqr_pow(
sqr_pow: *mut acb_ptr,
exp_tau: *const acb_mat_struct,
E: *const acb_theta_eld_struct,
prec: slong,
);
pub fn acb_theta_sum_work(
th: acb_ptr,
len: slong,
exp_z: acb_srcptr,
exp_z_inv: acb_srcptr,
exp_tau: *const acb_mat_struct,
exp_tau_inv: *const acb_mat_struct,
sqr_pow: *const acb_ptr,
E: *const acb_theta_eld_struct,
ord: slong,
prec: slong,
worker: acb_theta_sum_worker_t,
);
pub fn acb_theta_sum(
th: acb_ptr,
vec: *const acb_theta_ctx_z_struct,
nb: slong,
ctx_tau: *const acb_theta_ctx_tau_struct,
distances: arb_srcptr,
all_a: ::std::os::raw::c_int,
all_b: ::std::os::raw::c_int,
tilde: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_theta_sum_jet(
th: acb_ptr,
vec: *const acb_theta_ctx_z_struct,
nb: slong,
ctx_tau: *const acb_theta_ctx_tau_struct,
ord: slong,
all_a: ::std::os::raw::c_int,
all_b: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_theta_agm_sqrt(
res: acb_ptr,
a: acb_srcptr,
roots: acb_srcptr,
nb: slong,
prec: slong,
);
pub fn acb_theta_agm_mul(
res: acb_ptr,
a1: acb_srcptr,
a2: acb_srcptr,
g: slong,
all: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_theta_agm_mul_tight(
res: acb_ptr,
a0: acb_srcptr,
a: acb_srcptr,
d0: arb_srcptr,
d: arb_srcptr,
g: slong,
all: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_theta_ql_nb_steps(
pattern: *mut slong,
tau: *const acb_mat_struct,
cst: ::std::os::raw::c_int,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_theta_ql_lower_dim(
new_zs: *mut acb_ptr,
cofactors: *mut acb_ptr,
pts: *mut *mut slong,
nb: *mut slong,
err: *mut arf_struct,
fullprec: *mut slong,
z: acb_srcptr,
tau: *const acb_mat_struct,
distances: arb_srcptr,
s: slong,
a: ulong,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_theta_ql_recombine(
th: acb_ptr,
th0: acb_srcptr,
cofactors: acb_srcptr,
pts: *const slong,
nb: slong,
err: *const arf_struct,
fullprec: slong,
s: slong,
a: ulong,
all: ::std::os::raw::c_int,
g: slong,
prec: slong,
);
pub fn acb_theta_ql_setup(
rts: acb_ptr,
rts_all: acb_ptr,
t: acb_ptr,
guard: *mut slong,
easy_steps: *mut slong,
zs: acb_srcptr,
nb: slong,
tau: *const acb_mat_struct,
distances: arb_srcptr,
nb_steps: slong,
all: ::std::os::raw::c_int,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_theta_ql_exact(
th: acb_ptr,
zs: acb_srcptr,
nb: slong,
tau: *const acb_mat_struct,
pattern: *const slong,
all: ::std::os::raw::c_int,
shifted_prec: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_theta_ql_local_bound(
c: *mut arb_struct,
rho: *mut arb_struct,
z: acb_srcptr,
tau: *const acb_mat_struct,
ord: slong,
);
pub fn acb_theta_ql_jet_error(
err: arb_ptr,
z: acb_srcptr,
tau: *const acb_mat_struct,
dth: acb_srcptr,
ord: slong,
prec: slong,
);
pub fn acb_theta_ql_jet_fd(
th: acb_ptr,
zs: acb_srcptr,
nb: slong,
tau: *const acb_mat_struct,
ord: slong,
all: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_theta_ql_jet(
th: acb_ptr,
zs: acb_srcptr,
nb: slong,
tau: *const acb_mat_struct,
ord: slong,
all: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_theta_jet_notransform(
th: acb_ptr,
zs: acb_srcptr,
nb: slong,
tau: *const acb_mat_struct,
ord: slong,
ab: ulong,
all: ::std::os::raw::c_int,
sqr: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_theta_reduce_tau(
new_zs: acb_ptr,
new_tau: *mut acb_mat_struct,
mat: *mut fmpz_mat_struct,
N: *mut acb_mat_struct,
ct: *mut acb_mat_struct,
exps: acb_ptr,
zs: acb_srcptr,
nb: slong,
tau: *const acb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_theta_reduce_z(
new_zs: acb_ptr,
rs: arb_ptr,
cs: acb_ptr,
zs: acb_srcptr,
nb: slong,
tau: *const acb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn acb_theta_jet(
th: acb_ptr,
zs: acb_srcptr,
nb: slong,
tau: *const acb_mat_struct,
ord: slong,
ab: ulong,
all: ::std::os::raw::c_int,
sqr: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_theta_one(
th: acb_ptr,
z: acb_srcptr,
tau: *const acb_mat_struct,
ab: ulong,
prec: slong,
);
pub fn acb_theta_all(
th: acb_ptr,
z: acb_srcptr,
tau: *const acb_mat_struct,
sqr: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_theta_g2_detk_symj(
res: *mut acb_poly_struct,
m: *const acb_mat_struct,
f: *const acb_poly_struct,
k: slong,
j: slong,
prec: slong,
);
pub fn acb_theta_g2_transvectant(
res: *mut acb_poly_struct,
g: *const acb_poly_struct,
h: *const acb_poly_struct,
m: slong,
n: slong,
k: slong,
lead: ::std::os::raw::c_int,
prec: slong,
);
pub fn acb_theta_g2_character(mat: *const fmpz_mat_struct) -> slong;
pub fn acb_theta_g2_even_weight(
psi4: *mut acb_struct,
psi6: *mut acb_struct,
chi10: *mut acb_struct,
chi12: *mut acb_struct,
th2: acb_srcptr,
prec: slong,
);
pub fn acb_theta_g2_chi5(res: *mut acb_struct, th: acb_srcptr, prec: slong);
pub fn acb_theta_g2_chi35(res: *mut acb_struct, th: acb_srcptr, prec: slong);
pub fn acb_theta_g2_chi3_6(res: *mut acb_poly_struct, dth: acb_srcptr, prec: slong);
pub fn acb_theta_g2_sextic_chi5(
f: *mut acb_poly_struct,
chi5: *mut acb_struct,
tau: *const acb_mat_struct,
prec: slong,
);
pub fn acb_theta_g2_covariants(
res: *mut acb_poly_struct,
f: *const acb_poly_struct,
lead: ::std::os::raw::c_int,
prec: slong,
);
}
/* acb_types.h */
#[repr(C)]
pub struct acb_struct {
pub real: arb_struct,
pub imag: arb_struct,
}
impl Default for acb_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 acb_t = [acb_struct; 1usize];
pub type acb_ptr = *mut acb_struct;
pub type acb_srcptr = *const acb_struct;
#[repr(C)]
pub struct acb_mat_struct {
pub entries: acb_ptr,
pub r: slong,
pub c: slong,
pub stride: slong,
}
impl Default for acb_mat_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 acb_mat_t = [acb_mat_struct; 1usize];
#[repr(C)]
pub struct acb_poly_struct {
pub coeffs: acb_ptr,
pub alloc: slong,
pub length: slong,
}
impl Default for acb_poly_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 acb_poly_t = [acb_poly_struct; 1usize];
/* acf.h */
unsafe extern "C" {
pub fn acf_init(x: *mut acf_struct);
pub fn acf_clear(x: *mut acf_struct);
pub fn _acf_vec_init(n: slong) -> acf_ptr;
pub fn _acf_vec_clear(v: acf_ptr, n: slong);
pub fn acf_real_ptr(z: *mut acf_struct) -> arf_ptr;
pub fn acf_imag_ptr(z: *mut acf_struct) -> arf_ptr;
pub fn acf_set(z: *mut acf_struct, x: *const acf_struct);
pub fn acf_swap(z: *mut acf_struct, x: *mut acf_struct);
pub fn acf_equal(
x: *const acf_struct,
y: *const acf_struct,
) -> ::std::os::raw::c_int;
pub fn acf_printd(x: *const acf_struct, n: slong);
pub fn acf_bits(x: *const acf_struct) -> slong;
pub fn acf_allocated_bytes(x: *const acf_struct) -> slong;
pub fn acf_randtest(
x: *mut acf_struct,
state: *mut flint_rand_struct,
bits: slong,
mag_bits: slong,
);
pub fn acf_get_mag(res: *mut mag_struct, x: *const acf_struct);
pub fn acf_neg(z: *mut acf_struct, x: *const acf_struct);
pub fn acf_set_round(
res: *mut acf_struct,
x: *const acf_struct,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn acf_neg_round(
res: *mut acf_struct,
x: *const acf_struct,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn acf_add(
res: *mut acf_struct,
x: *const acf_struct,
y: *const acf_struct,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn acf_sub(
res: *mut acf_struct,
x: *const acf_struct,
y: *const acf_struct,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn acf_mul(
res: *mut acf_struct,
x: *const acf_struct,
y: *const acf_struct,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn acf_approx_inv(
res: *mut acf_struct,
x: *const acf_struct,
prec: slong,
rnd: arf_rnd_t,
);
pub fn acf_approx_div(
res: *mut acf_struct,
x: *const acf_struct,
y: *const acf_struct,
prec: slong,
rnd: arf_rnd_t,
);
pub fn acf_approx_sqrt(
res: *mut acf_struct,
x: *const acf_struct,
prec: slong,
rnd: arf_rnd_t,
);
pub fn acf_approx_dot(
res: *mut acf_struct,
initial: *const acf_struct,
subtract: ::std::os::raw::c_int,
x: acf_srcptr,
xstep: slong,
y: acf_srcptr,
ystep: slong,
len: slong,
prec: slong,
rnd: arf_rnd_t,
);
}
/* acf_types.h */
#[repr(C)]
pub struct acf_struct {
pub real: arf_struct,
pub imag: arf_struct,
}
impl Default for acf_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 acf_t = [acf_struct; 1usize];
pub type acf_ptr = *mut acf_struct;
pub type acf_srcptr = *const acf_struct;
/* aprcl.h */
#[repr(C)]
pub struct _aprcl_config {
pub R: ulong,
pub s: fmpz_t,
pub rs: n_factor_t,
pub qs: fmpz_factor_t,
pub qs_used: *mut ::std::os::raw::c_int,
}
impl Default for _aprcl_config {
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 aprcl_config = [_aprcl_config; 1usize];
#[repr(C)]
pub struct _unity_zpq {
pub polys: *mut fmpz_mod_poly_t,
pub p: ulong,
pub q: ulong,
pub ctx: fmpz_mod_ctx_t,
}
impl Default for _unity_zpq {
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 unity_zpq = [_unity_zpq; 1usize];
#[repr(C)]
pub struct _unity_zp {
pub poly: fmpz_mod_poly_t,
pub p: ulong,
pub exp: ulong,
pub ctx: fmpz_mod_ctx_t,
}
impl Default for _unity_zp {
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 unity_zp = [_unity_zp; 1usize];
pub const primality_test_status_UNKNOWN: primality_test_status = 0;
pub const primality_test_status_PRIME: primality_test_status = 1;
pub const primality_test_status_COMPOSITE: primality_test_status = 2;
pub const primality_test_status_PROBABPRIME: primality_test_status = 3;
pub type primality_test_status = ::std::os::raw::c_uint;
unsafe extern "C" {
pub fn _aprcl_p_ind(conf: *const _aprcl_config, p: ulong) -> ::std::os::raw::c_int;
pub fn aprcl_p_power_in_q(q: ulong, p: ulong) -> ulong;
pub fn aprcl_is_mul_coprime_ui_ui(
x: ulong,
y: ulong,
n: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn aprcl_is_mul_coprime_ui_fmpz(
x: ulong,
y: *const fmpz,
n: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn aprcl_is_prime(n: *const fmpz) -> ::std::os::raw::c_int;
pub fn aprcl_config_gauss_init(conf: *mut _aprcl_config, n: *const fmpz);
pub fn aprcl_config_gauss_init_min_R(
conf: *mut _aprcl_config,
n: *const fmpz,
R: ulong,
);
pub fn aprcl_config_gauss_clear(conf: *mut _aprcl_config);
pub fn aprcl_R_value(n: *const fmpz) -> ulong;
pub fn aprcl_config_jacobi_init(conf: *mut _aprcl_config, n: *const fmpz);
pub fn aprcl_config_jacobi_clear(conf: *mut _aprcl_config);
pub fn aprcl_is_prime_gauss(n: *const fmpz) -> ::std::os::raw::c_int;
pub fn aprcl_is_prime_gauss_min_R(n: *const fmpz, R: ulong) -> ::std::os::raw::c_int;
pub fn _aprcl_is_prime_gauss(
n: *const fmpz,
config: *const _aprcl_config,
) -> primality_test_status;
pub fn _aprcl_is_gausspower_2q_equal_first(
q: ulong,
n: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn _aprcl_is_gausspower_2q_equal_second(
q: ulong,
n: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn _aprcl_is_gausspower_from_unity_p(
q: ulong,
r: ulong,
n: *const fmpz,
) -> slong;
pub fn aprcl_is_prime_jacobi(n: *const fmpz) -> ::std::os::raw::c_int;
pub fn _aprcl_is_prime_jacobi(
n: *const fmpz,
config: *const _aprcl_config,
) -> primality_test_status;
pub fn _aprcl_is_prime_jacobi_check_pk(
j: *const _unity_zp,
u: *const fmpz,
v: ulong,
) -> slong;
pub fn _aprcl_is_prime_jacobi_check_21(q: ulong, n: *const fmpz) -> slong;
pub fn _aprcl_is_prime_jacobi_check_22(
j: *const _unity_zp,
u: *const fmpz,
v: ulong,
q: ulong,
) -> slong;
pub fn _aprcl_is_prime_jacobi_check_2k(
j: *const _unity_zp,
j2_1: *const _unity_zp,
j2_2: *const _unity_zp,
u: *const fmpz,
v: ulong,
) -> slong;
pub fn _aprcl_is_prime_jacobi_additional_test(
n: *const fmpz,
p: ulong,
) -> ::std::os::raw::c_int;
pub fn aprcl_is_prime_final_division(
n: *const fmpz,
s: *const fmpz,
r: ulong,
) -> ::std::os::raw::c_int;
pub fn unity_zp_init(f: *mut _unity_zp, p: ulong, exp: ulong, n: *const fmpz);
pub fn unity_zp_clear(f: *mut _unity_zp);
pub fn unity_zp_copy(f: *mut _unity_zp, g: *const _unity_zp);
pub fn unity_zp_swap(f: *mut _unity_zp, g: *mut _unity_zp);
pub fn unity_zp_set_zero(f: *mut _unity_zp);
pub fn unity_zp_is_unity(f: *mut _unity_zp) -> slong;
pub fn unity_zp_equal(f: *mut _unity_zp, g: *mut _unity_zp) -> ::std::os::raw::c_int;
pub fn unity_zp_coeff_set_fmpz(f: *mut _unity_zp, ind: ulong, x: *const fmpz);
pub fn unity_zp_coeff_set_ui(f: *mut _unity_zp, ind: ulong, x: ulong);
pub fn unity_zp_coeff_add_fmpz(f: *mut _unity_zp, ind: ulong, x: *const fmpz);
pub fn unity_zp_coeff_add_ui(f: *mut _unity_zp, ind: ulong, x: ulong);
pub fn unity_zp_coeff_inc(f: *mut _unity_zp, ind: ulong);
pub fn unity_zp_coeff_dec(f: *mut _unity_zp, ind: ulong);
pub fn unity_zp_mul_scalar_ui(f: *mut _unity_zp, g: *const _unity_zp, s: ulong);
pub fn unity_zp_add(f: *mut _unity_zp, g: *const _unity_zp, h: *const _unity_zp);
pub fn unity_zp_mul(f: *mut _unity_zp, g: *const _unity_zp, h: *const _unity_zp);
pub fn unity_zp_sqr(f: *mut _unity_zp, g: *const _unity_zp);
pub fn unity_zp_mul_inplace(
f: *mut _unity_zp,
g: *const _unity_zp,
h: *const _unity_zp,
t: *mut fmpz_t,
);
pub fn unity_zp_sqr_inplace(f: *mut _unity_zp, g: *const _unity_zp, t: *mut fmpz_t);
pub fn unity_zp_ar1(t: *mut fmpz_t);
pub fn unity_zp_ar2(t: *mut fmpz_t);
pub fn unity_zp_ar3(t: *mut fmpz_t);
pub fn unity_zp_ar4(t: *mut fmpz_t);
pub fn unity_zp_mul3(
f: *mut _unity_zp,
g: *const _unity_zp,
h: *const _unity_zp,
t: *mut fmpz_t,
);
pub fn unity_zp_mul4(
f: *mut _unity_zp,
g: *const _unity_zp,
h: *const _unity_zp,
t: *mut fmpz_t,
);
pub fn unity_zp_mul5(
f: *mut _unity_zp,
g: *const _unity_zp,
h: *const _unity_zp,
t: *mut fmpz_t,
);
pub fn unity_zp_mul7(
f: *mut _unity_zp,
g: *const _unity_zp,
h: *const _unity_zp,
t: *mut fmpz_t,
);
pub fn unity_zp_mul8(
f: *mut _unity_zp,
g: *const _unity_zp,
h: *const _unity_zp,
t: *mut fmpz_t,
);
pub fn unity_zp_mul9(
f: *mut _unity_zp,
g: *const _unity_zp,
h: *const _unity_zp,
t: *mut fmpz_t,
);
pub fn unity_zp_mul11(
f: *mut _unity_zp,
g: *const _unity_zp,
h: *const _unity_zp,
t: *mut fmpz_t,
);
pub fn unity_zp_mul16(
f: *mut _unity_zp,
g: *const _unity_zp,
h: *const _unity_zp,
t: *mut fmpz_t,
);
pub fn unity_zp_sqr3(f: *mut _unity_zp, g: *const _unity_zp, t: *mut fmpz_t);
pub fn unity_zp_sqr4(f: *mut _unity_zp, g: *const _unity_zp, t: *mut fmpz_t);
pub fn unity_zp_sqr5(f: *mut _unity_zp, g: *const _unity_zp, t: *mut fmpz_t);
pub fn unity_zp_sqr7(f: *mut _unity_zp, g: *const _unity_zp, t: *mut fmpz_t);
pub fn unity_zp_sqr8(f: *mut _unity_zp, g: *const _unity_zp, t: *mut fmpz_t);
pub fn unity_zp_sqr9(f: *mut _unity_zp, g: *const _unity_zp, t: *mut fmpz_t);
pub fn unity_zp_sqr11(f: *mut _unity_zp, g: *const _unity_zp, t: *mut fmpz_t);
pub fn unity_zp_sqr16(f: *mut _unity_zp, g: *const _unity_zp, t: *mut fmpz_t);
pub fn unity_zp_pow_fmpz(f: *mut _unity_zp, g: *const _unity_zp, pow: *const fmpz);
pub fn unity_zp_pow_ui(f: *mut _unity_zp, g: *const _unity_zp, pow: ulong);
pub fn _unity_zp_pow_select_k(n: *const fmpz) -> ulong;
pub fn unity_zp_pow_2k_fmpz(
f: *mut _unity_zp,
g: *const _unity_zp,
pow: *const fmpz,
);
pub fn unity_zp_pow_2k_ui(f: *mut _unity_zp, g: *const _unity_zp, pow: ulong);
pub fn unity_zp_pow_sliding_fmpz(
f: *mut _unity_zp,
g: *mut _unity_zp,
pow: *const fmpz,
);
pub fn _unity_zp_reduce_cyclotomic_divmod(f: *mut _unity_zp);
pub fn _unity_zp_reduce_cyclotomic(f: *mut _unity_zp);
pub fn unity_zp_reduce_cyclotomic(f: *mut _unity_zp, g: *const _unity_zp);
pub fn unity_zp_aut(f: *mut _unity_zp, g: *const _unity_zp, x: ulong);
pub fn unity_zp_aut_inv(f: *mut _unity_zp, g: *const _unity_zp, x: ulong);
pub fn aprcl_f_table(q: ulong) -> nn_ptr;
pub fn _unity_zp_jacobi_sum_pq_general(
f: *mut _unity_zp,
table: nn_ptr,
p: ulong,
q: ulong,
k: ulong,
a: ulong,
b: ulong,
);
pub fn unity_zp_jacobi_sum_pq(f: *mut _unity_zp, q: ulong, p: ulong);
pub fn unity_zp_jacobi_sum_2q_one(f: *mut _unity_zp, q: ulong);
pub fn unity_zp_jacobi_sum_2q_two(f: *mut _unity_zp, q: ulong);
pub fn unity_zpq_init(f: *mut _unity_zpq, q: ulong, p: ulong, n: *const fmpz);
pub fn unity_zpq_clear(f: *mut _unity_zpq);
pub fn unity_zpq_copy(f: *mut _unity_zpq, g: *const _unity_zpq);
pub fn unity_zpq_swap(f: *mut _unity_zpq, g: *mut _unity_zpq);
pub fn unity_zpq_equal(
f: *const _unity_zpq,
g: *const _unity_zpq,
) -> ::std::os::raw::c_int;
pub fn unity_zpq_coeff_set_fmpz(
f: *mut _unity_zpq,
i: slong,
j: slong,
x: *const fmpz,
);
pub fn unity_zpq_coeff_set_ui(f: *mut _unity_zpq, i: slong, j: slong, x: ulong);
pub fn unity_zpq_coeff_add(f: *mut _unity_zpq, i: slong, j: slong, x: *const fmpz);
pub fn unity_zpq_coeff_add_ui(f: *mut _unity_zpq, i: slong, j: slong, x: ulong);
pub fn unity_zpq_add(f: *mut _unity_zpq, g: *const _unity_zpq, h: *const _unity_zpq);
pub fn unity_zpq_mul(f: *mut _unity_zpq, g: *const _unity_zpq, h: *const _unity_zpq);
pub fn _unity_zpq_mul_unity_p(f: *mut _unity_zpq);
pub fn unity_zpq_mul_unity_p_pow(f: *mut _unity_zpq, g: *const _unity_zpq, p: slong);
pub fn unity_zpq_pow(f: *mut _unity_zpq, g: *const _unity_zpq, p: *const fmpz);
pub fn unity_zpq_pow_ui(f: *mut _unity_zpq, g: *const _unity_zpq, pow: ulong);
pub fn unity_zpq_gauss_sum(f: *mut _unity_zpq, q: ulong, p: ulong);
pub fn unity_zpq_gauss_sum_character_pow(
f: *mut _unity_zpq,
q: ulong,
p: ulong,
pow: ulong,
);
pub fn unity_zpq_gauss_sum_sigma_pow(f: *mut _unity_zpq, q: ulong, p: ulong);
}
/* arb.h */
unsafe extern "C" {
pub fn arb_init(x: *mut arb_struct);
pub fn arb_clear(x: *mut arb_struct);
pub fn _arb_vec_init(n: slong) -> arb_ptr;
pub fn _arb_vec_clear(v: arb_ptr, n: slong);
pub fn arb_mid_ptr(z: *mut arb_struct) -> arf_ptr;
pub fn arb_rad_ptr(z: *mut arb_struct) -> mag_ptr;
pub fn arb_is_exact(x: *const arb_struct) -> ::std::os::raw::c_int;
pub fn arb_equal(
x: *const arb_struct,
y: *const arb_struct,
) -> ::std::os::raw::c_int;
pub fn arb_equal_si(x: *const arb_struct, y: slong) -> ::std::os::raw::c_int;
pub fn arb_eq(x: *const arb_struct, y: *const arb_struct) -> ::std::os::raw::c_int;
pub fn arb_ne(x: *const arb_struct, y: *const arb_struct) -> ::std::os::raw::c_int;
pub fn arb_lt(x: *const arb_struct, y: *const arb_struct) -> ::std::os::raw::c_int;
pub fn arb_le(x: *const arb_struct, y: *const arb_struct) -> ::std::os::raw::c_int;
pub fn arb_gt(x: *const arb_struct, y: *const arb_struct) -> ::std::os::raw::c_int;
pub fn arb_ge(x: *const arb_struct, y: *const arb_struct) -> ::std::os::raw::c_int;
pub fn arb_zero(x: *mut arb_struct);
pub fn arb_is_zero(x: *const arb_struct) -> ::std::os::raw::c_int;
pub fn arb_pos_inf(x: *mut arb_struct);
pub fn arb_neg_inf(x: *mut arb_struct);
pub fn arb_zero_pm_inf(x: *mut arb_struct);
pub fn arb_zero_pm_one(x: *mut arb_struct);
pub fn arb_unit_interval(x: *mut arb_struct);
pub fn arb_indeterminate(x: *mut arb_struct);
pub fn arb_is_finite(x: *const arb_struct) -> ::std::os::raw::c_int;
pub fn arb_set(y: *mut arb_struct, x: *const arb_struct);
pub fn arb_swap(x: *mut arb_struct, y: *mut arb_struct);
pub fn arb_set_round(z: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_trim(y: *mut arb_struct, x: *const arb_struct);
pub fn arb_neg(y: *mut arb_struct, x: *const arb_struct);
pub fn arb_neg_round(y: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_abs(y: *mut arb_struct, x: *const arb_struct);
pub fn arb_nonnegative_abs(y: *mut arb_struct, x: *const arb_struct);
pub fn arb_sgn(res: *mut arb_struct, x: *const arb_struct);
pub fn arb_sgn_nonzero(x: *const arb_struct) -> ::std::os::raw::c_int;
pub fn _arb_digits_round_inplace(
s: *mut ::std::os::raw::c_char,
shift: *mut flint_bitcnt_t,
error: *mut fmpz,
n: slong,
rnd: arf_rnd_t,
);
pub fn arb_set_str(
res: *mut arb_struct,
inp: *const ::std::os::raw::c_char,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn arb_get_str(
x: *const arb_struct,
n: slong,
flags: ulong,
) -> *mut ::std::os::raw::c_char;
pub fn arb_set_arf(x: *mut arb_struct, y: *const arf_struct);
pub fn arb_set_si(y: *mut arb_struct, x: slong);
pub fn arb_set_ui(y: *mut arb_struct, x: ulong);
pub fn arb_set_d(y: *mut arb_struct, x: f64);
pub fn arb_set_fmpz(y: *mut arb_struct, x: *const fmpz);
pub fn arb_set_fmpz_2exp(x: *mut arb_struct, y: *const fmpz, exp: *const fmpz);
pub fn arb_set_round_fmpz_2exp(
y: *mut arb_struct,
x: *const fmpz,
exp: *const fmpz,
prec: slong,
);
pub fn arb_set_round_fmpz(y: *mut arb_struct, x: *const fmpz, prec: slong);
pub fn arb_is_one(f: *const arb_struct) -> ::std::os::raw::c_int;
pub fn arb_one(f: *mut arb_struct);
pub fn arb_fprint(file: *mut FILE, x: *const arb_struct);
pub fn arb_fprintd(file: *mut FILE, x: *const arb_struct, digits: slong);
pub fn arb_fprintn(
file: *mut FILE,
x: *const arb_struct,
digits: slong,
flags: ulong,
);
pub fn arb_print(x: *const arb_struct);
pub fn arb_printd(x: *const arb_struct, digits: slong);
pub fn arb_printn(x: *const arb_struct, digits: slong, flags: ulong);
pub fn _arb_vec_printn(vec: arb_srcptr, len: slong, ndigits: slong, flags: ulong);
pub fn _arb_vec_printd(vec: arb_srcptr, len: slong, ndigits: slong);
pub fn arb_mul_2exp_si(y: *mut arb_struct, x: *const arb_struct, e: slong);
pub fn arb_mul_2exp_fmpz(y: *mut arb_struct, x: *const arb_struct, e: *const fmpz);
pub fn arb_is_int(x: *const arb_struct) -> ::std::os::raw::c_int;
pub fn arb_is_int_2exp_si(x: *const arb_struct, e: slong) -> ::std::os::raw::c_int;
pub fn arb_contains_zero(x: *const arb_struct) -> ::std::os::raw::c_int;
pub fn arb_is_nonzero(x: *const arb_struct) -> ::std::os::raw::c_int;
pub fn arb_is_positive(x: *const arb_struct) -> ::std::os::raw::c_int;
pub fn arb_is_nonnegative(x: *const arb_struct) -> ::std::os::raw::c_int;
pub fn arb_is_negative(x: *const arb_struct) -> ::std::os::raw::c_int;
pub fn arb_is_nonpositive(x: *const arb_struct) -> ::std::os::raw::c_int;
pub fn arb_contains_negative(x: *const arb_struct) -> ::std::os::raw::c_int;
pub fn arb_contains_nonpositive(x: *const arb_struct) -> ::std::os::raw::c_int;
pub fn arb_contains_positive(x: *const arb_struct) -> ::std::os::raw::c_int;
pub fn arb_contains_nonnegative(x: *const arb_struct) -> ::std::os::raw::c_int;
pub fn arb_get_mag_lower(z: *mut mag_struct, x: *const arb_struct);
pub fn arb_get_mag_lower_nonnegative(z: *mut mag_struct, x: *const arb_struct);
pub fn arb_get_mag(z: *mut mag_struct, x: *const arb_struct);
pub fn arb_get_mid_arb(z: *mut arb_struct, x: *const arb_struct);
pub fn arb_get_rad_arb(z: *mut arb_struct, x: *const arb_struct);
pub fn arb_get_abs_ubound_arf(u: *mut arf_struct, x: *const arb_struct, prec: slong);
pub fn arb_get_abs_lbound_arf(u: *mut arf_struct, x: *const arb_struct, prec: slong);
pub fn arb_get_ubound_arf(u: *mut arf_struct, x: *const arb_struct, prec: slong);
pub fn arb_get_lbound_arf(u: *mut arf_struct, x: *const arb_struct, prec: slong);
pub fn arb_nonnegative_part(res: *mut arb_struct, x: *const arb_struct);
pub fn arb_rel_error_bits(x: *const arb_struct) -> slong;
pub fn arb_rel_accuracy_bits(x: *const arb_struct) -> slong;
pub fn arb_rel_one_accuracy_bits(x: *const arb_struct) -> slong;
pub fn arb_bits(x: *const arb_struct) -> slong;
pub fn arb_randtest_exact(
x: *mut arb_struct,
state: *mut flint_rand_struct,
prec: slong,
mag_bits: slong,
);
pub fn arb_randtest_wide(
x: *mut arb_struct,
state: *mut flint_rand_struct,
prec: slong,
mag_bits: slong,
);
pub fn arb_randtest_precise(
x: *mut arb_struct,
state: *mut flint_rand_struct,
prec: slong,
mag_bits: slong,
);
pub fn arb_randtest_positive(
x: *mut arb_struct,
state: *mut flint_rand_struct,
prec: slong,
mag_bits: slong,
);
pub fn arb_randtest(
x: *mut arb_struct,
state: *mut flint_rand_struct,
prec: slong,
mag_bits: slong,
);
pub fn arb_randtest_special(
x: *mut arb_struct,
state: *mut flint_rand_struct,
prec: slong,
mag_bits: slong,
);
pub fn arb_urandom(x: *mut arb_struct, state: *mut flint_rand_struct, prec: slong);
pub fn arb_add_error_arf(x: *mut arb_struct, err: *const arf_struct);
pub fn arb_add_error_2exp_si(x: *mut arb_struct, err: slong);
pub fn arb_add_error_2exp_fmpz(x: *mut arb_struct, err: *const fmpz);
pub fn arb_add_error(x: *mut arb_struct, error: *const arb_struct);
pub fn arb_add_error_mag(x: *mut arb_struct, err: *const mag_struct);
pub fn arb_contains_arf(
x: *const arb_struct,
y: *const arf_struct,
) -> ::std::os::raw::c_int;
pub fn arb_contains_fmpq(
x: *const arb_struct,
y: *const fmpq,
) -> ::std::os::raw::c_int;
pub fn arb_contains_fmpz(
x: *const arb_struct,
y: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn arb_contains_si(x: *const arb_struct, y: slong) -> ::std::os::raw::c_int;
pub fn arb_overlaps(
x: *const arb_struct,
y: *const arb_struct,
) -> ::std::os::raw::c_int;
pub fn arb_contains(
x: *const arb_struct,
y: *const arb_struct,
) -> ::std::os::raw::c_int;
pub fn arb_contains_interior(
x: *const arb_struct,
y: *const arb_struct,
) -> ::std::os::raw::c_int;
pub fn arb_contains_int(x: *const arb_struct) -> ::std::os::raw::c_int;
pub fn arb_get_interval_fmpz_2exp(
a: *mut fmpz,
b: *mut fmpz,
exp: *mut fmpz,
x: *const arb_struct,
);
pub fn arb_get_unique_fmpz(
z: *mut fmpz,
x: *const arb_struct,
) -> ::std::os::raw::c_int;
pub fn arb_get_simplest_fmpq(
res: *mut fmpq,
x: *const arb_struct,
) -> ::std::os::raw::c_int;
pub fn arb_get_fmpz_mid_rad_10exp(
mid: *mut fmpz,
rad: *mut fmpz,
exp: *mut fmpz,
x: *const arb_struct,
n: slong,
);
pub fn arb_floor(z: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_ceil(z: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_nint(res: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_trunc(res: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_set_interval_arf(
x: *mut arb_struct,
a: *const arf_struct,
b: *const arf_struct,
prec: slong,
);
pub fn arb_get_interval_arf(
a: *mut arf_struct,
b: *mut arf_struct,
x: *const arb_struct,
prec: slong,
);
pub fn arb_set_interval_mag(
res: *mut arb_struct,
a: *const mag_struct,
b: *const mag_struct,
prec: slong,
);
pub fn arb_set_interval_neg_pos_mag(
res: *mut arb_struct,
a: *const mag_struct,
b: *const mag_struct,
prec: slong,
);
pub fn arb_union(
z: *mut arb_struct,
x: *const arb_struct,
y: *const arb_struct,
prec: slong,
);
pub fn arb_intersection(
z: *mut arb_struct,
x: *const arb_struct,
y: *const arb_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn arb_get_rand_fmpq(
q: *mut fmpq,
state: *mut flint_rand_struct,
x: *const arb_struct,
bits: slong,
);
pub fn arb_min(
z: *mut arb_struct,
x: *const arb_struct,
y: *const arb_struct,
prec: slong,
);
pub fn arb_max(
z: *mut arb_struct,
x: *const arb_struct,
y: *const arb_struct,
prec: slong,
);
pub fn arb_minmax(
z1: *mut arb_struct,
z2: *mut arb_struct,
x: *const arb_struct,
y: *const arb_struct,
prec: slong,
);
pub fn arb_can_round_arf(
x: *const arb_struct,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arb_add(
z: *mut arb_struct,
x: *const arb_struct,
y: *const arb_struct,
prec: slong,
);
pub fn arb_add_arf(
z: *mut arb_struct,
x: *const arb_struct,
y: *const arf_struct,
prec: slong,
);
pub fn arb_add_ui(z: *mut arb_struct, x: *const arb_struct, y: ulong, prec: slong);
pub fn arb_add_si(z: *mut arb_struct, x: *const arb_struct, y: slong, prec: slong);
pub fn arb_add_fmpz(
z: *mut arb_struct,
x: *const arb_struct,
y: *const fmpz,
prec: slong,
);
pub fn arb_add_fmpz_2exp(
z: *mut arb_struct,
x: *const arb_struct,
man: *const fmpz,
exp: *const fmpz,
prec: slong,
);
pub fn arb_sub(
z: *mut arb_struct,
x: *const arb_struct,
y: *const arb_struct,
prec: slong,
);
pub fn arb_sub_arf(
z: *mut arb_struct,
x: *const arb_struct,
y: *const arf_struct,
prec: slong,
);
pub fn arb_sub_ui(z: *mut arb_struct, x: *const arb_struct, y: ulong, prec: slong);
pub fn arb_sub_si(z: *mut arb_struct, x: *const arb_struct, y: slong, prec: slong);
pub fn arb_sub_fmpz(
z: *mut arb_struct,
x: *const arb_struct,
y: *const fmpz,
prec: slong,
);
pub fn arb_mul(
z: *mut arb_struct,
x: *const arb_struct,
y: *const arb_struct,
prec: slong,
);
pub fn arb_mul_arf(
z: *mut arb_struct,
x: *const arb_struct,
y: *const arf_struct,
prec: slong,
);
pub fn arb_mul_si(z: *mut arb_struct, x: *const arb_struct, y: slong, prec: slong);
pub fn arb_mul_ui(z: *mut arb_struct, x: *const arb_struct, y: ulong, prec: slong);
pub fn arb_mul_fmpz(
z: *mut arb_struct,
x: *const arb_struct,
y: *const fmpz,
prec: slong,
);
pub fn arb_addmul(
z: *mut arb_struct,
x: *const arb_struct,
y: *const arb_struct,
prec: slong,
);
pub fn arb_addmul_arf(
z: *mut arb_struct,
x: *const arb_struct,
y: *const arf_struct,
prec: slong,
);
pub fn arb_addmul_si(
z: *mut arb_struct,
x: *const arb_struct,
y: slong,
prec: slong,
);
pub fn arb_addmul_ui(
z: *mut arb_struct,
x: *const arb_struct,
y: ulong,
prec: slong,
);
pub fn arb_addmul_fmpz(
z: *mut arb_struct,
x: *const arb_struct,
y: *const fmpz,
prec: slong,
);
pub fn arb_submul(
z: *mut arb_struct,
x: *const arb_struct,
y: *const arb_struct,
prec: slong,
);
pub fn arb_submul_arf(
z: *mut arb_struct,
x: *const arb_struct,
y: *const arf_struct,
prec: slong,
);
pub fn arb_submul_si(
z: *mut arb_struct,
x: *const arb_struct,
y: slong,
prec: slong,
);
pub fn arb_submul_ui(
z: *mut arb_struct,
x: *const arb_struct,
y: ulong,
prec: slong,
);
pub fn arb_submul_fmpz(
z: *mut arb_struct,
x: *const arb_struct,
y: *const fmpz,
prec: slong,
);
pub fn arb_fma(
res: *mut arb_struct,
x: *const arb_struct,
y: *const arb_struct,
z: *const arb_struct,
prec: slong,
);
pub fn arb_fma_arf(
res: *mut arb_struct,
x: *const arb_struct,
y: *const arf_struct,
z: *const arb_struct,
prec: slong,
);
pub fn arb_fma_si(
res: *mut arb_struct,
x: *const arb_struct,
y: slong,
z: *const arb_struct,
prec: slong,
);
pub fn arb_fma_ui(
res: *mut arb_struct,
x: *const arb_struct,
y: ulong,
z: *const arb_struct,
prec: slong,
);
pub fn arb_fma_fmpz(
res: *mut arb_struct,
x: *const arb_struct,
y: *const fmpz,
z: *const arb_struct,
prec: slong,
);
pub fn arb_dot_simple(
res: *mut arb_struct,
initial: *const arb_struct,
subtract: ::std::os::raw::c_int,
x: arb_srcptr,
xstep: slong,
y: arb_srcptr,
ystep: slong,
len: slong,
prec: slong,
);
pub fn arb_dot_precise(
res: *mut arb_struct,
initial: *const arb_struct,
subtract: ::std::os::raw::c_int,
x: arb_srcptr,
xstep: slong,
y: arb_srcptr,
ystep: slong,
len: slong,
prec: slong,
);
pub fn arb_dot(
res: *mut arb_struct,
initial: *const arb_struct,
subtract: ::std::os::raw::c_int,
x: arb_srcptr,
xstep: slong,
y: arb_srcptr,
ystep: slong,
len: slong,
prec: slong,
);
pub fn arb_approx_dot(
res: *mut arb_struct,
initial: *const arb_struct,
subtract: ::std::os::raw::c_int,
x: arb_srcptr,
xstep: slong,
y: arb_srcptr,
ystep: slong,
len: slong,
prec: slong,
);
pub fn arb_dot_ui(
res: *mut arb_struct,
initial: *const arb_struct,
subtract: ::std::os::raw::c_int,
x: arb_srcptr,
xstep: slong,
y: *const ulong,
ystep: slong,
len: slong,
prec: slong,
);
pub fn arb_dot_si(
res: *mut arb_struct,
initial: *const arb_struct,
subtract: ::std::os::raw::c_int,
x: arb_srcptr,
xstep: slong,
y: *const slong,
ystep: slong,
len: slong,
prec: slong,
);
pub fn arb_dot_uiui(
res: *mut arb_struct,
initial: *const arb_struct,
subtract: ::std::os::raw::c_int,
x: arb_srcptr,
xstep: slong,
y: *const ulong,
ystep: slong,
len: slong,
prec: slong,
);
pub fn arb_dot_siui(
res: *mut arb_struct,
initial: *const arb_struct,
subtract: ::std::os::raw::c_int,
x: arb_srcptr,
xstep: slong,
y: *const ulong,
ystep: slong,
len: slong,
prec: slong,
);
pub fn arb_dot_fmpz(
res: *mut arb_struct,
initial: *const arb_struct,
subtract: ::std::os::raw::c_int,
x: arb_srcptr,
xstep: slong,
y: *const fmpz,
ystep: slong,
len: slong,
prec: slong,
);
pub fn arb_div(
z: *mut arb_struct,
x: *const arb_struct,
y: *const arb_struct,
prec: slong,
);
pub fn arb_div_arf(
z: *mut arb_struct,
x: *const arb_struct,
y: *const arf_struct,
prec: slong,
);
pub fn arb_div_si(z: *mut arb_struct, x: *const arb_struct, y: slong, prec: slong);
pub fn arb_div_ui(z: *mut arb_struct, x: *const arb_struct, y: ulong, prec: slong);
pub fn arb_div_fmpz(
z: *mut arb_struct,
x: *const arb_struct,
y: *const fmpz,
prec: slong,
);
pub fn arb_fmpz_div_fmpz(
z: *mut arb_struct,
x: *const fmpz,
y: *const fmpz,
prec: slong,
);
pub fn arb_ui_div(z: *mut arb_struct, x: ulong, y: *const arb_struct, prec: slong);
pub fn arb_div_arf_newton(
res: *mut arb_struct,
x: *const arb_struct,
y: *const arf_struct,
prec: slong,
);
pub fn arb_div_newton(
res: *mut arb_struct,
x: *const arb_struct,
y: *const arb_struct,
prec: slong,
);
pub fn arb_fmpz_divapprox(res: *mut fmpz, x: *const fmpz, y: *const fmpz);
pub fn arb_inv(y: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_set_fmpq(y: *mut arb_struct, x: *const fmpq, prec: slong);
pub fn arb_sqrt(z: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_sqrt_arf(z: *mut arb_struct, x: *const arf_struct, prec: slong);
pub fn arb_sqrt_fmpz(z: *mut arb_struct, x: *const fmpz, prec: slong);
pub fn arb_sqrt_ui(z: *mut arb_struct, x: ulong, prec: slong);
pub fn arb_sqrtpos(z: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_hypot(
z: *mut arb_struct,
x: *const arb_struct,
y: *const arb_struct,
prec: slong,
);
pub fn arb_rsqrt(z: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_rsqrt_ui(z: *mut arb_struct, x: ulong, prec: slong);
pub fn arb_sqrt1pm1(r: *mut arb_struct, z: *const arb_struct, prec: slong);
pub fn arb_rsqrt_arf_newton(res: *mut arb_struct, x: *const arf_struct, prec: slong);
pub fn arb_sqrt_arf_newton(res: *mut arb_struct, x: *const arf_struct, prec: slong);
pub fn arb_sqrt_newton(z: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_pow_fmpz_binexp(
y: *mut arb_struct,
b: *const arb_struct,
e: *const fmpz,
prec: slong,
);
pub fn arb_pow_fmpz(
y: *mut arb_struct,
b: *const arb_struct,
e: *const fmpz,
prec: slong,
);
pub fn arb_pow_ui(y: *mut arb_struct, b: *const arb_struct, e: ulong, prec: slong);
pub fn arb_ui_pow_ui(y: *mut arb_struct, b: ulong, e: ulong, prec: slong);
pub fn arb_si_pow_ui(y: *mut arb_struct, b: slong, e: ulong, prec: slong);
pub fn arb_pow_fmpq(
y: *mut arb_struct,
x: *const arb_struct,
a: *const fmpq,
prec: slong,
);
pub fn arb_div_2expm1_ui(
z: *mut arb_struct,
x: *const arb_struct,
n: ulong,
prec: slong,
);
pub fn arb_pow(
z: *mut arb_struct,
x: *const arb_struct,
y: *const arb_struct,
prec: slong,
);
pub fn arb_root_ui(z: *mut arb_struct, x: *const arb_struct, k: ulong, prec: slong);
pub fn arb_root(z: *mut arb_struct, x: *const arb_struct, k: ulong, prec: slong);
pub fn _arb_log_precompute_reductions(
rel: *mut ::std::os::raw::c_short,
eps: *mut f64,
alpha: arb_srcptr,
n: slong,
max_rel: slong,
C: f64,
);
pub fn arb_log(z: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_log_arf(z: *mut arb_struct, x: *const arf_struct, prec: slong);
pub fn arb_log_ui(z: *mut arb_struct, x: ulong, prec: slong);
pub fn arb_log_fmpz(z: *mut arb_struct, x: *const fmpz, prec: slong);
pub fn arb_log1p(r: *mut arb_struct, z: *const arb_struct, prec: slong);
pub fn arb_log_base_ui(
res: *mut arb_struct,
x: *const arb_struct,
b: ulong,
prec: slong,
);
pub fn arb_log_hypot(
res: *mut arb_struct,
x: *const arb_struct,
y: *const arb_struct,
prec: slong,
);
pub fn arb_exp(z: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_expm1(z: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_exp_invexp(
z: *mut arb_struct,
w: *mut arb_struct,
x: *const arb_struct,
prec: slong,
);
pub fn arb_sin(s: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_cos(c: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_sin_cos(
s: *mut arb_struct,
c: *mut arb_struct,
x: *const arb_struct,
prec: slong,
);
pub fn arb_sin_pi(s: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_cos_pi(c: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_sin_cos_pi(
s: *mut arb_struct,
c: *mut arb_struct,
x: *const arb_struct,
prec: slong,
);
pub fn arb_tan(y: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_cot(y: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_tan_pi(y: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_cot_pi(y: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn _arb_sin_pi_fmpq_algebraic(
s: *mut arb_struct,
p: ulong,
q: ulong,
prec: slong,
);
pub fn _arb_cos_pi_fmpq_algebraic(
c: *mut arb_struct,
p: ulong,
q: ulong,
prec: slong,
);
pub fn _arb_sin_cos_pi_fmpq_algebraic(
s: *mut arb_struct,
c: *mut arb_struct,
p: ulong,
q: ulong,
prec: slong,
);
pub fn arb_sin_cos_pi_fmpq(
s: *mut arb_struct,
c: *mut arb_struct,
x: *const fmpq,
prec: slong,
);
pub fn arb_sin_pi_fmpq(s: *mut arb_struct, x: *const fmpq, prec: slong);
pub fn arb_cos_pi_fmpq(c: *mut arb_struct, x: *const fmpq, prec: slong);
pub fn arb_sinc(z: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_sinc_pi(z: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_sinh(z: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_cosh(z: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_sinh_cosh(
s: *mut arb_struct,
c: *mut arb_struct,
x: *const arb_struct,
prec: slong,
);
pub fn arb_tanh(y: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_coth(y: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_atan_arf(z: *mut arb_struct, x: *const arf_struct, prec: slong);
pub fn arb_atan(z: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_atan2(
z: *mut arb_struct,
b: *const arb_struct,
a: *const arb_struct,
prec: slong,
);
pub fn arb_asin(z: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_acos(z: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_atanh(z: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_asinh(z: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_acosh(z: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_sec(res: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_csc(res: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_csc_pi(res: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_sech(res: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_csch(res: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_fac_ui(z: *mut arb_struct, n: ulong, prec: slong);
pub fn arb_doublefac_ui(z: *mut arb_struct, n: ulong, prec: slong);
pub fn arb_bin_ui(z: *mut arb_struct, n: *const arb_struct, k: ulong, prec: slong);
pub fn arb_bin_uiui(z: *mut arb_struct, n: ulong, k: ulong, prec: slong);
pub fn arb_fib_fmpz(z: *mut arb_struct, n: *const fmpz, prec: slong);
pub fn arb_fib_ui(z: *mut arb_struct, n: ulong, prec: slong);
pub fn arb_const_pi(z: *mut arb_struct, prec: slong);
pub fn arb_const_sqrt_pi(z: *mut arb_struct, prec: slong);
pub fn arb_const_log_sqrt2pi(z: *mut arb_struct, prec: slong);
pub fn arb_const_log2(z: *mut arb_struct, prec: slong);
pub fn arb_const_log10(z: *mut arb_struct, prec: slong);
pub fn arb_const_euler(z: *mut arb_struct, prec: slong);
pub fn arb_const_catalan(z: *mut arb_struct, prec: slong);
pub fn arb_const_e(z: *mut arb_struct, prec: slong);
pub fn arb_const_khinchin(z: *mut arb_struct, prec: slong);
pub fn arb_const_glaisher(z: *mut arb_struct, prec: slong);
pub fn arb_const_reciprocal_fibonacci(res: *mut arb_struct, prec: slong);
pub fn arb_agm(
z: *mut arb_struct,
x: *const arb_struct,
y: *const arb_struct,
prec: slong,
);
pub fn arb_lgamma(z: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_rgamma(z: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_gamma(z: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_gamma_fmpq(z: *mut arb_struct, x: *const fmpq, prec: slong);
pub fn arb_gamma_fmpz(z: *mut arb_struct, x: *const fmpz, prec: slong);
pub fn arb_digamma(y: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_zeta(z: *mut arb_struct, s: *const arb_struct, prec: slong);
pub fn arb_hurwitz_zeta(
z: *mut arb_struct,
s: *const arb_struct,
a: *const arb_struct,
prec: slong,
);
pub fn arb_rising_ui(
z: *mut arb_struct,
x: *const arb_struct,
n: ulong,
prec: slong,
);
pub fn arb_rising_fmpq_ui(y: *mut arb_struct, x: *const fmpq, n: ulong, prec: slong);
pub fn arb_rising(
z: *mut arb_struct,
x: *const arb_struct,
n: *const arb_struct,
prec: slong,
);
pub fn arb_rising2_ui(
u: *mut arb_struct,
v: *mut arb_struct,
x: *const arb_struct,
n: ulong,
prec: slong,
);
pub fn arb_log_ui_from_prev(
s: *mut arb_struct,
k: ulong,
log_prev: *mut arb_struct,
prev: ulong,
prec: slong,
);
pub fn arb_const_apery(s: *mut arb_struct, prec: slong);
pub fn arb_zeta_ui_asymp(x: *mut arb_struct, s: ulong, prec: slong);
pub fn arb_zeta_ui_borwein_bsplit(x: *mut arb_struct, s: ulong, prec: slong);
pub fn arb_zeta_ui_euler_product(z: *mut arb_struct, s: ulong, prec: slong);
pub fn arb_zeta_ui_bernoulli(x: *mut arb_struct, n: ulong, prec: slong);
pub fn arb_zeta_ui_vec_borwein(
z: arb_ptr,
start: ulong,
num: slong,
step: ulong,
prec: slong,
);
pub fn arb_zeta_ui(x: *mut arb_struct, n: ulong, prec: slong);
pub fn arb_zeta_ui_vec_even(x: arb_ptr, start: ulong, num: slong, prec: slong);
pub fn arb_zeta_ui_vec_odd(x: arb_ptr, start: ulong, num: slong, prec: slong);
pub fn arb_zeta_ui_vec(x: arb_ptr, start: ulong, num: slong, prec: slong);
pub fn arb_bernoulli_ui(b: *mut arb_struct, n: ulong, prec: slong);
pub fn arb_bernoulli_ui_zeta(b: *mut arb_struct, n: ulong, prec: slong);
pub fn arb_bernoulli_fmpz(b: *mut arb_struct, n: *const fmpz, prec: slong);
pub fn arb_bernoulli_poly_ui(
res: *mut arb_struct,
n: ulong,
x: *const arb_struct,
prec: slong,
);
pub fn arb_polylog(
w: *mut arb_struct,
s: *const arb_struct,
z: *const arb_struct,
prec: slong,
);
pub fn arb_polylog_si(
w: *mut arb_struct,
s: slong,
z: *const arb_struct,
prec: slong,
);
pub fn arb_chebyshev_t_ui(
a: *mut arb_struct,
n: ulong,
x: *const arb_struct,
prec: slong,
);
pub fn arb_chebyshev_t2_ui(
a: *mut arb_struct,
b: *mut arb_struct,
n: ulong,
x: *const arb_struct,
prec: slong,
);
pub fn arb_chebyshev_u_ui(
a: *mut arb_struct,
n: ulong,
x: *const arb_struct,
prec: slong,
);
pub fn arb_chebyshev_u2_ui(
a: *mut arb_struct,
b: *mut arb_struct,
n: ulong,
x: *const arb_struct,
prec: slong,
);
pub fn arb_power_sum_vec(
res: arb_ptr,
a: *const arb_struct,
b: *const arb_struct,
len: slong,
prec: slong,
);
pub fn arb_bell_sum_taylor(
res: *mut arb_struct,
n: *const fmpz,
a: *const fmpz,
b: *const fmpz,
mmag: *const fmpz,
prec: slong,
);
pub fn arb_bell_sum_bsplit(
res: *mut arb_struct,
n: *const fmpz,
a: *const fmpz,
b: *const fmpz,
mmag: *const fmpz,
prec: slong,
);
pub fn arb_bell_fmpz(res: *mut arb_struct, n: *const fmpz, prec: slong);
pub fn arb_bell_ui(res: *mut arb_struct, n: ulong, prec: slong);
pub fn arb_euler_number_fmpz(res: *mut arb_struct, n: *const fmpz, prec: slong);
pub fn arb_euler_number_ui(res: *mut arb_struct, n: ulong, prec: slong);
pub fn arb_fmpz_euler_number_ui_multi_mod(res: *mut fmpz, n: ulong, alpha: f64);
pub fn arb_fmpz_euler_number_ui(res: *mut fmpz, n: ulong);
pub fn arb_partitions_fmpz(res: *mut arb_struct, n: *const fmpz, prec: slong);
pub fn arb_partitions_ui(res: *mut arb_struct, n: ulong, prec: slong);
pub fn arb_primorial_nth_ui(res: *mut arb_struct, n: ulong, prec: slong);
pub fn arb_primorial_ui(res: *mut arb_struct, n: ulong, prec: slong);
pub fn arb_lambertw(
res: *mut arb_struct,
x: *const arb_struct,
flags: ::std::os::raw::c_int,
prec: slong,
);
pub fn arb_sqr(res: *mut arb_struct, val: *const arb_struct, prec: slong);
pub fn _arb_vec_entry_ptr(vec: arb_ptr, i: slong) -> arb_ptr;
pub fn _arb_vec_zero(A: arb_ptr, n: slong);
pub fn _arb_vec_indeterminate(vec: arb_ptr, len: slong);
pub fn _arb_vec_is_zero(vec: arb_srcptr, len: slong) -> ::std::os::raw::c_int;
pub fn _arb_vec_is_finite(x: arb_srcptr, len: slong) -> ::std::os::raw::c_int;
pub fn _arb_vec_equal(
vec1: arb_srcptr,
vec2: arb_srcptr,
len: slong,
) -> ::std::os::raw::c_int;
pub fn _arb_vec_overlaps(
vec1: arb_srcptr,
vec2: arb_srcptr,
len: slong,
) -> ::std::os::raw::c_int;
pub fn _arb_vec_contains(
vec1: arb_srcptr,
vec2: arb_srcptr,
len: slong,
) -> ::std::os::raw::c_int;
pub fn _arb_vec_set(res: arb_ptr, vec: arb_srcptr, len: slong);
pub fn _arb_vec_swap(res: arb_ptr, vec: arb_ptr, len: slong);
pub fn _arb_vec_neg(B: arb_ptr, A: arb_srcptr, n: slong);
pub fn _arb_vec_set_round(res: arb_ptr, vec: arb_srcptr, len: slong, prec: slong);
pub fn _arb_vec_sub(C: arb_ptr, A: arb_srcptr, B: arb_srcptr, n: slong, prec: slong);
pub fn _arb_vec_add(C: arb_ptr, A: arb_srcptr, B: arb_srcptr, n: slong, prec: slong);
pub fn _arb_vec_scalar_mul(
res: arb_ptr,
vec: arb_srcptr,
len: slong,
c: *const arb_struct,
prec: slong,
);
pub fn _arb_vec_scalar_mul_arf(
res: arb_ptr,
vec: arb_srcptr,
len: slong,
c: *const arf_struct,
prec: slong,
);
pub fn _arb_vec_scalar_mul_ui(
res: arb_ptr,
vec: arb_srcptr,
len: slong,
c: ulong,
prec: slong,
);
pub fn _arb_vec_scalar_mul_si(
res: arb_ptr,
vec: arb_srcptr,
len: slong,
c: slong,
prec: slong,
);
pub fn _arb_vec_scalar_mul_fmpz(
res: arb_ptr,
vec: arb_srcptr,
len: slong,
c: *const fmpz,
prec: slong,
);
pub fn _arb_vec_scalar_mul_2exp_si(
res: arb_ptr,
src: arb_srcptr,
len: slong,
c: slong,
);
pub fn _arb_vec_scalar_div(
res: arb_ptr,
vec: arb_srcptr,
len: slong,
c: *const arb_struct,
prec: slong,
);
pub fn _arb_vec_scalar_addmul(
res: arb_ptr,
vec: arb_srcptr,
len: slong,
c: *const arb_struct,
prec: slong,
);
pub fn _arb_vec_get_mag(bound: *mut mag_struct, vec: arb_srcptr, len: slong);
pub fn _arb_vec_bits(x: arb_srcptr, len: slong) -> slong;
pub fn _arb_vec_set_powers(
xs: arb_ptr,
x: *const arb_struct,
len: slong,
prec: slong,
);
pub fn _arb_vec_add_error_arf_vec(res: arb_ptr, err: arf_srcptr, len: slong);
pub fn _arb_vec_add_error_mag_vec(res: arb_ptr, err: mag_srcptr, len: slong);
pub fn _arb_vec_trim(res: arb_ptr, vec: arb_srcptr, len: slong);
pub fn _arb_vec_get_unique_fmpz_vec(
res: *mut fmpz,
vec: arb_srcptr,
len: slong,
) -> ::std::os::raw::c_int;
pub fn _arb_atan_taylor_naive(
y: nn_ptr,
error: *mut ulong,
x: nn_srcptr,
xn: slong,
N: ulong,
alternating: ::std::os::raw::c_int,
);
pub fn _arb_atan_taylor_rs(
y: nn_ptr,
error: *mut ulong,
x: nn_srcptr,
xn: slong,
N: ulong,
alternating: ::std::os::raw::c_int,
);
pub fn arb_atan_newton(res: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_atan_arf_newton(res: *mut arb_struct, x: *const arf_struct, prec: slong);
pub fn arb_log_newton(res: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_log_arf_newton(res: *mut arb_struct, x: *const arf_struct, prec: slong);
pub fn arb_log_primes_vec_bsplit(res: arb_ptr, n: slong, prec: slong);
pub fn _arb_log_p_ensure_cached(prec: slong);
pub fn _arb_log_p_cache_vec() -> arb_srcptr;
pub fn _arb_exp_taylor_naive(
y: nn_ptr,
error: *mut ulong,
x: nn_srcptr,
xn: slong,
N: ulong,
);
pub fn _arb_exp_taylor_rs(
y: nn_ptr,
error: *mut ulong,
x: nn_srcptr,
xn: slong,
N: ulong,
);
pub fn arb_exp_arf_bb(
z: *mut arb_struct,
x: *const arf_struct,
prec: slong,
minus_one: ::std::os::raw::c_int,
);
pub fn arb_exp_arf_rs_generic(
res: *mut arb_struct,
x: *const arf_struct,
prec: slong,
minus_one: ::std::os::raw::c_int,
);
pub fn _arb_exp_taylor_bound(mag: slong, prec: slong) -> slong;
pub fn _arb_exp_sum_bs_powtab(
T: *mut fmpz,
Q: *mut fmpz,
Qexp: *mut flint_bitcnt_t,
x: *const fmpz,
r: flint_bitcnt_t,
N: slong,
);
pub fn _arb_exp_sum_bs_simple(
T: *mut fmpz,
Q: *mut fmpz,
Qexp: *mut flint_bitcnt_t,
x: *const fmpz,
r: flint_bitcnt_t,
N: slong,
);
pub fn arb_exp_arf_log_reduction(
res: *mut arb_struct,
x: *const arf_struct,
prec: slong,
minus_one: ::std::os::raw::c_int,
);
pub fn arb_exp_arf_generic(
z: *mut arb_struct,
x: *const arf_struct,
prec: slong,
minus_one: ::std::os::raw::c_int,
);
pub fn arb_exp_arf(
z: *mut arb_struct,
x: *const arf_struct,
prec: slong,
minus_one: ::std::os::raw::c_int,
maglim: slong,
);
pub fn _arb_sin_cos_taylor_naive(
ysin: nn_ptr,
ycos: nn_ptr,
error: *mut ulong,
x: nn_srcptr,
xn: slong,
N: ulong,
);
pub fn _arb_sin_cos_taylor_rs(
ysin: nn_ptr,
ycos: nn_ptr,
error: *mut ulong,
x: nn_srcptr,
xn: slong,
N: ulong,
sinonly: ::std::os::raw::c_int,
alternating: ::std::os::raw::c_int,
);
pub fn arb_sin_cos_arf_bb(
zsin: *mut arb_struct,
zcos: *mut arb_struct,
x: *const arf_struct,
prec: slong,
);
pub fn arb_sin_cos_arf_rs_generic(
res_sin: *mut arb_struct,
res_cos: *mut arb_struct,
x: *const arf_struct,
prec: slong,
);
pub fn arb_sin_cos_arf_generic(
res_sin: *mut arb_struct,
res_cos: *mut arb_struct,
x: *const arf_struct,
prec: slong,
);
pub fn _arb_sin_cos_wide(
s: *mut arb_struct,
c: *mut arb_struct,
x: *const arf_struct,
r: *const mag_struct,
prec: slong,
);
pub fn arb_sin_cos_wide(
s: *mut arb_struct,
c: *mut arb_struct,
x: *const arb_struct,
prec: slong,
);
pub fn _arb_sin_cos_generic(
s: *mut arb_struct,
c: *mut arb_struct,
x: *const arf_struct,
xrad: *const mag_struct,
prec: slong,
);
pub fn arb_sin_cos_generic(
s: *mut arb_struct,
c: *mut arb_struct,
x: *const arb_struct,
prec: slong,
);
pub fn arb_atan_gauss_primes_vec_bsplit(res: arb_ptr, n: slong, prec: slong);
pub fn _arb_atan_gauss_p_ensure_cached(prec: slong);
pub fn _arb_atan_gauss_p_cache_vec() -> arb_srcptr;
pub fn arb_sin_cos_arf_atan_reduction(
res1: *mut arb_struct,
res2: *mut arb_struct,
x: *const arf_struct,
prec: slong,
);
pub fn _arb_atan_sum_bs_simple(
T: *mut fmpz,
Q: *mut fmpz,
Qexp: *mut flint_bitcnt_t,
x: *const fmpz,
r: flint_bitcnt_t,
N: slong,
);
pub fn _arb_atan_sum_bs_powtab(
T: *mut fmpz,
Q: *mut fmpz,
Qexp: *mut flint_bitcnt_t,
x: *const fmpz,
r: flint_bitcnt_t,
N: slong,
);
pub fn arb_atan_arf_bb(z: *mut arb_struct, x: *const arf_struct, prec: slong);
pub fn arb_atan_frac_bsplit(
s: *mut arb_struct,
p: *const fmpz,
q: *const fmpz,
hyperbolic: ::std::os::raw::c_int,
prec: slong,
);
pub fn arb_allocated_bytes(x: *const arb_struct) -> slong;
pub fn _arb_vec_allocated_bytes(vec: arb_srcptr, len: slong) -> slong;
pub fn _arb_vec_estimate_allocated_bytes(len: slong, prec: slong) -> f64;
pub fn arb_load_str(
res: *mut arb_struct,
data: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn arb_dump_str(x: *const arb_struct) -> *mut ::std::os::raw::c_char;
pub fn arb_load_file(
res: *mut arb_struct,
stream: *mut FILE,
) -> ::std::os::raw::c_int;
pub fn arb_dump_file(
stream: *mut FILE,
x: *const arb_struct,
) -> ::std::os::raw::c_int;
}
/* arb_calc.h */
pub type arb_calc_func_t = ::std::option::Option<
unsafe extern "C" fn(
out: arb_ptr,
inp: *const arb_struct,
param: *mut ::std::os::raw::c_void,
order: slong,
prec: slong,
) -> ::std::os::raw::c_int,
>;
unsafe extern "C" {
pub fn arf_interval_fprintd(
file: *mut FILE,
v: *const arf_interval_struct,
n: slong,
);
pub fn arf_interval_printd(v: *const arf_interval_struct, n: slong);
pub fn arb_calc_partition(
L: *mut arf_interval_struct,
R: *mut arf_interval_struct,
func: arb_calc_func_t,
param: *mut ::std::os::raw::c_void,
block: *const arf_interval_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn arb_calc_isolate_roots(
found: *mut arf_interval_ptr,
flags: *mut *mut ::std::os::raw::c_int,
func: arb_calc_func_t,
param: *mut ::std::os::raw::c_void,
interval: *const arf_interval_struct,
maxdepth: slong,
maxeval: slong,
maxfound: slong,
prec: slong,
) -> slong;
pub fn arb_calc_refine_root_bisect(
r: *mut arf_interval_struct,
func: arb_calc_func_t,
param: *mut ::std::os::raw::c_void,
start: *const arf_interval_struct,
iter: slong,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn arb_calc_newton_conv_factor(
conv_factor: *mut arf_struct,
func: arb_calc_func_t,
param: *mut ::std::os::raw::c_void,
conv_region: *const arb_struct,
prec: slong,
);
pub fn arb_calc_newton_step(
xnew: *mut arb_struct,
func: arb_calc_func_t,
param: *mut ::std::os::raw::c_void,
x: *const arb_struct,
conv_region: *const arb_struct,
conv_factor: *const arf_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn arb_calc_refine_root_newton(
r: *mut arb_struct,
func: arb_calc_func_t,
param: *mut ::std::os::raw::c_void,
start: *const arb_struct,
conv_region: *const arb_struct,
conv_factor: *const arf_struct,
eval_extra_prec: slong,
prec: slong,
) -> ::std::os::raw::c_int;
}
/* arb_fmpz_poly.h */
unsafe extern "C" {
pub fn _arb_fmpz_poly_evaluate_acb_horner(
res: *mut acb_struct,
f: *const fmpz,
len: slong,
x: *const acb_struct,
prec: slong,
);
pub fn arb_fmpz_poly_evaluate_acb_horner(
res: *mut acb_struct,
f: *const fmpz_poly_struct,
a: *const acb_struct,
prec: slong,
);
pub fn _arb_fmpz_poly_evaluate_acb_rectangular(
res: *mut acb_struct,
f: *const fmpz,
len: slong,
x: *const acb_struct,
prec: slong,
);
pub fn arb_fmpz_poly_evaluate_acb_rectangular(
res: *mut acb_struct,
f: *const fmpz_poly_struct,
a: *const acb_struct,
prec: slong,
);
pub fn _arb_fmpz_poly_evaluate_acb(
res: *mut acb_struct,
f: *const fmpz,
len: slong,
x: *const acb_struct,
prec: slong,
);
pub fn arb_fmpz_poly_evaluate_acb(
res: *mut acb_struct,
f: *const fmpz_poly_struct,
a: *const acb_struct,
prec: slong,
);
pub fn _arb_fmpz_poly_evaluate_arb_horner(
res: *mut arb_struct,
f: *const fmpz,
len: slong,
x: *const arb_struct,
prec: slong,
);
pub fn arb_fmpz_poly_evaluate_arb_horner(
res: *mut arb_struct,
f: *const fmpz_poly_struct,
a: *const arb_struct,
prec: slong,
);
pub fn _arb_fmpz_poly_evaluate_arb_rectangular(
res: *mut arb_struct,
f: *const fmpz,
len: slong,
x: *const arb_struct,
prec: slong,
);
pub fn arb_fmpz_poly_evaluate_arb_rectangular(
res: *mut arb_struct,
f: *const fmpz_poly_struct,
a: *const arb_struct,
prec: slong,
);
pub fn _arb_fmpz_poly_evaluate_arb(
res: *mut arb_struct,
f: *const fmpz,
len: slong,
x: *const arb_struct,
prec: slong,
);
pub fn arb_fmpz_poly_evaluate_arb(
res: *mut arb_struct,
f: *const fmpz_poly_struct,
a: *const arb_struct,
prec: slong,
);
pub fn arb_fmpz_poly_deflate(
result: *mut fmpz_poly_struct,
input: *const fmpz_poly_struct,
deflation: ulong,
);
pub fn arb_fmpz_poly_deflation(input: *const fmpz_poly_struct) -> ulong;
pub fn arb_fmpz_poly_refine_root_arb(
res: *mut arb_struct,
poly: *const fmpz_poly_struct,
initial: *const arb_struct,
prec: slong,
);
pub fn arb_fmpz_poly_real_roots(
roots: arb_ptr,
poly: *const fmpz_poly_struct,
flags: ::std::os::raw::c_int,
target_prec: slong,
) -> slong;
pub fn arb_fmpz_poly_complex_roots(
roots: acb_ptr,
poly: *const fmpz_poly_struct,
flags: ::std::os::raw::c_int,
target_prec: slong,
);
pub fn arb_fmpz_poly_gauss_period_minpoly(
res: *mut fmpz_poly_struct,
q: ulong,
n: ulong,
);
}
/* arb_fpwrap.h */
#[repr(C)]
#[derive(Default)]
pub struct complex_double {
pub real: f64,
pub imag: f64,
}
unsafe extern "C" {
pub fn arb_fpwrap_double_exp(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_exp(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_expm1(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_expm1(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_log(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_log(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_log1p(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_log1p(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_pow(
res: *mut f64,
x: f64,
y: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_pow(
res: *mut complex_double,
x: complex_double,
y: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_sqrt(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_sqrt(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_rsqrt(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_rsqrt(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_cbrt(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_cbrt(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_sin(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_sin(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_cos(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_cos(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_tan(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_tan(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_cot(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_cot(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_sec(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_sec(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_csc(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_csc(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_sinc(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_sinc(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_sin_pi(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_sin_pi(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_cos_pi(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_cos_pi(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_tan_pi(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_tan_pi(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_cot_pi(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_cot_pi(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_sinc_pi(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_sinc_pi(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_asin(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_asin(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_acos(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_acos(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_atan(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_atan(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_atan2(
res: *mut f64,
x1: f64,
x2: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_asinh(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_asinh(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_acosh(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_acosh(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_atanh(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_atanh(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_lambertw(
res: *mut f64,
x: f64,
branch: slong,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_lambertw(
res: *mut complex_double,
x: complex_double,
branch: slong,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_rising(
res: *mut f64,
x: f64,
n: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_rising(
res: *mut complex_double,
x: complex_double,
n: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_gamma(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_gamma(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_rgamma(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_rgamma(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_lgamma(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_lgamma(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_digamma(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_digamma(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_zeta(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_zeta(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_hurwitz_zeta(
res: *mut f64,
s: f64,
z: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_hurwitz_zeta(
res: *mut complex_double,
s: complex_double,
z: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_barnes_g(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_barnes_g(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_log_barnes_g(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_log_barnes_g(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_polygamma(
res: *mut f64,
s: f64,
z: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_polygamma(
res: *mut complex_double,
s: complex_double,
z: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_polylog(
res: *mut f64,
s: f64,
z: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_polylog(
res: *mut complex_double,
s: complex_double,
z: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_lerch_phi(
res: *mut f64,
z: f64,
s: f64,
a: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_lerch_phi(
res: *mut complex_double,
z: complex_double,
s: complex_double,
a: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_dirichlet_eta(
res: *mut complex_double,
s: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_riemann_xi(
res: *mut complex_double,
s: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_hardy_theta(
res: *mut complex_double,
z: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_hardy_z(
res: *mut complex_double,
z: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_zeta_zero(
res: *mut complex_double,
n: ulong,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_erf(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_erf(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_erfc(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_erfc(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_erfi(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_erfi(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_erfinv(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_erfcinv(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_fresnel_s(
res: *mut f64,
x: f64,
normalized: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_fresnel_s(
res: *mut complex_double,
x: complex_double,
normalized: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_fresnel_c(
res: *mut f64,
x: f64,
normalized: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_fresnel_c(
res: *mut complex_double,
x: complex_double,
normalized: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_gamma_upper(
res: *mut f64,
s: f64,
z: f64,
regularized: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_gamma_upper(
res: *mut complex_double,
s: complex_double,
z: complex_double,
regularized: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_gamma_lower(
res: *mut f64,
s: f64,
z: f64,
regularized: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_gamma_lower(
res: *mut complex_double,
s: complex_double,
z: complex_double,
regularized: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_beta_lower(
res: *mut f64,
a: f64,
b: f64,
z: f64,
regularized: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_beta_lower(
res: *mut complex_double,
a: complex_double,
b: complex_double,
z: complex_double,
regularized: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_exp_integral_e(
res: *mut f64,
s: f64,
z: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_exp_integral_e(
res: *mut complex_double,
s: complex_double,
z: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_exp_integral_ei(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_exp_integral_ei(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_sin_integral(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_sin_integral(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_cos_integral(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_cos_integral(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_sinh_integral(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_sinh_integral(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_cosh_integral(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_cosh_integral(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_log_integral(
res: *mut f64,
x: f64,
offset: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_log_integral(
res: *mut complex_double,
x: complex_double,
offset: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_dilog(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_dilog(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_bessel_j(
res: *mut f64,
nu: f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_bessel_j(
res: *mut complex_double,
nu: complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_bessel_y(
res: *mut f64,
nu: f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_bessel_y(
res: *mut complex_double,
nu: complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_bessel_i(
res: *mut f64,
nu: f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_bessel_i(
res: *mut complex_double,
nu: complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_bessel_k(
res: *mut f64,
nu: f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_bessel_k(
res: *mut complex_double,
nu: complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_bessel_k_scaled(
res: *mut f64,
nu: f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_bessel_k_scaled(
res: *mut complex_double,
nu: complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_airy_ai(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_airy_ai(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_airy_ai_prime(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_airy_ai_prime(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_airy_bi(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_airy_bi(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_airy_bi_prime(
res: *mut f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_airy_bi_prime(
res: *mut complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_airy_ai_zero(
res: *mut f64,
n: ulong,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_airy_ai_prime_zero(
res: *mut f64,
n: ulong,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_airy_bi_zero(
res: *mut f64,
n: ulong,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_airy_bi_prime_zero(
res: *mut f64,
n: ulong,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_coulomb_f(
res: *mut f64,
l: f64,
eta: f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_coulomb_f(
res: *mut complex_double,
l: complex_double,
eta: complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_coulomb_g(
res: *mut f64,
l: f64,
eta: f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_coulomb_g(
res: *mut complex_double,
l: complex_double,
eta: complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_coulomb_hpos(
res: *mut complex_double,
l: complex_double,
eta: complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_coulomb_hneg(
res: *mut complex_double,
l: complex_double,
eta: complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_chebyshev_t(
res: *mut f64,
n: f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_chebyshev_t(
res: *mut complex_double,
n: complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_chebyshev_u(
res: *mut f64,
n: f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_chebyshev_u(
res: *mut complex_double,
n: complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_jacobi_p(
res: *mut f64,
n: f64,
a: f64,
b: f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_jacobi_p(
res: *mut complex_double,
n: complex_double,
a: complex_double,
b: complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_gegenbauer_c(
res: *mut f64,
n: f64,
m: f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_gegenbauer_c(
res: *mut complex_double,
n: complex_double,
m: complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_laguerre_l(
res: *mut f64,
n: f64,
m: f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_laguerre_l(
res: *mut complex_double,
n: complex_double,
m: complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_hermite_h(
res: *mut f64,
n: f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_hermite_h(
res: *mut complex_double,
n: complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_legendre_p(
res: *mut f64,
n: f64,
m: f64,
x: f64,
type_: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_legendre_p(
res: *mut complex_double,
n: complex_double,
m: complex_double,
x: complex_double,
type_: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_legendre_q(
res: *mut f64,
n: f64,
m: f64,
x: f64,
type_: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_legendre_q(
res: *mut complex_double,
n: complex_double,
m: complex_double,
x: complex_double,
type_: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_legendre_root(
res1: *mut f64,
res2: *mut f64,
n: ulong,
k: ulong,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_spherical_y(
res: *mut complex_double,
n: slong,
m: slong,
x1: complex_double,
x2: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_hypgeom_0f1(
res: *mut f64,
a: f64,
x: f64,
regularized: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_hypgeom_0f1(
res: *mut complex_double,
a: complex_double,
x: complex_double,
regularized: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_hypgeom_1f1(
res: *mut f64,
a: f64,
b: f64,
x: f64,
regularized: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_hypgeom_1f1(
res: *mut complex_double,
a: complex_double,
b: complex_double,
x: complex_double,
regularized: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_hypgeom_u(
res: *mut f64,
a: f64,
b: f64,
x: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_hypgeom_u(
res: *mut complex_double,
a: complex_double,
b: complex_double,
x: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_hypgeom_2f1(
res: *mut f64,
a: f64,
b: f64,
c: f64,
x: f64,
regularized: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_hypgeom_2f1(
res: *mut complex_double,
a: complex_double,
b: complex_double,
c: complex_double,
x: complex_double,
regularized: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_hypgeom_pfq(
res: *mut f64,
a: *const f64,
p: slong,
b: *const f64,
q: slong,
z: f64,
regularized: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_hypgeom_pfq(
res: *mut complex_double,
a: *const complex_double,
p: slong,
b: *const complex_double,
q: slong,
z: complex_double,
regularized: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_double_agm(
res: *mut f64,
x: f64,
y: f64,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_agm(
res: *mut complex_double,
x: complex_double,
y: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_elliptic_k(
res: *mut complex_double,
m: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_elliptic_e(
res: *mut complex_double,
m: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_elliptic_pi(
res: *mut complex_double,
n: complex_double,
m: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_elliptic_f(
res: *mut complex_double,
phi: complex_double,
m: complex_double,
pi: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_elliptic_e_inc(
res: *mut complex_double,
phi: complex_double,
m: complex_double,
pi: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_elliptic_pi_inc(
res: *mut complex_double,
n: complex_double,
phi: complex_double,
m: complex_double,
pi: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_elliptic_rf(
res: *mut complex_double,
x: complex_double,
y: complex_double,
z: complex_double,
option: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_elliptic_rg(
res: *mut complex_double,
x: complex_double,
y: complex_double,
z: complex_double,
option: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_elliptic_rj(
res: *mut complex_double,
x: complex_double,
y: complex_double,
z: complex_double,
w: complex_double,
option: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_elliptic_p(
res: *mut complex_double,
z: complex_double,
tau: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_elliptic_p_prime(
res: *mut complex_double,
z: complex_double,
tau: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_elliptic_inv_p(
res: *mut complex_double,
z: complex_double,
tau: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_elliptic_zeta(
res: *mut complex_double,
z: complex_double,
tau: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_elliptic_sigma(
res: *mut complex_double,
z: complex_double,
tau: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_jacobi_theta_1(
res: *mut complex_double,
z: complex_double,
tau: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_jacobi_theta_2(
res: *mut complex_double,
z: complex_double,
tau: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_jacobi_theta_3(
res: *mut complex_double,
z: complex_double,
tau: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_jacobi_theta_4(
res: *mut complex_double,
z: complex_double,
tau: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_dedekind_eta(
res: *mut complex_double,
tau: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_modular_j(
res: *mut complex_double,
tau: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_modular_lambda(
res: *mut complex_double,
tau: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arb_fpwrap_cdouble_modular_delta(
res: *mut complex_double,
tau: complex_double,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
/* arb_hypgeom.h */
#[repr(C)]
#[derive(Default)]
pub struct arb_hypgeom_gamma_coeff_t {
pub exp: ::std::os::raw::c_short,
pub tab_pos: ::std::os::raw::c_short,
pub nlimbs: ::std::os::raw::c_char,
pub negative: ::std::os::raw::c_char,
}
unsafe extern "C" {
pub fn _arb_hypgeom_rising_coeffs_1(c: *mut ulong, k: ulong, l: slong);
pub fn _arb_hypgeom_rising_coeffs_2(c: *mut ulong, k: ulong, l: slong);
pub fn _arb_hypgeom_rising_coeffs_fmpz(c: *mut fmpz, k: ulong, l: slong);
pub fn arb_hypgeom_rising_ui_forward(
res: *mut arb_struct,
x: *const arb_struct,
n: ulong,
prec: slong,
);
pub fn arb_hypgeom_rising_ui_rs(
res: *mut arb_struct,
x: *const arb_struct,
n: ulong,
m: ulong,
prec: slong,
);
pub fn arb_hypgeom_rising_ui_bs(
res: *mut arb_struct,
x: *const arb_struct,
n: ulong,
prec: slong,
);
pub fn arb_hypgeom_rising_ui_rec(
res: *mut arb_struct,
x: *const arb_struct,
n: ulong,
prec: slong,
);
pub fn arb_hypgeom_rising_ui(
y: *mut arb_struct,
x: *const arb_struct,
n: ulong,
prec: slong,
);
pub fn arb_hypgeom_rising(
y: *mut arb_struct,
x: *const arb_struct,
n: *const arb_struct,
prec: slong,
);
pub fn arb_hypgeom_rising_ui_jet_powsum(
res: arb_ptr,
x: *const arb_struct,
n: ulong,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_rising_ui_jet_rs(
res: arb_ptr,
x: *const arb_struct,
n: ulong,
m: ulong,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_rising_ui_jet_bs(
res: arb_ptr,
x: *const arb_struct,
n: ulong,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_rising_ui_jet(
res: arb_ptr,
x: *const arb_struct,
n: ulong,
len: slong,
prec: slong,
);
pub fn _arb_hypgeom_gamma_stirling_term_bounds(
bound: *mut slong,
zinv: *const mag_struct,
N: slong,
);
pub fn arb_hypgeom_gamma_stirling_sum_horner(
s: *mut arb_struct,
z: *const arb_struct,
N: slong,
prec: slong,
);
pub fn arb_hypgeom_gamma_stirling_sum_improved(
s: *mut arb_struct,
z: *const arb_struct,
N: slong,
K: slong,
prec: slong,
);
pub fn _arb_hypgeom_gamma_coeff_shallow(
c: *mut arf_struct,
err: *mut mag_struct,
i: slong,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn arb_hypgeom_gamma_stirling(
res: *mut arb_struct,
x: *const arb_struct,
reciprocal: ::std::os::raw::c_int,
prec: slong,
);
pub fn arb_hypgeom_gamma_taylor(
res: *mut arb_struct,
x: *const arb_struct,
reciprocal: ::std::os::raw::c_int,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn arb_hypgeom_gamma(y: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_hypgeom_rgamma(y: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_hypgeom_lgamma(y: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_hypgeom_gamma_fmpq(y: *mut arb_struct, x: *const fmpq, prec: slong);
pub fn arb_hypgeom_gamma_fmpz(y: *mut arb_struct, x: *const fmpz, prec: slong);
pub fn arb_hypgeom_pfq(
res: *mut arb_struct,
a: arb_srcptr,
p: slong,
b: arb_srcptr,
q: slong,
z: *const arb_struct,
regularized: ::std::os::raw::c_int,
prec: slong,
);
pub fn arb_hypgeom_0f1(
res: *mut arb_struct,
a: *const arb_struct,
z: *const arb_struct,
regularized: ::std::os::raw::c_int,
prec: slong,
);
pub fn arb_hypgeom_m(
res: *mut arb_struct,
a: *const arb_struct,
b: *const arb_struct,
z: *const arb_struct,
regularized: ::std::os::raw::c_int,
prec: slong,
);
pub fn arb_hypgeom_1f1(
res: *mut arb_struct,
a: *const arb_struct,
b: *const arb_struct,
z: *const arb_struct,
regularized: ::std::os::raw::c_int,
prec: slong,
);
pub fn arb_hypgeom_u(
res: *mut arb_struct,
a: *const arb_struct,
b: *const arb_struct,
z: *const arb_struct,
prec: slong,
);
pub fn arb_hypgeom_2f1(
res: *mut arb_struct,
a: *const arb_struct,
b: *const arb_struct,
c: *const arb_struct,
z: *const arb_struct,
regularized: ::std::os::raw::c_int,
prec: slong,
);
pub fn arb_hypgeom_1f1_integration(
res: *mut arb_struct,
a: *const arb_struct,
b: *const arb_struct,
z: *const arb_struct,
regularized: ::std::os::raw::c_int,
prec: slong,
);
pub fn arb_hypgeom_u_integration(
res: *mut arb_struct,
a: *const arb_struct,
b: *const arb_struct,
z: *const arb_struct,
prec: slong,
);
pub fn arb_hypgeom_2f1_integration(
res: *mut arb_struct,
a: *const arb_struct,
b: *const arb_struct,
c: *const arb_struct,
z: *const arb_struct,
regularized: ::std::os::raw::c_int,
prec: slong,
);
pub fn arb_hypgeom_erf(res: *mut arb_struct, z: *const arb_struct, prec: slong);
pub fn _arb_hypgeom_erf_series(
g: arb_ptr,
h: arb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_erf_series(
g: *mut arb_poly_struct,
h: *const arb_poly_struct,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_erfc(res: *mut arb_struct, z: *const arb_struct, prec: slong);
pub fn _arb_hypgeom_erfc_series(
g: arb_ptr,
h: arb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_erfc_series(
g: *mut arb_poly_struct,
h: *const arb_poly_struct,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_erfi(res: *mut arb_struct, z: *const arb_struct, prec: slong);
pub fn _arb_hypgeom_erfi_series(
g: arb_ptr,
h: arb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_erfi_series(
g: *mut arb_poly_struct,
h: *const arb_poly_struct,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_erfinv(res: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_hypgeom_erfcinv(res: *mut arb_struct, x: *const arb_struct, prec: slong);
pub fn arb_hypgeom_fresnel(
res1: *mut arb_struct,
res2: *mut arb_struct,
z: *const arb_struct,
normalized: ::std::os::raw::c_int,
prec: slong,
);
pub fn _arb_hypgeom_fresnel_series(
s: arb_ptr,
c: arb_ptr,
h: arb_srcptr,
hlen: slong,
normalized: ::std::os::raw::c_int,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_fresnel_series(
s: *mut arb_poly_struct,
c: *mut arb_poly_struct,
h: *const arb_poly_struct,
normalized: ::std::os::raw::c_int,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_ei(res: *mut arb_struct, z: *const arb_struct, prec: slong);
pub fn _arb_hypgeom_ei_series(
g: arb_ptr,
h: arb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_ei_series(
g: *mut arb_poly_struct,
h: *const arb_poly_struct,
len: slong,
prec: slong,
);
pub fn _arb_hypgeom_si_asymp(
res: *mut arb_struct,
z: *const arb_struct,
N: slong,
prec: slong,
);
pub fn _arb_hypgeom_si_1f2(
res: *mut arb_struct,
z: *const arb_struct,
N: slong,
wp: slong,
prec: slong,
);
pub fn arb_hypgeom_si(res: *mut arb_struct, z: *const arb_struct, prec: slong);
pub fn _arb_hypgeom_si_series(
g: arb_ptr,
h: arb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_si_series(
g: *mut arb_poly_struct,
h: *const arb_poly_struct,
len: slong,
prec: slong,
);
pub fn _arb_hypgeom_ci_asymp(
res: *mut arb_struct,
z: *const arb_struct,
N: slong,
prec: slong,
);
pub fn _arb_hypgeom_ci_2f3(
res: *mut arb_struct,
z: *const arb_struct,
N: slong,
wp: slong,
prec: slong,
);
pub fn arb_hypgeom_ci(res: *mut arb_struct, z: *const arb_struct, prec: slong);
pub fn _arb_hypgeom_ci_series(
g: arb_ptr,
h: arb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_ci_series(
g: *mut arb_poly_struct,
h: *const arb_poly_struct,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_shi(res: *mut arb_struct, z: *const arb_struct, prec: slong);
pub fn _arb_hypgeom_shi_series(
g: arb_ptr,
h: arb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_shi_series(
g: *mut arb_poly_struct,
h: *const arb_poly_struct,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_chi(res: *mut arb_struct, z: *const arb_struct, prec: slong);
pub fn _arb_hypgeom_chi_series(
g: arb_ptr,
h: arb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_chi_series(
g: *mut arb_poly_struct,
h: *const arb_poly_struct,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_li(
res: *mut arb_struct,
z: *const arb_struct,
offset: ::std::os::raw::c_int,
prec: slong,
);
pub fn _arb_hypgeom_li_series(
g: arb_ptr,
h: arb_srcptr,
hlen: slong,
offset: ::std::os::raw::c_int,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_li_series(
g: *mut arb_poly_struct,
h: *const arb_poly_struct,
offset: ::std::os::raw::c_int,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_bessel_j(
res: *mut arb_struct,
nu: *const arb_struct,
z: *const arb_struct,
prec: slong,
);
pub fn arb_hypgeom_bessel_y(
res: *mut arb_struct,
nu: *const arb_struct,
z: *const arb_struct,
prec: slong,
);
pub fn arb_hypgeom_bessel_jy(
res1: *mut arb_struct,
res2: *mut arb_struct,
nu: *const arb_struct,
z: *const arb_struct,
prec: slong,
);
pub fn arb_hypgeom_bessel_i(
res: *mut arb_struct,
nu: *const arb_struct,
z: *const arb_struct,
prec: slong,
);
pub fn arb_hypgeom_bessel_k(
res: *mut arb_struct,
nu: *const arb_struct,
z: *const arb_struct,
prec: slong,
);
pub fn _arb_hypgeom_bessel_j_series(
res: arb_ptr,
nu: *const arb_struct,
z: arb_srcptr,
zlen: slong,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_bessel_j_series(
res: *mut arb_poly_struct,
nu: *const arb_struct,
z: *const arb_poly_struct,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_bessel_i_scaled(
res: *mut arb_struct,
nu: *const arb_struct,
z: *const arb_struct,
prec: slong,
);
pub fn arb_hypgeom_bessel_k_scaled(
res: *mut arb_struct,
nu: *const arb_struct,
z: *const arb_struct,
prec: slong,
);
pub fn arb_hypgeom_bessel_i_integration(
res: *mut arb_struct,
nu: *const arb_struct,
z: *const arb_struct,
scaled: ::std::os::raw::c_int,
prec: slong,
);
pub fn arb_hypgeom_bessel_k_integration(
res: *mut arb_struct,
nu: *const arb_struct,
z: *const arb_struct,
scaled: ::std::os::raw::c_int,
prec: slong,
);
pub fn arb_hypgeom_airy(
ai: *mut arb_struct,
aip: *mut arb_struct,
bi: *mut arb_struct,
bip: *mut arb_struct,
z: *const arb_struct,
prec: slong,
);
pub fn arb_hypgeom_airy_jet(
ai: arb_ptr,
bi: arb_ptr,
z: *const arb_struct,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_airy_series(
ai: *mut arb_poly_struct,
ai_prime: *mut arb_poly_struct,
bi: *mut arb_poly_struct,
bi_prime: *mut arb_poly_struct,
z: *const arb_poly_struct,
len: slong,
prec: slong,
);
pub fn _arb_hypgeom_airy_series(
ai: arb_ptr,
ai_prime: arb_ptr,
bi: arb_ptr,
bi_prime: arb_ptr,
z: arb_srcptr,
zlen: slong,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_airy_zero(
ai: *mut arb_struct,
aip: *mut arb_struct,
bi: *mut arb_struct,
bip: *mut arb_struct,
n: *const fmpz,
prec: slong,
);
pub fn arb_hypgeom_coulomb(
F: *mut arb_struct,
G: *mut arb_struct,
l: *const arb_struct,
eta: *const arb_struct,
z: *const arb_struct,
prec: slong,
);
pub fn arb_hypgeom_coulomb_jet(
F: arb_ptr,
G: arb_ptr,
l: *const arb_struct,
eta: *const arb_struct,
z: *const arb_struct,
len: slong,
prec: slong,
);
pub fn _arb_hypgeom_coulomb_series(
F: arb_ptr,
G: arb_ptr,
l: *const arb_struct,
eta: *const arb_struct,
z: arb_srcptr,
zlen: slong,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_coulomb_series(
F: *mut arb_poly_struct,
G: *mut arb_poly_struct,
l: *const arb_struct,
eta: *const arb_struct,
z: *const arb_poly_struct,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_expint(
res: *mut arb_struct,
s: *const arb_struct,
z: *const arb_struct,
prec: slong,
);
pub fn arb_hypgeom_gamma_lower(
res: *mut arb_struct,
s: *const arb_struct,
z: *const arb_struct,
regularized: ::std::os::raw::c_int,
prec: slong,
);
pub fn _arb_hypgeom_gamma_lower_series(
g: arb_ptr,
s: *const arb_struct,
h: arb_srcptr,
hlen: slong,
regularized: ::std::os::raw::c_int,
n: slong,
prec: slong,
);
pub fn arb_hypgeom_gamma_lower_series(
g: *mut arb_poly_struct,
s: *const arb_struct,
h: *const arb_poly_struct,
regularized: ::std::os::raw::c_int,
n: slong,
prec: slong,
);
pub fn arb_hypgeom_gamma_upper(
res: *mut arb_struct,
s: *const arb_struct,
z: *const arb_struct,
regularized: ::std::os::raw::c_int,
prec: slong,
);
pub fn _arb_hypgeom_gamma_upper_series(
g: arb_ptr,
s: *const arb_struct,
h: arb_srcptr,
hlen: slong,
regularized: ::std::os::raw::c_int,
n: slong,
prec: slong,
);
pub fn arb_hypgeom_gamma_upper_series(
g: *mut arb_poly_struct,
s: *const arb_struct,
h: *const arb_poly_struct,
regularized: ::std::os::raw::c_int,
n: slong,
prec: slong,
);
pub fn arb_hypgeom_gamma_upper_integration(
res: *mut arb_struct,
s: *const arb_struct,
z: *const arb_struct,
regularized: ::std::os::raw::c_int,
prec: slong,
);
pub fn arb_hypgeom_beta_lower(
res: *mut arb_struct,
a: *const arb_struct,
c: *const arb_struct,
z: *const arb_struct,
regularized: ::std::os::raw::c_int,
prec: slong,
);
pub fn arb_hypgeom_beta_lower_series(
res: *mut arb_poly_struct,
a: *const arb_struct,
b: *const arb_struct,
z: *const arb_poly_struct,
regularized: ::std::os::raw::c_int,
len: slong,
prec: slong,
);
pub fn _arb_hypgeom_beta_lower_series(
res: arb_ptr,
a: *const arb_struct,
b: *const arb_struct,
z: arb_srcptr,
zlen: slong,
regularized: ::std::os::raw::c_int,
len: slong,
prec: slong,
);
pub fn arb_hypgeom_chebyshev_t(
res: *mut arb_struct,
nu: *const arb_struct,
z: *const arb_struct,
prec: slong,
);
pub fn arb_hypgeom_chebyshev_u(
res: *mut arb_struct,
nu: *const arb_struct,
z: *const arb_struct,
prec: slong,
);
pub fn arb_hypgeom_jacobi_p(
res: *mut arb_struct,
n: *const arb_struct,
a: *const arb_struct,
b: *const arb_struct,
z: *const arb_struct,
prec: slong,
);
pub fn arb_hypgeom_gegenbauer_c(
res: *mut arb_struct,
n: *const arb_struct,
m: *const arb_struct,
z: *const arb_struct,
prec: slong,
);
pub fn arb_hypgeom_laguerre_l(
res: *mut arb_struct,
n: *const arb_struct,
m: *const arb_struct,
z: *const arb_struct,
prec: slong,
);
pub fn arb_hypgeom_hermite_h(
res: *mut arb_struct,
nu: *const arb_struct,
z: *const arb_struct,
prec: slong,
);
pub fn arb_hypgeom_legendre_p(
res: *mut arb_struct,
n: *const arb_struct,
m: *const arb_struct,
z: *const arb_struct,
type_: ::std::os::raw::c_int,
prec: slong,
);
pub fn arb_hypgeom_legendre_q(
res: *mut arb_struct,
n: *const arb_struct,
m: *const arb_struct,
z: *const arb_struct,
type_: ::std::os::raw::c_int,
prec: slong,
);
pub fn arb_hypgeom_legendre_p_ui_deriv_bound(
dp: *mut mag_struct,
dp2: *mut mag_struct,
n: ulong,
x: *const arb_struct,
x2sub1: *const arb_struct,
);
pub fn arb_hypgeom_legendre_p_ui_rec(
res: *mut arb_struct,
res_prime: *mut arb_struct,
n: ulong,
x: *const arb_struct,
prec: slong,
);
pub fn arb_hypgeom_legendre_p_ui_asymp(
res: *mut arb_struct,
res2: *mut arb_struct,
n: ulong,
x: *const arb_struct,
K: slong,
prec: slong,
);
pub fn arb_hypgeom_legendre_p_ui_one(
res: *mut arb_struct,
res2: *mut arb_struct,
n: ulong,
x: *const arb_struct,
K: slong,
prec: slong,
);
pub fn arb_hypgeom_legendre_p_ui_zero(
res: *mut arb_struct,
res2: *mut arb_struct,
n: ulong,
x: *const arb_struct,
K: slong,
prec: slong,
);
pub fn arb_hypgeom_legendre_p_ui(
res: *mut arb_struct,
res_prime: *mut arb_struct,
n: ulong,
x: *const arb_struct,
prec: slong,
);
pub fn arb_hypgeom_legendre_p_ui_root(
res: *mut arb_struct,
weight: *mut arb_struct,
n: ulong,
k: ulong,
prec: slong,
);
pub fn arb_hypgeom_central_bin_ui(res: *mut arb_struct, n: ulong, prec: slong);
pub fn arb_hypgeom_dilog(res: *mut arb_struct, z: *const arb_struct, prec: slong);
pub fn _arb_hypgeom_gamma_lower_sum_rs_1(
res: *mut arb_struct,
p: ulong,
q: ulong,
z: *const arb_struct,
N: slong,
prec: slong,
);
pub fn _arb_hypgeom_gamma_upper_sum_rs_1(
res: *mut arb_struct,
p: ulong,
q: ulong,
z: *const arb_struct,
N: slong,
prec: slong,
);
pub fn _arb_hypgeom_gamma_upper_fmpq_inf_choose_N(
err: *mut mag_struct,
a: *const fmpq,
z: *const arb_struct,
abs_tol: *const mag_struct,
) -> slong;
pub fn _arb_hypgeom_gamma_upper_fmpq_inf_bsplit(
res: *mut arb_struct,
a: *const fmpq,
z: *const arb_struct,
N: slong,
prec: slong,
);
pub fn _arb_hypgeom_gamma_lower_fmpq_0_choose_N(
err: *mut mag_struct,
a: *const fmpq,
z: *const arb_struct,
abs_tol: *const mag_struct,
) -> slong;
pub fn _arb_hypgeom_gamma_lower_fmpq_0_bsplit(
res: *mut arb_struct,
a: *const fmpq,
z: *const arb_struct,
N: slong,
prec: slong,
);
pub fn _arb_gamma_upper_fmpq_step_bsplit(
Gz1: *mut arb_struct,
a: *const fmpq,
z0: *const arb_struct,
z1: *const arb_struct,
Gz0: *const arb_struct,
expmz0: *const arb_struct,
abs_tol: *const mag_struct,
prec: slong,
);
pub fn _arb_hypgeom_gamma_upper_singular_si_choose_N(
err: *mut mag_struct,
n: slong,
z: *const arb_struct,
abs_tol: *const mag_struct,
) -> slong;
pub fn _arb_hypgeom_gamma_upper_singular_si_bsplit(
res: *mut arb_struct,
n: slong,
z: *const arb_struct,
N: slong,
prec: slong,
);
pub fn arb_hypgeom_erf_bb(
res: *mut arb_struct,
z: *const arb_struct,
complementary: ::std::os::raw::c_int,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn arb_hypgeom_sum_fmpq_arb_forward(
res: *mut arb_struct,
a: *const fmpq,
alen: slong,
b: *const fmpq,
blen: slong,
z: *const arb_struct,
reciprocal: ::std::os::raw::c_int,
N: slong,
prec: slong,
);
pub fn arb_hypgeom_sum_fmpq_arb_rs(
res: *mut arb_struct,
a: *const fmpq,
alen: slong,
b: *const fmpq,
blen: slong,
z: *const arb_struct,
reciprocal: ::std::os::raw::c_int,
N: slong,
prec: slong,
);
pub fn arb_hypgeom_sum_fmpq_arb_bs(
res: *mut arb_struct,
a: *const fmpq,
alen: slong,
b: *const fmpq,
blen: slong,
z: *const arb_struct,
reciprocal: ::std::os::raw::c_int,
N: slong,
prec: slong,
);
pub fn arb_hypgeom_sum_fmpq_arb(
res: *mut arb_struct,
a: *const fmpq,
alen: slong,
b: *const fmpq,
blen: slong,
z: *const arb_struct,
reciprocal: ::std::os::raw::c_int,
N: slong,
prec: slong,
);
pub fn arb_hypgeom_sum_fmpq_imag_arb_forward(
res1: *mut arb_struct,
res2: *mut arb_struct,
a: *const fmpq,
alen: slong,
b: *const fmpq,
blen: slong,
z: *const arb_struct,
reciprocal: ::std::os::raw::c_int,
N: slong,
prec: slong,
);
pub fn arb_hypgeom_sum_fmpq_imag_arb_rs(
res1: *mut arb_struct,
res2: *mut arb_struct,
a: *const fmpq,
alen: slong,
b: *const fmpq,
blen: slong,
z: *const arb_struct,
reciprocal: ::std::os::raw::c_int,
N: slong,
prec: slong,
);
pub fn arb_hypgeom_sum_fmpq_imag_arb_bs(
res_real: *mut arb_struct,
res_imag: *mut arb_struct,
a: *const fmpq,
alen: slong,
b: *const fmpq,
blen: slong,
z: *const arb_struct,
reciprocal: ::std::os::raw::c_int,
N: slong,
prec: slong,
);
pub fn arb_hypgeom_sum_fmpq_imag_arb(
res1: *mut arb_struct,
res2: *mut arb_struct,
a: *const fmpq,
alen: slong,
b: *const fmpq,
blen: slong,
z: *const arb_struct,
reciprocal: ::std::os::raw::c_int,
N: slong,
prec: slong,
);
}
/* arb_mat.h */
unsafe extern "C" {
pub fn arb_mat_entry_ptr(mat: *mut arb_mat_struct, i: slong, j: slong) -> arb_ptr;
pub fn arb_mat_init(mat: *mut arb_mat_struct, r: slong, c: slong);
pub fn arb_mat_clear(mat: *mut arb_mat_struct);
pub fn arb_mat_swap(mat1: *mut arb_mat_struct, mat2: *mut arb_mat_struct);
pub fn arb_mat_swap_entrywise(mat1: *mut arb_mat_struct, mat2: *mut arb_mat_struct);
pub fn arb_mat_window_init(
window: *mut arb_mat_struct,
mat: *const arb_mat_struct,
r1: slong,
c1: slong,
r2: slong,
c2: slong,
);
pub fn arb_mat_window_clear(UNUSED_window: *mut arb_mat_struct);
pub fn arb_mat_set(dest: *mut arb_mat_struct, src: *const arb_mat_struct);
pub fn arb_mat_set_fmpz_mat(dest: *mut arb_mat_struct, src: *const fmpz_mat_struct);
pub fn arb_mat_set_round_fmpz_mat(
dest: *mut arb_mat_struct,
src: *const fmpz_mat_struct,
prec: slong,
);
pub fn arb_mat_set_fmpq_mat(
dest: *mut arb_mat_struct,
src: *const fmpq_mat_struct,
prec: slong,
);
pub fn arb_mat_randtest(
mat: *mut arb_mat_struct,
state: *mut flint_rand_struct,
prec: slong,
mag_bits: slong,
);
pub fn arb_mat_randtest_cho(
mat: *mut arb_mat_struct,
state: *mut flint_rand_struct,
prec: slong,
mag_bits: slong,
);
pub fn arb_mat_randtest_spd(
mat: *mut arb_mat_struct,
state: *mut flint_rand_struct,
prec: slong,
mag_bits: slong,
);
pub fn arb_mat_fprintd(file: *mut FILE, mat: *const arb_mat_struct, digits: slong);
pub fn arb_mat_printd(mat: *const arb_mat_struct, digits: slong);
pub fn arb_mat_eq(
mat1: *const arb_mat_struct,
mat2: *const arb_mat_struct,
) -> ::std::os::raw::c_int;
pub fn arb_mat_ne(
mat1: *const arb_mat_struct,
mat2: *const arb_mat_struct,
) -> ::std::os::raw::c_int;
pub fn arb_mat_equal(
mat1: *const arb_mat_struct,
mat2: *const arb_mat_struct,
) -> ::std::os::raw::c_int;
pub fn arb_mat_overlaps(
mat1: *const arb_mat_struct,
mat2: *const arb_mat_struct,
) -> ::std::os::raw::c_int;
pub fn arb_mat_contains(
mat1: *const arb_mat_struct,
mat2: *const arb_mat_struct,
) -> ::std::os::raw::c_int;
pub fn arb_mat_contains_fmpq_mat(
mat1: *const arb_mat_struct,
mat2: *const fmpq_mat_struct,
) -> ::std::os::raw::c_int;
pub fn arb_mat_contains_fmpz_mat(
mat1: *const arb_mat_struct,
mat2: *const fmpz_mat_struct,
) -> ::std::os::raw::c_int;
pub fn arb_mat_is_empty(mat: *const arb_mat_struct) -> ::std::os::raw::c_int;
pub fn arb_mat_is_square(mat: *const arb_mat_struct) -> ::std::os::raw::c_int;
pub fn arb_mat_is_exact(A: *const arb_mat_struct) -> ::std::os::raw::c_int;
pub fn arb_mat_is_zero(mat: *const arb_mat_struct) -> ::std::os::raw::c_int;
pub fn arb_mat_is_finite(mat: *const arb_mat_struct) -> ::std::os::raw::c_int;
pub fn arb_mat_is_triu(mat: *const arb_mat_struct) -> ::std::os::raw::c_int;
pub fn arb_mat_is_tril(mat: *const arb_mat_struct) -> ::std::os::raw::c_int;
pub fn arb_mat_is_diag(mat: *const arb_mat_struct) -> ::std::os::raw::c_int;
pub fn arb_mat_get_mid(B: *mut arb_mat_struct, A: *const arb_mat_struct);
pub fn arb_mat_add_error_mag(mat: *mut arb_mat_struct, err: *const mag_struct);
pub fn arb_mat_zero(mat: *mut arb_mat_struct);
pub fn arb_mat_one(mat: *mut arb_mat_struct);
pub fn arb_mat_ones(mat: *mut arb_mat_struct);
pub fn arb_mat_indeterminate(mat: *mut arb_mat_struct);
pub fn arb_mat_hilbert(mat: *mut arb_mat_struct, prec: slong);
pub fn arb_mat_pascal(
mat: *mut arb_mat_struct,
triangular: ::std::os::raw::c_int,
prec: slong,
);
pub fn arb_mat_stirling(
mat: *mut arb_mat_struct,
kind: ::std::os::raw::c_int,
prec: slong,
);
pub fn arb_mat_dct(
mat: *mut arb_mat_struct,
type_: ::std::os::raw::c_int,
prec: slong,
);
pub fn arb_mat_transpose(mat1: *mut arb_mat_struct, mat2: *const arb_mat_struct);
pub fn arb_mat_bound_inf_norm(b: *mut mag_struct, A: *const arb_mat_struct);
pub fn arb_mat_frobenius_norm(
res: *mut arb_struct,
A: *const arb_mat_struct,
prec: slong,
);
pub fn arb_mat_bound_frobenius_norm(b: *mut mag_struct, A: *const arb_mat_struct);
pub fn arb_mat_neg(dest: *mut arb_mat_struct, src: *const arb_mat_struct);
pub fn arb_mat_add(
res: *mut arb_mat_struct,
mat1: *const arb_mat_struct,
mat2: *const arb_mat_struct,
prec: slong,
);
pub fn arb_mat_sub(
res: *mut arb_mat_struct,
mat1: *const arb_mat_struct,
mat2: *const arb_mat_struct,
prec: slong,
);
pub fn arb_mat_mul(
res: *mut arb_mat_struct,
mat1: *const arb_mat_struct,
mat2: *const arb_mat_struct,
prec: slong,
);
pub fn arb_mat_mul_classical(
C: *mut arb_mat_struct,
A: *const arb_mat_struct,
B: *const arb_mat_struct,
prec: slong,
);
pub fn arb_mat_mul_threaded(
C: *mut arb_mat_struct,
A: *const arb_mat_struct,
B: *const arb_mat_struct,
prec: slong,
);
pub fn _arb_mat_addmul_rad_mag_fast(
C: *mut arb_mat_struct,
A: mag_srcptr,
B: mag_srcptr,
ar: slong,
ac: slong,
bc: slong,
);
pub fn arb_mat_mul_block(
C: *mut arb_mat_struct,
A: *const arb_mat_struct,
B: *const arb_mat_struct,
prec: slong,
);
pub fn arb_mat_mul_entrywise(
res: *mut arb_mat_struct,
mat1: *const arb_mat_struct,
mat2: *const arb_mat_struct,
prec: slong,
);
pub fn arb_mat_sqr_classical(
B: *mut arb_mat_struct,
A: *const arb_mat_struct,
prec: slong,
);
pub fn arb_mat_sqr(B: *mut arb_mat_struct, A: *const arb_mat_struct, prec: slong);
pub fn arb_mat_pow_ui(
B: *mut arb_mat_struct,
A: *const arb_mat_struct,
exp: ulong,
prec: slong,
);
pub fn arb_mat_scalar_mul_2exp_si(
B: *mut arb_mat_struct,
A: *const arb_mat_struct,
c: slong,
);
pub fn arb_mat_scalar_mul_si(
B: *mut arb_mat_struct,
A: *const arb_mat_struct,
c: slong,
prec: slong,
);
pub fn arb_mat_scalar_mul_fmpz(
B: *mut arb_mat_struct,
A: *const arb_mat_struct,
c: *const fmpz,
prec: slong,
);
pub fn arb_mat_scalar_mul_arb(
B: *mut arb_mat_struct,
A: *const arb_mat_struct,
c: *const arb_struct,
prec: slong,
);
pub fn arb_mat_scalar_addmul_si(
B: *mut arb_mat_struct,
A: *const arb_mat_struct,
c: slong,
prec: slong,
);
pub fn arb_mat_scalar_addmul_fmpz(
B: *mut arb_mat_struct,
A: *const arb_mat_struct,
c: *const fmpz,
prec: slong,
);
pub fn arb_mat_scalar_addmul_arb(
B: *mut arb_mat_struct,
A: *const arb_mat_struct,
c: *const arb_struct,
prec: slong,
);
pub fn arb_mat_scalar_div_si(
B: *mut arb_mat_struct,
A: *const arb_mat_struct,
c: slong,
prec: slong,
);
pub fn arb_mat_scalar_div_fmpz(
B: *mut arb_mat_struct,
A: *const arb_mat_struct,
c: *const fmpz,
prec: slong,
);
pub fn arb_mat_scalar_div_arb(
B: *mut arb_mat_struct,
A: *const arb_mat_struct,
c: *const arb_struct,
prec: slong,
);
pub fn _arb_mat_vector_mul_row(
res: arb_ptr,
v: arb_srcptr,
A: *const arb_mat_struct,
prec: slong,
);
pub fn _arb_mat_vector_mul_col(
res: arb_ptr,
A: *const arb_mat_struct,
v: arb_srcptr,
prec: slong,
);
pub fn arb_mat_vector_mul_row(
res: arb_ptr,
v: arb_srcptr,
A: *const arb_mat_struct,
prec: slong,
);
pub fn arb_mat_vector_mul_col(
res: arb_ptr,
A: *const arb_mat_struct,
v: arb_srcptr,
prec: slong,
);
pub fn arb_mat_swap_rows(
mat: *mut arb_mat_struct,
perm: *mut slong,
r: slong,
s: slong,
);
pub fn arb_mat_find_pivot_partial(
mat: *const arb_mat_struct,
start_row: slong,
end_row: slong,
c: slong,
) -> slong;
pub fn arb_mat_solve_tril_classical(
X: *mut arb_mat_struct,
L: *const arb_mat_struct,
B: *const arb_mat_struct,
unit: ::std::os::raw::c_int,
prec: slong,
);
pub fn arb_mat_solve_tril_recursive(
X: *mut arb_mat_struct,
L: *const arb_mat_struct,
B: *const arb_mat_struct,
unit: ::std::os::raw::c_int,
prec: slong,
);
pub fn arb_mat_solve_tril(
X: *mut arb_mat_struct,
L: *const arb_mat_struct,
B: *const arb_mat_struct,
unit: ::std::os::raw::c_int,
prec: slong,
);
pub fn arb_mat_solve_triu_classical(
X: *mut arb_mat_struct,
U: *const arb_mat_struct,
B: *const arb_mat_struct,
unit: ::std::os::raw::c_int,
prec: slong,
);
pub fn arb_mat_solve_triu_recursive(
X: *mut arb_mat_struct,
U: *const arb_mat_struct,
B: *const arb_mat_struct,
unit: ::std::os::raw::c_int,
prec: slong,
);
pub fn arb_mat_solve_triu(
X: *mut arb_mat_struct,
U: *const arb_mat_struct,
B: *const arb_mat_struct,
unit: ::std::os::raw::c_int,
prec: slong,
);
pub fn arb_mat_lu_classical(
P: *mut slong,
LU: *mut arb_mat_struct,
A: *const arb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn arb_mat_lu_recursive(
P: *mut slong,
LU: *mut arb_mat_struct,
A: *const arb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn arb_mat_lu(
P: *mut slong,
LU: *mut arb_mat_struct,
A: *const arb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn arb_mat_solve_lu_precomp(
X: *mut arb_mat_struct,
perm: *const slong,
A: *const arb_mat_struct,
B: *const arb_mat_struct,
prec: slong,
);
pub fn arb_mat_solve(
X: *mut arb_mat_struct,
A: *const arb_mat_struct,
B: *const arb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn arb_mat_solve_lu(
X: *mut arb_mat_struct,
A: *const arb_mat_struct,
B: *const arb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn arb_mat_solve_precond(
X: *mut arb_mat_struct,
A: *const arb_mat_struct,
B: *const arb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn arb_mat_solve_preapprox(
X: *mut arb_mat_struct,
A: *const arb_mat_struct,
B: *const arb_mat_struct,
R: *const arb_mat_struct,
T: *const arb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn arb_mat_approx_mul(
C: *mut arb_mat_struct,
A: *const arb_mat_struct,
B: *const arb_mat_struct,
prec: slong,
);
pub fn arb_mat_approx_solve_triu(
X: *mut arb_mat_struct,
U: *const arb_mat_struct,
B: *const arb_mat_struct,
unit: ::std::os::raw::c_int,
prec: slong,
);
pub fn arb_mat_approx_solve_tril(
X: *mut arb_mat_struct,
L: *const arb_mat_struct,
B: *const arb_mat_struct,
unit: ::std::os::raw::c_int,
prec: slong,
);
pub fn arb_mat_approx_lu(
P: *mut slong,
LU: *mut arb_mat_struct,
A: *const arb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn arb_mat_approx_solve_lu_precomp(
X: *mut arb_mat_struct,
perm: *const slong,
A: *const arb_mat_struct,
B: *const arb_mat_struct,
prec: slong,
);
pub fn arb_mat_approx_solve(
X: *mut arb_mat_struct,
A: *const arb_mat_struct,
B: *const arb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn arb_mat_approx_inv(
X: *mut arb_mat_struct,
A: *const arb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn arb_mat_inv(
X: *mut arb_mat_struct,
A: *const arb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn arb_mat_det_lu(det: *mut arb_struct, A: *const arb_mat_struct, prec: slong);
pub fn arb_mat_det_precond(
det: *mut arb_struct,
A: *const arb_mat_struct,
prec: slong,
);
pub fn arb_mat_det(det: *mut arb_struct, A: *const arb_mat_struct, prec: slong);
pub fn _arb_mat_cholesky_banachiewicz(
A: *mut arb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn arb_mat_cho(
L: *mut arb_mat_struct,
A: *const arb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn arb_mat_solve_cho_precomp(
X: *mut arb_mat_struct,
L: *const arb_mat_struct,
B: *const arb_mat_struct,
prec: slong,
);
pub fn arb_mat_inv_cho_precomp(
X: *mut arb_mat_struct,
L: *const arb_mat_struct,
prec: slong,
);
pub fn arb_mat_spd_solve(
X: *mut arb_mat_struct,
A: *const arb_mat_struct,
B: *const arb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn arb_mat_spd_inv(
X: *mut arb_mat_struct,
A: *const arb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn _arb_mat_ldl_inplace(
A: *mut arb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn _arb_mat_ldl_golub_and_van_loan(
A: *mut arb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn arb_mat_ldl(
L: *mut arb_mat_struct,
A: *const arb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn arb_mat_solve_ldl_precomp(
X: *mut arb_mat_struct,
L: *const arb_mat_struct,
B: *const arb_mat_struct,
prec: slong,
);
pub fn arb_mat_inv_ldl_precomp(
X: *mut arb_mat_struct,
L: *const arb_mat_struct,
prec: slong,
);
pub fn arb_mat_exp_taylor_sum(
S: *mut arb_mat_struct,
A: *const arb_mat_struct,
N: slong,
prec: slong,
);
pub fn arb_mat_exp(B: *mut arb_mat_struct, A: *const arb_mat_struct, prec: slong);
pub fn _arb_mat_charpoly(poly: arb_ptr, mat: *const arb_mat_struct, prec: slong);
pub fn arb_mat_charpoly(
poly: *mut arb_poly_struct,
mat: *const arb_mat_struct,
prec: slong,
);
pub fn _arb_mat_companion(mat: *mut arb_mat_struct, poly: arb_srcptr, prec: slong);
pub fn arb_mat_companion(
mat: *mut arb_mat_struct,
poly: *const arb_poly_struct,
prec: slong,
);
pub fn arb_mat_trace(
trace: *mut arb_struct,
mat: *const arb_mat_struct,
prec: slong,
);
pub fn _arb_mat_diag_prod(
res: *mut arb_struct,
A: *const arb_mat_struct,
a: slong,
b: slong,
prec: slong,
);
pub fn arb_mat_diag_prod(
res: *mut arb_struct,
A: *const arb_mat_struct,
prec: slong,
);
pub fn arb_mat_count_is_zero(mat: *const arb_mat_struct) -> slong;
pub fn arb_mat_count_not_is_zero(mat: *const arb_mat_struct) -> slong;
pub fn arb_mat_allocated_bytes(x: *const arb_mat_struct) -> slong;
pub fn arb_mat_spd_get_fmpz_mat(
B: *mut fmpz_mat_struct,
A: *const arb_mat_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn arb_mat_spd_lll_reduce(
U: *mut fmpz_mat_struct,
A: *const arb_mat_struct,
delta: f64,
eta: f64,
prec: slong,
);
pub fn arb_mat_spd_is_lll_reduced(
A: *const arb_mat_struct,
delta: f64,
eta: f64,
prec: slong,
) -> ::std::os::raw::c_int;
}
/* arb_poly.h */
unsafe extern "C" {
pub fn arb_poly_init(poly: *mut arb_poly_struct);
pub fn arb_poly_init2(poly: *mut arb_poly_struct, len: slong);
pub fn arb_poly_clear(poly: *mut arb_poly_struct);
pub fn arb_poly_fit_length(poly: *mut arb_poly_struct, len: slong);
pub fn _arb_poly_set_length(poly: *mut arb_poly_struct, len: slong);
pub fn _arb_poly_normalise(poly: *mut arb_poly_struct);
pub fn arb_poly_swap(poly1: *mut arb_poly_struct, poly2: *mut arb_poly_struct);
pub fn arb_poly_set(poly: *mut arb_poly_struct, src: *const arb_poly_struct);
pub fn arb_poly_set_round(
poly: *mut arb_poly_struct,
src: *const arb_poly_struct,
prec: slong,
);
pub fn arb_poly_set_trunc(
res: *mut arb_poly_struct,
poly: *const arb_poly_struct,
n: slong,
);
pub fn arb_poly_set_trunc_round(
res: *mut arb_poly_struct,
poly: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn arb_poly_length(poly: *const arb_poly_struct) -> slong;
pub fn arb_poly_degree(poly: *const arb_poly_struct) -> slong;
pub fn arb_poly_valuation(poly: *const arb_poly_struct) -> slong;
pub fn arb_poly_is_zero(z: *const arb_poly_struct) -> ::std::os::raw::c_int;
pub fn arb_poly_is_one(z: *const arb_poly_struct) -> ::std::os::raw::c_int;
pub fn arb_poly_is_x(z: *const arb_poly_struct) -> ::std::os::raw::c_int;
pub fn arb_poly_zero(poly: *mut arb_poly_struct);
pub fn arb_poly_one(poly: *mut arb_poly_struct);
pub fn arb_poly_set_coeff_si(poly: *mut arb_poly_struct, n: slong, x: slong);
pub fn arb_poly_set_coeff_arb(
poly: *mut arb_poly_struct,
n: slong,
x: *const arb_struct,
);
pub fn arb_poly_get_coeff_arb(
x: *mut arb_struct,
poly: *const arb_poly_struct,
n: slong,
);
pub fn _arb_poly_reverse(res: arb_ptr, poly: arb_srcptr, len: slong, n: slong);
pub fn _arb_poly_shift_right(res: arb_ptr, poly: arb_srcptr, len: slong, n: slong);
pub fn arb_poly_shift_right(
res: *mut arb_poly_struct,
poly: *const arb_poly_struct,
n: slong,
);
pub fn _arb_poly_shift_left(res: arb_ptr, poly: arb_srcptr, len: slong, n: slong);
pub fn arb_poly_shift_left(
res: *mut arb_poly_struct,
poly: *const arb_poly_struct,
n: slong,
);
pub fn arb_poly_truncate(poly: *mut arb_poly_struct, newlen: slong);
pub fn arb_poly_set_fmpz_poly(
poly: *mut arb_poly_struct,
src: *const fmpz_poly_struct,
prec: slong,
);
pub fn arb_poly_set_fmpq_poly(
poly: *mut arb_poly_struct,
src: *const fmpq_poly_struct,
prec: slong,
);
pub fn arb_poly_set_arb(poly: *mut arb_poly_struct, c: *const arb_struct);
pub fn arb_poly_set_si(poly: *mut arb_poly_struct, c: slong);
pub fn arb_poly_get_unique_fmpz_poly(
res: *mut fmpz_poly_struct,
src: *const arb_poly_struct,
) -> ::std::os::raw::c_int;
pub fn arb_poly_contains(
poly1: *const arb_poly_struct,
poly2: *const arb_poly_struct,
) -> ::std::os::raw::c_int;
pub fn arb_poly_contains_fmpz_poly(
poly1: *const arb_poly_struct,
poly2: *const fmpz_poly_struct,
) -> ::std::os::raw::c_int;
pub fn arb_poly_contains_fmpq_poly(
poly1: *const arb_poly_struct,
poly2: *const fmpq_poly_struct,
) -> ::std::os::raw::c_int;
pub fn arb_poly_equal(
A: *const arb_poly_struct,
B: *const arb_poly_struct,
) -> ::std::os::raw::c_int;
pub fn _arb_poly_overlaps(
poly1: arb_srcptr,
len1: slong,
poly2: arb_srcptr,
len2: slong,
) -> ::std::os::raw::c_int;
pub fn arb_poly_overlaps(
poly1: *const arb_poly_struct,
poly2: *const arb_poly_struct,
) -> ::std::os::raw::c_int;
pub fn _arb_poly_majorant(res: arb_ptr, vec: arb_srcptr, len: slong, prec: slong);
pub fn arb_poly_majorant(
res: *mut arb_poly_struct,
poly: *const arb_poly_struct,
prec: slong,
);
pub fn arb_poly_fprintd(
file: *mut FILE,
poly: *const arb_poly_struct,
digits: slong,
);
pub fn arb_poly_printd(poly: *const arb_poly_struct, digits: slong);
pub fn arb_poly_randtest(
poly: *mut arb_poly_struct,
state: *mut flint_rand_struct,
len: slong,
prec: slong,
mag_bits: slong,
);
pub fn _arb_poly_add(
res: arb_ptr,
poly1: arb_srcptr,
len1: slong,
poly2: arb_srcptr,
len2: slong,
prec: slong,
);
pub fn arb_poly_add(
res: *mut arb_poly_struct,
poly1: *const arb_poly_struct,
poly2: *const arb_poly_struct,
prec: slong,
);
pub fn arb_poly_add_si(
res: *mut arb_poly_struct,
poly: *const arb_poly_struct,
c: slong,
prec: slong,
);
pub fn _arb_poly_sub(
res: arb_ptr,
poly1: arb_srcptr,
len1: slong,
poly2: arb_srcptr,
len2: slong,
prec: slong,
);
pub fn arb_poly_sub(
res: *mut arb_poly_struct,
poly1: *const arb_poly_struct,
poly2: *const arb_poly_struct,
prec: slong,
);
pub fn arb_poly_add_series(
res: *mut arb_poly_struct,
poly1: *const arb_poly_struct,
poly2: *const arb_poly_struct,
len: slong,
prec: slong,
);
pub fn arb_poly_sub_series(
res: *mut arb_poly_struct,
poly1: *const arb_poly_struct,
poly2: *const arb_poly_struct,
len: slong,
prec: slong,
);
pub fn arb_poly_neg(res: *mut arb_poly_struct, poly: *const arb_poly_struct);
pub fn arb_poly_scalar_mul_2exp_si(
res: *mut arb_poly_struct,
poly: *const arb_poly_struct,
c: slong,
);
pub fn arb_poly_scalar_mul(
res: *mut arb_poly_struct,
poly: *const arb_poly_struct,
c: *const arb_struct,
prec: slong,
);
pub fn arb_poly_scalar_mul_si(
res: *mut arb_poly_struct,
poly: *const arb_poly_struct,
c: slong,
prec: slong,
);
pub fn arb_poly_scalar_div(
res: *mut arb_poly_struct,
poly: *const arb_poly_struct,
c: *const arb_struct,
prec: slong,
);
pub fn _arb_poly_mullow_classical(
res: arb_ptr,
poly1: arb_srcptr,
len1: slong,
poly2: arb_srcptr,
len2: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_mullow_classical(
res: *mut arb_poly_struct,
poly1: *const arb_poly_struct,
poly2: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_mullow_block(
C: arb_ptr,
A: arb_srcptr,
lenA: slong,
B: arb_srcptr,
lenB: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_mullow_block(
res: *mut arb_poly_struct,
poly1: *const arb_poly_struct,
poly2: *const arb_poly_struct,
len: slong,
prec: slong,
);
pub fn _arb_poly_mullow(
C: arb_ptr,
A: arb_srcptr,
lenA: slong,
B: arb_srcptr,
lenB: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_mullow(
res: *mut arb_poly_struct,
poly1: *const arb_poly_struct,
poly2: *const arb_poly_struct,
len: slong,
prec: slong,
);
pub fn _arb_poly_mulmid_block(
z: arb_ptr,
x: arb_srcptr,
xlen: slong,
y: arb_srcptr,
ylen: slong,
nlo: slong,
nhi: slong,
prec: slong,
);
pub fn arb_poly_mulmid_block(
res: *mut arb_poly_struct,
poly1: *const arb_poly_struct,
poly2: *const arb_poly_struct,
nlo: slong,
nhi: slong,
prec: slong,
);
pub fn _arb_poly_mulmid_classical(
z: arb_ptr,
x: arb_srcptr,
xlen: slong,
y: arb_srcptr,
ylen: slong,
nlo: slong,
nhi: slong,
prec: slong,
);
pub fn arb_poly_mulmid_classical(
res: *mut arb_poly_struct,
poly1: *const arb_poly_struct,
poly2: *const arb_poly_struct,
nlo: slong,
nhi: slong,
prec: slong,
);
pub fn _arb_poly_mulmid(
z: arb_ptr,
x: arb_srcptr,
xlen: slong,
y: arb_srcptr,
ylen: slong,
nlo: slong,
nhi: slong,
prec: slong,
);
pub fn arb_poly_mulmid(
res: *mut arb_poly_struct,
poly1: *const arb_poly_struct,
poly2: *const arb_poly_struct,
nlo: slong,
nhi: slong,
prec: slong,
);
pub fn _arb_poly_mul(
C: arb_ptr,
A: arb_srcptr,
lenA: slong,
B: arb_srcptr,
lenB: slong,
prec: slong,
);
pub fn arb_poly_mul(
res: *mut arb_poly_struct,
poly1: *const arb_poly_struct,
poly2: *const arb_poly_struct,
prec: slong,
);
pub fn _arb_poly_mul_monic(
res: arb_ptr,
poly1: arb_srcptr,
len1: slong,
poly2: arb_srcptr,
len2: slong,
prec: slong,
);
pub fn _arb_poly_inv_series(
Qinv: arb_ptr,
Q: arb_srcptr,
Qlen: slong,
len: slong,
prec: slong,
);
pub fn arb_poly_inv_series(
Qinv: *mut arb_poly_struct,
Q: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_div_series(
Q: arb_ptr,
A: arb_srcptr,
Alen: slong,
B: arb_srcptr,
Blen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_div_series(
Q: *mut arb_poly_struct,
A: *const arb_poly_struct,
B: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_div(
Q: arb_ptr,
A: arb_srcptr,
lenA: slong,
B: arb_srcptr,
lenB: slong,
prec: slong,
);
pub fn _arb_poly_divrem(
Q: arb_ptr,
R: arb_ptr,
A: arb_srcptr,
lenA: slong,
B: arb_srcptr,
lenB: slong,
prec: slong,
);
pub fn _arb_poly_rem(
R: arb_ptr,
A: arb_srcptr,
lenA: slong,
B: arb_srcptr,
lenB: slong,
prec: slong,
);
pub fn arb_poly_divrem(
Q: *mut arb_poly_struct,
R: *mut arb_poly_struct,
A: *const arb_poly_struct,
B: *const arb_poly_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn _arb_poly_div_root(
Q: arb_ptr,
R: *mut arb_struct,
A: arb_srcptr,
len: slong,
c: *const arb_struct,
prec: slong,
);
pub fn _arb_poly_product_roots(poly: arb_ptr, xs: arb_srcptr, n: slong, prec: slong);
pub fn arb_poly_product_roots(
poly: *mut arb_poly_struct,
xs: arb_srcptr,
n: slong,
prec: slong,
);
pub fn _arb_poly_product_roots_complex(
poly: arb_ptr,
r: arb_srcptr,
rn: slong,
c: acb_srcptr,
cn: slong,
prec: slong,
);
pub fn arb_poly_product_roots_complex(
poly: *mut arb_poly_struct,
r: arb_srcptr,
rn: slong,
c: acb_srcptr,
cn: slong,
prec: slong,
);
pub fn _arb_poly_tree_alloc(len: slong) -> *mut arb_ptr;
pub fn _arb_poly_tree_free(tree: *mut arb_ptr, len: slong);
pub fn _arb_poly_tree_build(
tree: *mut arb_ptr,
roots: arb_srcptr,
len: slong,
prec: slong,
);
pub fn _arb_poly_taylor_shift(
poly: arb_ptr,
c: *const arb_struct,
n: slong,
prec: slong,
);
pub fn arb_poly_taylor_shift(
g: *mut arb_poly_struct,
f: *const arb_poly_struct,
c: *const arb_struct,
prec: slong,
);
pub fn _arb_poly_compose(
res: arb_ptr,
poly1: arb_srcptr,
len1: slong,
poly2: arb_srcptr,
len2: slong,
prec: slong,
);
pub fn arb_poly_compose(
res: *mut arb_poly_struct,
poly1: *const arb_poly_struct,
poly2: *const arb_poly_struct,
prec: slong,
);
pub fn _arb_poly_compose_series(
res: arb_ptr,
poly1: arb_srcptr,
len1: slong,
poly2: arb_srcptr,
len2: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_compose_series(
res: *mut arb_poly_struct,
poly1: *const arb_poly_struct,
poly2: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_revert_series(
Qinv: arb_ptr,
Q: arb_srcptr,
Qlen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_revert_series(
Qinv: *mut arb_poly_struct,
Q: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_evaluate_horner(
res: *mut arb_struct,
f: arb_srcptr,
len: slong,
a: *const arb_struct,
prec: slong,
);
pub fn arb_poly_evaluate_horner(
res: *mut arb_struct,
f: *const arb_poly_struct,
a: *const arb_struct,
prec: slong,
);
pub fn _arb_poly_evaluate_rectangular(
y: *mut arb_struct,
poly: arb_srcptr,
len: slong,
x: *const arb_struct,
prec: slong,
);
pub fn arb_poly_evaluate_rectangular(
res: *mut arb_struct,
f: *const arb_poly_struct,
a: *const arb_struct,
prec: slong,
);
pub fn _arb_poly_evaluate(
res: *mut arb_struct,
f: arb_srcptr,
len: slong,
a: *const arb_struct,
prec: slong,
);
pub fn arb_poly_evaluate(
res: *mut arb_struct,
f: *const arb_poly_struct,
a: *const arb_struct,
prec: slong,
);
pub fn _arb_poly_evaluate2_horner(
y: *mut arb_struct,
z: *mut arb_struct,
f: arb_srcptr,
len: slong,
x: *const arb_struct,
prec: slong,
);
pub fn arb_poly_evaluate2_horner(
y: *mut arb_struct,
z: *mut arb_struct,
f: *const arb_poly_struct,
x: *const arb_struct,
prec: slong,
);
pub fn _arb_poly_evaluate2_rectangular(
y: *mut arb_struct,
z: *mut arb_struct,
f: arb_srcptr,
len: slong,
x: *const arb_struct,
prec: slong,
);
pub fn arb_poly_evaluate2_rectangular(
y: *mut arb_struct,
z: *mut arb_struct,
f: *const arb_poly_struct,
x: *const arb_struct,
prec: slong,
);
pub fn _arb_poly_evaluate2(
y: *mut arb_struct,
z: *mut arb_struct,
f: arb_srcptr,
len: slong,
x: *const arb_struct,
prec: slong,
);
pub fn arb_poly_evaluate2(
y: *mut arb_struct,
z: *mut arb_struct,
f: *const arb_poly_struct,
x: *const arb_struct,
prec: slong,
);
pub fn _arb_poly_evaluate_vec_iter(
ys: arb_ptr,
poly: arb_srcptr,
plen: slong,
xs: arb_srcptr,
n: slong,
prec: slong,
);
pub fn arb_poly_evaluate_vec_iter(
ys: arb_ptr,
poly: *const arb_poly_struct,
xs: arb_srcptr,
n: slong,
prec: slong,
);
pub fn _arb_poly_evaluate_vec_fast_precomp(
vs: arb_ptr,
poly: arb_srcptr,
plen: slong,
tree: *mut arb_ptr,
len: slong,
prec: slong,
);
pub fn _arb_poly_evaluate_vec_fast(
ys: arb_ptr,
poly: arb_srcptr,
plen: slong,
xs: arb_srcptr,
n: slong,
prec: slong,
);
pub fn arb_poly_evaluate_vec_fast(
ys: arb_ptr,
poly: *const arb_poly_struct,
xs: arb_srcptr,
n: slong,
prec: slong,
);
pub fn _arb_poly_interpolate_newton(
poly: arb_ptr,
xs: arb_srcptr,
ys: arb_srcptr,
n: slong,
prec: slong,
);
pub fn arb_poly_interpolate_newton(
poly: *mut arb_poly_struct,
xs: arb_srcptr,
ys: arb_srcptr,
n: slong,
prec: slong,
);
pub fn _arb_poly_interpolate_barycentric(
poly: arb_ptr,
xs: arb_srcptr,
ys: arb_srcptr,
n: slong,
prec: slong,
);
pub fn arb_poly_interpolate_barycentric(
poly: *mut arb_poly_struct,
xs: arb_srcptr,
ys: arb_srcptr,
n: slong,
prec: slong,
);
pub fn _arb_poly_interpolation_weights(
w: arb_ptr,
tree: *mut arb_ptr,
len: slong,
prec: slong,
);
pub fn _arb_poly_interpolate_fast_precomp(
poly: arb_ptr,
ys: arb_srcptr,
tree: *mut arb_ptr,
weights: arb_srcptr,
len: slong,
prec: slong,
);
pub fn _arb_poly_interpolate_fast(
poly: arb_ptr,
xs: arb_srcptr,
ys: arb_srcptr,
len: slong,
prec: slong,
);
pub fn arb_poly_interpolate_fast(
poly: *mut arb_poly_struct,
xs: arb_srcptr,
ys: arb_srcptr,
n: slong,
prec: slong,
);
pub fn _arb_poly_derivative(res: arb_ptr, poly: arb_srcptr, len: slong, prec: slong);
pub fn arb_poly_derivative(
res: *mut arb_poly_struct,
poly: *const arb_poly_struct,
prec: slong,
);
pub fn _arb_poly_nth_derivative(
res: arb_ptr,
poly: arb_srcptr,
n: ulong,
len: slong,
prec: slong,
);
pub fn arb_poly_nth_derivative(
res: *mut arb_poly_struct,
poly: *const arb_poly_struct,
n: ulong,
prec: slong,
);
pub fn _arb_poly_integral(res: arb_ptr, poly: arb_srcptr, len: slong, prec: slong);
pub fn arb_poly_integral(
res: *mut arb_poly_struct,
poly: *const arb_poly_struct,
prec: slong,
);
pub fn arb_poly_borel_transform(
res: *mut arb_poly_struct,
poly: *const arb_poly_struct,
prec: slong,
);
pub fn _arb_poly_borel_transform(
res: arb_ptr,
poly: arb_srcptr,
len: slong,
prec: slong,
);
pub fn arb_poly_inv_borel_transform(
res: *mut arb_poly_struct,
poly: *const arb_poly_struct,
prec: slong,
);
pub fn _arb_poly_inv_borel_transform(
res: arb_ptr,
poly: arb_srcptr,
len: slong,
prec: slong,
);
pub fn _arb_poly_binomial_transform_basecase(
b: arb_ptr,
a: arb_srcptr,
alen: slong,
len: slong,
prec: slong,
);
pub fn arb_poly_binomial_transform_basecase(
b: *mut arb_poly_struct,
a: *const arb_poly_struct,
len: slong,
prec: slong,
);
pub fn _arb_poly_binomial_transform_convolution(
b: arb_ptr,
a: arb_srcptr,
alen: slong,
len: slong,
prec: slong,
);
pub fn arb_poly_binomial_transform_convolution(
b: *mut arb_poly_struct,
a: *const arb_poly_struct,
len: slong,
prec: slong,
);
pub fn _arb_poly_binomial_transform(
b: arb_ptr,
a: arb_srcptr,
alen: slong,
len: slong,
prec: slong,
);
pub fn arb_poly_binomial_transform(
b: *mut arb_poly_struct,
a: *const arb_poly_struct,
len: slong,
prec: slong,
);
pub fn _arb_poly_graeffe_transform(
b: arb_ptr,
a: arb_srcptr,
len: slong,
prec: slong,
);
pub fn arb_poly_graeffe_transform(
b: *mut arb_poly_struct,
a: *const arb_poly_struct,
prec: slong,
);
pub fn _arb_poly_pow_ui_trunc_binexp(
res: arb_ptr,
f: arb_srcptr,
flen: slong,
exp: ulong,
len: slong,
prec: slong,
);
pub fn arb_poly_pow_ui_trunc_binexp(
res: *mut arb_poly_struct,
poly: *const arb_poly_struct,
exp: ulong,
len: slong,
prec: slong,
);
pub fn _arb_poly_pow_ui(
res: arb_ptr,
f: arb_srcptr,
flen: slong,
exp: ulong,
prec: slong,
);
pub fn arb_poly_pow_ui(
res: *mut arb_poly_struct,
poly: *const arb_poly_struct,
exp: ulong,
prec: slong,
);
pub fn _arb_poly_pow_series(
h: arb_ptr,
f: arb_srcptr,
flen: slong,
g: arb_srcptr,
glen: slong,
len: slong,
prec: slong,
);
pub fn arb_poly_pow_series(
h: *mut arb_poly_struct,
f: *const arb_poly_struct,
g: *const arb_poly_struct,
len: slong,
prec: slong,
);
pub fn _arb_poly_pow_arb_series(
h: arb_ptr,
f: arb_srcptr,
flen: slong,
g: *const arb_struct,
len: slong,
prec: slong,
);
pub fn arb_poly_pow_arb_series(
h: *mut arb_poly_struct,
f: *const arb_poly_struct,
g: *const arb_struct,
len: slong,
prec: slong,
);
pub fn _arb_poly_binomial_pow_arb_series(
h: arb_ptr,
f: arb_srcptr,
flen: slong,
g: *const arb_struct,
len: slong,
prec: slong,
);
pub fn _arb_poly_rsqrt_series(
g: arb_ptr,
h: arb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn arb_poly_rsqrt_series(
g: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_sqrt_series(
g: arb_ptr,
h: arb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn arb_poly_sqrt_series(
g: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_log_series(
res: arb_ptr,
f: arb_srcptr,
flen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_log_series(
res: *mut arb_poly_struct,
f: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_log1p_series(
res: arb_ptr,
f: arb_srcptr,
flen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_log1p_series(
res: *mut arb_poly_struct,
f: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_atan_series(
res: arb_ptr,
f: arb_srcptr,
flen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_atan_series(
res: *mut arb_poly_struct,
f: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_atanh_series(
g: arb_ptr,
h: arb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_atanh_series(
g: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_asin_series(
res: arb_ptr,
f: arb_srcptr,
flen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_asin_series(
res: *mut arb_poly_struct,
f: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_asinh_series(
g: arb_ptr,
h: arb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_asinh_series(
g: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_acos_series(
res: arb_ptr,
f: arb_srcptr,
flen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_acos_series(
res: *mut arb_poly_struct,
f: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_acosh_series(
g: arb_ptr,
h: arb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_acosh_series(
g: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_exp_series_basecase(
f: arb_ptr,
h: arb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_exp_series_basecase(
f: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_exp_series(
f: arb_ptr,
h: arb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_exp_series(
f: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_sinh_cosh_series_basecase(
s: arb_ptr,
c: arb_ptr,
h: arb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_sinh_cosh_series_basecase(
s: *mut arb_poly_struct,
c: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_sinh_cosh_series_exponential(
s: arb_ptr,
c: arb_ptr,
h: arb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_sinh_cosh_series_exponential(
s: *mut arb_poly_struct,
c: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_sinh_cosh_series(
s: arb_ptr,
c: arb_ptr,
h: arb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_sinh_cosh_series(
s: *mut arb_poly_struct,
c: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_sinh_series(
s: arb_ptr,
h: arb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_sinh_series(
s: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_cosh_series(
c: arb_ptr,
h: arb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_cosh_series(
c: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_tanh_series(
g: arb_ptr,
h: arb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_tanh_series(
g: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_sin_cos_series(
s: arb_ptr,
c: arb_ptr,
h: arb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn arb_poly_sin_cos_series(
s: *mut arb_poly_struct,
c: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_sin_cos_pi_series(
s: arb_ptr,
c: arb_ptr,
h: arb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn arb_poly_sin_cos_pi_series(
s: *mut arb_poly_struct,
c: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_sin_series(
g: arb_ptr,
h: arb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_sin_series(
g: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_cos_series(
g: arb_ptr,
h: arb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_cos_series(
g: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_sin_pi_series(
g: arb_ptr,
h: arb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_sin_pi_series(
g: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_cos_pi_series(
g: arb_ptr,
h: arb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_cos_pi_series(
g: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_cot_series(
g: arb_ptr,
h: arb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_cot_series(
g: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_cot_pi_series(
g: arb_ptr,
h: arb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_cot_pi_series(
g: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_coth_series(
g: arb_ptr,
h: arb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_coth_series(
g: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_tan_series(
g: arb_ptr,
h: arb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn arb_poly_tan_series(
g: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_tan_pi_series(
g: arb_ptr,
h: arb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_tan_pi_series(
g: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_sinc_series(
g: arb_ptr,
h: arb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_sinc_series(
g: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_sinc_pi_series(
g: arb_ptr,
h: arb_srcptr,
hlen: slong,
n: slong,
prec: slong,
);
pub fn arb_poly_sinc_pi_series(
g: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_evaluate_acb_horner(
res: *mut acb_struct,
f: arb_srcptr,
len: slong,
x: *const acb_struct,
prec: slong,
);
pub fn arb_poly_evaluate_acb_horner(
res: *mut acb_struct,
f: *const arb_poly_struct,
a: *const acb_struct,
prec: slong,
);
pub fn _arb_poly_evaluate_acb_rectangular(
y: *mut acb_struct,
poly: arb_srcptr,
len: slong,
x: *const acb_struct,
prec: slong,
);
pub fn arb_poly_evaluate_acb_rectangular(
res: *mut acb_struct,
f: *const arb_poly_struct,
a: *const acb_struct,
prec: slong,
);
pub fn _arb_poly_evaluate_acb(
res: *mut acb_struct,
f: arb_srcptr,
len: slong,
x: *const acb_struct,
prec: slong,
);
pub fn arb_poly_evaluate_acb(
res: *mut acb_struct,
f: *const arb_poly_struct,
a: *const acb_struct,
prec: slong,
);
pub fn _arb_poly_evaluate2_acb_horner(
y: *mut acb_struct,
z: *mut acb_struct,
f: arb_srcptr,
len: slong,
x: *const acb_struct,
prec: slong,
);
pub fn arb_poly_evaluate2_acb_horner(
y: *mut acb_struct,
z: *mut acb_struct,
f: *const arb_poly_struct,
x: *const acb_struct,
prec: slong,
);
pub fn _arb_poly_evaluate2_acb_rectangular(
y: *mut acb_struct,
z: *mut acb_struct,
f: arb_srcptr,
len: slong,
x: *const acb_struct,
prec: slong,
);
pub fn arb_poly_evaluate2_acb_rectangular(
y: *mut acb_struct,
z: *mut acb_struct,
f: *const arb_poly_struct,
x: *const acb_struct,
prec: slong,
);
pub fn _arb_poly_evaluate2_acb(
y: *mut acb_struct,
z: *mut acb_struct,
f: arb_srcptr,
len: slong,
x: *const acb_struct,
prec: slong,
);
pub fn arb_poly_evaluate2_acb(
y: *mut acb_struct,
z: *mut acb_struct,
f: *const arb_poly_struct,
x: *const acb_struct,
prec: slong,
);
pub fn _arb_poly_lambertw_series(
res: arb_ptr,
z: arb_srcptr,
zlen: slong,
flags: ::std::os::raw::c_int,
len: slong,
prec: slong,
);
pub fn arb_poly_lambertw_series(
res: *mut arb_poly_struct,
z: *const arb_poly_struct,
flags: ::std::os::raw::c_int,
len: slong,
prec: slong,
);
pub fn _arb_poly_gamma_series(
res: arb_ptr,
h: arb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn arb_poly_gamma_series(
res: *mut arb_poly_struct,
f: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_rgamma_series(
res: arb_ptr,
h: arb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn arb_poly_rgamma_series(
res: *mut arb_poly_struct,
f: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_lgamma_series(
res: arb_ptr,
h: arb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn arb_poly_lgamma_series(
res: *mut arb_poly_struct,
f: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_digamma_series(
res: arb_ptr,
h: arb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn arb_poly_digamma_series(
res: *mut arb_poly_struct,
f: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_rising_ui_series(
res: arb_ptr,
f: arb_srcptr,
flen: slong,
r: ulong,
trunc: slong,
prec: slong,
);
pub fn arb_poly_rising_ui_series(
res: *mut arb_poly_struct,
f: *const arb_poly_struct,
r: ulong,
trunc: slong,
prec: slong,
);
pub fn _arb_poly_zeta_series(
res: arb_ptr,
h: arb_srcptr,
hlen: slong,
a: *const arb_struct,
deflate: ::std::os::raw::c_int,
len: slong,
prec: slong,
);
pub fn arb_poly_zeta_series(
res: *mut arb_poly_struct,
f: *const arb_poly_struct,
a: *const arb_struct,
deflate: ::std::os::raw::c_int,
n: slong,
prec: slong,
);
pub fn _arb_poly_riemann_siegel_theta_series(
res: arb_ptr,
h: arb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn arb_poly_riemann_siegel_theta_series(
res: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_riemann_siegel_z_series(
res: arb_ptr,
h: arb_srcptr,
hlen: slong,
len: slong,
prec: slong,
);
pub fn arb_poly_riemann_siegel_z_series(
res: *mut arb_poly_struct,
h: *const arb_poly_struct,
n: slong,
prec: slong,
);
pub fn _arb_poly_swinnerton_dyer_ui_prec(n: ulong) -> slong;
pub fn _arb_poly_swinnerton_dyer_ui(T: arb_ptr, n: ulong, trunc: slong, prec: slong);
pub fn arb_poly_swinnerton_dyer_ui(
poly: *mut arb_poly_struct,
n: ulong,
prec: slong,
);
pub fn _arb_poly_newton_convergence_factor(
convergence_factor: *mut arf_struct,
poly: arb_srcptr,
len: slong,
convergence_interval: *const arb_struct,
prec: slong,
);
pub fn _arb_poly_newton_step(
xnew: *mut arb_struct,
poly: arb_srcptr,
len: slong,
x: *const arb_struct,
convergence_interval: *const arb_struct,
convergence_factor: *const arf_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn _arb_poly_newton_refine_root(
r: *mut arb_struct,
poly: arb_srcptr,
len: slong,
start: *const arb_struct,
convergence_interval: *const arb_struct,
convergence_factor: *const arf_struct,
eval_extra_prec: slong,
prec: slong,
);
pub fn _arb_poly_root_bound_fujiwara(
bound: *mut mag_struct,
poly: arb_srcptr,
len: slong,
);
pub fn arb_poly_root_bound_fujiwara(
bound: *mut mag_struct,
poly: *mut arb_poly_struct,
);
pub fn arb_poly_allocated_bytes(x: *const arb_poly_struct) -> slong;
}
/* arb_types.h */
#[repr(C)]
pub struct mag_struct {
pub exp: fmpz,
pub man: ulong,
}
impl Default for mag_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 mag_t = [mag_struct; 1usize];
pub type mag_ptr = *mut mag_struct;
pub type mag_srcptr = *const mag_struct;
#[repr(C)]
pub struct arb_struct {
pub mid: arf_struct,
pub rad: mag_struct,
}
impl Default for arb_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 arb_t = [arb_struct; 1usize];
pub type arb_ptr = *mut arb_struct;
pub type arb_srcptr = *const arb_struct;
#[repr(C)]
pub struct arb_mat_struct {
pub entries: arb_ptr,
pub r: slong,
pub c: slong,
pub stride: slong,
}
impl Default for arb_mat_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 arb_mat_t = [arb_mat_struct; 1usize];
#[repr(C)]
pub struct arb_poly_struct {
pub coeffs: arb_ptr,
pub alloc: slong,
pub length: slong,
}
impl Default for arb_poly_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 arb_poly_t = [arb_poly_struct; 1usize];
/* arf.h */
pub const arf_rnd_t_ARF_RND_DOWN: arf_rnd_t = 0;
pub const arf_rnd_t_ARF_RND_UP: arf_rnd_t = 1;
pub const arf_rnd_t_ARF_RND_FLOOR: arf_rnd_t = 2;
pub const arf_rnd_t_ARF_RND_CEIL: arf_rnd_t = 3;
pub const arf_rnd_t_ARF_RND_NEAR: arf_rnd_t = 4;
pub type arf_rnd_t = ::std::os::raw::c_uint;
unsafe extern "C" {
pub fn arf_rounds_down(
rnd: arf_rnd_t,
sgnbit: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn arf_rounds_up(
rnd: arf_rnd_t,
sgnbit: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn _arf_promote(x: *mut arf_struct, n: slong);
pub fn _arf_demote(x: *mut arf_struct);
pub fn arf_init(x: *mut arf_struct);
pub fn arf_clear(x: *mut arf_struct);
pub fn _arf_vec_init(n: slong) -> arf_ptr;
pub fn _arf_vec_clear(v: arf_ptr, n: slong);
pub fn arf_zero(x: *mut arf_struct);
pub fn arf_pos_inf(x: *mut arf_struct);
pub fn arf_neg_inf(x: *mut arf_struct);
pub fn arf_nan(x: *mut arf_struct);
pub fn arf_is_special(x: *const arf_struct) -> ::std::os::raw::c_int;
pub fn arf_is_zero(x: *const arf_struct) -> ::std::os::raw::c_int;
pub fn arf_is_pos_inf(x: *const arf_struct) -> ::std::os::raw::c_int;
pub fn arf_is_neg_inf(x: *const arf_struct) -> ::std::os::raw::c_int;
pub fn arf_is_nan(x: *const arf_struct) -> ::std::os::raw::c_int;
pub fn arf_is_normal(x: *const arf_struct) -> ::std::os::raw::c_int;
pub fn arf_is_finite(x: *const arf_struct) -> ::std::os::raw::c_int;
pub fn arf_is_inf(x: *const arf_struct) -> ::std::os::raw::c_int;
pub fn arf_one(x: *mut arf_struct);
pub fn arf_is_one(x: *const arf_struct) -> ::std::os::raw::c_int;
pub fn arf_sgn(x: *const arf_struct) -> ::std::os::raw::c_int;
pub fn arf_cmp(x: *const arf_struct, y: *const arf_struct) -> ::std::os::raw::c_int;
pub fn arf_cmpabs(
x: *const arf_struct,
y: *const arf_struct,
) -> ::std::os::raw::c_int;
pub fn arf_cmpabs_ui(x: *const arf_struct, y: ulong) -> ::std::os::raw::c_int;
pub fn arf_cmpabs_d(x: *const arf_struct, y: f64) -> ::std::os::raw::c_int;
pub fn arf_cmp_si(x: *const arf_struct, y: slong) -> ::std::os::raw::c_int;
pub fn arf_cmp_ui(x: *const arf_struct, y: ulong) -> ::std::os::raw::c_int;
pub fn arf_cmp_d(x: *const arf_struct, y: f64) -> ::std::os::raw::c_int;
pub fn arf_swap(y: *mut arf_struct, x: *mut arf_struct);
pub fn arf_set(y: *mut arf_struct, x: *const arf_struct);
pub fn arf_neg(y: *mut arf_struct, x: *const arf_struct);
pub fn arf_init_set_ui(x: *mut arf_struct, v: ulong);
pub fn arf_init_set_si(x: *mut arf_struct, v: slong);
pub fn arf_set_ui(x: *mut arf_struct, v: ulong);
pub fn arf_set_si(x: *mut arf_struct, v: slong);
pub fn arf_init_set_shallow(z: *mut arf_struct, x: *const arf_struct);
pub fn arf_init_neg_shallow(z: *mut arf_struct, x: *const arf_struct);
pub fn arf_init_set_mag_shallow(y: *mut arf_struct, x: *const mag_struct);
pub fn arf_init_neg_mag_shallow(z: *mut arf_struct, x: *const mag_struct);
pub fn arf_cmpabs_mag(
x: *const arf_struct,
y: *const mag_struct,
) -> ::std::os::raw::c_int;
pub fn arf_mag_cmpabs(
x: *const mag_struct,
y: *const arf_struct,
) -> ::std::os::raw::c_int;
pub fn arf_set_fmpz(y: *mut arf_struct, x: *const fmpz);
pub fn _arf_set_round_ui(
x: *mut arf_struct,
v: ulong,
sgnbit: ::std::os::raw::c_int,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn _arf_set_round_uiui(
z: *mut arf_struct,
fix: *mut slong,
hi: ulong,
lo: ulong,
sgnbit: ::std::os::raw::c_int,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_set_round_ui(
x: *mut arf_struct,
v: ulong,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_set_round_si(
x: *mut arf_struct,
v: slong,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_set_round_fmpz(
y: *mut arf_struct,
x: *const fmpz,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_set_round(
y: *mut arf_struct,
x: *const arf_struct,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_neg_round(
y: *mut arf_struct,
x: *const arf_struct,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_equal(
x: *const arf_struct,
y: *const arf_struct,
) -> ::std::os::raw::c_int;
pub fn arf_equal_si(x: *const arf_struct, y: slong) -> ::std::os::raw::c_int;
pub fn arf_equal_ui(x: *const arf_struct, y: ulong) -> ::std::os::raw::c_int;
pub fn arf_equal_d(x: *const arf_struct, y: f64) -> ::std::os::raw::c_int;
pub fn arf_min(z: *mut arf_struct, a: *const arf_struct, b: *const arf_struct);
pub fn arf_max(z: *mut arf_struct, a: *const arf_struct, b: *const arf_struct);
pub fn arf_abs(y: *mut arf_struct, x: *const arf_struct);
pub fn arf_bits(x: *const arf_struct) -> slong;
pub fn arf_bot(e: *mut fmpz, x: *const arf_struct);
pub fn arf_is_int(x: *const arf_struct) -> ::std::os::raw::c_int;
pub fn arf_is_int_2exp_si(x: *const arf_struct, e: slong) -> ::std::os::raw::c_int;
pub fn arf_cmp_2exp_si(x: *const arf_struct, e: slong) -> ::std::os::raw::c_int;
pub fn arf_cmpabs_2exp_si(x: *const arf_struct, e: slong) -> ::std::os::raw::c_int;
pub fn arf_set_si_2exp_si(x: *mut arf_struct, man: slong, exp: slong);
pub fn arf_set_ui_2exp_si(x: *mut arf_struct, man: ulong, exp: slong);
pub fn arf_mul_2exp_si(y: *mut arf_struct, x: *const arf_struct, e: slong);
pub fn arf_mul_2exp_fmpz(y: *mut arf_struct, x: *const arf_struct, e: *const fmpz);
pub fn arf_set_round_fmpz_2exp(
y: *mut arf_struct,
x: *const fmpz,
exp: *const fmpz,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_abs_bound_lt_2exp_fmpz(b: *mut fmpz, x: *const arf_struct);
pub fn arf_abs_bound_le_2exp_fmpz(b: *mut fmpz, x: *const arf_struct);
pub fn arf_abs_bound_lt_2exp_si(x: *const arf_struct) -> slong;
pub fn arf_frexp(man: *mut arf_struct, exp: *mut fmpz, x: *const arf_struct);
pub fn arf_get_fmpz_2exp(man: *mut fmpz, exp: *mut fmpz, x: *const arf_struct);
pub fn arf_get_fmpz(
z: *mut fmpz,
x: *const arf_struct,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_get_si(x: *const arf_struct, rnd: arf_rnd_t) -> slong;
pub fn arf_get_fmpz_fixed_fmpz(
y: *mut fmpz,
x: *const arf_struct,
e: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn arf_get_fmpz_fixed_si(
y: *mut fmpz,
x: *const arf_struct,
e: slong,
) -> ::std::os::raw::c_int;
pub fn arf_set_fmpz_2exp(x: *mut arf_struct, man: *const fmpz, exp: *const fmpz);
pub fn arf_floor(z: *mut arf_struct, x: *const arf_struct);
pub fn arf_ceil(z: *mut arf_struct, x: *const arf_struct);
pub fn arf_nint(z: *mut arf_struct, x: *const arf_struct);
pub fn arf_debug(x: *const arf_struct);
pub fn arf_get_str(x: *const arf_struct, d: slong) -> *mut ::std::os::raw::c_char;
pub fn arf_fprint(file: *mut FILE, x: *const arf_struct);
pub fn arf_fprintd(file: *mut FILE, y: *const arf_struct, d: slong);
pub fn arf_print(x: *const arf_struct);
pub fn arf_printd(y: *const arf_struct, d: slong);
pub fn arf_randtest(
x: *mut arf_struct,
state: *mut flint_rand_struct,
bits: slong,
mag_bits: slong,
);
pub fn arf_randtest_not_zero(
x: *mut arf_struct,
state: *mut flint_rand_struct,
bits: slong,
mag_bits: slong,
);
pub fn arf_randtest_special(
x: *mut arf_struct,
state: *mut flint_rand_struct,
bits: slong,
mag_bits: slong,
);
pub fn arf_urandom(
x: *mut arf_struct,
state: *mut flint_rand_struct,
bits: slong,
rnd: arf_rnd_t,
);
pub fn _arf_mul_tmp_cleanup();
pub fn arf_mul_special(
z: *mut arf_struct,
x: *const arf_struct,
y: *const arf_struct,
);
pub fn arf_mul_via_mpfr(
z: *mut arf_struct,
x: *const arf_struct,
y: *const arf_struct,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_mul_rnd_any(
z: arf_ptr,
x: arf_srcptr,
y: arf_srcptr,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_mul_rnd_down(
z: arf_ptr,
x: arf_srcptr,
y: arf_srcptr,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn arf_neg_mul(
z: *mut arf_struct,
x: *const arf_struct,
y: *const arf_struct,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_mul_ui(
z: arf_ptr,
x: arf_srcptr,
y: ulong,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_mul_si(
z: arf_ptr,
x: arf_srcptr,
y: slong,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_mul_fmpz(
z: arf_ptr,
x: arf_srcptr,
y: *const fmpz,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn _arf_add_tmp_cleanup();
pub fn arf_add(
z: arf_ptr,
x: arf_srcptr,
y: arf_srcptr,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_add_si(
z: arf_ptr,
x: arf_srcptr,
y: slong,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_add_ui(
z: arf_ptr,
x: arf_srcptr,
y: ulong,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_add_fmpz(
z: arf_ptr,
x: arf_srcptr,
y: *const fmpz,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_add_fmpz_2exp(
z: arf_ptr,
x: arf_srcptr,
y: *const fmpz,
exp: *const fmpz,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_sub(
z: arf_ptr,
x: arf_srcptr,
y: arf_srcptr,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_sub_si(
z: arf_ptr,
x: arf_srcptr,
y: slong,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_sub_ui(
z: arf_ptr,
x: arf_srcptr,
y: ulong,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_sub_fmpz(
z: arf_ptr,
x: arf_srcptr,
y: *const fmpz,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_addmul(
z: arf_ptr,
x: arf_srcptr,
y: arf_srcptr,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_addmul_ui(
z: arf_ptr,
x: arf_srcptr,
y: ulong,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_addmul_si(
z: arf_ptr,
x: arf_srcptr,
y: slong,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_addmul_fmpz(
z: arf_ptr,
x: arf_srcptr,
y: *const fmpz,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_submul(
z: arf_ptr,
x: arf_srcptr,
y: arf_srcptr,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_submul_ui(
z: arf_ptr,
x: arf_srcptr,
y: ulong,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_submul_si(
z: arf_ptr,
x: arf_srcptr,
y: slong,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_submul_fmpz(
z: arf_ptr,
x: arf_srcptr,
y: *const fmpz,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_fma(
res: arf_ptr,
x: arf_srcptr,
y: arf_srcptr,
z: arf_srcptr,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_sosq(
z: *mut arf_struct,
x: *const arf_struct,
y: *const arf_struct,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_div(
z: arf_ptr,
x: arf_srcptr,
y: arf_srcptr,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_div_ui(
z: arf_ptr,
x: arf_srcptr,
y: ulong,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_ui_div(
z: arf_ptr,
x: ulong,
y: arf_srcptr,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_div_si(
z: arf_ptr,
x: arf_srcptr,
y: slong,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_si_div(
z: arf_ptr,
x: slong,
y: arf_srcptr,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_div_fmpz(
z: arf_ptr,
x: arf_srcptr,
y: *const fmpz,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_fmpz_div(
z: arf_ptr,
x: *const fmpz,
y: arf_srcptr,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_fmpz_div_fmpz(
z: arf_ptr,
x: *const fmpz,
y: *const fmpz,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_sqrt(
z: arf_ptr,
x: arf_srcptr,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_sqrt_ui(
z: *mut arf_struct,
x: ulong,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_sqrt_fmpz(
z: *mut arf_struct,
x: *const fmpz,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_rsqrt(
z: arf_ptr,
x: arf_srcptr,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_root(
z: arf_ptr,
x: arf_srcptr,
k: ulong,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_get_mag(y: *mut mag_struct, x: *const arf_struct);
pub fn arf_get_mag_lower(y: *mut mag_struct, x: *const arf_struct);
pub fn arf_set_mag(y: *mut arf_struct, x: *const mag_struct);
pub fn mag_init_set_arf(y: *mut mag_struct, x: *const arf_struct);
pub fn mag_fast_init_set_arf(y: *mut mag_struct, x: *const arf_struct);
pub fn arf_mag_fast_add_ulp(
z: *mut mag_struct,
x: *const mag_struct,
y: *const arf_struct,
prec: slong,
);
pub fn arf_mag_add_ulp(
z: *mut mag_struct,
x: *const mag_struct,
y: *const arf_struct,
prec: slong,
);
pub fn arf_mag_set_ulp(z: *mut mag_struct, y: *const arf_struct, prec: slong);
pub fn arf_get_fmpq(y: *mut fmpq, x: *const arf_struct);
pub fn arf_set_fmpq(
y: *mut arf_struct,
x: *const fmpq,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_complex_mul(
e: *mut arf_struct,
f: *mut arf_struct,
a: *const arf_struct,
b: *const arf_struct,
c: *const arf_struct,
d: *const arf_struct,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_complex_mul_fallback(
e: *mut arf_struct,
f: *mut arf_struct,
a: *const arf_struct,
b: *const arf_struct,
c: *const arf_struct,
d: *const arf_struct,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_complex_sqr(
e: *mut arf_struct,
f: *mut arf_struct,
a: *const arf_struct,
b: *const arf_struct,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_sum(
s: *mut arf_struct,
terms: arf_srcptr,
len: slong,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_get_d(x: *const arf_struct, rnd: arf_rnd_t) -> f64;
pub fn arf_set_d(x: *mut arf_struct, v: f64);
pub fn arf_allocated_bytes(x: *const arf_struct) -> slong;
pub fn arf_load_str(
res: *mut arf_struct,
data: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn arf_dump_str(x: *const arf_struct) -> *mut ::std::os::raw::c_char;
pub fn arf_load_file(
res: *mut arf_struct,
stream: *mut FILE,
) -> ::std::os::raw::c_int;
pub fn arf_dump_file(
stream: *mut FILE,
x: *const arf_struct,
) -> ::std::os::raw::c_int;
pub fn arf_dot(
res: *mut arf_struct,
initial: *const arf_struct,
subtract: ::std::os::raw::c_int,
x: arf_srcptr,
xstep: slong,
y: arf_srcptr,
ystep: slong,
len: slong,
prec: slong,
rnd: arf_rnd_t,
) -> ::std::os::raw::c_int;
pub fn arf_approx_dot(
res: *mut arf_struct,
initial: *const arf_struct,
subtract: ::std::os::raw::c_int,
x: arf_srcptr,
xstep: slong,
y: arf_srcptr,
ystep: slong,
len: slong,
prec: slong,
rnd: arf_rnd_t,
);
}
/* arf_types.h */
#[repr(C)]
pub struct mantissa_noptr_struct {
pub d: [ulong; 2usize],
}
impl Default for mantissa_noptr_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()
}
}
}
#[repr(C)]
pub struct mantissa_ptr_struct {
pub alloc: slong,
pub d: nn_ptr,
}
impl Default for mantissa_ptr_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()
}
}
}
#[repr(C)]
pub union mantissa_struct {
pub noptr: ::std::mem::ManuallyDrop<mantissa_noptr_struct>,
pub ptr: ::std::mem::ManuallyDrop<mantissa_ptr_struct>,
}
impl Default for mantissa_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()
}
}
}
#[repr(C)]
pub struct arf_struct {
pub exp: fmpz,
pub size: slong,
pub d: mantissa_struct,
}
impl Default for arf_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 arf_t = [arf_struct; 1usize];
pub type arf_ptr = *mut arf_struct;
pub type arf_srcptr = *const arf_struct;
#[repr(C)]
pub struct arf_interval_struct {
pub a: arf_struct,
pub b: arf_struct,
}
impl Default for arf_interval_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 arf_interval_t = [arf_interval_struct; 1usize];
pub type arf_interval_ptr = *mut arf_interval_struct;
pub type arf_interval_srcptr = *const arf_interval_struct;
/* arith.h */
#[repr(C)]
pub struct trig_prod_struct {
pub n: ::std::os::raw::c_int,
pub prefactor: ::std::os::raw::c_int,
pub sqrt_p: ulong,
pub sqrt_q: ulong,
pub cos_p: [slong; 64usize],
pub cos_q: [ulong; 64usize],
}
impl Default for trig_prod_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 trig_prod_t = [trig_prod_struct; 1usize];
unsafe extern "C" {
pub fn _arith_harmonic_number(num: *mut fmpz, den: *mut fmpz, n: slong);
pub fn arith_harmonic_number(x: *mut fmpq, n: slong);
pub fn arith_ramanujan_tau(res: *mut fmpz, n: *const fmpz);
pub fn arith_ramanujan_tau_series(res: *mut fmpz_poly_struct, n: slong);
pub fn arith_divisors(res: *mut fmpz_poly_struct, n: *const fmpz);
pub fn arith_stirling_number_1u(s: *mut fmpz, n: ulong, k: ulong);
pub fn arith_stirling_number_1(s: *mut fmpz, n: ulong, k: ulong);
pub fn arith_stirling_number_2(s: *mut fmpz, n: ulong, k: ulong);
pub fn arith_stirling_number_1u_vec(row: *mut fmpz, n: ulong, klen: slong);
pub fn arith_stirling_number_1_vec(row: *mut fmpz, n: ulong, klen: slong);
pub fn arith_stirling_number_2_vec(row: *mut fmpz, n: ulong, klen: slong);
pub fn arith_stirling_matrix_1u(mat: *mut fmpz_mat_struct);
pub fn arith_stirling_matrix_1(mat: *mut fmpz_mat_struct);
pub fn arith_stirling_matrix_2(mat: *mut fmpz_mat_struct);
pub fn arith_bell_number_size(n: ulong) -> f64;
pub fn arith_bell_number(b: *mut fmpz, n: ulong);
pub fn arith_bell_number_dobinski(res: *mut fmpz, n: ulong);
pub fn arith_bell_number_multi_mod(res: *mut fmpz, n: ulong);
pub fn arith_bell_number_vec(b: *mut fmpz, n: slong);
pub fn arith_bell_number_vec_recursive(b: *mut fmpz, n: slong);
pub fn arith_bell_number_vec_multi_mod(b: *mut fmpz, n: slong);
pub fn arith_bell_number_nmod(n: ulong, mod_: nmod_t) -> ulong;
pub fn arith_bell_number_nmod_vec(b: nn_ptr, n: slong, mod_: nmod_t);
pub fn arith_bell_number_nmod_vec_recursive(b: nn_ptr, n: slong, mod_: nmod_t);
pub fn arith_bell_number_nmod_vec_series(
b: nn_ptr,
n: slong,
mod_: nmod_t,
) -> ::std::os::raw::c_int;
pub fn arith_bell_number_nmod_vec_ogf(res: nn_ptr, len: slong, mod_: nmod_t);
pub fn arith_euler_number_size(n: ulong) -> f64;
pub fn arith_euler_number_vec(res: *mut fmpz, n: slong);
pub fn arith_euler_number(res: *mut fmpz, n: ulong);
pub fn arith_euler_polynomial(poly: *mut fmpq_poly_struct, n: ulong);
pub fn _arith_bernoulli_number(num: *mut fmpz, den: *mut fmpz, n: ulong);
pub fn arith_bernoulli_number(x: *mut fmpq, n: ulong);
pub fn _arith_bernoulli_number_vec(num: *mut fmpz, den: *mut fmpz, n: slong);
pub fn arith_bernoulli_number_vec(num: *mut fmpq, n: slong);
pub fn arith_bernoulli_number_denom(den: *mut fmpz, n: ulong);
pub fn arith_bernoulli_number_size(n: ulong) -> f64;
pub fn arith_bernoulli_polynomial(poly: *mut fmpq_poly_struct, n: ulong);
pub fn _arith_bernoulli_number_vec_multi_mod(
num: *mut fmpz,
den: *mut fmpz,
n: slong,
);
pub fn _arith_bernoulli_number_vec_recursive(
num: *mut fmpz,
den: *mut fmpz,
n: slong,
);
pub fn arith_landau_function_vec(res: *mut fmpz, len: slong);
pub fn arith_hrr_expsum_factored(prod: *mut trig_prod_struct, k: ulong, n: ulong);
pub fn arith_number_of_partitions_nmod_vec(res: nn_ptr, len: slong, mod_: nmod_t);
pub fn arith_number_of_partitions_vec(res: *mut fmpz, len: slong);
pub fn arith_number_of_partitions(x: *mut fmpz, n: ulong);
pub fn arith_sum_of_squares(r: *mut fmpz, k: ulong, n: *const fmpz);
pub fn arith_sum_of_squares_vec(r: *mut fmpz, k: ulong, n: slong);
}
/* bernoulli.h */
#[repr(C)]
pub struct bernoulli_rev_struct {
pub alloc: slong,
pub prec: slong,
pub max_power: slong,
pub powers: *mut fmpz,
pub pow_error: fmpz_t,
pub prefactor: arb_t,
pub two_pi_squared: arb_t,
pub n: ulong,
}
impl Default for bernoulli_rev_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 bernoulli_rev_t = [bernoulli_rev_struct; 1usize];
unsafe extern "C" {
pub fn bernoulli_cache_compute(n: slong);
pub fn bernoulli_rev_init(iter: *mut bernoulli_rev_struct, nmax: ulong);
pub fn bernoulli_rev_next(
numer: *mut fmpz,
denom: *mut fmpz,
iter: *mut bernoulli_rev_struct,
);
pub fn bernoulli_rev_clear(iter: *mut bernoulli_rev_struct);
pub fn bernoulli_fmpq_vec_no_cache(res: *mut fmpq, a: ulong, num: slong);
pub fn bernoulli_bound_2exp_si(n: ulong) -> slong;
pub fn bernoulli_mod_p_harvey(k: ulong, p: ulong) -> ulong;
pub fn _bernoulli_fmpq_ui_multi_mod(
num: *mut fmpz,
den: *mut fmpz,
n: ulong,
alpha: f64,
);
pub fn _bernoulli_fmpq_ui_zeta(num: *mut fmpz, den: *mut fmpz, n: ulong);
pub fn _bernoulli_fmpq_ui(num: *mut fmpz, den: *mut fmpz, n: ulong);
pub fn bernoulli_fmpq_ui(b: *mut fmpq, n: ulong);
}
/* bool_mat.h */
#[repr(C)]
pub struct bool_mat_struct {
pub entries: *mut ::std::os::raw::c_int,
pub r: slong,
pub c: slong,
pub rows: *mut *mut ::std::os::raw::c_int,
}
impl Default for bool_mat_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 bool_mat_t = [bool_mat_struct; 1usize];
unsafe extern "C" {
pub fn bool_mat_get_entry(
mat: *const bool_mat_struct,
i: slong,
j: slong,
) -> ::std::os::raw::c_int;
pub fn bool_mat_set_entry(
mat: *mut bool_mat_struct,
i: slong,
j: slong,
value: ::std::os::raw::c_int,
);
pub fn bool_mat_init(mat: *mut bool_mat_struct, r: slong, c: slong);
pub fn bool_mat_clear(mat: *mut bool_mat_struct);
pub fn bool_mat_swap(mat1: *mut bool_mat_struct, mat2: *mut bool_mat_struct);
pub fn bool_mat_set(dest: *mut bool_mat_struct, src: *const bool_mat_struct);
pub fn bool_mat_randtest(mat: *mut bool_mat_struct, state: *mut flint_rand_struct);
pub fn bool_mat_randtest_diagonal(
mat: *mut bool_mat_struct,
state: *mut flint_rand_struct,
);
pub fn bool_mat_randtest_nilpotent(
mat: *mut bool_mat_struct,
state: *mut flint_rand_struct,
);
pub fn bool_mat_fprint(file: *mut FILE, mat: *const bool_mat_struct);
pub fn bool_mat_print(mat: *const bool_mat_struct);
pub fn bool_mat_equal(
mat1: *const bool_mat_struct,
mat2: *const bool_mat_struct,
) -> ::std::os::raw::c_int;
pub fn bool_mat_any(mat: *const bool_mat_struct) -> ::std::os::raw::c_int;
pub fn bool_mat_all(mat: *const bool_mat_struct) -> ::std::os::raw::c_int;
pub fn bool_mat_is_diagonal(mat: *const bool_mat_struct) -> ::std::os::raw::c_int;
pub fn bool_mat_is_lower_triangular(
mat: *const bool_mat_struct,
) -> ::std::os::raw::c_int;
pub fn bool_mat_is_transitive(mat: *const bool_mat_struct) -> ::std::os::raw::c_int;
pub fn bool_mat_is_nilpotent(mat: *const bool_mat_struct) -> ::std::os::raw::c_int;
pub fn bool_mat_is_empty(mat: *const bool_mat_struct) -> ::std::os::raw::c_int;
pub fn bool_mat_is_square(mat: *const bool_mat_struct) -> ::std::os::raw::c_int;
pub fn bool_mat_zero(mat: *mut bool_mat_struct);
pub fn bool_mat_one(mat: *mut bool_mat_struct);
pub fn bool_mat_directed_path(mat: *mut bool_mat_struct);
pub fn bool_mat_directed_cycle(mat: *mut bool_mat_struct);
pub fn bool_mat_transpose(mat1: *mut bool_mat_struct, mat2: *const bool_mat_struct);
pub fn bool_mat_complement(mat1: *mut bool_mat_struct, mat2: *const bool_mat_struct);
pub fn bool_mat_add(
res: *mut bool_mat_struct,
mat1: *const bool_mat_struct,
mat2: *const bool_mat_struct,
);
pub fn bool_mat_mul(
res: *mut bool_mat_struct,
mat1: *const bool_mat_struct,
mat2: *const bool_mat_struct,
);
pub fn bool_mat_mul_entrywise(
res: *mut bool_mat_struct,
mat1: *const bool_mat_struct,
mat2: *const bool_mat_struct,
);
pub fn bool_mat_pow_ui(
B: *mut bool_mat_struct,
A: *const bool_mat_struct,
exp: ulong,
);
pub fn bool_mat_sqr(B: *mut bool_mat_struct, A: *const bool_mat_struct);
pub fn bool_mat_trace(mat: *const bool_mat_struct) -> ::std::os::raw::c_int;
pub fn bool_mat_nilpotency_degree(mat: *const bool_mat_struct) -> slong;
pub fn bool_mat_transitive_closure(
dest: *mut bool_mat_struct,
src: *const bool_mat_struct,
);
pub fn bool_mat_get_strongly_connected_components(
partition: *mut slong,
A: *const bool_mat_struct,
) -> slong;
pub fn bool_mat_all_pairs_longest_walk(
B: *mut fmpz_mat_struct,
A: *const bool_mat_struct,
) -> slong;
}
/* ca.h */
pub const CA_OPT_VERBOSE: _ca_bindgen_ty_3 = 0;
pub const CA_OPT_PRINT_FLAGS: _ca_bindgen_ty_3 = 1;
pub const CA_OPT_MPOLY_ORD: _ca_bindgen_ty_3 = 2;
pub const CA_OPT_PREC_LIMIT: _ca_bindgen_ty_3 = 3;
pub const CA_OPT_QQBAR_DEG_LIMIT: _ca_bindgen_ty_3 = 4;
pub const CA_OPT_LOW_PREC: _ca_bindgen_ty_3 = 5;
pub const CA_OPT_SMOOTH_LIMIT: _ca_bindgen_ty_3 = 6;
pub const CA_OPT_LLL_PREC: _ca_bindgen_ty_3 = 7;
pub const CA_OPT_POW_LIMIT: _ca_bindgen_ty_3 = 8;
pub const CA_OPT_USE_GROEBNER: _ca_bindgen_ty_3 = 9;
pub const CA_OPT_GROEBNER_LENGTH_LIMIT: _ca_bindgen_ty_3 = 10;
pub const CA_OPT_GROEBNER_POLY_LENGTH_LIMIT: _ca_bindgen_ty_3 = 11;
pub const CA_OPT_GROEBNER_POLY_BITS_LIMIT: _ca_bindgen_ty_3 = 12;
pub const CA_OPT_VIETA_LIMIT: _ca_bindgen_ty_3 = 13;
pub const CA_OPT_TRIG_FORM: _ca_bindgen_ty_3 = 14;
pub const CA_OPT_NUM_OPTIONS: _ca_bindgen_ty_3 = 15;
pub type _ca_bindgen_ty_3 = ::std::os::raw::c_uint;
unsafe extern "C" {
pub fn ca_ctx_init(ctx: *mut ca_ctx_struct);
pub fn ca_ctx_clear(ctx: *mut ca_ctx_struct);
pub fn ca_ctx_print(ctx: *mut ca_ctx_struct);
pub fn ca_ctx_get_option(ctx: *mut ca_ctx_struct, i: slong) -> slong;
pub fn ca_ctx_set_option(ctx: *mut ca_ctx_struct, i: slong, value: slong);
pub fn _ca_ctx_get_field_const(
ctx: *mut ca_ctx_struct,
func: calcium_func_code,
) -> ca_field_ptr;
pub fn _ca_ctx_get_field_fx(
ctx: *mut ca_ctx_struct,
func: calcium_func_code,
x: *const ca_struct,
) -> ca_field_ptr;
pub fn _ca_ctx_get_field_fxy(
ctx: *mut ca_ctx_struct,
func: calcium_func_code,
x: *const ca_struct,
y: *const ca_struct,
) -> ca_field_ptr;
pub fn ca_init(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_clear(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_swap(x: *mut ca_struct, y: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn _ca_make_field_element(
x: *mut ca_struct,
field: ca_field_srcptr,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_make_fmpq(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn _ca_function_fx(
res: *mut ca_struct,
func: calcium_func_code,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_function_fxy(
res: *mut ca_struct,
func: calcium_func_code,
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_set(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_transfer(
res: *mut ca_struct,
res_ctx: *mut ca_ctx_struct,
src: *const ca_struct,
src_ctx: *mut ca_ctx_struct,
);
pub fn ca_zero(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_one(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_neg_one(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_set_si(x: *mut ca_struct, v: slong, ctx: *mut ca_ctx_struct);
pub fn ca_set_ui(x: *mut ca_struct, v: ulong, ctx: *mut ca_ctx_struct);
pub fn ca_set_fmpz(x: *mut ca_struct, v: *const fmpz, ctx: *mut ca_ctx_struct);
pub fn ca_set_fmpq(x: *mut ca_struct, v: *const fmpq, ctx: *mut ca_ctx_struct);
pub fn ca_set_d(res: *mut ca_struct, x: f64, ctx: *mut ca_ctx_struct);
pub fn ca_set_d_d(res: *mut ca_struct, x: f64, y: f64, ctx: *mut ca_ctx_struct);
pub fn ca_i(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_neg_i(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_pi(res: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_pi_i(res: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_euler(res: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_unknown(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_undefined(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_uinf(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_pos_inf(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_neg_inf(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_pos_i_inf(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_neg_i_inf(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_set_qqbar(
res: *mut ca_struct,
x: *const qqbar_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_can_evaluate_qqbar(
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_get_qqbar(
res: *mut qqbar_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_get_fmpq(
res: *mut fmpq,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_get_fmpz(
res: *mut fmpz,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_get_fexpr(
res: *mut fexpr_struct,
x: *const ca_struct,
flags: ulong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_set_fexpr(
res: *mut ca_struct,
expr: *const fexpr_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_fprint(fp: *mut FILE, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_print(x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_printn(x: *const ca_struct, n: slong, ctx: *mut ca_ctx_struct);
pub fn ca_get_str(
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> *mut ::std::os::raw::c_char;
pub fn ca_randtest_same_nf(
res: *mut ca_struct,
state: *mut flint_rand_struct,
x: *const ca_struct,
bits: slong,
den_bits: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_randtest_rational(
res: *mut ca_struct,
state: *mut flint_rand_struct,
bits: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_randtest(
res: *mut ca_struct,
state: *mut flint_rand_struct,
depth: slong,
bits: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_randtest_special(
res: *mut ca_struct,
state: *mut flint_rand_struct,
depth: slong,
bits: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_is_special(
x: *const ca_struct,
UNUSED_ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_is_unknown(
x: *const ca_struct,
UNUSED_ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_is_qq_elem(
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_is_qq_elem_zero(
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_is_qq_elem_one(
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_is_qq_elem_integer(
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_is_nf_elem(
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_is_generic_elem(
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_is_cyclotomic_nf_elem(
p: *mut slong,
q: *mut ulong,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_is_zero_check_fast(
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_check_is_number(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_zero(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_one(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_neg_one(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_i(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_neg_i(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_algebraic(
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_check_is_rational(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_integer(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_real(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_negative_real(
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_check_is_imaginary(
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_check_is_undefined(
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_check_is_infinity(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_uinf(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_signed_inf(
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_check_is_pos_inf(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_neg_inf(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_pos_i_inf(
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_check_is_neg_i_inf(
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_check_equal(
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_check_lt(
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_check_le(
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_check_gt(
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_check_ge(
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_equal_repr(
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_cmp_repr(
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_hash_repr(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> ulong;
pub fn ca_merge_fields(
resx: *mut ca_struct,
resy: *mut ca_struct,
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_condense_field(res: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_is_gen_as_ext(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> ca_ext_ptr;
pub fn _ca_mpoly_q_reduce_ideal(
res: *mut fmpz_mpoly_q_struct,
field: ca_field_srcptr,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_mpoly_q_simplify_fraction_ideal(
res: *mut fmpz_mpoly_q_struct,
field: ca_field_srcptr,
ctx: *mut ca_ctx_struct,
);
pub fn ca_neg(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_add_fmpq(
res: *mut ca_struct,
x: *const ca_struct,
y: *const fmpq,
ctx: *mut ca_ctx_struct,
);
pub fn ca_add_fmpz(
res: *mut ca_struct,
x: *const ca_struct,
y: *const fmpz,
ctx: *mut ca_ctx_struct,
);
pub fn ca_add_ui(
res: *mut ca_struct,
x: *const ca_struct,
y: ulong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_add_si(
res: *mut ca_struct,
x: *const ca_struct,
y: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_add(
res: *mut ca_struct,
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_sub_fmpq(
res: *mut ca_struct,
x: *const ca_struct,
y: *const fmpq,
ctx: *mut ca_ctx_struct,
);
pub fn ca_sub_fmpz(
res: *mut ca_struct,
x: *const ca_struct,
y: *const fmpz,
ctx: *mut ca_ctx_struct,
);
pub fn ca_sub_ui(
res: *mut ca_struct,
x: *const ca_struct,
y: ulong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_sub_si(
res: *mut ca_struct,
x: *const ca_struct,
y: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_fmpq_sub(
res: *mut ca_struct,
x: *const fmpq,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_fmpz_sub(
res: *mut ca_struct,
x: *const fmpz,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_ui_sub(
res: *mut ca_struct,
x: ulong,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_si_sub(
res: *mut ca_struct,
x: slong,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_sub(
res: *mut ca_struct,
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mul_fmpq(
res: *mut ca_struct,
x: *const ca_struct,
y: *const fmpq,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mul_fmpz(
res: *mut ca_struct,
x: *const ca_struct,
y: *const fmpz,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mul_ui(
res: *mut ca_struct,
x: *const ca_struct,
y: ulong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mul_si(
res: *mut ca_struct,
x: *const ca_struct,
y: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mul(
res: *mut ca_struct,
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_inv(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_fmpq_div(
res: *mut ca_struct,
x: *const fmpq,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_fmpz_div(
res: *mut ca_struct,
x: *const fmpz,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_ui_div(
res: *mut ca_struct,
x: ulong,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_si_div(
res: *mut ca_struct,
x: slong,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_div_fmpq(
res: *mut ca_struct,
x: *const ca_struct,
y: *const fmpq,
ctx: *mut ca_ctx_struct,
);
pub fn ca_div_fmpz(
res: *mut ca_struct,
x: *const ca_struct,
y: *const fmpz,
ctx: *mut ca_ctx_struct,
);
pub fn ca_div_ui(
res: *mut ca_struct,
x: *const ca_struct,
y: ulong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_div_si(
res: *mut ca_struct,
x: *const ca_struct,
y: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_div(
res: *mut ca_struct,
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_dot(
res: *mut ca_struct,
initial: *const ca_struct,
subtract: ::std::os::raw::c_int,
x: ca_srcptr,
xstep: slong,
y: ca_srcptr,
ystep: slong,
len: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_fmpz_poly_evaluate(
res: *mut ca_struct,
poly: *const fmpz_poly_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_fmpq_poly_evaluate(
res: *mut ca_struct,
poly: *const fmpq_poly_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_fmpz_mpoly_evaluate_horner(
res: *mut ca_struct,
f: *const fmpz_mpoly_struct,
x: ca_srcptr,
mctx: *const fmpz_mpoly_ctx_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_fmpz_mpoly_evaluate_iter(
res: *mut ca_struct,
f: *const fmpz_mpoly_struct,
x: ca_srcptr,
mctx: *const fmpz_mpoly_ctx_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_fmpz_mpoly_evaluate(
res: *mut ca_struct,
f: *const fmpz_mpoly_struct,
x: ca_srcptr,
mctx: *const fmpz_mpoly_ctx_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_fmpz_mpoly_q_evaluate(
res: *mut ca_struct,
f: *const fmpz_mpoly_q_struct,
x: ca_srcptr,
mctx: *const fmpz_mpoly_ctx_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_fmpz_mpoly_q_evaluate_no_division_by_zero(
res: *mut ca_struct,
f: *const fmpz_mpoly_q_struct,
x: ca_srcptr,
mctx: *const fmpz_mpoly_ctx_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_inv_no_division_by_zero(
res: *mut ca_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_sqr(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_pow_fmpq(
res: *mut ca_struct,
x: *const ca_struct,
y: *const fmpq,
ctx: *mut ca_ctx_struct,
);
pub fn ca_pow_fmpz(
res: *mut ca_struct,
x: *const ca_struct,
y: *const fmpz,
ctx: *mut ca_ctx_struct,
);
pub fn ca_pow_ui(
res: *mut ca_struct,
x: *const ca_struct,
y: ulong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_pow_si(
res: *mut ca_struct,
x: *const ca_struct,
y: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_pow(
res: *mut ca_struct,
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_pow_si_arithmetic(
res: *mut ca_struct,
x: *const ca_struct,
n: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_sqrt_inert(
res: *mut ca_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_sqrt_nofactor(
res: *mut ca_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_sqrt_factor(
res: *mut ca_struct,
x: *const ca_struct,
flags: ulong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_sqrt(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_sqrt_ui(res: *mut ca_struct, n: ulong, ctx: *mut ca_ctx_struct);
pub fn ca_conj_shallow(
res: *mut ca_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_conj_deep(
res: *mut ca_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_conj(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_abs(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_sgn(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_csgn(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_arg(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_re(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_im(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_floor(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_ceil(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_exp(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_log(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_sin_cos_exponential(
res1: *mut ca_struct,
res2: *mut ca_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_sin_cos_direct_exp_hack(
res1: *mut ca_struct,
res2: *mut ca_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_sin_cos_direct(
res1: *mut ca_struct,
res2: *mut ca_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_sin_cos_tangent(
res1: *mut ca_struct,
res2: *mut ca_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_sin_cos(
res1: *mut ca_struct,
res2: *mut ca_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_sin(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_cos(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_tan_sine_cosine(
res: *mut ca_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_tan_exponential(
res: *mut ca_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_tan_direct(
res: *mut ca_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_tan(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_cot(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_atan_logarithm(
res: *mut ca_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_atan_direct(
res: *mut ca_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_atan(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_asin_logarithm(
res: *mut ca_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_asin_direct(
res: *mut ca_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_asin(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_acos_logarithm(
res: *mut ca_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_acos_direct(
res: *mut ca_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_acos(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_erf(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_erfc(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_erfi(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_gamma(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_get_acb_raw(
res: *mut acb_struct,
x: *const ca_struct,
prec: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_get_acb(
res: *mut acb_struct,
x: *const ca_struct,
prec: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_get_acb_accurate_parts(
res: *mut acb_struct,
x: *const ca_struct,
prec: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_get_decimal_str(
x: *const ca_struct,
digits: slong,
flags: ulong,
ctx: *mut ca_ctx_struct,
) -> *mut ::std::os::raw::c_char;
pub fn ca_factor_init(fac: *mut ca_factor_struct, ctx: *mut ca_ctx_struct);
pub fn ca_factor_clear(fac: *mut ca_factor_struct, ctx: *mut ca_ctx_struct);
pub fn ca_factor_one(fac: *mut ca_factor_struct, ctx: *mut ca_ctx_struct);
pub fn ca_factor_print(fac: *const ca_factor_struct, ctx: *mut ca_ctx_struct);
pub fn ca_factor_insert(
fac: *mut ca_factor_struct,
base: *const ca_struct,
exp: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_factor_get_ca(
res: *mut ca_struct,
fac: *const ca_factor_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_factor(
res: *mut ca_factor_struct,
x: *const ca_struct,
flags: ulong,
ctx: *mut ca_ctx_struct,
);
}
/* ca_ext.h */
unsafe extern "C" {
pub fn ca_ext_init_qqbar(
res: *mut ca_ext_struct,
x: *const qqbar_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_ext_init_const(
res: *mut ca_ext_struct,
func: calcium_func_code,
ctx: *mut ca_ctx_struct,
);
pub fn ca_ext_init_fx(
res: *mut ca_ext_struct,
func: calcium_func_code,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_ext_init_fxy(
res: *mut ca_ext_struct,
func: calcium_func_code,
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_ext_init_fxn(
res: *mut ca_ext_struct,
func: calcium_func_code,
x: ca_srcptr,
nargs: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_ext_init_set(
res: *mut ca_ext_struct,
x: *const ca_ext_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_ext_clear(res: *mut ca_ext_struct, ctx: *mut ca_ctx_struct);
pub fn ca_ext_nargs(
x: *const ca_ext_struct,
UNUSED_ctx: *mut ca_ctx_struct,
) -> slong;
pub fn ca_ext_get_arg(
res: *mut ca_struct,
x: *const ca_ext_struct,
i: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_ext_hash(x: *const ca_ext_struct, UNUSED_ctx: *mut ca_ctx_struct) -> ulong;
pub fn ca_ext_equal_repr(
x: *const ca_ext_struct,
y: *const ca_ext_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_ext_cmp_repr(
x: *const ca_ext_struct,
y: *const ca_ext_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_ext_print(x: *const ca_ext_struct, ctx: *mut ca_ctx_struct);
pub fn ca_ext_get_acb_raw(
res: *mut acb_struct,
x: *mut ca_ext_struct,
prec: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_ext_cache_init(cache: *mut ca_ext_cache_struct, ctx: *mut ca_ctx_struct);
pub fn ca_ext_cache_clear(cache: *mut ca_ext_cache_struct, ctx: *mut ca_ctx_struct);
pub fn ca_ext_cache_insert(
cache: *mut ca_ext_cache_struct,
x: *const ca_ext_struct,
ctx: *mut ca_ctx_struct,
) -> ca_ext_ptr;
}
/* ca_field.h */
unsafe extern "C" {
pub fn ca_field_init_qq(K: *mut ca_field_struct, ctx: *mut ca_ctx_struct);
pub fn ca_field_init_nf(
K: *mut ca_field_struct,
x: *const qqbar_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_field_init_const(
K: *mut ca_field_struct,
func: calcium_func_code,
ctx: *mut ca_ctx_struct,
);
pub fn ca_field_init_fx(
K: *mut ca_field_struct,
func: calcium_func_code,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_field_init_fxy(
K: *mut ca_field_struct,
func: calcium_func_code,
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_field_init_multi(
K: *mut ca_field_struct,
len: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_field_clear(K: *mut ca_field_struct, ctx: *mut ca_ctx_struct);
pub fn ca_field_set_ext(
K: *mut ca_field_struct,
i: slong,
x: ca_ext_srcptr,
ctx: *mut ca_ctx_struct,
);
pub fn ca_field_print(K: *const ca_field_struct, ctx: *mut ca_ctx_struct);
pub fn ca_field_cmp(
K1: *const ca_field_struct,
K2: *const ca_field_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_field_build_ideal(K: *mut ca_field_struct, ctx: *mut ca_ctx_struct);
pub fn ca_field_build_ideal_erf(K: *mut ca_field_struct, ctx: *mut ca_ctx_struct);
pub fn ca_field_build_ideal_gamma(K: *mut ca_field_struct, ctx: *mut ca_ctx_struct);
pub fn ca_field_cache_init(
cache: *mut ca_field_cache_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_field_cache_clear(
cache: *mut ca_field_cache_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_field_cache_insert_ext(
cache: *mut ca_field_cache_struct,
x: *mut *mut ca_ext_struct,
length: slong,
ctx: *mut ca_ctx_struct,
) -> ca_field_ptr;
}
/* ca_mat.h */
unsafe extern "C" {
pub fn ca_mat_entry_ptr(mat: *mut ca_mat_struct, i: slong, j: slong) -> ca_ptr;
pub fn ca_mat_init(
mat: *mut ca_mat_struct,
r: slong,
c: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_clear(mat: *mut ca_mat_struct, ctx: *mut ca_ctx_struct);
pub fn ca_mat_swap(
mat1: *mut ca_mat_struct,
mat2: *mut ca_mat_struct,
UNUSED_ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_window_init(
window: *mut ca_mat_struct,
mat: *const ca_mat_struct,
r1: slong,
c1: slong,
r2: slong,
c2: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_window_clear(
UNUSED_window: *mut ca_mat_struct,
UNUSED_ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_is_empty(mat: *const ca_mat_struct) -> ::std::os::raw::c_int;
pub fn ca_mat_is_square(mat: *const ca_mat_struct) -> ::std::os::raw::c_int;
pub fn ca_mat_set(
dest: *mut ca_mat_struct,
src: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_set_fmpz_mat(
dest: *mut ca_mat_struct,
src: *const fmpz_mat_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_set_fmpq_mat(
dest: *mut ca_mat_struct,
src: *const fmpq_mat_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_set_ca(
y: *mut ca_mat_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_get_fexpr(
res: *mut fexpr_struct,
A: *const ca_mat_struct,
flags: ulong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_transfer(
res: *mut ca_mat_struct,
res_ctx: *mut ca_ctx_struct,
src: *const ca_mat_struct,
src_ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_randtest(
mat: *mut ca_mat_struct,
state: *mut flint_rand_struct,
len: slong,
bits: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_randtest_rational(
mat: *mut ca_mat_struct,
state: *mut flint_rand_struct,
bits: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_randops(
mat: *mut ca_mat_struct,
state: *mut flint_rand_struct,
count: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_print(mat: *const ca_mat_struct, ctx: *mut ca_ctx_struct);
pub fn ca_mat_printn(
mat: *const ca_mat_struct,
digits: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_zero(mat: *mut ca_mat_struct, ctx: *mut ca_ctx_struct);
pub fn ca_mat_one(mat: *mut ca_mat_struct, ctx: *mut ca_ctx_struct);
pub fn ca_mat_ones(mat: *mut ca_mat_struct, ctx: *mut ca_ctx_struct);
pub fn ca_mat_pascal(
mat: *mut ca_mat_struct,
triangular: ::std::os::raw::c_int,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_stirling(
mat: *mut ca_mat_struct,
kind: ::std::os::raw::c_int,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_hilbert(mat: *mut ca_mat_struct, ctx: *mut ca_ctx_struct);
pub fn ca_mat_dft(
res: *mut ca_mat_struct,
type_: ::std::os::raw::c_int,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_check_equal(
A: *const ca_mat_struct,
B: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_mat_check_is_zero(
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_mat_check_is_one(
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_mat_transpose(
B: *mut ca_mat_struct,
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_conj(
B: *mut ca_mat_struct,
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_conj_transpose(
mat1: *mut ca_mat_struct,
mat2: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_add_ca(
y: *mut ca_mat_struct,
a: *const ca_mat_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_sub_ca(
y: *mut ca_mat_struct,
a: *const ca_mat_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_addmul_ca(
y: *mut ca_mat_struct,
a: *const ca_mat_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_submul_ca(
y: *mut ca_mat_struct,
a: *const ca_mat_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_neg(
dest: *mut ca_mat_struct,
src: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_add(
res: *mut ca_mat_struct,
mat1: *const ca_mat_struct,
mat2: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_sub(
res: *mut ca_mat_struct,
mat1: *const ca_mat_struct,
mat2: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_mul(
C: *mut ca_mat_struct,
A: *const ca_mat_struct,
B: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_mul_classical(
C: *mut ca_mat_struct,
A: *const ca_mat_struct,
B: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_mul_same_nf(
C: *mut ca_mat_struct,
A: *const ca_mat_struct,
B: *const ca_mat_struct,
K: *mut ca_field_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_mul_si(
B: *mut ca_mat_struct,
A: *const ca_mat_struct,
c: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_mul_fmpz(
B: *mut ca_mat_struct,
A: *const ca_mat_struct,
c: *const fmpz,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_mul_fmpq(
B: *mut ca_mat_struct,
A: *const ca_mat_struct,
c: *const fmpq,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_mul_ca(
B: *mut ca_mat_struct,
A: *const ca_mat_struct,
c: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_div_si(
B: *mut ca_mat_struct,
A: *const ca_mat_struct,
c: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_div_fmpz(
B: *mut ca_mat_struct,
A: *const ca_mat_struct,
c: *const fmpz,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_div_fmpq(
B: *mut ca_mat_struct,
A: *const ca_mat_struct,
c: *const fmpq,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_div_ca(
B: *mut ca_mat_struct,
A: *const ca_mat_struct,
c: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_sqr(
res: *mut ca_mat_struct,
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_pow_ui_binexp(
B: *mut ca_mat_struct,
A: *const ca_mat_struct,
exp: ulong,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_mat_ca_poly_evaluate(
y: *mut ca_mat_struct,
poly: ca_srcptr,
len: slong,
x: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_ca_poly_evaluate(
res: *mut ca_mat_struct,
f: *const ca_poly_struct,
a: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_trace(
trace: *mut ca_struct,
mat: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_find_pivot(
pivot_row: *mut slong,
mat: *mut ca_mat_struct,
start_row: slong,
end_row: slong,
column: slong,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn _ca_mat_swap_rows(
mat: *mut ca_mat_struct,
perm: *mut slong,
r: slong,
s: slong,
);
pub fn ca_mat_lu_classical(
rank: *mut slong,
P: *mut slong,
LU: *mut ca_mat_struct,
A: *const ca_mat_struct,
rank_check: ::std::os::raw::c_int,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_mat_lu_recursive(
rank: *mut slong,
P: *mut slong,
LU: *mut ca_mat_struct,
A: *const ca_mat_struct,
rank_check: ::std::os::raw::c_int,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_mat_lu(
rank: *mut slong,
P: *mut slong,
LU: *mut ca_mat_struct,
A: *const ca_mat_struct,
rank_check: ::std::os::raw::c_int,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_mat_fflu(
rank: *mut slong,
P: *mut slong,
LU: *mut ca_mat_struct,
den: *mut ca_struct,
A: *const ca_mat_struct,
rank_check: ::std::os::raw::c_int,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_mat_rref_fflu(
rank: *mut slong,
R: *mut ca_mat_struct,
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_mat_rref_lu(
rank: *mut slong,
R: *mut ca_mat_struct,
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_mat_rref(
rank: *mut slong,
R: *mut ca_mat_struct,
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_mat_nonsingular_lu(
P: *mut slong,
LU: *mut ca_mat_struct,
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_mat_nonsingular_fflu(
P: *mut slong,
LU: *mut ca_mat_struct,
den: *mut ca_struct,
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_mat_nonsingular_solve_adjugate(
X: *mut ca_mat_struct,
A: *const ca_mat_struct,
B: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_mat_nonsingular_solve_fflu(
X: *mut ca_mat_struct,
A: *const ca_mat_struct,
B: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_mat_nonsingular_solve_lu(
X: *mut ca_mat_struct,
A: *const ca_mat_struct,
B: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_mat_nonsingular_solve(
X: *mut ca_mat_struct,
A: *const ca_mat_struct,
B: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_mat_inv(
X: *mut ca_mat_struct,
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_mat_solve_tril_classical(
X: *mut ca_mat_struct,
L: *const ca_mat_struct,
B: *const ca_mat_struct,
unit: ::std::os::raw::c_int,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_solve_tril_recursive(
X: *mut ca_mat_struct,
L: *const ca_mat_struct,
B: *const ca_mat_struct,
unit: ::std::os::raw::c_int,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_solve_tril(
X: *mut ca_mat_struct,
L: *const ca_mat_struct,
B: *const ca_mat_struct,
unit: ::std::os::raw::c_int,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_solve_triu_classical(
X: *mut ca_mat_struct,
U: *const ca_mat_struct,
B: *const ca_mat_struct,
unit: ::std::os::raw::c_int,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_solve_triu_recursive(
X: *mut ca_mat_struct,
U: *const ca_mat_struct,
B: *const ca_mat_struct,
unit: ::std::os::raw::c_int,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_solve_triu(
X: *mut ca_mat_struct,
U: *const ca_mat_struct,
B: *const ca_mat_struct,
unit: ::std::os::raw::c_int,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_solve_lu_precomp(
X: *mut ca_mat_struct,
perm: *const slong,
A: *const ca_mat_struct,
B: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_solve_fflu_precomp(
X: *mut ca_mat_struct,
perm: *const slong,
A: *const ca_mat_struct,
den: *const ca_struct,
B: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_rank(
rank: *mut slong,
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_mat_right_kernel(
X: *mut ca_mat_struct,
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_mat_det_berkowitz(
det: *mut ca_struct,
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_det_lu(
det: *mut ca_struct,
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_mat_det_bareiss(
det: *mut ca_struct,
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_mat_det_cofactor(
det: *mut ca_struct,
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_det(
det: *mut ca_struct,
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_adjugate_cofactor(
adj: *mut ca_mat_struct,
det: *mut ca_struct,
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_adjugate_charpoly(
adj: *mut ca_mat_struct,
det: *mut ca_struct,
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_adjugate(
adj: *mut ca_mat_struct,
det: *mut ca_struct,
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_mat_charpoly_berkowitz(
cp: ca_ptr,
mat: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_charpoly_berkowitz(
cp: *mut ca_poly_struct,
mat: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_mat_charpoly_danilevsky(
p: ca_ptr,
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_mat_charpoly_danilevsky(
cp: *mut ca_poly_struct,
mat: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _ca_mat_charpoly(
cp: ca_ptr,
mat: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_charpoly(
cp: *mut ca_poly_struct,
mat: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_companion(
A: *mut ca_mat_struct,
poly: *const ca_poly_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_mat_eigenvalues(
lambda: *mut ca_vec_struct,
exp: *mut ulong,
mat: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_mat_diagonalization(
D: *mut ca_mat_struct,
P: *mut ca_mat_struct,
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_mat_set_jordan_blocks(
mat: *mut ca_mat_struct,
lambda: *const ca_vec_struct,
num_blocks: slong,
block_lambda: *mut slong,
block_size: *mut slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mat_jordan_blocks(
lambda: *mut ca_vec_struct,
num_blocks: *mut slong,
block_lambda: *mut slong,
block_size: *mut slong,
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_mat_jordan_transformation(
mat: *mut ca_mat_struct,
lambda: *const ca_vec_struct,
num_blocks: slong,
block_lambda: *mut slong,
block_size: *mut slong,
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_mat_jordan_form(
J: *mut ca_mat_struct,
P: *mut ca_mat_struct,
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_mat_exp(
res: *mut ca_mat_struct,
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_mat_log(
res: *mut ca_mat_struct,
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn _ca_mat_same_field(
A: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> ca_field_ptr;
pub fn _ca_mat_same_field2(
A: *const ca_mat_struct,
B: *const ca_mat_struct,
ctx: *mut ca_ctx_struct,
) -> ca_field_ptr;
}
/* ca_poly.h */
#[repr(C)]
pub struct ca_poly_vec_struct {
pub entries: *mut ca_poly_struct,
pub length: slong,
pub alloc: slong,
}
impl Default for ca_poly_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 ca_poly_vec_t = [ca_poly_vec_struct; 1usize];
unsafe extern "C" {
pub fn ca_poly_coeff_ptr(poly: *mut ca_poly_struct, i: slong) -> ca_ptr;
pub fn ca_poly_init(poly: *mut ca_poly_struct, ctx: *mut ca_ctx_struct);
pub fn ca_poly_init2(poly: *mut ca_poly_struct, len: slong, ctx: *mut ca_ctx_struct);
pub fn ca_poly_clear(poly: *mut ca_poly_struct, ctx: *mut ca_ctx_struct);
pub fn ca_poly_fit_length(
poly: *mut ca_poly_struct,
len: slong,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_poly_set_length(
poly: *mut ca_poly_struct,
len: slong,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_poly_normalise(poly: *mut ca_poly_struct, ctx: *mut ca_ctx_struct);
pub fn ca_poly_swap(
poly1: *mut ca_poly_struct,
poly2: *mut ca_poly_struct,
UNUSED_ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_set_ca(
poly: *mut ca_poly_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_set_si(poly: *mut ca_poly_struct, x: slong, ctx: *mut ca_ctx_struct);
pub fn ca_poly_zero(poly: *mut ca_poly_struct, ctx: *mut ca_ctx_struct);
pub fn ca_poly_x(poly: *mut ca_poly_struct, ctx: *mut ca_ctx_struct);
pub fn ca_poly_one(poly: *mut ca_poly_struct, ctx: *mut ca_ctx_struct);
pub fn ca_poly_set(
res: *mut ca_poly_struct,
src: *const ca_poly_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_set_fmpz_poly(
res: *mut ca_poly_struct,
src: *const fmpz_poly_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_set_fmpq_poly(
res: *mut ca_poly_struct,
src: *const fmpq_poly_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_transfer(
res: *mut ca_poly_struct,
res_ctx: *mut ca_ctx_struct,
src: *const ca_poly_struct,
src_ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_set_coeff_ca(
poly: *mut ca_poly_struct,
n: slong,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_get_fexpr(
res: *mut fexpr_struct,
A: *const ca_poly_struct,
flags: ulong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_randtest(
poly: *mut ca_poly_struct,
state: *mut flint_rand_struct,
len: slong,
depth: slong,
bits: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_randtest_rational(
poly: *mut ca_poly_struct,
state: *mut flint_rand_struct,
len: slong,
bits: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_print(poly: *const ca_poly_struct, ctx: *mut ca_ctx_struct);
pub fn ca_poly_printn(
poly: *const ca_poly_struct,
digits: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_is_proper(
poly: *const ca_poly_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_poly_make_monic(
res: *mut ca_poly_struct,
poly: *const ca_poly_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _ca_poly_reverse(
res: ca_ptr,
poly: ca_srcptr,
len: slong,
n: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_reverse(
res: *mut ca_poly_struct,
poly: *const ca_poly_struct,
n: slong,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_poly_check_equal(
poly1: ca_srcptr,
len1: slong,
poly2: ca_srcptr,
len2: slong,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_poly_check_equal(
poly1: *const ca_poly_struct,
poly2: *const ca_poly_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_poly_check_is_zero(
poly: *const ca_poly_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_poly_check_is_one(
poly: *const ca_poly_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn _ca_poly_shift_left(
res: ca_ptr,
poly: ca_srcptr,
len: slong,
n: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_shift_left(
res: *mut ca_poly_struct,
poly: *const ca_poly_struct,
n: slong,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_poly_shift_right(
res: ca_ptr,
poly: ca_srcptr,
len: slong,
n: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_shift_right(
res: *mut ca_poly_struct,
poly: *const ca_poly_struct,
n: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_neg(
res: *mut ca_poly_struct,
src: *const ca_poly_struct,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_poly_add(
res: ca_ptr,
poly1: ca_srcptr,
len1: slong,
poly2: ca_srcptr,
len2: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_add(
res: *mut ca_poly_struct,
poly1: *const ca_poly_struct,
poly2: *const ca_poly_struct,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_poly_sub(
res: ca_ptr,
poly1: ca_srcptr,
len1: slong,
poly2: ca_srcptr,
len2: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_sub(
res: *mut ca_poly_struct,
poly1: *const ca_poly_struct,
poly2: *const ca_poly_struct,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_poly_mul(
C: ca_ptr,
A: ca_srcptr,
lenA: slong,
B: ca_srcptr,
lenB: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_mul(
res: *mut ca_poly_struct,
poly1: *const ca_poly_struct,
poly2: *const ca_poly_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_mul_ca(
res: *mut ca_poly_struct,
poly: *const ca_poly_struct,
c: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_div_ca(
res: *mut ca_poly_struct,
poly: *const ca_poly_struct,
c: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_div_fmpz(
res: *mut ca_poly_struct,
poly: *const ca_poly_struct,
c: *const fmpz,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_poly_mullow_same_nf(
C: ca_ptr,
A: ca_srcptr,
Alen: slong,
B: ca_srcptr,
Blen: slong,
len: slong,
K: *mut ca_field_struct,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_poly_mullow(
C: ca_ptr,
A: ca_srcptr,
lenA: slong,
B: ca_srcptr,
lenB: slong,
n: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_mullow(
res: *mut ca_poly_struct,
poly1: *const ca_poly_struct,
poly2: *const ca_poly_struct,
n: slong,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_poly_divrem_basecase(
Q: ca_ptr,
R: ca_ptr,
A: ca_srcptr,
lenA: slong,
B: ca_srcptr,
lenB: slong,
invB: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_divrem_basecase(
Q: *mut ca_poly_struct,
R: *mut ca_poly_struct,
A: *const ca_poly_struct,
B: *const ca_poly_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _ca_poly_divrem(
Q: ca_ptr,
R: ca_ptr,
A: ca_srcptr,
lenA: slong,
B: ca_srcptr,
lenB: slong,
invB: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_divrem(
Q: *mut ca_poly_struct,
R: *mut ca_poly_struct,
A: *const ca_poly_struct,
B: *const ca_poly_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_poly_div(
Q: *mut ca_poly_struct,
A: *const ca_poly_struct,
B: *const ca_poly_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_poly_rem(
R: *mut ca_poly_struct,
A: *const ca_poly_struct,
B: *const ca_poly_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _ca_poly_pow_ui_trunc(
res: ca_ptr,
f: ca_srcptr,
flen: slong,
exp: ulong,
len: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_pow_ui_trunc(
res: *mut ca_poly_struct,
poly: *const ca_poly_struct,
exp: ulong,
len: slong,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_poly_pow_ui(
res: ca_ptr,
f: ca_srcptr,
flen: slong,
exp: ulong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_pow_ui(
res: *mut ca_poly_struct,
poly: *const ca_poly_struct,
exp: ulong,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_poly_evaluate_horner(
res: *mut ca_struct,
f: ca_srcptr,
len: slong,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_evaluate_horner(
res: *mut ca_struct,
f: *const ca_poly_struct,
a: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_poly_evaluate(
res: *mut ca_struct,
f: ca_srcptr,
len: slong,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_evaluate(
res: *mut ca_struct,
f: *const ca_poly_struct,
a: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_poly_compose(
res: ca_ptr,
poly1: ca_srcptr,
len1: slong,
poly2: ca_srcptr,
len2: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_compose(
res: *mut ca_poly_struct,
poly1: *const ca_poly_struct,
poly2: *const ca_poly_struct,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_poly_derivative(
res: ca_ptr,
poly: ca_srcptr,
len: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_derivative(
res: *mut ca_poly_struct,
poly: *const ca_poly_struct,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_poly_integral(
res: ca_ptr,
poly: ca_srcptr,
len: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_integral(
res: *mut ca_poly_struct,
poly: *const ca_poly_struct,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_poly_gcd_euclidean(
G: ca_ptr,
A: ca_srcptr,
lenA: slong,
B: ca_srcptr,
lenB: slong,
ctx: *mut ca_ctx_struct,
) -> slong;
pub fn ca_poly_gcd_euclidean(
G: *mut ca_poly_struct,
A: *const ca_poly_struct,
B: *const ca_poly_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _ca_poly_gcd(
G: ca_ptr,
A: ca_srcptr,
lenA: slong,
B: ca_srcptr,
lenB: slong,
ctx: *mut ca_ctx_struct,
) -> slong;
pub fn ca_poly_gcd(
G: *mut ca_poly_struct,
A: *const ca_poly_struct,
B: *const ca_poly_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _ca_poly_inv_series(
res: ca_ptr,
f: ca_srcptr,
flen: slong,
len: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_inv_series(
res: *mut ca_poly_struct,
f: *const ca_poly_struct,
len: slong,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_poly_div_series(
res: ca_ptr,
f: ca_srcptr,
flen: slong,
g: ca_srcptr,
glen: slong,
len: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_div_series(
res: *mut ca_poly_struct,
f: *const ca_poly_struct,
g: *const ca_poly_struct,
len: slong,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_poly_exp_series(
res: ca_ptr,
f: ca_srcptr,
flen: slong,
len: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_exp_series(
res: *mut ca_poly_struct,
f: *const ca_poly_struct,
len: slong,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_poly_log_series(
res: ca_ptr,
f: ca_srcptr,
flen: slong,
len: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_log_series(
res: *mut ca_poly_struct,
f: *const ca_poly_struct,
len: slong,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_poly_vec_init(len: slong, ctx: *mut ca_ctx_struct) -> *mut ca_poly_struct;
pub fn ca_poly_vec_init(
res: *mut ca_poly_vec_struct,
len: slong,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_poly_vec_fit_length(
vec: *mut ca_poly_vec_struct,
len: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_vec_set_length(
vec: *mut ca_poly_vec_struct,
len: slong,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_poly_vec_clear(
v: *mut ca_poly_struct,
len: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_vec_clear(vec: *mut ca_poly_vec_struct, ctx: *mut ca_ctx_struct);
pub fn ca_poly_vec_append(
vec: *mut ca_poly_vec_struct,
f: *const ca_poly_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_factor_squarefree(
c: *mut ca_struct,
fac: *mut ca_poly_vec_struct,
exp: *mut ulong,
F: *const ca_poly_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_poly_squarefree_part(
res: *mut ca_poly_struct,
poly: *const ca_poly_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _ca_poly_set_roots(
poly: ca_ptr,
roots: ca_srcptr,
exp: *const ulong,
len: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_poly_set_roots(
poly: *mut ca_poly_struct,
roots: *mut ca_vec_struct,
exp: *const ulong,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_poly_roots(
roots: ca_ptr,
poly: ca_srcptr,
len: slong,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn ca_poly_roots(
roots: *mut ca_vec_struct,
exp: *mut ulong,
poly: *const ca_poly_struct,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
}
/* ca_types.h */
pub const calcium_func_code_CA_QQBar: calcium_func_code = 0;
pub const calcium_func_code_CA_Neg: calcium_func_code = 1;
pub const calcium_func_code_CA_Add: calcium_func_code = 2;
pub const calcium_func_code_CA_Sub: calcium_func_code = 3;
pub const calcium_func_code_CA_Mul: calcium_func_code = 4;
pub const calcium_func_code_CA_Div: calcium_func_code = 5;
pub const calcium_func_code_CA_Sqrt: calcium_func_code = 6;
pub const calcium_func_code_CA_Cbrt: calcium_func_code = 7;
pub const calcium_func_code_CA_Root: calcium_func_code = 8;
pub const calcium_func_code_CA_Floor: calcium_func_code = 9;
pub const calcium_func_code_CA_Ceil: calcium_func_code = 10;
pub const calcium_func_code_CA_Abs: calcium_func_code = 11;
pub const calcium_func_code_CA_Sign: calcium_func_code = 12;
pub const calcium_func_code_CA_Re: calcium_func_code = 13;
pub const calcium_func_code_CA_Im: calcium_func_code = 14;
pub const calcium_func_code_CA_Arg: calcium_func_code = 15;
pub const calcium_func_code_CA_Conjugate: calcium_func_code = 16;
pub const calcium_func_code_CA_Pi: calcium_func_code = 17;
pub const calcium_func_code_CA_Sin: calcium_func_code = 18;
pub const calcium_func_code_CA_Cos: calcium_func_code = 19;
pub const calcium_func_code_CA_Exp: calcium_func_code = 20;
pub const calcium_func_code_CA_Log: calcium_func_code = 21;
pub const calcium_func_code_CA_Pow: calcium_func_code = 22;
pub const calcium_func_code_CA_Tan: calcium_func_code = 23;
pub const calcium_func_code_CA_Cot: calcium_func_code = 24;
pub const calcium_func_code_CA_Cosh: calcium_func_code = 25;
pub const calcium_func_code_CA_Sinh: calcium_func_code = 26;
pub const calcium_func_code_CA_Tanh: calcium_func_code = 27;
pub const calcium_func_code_CA_Coth: calcium_func_code = 28;
pub const calcium_func_code_CA_Atan: calcium_func_code = 29;
pub const calcium_func_code_CA_Acos: calcium_func_code = 30;
pub const calcium_func_code_CA_Asin: calcium_func_code = 31;
pub const calcium_func_code_CA_Acot: calcium_func_code = 32;
pub const calcium_func_code_CA_Atanh: calcium_func_code = 33;
pub const calcium_func_code_CA_Acosh: calcium_func_code = 34;
pub const calcium_func_code_CA_Asinh: calcium_func_code = 35;
pub const calcium_func_code_CA_Acoth: calcium_func_code = 36;
pub const calcium_func_code_CA_Euler: calcium_func_code = 37;
pub const calcium_func_code_CA_Gamma: calcium_func_code = 38;
pub const calcium_func_code_CA_LogGamma: calcium_func_code = 39;
pub const calcium_func_code_CA_Psi: calcium_func_code = 40;
pub const calcium_func_code_CA_Erf: calcium_func_code = 41;
pub const calcium_func_code_CA_Erfc: calcium_func_code = 42;
pub const calcium_func_code_CA_Erfi: calcium_func_code = 43;
pub const calcium_func_code_CA_RiemannZeta: calcium_func_code = 44;
pub const calcium_func_code_CA_HurwitzZeta: calcium_func_code = 45;
pub const calcium_func_code_CA_FUNC_CODE_LENGTH: calcium_func_code = 46;
pub type calcium_func_code = ::std::os::raw::c_uint;
#[repr(C)]
pub union ca_elem_struct {
pub q: ::std::mem::ManuallyDrop<fmpq>,
pub nf: ::std::mem::ManuallyDrop<nf_elem_struct>,
pub mpoly_q: ::std::mem::ManuallyDrop<*mut fmpz_mpoly_q_struct>,
}
impl Default for ca_elem_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()
}
}
}
#[repr(C)]
pub struct ca_struct {
pub field: ulong,
pub elem: ca_elem_struct,
}
impl Default for ca_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 ca_t = [ca_struct; 1usize];
pub type ca_ptr = *mut ca_struct;
pub type ca_srcptr = *const ca_struct;
#[repr(C)]
pub struct ca_ext_qqbar {
pub x: qqbar_struct,
pub nf: *mut nf_struct,
}
impl Default for ca_ext_qqbar {
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 ca_ext_func_data {
pub args: *mut ca_struct,
pub nargs: slong,
pub enclosure: acb_struct,
pub prec: slong,
pub qqbar: *mut qqbar_struct,
}
impl Default for ca_ext_func_data {
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 ca_ext_struct {
pub head: calcium_func_code,
pub hash: ulong,
pub depth: slong,
pub data: ca_ext_struct__ca_types_bindgen_ty_1,
}
#[repr(C)]
pub union ca_ext_struct__ca_types_bindgen_ty_1 {
pub qqbar: ::std::mem::ManuallyDrop<ca_ext_qqbar>,
pub func_data: ::std::mem::ManuallyDrop<ca_ext_func_data>,
}
impl Default for ca_ext_struct__ca_types_bindgen_ty_1 {
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()
}
}
}
impl Default for ca_ext_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 ca_ext_t = [ca_ext_struct; 1usize];
pub type ca_ext_ptr = *mut ca_ext_struct;
pub type ca_ext_srcptr = *const ca_ext_struct;
#[repr(C)]
pub struct ca_ext_cache_struct {
pub items: *mut *mut ca_ext_struct,
pub length: slong,
pub alloc: slong,
pub hash_size: slong,
pub hash_table: *mut slong,
}
impl Default for ca_ext_cache_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 ca_ext_cache_t = [ca_ext_cache_struct; 1usize];
#[repr(C)]
pub struct ca_field_struct {
pub length: slong,
pub ext: *mut *mut ca_ext_struct,
pub ideal: fmpz_mpoly_vec_struct,
pub hash: ulong,
}
impl Default for ca_field_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 ca_field_t = [ca_field_struct; 1usize];
pub type ca_field_ptr = *mut ca_field_struct;
pub type ca_field_srcptr = *const ca_field_struct;
#[repr(C)]
pub struct ca_field_cache_struct {
pub items: *mut *mut ca_field_struct,
pub length: slong,
pub alloc: slong,
pub hash_size: slong,
pub hash_table: *mut slong,
}
impl Default for ca_field_cache_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 ca_field_cache_t = [ca_field_cache_struct; 1usize];
#[repr(C)]
pub struct ca_ctx_struct {
pub ext_cache: ca_ext_cache_struct,
pub field_cache: ca_field_cache_struct,
pub field_qq: *mut ca_field_struct,
pub field_qq_i: *mut ca_field_struct,
pub mctx: *mut *mut fmpz_mpoly_ctx_struct,
pub mctx_len: slong,
pub options: *mut slong,
}
impl Default for ca_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 ca_ctx_t = [ca_ctx_struct; 1usize];
#[repr(C)]
pub struct ca_factor_struct {
pub base: ca_ptr,
pub exp: ca_ptr,
pub length: slong,
pub alloc: slong,
}
impl Default for ca_factor_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 ca_factor_t = [ca_factor_struct; 1usize];
#[repr(C)]
pub struct ca_vec_struct {
pub entries: ca_ptr,
pub alloc: slong,
pub length: slong,
}
impl Default for ca_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 ca_vec_t = [ca_vec_struct; 1usize];
#[repr(C)]
pub struct ca_mat_struct {
pub entries: ca_ptr,
pub r: slong,
pub c: slong,
pub stride: slong,
}
impl Default for ca_mat_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 ca_mat_t = [ca_mat_struct; 1usize];
#[repr(C)]
pub struct ca_poly_struct {
pub coeffs: *mut ca_struct,
pub alloc: slong,
pub length: slong,
}
impl Default for ca_poly_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 ca_poly_t = [ca_poly_struct; 1usize];
/* ca_vec.h */
unsafe extern "C" {
pub fn ca_vec_entry_ptr(vec: *mut ca_vec_struct, i: slong) -> ca_ptr;
pub fn _ca_vec_init(len: slong, ctx: *mut ca_ctx_struct) -> ca_ptr;
pub fn ca_vec_init(vec: *mut ca_vec_struct, len: slong, ctx: *mut ca_ctx_struct);
pub fn _ca_vec_clear(vec: ca_ptr, len: slong, ctx: *mut ca_ctx_struct);
pub fn ca_vec_clear(vec: *mut ca_vec_struct, ctx: *mut ca_ctx_struct);
pub fn _ca_vec_swap(vec1: ca_ptr, vec2: ca_ptr, len: slong, ctx: *mut ca_ctx_struct);
pub fn ca_vec_swap(
vec1: *mut ca_vec_struct,
vec2: *mut ca_vec_struct,
UNUSED_ctx: *mut ca_ctx_struct,
);
pub fn ca_vec_length(
vec: *const ca_vec_struct,
UNUSED_ctx: *mut ca_ctx_struct,
) -> slong;
pub fn _ca_vec_fit_length(
vec: *mut ca_vec_struct,
len: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_vec_set_length(
vec: *mut ca_vec_struct,
len: slong,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_vec_set(res: ca_ptr, src: ca_srcptr, len: slong, ctx: *mut ca_ctx_struct);
pub fn ca_vec_set(
res: *mut ca_vec_struct,
src: *const ca_vec_struct,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_vec_zero(res: ca_ptr, len: slong, ctx: *mut ca_ctx_struct);
pub fn ca_vec_zero(res: *mut ca_vec_struct, len: slong, ctx: *mut ca_ctx_struct);
pub fn _ca_vec_unknown(vec: ca_ptr, len: slong, ctx: *mut ca_ctx_struct);
pub fn _ca_vec_undefined(vec: ca_ptr, len: slong, ctx: *mut ca_ctx_struct);
pub fn ca_vec_print(vec: *const ca_vec_struct, ctx: *mut ca_ctx_struct);
pub fn ca_vec_printn(
vec: *const ca_vec_struct,
digits: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_vec_append(
vec: *mut ca_vec_struct,
f: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_vec_neg(res: ca_ptr, src: ca_srcptr, len: slong, ctx: *mut ca_ctx_struct);
pub fn ca_vec_neg(
res: *mut ca_vec_struct,
src: *const ca_vec_struct,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_vec_add(
res: ca_ptr,
vec1: ca_srcptr,
vec2: ca_srcptr,
len: slong,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_vec_sub(
res: ca_ptr,
vec1: ca_srcptr,
vec2: ca_srcptr,
len: slong,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_vec_scalar_mul_ca(
res: ca_ptr,
src: ca_srcptr,
len: slong,
c: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_vec_scalar_div_ca(
res: ca_ptr,
src: ca_srcptr,
len: slong,
c: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_vec_scalar_addmul_ca(
res: ca_ptr,
src: ca_srcptr,
len: slong,
c: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_vec_scalar_submul_ca(
res: ca_ptr,
src: ca_srcptr,
len: slong,
c: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_vec_check_is_zero(
vec: ca_srcptr,
len: slong,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn _ca_vec_is_fmpq_vec(
vec: ca_srcptr,
len: slong,
ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _ca_vec_fmpq_vec_is_fmpz_vec(
vec: ca_srcptr,
len: slong,
UNUSED_ctx: *mut ca_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _ca_vec_fmpq_vec_get_fmpz_vec_den(
c: *mut fmpz,
den: *mut fmpz,
vec: ca_srcptr,
len: slong,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_vec_set_fmpz_vec_div_fmpz(
res: ca_ptr,
v: *const fmpz,
den: *const fmpz,
len: slong,
ctx: *mut ca_ctx_struct,
);
}
/* calcium.h */
unsafe extern "C" {
pub fn calcium_stream_init_file(out: *mut gr_stream_struct, fp: *mut FILE);
pub fn calcium_stream_init_str(out: *mut gr_stream_struct);
pub fn calcium_write(out: *mut gr_stream_struct, s: *const ::std::os::raw::c_char);
pub fn calcium_write_si(out: *mut gr_stream_struct, x: slong);
pub fn calcium_write_fmpz(out: *mut gr_stream_struct, c: *const fmpz);
pub fn calcium_write_arb(
out: *mut gr_stream_struct,
x: *const arb_struct,
digits: slong,
flags: ulong,
);
pub fn calcium_write_acb(
out: *mut gr_stream_struct,
z: *const acb_struct,
digits: slong,
flags: ulong,
);
pub fn calcium_write_free(
out: *mut gr_stream_struct,
s: *mut ::std::os::raw::c_char,
);
pub fn truth_print(t: truth_t);
pub fn calcium_func_name(func: calcium_func_code) -> *const ::std::os::raw::c_char;
pub fn calcium_fmpz_hash(x: *const fmpz) -> ulong;
}
/* d_mat.h */
#[repr(C)]
pub struct d_mat_struct {
pub entries: *mut f64,
pub r: slong,
pub c: slong,
pub rows: *mut *mut f64,
}
impl Default for d_mat_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 d_mat_t = [d_mat_struct; 1usize];
unsafe extern "C" {
pub fn d_mat_nrows(mat: *const d_mat_struct) -> slong;
pub fn d_mat_ncols(mat: *const d_mat_struct) -> slong;
pub fn d_mat_init(mat: *mut d_mat_struct, rows: slong, cols: slong);
pub fn d_mat_swap_entrywise(mat1: *mut d_mat_struct, mat2: *mut d_mat_struct);
pub fn d_mat_set(mat1: *mut d_mat_struct, mat2: *const d_mat_struct);
pub fn d_mat_clear(mat: *mut d_mat_struct);
pub fn d_mat_equal(
mat1: *const d_mat_struct,
mat2: *const d_mat_struct,
) -> ::std::os::raw::c_int;
pub fn d_mat_approx_equal(
mat1: *const d_mat_struct,
mat2: *const d_mat_struct,
eps: f64,
) -> ::std::os::raw::c_int;
pub fn d_mat_is_square(mat: *const d_mat_struct) -> ::std::os::raw::c_int;
pub fn d_mat_zero(mat: *mut d_mat_struct);
pub fn d_mat_print(mat: *const d_mat_struct);
pub fn d_mat_randtest(
mat: *mut d_mat_struct,
state: *mut flint_rand_struct,
minexp: slong,
maxexp: slong,
);
pub fn d_mat_transpose(B: *mut d_mat_struct, A: *const d_mat_struct);
pub fn d_mat_mul_classical(
C: *mut d_mat_struct,
A: *const d_mat_struct,
B: *const d_mat_struct,
);
}
/* d_vec.h */
unsafe extern "C" {
pub fn _d_vec_init(len: slong) -> *mut f64;
pub fn _d_vec_clear(vec: *mut f64);
pub fn _d_vec_randtest(
f: *mut f64,
state: *mut flint_rand_struct,
len: slong,
minexp: slong,
maxexp: slong,
);
pub fn _d_vec_set(vec1: *mut f64, vec2: *const f64, len2: slong);
pub fn _d_vec_zero(vec: *mut f64, len: slong);
pub fn _d_vec_equal(
vec1: *const f64,
vec2: *const f64,
len: slong,
) -> ::std::os::raw::c_int;
pub fn _d_vec_approx_equal(
vec1: *const f64,
vec2: *const f64,
len: slong,
eps: f64,
) -> ::std::os::raw::c_int;
pub fn _d_vec_is_zero(vec: *const f64, len: slong) -> ::std::os::raw::c_int;
pub fn _d_vec_is_approx_zero(
vec: *const f64,
len: slong,
eps: f64,
) -> ::std::os::raw::c_int;
pub fn _d_vec_add(res: *mut f64, vec1: *const f64, vec2: *const f64, len2: slong);
pub fn _d_vec_sub(res: *mut f64, vec1: *const f64, vec2: *const f64, len2: slong);
pub fn _d_vec_mul_2exp(
res: *mut f64,
x: *const f64,
len: slong,
e: ::std::os::raw::c_int,
);
pub fn _d_vec_dot(vec1: *const f64, vec2: *const f64, len2: slong) -> f64;
pub fn _d_vec_norm(vec: *const f64, len: slong) -> f64;
pub fn _d_vec_dot_heuristic(
vec1: *const f64,
vec2: *const f64,
len2: slong,
err: *mut f64,
) -> f64;
pub fn _d_vec_dot_thrice(
vec1: *const f64,
vec2: *const f64,
len2: slong,
err: *mut f64,
) -> f64;
}
/* dirichlet.h */
#[repr(C)]
pub struct dirichlet_prime_group_struct {
pub p: ulong,
pub e: ::std::os::raw::c_int,
pub pe: nmod_t,
pub phi: nmod_t,
pub g: ulong,
pub dlog: *mut dlog_precomp_struct,
}
impl Default for dirichlet_prime_group_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()
}
}
}
#[repr(C)]
pub struct dirichlet_group_struct {
pub q: ulong,
pub q_even: ulong,
pub mod_: nmod_t,
pub rad_q: ulong,
pub phi_q: ulong,
pub neven: slong,
pub num: slong,
pub expo: ulong,
pub P: *mut dirichlet_prime_group_struct,
pub generators: *mut ulong,
pub PHI: *mut ulong,
}
impl Default for dirichlet_group_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 dirichlet_group_t = [dirichlet_group_struct; 1usize];
#[repr(C)]
pub struct dirichlet_char_struct {
pub n: ulong,
pub log: *mut ulong,
}
impl Default for dirichlet_char_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 dirichlet_char_t = [dirichlet_char_struct; 1usize];
unsafe extern "C" {
pub fn dirichlet_group_size(G: *const dirichlet_group_struct) -> ulong;
pub fn dirichlet_group_num_primitive(G: *const dirichlet_group_struct) -> ulong;
pub fn dirichlet_group_init(
G: *mut dirichlet_group_struct,
q: ulong,
) -> ::std::os::raw::c_int;
pub fn dirichlet_subgroup_init(
H: *mut dirichlet_group_struct,
G: *const dirichlet_group_struct,
h: ulong,
);
pub fn dirichlet_group_clear(G: *mut dirichlet_group_struct);
pub fn dirichlet_group_dlog_precompute(G: *mut dirichlet_group_struct, num: ulong);
pub fn dirichlet_group_dlog_clear(G: *mut dirichlet_group_struct);
pub fn dirichlet_conductor_ui(G: *const dirichlet_group_struct, a: ulong) -> ulong;
pub fn dirichlet_parity_ui(
G: *const dirichlet_group_struct,
a: ulong,
) -> ::std::os::raw::c_int;
pub fn dirichlet_order_ui(G: *const dirichlet_group_struct, a: ulong) -> ulong;
pub fn dirichlet_char_init(
x: *mut dirichlet_char_struct,
G: *const dirichlet_group_struct,
);
pub fn dirichlet_char_clear(x: *mut dirichlet_char_struct);
pub fn dirichlet_char_print(
G: *const dirichlet_group_struct,
x: *const dirichlet_char_struct,
);
pub fn dirichlet_char_set(
x: *mut dirichlet_char_struct,
G: *const dirichlet_group_struct,
y: *const dirichlet_char_struct,
);
pub fn dirichlet_char_eq(
x: *const dirichlet_char_struct,
y: *const dirichlet_char_struct,
) -> ::std::os::raw::c_int;
pub fn dirichlet_char_eq_deep(
G: *const dirichlet_group_struct,
x: *const dirichlet_char_struct,
y: *const dirichlet_char_struct,
) -> ::std::os::raw::c_int;
pub fn dirichlet_parity_char(
G: *const dirichlet_group_struct,
x: *const dirichlet_char_struct,
) -> ::std::os::raw::c_int;
pub fn dirichlet_conductor_char(
G: *const dirichlet_group_struct,
x: *const dirichlet_char_struct,
) -> ulong;
pub fn dirichlet_order_char(
G: *const dirichlet_group_struct,
x: *const dirichlet_char_struct,
) -> ulong;
pub fn dirichlet_char_log(
x: *mut dirichlet_char_struct,
G: *const dirichlet_group_struct,
m: ulong,
);
pub fn dirichlet_char_exp(
UNUSED_G: *const dirichlet_group_struct,
x: *const dirichlet_char_struct,
) -> ulong;
pub fn _dirichlet_char_exp(
x: *mut dirichlet_char_struct,
G: *const dirichlet_group_struct,
) -> ulong;
pub fn dirichlet_char_index(
x: *mut dirichlet_char_struct,
G: *const dirichlet_group_struct,
j: ulong,
);
pub fn dirichlet_index_char(
G: *const dirichlet_group_struct,
x: *const dirichlet_char_struct,
) -> ulong;
pub fn dirichlet_char_one(
x: *mut dirichlet_char_struct,
G: *const dirichlet_group_struct,
);
pub fn dirichlet_char_first_primitive(
x: *mut dirichlet_char_struct,
G: *const dirichlet_group_struct,
);
pub fn dirichlet_char_next(
x: *mut dirichlet_char_struct,
G: *const dirichlet_group_struct,
) -> ::std::os::raw::c_int;
pub fn dirichlet_char_next_primitive(
x: *mut dirichlet_char_struct,
G: *const dirichlet_group_struct,
) -> ::std::os::raw::c_int;
pub fn dirichlet_char_mul(
c: *mut dirichlet_char_struct,
G: *const dirichlet_group_struct,
a: *const dirichlet_char_struct,
b: *const dirichlet_char_struct,
);
pub fn dirichlet_char_pow(
c: *mut dirichlet_char_struct,
G: *const dirichlet_group_struct,
a: *const dirichlet_char_struct,
n: ulong,
);
pub fn dirichlet_char_lower(
y: *mut dirichlet_char_struct,
H: *const dirichlet_group_struct,
x: *const dirichlet_char_struct,
G: *const dirichlet_group_struct,
);
pub fn dirichlet_char_lift(
y: *mut dirichlet_char_struct,
G: *const dirichlet_group_struct,
x: *const dirichlet_char_struct,
H: *const dirichlet_group_struct,
);
pub fn dirichlet_pairing(
G: *const dirichlet_group_struct,
m: ulong,
n: ulong,
) -> ulong;
pub fn dirichlet_pairing_char(
G: *const dirichlet_group_struct,
a: *const dirichlet_char_struct,
b: *const dirichlet_char_struct,
) -> ulong;
pub fn dirichlet_char_is_principal(
UNUSED_G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
) -> ::std::os::raw::c_int;
pub fn dirichlet_char_is_real(
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
) -> ::std::os::raw::c_int;
pub fn dirichlet_char_is_primitive(
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
) -> ::std::os::raw::c_int;
pub fn dirichlet_chi(
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
n: ulong,
) -> ulong;
pub fn dirichlet_vec_set_null(
v: *mut ulong,
G: *const dirichlet_group_struct,
nv: slong,
);
pub fn dirichlet_chi_vec_loop(
v: *mut ulong,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
nv: slong,
);
pub fn dirichlet_chi_vec_primeloop(
v: *mut ulong,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
nv: slong,
);
pub fn dirichlet_chi_vec(
v: *mut ulong,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
nv: slong,
);
pub fn dirichlet_chi_vec_loop_order(
v: *mut ulong,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
order: ulong,
nv: slong,
);
pub fn dirichlet_chi_vec_primeloop_order(
v: *mut ulong,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
order: ulong,
nv: slong,
);
pub fn dirichlet_chi_vec_order(
v: *mut ulong,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
order: ulong,
nv: slong,
);
}
/* dlog.h */
pub const DLOG_MODPE: _dlog_bindgen_ty_1 = 0;
pub const DLOG_CRT: _dlog_bindgen_ty_1 = 1;
pub const DLOG_POWER: _dlog_bindgen_ty_1 = 2;
pub const DLOG_BSGS: _dlog_bindgen_ty_1 = 3;
pub const DLOG_TABLE: _dlog_bindgen_ty_1 = 4;
pub const DLOG_23: _dlog_bindgen_ty_1 = 5;
pub type _dlog_bindgen_ty_1 = ::std::os::raw::c_uint;
pub type dlog_preconn_ptr = *mut dlog_precomp_struct;
#[repr(C)]
pub struct dlog_1modpe_struct {
pub inv1p: ulong,
pub invloga1: ulong,
}
impl Default for dlog_1modpe_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 dlog_1modpe_t = [dlog_1modpe_struct; 1usize];
#[repr(C)]
pub struct dlog_modpe_struct {
pub p: ulong,
pub e: ulong,
pub pe1: ulong,
pub inva: ulong,
pub pe: nmod_t,
pub modp: *mut dlog_precomp_struct,
pub modpe: dlog_1modpe_t,
}
impl Default for dlog_modpe_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 dlog_modpe_t = [dlog_modpe_struct; 1usize];
#[repr(C)]
pub struct dlog_table_struct {
pub mod_: ulong,
pub table: *mut ulong,
}
impl Default for dlog_table_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 dlog_table_t = [dlog_table_struct; 1usize];
#[repr(C)]
pub struct apow {
pub k: ulong,
pub ak: ulong,
}
impl Default for apow {
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 apow_t = apow;
#[repr(C)]
pub struct dlog_bsgs_struct {
pub mod_: nmod_t,
pub m: ulong,
pub am: ulong,
pub g: ulong,
pub table: *mut apow_t,
}
impl Default for dlog_bsgs_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 dlog_bsgs_t = [dlog_bsgs_struct; 1usize];
#[repr(C)]
pub struct dlog_rho_struct {
pub a: ulong,
pub n: nmod_t,
pub mod_: nmod_t,
pub nisprime: ::std::os::raw::c_int,
}
impl Default for dlog_rho_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 dlog_rho_t = [dlog_rho_struct; 1usize];
#[repr(C)]
pub struct dlog_crt_struct {
pub mod_: nmod_t,
pub n: nmod_t,
pub num: ulong,
pub expo: *mut ulong,
pub crt_coeffs: *mut ulong,
pub pre: dlog_preconn_ptr,
}
impl Default for dlog_crt_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 dlog_crt_t = [dlog_crt_struct; 1usize];
#[repr(C)]
pub struct dlog_power_struct {
pub mod_: nmod_t,
pub p: ulong,
pub e: ulong,
pub apk: *mut ulong,
pub pre: *mut dlog_precomp_struct,
}
impl Default for dlog_power_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 dlog_power_t = [dlog_power_struct; 1usize];
pub type dlog_order23_t = [ulong; 1usize];
#[repr(C)]
pub struct dlog_precomp_struct {
pub type_: ::std::os::raw::c_int,
pub cost: ulong,
pub t: dlog_precomp_struct__dlog_bindgen_ty_1,
}
#[repr(C)]
pub union dlog_precomp_struct__dlog_bindgen_ty_1 {
pub table: ::std::mem::ManuallyDrop<dlog_table_t>,
pub bsgs: ::std::mem::ManuallyDrop<dlog_bsgs_t>,
pub crt: ::std::mem::ManuallyDrop<dlog_crt_t>,
pub power: ::std::mem::ManuallyDrop<dlog_power_t>,
pub modpe: ::std::mem::ManuallyDrop<dlog_modpe_t>,
pub order23: ::std::mem::ManuallyDrop<dlog_order23_t>,
}
impl Default for dlog_precomp_struct__dlog_bindgen_ty_1 {
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()
}
}
}
impl Default for dlog_precomp_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type dlog_precomp_t = [dlog_precomp_struct; 1usize];
unsafe extern "C" {
pub fn apow_cmp(x: *const apow_t, y: *const apow_t) -> ::std::os::raw::c_int;
pub fn dlog_precomp_modpe_init(
pre: *mut dlog_precomp_struct,
a: ulong,
p: ulong,
e: ulong,
pe: ulong,
num: ulong,
);
pub fn dlog_precomp_small_init(
pre: *mut dlog_precomp_struct,
a: ulong,
mod_: ulong,
n: ulong,
num: ulong,
);
pub fn dlog_precomp_n_init(
pre: *mut dlog_precomp_struct,
a: ulong,
mod_: ulong,
n: ulong,
num: ulong,
);
pub fn dlog_precomp_p_init(
pre: *mut dlog_precomp_struct,
a: ulong,
mod_: ulong,
p: ulong,
num: ulong,
);
pub fn dlog_precomp_pe_init(
pre: *mut dlog_precomp_struct,
a: ulong,
mod_: ulong,
p: ulong,
e: ulong,
pe: ulong,
num: ulong,
);
pub fn dlog_precomp_clear(pre: *mut dlog_precomp_struct);
pub fn dlog_precomp(pre: *const dlog_precomp_struct, b: ulong) -> ulong;
pub fn dlog_order23_init(t: *mut ulong, a: ulong) -> ulong;
pub fn dlog_table_init(t: *mut dlog_table_struct, a: ulong, mod_: ulong) -> ulong;
pub fn dlog_crt_init(
t: *mut dlog_crt_struct,
a: ulong,
mod_: ulong,
n: ulong,
num: ulong,
) -> ulong;
pub fn dlog_power_init(
t: *mut dlog_power_struct,
a: ulong,
mod_: ulong,
p: ulong,
e: ulong,
num: ulong,
) -> ulong;
pub fn dlog_modpe_init(
t: *mut dlog_modpe_struct,
a: ulong,
p: ulong,
e: ulong,
pe: ulong,
num: ulong,
) -> ulong;
pub fn dlog_bsgs_init(
t: *mut dlog_bsgs_struct,
a: ulong,
mod_: ulong,
n: ulong,
m: ulong,
) -> ulong;
pub fn dlog_1modpe_init(
t: *mut dlog_1modpe_struct,
a1: ulong,
p: ulong,
e: ulong,
pe: nmod_t,
);
pub fn dlog_rho_init(t: *mut dlog_rho_struct, a: ulong, mod_: ulong, n: ulong);
pub fn dlog_once(b: ulong, a: ulong, mod_: nmod_t, n: ulong) -> ulong;
pub fn dlog_order23_clear(UNUSED_t: *mut ulong);
pub fn dlog_table_clear(t: *mut dlog_table_struct);
pub fn dlog_crt_clear(t: *mut dlog_crt_struct);
pub fn dlog_power_clear(t: *mut dlog_power_struct);
pub fn dlog_modpe_clear(t: *mut dlog_modpe_struct);
pub fn dlog_bsgs_clear(t: *mut dlog_bsgs_struct);
pub fn dlog_rho_clear(UNUSED_t: *mut dlog_rho_struct);
pub fn dlog_bsgs_size(n: ulong, num: ulong) -> ulong;
pub fn dlog_order23(t: *const ulong, b: ulong) -> ulong;
pub fn dlog_table(t: *const dlog_table_struct, b: ulong) -> ulong;
pub fn dlog_crt(t: *const dlog_crt_struct, b: ulong) -> ulong;
pub fn dlog_power(t: *const dlog_power_struct, b: ulong) -> ulong;
pub fn dlog_modpe(t: *const dlog_modpe_struct, b: ulong) -> ulong;
pub fn dlog_bsgs(t: *const dlog_bsgs_struct, b: ulong) -> ulong;
pub fn dlog_rho(t: *const dlog_rho_struct, b: ulong) -> ulong;
pub fn dlog_1modpe_1modp(
b1: ulong,
p: ulong,
e: ulong,
inv1p: ulong,
pe: nmod_t,
) -> ulong;
pub fn dlog_1modpe(
t: *const dlog_1modpe_struct,
b1: ulong,
p: ulong,
e: ulong,
pe: nmod_t,
) -> ulong;
pub fn dlog_mod2e_1mod4(b1: ulong, e: ulong, inva: ulong, pe: nmod_t) -> ulong;
pub fn dlog_mod2e(t: *const dlog_modpe_struct, b: ulong) -> ulong;
pub fn dlog_n_factor_group(fac: *mut n_factor_t, bound: ulong);
pub fn dlog_vec_pindex_factorgcd(
v: *mut ulong,
nv: ulong,
p: ulong,
mod_: nmod_t,
a: ulong,
na: ulong,
loga: ulong,
logm1: ulong,
order: nmod_t,
maxtry: ::std::os::raw::c_int,
) -> ulong;
pub fn dlog_vec_fill(v: *mut ulong, nv: ulong, x: ulong);
pub fn dlog_vec_set_not_found(v: *mut ulong, nv: ulong, mod_: nmod_t);
pub fn dlog_vec_loop(
v: *mut ulong,
nv: ulong,
a: ulong,
va: ulong,
mod_: nmod_t,
na: ulong,
order: nmod_t,
);
pub fn dlog_vec_loop_add(
v: *mut ulong,
nv: ulong,
a: ulong,
va: ulong,
mod_: nmod_t,
na: ulong,
order: nmod_t,
);
pub fn dlog_vec_eratos_add(
v: *mut ulong,
nv: ulong,
a: ulong,
va: ulong,
mod_: nmod_t,
na: ulong,
order: nmod_t,
);
pub fn dlog_vec_eratos(
v: *mut ulong,
nv: ulong,
a: ulong,
va: ulong,
mod_: nmod_t,
na: ulong,
order: nmod_t,
);
pub fn dlog_vec_sieve_add(
v: *mut ulong,
nv: ulong,
a: ulong,
va: ulong,
mod_: nmod_t,
na: ulong,
order: nmod_t,
);
pub fn dlog_vec_sieve(
v: *mut ulong,
nv: ulong,
a: ulong,
va: ulong,
mod_: nmod_t,
na: ulong,
order: nmod_t,
);
pub fn dlog_vec_add(
v: *mut ulong,
nv: ulong,
a: ulong,
va: ulong,
mod_: nmod_t,
na: ulong,
order: nmod_t,
);
pub fn dlog_vec(
v: *mut ulong,
nv: ulong,
a: ulong,
va: ulong,
mod_: nmod_t,
na: ulong,
order: nmod_t,
);
pub fn dlog_vec_sieve_precomp(
v: *mut ulong,
nv: ulong,
pre: *mut dlog_precomp_struct,
a: ulong,
va: ulong,
mod_: nmod_t,
na: ulong,
order: nmod_t,
);
pub fn dlog_vec_sieve_add_precomp(
v: *mut ulong,
nv: ulong,
pre: *mut dlog_precomp_struct,
a: ulong,
va: ulong,
mod_: nmod_t,
na: ulong,
order: nmod_t,
);
pub fn dlog_vec_add_precomp(
v: *mut ulong,
nv: ulong,
pre: *mut dlog_precomp_struct,
a: ulong,
va: ulong,
mod_: nmod_t,
na: ulong,
order: nmod_t,
);
}
/* double_extras.h */
#[repr(C)]
pub union double_uint64_u {
pub f: ::std::mem::ManuallyDrop<f64>,
pub i: ::std::mem::ManuallyDrop<u64>,
}
impl Default for double_uint64_u {
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()
}
}
}
unsafe extern "C" {
pub fn d_randtest(state: *mut flint_rand_struct) -> f64;
pub fn d_randtest_signed(
state: *mut flint_rand_struct,
minexp: slong,
maxexp: slong,
) -> f64;
pub fn d_randtest_special(
state: *mut flint_rand_struct,
minexp: slong,
maxexp: slong,
) -> f64;
pub fn d_polyval(poly: *const f64, len: ::std::os::raw::c_int, x: f64) -> f64;
pub fn d_lambertw(x: f64) -> f64;
pub fn d_is_nan(x: f64) -> ::std::os::raw::c_int;
pub fn d_log2(x: f64) -> f64;
}
/* double_interval.h */
#[repr(C)]
#[derive(Default)]
pub struct di_t {
pub a: f64,
pub b: f64,
}
unsafe extern "C" {
pub fn di_interval(a: f64, b: f64) -> di_t;
pub fn _di_below(x: f64) -> f64;
pub fn _di_above(x: f64) -> f64;
pub fn di_neg(x: di_t) -> di_t;
pub fn di_fast_add(x: di_t, y: di_t) -> di_t;
pub fn di_fast_sub(x: di_t, y: di_t) -> di_t;
pub fn di_fast_mul(x: di_t, y: di_t) -> di_t;
pub fn di_fast_sqr(x: di_t) -> di_t;
pub fn di_fast_div(x: di_t, y: di_t) -> di_t;
pub fn di_fast_add_d(x: di_t, y: f64) -> di_t;
pub fn di_fast_sub_d(x: di_t, y: f64) -> di_t;
pub fn di_fast_mul_d(x: di_t, y: f64) -> di_t;
pub fn di_fast_div_d(x: di_t, y: f64) -> di_t;
pub fn di_fast_log_nonnegative(x: di_t) -> di_t;
pub fn di_fast_mid(x: di_t) -> di_t;
pub fn di_fast_ubound_radius(x: di_t) -> f64;
pub fn di_print(x: di_t);
pub fn arb_get_di(x: *const arb_struct) -> di_t;
pub fn arb_set_di(res: *mut arb_struct, x: di_t, prec: slong);
pub fn d_randtest2(state: *mut flint_rand_struct) -> f64;
pub fn di_randtest(state: *mut flint_rand_struct) -> di_t;
}
/* fexpr.h */
#[repr(C)]
pub struct fexpr_struct {
pub data: *mut ulong,
pub alloc: slong,
}
impl Default for fexpr_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 fexpr_t = [fexpr_struct; 1usize];
pub type fexpr_ptr = *mut fexpr_struct;
pub type fexpr_srcptr = *const fexpr_struct;
#[repr(C)]
pub struct fexpr_vec_struct {
pub entries: *mut fexpr_struct,
pub alloc: slong,
pub length: slong,
}
impl Default for fexpr_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 fexpr_vec_t = [fexpr_vec_struct; 1usize];
unsafe extern "C" {
pub fn fexpr_init(expr: *mut fexpr_struct);
pub fn fexpr_clear(expr: *mut fexpr_struct);
pub fn _fexpr_vec_init(len: slong) -> fexpr_ptr;
pub fn _fexpr_vec_clear(vec: fexpr_ptr, len: slong);
pub fn fexpr_fit_size(expr: *mut fexpr_struct, size: slong);
pub fn _fexpr_size(expr: *const ulong) -> slong;
pub fn fexpr_size(expr: *const fexpr_struct) -> slong;
pub fn fexpr_set(res: *mut fexpr_struct, expr: *const fexpr_struct);
pub fn fexpr_swap(a: *mut fexpr_struct, b: *mut fexpr_struct);
pub fn fexpr_equal(
a: *const fexpr_struct,
b: *const fexpr_struct,
) -> ::std::os::raw::c_int;
pub fn fexpr_equal_si(expr: *const fexpr_struct, c: slong) -> ::std::os::raw::c_int;
pub fn fexpr_equal_ui(expr: *const fexpr_struct, c: ulong) -> ::std::os::raw::c_int;
pub fn fexpr_hash(expr: *const fexpr_struct) -> ulong;
pub fn fexpr_cmp_fast(
a: *const fexpr_struct,
b: *const fexpr_struct,
) -> ::std::os::raw::c_int;
pub fn _fexpr_vec_sort_fast(vec: fexpr_ptr, len: slong);
pub fn _fexpr_is_integer(expr: *const ulong) -> ::std::os::raw::c_int;
pub fn fexpr_is_integer(expr: *const fexpr_struct) -> ::std::os::raw::c_int;
pub fn fexpr_is_neg_integer(expr: *const fexpr_struct) -> ::std::os::raw::c_int;
pub fn _fexpr_is_symbol(expr: *const ulong) -> ::std::os::raw::c_int;
pub fn fexpr_is_symbol(expr: *const fexpr_struct) -> ::std::os::raw::c_int;
pub fn _fexpr_is_string(expr: *const ulong) -> ::std::os::raw::c_int;
pub fn fexpr_is_string(expr: *const fexpr_struct) -> ::std::os::raw::c_int;
pub fn _fexpr_is_atom(expr: *const ulong) -> ::std::os::raw::c_int;
pub fn fexpr_is_atom(expr: *const fexpr_struct) -> ::std::os::raw::c_int;
pub fn fexpr_zero(res: *mut fexpr_struct);
pub fn fexpr_is_zero(expr: *const fexpr_struct) -> ::std::os::raw::c_int;
pub fn fexpr_set_si(res: *mut fexpr_struct, c: slong);
pub fn fexpr_set_ui(res: *mut fexpr_struct, c: ulong);
pub fn fexpr_set_fmpz(res: *mut fexpr_struct, c: *const fmpz);
pub fn fexpr_get_fmpz(c: *mut fmpz, x: *const fexpr_struct) -> ::std::os::raw::c_int;
pub fn fexpr_set_fmpq(res: *mut fexpr_struct, x: *const fmpq);
pub fn fexpr_set_symbol_builtin(res: *mut fexpr_struct, id: slong);
pub fn fexpr_set_symbol_str(
res: *mut fexpr_struct,
s: *const ::std::os::raw::c_char,
);
pub fn fexpr_set_string(res: *mut fexpr_struct, s: *const ::std::os::raw::c_char);
pub fn fexpr_get_symbol_str(
expr: *const fexpr_struct,
) -> *mut ::std::os::raw::c_char;
pub fn fexpr_get_string(expr: *const fexpr_struct) -> *mut ::std::os::raw::c_char;
pub fn fexpr_get_decimal_str(
expr: *const fexpr_struct,
digits: slong,
flags: ulong,
) -> *mut ::std::os::raw::c_char;
pub fn fexpr_depth(expr: *const fexpr_struct) -> slong;
pub fn fexpr_num_leaves(expr: *const fexpr_struct) -> slong;
pub fn fexpr_size_bytes(expr: *const fexpr_struct) -> slong;
pub fn fexpr_allocated_bytes(expr: *const fexpr_struct) -> slong;
pub fn fexpr_is_any_builtin_symbol(
expr: *const fexpr_struct,
) -> ::std::os::raw::c_int;
pub fn fexpr_is_builtin_symbol(
expr: *const fexpr_struct,
i: slong,
) -> ::std::os::raw::c_int;
pub fn fexpr_is_builtin_call(
expr: *const fexpr_struct,
i: slong,
) -> ::std::os::raw::c_int;
pub fn fexpr_is_any_builtin_call(expr: *const fexpr_struct) -> ::std::os::raw::c_int;
pub fn fexpr_nargs(expr: *const fexpr_struct) -> slong;
pub fn fexpr_func(res: *mut fexpr_struct, expr: *const fexpr_struct);
pub fn fexpr_view_func(res: *mut fexpr_struct, expr: *const fexpr_struct);
pub fn fexpr_arg(res: *mut fexpr_struct, expr: *const fexpr_struct, i: slong);
pub fn fexpr_view_arg(res: *mut fexpr_struct, expr: *const fexpr_struct, i: slong);
pub fn fexpr_view_next(view: *mut fexpr_struct);
pub fn fexpr_call0(res: *mut fexpr_struct, f: *const fexpr_struct);
pub fn fexpr_call1(
res: *mut fexpr_struct,
f: *const fexpr_struct,
x1: *const fexpr_struct,
);
pub fn fexpr_call2(
res: *mut fexpr_struct,
f: *const fexpr_struct,
x1: *const fexpr_struct,
x2: *const fexpr_struct,
);
pub fn fexpr_call3(
res: *mut fexpr_struct,
f: *const fexpr_struct,
x1: *const fexpr_struct,
x2: *const fexpr_struct,
x3: *const fexpr_struct,
);
pub fn fexpr_call4(
res: *mut fexpr_struct,
f: *const fexpr_struct,
x1: *const fexpr_struct,
x2: *const fexpr_struct,
x3: *const fexpr_struct,
x4: *const fexpr_struct,
);
pub fn fexpr_call_vec(
res: *mut fexpr_struct,
f: *const fexpr_struct,
args: fexpr_srcptr,
len: slong,
);
pub fn fexpr_call_builtin1(res: *mut fexpr_struct, f: slong, x: *const fexpr_struct);
pub fn fexpr_call_builtin2(
res: *mut fexpr_struct,
f: slong,
x: *const fexpr_struct,
y: *const fexpr_struct,
);
pub fn fexpr_contains(
expr: *const fexpr_struct,
x: *const fexpr_struct,
) -> ::std::os::raw::c_int;
pub fn fexpr_replace(
res: *mut fexpr_struct,
expr: *const fexpr_struct,
x: *const fexpr_struct,
y: *const fexpr_struct,
) -> ::std::os::raw::c_int;
pub fn fexpr_replace2(
res: *mut fexpr_struct,
expr: *const fexpr_struct,
x1: *const fexpr_struct,
y1: *const fexpr_struct,
x2: *const fexpr_struct,
y2: *const fexpr_struct,
) -> ::std::os::raw::c_int;
pub fn fexpr_replace_vec(
res: *mut fexpr_struct,
expr: *const fexpr_struct,
xs: *const fexpr_vec_struct,
ys: *const fexpr_vec_struct,
) -> ::std::os::raw::c_int;
pub fn fexpr_write(stream: *mut gr_stream_struct, expr: *const fexpr_struct);
pub fn fexpr_print(expr: *const fexpr_struct);
pub fn fexpr_get_str(expr: *const fexpr_struct) -> *mut ::std::os::raw::c_char;
pub fn fexpr_write_latex(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_print_latex(expr: *const fexpr_struct, flags: ulong);
pub fn fexpr_get_str_latex(
expr: *const fexpr_struct,
flags: ulong,
) -> *mut ::std::os::raw::c_char;
pub fn fexpr_write_latex_call(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_subscript(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_subscript_call(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_infix(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_mul(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_div(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_neg_pos(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_add(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_sub(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_pow(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_exp(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_factorial(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_integral(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_sum_product(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_divsum(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_limit(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_derivative(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_logic(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_collection(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_matrix(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_simple(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_simple2(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_simple2_small(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_alg_structure(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_setop(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_cases(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_where(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_show_form(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_range(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_decimal(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_call1_optional_derivative(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_call2_optional_derivative(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_sub1_call1_optional_derivative(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_sub1_call2_optional_derivative(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_misc_special(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_write_latex_residue(
out: *mut gr_stream_struct,
expr: *const fexpr_struct,
flags: ulong,
);
pub fn fexpr_set_arf(res: *mut fexpr_struct, x: *const arf_struct);
pub fn fexpr_set_d(res: *mut fexpr_struct, x: f64);
pub fn fexpr_set_re_im_d(res: *mut fexpr_struct, x: f64, y: f64);
pub fn fexpr_neg(res: *mut fexpr_struct, a: *const fexpr_struct);
pub fn fexpr_add(
res: *mut fexpr_struct,
a: *const fexpr_struct,
b: *const fexpr_struct,
);
pub fn fexpr_sub(
res: *mut fexpr_struct,
a: *const fexpr_struct,
b: *const fexpr_struct,
);
pub fn fexpr_mul(
res: *mut fexpr_struct,
a: *const fexpr_struct,
b: *const fexpr_struct,
);
pub fn fexpr_div(
res: *mut fexpr_struct,
a: *const fexpr_struct,
b: *const fexpr_struct,
);
pub fn fexpr_pow(
res: *mut fexpr_struct,
a: *const fexpr_struct,
b: *const fexpr_struct,
);
pub fn fexpr_is_arithmetic_operation(
expr: *const fexpr_struct,
) -> ::std::os::raw::c_int;
pub fn fexpr_arithmetic_nodes(
nodes: *mut fexpr_vec_struct,
expr: *const fexpr_struct,
);
pub fn fexpr_get_fmpz_mpoly_q(
res: *mut fmpz_mpoly_q_struct,
expr: *const fexpr_struct,
vars: *const fexpr_vec_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fexpr_set_fmpz_mpoly(
res: *mut fexpr_struct,
poly: *const fmpz_mpoly_struct,
vars: *const fexpr_vec_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fexpr_set_fmpz_mpoly_q(
res: *mut fexpr_struct,
frac: *const fmpz_mpoly_q_struct,
vars: *const fexpr_vec_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fexpr_expanded_normal_form(
res: *mut fexpr_struct,
expr: *const fexpr_struct,
flags: ulong,
) -> ::std::os::raw::c_int;
pub fn fexpr_vec_init(vec: *mut fexpr_vec_struct, len: slong);
pub fn fexpr_vec_print(F: *const fexpr_vec_struct);
pub fn fexpr_vec_swap(x: *mut fexpr_vec_struct, y: *mut fexpr_vec_struct);
pub fn fexpr_vec_fit_length(vec: *mut fexpr_vec_struct, len: slong);
pub fn fexpr_vec_clear(vec: *mut fexpr_vec_struct);
pub fn fexpr_vec_set(dest: *mut fexpr_vec_struct, src: *const fexpr_vec_struct);
pub fn fexpr_vec_append(vec: *mut fexpr_vec_struct, f: *const fexpr_struct);
pub fn fexpr_vec_insert_unique(
vec: *mut fexpr_vec_struct,
f: *const fexpr_struct,
) -> slong;
pub fn fexpr_vec_set_length(vec: *mut fexpr_vec_struct, len: slong);
}
/* fexpr_builtin.h */
pub const fexpr_builtin_symbol_FEXPR_AGM: fexpr_builtin_symbol = 0;
pub const fexpr_builtin_symbol_FEXPR_AGMSequence: fexpr_builtin_symbol = 1;
pub const fexpr_builtin_symbol_FEXPR_Abs: fexpr_builtin_symbol = 2;
pub const fexpr_builtin_symbol_FEXPR_Acos: fexpr_builtin_symbol = 3;
pub const fexpr_builtin_symbol_FEXPR_Acosh: fexpr_builtin_symbol = 4;
pub const fexpr_builtin_symbol_FEXPR_Acot: fexpr_builtin_symbol = 5;
pub const fexpr_builtin_symbol_FEXPR_Acoth: fexpr_builtin_symbol = 6;
pub const fexpr_builtin_symbol_FEXPR_Acsc: fexpr_builtin_symbol = 7;
pub const fexpr_builtin_symbol_FEXPR_Acsch: fexpr_builtin_symbol = 8;
pub const fexpr_builtin_symbol_FEXPR_Add: fexpr_builtin_symbol = 9;
pub const fexpr_builtin_symbol_FEXPR_AiryAi: fexpr_builtin_symbol = 10;
pub const fexpr_builtin_symbol_FEXPR_AiryAiZero: fexpr_builtin_symbol = 11;
pub const fexpr_builtin_symbol_FEXPR_AiryBi: fexpr_builtin_symbol = 12;
pub const fexpr_builtin_symbol_FEXPR_AiryBiZero: fexpr_builtin_symbol = 13;
pub const fexpr_builtin_symbol_FEXPR_AlgebraicNumberSerialized: fexpr_builtin_symbol = 14;
pub const fexpr_builtin_symbol_FEXPR_AlgebraicNumbers: fexpr_builtin_symbol = 15;
pub const fexpr_builtin_symbol_FEXPR_All: fexpr_builtin_symbol = 16;
pub const fexpr_builtin_symbol_FEXPR_AnalyticContinuation: fexpr_builtin_symbol = 17;
pub const fexpr_builtin_symbol_FEXPR_And: fexpr_builtin_symbol = 18;
pub const fexpr_builtin_symbol_FEXPR_AngleBrackets: fexpr_builtin_symbol = 19;
pub const fexpr_builtin_symbol_FEXPR_Approximation: fexpr_builtin_symbol = 20;
pub const fexpr_builtin_symbol_FEXPR_Arg: fexpr_builtin_symbol = 21;
pub const fexpr_builtin_symbol_FEXPR_ArgMax: fexpr_builtin_symbol = 22;
pub const fexpr_builtin_symbol_FEXPR_ArgMaxUnique: fexpr_builtin_symbol = 23;
pub const fexpr_builtin_symbol_FEXPR_ArgMin: fexpr_builtin_symbol = 24;
pub const fexpr_builtin_symbol_FEXPR_ArgMinUnique: fexpr_builtin_symbol = 25;
pub const fexpr_builtin_symbol_FEXPR_Asec: fexpr_builtin_symbol = 26;
pub const fexpr_builtin_symbol_FEXPR_Asech: fexpr_builtin_symbol = 27;
pub const fexpr_builtin_symbol_FEXPR_Asin: fexpr_builtin_symbol = 28;
pub const fexpr_builtin_symbol_FEXPR_Asinh: fexpr_builtin_symbol = 29;
pub const fexpr_builtin_symbol_FEXPR_AsymptoticTo: fexpr_builtin_symbol = 30;
pub const fexpr_builtin_symbol_FEXPR_Atan: fexpr_builtin_symbol = 31;
pub const fexpr_builtin_symbol_FEXPR_Atan2: fexpr_builtin_symbol = 32;
pub const fexpr_builtin_symbol_FEXPR_Atanh: fexpr_builtin_symbol = 33;
pub const fexpr_builtin_symbol_FEXPR_BarnesG: fexpr_builtin_symbol = 34;
pub const fexpr_builtin_symbol_FEXPR_BellNumber: fexpr_builtin_symbol = 35;
pub const fexpr_builtin_symbol_FEXPR_BernoulliB: fexpr_builtin_symbol = 36;
pub const fexpr_builtin_symbol_FEXPR_BernoulliPolynomial: fexpr_builtin_symbol = 37;
pub const fexpr_builtin_symbol_FEXPR_BernsteinEllipse: fexpr_builtin_symbol = 38;
pub const fexpr_builtin_symbol_FEXPR_BesselI: fexpr_builtin_symbol = 39;
pub const fexpr_builtin_symbol_FEXPR_BesselJ: fexpr_builtin_symbol = 40;
pub const fexpr_builtin_symbol_FEXPR_BesselJZero: fexpr_builtin_symbol = 41;
pub const fexpr_builtin_symbol_FEXPR_BesselK: fexpr_builtin_symbol = 42;
pub const fexpr_builtin_symbol_FEXPR_BesselY: fexpr_builtin_symbol = 43;
pub const fexpr_builtin_symbol_FEXPR_BesselYZero: fexpr_builtin_symbol = 44;
pub const fexpr_builtin_symbol_FEXPR_BetaFunction: fexpr_builtin_symbol = 45;
pub const fexpr_builtin_symbol_FEXPR_Binomial: fexpr_builtin_symbol = 46;
pub const fexpr_builtin_symbol_FEXPR_Braces: fexpr_builtin_symbol = 47;
pub const fexpr_builtin_symbol_FEXPR_Brackets: fexpr_builtin_symbol = 48;
pub const fexpr_builtin_symbol_FEXPR_CC: fexpr_builtin_symbol = 49;
pub const fexpr_builtin_symbol_FEXPR_Call: fexpr_builtin_symbol = 50;
pub const fexpr_builtin_symbol_FEXPR_CallIndeterminate: fexpr_builtin_symbol = 51;
pub const fexpr_builtin_symbol_FEXPR_Cardinality: fexpr_builtin_symbol = 52;
pub const fexpr_builtin_symbol_FEXPR_CarlsonHypergeometricR: fexpr_builtin_symbol = 53;
pub const fexpr_builtin_symbol_FEXPR_CarlsonHypergeometricT: fexpr_builtin_symbol = 54;
pub const fexpr_builtin_symbol_FEXPR_CarlsonRC: fexpr_builtin_symbol = 55;
pub const fexpr_builtin_symbol_FEXPR_CarlsonRD: fexpr_builtin_symbol = 56;
pub const fexpr_builtin_symbol_FEXPR_CarlsonRF: fexpr_builtin_symbol = 57;
pub const fexpr_builtin_symbol_FEXPR_CarlsonRG: fexpr_builtin_symbol = 58;
pub const fexpr_builtin_symbol_FEXPR_CarlsonRJ: fexpr_builtin_symbol = 59;
pub const fexpr_builtin_symbol_FEXPR_CartesianPower: fexpr_builtin_symbol = 60;
pub const fexpr_builtin_symbol_FEXPR_CartesianProduct: fexpr_builtin_symbol = 61;
pub const fexpr_builtin_symbol_FEXPR_Case: fexpr_builtin_symbol = 62;
pub const fexpr_builtin_symbol_FEXPR_Cases: fexpr_builtin_symbol = 63;
pub const fexpr_builtin_symbol_FEXPR_CatalanConstant: fexpr_builtin_symbol = 64;
pub const fexpr_builtin_symbol_FEXPR_Ceil: fexpr_builtin_symbol = 65;
pub const fexpr_builtin_symbol_FEXPR_Characteristic: fexpr_builtin_symbol = 66;
pub const fexpr_builtin_symbol_FEXPR_ChebyshevT: fexpr_builtin_symbol = 67;
pub const fexpr_builtin_symbol_FEXPR_ChebyshevU: fexpr_builtin_symbol = 68;
pub const fexpr_builtin_symbol_FEXPR_ClosedComplexDisk: fexpr_builtin_symbol = 69;
pub const fexpr_builtin_symbol_FEXPR_ClosedOpenInterval: fexpr_builtin_symbol = 70;
pub const fexpr_builtin_symbol_FEXPR_Coefficient: fexpr_builtin_symbol = 71;
pub const fexpr_builtin_symbol_FEXPR_Column: fexpr_builtin_symbol = 72;
pub const fexpr_builtin_symbol_FEXPR_ColumnMatrix: fexpr_builtin_symbol = 73;
pub const fexpr_builtin_symbol_FEXPR_CommutativeRings: fexpr_builtin_symbol = 74;
pub const fexpr_builtin_symbol_FEXPR_ComplexBranchDerivative: fexpr_builtin_symbol = 75;
pub const fexpr_builtin_symbol_FEXPR_ComplexDerivative: fexpr_builtin_symbol = 76;
pub const fexpr_builtin_symbol_FEXPR_ComplexInfinities: fexpr_builtin_symbol = 77;
pub const fexpr_builtin_symbol_FEXPR_ComplexLimit: fexpr_builtin_symbol = 78;
pub const fexpr_builtin_symbol_FEXPR_ComplexSignedInfinities: fexpr_builtin_symbol = 79;
pub const fexpr_builtin_symbol_FEXPR_ComplexSingularityClosure: fexpr_builtin_symbol = 80;
pub const fexpr_builtin_symbol_FEXPR_ComplexZeroMultiplicity: fexpr_builtin_symbol = 81;
pub const fexpr_builtin_symbol_FEXPR_Concatenation: fexpr_builtin_symbol = 82;
pub const fexpr_builtin_symbol_FEXPR_CongruentMod: fexpr_builtin_symbol = 83;
pub const fexpr_builtin_symbol_FEXPR_Conjugate: fexpr_builtin_symbol = 84;
pub const fexpr_builtin_symbol_FEXPR_ConreyGenerator: fexpr_builtin_symbol = 85;
pub const fexpr_builtin_symbol_FEXPR_Cos: fexpr_builtin_symbol = 86;
pub const fexpr_builtin_symbol_FEXPR_CosIntegral: fexpr_builtin_symbol = 87;
pub const fexpr_builtin_symbol_FEXPR_Cosh: fexpr_builtin_symbol = 88;
pub const fexpr_builtin_symbol_FEXPR_CoshIntegral: fexpr_builtin_symbol = 89;
pub const fexpr_builtin_symbol_FEXPR_Cot: fexpr_builtin_symbol = 90;
pub const fexpr_builtin_symbol_FEXPR_Coth: fexpr_builtin_symbol = 91;
pub const fexpr_builtin_symbol_FEXPR_CoulombC: fexpr_builtin_symbol = 92;
pub const fexpr_builtin_symbol_FEXPR_CoulombF: fexpr_builtin_symbol = 93;
pub const fexpr_builtin_symbol_FEXPR_CoulombG: fexpr_builtin_symbol = 94;
pub const fexpr_builtin_symbol_FEXPR_CoulombH: fexpr_builtin_symbol = 95;
pub const fexpr_builtin_symbol_FEXPR_CoulombSigma: fexpr_builtin_symbol = 96;
pub const fexpr_builtin_symbol_FEXPR_Csc: fexpr_builtin_symbol = 97;
pub const fexpr_builtin_symbol_FEXPR_Csch: fexpr_builtin_symbol = 98;
pub const fexpr_builtin_symbol_FEXPR_Csgn: fexpr_builtin_symbol = 99;
pub const fexpr_builtin_symbol_FEXPR_CurvePath: fexpr_builtin_symbol = 100;
pub const fexpr_builtin_symbol_FEXPR_Cyclotomic: fexpr_builtin_symbol = 101;
pub const fexpr_builtin_symbol_FEXPR_Decimal: fexpr_builtin_symbol = 102;
pub const fexpr_builtin_symbol_FEXPR_DedekindEta: fexpr_builtin_symbol = 103;
pub const fexpr_builtin_symbol_FEXPR_DedekindEtaEpsilon: fexpr_builtin_symbol = 104;
pub const fexpr_builtin_symbol_FEXPR_DedekindSum: fexpr_builtin_symbol = 105;
pub const fexpr_builtin_symbol_FEXPR_Def: fexpr_builtin_symbol = 106;
pub const fexpr_builtin_symbol_FEXPR_Delta: fexpr_builtin_symbol = 107;
pub const fexpr_builtin_symbol_FEXPR_Delta_: fexpr_builtin_symbol = 108;
pub const fexpr_builtin_symbol_FEXPR_Derivative: fexpr_builtin_symbol = 109;
pub const fexpr_builtin_symbol_FEXPR_Det: fexpr_builtin_symbol = 110;
pub const fexpr_builtin_symbol_FEXPR_DiagonalMatrix: fexpr_builtin_symbol = 111;
pub const fexpr_builtin_symbol_FEXPR_DigammaFunction: fexpr_builtin_symbol = 112;
pub const fexpr_builtin_symbol_FEXPR_DigammaFunctionZero: fexpr_builtin_symbol = 113;
pub const fexpr_builtin_symbol_FEXPR_DirichletCharacter: fexpr_builtin_symbol = 114;
pub const fexpr_builtin_symbol_FEXPR_DirichletGroup: fexpr_builtin_symbol = 115;
pub const fexpr_builtin_symbol_FEXPR_DirichletL: fexpr_builtin_symbol = 116;
pub const fexpr_builtin_symbol_FEXPR_DirichletLZero: fexpr_builtin_symbol = 117;
pub const fexpr_builtin_symbol_FEXPR_DirichletLambda: fexpr_builtin_symbol = 118;
pub const fexpr_builtin_symbol_FEXPR_DiscreteLog: fexpr_builtin_symbol = 119;
pub const fexpr_builtin_symbol_FEXPR_Div: fexpr_builtin_symbol = 120;
pub const fexpr_builtin_symbol_FEXPR_Divides: fexpr_builtin_symbol = 121;
pub const fexpr_builtin_symbol_FEXPR_DivisorProduct: fexpr_builtin_symbol = 122;
pub const fexpr_builtin_symbol_FEXPR_DivisorSigma: fexpr_builtin_symbol = 123;
pub const fexpr_builtin_symbol_FEXPR_DivisorSum: fexpr_builtin_symbol = 124;
pub const fexpr_builtin_symbol_FEXPR_DoubleFactorial: fexpr_builtin_symbol = 125;
pub const fexpr_builtin_symbol_FEXPR_EisensteinE: fexpr_builtin_symbol = 126;
pub const fexpr_builtin_symbol_FEXPR_EisensteinG: fexpr_builtin_symbol = 127;
pub const fexpr_builtin_symbol_FEXPR_Element: fexpr_builtin_symbol = 128;
pub const fexpr_builtin_symbol_FEXPR_Ellipsis: fexpr_builtin_symbol = 129;
pub const fexpr_builtin_symbol_FEXPR_EllipticE: fexpr_builtin_symbol = 130;
pub const fexpr_builtin_symbol_FEXPR_EllipticK: fexpr_builtin_symbol = 131;
pub const fexpr_builtin_symbol_FEXPR_EllipticPi: fexpr_builtin_symbol = 132;
pub const fexpr_builtin_symbol_FEXPR_EllipticRootE: fexpr_builtin_symbol = 133;
pub const fexpr_builtin_symbol_FEXPR_Enclosure: fexpr_builtin_symbol = 134;
pub const fexpr_builtin_symbol_FEXPR_Equal: fexpr_builtin_symbol = 135;
pub const fexpr_builtin_symbol_FEXPR_EqualAndElement: fexpr_builtin_symbol = 136;
pub const fexpr_builtin_symbol_FEXPR_EqualNearestDecimal: fexpr_builtin_symbol = 137;
pub const fexpr_builtin_symbol_FEXPR_EqualQSeriesEllipsis: fexpr_builtin_symbol = 138;
pub const fexpr_builtin_symbol_FEXPR_Equivalent: fexpr_builtin_symbol = 139;
pub const fexpr_builtin_symbol_FEXPR_Erf: fexpr_builtin_symbol = 140;
pub const fexpr_builtin_symbol_FEXPR_Erfc: fexpr_builtin_symbol = 141;
pub const fexpr_builtin_symbol_FEXPR_Erfi: fexpr_builtin_symbol = 142;
pub const fexpr_builtin_symbol_FEXPR_Euler: fexpr_builtin_symbol = 143;
pub const fexpr_builtin_symbol_FEXPR_EulerE: fexpr_builtin_symbol = 144;
pub const fexpr_builtin_symbol_FEXPR_EulerPhi: fexpr_builtin_symbol = 145;
pub const fexpr_builtin_symbol_FEXPR_EulerPolynomial: fexpr_builtin_symbol = 146;
pub const fexpr_builtin_symbol_FEXPR_EulerQSeries: fexpr_builtin_symbol = 147;
pub const fexpr_builtin_symbol_FEXPR_Exists: fexpr_builtin_symbol = 148;
pub const fexpr_builtin_symbol_FEXPR_Exp: fexpr_builtin_symbol = 149;
pub const fexpr_builtin_symbol_FEXPR_ExpIntegralE: fexpr_builtin_symbol = 150;
pub const fexpr_builtin_symbol_FEXPR_ExpIntegralEi: fexpr_builtin_symbol = 151;
pub const fexpr_builtin_symbol_FEXPR_ExtendedRealNumbers: fexpr_builtin_symbol = 152;
pub const fexpr_builtin_symbol_FEXPR_Factorial: fexpr_builtin_symbol = 153;
pub const fexpr_builtin_symbol_FEXPR_FallingFactorial: fexpr_builtin_symbol = 154;
pub const fexpr_builtin_symbol_FEXPR_False: fexpr_builtin_symbol = 155;
pub const fexpr_builtin_symbol_FEXPR_Fibonacci: fexpr_builtin_symbol = 156;
pub const fexpr_builtin_symbol_FEXPR_Fields: fexpr_builtin_symbol = 157;
pub const fexpr_builtin_symbol_FEXPR_FiniteField: fexpr_builtin_symbol = 158;
pub const fexpr_builtin_symbol_FEXPR_Floor: fexpr_builtin_symbol = 159;
pub const fexpr_builtin_symbol_FEXPR_For: fexpr_builtin_symbol = 160;
pub const fexpr_builtin_symbol_FEXPR_FormalLaurentSeries: fexpr_builtin_symbol = 161;
pub const fexpr_builtin_symbol_FEXPR_FormalPowerSeries: fexpr_builtin_symbol = 162;
pub const fexpr_builtin_symbol_FEXPR_FormalPuiseuxSeries: fexpr_builtin_symbol = 163;
pub const fexpr_builtin_symbol_FEXPR_FresnelC: fexpr_builtin_symbol = 164;
pub const fexpr_builtin_symbol_FEXPR_FresnelS: fexpr_builtin_symbol = 165;
pub const fexpr_builtin_symbol_FEXPR_Fun: fexpr_builtin_symbol = 166;
pub const fexpr_builtin_symbol_FEXPR_GCD: fexpr_builtin_symbol = 167;
pub const fexpr_builtin_symbol_FEXPR_Gamma: fexpr_builtin_symbol = 168;
pub const fexpr_builtin_symbol_FEXPR_GaussLegendreWeight: fexpr_builtin_symbol = 169;
pub const fexpr_builtin_symbol_FEXPR_GaussSum: fexpr_builtin_symbol = 170;
pub const fexpr_builtin_symbol_FEXPR_GegenbauerC: fexpr_builtin_symbol = 171;
pub const fexpr_builtin_symbol_FEXPR_GeneralLinearGroup: fexpr_builtin_symbol = 172;
pub const fexpr_builtin_symbol_FEXPR_GeneralizedBernoulliB: fexpr_builtin_symbol = 173;
pub const fexpr_builtin_symbol_FEXPR_GeneralizedRiemannHypothesis: fexpr_builtin_symbol = 174;
pub const fexpr_builtin_symbol_FEXPR_GlaisherConstant: fexpr_builtin_symbol = 175;
pub const fexpr_builtin_symbol_FEXPR_GoldenRatio: fexpr_builtin_symbol = 176;
pub const fexpr_builtin_symbol_FEXPR_Greater: fexpr_builtin_symbol = 177;
pub const fexpr_builtin_symbol_FEXPR_GreaterEqual: fexpr_builtin_symbol = 178;
pub const fexpr_builtin_symbol_FEXPR_GreekGamma: fexpr_builtin_symbol = 179;
pub const fexpr_builtin_symbol_FEXPR_GreekGamma_: fexpr_builtin_symbol = 180;
pub const fexpr_builtin_symbol_FEXPR_GreekPi: fexpr_builtin_symbol = 181;
pub const fexpr_builtin_symbol_FEXPR_GreekPi_: fexpr_builtin_symbol = 182;
pub const fexpr_builtin_symbol_FEXPR_Guess: fexpr_builtin_symbol = 183;
pub const fexpr_builtin_symbol_FEXPR_HankelH1: fexpr_builtin_symbol = 184;
pub const fexpr_builtin_symbol_FEXPR_HankelH2: fexpr_builtin_symbol = 185;
pub const fexpr_builtin_symbol_FEXPR_HarmonicNumber: fexpr_builtin_symbol = 186;
pub const fexpr_builtin_symbol_FEXPR_HermiteH: fexpr_builtin_symbol = 187;
pub const fexpr_builtin_symbol_FEXPR_HilbertClassPolynomial: fexpr_builtin_symbol = 188;
pub const fexpr_builtin_symbol_FEXPR_HilbertMatrix: fexpr_builtin_symbol = 189;
pub const fexpr_builtin_symbol_FEXPR_HurwitzZeta: fexpr_builtin_symbol = 190;
pub const fexpr_builtin_symbol_FEXPR_Hypergeometric0F1: fexpr_builtin_symbol = 191;
pub const fexpr_builtin_symbol_FEXPR_Hypergeometric0F1Regularized: fexpr_builtin_symbol = 192;
pub const fexpr_builtin_symbol_FEXPR_Hypergeometric1F1: fexpr_builtin_symbol = 193;
pub const fexpr_builtin_symbol_FEXPR_Hypergeometric1F1Regularized: fexpr_builtin_symbol = 194;
pub const fexpr_builtin_symbol_FEXPR_Hypergeometric1F2: fexpr_builtin_symbol = 195;
pub const fexpr_builtin_symbol_FEXPR_Hypergeometric1F2Regularized: fexpr_builtin_symbol = 196;
pub const fexpr_builtin_symbol_FEXPR_Hypergeometric2F0: fexpr_builtin_symbol = 197;
pub const fexpr_builtin_symbol_FEXPR_Hypergeometric2F1: fexpr_builtin_symbol = 198;
pub const fexpr_builtin_symbol_FEXPR_Hypergeometric2F1Regularized: fexpr_builtin_symbol = 199;
pub const fexpr_builtin_symbol_FEXPR_Hypergeometric2F2: fexpr_builtin_symbol = 200;
pub const fexpr_builtin_symbol_FEXPR_Hypergeometric2F2Regularized: fexpr_builtin_symbol = 201;
pub const fexpr_builtin_symbol_FEXPR_Hypergeometric3F2: fexpr_builtin_symbol = 202;
pub const fexpr_builtin_symbol_FEXPR_Hypergeometric3F2Regularized: fexpr_builtin_symbol = 203;
pub const fexpr_builtin_symbol_FEXPR_HypergeometricU: fexpr_builtin_symbol = 204;
pub const fexpr_builtin_symbol_FEXPR_HypergeometricUStar: fexpr_builtin_symbol = 205;
pub const fexpr_builtin_symbol_FEXPR_HypergeometricUStarRemainder: fexpr_builtin_symbol = 206;
pub const fexpr_builtin_symbol_FEXPR_IdentityMatrix: fexpr_builtin_symbol = 207;
pub const fexpr_builtin_symbol_FEXPR_Im: fexpr_builtin_symbol = 208;
pub const fexpr_builtin_symbol_FEXPR_Implies: fexpr_builtin_symbol = 209;
pub const fexpr_builtin_symbol_FEXPR_IncompleteBeta: fexpr_builtin_symbol = 210;
pub const fexpr_builtin_symbol_FEXPR_IncompleteBetaRegularized: fexpr_builtin_symbol = 211;
pub const fexpr_builtin_symbol_FEXPR_IncompleteEllipticE: fexpr_builtin_symbol = 212;
pub const fexpr_builtin_symbol_FEXPR_IncompleteEllipticF: fexpr_builtin_symbol = 213;
pub const fexpr_builtin_symbol_FEXPR_IncompleteEllipticPi: fexpr_builtin_symbol = 214;
pub const fexpr_builtin_symbol_FEXPR_IndefiniteIntegralEqual: fexpr_builtin_symbol = 215;
pub const fexpr_builtin_symbol_FEXPR_Infimum: fexpr_builtin_symbol = 216;
pub const fexpr_builtin_symbol_FEXPR_Infinity: fexpr_builtin_symbol = 217;
pub const fexpr_builtin_symbol_FEXPR_IntegersGreaterEqual: fexpr_builtin_symbol = 218;
pub const fexpr_builtin_symbol_FEXPR_IntegersLessEqual: fexpr_builtin_symbol = 219;
pub const fexpr_builtin_symbol_FEXPR_Integral: fexpr_builtin_symbol = 220;
pub const fexpr_builtin_symbol_FEXPR_Intersection: fexpr_builtin_symbol = 221;
pub const fexpr_builtin_symbol_FEXPR_Interval: fexpr_builtin_symbol = 222;
pub const fexpr_builtin_symbol_FEXPR_IsEven: fexpr_builtin_symbol = 223;
pub const fexpr_builtin_symbol_FEXPR_IsHolomorphicOn: fexpr_builtin_symbol = 224;
pub const fexpr_builtin_symbol_FEXPR_IsMeromorphicOn: fexpr_builtin_symbol = 225;
pub const fexpr_builtin_symbol_FEXPR_IsOdd: fexpr_builtin_symbol = 226;
pub const fexpr_builtin_symbol_FEXPR_IsPrime: fexpr_builtin_symbol = 227;
pub const fexpr_builtin_symbol_FEXPR_Item: fexpr_builtin_symbol = 228;
pub const fexpr_builtin_symbol_FEXPR_JacobiP: fexpr_builtin_symbol = 229;
pub const fexpr_builtin_symbol_FEXPR_JacobiSymbol: fexpr_builtin_symbol = 230;
pub const fexpr_builtin_symbol_FEXPR_JacobiTheta: fexpr_builtin_symbol = 231;
pub const fexpr_builtin_symbol_FEXPR_JacobiThetaEpsilon: fexpr_builtin_symbol = 232;
pub const fexpr_builtin_symbol_FEXPR_JacobiThetaPermutation: fexpr_builtin_symbol = 233;
pub const fexpr_builtin_symbol_FEXPR_JacobiThetaQ: fexpr_builtin_symbol = 234;
pub const fexpr_builtin_symbol_FEXPR_KeiperLiLambda: fexpr_builtin_symbol = 235;
pub const fexpr_builtin_symbol_FEXPR_KhinchinConstant: fexpr_builtin_symbol = 236;
pub const fexpr_builtin_symbol_FEXPR_KroneckerDelta: fexpr_builtin_symbol = 237;
pub const fexpr_builtin_symbol_FEXPR_KroneckerSymbol: fexpr_builtin_symbol = 238;
pub const fexpr_builtin_symbol_FEXPR_LCM: fexpr_builtin_symbol = 239;
pub const fexpr_builtin_symbol_FEXPR_LaguerreL: fexpr_builtin_symbol = 240;
pub const fexpr_builtin_symbol_FEXPR_LambertW: fexpr_builtin_symbol = 241;
pub const fexpr_builtin_symbol_FEXPR_Lamda: fexpr_builtin_symbol = 242;
pub const fexpr_builtin_symbol_FEXPR_Lamda_: fexpr_builtin_symbol = 243;
pub const fexpr_builtin_symbol_FEXPR_LandauG: fexpr_builtin_symbol = 244;
pub const fexpr_builtin_symbol_FEXPR_Lattice: fexpr_builtin_symbol = 245;
pub const fexpr_builtin_symbol_FEXPR_LeftLimit: fexpr_builtin_symbol = 246;
pub const fexpr_builtin_symbol_FEXPR_LegendreP: fexpr_builtin_symbol = 247;
pub const fexpr_builtin_symbol_FEXPR_LegendrePolynomialZero: fexpr_builtin_symbol = 248;
pub const fexpr_builtin_symbol_FEXPR_LegendreSymbol: fexpr_builtin_symbol = 249;
pub const fexpr_builtin_symbol_FEXPR_Length: fexpr_builtin_symbol = 250;
pub const fexpr_builtin_symbol_FEXPR_LerchPhi: fexpr_builtin_symbol = 251;
pub const fexpr_builtin_symbol_FEXPR_Less: fexpr_builtin_symbol = 252;
pub const fexpr_builtin_symbol_FEXPR_LessEqual: fexpr_builtin_symbol = 253;
pub const fexpr_builtin_symbol_FEXPR_Limit: fexpr_builtin_symbol = 254;
pub const fexpr_builtin_symbol_FEXPR_LiouvilleLambda: fexpr_builtin_symbol = 255;
pub const fexpr_builtin_symbol_FEXPR_List: fexpr_builtin_symbol = 256;
pub const fexpr_builtin_symbol_FEXPR_Log: fexpr_builtin_symbol = 257;
pub const fexpr_builtin_symbol_FEXPR_LogBarnesG: fexpr_builtin_symbol = 258;
pub const fexpr_builtin_symbol_FEXPR_LogBarnesGRemainder: fexpr_builtin_symbol = 259;
pub const fexpr_builtin_symbol_FEXPR_LogGamma: fexpr_builtin_symbol = 260;
pub const fexpr_builtin_symbol_FEXPR_LogIntegral: fexpr_builtin_symbol = 261;
pub const fexpr_builtin_symbol_FEXPR_Logic: fexpr_builtin_symbol = 262;
pub const fexpr_builtin_symbol_FEXPR_LowerGamma: fexpr_builtin_symbol = 263;
pub const fexpr_builtin_symbol_FEXPR_Matrices: fexpr_builtin_symbol = 264;
pub const fexpr_builtin_symbol_FEXPR_Matrix: fexpr_builtin_symbol = 265;
pub const fexpr_builtin_symbol_FEXPR_Matrix2x2: fexpr_builtin_symbol = 266;
pub const fexpr_builtin_symbol_FEXPR_Max: fexpr_builtin_symbol = 267;
pub const fexpr_builtin_symbol_FEXPR_Maximum: fexpr_builtin_symbol = 268;
pub const fexpr_builtin_symbol_FEXPR_MeromorphicDerivative: fexpr_builtin_symbol = 269;
pub const fexpr_builtin_symbol_FEXPR_MeromorphicLimit: fexpr_builtin_symbol = 270;
pub const fexpr_builtin_symbol_FEXPR_Min: fexpr_builtin_symbol = 271;
pub const fexpr_builtin_symbol_FEXPR_Minimum: fexpr_builtin_symbol = 272;
pub const fexpr_builtin_symbol_FEXPR_Mod: fexpr_builtin_symbol = 273;
pub const fexpr_builtin_symbol_FEXPR_ModularGroupAction: fexpr_builtin_symbol = 274;
pub const fexpr_builtin_symbol_FEXPR_ModularGroupFundamentalDomain: fexpr_builtin_symbol = 275;
pub const fexpr_builtin_symbol_FEXPR_ModularJ: fexpr_builtin_symbol = 276;
pub const fexpr_builtin_symbol_FEXPR_ModularLambda: fexpr_builtin_symbol = 277;
pub const fexpr_builtin_symbol_FEXPR_ModularLambdaFundamentalDomain: fexpr_builtin_symbol = 278;
pub const fexpr_builtin_symbol_FEXPR_MoebiusMu: fexpr_builtin_symbol = 279;
pub const fexpr_builtin_symbol_FEXPR_Mul: fexpr_builtin_symbol = 280;
pub const fexpr_builtin_symbol_FEXPR_MultiZetaValue: fexpr_builtin_symbol = 281;
pub const fexpr_builtin_symbol_FEXPR_NN: fexpr_builtin_symbol = 282;
pub const fexpr_builtin_symbol_FEXPR_Neg: fexpr_builtin_symbol = 283;
pub const fexpr_builtin_symbol_FEXPR_Not: fexpr_builtin_symbol = 284;
pub const fexpr_builtin_symbol_FEXPR_NotElement: fexpr_builtin_symbol = 285;
pub const fexpr_builtin_symbol_FEXPR_NotEqual: fexpr_builtin_symbol = 286;
pub const fexpr_builtin_symbol_FEXPR_NumberE: fexpr_builtin_symbol = 287;
pub const fexpr_builtin_symbol_FEXPR_NumberI: fexpr_builtin_symbol = 288;
pub const fexpr_builtin_symbol_FEXPR_Omega: fexpr_builtin_symbol = 289;
pub const fexpr_builtin_symbol_FEXPR_Omega_: fexpr_builtin_symbol = 290;
pub const fexpr_builtin_symbol_FEXPR_One: fexpr_builtin_symbol = 291;
pub const fexpr_builtin_symbol_FEXPR_OpenClosedInterval: fexpr_builtin_symbol = 292;
pub const fexpr_builtin_symbol_FEXPR_OpenComplexDisk: fexpr_builtin_symbol = 293;
pub const fexpr_builtin_symbol_FEXPR_OpenInterval: fexpr_builtin_symbol = 294;
pub const fexpr_builtin_symbol_FEXPR_OpenRealBall: fexpr_builtin_symbol = 295;
pub const fexpr_builtin_symbol_FEXPR_Or: fexpr_builtin_symbol = 296;
pub const fexpr_builtin_symbol_FEXPR_Otherwise: fexpr_builtin_symbol = 297;
pub const fexpr_builtin_symbol_FEXPR_PSL2Z: fexpr_builtin_symbol = 298;
pub const fexpr_builtin_symbol_FEXPR_Parentheses: fexpr_builtin_symbol = 299;
pub const fexpr_builtin_symbol_FEXPR_PartitionsP: fexpr_builtin_symbol = 300;
pub const fexpr_builtin_symbol_FEXPR_Path: fexpr_builtin_symbol = 301;
pub const fexpr_builtin_symbol_FEXPR_Phi: fexpr_builtin_symbol = 302;
pub const fexpr_builtin_symbol_FEXPR_Phi_: fexpr_builtin_symbol = 303;
pub const fexpr_builtin_symbol_FEXPR_Pi: fexpr_builtin_symbol = 304;
pub const fexpr_builtin_symbol_FEXPR_Pol: fexpr_builtin_symbol = 305;
pub const fexpr_builtin_symbol_FEXPR_Poles: fexpr_builtin_symbol = 306;
pub const fexpr_builtin_symbol_FEXPR_PolyLog: fexpr_builtin_symbol = 307;
pub const fexpr_builtin_symbol_FEXPR_Polynomial: fexpr_builtin_symbol = 308;
pub const fexpr_builtin_symbol_FEXPR_PolynomialDegree: fexpr_builtin_symbol = 309;
pub const fexpr_builtin_symbol_FEXPR_PolynomialFractions: fexpr_builtin_symbol = 310;
pub const fexpr_builtin_symbol_FEXPR_PolynomialRootIndexed: fexpr_builtin_symbol = 311;
pub const fexpr_builtin_symbol_FEXPR_PolynomialRootNearest: fexpr_builtin_symbol = 312;
pub const fexpr_builtin_symbol_FEXPR_Polynomials: fexpr_builtin_symbol = 313;
pub const fexpr_builtin_symbol_FEXPR_Pos: fexpr_builtin_symbol = 314;
pub const fexpr_builtin_symbol_FEXPR_Pow: fexpr_builtin_symbol = 315;
pub const fexpr_builtin_symbol_FEXPR_Prime: fexpr_builtin_symbol = 316;
pub const fexpr_builtin_symbol_FEXPR_PrimePi: fexpr_builtin_symbol = 317;
pub const fexpr_builtin_symbol_FEXPR_PrimeProduct: fexpr_builtin_symbol = 318;
pub const fexpr_builtin_symbol_FEXPR_PrimeSum: fexpr_builtin_symbol = 319;
pub const fexpr_builtin_symbol_FEXPR_Primes: fexpr_builtin_symbol = 320;
pub const fexpr_builtin_symbol_FEXPR_PrimitiveDirichletCharacters: fexpr_builtin_symbol = 321;
pub const fexpr_builtin_symbol_FEXPR_PrimitiveReducedPositiveIntegralBinaryQuadraticForms: fexpr_builtin_symbol = 322;
pub const fexpr_builtin_symbol_FEXPR_Product: fexpr_builtin_symbol = 323;
pub const fexpr_builtin_symbol_FEXPR_ProjectiveComplexNumbers: fexpr_builtin_symbol = 324;
pub const fexpr_builtin_symbol_FEXPR_ProjectiveRealNumbers: fexpr_builtin_symbol = 325;
pub const fexpr_builtin_symbol_FEXPR_Psi: fexpr_builtin_symbol = 326;
pub const fexpr_builtin_symbol_FEXPR_Psi_: fexpr_builtin_symbol = 327;
pub const fexpr_builtin_symbol_FEXPR_QQ: fexpr_builtin_symbol = 328;
pub const fexpr_builtin_symbol_FEXPR_QSeriesCoefficient: fexpr_builtin_symbol = 329;
pub const fexpr_builtin_symbol_FEXPR_QuotientRing: fexpr_builtin_symbol = 330;
pub const fexpr_builtin_symbol_FEXPR_RR: fexpr_builtin_symbol = 331;
pub const fexpr_builtin_symbol_FEXPR_Range: fexpr_builtin_symbol = 332;
pub const fexpr_builtin_symbol_FEXPR_Re: fexpr_builtin_symbol = 333;
pub const fexpr_builtin_symbol_FEXPR_RealAbs: fexpr_builtin_symbol = 334;
pub const fexpr_builtin_symbol_FEXPR_RealAlgebraicNumbers: fexpr_builtin_symbol = 335;
pub const fexpr_builtin_symbol_FEXPR_RealBall: fexpr_builtin_symbol = 336;
pub const fexpr_builtin_symbol_FEXPR_RealDerivative: fexpr_builtin_symbol = 337;
pub const fexpr_builtin_symbol_FEXPR_RealInfinities: fexpr_builtin_symbol = 338;
pub const fexpr_builtin_symbol_FEXPR_RealLimit: fexpr_builtin_symbol = 339;
pub const fexpr_builtin_symbol_FEXPR_RealSignedInfinities: fexpr_builtin_symbol = 340;
pub const fexpr_builtin_symbol_FEXPR_RealSingularityClosure: fexpr_builtin_symbol = 341;
pub const fexpr_builtin_symbol_FEXPR_Repeat: fexpr_builtin_symbol = 342;
pub const fexpr_builtin_symbol_FEXPR_Residue: fexpr_builtin_symbol = 343;
pub const fexpr_builtin_symbol_FEXPR_RiemannHypothesis: fexpr_builtin_symbol = 344;
pub const fexpr_builtin_symbol_FEXPR_RiemannXi: fexpr_builtin_symbol = 345;
pub const fexpr_builtin_symbol_FEXPR_RiemannZeta: fexpr_builtin_symbol = 346;
pub const fexpr_builtin_symbol_FEXPR_RiemannZetaZero: fexpr_builtin_symbol = 347;
pub const fexpr_builtin_symbol_FEXPR_RightLimit: fexpr_builtin_symbol = 348;
pub const fexpr_builtin_symbol_FEXPR_Rings: fexpr_builtin_symbol = 349;
pub const fexpr_builtin_symbol_FEXPR_RisingFactorial: fexpr_builtin_symbol = 350;
pub const fexpr_builtin_symbol_FEXPR_Root: fexpr_builtin_symbol = 351;
pub const fexpr_builtin_symbol_FEXPR_RootOfUnity: fexpr_builtin_symbol = 352;
pub const fexpr_builtin_symbol_FEXPR_Row: fexpr_builtin_symbol = 353;
pub const fexpr_builtin_symbol_FEXPR_RowMatrix: fexpr_builtin_symbol = 354;
pub const fexpr_builtin_symbol_FEXPR_SL2Z: fexpr_builtin_symbol = 355;
pub const fexpr_builtin_symbol_FEXPR_Same: fexpr_builtin_symbol = 356;
pub const fexpr_builtin_symbol_FEXPR_Sec: fexpr_builtin_symbol = 357;
pub const fexpr_builtin_symbol_FEXPR_Sech: fexpr_builtin_symbol = 358;
pub const fexpr_builtin_symbol_FEXPR_SequenceLimit: fexpr_builtin_symbol = 359;
pub const fexpr_builtin_symbol_FEXPR_SequenceLimitInferior: fexpr_builtin_symbol = 360;
pub const fexpr_builtin_symbol_FEXPR_SequenceLimitSuperior: fexpr_builtin_symbol = 361;
pub const fexpr_builtin_symbol_FEXPR_Ser: fexpr_builtin_symbol = 362;
pub const fexpr_builtin_symbol_FEXPR_Set: fexpr_builtin_symbol = 363;
pub const fexpr_builtin_symbol_FEXPR_SetMinus: fexpr_builtin_symbol = 364;
pub const fexpr_builtin_symbol_FEXPR_Sets: fexpr_builtin_symbol = 365;
pub const fexpr_builtin_symbol_FEXPR_ShowExpandedNormalForm: fexpr_builtin_symbol = 366;
pub const fexpr_builtin_symbol_FEXPR_Sigma: fexpr_builtin_symbol = 367;
pub const fexpr_builtin_symbol_FEXPR_Sigma_: fexpr_builtin_symbol = 368;
pub const fexpr_builtin_symbol_FEXPR_Sign: fexpr_builtin_symbol = 369;
pub const fexpr_builtin_symbol_FEXPR_SignExtendedComplexNumbers: fexpr_builtin_symbol = 370;
pub const fexpr_builtin_symbol_FEXPR_Sin: fexpr_builtin_symbol = 371;
pub const fexpr_builtin_symbol_FEXPR_SinIntegral: fexpr_builtin_symbol = 372;
pub const fexpr_builtin_symbol_FEXPR_Sinc: fexpr_builtin_symbol = 373;
pub const fexpr_builtin_symbol_FEXPR_SingularValues: fexpr_builtin_symbol = 374;
pub const fexpr_builtin_symbol_FEXPR_Sinh: fexpr_builtin_symbol = 375;
pub const fexpr_builtin_symbol_FEXPR_SinhIntegral: fexpr_builtin_symbol = 376;
pub const fexpr_builtin_symbol_FEXPR_SloaneA: fexpr_builtin_symbol = 377;
pub const fexpr_builtin_symbol_FEXPR_Solutions: fexpr_builtin_symbol = 378;
pub const fexpr_builtin_symbol_FEXPR_SpecialLinearGroup: fexpr_builtin_symbol = 379;
pub const fexpr_builtin_symbol_FEXPR_Spectrum: fexpr_builtin_symbol = 380;
pub const fexpr_builtin_symbol_FEXPR_SphericalHarmonicY: fexpr_builtin_symbol = 381;
pub const fexpr_builtin_symbol_FEXPR_Sqrt: fexpr_builtin_symbol = 382;
pub const fexpr_builtin_symbol_FEXPR_SquaresR: fexpr_builtin_symbol = 383;
pub const fexpr_builtin_symbol_FEXPR_Step: fexpr_builtin_symbol = 384;
pub const fexpr_builtin_symbol_FEXPR_StieltjesGamma: fexpr_builtin_symbol = 385;
pub const fexpr_builtin_symbol_FEXPR_StirlingCycle: fexpr_builtin_symbol = 386;
pub const fexpr_builtin_symbol_FEXPR_StirlingS1: fexpr_builtin_symbol = 387;
pub const fexpr_builtin_symbol_FEXPR_StirlingS2: fexpr_builtin_symbol = 388;
pub const fexpr_builtin_symbol_FEXPR_StirlingSeriesRemainder: fexpr_builtin_symbol = 389;
pub const fexpr_builtin_symbol_FEXPR_Sub: fexpr_builtin_symbol = 390;
pub const fexpr_builtin_symbol_FEXPR_Subscript: fexpr_builtin_symbol = 391;
pub const fexpr_builtin_symbol_FEXPR_Subset: fexpr_builtin_symbol = 392;
pub const fexpr_builtin_symbol_FEXPR_SubsetEqual: fexpr_builtin_symbol = 393;
pub const fexpr_builtin_symbol_FEXPR_Subsets: fexpr_builtin_symbol = 394;
pub const fexpr_builtin_symbol_FEXPR_Sum: fexpr_builtin_symbol = 395;
pub const fexpr_builtin_symbol_FEXPR_Supremum: fexpr_builtin_symbol = 396;
pub const fexpr_builtin_symbol_FEXPR_SymmetricPolynomial: fexpr_builtin_symbol = 397;
pub const fexpr_builtin_symbol_FEXPR_Tan: fexpr_builtin_symbol = 398;
pub const fexpr_builtin_symbol_FEXPR_Tanh: fexpr_builtin_symbol = 399;
pub const fexpr_builtin_symbol_FEXPR_Theta: fexpr_builtin_symbol = 400;
pub const fexpr_builtin_symbol_FEXPR_Theta_: fexpr_builtin_symbol = 401;
pub const fexpr_builtin_symbol_FEXPR_True: fexpr_builtin_symbol = 402;
pub const fexpr_builtin_symbol_FEXPR_Tuple: fexpr_builtin_symbol = 403;
pub const fexpr_builtin_symbol_FEXPR_Tuples: fexpr_builtin_symbol = 404;
pub const fexpr_builtin_symbol_FEXPR_Undefined: fexpr_builtin_symbol = 405;
pub const fexpr_builtin_symbol_FEXPR_Union: fexpr_builtin_symbol = 406;
pub const fexpr_builtin_symbol_FEXPR_UniqueSolution: fexpr_builtin_symbol = 407;
pub const fexpr_builtin_symbol_FEXPR_UniqueZero: fexpr_builtin_symbol = 408;
pub const fexpr_builtin_symbol_FEXPR_UnitCircle: fexpr_builtin_symbol = 409;
pub const fexpr_builtin_symbol_FEXPR_Unknown: fexpr_builtin_symbol = 410;
pub const fexpr_builtin_symbol_FEXPR_UnsignedInfinity: fexpr_builtin_symbol = 411;
pub const fexpr_builtin_symbol_FEXPR_UpperGamma: fexpr_builtin_symbol = 412;
pub const fexpr_builtin_symbol_FEXPR_UpperHalfPlane: fexpr_builtin_symbol = 413;
pub const fexpr_builtin_symbol_FEXPR_WeierstrassP: fexpr_builtin_symbol = 414;
pub const fexpr_builtin_symbol_FEXPR_WeierstrassSigma: fexpr_builtin_symbol = 415;
pub const fexpr_builtin_symbol_FEXPR_WeierstrassZeta: fexpr_builtin_symbol = 416;
pub const fexpr_builtin_symbol_FEXPR_Where: fexpr_builtin_symbol = 417;
pub const fexpr_builtin_symbol_FEXPR_XGCD: fexpr_builtin_symbol = 418;
pub const fexpr_builtin_symbol_FEXPR_XX: fexpr_builtin_symbol = 419;
pub const fexpr_builtin_symbol_FEXPR_Xi: fexpr_builtin_symbol = 420;
pub const fexpr_builtin_symbol_FEXPR_Xi_: fexpr_builtin_symbol = 421;
pub const fexpr_builtin_symbol_FEXPR_ZZ: fexpr_builtin_symbol = 422;
pub const fexpr_builtin_symbol_FEXPR_Zero: fexpr_builtin_symbol = 423;
pub const fexpr_builtin_symbol_FEXPR_ZeroMatrix: fexpr_builtin_symbol = 424;
pub const fexpr_builtin_symbol_FEXPR_Zeros: fexpr_builtin_symbol = 425;
pub const fexpr_builtin_symbol_FEXPR_alpha: fexpr_builtin_symbol = 426;
pub const fexpr_builtin_symbol_FEXPR_alpha_: fexpr_builtin_symbol = 427;
pub const fexpr_builtin_symbol_FEXPR_beta: fexpr_builtin_symbol = 428;
pub const fexpr_builtin_symbol_FEXPR_beta_: fexpr_builtin_symbol = 429;
pub const fexpr_builtin_symbol_FEXPR_chi: fexpr_builtin_symbol = 430;
pub const fexpr_builtin_symbol_FEXPR_chi_: fexpr_builtin_symbol = 431;
pub const fexpr_builtin_symbol_FEXPR_delta: fexpr_builtin_symbol = 432;
pub const fexpr_builtin_symbol_FEXPR_delta_: fexpr_builtin_symbol = 433;
pub const fexpr_builtin_symbol_FEXPR_ell: fexpr_builtin_symbol = 434;
pub const fexpr_builtin_symbol_FEXPR_ell_: fexpr_builtin_symbol = 435;
pub const fexpr_builtin_symbol_FEXPR_epsilon: fexpr_builtin_symbol = 436;
pub const fexpr_builtin_symbol_FEXPR_epsilon_: fexpr_builtin_symbol = 437;
pub const fexpr_builtin_symbol_FEXPR_eta: fexpr_builtin_symbol = 438;
pub const fexpr_builtin_symbol_FEXPR_eta_: fexpr_builtin_symbol = 439;
pub const fexpr_builtin_symbol_FEXPR_gamma: fexpr_builtin_symbol = 440;
pub const fexpr_builtin_symbol_FEXPR_gamma_: fexpr_builtin_symbol = 441;
pub const fexpr_builtin_symbol_FEXPR_iota: fexpr_builtin_symbol = 442;
pub const fexpr_builtin_symbol_FEXPR_iota_: fexpr_builtin_symbol = 443;
pub const fexpr_builtin_symbol_FEXPR_kappa: fexpr_builtin_symbol = 444;
pub const fexpr_builtin_symbol_FEXPR_kappa_: fexpr_builtin_symbol = 445;
pub const fexpr_builtin_symbol_FEXPR_lamda: fexpr_builtin_symbol = 446;
pub const fexpr_builtin_symbol_FEXPR_lamda_: fexpr_builtin_symbol = 447;
pub const fexpr_builtin_symbol_FEXPR_mu: fexpr_builtin_symbol = 448;
pub const fexpr_builtin_symbol_FEXPR_mu_: fexpr_builtin_symbol = 449;
pub const fexpr_builtin_symbol_FEXPR_nu: fexpr_builtin_symbol = 450;
pub const fexpr_builtin_symbol_FEXPR_nu_: fexpr_builtin_symbol = 451;
pub const fexpr_builtin_symbol_FEXPR_omega: fexpr_builtin_symbol = 452;
pub const fexpr_builtin_symbol_FEXPR_omega_: fexpr_builtin_symbol = 453;
pub const fexpr_builtin_symbol_FEXPR_phi: fexpr_builtin_symbol = 454;
pub const fexpr_builtin_symbol_FEXPR_phi_: fexpr_builtin_symbol = 455;
pub const fexpr_builtin_symbol_FEXPR_pi: fexpr_builtin_symbol = 456;
pub const fexpr_builtin_symbol_FEXPR_pi_: fexpr_builtin_symbol = 457;
pub const fexpr_builtin_symbol_FEXPR_rho: fexpr_builtin_symbol = 458;
pub const fexpr_builtin_symbol_FEXPR_rho_: fexpr_builtin_symbol = 459;
pub const fexpr_builtin_symbol_FEXPR_sigma: fexpr_builtin_symbol = 460;
pub const fexpr_builtin_symbol_FEXPR_sigma_: fexpr_builtin_symbol = 461;
pub const fexpr_builtin_symbol_FEXPR_tau: fexpr_builtin_symbol = 462;
pub const fexpr_builtin_symbol_FEXPR_tau_: fexpr_builtin_symbol = 463;
pub const fexpr_builtin_symbol_FEXPR_theta: fexpr_builtin_symbol = 464;
pub const fexpr_builtin_symbol_FEXPR_theta_: fexpr_builtin_symbol = 465;
pub const fexpr_builtin_symbol_FEXPR_varphi: fexpr_builtin_symbol = 466;
pub const fexpr_builtin_symbol_FEXPR_varphi_: fexpr_builtin_symbol = 467;
pub const fexpr_builtin_symbol_FEXPR_vartheta: fexpr_builtin_symbol = 468;
pub const fexpr_builtin_symbol_FEXPR_vartheta_: fexpr_builtin_symbol = 469;
pub const fexpr_builtin_symbol_FEXPR_xi: fexpr_builtin_symbol = 470;
pub const fexpr_builtin_symbol_FEXPR_xi_: fexpr_builtin_symbol = 471;
pub const fexpr_builtin_symbol_FEXPR_zeta: fexpr_builtin_symbol = 472;
pub const fexpr_builtin_symbol_FEXPR_zeta_: fexpr_builtin_symbol = 473;
pub const fexpr_builtin_symbol_FEXPR_BUILTIN_LENGTH: fexpr_builtin_symbol = 474;
pub type fexpr_builtin_symbol = ::std::os::raw::c_uint;
pub type _fexpr_latex_writer = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut gr_stream_struct,
arg2: *const fexpr_struct,
arg3: ulong,
),
>;
#[repr(C)]
pub struct fexpr_symbol_info {
pub symbol: fexpr_builtin_symbol,
pub string: *const ::std::os::raw::c_char,
pub latex_string: *const ::std::os::raw::c_char,
pub latex_writer: _fexpr_latex_writer,
}
impl Default for fexpr_symbol_info {
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()
}
}
}
unsafe extern "C" {
pub fn fexpr_builtin_lookup(s: *const ::std::os::raw::c_char) -> slong;
pub fn fexpr_builtin_name(n: slong) -> *const ::std::os::raw::c_char;
pub fn fexpr_builtin_length() -> slong;
}
/* flint.h */
#[repr(C)]
pub struct __FLINT_FILE {
_unused: [u8; 0],
}
pub type FLINT_FILE = __FLINT_FILE;
pub type ulong = ::std::os::raw::c_ulong;
pub type slong = ::std::os::raw::c_long;
pub type flint_bitcnt_t = ulong;
pub type nn_ptr = *mut ulong;
pub type nn_srcptr = *const ulong;
pub type flint_cleanup_function_t = ::std::option::Option<unsafe extern "C" fn()>;
pub type thread_pool_handle = ::std::os::raw::c_int;
#[repr(C)]
pub struct flint_rand_struct {
pub __gmp_state: *mut ::std::os::raw::c_void,
pub __randval: ulong,
pub __randval2: ulong,
}
impl Default for flint_rand_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 flint_rand_t = [flint_rand_struct; 1usize];
pub const flint_err_t_FLINT_ERROR: flint_err_t = 0;
pub const flint_err_t_FLINT_OVERFLOW: flint_err_t = 1;
pub const flint_err_t_FLINT_IMPINV: flint_err_t = 2;
pub const flint_err_t_FLINT_DOMERR: flint_err_t = 3;
pub const flint_err_t_FLINT_DIVZERO: flint_err_t = 4;
pub const flint_err_t_FLINT_EXPOF: flint_err_t = 5;
pub const flint_err_t_FLINT_INEXACT: flint_err_t = 6;
pub const flint_err_t_FLINT_TEST_FAIL: flint_err_t = 7;
pub type flint_err_t = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Default)]
pub struct nmod_t {
pub n: ulong,
pub ninv: ulong,
pub norm: flint_bitcnt_t,
}
pub type fmpz = slong;
pub type fmpz_t = [fmpz; 1usize];
#[repr(C)]
#[derive(Default)]
pub struct fmpq {
pub num: fmpz,
pub den: fmpz,
}
pub type fmpq_t = [fmpq; 1usize];
unsafe extern "C" {
pub fn flint_malloc(size: usize) -> *mut ::std::os::raw::c_void;
pub fn flint_realloc(
ptr: *mut ::std::os::raw::c_void,
size: usize,
) -> *mut ::std::os::raw::c_void;
pub fn flint_calloc(num: usize, size: usize) -> *mut ::std::os::raw::c_void;
pub fn flint_free(ptr: *mut ::std::os::raw::c_void);
pub fn flint_aligned_alloc(
alignment: usize,
size: usize,
) -> *mut ::std::os::raw::c_void;
pub fn flint_aligned_free(ptr: *mut ::std::os::raw::c_void);
pub fn flint_register_cleanup_function(cleanup_function: flint_cleanup_function_t);
pub fn flint_cleanup();
pub fn flint_cleanup_master();
pub fn __flint_set_all_memory_functions(
alloc_func: ::std::option::Option<
unsafe extern "C" fn(arg1: usize) -> *mut ::std::os::raw::c_void,
>,
calloc_func: ::std::option::Option<
unsafe extern "C" fn(arg1: usize, arg2: usize) -> *mut ::std::os::raw::c_void,
>,
realloc_func: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: usize,
) -> *mut ::std::os::raw::c_void,
>,
free_func: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void),
>,
aligned_alloc_func: ::std::option::Option<
unsafe extern "C" fn(arg1: usize, arg2: usize) -> *mut ::std::os::raw::c_void,
>,
aligned_free_func: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void),
>,
);
pub fn __flint_get_all_memory_functions(
alloc_func: *mut ::std::option::Option<
unsafe extern "C" fn(arg1: usize) -> *mut ::std::os::raw::c_void,
>,
calloc_func: *mut ::std::option::Option<
unsafe extern "C" fn(arg1: usize, arg2: usize) -> *mut ::std::os::raw::c_void,
>,
realloc_func: *mut ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: usize,
) -> *mut ::std::os::raw::c_void,
>,
free_func: *mut ::std::option::Option<
unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void),
>,
aligned_alloc_func: *mut ::std::option::Option<
unsafe extern "C" fn(arg1: usize, arg2: usize) -> *mut ::std::os::raw::c_void,
>,
aligned_free_func: *mut ::std::option::Option<
unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void),
>,
);
pub fn __flint_set_memory_functions(
alloc_func: ::std::option::Option<
unsafe extern "C" fn(arg1: usize) -> *mut ::std::os::raw::c_void,
>,
calloc_func: ::std::option::Option<
unsafe extern "C" fn(arg1: usize, arg2: usize) -> *mut ::std::os::raw::c_void,
>,
realloc_func: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: usize,
) -> *mut ::std::os::raw::c_void,
>,
free_func: ::std::option::Option<
unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void),
>,
);
pub fn __flint_get_memory_functions(
alloc_func: *mut ::std::option::Option<
unsafe extern "C" fn(arg1: usize) -> *mut ::std::os::raw::c_void,
>,
calloc_func: *mut ::std::option::Option<
unsafe extern "C" fn(arg1: usize, arg2: usize) -> *mut ::std::os::raw::c_void,
>,
realloc_func: *mut ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: usize,
) -> *mut ::std::os::raw::c_void,
>,
free_func: *mut ::std::option::Option<
unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void),
>,
);
pub fn flint_abort();
pub fn flint_set_abort(func: ::std::option::Option<unsafe extern "C" fn()>);
pub fn flint_get_num_threads() -> ::std::os::raw::c_int;
pub fn flint_set_num_threads(num_threads: ::std::os::raw::c_int);
pub fn _flint_set_num_workers(num_workers: ::std::os::raw::c_int);
pub fn flint_set_num_workers(
num_workers: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn flint_reset_num_workers(max_workers: ::std::os::raw::c_int);
pub fn flint_set_thread_affinity(
cpus: *mut ::std::os::raw::c_int,
length: slong,
) -> ::std::os::raw::c_int;
pub fn flint_restore_thread_affinity() -> ::std::os::raw::c_int;
pub fn flint_test_multiplier() -> f64;
pub fn flint_rand_init(state: *mut flint_rand_struct);
pub fn flint_rand_set_seed(
state: *mut flint_rand_struct,
seed1: ulong,
seed2: ulong,
);
pub fn flint_rand_get_seed(
seed1: *mut ulong,
seed2: *mut ulong,
state: *mut flint_rand_struct,
);
pub fn flint_rand_clear(UNUSED_state: *mut flint_rand_struct);
pub fn _flint_rand_init_gmp_state(state: *mut flint_rand_struct);
pub fn _flint_rand_clear_gmp_state(state: *mut flint_rand_struct);
pub fn flint_randinit(arg1: *mut flint_rand_struct);
pub fn flint_randclear(arg1: *mut flint_rand_struct);
pub fn flint_randseed(arg1: *mut flint_rand_struct, arg2: ulong, arg3: ulong);
pub fn flint_get_randseed(
arg1: *mut ulong,
arg2: *mut ulong,
arg3: *mut flint_rand_struct,
);
pub fn flint_rand_alloc() -> *mut flint_rand_struct;
pub fn flint_rand_free(state: *mut flint_rand_struct);
pub fn n_randint(state: *mut flint_rand_struct, limit: ulong) -> ulong;
pub fn flint_merge_sort(
buf: *mut ::std::os::raw::c_void,
len: slong,
size: slong,
cmp: ::std::option::Option<
unsafe extern "C" fn(
arg1: *const ::std::os::raw::c_void,
arg2: *const ::std::os::raw::c_void,
arg3: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int,
>,
data: *mut ::std::os::raw::c_void,
);
pub fn flint_sort(
buf: *mut ::std::os::raw::c_void,
len: slong,
size: slong,
cmp: ::std::option::Option<
unsafe extern "C" fn(
arg1: *const ::std::os::raw::c_void,
arg2: *const ::std::os::raw::c_void,
arg3: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int,
>,
data: *mut ::std::os::raw::c_void,
);
pub fn parse_fmt(
floating: *mut ::std::os::raw::c_int,
fmt: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn flint_printf(
str_: *const ::std::os::raw::c_char,
...
) -> ::std::os::raw::c_int;
pub fn flint_sprintf(
s: *mut ::std::os::raw::c_char,
str_: *const ::std::os::raw::c_char,
...
) -> ::std::os::raw::c_int;
pub fn flint_snprintf(
s: *mut ::std::os::raw::c_char,
n: usize,
str_: *const ::std::os::raw::c_char,
...
) -> ::std::os::raw::c_int;
pub fn flint_scanf(
str_: *const ::std::os::raw::c_char,
...
) -> ::std::os::raw::c_int;
pub fn flint_sscanf(
s: *const ::std::os::raw::c_char,
str_: *const ::std::os::raw::c_char,
...
) -> ::std::os::raw::c_int;
pub fn flint_fprintf(
f: *mut FILE,
str_: *const ::std::os::raw::c_char,
...
) -> ::std::os::raw::c_int;
pub fn flint_fscanf(
f: *mut FILE,
str_: *const ::std::os::raw::c_char,
...
) -> ::std::os::raw::c_int;
pub fn flint_throw(exc: flint_err_t, msg: *const ::std::os::raw::c_char, ...);
}
/* fmpq.h */
/// 2x2 integer matrix
#[repr(C)]
pub struct _fmpz_mat22_struct {
pub _11: fmpz_t,
pub _12: fmpz_t,
pub _21: fmpz_t,
pub _22: fmpz_t,
pub det: ::std::os::raw::c_int,
}
impl Default for _fmpz_mat22_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_mat22_t = [_fmpz_mat22_struct; 1usize];
#[repr(C)]
pub struct _ui_mat22_struct {
pub _11: ulong,
pub _12: ulong,
pub _21: ulong,
pub _22: ulong,
pub det: ::std::os::raw::c_int,
}
impl Default for _ui_mat22_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 _ui_mat22_t = [_ui_mat22_struct; 1usize];
/// resizable integer vector specific to cfrac functionality
#[repr(C)]
pub struct _fmpq_cfrac_list_struct {
pub array: *mut fmpz,
pub length: slong,
pub alloc: slong,
pub limit: slong,
pub alt_sum: fmpz_t,
pub want_alt_sum: ::std::os::raw::c_int,
}
impl Default for _fmpq_cfrac_list_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type _fmpq_cfrac_list_t = [_fmpq_cfrac_list_struct; 1usize];
/// ball for closed interval [left, right]
#[repr(C)]
pub struct _fmpq_ball_struct {
pub left_num: fmpz_t,
pub left_den: fmpz_t,
pub right_num: fmpz_t,
pub right_den: fmpz_t,
pub exact: ::std::os::raw::c_int,
}
impl Default for _fmpq_ball_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type _fmpq_ball_t = [_fmpq_ball_struct; 1usize];
unsafe extern "C" {
pub fn fmpq_init(x: *mut fmpq);
pub fn fmpq_clear(x: *mut fmpq);
pub fn fmpq_swap(op1: *mut fmpq, op2: *mut fmpq);
pub fn _fmpq_canonicalise(num: *mut fmpz, den: *mut fmpz);
pub fn fmpq_canonicalise(res: *mut fmpq);
pub fn _fmpq_is_canonical(
num: *const fmpz,
den: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn fmpq_is_canonical(x: *const fmpq) -> ::std::os::raw::c_int;
pub fn fmpq_zero(res: *mut fmpq);
pub fn fmpq_one(res: *mut fmpq);
pub fn fmpq_set(dest: *mut fmpq, src: *const fmpq);
pub fn fmpq_clear_readonly(f: *mut fmpq);
pub fn _fmpq_set_si(rnum: *mut fmpz, rden: *mut fmpz, p: slong, q: ulong);
pub fn _fmpq_set_ui(rnum: *mut fmpz, rden: *mut fmpz, p: ulong, q: ulong);
pub fn fmpq_set_si(res: *mut fmpq, p: slong, q: ulong);
pub fn fmpq_set_ui(res: *mut fmpq, p: ulong, q: ulong);
pub fn fmpq_set_fmpz_frac(res: *mut fmpq, p: *const fmpz, q: *const fmpz);
pub fn fmpq_set_fmpz(q: *mut fmpq, n: *const fmpz);
pub fn fmpq_get_d(a: *const fmpq) -> f64;
pub fn fmpq_set_str(
res: *mut fmpq,
str_: *const ::std::os::raw::c_char,
base: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn _fmpq_get_str(
str_: *mut ::std::os::raw::c_char,
b: ::std::os::raw::c_int,
num: *const fmpz,
den: *const fmpz,
) -> *mut ::std::os::raw::c_char;
pub fn fmpq_get_str(
str_: *mut ::std::os::raw::c_char,
b: ::std::os::raw::c_int,
x: *const fmpq,
) -> *mut ::std::os::raw::c_char;
pub fn fmpq_is_zero(x: *const fmpq) -> ::std::os::raw::c_int;
pub fn fmpq_is_one(x: *const fmpq) -> ::std::os::raw::c_int;
pub fn fmpq_is_pm1(x: *const fmpq) -> ::std::os::raw::c_int;
pub fn fmpq_sgn(x: *const fmpq) -> ::std::os::raw::c_int;
pub fn fmpq_equal_si(q: *mut fmpq, n: slong) -> ::std::os::raw::c_int;
pub fn fmpq_equal_ui(q: *mut fmpq, n: ulong) -> ::std::os::raw::c_int;
pub fn fmpq_equal(x: *const fmpq, y: *const fmpq) -> ::std::os::raw::c_int;
pub fn _fmpq_cmp_si(
p: *const fmpz,
q: *const fmpz,
c: slong,
) -> ::std::os::raw::c_int;
pub fn _fmpq_cmp_ui(
p: *const fmpz,
q: *const fmpz,
c: ulong,
) -> ::std::os::raw::c_int;
pub fn _fmpq_cmp_fmpz(
p: *const fmpz,
q: *const fmpz,
r: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn _fmpq_cmp(
p: *const fmpz,
q: *const fmpz,
r: *const fmpz,
s: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn fmpq_cmp_si(x: *const fmpq, c: slong) -> ::std::os::raw::c_int;
pub fn fmpq_cmp_ui(x: *const fmpq, c: ulong) -> ::std::os::raw::c_int;
pub fn fmpq_cmp_fmpz(x: *const fmpq, y: *const fmpz) -> ::std::os::raw::c_int;
pub fn fmpq_cmp(x: *const fmpq, y: *const fmpq) -> ::std::os::raw::c_int;
pub fn fmpq_height_bits(x: *const fmpq) -> flint_bitcnt_t;
pub fn fmpq_height(height: *mut fmpz, x: *const fmpq);
pub fn fmpq_neg(dest: *mut fmpq, src: *const fmpq);
pub fn fmpq_abs(dest: *mut fmpq, src: *const fmpq);
pub fn _fmpq_add_si(
rnum: *mut fmpz,
rden: *mut fmpz,
p: *const fmpz,
q: *const fmpz,
r: slong,
);
pub fn _fmpq_add_ui(
rnum: *mut fmpz,
rden: *mut fmpz,
p: *const fmpz,
q: *const fmpz,
r: ulong,
);
pub fn _fmpq_add_fmpz(
rnum: *mut fmpz,
rden: *mut fmpz,
p: *const fmpz,
q: *const fmpz,
r: *const fmpz,
);
pub fn _fmpq_add_small(
rnum: *mut fmpz,
rden: *mut fmpz,
p1: slong,
q1: ulong,
p2: slong,
q2: ulong,
);
pub fn _fmpq_add(
rnum: *mut fmpz,
rden: *mut fmpz,
op1num: *const fmpz,
op1den: *const fmpz,
op2num: *const fmpz,
op2den: *const fmpz,
);
pub fn fmpq_add_si(res: *mut fmpq, op1: *const fmpq, c: slong);
pub fn fmpq_add_ui(res: *mut fmpq, op1: *const fmpq, c: ulong);
pub fn fmpq_add_fmpz(res: *mut fmpq, op1: *const fmpq, c: *const fmpz);
pub fn fmpq_add(res: *mut fmpq, op1: *const fmpq, op2: *const fmpq);
pub fn _fmpq_sub_si(
rnum: *mut fmpz,
rden: *mut fmpz,
p: *const fmpz,
q: *const fmpz,
r: slong,
);
pub fn _fmpq_sub_ui(
rnum: *mut fmpz,
rden: *mut fmpz,
p: *const fmpz,
q: *const fmpz,
r: ulong,
);
pub fn _fmpq_sub_fmpz(
rnum: *mut fmpz,
rden: *mut fmpz,
p: *const fmpz,
q: *const fmpz,
r: *const fmpz,
);
pub fn _fmpq_sub(
rnum: *mut fmpz,
rden: *mut fmpz,
op1num: *const fmpz,
op1den: *const fmpz,
op2num: *const fmpz,
op2den: *const fmpz,
);
pub fn fmpq_sub_si(res: *mut fmpq, op1: *const fmpq, c: slong);
pub fn fmpq_sub_ui(res: *mut fmpq, op1: *const fmpq, c: ulong);
pub fn fmpq_sub_fmpz(res: *mut fmpq, op1: *const fmpq, c: *const fmpz);
pub fn fmpq_sub(res: *mut fmpq, op1: *const fmpq, op2: *const fmpq);
pub fn _fmpq_mul_si(
rnum: *mut fmpz,
rden: *mut fmpz,
p: *const fmpz,
q: *const fmpz,
r: slong,
);
pub fn _fmpq_mul_ui(
rnum: *mut fmpz,
rden: *mut fmpz,
p: *const fmpz,
q: *const fmpz,
r: ulong,
);
pub fn _fmpq_mul_small(
rnum: *mut fmpz,
rden: *mut fmpz,
p1: slong,
q1: ulong,
p2: slong,
q2: ulong,
);
pub fn _fmpq_mul(
rnum: *mut fmpz,
rden: *mut fmpz,
op1num: *const fmpz,
op1den: *const fmpz,
op2num: *const fmpz,
op2den: *const fmpz,
);
pub fn fmpq_mul_si(res: *mut fmpq, op1: *const fmpq, c: slong);
pub fn fmpq_mul_ui(res: *mut fmpq, op1: *const fmpq, c: ulong);
pub fn fmpq_mul_fmpz(res: *mut fmpq, op: *const fmpq, x: *const fmpz);
pub fn fmpq_mul_2exp(res: *mut fmpq, x: *const fmpq, exp: flint_bitcnt_t);
pub fn fmpq_mul(res: *mut fmpq, op1: *const fmpq, op2: *const fmpq);
pub fn fmpq_inv(dest: *mut fmpq, src: *const fmpq);
pub fn _fmpq_div(
rnum: *mut fmpz,
rden: *mut fmpz,
op1num: *const fmpz,
op1den: *const fmpz,
op2num: *const fmpz,
op2den: *const fmpz,
);
pub fn fmpq_div_fmpz(res: *mut fmpq, op: *const fmpq, x: *const fmpz);
pub fn fmpq_div_2exp(res: *mut fmpq, x: *const fmpq, exp: flint_bitcnt_t);
pub fn fmpq_div(res: *mut fmpq, op1: *const fmpq, op2: *const fmpq);
pub fn _fmpq_pow_si(
rnum: *mut fmpz,
rden: *mut fmpz,
opnum: *const fmpz,
opden: *const fmpz,
e: slong,
);
pub fn fmpq_pow_si(rop: *mut fmpq, op: *const fmpq, e: slong);
pub fn fmpq_pow_fmpz(
a: *mut fmpq,
b: *const fmpq,
e: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn _fmpq_addmul(
rnum: *mut fmpz,
rden: *mut fmpz,
op1num: *const fmpz,
op1den: *const fmpz,
op2num: *const fmpz,
op2den: *const fmpz,
);
pub fn _fmpq_submul(
rnum: *mut fmpz,
rden: *mut fmpz,
op1num: *const fmpz,
op1den: *const fmpz,
op2num: *const fmpz,
op2den: *const fmpz,
);
pub fn fmpq_addmul(res: *mut fmpq, op1: *const fmpq, op2: *const fmpq);
pub fn fmpq_submul(res: *mut fmpq, op1: *const fmpq, op2: *const fmpq);
pub fn _fmpq_fprint(
file: *mut FILE,
num: *const fmpz,
den: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn fmpq_fprint(file: *mut FILE, x: *const fmpq) -> ::std::os::raw::c_int;
pub fn _fmpq_print(num: *const fmpz, den: *const fmpz) -> ::std::os::raw::c_int;
pub fn fmpq_print(x: *const fmpq) -> ::std::os::raw::c_int;
pub fn _fmpq_randtest(
num: *mut fmpz,
den: *mut fmpz,
state: *mut flint_rand_struct,
bits: flint_bitcnt_t,
);
pub fn _fmpq_randbits(
num: *mut fmpz,
den: *mut fmpz,
state: *mut flint_rand_struct,
bits: flint_bitcnt_t,
);
pub fn fmpq_randtest(
res: *mut fmpq,
state: *mut flint_rand_struct,
bits: flint_bitcnt_t,
);
pub fn fmpq_randtest_not_zero(
res: *mut fmpq,
state: *mut flint_rand_struct,
bits: flint_bitcnt_t,
);
pub fn fmpq_randbits(
res: *mut fmpq,
state: *mut flint_rand_struct,
bits: flint_bitcnt_t,
);
pub fn _fmpq_mod_fmpz(
res: *mut fmpz,
num: *const fmpz,
den: *const fmpz,
mod_: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn fmpq_mod_fmpz(
res: *mut fmpz,
x: *const fmpq,
mod_: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn _fmpq_gcd(
rnum: *mut fmpz,
rden: *mut fmpz,
p: *const fmpz,
q: *const fmpz,
r: *const fmpz,
s: *const fmpz,
);
pub fn fmpq_gcd(res: *mut fmpq, op1: *const fmpq, op2: *const fmpq);
pub fn _fmpq_gcd_cofactors(
ng: *mut fmpz,
dg: *mut fmpz,
A: *mut fmpz,
B: *mut fmpz,
na: *const fmpz,
da: *const fmpz,
nb: *const fmpz,
db: *const fmpz,
);
pub fn fmpq_gcd_cofactors(
g: *mut fmpq,
A: *mut fmpz,
B: *mut fmpz,
a: *const fmpq,
b: *const fmpq,
);
pub fn _fmpq_reconstruct_fmpz(
num: *mut fmpz,
den: *mut fmpz,
a: *const fmpz,
m: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn fmpq_reconstruct_fmpz(
res: *mut fmpq,
a: *const fmpz,
m: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn _fmpq_reconstruct_fmpz_2_naive(
n: *mut fmpz,
d: *mut fmpz,
a: *const fmpz,
m: *const fmpz,
N: *const fmpz,
D: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn _fmpq_reconstruct_fmpz_2(
n: *mut fmpz,
d: *mut fmpz,
a: *const fmpz,
m: *const fmpz,
N: *const fmpz,
D: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn fmpq_reconstruct_fmpz_2(
res: *mut fmpq,
a: *const fmpz,
m: *const fmpz,
N: *const fmpz,
D: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn _fmpq_next_calkin_wilf(
rnum: *mut fmpz,
rden: *mut fmpz,
num: *const fmpz,
den: *const fmpz,
);
pub fn fmpq_next_calkin_wilf(res: *mut fmpq, x: *const fmpq);
pub fn _fmpq_next_signed_calkin_wilf(
rnum: *mut fmpz,
rden: *mut fmpz,
num: *const fmpz,
den: *const fmpz,
);
pub fn fmpq_next_signed_calkin_wilf(res: *mut fmpq, x: *const fmpq);
pub fn _fmpq_next_minimal(
rnum: *mut fmpz,
rden: *mut fmpz,
num: *const fmpz,
den: *const fmpz,
);
pub fn fmpq_next_minimal(res: *mut fmpq, x: *const fmpq);
pub fn _fmpq_next_signed_minimal(
rnum: *mut fmpz,
rden: *mut fmpz,
num: *const fmpz,
den: *const fmpz,
);
pub fn fmpq_next_signed_minimal(res: *mut fmpq, x: *const fmpq);
pub fn fmpq_farey_neighbors(
left: *mut fmpq,
right: *mut fmpq,
mid: *const fmpq,
Q: *const fmpz,
);
pub fn _fmpq_simplest_between(
mid_num: *mut fmpz,
mid_den: *mut fmpz,
l_num: *const fmpz,
l_den: *const fmpz,
r_num: *const fmpz,
r_den: *const fmpz,
);
pub fn fmpq_simplest_between(mid: *mut fmpq, l: *const fmpq, r: *const fmpq);
pub fn fmpq_get_cfrac_naive(
c: *mut fmpz,
rem: *mut fmpq,
x: *const fmpq,
n: slong,
) -> slong;
pub fn fmpq_get_cfrac(
c: *mut fmpz,
rem: *mut fmpq,
x: *const fmpq,
n: slong,
) -> slong;
pub fn fmpq_set_cfrac(x: *mut fmpq, c: *const fmpz, n: slong);
pub fn fmpq_cfrac_bound(x: *const fmpq) -> slong;
pub fn fmpq_dedekind_sum_naive(s: *mut fmpq, h: *const fmpz, k: *const fmpz);
pub fn fmpq_dedekind_sum(s: *mut fmpq, h: *const fmpz, k: *const fmpz);
pub fn _fmpq_harmonic_ui(num: *mut fmpz, den: *mut fmpz, n: ulong);
pub fn fmpq_harmonic_ui(x: *mut fmpq, n: ulong);
pub fn _fmpz_mat22_init(M: *mut _fmpz_mat22_struct);
pub fn _fmpz_mat22_clear(M: *mut _fmpz_mat22_struct);
pub fn _fmpz_mat22_one(M: *mut _fmpz_mat22_struct);
pub fn _fmpz_mat22_is_one(M: *mut _fmpz_mat22_struct) -> ::std::os::raw::c_int;
pub fn _fmpz_mat22_bits(N: *const _fmpz_mat22_struct) -> flint_bitcnt_t;
pub fn _fmpz_mat22_rmul(M: *mut _fmpz_mat22_struct, N: *const _fmpz_mat22_struct);
pub fn _fmpz_mat22_rmul_ui(M: *mut _fmpz_mat22_struct, N: *const _ui_mat22_struct);
pub fn _fmpz_mat22_rmul_inv_ui(
M: *mut _fmpz_mat22_struct,
N: *const _ui_mat22_struct,
);
pub fn _fmpz_mat22_rmul_elem(M: *mut _fmpz_mat22_struct, q: *const fmpz);
pub fn _fmpz_mat22_lmul_elem(M: *mut _fmpz_mat22_struct, q: *const fmpz);
pub fn _fmpz_mat22_rmul_inv_elem(M: *mut _fmpz_mat22_struct, q: *const fmpz);
pub fn _fmpz_mat22_addmul_inv_vec(
ya: *mut fmpz,
yb: *mut fmpz,
N: *mut _fmpz_mat22_struct,
xa: *mut fmpz,
xb: *mut fmpz,
);
pub fn _fmpz_mat22_addmul_inv_mat(
A11: *mut fmpz,
A12: *mut fmpz,
A21: *mut fmpz,
A22: *mut fmpz,
M: *mut _fmpz_mat22_struct,
B11: *mut fmpz,
B12: *mut fmpz,
B21: *mut fmpz,
B22: *mut fmpz,
);
pub fn _fmpq_cfrac_list_init(v: *mut _fmpq_cfrac_list_struct);
pub fn _fmpq_cfrac_list_clear(v: *mut _fmpq_cfrac_list_struct);
pub fn _fmpq_cfrac_list_fit_length(v: *mut _fmpq_cfrac_list_struct, len: slong);
pub fn _fmpq_cfrac_list_push_back(v: *mut _fmpq_cfrac_list_struct, a: *const fmpz);
pub fn _fmpq_cfrac_list_push_back_zero(v: *mut _fmpq_cfrac_list_struct);
pub fn _fmpq_cfrac_list_append_ui(
v: *mut _fmpq_cfrac_list_struct,
a: *const ulong,
n: slong,
);
pub fn _fmpq_ball_init(x: *mut _fmpq_ball_struct);
pub fn _fmpq_ball_clear(x: *mut _fmpq_ball_struct);
pub fn _fmpq_ball_gt_one(x: *const _fmpq_ball_struct) -> ::std::os::raw::c_int;
pub fn _fmpq_hgcd(
s: *mut _fmpq_cfrac_list_struct,
M: *mut _fmpz_mat22_struct,
x_num: *mut fmpz,
x_den: *mut fmpz,
);
pub fn _fmpq_ball_get_cfrac(
s: *mut _fmpq_cfrac_list_struct,
M: *mut _fmpz_mat22_struct,
needM: ::std::os::raw::c_int,
x: *mut _fmpq_ball_struct,
);
pub fn fmpq_numerator(n: *mut fmpz, q: *const fmpq);
pub fn fmpq_denominator(n: *mut fmpz, q: *const fmpq);
pub fn fmpq_numerator_ptr(q: *mut fmpq) -> *mut fmpz;
pub fn fmpq_denominator_ptr(q: *mut fmpq) -> *mut fmpz;
pub fn fmpq_equal_fmpz(q: *mut fmpq, n: *mut fmpz) -> ::std::os::raw::c_int;
}
/* fmpq_mat.h */
unsafe extern "C" {
pub fn fmpq_mat_entry(mat: *const fmpq_mat_struct, i: slong, j: slong) -> *mut fmpq;
pub fn fmpq_mat_entry_num(
mat: *const fmpq_mat_struct,
i: slong,
j: slong,
) -> *mut fmpz;
pub fn fmpq_mat_entry_den(
mat: *const fmpq_mat_struct,
i: slong,
j: slong,
) -> *mut fmpz;
pub fn fmpq_mat_nrows(mat: *const fmpq_mat_struct) -> slong;
pub fn fmpq_mat_ncols(mat: *const fmpq_mat_struct) -> slong;
pub fn fmpq_mat_init(mat: *mut fmpq_mat_struct, rows: slong, cols: slong);
pub fn fmpq_mat_init_set(mat1: *mut fmpq_mat_struct, mat2: *const fmpq_mat_struct);
pub fn fmpq_mat_clear(mat: *mut fmpq_mat_struct);
pub fn fmpq_mat_swap(mat1: *mut fmpq_mat_struct, mat2: *mut fmpq_mat_struct);
pub fn fmpq_mat_swap_entrywise(
mat1: *mut fmpq_mat_struct,
mat2: *mut fmpq_mat_struct,
);
pub fn fmpq_mat_window_init(
window: *mut fmpq_mat_struct,
mat: *const fmpq_mat_struct,
r1: slong,
c1: slong,
r2: slong,
c2: slong,
);
pub fn fmpq_mat_window_clear(UNUSED_window: *mut fmpq_mat_struct);
pub fn fmpq_mat_concat_horizontal(
res: *mut fmpq_mat_struct,
mat1: *const fmpq_mat_struct,
mat2: *const fmpq_mat_struct,
);
pub fn fmpq_mat_concat_vertical(
res: *mut fmpq_mat_struct,
mat1: *const fmpq_mat_struct,
mat2: *const fmpq_mat_struct,
);
pub fn fmpq_mat_print(mat: *const fmpq_mat_struct);
pub fn fmpq_mat_randbits(
mat: *mut fmpq_mat_struct,
state: *mut flint_rand_struct,
bits: flint_bitcnt_t,
);
pub fn fmpq_mat_randtest(
mat: *mut fmpq_mat_struct,
state: *mut flint_rand_struct,
bits: flint_bitcnt_t,
);
pub fn fmpq_mat_hilbert_matrix(mat: *mut fmpq_mat_struct);
pub fn fmpq_mat_set(dest: *mut fmpq_mat_struct, src: *const fmpq_mat_struct);
pub fn fmpq_mat_zero(mat: *mut fmpq_mat_struct);
pub fn fmpq_mat_one(mat: *mut fmpq_mat_struct);
pub fn fmpq_mat_transpose(rop: *mut fmpq_mat_struct, op: *const fmpq_mat_struct);
pub fn fmpq_mat_add(
mat: *mut fmpq_mat_struct,
mat1: *const fmpq_mat_struct,
mat2: *const fmpq_mat_struct,
);
pub fn fmpq_mat_sub(
mat: *mut fmpq_mat_struct,
mat1: *const fmpq_mat_struct,
mat2: *const fmpq_mat_struct,
);
pub fn fmpq_mat_neg(rop: *mut fmpq_mat_struct, op: *const fmpq_mat_struct);
pub fn fmpq_mat_scalar_mul_fmpq(
rop: *mut fmpq_mat_struct,
op: *const fmpq_mat_struct,
x: *const fmpq,
);
pub fn fmpq_mat_scalar_mul_fmpz(
rop: *mut fmpq_mat_struct,
op: *const fmpq_mat_struct,
x: *const fmpz,
);
pub fn fmpq_mat_scalar_mul_si(
rop: *mut fmpq_mat_struct,
op: *const fmpq_mat_struct,
x: slong,
);
pub fn fmpq_mat_scalar_mul_ui(
rop: *mut fmpq_mat_struct,
op: *const fmpq_mat_struct,
x: ulong,
);
pub fn fmpq_mat_scalar_div_fmpz(
rop: *mut fmpq_mat_struct,
op: *const fmpq_mat_struct,
x: *const fmpz,
);
pub fn fmpq_mat_scalar_div_si(
rop: *mut fmpq_mat_struct,
op: *const fmpq_mat_struct,
x: slong,
);
pub fn fmpq_mat_scalar_div_ui(
rop: *mut fmpq_mat_struct,
op: *const fmpq_mat_struct,
x: ulong,
);
pub fn fmpq_mat_equal(
mat1: *const fmpq_mat_struct,
mat2: *const fmpq_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mat_is_zero(mat: *const fmpq_mat_struct) -> ::std::os::raw::c_int;
pub fn fmpq_mat_is_one(mat: *const fmpq_mat_struct) -> ::std::os::raw::c_int;
pub fn fmpq_mat_is_integral(mat: *const fmpq_mat_struct) -> ::std::os::raw::c_int;
pub fn fmpq_mat_is_empty(mat: *const fmpq_mat_struct) -> ::std::os::raw::c_int;
pub fn fmpq_mat_is_square(mat: *const fmpq_mat_struct) -> ::std::os::raw::c_int;
pub fn fmpq_mat_get_fmpz_mat(
dest: *mut fmpz_mat_struct,
mat: *const fmpq_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mat_set_fmpz_mat(
dest: *mut fmpq_mat_struct,
mat: *const fmpz_mat_struct,
);
pub fn fmpq_mat_get_fmpz_mat_entrywise(
num: *mut fmpz_mat_struct,
den: *mut fmpz_mat_struct,
mat: *const fmpq_mat_struct,
);
pub fn fmpq_mat_get_fmpz_mat_matwise(
num: *mut fmpz_mat_struct,
den: *mut fmpz,
mat: *const fmpq_mat_struct,
);
pub fn fmpq_mat_get_fmpz_mat_rowwise(
num: *mut fmpz_mat_struct,
den: *mut fmpz,
mat: *const fmpq_mat_struct,
);
pub fn fmpq_mat_get_fmpz_mat_colwise(
num: *mut fmpz_mat_struct,
den: *mut fmpz,
mat: *const fmpq_mat_struct,
);
pub fn fmpq_mat_get_fmpz_mat_rowwise_2(
num: *mut fmpz_mat_struct,
num2: *mut fmpz_mat_struct,
den: *mut fmpz,
mat: *const fmpq_mat_struct,
mat2: *const fmpq_mat_struct,
);
pub fn fmpq_mat_get_fmpz_mat_mod_fmpz(
dest: *mut fmpz_mat_struct,
mat: *const fmpq_mat_struct,
mod_: *const fmpz,
);
pub fn fmpq_mat_set_fmpz_mat_mod_fmpz(
X: *mut fmpq_mat_struct,
Xmod: *const fmpz_mat_struct,
mod_: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn fmpq_mat_set_fmpz_mat_div_fmpz(
X: *mut fmpq_mat_struct,
Xmod: *const fmpz_mat_struct,
div: *const fmpz,
);
pub fn fmpq_mat_mul_direct(
C: *mut fmpq_mat_struct,
A: *const fmpq_mat_struct,
B: *const fmpq_mat_struct,
);
pub fn fmpq_mat_mul_cleared(
C: *mut fmpq_mat_struct,
A: *const fmpq_mat_struct,
B: *const fmpq_mat_struct,
);
pub fn fmpq_mat_mul_fmpz_mat(
C: *mut fmpq_mat_struct,
A: *const fmpq_mat_struct,
B: *const fmpz_mat_struct,
);
pub fn fmpq_mat_mul(
C: *mut fmpq_mat_struct,
A: *const fmpq_mat_struct,
B: *const fmpq_mat_struct,
);
pub fn fmpq_mat_mul_r_fmpz_mat(
C: *mut fmpq_mat_struct,
A: *const fmpz_mat_struct,
B: *const fmpq_mat_struct,
);
pub fn fmpq_mat_mul_fmpz_vec(
c: *mut fmpq,
A: *const fmpq_mat_struct,
b: *const fmpz,
blen: slong,
);
pub fn fmpq_mat_mul_fmpq_vec(
c: *mut fmpq,
A: *const fmpq_mat_struct,
b: *const fmpq,
blen: slong,
);
pub fn fmpq_mat_mul_fmpz_vec_ptr(
c: *const *mut fmpq,
A: *const fmpq_mat_struct,
b: *const *const fmpz,
blen: slong,
);
pub fn fmpq_mat_mul_fmpq_vec_ptr(
c: *const *mut fmpq,
A: *const fmpq_mat_struct,
b: *const *const fmpq,
blen: slong,
);
pub fn fmpq_mat_fmpz_vec_mul(
c: *mut fmpq,
a: *const fmpz,
alen: slong,
B: *const fmpq_mat_struct,
);
pub fn fmpq_mat_fmpq_vec_mul(
c: *mut fmpq,
a: *const fmpq,
alen: slong,
B: *const fmpq_mat_struct,
);
pub fn fmpq_mat_fmpz_vec_mul_ptr(
c: *const *mut fmpq,
a: *const *const fmpz,
alen: slong,
B: *const fmpq_mat_struct,
);
pub fn fmpq_mat_fmpq_vec_mul_ptr(
c: *const *mut fmpq,
a: *const *const fmpq,
alen: slong,
B: *const fmpq_mat_struct,
);
pub fn fmpq_mat_kronecker_product(
C: *mut fmpq_mat_struct,
A: *const fmpq_mat_struct,
B: *const fmpq_mat_struct,
);
pub fn fmpq_mat_swap_rows(
mat: *mut fmpq_mat_struct,
perm: *mut slong,
r: slong,
s: slong,
);
pub fn fmpq_mat_swap_cols(
mat: *mut fmpq_mat_struct,
perm: *mut slong,
r: slong,
s: slong,
);
pub fn fmpq_mat_invert_rows(mat: *mut fmpq_mat_struct, perm: *mut slong);
pub fn fmpq_mat_invert_cols(mat: *mut fmpq_mat_struct, perm: *mut slong);
pub fn fmpq_mat_trace(trace: *mut fmpq, mat: *const fmpq_mat_struct);
pub fn fmpq_mat_det(det: *mut fmpq, mat: *const fmpq_mat_struct);
pub fn fmpq_mat_permanent(
res: *mut fmpq,
A: *const fmpq_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mat_solve_fmpz_mat_fraction_free(
X: *mut fmpq_mat_struct,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mat_solve_fraction_free(
X: *mut fmpq_mat_struct,
A: *const fmpq_mat_struct,
B: *const fmpq_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mat_solve_fmpz_mat_dixon(
X: *mut fmpq_mat_struct,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mat_solve_dixon(
X: *mut fmpq_mat_struct,
A: *const fmpq_mat_struct,
B: *const fmpq_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mat_solve_fmpz_mat_multi_mod(
X: *mut fmpq_mat_struct,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mat_solve_multi_mod(
X: *mut fmpq_mat_struct,
A: *const fmpq_mat_struct,
B: *const fmpq_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mat_can_solve_fmpz_mat_multi_mod(
X: *mut fmpq_mat_struct,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mat_can_solve_multi_mod(
X: *mut fmpq_mat_struct,
A: *const fmpq_mat_struct,
B: *const fmpq_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mat_can_solve_fraction_free(
X: *mut fmpq_mat_struct,
A: *const fmpq_mat_struct,
B: *const fmpq_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mat_can_solve_fmpz_mat_dixon(
X: *mut fmpq_mat_struct,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mat_can_solve_dixon(
X: *mut fmpq_mat_struct,
A: *const fmpq_mat_struct,
B: *const fmpq_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mat_can_solve(
X: *mut fmpq_mat_struct,
A: *const fmpq_mat_struct,
B: *const fmpq_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mat_solve_fmpz_mat(
X: *mut fmpq_mat_struct,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mat_solve(
X: *mut fmpq_mat_struct,
A: *const fmpq_mat_struct,
B: *const fmpq_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mat_inv(
B: *mut fmpq_mat_struct,
A: *const fmpq_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mat_pivot(
perm: *mut slong,
mat: *mut fmpq_mat_struct,
r: slong,
c: slong,
) -> ::std::os::raw::c_int;
pub fn fmpq_mat_rref_classical(
B: *mut fmpq_mat_struct,
A: *const fmpq_mat_struct,
) -> slong;
pub fn fmpq_mat_rref_fraction_free(
B: *mut fmpq_mat_struct,
A: *const fmpq_mat_struct,
) -> slong;
pub fn fmpq_mat_rref(B: *mut fmpq_mat_struct, A: *const fmpq_mat_struct) -> slong;
pub fn fmpq_mat_gso(B: *mut fmpq_mat_struct, A: *const fmpq_mat_struct);
pub fn fmpq_mat_similarity(A: *mut fmpq_mat_struct, r: slong, d: *mut fmpq);
pub fn _fmpq_mat_charpoly(
coeffs: *mut fmpz,
den: *mut fmpz,
mat: *const fmpq_mat_struct,
);
pub fn fmpq_mat_charpoly(pol: *mut fmpq_poly_struct, mat: *const fmpq_mat_struct);
pub fn _fmpq_mat_minpoly(
coeffs: *mut fmpz,
den: *mut fmpz,
mat: *const fmpq_mat_struct,
) -> slong;
pub fn fmpq_mat_minpoly(pol: *mut fmpq_poly_struct, mat: *const fmpq_mat_struct);
}
/* fmpq_mpoly.h */
#[repr(C)]
pub struct fmpq_mpoly_univar_struct {
pub coeffs: *mut fmpq_mpoly_struct,
pub exps: *mut fmpz,
pub alloc: slong,
pub length: slong,
}
impl Default for fmpq_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 fmpq_mpoly_univar_t = [fmpq_mpoly_univar_struct; 1usize];
unsafe extern "C" {
pub fn fmpq_mpoly_ctx_init(
ctx: *mut fmpq_mpoly_ctx_struct,
nvars: slong,
ord: ordering_t,
);
pub fn fmpq_mpoly_ctx_init_rand(
ctx: *mut fmpq_mpoly_ctx_struct,
state: *mut flint_rand_struct,
max_nvars: slong,
);
pub fn fmpq_mpoly_ctx_clear(ctx: *mut fmpq_mpoly_ctx_struct);
pub fn fmpq_mpoly_ctx_nvars(ctx: *const fmpq_mpoly_ctx_struct) -> slong;
pub fn fmpq_mpoly_ctx_ord(ctx: *const fmpq_mpoly_ctx_struct) -> ordering_t;
pub fn fmpq_mpoly_content_ref(
A: *mut fmpq_mpoly_struct,
UNUSED_ctx: *const fmpq_mpoly_ctx_struct,
) -> *mut fmpq;
pub fn fmpq_mpoly_zpoly_ref(
A: *mut fmpq_mpoly_struct,
UNUSED_ctx: *const fmpq_mpoly_ctx_struct,
) -> *mut fmpz_mpoly_struct;
pub fn fmpq_mpoly_zpoly_term_coeff_ref(
A: *mut fmpq_mpoly_struct,
i: slong,
UNUSED_ctx: *const fmpq_mpoly_ctx_struct,
) -> *mut fmpz;
pub fn fmpq_mpoly_init(A: *mut fmpq_mpoly_struct, ctx: *const fmpq_mpoly_ctx_struct);
pub fn fmpq_mpoly_init2(
A: *mut fmpq_mpoly_struct,
alloc: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_init3(
A: *mut fmpq_mpoly_struct,
alloc: slong,
bits: flint_bitcnt_t,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_realloc(
A: *mut fmpq_mpoly_struct,
alloc: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_fit_length(
A: *mut fmpq_mpoly_struct,
len: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_clear(
A: *mut fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_fit_bits(
A: *mut fmpq_mpoly_struct,
bits: flint_bitcnt_t,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_set_str_pretty(
A: *mut fmpq_mpoly_struct,
str_: *const ::std::os::raw::c_char,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_get_str_pretty(
A: *const fmpq_mpoly_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fmpq_mpoly_ctx_struct,
) -> *mut ::std::os::raw::c_char;
pub fn fmpq_mpoly_fprint_pretty(
file: *mut FILE,
A: *const fmpq_mpoly_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_print_pretty(
A: *const fmpq_mpoly_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_gen(
A: *mut fmpq_mpoly_struct,
var: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_is_gen(
A: *const fmpq_mpoly_struct,
var: slong,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_set(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_equal(
A: *const fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_swap(
A: *mut fmpq_mpoly_struct,
B: *mut fmpq_mpoly_struct,
UNUSED_ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_is_fmpq(
A: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_get_fmpq(
c: *mut fmpq,
A: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_set_fmpq(
A: *mut fmpq_mpoly_struct,
c: *const fmpq,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_set_fmpz(
A: *mut fmpq_mpoly_struct,
c: *const fmpz,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_set_ui(
A: *mut fmpq_mpoly_struct,
c: ulong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_set_si(
A: *mut fmpq_mpoly_struct,
c: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_zero(A: *mut fmpq_mpoly_struct, ctx: *const fmpq_mpoly_ctx_struct);
pub fn fmpq_mpoly_one(A: *mut fmpq_mpoly_struct, ctx: *const fmpq_mpoly_ctx_struct);
pub fn fmpq_mpoly_equal_fmpq(
A: *const fmpq_mpoly_struct,
c: *const fmpq,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_equal_fmpz(
A: *const fmpq_mpoly_struct,
c: *const fmpz,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_equal_ui(
A: *const fmpq_mpoly_struct,
c: ulong,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_equal_si(
A: *const fmpq_mpoly_struct,
c: slong,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_is_zero(
A: *const fmpq_mpoly_struct,
UNUSED_ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_is_one(
A: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_degrees_fit_si(
A: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_degrees_fmpz(
degs: *mut *mut fmpz,
A: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_degrees_si(
degs: *mut slong,
A: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_degree_fmpz(
deg: *mut fmpz,
A: *const fmpq_mpoly_struct,
var: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_degree_si(
A: *const fmpq_mpoly_struct,
var: slong,
ctx: *const fmpq_mpoly_ctx_struct,
) -> slong;
pub fn fmpq_mpoly_total_degree_fits_si(
A: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_total_degree_fmpz(
tdeg: *mut fmpz,
A: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_total_degree_si(
A: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
) -> slong;
pub fn fmpq_mpoly_used_vars(
used: *mut ::std::os::raw::c_int,
A: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_get_denominator(
d: *mut fmpz,
A: *const fmpq_mpoly_struct,
UNUSED_ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_is_monic(
A: *const fmpq_mpoly_struct,
UNUSED_ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_get_coeff_fmpq_monomial(
c: *mut fmpq,
A: *const fmpq_mpoly_struct,
M: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_set_coeff_fmpq_monomial(
A: *mut fmpq_mpoly_struct,
c: *const fmpq,
M: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn _fmpq_mpoly_set_coeff_fmpq_fmpz(
A: *mut fmpq_mpoly_struct,
c: *const fmpq,
exp: *const fmpz,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_set_coeff_fmpq_fmpz(
A: *mut fmpq_mpoly_struct,
c: *const fmpq,
exp: *const *mut fmpz,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_set_coeff_fmpq_ui(
A: *mut fmpq_mpoly_struct,
c: *const fmpq,
exp: *const ulong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn _fmpq_mpoly_get_coeff_fmpq_fmpz(
c: *mut fmpq,
A: *const fmpq_mpoly_struct,
exp: *const fmpz,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_get_coeff_fmpq_fmpz(
c: *mut fmpq,
A: *const fmpq_mpoly_struct,
exp: *const *mut fmpz,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_get_coeff_fmpq_ui(
c: *mut fmpq,
A: *const fmpq_mpoly_struct,
exp: *const ulong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_get_coeff_vars_ui(
C: *mut fmpq_mpoly_struct,
A: *const fmpq_mpoly_struct,
vars: *const slong,
exps: *const ulong,
length: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_is_fmpq_poly(
A: *const fmpq_mpoly_struct,
var: slong,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_get_fmpq_poly(
A: *mut fmpq_poly_struct,
B: *const fmpq_mpoly_struct,
var: slong,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_set_fmpq_poly(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_poly_struct,
var: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_cmp(
A: *const fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_is_canonical(
A: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_length(
A: *const fmpq_mpoly_struct,
UNUSED_ctx: *const fmpq_mpoly_ctx_struct,
) -> slong;
pub fn fmpq_mpoly_resize(
A: *mut fmpq_mpoly_struct,
new_length: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_get_term_coeff_fmpq(
c: *mut fmpq,
A: *const fmpq_mpoly_struct,
i: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_set_term_coeff_fmpq(
A: *mut fmpq_mpoly_struct,
i: slong,
c: *const fmpq,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_term_exp_fits_ui(
A: *const fmpq_mpoly_struct,
i: slong,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_term_exp_fits_si(
A: *const fmpq_mpoly_struct,
i: slong,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_get_term_exp_fmpz(
exps: *mut *mut fmpz,
A: *const fmpq_mpoly_struct,
i: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_get_term_exp_ui(
exps: *mut ulong,
A: *const fmpq_mpoly_struct,
i: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_get_term_exp_si(
exps: *mut slong,
A: *const fmpq_mpoly_struct,
i: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_get_term_var_exp_ui(
A: *const fmpq_mpoly_struct,
i: slong,
var: slong,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ulong;
pub fn fmpq_mpoly_get_term_var_exp_si(
A: *const fmpq_mpoly_struct,
i: slong,
var: slong,
ctx: *const fmpq_mpoly_ctx_struct,
) -> slong;
pub fn fmpq_mpoly_set_term_exp_fmpz(
A: *mut fmpq_mpoly_struct,
i: slong,
exps: *const *mut fmpz,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_set_term_exp_ui(
A: *mut fmpq_mpoly_struct,
i: slong,
exps: *const ulong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_get_term(
M: *mut fmpq_mpoly_struct,
A: *const fmpq_mpoly_struct,
i: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_get_term_monomial(
M: *mut fmpq_mpoly_struct,
A: *const fmpq_mpoly_struct,
i: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_push_term_fmpq_fmpz(
A: *mut fmpq_mpoly_struct,
c: *const fmpq,
exp: *const *mut fmpz,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_push_term_fmpq_ffmpz(
A: *mut fmpq_mpoly_struct,
c: *const fmpq,
exp: *const fmpz,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_push_term_fmpz_fmpz(
A: *mut fmpq_mpoly_struct,
c: *const fmpz,
exp: *const *mut fmpz,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_push_term_fmpz_ffmpz(
A: *mut fmpq_mpoly_struct,
c: *const fmpz,
exp: *const fmpz,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_push_term_ui_fmpz(
A: *mut fmpq_mpoly_struct,
c: ulong,
exp: *const *mut fmpz,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_push_term_ui_ffmpz(
A: *mut fmpq_mpoly_struct,
c: ulong,
exp: *const fmpz,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_push_term_si_fmpz(
A: *mut fmpq_mpoly_struct,
c: slong,
exp: *const *mut fmpz,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_push_term_si_ffmpz(
A: *mut fmpq_mpoly_struct,
c: slong,
exp: *const fmpz,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_push_term_fmpq_ui(
A: *mut fmpq_mpoly_struct,
c: *const fmpq,
exp: *const ulong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_push_term_fmpz_ui(
A: *mut fmpq_mpoly_struct,
c: *const fmpz,
exp: *const ulong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_push_term_ui_ui(
A: *mut fmpq_mpoly_struct,
c: ulong,
exp: *const ulong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_push_term_si_ui(
A: *mut fmpq_mpoly_struct,
c: slong,
exp: *const ulong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_reduce(
A: *mut fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_reduce_easy(
A: *mut fmpq_mpoly_struct,
easy_length: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_sort_terms(
A: *mut fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_combine_like_terms(
A: *mut fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_reverse(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_assert_canonical(
poly: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn _fmpq_mpoly_push_rescale(
A: *mut fmpq_mpoly_struct,
C: *mut fmpq,
UNUSED_ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_randtest_bounds(
A: *mut fmpq_mpoly_struct,
state: *mut flint_rand_struct,
length: slong,
coeff_bits: flint_bitcnt_t,
exp_bounds: *mut ulong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_randtest_bound(
A: *mut fmpq_mpoly_struct,
state: *mut flint_rand_struct,
length: slong,
coeff_bits: flint_bitcnt_t,
exp_bound: ulong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_randtest_bits(
A: *mut fmpq_mpoly_struct,
state: *mut flint_rand_struct,
length: slong,
coeff_bits: flint_bitcnt_t,
exp_bits: flint_bitcnt_t,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_add_fmpq(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
c: *const fmpq,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_add_fmpz(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
c: *const fmpz,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_add_ui(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
c: ulong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_add_si(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
c: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_sub_fmpq(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
c: *const fmpq,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_sub_fmpz(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
c: *const fmpz,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_sub_ui(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
c: ulong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_sub_si(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
c: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_add(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
C: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_sub(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
C: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_neg(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_scalar_mul_fmpq(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
c: *const fmpq,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_scalar_mul_fmpz(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
c: *const fmpz,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_scalar_mul_ui(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
c: ulong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_scalar_mul_si(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
c: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_scalar_div_fmpq(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
c: *const fmpq,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_scalar_div_fmpz(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
c: *const fmpz,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_scalar_div_ui(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
c: ulong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_scalar_div_si(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
c: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_make_monic(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn _fmpq_mpoly_make_monic_inplace(
A: *mut fmpq_mpoly_struct,
UNUSED_ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_derivative(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
var: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_integral(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
var: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn _fmpq_mpoly_rescale(
Acontent: *mut fmpq,
Acoeff: *mut fmpz,
B: *const fmpq_mpoly_struct,
scales: *const fmpq,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_evaluate_all_fmpq(
ev: *mut fmpq,
A: *const fmpq_mpoly_struct,
vals: *const *mut fmpq,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_evaluate_one_fmpq(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
var: slong,
val: *const fmpq,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_compose_fmpq_poly(
A: *mut fmpq_poly_struct,
B: *const fmpq_mpoly_struct,
C: *const *mut fmpq_poly_struct,
ctxB: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_compose_fmpq_mpoly(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
C: *const *mut fmpq_mpoly_struct,
ctxB: *const fmpq_mpoly_ctx_struct,
ctxAC: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_compose_fmpq_mpoly_gen(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
c: *const slong,
ctxB: *const fmpq_mpoly_ctx_struct,
ctxAC: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_mul(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
C: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_pow_fmpz(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
k: *const fmpz,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_pow_ui(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
k: ulong,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_divides(
poly1: *mut fmpq_mpoly_struct,
poly2: *const fmpq_mpoly_struct,
poly3: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_div(
q: *mut fmpq_mpoly_struct,
poly2: *const fmpq_mpoly_struct,
poly3: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_divrem(
q: *mut fmpq_mpoly_struct,
r: *mut fmpq_mpoly_struct,
poly2: *const fmpq_mpoly_struct,
poly3: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_divrem_ideal(
q: *mut *mut fmpq_mpoly_struct,
r: *mut fmpq_mpoly_struct,
poly2: *const fmpq_mpoly_struct,
poly3: *const *mut fmpq_mpoly_struct,
len: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_sqrt(
Q: *mut fmpq_mpoly_struct,
A: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_is_square(
A: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_content(
g: *mut fmpq,
A: *const fmpq_mpoly_struct,
UNUSED_ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_term_content(
M: *mut fmpq_mpoly_struct,
A: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_content_vars(
g: *mut fmpq_mpoly_struct,
A: *const fmpq_mpoly_struct,
vars: *mut slong,
vars_length: slong,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_gcd(
G: *mut fmpq_mpoly_struct,
A: *const fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_inflate(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
shift: *const fmpz,
stride: *const fmpz,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_gcd_cofactors(
G: *mut fmpq_mpoly_struct,
Abar: *mut fmpq_mpoly_struct,
Bbar: *mut fmpq_mpoly_struct,
A: *const fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_gcd_hensel(
G: *mut fmpq_mpoly_struct,
A: *const fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_gcd_brown(
G: *mut fmpq_mpoly_struct,
A: *const fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_gcd_subresultant(
G: *mut fmpq_mpoly_struct,
A: *const fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_gcd_zippel(
G: *mut fmpq_mpoly_struct,
A: *const fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_gcd_zippel2(
G: *mut fmpq_mpoly_struct,
A: *const fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_resultant(
R: *mut fmpq_mpoly_struct,
A: *const fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
var: slong,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_discriminant(
R: *mut fmpq_mpoly_struct,
A: *const fmpq_mpoly_struct,
var: slong,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
///Internal functions (guaranteed to change without notice)
pub fn mpoly_void_ring_init_fmpq_mpoly_ctx(
R: *mut mpoly_void_ring_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_repack_bits(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_struct,
Abits: flint_bitcnt_t,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_univar_init(
A: *mut fmpq_mpoly_univar_struct,
UNUSED_ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_univar_clear(
A: *mut fmpq_mpoly_univar_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_univar_fit_length(
A: *mut fmpq_mpoly_univar_struct,
length: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_univar_print_pretty(
A: *const fmpq_mpoly_univar_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_univar_assert_canonical(
A: *mut fmpq_mpoly_univar_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_to_univar(
A: *mut fmpq_mpoly_univar_struct,
B: *const fmpq_mpoly_struct,
var: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_from_univar_bits(
A: *mut fmpq_mpoly_struct,
Abits: flint_bitcnt_t,
B: *const fmpq_mpoly_univar_struct,
var: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_from_univar(
A: *mut fmpq_mpoly_struct,
B: *const fmpq_mpoly_univar_struct,
var: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_univar_swap(
A: *mut fmpq_mpoly_univar_struct,
B: *mut fmpq_mpoly_univar_struct,
UNUSED_ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_univar_degree_fits_si(
A: *const fmpq_mpoly_univar_struct,
UNUSED_ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_univar_length(
A: *const fmpq_mpoly_univar_struct,
UNUSED_ctx: *const fmpq_mpoly_ctx_struct,
) -> slong;
pub fn fmpq_mpoly_univar_get_term_exp_si(
A: *mut fmpq_mpoly_univar_struct,
i: slong,
UNUSED_ctx: *const fmpq_mpoly_ctx_struct,
) -> slong;
pub fn fmpq_mpoly_univar_get_term_coeff(
c: *mut fmpq_mpoly_struct,
A: *const fmpq_mpoly_univar_struct,
i: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_univar_swap_term_coeff(
c: *mut fmpq_mpoly_struct,
A: *mut fmpq_mpoly_univar_struct,
i: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
///Internal consistency checks
pub fn fmpq_mpoly_remainder_test(
r: *const fmpq_mpoly_struct,
g: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
}
/* fmpq_mpoly_factor.h */
unsafe extern "C" {
pub fn fmpq_mpoly_factor_init(
f: *mut fmpq_mpoly_factor_struct,
UNUSED_ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_factor_realloc(
f: *mut fmpq_mpoly_factor_struct,
alloc: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_factor_fit_length(
f: *mut fmpq_mpoly_factor_struct,
len: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_factor_clear(
f: *mut fmpq_mpoly_factor_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_factor_length(
f: *const fmpq_mpoly_factor_struct,
UNUSED_ctx: *const fmpq_mpoly_ctx_struct,
) -> slong;
pub fn fmpq_mpoly_factor_get_constant_fmpq(
c: *mut fmpq,
f: *const fmpq_mpoly_factor_struct,
UNUSED_ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_factor_get_base(
p: *mut fmpq_mpoly_struct,
f: *const fmpq_mpoly_factor_struct,
i: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_factor_swap_base(
p: *mut fmpq_mpoly_struct,
f: *mut fmpq_mpoly_factor_struct,
i: slong,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_factor_get_exp_si(
f: *mut fmpq_mpoly_factor_struct,
i: slong,
UNUSED_ctx: *const fmpq_mpoly_ctx_struct,
) -> slong;
pub fn fmpq_mpoly_factor_sort(
f: *mut fmpq_mpoly_factor_struct,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_factor_make_monic(
f: *mut fmpq_mpoly_factor_struct,
UNUSED_ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_factor_make_integral(
f: *mut fmpq_mpoly_factor_struct,
UNUSED_ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_factor_squarefree(
f: *mut fmpq_mpoly_factor_struct,
A: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_mpoly_factor(
f: *mut fmpq_mpoly_factor_struct,
A: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpq_mpoly_factor_swap_fmpz_mpoly_factor(
f: *mut fmpq_mpoly_factor_struct,
g: *mut fmpz_mpoly_factor_struct,
c: *const fmpq,
ctx: *const fmpq_mpoly_ctx_struct,
);
pub fn fmpq_mpoly_factor_expand(
A: *mut fmpq_mpoly_struct,
f: *const fmpq_mpoly_factor_struct,
ctx: *const fmpq_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
}
/* fmpq_poly.h */
#[repr(C)]
pub struct fmpq_poly_powers_precomp_struct {
pub powers: *mut fmpq_poly_struct,
pub len: slong,
}
impl Default for fmpq_poly_powers_precomp_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type fmpq_poly_powers_precomp_t = [fmpq_poly_powers_precomp_struct; 1usize];
unsafe extern "C" {
pub fn fmpq_poly_init(poly: *mut fmpq_poly_struct);
pub fn fmpq_poly_init2(poly: *mut fmpq_poly_struct, alloc: slong);
pub fn fmpq_poly_realloc(poly: *mut fmpq_poly_struct, alloc: slong);
pub fn fmpq_poly_fit_length(poly: *mut fmpq_poly_struct, len: slong);
pub fn _fmpq_poly_set_length(poly: *mut fmpq_poly_struct, len: slong);
pub fn fmpq_poly_clear(poly: *mut fmpq_poly_struct);
pub fn _fmpq_poly_normalise(poly: *mut fmpq_poly_struct);
pub fn fmpq_poly_get_numerator(
res: *mut fmpz_poly_struct,
poly: *const fmpq_poly_struct,
);
pub fn fmpq_poly_get_denominator(den: *mut fmpz, poly: *const fmpq_poly_struct);
pub fn _fmpq_poly_canonicalise(rpoly: *mut fmpz, den: *mut fmpz, len: slong);
pub fn fmpq_poly_canonicalise(poly: *mut fmpq_poly_struct);
pub fn _fmpq_poly_is_canonical(
poly: *const fmpz,
den: *const fmpz,
len: slong,
) -> ::std::os::raw::c_int;
pub fn fmpq_poly_is_canonical(
poly: *const fmpq_poly_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_poly_degree(poly: *const fmpq_poly_struct) -> slong;
pub fn fmpq_poly_length(poly: *const fmpq_poly_struct) -> slong;
pub fn fmpq_poly_randtest(
f: *mut fmpq_poly_struct,
state: *mut flint_rand_struct,
len: slong,
bits_in: flint_bitcnt_t,
);
pub fn fmpq_poly_randtest_unsigned(
f: *mut fmpq_poly_struct,
state: *mut flint_rand_struct,
len: slong,
bits_in: flint_bitcnt_t,
);
pub fn fmpq_poly_randtest_not_zero(
f: *mut fmpq_poly_struct,
state: *mut flint_rand_struct,
len: slong,
bits_in: flint_bitcnt_t,
);
pub fn fmpq_poly_set(poly1: *mut fmpq_poly_struct, poly2: *const fmpq_poly_struct);
pub fn fmpq_poly_set_si(poly: *mut fmpq_poly_struct, x: slong);
pub fn fmpq_poly_set_ui(poly: *mut fmpq_poly_struct, x: ulong);
pub fn fmpq_poly_set_fmpz(poly: *mut fmpq_poly_struct, x: *const fmpz);
pub fn fmpq_poly_set_fmpq(poly: *mut fmpq_poly_struct, x: *const fmpq);
pub fn fmpq_poly_set_fmpz_poly(
rop: *mut fmpq_poly_struct,
op: *const fmpz_poly_struct,
);
pub fn _fmpq_poly_get_nmod_poly(
rop: *mut nmod_poly_struct,
op: *const fmpq_poly_struct,
);
pub fn fmpq_poly_get_nmod_poly_den(
rop: *mut nmod_poly_struct,
op: *const fmpq_poly_struct,
den: ::std::os::raw::c_int,
);
pub fn fmpq_poly_get_nmod_poly(
rop: *mut nmod_poly_struct,
op: *const fmpq_poly_struct,
);
pub fn fmpq_poly_set_nmod_poly(
rop: *mut fmpq_poly_struct,
op: *const nmod_poly_struct,
);
pub fn _fmpq_poly_set_str(
poly: *mut fmpz,
den: *mut fmpz,
str_: *const ::std::os::raw::c_char,
len: slong,
) -> ::std::os::raw::c_int;
pub fn fmpq_poly_set_str(
poly: *mut fmpq_poly_struct,
str_: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn fmpq_poly_get_str(
poly: *const fmpq_poly_struct,
) -> *mut ::std::os::raw::c_char;
pub fn fmpq_poly_get_str_pretty(
poly: *const fmpq_poly_struct,
var: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
pub fn _fmpq_poly_get_str_pretty(
poly: *const fmpz,
den: *const fmpz,
len: slong,
var: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
pub fn fmpq_poly_zero(poly: *mut fmpq_poly_struct);
pub fn fmpq_poly_one(poly: *mut fmpq_poly_struct);
pub fn fmpq_poly_neg(poly1: *mut fmpq_poly_struct, poly2: *const fmpq_poly_struct);
pub fn fmpq_poly_inv(poly1: *mut fmpq_poly_struct, poly2: *const fmpq_poly_struct);
pub fn fmpq_poly_swap(poly1: *mut fmpq_poly_struct, poly2: *mut fmpq_poly_struct);
pub fn fmpq_poly_truncate(poly: *mut fmpq_poly_struct, n: slong);
pub fn fmpq_poly_set_trunc(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn fmpq_poly_get_slice(
rop: *mut fmpq_poly_struct,
op: *const fmpq_poly_struct,
i: slong,
j: slong,
);
pub fn fmpq_poly_reverse(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn fmpq_poly_get_coeff_fmpz(
x: *mut fmpz,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn fmpq_poly_get_coeff_fmpq(
x: *mut fmpq,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn fmpq_poly_set_coeff_si(poly: *mut fmpq_poly_struct, n: slong, x: slong);
pub fn fmpq_poly_set_coeff_ui(poly: *mut fmpq_poly_struct, n: slong, x: ulong);
pub fn fmpq_poly_set_coeff_fmpz(
poly: *mut fmpq_poly_struct,
n: slong,
x: *const fmpz,
);
pub fn fmpq_poly_set_coeff_fmpq(
poly: *mut fmpq_poly_struct,
n: slong,
x: *const fmpq,
);
pub fn fmpq_poly_equal(
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpq_poly_cmp(
lpoly: *const fmpz,
lden: *const fmpz,
rpoly: *const fmpz,
rden: *const fmpz,
len: slong,
) -> ::std::os::raw::c_int;
pub fn fmpq_poly_cmp(
left: *const fmpq_poly_struct,
right: *const fmpq_poly_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpq_poly_equal_trunc(
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
n: slong,
) -> ::std::os::raw::c_int;
pub fn fmpq_poly_equal_trunc(
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
n: slong,
) -> ::std::os::raw::c_int;
pub fn fmpq_poly_is_zero(poly: *const fmpq_poly_struct) -> ::std::os::raw::c_int;
pub fn fmpq_poly_is_one(poly: *const fmpq_poly_struct) -> ::std::os::raw::c_int;
pub fn fmpq_poly_is_gen(op: *const fmpq_poly_struct) -> ::std::os::raw::c_int;
pub fn _fmpq_poly_add(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
);
pub fn fmpq_poly_add(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
);
pub fn _fmpq_poly_add_can(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
can: ::std::os::raw::c_int,
);
pub fn fmpq_poly_add_can(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
can: ::std::os::raw::c_int,
);
pub fn fmpq_poly_add_si(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
c: slong,
);
pub fn fmpq_poly_add_fmpz(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
c: *const fmpz,
);
pub fn fmpq_poly_add_fmpq(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
c: *const fmpq,
);
pub fn _fmpq_poly_add_series(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
n: slong,
);
pub fn fmpq_poly_add_series(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_add_series_can(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
n: slong,
can: ::std::os::raw::c_int,
);
pub fn fmpq_poly_add_series_can(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
n: slong,
can: ::std::os::raw::c_int,
);
pub fn _fmpq_poly_sub(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
);
pub fn fmpq_poly_sub(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
);
pub fn fmpq_poly_sub_si(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
c: slong,
);
pub fn fmpq_poly_si_sub(
res: *mut fmpq_poly_struct,
c: slong,
poly: *const fmpq_poly_struct,
);
pub fn fmpq_poly_sub_fmpz(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
c: *const fmpz,
);
pub fn fmpq_poly_fmpz_sub(
res: *mut fmpq_poly_struct,
c: *const fmpz,
poly: *const fmpq_poly_struct,
);
pub fn fmpq_poly_sub_fmpq(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
c: *const fmpq,
);
pub fn fmpq_poly_fmpq_sub(
res: *mut fmpq_poly_struct,
c: *const fmpq,
poly: *const fmpq_poly_struct,
);
pub fn _fmpq_poly_sub_can(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
can: ::std::os::raw::c_int,
);
pub fn fmpq_poly_sub_can(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
can: ::std::os::raw::c_int,
);
pub fn _fmpq_poly_sub_series(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
n: slong,
);
pub fn fmpq_poly_sub_series(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_sub_series_can(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
n: slong,
can: ::std::os::raw::c_int,
);
pub fn fmpq_poly_sub_series_can(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
n: slong,
can: ::std::os::raw::c_int,
);
pub fn _fmpq_poly_scalar_mul_si(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
c: slong,
);
pub fn _fmpq_poly_scalar_mul_ui(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
c: ulong,
);
pub fn _fmpq_poly_scalar_mul_fmpz(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
c: *const fmpz,
);
pub fn _fmpq_poly_scalar_mul_fmpq(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
r: *const fmpz,
s: *const fmpz,
);
pub fn fmpq_poly_scalar_mul_si(
rop: *mut fmpq_poly_struct,
op: *const fmpq_poly_struct,
c: slong,
);
pub fn fmpq_poly_scalar_mul_ui(
rop: *mut fmpq_poly_struct,
op: *const fmpq_poly_struct,
c: ulong,
);
pub fn fmpq_poly_scalar_mul_fmpz(
rop: *mut fmpq_poly_struct,
op: *const fmpq_poly_struct,
c: *const fmpz,
);
pub fn fmpq_poly_scalar_mul_fmpq(
rop: *mut fmpq_poly_struct,
op: *const fmpq_poly_struct,
c: *const fmpq,
);
pub fn _fmpq_poly_scalar_div_si(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
c: slong,
);
pub fn _fmpq_poly_scalar_div_ui(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
c: ulong,
);
pub fn _fmpq_poly_scalar_div_fmpz(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
c: *const fmpz,
);
pub fn _fmpq_poly_scalar_div_fmpq(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
r: *const fmpz,
s: *const fmpz,
);
pub fn fmpq_poly_scalar_div_si(
rop: *mut fmpq_poly_struct,
op: *const fmpq_poly_struct,
c: slong,
);
pub fn fmpq_poly_scalar_div_ui(
rop: *mut fmpq_poly_struct,
op: *const fmpq_poly_struct,
c: ulong,
);
pub fn fmpq_poly_scalar_div_fmpz(
rop: *mut fmpq_poly_struct,
op: *const fmpq_poly_struct,
c: *const fmpz,
);
pub fn fmpq_poly_scalar_div_fmpq(
rop: *mut fmpq_poly_struct,
op: *const fmpq_poly_struct,
c: *const fmpq,
);
pub fn _fmpq_poly_mul(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
);
pub fn fmpq_poly_mul(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
);
pub fn _fmpq_poly_mullow(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
n: slong,
);
pub fn fmpq_poly_mullow(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
n: slong,
);
pub fn fmpq_poly_addmul(
rop: *mut fmpq_poly_struct,
op1: *const fmpq_poly_struct,
op2: *const fmpq_poly_struct,
);
pub fn fmpq_poly_submul(
rop: *mut fmpq_poly_struct,
op1: *const fmpq_poly_struct,
op2: *const fmpq_poly_struct,
);
pub fn _fmpq_poly_pow(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
e: ulong,
);
pub fn fmpq_poly_pow(
rpoly: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
e: ulong,
);
pub fn _fmpq_poly_pow_trunc(
res: *mut fmpz,
resden: *mut fmpz,
f: *const fmpz,
fden: *const fmpz,
flen: slong,
exp: ulong,
len: slong,
);
pub fn fmpq_poly_pow_trunc(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
exp: ulong,
len: slong,
);
pub fn fmpq_poly_shift_left(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn fmpq_poly_shift_right(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn fmpq_poly_divrem(
Q: *mut fmpq_poly_struct,
R: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
);
pub fn fmpq_poly_div(
Q: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
);
pub fn fmpq_poly_rem(
R: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
);
pub fn _fmpq_poly_powers_precompute(
B: *const fmpz,
UNUSED_denB: *const fmpz,
len: slong,
) -> *mut fmpq_poly_struct;
pub fn fmpq_poly_powers_precompute(
pinv: *mut fmpq_poly_powers_precomp_struct,
poly: *mut fmpq_poly_struct,
);
pub fn _fmpq_poly_powers_clear(powers: *mut fmpq_poly_struct, len: slong);
pub fn fmpq_poly_powers_clear(pinv: *mut fmpq_poly_powers_precomp_struct);
pub fn _fmpq_poly_rem_powers_precomp(
A: *mut fmpz,
denA: *mut fmpz,
m: slong,
B: *const fmpz,
denB: *const fmpz,
n: slong,
powers: *mut fmpq_poly_struct,
);
pub fn fmpq_poly_rem_powers_precomp(
R: *mut fmpq_poly_struct,
A: *const fmpq_poly_struct,
B: *const fmpq_poly_struct,
B_inv: *const fmpq_poly_powers_precomp_struct,
);
pub fn _fmpq_poly_divides(
qpoly: *mut fmpz,
qden: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
) -> ::std::os::raw::c_int;
pub fn fmpq_poly_divides(
q: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
) -> ::std::os::raw::c_int;
pub fn fmpq_poly_remove(
q: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
) -> slong;
pub fn _fmpq_poly_inv_series_newton(
Qinv: *mut fmpz,
Qinvden: *mut fmpz,
Q: *const fmpz,
Qden: *const fmpz,
Qlen: slong,
n: slong,
);
pub fn fmpq_poly_inv_series_newton(
Qinv: *mut fmpq_poly_struct,
Q: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_inv_series(
Qinv: *mut fmpz,
Qinvden: *mut fmpz,
Q: *const fmpz,
Qden: *const fmpz,
Qlen: slong,
n: slong,
);
pub fn fmpq_poly_inv_series(
Qinv: *mut fmpq_poly_struct,
Q: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_div_series(
Q: *mut fmpz,
denQ: *mut fmpz,
A: *const fmpz,
denA: *const fmpz,
lenA: slong,
B: *const fmpz,
denB: *const fmpz,
lenB: slong,
n: slong,
);
pub fn fmpq_poly_div_series(
Q: *mut fmpq_poly_struct,
A: *const fmpq_poly_struct,
B: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_gcd(
G: *mut fmpz,
denG: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
);
pub fn fmpq_poly_gcd(
G: *mut fmpq_poly_struct,
A: *const fmpq_poly_struct,
B: *const fmpq_poly_struct,
);
pub fn _fmpq_poly_xgcd(
G: *mut fmpz,
denG: *mut fmpz,
S: *mut fmpz,
denS: *mut fmpz,
T: *mut fmpz,
denT: *mut fmpz,
A: *const fmpz,
denA: *const fmpz,
lenA: slong,
B: *const fmpz,
denB: *const fmpz,
lenB: slong,
);
pub fn fmpq_poly_xgcd(
G: *mut fmpq_poly_struct,
S: *mut fmpq_poly_struct,
T: *mut fmpq_poly_struct,
A: *const fmpq_poly_struct,
B: *const fmpq_poly_struct,
);
pub fn _fmpq_poly_lcm(
G: *mut fmpz,
denG: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
);
pub fn fmpq_poly_lcm(
L: *mut fmpq_poly_struct,
A: *const fmpq_poly_struct,
B: *const fmpq_poly_struct,
);
pub fn _fmpq_poly_resultant(
rnum: *mut fmpz,
rden: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
);
pub fn fmpq_poly_resultant(
r: *mut fmpq,
f: *const fmpq_poly_struct,
g: *const fmpq_poly_struct,
);
pub fn _fmpq_poly_resultant_div(
rnum: *mut fmpz,
rden: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
divisor: *const fmpz,
nbits: slong,
);
pub fn fmpq_poly_resultant_div(
r: *mut fmpq,
f: *const fmpq_poly_struct,
g: *const fmpq_poly_struct,
divisor: *const fmpz,
nbits: slong,
);
pub fn _fmpq_poly_derivative(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
);
pub fn fmpq_poly_derivative(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
);
pub fn _fmpq_poly_nth_derivative(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
n: ulong,
len: slong,
);
pub fn fmpq_poly_nth_derivative(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: ulong,
);
pub fn _fmpq_poly_integral(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
);
pub fn fmpq_poly_integral(res: *mut fmpq_poly_struct, poly: *const fmpq_poly_struct);
pub fn _fmpq_poly_integral_offset(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
m: slong,
);
pub fn _fmpq_poly_invsqrt_series(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
n: slong,
);
pub fn fmpq_poly_invsqrt_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_sqrt_series(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
n: slong,
);
pub fn fmpq_poly_sqrt_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_power_sums(
res: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
len: slong,
n: slong,
);
pub fn fmpq_poly_power_sums(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_power_sums_to_poly(
res: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
);
pub fn fmpq_poly_power_sums_to_fmpz_poly(
res: *mut fmpz_poly_struct,
Q: *const fmpq_poly_struct,
);
pub fn fmpq_poly_power_sums_to_poly(
res: *mut fmpq_poly_struct,
Q: *const fmpq_poly_struct,
);
pub fn _fmpq_poly_log_series(
g: *mut fmpz,
gden: *mut fmpz,
f: *const fmpz,
fden: *const fmpz,
flen: slong,
n: slong,
);
pub fn fmpq_poly_log_series(
res: *mut fmpq_poly_struct,
f: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_exp_series(
g: *mut fmpz,
gden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_exp_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_exp_expinv_series(
g: *mut fmpz,
gden: *mut fmpz,
r: *mut fmpz,
rden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_exp_expinv_series(
res1: *mut fmpq_poly_struct,
res2: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_atan_series(
g: *mut fmpz,
gden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_atan_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_atanh_series(
g: *mut fmpz,
gden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_atanh_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_asin_series(
g: *mut fmpz,
gden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_asin_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_asinh_series(
g: *mut fmpz,
gden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_asinh_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_tan_series(
g: *mut fmpz,
gden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_tan_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_sin_series(
g: *mut fmpz,
gden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_sin_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_cos_series(
g: *mut fmpz,
gden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_cos_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_sin_cos_series_basecase(
S: *mut fmpz,
Sden: *mut fmpz,
C: *mut fmpz,
Cden: *mut fmpz,
A: *const fmpz,
Aden: *const fmpz,
Alen: slong,
n: slong,
);
pub fn _fmpq_poly_sin_cos_series_newton(
S: *mut fmpz,
Sden: *mut fmpz,
C: *mut fmpz,
Cden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
cutoff: slong,
n: slong,
);
pub fn _fmpq_poly_sin_cos_series(
s: *mut fmpz,
sden: *mut fmpz,
c: *mut fmpz,
cden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_sin_cos_series(
res1: *mut fmpq_poly_struct,
res2: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_sinh_series(
g: *mut fmpz,
gden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_sinh_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_cosh_series(
g: *mut fmpz,
gden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_cosh_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_sinh_cosh_series(
s: *mut fmpz,
sden: *mut fmpz,
c: *mut fmpz,
cden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_sinh_cosh_series(
res1: *mut fmpq_poly_struct,
res2: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_tanh_series(
g: *mut fmpz,
gden: *mut fmpz,
h: *const fmpz,
hden: *const fmpz,
hlen: slong,
n: slong,
);
pub fn fmpq_poly_tanh_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_legendre_p(coeffs: *mut fmpz, den: *mut fmpz, n: ulong);
pub fn fmpq_poly_legendre_p(poly: *mut fmpq_poly_struct, n: ulong);
pub fn _fmpq_poly_laguerre_l(coeffs: *mut fmpz, den: *mut fmpz, n: ulong);
pub fn fmpq_poly_laguerre_l(poly: *mut fmpq_poly_struct, n: ulong);
pub fn _fmpq_poly_gegenbauer_c(
coeffs: *mut fmpz,
den: *mut fmpz,
n: ulong,
a: *const fmpq,
);
pub fn fmpq_poly_gegenbauer_c(poly: *mut fmpq_poly_struct, n: ulong, a: *const fmpq);
pub fn _fmpq_poly_evaluate_fmpz(
rnum: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
a: *const fmpz,
);
pub fn fmpq_poly_evaluate_fmpz(
res: *mut fmpq,
poly: *const fmpq_poly_struct,
a: *const fmpz,
);
pub fn _fmpq_poly_evaluate_fmpq(
rnum: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
anum: *const fmpz,
aden: *const fmpz,
);
pub fn fmpq_poly_evaluate_fmpq(
res: *mut fmpq,
poly: *const fmpq_poly_struct,
a: *const fmpq,
);
pub fn _fmpq_poly_interpolate_fmpq_vec(
coeffs: *mut fmpz,
den: *mut fmpz,
xs: *const fmpq,
ys: *const fmpq,
n: slong,
) -> ::std::os::raw::c_int;
pub fn fmpq_poly_interpolate_fmpq_vec(
poly: *mut fmpq_poly_struct,
xs: *const fmpq,
ys: *const fmpq,
n: slong,
) -> ::std::os::raw::c_int;
pub fn fmpq_poly_interpolate_fmpz_fmpq_vec(
poly: *mut fmpq_poly_struct,
xs: *const fmpz,
ys: *const fmpq,
n: slong,
) -> ::std::os::raw::c_int;
pub fn fmpq_poly_interpolate_fmpz_vec(
poly: *mut fmpq_poly_struct,
xs: *const fmpz,
ys: *const fmpz,
n: slong,
) -> ::std::os::raw::c_int;
pub fn _fmpq_poly_interpolation_weights(
w: *mut fmpz,
wden: *mut fmpz,
xs: *const fmpq,
len: slong,
);
pub fn _fmpq_poly_interpolate_fast_precomp(
poly: *mut fmpz,
den: *mut fmpz,
ys: *const fmpq,
tree: *const *mut fmpz,
weights: *const fmpz,
len: slong,
);
pub fn _fmpq_poly_interpolate_fast(
poly: *mut fmpz,
den: *mut fmpz,
xs: *const fmpq,
ys: *const fmpq,
len: slong,
);
pub fn fmpq_poly_interpolate_fast(
poly: *mut fmpq_poly_struct,
xs: *const fmpq,
ys: *const fmpq,
n: slong,
);
pub fn _fmpq_poly_interpolate_multi_mod(
poly: *mut fmpz,
den: *mut fmpz,
xs: *const fmpq,
ys: *const fmpq,
n: slong,
);
pub fn fmpq_poly_interpolate_multi_mod(
poly: *mut fmpq_poly_struct,
xs: *const fmpq,
ys: *const fmpq,
n: slong,
);
pub fn _fmpq_poly_interpolate_barycentric(
poly: *mut fmpz,
den: *mut fmpz,
xs: *const fmpq,
ys: *const fmpq,
n: slong,
);
pub fn fmpq_poly_interpolate_barycentric(
poly: *mut fmpq_poly_struct,
xs: *const fmpq,
ys: *const fmpq,
n: slong,
);
pub fn _fmpq_poly_compose(
res: *mut fmpz,
den: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
);
pub fn fmpq_poly_compose(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
);
pub fn _fmpq_poly_rescale(
res: *mut fmpz,
denr: *mut fmpz,
poly: *const fmpz,
den: *const fmpz,
len: slong,
xnum: *const fmpz,
xden: *const fmpz,
);
pub fn fmpq_poly_rescale(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
x: *const fmpq,
);
pub fn _fmpq_poly_compose_series_horner(
res: *mut fmpz,
den: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
n: slong,
);
pub fn fmpq_poly_compose_series_horner(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_compose_series_brent_kung(
res: *mut fmpz,
den: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
n: slong,
);
pub fn fmpq_poly_compose_series_brent_kung(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_compose_series_kinoshita_li(
res: *mut fmpz,
den: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
n: slong,
);
pub fn fmpq_poly_compose_series_kinoshita_li(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_compose_series(
res: *mut fmpz,
den: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
poly2: *const fmpz,
den2: *const fmpz,
len2: slong,
n: slong,
);
pub fn fmpq_poly_compose_series(
res: *mut fmpq_poly_struct,
poly1: *const fmpq_poly_struct,
poly2: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_revert_series_lagrange(
res: *mut fmpz,
den: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
n: slong,
);
pub fn fmpq_poly_revert_series_lagrange(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_revert_series_lagrange_fast(
res: *mut fmpz,
den: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
n: slong,
);
pub fn fmpq_poly_revert_series_lagrange_fast(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_revert_series_newton(
res: *mut fmpz,
den: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
n: slong,
);
pub fn fmpq_poly_revert_series_newton(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_revert_series(
res: *mut fmpz,
den: *mut fmpz,
poly1: *const fmpz,
den1: *const fmpz,
len1: slong,
n: slong,
);
pub fn fmpq_poly_revert_series(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
n: slong,
);
pub fn _fmpq_poly_content(
res: *mut fmpq,
poly: *const fmpz,
den: *const fmpz,
len: slong,
);
pub fn fmpq_poly_content(res: *mut fmpq, poly: *const fmpq_poly_struct);
pub fn _fmpq_poly_primitive_part(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
UNUSED_den: *const fmpz,
len: slong,
);
pub fn fmpq_poly_primitive_part(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
);
pub fn _fmpq_poly_is_monic(
poly: *const fmpz,
den: *const fmpz,
len: slong,
) -> ::std::os::raw::c_int;
pub fn fmpq_poly_is_monic(poly: *const fmpq_poly_struct) -> ::std::os::raw::c_int;
pub fn _fmpq_poly_make_monic(
rpoly: *mut fmpz,
rden: *mut fmpz,
poly: *const fmpz,
UNUSED_den: *const fmpz,
len: slong,
);
pub fn fmpq_poly_make_monic(
res: *mut fmpq_poly_struct,
poly: *const fmpq_poly_struct,
);
pub fn fmpq_poly_is_squarefree(
poly: *const fmpq_poly_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpq_poly_discriminant(
res: *mut fmpq,
poly: *const fmpz,
den: *const fmpz,
len: slong,
);
pub fn fmpq_poly_discriminant(res: *mut fmpq, poly: *const fmpq_poly_struct);
pub fn _fmpq_poly_fprint(
file: *mut FILE,
poly: *const fmpz,
den: *const fmpz,
len: slong,
) -> ::std::os::raw::c_int;
pub fn fmpq_poly_fprint(
file: *mut FILE,
poly: *const fmpq_poly_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpq_poly_fprint_pretty(
file: *mut FILE,
poly: *const fmpz,
den: *const fmpz,
len: slong,
x: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn fmpq_poly_fprint_pretty(
file: *mut FILE,
poly: *const fmpq_poly_struct,
var: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn fmpq_poly_fread(
file: *mut FILE,
poly: *mut fmpq_poly_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpq_poly_print(
poly: *const fmpz,
den: *const fmpz,
len: slong,
) -> ::std::os::raw::c_int;
pub fn fmpq_poly_print(poly: *const fmpq_poly_struct) -> ::std::os::raw::c_int;
pub fn _fmpq_poly_print_pretty(
poly: *const fmpz,
den: *const fmpz,
len: slong,
x: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn fmpq_poly_print_pretty(
poly: *const fmpq_poly_struct,
var: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn fmpq_poly_read(poly: *mut fmpq_poly_struct) -> ::std::os::raw::c_int;
pub fn fmpq_poly_debug(poly: *const fmpq_poly_struct) -> ::std::os::raw::c_int;
}
/* fmpq_types.h */
#[repr(C)]
pub struct fmpq_mat_struct {
pub entries: *mut fmpq,
pub r: slong,
pub c: slong,
pub stride: slong,
}
impl Default for fmpq_mat_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type fmpq_mat_t = [fmpq_mat_struct; 1usize];
#[repr(C)]
pub struct fmpq_poly_struct {
pub coeffs: *mut fmpz,
pub alloc: slong,
pub length: slong,
pub den: fmpz_t,
}
impl Default for fmpq_poly_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type fmpq_poly_t = [fmpq_poly_struct; 1usize];
#[repr(C)]
pub struct fmpq_mpoly_struct {
pub content: fmpq_t,
pub zpoly: fmpz_mpoly_t,
}
impl Default for fmpq_mpoly_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type fmpq_mpoly_t = [fmpq_mpoly_struct; 1usize];
#[repr(C)]
pub struct fmpq_mpoly_factor_struct {
pub constant: fmpq_t,
pub poly: *mut fmpq_mpoly_struct,
pub exp: *mut fmpz,
pub num: slong,
pub alloc: slong,
}
impl Default for fmpq_mpoly_factor_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type fmpq_mpoly_factor_t = [fmpq_mpoly_factor_struct; 1usize];
/* fmpq_vec.h */
unsafe extern "C" {
pub fn _fmpq_vec_init(len: slong) -> *mut fmpq;
pub fn _fmpq_vec_clear(vec: *mut fmpq, len: slong);
pub fn _fmpq_vec_randtest(
f: *mut fmpq,
state: *mut flint_rand_struct,
len: slong,
bits: flint_bitcnt_t,
);
pub fn _fmpq_vec_randtest_uniq_sorted(
vec: *mut fmpq,
state: *mut flint_rand_struct,
len: slong,
bits: flint_bitcnt_t,
);
pub fn _fmpq_vec_max_height(height: *mut fmpz, vec: *const fmpq, len: slong);
pub fn _fmpq_vec_max_height_bits(vec: *const fmpq, len: slong) -> flint_bitcnt_t;
pub fn _fmpq_vec_sort(vec: *mut fmpq, len: slong);
pub fn _fmpq_vec_equal(
vec1: *const fmpq,
vec2: *const fmpq,
len: slong,
) -> ::std::os::raw::c_int;
pub fn _fmpq_vec_set_fmpz_vec(res: *mut fmpq, vec: *const fmpz, len: slong);
pub fn _fmpq_vec_get_fmpz_vec_fmpz(
num: *mut fmpz,
den: *mut fmpz,
a: *const fmpq,
len: slong,
);
pub fn _fmpq_vec_dot(
res: *mut fmpq,
vec1: *const fmpq,
vec2: *const fmpq,
len: slong,
);
pub fn _fmpq_vec_fprint(
file: *mut FILE,
vec: *const fmpq,
len: slong,
) -> ::std::os::raw::c_int;
pub fn _fmpq_vec_print(vec: *const fmpq, len: slong) -> ::std::os::raw::c_int;
}
/* fmpz.h */
#[repr(C)]
pub struct _fmpz_multi_CRT_instr {
pub a_idx: slong,
pub b_idx: slong,
pub c_idx: slong,
pub b_modulus: fmpz_t,
pub c_modulus: fmpz_t,
}
impl Default for _fmpz_multi_CRT_instr {
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_multi_CRT_struct {
pub prog: *mut _fmpz_multi_CRT_instr,
pub moduli: *mut fmpz,
pub fracmoduli: *mut fmpz,
pub final_modulus: fmpz_t,
pub moduli_count: slong,
pub min_modulus_bits: flint_bitcnt_t,
pub length: slong,
pub alloc: slong,
pub localsize: slong,
pub temp1loc: slong,
pub temp2loc: slong,
pub temp3loc: slong,
pub temp4loc: slong,
pub good: ::std::os::raw::c_int,
}
impl Default for fmpz_multi_CRT_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_multi_CRT_t = [fmpz_multi_CRT_struct; 1usize];
#[repr(C)]
pub struct _fmpz_multi_mod_instr {
pub in_idx: slong,
pub out_idx: slong,
pub modulus: fmpz_t,
}
impl Default for _fmpz_multi_mod_instr {
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_multi_mod_struct {
pub prog: *mut _fmpz_multi_mod_instr,
pub moduli: *mut fmpz,
pub moduli_count: slong,
pub min_modulus_bits: flint_bitcnt_t,
pub length: slong,
pub alloc: slong,
pub localsize: slong,
pub temp1loc: slong,
pub good: ::std::os::raw::c_int,
}
impl Default for fmpz_multi_mod_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_multi_mod_t = [fmpz_multi_mod_struct; 1usize];
#[repr(C)]
pub struct crt_lut_entry {
pub mod_: nmod_t,
pub i0: ulong,
pub i1: ulong,
pub i2: ulong,
}
impl Default for crt_lut_entry {
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 mod_lut_entry {
pub mod_: nmod_t,
pub mod0: nmod_t,
pub mod1: nmod_t,
pub mod2: nmod_t,
}
impl Default for mod_lut_entry {
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_comb_struct {
pub crt_P: fmpz_multi_CRT_t,
pub mod_P: fmpz_multi_mod_t,
pub packed_multipliers: *mut ulong,
pub step: *mut slong,
pub crt_offsets: *mut slong,
pub crt_offsets_alloc: slong,
pub mod_offsets: *mut slong,
pub mod_offsets_alloc: slong,
pub crt_lu: *mut crt_lut_entry,
pub crt_lu_alloc: slong,
pub crt_klen: slong,
pub mod_lu: *mut mod_lut_entry,
pub mod_lu_alloc: slong,
pub mod_klen: slong,
pub num_primes: slong,
}
impl Default for fmpz_comb_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_comb_t = [fmpz_comb_struct; 1usize];
#[repr(C)]
pub struct fmpz_comb_temp_struct {
pub Alen: slong,
pub Tlen: slong,
pub A: *mut fmpz,
pub T: *mut fmpz,
}
impl Default for fmpz_comb_temp_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_comb_temp_t = [fmpz_comb_temp_struct; 1usize];
unsafe extern "C" {
pub fn _fmpz_cleanup();
pub fn _fmpz_demote(f: *mut fmpz);
pub fn _fmpz_demote_val(f: *mut fmpz);
pub fn fmpz_init(f: *mut fmpz);
pub fn fmpz_clear(f: *mut fmpz);
pub fn fmpz_init2(f: *mut fmpz, limbs: ulong);
pub fn _fmpz_promote_set_ui(f: *mut fmpz, v: ulong);
pub fn _fmpz_promote_set_si(f: *mut fmpz, v: slong);
pub fn _fmpz_promote_neg_ui(f: *mut fmpz, v: ulong);
pub fn _fmpz_promote_set_uiui(f: *mut fmpz, hi: ulong, lo: ulong);
pub fn _fmpz_promote_neg_uiui(f: *mut fmpz, hi: ulong, lo: ulong);
pub fn _fmpz_init_promote_set_ui(f: *mut fmpz, v: ulong);
pub fn _fmpz_init_promote_set_si(f: *mut fmpz, v: slong);
pub fn fmpz_set(f: *mut fmpz, g: *const fmpz);
pub fn fmpz_init_set(f: *mut fmpz, g: *const fmpz);
pub fn fmpz_init_set_ui(f: *mut fmpz, g: ulong);
pub fn fmpz_init_set_si(f: *mut fmpz, g: slong);
pub fn fmpz_clear_readonly(f: *mut fmpz);
pub fn _fmpz_is_canonical(x: *const fmpz) -> ::std::os::raw::c_int;
pub fn fmpz_randbits_unsigned(
f: *mut fmpz,
state: *mut flint_rand_struct,
bits: flint_bitcnt_t,
);
pub fn fmpz_randbits(
f: *mut fmpz,
state: *mut flint_rand_struct,
bits: flint_bitcnt_t,
);
pub fn fmpz_randm(f: *mut fmpz, state: *mut flint_rand_struct, m: *const fmpz);
pub fn fmpz_randtest(
f: *mut fmpz,
state: *mut flint_rand_struct,
bits: flint_bitcnt_t,
);
pub fn fmpz_randtest_unsigned(
f: *mut fmpz,
state: *mut flint_rand_struct,
bits: flint_bitcnt_t,
);
pub fn fmpz_randtest_not_zero(
f: *mut fmpz,
state: *mut flint_rand_struct,
bits: flint_bitcnt_t,
);
pub fn fmpz_randtest_mod(
f: *mut fmpz,
state: *mut flint_rand_struct,
m: *const fmpz,
);
pub fn fmpz_randtest_mod_signed(
f: *mut fmpz,
state: *mut flint_rand_struct,
m: *const fmpz,
);
pub fn fmpz_randprime(
f: *mut fmpz,
state: *mut flint_rand_struct,
bits: flint_bitcnt_t,
proved: ::std::os::raw::c_int,
);
pub fn fmpz_zero(f: *mut fmpz);
pub fn fmpz_one(f: *mut fmpz);
pub fn fmpz_swap(f: *mut fmpz, g: *mut fmpz);
pub fn fmpz_get_si(f: *const fmpz) -> slong;
pub fn fmpz_get_ui(f: *const fmpz) -> ulong;
pub fn fmpz_set_si(f: *mut fmpz, val: slong);
pub fn fmpz_set_ui(f: *mut fmpz, val: ulong);
pub fn fmpz_neg_ui(f: *mut fmpz, val: ulong);
pub fn fmpz_get_uiui(hi: *mut ulong, low: *mut ulong, f: *const fmpz);
pub fn fmpz_set_uiui(f: *mut fmpz, hi: ulong, lo: ulong);
pub fn fmpz_neg_uiui(f: *mut fmpz, hi: ulong, lo: ulong);
pub fn fmpz_get_signed_uiui(hi: *mut ulong, lo: *mut ulong, x: *const fmpz);
pub fn fmpz_set_signed_uiui(r: *mut fmpz, hi: ulong, lo: ulong);
pub fn fmpz_set_signed_uiuiui(r: *mut fmpz, hi: ulong, mid: ulong, lo: ulong);
pub fn fmpz_get_ui_array(out: *mut ulong, n: slong, in_: *const fmpz);
pub fn fmpz_set_ui_array(out: *mut fmpz, in_: *const ulong, n: slong);
pub fn fmpz_get_signed_ui_array(out: *mut ulong, n: slong, in_: *const fmpz);
pub fn fmpz_set_signed_ui_array(out: *mut fmpz, in_: *const ulong, n: slong);
pub fn fmpz_get_nmod(f: *const fmpz, mod_: nmod_t) -> ulong;
pub fn fmpz_get_d(f: *const fmpz) -> f64;
pub fn fmpz_set_d(f: *mut fmpz, c: f64);
pub fn fmpz_is_zero(f: *const fmpz) -> ::std::os::raw::c_int;
pub fn fmpz_is_one(f: *const fmpz) -> ::std::os::raw::c_int;
pub fn fmpz_is_pm1(f: *const fmpz) -> ::std::os::raw::c_int;
pub fn fmpz_equal(f: *const fmpz, g: *const fmpz) -> ::std::os::raw::c_int;
pub fn fmpz_equal_si(f: *const fmpz, g: slong) -> ::std::os::raw::c_int;
pub fn fmpz_equal_ui(f: *const fmpz, g: ulong) -> ::std::os::raw::c_int;
pub fn fmpz_cmp(f: *const fmpz, g: *const fmpz) -> ::std::os::raw::c_int;
pub fn fmpz_cmp_ui(f: *const fmpz, g: ulong) -> ::std::os::raw::c_int;
pub fn fmpz_cmp_si(f: *const fmpz, g: slong) -> ::std::os::raw::c_int;
pub fn fmpz_cmpabs(f: *const fmpz, g: *const fmpz) -> ::std::os::raw::c_int;
pub fn fmpz_cmp2abs(f: *const fmpz, g: *const fmpz) -> ::std::os::raw::c_int;
pub fn fmpz_is_even(f: *const fmpz) -> ::std::os::raw::c_int;
pub fn fmpz_is_odd(f: *const fmpz) -> ::std::os::raw::c_int;
pub fn fmpz_sgn(f: *const fmpz) -> ::std::os::raw::c_int;
pub fn fmpz_abs_fits_ui(f: *const fmpz) -> ::std::os::raw::c_int;
pub fn fmpz_fits_si(f: *const fmpz) -> ::std::os::raw::c_int;
pub fn fmpz_sizeinbase(f: *const fmpz, b: ::std::os::raw::c_int) -> usize;
pub fn fmpz_size(f: *const fmpz) -> slong;
pub fn fmpz_bits(f: *const fmpz) -> flint_bitcnt_t;
pub fn fmpz_val2(x: *const fmpz) -> flint_bitcnt_t;
pub fn fmpz_is_square(f: *const fmpz) -> ::std::os::raw::c_int;
pub fn fmpz_is_perfect_power(
root: *mut fmpz,
f: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn fmpz_abs_ubound_ui_2exp(
exp: *mut slong,
x: *const fmpz,
bits: ::std::os::raw::c_int,
) -> ulong;
pub fn fmpz_abs_lbound_ui_2exp(
exp: *mut slong,
x: *const fmpz,
bits: ::std::os::raw::c_int,
) -> ulong;
pub fn fmpz_read(f: *mut fmpz) -> ::std::os::raw::c_int;
pub fn fmpz_print(x: *const fmpz) -> ::std::os::raw::c_int;
pub fn fmpz_set_str(
f: *mut fmpz,
str_: *const ::std::os::raw::c_char,
b: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn fmpz_get_str(
str_: *mut ::std::os::raw::c_char,
b: ::std::os::raw::c_int,
f: *const fmpz,
) -> *mut ::std::os::raw::c_char;
pub fn fmpz_fread(file: *mut FILE, f: *mut fmpz) -> ::std::os::raw::c_int;
pub fn fmpz_fprint(file: *mut FILE, x: *const fmpz) -> ::std::os::raw::c_int;
pub fn fmpz_inp_raw(x: *mut fmpz, fin: *mut FILE) -> usize;
pub fn fmpz_out_raw(fout: *mut FILE, x: *const fmpz) -> usize;
pub fn fmpz_add(f: *mut fmpz, g: *const fmpz, h: *const fmpz);
pub fn fmpz_add_ui(f: *mut fmpz, g: *const fmpz, x: ulong);
pub fn fmpz_sub(f: *mut fmpz, g: *const fmpz, h: *const fmpz);
pub fn fmpz_sub_ui(f: *mut fmpz, g: *const fmpz, x: ulong);
pub fn fmpz_add_si(f: *mut fmpz, g: *const fmpz, x: slong);
pub fn fmpz_sub_si(f: *mut fmpz, g: *const fmpz, x: slong);
pub fn fmpz_abs(f1: *mut fmpz, f2: *const fmpz);
pub fn fmpz_neg(f1: *mut fmpz, f2: *const fmpz);
pub fn fmpz_mul_ui(f: *mut fmpz, g: *const fmpz, x: ulong);
pub fn fmpz_mul_si(f: *mut fmpz, g: *const fmpz, x: slong);
pub fn fmpz_mul(f: *mut fmpz, g: *const fmpz, h: *const fmpz);
pub fn fmpz_mul2_uiui(f: *mut fmpz, g: *const fmpz, h1: ulong, h2: ulong);
pub fn fmpz_mul_2exp(f: *mut fmpz, g: *const fmpz, exp: ulong);
pub fn fmpz_one_2exp(f: *mut fmpz, exp: ulong);
pub fn fmpz_addmul(f: *mut fmpz, g: *const fmpz, h: *const fmpz);
pub fn fmpz_addmul_si(f: *mut fmpz, g: *const fmpz, x: slong);
pub fn fmpz_addmul_ui(f: *mut fmpz, g: *const fmpz, x: ulong);
pub fn fmpz_submul(f: *mut fmpz, g: *const fmpz, h: *const fmpz);
pub fn fmpz_submul_si(f: *mut fmpz, g: *const fmpz, x: slong);
pub fn fmpz_submul_ui(f: *mut fmpz, g: *const fmpz, x: ulong);
pub fn fmpz_fmma(
f: *mut fmpz,
a: *const fmpz,
b: *const fmpz,
c: *const fmpz,
d: *const fmpz,
);
pub fn fmpz_fmms(
f: *mut fmpz,
a: *const fmpz,
b: *const fmpz,
c: *const fmpz,
d: *const fmpz,
);
pub fn fmpz_pow_ui(f: *mut fmpz, g: *const fmpz, exp: ulong);
pub fn fmpz_ui_pow_ui(x: *mut fmpz, b: ulong, e: ulong);
pub fn fmpz_pow_fmpz(
a: *mut fmpz,
b: *const fmpz,
e: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn fmpz_sqrt(f: *mut fmpz, g: *const fmpz);
pub fn fmpz_sqrtrem(f: *mut fmpz, r: *mut fmpz, g: *const fmpz);
pub fn fmpz_root(r: *mut fmpz, f: *const fmpz, n: slong) -> ::std::os::raw::c_int;
pub fn fmpz_divisible(f: *const fmpz, g: *const fmpz) -> ::std::os::raw::c_int;
pub fn fmpz_divisible_ui(f: *const fmpz, g: ulong) -> ::std::os::raw::c_int;
pub fn fmpz_divisible_si(f: *const fmpz, g: slong) -> ::std::os::raw::c_int;
pub fn fmpz_divides(
q: *mut fmpz,
g: *const fmpz,
h: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn fmpz_divexact(f: *mut fmpz, g: *const fmpz, h: *const fmpz);
pub fn fmpz_divexact_ui(f: *mut fmpz, g: *const fmpz, h: ulong);
pub fn fmpz_divexact_si(f: *mut fmpz, g: *const fmpz, h: slong);
pub fn fmpz_divexact2_uiui(f: *mut fmpz, g: *const fmpz, h1: ulong, h2: ulong);
pub fn fmpz_cdiv_qr(f: *mut fmpz, s: *mut fmpz, g: *const fmpz, h: *const fmpz);
pub fn fmpz_fdiv_qr(f: *mut fmpz, s: *mut fmpz, g: *const fmpz, h: *const fmpz);
pub fn fmpz_tdiv_qr(f: *mut fmpz, s: *mut fmpz, g: *const fmpz, h: *const fmpz);
pub fn fmpz_ndiv_qr(q: *mut fmpz, r: *mut fmpz, a: *const fmpz, b: *const fmpz);
pub fn fmpz_cdiv_r_2exp(f: *mut fmpz, g: *const fmpz, exp: ulong);
pub fn fmpz_fdiv_r_2exp(f: *mut fmpz, g: *const fmpz, exp: ulong);
pub fn fmpz_tdiv_r_2exp(f: *mut fmpz, g: *const fmpz, exp: ulong);
pub fn fmpz_cdiv_q_2exp(f: *mut fmpz, g: *const fmpz, exp: ulong);
pub fn fmpz_fdiv_q_2exp(f: *mut fmpz, g: *const fmpz, exp: ulong);
pub fn fmpz_tdiv_q_2exp(f: *mut fmpz, g: *const fmpz, exp: ulong);
pub fn fmpz_cdiv_ui(g: *const fmpz, h: ulong) -> ulong;
pub fn fmpz_fdiv_ui(g: *const fmpz, h: ulong) -> ulong;
pub fn fmpz_tdiv_ui(g: *const fmpz, h: ulong) -> ulong;
pub fn fmpz_cdiv_q(f: *mut fmpz, g: *const fmpz, h: *const fmpz);
pub fn fmpz_fdiv_q(f: *mut fmpz, g: *const fmpz, h: *const fmpz);
pub fn fmpz_tdiv_q(f: *mut fmpz, g: *const fmpz, h: *const fmpz);
pub fn fmpz_fdiv_r(f: *mut fmpz, g: *const fmpz, h: *const fmpz);
pub fn fmpz_cdiv_q_ui(f: *mut fmpz, g: *const fmpz, h: ulong);
pub fn fmpz_fdiv_q_ui(f: *mut fmpz, g: *const fmpz, h: ulong);
pub fn fmpz_tdiv_q_ui(f: *mut fmpz, g: *const fmpz, h: ulong);
pub fn fmpz_cdiv_q_si(f: *mut fmpz, g: *const fmpz, h: slong);
pub fn fmpz_fdiv_q_si(f: *mut fmpz, g: *const fmpz, h: slong);
pub fn fmpz_tdiv_q_si(f: *mut fmpz, g: *const fmpz, h: slong);
pub fn fmpz_mul_tdiv_q_2exp(
f: *mut fmpz,
g: *const fmpz,
h: *const fmpz,
exp: ulong,
);
pub fn fmpz_mul_si_tdiv_q_2exp(f: *mut fmpz, g: *const fmpz, x: slong, exp: ulong);
pub fn fmpz_dlog(x: *const fmpz) -> f64;
pub fn fmpz_clog(x: *const fmpz, b: *const fmpz) -> slong;
pub fn fmpz_flog(x: *const fmpz, b: *const fmpz) -> slong;
pub fn fmpz_clog_ui(x: *const fmpz, b: ulong) -> slong;
pub fn fmpz_flog_ui(x: *const fmpz, b: ulong) -> slong;
pub fn fmpz_get_d_2exp(exp: *mut slong, f: *const fmpz) -> f64;
pub fn fmpz_set_d_2exp(f: *mut fmpz, m: f64, exp: slong);
pub fn _fmpz_tdiv_q_newton(q: *mut fmpz, a: *const fmpz, b: *const fmpz);
pub fn _fmpz_fdiv_q_newton(q: *mut fmpz, a: *const fmpz, b: *const fmpz);
pub fn _fmpz_cdiv_q_newton(q: *mut fmpz, a: *const fmpz, b: *const fmpz);
pub fn _fmpz_tdiv_qr_newton(
q: *mut fmpz,
r: *mut fmpz,
a: *const fmpz,
b: *const fmpz,
);
pub fn _fmpz_fdiv_qr_newton(
q: *mut fmpz,
r: *mut fmpz,
a: *const fmpz,
b: *const fmpz,
);
pub fn _fmpz_cdiv_qr_newton(
q: *mut fmpz,
r: *mut fmpz,
a: *const fmpz,
b: *const fmpz,
);
pub fn _fmpz_tdiv_r_newton(r: *mut fmpz, a: *const fmpz, b: *const fmpz);
pub fn _fmpz_fdiv_r_newton(r: *mut fmpz, a: *const fmpz, b: *const fmpz);
pub fn _fmpz_cdiv_r_newton(r: *mut fmpz, a: *const fmpz, b: *const fmpz);
pub fn _fmpz_mod_newton(r: *mut fmpz, a: *const fmpz, b: *const fmpz);
pub fn _fmpz_divexact_newton(q: *mut fmpz, a: *const fmpz, b: *const fmpz);
pub fn fmpz_setbit(f: *mut fmpz, i: ulong);
pub fn fmpz_clrbit(f: *mut fmpz, i: ulong);
pub fn fmpz_tstbit(f: *const fmpz, i: ulong) -> ::std::os::raw::c_int;
pub fn fmpz_complement(r: *mut fmpz, f: *const fmpz);
pub fn fmpz_combit(f: *mut fmpz, i: ulong);
pub fn fmpz_and(r: *mut fmpz, a: *const fmpz, b: *const fmpz);
pub fn fmpz_or(r: *mut fmpz, a: *const fmpz, b: *const fmpz);
pub fn fmpz_xor(r: *mut fmpz, a: *const fmpz, b: *const fmpz);
pub fn fmpz_popcnt(c: *const fmpz) -> flint_bitcnt_t;
pub fn fmpz_bit_pack(
arr: nn_ptr,
shift: flint_bitcnt_t,
bits: flint_bitcnt_t,
coeff: *const fmpz,
negate: ::std::os::raw::c_int,
borrow: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn fmpz_bit_unpack(
coeff: *mut fmpz,
arr: nn_srcptr,
shift: flint_bitcnt_t,
bits: flint_bitcnt_t,
negate: ::std::os::raw::c_int,
borrow: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn fmpz_bit_unpack_unsigned(
coeff: *mut fmpz,
arr: nn_srcptr,
shift: flint_bitcnt_t,
bits: flint_bitcnt_t,
);
pub fn fmpz_mod_ui(f: *mut fmpz, g: *const fmpz, h: ulong) -> ulong;
pub fn fmpz_set_ui_smod(f: *mut fmpz, x: ulong, m: ulong);
pub fn fmpz_mod(f: *mut fmpz, g: *const fmpz, h: *const fmpz);
pub fn fmpz_smod(f: *mut fmpz, g: *const fmpz, h: *const fmpz);
pub fn _fmpz_smod(
r: *mut fmpz,
a: *const fmpz,
m: *const fmpz,
sign: ::std::os::raw::c_int,
t: *mut fmpz,
);
pub fn fmpz_negmod(r: *mut fmpz, a: *const fmpz, mod_: *const fmpz);
pub fn fmpz_invmod(
f: *mut fmpz,
g: *const fmpz,
h: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn fmpz_sqrtmod(
b: *mut fmpz,
a: *const fmpz,
p: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn fmpz_powm_ui(f: *mut fmpz, g: *const fmpz, exp: ulong, m: *const fmpz);
pub fn fmpz_powm(f: *mut fmpz, g: *const fmpz, e: *const fmpz, m: *const fmpz);
pub fn fmpz_divides_mod_list(
xstart: *mut fmpz,
xstride: *mut fmpz,
xlength: *mut fmpz,
a: *const fmpz,
b: *const fmpz,
n: *const fmpz,
);
pub fn _fmpz_remove(x: *mut fmpz, f: *const fmpz, finv: f64) -> slong;
pub fn fmpz_remove(rop: *mut fmpz, op: *const fmpz, f: *const fmpz) -> slong;
pub fn fmpz_gcd(f: *mut fmpz, g: *const fmpz, h: *const fmpz);
pub fn fmpz_gcd_ui(res: *mut fmpz, a: *const fmpz, b: ulong);
pub fn fmpz_gcd3(f: *mut fmpz, a: *const fmpz, b: *const fmpz, c: *const fmpz);
pub fn fmpz_gcdinv(d: *mut fmpz, a: *mut fmpz, f: *const fmpz, g: *const fmpz);
pub fn fmpz_xgcd(
d: *mut fmpz,
a: *mut fmpz,
b: *mut fmpz,
f: *const fmpz,
g: *const fmpz,
);
pub fn fmpz_xgcd_canonical_bezout(
d: *mut fmpz,
a: *mut fmpz,
b: *mut fmpz,
f: *const fmpz,
g: *const fmpz,
);
pub fn fmpz_xgcd_partial(
co2: *mut fmpz,
co1: *mut fmpz,
r2: *mut fmpz,
r1: *mut fmpz,
L: *const fmpz,
);
pub fn fmpz_lcm(f: *mut fmpz, g: *const fmpz, h: *const fmpz);
pub fn fmpz_fdiv_qr_preinvn(
f: *mut fmpz,
s: *mut fmpz,
g: *const fmpz,
h: *const fmpz,
inv: *const fmpz_preinvn_struct,
);
pub fn fmpz_fdiv_r_preinvn(
f: *mut fmpz,
g: *const fmpz,
h: *const fmpz,
inv: *const fmpz_preinvn_struct,
);
pub fn fmpz_preinvn_init(inv: *mut fmpz_preinvn_struct, f: *const fmpz);
pub fn fmpz_preinvn_clear(inv: *mut fmpz_preinvn_struct);
pub fn fmpz_fac_ui(f: *mut fmpz, n: ulong);
pub fn fmpz_bin_uiui(res: *mut fmpz, n: ulong, k: ulong);
pub fn _fmpz_rfac_ui(r: *mut fmpz, x: *const fmpz, a: ulong, b: ulong);
pub fn fmpz_rfac_ui(r: *mut fmpz, x: *const fmpz, n: ulong);
pub fn fmpz_rfac_uiui(r: *mut fmpz, x: ulong, n: ulong);
pub fn fmpz_jacobi(a: *const fmpz, p: *const fmpz) -> ::std::os::raw::c_int;
pub fn fmpz_kronecker(a: *const fmpz, n: *const fmpz) -> ::std::os::raw::c_int;
pub fn fmpz_fib_ui(f: *mut fmpz, n: ulong);
pub fn _fmpz_CRT_ui_precomp(
out: *mut fmpz,
r1: *const fmpz,
m1: *const fmpz,
r2: ulong,
m2: ulong,
m2inv: ulong,
m1m2: *const fmpz,
c: ulong,
sign: ::std::os::raw::c_int,
);
pub fn fmpz_CRT_ui(
out: *mut fmpz,
r1: *const fmpz,
m1: *const fmpz,
r2: ulong,
m2: ulong,
sign: ::std::os::raw::c_int,
);
pub fn fmpz_CRT(
out: *mut fmpz,
r1: *const fmpz,
m1: *const fmpz,
r2: *const fmpz,
m2: *const fmpz,
sign: ::std::os::raw::c_int,
);
pub fn fmpz_multi_CRT_init(CRT: *mut fmpz_multi_CRT_struct);
pub fn fmpz_multi_CRT_clear(P: *mut fmpz_multi_CRT_struct);
pub fn _fmpz_multi_CRT_precomp(
outputs: *mut fmpz,
P: *const fmpz_multi_CRT_struct,
inputs: *const fmpz,
sign: ::std::os::raw::c_int,
);
pub fn fmpz_multi_CRT_precomp(
output: *mut fmpz,
P: *const fmpz_multi_CRT_struct,
inputs: *const fmpz,
sign: ::std::os::raw::c_int,
);
pub fn fmpz_multi_CRT_precompute(
CRT: *mut fmpz_multi_CRT_struct,
moduli: *const fmpz,
len: slong,
) -> ::std::os::raw::c_int;
pub fn fmpz_multi_CRT(
output: *mut fmpz,
moduli: *const fmpz,
values: *const fmpz,
len: slong,
sign: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn fmpz_multi_mod_init(P: *mut fmpz_multi_mod_struct);
pub fn fmpz_multi_mod_clear(P: *mut fmpz_multi_mod_struct);
pub fn fmpz_multi_mod_precompute(
P: *mut fmpz_multi_mod_struct,
f: *const fmpz,
r: slong,
) -> ::std::os::raw::c_int;
pub fn _fmpz_multi_mod_precomp(
outputs: *mut fmpz,
P: *const fmpz_multi_mod_struct,
input: *const fmpz,
sign: ::std::os::raw::c_int,
tmp: *mut fmpz,
);
pub fn fmpz_multi_mod_precomp(
outputs: *mut fmpz,
P: *const fmpz_multi_mod_struct,
input: *const fmpz,
sign: ::std::os::raw::c_int,
);
pub fn fmpz_comb_temp_init(
CT: *mut fmpz_comb_temp_struct,
C: *const fmpz_comb_struct,
);
pub fn fmpz_comb_temp_clear(CT: *mut fmpz_comb_temp_struct);
pub fn fmpz_comb_init(
C: *mut fmpz_comb_struct,
primes: nn_srcptr,
num_primes: slong,
);
pub fn fmpz_comb_clear(C: *mut fmpz_comb_struct);
pub fn fmpz_multi_mod_ui(
out: *mut ulong,
in_: *const fmpz,
C: *const fmpz_comb_struct,
CT: *mut fmpz_comb_temp_struct,
);
pub fn fmpz_multi_CRT_ui(
output: *mut fmpz,
residues: nn_srcptr,
comb: *const fmpz_comb_struct,
temp: *mut fmpz_comb_temp_struct,
sign: ::std::os::raw::c_int,
);
pub fn fmpz_lucas_chain(
Vm: *mut fmpz,
Vm1: *mut fmpz,
A: *const fmpz,
m: *const fmpz,
n: *const fmpz,
);
pub fn fmpz_lucas_chain_full(
Vm: *mut fmpz,
Vm1: *mut fmpz,
A: *const fmpz,
B: *const fmpz,
m: *const fmpz,
n: *const fmpz,
);
pub fn fmpz_lucas_chain_double(
U2m: *mut fmpz,
U2m1: *mut fmpz,
Um: *const fmpz,
Um1: *const fmpz,
A: *const fmpz,
B: *const fmpz,
n: *const fmpz,
);
pub fn fmpz_lucas_chain_add(
Umn: *mut fmpz,
Umn1: *mut fmpz,
Um: *const fmpz,
Um1: *const fmpz,
Un: *const fmpz,
Un1: *const fmpz,
A: *const fmpz,
B: *const fmpz,
n: *const fmpz,
);
pub fn fmpz_lucas_chain_mul(
Ukm: *mut fmpz,
Ukm1: *mut fmpz,
Um: *const fmpz,
Um1: *const fmpz,
A: *const fmpz,
B: *const fmpz,
k: *const fmpz,
n: *const fmpz,
);
pub fn fmpz_lucas_chain_VtoU(
Um: *mut fmpz,
Um1: *mut fmpz,
Vm: *const fmpz,
Vm1: *const fmpz,
A: *const fmpz,
UNUSED_B: *const fmpz,
Dinv: *const fmpz,
n: *const fmpz,
);
pub fn fmpz_is_probabprime_lucas(n: *const fmpz) -> ::std::os::raw::c_int;
pub fn fmpz_is_probabprime_BPSW(n: *const fmpz) -> ::std::os::raw::c_int;
pub fn fmpz_is_probabprime(p: *const fmpz) -> ::std::os::raw::c_int;
pub fn fmpz_is_strong_probabprime(
n: *const fmpz,
a: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn fmpz_is_prime_pseudosquare(n: *const fmpz) -> ::std::os::raw::c_int;
pub fn fmpz_is_prime_pocklington(
F: *mut fmpz,
R: *mut fmpz,
n: *const fmpz,
pm1: nn_ptr,
num_pm1: slong,
) -> ::std::os::raw::c_int;
pub fn fmpz_is_prime_morrison(
F: *mut fmpz,
R: *mut fmpz,
n: *const fmpz,
pm1: nn_ptr,
num_pm1: slong,
) -> ::std::os::raw::c_int;
pub fn fmpz_is_prime(p: *const fmpz) -> ::std::os::raw::c_int;
pub fn fmpz_nextprime(res: *mut fmpz, n: *const fmpz, proved: ::std::os::raw::c_int);
pub fn _fmpz_nm1_trial_factors(
n: *const fmpz,
pm1: nn_ptr,
num_pm1: *mut slong,
limit: ulong,
);
pub fn _fmpz_np1_trial_factors(
n: *const fmpz,
pp1: nn_ptr,
num_pp1: *mut slong,
limit: ulong,
);
pub fn fmpz_divisor_in_residue_class_lenstra(
fac: *mut fmpz,
n: *const fmpz,
r: *const fmpz,
s: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn fmpz_primorial(res: *mut fmpz, n: ulong);
pub fn fmpz_euler_phi(res: *mut fmpz, n: *const fmpz);
pub fn fmpz_moebius_mu(n: *const fmpz) -> ::std::os::raw::c_int;
pub fn fmpz_divisor_sigma(res: *mut fmpz, k: ulong, n: *const fmpz);
}
/* fmpz_extras.h */
unsafe extern "C" {
pub fn _fmpz_sub_small_large(x: *const fmpz, y: *const fmpz) -> slong;
}
/* fmpz_factor.h */
#[repr(C)]
pub struct ecm_s {
pub t: nn_ptr,
pub u: nn_ptr,
pub v: nn_ptr,
pub w: nn_ptr,
pub x: nn_ptr,
pub z: nn_ptr,
pub a24: nn_ptr,
pub ninv: nn_ptr,
pub one: nn_ptr,
pub GCD_table: *mut ::std::os::raw::c_uchar,
pub prime_table: *mut *mut ::std::os::raw::c_uchar,
pub n_size: ulong,
pub normbits: ulong,
}
impl Default for ecm_s {
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 ecm_t = [ecm_s; 1usize];
unsafe extern "C" {
pub fn fmpz_factor_init(factor: *mut fmpz_factor_struct);
pub fn fmpz_factor_clear(factor: *mut fmpz_factor_struct);
pub fn _fmpz_factor_fit_length(factor: *mut fmpz_factor_struct, len: slong);
pub fn _fmpz_factor_set_length(factor: *mut fmpz_factor_struct, newlen: slong);
pub fn _fmpz_factor_append(
factor: *mut fmpz_factor_struct,
p: *const fmpz,
exp: ulong,
);
pub fn _fmpz_factor_append_ui(factor: *mut fmpz_factor_struct, p: ulong, exp: ulong);
pub fn _fmpz_factor_concat(
factor1: *mut fmpz_factor_struct,
factor2: *mut fmpz_factor_struct,
exp: ulong,
);
pub fn fmpz_factor_fprint(
fs: *mut FILE,
factor: *const fmpz_factor_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_factor_print(factor: *const fmpz_factor_struct) -> ::std::os::raw::c_int;
pub fn _fmpz_factor_extend_factor_ui(factor: *mut fmpz_factor_struct, n: ulong);
pub fn fmpz_factor_trial_range(
factor: *mut fmpz_factor_struct,
n: *const fmpz,
start: ulong,
num_primes: ulong,
) -> ::std::os::raw::c_int;
pub fn fmpz_factor_trial(
factor: *mut fmpz_factor_struct,
n: *const fmpz,
num_primes: slong,
) -> ::std::os::raw::c_int;
pub fn fmpz_factor_no_trial(factor: *mut fmpz_factor_struct, n: *const fmpz);
pub fn fmpz_factor_si(factor: *mut fmpz_factor_struct, n: slong);
pub fn fmpz_factor(factor: *mut fmpz_factor_struct, n: *const fmpz);
pub fn fmpz_factor_smooth(
factor: *mut fmpz_factor_struct,
n: *const fmpz,
bits: slong,
proved: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn fmpz_factor_pp1(
factor: *mut fmpz,
n: *const fmpz,
B1: ulong,
B2_sqrt: ulong,
c: ulong,
) -> ::std::os::raw::c_int;
pub fn fmpz_factor_refine(
res: *mut fmpz_factor_struct,
f: *const fmpz_factor_struct,
);
pub fn fmpz_factor_pollard_brent_single(
p_factor: *mut fmpz,
n_in: *mut fmpz,
yi: *mut fmpz,
ai: *mut fmpz,
max_iters: ulong,
) -> ::std::os::raw::c_int;
pub fn fmpz_factor_pollard_brent(
factor: *mut fmpz,
state: *mut flint_rand_struct,
n: *mut fmpz,
max_tries: ulong,
max_iters: ulong,
) -> ::std::os::raw::c_int;
pub fn fmpz_factor_expand_iterative(n: *mut fmpz, factor: *const fmpz_factor_struct);
pub fn fmpz_factor_expand_multiexp(n: *mut fmpz, factor: *const fmpz_factor_struct);
pub fn fmpz_factor_expand(n: *mut fmpz, factor: *const fmpz_factor_struct);
pub fn fmpz_factor_euler_phi(res: *mut fmpz, fac: *const fmpz_factor_struct);
pub fn fmpz_factor_moebius_mu(
fac: *const fmpz_factor_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_factor_divisor_sigma(
res: *mut fmpz,
k: ulong,
fac: *const fmpz_factor_struct,
);
pub fn fmpz_factor_ecm_init(ecm_inf: *mut ecm_s, sz: ulong);
pub fn fmpz_factor_ecm_clear(ecm_inf: *mut ecm_s);
pub fn fmpz_factor_ecm_double(
x: nn_ptr,
z: nn_ptr,
x0: nn_ptr,
z0: nn_ptr,
n: nn_ptr,
ecm_inf: *mut ecm_s,
);
pub fn fmpz_factor_ecm_add(
x: nn_ptr,
z: nn_ptr,
x1: nn_ptr,
z1: nn_ptr,
x2: nn_ptr,
z2: nn_ptr,
x0: nn_ptr,
z0: nn_ptr,
n: nn_ptr,
ecm_inf: *mut ecm_s,
);
pub fn fmpz_factor_ecm_mul_montgomery_ladder(
x: nn_ptr,
z: nn_ptr,
x0: nn_ptr,
z0: nn_ptr,
k: ulong,
n: nn_ptr,
ecm_inf: *mut ecm_s,
);
pub fn fmpz_factor_ecm_select_curve(
f: nn_ptr,
sig: nn_ptr,
n: nn_ptr,
ecm_inf: *mut ecm_s,
) -> ::std::os::raw::c_int;
pub fn fmpz_factor_ecm_stage_I(
f: nn_ptr,
prime_array: *const ulong,
num: ulong,
B1: ulong,
n: nn_ptr,
ecm_inf: *mut ecm_s,
) -> ::std::os::raw::c_int;
pub fn fmpz_factor_ecm_stage_II(
f: nn_ptr,
B1: ulong,
B2: ulong,
P: ulong,
n: nn_ptr,
ecm_inf: *mut ecm_s,
) -> ::std::os::raw::c_int;
pub fn fmpz_factor_ecm(
f: *mut fmpz,
curves: ulong,
B1: ulong,
B2: ulong,
state: *mut flint_rand_struct,
n_in: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn fmpz_factor_get_fmpz(
z: *mut fmpz,
factor: *const fmpz_factor_struct,
i: slong,
);
}
/* fmpz_lll.h */
pub const rep_type_GRAM: rep_type = 0;
pub const rep_type_Z_BASIS: rep_type = 1;
pub type rep_type = ::std::os::raw::c_uint;
pub const gram_type_APPROX: gram_type = 0;
pub const gram_type_EXACT: gram_type = 1;
pub type gram_type = ::std::os::raw::c_uint;
#[repr(C)]
pub struct fmpz_lll_struct {
pub delta: f64,
pub eta: f64,
pub rt: rep_type,
pub gt: gram_type,
}
impl Default for fmpz_lll_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_lll_t = [fmpz_lll_struct; 1usize];
#[repr(C)]
pub union fmpz_gram_union {
pub appSP: ::std::mem::ManuallyDrop<d_mat_t>,
pub appSP2: ::std::mem::ManuallyDrop<gr_mat_t>,
pub exactSP: ::std::mem::ManuallyDrop<fmpz_mat_t>,
}
impl Default for fmpz_gram_union {
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_gram_t = [fmpz_gram_union; 1usize];
unsafe extern "C" {
pub fn fmpz_lll_context_init_default(fl: *mut fmpz_lll_struct);
pub fn fmpz_lll_context_init(
fl: *mut fmpz_lll_struct,
delta: f64,
eta: f64,
rt: rep_type,
gt: gram_type,
);
pub fn fmpz_lll_randtest(fl: *mut fmpz_lll_struct, state: *mut flint_rand_struct);
pub fn fmpz_lll_heuristic_dot(
vec1: *const f64,
vec2: *const f64,
len2: slong,
B: *const fmpz_mat_struct,
k: slong,
j: slong,
exp_adj: slong,
) -> f64;
pub fn fmpz_lll_check_babai(
kappa: ::std::os::raw::c_int,
B: *mut fmpz_mat_struct,
U: *mut fmpz_mat_struct,
mu: *mut d_mat_struct,
r: *mut d_mat_struct,
s: *mut f64,
appB: *mut d_mat_struct,
expo: *mut ::std::os::raw::c_int,
A: *mut fmpz_gram_union,
a: ::std::os::raw::c_int,
zeros: ::std::os::raw::c_int,
kappamax: ::std::os::raw::c_int,
n: ::std::os::raw::c_int,
fl: *const fmpz_lll_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_lll_check_babai_heuristic_d(
kappa: ::std::os::raw::c_int,
B: *mut fmpz_mat_struct,
U: *mut fmpz_mat_struct,
mu: *mut d_mat_struct,
r: *mut d_mat_struct,
s: *mut f64,
appB: *mut d_mat_struct,
expo: *mut ::std::os::raw::c_int,
A: *mut fmpz_gram_union,
a: ::std::os::raw::c_int,
zeros: ::std::os::raw::c_int,
kappamax: ::std::os::raw::c_int,
n: ::std::os::raw::c_int,
fl: *const fmpz_lll_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_lll_shift(B: *const fmpz_mat_struct) -> ::std::os::raw::c_int;
pub fn fmpz_lll_d(
B: *mut fmpz_mat_struct,
U: *mut fmpz_mat_struct,
fl: *const fmpz_lll_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_lll_d_heuristic(
B: *mut fmpz_mat_struct,
U: *mut fmpz_mat_struct,
fl: *const fmpz_lll_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_lll_check_babai_heuristic(
kappa: ::std::os::raw::c_int,
B: *mut fmpz_mat_struct,
U: *mut fmpz_mat_struct,
mu: *mut gr_mat_struct,
r: *mut gr_mat_struct,
s: gr_ptr,
appB: *mut gr_mat_struct,
A: *mut fmpz_gram_union,
a: ::std::os::raw::c_int,
zeros: ::std::os::raw::c_int,
kappamax: ::std::os::raw::c_int,
n: ::std::os::raw::c_int,
tmp: gr_ptr,
rtmp: gr_ptr,
ctx: *mut gr_ctx_struct,
fl: *const fmpz_lll_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_lll_mpf2(
B: *mut fmpz_mat_struct,
U: *mut fmpz_mat_struct,
prec: flint_bitcnt_t,
fl: *const fmpz_lll_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_lll_mpf(
B: *mut fmpz_mat_struct,
U: *mut fmpz_mat_struct,
fl: *const fmpz_lll_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_lll_wrapper(
B: *mut fmpz_mat_struct,
U: *mut fmpz_mat_struct,
fl: *const fmpz_lll_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_lll_advance_check_babai(
cur_kappa: ::std::os::raw::c_int,
kappa: ::std::os::raw::c_int,
B: *mut fmpz_mat_struct,
U: *mut fmpz_mat_struct,
mu: *mut d_mat_struct,
r: *mut d_mat_struct,
s: *mut f64,
appB: *mut d_mat_struct,
expo: *mut ::std::os::raw::c_int,
A: *mut fmpz_gram_union,
a: ::std::os::raw::c_int,
zeros: ::std::os::raw::c_int,
kappamax: ::std::os::raw::c_int,
n: ::std::os::raw::c_int,
fl: *const fmpz_lll_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_lll_advance_check_babai_heuristic_d(
cur_kappa: ::std::os::raw::c_int,
kappa: ::std::os::raw::c_int,
B: *mut fmpz_mat_struct,
U: *mut fmpz_mat_struct,
mu: *mut d_mat_struct,
r: *mut d_mat_struct,
s: *mut f64,
appB: *mut d_mat_struct,
expo: *mut ::std::os::raw::c_int,
A: *mut fmpz_gram_union,
a: ::std::os::raw::c_int,
zeros: ::std::os::raw::c_int,
kappamax: ::std::os::raw::c_int,
n: ::std::os::raw::c_int,
fl: *const fmpz_lll_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_lll_d_with_removal(
B: *mut fmpz_mat_struct,
U: *mut fmpz_mat_struct,
gs_B: *const fmpz,
fl: *const fmpz_lll_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_lll_d_heuristic_with_removal(
B: *mut fmpz_mat_struct,
U: *mut fmpz_mat_struct,
gs_B: *const fmpz,
fl: *const fmpz_lll_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_lll_mpf2_with_removal(
B: *mut fmpz_mat_struct,
U: *mut fmpz_mat_struct,
prec: flint_bitcnt_t,
gs_B: *const fmpz,
fl: *const fmpz_lll_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_lll_mpf_with_removal(
B: *mut fmpz_mat_struct,
U: *mut fmpz_mat_struct,
gs_B: *const fmpz,
fl: *const fmpz_lll_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_lll_wrapper_with_removal(
B: *mut fmpz_mat_struct,
U: *mut fmpz_mat_struct,
gs_B: *const fmpz,
fl: *const fmpz_lll_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_lll_d_with_removal_knapsack(
B: *mut fmpz_mat_struct,
U: *mut fmpz_mat_struct,
gs_B: *const fmpz,
fl: *const fmpz_lll_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_lll_wrapper_with_removal_knapsack(
B: *mut fmpz_mat_struct,
U: *mut fmpz_mat_struct,
gs_B: *const fmpz,
fl: *const fmpz_lll_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_lll_with_removal_ulll(
FM: *mut fmpz_mat_struct,
UM: *mut fmpz_mat_struct,
new_size: slong,
gs_B: *const fmpz,
fl: *const fmpz_lll_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_lll_is_reduced_d(
B: *const fmpz_mat_struct,
fl: *const fmpz_lll_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_lll_is_reduced_mpfr(
B: *const fmpz_mat_struct,
fl: *const fmpz_lll_struct,
prec: flint_bitcnt_t,
) -> ::std::os::raw::c_int;
pub fn fmpz_lll_is_reduced(
B: *const fmpz_mat_struct,
fl: *const fmpz_lll_struct,
prec: flint_bitcnt_t,
) -> ::std::os::raw::c_int;
pub fn fmpz_lll_is_reduced_d_with_removal(
B: *const fmpz_mat_struct,
fl: *const fmpz_lll_struct,
gs_B: *const fmpz,
newd: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn fmpz_lll_is_reduced_mpfr_with_removal(
B: *const fmpz_mat_struct,
fl: *const fmpz_lll_struct,
gs_B: *const fmpz,
newd: ::std::os::raw::c_int,
prec: flint_bitcnt_t,
) -> ::std::os::raw::c_int;
pub fn fmpz_lll_is_reduced_with_removal(
B: *const fmpz_mat_struct,
fl: *const fmpz_lll_struct,
gs_B: *const fmpz,
newd: ::std::os::raw::c_int,
prec: flint_bitcnt_t,
) -> ::std::os::raw::c_int;
pub fn fmpz_lll(
B: *mut fmpz_mat_struct,
U: *mut fmpz_mat_struct,
fl: *const fmpz_lll_struct,
);
pub fn fmpz_lll_with_removal(
B: *mut fmpz_mat_struct,
U: *mut fmpz_mat_struct,
gs_B: *const fmpz,
fl: *const fmpz_lll_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_lll_storjohann_ulll(
FM: *mut fmpz_mat_struct,
new_size: slong,
fl: *const fmpz_lll_struct,
);
}
/* fmpz_mat.h */
unsafe extern "C" {
pub fn fmpz_mat_entry(mat: *const fmpz_mat_struct, i: slong, j: slong) -> *mut fmpz;
pub fn fmpz_mat_row(mat: *const fmpz_mat_struct, i: slong) -> *mut fmpz;
pub fn fmpz_mat_nrows(mat: *const fmpz_mat_struct) -> slong;
pub fn fmpz_mat_ncols(mat: *const fmpz_mat_struct) -> slong;
pub fn fmpz_mat_init(mat: *mut fmpz_mat_struct, rows: slong, cols: slong);
pub fn fmpz_mat_init_set(mat: *mut fmpz_mat_struct, src: *const fmpz_mat_struct);
pub fn fmpz_mat_swap(mat1: *mut fmpz_mat_struct, mat2: *mut fmpz_mat_struct);
pub fn fmpz_mat_swap_entrywise(
mat1: *mut fmpz_mat_struct,
mat2: *mut fmpz_mat_struct,
);
pub fn fmpz_mat_swap_cols(
mat: *mut fmpz_mat_struct,
perm: *mut slong,
r: slong,
s: slong,
);
pub fn fmpz_mat_set(mat1: *mut fmpz_mat_struct, mat2: *const fmpz_mat_struct);
pub fn fmpz_mat_clear(mat: *mut fmpz_mat_struct);
pub fn fmpz_mat_equal(
mat1: *const fmpz_mat_struct,
mat2: *const fmpz_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_is_zero(mat: *const fmpz_mat_struct) -> ::std::os::raw::c_int;
pub fn fmpz_mat_is_one(mat: *const fmpz_mat_struct) -> ::std::os::raw::c_int;
pub fn fmpz_mat_is_zero_row(
mat: *const fmpz_mat_struct,
i: slong,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_equal_col(
M: *mut fmpz_mat_struct,
m: slong,
n: slong,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_equal_row(
M: *mut fmpz_mat_struct,
m: slong,
n: slong,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_is_empty(mat: *const fmpz_mat_struct) -> ::std::os::raw::c_int;
pub fn fmpz_mat_is_square(mat: *const fmpz_mat_struct) -> ::std::os::raw::c_int;
pub fn fmpz_mat_zero(mat: *mut fmpz_mat_struct);
pub fn fmpz_mat_one(mat: *mut fmpz_mat_struct);
pub fn fmpz_mat_window_init(
window: *mut fmpz_mat_struct,
mat: *const fmpz_mat_struct,
r1: slong,
c1: slong,
r2: slong,
c2: slong,
);
pub fn fmpz_mat_window_clear(UNUSED_window: *mut fmpz_mat_struct);
pub fn _fmpz_mat_window_readonly_init_strip_initial_zero_rows(
A: *mut fmpz_mat_struct,
B: *const fmpz_mat_struct,
);
pub fn fmpz_mat_concat_horizontal(
res: *mut fmpz_mat_struct,
mat1: *const fmpz_mat_struct,
mat2: *const fmpz_mat_struct,
);
pub fn fmpz_mat_concat_vertical(
res: *mut fmpz_mat_struct,
mat1: *const fmpz_mat_struct,
mat2: *const fmpz_mat_struct,
);
pub fn fmpz_mat_fprint(
file: *mut FILE,
mat: *const fmpz_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_fprint_pretty(
file: *mut FILE,
mat: *const fmpz_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_fread(
file: *mut FILE,
mat: *mut fmpz_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_print(mat: *const fmpz_mat_struct) -> ::std::os::raw::c_int;
pub fn fmpz_mat_print_pretty(mat: *const fmpz_mat_struct) -> ::std::os::raw::c_int;
pub fn fmpz_mat_read(mat: *mut fmpz_mat_struct) -> ::std::os::raw::c_int;
pub fn fmpz_mat_randbits(
mat: *mut fmpz_mat_struct,
state: *mut flint_rand_struct,
bits: flint_bitcnt_t,
);
pub fn fmpz_mat_randtest(
mat: *mut fmpz_mat_struct,
state: *mut flint_rand_struct,
bits: flint_bitcnt_t,
);
pub fn fmpz_mat_randtest_unsigned(
mat: *mut fmpz_mat_struct,
state: *mut flint_rand_struct,
bits: flint_bitcnt_t,
);
pub fn fmpz_mat_randintrel(
mat: *mut fmpz_mat_struct,
state: *mut flint_rand_struct,
bits: flint_bitcnt_t,
);
pub fn fmpz_mat_randsimdioph(
mat: *mut fmpz_mat_struct,
state: *mut flint_rand_struct,
bits: flint_bitcnt_t,
bits2: flint_bitcnt_t,
);
pub fn fmpz_mat_randntrulike(
mat: *mut fmpz_mat_struct,
state: *mut flint_rand_struct,
bits: flint_bitcnt_t,
q: ulong,
);
pub fn fmpz_mat_randntrulike2(
mat: *mut fmpz_mat_struct,
state: *mut flint_rand_struct,
bits: flint_bitcnt_t,
q: ulong,
);
pub fn fmpz_mat_randajtai(
mat: *mut fmpz_mat_struct,
state: *mut flint_rand_struct,
alpha: f64,
);
pub fn fmpz_mat_randrank(
mat: *mut fmpz_mat_struct,
state: *mut flint_rand_struct,
rank: slong,
bits: flint_bitcnt_t,
);
pub fn fmpz_mat_randdet(
mat: *mut fmpz_mat_struct,
state: *mut flint_rand_struct,
det: *const fmpz,
);
pub fn fmpz_mat_randops(
mat: *mut fmpz_mat_struct,
state: *mut flint_rand_struct,
count: slong,
);
pub fn fmpz_mat_randpermdiag(
mat: *mut fmpz_mat_struct,
state: *mut flint_rand_struct,
diag: *const fmpz,
n: slong,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_max_bits(mat: *const fmpz_mat_struct) -> slong;
pub fn fmpz_mat_transpose(B: *mut fmpz_mat_struct, A: *const fmpz_mat_struct);
pub fn fmpz_mat_add(
C: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
);
pub fn fmpz_mat_sub(
C: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
);
pub fn fmpz_mat_neg(B: *mut fmpz_mat_struct, A: *const fmpz_mat_struct);
pub fn fmpz_mat_scalar_mul_fmpz(
B: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
c: *const fmpz,
);
pub fn fmpz_mat_scalar_mul_si(
B: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
c: slong,
);
pub fn fmpz_mat_scalar_mul_ui(
B: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
c: ulong,
);
pub fn fmpz_mat_scalar_addmul_fmpz(
B: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
c: *const fmpz,
);
pub fn fmpz_mat_scalar_addmul_si(
B: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
c: slong,
);
pub fn fmpz_mat_scalar_addmul_ui(
B: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
c: ulong,
);
pub fn fmpz_mat_scalar_submul_fmpz(
B: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
c: *const fmpz,
);
pub fn fmpz_mat_scalar_submul_si(
B: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
c: slong,
);
pub fn fmpz_mat_scalar_submul_ui(
B: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
c: ulong,
);
pub fn fmpz_mat_scalar_addmul_nmod_mat_fmpz(
B: *mut fmpz_mat_struct,
A: *const nmod_mat_struct,
c: *const fmpz,
);
pub fn fmpz_mat_scalar_addmul_nmod_mat_ui(
B: *mut fmpz_mat_struct,
A: *const nmod_mat_struct,
c: ulong,
);
pub fn fmpz_mat_scalar_divexact_fmpz(
B: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
c: *const fmpz,
);
pub fn fmpz_mat_scalar_divexact_si(
B: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
c: slong,
);
pub fn fmpz_mat_scalar_divexact_ui(
B: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
c: ulong,
);
pub fn fmpz_mat_scalar_mul_2exp(
B: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
exp: ulong,
);
pub fn fmpz_mat_scalar_tdiv_q_2exp(
B: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
exp: ulong,
);
pub fn fmpz_mat_scalar_smod(
B: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
P: *const fmpz,
);
pub fn fmpz_mat_scalar_mod_fmpz(
B: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
m: *const fmpz,
);
pub fn fmpz_mat_mul(
C: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
);
pub fn fmpz_mat_mul_classical(
C: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
);
pub fn fmpz_mat_mul_waksman(
C: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
);
pub fn fmpz_mat_mul_strassen(
C: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
);
pub fn _fmpz_mat_mul_fft(
C: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
abits: slong,
B: *const fmpz_mat_struct,
bbits: slong,
sign: ::std::os::raw::c_int,
);
pub fn fmpz_mat_mul_fft(
C: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
);
pub fn _fmpz_mat_mul_multi_mod(
C: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
sign: ::std::os::raw::c_int,
Cbits: flint_bitcnt_t,
);
pub fn fmpz_mat_mul_multi_mod(
C: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
);
pub fn _fmpz_mat_mul_blas(
C: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
Abits: flint_bitcnt_t,
B: *const fmpz_mat_struct,
Bbits: flint_bitcnt_t,
sign: ::std::os::raw::c_int,
Cbits: flint_bitcnt_t,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_mul_blas(
C: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpz_mat_mul_small_1(
C: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
);
pub fn _fmpz_mat_mul_small_2a(
C: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
);
pub fn _fmpz_mat_mul_small_2b(
C: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
);
pub fn _fmpz_mat_mul_small_internal(
C: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
Cbits: flint_bitcnt_t,
);
pub fn _fmpz_mat_mul_double_word_internal(
C: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
sign: ::std::os::raw::c_int,
bits: flint_bitcnt_t,
);
pub fn _fmpz_mat_mul_small(
C: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
);
pub fn _fmpz_mat_mul_double_word(
C: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
);
pub fn fmpz_mat_sqr_bodrato(B: *mut fmpz_mat_struct, A: *const fmpz_mat_struct);
pub fn fmpz_mat_sqr(B: *mut fmpz_mat_struct, A: *const fmpz_mat_struct);
pub fn fmpz_mat_pow(B: *mut fmpz_mat_struct, A: *const fmpz_mat_struct, exp: ulong);
pub fn fmpz_mat_mul_fmpz_vec(
c: *mut fmpz,
A: *const fmpz_mat_struct,
b: *const fmpz,
blen: slong,
);
pub fn fmpz_mat_mul_fmpz_vec_ptr(
c: *const *mut fmpz,
A: *const fmpz_mat_struct,
b: *const *const fmpz,
blen: slong,
);
pub fn fmpz_mat_fmpz_vec_mul(
c: *mut fmpz,
a: *const fmpz,
alen: slong,
B: *const fmpz_mat_struct,
);
pub fn fmpz_mat_fmpz_vec_mul_ptr(
c: *const *mut fmpz,
a: *const *const fmpz,
alen: slong,
B: *const fmpz_mat_struct,
);
pub fn fmpz_mat_kronecker_product(
C: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
);
pub fn fmpz_mat_content(ret: *mut fmpz, A: *const fmpz_mat_struct);
pub fn fmpz_mat_swap_rows(
mat: *mut fmpz_mat_struct,
perm: *mut slong,
r: slong,
s: slong,
);
pub fn fmpz_mat_invert_rows(mat: *mut fmpz_mat_struct, perm: *mut slong);
pub fn fmpz_mat_invert_cols(mat: *mut fmpz_mat_struct, perm: *mut slong);
pub fn fmpz_mat_find_pivot_any(
mat: *const fmpz_mat_struct,
start_row: slong,
end_row: slong,
c: slong,
) -> slong;
pub fn fmpz_mat_find_pivot_smallest(
mat: *const fmpz_mat_struct,
start_row: slong,
end_row: slong,
c: slong,
) -> slong;
pub fn fmpz_mat_fflu(
B: *mut fmpz_mat_struct,
den: *mut fmpz,
perm: *mut slong,
A: *const fmpz_mat_struct,
rank_check: ::std::os::raw::c_int,
) -> slong;
pub fn fmpz_mat_rank_small_inplace(B: *mut fmpz_mat_struct) -> slong;
pub fn fmpz_mat_rref(
B: *mut fmpz_mat_struct,
den: *mut fmpz,
A: *const fmpz_mat_struct,
) -> slong;
pub fn fmpz_mat_rref_fflu(
B: *mut fmpz_mat_struct,
den: *mut fmpz,
A: *const fmpz_mat_struct,
) -> slong;
pub fn fmpz_mat_rref_mul(
B: *mut fmpz_mat_struct,
den: *mut fmpz,
A: *const fmpz_mat_struct,
) -> slong;
pub fn fmpz_mat_rref_upper_certify_lu_mod_p(
E: *mut fmpz_mat_struct,
den: *mut fmpz,
A: *const fmpz_mat_struct,
rank: slong,
P: *const slong,
pivs: *const slong,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_rank_certify_lu_mod_p(
A: *const fmpz_mat_struct,
rank: slong,
P: *const slong,
pivs: *const slong,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_is_in_rref_with_rank(
A: *const fmpz_mat_struct,
den: *const fmpz,
rank: slong,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_howell_form_mod(A: *mut fmpz_mat_struct, mod_: *const fmpz) -> slong;
pub fn fmpz_mat_strong_echelon_form_mod(A: *mut fmpz_mat_struct, mod_: *const fmpz);
pub fn fmpz_mat_trace(trace: *mut fmpz, mat: *const fmpz_mat_struct);
pub fn fmpz_mat_det_bareiss(det: *mut fmpz, A: *const fmpz_mat_struct);
pub fn fmpz_mat_det_cofactor(det: *mut fmpz, A: *const fmpz_mat_struct);
pub fn fmpz_mat_det_modular(
det: *mut fmpz,
A: *const fmpz_mat_struct,
proved: ::std::os::raw::c_int,
);
pub fn fmpz_mat_det_modular_accelerated(
det: *mut fmpz,
A: *const fmpz_mat_struct,
proved: ::std::os::raw::c_int,
);
pub fn fmpz_mat_det_modular_given_divisor(
det: *mut fmpz,
A: *const fmpz_mat_struct,
d: *const fmpz,
proved: ::std::os::raw::c_int,
);
pub fn fmpz_mat_det(det: *mut fmpz, A: *const fmpz_mat_struct);
pub fn fmpz_mat_det_bound(bound: *mut fmpz, A: *const fmpz_mat_struct);
pub fn fmpz_mat_det_bound_submatrix(bound: *mut fmpz, A: *const fmpz_mat_struct);
pub fn fmpz_mat_det_divisor(d: *mut fmpz, A: *const fmpz_mat_struct);
pub fn fmpz_mat_permanent(
res: *mut fmpz,
A: *const fmpz_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_similarity(A: *mut fmpz_mat_struct, r: slong, d: *mut fmpz);
pub fn fmpz_mat_charpoly_bound(bound: *mut fmpz, A: *const fmpz_mat_struct);
pub fn _fmpz_mat_charpoly_berkowitz(rop: *mut fmpz, op: *const fmpz_mat_struct);
pub fn fmpz_mat_charpoly_berkowitz(
cp: *mut fmpz_poly_struct,
mat: *const fmpz_mat_struct,
);
pub fn _fmpz_mat_charpoly_modular(rop: *mut fmpz, op: *const fmpz_mat_struct);
pub fn fmpz_mat_charpoly_modular(
cp: *mut fmpz_poly_struct,
mat: *const fmpz_mat_struct,
);
pub fn _fmpz_mat_charpoly(cp: *mut fmpz, mat: *const fmpz_mat_struct);
pub fn fmpz_mat_charpoly(cp: *mut fmpz_poly_struct, mat: *const fmpz_mat_struct);
pub fn _fmpz_mat_minpoly_modular(
rop: *mut fmpz,
op: *const fmpz_mat_struct,
) -> slong;
pub fn fmpz_mat_minpoly_modular(
cp: *mut fmpz_poly_struct,
mat: *const fmpz_mat_struct,
);
pub fn _fmpz_mat_minpoly(cp: *mut fmpz, mat: *const fmpz_mat_struct) -> slong;
pub fn fmpz_mat_minpoly(cp: *mut fmpz_poly_struct, mat: *const fmpz_mat_struct);
pub fn fmpz_mat_rank(A: *const fmpz_mat_struct) -> slong;
pub fn fmpz_mat_solve_bound(
N: *mut fmpz,
D: *mut fmpz,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
);
pub fn fmpz_mat_solve_cramer(
X: *mut fmpz_mat_struct,
den: *mut fmpz,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_solve_fflu_precomp(
X: *mut fmpz_mat_struct,
perm: *const slong,
FFLU: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_solve_fflu(
X: *mut fmpz_mat_struct,
den: *mut fmpz,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_solve(
X: *mut fmpz_mat_struct,
den: *mut fmpz,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_find_good_prime_and_invert(
Ainv: *mut nmod_mat_struct,
A: *const fmpz_mat_struct,
det_bound: *const fmpz,
) -> ulong;
pub fn fmpz_mat_dixon_get_crt_primes(
num_primes: *mut slong,
A: *const fmpz_mat_struct,
p: ulong,
) -> *mut ulong;
pub fn _fmpz_mat_solve_dixon(
X: *mut fmpz_mat_struct,
mod_: *mut fmpz,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
Ainv: *const nmod_mat_struct,
p: ulong,
N: *const fmpz,
D: *const fmpz,
);
pub fn _fmpz_mat_solve_dixon_den(
X: *mut fmpz_mat_struct,
den: *mut fmpz,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
Ainv: *const nmod_mat_struct,
p: ulong,
N: *const fmpz,
D: *const fmpz,
);
pub fn fmpz_mat_solve_dixon(
X: *mut fmpz_mat_struct,
mod_: *mut fmpz,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_solve_dixon_den(
X: *mut fmpz_mat_struct,
den: *mut fmpz,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_solve_multi_mod_den(
X: *mut fmpz_mat_struct,
den: *mut fmpz,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_can_solve_multi_mod_den(
X: *mut fmpz_mat_struct,
den: *mut fmpz,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_can_solve_fflu(
X: *mut fmpz_mat_struct,
den: *mut fmpz,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_can_solve(
X: *mut fmpz_mat_struct,
den: *mut fmpz,
A: *const fmpz_mat_struct,
B: *const fmpz_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_nullspace(
res: *mut fmpz_mat_struct,
mat: *const fmpz_mat_struct,
) -> slong;
pub fn fmpz_mat_inv(
B: *mut fmpz_mat_struct,
den: *mut fmpz,
A: *const fmpz_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_set_nmod_mat(A: *mut fmpz_mat_struct, Amod: *const nmod_mat_struct);
pub fn fmpz_mat_set_nmod_mat_unsigned(
A: *mut fmpz_mat_struct,
Amod: *const nmod_mat_struct,
);
pub fn fmpz_mat_get_nmod_mat(Amod: *mut nmod_mat_struct, A: *const fmpz_mat_struct);
pub fn fmpz_mat_CRT_ui(
res: *mut fmpz_mat_struct,
mat1: *const fmpz_mat_struct,
m1: *const fmpz,
mat2: *const nmod_mat_struct,
sign: ::std::os::raw::c_int,
);
pub fn fmpz_mat_multi_mod_ui(
residues: *mut nmod_mat_t,
nres: slong,
mat: *const fmpz_mat_struct,
);
pub fn fmpz_mat_multi_CRT_ui(
mat: *mut fmpz_mat_struct,
residues: *mut nmod_mat_t,
nres: slong,
sign: ::std::os::raw::c_int,
);
pub fn fmpz_mat_hnf(H: *mut fmpz_mat_struct, A: *const fmpz_mat_struct);
pub fn fmpz_mat_hnf_transform(
H: *mut fmpz_mat_struct,
U: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
);
pub fn fmpz_mat_hnf_classical(H: *mut fmpz_mat_struct, A: *const fmpz_mat_struct);
pub fn fmpz_mat_hnf_xgcd(H: *mut fmpz_mat_struct, A: *const fmpz_mat_struct);
pub fn fmpz_mat_hnf_minors(H: *mut fmpz_mat_struct, A: *const fmpz_mat_struct);
pub fn fmpz_mat_hnf_minors_transform(
H: *mut fmpz_mat_struct,
U: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
);
pub fn fmpz_mat_hnf_modular(
H: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
D: *const fmpz,
);
pub fn fmpz_mat_hnf_modular_eldiv(A: *mut fmpz_mat_struct, D: *const fmpz);
pub fn fmpz_mat_hnf_pernet_stein(
H: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
state: *mut flint_rand_struct,
);
pub fn fmpz_mat_is_in_hnf(A: *const fmpz_mat_struct) -> ::std::os::raw::c_int;
pub fn fmpz_mat_snf(S: *mut fmpz_mat_struct, A: *const fmpz_mat_struct);
pub fn fmpz_mat_snf_diagonal(S: *mut fmpz_mat_struct, A: *const fmpz_mat_struct);
pub fn fmpz_mat_snf_kannan_bachem(
S: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
);
pub fn fmpz_mat_snf_iliopoulos(
S: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
mod_: *const fmpz,
);
pub fn fmpz_mat_is_in_snf(A: *const fmpz_mat_struct) -> ::std::os::raw::c_int;
pub fn fmpz_mat_is_diagonal(A: *const fmpz_mat_struct) -> ::std::os::raw::c_int;
pub fn _fmpz_mat_snf_iter_bound(A: *const fmpz_mat_struct) -> slong;
pub fn fmpz_mat_snf_transform(
S: *mut fmpz_mat_struct,
U: *mut fmpz_mat_struct,
V: *mut fmpz_mat_struct,
A: *const fmpz_mat_struct,
);
pub fn fmpz_mat_elementary_divisors(
ed: *mut fmpz,
A: *const fmpz_mat_struct,
) -> slong;
pub fn fmpz_mat_is_hadamard(A: *const fmpz_mat_struct) -> ::std::os::raw::c_int;
pub fn fmpz_mat_hadamard(A: *mut fmpz_mat_struct) -> ::std::os::raw::c_int;
pub fn fmpz_mat_gram(B: *mut fmpz_mat_struct, A: *const fmpz_mat_struct);
pub fn fmpz_mat_is_spd(A: *const fmpz_mat_struct) -> ::std::os::raw::c_int;
pub fn fmpz_mat_is_reduced(
A: *const fmpz_mat_struct,
delta: f64,
eta: f64,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_is_reduced_gram(
A: *const fmpz_mat_struct,
delta: f64,
eta: f64,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_is_reduced_with_removal(
A: *const fmpz_mat_struct,
delta: f64,
eta: f64,
gs_B: *const fmpz,
newd: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_is_reduced_gram_with_removal(
A: *const fmpz_mat_struct,
delta: f64,
eta: f64,
gs_B: *const fmpz,
newd: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_lll_original(
A: *mut fmpz_mat_struct,
delta: *const fmpq,
eta: *const fmpq,
);
pub fn fmpz_mat_lll_storjohann(
A: *mut fmpz_mat_struct,
delta: *const fmpq,
eta: *const fmpq,
);
pub fn fmpz_mat_col_partition(
part: *mut slong,
M: *mut fmpz_mat_struct,
short_circuit: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn fmpz_mat_next_col_van_hoeij(
M: *mut fmpz_mat_struct,
P: *mut fmpz,
col: *mut fmpz_mat_struct,
exp: slong,
U_exp: slong,
) -> ::std::os::raw::c_int;
}
/* fmpz_mod.h */
#[repr(C)]
pub struct fmpz_mod_discrete_log_pohlig_hellman_table_entry_struct {
pub gammapow: fmpz_t,
pub cm: ulong,
}
impl Default for fmpz_mod_discrete_log_pohlig_hellman_table_entry_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()
}
}
}
#[repr(C)]
pub struct fmpz_mod_discrete_log_pohlig_hellman_entry_struct {
pub exp: slong,
pub prime: ulong,
pub gamma: fmpz_t,
pub gammainv: fmpz_t,
pub startingbeta: fmpz_t,
pub co: fmpz_t,
pub startinge: fmpz_t,
pub idem: fmpz_t,
pub cbound: ulong,
pub dbound: ulong,
pub table: *mut fmpz_mod_discrete_log_pohlig_hellman_table_entry_struct,
}
impl Default for fmpz_mod_discrete_log_pohlig_hellman_entry_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()
}
}
}
#[repr(C)]
pub struct fmpz_mod_discrete_log_pohlig_hellman_struct {
pub fpctx: fmpz_mod_ctx_t,
pub pm1: fmpz_t,
pub alpha: fmpz_t,
pub alphainv: fmpz_t,
pub num_factors: slong,
pub entries: *mut fmpz_mod_discrete_log_pohlig_hellman_entry_struct,
}
impl Default for fmpz_mod_discrete_log_pohlig_hellman_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_discrete_log_pohlig_hellman_t = [fmpz_mod_discrete_log_pohlig_hellman_struct; 1usize];
unsafe extern "C" {
pub fn fmpz_mod_ctx_init(ctx: *mut fmpz_mod_ctx_struct, n: *const fmpz);
pub fn fmpz_mod_ctx_init_ui(ctx: *mut fmpz_mod_ctx_struct, n: ulong);
pub fn fmpz_mod_ctx_init_rand_bits(
ctx: *mut fmpz_mod_ctx_struct,
state: *mut flint_rand_struct,
max_bits: flint_bitcnt_t,
);
pub fn fmpz_mod_ctx_init_rand_bits_prime(
ctx: *mut fmpz_mod_ctx_struct,
state: *mut flint_rand_struct,
max_bits: flint_bitcnt_t,
);
pub fn fmpz_mod_ctx_clear(ctx: *mut fmpz_mod_ctx_struct);
pub fn fmpz_mod_ctx_modulus(ctx: *const fmpz_mod_ctx_struct) -> *const fmpz;
pub fn fmpz_mod_ctx_set_modulus(ctx: *mut fmpz_mod_ctx_struct, n: *const fmpz);
pub fn fmpz_mod_ctx_set_modulus_ui(ctx: *mut fmpz_mod_ctx_struct, n: ulong);
pub fn fmpz_mod_is_canonical(
a: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_assert_canonical(a: *const fmpz, ctx: *const fmpz_mod_ctx_struct);
pub fn fmpz_mod_is_one(
a: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_equal_fmpz(
a: *const fmpz,
b: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_equal_si(
a: *const fmpz,
b: slong,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_set_fmpz(
a: *mut fmpz,
b: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_set_ui(a: *mut fmpz, b: ulong, ctx: *const fmpz_mod_ctx_struct);
pub fn fmpz_mod_set_si(a: *mut fmpz, b: slong, ctx: *const fmpz_mod_ctx_struct);
pub fn _fmpz_mod_add1(
a: *mut fmpz,
b: *const fmpz,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_add2s(
a: *mut fmpz,
b: *const fmpz,
c: *const fmpz,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_add2(
a: *mut fmpz,
b: *const fmpz,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_addN(
a: *mut fmpz,
b: *const fmpz,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_add(
a: *mut fmpz,
b: *const fmpz,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_add_fmpz(
a: *mut fmpz,
b: *const fmpz,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_add_ui(
a: *mut fmpz,
b: *const fmpz,
c: ulong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_add_si(
a: *mut fmpz,
b: *const fmpz,
c: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_sub1(
a: *mut fmpz,
b: *const fmpz,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_sub2s(
a: *mut fmpz,
b: *const fmpz,
c: *const fmpz,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_sub2(
a: *mut fmpz,
b: *const fmpz,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_subN(
a: *mut fmpz,
b: *const fmpz,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_sub(
a: *mut fmpz,
b: *const fmpz,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_sub_fmpz(
a: *mut fmpz,
b: *const fmpz,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_sub_ui(
a: *mut fmpz,
b: *const fmpz,
c: ulong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_sub_si(
a: *mut fmpz,
b: *const fmpz,
c: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_fmpz_sub(
a: *mut fmpz,
b: *const fmpz,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_ui_sub(
a: *mut fmpz,
b: ulong,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_si_sub(
a: *mut fmpz,
b: slong,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_neg(a: *mut fmpz, b: *const fmpz, ctx: *const fmpz_mod_ctx_struct);
pub fn _fmpz_mod_mul1(
a: *mut fmpz,
b: *const fmpz,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_mul2s(
a: *mut fmpz,
b: *const fmpz,
c: *const fmpz,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_mul2(
a: *mut fmpz,
b: *const fmpz,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_mulN(
a: *mut fmpz,
b: *const fmpz,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mul(
a: *mut fmpz,
b: *const fmpz,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mul_fmpz(
a: *mut fmpz,
b: *const fmpz,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mul_ui(
a: *mut fmpz,
b: *const fmpz,
c: ulong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mul_si(
a: *mut fmpz,
b: *const fmpz,
c: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_addmul(
a: *mut fmpz,
b: *const fmpz,
c: *const fmpz,
d: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_is_invertible(
a: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_inv(a: *mut fmpz, b: *const fmpz, ctx: *const fmpz_mod_ctx_struct);
pub fn fmpz_mod_divides(
a: *mut fmpz,
b: *const fmpz,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_pow_ui(
a: *mut fmpz,
b: *const fmpz,
pow: ulong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_pow_fmpz(
a: *mut fmpz,
b: *const fmpz,
pow: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_rand(
a: *mut fmpz,
state: *mut flint_rand_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_rand_not_zero(
a: *mut fmpz,
state: *mut flint_rand_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_discrete_log_pohlig_hellman_init(
L: *mut fmpz_mod_discrete_log_pohlig_hellman_struct,
);
pub fn fmpz_mod_discrete_log_pohlig_hellman_clear(
L: *mut fmpz_mod_discrete_log_pohlig_hellman_struct,
);
pub fn fmpz_mod_discrete_log_pohlig_hellman_precompute_prime(
L: *mut fmpz_mod_discrete_log_pohlig_hellman_struct,
p: *const fmpz,
) -> f64;
pub fn fmpz_mod_discrete_log_pohlig_hellman_run(
x: *mut fmpz,
L: *const fmpz_mod_discrete_log_pohlig_hellman_struct,
y: *const fmpz,
);
pub fn fmpz_mod_discrete_log_pohlig_hellman_primitive_root(
L: *mut fmpz_mod_discrete_log_pohlig_hellman_struct,
) -> *const fmpz;
pub fn fmpz_next_smooth_prime(a: *mut fmpz, b: *const fmpz) -> ::std::os::raw::c_int;
}
/* fmpz_mod_mat.h */
unsafe extern "C" {
pub fn fmpz_mod_mat_entry(
mat: *const fmpz_mod_mat_struct,
i: slong,
j: slong,
) -> *mut fmpz;
pub fn fmpz_mod_mat_row(mat: *const fmpz_mod_mat_struct, i: slong) -> *mut fmpz;
pub fn fmpz_mod_mat_set_entry(
mat: *mut fmpz_mod_mat_struct,
i: slong,
j: slong,
val: *const fmpz,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_get_entry(
x: *mut fmpz,
mat: *const fmpz_mod_mat_struct,
i: slong,
j: slong,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_init(
mat: *mut fmpz_mod_mat_struct,
rows: slong,
cols: slong,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_init_set(
mat: *mut fmpz_mod_mat_struct,
src: *const fmpz_mod_mat_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_clear(
mat: *mut fmpz_mod_mat_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_nrows(
mat: *const fmpz_mod_mat_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> slong;
pub fn fmpz_mod_mat_ncols(
mat: *const fmpz_mod_mat_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> slong;
pub fn fmpz_mod_mat_one(
mat: *mut fmpz_mod_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_zero(
mat: *mut fmpz_mod_mat_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_is_empty(
mat: *const fmpz_mod_mat_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mat_is_square(
mat: *const fmpz_mod_mat_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mat_swap(
mat1: *mut fmpz_mod_mat_struct,
mat2: *mut fmpz_mod_mat_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_swap_entrywise(
mat1: *mut fmpz_mod_mat_struct,
mat2: *mut fmpz_mod_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_set(
B: *mut fmpz_mod_mat_struct,
A: *const fmpz_mod_mat_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_set_nmod_mat(
A: *mut fmpz_mod_mat_struct,
B: *const nmod_mat_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_set_fmpz_mat(
A: *mut fmpz_mod_mat_struct,
B: *const fmpz_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_get_fmpz_mat(
A: *mut fmpz_mat_struct,
B: *const fmpz_mod_mat_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_mat_reduce(
mat: *mut fmpz_mod_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_randtest(
mat: *mut fmpz_mod_mat_struct,
state: *mut flint_rand_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_randfull(
mat: *mut fmpz_mod_mat_struct,
state: *mut flint_rand_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_rand(
mat: *mut fmpz_mod_mat_struct,
state: *mut flint_rand_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_randrank(
mat: *mut fmpz_mod_mat_struct,
state: *mut flint_rand_struct,
rank: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_randtril(
mat: *mut fmpz_mod_mat_struct,
state: *mut flint_rand_struct,
unit: ::std::os::raw::c_int,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_randtriu(
mat: *mut fmpz_mod_mat_struct,
state: *mut flint_rand_struct,
unit: ::std::os::raw::c_int,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_randops(
mat: *mut fmpz_mod_mat_struct,
state: *mut flint_rand_struct,
count: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_window_init(
window: *mut fmpz_mod_mat_struct,
mat: *const fmpz_mod_mat_struct,
r1: slong,
c1: slong,
r2: slong,
c2: slong,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_window_clear(
window: *mut fmpz_mod_mat_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_concat_horizontal(
res: *mut fmpz_mod_mat_struct,
mat1: *const fmpz_mod_mat_struct,
mat2: *const fmpz_mod_mat_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_concat_vertical(
res: *mut fmpz_mod_mat_struct,
mat1: *const fmpz_mod_mat_struct,
mat2: *const fmpz_mod_mat_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_fprint(
file: *mut FILE,
mat: *const fmpz_mod_mat_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mat_fprint_pretty(
file: *mut FILE,
mat: *const fmpz_mod_mat_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mat_print(
mat: *const fmpz_mod_mat_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mat_print_pretty(
mat: *const fmpz_mod_mat_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_equal(
mat1: *const fmpz_mod_mat_struct,
mat2: *const fmpz_mod_mat_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mat_is_zero(
mat: *const fmpz_mod_mat_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mat_is_one(
mat: *const fmpz_mod_mat_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mat_transpose(
B: *mut fmpz_mod_mat_struct,
A: *const fmpz_mod_mat_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_add(
C: *mut fmpz_mod_mat_struct,
A: *const fmpz_mod_mat_struct,
B: *const fmpz_mod_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_sub(
C: *mut fmpz_mod_mat_struct,
A: *const fmpz_mod_mat_struct,
B: *const fmpz_mod_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_neg(
B: *mut fmpz_mod_mat_struct,
A: *const fmpz_mod_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_scalar_mul_si(
B: *mut fmpz_mod_mat_struct,
A: *const fmpz_mod_mat_struct,
c: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_scalar_mul_ui(
B: *mut fmpz_mod_mat_struct,
A: *const fmpz_mod_mat_struct,
c: ulong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_scalar_mul_fmpz(
B: *mut fmpz_mod_mat_struct,
A: *const fmpz_mod_mat_struct,
c: *mut fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_mul(
C: *mut fmpz_mod_mat_struct,
A: *const fmpz_mod_mat_struct,
B: *const fmpz_mod_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_mat_mul_classical_threaded_pool_op(
D: *mut fmpz_mod_mat_struct,
C: *const fmpz_mod_mat_struct,
A: *const fmpz_mod_mat_struct,
B: *const fmpz_mod_mat_struct,
op: ::std::os::raw::c_int,
threads: *mut thread_pool_handle,
num_threads: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_mul_classical_threaded(
C: *mut fmpz_mod_mat_struct,
A: *const fmpz_mod_mat_struct,
B: *const fmpz_mod_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_sqr(
B: *mut fmpz_mod_mat_struct,
A: *const fmpz_mod_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_pow_ui(
B: *mut fmpz_mod_mat_struct,
A: *const fmpz_mod_mat_struct,
exp: ulong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_submul(
D: *mut fmpz_mod_mat_struct,
C: *const fmpz_mod_mat_struct,
A: *const fmpz_mod_mat_struct,
B: *const fmpz_mod_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_mul_fmpz_vec(
c: *mut fmpz,
A: *const fmpz_mod_mat_struct,
b: *const fmpz,
blen: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_mul_fmpz_vec_ptr(
c: *const *mut fmpz,
A: *const fmpz_mod_mat_struct,
b: *const *const fmpz,
blen: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_fmpz_vec_mul(
c: *mut fmpz,
a: *const fmpz,
alen: slong,
B: *const fmpz_mod_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_fmpz_vec_mul_ptr(
c: *const *mut fmpz,
a: *const *const fmpz,
alen: slong,
B: *const fmpz_mod_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_trace(
trace: *mut fmpz,
mat: *const fmpz_mod_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_det(
res: *mut fmpz,
mat: *const fmpz_mod_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_rref(
res: *mut fmpz_mod_mat_struct,
mat: *const fmpz_mod_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> slong;
pub fn fmpz_mod_mat_reduce_row(
column: *mut slong,
A: *mut fmpz_mod_mat_struct,
P: *mut slong,
L: *mut slong,
m: slong,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mat_lu(
P: *mut slong,
A: *mut fmpz_mod_mat_struct,
rank_check: ::std::os::raw::c_int,
ctx: *const fmpz_mod_ctx_struct,
) -> slong;
pub fn fmpz_mod_mat_solve_triu(
X: *mut fmpz_mod_mat_struct,
L: *const fmpz_mod_mat_struct,
B: *const fmpz_mod_mat_struct,
unit: ::std::os::raw::c_int,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_solve_tril(
X: *mut fmpz_mod_mat_struct,
L: *const fmpz_mod_mat_struct,
B: *const fmpz_mod_mat_struct,
unit: ::std::os::raw::c_int,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_can_solve(
X: *mut fmpz_mod_mat_struct,
A: *const fmpz_mod_mat_struct,
B: *const fmpz_mod_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mat_solve(
X: *mut fmpz_mod_mat_struct,
A: *const fmpz_mod_mat_struct,
B: *const fmpz_mod_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mat_inv(
B: *mut fmpz_mod_mat_struct,
A: *const fmpz_mod_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mat_rank(
A: *const fmpz_mod_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> slong;
pub fn fmpz_mod_mat_nullspace(
X: *mut fmpz_mod_mat_struct,
A: *const fmpz_mod_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> slong;
pub fn fmpz_mod_mat_howell_form(
mat: *mut fmpz_mod_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> slong;
pub fn fmpz_mod_mat_strong_echelon_form(
mat: *mut fmpz_mod_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_similarity(
A: *mut fmpz_mod_mat_struct,
r: slong,
d: *mut fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_swap_rows(
mat: *mut fmpz_mod_mat_struct,
perm: *mut slong,
r: slong,
s: slong,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_invert_rows(
mat: *mut fmpz_mod_mat_struct,
perm: *mut slong,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_swap_cols(
mat: *mut fmpz_mod_mat_struct,
perm: *mut slong,
r: slong,
s: slong,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_invert_cols(
mat: *mut fmpz_mod_mat_struct,
perm: *mut slong,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
}
/* fmpz_mod_mpoly.h */
#[repr(C)]
pub struct fmpz_mod_mpoly_univar_struct {
pub coeffs: *mut fmpz_mod_mpoly_struct,
pub exps: *mut fmpz,
pub alloc: slong,
pub length: slong,
}
impl Default for fmpz_mod_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_mod_mpoly_univar_t = [fmpz_mod_mpoly_univar_struct; 1usize];
#[repr(C)]
pub struct fmpz_mod_mpoly_geobucket {
pub polys: [fmpz_mod_mpoly_struct; 32usize],
pub temps: [fmpz_mod_mpoly_struct; 32usize],
pub length: slong,
}
impl Default for fmpz_mod_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_mod_mpoly_geobucket_struct = fmpz_mod_mpoly_geobucket;
pub type fmpz_mod_mpoly_geobucket_t = [fmpz_mod_mpoly_geobucket_struct; 1usize];
#[repr(C)]
pub struct fmpz_mod_mpoly_vec_struct {
pub p: *mut fmpz_mod_mpoly_struct,
pub alloc: slong,
pub length: slong,
}
impl Default for fmpz_mod_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_mod_mpoly_vec_t = [fmpz_mod_mpoly_vec_struct; 1usize];
unsafe extern "C" {
pub fn fmpz_mod_mpoly_ctx_init(
ctx: *mut fmpz_mod_mpoly_ctx_struct,
nvars: slong,
ord: ordering_t,
modulus: *const fmpz,
);
pub fn fmpz_mod_mpoly_ctx_init_rand(
ctx: *mut fmpz_mod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
max_nvars: slong,
modulus: *const fmpz,
);
pub fn fmpz_mod_mpoly_ctx_init_rand_bits_prime(
ctx: *mut fmpz_mod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
max_nvars: slong,
max_bits: flint_bitcnt_t,
);
pub fn fmpz_mod_mpoly_ctx_init_rand_bits(
ctx: *mut fmpz_mod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
max_nvars: slong,
max_bits: flint_bitcnt_t,
);
pub fn fmpz_mod_mpoly_ctx_clear(ctx: *mut fmpz_mod_mpoly_ctx_struct);
pub fn fmpz_mod_mpoly_ctx_nvars(ctx: *const fmpz_mod_mpoly_ctx_struct) -> slong;
pub fn fmpz_mod_mpoly_ctx_ord(ctx: *const fmpz_mod_mpoly_ctx_struct) -> ordering_t;
pub fn fmpz_mod_mpoly_ctx_modulus(
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> *const fmpz;
pub fn fmpz_mod_mpoly_ctx_get_modulus(
m: *mut fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_init(
A: *mut fmpz_mod_mpoly_struct,
UNUSED_ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_clear(
A: *mut fmpz_mod_mpoly_struct,
UNUSED_ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_init2(
A: *mut fmpz_mod_mpoly_struct,
alloc: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_init3(
A: *mut fmpz_mod_mpoly_struct,
alloc: slong,
bits: flint_bitcnt_t,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_realloc(
A: *mut fmpz_mod_mpoly_struct,
alloc: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_fit_length(
A: *mut fmpz_mod_mpoly_struct,
length: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_fit_length_fit_bits(
A: *mut fmpz_mod_mpoly_struct,
len: slong,
bits: flint_bitcnt_t,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_fit_length_reset_bits(
A: *mut fmpz_mod_mpoly_struct,
len: slong,
bits: flint_bitcnt_t,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn _fmpz_mod_mpoly_fit_length(
coeffs: *mut *mut fmpz,
coeffs_alloc: *mut slong,
exps: *mut *mut ulong,
exps_alloc: *mut slong,
N: slong,
length: slong,
);
pub fn _fmpz_mod_mpoly_set_length(
A: *mut fmpz_mod_mpoly_struct,
newlen: slong,
UNUSED_ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_truncate(
A: *mut fmpz_mod_mpoly_struct,
newlen: slong,
UNUSED_ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_set_str_pretty(
A: *mut fmpz_mod_mpoly_struct,
str_: *const ::std::os::raw::c_char,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_get_str_pretty(
A: *const fmpz_mod_mpoly_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> *mut ::std::os::raw::c_char;
pub fn fmpz_mod_mpoly_fprint_pretty(
file: *mut FILE,
A: *const fmpz_mod_mpoly_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_print_pretty(
A: *const fmpz_mod_mpoly_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_gen(
A: *mut fmpz_mod_mpoly_struct,
var: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_is_gen(
A: *const fmpz_mod_mpoly_struct,
var: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_set(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_equal(
A: *const fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_swap(
A: *mut fmpz_mod_mpoly_struct,
B: *mut fmpz_mod_mpoly_struct,
UNUSED_ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_is_fmpz(
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_get_fmpz(
c: *mut fmpz,
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_set_fmpz_mod(
A: *mut fmpz_mod_mpoly_struct,
c: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_set_fmpz(
A: *mut fmpz_mod_mpoly_struct,
c: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_set_ui(
A: *mut fmpz_mod_mpoly_struct,
c: ulong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_set_si(
A: *mut fmpz_mod_mpoly_struct,
c: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_zero(
A: *mut fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_one(
A: *mut fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_equal_fmpz(
A: *const fmpz_mod_mpoly_struct,
c: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_equal_ui(
A: *const fmpz_mod_mpoly_struct,
c: ulong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_equal_si(
A: *const fmpz_mod_mpoly_struct,
c: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_is_zero(
A: *const fmpz_mod_mpoly_struct,
UNUSED_ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_is_one(
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_degrees_fit_si(
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_degrees_fmpz(
degs: *mut *mut fmpz,
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_degrees_si(
degs: *mut slong,
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_degree_fmpz(
deg: *mut fmpz,
A: *const fmpz_mod_mpoly_struct,
var: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_degree_si(
A: *const fmpz_mod_mpoly_struct,
var: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> slong;
pub fn fmpz_mod_mpoly_total_degree_fits_si(
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_total_degree_fmpz(
td: *mut fmpz,
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_total_degree_si(
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> slong;
pub fn fmpz_mod_mpoly_used_vars(
used: *mut ::std::os::raw::c_int,
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_get_coeff_fmpz_monomial(
c: *mut fmpz,
A: *const fmpz_mod_mpoly_struct,
M: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_set_coeff_fmpz_monomial(
A: *mut fmpz_mod_mpoly_struct,
c: *const fmpz,
M: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_get_coeff_fmpz_fmpz(
c: *mut fmpz,
A: *const fmpz_mod_mpoly_struct,
exp: *const *mut fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_get_coeff_fmpz_ui(
c: *mut fmpz,
A: *const fmpz_mod_mpoly_struct,
exp: *const ulong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn _fmpz_mod_mpoly_set_coeff_fmpz_fmpz(
A: *mut fmpz_mod_mpoly_struct,
c: *const fmpz,
exp: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_set_coeff_fmpz_fmpz(
A: *mut fmpz_mod_mpoly_struct,
c: *const fmpz,
exp: *const *mut fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_set_coeff_ui_fmpz(
A: *mut fmpz_mod_mpoly_struct,
c: ulong,
exp: *const *mut fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_set_coeff_si_fmpz(
A: *mut fmpz_mod_mpoly_struct,
c: slong,
exp: *const *mut fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_set_coeff_fmpz_ui(
A: *mut fmpz_mod_mpoly_struct,
c: *const fmpz,
exp: *const ulong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_set_coeff_ui_ui(
A: *mut fmpz_mod_mpoly_struct,
c: ulong,
exp: *const ulong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_set_coeff_si_ui(
A: *mut fmpz_mod_mpoly_struct,
c: slong,
exp: *const ulong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_get_coeff_vars_ui(
C: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
vars: *const slong,
exps: *const ulong,
length: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_leadcoeff(A: *mut fmpz_mod_mpoly_struct) -> *mut fmpz;
pub fn fmpz_mod_mpoly_is_fmpz_mod_poly(
A: *const fmpz_mod_mpoly_struct,
var: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_get_fmpz_mod_poly(
A: *mut fmpz_mod_poly_struct,
B: *const fmpz_mod_mpoly_struct,
var: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpz_mod_mpoly_set_fmpz_mod_poly(
A: *mut fmpz_mod_mpoly_struct,
Abits: flint_bitcnt_t,
Bcoeffs: *const fmpz,
Blen: slong,
var: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_set_fmpz_mod_poly(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_poly_struct,
var: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_cmp(
A: *const fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_is_canonical(
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_length(
A: *const fmpz_mod_mpoly_struct,
UNUSED_ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> slong;
pub fn fmpz_mod_mpoly_resize(
A: *mut fmpz_mod_mpoly_struct,
new_length: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_get_term_coeff_fmpz(
c: *mut fmpz,
A: *const fmpz_mod_mpoly_struct,
i: slong,
UNUSED_ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_set_term_coeff_fmpz(
A: *mut fmpz_mod_mpoly_struct,
i: slong,
c: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_set_term_coeff_ui(
A: *mut fmpz_mod_mpoly_struct,
i: slong,
c: ulong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_set_term_coeff_si(
A: *mut fmpz_mod_mpoly_struct,
i: slong,
c: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_term_exp_fits_ui(
A: *const fmpz_mod_mpoly_struct,
i: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_term_exp_fits_si(
A: *const fmpz_mod_mpoly_struct,
i: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_get_term_exp_fmpz(
exp: *mut *mut fmpz,
A: *const fmpz_mod_mpoly_struct,
i: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_get_term_exp_ui(
exp: *mut ulong,
A: *const fmpz_mod_mpoly_struct,
i: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_get_term_exp_si(
exp: *mut slong,
A: *const fmpz_mod_mpoly_struct,
i: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_get_term_var_exp_ui(
A: *const fmpz_mod_mpoly_struct,
i: slong,
var: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ulong;
pub fn fmpz_mod_mpoly_get_term_var_exp_si(
A: *const fmpz_mod_mpoly_struct,
i: slong,
var: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> slong;
pub fn fmpz_mod_mpoly_set_term_exp_fmpz(
A: *mut fmpz_mod_mpoly_struct,
i: slong,
exp: *const *mut fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_set_term_exp_ui(
A: *mut fmpz_mod_mpoly_struct,
i: slong,
exp: *const ulong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_get_term(
M: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
i: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_get_term_monomial(
M: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
i: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_push_term_fmpz_fmpz(
A: *mut fmpz_mod_mpoly_struct,
c: *const fmpz,
exp: *const *mut fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_push_term_fmpz_ffmpz(
A: *mut fmpz_mod_mpoly_struct,
c: *const fmpz,
exp: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_push_term_ui_fmpz(
A: *mut fmpz_mod_mpoly_struct,
c: ulong,
exp: *const *mut fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_push_term_ui_ffmpz(
A: *mut fmpz_mod_mpoly_struct,
c: ulong,
exp: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_push_term_si_fmpz(
A: *mut fmpz_mod_mpoly_struct,
c: slong,
exp: *const *mut fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_push_term_si_ffmpz(
A: *mut fmpz_mod_mpoly_struct,
c: slong,
exp: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_push_term_fmpz_ui(
A: *mut fmpz_mod_mpoly_struct,
c: *const fmpz,
exp: *const ulong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_push_term_ui_ui(
A: *mut fmpz_mod_mpoly_struct,
c: ulong,
exp: *const ulong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_push_term_si_ui(
A: *mut fmpz_mod_mpoly_struct,
c: slong,
exp: *const ulong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_sort_terms(
A: *mut fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_combine_like_terms(
A: *mut fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_reverse(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_assert_canonical(
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn _fmpz_mod_mpoly_radix_sort1(
arg1: *mut fmpz,
arg2: *mut ulong,
left: slong,
right: slong,
pos: flint_bitcnt_t,
cmpmask: ulong,
totalmask: ulong,
);
pub fn _fmpz_mod_mpoly_radix_sort(
arg1: *mut fmpz,
arg2: *mut ulong,
left: slong,
right: slong,
pos: flint_bitcnt_t,
N: slong,
cmpmask: *mut ulong,
);
pub fn _fmpz_mod_mpoly_push_exp_ffmpz(
A: *mut fmpz_mod_mpoly_struct,
exp: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn _fmpz_mod_mpoly_push_exp_pfmpz(
A: *mut fmpz_mod_mpoly_struct,
exp: *const *mut fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn _fmpz_mod_mpoly_push_exp_ui(
A: *mut fmpz_mod_mpoly_struct,
exp: *const ulong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_randtest_bounds(
A: *mut fmpz_mod_mpoly_struct,
state: *mut flint_rand_struct,
length: slong,
exp_bounds: *mut ulong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_randtest_bound(
A: *mut fmpz_mod_mpoly_struct,
state: *mut flint_rand_struct,
length: slong,
exp_bound: ulong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_randtest_bits(
A: *mut fmpz_mod_mpoly_struct,
state: *mut flint_rand_struct,
length: slong,
exp_bits: flint_bitcnt_t,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_add_fmpz_mod(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
c: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_add_fmpz(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
c: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_add_ui(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
c: ulong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_add_si(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
c: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_sub_fmpz(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
c: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_sub_ui(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
c: ulong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_sub_si(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
c: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_add(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
C: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_sub(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
C: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_neg(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_scalar_mul_fmpz_mod_invertible(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
c: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_scalar_mul_fmpz(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
c: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_scalar_mul_ui(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
c: ulong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_scalar_mul_si(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
c: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_scalar_addmul_fmpz(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
C: *const fmpz_mod_mpoly_struct,
d: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_make_monic(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_derivative(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
var: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn _fmpz_mod_mpoly_eval_all_fmpz_mod(
eval: *mut fmpz,
Acoeffs: *const fmpz,
Aexps: *const ulong,
Alen: slong,
Abits: flint_bitcnt_t,
alphas: *const fmpz,
mctx: *const mpoly_ctx_struct,
fctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mpoly_evaluate_all_fmpz(
eval: *mut fmpz,
A: *const fmpz_mod_mpoly_struct,
alphas: *const *mut fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_evaluate_one_fmpz(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
var: slong,
val: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn _fmpz_mod_mpoly_compose_mat(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
M: *const fmpz_mat_struct,
ctxB: *const fmpz_mod_mpoly_ctx_struct,
ctxAC: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_compose_fmpz_mod_mpoly_geobucket(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
C: *const *mut fmpz_mod_mpoly_struct,
ctxB: *const fmpz_mod_mpoly_ctx_struct,
ctxAC: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_compose_fmpz_mod_mpoly_horner(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
C: *const *mut fmpz_mod_mpoly_struct,
ctxB: *const fmpz_mod_mpoly_ctx_struct,
ctxAC: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_compose_fmpz_mod_mpoly(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
C: *const *mut fmpz_mod_mpoly_struct,
ctxB: *const fmpz_mod_mpoly_ctx_struct,
ctxAC: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_compose_fmpz_mod_mpoly_gen(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
c: *const slong,
ctxB: *const fmpz_mod_mpoly_ctx_struct,
ctxAC: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_mul(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
C: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_mul_johnson(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
C: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn _fmpz_mod_mpoly_mul_johnson_maxfields(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
maxBfields: *mut fmpz,
C: *const fmpz_mod_mpoly_struct,
maxCfields: *mut fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_mul_dense(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
C: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpz_mod_mpoly_mul_dense_maxfields(
P: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
maxAfields: *mut fmpz,
B: *const fmpz_mod_mpoly_struct,
maxBfields: *mut fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_pow_fmpz(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
k: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_pow_ui(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
k: ulong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_pow_rmul(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
k: ulong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_divides(
Q: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_div(
Q: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_divrem(
Q: *mut fmpz_mod_mpoly_struct,
R: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_divrem_ideal(
Q: *mut *mut fmpz_mod_mpoly_struct,
R: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
B: *const *mut fmpz_mod_mpoly_struct,
len: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_divexact(
Q: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn _fmpz_mod_mpoly_divides_dense_maxfields(
Q: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
maxAfields: *mut fmpz,
B: *const fmpz_mod_mpoly_struct,
maxBfields: *mut fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_divides_dense(
Q: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpz_mod_mpoly_divides_monagan_pearce_maxfields(
Q: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
maxAfields: *mut fmpz,
B: *const fmpz_mod_mpoly_struct,
maxBfields: *mut fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_divides_monagan_pearce(
Q: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_div_monagan_pearce(
Q: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_divrem_monagan_pearce(
Q: *mut fmpz_mod_mpoly_struct,
R: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_divrem_ideal_monagan_pearce(
Q: *mut *mut fmpz_mod_mpoly_struct,
R: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
B: *const *mut fmpz_mod_mpoly_struct,
len: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_sqrt_heap(
Q: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_sqrt(
Q: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_is_square(
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_quadratic_root(
Q: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_term_content(
M: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_monic_part(
res: *mut fmpz_mod_mpoly_struct,
f: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_content_vars(
g: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
vars: *mut slong,
vars_length: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_gcd(
G: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_gcd_cofactors(
G: *mut fmpz_mod_mpoly_struct,
Abar: *mut fmpz_mod_mpoly_struct,
Bbar: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_gcd_subresultant(
G: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_gcd_brown(
G: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_gcd_hensel(
G: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_gcd_zippel(
G: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_gcd_zippel2(
G: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_deflation(
shift: *mut fmpz,
stride: *mut fmpz,
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_deflate(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
shift: *const fmpz,
stride: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_inflate(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
shift: *const fmpz,
stride: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_univar_init(
A: *mut fmpz_mod_mpoly_univar_struct,
UNUSED_ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_univar_clear(
A: *mut fmpz_mod_mpoly_univar_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_univar_fit_length(
A: *mut fmpz_mod_mpoly_univar_struct,
length: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_univar_print_pretty(
A: *const fmpz_mod_mpoly_univar_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_univar_assert_canonical(
A: *mut fmpz_mod_mpoly_univar_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_univar_zero(
A: *mut fmpz_mod_mpoly_univar_struct,
UNUSED_ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_univar_set_coeff_ui(
A: *mut fmpz_mod_mpoly_univar_struct,
e: ulong,
c: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_to_univar(
A: *mut fmpz_mod_mpoly_univar_struct,
B: *const fmpz_mod_mpoly_struct,
var: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn _fmpz_mod_mpoly_from_univar(
A: *mut fmpz_mod_mpoly_struct,
Abits: flint_bitcnt_t,
B: *const fmpz_mod_mpoly_univar_struct,
var: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_from_univar(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_univar_struct,
var: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_univar_swap(
A: *mut fmpz_mod_mpoly_univar_struct,
B: *mut fmpz_mod_mpoly_univar_struct,
UNUSED_ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_univar_degree_fits_si(
A: *const fmpz_mod_mpoly_univar_struct,
UNUSED_ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_univar_length(
A: *const fmpz_mod_mpoly_univar_struct,
UNUSED_ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> slong;
pub fn fmpz_mod_mpoly_univar_get_term_exp_si(
A: *mut fmpz_mod_mpoly_univar_struct,
i: slong,
UNUSED_ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> slong;
pub fn fmpz_mod_mpoly_univar_get_term_coeff(
c: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_univar_struct,
i: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_univar_swap_term_coeff(
c: *mut fmpz_mod_mpoly_struct,
A: *mut fmpz_mod_mpoly_univar_struct,
i: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_univar_pseudo_gcd(
Gx: *mut fmpz_mod_mpoly_univar_struct,
Ax: *const fmpz_mod_mpoly_univar_struct,
Bx: *const fmpz_mod_mpoly_univar_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_univar_resultant(
R: *mut fmpz_mod_mpoly_struct,
Ax: *const fmpz_mod_mpoly_univar_struct,
Bx: *const fmpz_mod_mpoly_univar_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_univar_discriminant(
D: *mut fmpz_mod_mpoly_struct,
Fx: *const fmpz_mod_mpoly_univar_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_resultant(
R: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
var: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_discriminant(
R: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
var: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
///Internal functions (guaranteed to change without notice)
pub fn _fmpz_mod_mpoly_clear_dense_mock(D: *mut fmpz_mod_poly_struct);
pub fn _fmpz_mod_mpoly_init_dense_mock(
D: *mut fmpz_mod_poly_struct,
A: *const fmpz_mod_mpoly_struct,
Adeg_bounds: *const slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn mpoly_void_ring_init_fmpz_mod_mpoly_ctx(
R: *mut mpoly_void_ring_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_geobucket_init(
B: *mut fmpz_mod_mpoly_geobucket_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_geobucket_clear(
B: *mut fmpz_mod_mpoly_geobucket_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_geobucket_empty(
p: *mut fmpz_mod_mpoly_struct,
B: *mut fmpz_mod_mpoly_geobucket_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_geobucket_fit_length(
B: *mut fmpz_mod_mpoly_geobucket_struct,
i: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_geobucket_set(
B: *mut fmpz_mod_mpoly_geobucket_struct,
p: *mut fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_geobucket_add(
B: *mut fmpz_mod_mpoly_geobucket_struct,
p: *mut fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_geobucket_sub(
B: *mut fmpz_mod_mpoly_geobucket_struct,
p: *mut fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpolyl_lead_coeff(
c: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
num_vars: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpolyl_content(
g: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
num_vars: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpz_mod_mpoly_to_fmpz_mod_poly_deflate(
A: *mut fmpz_mod_poly_struct,
B: *const fmpz_mod_mpoly_struct,
var: slong,
Bshift: *const ulong,
Bstride: *const ulong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn _fmpz_mod_mpoly_from_fmpz_mod_poly_inflate(
A: *mut fmpz_mod_mpoly_struct,
Abits: flint_bitcnt_t,
B: *const fmpz_mod_poly_struct,
var: slong,
Ashift: *const ulong,
Astride: *const ulong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn _fmpz_mod_mpoly_set_nmod_mpoly(
A: *mut fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
nA: *const nmod_mpoly_struct,
UNUSED_nctx: *const nmod_mpoly_ctx_struct,
);
pub fn _fmpz_mod_mpoly_get_nmod_mpoly(
nA: *mut nmod_mpoly_struct,
nctx: *const nmod_mpoly_ctx_struct,
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_repack_bits(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
Abits: flint_bitcnt_t,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_repack_bits_inplace(
A: *mut fmpz_mod_mpoly_struct,
Abits: flint_bitcnt_t,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_to_mpolyl_perm_deflate(
A: *mut fmpz_mod_mpoly_struct,
lctx: *const fmpz_mod_mpoly_ctx_struct,
B: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
perm: *const slong,
shift: *const ulong,
stride: *const ulong,
);
pub fn fmpz_mod_mpoly_from_mpolyl_perm_inflate(
A: *mut fmpz_mod_mpoly_struct,
Abits: flint_bitcnt_t,
ctx: *const fmpz_mod_mpoly_ctx_struct,
B: *const fmpz_mod_mpoly_struct,
lctx: *const fmpz_mod_mpoly_ctx_struct,
perm: *const slong,
shift: *const ulong,
stride: *const ulong,
);
pub fn fmpz_mod_mpoly_vec_init(
vec: *mut fmpz_mod_mpoly_vec_struct,
len: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_vec_print(
F: *const fmpz_mod_mpoly_vec_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_vec_swap(
x: *mut fmpz_mod_mpoly_vec_struct,
y: *mut fmpz_mod_mpoly_vec_struct,
UNUSED_ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_vec_fit_length(
vec: *mut fmpz_mod_mpoly_vec_struct,
len: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_vec_clear(
vec: *mut fmpz_mod_mpoly_vec_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_vec_set(
dest: *mut fmpz_mod_mpoly_vec_struct,
src: *const fmpz_mod_mpoly_vec_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_vec_append(
vec: *mut fmpz_mod_mpoly_vec_struct,
f: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_vec_insert_unique(
vec: *mut fmpz_mod_mpoly_vec_struct,
f: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> slong;
pub fn fmpz_mod_mpoly_vec_set_length(
vec: *mut fmpz_mod_mpoly_vec_struct,
len: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_vec_randtest_not_zero(
vec: *mut fmpz_mod_mpoly_vec_struct,
state: *mut flint_rand_struct,
len: slong,
poly_len: slong,
exp_bound: ulong,
ctx: *mut fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_spoly(
res: *mut fmpz_mod_mpoly_struct,
f: *const fmpz_mod_mpoly_struct,
g: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_reduction_monic_part(
res: *mut fmpz_mod_mpoly_struct,
f: *const fmpz_mod_mpoly_struct,
Iv: *const fmpz_mod_mpoly_vec_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_vec_is_groebner(
G: *const fmpz_mod_mpoly_vec_struct,
F: *const fmpz_mod_mpoly_vec_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_vec_set_monic_unique(
G: *mut fmpz_mod_mpoly_vec_struct,
F: *const fmpz_mod_mpoly_vec_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_buchberger_naive_with_limits(
G: *mut fmpz_mod_mpoly_vec_struct,
F: *const fmpz_mod_mpoly_vec_struct,
ideal_len_limit: slong,
poly_len_limit: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_buchberger_naive(
G: *mut fmpz_mod_mpoly_vec_struct,
F: *const fmpz_mod_mpoly_vec_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_vec_is_autoreduced(
G: *const fmpz_mod_mpoly_vec_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_vec_autoreduction_groebner(
H: *mut fmpz_mod_mpoly_vec_struct,
G: *const fmpz_mod_mpoly_vec_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_set_fmpz_mpoly(
res: *mut fmpz_mod_mpoly_struct,
f: *const fmpz_mpoly_struct,
ctxm: *mut fmpz_mod_mpoly_ctx_struct,
ctx: *mut fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_get_fmpz_mpoly(
res: *mut fmpz_mpoly_struct,
f: *const fmpz_mod_mpoly_struct,
ctx: *mut fmpz_mpoly_ctx_struct,
);
///Internal consistency checks
pub fn fmpz_mod_mpoly_remainder_strongtest(
r: *const fmpz_mod_mpoly_struct,
g: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
}
/* fmpz_mod_mpoly_factor.h */
#[repr(C)]
pub struct fmpz_mod_bpoly_struct {
pub coeffs: *mut fmpz_mod_poly_struct,
pub alloc: slong,
pub length: slong,
}
impl Default for fmpz_mod_bpoly_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type fmpz_mod_bpoly_t = [fmpz_mod_bpoly_struct; 1usize];
#[repr(C)]
pub struct fmpz_mod_tpoly_struct {
pub coeffs: *mut fmpz_mod_bpoly_struct,
pub alloc: slong,
pub length: slong,
}
impl Default for fmpz_mod_tpoly_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type fmpz_mod_tpoly_t = [fmpz_mod_tpoly_struct; 1usize];
#[repr(C)]
pub struct fmpz_mod_polyu_struct {
pub exps: *mut ulong,
pub coeffs: *mut fmpz,
pub length: slong,
pub alloc: slong,
}
impl Default for fmpz_mod_polyu_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_polyu_t = [fmpz_mod_polyu_struct; 1usize];
#[repr(C)]
pub struct fmpz_mod_polyun_struct {
pub coeffs: *mut fmpz_mod_poly_struct,
pub exps: *mut ulong,
pub alloc: slong,
pub length: slong,
}
impl Default for fmpz_mod_polyun_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_polyun_t = [fmpz_mod_polyun_struct; 1usize];
#[repr(C)]
pub struct fmpz_mod_mpolyu_struct {
pub coeffs: *mut fmpz_mod_mpoly_struct,
pub exps: *mut ulong,
pub alloc: slong,
pub length: slong,
pub bits: flint_bitcnt_t,
}
impl Default for fmpz_mod_mpolyu_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_mpolyu_t = [fmpz_mod_mpolyu_struct; 1usize];
#[repr(C)]
pub struct fmpz_mod_mpolyn_struct {
pub coeffs: *mut fmpz_mod_poly_struct,
pub exps: *mut ulong,
pub alloc: slong,
pub length: slong,
pub bits: slong,
}
impl Default for fmpz_mod_mpolyn_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_mpolyn_t = [fmpz_mod_mpolyn_struct; 1usize];
#[repr(C)]
pub struct fmpz_mod_poly_stack_struct {
pub array: *mut *mut fmpz_mod_poly_struct,
pub alloc: slong,
pub top: slong,
}
impl Default for fmpz_mod_poly_stack_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_stack_t = [fmpz_mod_poly_stack_struct; 1usize];
#[repr(C)]
pub struct fmpz_mod_bpoly_stack_struct {
pub array: *mut *mut fmpz_mod_bpoly_struct,
pub alloc: slong,
pub top: slong,
}
impl Default for fmpz_mod_bpoly_stack_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_bpoly_stack_t = [fmpz_mod_bpoly_stack_struct; 1usize];
#[repr(C)]
pub struct fmpz_mod_polyun_stack_struct {
pub array: *mut *mut fmpz_mod_polyun_struct,
pub alloc: slong,
pub top: slong,
}
impl Default for fmpz_mod_polyun_stack_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_polyun_stack_t = [fmpz_mod_polyun_stack_struct; 1usize];
#[repr(C)]
pub struct fmpz_mod_mpolyn_stack_struct {
pub array: *mut *mut fmpz_mod_mpolyn_struct,
pub alloc: slong,
pub top: slong,
pub bits: flint_bitcnt_t,
}
impl Default for fmpz_mod_mpolyn_stack_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_mpolyn_stack_t = [fmpz_mod_mpolyn_stack_struct; 1usize];
#[repr(C)]
pub struct fmpz_mod_poly_bpoly_stack_struct {
pub poly_stack: fmpz_mod_poly_stack_t,
pub bpoly_stack: fmpz_mod_bpoly_stack_t,
}
impl Default for fmpz_mod_poly_bpoly_stack_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_bpoly_stack_t = [fmpz_mod_poly_bpoly_stack_struct; 1usize];
#[repr(C)]
pub struct fmpz_mod_poly_polyun_stack_struct {
pub poly_stack: fmpz_mod_poly_stack_t,
pub polyun_stack: fmpz_mod_polyun_stack_t,
}
impl Default for fmpz_mod_poly_polyun_stack_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_polyun_stack_t = [fmpz_mod_poly_polyun_stack_struct; 1usize];
#[repr(C)]
pub struct fmpz_mod_poly_polyun_mpolyn_stack_struct {
pub poly_stack: fmpz_mod_poly_stack_t,
pub polyun_stack: fmpz_mod_polyun_stack_t,
pub mpolyn_stack: fmpz_mod_mpolyn_stack_t,
}
impl Default for fmpz_mod_poly_polyun_mpolyn_stack_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_polyun_mpolyn_stack_t = [fmpz_mod_poly_polyun_mpolyn_stack_struct; 1usize];
#[repr(C)]
pub struct fmpz_mod_mpolyv_struct {
pub coeffs: *mut fmpz_mod_mpoly_struct,
pub alloc: slong,
pub length: slong,
}
impl Default for fmpz_mod_mpolyv_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type fmpz_mod_mpolyv_t = [fmpz_mod_mpolyv_struct; 1usize];
#[repr(C)]
pub struct fmpz_mod_mpoly_pfrac_struct {
pub bits: flint_bitcnt_t,
pub w: slong,
pub r: slong,
pub inv_prod_dbetas: *mut fmpz_mod_poly_struct,
pub inv_prod_dbetas_mvar: *mut fmpz_mod_mpoly_struct,
pub dbetas: *mut fmpz_mod_poly_struct,
pub dbetas_mvar: *mut fmpz_mod_mpoly_struct,
pub prod_mbetas: *mut fmpz_mod_mpoly_struct,
pub prod_mbetas_coeffs: *mut fmpz_mod_mpolyv_struct,
pub mbetas: *mut fmpz_mod_mpoly_struct,
pub deltas: *mut fmpz_mod_mpoly_struct,
pub xalpha: *mut fmpz_mod_mpoly_struct,
pub q: *mut fmpz_mod_mpoly_struct,
pub G: *mut fmpz_mod_mpoly_geobucket_struct,
pub qt: *mut fmpz_mod_mpoly_struct,
pub newt: *mut fmpz_mod_mpoly_struct,
pub delta_coeffs: *mut fmpz_mod_mpolyv_struct,
pub T: fmpz_mod_mpoly_t,
pub Q: fmpz_mod_mpoly_t,
pub R: fmpz_mod_mpoly_t,
}
impl Default for fmpz_mod_mpoly_pfrac_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type fmpz_mod_mpoly_pfrac_t = [fmpz_mod_mpoly_pfrac_struct; 1usize];
unsafe extern "C" {
pub fn fmpz_mod_mpoly_factor_init(
f: *mut fmpz_mod_mpoly_factor_struct,
UNUSED_ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_factor_init2(
f: *mut fmpz_mod_mpoly_factor_struct,
alloc: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_factor_realloc(
f: *mut fmpz_mod_mpoly_factor_struct,
alloc: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_factor_fit_length(
f: *mut fmpz_mod_mpoly_factor_struct,
len: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_factor_clear(
f: *mut fmpz_mod_mpoly_factor_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_factor_length(
f: *const fmpz_mod_mpoly_factor_struct,
UNUSED_ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> slong;
pub fn fmpz_mod_mpoly_factor_get_constant_fmpz(
c: *mut fmpz,
f: *const fmpz_mod_mpoly_factor_struct,
UNUSED_ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_factor_get_base(
p: *mut fmpz_mod_mpoly_struct,
f: *const fmpz_mod_mpoly_factor_struct,
i: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_factor_swap_base(
p: *mut fmpz_mod_mpoly_struct,
f: *mut fmpz_mod_mpoly_factor_struct,
i: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_factor_get_exp_si(
f: *mut fmpz_mod_mpoly_factor_struct,
i: slong,
UNUSED_ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> slong;
pub fn fmpz_mod_mpoly_factor_swap(
f: *mut fmpz_mod_mpoly_factor_struct,
g: *mut fmpz_mod_mpoly_factor_struct,
UNUSED_ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_factor_set(
f: *mut fmpz_mod_mpoly_factor_struct,
g: *const fmpz_mod_mpoly_factor_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_factor_print_pretty(
f: *const fmpz_mod_mpoly_factor_struct,
vars: *mut *const ::std::os::raw::c_char,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_factor_content(
f: *mut fmpz_mod_mpoly_factor_struct,
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_factor_squarefree(
f: *mut fmpz_mod_mpoly_factor_struct,
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_factor(
f: *mut fmpz_mod_mpoly_factor_struct,
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_factor_sort(
f: *mut fmpz_mod_mpoly_factor_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_factor_cmp(
A: *const fmpz_mod_mpoly_factor_struct,
B: *const fmpz_mod_mpoly_factor_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
///Internal functions (guaranteed to change without notice)
pub fn _fmpz_mod_poly_degree(a: *const fmpz_mod_poly_struct) -> slong;
pub fn fmpz_mod_poly_scalar_addmul_fmpz_mod(
A: *mut fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
C: *const fmpz_mod_poly_struct,
d0: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_addmul_linear(
A: *mut fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
C: *const fmpz_mod_poly_struct,
d1: *const fmpz,
d0: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_shift_left_scalar_addmul_fmpz_mod(
A: *mut fmpz_mod_poly_struct,
k: slong,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_eval_pow(
eval: *mut fmpz,
P: *const fmpz_mod_poly_struct,
alphapow: *mut fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_eval2_pow(
evalp: *mut fmpz,
evalm: *mut fmpz,
P: *const fmpz_mod_poly_struct,
alphapow: *mut fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mat_is_reduced(
N: *const fmpz_mod_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mat_init_nullspace_tr(
X: *mut fmpz_mod_mat_struct,
tmp: *mut fmpz_mod_mat_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mpoly_factor_separable(
f: *mut fmpz_mod_mpoly_factor_struct,
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
sep: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_factor_expand(
A: *mut fmpz_mod_mpoly_struct,
f: *const fmpz_mod_mpoly_factor_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_factor_matches(
a: *const fmpz_mod_mpoly_struct,
f: *const fmpz_mod_mpoly_factor_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_factor_append_fmpz_swap(
f: *mut fmpz_mod_mpoly_factor_struct,
A: *mut fmpz_mod_mpoly_struct,
e: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_factor_one(
f: *mut fmpz_mod_mpoly_factor_struct,
UNUSED_ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn _fmpz_mod_mpoly_get_lead0(
c: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn _fmpz_mod_mpoly_set_lead0(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
c: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn _fmpz_mod_mpoly_factor_set_nmod_mpoly_factor(
f: *mut fmpz_mod_mpoly_factor_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
nf: *const nmod_mpoly_factor_struct,
nctx: *const nmod_mpoly_ctx_struct,
);
pub fn fmpz_mod_poly_stack_init(S: *mut fmpz_mod_poly_stack_struct);
pub fn fmpz_mod_poly_stack_clear(S: *mut fmpz_mod_poly_stack_struct);
pub fn fmpz_mod_poly_stack_fit_request(
S: *mut fmpz_mod_poly_stack_struct,
k: slong,
) -> *mut *mut fmpz_mod_poly_struct;
pub fn fmpz_mod_poly_stack_request(
S: *mut fmpz_mod_poly_stack_struct,
k: slong,
) -> *mut *mut fmpz_mod_poly_struct;
pub fn fmpz_mod_poly_stack_take_top(
S: *mut fmpz_mod_poly_stack_struct,
) -> *mut fmpz_mod_poly_struct;
pub fn fmpz_mod_poly_stack_give_back(S: *mut fmpz_mod_poly_stack_struct, k: slong);
pub fn fmpz_mod_poly_stack_size(S: *const fmpz_mod_poly_stack_struct) -> slong;
pub fn fmpz_mod_bpoly_stack_init(S: *mut fmpz_mod_bpoly_stack_struct);
pub fn fmpz_mod_bpoly_stack_clear(S: *mut fmpz_mod_bpoly_stack_struct);
pub fn fmpz_mod_bpoly_stack_fit_request(
S: *mut fmpz_mod_bpoly_stack_struct,
k: slong,
) -> *mut *mut fmpz_mod_bpoly_struct;
pub fn fmpz_mod_bpoly_stack_request(
S: *mut fmpz_mod_bpoly_stack_struct,
k: slong,
) -> *mut *mut fmpz_mod_bpoly_struct;
pub fn fmpz_mod_bpoly_stack_take_top(
S: *mut fmpz_mod_bpoly_stack_struct,
) -> *mut fmpz_mod_bpoly_struct;
pub fn fmpz_mod_bpoly_stack_give_back(S: *mut fmpz_mod_bpoly_stack_struct, k: slong);
pub fn fmpz_mod_bpoly_stack_size(S: *const fmpz_mod_bpoly_stack_struct) -> slong;
pub fn fmpz_mod_polyun_stack_init(S: *mut fmpz_mod_polyun_stack_struct);
pub fn fmpz_mod_polyun_stack_clear(S: *mut fmpz_mod_polyun_stack_struct);
pub fn fmpz_mod_polyun_stack_fit_request(
S: *mut fmpz_mod_polyun_stack_struct,
k: slong,
) -> *mut *mut fmpz_mod_polyun_struct;
pub fn fmpz_mod_polyun_stack_request(
S: *mut fmpz_mod_polyun_stack_struct,
k: slong,
) -> *mut *mut fmpz_mod_polyun_struct;
pub fn fmpz_mod_polyun_stack_take_top(
S: *mut fmpz_mod_polyun_stack_struct,
) -> *mut fmpz_mod_polyun_struct;
pub fn fmpz_mod_polyun_stack_give_back(
S: *mut fmpz_mod_polyun_stack_struct,
k: slong,
);
pub fn fmpz_mod_polyun_stack_size(S: *const fmpz_mod_polyun_stack_struct) -> slong;
pub fn fmpz_mod_mpolyn_stack_init(
S: *mut fmpz_mod_mpolyn_stack_struct,
bits: flint_bitcnt_t,
UNUSED_ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpolyn_stack_clear(
S: *mut fmpz_mod_mpolyn_stack_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpolyn_stack_fit_request(
S: *mut fmpz_mod_mpolyn_stack_struct,
k: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> *mut *mut fmpz_mod_mpolyn_struct;
pub fn fmpz_mod_mpolyn_stack_request(
S: *mut fmpz_mod_mpolyn_stack_struct,
k: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> *mut *mut fmpz_mod_mpolyn_struct;
pub fn fmpz_mod_mpolyn_stack_take_top(
S: *mut fmpz_mod_mpolyn_stack_struct,
) -> *mut fmpz_mod_mpolyn_struct;
pub fn fmpz_mod_mpolyn_stack_give_back(
S: *mut fmpz_mod_mpolyn_stack_struct,
k: slong,
);
pub fn fmpz_mod_mpolyn_stack_size(S: *const fmpz_mod_mpolyn_stack_struct) -> slong;
pub fn _fmpz_mod_poly_vec_max_degree(
A: *const fmpz_mod_poly_struct,
Alen: slong,
ctx: *const fmpz_mod_ctx_struct,
) -> slong;
pub fn _fmpz_mod_poly_vec_content(
g: *mut fmpz_mod_poly_struct,
A: *const fmpz_mod_poly_struct,
Alen: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_vec_remove_content(
g: *mut fmpz_mod_poly_struct,
A: *mut fmpz_mod_poly_struct,
Alen: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_vec_mul_poly(
A: *mut fmpz_mod_poly_struct,
Alen: slong,
g: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_vec_divexact_poly(
A: *mut fmpz_mod_poly_struct,
Alen: slong,
g: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_vec_mul_fmpz_mod(
A: *mut fmpz_mod_poly_struct,
Alen: slong,
g: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_polyu1n_bidegree(A: *const fmpz_mod_polyun_struct) -> ulong;
pub fn fmpz_mod_polyun_leadcoeff(A: *const fmpz_mod_polyun_struct) -> *const fmpz;
pub fn fmpz_mod_polyun_swap(
A: *mut fmpz_mod_polyun_struct,
B: *mut fmpz_mod_polyun_struct,
);
pub fn fmpz_mod_polyun_is_canonical(
A: *const fmpz_mod_polyun_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_polyun_init(
A: *mut fmpz_mod_polyun_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_polyun_clear(
A: *mut fmpz_mod_polyun_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_polyun_realloc(
A: *mut fmpz_mod_polyun_struct,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_polyu2n_print_pretty(
A: *const fmpz_mod_polyun_struct,
var0: *const ::std::os::raw::c_char,
var1: *const ::std::os::raw::c_char,
varlast: *const ::std::os::raw::c_char,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_polyun_equal(
A: *mut fmpz_mod_polyun_struct,
B: *const fmpz_mod_polyun_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_polyun_set(
A: *mut fmpz_mod_polyun_struct,
B: *const fmpz_mod_polyun_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_polyu3n_print_pretty(
A: *const fmpz_mod_polyun_struct,
var0: *const ::std::os::raw::c_char,
var1: *const ::std::os::raw::c_char,
var2: *const ::std::os::raw::c_char,
varlast: *const ::std::os::raw::c_char,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_polyu1n_print_pretty(
A: *const fmpz_mod_polyun_struct,
var0: *const ::std::os::raw::c_char,
varlast: *const ::std::os::raw::c_char,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_polyun_fit_length(
A: *mut fmpz_mod_polyun_struct,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_polyun_one(
A: *mut fmpz_mod_polyun_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mpoly_get_polyu1n(
A: *mut fmpz_mod_polyun_struct,
B: *const fmpz_mod_mpoly_struct,
varx: slong,
vary: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_set_polyu1n(
B: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_polyun_struct,
varx: slong,
vary: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpolyn_init(
A: *mut fmpz_mod_mpolyn_struct,
bits: flint_bitcnt_t,
UNUSED_ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpolyn_swap(
A: *mut fmpz_mod_mpolyn_struct,
B: *mut fmpz_mod_mpolyn_struct,
UNUSED_ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpolyn_fit_length(
A: *mut fmpz_mod_mpolyn_struct,
length: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpolyn_leadcoeff(A: *const fmpz_mod_mpolyn_struct) -> *const fmpz;
pub fn fmpz_mod_mpolyn_is_canonical(
A: *const fmpz_mod_mpolyn_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpolyn_lastdeg(
A: *const fmpz_mod_mpolyn_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> slong;
pub fn fmpz_mod_mpolyn_clear(
A: *mut fmpz_mod_mpolyn_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpolyn_one(
A: *mut fmpz_mod_mpolyn_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpolyn_scalar_mul_fmpz_mod(
A: *mut fmpz_mod_mpolyn_struct,
c: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpolyn_equal(
A: *const fmpz_mod_mpolyn_struct,
B: *const fmpz_mod_mpolyn_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpolyn_print_pretty(
poly: *const fmpz_mod_mpolyn_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_cvtfrom_mpolyn(
A: *mut fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpolyn_struct,
var: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_cvtto_mpolyn(
A: *mut fmpz_mod_mpolyn_struct,
B: *const fmpz_mod_mpoly_struct,
var: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_to_mpolyn_perm_deflate(
A: *mut fmpz_mod_mpolyn_struct,
nctx: *const fmpz_mod_mpoly_ctx_struct,
B: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
perm: *const slong,
shift: *const ulong,
stride: *const ulong,
);
pub fn fmpz_mod_mpoly_from_mpolyn_perm_inflate(
A: *mut fmpz_mod_mpoly_struct,
Abits: flint_bitcnt_t,
ctx: *const fmpz_mod_mpoly_ctx_struct,
B: *const fmpz_mod_mpolyn_struct,
nctx: *const fmpz_mod_mpoly_ctx_struct,
perm: *const slong,
shift: *const ulong,
stride: *const ulong,
);
pub fn fmpz_mod_mpolyn_set(
A: *mut fmpz_mod_mpolyn_struct,
B: *const fmpz_mod_mpolyn_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpolyn_is_nonzero_fmpz(
A: *const fmpz_mod_mpolyn_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpolyn_divides(
Q: *mut fmpz_mod_mpolyn_struct,
A: *const fmpz_mod_mpolyn_struct,
B: *const fmpz_mod_mpolyn_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_polyu1n_interp_reduce_2sm_poly(
E: *mut fmpz_mod_poly_struct,
F: *mut fmpz_mod_poly_struct,
A: *const fmpz_mod_polyun_struct,
alphapow: *mut fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_polyu1n_interp_lift_2sm_poly(
lastdeg: *mut slong,
F: *mut fmpz_mod_polyun_struct,
A: *const fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
alpha: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_polyu1n_interp_crt_2sm_poly(
lastdeg: *mut slong,
F: *mut fmpz_mod_polyun_struct,
T: *mut fmpz_mod_polyun_struct,
A: *const fmpz_mod_poly_struct,
B: *const fmpz_mod_poly_struct,
modulus: *const fmpz_mod_poly_struct,
alphapow: *mut fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpolyn_interp_reduce_sm_poly(
E: *mut fmpz_mod_poly_struct,
A: *const fmpz_mod_mpolyn_struct,
alpha: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpolyn_interp_lift_sm_poly(
A: *mut fmpz_mod_mpolyn_struct,
B: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpolyn_interp_crt_sm_poly(
lastdeg_: *mut slong,
F: *mut fmpz_mod_mpolyn_struct,
T: *mut fmpz_mod_mpolyn_struct,
A: *const fmpz_mod_poly_struct,
modulus: *const fmpz_mod_poly_struct,
alpha: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpolyn_interp_reduce_2sm_mpolyn(
E: *mut fmpz_mod_mpolyn_struct,
F: *mut fmpz_mod_mpolyn_struct,
A: *mut fmpz_mod_mpolyn_struct,
var: slong,
alphapow: *mut fmpz_mod_poly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpolyn_interp_lift_2sm_mpolyn(
lastdeg: *mut slong,
T: *mut fmpz_mod_mpolyn_struct,
A: *mut fmpz_mod_mpolyn_struct,
B: *mut fmpz_mod_mpolyn_struct,
var: slong,
alpha: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpolyn_interp_crt_2sm_mpolyn(
lastdeg: *mut slong,
F: *mut fmpz_mod_mpolyn_struct,
T: *mut fmpz_mod_mpolyn_struct,
A: *mut fmpz_mod_mpolyn_struct,
B: *mut fmpz_mod_mpolyn_struct,
var: slong,
modulus: *mut fmpz_mod_poly_struct,
alphapow: *mut fmpz_mod_poly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpolyn_interp_lift_sm_mpoly(
A: *mut fmpz_mod_mpolyn_struct,
B: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpolyn_interp_crt_sm_mpoly(
lastdeg: *mut slong,
F: *mut fmpz_mod_mpolyn_struct,
T: *mut fmpz_mod_mpolyn_struct,
A: *mut fmpz_mod_mpoly_struct,
modulus: *mut fmpz_mod_poly_struct,
alphapow: *mut fmpz_mod_poly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpolyn_interp_mcrt_sm_mpoly(
lastdeg: *mut slong,
F: *mut fmpz_mod_mpolyn_struct,
A: *const fmpz_mod_mpoly_struct,
modulus: *const fmpz_mod_poly_struct,
alphapow: *mut fmpz_mod_poly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_polyu_swap(
A: *mut fmpz_mod_polyu_struct,
B: *mut fmpz_mod_polyu_struct,
);
pub fn fmpz_mod_polyu_init(A: *mut fmpz_mod_polyu_struct);
pub fn fmpz_mod_polyu_clear(A: *mut fmpz_mod_polyu_struct);
pub fn fmpz_mod_polyu_realloc(A: *mut fmpz_mod_polyu_struct, len: slong);
pub fn fmpz_mod_polyu_fit_length(
a: *mut fmpz_mod_polyu_struct,
len: slong,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_polyu3_degrees(
deg0: *mut slong,
deg1: *mut slong,
deg2: *mut slong,
A: *const fmpz_mod_polyu_struct,
);
pub fn fmpz_mod_polyu3_print_pretty(
A: *const fmpz_mod_polyu_struct,
var0: *const ::std::os::raw::c_char,
var1: *const ::std::os::raw::c_char,
var2: *const ::std::os::raw::c_char,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mpolyu_is_canonical(
A: *const fmpz_mod_mpolyu_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpolyu3_print_pretty(
A: *const fmpz_mod_mpolyu_struct,
var0: *const ::std::os::raw::c_char,
var1: *const ::std::os::raw::c_char,
var2: *const ::std::os::raw::c_char,
vars: *mut *const ::std::os::raw::c_char,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_bpoly_is_canonical(
A: *const fmpz_mod_bpoly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_bpoly_init(
A: *mut fmpz_mod_bpoly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_bpoly_clear(
A: *mut fmpz_mod_bpoly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_bpoly_swap(
A: *mut fmpz_mod_bpoly_struct,
B: *mut fmpz_mod_bpoly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_bpoly_get_coeff(
c: *mut fmpz,
A: *const fmpz_mod_bpoly_struct,
e0: slong,
e1: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_bpoly_degree0(
A: *const fmpz_mod_bpoly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> slong;
pub fn fmpz_mod_bpoly_normalise(
A: *mut fmpz_mod_bpoly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_bpoly_equal(
A: *const fmpz_mod_bpoly_struct,
B: *const fmpz_mod_bpoly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_bpoly_set(
A: *mut fmpz_mod_bpoly_struct,
B: *const fmpz_mod_bpoly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_bpoly_set_poly_gen1(
A: *mut fmpz_mod_bpoly_struct,
B: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_bpoly_set_poly_gen0(
A: *mut fmpz_mod_bpoly_struct,
B: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_bpoly_one(
A: *mut fmpz_mod_bpoly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_bpoly_is_one(
A: *const fmpz_mod_bpoly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_bpoly_degree1(
A: *const fmpz_mod_bpoly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> slong;
pub fn fmpz_mod_bpoly_print_pretty(
A: *const fmpz_mod_bpoly_struct,
xvar: *const ::std::os::raw::c_char,
yvar: *const ::std::os::raw::c_char,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_bpoly_fit_length(
A: *mut fmpz_mod_bpoly_struct,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_bpoly_set_coeff(
A: *mut fmpz_mod_bpoly_struct,
xi: slong,
yi: slong,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_bpoly_zero(
A: *mut fmpz_mod_bpoly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_bpoly_reverse_vars(
A: *mut fmpz_mod_bpoly_struct,
B: *const fmpz_mod_bpoly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_bpoly_taylor_shift_gen1(
A: *mut fmpz_mod_bpoly_struct,
B: *const fmpz_mod_bpoly_struct,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_bpoly_sub(
A: *mut fmpz_mod_bpoly_struct,
B: *const fmpz_mod_bpoly_struct,
C: *const fmpz_mod_bpoly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_bpoly_add(
A: *mut fmpz_mod_bpoly_struct,
B: *const fmpz_mod_bpoly_struct,
C: *const fmpz_mod_bpoly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_bpoly_make_primitive(
g: *mut fmpz_mod_poly_struct,
A: *mut fmpz_mod_bpoly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_bpoly_mul(
A: *mut fmpz_mod_bpoly_struct,
B: *const fmpz_mod_bpoly_struct,
C: *const fmpz_mod_bpoly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_bpoly_mul_series(
A: *mut fmpz_mod_bpoly_struct,
B: *const fmpz_mod_bpoly_struct,
C: *const fmpz_mod_bpoly_struct,
order: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_bpoly_divrem_series(
Q: *mut fmpz_mod_bpoly_struct,
R: *mut fmpz_mod_bpoly_struct,
A: *const fmpz_mod_bpoly_struct,
B: *const fmpz_mod_bpoly_struct,
order: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_bpoly_divides(
Q: *mut fmpz_mod_bpoly_struct,
A: *const fmpz_mod_bpoly_struct,
B: *const fmpz_mod_bpoly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_bpoly_taylor_shift_gen0(
A: *mut fmpz_mod_bpoly_struct,
alpha: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_bpoly_derivative_gen0(
A: *mut fmpz_mod_bpoly_struct,
B: *const fmpz_mod_bpoly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_bpoly_make_monic_series(
A: *mut fmpz_mod_bpoly_struct,
B: *const fmpz_mod_bpoly_struct,
order: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_tpoly_init(
A: *mut fmpz_mod_tpoly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_tpoly_swap(
A: *mut fmpz_mod_tpoly_struct,
B: *mut fmpz_mod_tpoly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_tpoly_fit_length(
A: *mut fmpz_mod_tpoly_struct,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_tpoly_clear(
A: *mut fmpz_mod_tpoly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mpoly_get_fmpz_mod_bpoly(
A: *mut fmpz_mod_bpoly_struct,
B: *const fmpz_mod_mpoly_struct,
var0: slong,
var1: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_set_fmpz_mod_bpoly(
A: *mut fmpz_mod_mpoly_struct,
Abits: flint_bitcnt_t,
B: *const fmpz_mod_bpoly_struct,
var0: slong,
var1: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_bpoly_factor_smprime(
c: *mut fmpz_mod_poly_struct,
F: *mut fmpz_mod_tpoly_struct,
B: *mut fmpz_mod_bpoly_struct,
allow_shift: ::std::os::raw::c_int,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpz_mod_zip_vand_solve(
coeffs: *mut fmpz,
monomials: *const fmpz,
mlength: slong,
evals: *const fmpz,
elength: slong,
master: *const fmpz,
scratch: *mut fmpz,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpz_mod_zip_eval_step(
ev: *mut fmpz,
cur: *mut fmpz,
inc: *const fmpz,
coeffs: *const fmpz,
length: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mpolyv_init(
A: *mut fmpz_mod_mpolyv_struct,
UNUSED_ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpolyv_swap(
A: *mut fmpz_mod_mpolyv_struct,
B: *mut fmpz_mod_mpolyv_struct,
UNUSED_ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpolyv_clear(
A: *mut fmpz_mod_mpolyv_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpolyv_print_pretty(
poly: *const fmpz_mod_mpolyv_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpolyv_fit_length(
A: *mut fmpz_mod_mpolyv_struct,
length: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpolyv_set_coeff(
A: *mut fmpz_mod_mpolyv_struct,
i: slong,
c: *mut fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_to_mpolyv(
A: *mut fmpz_mod_mpolyv_struct,
B: *const fmpz_mod_mpoly_struct,
xalpha: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_from_mpolyv(
A: *mut fmpz_mod_mpoly_struct,
Abits: flint_bitcnt_t,
B: *const fmpz_mod_mpolyv_struct,
xalpha: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn _fmpz_mod_mpoly_vec_content_mpoly(
g: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
Alen: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpz_mod_mpoly_vec_divexact_mpoly(
A: *mut fmpz_mod_mpoly_struct,
Alen: slong,
c: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn _fmpz_mod_mpoly_vec_mul_mpoly(
A: *mut fmpz_mod_mpoly_struct,
Alen: slong,
c: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn _fmpz_mod_mpoly_factor_separable(
f: *mut fmpz_mod_mpoly_factor_struct,
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
sep: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_factor_lcc_wang(
lc_divs: *mut fmpz_mod_mpoly_struct,
lcAfac: *const fmpz_mod_mpoly_factor_struct,
Auc: *const fmpz_mod_poly_struct,
Auf: *const fmpz_mod_bpoly_struct,
r: slong,
alpha: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_factor_irred_smprime_zassenhaus(
fac: *mut fmpz_mod_mpolyv_struct,
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_factor_irred_smprime_wang(
fac: *mut fmpz_mod_mpolyv_struct,
A: *const fmpz_mod_mpoly_struct,
lcAfac: *const fmpz_mod_mpoly_factor_struct,
lcA: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_factor_irred_smprime_zippel(
fac: *mut fmpz_mod_mpolyv_struct,
A: *const fmpz_mod_mpoly_struct,
lcAfac: *const fmpz_mod_mpoly_factor_struct,
lcA: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_compression_do(
L: *mut fmpz_mod_mpoly_struct,
Lctx: *const fmpz_mod_mpoly_ctx_struct,
Acoeffs: *mut fmpz,
Alen: slong,
M: *mut mpoly_compression_struct,
);
pub fn fmpz_mod_mpoly_compression_undo(
A: *mut fmpz_mod_mpoly_struct,
Abits: flint_bitcnt_t,
Actx: *const fmpz_mod_mpoly_ctx_struct,
L: *mut fmpz_mod_mpoly_struct,
Lctx: *const fmpz_mod_mpoly_ctx_struct,
M: *mut mpoly_compression_struct,
);
pub fn fmpz_mod_mpoly_pfrac_init(
Iv: *mut fmpz_mod_mpoly_pfrac_struct,
bits: flint_bitcnt_t,
l: slong,
r: slong,
betas: *const fmpz_mod_mpoly_struct,
alpha: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_pfrac_clear(
Iv: *mut fmpz_mod_mpoly_pfrac_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_pfrac(
r: slong,
t: *mut fmpz_mod_mpoly_struct,
deg: *const slong,
Iv: *mut fmpz_mod_mpoly_pfrac_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_hlift(
m: slong,
f: *mut fmpz_mod_mpoly_struct,
r: slong,
alpha: *const fmpz,
A: *const fmpz_mod_mpoly_struct,
degs: *const slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_bpoly_pfrac(
r: slong,
C: *mut fmpz_mod_bpoly_struct,
C_deg1_bound: *mut slong,
A: *mut fmpz_mod_bpoly_struct,
B: *mut fmpz_mod_bpoly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_bpoly_hlift2(
A: *mut fmpz_mod_bpoly_struct,
B0: *mut fmpz_mod_bpoly_struct,
B1: *mut fmpz_mod_bpoly_struct,
alpha: *const fmpz,
degree_inner: slong,
ctx: *const fmpz_mod_ctx_struct,
St: *mut fmpz_mod_poly_bpoly_stack_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_bpoly_hlift(
r: slong,
A: *mut fmpz_mod_bpoly_struct,
B: *mut fmpz_mod_bpoly_struct,
alpha: *const fmpz,
degree_inner: slong,
ctx: *const fmpz_mod_ctx_struct,
St: *mut fmpz_mod_poly_bpoly_stack_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_polyu3_hlift(
r: slong,
BB: *mut fmpz_mod_polyun_struct,
A: *mut fmpz_mod_polyu_struct,
B: *mut fmpz_mod_polyu_struct,
beta: *const fmpz,
degree_inner: slong,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_hlift_zippel(
m: slong,
B: *mut fmpz_mod_mpoly_struct,
r: slong,
alpha: *const fmpz,
A: *const fmpz_mod_mpoly_struct,
degs: *const slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_factor_algo(
f: *mut fmpz_mod_mpoly_factor_struct,
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
algo: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_factor_zassenhaus(
f: *mut fmpz_mod_mpoly_factor_struct,
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_factor_wang(
f: *mut fmpz_mod_mpoly_factor_struct,
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_factor_zippel(
f: *mut fmpz_mod_mpoly_factor_struct,
A: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpz_mod_mpoly_evaluate_rest_fmpz_mod_poly(
E: *mut fmpz_mod_poly_struct,
starts: *mut slong,
ends: *mut slong,
stops: *mut slong,
es: *mut ulong,
Acoeffs: *const fmpz,
Aexps: *const ulong,
Alen: slong,
var: slong,
alphas: *const fmpz_mod_poly_struct,
offsets: *const slong,
shifts: *const slong,
N: slong,
mask: ulong,
nvars: slong,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpz_mod_mpoly_eval_rest_to_fmpz_mod_bpoly(
E: *mut fmpz_mod_bpoly_struct,
A: *const fmpz_mod_mpoly_struct,
alphabetas: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn _fmpz_mod_mpoly_set_fmpz_mod_bpoly_var1_zero(
A: *mut fmpz_mod_mpoly_struct,
Abits: flint_bitcnt_t,
B: *const fmpz_mod_bpoly_struct,
var: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn _fmpz_mod_mpoly_gcd_algo(
G: *mut fmpz_mod_mpoly_struct,
Abar: *mut fmpz_mod_mpoly_struct,
Bbar: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
algo: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_polyu1n_gcd_brown_smprime(
G: *mut fmpz_mod_polyun_struct,
Abar: *mut fmpz_mod_polyun_struct,
Bbar: *mut fmpz_mod_polyun_struct,
A: *mut fmpz_mod_polyun_struct,
B: *mut fmpz_mod_polyun_struct,
ctx: *const fmpz_mod_ctx_struct,
St_poly: *mut fmpz_mod_poly_stack_struct,
St_polyun: *mut fmpz_mod_polyun_stack_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpolyn_gcd_brown_smprime(
G: *mut fmpz_mod_mpolyn_struct,
Abar: *mut fmpz_mod_mpolyn_struct,
Bbar: *mut fmpz_mod_mpolyn_struct,
A: *mut fmpz_mod_mpolyn_struct,
B: *mut fmpz_mod_mpolyn_struct,
var: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
Iv: *const mpoly_gcd_info_struct,
St: *mut fmpz_mod_poly_polyun_mpolyn_stack_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpolyl_gcdp_zippel(
G: *mut fmpz_mod_mpoly_struct,
Abar: *mut fmpz_mod_mpoly_struct,
Bbar: *mut fmpz_mod_mpoly_struct,
A: *mut fmpz_mod_mpoly_struct,
B: *mut fmpz_mod_mpoly_struct,
var: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpolyl_gcd_zippel2_smprime(
rG: *mut fmpz_mod_mpoly_struct,
rGdegs: *const slong,
rAbar: *mut fmpz_mod_mpoly_struct,
rBbar: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
Adegs: *const slong,
B: *const fmpz_mod_mpoly_struct,
Bdegs: *const slong,
gamma: *const fmpz_mod_mpoly_struct,
gammadegs: *const slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpolyl_gcd_hensel_smprime(
G: *mut fmpz_mod_mpoly_struct,
Gdeg: slong,
Abar: *mut fmpz_mod_mpoly_struct,
Bbar: *mut fmpz_mod_mpoly_struct,
A: *const fmpz_mod_mpoly_struct,
B: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_pow_cache_start(
b: *const fmpz,
c: *mut fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_pow_cache_mulpow_ui(
a: *mut fmpz,
b: *const fmpz,
e: ulong,
c: *mut fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn mpoly_monomial_evals_fmpz_mod(
EH: *mut fmpz_mod_poly_struct,
Aexps: *const ulong,
Alen: slong,
Abits: flint_bitcnt_t,
alpha_caches: *mut fmpz_mod_poly_struct,
start: slong,
stop: slong,
mctx: *const mpoly_ctx_struct,
fpctx: *const fmpz_mod_ctx_struct,
);
pub fn mpoly1_monomial_evals_fmpz_mod(
EH: *mut fmpz_mod_polyun_struct,
Aexps: *const ulong,
Abits: flint_bitcnt_t,
Amarks: *const ulong,
Amarkslen: slong,
alpha_caches: *mut fmpz_mod_poly_struct,
m: slong,
mctx: *const mpoly_ctx_struct,
fpctx: *const fmpz_mod_ctx_struct,
);
pub fn mpoly2_monomial_evals_fmpz_mod(
EH: *mut fmpz_mod_polyun_struct,
Aexps: *const ulong,
Abits: flint_bitcnt_t,
Amarks: *mut ulong,
Amarkslen: slong,
alpha_caches: *mut fmpz_mod_poly_struct,
m: slong,
mctx: *const mpoly_ctx_struct,
fpctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_mpoly_mock_eval_coeff(
mock: *mut fmpz_mod_polyun_struct,
A: *const fmpz_mod_mpoly_struct,
Aeh_inc: *const fmpz_mod_polyun_struct,
UNUSED_ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_polyun_product_roots(
M: *mut fmpz_mod_polyun_struct,
H: *const fmpz_mod_polyun_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> slong;
pub fn fmpz_mod_polyun_zip_start(
Z: *mut fmpz_mod_polyun_struct,
H: *mut fmpz_mod_polyun_struct,
req_images: slong,
fctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_polyu2n_zip_eval_cur_inc_coeff(
E: *mut fmpz_mod_polyun_struct,
Acur: *mut fmpz_mod_polyun_struct,
Ainc: *const fmpz_mod_polyun_struct,
Acoeff: *const fmpz_mod_polyun_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_polyun_zip_solve(
A: *mut fmpz_mod_mpoly_struct,
Z: *mut fmpz_mod_polyun_struct,
H: *mut fmpz_mod_polyun_struct,
M: *mut fmpz_mod_polyun_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
}
/* fmpz_mod_mpoly_q.h */
unsafe extern "C" {
pub fn fmpz_mod_mpoly_q_init(
res: *mut fmpz_mod_mpoly_q_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_q_clear(
res: *mut fmpz_mod_mpoly_q_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_q_swap(
x: *mut fmpz_mod_mpoly_q_struct,
y: *mut fmpz_mod_mpoly_q_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_q_set(
res: *mut fmpz_mod_mpoly_q_struct,
x: *const fmpz_mod_mpoly_q_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_q_set_fmpq(
res: *mut fmpz_mod_mpoly_q_struct,
x: *const fmpq,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_q_set_fmpz(
res: *mut fmpz_mod_mpoly_q_struct,
x: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_q_set_si(
res: *mut fmpz_mod_mpoly_q_struct,
x: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_q_canonicalise(
x: *mut fmpz_mod_mpoly_q_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_q_is_canonical(
res: *const fmpz_mod_mpoly_q_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_q_is_zero(
x: *const fmpz_mod_mpoly_q_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_q_is_one(
x: *const fmpz_mod_mpoly_q_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_q_is_fmpz_mod(
x: *const fmpz_mod_mpoly_q_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_q_zero(
res: *mut fmpz_mod_mpoly_q_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_q_one(
res: *mut fmpz_mod_mpoly_q_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_q_gen(
res: *mut fmpz_mod_mpoly_q_struct,
i: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_q_print_pretty(
f: *const fmpz_mod_mpoly_q_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_q_get_str_pretty(
f: *const fmpz_mod_mpoly_q_struct,
vars: *mut *const ::std::os::raw::c_char,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> *mut ::std::os::raw::c_char;
pub fn fmpz_mod_mpoly_q_set_str_pretty(
res: *mut fmpz_mod_mpoly_q_struct,
s: *const ::std::os::raw::c_char,
vars: *mut *const ::std::os::raw::c_char,
ctx: *mut fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_q_randtest(
res: *mut fmpz_mod_mpoly_q_struct,
state: *mut flint_rand_struct,
length: slong,
exp_bound: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_q_equal(
x: *const fmpz_mod_mpoly_q_struct,
y: *const fmpz_mod_mpoly_q_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_q_neg(
res: *mut fmpz_mod_mpoly_q_struct,
x: *const fmpz_mod_mpoly_q_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_q_add(
res: *mut fmpz_mod_mpoly_q_struct,
x: *const fmpz_mod_mpoly_q_struct,
y: *const fmpz_mod_mpoly_q_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_q_sub(
res: *mut fmpz_mod_mpoly_q_struct,
x: *const fmpz_mod_mpoly_q_struct,
y: *const fmpz_mod_mpoly_q_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_q_mul(
res: *mut fmpz_mod_mpoly_q_struct,
x: *const fmpz_mod_mpoly_q_struct,
y: *const fmpz_mod_mpoly_q_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_q_div(
res: *mut fmpz_mod_mpoly_q_struct,
x: *const fmpz_mod_mpoly_q_struct,
y: *const fmpz_mod_mpoly_q_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_q_inv(
res: *mut fmpz_mod_mpoly_q_struct,
x: *const fmpz_mod_mpoly_q_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn _fmpz_mod_mpoly_q_add(
res_num: *mut fmpz_mod_mpoly_struct,
res_den: *mut fmpz_mod_mpoly_struct,
x_num: *const fmpz_mod_mpoly_struct,
x_den: *const fmpz_mod_mpoly_struct,
y_num: *const fmpz_mod_mpoly_struct,
y_den: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn _fmpz_mod_mpoly_q_add_fmpz_mod(
res_num: *mut fmpz_mod_mpoly_struct,
res_den: *mut fmpz_mod_mpoly_struct,
x_num: *const fmpz_mod_mpoly_struct,
x_den: *const fmpz_mod_mpoly_struct,
y: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn _fmpz_mod_mpoly_q_sub(
res_num: *mut fmpz_mod_mpoly_struct,
res_den: *mut fmpz_mod_mpoly_struct,
x_num: *const fmpz_mod_mpoly_struct,
x_den: *const fmpz_mod_mpoly_struct,
y_num: *const fmpz_mod_mpoly_struct,
y_den: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn _fmpz_mod_mpoly_q_mul(
res_num: *mut fmpz_mod_mpoly_struct,
res_den: *mut fmpz_mod_mpoly_struct,
x_num: *const fmpz_mod_mpoly_struct,
x_den: *const fmpz_mod_mpoly_struct,
y_num: *const fmpz_mod_mpoly_struct,
y_den: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn _fmpz_mod_mpoly_q_div(
res_num: *mut fmpz_mod_mpoly_struct,
res_den: *mut fmpz_mod_mpoly_struct,
x_num: *const fmpz_mod_mpoly_struct,
x_den: *const fmpz_mod_mpoly_struct,
y_num: *const fmpz_mod_mpoly_struct,
y_den: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_q_add_fmpz_mod(
res: *mut fmpz_mod_mpoly_q_struct,
x: *const fmpz_mod_mpoly_q_struct,
y: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_q_add_fmpz(
res: *mut fmpz_mod_mpoly_q_struct,
x: *const fmpz_mod_mpoly_q_struct,
y: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_q_add_fmpq(
res: *mut fmpz_mod_mpoly_q_struct,
x: *const fmpz_mod_mpoly_q_struct,
y: *const fmpq,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_q_sub_fmpz_mod(
res: *mut fmpz_mod_mpoly_q_struct,
x: *const fmpz_mod_mpoly_q_struct,
y: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_q_sub_fmpz(
res: *mut fmpz_mod_mpoly_q_struct,
x: *const fmpz_mod_mpoly_q_struct,
y: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_q_sub_fmpq(
res: *mut fmpz_mod_mpoly_q_struct,
x: *const fmpz_mod_mpoly_q_struct,
y: *const fmpq,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_q_mul_fmpz_mod(
res: *mut fmpz_mod_mpoly_q_struct,
x: *const fmpz_mod_mpoly_q_struct,
y: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_q_mul_fmpz(
res: *mut fmpz_mod_mpoly_q_struct,
x: *const fmpz_mod_mpoly_q_struct,
y: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_q_mul_fmpq(
res: *mut fmpz_mod_mpoly_q_struct,
x: *const fmpz_mod_mpoly_q_struct,
y: *const fmpq,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_q_div_fmpz(
res: *mut fmpz_mod_mpoly_q_struct,
x: *const fmpz_mod_mpoly_q_struct,
y: *const fmpz,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_q_div_fmpq(
res: *mut fmpz_mod_mpoly_q_struct,
x: *const fmpz_mod_mpoly_q_struct,
y: *const fmpq,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_q_add_si(
res: *mut fmpz_mod_mpoly_q_struct,
x: *const fmpz_mod_mpoly_q_struct,
c: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_q_sub_si(
res: *mut fmpz_mod_mpoly_q_struct,
x: *const fmpz_mod_mpoly_q_struct,
c: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_q_mul_si(
res: *mut fmpz_mod_mpoly_q_struct,
x: *const fmpz_mod_mpoly_q_struct,
c: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn fmpz_mod_mpoly_q_div_si(
res: *mut fmpz_mod_mpoly_q_struct,
x: *const fmpz_mod_mpoly_q_struct,
c: slong,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_mpoly_gcd_assert_successful(
res: *mut fmpz_mod_mpoly_struct,
x: *const fmpz_mod_mpoly_struct,
y: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
pub fn _fmpz_mod_mpoly_q_mpoly_divexact(
res: *mut fmpz_mod_mpoly_struct,
x: *const fmpz_mod_mpoly_struct,
y: *const fmpz_mod_mpoly_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
}
/* fmpz_mod_poly.h */
#[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,
}
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,
}
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,
}
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)]
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,
}
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)]
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,
}
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,
}
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,
}
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];
unsafe extern "C" {
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);
pub fn fmpz_mod_poly_fit_length(
poly: *mut fmpz_mod_poly_struct,
len: slong,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
);
pub fn fmpz_mod_poly_length(
poly: *const fmpz_mod_poly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> slong;
pub fn fmpz_mod_poly_degree(
poly: *const fmpz_mod_poly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> slong;
pub fn fmpz_mod_poly_lead(
poly: *const fmpz_mod_poly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> *mut fmpz;
pub fn fmpz_mod_poly_is_monic(
f: *const fmpz_mod_poly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_poly_is_one(
poly: *const fmpz_mod_poly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_poly_is_gen(
op: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_poly_is_unit(
op: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::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,
);
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,
);
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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_poly_is_zero(
poly: *const fmpz_mod_poly_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
);
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;
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,
);
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;
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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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 ::std::os::raw::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 ::std::os::raw::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 ::std::os::raw::c_char;
pub fn fmpz_mod_poly_get_str_pretty(
poly: *const fmpz_mod_poly_struct,
x: *const ::std::os::raw::c_char,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> *mut ::std::os::raw::c_char;
pub fn _fmpz_mod_poly_fprint(
file: *mut FILE,
poly: *const fmpz,
len: slong,
p: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_poly_fprint(
file: *mut FILE,
poly: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_poly_fprint_pretty(
file: *mut FILE,
poly: *const fmpz_mod_poly_struct,
x: *const ::std::os::raw::c_char,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_poly_fread(
file: *mut FILE,
poly: *mut fmpz_mod_poly_struct,
ctx: *mut fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpz_mod_poly_print(
poly: *const fmpz,
len: slong,
p: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_poly_print(
poly: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_poly_print_pretty(
poly: *const fmpz_mod_poly_struct,
x: *const ::std::os::raw::c_char,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_berlekamp_massey_points(
B: *const fmpz_mod_berlekamp_massey_struct,
) -> *const fmpz;
pub fn fmpz_mod_berlekamp_massey_point_count(
B: *const fmpz_mod_berlekamp_massey_struct,
) -> slong;
pub fn fmpz_mod_berlekamp_massey_V_poly(
B: *const fmpz_mod_berlekamp_massey_struct,
) -> *const fmpz_mod_poly_struct;
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,
);
}
/* fmpz_mod_poly_factor.h */
#[repr(C)]
pub struct fmpz_mod_poly_interval_poly_arg_t {
pub baby: *mut fmpz_mod_poly_struct,
pub res: *mut fmpz_mod_poly_struct,
pub H: *mut fmpz_mod_poly_struct,
pub v: *mut fmpz_mod_poly_struct,
pub vinv: *mut fmpz_mod_poly_struct,
pub ctx: *const fmpz_mod_ctx_struct,
pub tmp: *mut fmpz,
pub m: slong,
}
impl Default for fmpz_mod_poly_interval_poly_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()
}
}
}
unsafe extern "C" {
pub fn fmpz_mod_poly_factor_init(
fac: *mut fmpz_mod_poly_factor_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_factor_clear(
fac: *mut fmpz_mod_poly_factor_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_factor_realloc(
fac: *mut fmpz_mod_poly_factor_struct,
alloc: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_factor_fit_length(
fac: *mut fmpz_mod_poly_factor_struct,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_factor_set(
res: *mut fmpz_mod_poly_factor_struct,
fac: *const fmpz_mod_poly_factor_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_factor_swap(
a: *mut fmpz_mod_poly_factor_struct,
b: *mut fmpz_mod_poly_factor_struct,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_factor_get_poly(
a: *mut fmpz_mod_poly_struct,
b: *const fmpz_mod_poly_factor_struct,
i: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_factor_insert(
fac: *mut fmpz_mod_poly_factor_struct,
poly: *const fmpz_mod_poly_struct,
exp: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_factor_print(
fac: *const fmpz_mod_poly_factor_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_factor_print_pretty(
fac: *const fmpz_mod_poly_factor_struct,
var: *const ::std::os::raw::c_char,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_factor_concat(
res: *mut fmpz_mod_poly_factor_struct,
fac: *const fmpz_mod_poly_factor_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_factor_pow(
fac: *mut fmpz_mod_poly_factor_struct,
exp: slong,
UNUSED_ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_is_irreducible(
f: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_poly_is_irreducible_ddf(
f: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_poly_is_irreducible_rabin(
f: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_poly_is_irreducible_rabin_f(
fac: *mut fmpz,
f: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpz_mod_poly_is_squarefree(
f: *const fmpz,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpz_mod_poly_is_squarefree_f(
fac: *mut fmpz,
f: *const fmpz,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_poly_is_squarefree(
f: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_poly_is_squarefree_f(
fac: *mut fmpz,
f: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_poly_factor_equal_deg_prob(
factor: *mut fmpz_mod_poly_struct,
state: *mut flint_rand_struct,
pol: *const fmpz_mod_poly_struct,
d: slong,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_poly_factor_equal_deg_with_frob(
factors: *mut fmpz_mod_poly_factor_struct,
f: *const fmpz_mod_poly_struct,
d: slong,
frob: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_factor_equal_deg(
factors: *mut fmpz_mod_poly_factor_struct,
pol: *const fmpz_mod_poly_struct,
d: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_factor_distinct_deg_with_frob(
res: *mut fmpz_mod_poly_factor_struct,
poly: *const fmpz_mod_poly_struct,
polyinv: *const fmpz_mod_poly_struct,
frob: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_factor_distinct_deg(
res: *mut fmpz_mod_poly_factor_struct,
poly: *const fmpz_mod_poly_struct,
degs: *const *mut slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_factor_distinct_deg_threaded_with_frob(
res: *mut fmpz_mod_poly_factor_struct,
poly: *const fmpz_mod_poly_struct,
polyinv: *const fmpz_mod_poly_struct,
frob: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_factor_distinct_deg_threaded(
res: *mut fmpz_mod_poly_factor_struct,
poly: *const fmpz_mod_poly_struct,
degs: *const *mut slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_factor_squarefree(
res: *mut fmpz_mod_poly_factor_struct,
f: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_factor(
res: *mut fmpz_mod_poly_factor_struct,
f: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_factor_cantor_zassenhaus(
res: *mut fmpz_mod_poly_factor_struct,
f: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_factor_kaltofen_shoup(
res: *mut fmpz_mod_poly_factor_struct,
poly: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_factor_berlekamp(
factors: *mut fmpz_mod_poly_factor_struct,
f: *const fmpz_mod_poly_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_poly_interval_poly_worker(arg_ptr: *mut ::std::os::raw::c_void);
pub fn fmpz_mod_poly_roots(
r: *mut fmpz_mod_poly_factor_struct,
f: *const fmpz_mod_poly_struct,
with_multiplicity: ::std::os::raw::c_int,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn fmpz_mod_poly_roots_factored(
r: *mut fmpz_mod_poly_factor_struct,
f: *const fmpz_mod_poly_struct,
with_multiplicity: ::std::os::raw::c_int,
n: *const fmpz_factor_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_poly_roots_factored_with_length_limit(
x0: *mut fmpz_mod_poly_factor_struct,
f: *const fmpz_mod_poly_struct,
with_mult: ::std::os::raw::c_int,
length_limit: slong,
fac: *const fmpz_factor_struct,
ctx: *const fmpz_mod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mod_poly_factor_get_fmpz_mod_poly(
z: *mut fmpz_mod_poly_struct,
fac: *mut fmpz_mod_poly_factor_struct,
i: slong,
ctx: *const fmpz_mod_ctx_struct,
);
}
/* fmpz_mod_types.h */
#[repr(C)]
pub struct fmpz_mod_ctx {
pub n: fmpz_t,
pub add_fxn: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut fmpz,
arg2: *const fmpz,
arg3: *const fmpz,
arg4: *const fmpz_mod_ctx,
),
>,
pub sub_fxn: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut fmpz,
arg2: *const fmpz,
arg3: *const fmpz,
arg4: *const fmpz_mod_ctx,
),
>,
pub mul_fxn: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut fmpz,
arg2: *const fmpz,
arg3: *const fmpz,
arg4: *const fmpz_mod_ctx,
),
>,
pub mod_: nmod_t,
pub n_limbs: [ulong; 3usize],
pub ninv_limbs: [ulong; 3usize],
pub ninv_huge: *mut fmpz_preinvn_struct,
}
impl Default for fmpz_mod_ctx {
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_ctx_struct = fmpz_mod_ctx;
pub type fmpz_mod_ctx_t = [fmpz_mod_ctx_struct; 1usize];
pub type fmpz_mod_mat_struct = fmpz_mat_struct;
pub type fmpz_mod_mat_t = [fmpz_mod_mat_struct; 1usize];
#[repr(C)]
pub struct fmpz_mod_poly_struct {
pub coeffs: *mut fmpz,
pub alloc: slong,
pub length: slong,
}
impl Default for fmpz_mod_poly_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_t = [fmpz_mod_poly_struct; 1usize];
#[repr(C)]
pub struct fmpz_mod_poly_factor_struct {
pub poly: *mut fmpz_mod_poly_struct,
pub exp: *mut slong,
pub num: slong,
pub alloc: slong,
}
impl Default for fmpz_mod_poly_factor_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_factor_t = [fmpz_mod_poly_factor_struct; 1usize];
#[repr(C)]
pub struct fmpz_mod_mpoly_struct {
pub coeffs: *mut fmpz,
pub exps: *mut ulong,
pub length: slong,
pub bits: flint_bitcnt_t,
pub coeffs_alloc: slong,
pub exps_alloc: slong,
}
impl Default for fmpz_mod_mpoly_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_mpoly_t = [fmpz_mod_mpoly_struct; 1usize];
#[repr(C)]
pub struct fmpz_mod_mpoly_factor_struct {
pub constant: fmpz_t,
pub poly: *mut fmpz_mod_mpoly_struct,
pub exp: *mut fmpz,
pub num: slong,
pub alloc: slong,
}
impl Default for fmpz_mod_mpoly_factor_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_mpoly_factor_t = [fmpz_mod_mpoly_factor_struct; 1usize];
#[repr(C)]
pub struct fmpz_mod_mpoly_q_struct {
pub num: fmpz_mod_mpoly_struct,
pub den: fmpz_mod_mpoly_struct,
}
impl Default for fmpz_mod_mpoly_q_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_mpoly_q_t = [fmpz_mod_mpoly_q_struct; 1usize];
/* fmpz_mod_vec.h */
unsafe extern "C" {
pub fn _fmpz_mod_vec_set_fmpz_vec(
A: *mut fmpz,
B: *const fmpz,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_vec_get_fmpz_vec_smod(
res: *mut fmpz,
vec: *const fmpz,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_vec_neg(
A: *mut fmpz,
B: *const fmpz,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_vec_add(
a: *mut fmpz,
b: *const fmpz,
c: *const fmpz,
n: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_vec_sub(
a: *mut fmpz,
b: *const fmpz,
c: *const fmpz,
n: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_vec_scalar_mul_fmpz_mod(
A: *mut fmpz,
B: *const fmpz,
len: slong,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_vec_scalar_addmul_fmpz_mod(
A: *mut fmpz,
B: *const fmpz,
len: slong,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_vec_mul(
A: *mut fmpz,
B: *const fmpz,
C: *const fmpz,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_vec_scalar_div_fmpz_mod(
A: *mut fmpz,
B: *const fmpz,
len: slong,
c: *const fmpz,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_vec_dot(
d: *mut fmpz,
A: *const fmpz,
B: *const fmpz,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _fmpz_mod_vec_dot_rev(
r: *mut fmpz,
a: *const fmpz,
b: *const fmpz,
len: slong,
ctx: *const fmpz_mod_ctx_struct,
);
}
/* fmpz_mpoly.h */
#[repr(C)]
pub struct fmpz_mpoly_univar_struct {
pub coeffs: *mut fmpz_mpoly_struct,
pub exps: *mut fmpz,
pub alloc: slong,
pub length: slong,
}
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,
}
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,
}
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 ::std::os::raw::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: ::std::os::raw::c_int,
pub flint_small: ::std::os::raw::c_int,
}
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,
}
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 _fmpz_mpoly_bindgen_ty_1 {
pub powers: *mut fmpz,
pub length: slong,
pub alloc: slong,
pub tmp: fmpz_t,
}
impl Default for _fmpz_mpoly_bindgen_ty_1 {
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 = [_fmpz_mpoly_bindgen_ty_1; 1usize];
#[repr(C)]
pub struct fmpz_mpoly_geobucket {
pub polys: [fmpz_mpoly_struct; 32usize],
pub temps: [fmpz_mpoly_struct; 32usize],
pub length: slong,
}
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];
unsafe extern "C" {
pub fn fmpz_mpoly_term_coeff_ref(
A: *mut fmpz_mpoly_struct,
i: slong,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
) -> *mut fmpz;
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);
pub fn fmpz_mpoly_ctx_nvars(ctx: *const fmpz_mpoly_ctx_struct) -> slong;
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 ::std::os::raw::c_char,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpz_mpoly_get_str_pretty(
poly: *const fmpz,
exps: *const ulong,
len: slong,
x: *mut *const ::std::os::raw::c_char,
bits: slong,
mctx: *const mpoly_ctx_struct,
) -> *mut ::std::os::raw::c_char;
pub fn fmpz_mpoly_get_str_pretty(
A: *const fmpz_mpoly_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fmpz_mpoly_ctx_struct,
) -> *mut ::std::os::raw::c_char;
pub fn _fmpz_mpoly_fprint_pretty(
file: *mut FILE,
poly: *const fmpz,
exps: *const ulong,
len: slong,
x_in: *mut *const ::std::os::raw::c_char,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_fprint_pretty(
file: *mut FILE,
A: *const fmpz_mpoly_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpz_mpoly_print_pretty(
poly: *const fmpz,
exps: *const ulong,
len: slong,
x: *mut *const ::std::os::raw::c_char,
bits: slong,
mctx: *const mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_print_pretty(
A: *const fmpz_mpoly_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_equal(
A: *const fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_swap(
A: *mut fmpz_mpoly_struct,
B: *mut fmpz_mpoly_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_fits_small(
poly: *const fmpz,
len: slong,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
);
pub fn fmpz_mpoly_zero(A: *mut fmpz_mpoly_struct, ctx: *const fmpz_mpoly_ctx_struct);
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,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_equal_ui(
A: *const fmpz_mpoly_struct,
c: ulong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_equal_fmpz(
A: *const fmpz_mpoly_struct,
c: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_is_zero(
A: *const fmpz_mpoly_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_is_one(
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_degrees_fit_si(
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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 ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_is_canonical(
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
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,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_term_exp_fits_si(
A: *const fmpz_mpoly_struct,
i: slong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::c_int;
pub fn _fmpz_pow_fmpz_is_not_feasible(
bbits: flint_bitcnt_t,
e: *const fmpz,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
);
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,
) -> ::std::os::raw::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: ::std::os::raw::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: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_sqrt(
q: *mut fmpz_mpoly_struct,
poly2: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_is_square(
poly2: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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 ::std::os::raw::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,
);
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,
);
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,
) -> ::std::os::raw::c_int;
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;
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,
);
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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::c_int;
///Internal functions (guaranteed to change without notice)
pub fn mpoly_void_ring_init_fmpz_mpoly_ctx(
R: *mut mpoly_void_ring_struct,
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,
) -> ::std::os::raw::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,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_repack_bits_inplace(
A: *mut fmpz_mpoly_struct,
Abits: flint_bitcnt_t,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::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 _fmpz_mpoly_bindgen_ty_1, val: *const fmpz);
pub fn fmpz_pow_cache_clear(T: *mut _fmpz_mpoly_bindgen_ty_1);
pub fn fmpz_pow_cache_mulpow_ui(
a: *mut fmpz,
b: *const fmpz,
k: ulong,
T: *mut _fmpz_mpoly_bindgen_ty_1,
) -> ::std::os::raw::c_int;
pub fn fmpz_pow_cache_mulpow_fmpz(
a: *mut fmpz,
b: *const fmpz,
k: *const fmpz,
T: *mut _fmpz_mpoly_bindgen_ty_1,
) -> ::std::os::raw::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);
pub fn _fmpz_mpoly_submul_uiuiui_fmpz(c: *mut ulong, d1: slong, d2: slong);
pub fn _fmpz_mpoly_addmul_uiuiui_fmpz(c: *mut ulong, d1: slong, d2: slong);
///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,
);
}
/* fmpz_mpoly_factor.h */
#[repr(C)]
pub struct fmpz_mpolyv_struct {
pub coeffs: *mut fmpz_mpoly_struct,
pub alloc: slong,
pub length: slong,
}
impl Default for fmpz_mpolyv_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type fmpz_mpolyv_t = [fmpz_mpolyv_struct; 1usize];
#[repr(C)]
pub struct fmpz_poly_pfrac_struct {
pub r: slong,
pub bits: *mut flint_bitcnt_t,
pub a: fmpz_poly_t,
pub newa: fmpz_poly_t,
pub t: fmpz_poly_t,
pub b: *mut fmpz_poly_struct,
pub bprod: *mut fmpz_poly_struct,
pub old_pk: fmpz_t,
pub pk: fmpz_t,
pub p: fmpz_t,
pub halfpks: *mut fmpz,
pub ctxp: fmpz_mod_ctx_t,
pub ctxs: *mut fmpz_mod_ctx_struct,
pub T: fmpz_mod_poly_t,
pub R: fmpz_mod_poly_t,
pub Q: fmpz_mod_poly_t,
pub B: *mut fmpz_mod_poly_struct,
pub invBprod: *mut fmpz_mod_poly_struct,
pub inwBprod: *mut fmpz_mod_poly_struct,
pub B_inv: *mut fmpz_mod_poly_struct,
}
impl Default for fmpz_poly_pfrac_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type fmpz_poly_pfrac_t = [fmpz_poly_pfrac_struct; 1usize];
#[repr(C)]
pub struct fmpz_mpoly_pfrac_struct {
pub bits: flint_bitcnt_t,
pub w: slong,
pub r: slong,
pub prod_mbetas: *mut fmpz_mpoly_struct,
pub prod_mbetas_coeffs: *mut fmpz_mpolyv_struct,
pub mbetas: *mut fmpz_mpoly_struct,
pub deltas: *mut fmpz_mpoly_struct,
pub xalpha: *mut fmpz_mpoly_struct,
pub q: *mut fmpz_mpoly_struct,
pub U: *mut fmpz_mpoly_univar_struct,
pub G: *mut fmpz_mpoly_geobucket_struct,
pub qt: *mut fmpz_mpoly_struct,
pub newt: *mut fmpz_mpoly_struct,
pub delta_coeffs: *mut fmpz_mpolyv_struct,
pub uni_pfrac: fmpz_poly_pfrac_t,
pub uni_a: fmpz_poly_t,
pub uni_c: *mut fmpz_poly_struct,
}
impl Default for fmpz_mpoly_pfrac_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type fmpz_mpoly_pfrac_t = [fmpz_mpoly_pfrac_struct; 1usize];
#[repr(C)]
pub struct fmpz_bpoly_struct {
pub coeffs: *mut fmpz_poly_struct,
pub alloc: slong,
pub length: slong,
}
impl Default for fmpz_bpoly_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type fmpz_bpoly_t = [fmpz_bpoly_struct; 1usize];
#[repr(C)]
pub struct fmpz_tpoly_struct {
pub coeffs: *mut fmpz_bpoly_struct,
pub alloc: slong,
pub length: slong,
}
impl Default for fmpz_tpoly_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type fmpz_tpoly_t = [fmpz_tpoly_struct; 1usize];
unsafe extern "C" {
pub fn tuple_print(alpha: *mut fmpz, n: slong);
pub fn tuple_saturate(alpha: *mut fmpz, n: slong, m: slong);
pub fn tuple_next(alpha: *mut fmpz, n: slong);
pub fn fmpz_mpoly_factor_init(
f: *mut fmpz_mpoly_factor_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_init2(
f: *mut fmpz_mpoly_factor_struct,
alloc: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_realloc(
f: *mut fmpz_mpoly_factor_struct,
alloc: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_fit_length(
f: *mut fmpz_mpoly_factor_struct,
len: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_clear(
f: *mut fmpz_mpoly_factor_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_length(
f: *const fmpz_mpoly_factor_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
) -> slong;
pub fn fmpz_mpoly_factor_get_constant_fmpz(
c: *mut fmpz,
f: *const fmpz_mpoly_factor_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_get_constant_fmpq(
c: *mut fmpq,
f: *const fmpz_mpoly_factor_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_get_base(
p: *mut fmpz_mpoly_struct,
f: *const fmpz_mpoly_factor_struct,
i: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_swap_base(
p: *mut fmpz_mpoly_struct,
f: *mut fmpz_mpoly_factor_struct,
i: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_get_exp_si(
f: *mut fmpz_mpoly_factor_struct,
i: slong,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
) -> slong;
pub fn fmpz_mpoly_factor_set(
f: *mut fmpz_mpoly_factor_struct,
g: *const fmpz_mpoly_factor_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_cmp(
f: *const fmpz_mpoly_factor_struct,
g: *const fmpz_mpoly_factor_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_factor_print_pretty(
f: *const fmpz_mpoly_factor_struct,
vars: *mut *const ::std::os::raw::c_char,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_content(
f: *mut fmpz_mpoly_factor_struct,
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_factor_squarefree(
f: *mut fmpz_mpoly_factor_struct,
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_factor(
f: *mut fmpz_mpoly_factor_struct,
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_factor_swap(
f: *mut fmpz_mpoly_factor_struct,
g: *mut fmpz_mpoly_factor_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_set_fmpz(
f: *mut fmpz_mpoly_factor_struct,
a: *const fmpz,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_zero(
f: *mut fmpz_mpoly_factor_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_one(
f: *mut fmpz_mpoly_factor_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_sort(
f: *mut fmpz_mpoly_factor_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_expand(
A: *mut fmpz_mpoly_struct,
f: *const fmpz_mpoly_factor_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_factor_bound_si(
B: *mut fmpz,
A: *const fmpz,
degs: *const slong,
nvars: slong,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_factor_matches(
A: *const fmpz_mpoly_struct,
f: *const fmpz_mpoly_factor_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_factor_append_fmpz_swap(
f: *mut fmpz_mpoly_factor_struct,
A: *mut fmpz_mpoly_struct,
e: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_append_ui(
f: *mut fmpz_mpoly_factor_struct,
A: *const fmpz_mpoly_struct,
e: ulong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_interp_lift_p(
A: *mut fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
Ap: *mut nmod_mpoly_struct,
ctxp: *const nmod_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_interp_reduce_p(
Ap: *mut nmod_mpoly_struct,
ctxp: *const nmod_mpoly_ctx_struct,
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_interp_mcrt_p(
coeffbits: *mut flint_bitcnt_t,
H: *mut fmpz_mpoly_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
m: *const fmpz,
A: *const nmod_mpoly_struct,
ctxp: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_interp_reduce_p_mpolyn(
E: *mut nmod_mpolyn_struct,
pctx: *const nmod_mpoly_ctx_struct,
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_interp_lift_p_mpolyn(
A: *mut fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
B: *const nmod_mpolyn_struct,
pctx: *const nmod_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_interp_crt_p_mpolyn(
F: *mut fmpz_mpoly_struct,
T: *mut fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
modulus: *mut fmpz,
A: *const nmod_mpolyn_struct,
pctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpolyv_init(
A: *mut fmpz_mpolyv_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpolyv_swap(
A: *mut fmpz_mpolyv_struct,
B: *mut fmpz_mpolyv_struct,
UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpolyv_clear(
A: *mut fmpz_mpolyv_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpolyv_print_pretty(
poly: *const fmpz_mpolyv_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpolyv_fit_length(
A: *mut fmpz_mpolyv_struct,
length: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpolyv_set_coeff(
A: *mut fmpz_mpolyv_struct,
i: slong,
c: *mut fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_to_mpolyv(
A: *mut fmpz_mpolyv_struct,
B: *const fmpz_mpoly_struct,
xalpha: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_from_mpolyv(
A: *mut fmpz_mpoly_struct,
Abits: flint_bitcnt_t,
B: *const fmpz_mpolyv_struct,
xalpha: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_vec_content_mpoly(
g: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
Alen: slong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpz_mpoly_vec_divexact_mpoly(
A: *mut fmpz_mpoly_struct,
Alen: slong,
c: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_vec_mul_mpoly(
A: *mut fmpz_mpoly_struct,
Alen: slong,
c: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_gcd_algo(
G: *mut fmpz_mpoly_struct,
Abar: *mut fmpz_mpoly_struct,
Bbar: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
algo: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_to_mpolyl_perm_deflate(
A: *mut fmpz_mpoly_struct,
lctx: *const fmpz_mpoly_ctx_struct,
B: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
perm: *const slong,
shift: *const ulong,
stride: *const ulong,
);
pub fn fmpz_mpoly_from_mpolyl_perm_inflate(
A: *mut fmpz_mpoly_struct,
Abits: flint_bitcnt_t,
ctx: *const fmpz_mpoly_ctx_struct,
B: *const fmpz_mpoly_struct,
lctx: *const fmpz_mpoly_ctx_struct,
perm: *const slong,
shift: *const ulong,
stride: *const ulong,
);
pub fn fmpz_mpolyl_gcd_brown(
G: *mut fmpz_mpoly_struct,
Abar: *mut fmpz_mpoly_struct,
Bbar: *mut fmpz_mpoly_struct,
A: *mut fmpz_mpoly_struct,
B: *mut fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
Iv: *const mpoly_gcd_info_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpolyl_gcd_brown_threaded_pool(
G: *mut fmpz_mpoly_struct,
Abar: *mut fmpz_mpoly_struct,
Bbar: *mut fmpz_mpoly_struct,
A: *mut fmpz_mpoly_struct,
B: *mut fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
Iv: *const mpoly_gcd_info_struct,
handles: *const thread_pool_handle,
num_handles: slong,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpolyl_gcd_zippel(
G: *mut fmpz_mpoly_struct,
Abar: *mut fmpz_mpoly_struct,
Bbar: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
randstate: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpolyl_gcd_zippel2(
G: *mut fmpz_mpoly_struct,
Abar: *mut fmpz_mpoly_struct,
Bbar: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
Gamma: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpolyl_gcd_hensel(
G: *mut fmpz_mpoly_struct,
Gdeg: slong,
Abar: *mut fmpz_mpoly_struct,
Bbar: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_pfrac_init(Iv: *mut fmpz_poly_pfrac_struct);
pub fn fmpz_poly_pfrac_clear(Iv: *mut fmpz_poly_pfrac_struct);
pub fn fmpz_poly_pfrac_precompute(
Iv: *mut fmpz_poly_pfrac_struct,
b: *const fmpz_poly_struct,
r: slong,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_pfrac_precomp(
c: *mut fmpz_poly_struct,
A: *const fmpz_poly_struct,
Iv: *mut fmpz_poly_pfrac_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_pfrac_init(
Iv: *mut fmpz_mpoly_pfrac_struct,
bits: flint_bitcnt_t,
r: slong,
w: slong,
betas: *const fmpz_mpoly_struct,
alpha: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_pfrac_clear(
Iv: *mut fmpz_mpoly_pfrac_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_pfrac(
l: slong,
t: *mut fmpz_mpoly_struct,
degs: *const slong,
Iv: *mut fmpz_mpoly_pfrac_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_hlift(
m: slong,
f: *mut fmpz_mpoly_struct,
r: slong,
alpha: *const fmpz,
A: *const fmpz_mpoly_struct,
degs: *const slong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpz_mpoly_get_lead0(
c: *mut fmpz_mpoly_struct,
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_set_lead0(
A: *mut fmpz_mpoly_struct,
B: *const fmpz_mpoly_struct,
c: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_bpoly_init(A: *mut fmpz_bpoly_struct);
pub fn fmpz_bpoly_swap(A: *mut fmpz_bpoly_struct, B: *mut fmpz_bpoly_struct);
pub fn fmpz_bpoly_clear(A: *mut fmpz_bpoly_struct);
pub fn fmpz_bpoly_realloc(A: *mut fmpz_bpoly_struct, len: slong);
pub fn fmpz_bpoly_fit_length(A: *mut fmpz_bpoly_struct, len: slong);
pub fn fmpz_bpoly_print_pretty(
A: *mut fmpz_bpoly_struct,
var0: *const ::std::os::raw::c_char,
var1: *const ::std::os::raw::c_char,
);
pub fn fmpz_bpoly_lead(A: *mut fmpz_bpoly_struct) -> *mut fmpz_poly_struct;
pub fn fmpz_bpoly_zero(A: *mut fmpz_bpoly_struct);
pub fn fmpz_bpoly_degree0(A: *const fmpz_bpoly_struct) -> slong;
pub fn fmpz_bpoly_degree1(A: *const fmpz_bpoly_struct) -> slong;
pub fn fmpz_bpoly_set_coeff(
A: *mut fmpz_bpoly_struct,
exp0: slong,
exp1: slong,
c: *const fmpz,
);
pub fn fmpz_mpoly_set_fmpz_bpoly(
A: *mut fmpz_mpoly_struct,
Abits: flint_bitcnt_t,
B: *const fmpz_bpoly_struct,
var0: slong,
var1: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_get_bpoly(
A: *mut fmpz_bpoly_struct,
B: *const fmpz_mpoly_struct,
var0: slong,
var1: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_tpoly_init(A: *mut fmpz_tpoly_struct);
pub fn fmpz_tpoly_swap(A: *mut fmpz_tpoly_struct, B: *mut fmpz_tpoly_struct);
pub fn fmpz_tpoly_fit_length(A: *mut fmpz_tpoly_struct, len: slong);
pub fn fmpz_tpoly_clear(A: *mut fmpz_tpoly_struct);
pub fn fmpz_bpoly_factor(
c: *mut fmpz_poly_struct,
F: *mut fmpz_tpoly_struct,
B: *mut fmpz_bpoly_struct,
);
pub fn fmpz_bpoly_factor_ordered(
c: *mut fmpz_poly_struct,
F: *mut fmpz_tpoly_struct,
B: *mut fmpz_bpoly_struct,
alpha: *const fmpz,
Bevalf: *const fmpz_poly_factor_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_unit_normalize(
A: *mut fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_factor_squarefree(
f: *mut fmpz_mpoly_factor_struct,
A: *mut fmpz_mpoly_struct,
e: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_factor_lcc_wang(
lc_divs: *mut fmpz_mpoly_struct,
lcAfac: *const fmpz_mpoly_factor_struct,
Auc: *const fmpz,
Auf: *const fmpz_poly_struct,
r: slong,
alpha: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_factor_irred_zassenhaus(
fac: *mut fmpz_mpolyv_struct,
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
UNUSED_Z: *mut zassenhaus_prune_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_factor_irred_wang(
fac: *mut fmpz_mpolyv_struct,
A: *const fmpz_mpoly_struct,
lcAfac: *const fmpz_mpoly_factor_struct,
lcAfac_irred: ::std::os::raw::c_int,
lcA: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
state: *mut flint_rand_struct,
Z: *mut zassenhaus_prune_struct,
allow_shift: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_factor_irred_zippel(
fac: *mut fmpz_mpolyv_struct,
A: *const fmpz_mpoly_struct,
lcAfac: *const fmpz_mpoly_factor_struct,
lcAfac_irred: ::std::os::raw::c_int,
lcA: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
state: *mut flint_rand_struct,
Z: *mut zassenhaus_prune_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_factor_irred(
f: *mut fmpz_mpoly_factor_struct,
ctx: *const fmpz_mpoly_ctx_struct,
algo: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_factor_zassenhaus(
f: *mut fmpz_mpoly_factor_struct,
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_factor_wang(
f: *mut fmpz_mpoly_factor_struct,
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_factor_zippel(
f: *mut fmpz_mpoly_factor_struct,
A: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpz_mpoly_evaluate_rest_fmpz(
E: *mut fmpz,
starts: *mut slong,
ends: *mut slong,
stops: *mut slong,
es: *mut ulong,
Acoeffs: *const fmpz,
Aexps: *const ulong,
Alen: slong,
var: slong,
alphas: *const fmpz,
offsets: *const slong,
shifts: *const slong,
N: slong,
mask: ulong,
nvars: slong,
) -> ::std::os::raw::c_int;
pub fn _fmpz_mpoly_eval_rest_to_poly(
E: *mut fmpz_poly_struct,
A: *const fmpz_mpoly_struct,
alphas: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_factor_lcc_kaltofen_step(
divs: *mut fmpz_mpoly_struct,
r: slong,
Af: *mut fmpz_mpoly_factor_struct,
Au: *const fmpz_poly_struct,
v: slong,
alphas: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_factor_lcc_kaltofen(
divs: *mut fmpz_mpoly_struct,
lcAf_: *const fmpz_mpoly_factor_struct,
A: *const fmpz_mpoly_struct,
r: slong,
alpha: *const fmpz,
degs: *mut slong,
uf: *const fmpz_poly_factor_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_evaluate_rest_except_one(
e: *mut fmpz_poly_struct,
A: *const fmpz_mpoly_struct,
alphas: *const fmpz,
v: slong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_compression_do(
L: *mut fmpz_mpoly_struct,
Lctx: *const fmpz_mpoly_ctx_struct,
Acoeffs: *mut fmpz,
Alen: slong,
M: *mut mpoly_compression_struct,
);
pub fn fmpz_mpoly_compression_undo(
A: *mut fmpz_mpoly_struct,
Abits: flint_bitcnt_t,
Actx: *const fmpz_mpoly_ctx_struct,
L: *mut fmpz_mpoly_struct,
Lctx: *const fmpz_mpoly_ctx_struct,
M: *mut mpoly_compression_struct,
);
}
/* fmpz_mpoly_q.h */
unsafe extern "C" {
pub fn fmpz_mpoly_q_init(
res: *mut fmpz_mpoly_q_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_clear(
res: *mut fmpz_mpoly_q_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_swap(
x: *mut fmpz_mpoly_q_struct,
y: *mut fmpz_mpoly_q_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_set(
res: *mut fmpz_mpoly_q_struct,
x: *const fmpz_mpoly_q_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_set_fmpq(
res: *mut fmpz_mpoly_q_struct,
x: *const fmpq,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_set_fmpz(
res: *mut fmpz_mpoly_q_struct,
x: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_set_si(
res: *mut fmpz_mpoly_q_struct,
x: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_canonicalise(
x: *mut fmpz_mpoly_q_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_is_canonical(
res: *const fmpz_mpoly_q_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_q_is_zero(
x: *const fmpz_mpoly_q_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_q_is_one(
x: *const fmpz_mpoly_q_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_q_is_fmpz(
x: *const fmpz_mpoly_q_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_q_is_fmpq(
x: *const fmpz_mpoly_q_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_q_used_vars(
used: *mut ::std::os::raw::c_int,
f: *const fmpz_mpoly_q_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_used_vars_num(
used: *mut ::std::os::raw::c_int,
f: *const fmpz_mpoly_q_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_used_vars_den(
used: *mut ::std::os::raw::c_int,
f: *const fmpz_mpoly_q_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_zero(
res: *mut fmpz_mpoly_q_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_one(
res: *mut fmpz_mpoly_q_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_gen(
res: *mut fmpz_mpoly_q_struct,
i: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_print_pretty(
f: *const fmpz_mpoly_q_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_get_str_pretty(
f: *const fmpz_mpoly_q_struct,
vars: *mut *const ::std::os::raw::c_char,
ctx: *const fmpz_mpoly_ctx_struct,
) -> *mut ::std::os::raw::c_char;
pub fn fmpz_mpoly_q_set_str_pretty(
res: *mut fmpz_mpoly_q_struct,
s: *const ::std::os::raw::c_char,
vars: *mut *const ::std::os::raw::c_char,
ctx: *mut fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_q_randtest(
res: *mut fmpz_mpoly_q_struct,
state: *mut flint_rand_struct,
length: slong,
coeff_bits: ulong,
exp_bound: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_equal(
x: *const fmpz_mpoly_q_struct,
y: *const fmpz_mpoly_q_struct,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_mpoly_q_neg(
res: *mut fmpz_mpoly_q_struct,
x: *const fmpz_mpoly_q_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_add(
res: *mut fmpz_mpoly_q_struct,
x: *const fmpz_mpoly_q_struct,
y: *const fmpz_mpoly_q_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_sub(
res: *mut fmpz_mpoly_q_struct,
x: *const fmpz_mpoly_q_struct,
y: *const fmpz_mpoly_q_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_mul(
res: *mut fmpz_mpoly_q_struct,
x: *const fmpz_mpoly_q_struct,
y: *const fmpz_mpoly_q_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_div(
res: *mut fmpz_mpoly_q_struct,
x: *const fmpz_mpoly_q_struct,
y: *const fmpz_mpoly_q_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_inv(
res: *mut fmpz_mpoly_q_struct,
x: *const fmpz_mpoly_q_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_q_add(
res_num: *mut fmpz_mpoly_struct,
res_den: *mut fmpz_mpoly_struct,
x_num: *const fmpz_mpoly_struct,
x_den: *const fmpz_mpoly_struct,
y_num: *const fmpz_mpoly_struct,
y_den: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_q_sub(
res_num: *mut fmpz_mpoly_struct,
res_den: *mut fmpz_mpoly_struct,
x_num: *const fmpz_mpoly_struct,
x_den: *const fmpz_mpoly_struct,
y_num: *const fmpz_mpoly_struct,
y_den: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_q_mul(
res_num: *mut fmpz_mpoly_struct,
res_den: *mut fmpz_mpoly_struct,
x_num: *const fmpz_mpoly_struct,
x_den: *const fmpz_mpoly_struct,
y_num: *const fmpz_mpoly_struct,
y_den: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_q_div(
res_num: *mut fmpz_mpoly_struct,
res_den: *mut fmpz_mpoly_struct,
x_num: *const fmpz_mpoly_struct,
x_den: *const fmpz_mpoly_struct,
y_num: *const fmpz_mpoly_struct,
y_den: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_q_add_fmpq(
res_num: *mut fmpz_mpoly_struct,
res_den: *mut fmpz_mpoly_struct,
x_num: *const fmpz_mpoly_struct,
x_den: *const fmpz_mpoly_struct,
y_num: *const fmpz,
y_den: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_q_sub_fmpq(
res_num: *mut fmpz_mpoly_struct,
res_den: *mut fmpz_mpoly_struct,
x_num: *const fmpz_mpoly_struct,
x_den: *const fmpz_mpoly_struct,
y_num: *const fmpz,
y_den: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_q_mul_fmpq(
res_num: *mut fmpz_mpoly_struct,
res_den: *mut fmpz_mpoly_struct,
x_num: *const fmpz_mpoly_struct,
x_den: *const fmpz_mpoly_struct,
y_num: *const fmpz,
y_den: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_add_fmpz(
res: *mut fmpz_mpoly_q_struct,
x: *const fmpz_mpoly_q_struct,
y: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_add_fmpq(
res: *mut fmpz_mpoly_q_struct,
x: *const fmpz_mpoly_q_struct,
y: *const fmpq,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_sub_fmpz(
res: *mut fmpz_mpoly_q_struct,
x: *const fmpz_mpoly_q_struct,
y: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_sub_fmpq(
res: *mut fmpz_mpoly_q_struct,
x: *const fmpz_mpoly_q_struct,
y: *const fmpq,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_mul_fmpz(
res: *mut fmpz_mpoly_q_struct,
x: *const fmpz_mpoly_q_struct,
y: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_mul_fmpq(
res: *mut fmpz_mpoly_q_struct,
x: *const fmpz_mpoly_q_struct,
y: *const fmpq,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_div_fmpz(
res: *mut fmpz_mpoly_q_struct,
x: *const fmpz_mpoly_q_struct,
y: *const fmpz,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_div_fmpq(
res: *mut fmpz_mpoly_q_struct,
x: *const fmpz_mpoly_q_struct,
y: *const fmpq,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_add_si(
res: *mut fmpz_mpoly_q_struct,
x: *const fmpz_mpoly_q_struct,
c: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_sub_si(
res: *mut fmpz_mpoly_q_struct,
x: *const fmpz_mpoly_q_struct,
c: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_mul_si(
res: *mut fmpz_mpoly_q_struct,
x: *const fmpz_mpoly_q_struct,
c: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_div_si(
res: *mut fmpz_mpoly_q_struct,
x: *const fmpz_mpoly_q_struct,
c: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_vec_content2(
res: *mut fmpz,
vec: *const fmpz,
len: slong,
inp: *const fmpz,
);
pub fn fmpz_mpoly_gcd_assert_successful(
res: *mut fmpz_mpoly_struct,
x: *const fmpz_mpoly_struct,
y: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_q_mpoly_divexact(
res: *mut fmpz_mpoly_struct,
x: *const fmpz_mpoly_struct,
y: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn _fmpz_mpoly_q_content(
num: *mut fmpz,
den: *mut fmpz,
xnum: *const fmpz_mpoly_struct,
xden: *const fmpz_mpoly_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_content(
res: *mut fmpq,
x: *const fmpz_mpoly_q_struct,
ctx: *const fmpz_mpoly_ctx_struct,
);
pub fn fmpz_mpoly_q_evaluate_acb(
res: *mut acb_struct,
f: *const fmpz_mpoly_q_struct,
x: acb_srcptr,
prec: slong,
ctx: *const fmpz_mpoly_ctx_struct,
);
}
/* fmpz_poly.h */
#[repr(C)]
pub struct fmpz_poly_powers_precomp_struct {
pub powers: *mut *mut fmpz,
pub len: slong,
}
impl Default for fmpz_poly_powers_precomp_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type fmpz_poly_powers_precomp_t = [fmpz_poly_powers_precomp_struct; 1usize];
#[repr(C)]
pub struct fmpz_poly_mul_precache_struct {
pub jj: *mut *mut ulong,
pub n: slong,
pub len2: slong,
pub loglen: slong,
pub bits2: slong,
pub limbs: slong,
pub poly2: fmpz_poly_t,
}
impl Default for fmpz_poly_mul_precache_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type fmpz_poly_mul_precache_t = [fmpz_poly_mul_precache_struct; 1usize];
unsafe extern "C" {
pub fn fmpz_poly_init(poly: *mut fmpz_poly_struct);
pub fn fmpz_poly_init2(poly: *mut fmpz_poly_struct, alloc: slong);
pub fn fmpz_poly_realloc(poly: *mut fmpz_poly_struct, alloc: slong);
pub fn fmpz_poly_fit_length(poly: *mut fmpz_poly_struct, len: slong);
pub fn fmpz_poly_clear(poly: *mut fmpz_poly_struct);
pub fn _fmpz_poly_normalise(poly: *mut fmpz_poly_struct);
pub fn _fmpz_poly_set_length(poly: *mut fmpz_poly_struct, newlen: slong);
pub fn fmpz_poly_attach_truncate(
trunc: *mut fmpz_poly_struct,
poly: *const fmpz_poly_struct,
n: slong,
);
pub fn fmpz_poly_attach_shift(
trunc: *mut fmpz_poly_struct,
poly: *const fmpz_poly_struct,
n: slong,
);
pub fn fmpz_poly_length(poly: *const fmpz_poly_struct) -> slong;
pub fn fmpz_poly_degree(poly: *const fmpz_poly_struct) -> slong;
pub fn fmpz_poly_set(poly1: *mut fmpz_poly_struct, poly2: *const fmpz_poly_struct);
pub fn fmpz_poly_set_ui(poly: *mut fmpz_poly_struct, c: ulong);
pub fn fmpz_poly_set_si(poly: *mut fmpz_poly_struct, c: slong);
pub fn fmpz_poly_set_fmpz(poly: *mut fmpz_poly_struct, c: *const fmpz);
pub fn _fmpz_poly_set_str(
poly: *mut fmpz,
str_: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_set_str(
poly: *mut fmpz_poly_struct,
str_: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn _fmpz_poly_get_str(
poly: *const fmpz,
len: slong,
) -> *mut ::std::os::raw::c_char;
pub fn fmpz_poly_get_str(
poly: *const fmpz_poly_struct,
) -> *mut ::std::os::raw::c_char;
pub fn _fmpz_poly_get_str_pretty(
poly: *const fmpz,
len: slong,
x: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
pub fn fmpz_poly_get_str_pretty(
poly: *const fmpz_poly_struct,
x: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
pub fn fmpz_poly_zero(poly: *mut fmpz_poly_struct);
pub fn fmpz_poly_one(poly: *mut fmpz_poly_struct);
pub fn fmpz_poly_zero_coeffs(poly: *mut fmpz_poly_struct, i: slong, j: slong);
pub fn fmpz_poly_swap(poly1: *mut fmpz_poly_struct, poly2: *mut fmpz_poly_struct);
pub fn _fmpz_poly_reverse(res: *mut fmpz, poly: *const fmpz, len: slong, n: slong);
pub fn fmpz_poly_reverse(
res: *mut fmpz_poly_struct,
poly: *const fmpz_poly_struct,
n: slong,
);
pub fn _fmpz_poly_deflation(a: *const fmpz, len: slong) -> ulong;
pub fn fmpz_poly_deflation(input: *const fmpz_poly_struct) -> ulong;
pub fn fmpz_poly_deflate(
result: *mut fmpz_poly_struct,
input: *const fmpz_poly_struct,
deflation: ulong,
);
pub fn fmpz_poly_inflate(
result: *mut fmpz_poly_struct,
input: *const fmpz_poly_struct,
inflation: ulong,
);
pub fn fmpz_poly_truncate(poly: *mut fmpz_poly_struct, newlen: slong);
pub fn fmpz_poly_set_trunc(
res: *mut fmpz_poly_struct,
poly: *const fmpz_poly_struct,
n: slong,
);
pub fn fmpz_poly_randtest(
f: *mut fmpz_poly_struct,
state: *mut flint_rand_struct,
len: slong,
bits: flint_bitcnt_t,
);
pub fn fmpz_poly_randtest_unsigned(
f: *mut fmpz_poly_struct,
state: *mut flint_rand_struct,
len: slong,
bits: flint_bitcnt_t,
);
pub fn fmpz_poly_randtest_not_zero(
f: *mut fmpz_poly_struct,
state: *mut flint_rand_struct,
len: slong,
bits: flint_bitcnt_t,
);
pub fn fmpz_poly_randtest_no_real_root(
p: *mut fmpz_poly_struct,
state: *mut flint_rand_struct,
len: slong,
bits: flint_bitcnt_t,
);
pub fn fmpz_poly_randtest_irreducible1(
pol: *mut fmpz_poly_struct,
state: *mut flint_rand_struct,
len: slong,
bits: flint_bitcnt_t,
);
pub fn fmpz_poly_randtest_irreducible2(
pol: *mut fmpz_poly_struct,
state: *mut flint_rand_struct,
len: slong,
bits: flint_bitcnt_t,
);
pub fn fmpz_poly_randtest_irreducible(
pol: *mut fmpz_poly_struct,
state: *mut flint_rand_struct,
len: slong,
bits: flint_bitcnt_t,
);
pub fn fmpz_poly_get_coeff_si(poly: *const fmpz_poly_struct, n: slong) -> slong;
pub fn fmpz_poly_set_coeff_si(poly: *mut fmpz_poly_struct, n: slong, x: slong);
pub fn fmpz_poly_get_coeff_ui(poly: *const fmpz_poly_struct, n: slong) -> ulong;
pub fn fmpz_poly_set_coeff_ui(poly: *mut fmpz_poly_struct, n: slong, x: ulong);
pub fn fmpz_poly_set_coeff_fmpz(
poly: *mut fmpz_poly_struct,
n: slong,
x: *const fmpz,
);
pub fn fmpz_poly_get_coeff_fmpz(
x: *mut fmpz,
poly: *const fmpz_poly_struct,
n: slong,
);
pub fn fmpz_poly_equal(
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_equal_trunc(
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
n: slong,
) -> ::std::os::raw::c_int;
pub fn _fmpz_poly_is_one(poly: *const fmpz, len: slong) -> ::std::os::raw::c_int;
pub fn fmpz_poly_is_one(op: *const fmpz_poly_struct) -> ::std::os::raw::c_int;
pub fn fmpz_poly_is_unit(op: *const fmpz_poly_struct) -> ::std::os::raw::c_int;
pub fn fmpz_poly_is_gen(op: *const fmpz_poly_struct) -> ::std::os::raw::c_int;
pub fn fmpz_poly_equal_fmpz(
poly: *const fmpz_poly_struct,
c: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn _fmpz_poly_add(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
);
pub fn fmpz_poly_add(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
);
pub fn fmpz_poly_add_series(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
n: slong,
);
pub fn _fmpz_poly_sub(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
);
pub fn fmpz_poly_sub(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
);
pub fn fmpz_poly_sub_series(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
n: slong,
);
pub fn fmpz_poly_neg(res: *mut fmpz_poly_struct, poly: *const fmpz_poly_struct);
pub fn fmpz_poly_add_si(
res: *mut fmpz_poly_struct,
poly: *const fmpz_poly_struct,
c: slong,
);
pub fn fmpz_poly_sub_si(
res: *mut fmpz_poly_struct,
poly: *const fmpz_poly_struct,
c: slong,
);
pub fn fmpz_poly_si_sub(
res: *mut fmpz_poly_struct,
c: slong,
poly: *const fmpz_poly_struct,
);
pub fn fmpz_poly_add_fmpz(
res: *mut fmpz_poly_struct,
poly: *const fmpz_poly_struct,
c: *mut fmpz,
);
pub fn fmpz_poly_sub_fmpz(
res: *mut fmpz_poly_struct,
poly: *const fmpz_poly_struct,
c: *mut fmpz,
);
pub fn fmpz_poly_fmpz_sub(
res: *mut fmpz_poly_struct,
c: *mut fmpz,
poly: *const fmpz_poly_struct,
);
pub fn fmpz_poly_scalar_abs(
res: *mut fmpz_poly_struct,
poly: *const fmpz_poly_struct,
);
pub fn fmpz_poly_scalar_mul_ui(
poly1: *mut fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
x: ulong,
);
pub fn fmpz_poly_scalar_mul_si(
poly1: *mut fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
x: slong,
);
pub fn fmpz_poly_scalar_mul_fmpz(
poly1: *mut fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
x: *const fmpz,
);
pub fn fmpz_poly_scalar_addmul_fmpz(
poly1: *mut fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
x: *const fmpz,
);
pub fn fmpz_poly_scalar_addmul_si(
poly1: *mut fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
x: slong,
);
pub fn fmpz_poly_scalar_addmul_ui(
poly1: *mut fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
x: ulong,
);
pub fn fmpz_poly_scalar_submul_fmpz(
poly1: *mut fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
x: *const fmpz,
);
pub fn fmpz_poly_scalar_fdiv_ui(
poly1: *mut fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
x: ulong,
);
pub fn fmpz_poly_scalar_fdiv_si(
poly1: *mut fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
x: slong,
);
pub fn fmpz_poly_scalar_fdiv_fmpz(
poly1: *mut fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
x: *const fmpz,
);
pub fn fmpz_poly_scalar_tdiv_ui(
poly1: *mut fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
x: ulong,
);
pub fn fmpz_poly_scalar_tdiv_si(
poly1: *mut fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
x: slong,
);
pub fn fmpz_poly_scalar_tdiv_fmpz(
poly1: *mut fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
x: *const fmpz,
);
pub fn fmpz_poly_scalar_divexact_ui(
poly1: *mut fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
x: ulong,
);
pub fn fmpz_poly_scalar_divexact_si(
poly1: *mut fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
x: slong,
);
pub fn fmpz_poly_scalar_divexact_fmpz(
poly1: *mut fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
x: *const fmpz,
);
pub fn fmpz_poly_scalar_fdiv_2exp(
poly1: *mut fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
exp: ulong,
);
pub fn fmpz_poly_scalar_tdiv_2exp(
poly1: *mut fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
exp: ulong,
);
pub fn fmpz_poly_scalar_mul_2exp(
poly1: *mut fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
exp: ulong,
);
pub fn fmpz_poly_scalar_mod_fmpz(
poly1: *mut fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
x: *const fmpz,
);
pub fn fmpz_poly_scalar_smod_fmpz(
poly1: *mut fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
x: *const fmpz,
);
pub fn _fmpz_poly_remove_content_2exp(pol: *mut fmpz, len: slong) -> slong;
pub fn _fmpz_poly_scale_2exp(pol: *mut fmpz, len: slong, k: slong);
pub fn _fmpz_poly_bit_pack(
arr: nn_ptr,
poly: *const fmpz,
len: slong,
bit_size: flint_bitcnt_t,
negate: ::std::os::raw::c_int,
);
pub fn fmpz_poly_bit_pack(
f: *mut fmpz,
poly: *const fmpz_poly_struct,
bit_size: flint_bitcnt_t,
);
pub fn _fmpz_poly_bit_unpack(
poly: *mut fmpz,
nlo: slong,
nhi: slong,
arr: nn_srcptr,
bit_size: flint_bitcnt_t,
negate: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn _fmpz_poly_bit_unpack_unsigned(
poly: *mut fmpz,
nlo: slong,
nhi: slong,
arr: nn_srcptr,
bit_size: flint_bitcnt_t,
);
pub fn fmpz_poly_bit_unpack(
poly: *mut fmpz_poly_struct,
f: *const fmpz,
bit_size: flint_bitcnt_t,
);
pub fn fmpz_poly_bit_unpack_unsigned(
poly: *mut fmpz_poly_struct,
f: *const fmpz,
bit_size: flint_bitcnt_t,
);
pub fn _fmpz_poly_mul_classical(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
);
pub fn fmpz_poly_mul_classical(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_mullow_classical(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
n: slong,
);
pub fn fmpz_poly_mullow_classical(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
n: slong,
);
pub fn _fmpz_poly_mulhigh_classical(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
start: slong,
);
pub fn fmpz_poly_mulhigh_classical(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
start: slong,
);
pub fn _fmpz_poly_mulmid_classical(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
nlo: slong,
nhi: slong,
);
pub fn fmpz_poly_mulmid_classical(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
nlo: slong,
nhi: slong,
);
pub fn _fmpz_poly_mulmid_SS(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
nlo: slong,
nhi: slong,
);
pub fn fmpz_poly_mulmid_SS(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
nlo: slong,
nhi: slong,
);
pub fn _fmpz_poly_mulmid_KS(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
nlo: slong,
nhi: slong,
);
pub fn fmpz_poly_mulmid_KS(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
nlo: slong,
nhi: slong,
);
pub fn _fmpz_poly_mulmid(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
nlo: slong,
nhi: slong,
);
pub fn fmpz_poly_mulmid(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
nlo: slong,
nhi: slong,
);
pub fn fmpz_poly_mul_karatsuba(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_mul_karatsuba(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
);
pub fn _fmpz_poly_mullow_karatsuba_n(
res: *mut fmpz,
poly1: *const fmpz,
poly2: *const fmpz,
n: slong,
);
pub fn _fmpz_poly_mullow_karatsuba(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
n: slong,
);
pub fn fmpz_poly_mullow_karatsuba_n(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
n: slong,
);
pub fn _fmpz_poly_mulhigh_karatsuba_n(
res: *mut fmpz,
poly1: *const fmpz,
poly2: *const fmpz,
len: slong,
);
pub fn fmpz_poly_mulhigh_karatsuba_n(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
length: slong,
);
pub fn _fmpz_poly_mul_KS(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
);
pub fn fmpz_poly_mul_KS(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_mullow_KS(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
n: slong,
);
pub fn fmpz_poly_mullow_KS(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
n: slong,
);
pub fn _fmpz_poly_mul_SS(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
);
pub fn fmpz_poly_mul_SS(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_mullow_SS(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
n: slong,
);
pub fn fmpz_poly_mullow_SS(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
n: slong,
);
pub fn _fmpz_poly_mul(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
);
pub fn fmpz_poly_mul(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_mullow(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
n: slong,
);
pub fn fmpz_poly_mullow(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
n: slong,
);
pub fn fmpz_poly_mulhigh_n(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
n: slong,
);
pub fn _fmpz_poly_mulhigh(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
start: slong,
);
pub fn fmpz_poly_mul_SS_precache_init(
pre: *mut fmpz_poly_mul_precache_struct,
len1: slong,
bits1: slong,
poly2: *const fmpz_poly_struct,
);
pub fn fmpz_poly_mul_precache_clear(pre: *mut fmpz_poly_mul_precache_struct);
pub fn _fmpz_poly_mullow_SS_precache(
output: *mut fmpz,
input1: *const fmpz,
len1: slong,
pre: *mut fmpz_poly_mul_precache_struct,
trunc: slong,
);
pub fn fmpz_poly_mullow_SS_precache(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
pre: *mut fmpz_poly_mul_precache_struct,
n: slong,
);
pub fn fmpz_poly_mul_SS_precache(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
pre: *mut fmpz_poly_mul_precache_struct,
);
pub fn _fmpz_poly_sqr_KS(rop: *mut fmpz, op: *const fmpz, len: slong);
pub fn fmpz_poly_sqr_KS(rop: *mut fmpz_poly_struct, op: *const fmpz_poly_struct);
pub fn fmpz_poly_sqr_karatsuba(
rop: *mut fmpz_poly_struct,
op: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_sqr_karatsuba(rop: *mut fmpz, op: *const fmpz, len: slong);
pub fn _fmpz_poly_sqr_classical(rop: *mut fmpz, op: *const fmpz, len: slong);
pub fn fmpz_poly_sqr_classical(
rop: *mut fmpz_poly_struct,
op: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_sqr(rop: *mut fmpz, op: *const fmpz, len: slong);
pub fn fmpz_poly_sqr(rop: *mut fmpz_poly_struct, op: *const fmpz_poly_struct);
pub fn _fmpz_poly_sqrlow_KS(res: *mut fmpz, poly: *const fmpz, len: slong, n: slong);
pub fn fmpz_poly_sqrlow_KS(
res: *mut fmpz_poly_struct,
poly: *const fmpz_poly_struct,
n: slong,
);
pub fn _fmpz_poly_sqrlow_karatsuba_n(res: *mut fmpz, poly: *const fmpz, n: slong);
pub fn _fmpz_poly_sqrlow_karatsuba(
res: *mut fmpz,
poly: *const fmpz,
len: slong,
n: slong,
);
pub fn fmpz_poly_sqrlow_karatsuba_n(
res: *mut fmpz_poly_struct,
poly: *const fmpz_poly_struct,
n: slong,
);
pub fn _fmpz_poly_sqrlow_classical(
res: *mut fmpz,
poly: *const fmpz,
len: slong,
n: slong,
);
pub fn fmpz_poly_sqrlow_classical(
res: *mut fmpz_poly_struct,
poly: *const fmpz_poly_struct,
n: slong,
);
pub fn _fmpz_poly_sqrlow(res: *mut fmpz, poly: *const fmpz, len: slong, n: slong);
pub fn fmpz_poly_sqrlow(
res: *mut fmpz_poly_struct,
poly: *const fmpz_poly_struct,
n: slong,
);
pub fn _fmpz_poly_pow_multinomial(
res: *mut fmpz,
poly: *const fmpz,
len: slong,
e: ulong,
);
pub fn fmpz_poly_pow_multinomial(
res: *mut fmpz_poly_struct,
poly: *const fmpz_poly_struct,
e: ulong,
);
pub fn _fmpz_poly_pow_binomial(res: *mut fmpz, poly: *const fmpz, e: ulong);
pub fn fmpz_poly_pow_binomial(
res: *mut fmpz_poly_struct,
poly: *const fmpz_poly_struct,
e: ulong,
);
pub fn _fmpz_poly_pow_binexp(
res: *mut fmpz,
poly: *const fmpz,
len: slong,
e: ulong,
);
pub fn fmpz_poly_pow_binexp(
res: *mut fmpz_poly_struct,
poly: *const fmpz_poly_struct,
e: ulong,
);
pub fn _fmpz_poly_pow_addchains(
res: *mut fmpz,
poly: *const fmpz,
len: slong,
a: *const ::std::os::raw::c_int,
n: ::std::os::raw::c_int,
);
pub fn fmpz_poly_pow_addchains(
res: *mut fmpz_poly_struct,
poly: *const fmpz_poly_struct,
e: ulong,
);
pub fn _fmpz_poly_pow_small(res: *mut fmpz, poly: *const fmpz, len: slong, e: ulong);
pub fn _fmpz_poly_pow(res: *mut fmpz, poly: *const fmpz, len: slong, e: ulong);
pub fn fmpz_poly_pow(
res: *mut fmpz_poly_struct,
poly: *const fmpz_poly_struct,
e: ulong,
);
pub fn _fmpz_poly_pow_trunc(res: *mut fmpz, poly: *const fmpz, e: ulong, n: slong);
pub fn fmpz_poly_pow_trunc(
res: *mut fmpz_poly_struct,
poly: *const fmpz_poly_struct,
e: ulong,
n: slong,
);
pub fn _fmpz_poly_shift_left(
res: *mut fmpz,
poly: *const fmpz,
len: slong,
n: slong,
);
pub fn _fmpz_poly_shift_right(
res: *mut fmpz,
poly: *const fmpz,
len: slong,
n: slong,
);
pub fn fmpz_poly_shift_left(
res: *mut fmpz_poly_struct,
poly: *const fmpz_poly_struct,
n: slong,
);
pub fn fmpz_poly_shift_right(
res: *mut fmpz_poly_struct,
poly: *const fmpz_poly_struct,
n: slong,
);
pub fn _fmpz_poly_2norm(res: *mut fmpz, poly: *const fmpz, len: slong);
pub fn fmpz_poly_2norm(res: *mut fmpz, poly: *const fmpz_poly_struct);
pub fn _fmpz_poly_2norm_normalised_bits(
poly: *const fmpz,
len: slong,
) -> flint_bitcnt_t;
pub fn fmpz_poly_max_limbs(poly: *const fmpz_poly_struct) -> ulong;
pub fn fmpz_poly_max_bits(poly: *const fmpz_poly_struct) -> slong;
pub fn fmpz_poly_height(res: *mut fmpz, poly: *const fmpz_poly_struct);
pub fn _fmpz_poly_hamming_weight(a: *const fmpz, len: slong) -> slong;
pub fn _fmpz_poly_gcd_subresultant(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
);
pub fn fmpz_poly_gcd_subresultant(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_gcd_heuristic(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_gcd_heuristic(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpz_poly_gcd_modular(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
);
pub fn fmpz_poly_gcd_modular(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_gcd(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
);
pub fn fmpz_poly_gcd(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_lcm(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
);
pub fn fmpz_poly_lcm(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_resultant_euclidean(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
);
pub fn fmpz_poly_resultant_euclidean(
res: *mut fmpz,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_resultant_modular(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
);
pub fn fmpz_poly_resultant_modular(
res: *mut fmpz,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_resultant(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
);
pub fn fmpz_poly_resultant(
res: *mut fmpz,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_resultant_modular_div(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
divisor: *const fmpz,
nbits: slong,
);
pub fn fmpz_poly_resultant_modular_div(
res: *mut fmpz,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
divisor: *const fmpz,
nbits: slong,
);
pub fn _fmpz_poly_xgcd_modular(
r: *mut fmpz,
s: *mut fmpz,
t: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
);
pub fn fmpz_poly_xgcd_modular(
r: *mut fmpz,
s: *mut fmpz_poly_struct,
t: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_xgcd(
r: *mut fmpz,
s: *mut fmpz,
t: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
);
pub fn fmpz_poly_xgcd(
r: *mut fmpz,
s: *mut fmpz_poly_struct,
t: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
);
pub fn fmpz_poly_squarefree_part(
res: *mut fmpz_poly_struct,
poly: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_discriminant(res: *mut fmpz, poly: *const fmpz, len: slong);
pub fn fmpz_poly_discriminant(res: *mut fmpz, poly: *const fmpz_poly_struct);
pub fn _fmpz_poly_content(res: *mut fmpz, poly: *const fmpz, len: slong);
pub fn fmpz_poly_content(res: *mut fmpz, poly: *const fmpz_poly_struct);
pub fn _fmpz_poly_primitive_part(res: *mut fmpz, poly: *const fmpz, len: slong);
pub fn fmpz_poly_primitive_part(
res: *mut fmpz_poly_struct,
poly: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_is_squarefree(
poly: *const fmpz,
len: slong,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_is_squarefree(
poly: *const fmpz_poly_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpz_poly_divrem_basecase(
Q: *mut fmpz,
R: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
exact: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_divrem_basecase(
Q: *mut fmpz_poly_struct,
R: *mut fmpz_poly_struct,
A: *const fmpz_poly_struct,
B: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_divrem_divconquer_recursive(
Q: *mut fmpz,
BQ: *mut fmpz,
W: *mut fmpz,
A: *const fmpz,
B: *const fmpz,
lenB: slong,
exact: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn _fmpz_poly_divrem_divconquer(
Q: *mut fmpz,
R: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
exact: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_divrem_divconquer(
Q: *mut fmpz_poly_struct,
R: *mut fmpz_poly_struct,
A: *const fmpz_poly_struct,
B: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_divrem(
Q: *mut fmpz,
R: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
exact: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_divrem(
Q: *mut fmpz_poly_struct,
R: *mut fmpz_poly_struct,
A: *const fmpz_poly_struct,
B: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_div_basecase(
Q: *mut fmpz,
R: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
exact: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_div_basecase(
Q: *mut fmpz_poly_struct,
A: *const fmpz_poly_struct,
B: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_divremlow_divconquer_recursive(
Q: *mut fmpz,
QB: *mut fmpz,
A: *const fmpz,
B: *const fmpz,
lenB: slong,
exact: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn _fmpz_poly_div_divconquer_recursive(
Q: *mut fmpz,
temp: *mut fmpz,
A: *const fmpz,
B: *const fmpz,
lenB: slong,
exact: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn _fmpz_poly_div_divconquer(
Q: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
exact: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_div_divconquer(
Q: *mut fmpz_poly_struct,
A: *const fmpz_poly_struct,
B: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_div(
Q: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
exact: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_div(
Q: *mut fmpz_poly_struct,
A: *const fmpz_poly_struct,
B: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_preinvert(B_inv: *mut fmpz, B: *const fmpz, n: slong);
pub fn fmpz_poly_preinvert(B_inv: *mut fmpz_poly_struct, B: *const fmpz_poly_struct);
pub fn _fmpz_poly_div_preinv(
Q: *mut fmpz,
A: *const fmpz,
len1: slong,
B: *const fmpz,
B_inv: *const fmpz,
len2: slong,
);
pub fn fmpz_poly_div_preinv(
Q: *mut fmpz_poly_struct,
A: *const fmpz_poly_struct,
B: *const fmpz_poly_struct,
B_inv: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_divrem_preinv(
Q: *mut fmpz,
A: *mut fmpz,
len1: slong,
B: *const fmpz,
B_inv: *const fmpz,
len2: slong,
);
pub fn fmpz_poly_divrem_preinv(
Q: *mut fmpz_poly_struct,
R: *mut fmpz_poly_struct,
A: *const fmpz_poly_struct,
B: *const fmpz_poly_struct,
B_inv: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_divexact(
Q: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
);
pub fn fmpz_poly_divexact(
Q: *mut fmpz_poly_struct,
A: *const fmpz_poly_struct,
B: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_powers_precompute(B: *const fmpz, len: slong) -> *mut *mut fmpz;
pub fn fmpz_poly_powers_precompute(
pinv: *mut fmpz_poly_powers_precomp_struct,
poly: *mut fmpz_poly_struct,
);
pub fn _fmpz_poly_powers_clear(powers: *mut *mut fmpz, len: slong);
pub fn fmpz_poly_powers_clear(pinv: *mut fmpz_poly_powers_precomp_struct);
pub fn _fmpz_poly_rem_powers_precomp(
A: *mut fmpz,
m: slong,
B: *const fmpz,
n: slong,
powers: *mut *mut fmpz,
);
pub fn fmpz_poly_rem_powers_precomp(
R: *mut fmpz_poly_struct,
A: *const fmpz_poly_struct,
B: *const fmpz_poly_struct,
B_inv: *const fmpz_poly_powers_precomp_struct,
);
pub fn _fmpz_poly_rem_basecase(
Q: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
);
pub fn fmpz_poly_rem_basecase(
R: *mut fmpz_poly_struct,
A: *const fmpz_poly_struct,
B: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_rem(
R: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
);
pub fn fmpz_poly_rem(
R: *mut fmpz_poly_struct,
A: *const fmpz_poly_struct,
B: *const fmpz_poly_struct,
);
pub fn fmpz_poly_div_root_fmpz(
Q: *mut fmpz_poly_struct,
A: *const fmpz_poly_struct,
c: *const fmpz,
);
pub fn _fmpz_poly_div_root_fmpz(
Q: *mut fmpz,
A: *const fmpz,
len: slong,
c: *const fmpz,
);
pub fn fmpz_poly_divexact_root_fmpq(
Q: *mut fmpz_poly_struct,
A: *const fmpz_poly_struct,
c: *const fmpq,
);
pub fn _fmpz_poly_divexact_root_fmpq(
Q: *mut fmpz,
A: *const fmpz,
len: slong,
x: *const fmpq,
);
pub fn _fmpz_poly_inv_series_basecase(
Qinv: *mut fmpz,
Q: *const fmpz,
Qlen: slong,
n: slong,
);
pub fn fmpz_poly_inv_series_basecase(
Qinv: *mut fmpz_poly_struct,
Q: *const fmpz_poly_struct,
n: slong,
);
pub fn _fmpz_poly_inv_series_newton(
Qinv: *mut fmpz,
Q: *const fmpz,
Qlen: slong,
n: slong,
);
pub fn fmpz_poly_inv_series_newton(
Qinv: *mut fmpz_poly_struct,
Q: *const fmpz_poly_struct,
n: slong,
);
pub fn _fmpz_poly_inv_series(Qinv: *mut fmpz, Q: *const fmpz, Qlen: slong, n: slong);
pub fn fmpz_poly_inv_series(
Qinv: *mut fmpz_poly_struct,
Q: *const fmpz_poly_struct,
n: slong,
);
pub fn _fmpz_poly_div_series_basecase(
Q: *mut fmpz,
A: *const fmpz,
Alen: slong,
B: *const fmpz,
Blen: slong,
n: slong,
);
pub fn _fmpz_poly_div_series_divconquer(
Q: *mut fmpz,
A: *const fmpz,
Alen: slong,
B: *const fmpz,
Blen: slong,
n: slong,
);
pub fn _fmpz_poly_div_series(
Q: *mut fmpz,
A: *const fmpz,
Alen: slong,
B: *const fmpz,
Blen: slong,
n: slong,
);
pub fn fmpz_poly_div_series_basecase(
Q: *mut fmpz_poly_struct,
A: *const fmpz_poly_struct,
B: *const fmpz_poly_struct,
n: slong,
);
pub fn fmpz_poly_div_series_divconquer(
Q: *mut fmpz_poly_struct,
A: *const fmpz_poly_struct,
B: *const fmpz_poly_struct,
n: slong,
);
pub fn fmpz_poly_div_series(
Q: *mut fmpz_poly_struct,
A: *const fmpz_poly_struct,
B: *const fmpz_poly_struct,
n: slong,
);
pub fn _fmpz_poly_divides(
q: *mut fmpz,
a: *const fmpz,
len1: slong,
b: *const fmpz,
len2: slong,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_divides(
q: *mut fmpz_poly_struct,
a: *const fmpz_poly_struct,
b: *const fmpz_poly_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_remove(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
) -> slong;
pub fn fmpz_poly_pseudo_divrem_basecase(
Q: *mut fmpz_poly_struct,
R: *mut fmpz_poly_struct,
d: *mut ulong,
A: *const fmpz_poly_struct,
B: *const fmpz_poly_struct,
);
pub fn fmpz_poly_pseudo_divrem_divconquer(
Q: *mut fmpz_poly_struct,
R: *mut fmpz_poly_struct,
d: *mut ulong,
A: *const fmpz_poly_struct,
B: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_pseudo_divrem_cohen(
Q: *mut fmpz,
R: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
);
pub fn fmpz_poly_pseudo_divrem_cohen(
Q: *mut fmpz_poly_struct,
R: *mut fmpz_poly_struct,
A: *const fmpz_poly_struct,
B: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_pseudo_rem_cohen(
R: *mut fmpz,
A: *const fmpz,
lenA: slong,
B: *const fmpz,
lenB: slong,
);
pub fn fmpz_poly_pseudo_rem_cohen(
R: *mut fmpz_poly_struct,
A: *const fmpz_poly_struct,
B: *const fmpz_poly_struct,
);
pub fn fmpz_poly_pseudo_divrem(
Q: *mut fmpz_poly_struct,
R: *mut fmpz_poly_struct,
d: *mut ulong,
A: *const fmpz_poly_struct,
B: *const fmpz_poly_struct,
);
pub fn fmpz_poly_pseudo_div(
Q: *mut fmpz_poly_struct,
d: *mut ulong,
A: *const fmpz_poly_struct,
B: *const fmpz_poly_struct,
);
pub fn fmpz_poly_pseudo_rem(
R: *mut fmpz_poly_struct,
d: *mut ulong,
A: *const fmpz_poly_struct,
B: *const fmpz_poly_struct,
);
pub fn fmpz_poly_divlow_smodp(
res: *mut fmpz,
f: *const fmpz_poly_struct,
g: *const fmpz_poly_struct,
p: *const fmpz,
n: slong,
);
pub fn fmpz_poly_divhigh_smodp(
res: *mut fmpz,
f: *const fmpz_poly_struct,
g: *const fmpz_poly_struct,
p: *const fmpz,
n: slong,
);
pub fn _fmpz_poly_derivative(rpoly: *mut fmpz, poly: *const fmpz, len: slong);
pub fn fmpz_poly_derivative(
res: *mut fmpz_poly_struct,
poly: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_nth_derivative(
rpoly: *mut fmpz,
poly: *const fmpz,
n: ulong,
len: slong,
);
pub fn fmpz_poly_nth_derivative(
res: *mut fmpz_poly_struct,
poly: *const fmpz_poly_struct,
n: ulong,
);
pub fn _fmpz_poly_evaluate_divconquer_fmpz(
res: *mut fmpz,
poly: *const fmpz,
len: slong,
a: *const fmpz,
);
pub fn fmpz_poly_evaluate_divconquer_fmpz(
res: *mut fmpz,
poly: *const fmpz_poly_struct,
a: *const fmpz,
);
pub fn _fmpz_poly_evaluate_horner_fmpz(
res: *mut fmpz,
f: *const fmpz,
len: slong,
a: *const fmpz,
);
pub fn fmpz_poly_evaluate_horner_fmpz(
res: *mut fmpz,
f: *const fmpz_poly_struct,
a: *const fmpz,
);
pub fn _fmpz_poly_evaluate_fmpz(
res: *mut fmpz,
f: *const fmpz,
len: slong,
a: *const fmpz,
);
pub fn fmpz_poly_evaluate_fmpz(
res: *mut fmpz,
f: *const fmpz_poly_struct,
a: *const fmpz,
);
pub fn _fmpz_poly_evaluate_horner_fmpq(
rnum: *mut fmpz,
rden: *mut fmpz,
f: *const fmpz,
len: slong,
anum: *const fmpz,
aden: *const fmpz,
);
pub fn fmpz_poly_evaluate_horner_fmpq(
res: *mut fmpq,
f: *const fmpz_poly_struct,
a: *const fmpq,
);
pub fn _fmpz_poly_evaluate_divconquer_fmpq(
rnum: *mut fmpz,
rden: *mut fmpz,
f: *const fmpz,
len: slong,
anum: *const fmpz,
aden: *const fmpz,
);
pub fn fmpz_poly_evaluate_divconquer_fmpq(
res: *mut fmpq,
f: *const fmpz_poly_struct,
a: *const fmpq,
);
pub fn _fmpz_poly_evaluate_fmpq(
rnum: *mut fmpz,
rden: *mut fmpz,
f: *const fmpz,
len: slong,
anum: *const fmpz,
aden: *const fmpz,
);
pub fn fmpz_poly_evaluate_fmpq(
res: *mut fmpq,
f: *const fmpz_poly_struct,
a: *const fmpq,
);
pub fn _fmpz_poly_evaluate_mod(
poly: *const fmpz,
len: slong,
a: ulong,
n: ulong,
ninv: ulong,
) -> ulong;
pub fn fmpz_poly_evaluate_mod(
poly: *const fmpz_poly_struct,
a: ulong,
n: ulong,
) -> ulong;
pub fn _fmpz_poly_evaluate_horner_d(poly: *const fmpz, n: slong, d: f64) -> f64;
pub fn fmpz_poly_evaluate_horner_d(poly: *const fmpz_poly_struct, d: f64) -> f64;
pub fn _fmpz_poly_evaluate_horner_d_2exp(
exp: *mut slong,
poly: *const fmpz,
n: slong,
d: f64,
) -> f64;
pub fn fmpz_poly_evaluate_horner_d_2exp(
exp: *mut slong,
poly: *const fmpz_poly_struct,
d: f64,
) -> f64;
pub fn _fmpz_poly_evaluate_horner_d_2exp2(
exp: *mut slong,
poly: *const fmpz,
n: slong,
d: f64,
dexp: slong,
) -> f64;
pub fn fmpz_poly_evaluate_horner_d_2exp2(
exp: *mut slong,
poly: *const fmpz_poly_struct,
d: f64,
dexp: slong,
) -> f64;
pub fn _fmpz_poly_compose_horner(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
);
pub fn fmpz_poly_compose_horner(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_compose_divconquer(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
);
pub fn fmpz_poly_compose_divconquer(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_compose(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
);
pub fn fmpz_poly_compose(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_taylor_shift_horner(poly: *mut fmpz, c: *const fmpz, n: slong);
pub fn fmpz_poly_taylor_shift_horner(
g: *mut fmpz_poly_struct,
f: *const fmpz_poly_struct,
c: *const fmpz,
);
pub fn _fmpz_poly_taylor_shift_divconquer(poly: *mut fmpz, c: *const fmpz, n: slong);
pub fn fmpz_poly_taylor_shift_divconquer(
g: *mut fmpz_poly_struct,
f: *const fmpz_poly_struct,
c: *const fmpz,
);
pub fn _fmpz_poly_taylor_shift_multi_mod(poly: *mut fmpz, c: *const fmpz, n: slong);
pub fn fmpz_poly_taylor_shift_multi_mod(
g: *mut fmpz_poly_struct,
f: *const fmpz_poly_struct,
c: *const fmpz,
);
pub fn _fmpz_poly_taylor_shift(poly: *mut fmpz, c: *const fmpz, n: slong);
pub fn fmpz_poly_taylor_shift(
g: *mut fmpz_poly_struct,
f: *const fmpz_poly_struct,
c: *const fmpz,
);
pub fn _fmpz_poly_compose_series_brent_kung(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
n: slong,
);
pub fn fmpz_poly_compose_series_brent_kung(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
n: slong,
);
pub fn _fmpz_poly_compose_series_horner(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
n: slong,
);
pub fn fmpz_poly_compose_series_horner(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
n: slong,
);
pub fn _fmpz_poly_compose_series(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
poly2: *const fmpz,
len2: slong,
n: slong,
);
pub fn fmpz_poly_compose_series(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
poly2: *const fmpz_poly_struct,
n: slong,
);
pub fn _fmpz_poly_revert_series(
Qinv: *mut fmpz,
Q: *const fmpz,
Qlen: slong,
n: slong,
);
pub fn fmpz_poly_revert_series(
Qinv: *mut fmpz_poly_struct,
Q: *const fmpz_poly_struct,
n: slong,
);
pub fn _fmpz_poly_sqrtrem_classical(
res: *mut fmpz,
r: *mut fmpz,
poly: *const fmpz,
len: slong,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_sqrtrem_classical(
b: *mut fmpz_poly_struct,
r: *mut fmpz_poly_struct,
a: *const fmpz_poly_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpz_poly_sqrtrem_divconquer(
res: *mut fmpz,
r: *mut fmpz,
poly: *const fmpz,
len: slong,
temp: *mut fmpz,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_sqrtrem_divconquer(
b: *mut fmpz_poly_struct,
r: *mut fmpz_poly_struct,
a: *const fmpz_poly_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpz_poly_sqrt_classical(
res: *mut fmpz,
poly: *const fmpz,
len: slong,
exact: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_sqrt_classical(
b: *mut fmpz_poly_struct,
a: *const fmpz_poly_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpz_poly_sqrt_divconquer(
res: *mut fmpz,
poly: *const fmpz,
len: slong,
exact: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_sqrt_divconquer(
b: *mut fmpz_poly_struct,
a: *const fmpz_poly_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpz_poly_sqrt_KS(
rop: *mut fmpz,
op: *const fmpz,
len: slong,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_sqrt_KS(
b: *mut fmpz_poly_struct,
a: *const fmpz_poly_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpz_poly_sqrt(
res: *mut fmpz,
poly: *const fmpz,
len: slong,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_sqrt(
b: *mut fmpz_poly_struct,
a: *const fmpz_poly_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpz_poly_sqrt_series(
res: *mut fmpz,
poly: *const fmpz,
len: slong,
n: slong,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_sqrt_series(
b: *mut fmpz_poly_struct,
a: *const fmpz_poly_struct,
n: slong,
) -> ::std::os::raw::c_int;
pub fn _fmpz_poly_power_sums_naive(
res: *mut fmpz,
poly: *const fmpz,
len: slong,
n: slong,
);
pub fn fmpz_poly_power_sums_naive(
res: *mut fmpz_poly_struct,
poly: *const fmpz_poly_struct,
n: slong,
);
pub fn fmpz_poly_power_sums(
res: *mut fmpz_poly_struct,
poly: *const fmpz_poly_struct,
n: slong,
);
pub fn _fmpz_poly_power_sums_to_poly(res: *mut fmpz, poly: *const fmpz, len: slong);
pub fn fmpz_poly_power_sums_to_poly(
res: *mut fmpz_poly_struct,
Q: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_signature(
r1: *mut slong,
r2: *mut slong,
poly: *const fmpz,
len: slong,
);
pub fn fmpz_poly_signature(
r1: *mut slong,
r2: *mut slong,
poly: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_fprint(
file: *mut FILE,
poly: *const fmpz,
len: slong,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_fprint(
file: *mut FILE,
poly: *const fmpz_poly_struct,
) -> ::std::os::raw::c_int;
pub fn _fmpz_poly_fprint_pretty(
file: *mut FILE,
poly: *const fmpz,
len: slong,
x: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_fprint_pretty(
file: *mut FILE,
poly: *const fmpz_poly_struct,
x: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_fread(
file: *mut FILE,
poly: *mut fmpz_poly_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_fread_pretty(
file: *mut FILE,
poly: *mut fmpz_poly_struct,
x: *mut *mut ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn _fmpz_poly_print_pretty(
poly: *const fmpz,
len: slong,
x: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_print_pretty(
poly: *const fmpz_poly_struct,
x: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn _fmpz_poly_print(poly: *const fmpz, n: slong) -> ::std::os::raw::c_int;
pub fn fmpz_poly_print(poly: *const fmpz_poly_struct) -> ::std::os::raw::c_int;
pub fn fmpz_poly_read(poly: *mut fmpz_poly_struct) -> ::std::os::raw::c_int;
pub fn fmpz_poly_read_pretty(
poly: *mut fmpz_poly_struct,
x: *mut *mut ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_debug(poly: *const fmpz_poly_struct);
pub fn fmpz_poly_get_nmod_poly(
res: *mut nmod_poly_struct,
poly: *const fmpz_poly_struct,
);
pub fn fmpz_poly_set_nmod_poly(
res: *mut fmpz_poly_struct,
poly: *const nmod_poly_struct,
);
pub fn fmpz_poly_set_nmod_poly_unsigned(
res: *mut fmpz_poly_struct,
poly: *const nmod_poly_struct,
);
pub fn _fmpz_poly_CRT_ui_precomp(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
m1: *const fmpz,
poly2: nn_srcptr,
len2: slong,
m2: ulong,
m2inv: ulong,
m1m2: *mut fmpz,
c: ulong,
sign: ::std::os::raw::c_int,
);
pub fn _fmpz_poly_CRT_ui(
res: *mut fmpz,
poly1: *const fmpz,
len1: slong,
m1: *const fmpz,
poly2: nn_srcptr,
len2: slong,
m2: ulong,
m2inv: ulong,
sign: ::std::os::raw::c_int,
);
pub fn fmpz_poly_CRT_ui(
res: *mut fmpz_poly_struct,
poly1: *const fmpz_poly_struct,
m1: *const fmpz,
poly2: *const nmod_poly_struct,
sign: ::std::os::raw::c_int,
);
pub fn _fmpz_poly_product_roots_fmpz_vec(poly: *mut fmpz, xs: *const fmpz, n: slong);
pub fn fmpz_poly_product_roots_fmpz_vec(
poly: *mut fmpz_poly_struct,
xs: *const fmpz,
n: slong,
);
pub fn _fmpz_poly_product_roots_fmpq_vec(poly: *mut fmpz, xs: *const fmpq, n: slong);
pub fn fmpz_poly_product_roots_fmpq_vec(
poly: *mut fmpz_poly_struct,
xs: *const fmpq,
n: slong,
);
pub fn _fmpz_poly_tree_alloc(len: slong) -> *mut *mut fmpz;
pub fn _fmpz_poly_tree_free(tree: *mut *mut fmpz, len: slong);
pub fn _fmpz_poly_tree_build_fmpq_vec(
tree: *mut *mut fmpz,
roots: *const fmpq,
len: slong,
);
pub fn _fmpz_poly_monomial_to_newton(poly: *mut fmpz, roots: *const fmpz, n: slong);
pub fn _fmpz_poly_newton_to_monomial(poly: *mut fmpz, roots: *const fmpz, n: slong);
pub fn fmpz_poly_evaluate_fmpz_vec(
res: *mut fmpz,
f: *const fmpz_poly_struct,
a: *const fmpz,
n: slong,
);
pub fn fmpz_poly_interpolate_fmpz_vec(
poly: *mut fmpz_poly_struct,
xs: *const fmpz,
ys: *const fmpz,
n: slong,
);
pub fn _fmpz_poly_interpolate_newton(
poly: *mut fmpz,
xs: *const fmpz,
ys: *const fmpz,
n: slong,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_interpolate_newton(
poly: *mut fmpz_poly_struct,
xs: *const fmpz,
ys: *const fmpz,
n: slong,
) -> ::std::os::raw::c_int;
pub fn _fmpz_poly_interpolate_multi_mod(
poly: *mut fmpz,
xs: *const fmpz,
ys: *const fmpz,
n: slong,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_interpolate_multi_mod(
poly: *mut fmpz_poly_struct,
xs: *const fmpz,
ys: *const fmpz,
n: slong,
) -> ::std::os::raw::c_int;
pub fn _fmpz_poly_interpolate(
poly: *mut fmpz,
xs: *const fmpz,
ys: *const fmpz,
n: slong,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_interpolate(
poly: *mut fmpz_poly_struct,
xs: *const fmpz,
ys: *const fmpz,
n: slong,
) -> ::std::os::raw::c_int;
pub fn _fmpz_poly_interpolate_exact_newton(
poly: *mut fmpz,
xs: *const fmpz,
ys: *const fmpz,
n: slong,
);
pub fn fmpz_poly_interpolate_exact_newton(
poly: *mut fmpz_poly_struct,
xs: *const fmpz,
ys: *const fmpz,
n: slong,
);
pub fn _fmpz_poly_interpolate_exact(
poly: *mut fmpz,
xs: *const fmpz,
ys: *const fmpz,
n: slong,
);
pub fn fmpz_poly_interpolate_exact(
poly: *mut fmpz_poly_struct,
xs: *const fmpz,
ys: *const fmpz,
n: slong,
);
pub fn fmpz_poly_hensel_build_tree(
link: *mut slong,
v: *mut fmpz_poly_t,
w: *mut fmpz_poly_t,
fac: *const nmod_poly_factor_struct,
);
pub fn fmpz_poly_hensel_lift(
Gout: *mut fmpz_poly_struct,
Hout: *mut fmpz_poly_struct,
Aout: *mut fmpz_poly_struct,
Bout: *mut fmpz_poly_struct,
f: *const fmpz_poly_struct,
g: *const fmpz_poly_struct,
h: *const fmpz_poly_struct,
a: *const fmpz_poly_struct,
b: *const fmpz_poly_struct,
p: *const fmpz,
p1: *const fmpz,
);
pub fn _fmpz_poly_hensel_lift_without_inverse(
G: *mut fmpz,
H: *mut fmpz,
f: *const fmpz,
lenF: slong,
g: *const fmpz,
lenG: slong,
h: *const fmpz,
lenH: slong,
a: *const fmpz,
lenA: slong,
b: *const fmpz,
lenB: slong,
p: *const fmpz,
p1: *const fmpz,
);
pub fn fmpz_poly_hensel_lift_without_inverse(
Gout: *mut fmpz_poly_struct,
Hout: *mut fmpz_poly_struct,
f: *const fmpz_poly_struct,
g: *const fmpz_poly_struct,
h: *const fmpz_poly_struct,
a: *const fmpz_poly_struct,
b: *const fmpz_poly_struct,
p: *const fmpz,
p1: *const fmpz,
);
pub fn _fmpz_poly_hensel_lift_only_inverse(
A: *mut fmpz,
B: *mut fmpz,
G: *const fmpz,
lenG: slong,
H: *const fmpz,
lenH: slong,
a: *const fmpz,
lenA: slong,
b: *const fmpz,
lenB: slong,
p: *const fmpz,
p1: *const fmpz,
);
pub fn fmpz_poly_hensel_lift_only_inverse(
Aout: *mut fmpz_poly_struct,
Bout: *mut fmpz_poly_struct,
G: *const fmpz_poly_struct,
H: *const fmpz_poly_struct,
a: *const fmpz_poly_struct,
b: *const fmpz_poly_struct,
p: *const fmpz,
p1: *const fmpz,
);
pub fn fmpz_poly_hensel_lift_tree_recursive(
link: *mut slong,
v: *mut fmpz_poly_t,
w: *mut fmpz_poly_t,
f: *mut fmpz_poly_struct,
j: slong,
inv: slong,
p0: *const fmpz,
p1: *const fmpz,
);
pub fn fmpz_poly_hensel_lift_tree(
link: *mut slong,
v: *mut fmpz_poly_t,
w: *mut fmpz_poly_t,
f: *mut fmpz_poly_struct,
r: slong,
p: *const fmpz,
e0: slong,
e1: slong,
inv: slong,
);
pub fn _fmpz_poly_hensel_start_lift(
lifted_fac: *mut fmpz_poly_factor_struct,
link: *mut slong,
v: *mut fmpz_poly_t,
w: *mut fmpz_poly_t,
f: *const fmpz_poly_struct,
local_fac: *const nmod_poly_factor_struct,
target_exp: slong,
) -> slong;
pub fn _fmpz_poly_hensel_continue_lift(
lifted_fac: *mut fmpz_poly_factor_struct,
link: *mut slong,
v: *mut fmpz_poly_t,
w: *mut fmpz_poly_t,
f: *const fmpz_poly_struct,
prev: slong,
curr: slong,
N: slong,
p: *const fmpz,
) -> slong;
pub fn fmpz_poly_hensel_lift_once(
lifted_fac: *mut fmpz_poly_factor_struct,
f: *const fmpz_poly_struct,
local_fac: *const nmod_poly_factor_struct,
N: slong,
);
pub fn _fmpz_poly_bound_roots(bound: *mut fmpz, poly: *const fmpz, len: slong);
pub fn fmpz_poly_bound_roots(bound: *mut fmpz, poly: *const fmpz_poly_struct);
pub fn _fmpz_poly_num_real_roots_sturm(
n_neg: *mut slong,
n_pos: *mut slong,
pol: *const fmpz,
len: slong,
);
pub fn fmpz_poly_num_real_roots_sturm(poly: *const fmpz_poly_struct) -> slong;
pub fn _fmpz_poly_num_real_roots_vca(pol: *const fmpz, len: slong) -> slong;
pub fn fmpz_poly_num_real_roots_vca(pol: *const fmpz_poly_struct) -> slong;
pub fn _fmpz_poly_num_real_roots(pol: *const fmpz, len: slong) -> slong;
pub fn fmpz_poly_num_real_roots(poly: *const fmpz_poly_struct) -> slong;
pub fn fmpz_poly_num_real_roots_upper_bound(pol: *const fmpz_poly_struct) -> slong;
pub fn _fmpz_poly_descartes_bound_0_1(
p: *const fmpz,
len: slong,
bound: slong,
) -> slong;
pub fn _fmpz_poly_has_real_root(p: *const fmpz, len: slong) -> ::std::os::raw::c_int;
pub fn fmpz_poly_has_real_root(
pol: *const fmpz_poly_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_num_real_roots_0_1_sturm(pol: *const fmpz_poly_struct) -> slong;
pub fn fmpz_poly_num_real_roots_0_1_vca(pol: *const fmpz_poly_struct) -> slong;
pub fn fmpz_poly_num_real_roots_0_1(pol: *const fmpz_poly_struct) -> slong;
pub fn _fmpz_poly_positive_root_upper_bound_2exp_local_max(
pol: *const fmpz,
len: slong,
) -> slong;
pub fn _fmpz_poly_positive_root_upper_bound_2exp(
pol: *const fmpz,
len: slong,
) -> slong;
pub fn fmpz_poly_positive_root_upper_bound_2exp(
pol: *const fmpz_poly_struct,
) -> slong;
pub fn _fmpz_poly_isolate_real_roots_0_1_vca(
exact_roots: *mut fmpq,
n_exact: *mut slong,
c_array: *mut fmpz,
k_array: *mut slong,
n_intervals: *mut slong,
pol: *const fmpz,
len: slong,
);
pub fn fmpz_poly_isolate_real_roots(
exact_roots: *mut fmpq,
n_exact: *mut slong,
c_array: *mut fmpz,
k_array: *mut slong,
n_interval: *mut slong,
pol: *const fmpz_poly_struct,
);
pub fn fmpz_poly_isolate_positive_roots(
exact_roots: *mut fmpq,
n_exact: *mut slong,
c_array: *mut fmpz,
k_array: *mut slong,
n_interval: *mut slong,
pol: *const fmpz_poly_struct,
);
pub fn fmpz_poly_CLD_bound(res: *mut fmpz, f: *const fmpz_poly_struct, n: slong);
pub fn _fmpz_poly_cyclotomic(
a: *mut fmpz,
n: ulong,
factors: nn_ptr,
num_factors: slong,
phi: ulong,
);
pub fn fmpz_poly_cyclotomic(poly: *mut fmpz_poly_struct, n: ulong);
pub fn _fmpz_poly_is_cyclotomic(poly: *const fmpz, len: slong) -> ulong;
pub fn fmpz_poly_is_cyclotomic(poly: *const fmpz_poly_struct) -> ulong;
pub fn _fmpz_poly_cos_minpoly(f: *mut fmpz, n: ulong);
pub fn fmpz_poly_cos_minpoly(f: *mut fmpz_poly_struct, n: ulong);
pub fn _fmpz_poly_swinnerton_dyer(T: *mut fmpz, n: ulong);
pub fn fmpz_poly_swinnerton_dyer(poly: *mut fmpz_poly_struct, n: ulong);
pub fn _fmpz_poly_chebyshev_t(coeffs: *mut fmpz, n: ulong);
pub fn fmpz_poly_chebyshev_t(poly: *mut fmpz_poly_struct, n: ulong);
pub fn _fmpz_poly_chebyshev_u(coeffs: *mut fmpz, n: ulong);
pub fn fmpz_poly_chebyshev_u(poly: *mut fmpz_poly_struct, n: ulong);
pub fn _fmpz_poly_legendre_pt(coeffs: *mut fmpz, n: ulong);
pub fn fmpz_poly_legendre_pt(poly: *mut fmpz_poly_struct, n: ulong);
pub fn _fmpz_poly_hermite_h(coeffs: *mut fmpz, n: ulong);
pub fn fmpz_poly_hermite_h(poly: *mut fmpz_poly_struct, n: ulong);
pub fn _fmpz_poly_hermite_he(coeffs: *mut fmpz, n: ulong);
pub fn fmpz_poly_hermite_he(poly: *mut fmpz_poly_struct, n: ulong);
pub fn _fmpz_poly_fibonacci(coeffs: *mut fmpz, n: ulong);
pub fn fmpz_poly_fibonacci(poly: *mut fmpz_poly_struct, n: ulong);
pub fn _fmpz_poly_eta_qexp(f: *mut fmpz, e: slong, n: slong);
pub fn fmpz_poly_eta_qexp(f: *mut fmpz_poly_struct, e: slong, n: slong);
pub fn _fmpz_poly_theta_qexp(f: *mut fmpz, e: slong, n: slong);
pub fn fmpz_poly_theta_qexp(f: *mut fmpz_poly_struct, e: slong, n: slong);
pub fn fmpz_poly_eulerian_polynomial(poly: *mut fmpz_poly_struct, n: ulong);
}
/* fmpz_poly_factor.h */
#[repr(C)]
pub struct zassenhaus_prune_struct {
pub deg: slong,
pub pos_degs: *mut ::std::os::raw::c_uchar,
pub new_length: slong,
pub new_total: slong,
pub new_degs: *mut slong,
pub alloc: slong,
}
impl Default for zassenhaus_prune_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 zassenhaus_prune_t = [zassenhaus_prune_struct; 1usize];
unsafe extern "C" {
pub fn fmpz_poly_factor_init(fac: *mut fmpz_poly_factor_struct);
pub fn fmpz_poly_factor_init2(fac: *mut fmpz_poly_factor_struct, alloc: slong);
pub fn fmpz_poly_factor_realloc(fac: *mut fmpz_poly_factor_struct, alloc: slong);
pub fn fmpz_poly_factor_fit_length(fac: *mut fmpz_poly_factor_struct, len: slong);
pub fn fmpz_poly_factor_clear(fac: *mut fmpz_poly_factor_struct);
pub fn fmpz_poly_factor_set(
res: *mut fmpz_poly_factor_struct,
fac: *const fmpz_poly_factor_struct,
);
pub fn fmpz_poly_factor_insert(
fac: *mut fmpz_poly_factor_struct,
p: *const fmpz_poly_struct,
exp: slong,
);
pub fn fmpz_poly_factor_concat(
res: *mut fmpz_poly_factor_struct,
fac: *const fmpz_poly_factor_struct,
);
pub fn fmpz_poly_factor_print(fac: *const fmpz_poly_factor_struct);
pub fn fmpz_poly_factor_zassenhaus_recombination(
final_fac: *mut fmpz_poly_factor_struct,
lifted_fac: *const fmpz_poly_factor_struct,
F: *const fmpz_poly_struct,
P: *const fmpz,
exp: slong,
);
pub fn fmpz_poly_factor_squarefree(
fac: *mut fmpz_poly_factor_struct,
F: *const fmpz_poly_struct,
);
pub fn fmpz_poly_factor_mignotte(B: *mut fmpz, f: *const fmpz_poly_struct);
pub fn _fmpz_poly_factor_zassenhaus(
final_fac: *mut fmpz_poly_factor_struct,
exp: slong,
f: *const fmpz_poly_struct,
cutoff: slong,
use_van_hoeij: ::std::os::raw::c_int,
);
pub fn fmpz_poly_factor_zassenhaus(
fac: *mut fmpz_poly_factor_struct,
G: *const fmpz_poly_struct,
);
pub fn _fmpz_poly_factor_quadratic(
fac: *mut fmpz_poly_factor_struct,
f: *const fmpz_poly_struct,
exp: slong,
);
pub fn _fmpz_poly_factor_cubic(
fac: *mut fmpz_poly_factor_struct,
f: *const fmpz_poly_struct,
exp: slong,
);
pub fn _fmpz_poly_factor_CLD_mat(
res: *mut fmpz_mat_struct,
f: *const fmpz_poly_struct,
lifted_fac: *mut fmpz_poly_factor_struct,
P: *mut fmpz,
k: ulong,
) -> slong;
pub fn fmpz_poly_factor_van_hoeij_check_if_solved(
M: *mut fmpz_mat_struct,
final_fac: *mut fmpz_poly_factor_struct,
lifted_fac: *mut fmpz_poly_factor_struct,
f: *const fmpz_poly_struct,
P: *mut fmpz,
exp: slong,
lc: *mut fmpz,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_factor_van_hoeij(
final_fac: *mut fmpz_poly_factor_struct,
fac: *const nmod_poly_factor_struct,
f: *const fmpz_poly_struct,
exp: slong,
p: ulong,
);
pub fn fmpz_poly_factor(
fac: *mut fmpz_poly_factor_struct,
G: *const fmpz_poly_struct,
);
pub fn fmpz_poly_factor_get_fmpz_poly(
z: *mut fmpz_poly_struct,
F: *const fmpz_poly_factor_struct,
i: slong,
);
pub fn fmpz_poly_factor_get_fmpz(z: *mut fmpz, F: *const fmpz_poly_factor_struct);
pub fn zassenhaus_subset_first(s: *mut slong, r: slong, m: slong);
pub fn zassenhaus_subset_next(s: *mut slong, r: slong) -> ::std::os::raw::c_int;
pub fn zassenhaus_subset_next_disjoint(s: *mut slong, r: slong) -> slong;
pub fn zassenhaus_prune_init(Z: *mut zassenhaus_prune_struct);
pub fn zassenhaus_prune_clear(Z: *mut zassenhaus_prune_struct);
pub fn zassenhaus_prune_set_degree(Z: *mut zassenhaus_prune_struct, d: slong);
pub fn zassenhaus_prune_start_add_factors(Z: *mut zassenhaus_prune_struct);
pub fn zassenhaus_prune_add_factor(
Z: *mut zassenhaus_prune_struct,
deg: slong,
exp: slong,
);
pub fn zassenhaus_prune_end_add_factors(Z: *mut zassenhaus_prune_struct);
pub fn zassenhaus_prune_must_be_irreducible(
Z: *const zassenhaus_prune_struct,
) -> ::std::os::raw::c_int;
pub fn zassenhaus_prune_degree_is_possible(
Z: *const zassenhaus_prune_struct,
d: slong,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_factor_zassenhaus_recombination_with_prune(
final_fac: *mut fmpz_poly_factor_struct,
lifted_fac: *const fmpz_poly_factor_struct,
F: *const fmpz_poly_struct,
P: *const fmpz,
exp: slong,
Z: *const zassenhaus_prune_struct,
);
}
/* fmpz_poly_mat.h */
unsafe extern "C" {
pub fn fmpz_poly_mat_entry(
mat: *const fmpz_poly_mat_struct,
i: slong,
j: slong,
) -> *mut fmpz_poly_struct;
pub fn fmpz_poly_mat_nrows(mat: *const fmpz_poly_mat_struct) -> slong;
pub fn fmpz_poly_mat_ncols(mat: *const fmpz_poly_mat_struct) -> slong;
pub fn fmpz_poly_mat_init(mat: *mut fmpz_poly_mat_struct, rows: slong, cols: slong);
pub fn fmpz_poly_mat_init_set(
mat: *mut fmpz_poly_mat_struct,
src: *const fmpz_poly_mat_struct,
);
pub fn fmpz_poly_mat_swap(
mat1: *mut fmpz_poly_mat_struct,
mat2: *mut fmpz_poly_mat_struct,
);
pub fn fmpz_poly_mat_swap_entrywise(
mat1: *mut fmpz_poly_mat_struct,
mat2: *mut fmpz_poly_mat_struct,
);
pub fn fmpz_poly_mat_set(
mat1: *mut fmpz_poly_mat_struct,
mat2: *const fmpz_poly_mat_struct,
);
pub fn fmpz_poly_mat_clear(mat: *mut fmpz_poly_mat_struct);
pub fn fmpz_poly_mat_equal(
mat1: *const fmpz_poly_mat_struct,
mat2: *const fmpz_poly_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_mat_is_zero(
mat: *const fmpz_poly_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_mat_is_one(
mat: *const fmpz_poly_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_mat_is_empty(
mat: *const fmpz_poly_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_mat_is_square(
mat: *const fmpz_poly_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_mat_zero(mat: *mut fmpz_poly_mat_struct);
pub fn fmpz_poly_mat_one(mat: *mut fmpz_poly_mat_struct);
pub fn fmpz_poly_mat_randtest(
mat: *mut fmpz_poly_mat_struct,
state: *mut flint_rand_struct,
len: slong,
bits: flint_bitcnt_t,
);
pub fn fmpz_poly_mat_randtest_unsigned(
mat: *mut fmpz_poly_mat_struct,
state: *mut flint_rand_struct,
len: slong,
bits: flint_bitcnt_t,
);
pub fn fmpz_poly_mat_randtest_sparse(
A: *mut fmpz_poly_mat_struct,
state: *mut flint_rand_struct,
len: slong,
bits: flint_bitcnt_t,
density: f32,
);
pub fn fmpz_poly_mat_window_init(
window: *mut fmpz_poly_mat_struct,
mat: *const fmpz_poly_mat_struct,
r1: slong,
c1: slong,
r2: slong,
c2: slong,
);
pub fn fmpz_poly_mat_window_clear(window: *mut fmpz_poly_mat_struct);
pub fn fmpz_poly_mat_concat_horizontal(
res: *mut fmpz_poly_mat_struct,
mat1: *const fmpz_poly_mat_struct,
mat2: *const fmpz_poly_mat_struct,
);
pub fn fmpz_poly_mat_concat_vertical(
res: *mut fmpz_poly_mat_struct,
mat1: *const fmpz_poly_mat_struct,
mat2: *const fmpz_poly_mat_struct,
);
pub fn fmpz_poly_mat_print(
mat: *const fmpz_poly_mat_struct,
x: *const ::std::os::raw::c_char,
);
pub fn fmpz_poly_mat_max_bits(A: *const fmpz_poly_mat_struct) -> slong;
pub fn fmpz_poly_mat_max_length(A: *const fmpz_poly_mat_struct) -> slong;
pub fn fmpz_poly_mat_transpose(
B: *mut fmpz_poly_mat_struct,
A: *const fmpz_poly_mat_struct,
);
pub fn fmpz_poly_mat_truncate(A: *mut fmpz_poly_mat_struct, len: slong);
pub fn fmpz_poly_mat_scalar_mul_fmpz_poly(
B: *mut fmpz_poly_mat_struct,
A: *const fmpz_poly_mat_struct,
c: *const fmpz_poly_struct,
);
pub fn fmpz_poly_mat_scalar_mul_fmpz(
B: *mut fmpz_poly_mat_struct,
A: *const fmpz_poly_mat_struct,
c: *const fmpz,
);
pub fn fmpz_poly_mat_add(
C: *mut fmpz_poly_mat_struct,
A: *const fmpz_poly_mat_struct,
B: *const fmpz_poly_mat_struct,
);
pub fn fmpz_poly_mat_sub(
C: *mut fmpz_poly_mat_struct,
A: *const fmpz_poly_mat_struct,
B: *const fmpz_poly_mat_struct,
);
pub fn fmpz_poly_mat_neg(
B: *mut fmpz_poly_mat_struct,
A: *const fmpz_poly_mat_struct,
);
pub fn fmpz_poly_mat_mul(
C: *mut fmpz_poly_mat_struct,
A: *const fmpz_poly_mat_struct,
B: *const fmpz_poly_mat_struct,
);
pub fn fmpz_poly_mat_mul_classical(
C: *mut fmpz_poly_mat_struct,
A: *const fmpz_poly_mat_struct,
B: *const fmpz_poly_mat_struct,
);
pub fn fmpz_poly_mat_mul_KS(
C: *mut fmpz_poly_mat_struct,
A: *const fmpz_poly_mat_struct,
B: *const fmpz_poly_mat_struct,
);
pub fn fmpz_poly_mat_mullow(
C: *mut fmpz_poly_mat_struct,
A: *const fmpz_poly_mat_struct,
B: *const fmpz_poly_mat_struct,
len: slong,
);
pub fn fmpz_poly_mat_sqr(
B: *mut fmpz_poly_mat_struct,
A: *const fmpz_poly_mat_struct,
);
pub fn fmpz_poly_mat_sqr_classical(
B: *mut fmpz_poly_mat_struct,
A: *const fmpz_poly_mat_struct,
);
pub fn fmpz_poly_mat_sqr_KS(
B: *mut fmpz_poly_mat_struct,
A: *const fmpz_poly_mat_struct,
);
pub fn fmpz_poly_mat_sqrlow(
B: *mut fmpz_poly_mat_struct,
A: *const fmpz_poly_mat_struct,
len: slong,
);
pub fn fmpz_poly_mat_pow(
B: *mut fmpz_poly_mat_struct,
A: *const fmpz_poly_mat_struct,
exp: ulong,
);
pub fn fmpz_poly_mat_pow_trunc(
B: *mut fmpz_poly_mat_struct,
A: *const fmpz_poly_mat_struct,
exp: ulong,
len: slong,
);
pub fn fmpz_poly_mat_prod(
res: *mut fmpz_poly_mat_struct,
factors: *mut fmpz_poly_mat_t,
n: slong,
);
pub fn fmpz_poly_mat_evaluate_fmpz(
B: *mut fmpz_mat_struct,
A: *const fmpz_poly_mat_struct,
x: *const fmpz,
);
pub fn fmpz_poly_mat_find_pivot_any(
mat: *const fmpz_poly_mat_struct,
start_row: slong,
end_row: slong,
c: slong,
) -> slong;
pub fn fmpz_poly_mat_find_pivot_partial(
mat: *const fmpz_poly_mat_struct,
start_row: slong,
end_row: slong,
c: slong,
) -> slong;
pub fn fmpz_poly_mat_fflu(
B: *mut fmpz_poly_mat_struct,
den: *mut fmpz_poly_struct,
perm: *mut slong,
A: *const fmpz_poly_mat_struct,
rank_check: ::std::os::raw::c_int,
) -> slong;
pub fn fmpz_poly_mat_rref(
B: *mut fmpz_poly_mat_struct,
den: *mut fmpz_poly_struct,
A: *const fmpz_poly_mat_struct,
) -> slong;
pub fn fmpz_poly_mat_trace(
trace: *mut fmpz_poly_struct,
mat: *const fmpz_poly_mat_struct,
);
pub fn fmpz_poly_mat_det(det: *mut fmpz_poly_struct, A: *const fmpz_poly_mat_struct);
pub fn fmpz_poly_mat_det_fflu(
det: *mut fmpz_poly_struct,
A: *const fmpz_poly_mat_struct,
);
pub fn fmpz_poly_mat_det_interpolate(
det: *mut fmpz_poly_struct,
A: *const fmpz_poly_mat_struct,
);
pub fn fmpz_poly_mat_rank(A: *const fmpz_poly_mat_struct) -> slong;
pub fn fmpz_poly_mat_inv(
Ainv: *mut fmpz_poly_mat_struct,
den: *mut fmpz_poly_struct,
A: *const fmpz_poly_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_mat_nullspace(
res: *mut fmpz_poly_mat_struct,
mat: *const fmpz_poly_mat_struct,
) -> slong;
pub fn fmpz_poly_mat_solve(
X: *mut fmpz_poly_mat_struct,
den: *mut fmpz_poly_struct,
A: *const fmpz_poly_mat_struct,
B: *const fmpz_poly_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_mat_solve_fflu(
X: *mut fmpz_poly_mat_struct,
den: *mut fmpz_poly_struct,
A: *const fmpz_poly_mat_struct,
B: *const fmpz_poly_mat_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_mat_solve_fflu_precomp(
X: *mut fmpz_poly_mat_struct,
perm: *const slong,
FFLU: *const fmpz_poly_mat_struct,
B: *const fmpz_poly_mat_struct,
);
}
/* fmpz_poly_q.h */
unsafe extern "C" {
pub fn fmpz_poly_q_canonicalise(rop: *mut fmpz_poly_q_struct);
pub fn fmpz_poly_q_is_canonical(
op: *const fmpz_poly_q_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_q_init(rop: *mut fmpz_poly_q_struct);
pub fn fmpz_poly_q_clear(rop: *mut fmpz_poly_q_struct);
pub fn fmpz_poly_q_randtest(
poly: *mut fmpz_poly_q_struct,
state: *mut flint_rand_struct,
len1: slong,
bits1: flint_bitcnt_t,
len2: slong,
bits2: flint_bitcnt_t,
);
pub fn fmpz_poly_q_randtest_not_zero(
poly: *mut fmpz_poly_q_struct,
state: *mut flint_rand_struct,
len1: slong,
bits1: flint_bitcnt_t,
len2: slong,
bits2: flint_bitcnt_t,
);
pub fn fmpz_poly_q_set(rop: *mut fmpz_poly_q_struct, op: *const fmpz_poly_q_struct);
pub fn fmpz_poly_q_set_si(rop: *mut fmpz_poly_q_struct, op: slong);
pub fn fmpz_poly_q_swap(op1: *mut fmpz_poly_q_struct, op2: *mut fmpz_poly_q_struct);
pub fn fmpz_poly_q_zero(rop: *mut fmpz_poly_q_struct);
pub fn fmpz_poly_q_one(rop: *mut fmpz_poly_q_struct);
pub fn fmpz_poly_q_neg(rop: *mut fmpz_poly_q_struct, op: *const fmpz_poly_q_struct);
pub fn fmpz_poly_q_inv(rop: *mut fmpz_poly_q_struct, op: *const fmpz_poly_q_struct);
pub fn fmpz_poly_q_is_zero(op: *const fmpz_poly_q_struct) -> ::std::os::raw::c_int;
pub fn fmpz_poly_q_is_one(op: *const fmpz_poly_q_struct) -> ::std::os::raw::c_int;
pub fn fmpz_poly_q_equal(
op1: *const fmpz_poly_q_struct,
op2: *const fmpz_poly_q_struct,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_q_add_in_place(
rop: *mut fmpz_poly_q_struct,
op: *const fmpz_poly_q_struct,
);
pub fn fmpz_poly_q_sub_in_place(
rop: *mut fmpz_poly_q_struct,
op: *const fmpz_poly_q_struct,
);
pub fn fmpz_poly_q_add(
rop: *mut fmpz_poly_q_struct,
op1: *const fmpz_poly_q_struct,
op2: *const fmpz_poly_q_struct,
);
pub fn fmpz_poly_q_sub(
rop: *mut fmpz_poly_q_struct,
op1: *const fmpz_poly_q_struct,
op2: *const fmpz_poly_q_struct,
);
pub fn fmpz_poly_q_addmul(
rop: *mut fmpz_poly_q_struct,
op1: *const fmpz_poly_q_struct,
op2: *const fmpz_poly_q_struct,
);
pub fn fmpz_poly_q_submul(
rop: *mut fmpz_poly_q_struct,
op1: *const fmpz_poly_q_struct,
op2: *const fmpz_poly_q_struct,
);
pub fn fmpz_poly_q_scalar_mul_si(
rop: *mut fmpz_poly_q_struct,
op: *const fmpz_poly_q_struct,
x: slong,
);
pub fn fmpz_poly_q_scalar_mul_fmpz(
rop: *mut fmpz_poly_q_struct,
op: *const fmpz_poly_q_struct,
x: *const fmpz,
);
pub fn fmpz_poly_q_scalar_mul_fmpq(
rop: *mut fmpz_poly_q_struct,
op: *const fmpz_poly_q_struct,
x: *const fmpq,
);
pub fn fmpz_poly_q_scalar_div_si(
rop: *mut fmpz_poly_q_struct,
op: *const fmpz_poly_q_struct,
x: slong,
);
pub fn fmpz_poly_q_scalar_div_fmpz(
rop: *mut fmpz_poly_q_struct,
op: *const fmpz_poly_q_struct,
x: *const fmpz,
);
pub fn fmpz_poly_q_scalar_div_fmpq(
rop: *mut fmpz_poly_q_struct,
op: *const fmpz_poly_q_struct,
x: *const fmpq,
);
pub fn fmpz_poly_q_mul(
rop: *mut fmpz_poly_q_struct,
op1: *const fmpz_poly_q_struct,
op2: *const fmpz_poly_q_struct,
);
pub fn fmpz_poly_q_div(
rop: *mut fmpz_poly_q_struct,
op1: *const fmpz_poly_q_struct,
op2: *const fmpz_poly_q_struct,
);
pub fn fmpz_poly_q_pow(
rop: *mut fmpz_poly_q_struct,
op: *const fmpz_poly_q_struct,
exp: ulong,
);
pub fn fmpz_poly_q_derivative(
rop: *mut fmpz_poly_q_struct,
op: *const fmpz_poly_q_struct,
);
pub fn fmpz_poly_q_evaluate_fmpq(
rop: *mut fmpq,
f: *const fmpz_poly_q_struct,
a: *const fmpq,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_q_set_str(
rop: *mut fmpz_poly_q_struct,
s: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn fmpz_poly_q_get_str(
op: *const fmpz_poly_q_struct,
) -> *mut ::std::os::raw::c_char;
pub fn fmpz_poly_q_get_str_pretty(
op: *const fmpz_poly_q_struct,
x: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
pub fn fmpz_poly_q_print(op: *const fmpz_poly_q_struct) -> ::std::os::raw::c_int;
pub fn fmpz_poly_q_print_pretty(
op: *const fmpz_poly_q_struct,
x: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
/* fmpz_types.h */
#[repr(C)]
pub struct zz_struct {
pub alloc: ::std::os::raw::c_int,
pub size: ::std::os::raw::c_int,
pub ptr: nn_ptr,
}
impl Default for zz_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 zz_ptr = *mut zz_struct;
pub type zz_srcptr = *const zz_struct;
#[repr(C)]
pub struct fmpz_factor_struct {
pub sign: ::std::os::raw::c_int,
pub p: *mut fmpz,
pub exp: *mut ulong,
pub alloc: slong,
pub num: slong,
}
impl Default for fmpz_factor_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_factor_t = [fmpz_factor_struct; 1usize];
#[repr(C)]
pub struct fmpz_preinvn_struct {
pub dinv: nn_ptr,
pub n: slong,
pub norm: flint_bitcnt_t,
}
impl Default for fmpz_preinvn_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_preinvn_t = [fmpz_preinvn_struct; 1usize];
#[repr(C)]
pub struct fmpz_vec_struct {
pub entries: *mut fmpz,
pub alloc: slong,
pub length: slong,
}
impl Default for fmpz_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_vec_t = [fmpz_vec_struct; 1usize];
#[repr(C)]
pub struct fmpz_poly_struct {
pub coeffs: *mut fmpz,
pub alloc: slong,
pub length: slong,
}
impl Default for fmpz_poly_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type fmpz_poly_t = [fmpz_poly_struct; 1usize];
#[repr(C)]
pub struct fmpz_poly_factor_struct {
pub c: fmpz,
pub p: *mut fmpz_poly_struct,
pub exp: *mut slong,
pub num: slong,
pub alloc: slong,
}
impl Default for fmpz_poly_factor_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type fmpz_poly_factor_t = [fmpz_poly_factor_struct; 1usize];
#[repr(C)]
pub struct fmpz_mat_struct {
pub entries: *mut fmpz,
pub r: slong,
pub c: slong,
pub stride: slong,
}
impl Default for fmpz_mat_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_mat_t = [fmpz_mat_struct; 1usize];
#[repr(C)]
pub struct fmpz_poly_mat_struct {
pub entries: *mut fmpz_poly_struct,
pub r: slong,
pub c: slong,
pub stride: slong,
}
impl Default for fmpz_poly_mat_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type fmpz_poly_mat_t = [fmpz_poly_mat_struct; 1usize];
#[repr(C)]
pub struct fmpz_mpoly_struct {
pub coeffs: *mut fmpz,
pub exps: *mut ulong,
pub alloc: slong,
pub length: slong,
pub bits: flint_bitcnt_t,
}
impl Default for fmpz_mpoly_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_t = [fmpz_mpoly_struct; 1usize];
#[repr(C)]
pub struct fmpz_mpoly_factor_struct {
pub constant: fmpz_t,
pub constant_den: fmpz_t,
pub poly: *mut fmpz_mpoly_struct,
pub exp: *mut fmpz,
pub num: slong,
pub alloc: slong,
}
impl Default for fmpz_mpoly_factor_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_factor_t = [fmpz_mpoly_factor_struct; 1usize];
#[repr(C)]
pub struct fmpz_poly_q_struct {
pub num: *mut fmpz_poly_struct,
pub den: *mut fmpz_poly_struct,
}
impl Default for fmpz_poly_q_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type fmpz_poly_q_t = [fmpz_poly_q_struct; 1usize];
#[repr(C)]
pub struct fmpz_mpoly_q_struct {
pub num: fmpz_mpoly_struct,
pub den: fmpz_mpoly_struct,
}
impl Default for fmpz_mpoly_q_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_q_t = [fmpz_mpoly_q_struct; 1usize];
#[repr(C)]
pub struct fmpzi_struct {
pub a: fmpz,
pub b: fmpz,
}
impl Default for fmpzi_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 fmpzi_t = [fmpzi_struct; 1usize];
/* fmpz_vec.h */
unsafe extern "C" {
pub fn _fmpz_vec_init(len: slong) -> *mut fmpz;
pub fn _fmpz_vec_clear(vec: *mut fmpz, len: slong);
pub fn fmpz_vec_init(vec: *mut fmpz_vec_struct, len: slong);
pub fn fmpz_vec_clear(vec: *mut fmpz_vec_struct);
pub fn fmpz_vec_set(res: *mut fmpz_vec_struct, src: *const fmpz_vec_struct);
pub fn fmpz_vec_fit_length(vec: *mut fmpz_vec_struct, len: slong);
pub fn fmpz_vec_set_length(vec: *mut fmpz_vec_struct, len: slong);
pub fn fmpz_vec_append(vec: *mut fmpz_vec_struct, f: *const fmpz);
pub fn fmpz_vec_append_ui(vec: *mut fmpz_vec_struct, f: ulong);
pub fn fmpz_vec_length(vec: *const fmpz_vec_struct) -> slong;
pub fn fmpz_vec_entry_ptr(vec: *mut fmpz_vec_struct, i: slong) -> *mut fmpz;
pub fn fmpz_vec_entry_srcptr(vec: *const fmpz_vec_struct, i: slong) -> *const fmpz;
pub fn _fmpz_vec_randtest(
f: *mut fmpz,
state: *mut flint_rand_struct,
len: slong,
bits: flint_bitcnt_t,
);
pub fn _fmpz_vec_randtest_unsigned(
f: *mut fmpz,
state: *mut flint_rand_struct,
len: slong,
bits: flint_bitcnt_t,
);
pub fn _fmpz_vec_max_bits(vec: *const fmpz, len: slong) -> slong;
pub fn _fmpz_vec_max_bits_ref(vec: *const fmpz, len: slong) -> slong;
pub fn _fmpz_vec_sum_max_bits(
sumabs: *mut slong,
maxabs: *mut slong,
coeffs: *const fmpz,
length: slong,
);
pub fn _fmpz_vec_max_limbs(vec: *const fmpz, len: slong) -> slong;
pub fn _fmpz_vec_height(height: *mut fmpz, vec: *const fmpz, len: slong);
pub fn _fmpz_vec_height_index(vec: *const fmpz, len: slong) -> slong;
pub fn _fmpz_vec_fprint(
file: *mut FILE,
vec: *const fmpz,
len: slong,
) -> ::std::os::raw::c_int;
pub fn _fmpz_vec_fread(
file: *mut FILE,
vec: *mut *mut fmpz,
len: *mut slong,
) -> ::std::os::raw::c_int;
pub fn _fmpz_vec_print(vec: *const fmpz, len: slong) -> ::std::os::raw::c_int;
pub fn _fmpz_vec_read(vec: *mut *mut fmpz, len: *mut slong) -> ::std::os::raw::c_int;
pub fn _fmpz_vec_get_nmod_vec(
res: nn_ptr,
poly: *const fmpz,
len: slong,
mod_: nmod_t,
);
pub fn _fmpz_vec_set_nmod_vec(
res: *mut fmpz,
poly: nn_srcptr,
len: slong,
mod_: nmod_t,
);
pub fn _fmpz_vec_get_fft(
coeffs_f: *mut *mut ulong,
coeffs_m: *const fmpz,
l: slong,
length: slong,
);
pub fn _fmpz_vec_set_fft(
coeffs_m: *mut fmpz,
length: slong,
coeffs_f: *const nn_ptr,
limbs: slong,
sign: slong,
);
pub fn _fmpz_vec_get_d_vec_2exp(
appv: *mut f64,
vec: *const fmpz,
len: slong,
) -> slong;
pub fn _fmpz_vec_set(vec1: *mut fmpz, vec2: *const fmpz, len2: slong);
pub fn _fmpz_vec_swap(vec1: *mut fmpz, vec2: *mut fmpz, len2: slong);
pub fn _fmpz_vec_zero(vec: *mut fmpz, len: slong);
pub fn _fmpz_vec_scalar_abs(vec1: *mut fmpz, vec2: *const fmpz, len2: slong);
pub fn _fmpz_vec_equal(
vec1: *const fmpz,
vec2: *const fmpz,
len: slong,
) -> ::std::os::raw::c_int;
pub fn _fmpz_vec_is_zero(vec: *const fmpz, len: slong) -> ::std::os::raw::c_int;
pub fn _fmpz_vec_min(
vec1: *mut fmpz,
vec2: *const fmpz,
vec3: *const fmpz,
len: slong,
);
pub fn _fmpz_vec_max(
vec1: *mut fmpz,
vec2: *const fmpz,
vec3: *const fmpz,
len: slong,
);
pub fn _fmpz_vec_min_inplace(vec1: *mut fmpz, vec2: *const fmpz, len: slong);
pub fn _fmpz_vec_max_inplace(vec1: *mut fmpz, vec2: *const fmpz, len: slong);
pub fn _fmpz_vec_sort(vec: *mut fmpz, len: slong);
pub fn _fmpz_vec_add(
res: *mut fmpz,
vec1: *const fmpz,
vec2: *const fmpz,
len2: slong,
);
pub fn _fmpz_vec_sub(
res: *mut fmpz,
vec1: *const fmpz,
vec2: *const fmpz,
len2: slong,
);
pub fn _fmpz_vec_neg(vec1: *mut fmpz, vec2: *const fmpz, len2: slong);
pub fn _fmpz_vec_scalar_mul_si(
vec1: *mut fmpz,
vec2: *const fmpz,
len2: slong,
c: slong,
);
pub fn _fmpz_vec_scalar_mul_ui(
vec1: *mut fmpz,
vec2: *const fmpz,
len2: slong,
c: ulong,
);
pub fn _fmpz_vec_scalar_mul_fmpz(
vec1: *mut fmpz,
vec2: *const fmpz,
len2: slong,
x: *const fmpz,
);
pub fn _fmpz_vec_scalar_mul_2exp(
vec1: *mut fmpz,
vec2: *const fmpz,
len2: slong,
exp: ulong,
);
pub fn _fmpz_vec_scalar_divexact_si(
vec1: *mut fmpz,
vec2: *const fmpz,
len2: slong,
c: slong,
);
pub fn _fmpz_vec_scalar_divexact_ui(
vec1: *mut fmpz,
vec2: *const fmpz,
len2: slong,
c: ulong,
);
pub fn _fmpz_vec_scalar_divexact_fmpz(
vec1: *mut fmpz,
vec2: *const fmpz,
len2: slong,
x: *const fmpz,
);
pub fn _fmpz_vec_scalar_fdiv_q_si(
vec1: *mut fmpz,
vec2: *const fmpz,
len2: slong,
c: slong,
);
pub fn _fmpz_vec_scalar_fdiv_q_ui(
vec1: *mut fmpz,
vec2: *const fmpz,
len2: slong,
c: ulong,
);
pub fn _fmpz_vec_scalar_fdiv_q_fmpz(
vec1: *mut fmpz,
vec2: *const fmpz,
len2: slong,
c: *const fmpz,
);
pub fn _fmpz_vec_scalar_fdiv_q_2exp(
vec1: *mut fmpz,
vec2: *const fmpz,
len2: slong,
exp: ulong,
);
pub fn _fmpz_vec_scalar_fdiv_r_2exp(
vec1: *mut fmpz,
vec2: *const fmpz,
len2: slong,
exp: ulong,
);
pub fn _fmpz_vec_scalar_tdiv_q_si(
vec1: *mut fmpz,
vec2: *const fmpz,
len2: slong,
c: slong,
);
pub fn _fmpz_vec_scalar_tdiv_q_ui(
vec1: *mut fmpz,
vec2: *const fmpz,
len2: slong,
c: ulong,
);
pub fn _fmpz_vec_scalar_tdiv_q_fmpz(
vec1: *mut fmpz,
vec2: *const fmpz,
len2: slong,
c: *const fmpz,
);
pub fn _fmpz_vec_scalar_tdiv_q_2exp(
vec1: *mut fmpz,
vec2: *const fmpz,
len2: slong,
exp: ulong,
);
pub fn _fmpz_vec_scalar_addmul_si(
vec1: *mut fmpz,
vec2: *const fmpz,
len2: slong,
c: slong,
);
pub fn _fmpz_vec_scalar_addmul_ui(
vec1: *mut fmpz,
vec2: *const fmpz,
len2: slong,
c: ulong,
);
pub fn _fmpz_vec_scalar_addmul_fmpz(
poly1: *mut fmpz,
poly2: *const fmpz,
len2: slong,
x: *const fmpz,
);
pub fn _fmpz_vec_scalar_addmul_si_2exp(
vec1: *mut fmpz,
vec2: *const fmpz,
len2: slong,
c: slong,
exp: ulong,
);
pub fn _fmpz_vec_scalar_submul_si(
vec1: *mut fmpz,
vec2: *const fmpz,
len2: slong,
c: slong,
);
pub fn _fmpz_vec_scalar_submul_fmpz(
vec1: *mut fmpz,
vec2: *const fmpz,
len2: slong,
x: *const fmpz,
);
pub fn _fmpz_vec_scalar_submul_si_2exp(
vec1: *mut fmpz,
vec2: *const fmpz,
len2: slong,
c: slong,
exp: ulong,
);
pub fn _fmpz_vec_sum(res: *mut fmpz, vec: *const fmpz, len: slong);
pub fn _fmpz_vec_prod(res: *mut fmpz, vec: *const fmpz, len: slong);
pub fn _fmpz_ui_vec_prod(res: *mut fmpz, vec: nn_srcptr, len: slong);
pub fn _fmpz_vec_scalar_mod_fmpz(
res: *mut fmpz,
vec: *const fmpz,
len: slong,
p: *const fmpz,
);
pub fn _fmpz_vec_scalar_smod_fmpz(
res: *mut fmpz,
vec: *const fmpz,
len: slong,
p: *const fmpz,
);
pub fn _fmpz_vec_multi_CRT_ui(
res: *mut fmpz,
residues: *mut nn_srcptr,
len: slong,
primes: nn_srcptr,
num_primes: slong,
sign: ::std::os::raw::c_int,
);
pub fn _fmpz_vec_content(res: *mut fmpz, vec: *const fmpz, len: slong);
pub fn _fmpz_vec_content_chained(
res: *mut fmpz,
vec: *const fmpz,
len: slong,
inp: *const fmpz,
);
pub fn _fmpz_vec_lcm(res: *mut fmpz, vec: *const fmpz, len: slong);
pub fn _fmpz_vec_dot_general_naive(
res: *mut fmpz,
initial: *const fmpz,
subtract: ::std::os::raw::c_int,
a: *const fmpz,
b: *const fmpz,
reverse: ::std::os::raw::c_int,
len: slong,
);
pub fn _fmpz_vec_dot_general(
res: *mut fmpz,
initial: *const fmpz,
subtract: ::std::os::raw::c_int,
a: *const fmpz,
b: *const fmpz,
reverse: ::std::os::raw::c_int,
len: slong,
);
pub fn _fmpz_vec_dot(
res: *mut fmpz,
vec1: *const fmpz,
vec2: *const fmpz,
len2: slong,
);
}
/* fmpzi.h */
unsafe extern "C" {
pub fn fmpzi_init(x: *mut fmpzi_struct);
pub fn fmpzi_clear(x: *mut fmpzi_struct);
pub fn fmpzi_equal(
x: *const fmpzi_struct,
y: *const fmpzi_struct,
) -> ::std::os::raw::c_int;
pub fn fmpzi_zero(x: *mut fmpzi_struct);
pub fn fmpzi_one(x: *mut fmpzi_struct);
pub fn fmpzi_set(res: *mut fmpzi_struct, x: *const fmpzi_struct);
pub fn fmpzi_conj(res: *mut fmpzi_struct, x: *const fmpzi_struct);
pub fn fmpzi_swap(x: *mut fmpzi_struct, y: *mut fmpzi_struct);
pub fn fmpzi_print(x: *const fmpzi_struct);
pub fn fmpzi_set_si_si(res: *mut fmpzi_struct, a: slong, b: slong);
pub fn fmpzi_randtest(
res: *mut fmpzi_struct,
state: *mut flint_rand_struct,
bits: flint_bitcnt_t,
);
pub fn fmpzi_is_unit(x: *const fmpzi_struct) -> ::std::os::raw::c_int;
pub fn fmpzi_is_zero(x: *const fmpzi_struct) -> ::std::os::raw::c_int;
pub fn fmpzi_is_one(x: *const fmpzi_struct) -> ::std::os::raw::c_int;
pub fn fmpzi_bits(x: *const fmpzi_struct) -> slong;
pub fn fmpzi_norm(res: *mut fmpz, x: *const fmpzi_struct);
pub fn fmpzi_neg(res: *mut fmpzi_struct, x: *const fmpzi_struct);
pub fn fmpzi_add(
res: *mut fmpzi_struct,
x: *const fmpzi_struct,
y: *const fmpzi_struct,
);
pub fn fmpzi_sub(
res: *mut fmpzi_struct,
x: *const fmpzi_struct,
y: *const fmpzi_struct,
);
pub fn fmpzi_sqr(res: *mut fmpzi_struct, x: *const fmpzi_struct);
pub fn fmpzi_mul(
res: *mut fmpzi_struct,
x: *const fmpzi_struct,
y: *const fmpzi_struct,
);
pub fn fmpzi_pow_ui(res: *mut fmpzi_struct, x: *const fmpzi_struct, exp: ulong);
pub fn fmpzi_mul_i(z: *mut fmpzi_struct, x: *const fmpzi_struct);
pub fn fmpzi_div_i(z: *mut fmpzi_struct, x: *const fmpzi_struct);
pub fn fmpzi_mul_i_pow_si(res: *mut fmpzi_struct, z: *const fmpzi_struct, k: slong);
pub fn fmpzi_canonical_unit_i_pow(x: *const fmpzi_struct) -> slong;
pub fn fmpzi_canonicalise_unit(res: *mut fmpzi_struct, x: *const fmpzi_struct);
pub fn fmpzi_divrem(
q: *mut fmpzi_struct,
r: *mut fmpzi_struct,
x: *const fmpzi_struct,
y: *const fmpzi_struct,
);
pub fn fmpzi_divrem_approx(
q: *mut fmpzi_struct,
r: *mut fmpzi_struct,
x: *const fmpzi_struct,
y: *const fmpzi_struct,
);
pub fn fmpzi_divexact(
q: *mut fmpzi_struct,
x: *const fmpzi_struct,
y: *const fmpzi_struct,
);
pub fn fmpzi_remove_one_plus_i(
res: *mut fmpzi_struct,
x: *const fmpzi_struct,
) -> slong;
pub fn fmpzi_gcd_euclidean(
res: *mut fmpzi_struct,
x: *const fmpzi_struct,
y: *const fmpzi_struct,
);
pub fn fmpzi_gcd_euclidean_improved(
res: *mut fmpzi_struct,
x: *const fmpzi_struct,
y: *const fmpzi_struct,
);
pub fn fmpzi_gcd_binary(
res: *mut fmpzi_struct,
x: *const fmpzi_struct,
y: *const fmpzi_struct,
);
pub fn fmpzi_gcd_shortest(
g: *mut fmpzi_struct,
x: *const fmpzi_struct,
y: *const fmpzi_struct,
);
pub fn fmpzi_gcd(
g: *mut fmpzi_struct,
x: *const fmpzi_struct,
y: *const fmpzi_struct,
);
pub fn fmpzi_is_prime(n: *const fmpzi_struct) -> ::std::os::raw::c_int;
pub fn fmpzi_is_probabprime(n: *const fmpzi_struct) -> ::std::os::raw::c_int;
}
/* fq.h */
unsafe extern "C" {
pub fn fq_ctx_init(
ctx: *mut fq_ctx_struct,
p: *const fmpz,
d: slong,
var: *const ::std::os::raw::c_char,
);
pub fn _fq_ctx_init_conway_ui(
ctx: *mut fq_ctx_struct,
p: ulong,
d: slong,
var: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn fq_ctx_init_conway_ui(
ctx: *mut fq_ctx_struct,
p: ulong,
d: slong,
var: *const ::std::os::raw::c_char,
);
pub fn _fq_ctx_init_conway(
ctx: *mut fq_ctx_struct,
p: *const fmpz,
d: slong,
var: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn fq_ctx_init_conway(
ctx: *mut fq_ctx_struct,
p: *const fmpz,
d: slong,
var: *const ::std::os::raw::c_char,
);
pub fn fq_ctx_init_modulus(
ctx: *mut fq_ctx_struct,
modulus: *const fmpz_mod_poly_struct,
ctxp: *const fmpz_mod_ctx_struct,
var: *const ::std::os::raw::c_char,
);
pub fn fq_ctx_init_randtest(
ctx: *mut fq_ctx_struct,
state: *mut flint_rand_struct,
type_: ::std::os::raw::c_int,
);
pub fn fq_ctx_init_randtest_reducible(
ctx: *mut fq_ctx_struct,
state: *mut flint_rand_struct,
type_: ::std::os::raw::c_int,
);
pub fn fq_ctx_clear(ctx: *mut fq_ctx_struct);
pub fn fq_ctx_modulus(ctx: *const fq_ctx_struct) -> *const fmpz_mod_poly_struct;
pub fn fq_ctx_degree(ctx: *const fq_ctx_struct) -> slong;
pub fn fq_ctx_prime(ctx: *const fq_ctx_struct) -> *const fmpz;
pub fn fq_ctx_order(f: *mut fmpz, ctx: *const fq_ctx_struct);
pub fn fq_ctx_fprint(
file: *mut FILE,
ctx: *const fq_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_ctx_print(ctx: *const fq_ctx_struct);
pub fn fq_init(rop: *mut fmpz_poly_struct, UNUSED_ctx: *const fq_ctx_struct);
pub fn fq_init2(rop: *mut fmpz_poly_struct, ctx: *const fq_ctx_struct);
pub fn fq_clear(rop: *mut fmpz_poly_struct, UNUSED_ctx: *const fq_ctx_struct);
pub fn _fq_sparse_reduce(R: *mut fmpz, lenR: slong, ctx: *const fq_ctx_struct);
pub fn _fq_dense_reduce(R: *mut fmpz, lenR: slong, ctx: *const fq_ctx_struct);
pub fn _fq_reduce(R: *mut fmpz, lenR: slong, ctx: *const fq_ctx_struct);
pub fn fq_reduce(rop: *mut fmpz_poly_struct, ctx: *const fq_ctx_struct);
pub fn fq_add(
rop: *mut fmpz_poly_struct,
op1: *const fmpz_poly_struct,
op2: *const fmpz_poly_struct,
ctx: *const fq_ctx_struct,
);
pub fn fq_sub(
rop: *mut fmpz_poly_struct,
op1: *const fmpz_poly_struct,
op2: *const fmpz_poly_struct,
ctx: *const fq_ctx_struct,
);
pub fn fq_sub_one(
rop: *mut fmpz_poly_struct,
op1: *const fmpz_poly_struct,
ctx: *const fq_ctx_struct,
);
pub fn fq_neg(
rop: *mut fmpz_poly_struct,
op1: *const fmpz_poly_struct,
ctx: *const fq_ctx_struct,
);
pub fn fq_mul(
rop: *mut fmpz_poly_struct,
op1: *const fmpz_poly_struct,
op2: *const fmpz_poly_struct,
ctx: *const fq_ctx_struct,
);
pub fn fq_mul_fmpz(
rop: *mut fmpz_poly_struct,
op: *const fmpz_poly_struct,
x: *const fmpz,
ctx: *const fq_ctx_struct,
);
pub fn fq_mul_si(
rop: *mut fmpz_poly_struct,
op: *const fmpz_poly_struct,
x: slong,
ctx: *const fq_ctx_struct,
);
pub fn fq_mul_ui(
rop: *mut fmpz_poly_struct,
op: *const fmpz_poly_struct,
x: ulong,
ctx: *const fq_ctx_struct,
);
pub fn fq_sqr(
rop: *mut fmpz_poly_struct,
op: *const fmpz_poly_struct,
ctx: *const fq_ctx_struct,
);
pub fn fq_inv(
rop: *mut fmpz_poly_struct,
op1: *const fmpz_poly_struct,
ctx: *const fq_ctx_struct,
);
pub fn _fq_pow(
rop: *mut fmpz,
op: *const fmpz,
len: slong,
e: *const fmpz,
ctx: *const fq_ctx_struct,
);
pub fn fq_pow(
rop: *mut fmpz_poly_struct,
op1: *const fmpz_poly_struct,
e: *const fmpz,
ctx: *const fq_ctx_struct,
);
pub fn fq_pow_ui(
rop: *mut fmpz_poly_struct,
op: *const fmpz_poly_struct,
e: ulong,
ctx: *const fq_ctx_struct,
);
pub fn fq_sqrt(
rop: *mut fmpz_poly_struct,
op: *const fmpz_poly_struct,
ctx: *const fq_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_pth_root(
rop: *mut fmpz_poly_struct,
op1: *const fmpz_poly_struct,
ctx: *const fq_ctx_struct,
);
pub fn fq_is_square(
op: *const fmpz_poly_struct,
ctx: *const fq_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_randtest(
rop: *mut fmpz_poly_struct,
state: *mut flint_rand_struct,
ctx: *const fq_ctx_struct,
);
pub fn fq_randtest_dense(
rop: *mut fmpz_poly_struct,
state: *mut flint_rand_struct,
ctx: *const fq_ctx_struct,
);
pub fn fq_randtest_not_zero(
rop: *mut fmpz_poly_struct,
state: *mut flint_rand_struct,
ctx: *const fq_ctx_struct,
);
pub fn fq_rand(
rop: *mut fmpz_poly_struct,
state: *mut flint_rand_struct,
ctx: *const fq_ctx_struct,
);
pub fn fq_rand_not_zero(
rop: *mut fmpz_poly_struct,
state: *mut flint_rand_struct,
ctx: *const fq_ctx_struct,
);
pub fn fq_equal(
op1: *const fmpz_poly_struct,
op2: *const fmpz_poly_struct,
UNUSED_ctx: *const fq_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_is_zero(
op: *const fmpz_poly_struct,
UNUSED_ctx: *const fq_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_is_one(
op: *const fmpz_poly_struct,
UNUSED_ctx: *const fq_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_set(
rop: *mut fmpz_poly_struct,
op: *const fmpz_poly_struct,
UNUSED_ctx: *const fq_ctx_struct,
);
pub fn fq_set_ui(rop: *mut fmpz_poly_struct, x: ulong, ctx: *const fq_ctx_struct);
pub fn fq_set_si(rop: *mut fmpz_poly_struct, x: slong, ctx: *const fq_ctx_struct);
pub fn fq_set_fmpz(
rop: *mut fmpz_poly_struct,
x: *const fmpz,
ctx: *const fq_ctx_struct,
);
pub fn fq_set_fmpz_poly(
a: *mut fmpz_poly_struct,
b: *const fmpz_poly_struct,
ctx: *const fq_ctx_struct,
);
pub fn fq_set_fmpz_mod_poly(
a: *mut fmpz_poly_struct,
b: *const fmpz_mod_poly_struct,
ctx: *const fq_ctx_struct,
);
pub fn fq_get_fmpz(
a: *mut fmpz,
b: *const fmpz_poly_struct,
UNUSED_ctx: *const fq_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_get_fmpz_poly(
a: *mut fmpz_poly_struct,
b: *const fmpz_poly_struct,
UNUSED_ctx: *const fq_ctx_struct,
);
pub fn fq_get_fmpz_mod_poly(
a: *mut fmpz_mod_poly_struct,
b: *const fmpz_poly_struct,
ctx: *const fq_ctx_struct,
);
pub fn fq_zero(rop: *mut fmpz_poly_struct, UNUSED_ctx: *const fq_ctx_struct);
pub fn fq_one(rop: *mut fmpz_poly_struct, UNUSED_ctx: *const fq_ctx_struct);
pub fn fq_swap(
op1: *mut fmpz_poly_struct,
op2: *mut fmpz_poly_struct,
UNUSED_ctx: *const fq_ctx_struct,
);
pub fn fq_gen(rop: *mut fmpz_poly_struct, ctx: *const fq_ctx_struct);
pub fn fq_fprint(
file: *mut FILE,
op: *const fmpz_poly_struct,
UNUSED_ctx: *const fq_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_print(op: *const fmpz_poly_struct, UNUSED_ctx: *const fq_ctx_struct);
pub fn fq_fprint_pretty(
file: *mut FILE,
op: *const fmpz_poly_struct,
ctx: *const fq_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_print_pretty(
op: *const fmpz_poly_struct,
ctx: *const fq_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_get_str(
op: *const fmpz_poly_struct,
UNUSED_ctx: *const fq_ctx_struct,
) -> *mut ::std::os::raw::c_char;
pub fn fq_get_str_pretty(
op: *const fmpz_poly_struct,
ctx: *const fq_ctx_struct,
) -> *mut ::std::os::raw::c_char;
pub fn _fq_trace(
rop: *mut fmpz,
op: *const fmpz,
len: slong,
ctx: *const fq_ctx_struct,
);
pub fn fq_trace(
rop: *mut fmpz,
op: *const fmpz_poly_struct,
ctx: *const fq_ctx_struct,
);
pub fn _fq_frobenius(
rop: *mut fmpz,
op: *const fmpz,
len: slong,
e: slong,
ctx: *const fq_ctx_struct,
);
pub fn fq_frobenius(
rop: *mut fmpz_poly_struct,
op: *const fmpz_poly_struct,
e: slong,
ctx: *const fq_ctx_struct,
);
pub fn _fq_norm(
rop: *mut fmpz,
op: *const fmpz,
len: slong,
ctx: *const fq_ctx_struct,
);
pub fn fq_norm(
rop: *mut fmpz,
op: *const fmpz_poly_struct,
ctx: *const fq_ctx_struct,
);
pub fn fq_bit_pack(
f: *mut fmpz,
op: *const fmpz_poly_struct,
bit_size: flint_bitcnt_t,
UNUSED_ctx: *const fq_ctx_struct,
);
pub fn fq_bit_unpack(
rop: *mut fmpz_poly_struct,
f: *const fmpz,
bit_size: flint_bitcnt_t,
ctx: *const fq_ctx_struct,
);
pub fn __fq_ctx_prime(p: *mut fmpz, ctx: *mut fq_ctx_struct);
}
/* fq_default.h */
#[repr(C)]
pub union fq_default_struct {
pub fq: ::std::mem::ManuallyDrop<fq_t>,
pub fq_nmod: ::std::mem::ManuallyDrop<fq_nmod_t>,
pub fq_zech: ::std::mem::ManuallyDrop<fq_zech_t>,
pub nmod: ::std::mem::ManuallyDrop<ulong>,
pub fmpz_mod: ::std::mem::ManuallyDrop<fmpz_t>,
}
impl Default for fq_default_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 fq_default_t = [fq_default_struct; 1usize];
pub type fq_default_ctx_struct = gr_ctx_struct;
pub type fq_default_ctx_t = [fq_default_ctx_struct; 1usize];
#[repr(C)]
pub struct _gr_fmpz_mod_ctx_struct {
pub ctx: *mut fmpz_mod_ctx_struct,
pub is_prime: truth_t,
pub a: fmpz,
}
impl Default for _gr_fmpz_mod_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()
}
}
}
unsafe extern "C" {
pub fn fq_default_ctx_init_type(
ctx: *mut fq_default_ctx_struct,
p: *const fmpz,
d: slong,
var: *const ::std::os::raw::c_char,
type_: ::std::os::raw::c_int,
);
pub fn fq_default_ctx_init(
ctx: *mut fq_default_ctx_struct,
p: *const fmpz,
d: slong,
var: *const ::std::os::raw::c_char,
);
pub fn fq_default_ctx_inner(
ctx: *const fq_default_ctx_struct,
) -> *mut ::std::os::raw::c_void;
pub fn fq_default_ctx_init_modulus_type(
ctx: *mut fq_default_ctx_struct,
modulus: *const fmpz_mod_poly_struct,
mod_ctx: *mut fmpz_mod_ctx_struct,
var: *const ::std::os::raw::c_char,
type_: ::std::os::raw::c_int,
);
pub fn fq_default_ctx_init_modulus(
ctx: *mut fq_default_ctx_struct,
modulus: *const fmpz_mod_poly_struct,
mod_ctx: *mut fmpz_mod_ctx_struct,
var: *const ::std::os::raw::c_char,
);
pub fn fq_default_ctx_init_modulus_nmod_type(
ctx: *mut fq_default_ctx_struct,
modulus: *const nmod_poly_struct,
var: *const ::std::os::raw::c_char,
type_: ::std::os::raw::c_int,
);
pub fn fq_default_ctx_init_modulus_nmod(
ctx: *mut fq_default_ctx_struct,
modulus: *const nmod_poly_struct,
var: *const ::std::os::raw::c_char,
);
pub fn fq_default_ctx_clear(ctx: *mut fq_default_ctx_struct);
pub fn fq_default_ctx_type(
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_ctx_degree(ctx: *const fq_default_ctx_struct) -> slong;
pub fn fq_default_ctx_prime(prime: *mut fmpz, ctx: *const fq_default_ctx_struct);
pub fn fq_default_ctx_modulus(
p: *mut fmpz_mod_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_ctx_order(f: *mut fmpz, ctx: *const fq_default_ctx_struct);
pub fn fq_default_ctx_fprint(
file: *mut FILE,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_ctx_print(ctx: *const fq_default_ctx_struct);
pub fn fq_default_ctx_init_randtest(
ctx: *mut fq_default_ctx_struct,
state: *mut flint_rand_struct,
);
pub fn fq_default_init(
rop: *mut fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_init2(
rop: *mut fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_clear(
rop: *mut fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_add(
rop: *mut fq_default_struct,
op1: *const fq_default_struct,
op2: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_sub(
rop: *mut fq_default_struct,
op1: *const fq_default_struct,
op2: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_sub_one(
rop: *mut fq_default_struct,
op1: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_neg(
rop: *mut fq_default_struct,
op1: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mul(
rop: *mut fq_default_struct,
op1: *const fq_default_struct,
op2: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mul_fmpz(
rop: *mut fq_default_struct,
op: *const fq_default_struct,
x: *const fmpz,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mul_si(
rop: *mut fq_default_struct,
op: *const fq_default_struct,
x: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mul_ui(
rop: *mut fq_default_struct,
op: *const fq_default_struct,
x: ulong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_sqr(
rop: *mut fq_default_struct,
op: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_is_invertible(
op: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_inv(
rop: *mut fq_default_struct,
op1: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_div(
rop: *mut fq_default_struct,
op1: *mut fq_default_struct,
op2: *mut fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_pow(
rop: *mut fq_default_struct,
op1: *const fq_default_struct,
e: *const fmpz,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_pow_ui(
rop: *mut fq_default_struct,
op: *const fq_default_struct,
e: ulong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_is_square(
op: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_sqrt(
rop: *mut fq_default_struct,
op: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_pth_root(
rop: *mut fq_default_struct,
op1: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_randtest(
rop: *mut fq_default_struct,
state: *mut flint_rand_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_randtest_not_zero(
rop: *mut fq_default_struct,
state: *mut flint_rand_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_rand(
rop: *mut fq_default_struct,
state: *mut flint_rand_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_rand_not_zero(
rop: *mut fq_default_struct,
state: *mut flint_rand_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_equal(
op1: *const fq_default_struct,
op2: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_is_zero(
op: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_is_one(
op: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_set(
rop: *mut fq_default_struct,
op: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_set_fmpz(
rop: *mut fq_default_struct,
x: *const fmpz,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_set_ui(
rop: *mut fq_default_struct,
x: ulong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_set_si(
rop: *mut fq_default_struct,
x: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_zero(
rop: *mut fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_one(
rop: *mut fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_swap(
op1: *mut fq_default_struct,
op2: *mut fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_gen(
rop: *mut fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_get_nmod_poly(
poly: *mut nmod_poly_struct,
op: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_set_nmod_poly(
op: *mut fq_default_struct,
poly: *const nmod_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_get_fmpz(
z: *mut fmpz,
op: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_get_fmpz_mod_poly(
poly: *mut fmpz_mod_poly_struct,
op: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_set_fmpz_mod_poly(
op: *mut fq_default_struct,
poly: *const fmpz_mod_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_get_fmpz_poly(
poly: *mut fmpz_poly_struct,
op: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_set_fmpz_poly(
op: *mut fq_default_struct,
poly: *const fmpz_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_get_coeff_fmpz(
c: *mut fmpz,
op: *mut fq_default_struct,
n: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_fprint(
file: *mut FILE,
op: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_fprint_pretty(
file: *mut FILE,
op: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_print(
op: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_print_pretty(
op: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_get_str(
op: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
) -> *mut ::std::os::raw::c_char;
pub fn fq_default_get_str_pretty(
op: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
) -> *mut ::std::os::raw::c_char;
pub fn fq_default_trace(
rop: *mut fmpz,
op: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_frobenius(
rop: *mut fq_default_struct,
op: *const fq_default_struct,
e: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_norm(
rop: *mut fmpz,
op: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
}
/* fq_default_mat.h */
#[repr(C)]
pub union fq_default_mat_struct {
pub fq: ::std::mem::ManuallyDrop<fq_mat_t>,
pub fq_nmod: ::std::mem::ManuallyDrop<fq_nmod_mat_t>,
pub fq_zech: ::std::mem::ManuallyDrop<fq_zech_mat_t>,
pub nmod: ::std::mem::ManuallyDrop<nmod_mat_t>,
pub fmpz_mod: ::std::mem::ManuallyDrop<fmpz_mod_mat_t>,
}
impl Default for fq_default_mat_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 fq_default_mat_t = [fq_default_mat_struct; 1usize];
unsafe extern "C" {
pub fn fq_default_mat_init(
mat: *mut fq_default_mat_struct,
rows: slong,
cols: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_init_set(
mat: *mut fq_default_mat_struct,
src: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_swap(
mat1: *mut fq_default_mat_struct,
mat2: *mut fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_set(
mat1: *mut fq_default_mat_struct,
mat2: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_clear(
mat: *mut fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_equal(
mat1: *const fq_default_mat_struct,
mat2: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_mat_is_zero(
mat: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_mat_is_one(
mat: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_mat_is_empty(
mat: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_mat_is_square(
mat: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_mat_transpose(
B: *mut fq_default_mat_struct,
A: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_entry(
val: *mut fq_default_struct,
mat: *const fq_default_mat_struct,
i: slong,
j: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_entry_set(
mat: *mut fq_default_mat_struct,
i: slong,
j: slong,
x: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_entry_set_fmpz(
mat: *mut fq_default_mat_struct,
i: slong,
j: slong,
x: *const fmpz,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_nrows(
mat: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> slong;
pub fn fq_default_mat_ncols(
mat: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> slong;
pub fn fq_default_mat_swap_rows(
mat: *mut fq_default_mat_struct,
perm: *mut slong,
r: slong,
s: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_invert_rows(
mat: *mut fq_default_mat_struct,
perm: *mut slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_swap_cols(
mat: *mut fq_default_mat_struct,
perm: *mut slong,
r: slong,
s: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_invert_cols(
mat: *mut fq_default_mat_struct,
perm: *mut slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_zero(
A: *mut fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_one(
A: *mut fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_set_nmod_mat(
mat1: *mut fq_default_mat_struct,
mat2: *const nmod_mat_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_set_fmpz_mod_mat(
mat1: *mut fq_default_mat_struct,
mat2: *const fmpz_mod_mat_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_set_fmpz_mat(
mat1: *mut fq_default_mat_struct,
mat2: *const fmpz_mat_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_window_init(
window: *mut fq_default_mat_struct,
mat: *const fq_default_mat_struct,
r1: slong,
c1: slong,
r2: slong,
c2: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_window_clear(
window: *mut fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_concat_horizontal(
res: *mut fq_default_mat_struct,
mat1: *const fq_default_mat_struct,
mat2: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_concat_vertical(
res: *mut fq_default_mat_struct,
mat1: *const fq_default_mat_struct,
mat2: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_fprint(
file: *mut FILE,
mat: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_mat_fprint_pretty(
file: *mut FILE,
mat: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_mat_print(
mat: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_mat_print_pretty(
mat: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_mat_randtest(
mat: *mut fq_default_mat_struct,
state: *mut flint_rand_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_randrank(
mat: *mut fq_default_mat_struct,
state: *mut flint_rand_struct,
rank: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_randops(
mat: *mut fq_default_mat_struct,
state: *mut flint_rand_struct,
count: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_randtril(
mat: *mut fq_default_mat_struct,
state: *mut flint_rand_struct,
unit: ::std::os::raw::c_int,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_randtriu(
mat: *mut fq_default_mat_struct,
state: *mut flint_rand_struct,
unit: ::std::os::raw::c_int,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_add(
C: *mut fq_default_mat_struct,
A: *const fq_default_mat_struct,
B: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_sub(
C: *mut fq_default_mat_struct,
A: *const fq_default_mat_struct,
B: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_neg(
B: *mut fq_default_mat_struct,
A: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_submul(
D: *mut fq_default_mat_struct,
C: *const fq_default_mat_struct,
A: *const fq_default_mat_struct,
B: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_scalar_mul(
B: *mut fq_default_mat_struct,
A: *const fq_default_mat_struct,
c: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_scalar_mul_fmpz(
B: *mut fq_default_mat_struct,
A: *const fq_default_mat_struct,
c: *const fmpz,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_scalar_mul_si(
B: *mut fq_default_mat_struct,
A: *const fq_default_mat_struct,
c: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_scalar_mul_ui(
B: *mut fq_default_mat_struct,
A: *const fq_default_mat_struct,
c: ulong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_mul(
C: *mut fq_default_mat_struct,
A: *const fq_default_mat_struct,
B: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_lu(
P: *mut slong,
A: *mut fq_default_mat_struct,
rank_check: ::std::os::raw::c_int,
ctx: *const fq_default_ctx_struct,
) -> slong;
pub fn fq_default_mat_inv(
B: *mut fq_default_mat_struct,
A: *mut fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_mat_rref(
B: *mut fq_default_mat_struct,
A: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> slong;
pub fn fq_default_mat_nullspace(
X: *mut fq_default_mat_struct,
A: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> slong;
pub fn fq_default_mat_rank(
A: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> slong;
pub fn fq_default_mat_solve_tril(
X: *mut fq_default_mat_struct,
L: *const fq_default_mat_struct,
B: *const fq_default_mat_struct,
unit: ::std::os::raw::c_int,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_solve_triu(
X: *mut fq_default_mat_struct,
U: *const fq_default_mat_struct,
B: *const fq_default_mat_struct,
unit: ::std::os::raw::c_int,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_solve(
X: *mut fq_default_mat_struct,
A: *const fq_default_mat_struct,
C: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_mat_can_solve(
X: *mut fq_default_mat_struct,
A: *const fq_default_mat_struct,
B: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_mat_similarity(
A: *mut fq_default_mat_struct,
r: slong,
d: *mut fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
}
/* fq_default_poly.h */
#[repr(C)]
pub union fq_default_poly_struct {
pub fq: ::std::mem::ManuallyDrop<fq_poly_t>,
pub fq_nmod: ::std::mem::ManuallyDrop<fq_nmod_poly_t>,
pub fq_zech: ::std::mem::ManuallyDrop<fq_zech_poly_t>,
pub nmod: ::std::mem::ManuallyDrop<nmod_poly_t>,
pub fmpz_mod: ::std::mem::ManuallyDrop<fmpz_mod_poly_t>,
}
impl Default for fq_default_poly_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 fq_default_poly_t = [fq_default_poly_struct; 1usize];
unsafe extern "C" {
pub fn fq_default_poly_init(
poly: *mut fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_init2(
poly: *mut fq_default_poly_struct,
alloc: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_realloc(
poly: *mut fq_default_poly_struct,
alloc: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_truncate(
poly: *mut fq_default_poly_struct,
len: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_set_trunc(
poly1: *mut fq_default_poly_struct,
poly2: *mut fq_default_poly_struct,
len: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_fit_length(
poly: *mut fq_default_poly_struct,
len: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn _fq_default_poly_set_length(
poly: *mut fq_default_poly_struct,
len: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_clear(
poly: *mut fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_length(
poly: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
) -> slong;
pub fn fq_default_poly_degree(
poly: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
) -> slong;
pub fn fq_default_poly_randtest(
f: *mut fq_default_poly_struct,
state: *mut flint_rand_struct,
len: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_randtest_not_zero(
f: *mut fq_default_poly_struct,
state: *mut flint_rand_struct,
len: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_randtest_monic(
f: *mut fq_default_poly_struct,
state: *mut flint_rand_struct,
len: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_randtest_irreducible(
f: *mut fq_default_poly_struct,
state: *mut flint_rand_struct,
len: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_set(
rop: *mut fq_default_poly_struct,
op: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_set_fq_default(
poly: *mut fq_default_poly_struct,
c: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_swap(
op1: *mut fq_default_poly_struct,
op2: *mut fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_zero(
poly: *mut fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_one(
poly: *mut fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_gen(
f: *mut fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_make_monic(
rop: *mut fq_default_poly_struct,
op: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_reverse(
res: *mut fq_default_poly_struct,
poly: *const fq_default_poly_struct,
n: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_deflation(
input: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
) -> ulong;
pub fn fq_default_poly_deflate(
result: *mut fq_default_poly_struct,
input: *const fq_default_poly_struct,
deflation: ulong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_inflate(
result: *mut fq_default_poly_struct,
input: *const fq_default_poly_struct,
inflation: ulong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_get_coeff(
x: *mut fq_default_struct,
poly: *const fq_default_poly_struct,
n: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_set_coeff(
poly: *mut fq_default_poly_struct,
n: slong,
x: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_set_coeff_fmpz(
poly: *mut fq_default_poly_struct,
n: slong,
x: *const fmpz,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_set_nmod_poly(
rop: *mut fq_default_poly_struct,
op: *const nmod_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_set_fmpz_mod_poly(
rop: *mut fq_default_poly_struct,
op: *const fmpz_mod_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_set_fmpz_poly(
rop: *mut fq_default_poly_struct,
op: *const fmpz_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_equal(
poly1: *const fq_default_poly_struct,
poly2: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_poly_equal_trunc(
poly1: *const fq_default_poly_struct,
poly2: *const fq_default_poly_struct,
n: slong,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_poly_is_zero(
poly: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_poly_is_one(
op: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_poly_is_unit(
op: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_poly_is_gen(
poly: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_poly_equal_fq_default(
poly: *const fq_default_poly_struct,
c: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_poly_add(
rop: *mut fq_default_poly_struct,
op1: *const fq_default_poly_struct,
op2: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_add_si(
rop: *mut fq_default_poly_struct,
op1: *const fq_default_poly_struct,
c: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_add_series(
rop: *mut fq_default_poly_struct,
op1: *const fq_default_poly_struct,
op2: *const fq_default_poly_struct,
n: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_sub(
rop: *mut fq_default_poly_struct,
op1: *const fq_default_poly_struct,
op2: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_sub_series(
rop: *mut fq_default_poly_struct,
op1: *const fq_default_poly_struct,
op2: *const fq_default_poly_struct,
n: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_neg(
rop: *mut fq_default_poly_struct,
op: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_scalar_mul_fq_default(
rop: *mut fq_default_poly_struct,
op: *const fq_default_poly_struct,
x: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_scalar_div_fq_default(
rop: *mut fq_default_poly_struct,
op: *const fq_default_poly_struct,
x: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_scalar_addmul_fq_default(
rop: *mut fq_default_poly_struct,
op: *const fq_default_poly_struct,
x: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_scalar_submul_fq_default(
rop: *mut fq_default_poly_struct,
op: *const fq_default_poly_struct,
x: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_mul(
rop: *mut fq_default_poly_struct,
op1: *const fq_default_poly_struct,
op2: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_mullow(
rop: *mut fq_default_poly_struct,
op1: *const fq_default_poly_struct,
op2: *const fq_default_poly_struct,
n: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_mulhigh(
rop: *mut fq_default_poly_struct,
op1: *const fq_default_poly_struct,
op2: *const fq_default_poly_struct,
start: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_mulmod(
res: *mut fq_default_poly_struct,
poly1: *const fq_default_poly_struct,
poly2: *const fq_default_poly_struct,
f: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_sqr(
rop: *mut fq_default_poly_struct,
op: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_pow(
rop: *mut fq_default_poly_struct,
op: *const fq_default_poly_struct,
e: ulong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_pow_trunc(
res: *mut fq_default_poly_struct,
poly: *const fq_default_poly_struct,
e: ulong,
trunc: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_powmod_fmpz_binexp(
res: *mut fq_default_poly_struct,
poly: *const fq_default_poly_struct,
e: *const fmpz,
f: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_powmod_ui_binexp(
res: *mut fq_default_poly_struct,
poly: *const fq_default_poly_struct,
e: ulong,
f: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_shift_left(
rop: *mut fq_default_poly_struct,
op: *const fq_default_poly_struct,
n: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_shift_right(
rop: *mut fq_default_poly_struct,
op: *const fq_default_poly_struct,
n: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_hamming_weight(
op: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
) -> slong;
pub fn fq_default_poly_gcd(
rop: *mut fq_default_poly_struct,
op1: *const fq_default_poly_struct,
op2: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_xgcd(
G: *mut fq_default_poly_struct,
S: *mut fq_default_poly_struct,
T: *mut fq_default_poly_struct,
A: *const fq_default_poly_struct,
B: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_remove(
f: *mut fq_default_poly_struct,
g: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
) -> ulong;
pub fn fq_default_poly_divrem(
Q: *mut fq_default_poly_struct,
R: *mut fq_default_poly_struct,
A: *const fq_default_poly_struct,
B: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_rem(
R: *mut fq_default_poly_struct,
A: *const fq_default_poly_struct,
B: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_inv_series(
Qinv: *mut fq_default_poly_struct,
Q: *const fq_default_poly_struct,
n: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_div_series(
Q: *mut fq_default_poly_struct,
A: *const fq_default_poly_struct,
B: *const fq_default_poly_struct,
n: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_divides(
Q: *mut fq_default_poly_struct,
A: *const fq_default_poly_struct,
B: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_poly_derivative(
rop: *mut fq_default_poly_struct,
op: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_invsqrt_series(
rop: *mut fq_default_poly_struct,
op: *const fq_default_poly_struct,
n: slong,
ctx: *mut fq_default_ctx_struct,
);
pub fn fq_default_poly_sqrt_series(
rop: *mut fq_default_poly_struct,
op: *const fq_default_poly_struct,
n: slong,
ctx: *mut fq_default_ctx_struct,
);
pub fn fq_default_poly_sqrt(
rop: *mut fq_default_poly_struct,
op: *const fq_default_poly_struct,
ctx: *mut fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_poly_evaluate_fq_default(
res: *mut fq_default_struct,
f: *const fq_default_poly_struct,
a: *const fq_default_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_compose(
rop: *mut fq_default_poly_struct,
op1: *const fq_default_poly_struct,
op2: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_compose_mod(
res: *mut fq_default_poly_struct,
poly1: *const fq_default_poly_struct,
poly2: *const fq_default_poly_struct,
poly3: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_fprint(
file: *mut FILE,
poly: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_poly_fprint_pretty(
file: *mut FILE,
poly: *const fq_default_poly_struct,
x: *const ::std::os::raw::c_char,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_poly_print(
poly: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_poly_print_pretty(
poly: *const fq_default_poly_struct,
x: *const ::std::os::raw::c_char,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_poly_get_str_pretty(
poly: *const fq_default_poly_struct,
x: *const ::std::os::raw::c_char,
ctx: *const fq_default_ctx_struct,
) -> *mut ::std::os::raw::c_char;
pub fn fq_default_poly_get_str(
poly: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
) -> *mut ::std::os::raw::c_char;
pub fn fq_default_mat_charpoly(
p: *mut fq_default_poly_struct,
M: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_mat_minpoly(
p: *mut fq_default_poly_struct,
X: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
);
}
/* fq_default_poly_factor.h */
#[repr(C)]
pub union fq_default_poly_factor_struct {
pub fq: ::std::mem::ManuallyDrop<fq_poly_factor_t>,
pub fq_nmod: ::std::mem::ManuallyDrop<fq_nmod_poly_factor_t>,
pub fq_zech: ::std::mem::ManuallyDrop<fq_zech_poly_factor_t>,
pub nmod: ::std::mem::ManuallyDrop<nmod_poly_factor_t>,
pub fmpz_mod: ::std::mem::ManuallyDrop<fmpz_mod_poly_factor_t>,
}
impl Default for fq_default_poly_factor_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 fq_default_poly_factor_t = [fq_default_poly_factor_struct; 1usize];
unsafe extern "C" {
pub fn fq_default_poly_factor_init(
fac: *mut fq_default_poly_factor_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_factor_clear(
fac: *mut fq_default_poly_factor_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_factor_realloc(
fac: *mut fq_default_poly_factor_struct,
alloc: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_factor_fit_length(
fac: *mut fq_default_poly_factor_struct,
len: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_factor_length(
fac: *mut fq_default_poly_factor_struct,
ctx: *const fq_default_ctx_struct,
) -> slong;
pub fn fq_default_poly_factor_exp(
fac: *mut fq_default_poly_factor_struct,
i: slong,
ctx: *const fq_default_ctx_struct,
) -> slong;
pub fn fq_default_poly_factor_set(
res: *mut fq_default_poly_factor_struct,
fac: *const fq_default_poly_factor_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_factor_insert(
fac: *mut fq_default_poly_factor_struct,
poly: *const fq_default_poly_struct,
exp: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_factor_get_poly(
poly: *mut fq_default_poly_struct,
fac: *const fq_default_poly_factor_struct,
i: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_factor_print(
fac: *const fq_default_poly_factor_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_factor_print_pretty(
fac: *const fq_default_poly_factor_struct,
var: *const ::std::os::raw::c_char,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_factor_concat(
res: *mut fq_default_poly_factor_struct,
fac: *const fq_default_poly_factor_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_factor_pow(
fac: *mut fq_default_poly_factor_struct,
exp: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_is_squarefree(
f: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_poly_factor_squarefree(
res: *mut fq_default_poly_factor_struct,
f: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_is_irreducible(
f: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_default_poly_factor_distinct_deg(
res: *mut fq_default_poly_factor_struct,
poly: *const fq_default_poly_struct,
degs: *const *mut slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_factor_equal_deg(
factors: *mut fq_default_poly_factor_struct,
pol: *const fq_default_poly_struct,
d: slong,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_factor(
result: *mut fq_default_poly_factor_struct,
leading_coeff: *mut fq_default_struct,
input: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_factor_split_single(
linfactor: *mut fq_default_poly_struct,
input: *const fq_default_poly_struct,
ctx: *const fq_default_ctx_struct,
);
pub fn fq_default_poly_roots(
r: *mut fq_default_poly_factor_struct,
f: *const fq_default_poly_struct,
with_multiplicity: ::std::os::raw::c_int,
ctx: *const fq_default_ctx_struct,
);
}
/* fq_embed.h */
unsafe extern "C" {
pub fn fq_modulus_pow_series_inv(
res: *mut fmpz_mod_poly_struct,
ctx: *const fq_ctx_struct,
trunc: slong,
);
pub fn fq_modulus_derivative_inv(
m_prime: *mut fmpz_poly_struct,
m_prime_inv: *mut fmpz_poly_struct,
ctx: *const fq_ctx_struct,
);
}
/* fq_mat.h */
unsafe extern "C" {
pub fn FQ_MAT_MUL_KS_CUTOFF(
r: slong,
c: slong,
ctx: *const fq_ctx_struct,
) -> ::std::os::raw::c_int;
}
/* fq_nmod.h */
unsafe extern "C" {
pub fn fq_nmod_ctx_init_ui(
ctx: *mut fq_nmod_ctx_struct,
prime: ulong,
deg: slong,
var: *const ::std::os::raw::c_char,
);
pub fn _fq_nmod_ctx_init_conway_ui(
ctx: *mut fq_nmod_ctx_struct,
prime: ulong,
deg: slong,
var: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_ctx_init_conway_ui(
ctx: *mut fq_nmod_ctx_struct,
prime: ulong,
deg: slong,
var: *const ::std::os::raw::c_char,
);
pub fn fq_nmod_ctx_init_minimal_weight_ui(
ctx: *mut fq_nmod_ctx_struct,
prime: ulong,
deg: slong,
var: *const ::std::os::raw::c_char,
);
pub fn fq_nmod_ctx_init_modulus(
ctx: *mut fq_nmod_ctx_struct,
modulus: *const nmod_poly_struct,
var: *const ::std::os::raw::c_char,
);
pub fn fq_nmod_ctx_init_randtest(
ctx: *mut fq_nmod_ctx_struct,
state: *mut flint_rand_struct,
type_: ::std::os::raw::c_int,
);
pub fn fq_nmod_ctx_init_randtest_reducible(
ctx: *mut fq_nmod_ctx_struct,
state: *mut flint_rand_struct,
type_: ::std::os::raw::c_int,
);
pub fn fq_nmod_ctx_clear(ctx: *mut fq_nmod_ctx_struct);
pub fn fq_nmod_ctx_modulus(
ctx: *const fq_nmod_ctx_struct,
) -> *const nmod_poly_struct;
pub fn fq_nmod_ctx_degree(ctx: *const fq_nmod_ctx_struct) -> slong;
pub fn fq_nmod_ctx_prime(ctx: *const fq_nmod_ctx_struct) -> ulong;
pub fn fq_nmod_ctx_order(f: *mut fmpz, ctx: *const fq_nmod_ctx_struct);
pub fn fq_nmod_ctx_fprint(
file: *mut FILE,
ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_ctx_print(ctx: *const fq_nmod_ctx_struct);
pub fn fq_nmod_init(rop: *mut nmod_poly_struct, ctx: *const fq_nmod_ctx_struct);
pub fn fq_nmod_init2(rop: *mut nmod_poly_struct, ctx: *const fq_nmod_ctx_struct);
pub fn fq_nmod_clear(
rop: *mut nmod_poly_struct,
UNUSED_ctx: *const fq_nmod_ctx_struct,
);
pub fn _fq_nmod_sparse_reduce(
R: *mut ulong,
lenR: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn _fq_nmod_dense_reduce(
R: *mut ulong,
lenR: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn _fq_nmod_reduce(R: *mut ulong, lenR: slong, ctx: *const fq_nmod_ctx_struct);
pub fn fq_nmod_reduce(rop: *mut nmod_poly_struct, ctx: *const fq_nmod_ctx_struct);
pub fn fq_nmod_add(
rop: *mut nmod_poly_struct,
op1: *const nmod_poly_struct,
op2: *const nmod_poly_struct,
UNUSED_ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_sub(
rop: *mut nmod_poly_struct,
op1: *const nmod_poly_struct,
op2: *const nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_sub_one(
rop: *mut nmod_poly_struct,
op1: *const nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_neg(
rop: *mut nmod_poly_struct,
op1: *const nmod_poly_struct,
UNUSED_ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_mul(
rop: *mut nmod_poly_struct,
op1: *const nmod_poly_struct,
op2: *const nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_mul_fmpz(
rop: *mut nmod_poly_struct,
op: *const nmod_poly_struct,
x: *const fmpz,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_mul_si(
rop: *mut nmod_poly_struct,
op: *const nmod_poly_struct,
x: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_mul_ui(
rop: *mut nmod_poly_struct,
op: *const nmod_poly_struct,
x: ulong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_sqr(
rop: *mut nmod_poly_struct,
op: *const nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_inv(
rop: *mut nmod_poly_struct,
op1: *const nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn _fq_nmod_pow(
rop: *mut ulong,
op: *const ulong,
len: slong,
e: *const fmpz,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_pow(
rop: *mut nmod_poly_struct,
op1: *const nmod_poly_struct,
e: *const fmpz,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_pow_ui(
rop: *mut nmod_poly_struct,
op1: *const nmod_poly_struct,
e: ulong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_sqrt(
rop: *mut nmod_poly_struct,
op: *const nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_pth_root(
rop: *mut nmod_poly_struct,
op1: *const nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_is_square(
op: *const nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_randtest(
rop: *mut nmod_poly_struct,
state: *mut flint_rand_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_randtest_dense(
rop: *mut nmod_poly_struct,
state: *mut flint_rand_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_randtest_not_zero(
rop: *mut nmod_poly_struct,
state: *mut flint_rand_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_rand(
rop: *mut nmod_poly_struct,
state: *mut flint_rand_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_rand_not_zero(
rop: *mut nmod_poly_struct,
state: *mut flint_rand_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_equal(
op1: *const nmod_poly_struct,
op2: *const nmod_poly_struct,
UNUSED_ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_is_zero(
op: *const nmod_poly_struct,
UNUSED_ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_is_one(
op: *const nmod_poly_struct,
UNUSED_ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_cmp(
a: *const nmod_poly_struct,
b: *const nmod_poly_struct,
UNUSED_ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_set(
rop: *mut nmod_poly_struct,
op: *const nmod_poly_struct,
UNUSED_ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_set_si(
rop: *mut nmod_poly_struct,
x: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_set_ui(
rop: *mut nmod_poly_struct,
x: ulong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_set_fmpz(
rop: *mut nmod_poly_struct,
x: *const fmpz,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_set_nmod_poly(
a: *mut nmod_poly_struct,
b: *const nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_get_fmpz(
a: *mut fmpz,
b: *const nmod_poly_struct,
UNUSED_ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_get_nmod_poly(
a: *mut nmod_poly_struct,
b: *const nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_swap(
op1: *mut nmod_poly_struct,
op2: *mut nmod_poly_struct,
UNUSED_ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_zero(
rop: *mut nmod_poly_struct,
UNUSED_ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_one(
rop: *mut nmod_poly_struct,
UNUSED_ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_gen(rop: *mut nmod_poly_struct, ctx: *const fq_nmod_ctx_struct);
pub fn fq_nmod_fprint(
file: *mut FILE,
op: *const nmod_poly_struct,
UNUSED_ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_fprint_pretty(
file: *mut FILE,
op: *const nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_print(
op: *const nmod_poly_struct,
UNUSED_ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_print_pretty(
op: *const nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_get_str(
op: *const nmod_poly_struct,
UNUSED_ctx: *const fq_nmod_ctx_struct,
) -> *mut ::std::os::raw::c_char;
pub fn fq_nmod_get_str_pretty(
op: *const nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
) -> *mut ::std::os::raw::c_char;
pub fn _fq_nmod_trace(
rop: *mut fmpz,
op: *const ulong,
len: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_trace(
rop: *mut fmpz,
op: *const nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn _fq_nmod_frobenius(
rop: *mut ulong,
op: *const ulong,
len: slong,
e: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_frobenius(
rop: *mut nmod_poly_struct,
op: *const nmod_poly_struct,
e: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn _fq_nmod_norm(
rop: *mut fmpz,
op: *const ulong,
len: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_norm(
rop: *mut fmpz,
op: *const nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_bit_pack(
f: *mut fmpz,
op: *const nmod_poly_struct,
bit_size: flint_bitcnt_t,
UNUSED_ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_bit_unpack(
rop: *mut nmod_poly_struct,
f: *const fmpz,
bit_size: flint_bitcnt_t,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_ctx_init(
ctx: *mut fq_nmod_ctx_struct,
p: *mut fmpz,
d: slong,
var: *const ::std::os::raw::c_char,
);
pub fn _fq_nmod_ctx_init_conway(
ctx: *mut fq_nmod_ctx_struct,
p: *mut fmpz,
d: slong,
var: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_ctx_init_conway(
ctx: *mut fq_nmod_ctx_struct,
p: *mut fmpz,
d: slong,
var: *const ::std::os::raw::c_char,
);
}
/* fq_nmod_embed.h */
unsafe extern "C" {
pub fn fq_nmod_modulus_pow_series_inv(
res: *mut nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
trunc: slong,
);
pub fn fq_nmod_modulus_derivative_inv(
m_prime: *mut nmod_poly_struct,
m_prime_inv: *mut nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
}
/* fq_nmod_mat.h */
unsafe extern "C" {
pub fn FQ_NMOD_MAT_MUL_KS_CUTOFF(
r: slong,
c: slong,
ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
}
/* fq_nmod_mpoly.h */
#[repr(C)]
pub struct fq_nmod_mpoly_univar_struct {
pub coeffs: *mut fq_nmod_mpoly_struct,
pub exps: *mut fmpz,
pub alloc: slong,
pub length: slong,
}
impl Default for fq_nmod_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 fq_nmod_mpoly_univar_t = [fq_nmod_mpoly_univar_struct; 1usize];
#[repr(C)]
pub struct fq_nmod_mpolyu_struct {
pub coeffs: *mut fq_nmod_mpoly_struct,
pub exps: *mut ulong,
pub alloc: slong,
pub length: slong,
pub bits: flint_bitcnt_t,
}
impl Default for fq_nmod_mpolyu_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 fq_nmod_mpolyu_t = [fq_nmod_mpolyu_struct; 1usize];
#[repr(C)]
pub struct fq_nmod_mpolyn_struct {
pub coeffs: *mut n_fq_poly_struct,
pub exps: *mut ulong,
pub alloc: slong,
pub length: slong,
pub bits: slong,
}
impl Default for fq_nmod_mpolyn_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 fq_nmod_mpolyn_t = [fq_nmod_mpolyn_struct; 1usize];
#[repr(C)]
pub struct fq_nmod_mpolyun_struct {
pub coeffs: *mut fq_nmod_mpolyn_struct,
pub exps: *mut ulong,
pub alloc: slong,
pub length: slong,
pub bits: flint_bitcnt_t,
}
impl Default for fq_nmod_mpolyun_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 fq_nmod_mpolyun_t = [fq_nmod_mpolyun_struct; 1usize];
#[repr(C)]
pub struct bad_fq_nmod_embed {
pub smctx: *const fq_nmod_ctx_struct,
pub phi_sm: fq_nmod_poly_t,
pub h: fq_nmod_poly_t,
pub h_as_n_fq_poly: n_fq_poly_t,
pub lgctx: *const fq_nmod_ctx_struct,
pub theta_lg: fq_nmod_t,
pub x_lg: fq_nmod_t,
pub lg_to_sm_mat: nmod_mat_t,
pub sm_to_lg_mat: nmod_mat_t,
}
impl Default for bad_fq_nmod_embed {
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 bad_fq_nmod_embed_struct = bad_fq_nmod_embed;
pub type bad_fq_nmod_embed_t = [bad_fq_nmod_embed_struct; 1usize];
#[repr(C)]
pub struct bad_fq_nmod_mpoly_embed_chooser {
pub embed: *mut bad_fq_nmod_embed_struct,
pub m: slong,
pub n: slong,
pub k: slong,
pub p: ulong,
}
impl Default for bad_fq_nmod_mpoly_embed_chooser {
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 bad_fq_nmod_mpoly_embed_chooser_struct = bad_fq_nmod_mpoly_embed_chooser;
pub type bad_fq_nmod_mpoly_embed_chooser_t = [bad_fq_nmod_mpoly_embed_chooser_struct; 1usize];
#[repr(C)]
pub struct fq_nmod_mpoly_geobucket {
pub polys: [fq_nmod_mpoly_struct; 32usize],
pub temps: [fq_nmod_mpoly_struct; 32usize],
pub length: slong,
}
impl Default for fq_nmod_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 fq_nmod_mpoly_geobucket_struct = fq_nmod_mpoly_geobucket;
pub type fq_nmod_mpoly_geobucket_t = [fq_nmod_mpoly_geobucket_struct; 1usize];
unsafe extern "C" {
pub fn bad_fq_nmod_embed_clear(emb: *mut bad_fq_nmod_embed_struct);
pub fn bad_fq_nmod_embed_array_init(
emb: *mut bad_fq_nmod_embed_struct,
bigctx: *const fq_nmod_ctx_struct,
smallctx: *const fq_nmod_ctx_struct,
);
pub fn bad_fq_nmod_embed_sm_to_lg(
out: *mut nmod_poly_struct,
in_: *const fq_nmod_poly_struct,
emb: *const bad_fq_nmod_embed_struct,
);
pub fn bad_fq_nmod_embed_lg_to_sm(
out: *mut fq_nmod_poly_struct,
in_: *const nmod_poly_struct,
emb: *const bad_fq_nmod_embed_struct,
);
pub fn bad_n_fq_embed_sm_to_lg(
out_: *mut ulong,
in_: *const n_poly_struct,
emb: *const bad_fq_nmod_embed_struct,
);
pub fn bad_fq_nmod_embed_n_fq_sm_to_fq_nmod_lg(
out: *mut nmod_poly_struct,
in_: *const n_poly_struct,
emb: *const bad_fq_nmod_embed_struct,
);
pub fn bad_n_fq_embed_lg_to_sm(
out_: *mut n_poly_struct,
in_: *const ulong,
emb: *const bad_fq_nmod_embed_struct,
);
pub fn bad_fq_nmod_embed_fq_nmod_lg_to_n_fq_sm(
out_: *mut n_poly_struct,
in_: *const nmod_poly_struct,
emb: *const bad_fq_nmod_embed_struct,
);
pub fn bad_n_fq_embed_sm_elem_to_lg(
out: *mut ulong,
in_: *const ulong,
emb: *const bad_fq_nmod_embed_struct,
);
pub fn bad_fq_nmod_embed_sm_elem_to_lg(
out: *mut nmod_poly_struct,
in_: *const nmod_poly_struct,
emb: *const bad_fq_nmod_embed_struct,
);
pub fn bad_fq_nmod_mpoly_embed_chooser_init(
embc: *mut bad_fq_nmod_mpoly_embed_chooser_struct,
ectx: *mut fq_nmod_mpoly_ctx_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
randstate: *mut flint_rand_struct,
) -> *mut bad_fq_nmod_embed_struct;
pub fn bad_fq_nmod_mpoly_embed_chooser_clear(
embc: *mut bad_fq_nmod_mpoly_embed_chooser_struct,
ectx: *mut fq_nmod_mpoly_ctx_struct,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
UNUSED_randstate: *mut flint_rand_struct,
);
pub fn bad_fq_nmod_mpoly_embed_chooser_next(
embc: *mut bad_fq_nmod_mpoly_embed_chooser_struct,
ectx: *mut fq_nmod_mpoly_ctx_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
randstate: *mut flint_rand_struct,
) -> *mut bad_fq_nmod_embed_struct;
pub fn fq_nmod_mpoly_ctx_init_deg(
ctx: *mut fq_nmod_mpoly_ctx_struct,
nvars: slong,
ord: ordering_t,
p: ulong,
deg: slong,
);
pub fn fq_nmod_mpoly_ctx_init(
ctx: *mut fq_nmod_mpoly_ctx_struct,
nvars: slong,
ord: ordering_t,
fqctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_mpoly_ctx_init_rand(
ctx: *mut fq_nmod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
max_nvars: slong,
p_bits: flint_bitcnt_t,
deg_bound: slong,
);
pub fn fq_nmod_mpoly_ctx_clear(ctx: *mut fq_nmod_mpoly_ctx_struct);
pub fn fq_nmod_mpoly_ctx_nvars(ctx: *const fq_nmod_mpoly_ctx_struct) -> slong;
pub fn fq_nmod_mpoly_ctx_ord(ctx: *const fq_nmod_mpoly_ctx_struct) -> ordering_t;
pub fn fq_nmod_mpoly_init(
A: *mut fq_nmod_mpoly_struct,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_clear(
A: *mut fq_nmod_mpoly_struct,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_init2(
A: *mut fq_nmod_mpoly_struct,
alloc: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_init3(
A: *mut fq_nmod_mpoly_struct,
alloc: slong,
bits: flint_bitcnt_t,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_realloc(
A: *mut fq_nmod_mpoly_struct,
alloc: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_fit_length(
A: *mut fq_nmod_mpoly_struct,
length: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_fit_length_fit_bits(
A: *mut fq_nmod_mpoly_struct,
len: slong,
bits: flint_bitcnt_t,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_fit_length_reset_bits(
A: *mut fq_nmod_mpoly_struct,
len: slong,
bits: flint_bitcnt_t,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn _fq_nmod_mpoly_fit_length(
coeffs: *mut *mut ulong,
coeffs_alloc: *mut slong,
d: slong,
exps: *mut *mut ulong,
exps_alloc: *mut slong,
N: slong,
length: slong,
);
pub fn _fq_nmod_mpoly_set_length(
A: *mut fq_nmod_mpoly_struct,
newlen: slong,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_truncate(
A: *mut fq_nmod_mpoly_struct,
newlen: slong,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_set_str_pretty(
A: *mut fq_nmod_mpoly_struct,
str_: *const ::std::os::raw::c_char,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_get_str_pretty(
A: *const fq_nmod_mpoly_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> *mut ::std::os::raw::c_char;
pub fn fq_nmod_mpoly_fprint_pretty(
file: *mut FILE,
A: *const fq_nmod_mpoly_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_print_pretty(
A: *const fq_nmod_mpoly_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_gen(
A: *mut fq_nmod_mpoly_struct,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_is_gen(
A: *const fq_nmod_mpoly_struct,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_set(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_equal(
A: *const fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_swap(
A: *mut fq_nmod_mpoly_struct,
B: *mut fq_nmod_mpoly_struct,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_get_nonzero_n_fq(
A: *const fq_nmod_mpoly_struct,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
) -> *mut ulong;
pub fn fq_nmod_mpoly_is_fq_nmod(
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_get_fq_nmod(
c: *mut nmod_poly_struct,
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_set_fq_nmod(
A: *mut fq_nmod_mpoly_struct,
c: *const nmod_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_set_n_fq(
A: *mut fq_nmod_mpoly_struct,
c: *const ulong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_set_ui(
A: *mut fq_nmod_mpoly_struct,
c: ulong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_set_fmpz(
A: *mut fq_nmod_mpoly_struct,
c: *const fmpz,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_set_fq_nmod_gen(
A: *mut fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_equal_fq_nmod(
A: *const fq_nmod_mpoly_struct,
c: *const nmod_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_zero(
A: *mut fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_one(
A: *mut fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_is_zero(
A: *const fq_nmod_mpoly_struct,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_is_one(
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_degrees_fit_si(
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_degrees_fmpz(
degs: *mut *mut fmpz,
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_degrees_si(
degs: *mut slong,
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_degree_fmpz(
deg: *mut fmpz,
A: *const fq_nmod_mpoly_struct,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_degree_si(
A: *const fq_nmod_mpoly_struct,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> slong;
pub fn fq_nmod_mpoly_total_degree_fits_si(
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_total_degree_fmpz(
td: *mut fmpz,
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_total_degree_si(
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> slong;
pub fn fq_nmod_mpoly_used_vars(
used: *mut ::std::os::raw::c_int,
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_get_coeff_fq_nmod_monomial(
c: *mut nmod_poly_struct,
A: *const fq_nmod_mpoly_struct,
M: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_set_coeff_fq_nmod_monomial(
A: *mut fq_nmod_mpoly_struct,
c: *const nmod_poly_struct,
M: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_get_coeff_fq_nmod_fmpz(
c: *mut nmod_poly_struct,
A: *const fq_nmod_mpoly_struct,
exp: *const *mut fmpz,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_get_coeff_fq_nmod_ui(
c: *mut nmod_poly_struct,
A: *const fq_nmod_mpoly_struct,
exp: *const ulong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn _fq_nmod_mpoly_set_coeff_fq_nmod_fmpz(
A: *mut fq_nmod_mpoly_struct,
c: *const nmod_poly_struct,
exp: *const fmpz,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_set_coeff_fq_nmod_fmpz(
A: *mut fq_nmod_mpoly_struct,
c: *const nmod_poly_struct,
exp: *const *mut fmpz,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_set_coeff_fq_nmod_ui(
A: *mut fq_nmod_mpoly_struct,
c: *const nmod_poly_struct,
exp: *const ulong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_get_coeff_vars_ui(
C: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
vars: *const slong,
exps: *const ulong,
length: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn _fq_nmod_mpoly_leadcoeff(
A: *const fq_nmod_mpoly_struct,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
) -> *mut ulong;
pub fn fq_nmod_mpoly_is_monic(
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_is_fq_nmod_poly(
A: *const fq_nmod_mpoly_struct,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_get_fq_nmod_poly(
A: *mut fq_nmod_poly_struct,
B: *const fq_nmod_mpoly_struct,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fq_nmod_mpoly_set_fq_nmod_poly(
A: *mut fq_nmod_mpoly_struct,
Abits: flint_bitcnt_t,
Bcoeffs: *const fq_nmod_struct,
Blen: slong,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_set_fq_nmod_poly(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_poly_struct,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_cmp(
A: *const fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_is_canonical(
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_length(
A: *const fq_nmod_mpoly_struct,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
) -> slong;
pub fn fq_nmod_mpoly_resize(
A: *mut fq_nmod_mpoly_struct,
new_length: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_get_term_coeff_fq_nmod(
c: *mut nmod_poly_struct,
A: *const fq_nmod_mpoly_struct,
i: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_set_term_coeff_fq_nmod(
A: *mut fq_nmod_mpoly_struct,
i: slong,
c: *const nmod_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_term_exp_fits_ui(
A: *const fq_nmod_mpoly_struct,
i: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_term_exp_fits_si(
A: *const fq_nmod_mpoly_struct,
i: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_get_term_exp_fmpz(
exp: *mut *mut fmpz,
A: *const fq_nmod_mpoly_struct,
i: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_get_term_exp_ui(
exp: *mut ulong,
A: *const fq_nmod_mpoly_struct,
i: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_get_term_exp_si(
exp: *mut slong,
A: *const fq_nmod_mpoly_struct,
i: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_get_term_var_exp_ui(
A: *const fq_nmod_mpoly_struct,
i: slong,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ulong;
pub fn fq_nmod_mpoly_get_term_var_exp_si(
A: *const fq_nmod_mpoly_struct,
i: slong,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> slong;
pub fn fq_nmod_mpoly_set_term_exp_fmpz(
A: *mut fq_nmod_mpoly_struct,
i: slong,
exp: *const *mut fmpz,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_set_term_exp_ui(
A: *mut fq_nmod_mpoly_struct,
i: slong,
exp: *const ulong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_get_term(
M: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
i: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_get_term_monomial(
M: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
i: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_push_term_fq_nmod_fmpz(
A: *mut fq_nmod_mpoly_struct,
c: *const nmod_poly_struct,
exp: *const *mut fmpz,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_push_term_fq_nmod_ffmpz(
A: *mut fq_nmod_mpoly_struct,
c: *const nmod_poly_struct,
exp: *const fmpz,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_push_term_fq_nmod_ui(
A: *mut fq_nmod_mpoly_struct,
c: *const nmod_poly_struct,
exp: *const ulong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_sort_terms(
A: *mut fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_combine_like_terms(
A: *mut fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_reverse(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_assert_canonical(
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn _fq_nmod_mpoly_radix_sort1(
A: *mut fq_nmod_mpoly_struct,
left: slong,
right: slong,
pos: flint_bitcnt_t,
cmpmask: ulong,
totalmask: ulong,
d: slong,
);
pub fn _fq_nmod_mpoly_radix_sort(
A: *mut fq_nmod_mpoly_struct,
left: slong,
right: slong,
pos: flint_bitcnt_t,
N: slong,
cmpmask: *mut ulong,
d: slong,
);
pub fn _fq_nmod_mpoly_push_exp_ffmpz(
A: *mut fq_nmod_mpoly_struct,
exp: *const fmpz,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn _fq_nmod_mpoly_push_exp_pfmpz(
A: *mut fq_nmod_mpoly_struct,
exp: *const *mut fmpz,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn _fq_nmod_mpoly_push_exp_ui(
A: *mut fq_nmod_mpoly_struct,
exp: *const ulong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_randtest_bound(
A: *mut fq_nmod_mpoly_struct,
state: *mut flint_rand_struct,
length: slong,
exp_bound: ulong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_randtest_bounds(
A: *mut fq_nmod_mpoly_struct,
state: *mut flint_rand_struct,
length: slong,
exp_bounds: *mut ulong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_randtest_bits(
A: *mut fq_nmod_mpoly_struct,
state: *mut flint_rand_struct,
length: slong,
exp_bits: flint_bitcnt_t,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn _fq_nmod_mpoly_add(
coeff1: *mut ulong,
exp1: *mut ulong,
coeff2: *mut ulong,
exp2: *const ulong,
len2: slong,
coeff3: *mut ulong,
exp3: *const ulong,
len3: slong,
N: slong,
cmpmask: *const ulong,
fqctx: *const fq_nmod_ctx_struct,
) -> slong;
pub fn fq_nmod_mpoly_add_fq_nmod(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
c: *const nmod_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_add_n_fq(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
c: *const ulong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_sub_fq_nmod(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
C: *const nmod_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_add(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
C: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_sub(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
C: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_neg(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_scalar_mul_fq_nmod(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
c: *const nmod_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_scalar_mul_n_fq(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
c: *const ulong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_make_monic(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_scalar_addmul_fq_nmod(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
C: *const fq_nmod_mpoly_struct,
e: *const nmod_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_derivative(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_evaluate_one_fq_nmod(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
var: slong,
val: *const nmod_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn _fq_nmod_mpoly_eval_all_fq_nmod(
ev: *mut nmod_poly_struct,
Acoeffs: *const ulong,
Aexps: *const ulong,
Alen: slong,
Abits: flint_bitcnt_t,
alphas: *const *mut fq_nmod_struct,
mctx: *const mpoly_ctx_struct,
fqctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_mpoly_evaluate_all_fq_nmod(
ev: *mut nmod_poly_struct,
A: *const fq_nmod_mpoly_struct,
vals: *const *mut fq_nmod_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_compose_fq_nmod_poly(
A: *mut fq_nmod_poly_struct,
B: *const fq_nmod_mpoly_struct,
C: *const *mut fq_nmod_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fq_nmod_mpoly_compose_mat(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
M: *const fmpz_mat_struct,
ctxB: *const fq_nmod_mpoly_ctx_struct,
ctxAC: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_compose_fq_nmod_mpoly_geobucket(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
C: *const *mut fq_nmod_mpoly_struct,
ctxB: *const fq_nmod_mpoly_ctx_struct,
ctxAC: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_compose_fq_nmod_mpoly_horner(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
C: *const *mut fq_nmod_mpoly_struct,
ctxB: *const fq_nmod_mpoly_ctx_struct,
ctxAC: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_compose_fq_nmod_mpoly(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
C: *const *mut fq_nmod_mpoly_struct,
ctxB: *const fq_nmod_mpoly_ctx_struct,
ctxAC: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_compose_fq_nmod_mpoly_gen(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
c: *const slong,
ctxB: *const fq_nmod_mpoly_ctx_struct,
ctxAC: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_mul(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
C: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_mul_johnson(
poly1: *mut fq_nmod_mpoly_struct,
poly2: *const fq_nmod_mpoly_struct,
poly3: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn _fq_nmod_mpoly_mul_johnson(
A: *mut fq_nmod_mpoly_struct,
Bcoeffs: *const ulong,
Bexps: *const ulong,
Blen: slong,
Ccoeffs: *const ulong,
Cexps: *const ulong,
Clen: slong,
bits: flint_bitcnt_t,
N: slong,
cmpmask: *const ulong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_mpoly_pow_fmpz(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
k: *const fmpz,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_pow_ui(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
k: ulong,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_divides(
Q: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_div(
Q: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_divrem(
Q: *mut fq_nmod_mpoly_struct,
R: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_divrem_ideal(
Q: *mut *mut fq_nmod_mpoly_struct,
R: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
B: *const *mut fq_nmod_mpoly_struct,
len: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_divexact(
Q: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_divides_monagan_pearce(
poly1: *mut fq_nmod_mpoly_struct,
poly2: *const fq_nmod_mpoly_struct,
poly3: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_div_monagan_pearce(
q: *mut fq_nmod_mpoly_struct,
poly2: *const fq_nmod_mpoly_struct,
poly3: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_divrem_monagan_pearce(
q: *mut fq_nmod_mpoly_struct,
r: *mut fq_nmod_mpoly_struct,
poly2: *const fq_nmod_mpoly_struct,
poly3: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_divrem_ideal_monagan_pearce(
q: *mut *mut fq_nmod_mpoly_struct,
r: *mut fq_nmod_mpoly_struct,
poly2: *const fq_nmod_mpoly_struct,
poly3: *const *mut fq_nmod_mpoly_struct,
len: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn _fq_nmod_mpoly_divides_monagan_pearce(
A: *mut fq_nmod_mpoly_struct,
coeff2: *const ulong,
exp2: *const ulong,
len2: slong,
coeff3: *const ulong,
exp3: *const ulong,
len3: slong,
bits: flint_bitcnt_t,
N: slong,
cmpmask: *const ulong,
fqctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_sqrt_heap(
Q: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_sqrt(
Q: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_is_square(
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_quadratic_root(
Q: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_term_content(
M: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_content_vars(
g: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
vars: *mut slong,
vars_length: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_gcd(
G: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fq_nmod_mpoly_gcd_algo(
G: *mut fq_nmod_mpoly_struct,
Abar: *mut fq_nmod_mpoly_struct,
Bbar: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
algo: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_gcd_cofactors(
G: *mut fq_nmod_mpoly_struct,
Abar: *mut fq_nmod_mpoly_struct,
Bbar: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_gcd_brown(
G: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_gcd_hensel(
G: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_gcd_zippel(
G: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_gcd_zippel2(
G: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_deflation(
shift: *mut fmpz,
stride: *mut fmpz,
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_deflate(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
shift: *const fmpz,
stride: *const fmpz,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_inflate(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
shift: *const fmpz,
stride: *const fmpz,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
///Internal functions (guaranteed to change without notice)
pub fn mpoly_void_ring_init_fq_nmod_mpoly_ctx(
R: *mut mpoly_void_ring_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyl_lead_coeff(
c: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
num_vars: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_to_mpolyl_perm_deflate(
A: *mut fq_nmod_mpoly_struct,
lctx: *const fq_nmod_mpoly_ctx_struct,
B: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
perm: *const slong,
shift: *const ulong,
stride: *const ulong,
);
pub fn fq_nmod_mpoly_from_mpolyl_perm_inflate(
A: *mut fq_nmod_mpoly_struct,
Abits: flint_bitcnt_t,
ctx: *const fq_nmod_mpoly_ctx_struct,
B: *const fq_nmod_mpoly_struct,
lctx: *const fq_nmod_mpoly_ctx_struct,
perm: *const slong,
shift: *const ulong,
stride: *const ulong,
);
pub fn fq_nmod_mpolyl_gcd_zippel_smprime(
rG: *mut fq_nmod_mpoly_struct,
rGdegs: *const slong,
rAbar: *mut fq_nmod_mpoly_struct,
rBbar: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
Adegs: *const slong,
B: *const fq_nmod_mpoly_struct,
Bdegs: *const slong,
gamma: *const fq_nmod_mpoly_struct,
gammadegs: *const slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyl_gcd_zippel_lgprime(
rG: *mut fq_nmod_mpoly_struct,
rGdegs: *const slong,
rAbar: *mut fq_nmod_mpoly_struct,
rBbar: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
Adegs: *const slong,
B: *const fq_nmod_mpoly_struct,
Bdegs: *const slong,
gamma: *const fq_nmod_mpoly_struct,
gammadegs: *const slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyl_gcd_hensel_smprime(
G: *mut fq_nmod_mpoly_struct,
Gdeg: slong,
Abar: *mut fq_nmod_mpoly_struct,
Bbar: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyl_content(
g: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
num_vars: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_pow_rmul(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
k: ulong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn _fq_nmod_mpoly_to_fq_nmod_poly_deflate(
A: *mut fq_nmod_poly_struct,
B: *const fq_nmod_mpoly_struct,
var: slong,
Bshift: *const ulong,
Bstride: *const ulong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn _fq_nmod_mpoly_from_fq_nmod_poly_inflate(
A: *mut fq_nmod_mpoly_struct,
Abits: flint_bitcnt_t,
B: *const fq_nmod_poly_struct,
var: slong,
Ashift: *const ulong,
Astride: *const ulong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_repack_bits(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
Abits: flint_bitcnt_t,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_repack_bits_inplace(
A: *mut fq_nmod_mpoly_struct,
Abits: flint_bitcnt_t,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_ctx_change_modulus(
ctx: *mut fq_nmod_mpoly_ctx_struct,
deg: slong,
);
pub fn fq_nmod_mpoly_univar_init(
A: *mut fq_nmod_mpoly_univar_struct,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_univar_clear(
A: *mut fq_nmod_mpoly_univar_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_univar_fit_length(
A: *mut fq_nmod_mpoly_univar_struct,
length: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_univar_print_pretty(
A: *const fq_nmod_mpoly_univar_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_univar_assert_canonical(
A: *mut fq_nmod_mpoly_univar_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_univar_zero(
A: *mut fq_nmod_mpoly_univar_struct,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_univar_set_coeff_ui(
A: *mut fq_nmod_mpoly_univar_struct,
e: ulong,
c: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_to_univar(
A: *mut fq_nmod_mpoly_univar_struct,
B: *const fq_nmod_mpoly_struct,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn _fq_nmod_mpoly_from_univar(
A: *mut fq_nmod_mpoly_struct,
Abits: flint_bitcnt_t,
B: *const fq_nmod_mpoly_univar_struct,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_from_univar(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_univar_struct,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_univar_swap(
A: *mut fq_nmod_mpoly_univar_struct,
B: *mut fq_nmod_mpoly_univar_struct,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_univar_degree_fits_si(
A: *const fq_nmod_mpoly_univar_struct,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_univar_length(
A: *const fq_nmod_mpoly_univar_struct,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
) -> slong;
pub fn fq_nmod_mpoly_univar_get_term_exp_si(
A: *mut fq_nmod_mpoly_univar_struct,
i: slong,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
) -> slong;
pub fn fq_nmod_mpoly_univar_get_term_coeff(
c: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_univar_struct,
i: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_univar_swap_term_coeff(
c: *mut fq_nmod_mpoly_struct,
A: *mut fq_nmod_mpoly_univar_struct,
i: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_univar_pseudo_gcd(
Gx: *mut fq_nmod_mpoly_univar_struct,
Ax: *const fq_nmod_mpoly_univar_struct,
Bx: *const fq_nmod_mpoly_univar_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_univar_resultant(
R: *mut fq_nmod_mpoly_struct,
Ax: *const fq_nmod_mpoly_univar_struct,
Bx: *const fq_nmod_mpoly_univar_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_univar_discriminant(
D: *mut fq_nmod_mpoly_struct,
Fx: *const fq_nmod_mpoly_univar_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_resultant(
R: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_discriminant(
R: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyu_is_canonical(
poly: *const fq_nmod_mpolyu_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyu_init(
A: *mut fq_nmod_mpolyu_struct,
bits: flint_bitcnt_t,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyu_clear(
A: *mut fq_nmod_mpolyu_struct,
uctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyu_swap(
A: *mut fq_nmod_mpolyu_struct,
B: *mut fq_nmod_mpolyu_struct,
UNUSED_uctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyu_zero(
A: *mut fq_nmod_mpolyu_struct,
uctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyu_is_one(
A: *mut fq_nmod_mpolyu_struct,
uctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyu_print_pretty(
poly: *const fq_nmod_mpolyu_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyu_fit_length(
A: *mut fq_nmod_mpolyu_struct,
length: slong,
uctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyu_one(
A: *mut fq_nmod_mpolyu_struct,
uctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyu_degrees_si(
degs: *mut slong,
A: *const fq_nmod_mpolyu_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyu_repack_bits_inplace(
A: *mut fq_nmod_mpolyu_struct,
bits: flint_bitcnt_t,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyu_shift_right(A: *mut fq_nmod_mpolyu_struct, s: ulong);
pub fn fq_nmod_mpolyu_shift_left(A: *mut fq_nmod_mpolyu_struct, s: ulong);
pub fn fq_nmod_mpolyu_content_mpoly(
g: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpolyu_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyu_scalar_mul_fq_nmod(
A: *mut fq_nmod_mpolyu_struct,
c: *mut nmod_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyu_set(
A: *mut fq_nmod_mpolyu_struct,
B: *const fq_nmod_mpolyu_struct,
uctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyu_evaluate_one_fq_nmod(
E: *mut fq_nmod_mpolyu_struct,
A: *mut fq_nmod_mpolyu_struct,
var: slong,
alpha: *const nmod_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyu_setform(
A: *mut fq_nmod_mpolyu_struct,
B: *mut fq_nmod_mpolyu_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn _fq_nmod_mpolyu_get_coeff(
A: *mut fq_nmod_mpolyu_struct,
pow: ulong,
uctx: *const fq_nmod_mpoly_ctx_struct,
) -> *mut fq_nmod_mpoly_struct;
pub fn fq_nmod_mpoly_to_mpolyu_perm_deflate(
A: *mut fq_nmod_mpolyu_struct,
uctx: *const fq_nmod_mpoly_ctx_struct,
B: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
perm: *const slong,
shift: *const ulong,
stride: *const ulong,
);
pub fn fq_nmod_mpoly_from_mpolyu_perm_inflate(
A: *mut fq_nmod_mpoly_struct,
Abits: flint_bitcnt_t,
ctx: *const fq_nmod_mpoly_ctx_struct,
B: *const fq_nmod_mpolyu_struct,
uctx: *const fq_nmod_mpoly_ctx_struct,
perm: *const slong,
shift: *const ulong,
stride: *const ulong,
);
pub fn fq_nmod_mpolyuu_divides(
Q: *mut fq_nmod_mpolyu_struct,
A: *const fq_nmod_mpolyu_struct,
B: *const fq_nmod_mpolyu_struct,
nmainvars: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyu_divexact_mpoly_inplace(
A: *mut fq_nmod_mpolyu_struct,
c: *mut fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyu_mul_mpoly(
A: *mut fq_nmod_mpolyu_struct,
B: *mut fq_nmod_mpolyu_struct,
c: *mut fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyu_mul_mpoly_inplace(
A: *mut fq_nmod_mpolyu_struct,
c: *mut fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyu_gcdm_zippel(
G: *mut fq_nmod_mpolyu_struct,
Abar: *mut fq_nmod_mpolyu_struct,
Bbar: *mut fq_nmod_mpolyu_struct,
A: *mut fq_nmod_mpolyu_struct,
B: *mut fq_nmod_mpolyu_struct,
ctx: *mut fq_nmod_mpoly_ctx_struct,
randstate: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyu_leadcoeff(
A: *const fq_nmod_mpolyu_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> *mut ulong;
pub fn fq_nmod_mpolyn_init(
A: *mut fq_nmod_mpolyn_struct,
bits: flint_bitcnt_t,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyn_clear(
A: *mut fq_nmod_mpolyn_struct,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyn_swap(
A: *mut fq_nmod_mpolyn_struct,
B: *mut fq_nmod_mpolyn_struct,
);
pub fn fq_nmod_mpolyn_is_canonical(
A: *const fq_nmod_mpolyn_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyn_zero(
A: *mut fq_nmod_mpolyn_struct,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyn_one(
A: *mut fq_nmod_mpolyn_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyn_is_zero(
A: *mut fq_nmod_mpolyn_struct,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyn_print_pretty(
A: *const fq_nmod_mpolyn_struct,
x_in: *mut *const ::std::os::raw::c_char,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyn_fit_length(
A: *mut fq_nmod_mpolyn_struct,
length: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyn_fit_bits(
A: *mut fq_nmod_mpolyn_struct,
bits: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyn_set(
A: *mut fq_nmod_mpolyn_struct,
B: *const fq_nmod_mpolyn_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyn_leadcoeff(
A: *mut fq_nmod_mpolyn_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> *mut ulong;
pub fn fq_nmod_mpolyn_leadcoeff_poly(
A: *const fq_nmod_mpolyn_struct,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
) -> *mut n_poly_struct;
pub fn fq_nmod_mpoly_to_mpolyn_perm_deflate(
A: *mut fq_nmod_mpolyn_struct,
nctx: *const fq_nmod_mpoly_ctx_struct,
B: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
perm: *const slong,
shift: *const ulong,
stride: *const ulong,
);
pub fn fq_nmod_mpoly_from_mpolyn_perm_inflate(
A: *mut fq_nmod_mpoly_struct,
Abits: flint_bitcnt_t,
ctx: *const fq_nmod_mpoly_ctx_struct,
B: *const fq_nmod_mpolyn_struct,
nctx: *const fq_nmod_mpoly_ctx_struct,
perm: *const slong,
shift: *const ulong,
stride: *const ulong,
);
pub fn fq_nmod_mpolyun_init(
A: *mut fq_nmod_mpolyun_struct,
bits: flint_bitcnt_t,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyun_clear(
A: *mut fq_nmod_mpolyun_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyun_is_canonical(
A: *const fq_nmod_mpolyun_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyun_print_pretty(
poly: *const fq_nmod_mpolyun_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyun_swap(
A: *mut fq_nmod_mpolyun_struct,
B: *mut fq_nmod_mpolyun_struct,
);
pub fn fq_nmod_mpolyun_zero(
A: *mut fq_nmod_mpolyun_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyun_fit_length(
A: *mut fq_nmod_mpolyun_struct,
length: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyun_one(
A: *mut fq_nmod_mpolyun_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyn_is_nonzero_fq_nmod(
A: *const fq_nmod_mpolyn_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyun_is_nonzero_fq_nmod(
A: *const fq_nmod_mpolyun_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyn_scalar_mul_fq_nmod(
A: *mut fq_nmod_mpolyn_struct,
c: *const nmod_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyun_scalar_mul_fq_nmod(
A: *mut fq_nmod_mpolyun_struct,
c: *const nmod_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyun_shift_right(A: *mut fq_nmod_mpolyun_struct, s: ulong);
pub fn fq_nmod_mpolyun_shift_left(A: *mut fq_nmod_mpolyun_struct, s: ulong);
pub fn fq_nmod_mpolyn_mul_poly(
A: *mut fq_nmod_mpolyn_struct,
B: *const fq_nmod_mpolyn_struct,
c: *const fq_nmod_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyun_mul_poly(
A: *mut fq_nmod_mpolyun_struct,
B: *const fq_nmod_mpolyun_struct,
c: *const fq_nmod_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyn_divexact_poly(
A: *mut fq_nmod_mpolyn_struct,
B: *const fq_nmod_mpolyn_struct,
c: *const fq_nmod_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyun_divexact_poly(
A: *mut fq_nmod_mpolyun_struct,
B: *const fq_nmod_mpolyun_struct,
c: *const fq_nmod_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyn_content_poly(
g: *mut fq_nmod_poly_struct,
B: *mut fq_nmod_mpolyn_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyun_content_poly(
g: *mut fq_nmod_poly_struct,
B: *mut fq_nmod_mpolyun_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyn_lastdeg(
A: *mut fq_nmod_mpolyn_struct,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
) -> slong;
pub fn fq_nmod_mpolyun_lastdeg(
A: *mut fq_nmod_mpolyun_struct,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
) -> slong;
pub fn fq_nmod_mpolyun_set(
A: *mut fq_nmod_mpolyun_struct,
B: *const fq_nmod_mpolyun_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_cvtto_mpolyn(
A: *mut fq_nmod_mpolyn_struct,
B: *const fq_nmod_mpoly_struct,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyu_cvtto_mpolyun(
A: *mut fq_nmod_mpolyun_struct,
B: *const fq_nmod_mpolyu_struct,
k: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_cvtfrom_mpolyn(
A: *mut fq_nmod_mpoly_struct,
B: *mut fq_nmod_mpolyn_struct,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyu_cvtfrom_mpolyun(
A: *mut fq_nmod_mpolyu_struct,
B: *mut fq_nmod_mpolyun_struct,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyun_leadcoeff_poly(
A: *const fq_nmod_mpolyun_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> *mut n_poly_struct;
/// gcd
pub fn fq_nmod_next(
alpha: *mut nmod_poly_struct,
fqctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_next_not_zero(
alpha: *mut nmod_poly_struct,
fqctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_mpolyu_gcds_zippel(
G: *mut fq_nmod_mpolyu_struct,
A: *mut fq_nmod_mpolyu_struct,
B: *mut fq_nmod_mpolyu_struct,
f: *mut fq_nmod_mpolyu_struct,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
randstate: *mut flint_rand_struct,
degbound: *mut slong,
) -> nmod_gcds_ret_t;
pub fn fq_nmod_mpolyu_gcdp_zippel_univar(
G: *mut fq_nmod_mpolyu_struct,
Abar: *mut fq_nmod_mpolyu_struct,
Bbar: *mut fq_nmod_mpolyu_struct,
A: *mut fq_nmod_mpolyu_struct,
B: *mut fq_nmod_mpolyu_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyu_gcdp_zippel_univar_no_cofactors(
G: *mut fq_nmod_mpolyu_struct,
A: *mut fq_nmod_mpolyu_struct,
B: *mut fq_nmod_mpolyu_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyu_gcdp_zippel(
G: *mut fq_nmod_mpolyu_struct,
Abar: *mut fq_nmod_mpolyu_struct,
Bbar: *mut fq_nmod_mpolyu_struct,
A: *mut fq_nmod_mpolyu_struct,
B: *mut fq_nmod_mpolyu_struct,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
randstate: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyn_gcd_brown_smprime(
G: *mut fq_nmod_mpolyn_struct,
Abar: *mut fq_nmod_mpolyn_struct,
Bbar: *mut fq_nmod_mpolyn_struct,
A: *mut fq_nmod_mpolyn_struct,
B: *mut fq_nmod_mpolyn_struct,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyn_gcd_brown_lgprime(
G: *mut fq_nmod_mpolyn_struct,
Abar: *mut fq_nmod_mpolyn_struct,
Bbar: *mut fq_nmod_mpolyn_struct,
A: *mut fq_nmod_mpolyn_struct,
B: *mut fq_nmod_mpolyn_struct,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fq_nmod_mpoly_monomial_evals2_cache(
E: *mut n_polyun_struct,
Aexps: *const ulong,
Abits: flint_bitcnt_t,
Alen: slong,
betas: *const fq_nmod_struct,
m: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn _fq_nmod_mpoly_monomial_evals_cache(
E: *mut n_poly_struct,
Aexps: *const ulong,
Abits: flint_bitcnt_t,
Alen: slong,
betas: *const fq_nmod_struct,
start: slong,
stop: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn n_fq_bpoly_eval_step_sep(
E: *mut n_bpoly_struct,
cur: *mut n_polyun_struct,
inc: *const n_polyun_struct,
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_polyun_zip_start(
Z: *mut n_polyun_struct,
H: *mut n_polyun_struct,
req_images: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_polyu2n_add_zip_must_match(
Z: *mut n_polyun_struct,
A: *const n_bpoly_struct,
cur_length: slong,
ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn n_fq_polyun_zip_solve(
A: *mut fq_nmod_mpoly_struct,
Z: *mut n_polyun_struct,
H: *mut n_polyun_struct,
M: *mut n_polyun_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyn_interp_reduce_lg_poly(
E: *mut fq_nmod_poly_struct,
fqctx: *const fq_nmod_ctx_struct,
A: *const nmod_mpolyn_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_interp_lift_lg_poly(
lastdeg_: *mut slong,
A: *mut nmod_mpolyn_struct,
ctx: *const nmod_mpoly_ctx_struct,
B: *const fq_nmod_poly_struct,
fqctx: *const fq_nmod_ctx_struct,
);
pub fn nmod_mpolyn_interp_crt_lg_poly(
lastdeg_: *mut slong,
F: *mut nmod_mpolyn_struct,
T: *mut nmod_mpolyn_struct,
modulus: *mut n_poly_struct,
ctx: *const nmod_mpoly_ctx_struct,
A: *mut fq_nmod_poly_struct,
fqctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyn_interp_lift_lg_bpoly(
lastdeg_: *mut slong,
F: *mut nmod_mpolyn_struct,
smctx: *const nmod_mpoly_ctx_struct,
A: *mut n_bpoly_struct,
lgctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_interp_crt_lg_bpoly(
lastdeg: *mut slong,
F: *mut nmod_mpolyn_struct,
T: *mut nmod_mpolyn_struct,
modulus: *mut n_poly_struct,
smctx: *const nmod_mpoly_ctx_struct,
A: *mut n_bpoly_struct,
lgctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyn_interp_reduce_lg_mpolyn(
E: *mut fq_nmod_mpolyn_struct,
ectx: *mut fq_nmod_mpoly_ctx_struct,
A: *mut nmod_mpolyn_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_interp_lift_lg_mpolyn(
lastdeg: *mut slong,
A: *mut nmod_mpolyn_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
B: *mut fq_nmod_mpolyn_struct,
ectx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_interp_crt_lg_mpolyn(
lastdeg_: *mut slong,
F: *mut nmod_mpolyn_struct,
T: *mut nmod_mpolyn_struct,
modulus: *mut n_poly_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
A: *mut fq_nmod_mpolyn_struct,
ectx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyn_interp_reduce_lg_mpoly(
A: *mut fq_nmod_mpoly_struct,
B: *mut nmod_mpolyn_struct,
ffctx: *const fq_nmod_mpoly_ctx_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyun_interp_reduce_lg_mpolyu(
A: *mut fq_nmod_mpolyu_struct,
B: *mut nmod_mpolyun_struct,
ffctx: *const fq_nmod_mpoly_ctx_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_interp_lift_lg_mpoly(
A: *mut nmod_mpolyn_struct,
ctx: *const nmod_mpoly_ctx_struct,
Ap: *mut fq_nmod_mpoly_struct,
ctxp: *const fq_nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyun_interp_lift_lg_mpolyu(
A: *mut nmod_mpolyun_struct,
ctx: *const nmod_mpoly_ctx_struct,
Ap: *mut fq_nmod_mpolyu_struct,
ctxp: *const fq_nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyun_interp_crt_lg_mpolyu(
lastdeg: *mut slong,
F: *mut nmod_mpolyun_struct,
T: *mut nmod_mpolyun_struct,
m: *mut n_poly_struct,
ctx: *const nmod_mpoly_ctx_struct,
A: *mut fq_nmod_mpolyu_struct,
ffctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyn_interp_mcrt_lg_mpoly(
lastdeg_: *mut slong,
H: *mut nmod_mpolyn_struct,
smctx: *const nmod_mpoly_ctx_struct,
m: *const n_poly_struct,
inv_m_eval: *const ulong,
A: *mut fq_nmod_mpoly_struct,
lgctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyun_interp_mcrt_lg_mpolyu(
lastdeg: *mut slong,
H: *mut nmod_mpolyun_struct,
ctx: *const nmod_mpoly_ctx_struct,
m: *mut n_poly_struct,
A: *mut fq_nmod_mpolyu_struct,
ctxp: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyn_interp_reduce_sm_poly(
E: *mut fq_nmod_poly_struct,
A: *const fq_nmod_mpolyn_struct,
alpha: *const nmod_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyn_interp_lift_sm_poly(
A: *mut fq_nmod_mpolyn_struct,
B: *const fq_nmod_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyn_interp_crt_sm_poly(
lastdeg_: *mut slong,
F: *mut fq_nmod_mpolyn_struct,
T: *mut fq_nmod_mpolyn_struct,
A: *const fq_nmod_poly_struct,
modulus: *const fq_nmod_poly_struct,
alpha: *const nmod_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyn_interp_lift_sm_bpoly(
F: *mut fq_nmod_mpolyn_struct,
A: *mut n_bpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyn_interp_crt_sm_bpoly(
lastdeg: *mut slong,
F: *mut fq_nmod_mpolyn_struct,
T: *mut fq_nmod_mpolyn_struct,
A: *const n_bpoly_struct,
modulus: *const n_poly_struct,
alphapow: *mut n_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyn_interp_reduce_sm_mpolyn(
E: *mut fq_nmod_mpolyn_struct,
A: *mut fq_nmod_mpolyn_struct,
var: slong,
alpha: *mut nmod_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyn_interp_lift_sm_mpolyn(
A: *mut fq_nmod_mpolyn_struct,
B: *mut fq_nmod_mpolyn_struct,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyn_interp_mcrt_sm_mpoly(
lastdeg_: *mut slong,
F: *mut fq_nmod_mpolyn_struct,
A: *mut fq_nmod_mpoly_struct,
modulus: *const n_poly_struct,
alphapow: *mut n_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyn_interp_crt_sm_mpolyn(
lastdeg_: *mut slong,
F: *mut fq_nmod_mpolyn_struct,
T: *mut fq_nmod_mpolyn_struct,
A: *mut fq_nmod_mpolyn_struct,
var: slong,
modulus: *mut fq_nmod_poly_struct,
alpha: *const nmod_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyn_interp_reduce_lg_poly(
E: *mut fq_nmod_poly_struct,
ectx: *const fq_nmod_mpoly_ctx_struct,
A: *mut fq_nmod_mpolyn_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
emb: *const bad_fq_nmod_embed_struct,
);
pub fn fq_nmod_mpolyn_interp_lift_lg_poly(
lastdeg_: *mut slong,
A: *mut fq_nmod_mpolyn_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
B: *mut fq_nmod_poly_struct,
ectx: *const fq_nmod_mpoly_ctx_struct,
emb: *const bad_fq_nmod_embed_struct,
);
pub fn fq_nmod_mpolyn_interp_crt_lg_poly(
lastdeg_: *mut slong,
F: *mut fq_nmod_mpolyn_struct,
T: *mut fq_nmod_mpolyn_struct,
modulus: *mut fq_nmod_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
A: *mut fq_nmod_poly_struct,
ectx: *const fq_nmod_mpoly_ctx_struct,
emb: *const bad_fq_nmod_embed_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyn_interp_lift_lg_bpoly(
lastdeg_: *mut slong,
F: *mut fq_nmod_mpolyn_struct,
smctx: *const fq_nmod_mpoly_ctx_struct,
A: *mut n_bpoly_struct,
lgctx: *const fq_nmod_mpoly_ctx_struct,
emb: *const bad_fq_nmod_embed_struct,
);
pub fn fq_nmod_mpolyn_interp_crt_lg_bpoly(
lastdeg: *mut slong,
F: *mut fq_nmod_mpolyn_struct,
T: *mut fq_nmod_mpolyn_struct,
modulus: *mut n_poly_struct,
smctx: *const fq_nmod_mpoly_ctx_struct,
A: *mut n_bpoly_struct,
lgctx: *const fq_nmod_mpoly_ctx_struct,
emb: *const bad_fq_nmod_embed_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyn_interp_reduce_lg_mpolyn(
E: *mut fq_nmod_mpolyn_struct,
ectx: *const fq_nmod_mpoly_ctx_struct,
A: *mut fq_nmod_mpolyn_struct,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
emb: *const bad_fq_nmod_embed_struct,
);
pub fn fq_nmod_mpolyn_interp_lift_lg_mpolyn(
lastdeg_: *mut slong,
A: *mut fq_nmod_mpolyn_struct,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
B: *mut fq_nmod_mpolyn_struct,
ectx: *const fq_nmod_mpoly_ctx_struct,
emb: *const bad_fq_nmod_embed_struct,
);
pub fn fq_nmod_mpolyn_interp_crt_lg_mpolyn(
lastdeg_: *mut slong,
F: *mut fq_nmod_mpolyn_struct,
T: *mut fq_nmod_mpolyn_struct,
modulus: *mut fq_nmod_poly_struct,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
A: *mut fq_nmod_mpolyn_struct,
ectx: *const fq_nmod_mpoly_ctx_struct,
emb: *const bad_fq_nmod_embed_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyun_interp_reduce_sm_mpolyu(
B: *mut fq_nmod_mpolyu_struct,
A: *mut fq_nmod_mpolyun_struct,
alpha: *mut nmod_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyn_interp_lift_sm_mpoly(
A: *mut fq_nmod_mpolyn_struct,
B: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyun_interp_lift_sm_mpolyu(
A: *mut fq_nmod_mpolyun_struct,
B: *const fq_nmod_mpolyu_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyun_interp_crt_sm_mpolyu(
lastdeg: *mut slong,
F: *mut fq_nmod_mpolyun_struct,
T: *mut fq_nmod_mpolyun_struct,
A: *mut fq_nmod_mpolyu_struct,
modulus: *mut fq_nmod_poly_struct,
alpha: *mut nmod_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyn_interp_reduce_lg_mpoly(
A: *mut fq_nmod_mpoly_struct,
B: *mut fq_nmod_mpolyn_struct,
ectx: *const fq_nmod_mpoly_ctx_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
emb: *const bad_fq_nmod_embed_struct,
);
pub fn fq_nmod_mpolyun_interp_reduce_lg_mpolyu(
A: *mut fq_nmod_mpolyu_struct,
B: *mut fq_nmod_mpolyun_struct,
ectx: *const fq_nmod_mpoly_ctx_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
emb: *const bad_fq_nmod_embed_struct,
);
pub fn fq_nmod_mpolyn_interp_lift_lg_mpoly(
A: *mut fq_nmod_mpolyn_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
B: *mut fq_nmod_mpoly_struct,
ectx: *const fq_nmod_mpoly_ctx_struct,
emb: *const bad_fq_nmod_embed_struct,
);
pub fn fq_nmod_mpolyun_interp_lift_lg_mpolyu(
A: *mut fq_nmod_mpolyun_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
B: *mut fq_nmod_mpolyu_struct,
ectx: *const fq_nmod_mpoly_ctx_struct,
emb: *const bad_fq_nmod_embed_struct,
);
pub fn fq_nmod_mpolyun_interp_crt_lg_mpolyu(
lastdeg: *mut slong,
F: *mut fq_nmod_mpolyun_struct,
T: *mut fq_nmod_mpolyun_struct,
m: *mut fq_nmod_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
A: *mut fq_nmod_mpolyu_struct,
ectx: *const fq_nmod_mpoly_ctx_struct,
emb: *const bad_fq_nmod_embed_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyun_interp_mcrt_lg_mpolyu(
lastdeg: *mut slong,
H: *mut fq_nmod_mpolyun_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
m: *mut fq_nmod_poly_struct,
A: *mut fq_nmod_mpolyu_struct,
ectx: *const fq_nmod_mpoly_ctx_struct,
emb: *mut bad_fq_nmod_embed_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_geobucket_init(
B: *mut fq_nmod_mpoly_geobucket_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_geobucket_clear(
B: *mut fq_nmod_mpoly_geobucket_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_geobucket_empty(
p: *mut fq_nmod_mpoly_struct,
B: *mut fq_nmod_mpoly_geobucket_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_geobucket_fit_length(
B: *mut fq_nmod_mpoly_geobucket_struct,
i: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_geobucket_set(
B: *mut fq_nmod_mpoly_geobucket_struct,
p: *mut fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_geobucket_add(
B: *mut fq_nmod_mpoly_geobucket_struct,
p: *mut fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_geobucket_sub(
B: *mut fq_nmod_mpoly_geobucket_struct,
p: *mut fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
///Internal consistency checks
pub fn fq_nmod_mpoly_remainder_strongtest(
r: *const fq_nmod_mpoly_struct,
g: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
}
/* fq_nmod_mpoly_factor.h */
#[repr(C)]
pub struct fq_nmod_mpoly_factor_struct {
pub constant: fq_nmod_t,
pub poly: *mut fq_nmod_mpoly_struct,
pub exp: *mut fmpz,
pub num: slong,
pub alloc: slong,
}
impl Default for fq_nmod_mpoly_factor_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 fq_nmod_mpoly_factor_t = [fq_nmod_mpoly_factor_struct; 1usize];
#[repr(C)]
pub struct fq_nmod_mpolyv_struct {
pub coeffs: *mut fq_nmod_mpoly_struct,
pub alloc: slong,
pub length: slong,
}
impl Default for fq_nmod_mpolyv_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type fq_nmod_mpolyv_t = [fq_nmod_mpolyv_struct; 1usize];
#[repr(C)]
pub struct fq_nmod_mpoly_pfrac_struct {
pub bits: flint_bitcnt_t,
pub w: slong,
pub r: slong,
pub inv_prod_dbetas: *mut fq_nmod_poly_struct,
pub inv_prod_dbetas_mvar: *mut fq_nmod_mpoly_struct,
pub dbetas: *mut fq_nmod_poly_struct,
pub dbetas_mvar: *mut fq_nmod_mpoly_struct,
pub prod_mbetas: *mut fq_nmod_mpoly_struct,
pub prod_mbetas_coeffs: *mut fq_nmod_mpolyv_struct,
pub mbetas: *mut fq_nmod_mpoly_struct,
pub deltas: *mut fq_nmod_mpoly_struct,
pub xalpha: *mut fq_nmod_mpoly_struct,
pub q: *mut fq_nmod_mpoly_struct,
pub G: *mut fq_nmod_mpoly_geobucket_struct,
pub qt: *mut fq_nmod_mpoly_struct,
pub newt: *mut fq_nmod_mpoly_struct,
pub delta_coeffs: *mut fq_nmod_mpolyv_struct,
pub T: fq_nmod_mpoly_t,
pub Q: fq_nmod_mpoly_t,
pub R: fq_nmod_mpoly_t,
}
impl Default for fq_nmod_mpoly_pfrac_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type fq_nmod_mpoly_pfrac_t = [fq_nmod_mpoly_pfrac_struct; 1usize];
unsafe extern "C" {
pub fn fq_nmod_mpoly_factor_init(
f: *mut fq_nmod_mpoly_factor_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_factor_realloc(
f: *mut fq_nmod_mpoly_factor_struct,
alloc: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_factor_fit_length(
f: *mut fq_nmod_mpoly_factor_struct,
len: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_factor_clear(
f: *mut fq_nmod_mpoly_factor_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_factor_length(
f: *const fq_nmod_mpoly_factor_struct,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
) -> slong;
pub fn fq_nmod_mpoly_factor_get_constant_fq_nmod(
c: *mut nmod_poly_struct,
f: *const fq_nmod_mpoly_factor_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_factor_get_base(
p: *mut fq_nmod_mpoly_struct,
f: *const fq_nmod_mpoly_factor_struct,
i: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_factor_swap_base(
p: *mut fq_nmod_mpoly_struct,
f: *const fq_nmod_mpoly_factor_struct,
i: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_factor_get_exp_si(
f: *mut fq_nmod_mpoly_factor_struct,
i: slong,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
) -> slong;
pub fn fq_nmod_mpoly_factor_set(
a: *mut fq_nmod_mpoly_factor_struct,
b: *const fq_nmod_mpoly_factor_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_factor_print_pretty(
f: *const fq_nmod_mpoly_factor_struct,
vars: *mut *const ::std::os::raw::c_char,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_factor_append_ui(
f: *mut fq_nmod_mpoly_factor_struct,
A: *const fq_nmod_mpoly_struct,
e: ulong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_factor_append_fmpz(
f: *mut fq_nmod_mpoly_factor_struct,
A: *const fq_nmod_mpoly_struct,
e: *const fmpz,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_factor_content(
f: *mut fq_nmod_mpoly_factor_struct,
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_factor_squarefree(
f: *mut fq_nmod_mpoly_factor_struct,
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_factor_separable(
f: *mut fq_nmod_mpoly_factor_struct,
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
sep: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_factor(
f: *mut fq_nmod_mpoly_factor_struct,
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_factor_sort(
f: *mut fq_nmod_mpoly_factor_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_factor_cmp(
A: *const fq_nmod_mpoly_factor_struct,
B: *const fq_nmod_mpoly_factor_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_factor_swap(
A: *mut fq_nmod_mpoly_factor_struct,
B: *mut fq_nmod_mpoly_factor_struct,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_factor_one(
a: *mut fq_nmod_mpoly_factor_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_factor_expand(
A: *mut fq_nmod_mpoly_struct,
f: *const fq_nmod_mpoly_factor_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_factor_matches(
a: *const fq_nmod_mpoly_struct,
f: *const fq_nmod_mpoly_factor_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fq_nmod_mpoly_get_lead0(
c: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn _fq_nmod_mpoly_set_lead0(
A: *mut fq_nmod_mpoly_struct,
B: *const fq_nmod_mpoly_struct,
c: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn n_fq_bpoly_mul(
A: *mut n_bpoly_struct,
B: *const n_bpoly_struct,
C: *const n_bpoly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_bpoly_mul_series(
A: *mut n_bpoly_struct,
B: *const n_bpoly_struct,
C: *const n_bpoly_struct,
order: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_bpoly_add(
A: *mut n_bpoly_struct,
B: *const n_bpoly_struct,
C: *const n_bpoly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_bpoly_sub(
A: *mut n_bpoly_struct,
B: *const n_bpoly_struct,
C: *const n_bpoly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_bpoly_divrem_series(
Q: *mut n_bpoly_struct,
R: *mut n_bpoly_struct,
A: *const n_bpoly_struct,
B: *const n_bpoly_struct,
order: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_bpoly_divides(
Q: *mut n_bpoly_struct,
A: *const n_bpoly_struct,
B: *const n_bpoly_struct,
ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn n_fq_bpoly_make_primitive(
g: *mut n_poly_struct,
A: *mut n_bpoly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn fq_nmod_mpoly_get_n_fq_bpoly(
A: *mut n_bpoly_struct,
B: *const fq_nmod_mpoly_struct,
varx: slong,
vary: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_set_n_fq_bpoly(
A: *mut fq_nmod_mpoly_struct,
Abits: flint_bitcnt_t,
B: *const n_bpoly_struct,
varx: slong,
vary: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn n_fq_bpoly_factor_smprime(
c: *mut n_poly_struct,
F: *mut n_tpoly_struct,
B: *mut n_bpoly_struct,
allow_shift: ::std::os::raw::c_int,
ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn n_fq_bpoly_factor_lgprime(
c: *mut n_poly_struct,
F: *mut n_tpoly_struct,
B: *mut n_bpoly_struct,
ctx: *const fq_nmod_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn n_polyu3_fq_print_pretty(
A: *const n_polyu_struct,
var0: *const ::std::os::raw::c_char,
var1: *const ::std::os::raw::c_char,
var2: *const ::std::os::raw::c_char,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_polyu_fq_is_canonical(
A: *const n_polyu_struct,
ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn n_polyu2n_fq_print_pretty(
A: *const n_polyun_struct,
var0: *const ::std::os::raw::c_char,
var1: *const ::std::os::raw::c_char,
varlast: *const ::std::os::raw::c_char,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_polyu3n_fq_print_pretty(
A: *const n_polyun_struct,
var0: *const ::std::os::raw::c_char,
var1: *const ::std::os::raw::c_char,
var2: *const ::std::os::raw::c_char,
varlast: *const ::std::os::raw::c_char,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_polyun_fq_is_canonical(
A: *const n_polyun_struct,
ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpolyv_init(
A: *mut fq_nmod_mpolyv_struct,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyv_swap(
A: *mut fq_nmod_mpolyv_struct,
B: *mut fq_nmod_mpolyv_struct,
UNUSED_ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyv_clear(
A: *mut fq_nmod_mpolyv_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyv_print_pretty(
poly: *const fq_nmod_mpolyv_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyv_fit_length(
A: *mut fq_nmod_mpolyv_struct,
length: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpolyv_set_coeff(
A: *mut fq_nmod_mpolyv_struct,
i: slong,
c: *mut fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_to_mpolyv(
A: *mut fq_nmod_mpolyv_struct,
B: *const fq_nmod_mpoly_struct,
xalpha: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_from_mpolyv(
A: *mut fq_nmod_mpoly_struct,
Abits: flint_bitcnt_t,
B: *const fq_nmod_mpolyv_struct,
xalpha: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn _fq_nmod_mpoly_vec_content_mpoly(
g: *mut fq_nmod_mpoly_struct,
A: *const fq_nmod_mpoly_struct,
Alen: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fq_nmod_mpoly_vec_divexact_mpoly(
A: *mut fq_nmod_mpoly_struct,
Alen: slong,
c: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn _fq_nmod_mpoly_vec_mul_mpoly(
A: *mut fq_nmod_mpoly_struct,
Alen: slong,
c: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn _fq_nmod_mpoly_factor_separable(
f: *mut fq_nmod_mpoly_factor_struct,
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
sep: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_factor_lcc_wang(
lc_divs: *mut fq_nmod_mpoly_struct,
lcAfac: *const fq_nmod_mpoly_factor_struct,
Auc: *const n_poly_struct,
Auf: *const n_bpoly_struct,
r: slong,
alpha: *const n_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_factor_irred_smprime_zassenhaus(
fac: *mut fq_nmod_mpolyv_struct,
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_factor_irred_lgprime_zassenhaus(
fac: *mut fq_nmod_mpolyv_struct,
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_factor_irred_smprime_wang(
fac: *mut fq_nmod_mpolyv_struct,
A: *const fq_nmod_mpoly_struct,
lcAfac: *const fq_nmod_mpoly_factor_struct,
lcA: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_factor_irred_lgprime_wang(
Af: *mut fq_nmod_mpolyv_struct,
A: *const fq_nmod_mpoly_struct,
lcAfac: *const fq_nmod_mpoly_factor_struct,
lcA: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_factor_irred_smprime_zippel(
fac: *mut fq_nmod_mpolyv_struct,
A: *const fq_nmod_mpoly_struct,
lcAfac: *const fq_nmod_mpoly_factor_struct,
lcA: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_factor_irred_lgprime_zippel(
Af: *mut fq_nmod_mpolyv_struct,
A: *const fq_nmod_mpoly_struct,
lcAfac: *const fq_nmod_mpoly_factor_struct,
lcA: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_compression_do(
L: *mut fq_nmod_mpoly_struct,
Lctx: *const fq_nmod_mpoly_ctx_struct,
Acoeffs: *mut ulong,
Alen: slong,
M: *mut mpoly_compression_struct,
);
pub fn fq_nmod_mpoly_compression_undo(
A: *mut fq_nmod_mpoly_struct,
Abits: flint_bitcnt_t,
Actx: *const fq_nmod_mpoly_ctx_struct,
L: *mut fq_nmod_mpoly_struct,
Lctx: *const fq_nmod_mpoly_ctx_struct,
M: *mut mpoly_compression_struct,
);
pub fn fq_nmod_mpoly_pfrac_init(
Iv: *mut fq_nmod_mpoly_pfrac_struct,
bits: flint_bitcnt_t,
l: slong,
r: slong,
betas: *const fq_nmod_mpoly_struct,
alpha: *const fq_nmod_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_pfrac_clear(
Iv: *mut fq_nmod_mpoly_pfrac_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_nmod_mpoly_pfrac(
r: slong,
t: *mut fq_nmod_mpoly_struct,
deg: *const slong,
Iv: *mut fq_nmod_mpoly_pfrac_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_hlift(
m: slong,
f: *mut fq_nmod_mpoly_struct,
r: slong,
alpha: *const fq_nmod_struct,
A: *const fq_nmod_mpoly_struct,
degs: *const slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn n_fq_bpoly_hlift2_cubic(
A: *mut n_bpoly_struct,
B0: *mut n_bpoly_struct,
B1: *mut n_bpoly_struct,
alpha_: *const nmod_poly_struct,
degree_inner: slong,
ctx: *const fq_nmod_ctx_struct,
E: *mut nmod_eval_interp_struct,
St: *mut n_poly_bpoly_stack_struct,
) -> ::std::os::raw::c_int;
pub fn n_fq_bpoly_hlift2(
A: *mut n_bpoly_struct,
B0: *mut n_bpoly_struct,
B1: *mut n_bpoly_struct,
alpha: *const nmod_poly_struct,
degree_inner: slong,
ctx: *const fq_nmod_ctx_struct,
St: *mut n_poly_bpoly_stack_struct,
) -> ::std::os::raw::c_int;
pub fn n_fq_bpoly_hlift_cubic(
A: *mut n_bpoly_struct,
B0: *mut n_bpoly_struct,
B1: *mut n_bpoly_struct,
alpha_: *const nmod_poly_struct,
degree_inner: slong,
ctx: *const fq_nmod_ctx_struct,
E: *mut nmod_eval_interp_struct,
St: *mut n_poly_bpoly_stack_struct,
) -> ::std::os::raw::c_int;
pub fn n_fq_bpoly_hlift(
r: slong,
A: *mut n_bpoly_struct,
B: *mut n_bpoly_struct,
alpha: *const nmod_poly_struct,
degree_inner: slong,
ctx: *const fq_nmod_ctx_struct,
UNUSED_St: *mut n_poly_bpoly_stack_struct,
) -> ::std::os::raw::c_int;
pub fn n_fq_polyu3_hlift(
r: slong,
BB: *mut n_polyun_struct,
A: *mut n_polyu_struct,
B: *mut n_polyu_struct,
beta: *const nmod_poly_struct,
degree_inner: slong,
ctx: *const fq_nmod_ctx_struct,
St: *mut n_poly_bpoly_stack_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_factor_algo(
f: *mut fq_nmod_mpoly_factor_struct,
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
algo: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_factor_wang(
f: *mut fq_nmod_mpoly_factor_struct,
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_factor_zassenhaus(
f: *mut fq_nmod_mpoly_factor_struct,
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_mpoly_factor_zippel(
f: *mut fq_nmod_mpoly_factor_struct,
A: *const fq_nmod_mpoly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fq_nmod_mpoly_eval_rest_n_fq_poly(
E: *mut n_poly_struct,
starts: *mut slong,
ends: *mut slong,
stops: *mut slong,
es: *mut ulong,
Acoeffs: *const ulong,
Aexps: *const ulong,
Alen: slong,
var: slong,
alphas: *const n_fq_poly_struct,
offsets: *const slong,
shifts: *const slong,
N: slong,
mask: ulong,
nvars: slong,
ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fq_nmod_mpoly_eval_rest_to_n_fq_bpoly(
E: *mut n_bpoly_struct,
A: *const fq_nmod_mpoly_struct,
alphabetas: *const n_poly_struct,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
pub fn _fq_nmod_mpoly_set_n_fq_bpoly_gen1_zero(
A: *mut fq_nmod_mpoly_struct,
Abits: flint_bitcnt_t,
B: *const n_bpoly_struct,
var: slong,
ctx: *const fq_nmod_mpoly_ctx_struct,
);
}
/* fq_nmod_poly.h */
/* fq_nmod_poly_factor.h */
unsafe extern "C" {
pub fn FQ_NMOD_POLY_ITERATED_FROBENIUS_CUTOFF(
ctx: *const fq_nmod_ctx_struct,
length: slong,
) -> ::std::os::raw::c_int;
pub fn fq_nmod_poly_factor_get_poly(
z: *mut fq_nmod_poly_struct,
fac: *const fq_nmod_poly_factor_struct,
i: slong,
ctx: *const fq_nmod_ctx_struct,
);
}
/* fq_nmod_types.h */
pub type fq_nmod_t = nmod_poly_t;
pub type fq_nmod_struct = nmod_poly_struct;
#[repr(C)]
pub struct fq_nmod_ctx_struct {
pub mod_: nmod_t,
pub sparse_modulus: ::std::os::raw::c_int,
pub is_conway: ::std::os::raw::c_int,
pub a: *mut ulong,
pub j: *mut slong,
pub len: slong,
pub modulus: nmod_poly_t,
pub inv: nmod_poly_t,
pub var: *mut ::std::os::raw::c_char,
}
impl Default for fq_nmod_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 fq_nmod_ctx_t = [fq_nmod_ctx_struct; 1usize];
#[repr(C)]
pub struct fq_nmod_mat_struct {
pub entries: *mut fq_nmod_struct,
pub r: slong,
pub c: slong,
pub stride: slong,
}
impl Default for fq_nmod_mat_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 fq_nmod_mat_t = [fq_nmod_mat_struct; 1usize];
#[repr(C)]
pub struct fq_nmod_poly_struct {
pub coeffs: *mut fq_nmod_struct,
pub alloc: slong,
pub length: slong,
}
impl Default for fq_nmod_poly_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 fq_nmod_poly_t = [fq_nmod_poly_struct; 1usize];
#[repr(C)]
pub struct fq_nmod_poly_factor_struct {
pub poly: *mut fq_nmod_poly_struct,
pub exp: *mut slong,
pub num: slong,
pub alloc: slong,
}
impl Default for fq_nmod_poly_factor_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 fq_nmod_poly_factor_t = [fq_nmod_poly_factor_struct; 1usize];
#[repr(C)]
pub struct fq_nmod_mpoly_struct {
pub coeffs: *mut ulong,
pub exps: *mut ulong,
pub length: slong,
pub bits: flint_bitcnt_t,
pub coeffs_alloc: slong,
pub exps_alloc: slong,
}
impl Default for fq_nmod_mpoly_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 fq_nmod_mpoly_t = [fq_nmod_mpoly_struct; 1usize];
/* fq_nmod_vec.h */
/* fq_poly.h */
/* fq_poly_factor.h */
unsafe extern "C" {
pub fn FQ_POLY_ITERATED_FROBENIUS_CUTOFF(
ctx: *const fq_ctx_struct,
length: slong,
) -> ::std::os::raw::c_int;
pub fn fq_poly_factor_get_poly(
z: *mut fq_poly_struct,
fac: *const fq_poly_factor_struct,
i: slong,
ctx: *const fq_ctx_struct,
);
}
/* fq_types.h */
pub type fq_t = fmpz_poly_t;
pub type fq_struct = fmpz_poly_struct;
#[repr(C)]
pub struct fq_ctx_struct {
pub ctxp: fmpz_mod_ctx_t,
pub sparse_modulus: ::std::os::raw::c_int,
pub is_conway: ::std::os::raw::c_int,
pub a: *mut fmpz,
pub j: *mut slong,
pub len: slong,
pub modulus: fmpz_mod_poly_t,
pub inv: fmpz_mod_poly_t,
pub var: *mut ::std::os::raw::c_char,
}
impl Default for fq_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 fq_ctx_t = [fq_ctx_struct; 1usize];
#[repr(C)]
pub struct fq_mat_struct {
pub entries: *mut fq_struct,
pub r: slong,
pub c: slong,
pub stride: slong,
}
impl Default for fq_mat_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 fq_mat_t = [fq_mat_struct; 1usize];
#[repr(C)]
pub struct fq_poly_struct {
pub coeffs: *mut fq_struct,
pub alloc: slong,
pub length: slong,
}
impl Default for fq_poly_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 fq_poly_t = [fq_poly_struct; 1usize];
#[repr(C)]
pub struct fq_poly_factor_struct {
pub poly: *mut fq_poly_struct,
pub exp: *mut slong,
pub num: slong,
pub alloc: slong,
}
impl Default for fq_poly_factor_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 fq_poly_factor_t = [fq_poly_factor_struct; 1usize];
/* fq_vec.h */
/* fq_zech.h */
unsafe extern "C" {
pub fn fq_zech_ctx_init_ui(
ctx: *mut fq_zech_ctx_struct,
p: ulong,
d: slong,
var: *const ::std::os::raw::c_char,
);
pub fn _fq_zech_ctx_init_conway_ui(
ctx: *mut fq_zech_ctx_struct,
p: ulong,
d: slong,
var: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn fq_zech_ctx_init_conway_ui(
ctx: *mut fq_zech_ctx_struct,
p: ulong,
d: slong,
var: *const ::std::os::raw::c_char,
);
pub fn fq_zech_ctx_init_random_ui(
ctx: *mut fq_zech_ctx_struct,
p: ulong,
d: slong,
var: *const ::std::os::raw::c_char,
);
pub fn fq_zech_ctx_init_fq_nmod_ctx_check(
ctx: *mut fq_zech_ctx_struct,
ctxn: *mut fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_ctx_init_fq_nmod_ctx(
ctx: *mut fq_zech_ctx_struct,
ctxn: *mut fq_nmod_ctx_struct,
);
pub fn fq_zech_ctx_init_modulus_check(
ctx: *mut fq_zech_ctx_struct,
modulus: *const nmod_poly_struct,
var: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn fq_zech_ctx_init_modulus(
ctx: *mut fq_zech_ctx_struct,
modulus: *const nmod_poly_struct,
var: *const ::std::os::raw::c_char,
);
pub fn fq_zech_ctx_init_randtest(
ctx: *mut fq_zech_ctx_struct,
state: *mut flint_rand_struct,
type_: ::std::os::raw::c_int,
);
pub fn fq_zech_ctx_init_randtest_reducible(
ctx: *mut fq_zech_ctx_struct,
state: *mut flint_rand_struct,
type_: ::std::os::raw::c_int,
);
pub fn fq_zech_ctx_clear(ctx: *mut fq_zech_ctx_struct);
pub fn fq_zech_ctx_modulus(
ctx: *const fq_zech_ctx_struct,
) -> *const nmod_poly_struct;
pub fn fq_zech_ctx_degree(ctx: *const fq_zech_ctx_struct) -> slong;
pub fn fq_zech_ctx_prime(ctx: *const fq_zech_ctx_struct) -> ulong;
pub fn fq_zech_ctx_order_ui(ctx: *const fq_zech_ctx_struct) -> ulong;
pub fn fq_zech_ctx_fprint(
file: *mut FILE,
ctx: *const fq_zech_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_ctx_print(ctx: *const fq_zech_ctx_struct);
pub fn fq_zech_init(rop: *mut fq_zech_struct, ctx: *const fq_zech_ctx_struct);
pub fn fq_zech_init2(rop: *mut fq_zech_struct, ctx: *const fq_zech_ctx_struct);
pub fn fq_zech_clear(
UNUSED_rop: *mut fq_zech_struct,
UNUSED_ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_reduce(rop: *mut fq_zech_struct, ctx: *const fq_zech_ctx_struct);
pub fn fq_zech_add(
rop: *mut fq_zech_struct,
op1: *const fq_zech_struct,
op2: *const fq_zech_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_sub(
rop: *mut fq_zech_struct,
op1: *const fq_zech_struct,
op2: *const fq_zech_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_sub_one(
rop: *mut fq_zech_struct,
op1: *const fq_zech_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_neg(
rop: *mut fq_zech_struct,
op1: *const fq_zech_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_mul(
rop: *mut fq_zech_struct,
op1: *const fq_zech_struct,
op2: *const fq_zech_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_mul_fmpz(
rop: *mut fq_zech_struct,
op: *const fq_zech_struct,
x: *const fmpz,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_mul_si(
rop: *mut fq_zech_struct,
op: *const fq_zech_struct,
x: slong,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_mul_ui(
rop: *mut fq_zech_struct,
op: *const fq_zech_struct,
x: ulong,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_sqr(
rop: *mut fq_zech_struct,
op: *const fq_zech_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_inv(
rop: *mut fq_zech_struct,
op1: *const fq_zech_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn _fq_zech_pow(
rop: *mut fmpz,
op: *const fmpz,
len: slong,
e: *const fmpz,
a: *const fmpz,
j: *const slong,
lena: slong,
p: *const fmpz,
);
pub fn fq_zech_pow(
rop: *mut fq_zech_struct,
op1: *const fq_zech_struct,
e: *const fmpz,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_pow_ui(
rop: *mut fq_zech_struct,
op1: *const fq_zech_struct,
e: ulong,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_sqrt(
rop: *mut fq_zech_struct,
op1: *const fq_zech_struct,
ctx: *const fq_zech_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_pth_root(
rop: *mut fq_zech_struct,
op1: *const fq_zech_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_is_square(
op1: *const fq_zech_struct,
ctx: *const fq_zech_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_randtest(
rop: *mut fq_zech_struct,
state: *mut flint_rand_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_randtest_not_zero(
rop: *mut fq_zech_struct,
state: *mut flint_rand_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_rand(
rop: *mut fq_zech_struct,
state: *mut flint_rand_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_rand_not_zero(
rop: *mut fq_zech_struct,
state: *mut flint_rand_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_equal(
op1: *const fq_zech_struct,
op2: *const fq_zech_struct,
UNUSED_ctx: *const fq_zech_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_is_zero(
op: *const fq_zech_struct,
ctx: *const fq_zech_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_is_one(
op: *const fq_zech_struct,
UNUSED_ctx: *const fq_zech_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_set(
rop: *mut fq_zech_struct,
op: *const fq_zech_struct,
UNUSED_ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_set_fmpz(
rop: *mut fq_zech_struct,
x: *const fmpz,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_set_si(
rop: *mut fq_zech_struct,
x: slong,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_set_ui(
rop: *mut fq_zech_struct,
x: ulong,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_swap(
op1: *mut fq_zech_struct,
op2: *mut fq_zech_struct,
UNUSED_ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_zero(rop: *mut fq_zech_struct, ctx: *const fq_zech_ctx_struct);
pub fn fq_zech_one(rop: *mut fq_zech_struct, UNUSED_ctx: *const fq_zech_ctx_struct);
pub fn fq_zech_gen(rop: *mut fq_zech_struct, UNUSED_ctx: *const fq_zech_ctx_struct);
pub fn fq_zech_get_fmpz(
a: *mut fmpz,
op: *const fq_zech_struct,
ctx: *const fq_zech_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_set_fq_nmod(
rop: *mut fq_zech_struct,
op: *const nmod_poly_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_get_fq_nmod(
rop: *mut nmod_poly_struct,
op: *const fq_zech_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_get_nmod_poly(
a: *mut nmod_poly_struct,
b: *const fq_zech_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_set_nmod_poly(
a: *mut fq_zech_struct,
b: *const nmod_poly_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_fprint(
file: *mut FILE,
op: *const fq_zech_struct,
UNUSED_ctx: *const fq_zech_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_fprint_pretty(
file: *mut FILE,
op: *const fq_zech_struct,
ctx: *const fq_zech_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_print(op: *const fq_zech_struct, ctx: *const fq_zech_ctx_struct);
pub fn fq_zech_print_pretty(
op: *const fq_zech_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_get_str(
op: *const fq_zech_struct,
UNUSED_ctx: *const fq_zech_ctx_struct,
) -> *mut ::std::os::raw::c_char;
pub fn fq_zech_get_str_pretty(
op: *const fq_zech_struct,
ctx: *const fq_zech_ctx_struct,
) -> *mut ::std::os::raw::c_char;
pub fn fq_zech_trace(
rop: *mut fmpz,
op: *const fq_zech_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_frobenius(
rop: *mut fq_zech_struct,
op: *const fq_zech_struct,
e: slong,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_norm(
rop: *mut fmpz,
op: *const fq_zech_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_bit_pack(
f: *mut fmpz,
op: *const fq_zech_struct,
bit_size: flint_bitcnt_t,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_bit_unpack(
rop: *mut fq_zech_struct,
f: *const fmpz,
bit_size: flint_bitcnt_t,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_ctx_init(
ctx: *mut fq_zech_ctx_struct,
p: *mut fmpz,
d: slong,
var: *const ::std::os::raw::c_char,
);
pub fn _fq_zech_ctx_init_conway(
ctx: *mut fq_zech_ctx_struct,
p: *mut fmpz,
d: slong,
var: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn fq_zech_ctx_init_conway(
ctx: *mut fq_zech_ctx_struct,
p: *mut fmpz,
d: slong,
var: *const ::std::os::raw::c_char,
);
pub fn fq_zech_ctx_init_random(
ctx: *mut fq_zech_ctx_struct,
p: *mut fmpz,
d: slong,
var: *const ::std::os::raw::c_char,
);
pub fn fq_zech_ctx_order(f: *mut fmpz, ctx: *const fq_zech_ctx_struct);
}
/* fq_zech_embed.h */
unsafe extern "C" {
pub fn fq_zech_modulus_pow_series_inv(
res: *mut nmod_poly_struct,
ctx: *const fq_zech_ctx_struct,
trunc: slong,
);
pub fn fq_zech_modulus_derivative_inv(
m_prime: *mut fq_zech_struct,
m_prime_inv: *mut fq_zech_struct,
ctx: *const fq_zech_ctx_struct,
);
}
/* fq_zech_mat.h */
unsafe extern "C" {
pub fn FQ_ZECH_MAT_MUL_KS_CUTOFF(
r: slong,
c: slong,
ctx: *const fq_zech_ctx_struct,
) -> ::std::os::raw::c_int;
}
/* fq_zech_mpoly.h */
#[repr(C)]
pub struct fq_zech_mpoly_ctx_struct {
pub minfo: mpoly_ctx_t,
pub fqctx: fq_zech_ctx_t,
}
impl Default for fq_zech_mpoly_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 fq_zech_mpoly_ctx_t = [fq_zech_mpoly_ctx_struct; 1usize];
#[repr(C)]
pub struct fq_zech_mpoly_struct {
pub coeffs: *mut fq_zech_struct,
pub exps: *mut ulong,
pub alloc: slong,
pub length: slong,
pub bits: flint_bitcnt_t,
}
impl Default for fq_zech_mpoly_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 fq_zech_mpoly_t = [fq_zech_mpoly_struct; 1usize];
#[repr(C)]
pub struct fq_zech_mpoly_univar_struct {
pub coeffs: *mut fq_zech_mpoly_struct,
pub exps: *mut fmpz,
pub alloc: slong,
pub length: slong,
}
impl Default for fq_zech_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 fq_zech_mpoly_univar_t = [fq_zech_mpoly_univar_struct; 1usize];
#[repr(C)]
pub struct fq_zech_mpolyu_struct {
pub coeffs: *mut fq_zech_mpoly_struct,
pub exps: *mut ulong,
pub alloc: slong,
pub length: slong,
pub bits: flint_bitcnt_t,
}
impl Default for fq_zech_mpolyu_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 fq_zech_mpolyu_t = [fq_zech_mpolyu_struct; 1usize];
#[repr(C)]
pub struct fq_zech_mpolyn_struct {
pub coeffs: *mut fq_zech_poly_struct,
pub exps: *mut ulong,
pub alloc: slong,
pub length: slong,
pub bits: slong,
}
impl Default for fq_zech_mpolyn_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 fq_zech_mpolyn_t = [fq_zech_mpolyn_struct; 1usize];
#[repr(C)]
pub struct fq_zech_mpolyun_struct {
pub coeffs: *mut fq_zech_mpolyn_struct,
pub exps: *mut ulong,
pub alloc: slong,
pub length: slong,
pub bits: flint_bitcnt_t,
}
impl Default for fq_zech_mpolyun_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 fq_zech_mpolyun_t = [fq_zech_mpolyun_struct; 1usize];
#[repr(C)]
pub struct fq_zech_mpoly_geobucket {
pub polys: [fq_zech_mpoly_struct; 32usize],
pub length: slong,
}
impl Default for fq_zech_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 fq_zech_mpoly_geobucket_struct = fq_zech_mpoly_geobucket;
pub type fq_zech_mpoly_geobucket_t = [fq_zech_mpoly_geobucket_struct; 1usize];
unsafe extern "C" {
pub fn fq_zech_ctx_mod(ctx: *const fq_zech_ctx_struct) -> nmod_t;
pub fn fq_zech_mpoly_ctx_init_deg(
ctx: *mut fq_zech_mpoly_ctx_struct,
nvars: slong,
ord: ordering_t,
p: ulong,
deg: slong,
);
pub fn fq_zech_mpoly_ctx_clear(ctx: *mut fq_zech_mpoly_ctx_struct);
pub fn fq_zech_mpoly_ctx_nvars(ctx: *const fq_zech_mpoly_ctx_struct) -> slong;
pub fn fq_zech_mpoly_ctx_ord(ctx: *const fq_zech_mpoly_ctx_struct) -> ordering_t;
pub fn fq_zech_mpoly_init(
A: *mut fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_init2(
A: *mut fq_zech_mpoly_struct,
alloc: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_init3(
A: *mut fq_zech_mpoly_struct,
alloc: slong,
bits: flint_bitcnt_t,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_realloc(
A: *mut fq_zech_mpoly_struct,
alloc: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_fit_length(
A: *mut fq_zech_mpoly_struct,
length: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn _fq_zech_mpoly_fit_length(
coeff: *mut *mut fq_zech_struct,
exps: *mut *mut ulong,
alloc: *mut slong,
len: slong,
N: slong,
fqctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_mpoly_fit_length_reset_bits(
A: *mut fq_zech_mpoly_struct,
len: slong,
bits: flint_bitcnt_t,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_clear(
A: *mut fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn _fq_zech_mpoly_set_length(
A: *mut fq_zech_mpoly_struct,
newlen: slong,
UNUSED_ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_truncate(
A: *mut fq_zech_mpoly_struct,
newlen: slong,
UNUSED_ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_fit_bits(
A: *mut fq_zech_mpoly_struct,
bits: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_set_str_pretty(
A: *mut fq_zech_mpoly_struct,
str_: *const ::std::os::raw::c_char,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_get_str_pretty(
A: *const fq_zech_mpoly_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> *mut ::std::os::raw::c_char;
pub fn fq_zech_mpoly_fprint_pretty(
file: *mut FILE,
A: *const fq_zech_mpoly_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_print_pretty(
A: *const fq_zech_mpoly_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_gen(
A: *mut fq_zech_mpoly_struct,
var: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_is_gen(
A: *const fq_zech_mpoly_struct,
var: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_set(
A: *mut fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_equal(
A: *const fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_swap(
A: *mut fq_zech_mpoly_struct,
B: *mut fq_zech_mpoly_struct,
UNUSED_ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_is_fq_zech(
A: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_get_fq_zech(
c: *mut fq_zech_struct,
A: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_set_fq_zech(
A: *mut fq_zech_mpoly_struct,
c: *const fq_zech_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_set_ui(
A: *mut fq_zech_mpoly_struct,
c: ulong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_set_fq_zech_gen(
A: *mut fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_equal_fq_zech(
A: *const fq_zech_mpoly_struct,
c: *const fq_zech_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_zero(
A: *mut fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_one(
A: *mut fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_is_zero(
A: *const fq_zech_mpoly_struct,
UNUSED_ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_is_one(
A: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_degrees_fit_si(
A: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_degrees_fmpz(
degs: *mut *mut fmpz,
A: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_degrees_si(
degs: *mut slong,
A: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_degree_fmpz(
deg: *mut fmpz,
A: *const fq_zech_mpoly_struct,
var: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_degree_si(
A: *const fq_zech_mpoly_struct,
var: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> slong;
pub fn fq_zech_mpoly_total_degree_fits_si(
A: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_total_degree_fmpz(
td: *mut fmpz,
A: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_total_degree_si(
A: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> slong;
pub fn fq_zech_mpoly_get_coeff_fq_zech_monomial(
c: *mut fq_zech_struct,
A: *const fq_zech_mpoly_struct,
M: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_set_coeff_fq_zech_monomial(
A: *mut fq_zech_mpoly_struct,
c: *const fq_zech_struct,
M: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_get_coeff_fq_zech_fmpz(
c: *mut fq_zech_struct,
A: *const fq_zech_mpoly_struct,
exp: *const *mut fmpz,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_get_coeff_fq_zech_ui(
c: *mut fq_zech_struct,
A: *const fq_zech_mpoly_struct,
exp: *const ulong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn _fq_zech_mpoly_set_coeff_fq_zech_fmpz(
A: *mut fq_zech_mpoly_struct,
c: *const fq_zech_struct,
exp: *const fmpz,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_set_coeff_fq_zech_fmpz(
A: *mut fq_zech_mpoly_struct,
c: *const fq_zech_struct,
exp: *const *mut fmpz,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_set_coeff_fq_zech_ui(
A: *mut fq_zech_mpoly_struct,
c: *const fq_zech_struct,
exp: *const ulong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_get_coeff_vars_ui(
C: *mut fq_zech_mpoly_struct,
A: *const fq_zech_mpoly_struct,
vars: *const slong,
exps: *const ulong,
length: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_leadcoeff(
A: *const fq_zech_mpoly_struct,
UNUSED_ctx: *const fq_zech_mpoly_ctx_struct,
) -> *mut fq_zech_struct;
pub fn fq_zech_mpoly_cmp(
A: *const fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_is_canonical(
A: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_length(
A: *const fq_zech_mpoly_struct,
UNUSED_ctx: *const fq_zech_mpoly_ctx_struct,
) -> slong;
pub fn fq_zech_mpoly_resize(
A: *mut fq_zech_mpoly_struct,
new_length: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_get_term_coeff_fq_zech(
c: *mut fq_zech_struct,
A: *const fq_zech_mpoly_struct,
i: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_set_term_coeff_fq_zech(
A: *mut fq_zech_mpoly_struct,
i: slong,
c: *const fq_zech_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_term_exp_fits_ui(
A: *const fq_zech_mpoly_struct,
i: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_term_exp_fits_si(
A: *const fq_zech_mpoly_struct,
i: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_get_term_exp_fmpz(
exp: *mut *mut fmpz,
A: *const fq_zech_mpoly_struct,
i: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_get_term_exp_ui(
exp: *mut ulong,
A: *const fq_zech_mpoly_struct,
i: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_get_term_exp_si(
exp: *mut slong,
A: *const fq_zech_mpoly_struct,
i: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_get_term_var_exp_ui(
A: *const fq_zech_mpoly_struct,
i: slong,
var: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ulong;
pub fn fq_zech_mpoly_get_term_var_exp_si(
A: *const fq_zech_mpoly_struct,
i: slong,
var: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> slong;
pub fn fq_zech_mpoly_set_term_exp_fmpz(
A: *mut fq_zech_mpoly_struct,
i: slong,
exp: *const *mut fmpz,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_set_term_exp_ui(
A: *mut fq_zech_mpoly_struct,
i: slong,
exp: *const ulong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_get_term(
M: *mut fq_zech_mpoly_struct,
A: *const fq_zech_mpoly_struct,
i: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_get_term_monomial(
M: *mut fq_zech_mpoly_struct,
A: *const fq_zech_mpoly_struct,
i: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_push_term_fq_zech_fmpz(
A: *mut fq_zech_mpoly_struct,
c: *const fq_zech_struct,
exp: *const *mut fmpz,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_push_term_fq_zech_ui(
A: *mut fq_zech_mpoly_struct,
c: *const fq_zech_struct,
exp: *const ulong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_sort_terms(
A: *mut fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_combine_like_terms(
A: *mut fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_reverse(
A: *mut fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_assert_canonical(
A: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn _fq_zech_mpoly_radix_sort1(
A: *mut fq_zech_mpoly_struct,
left: slong,
right: slong,
pos: flint_bitcnt_t,
cmpmask: ulong,
totalmask: ulong,
);
pub fn _fq_zech_mpoly_radix_sort(
A: *mut fq_zech_mpoly_struct,
left: slong,
right: slong,
pos: flint_bitcnt_t,
N: slong,
cmpmask: *mut ulong,
);
pub fn _fq_zech_mpoly_push_exp_ffmpz(
A: *mut fq_zech_mpoly_struct,
exp: *const fmpz,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn _fq_zech_mpoly_push_exp_pfmpz(
A: *mut fq_zech_mpoly_struct,
exp: *const *mut fmpz,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn _fq_zech_mpoly_push_exp_ui(
A: *mut fq_zech_mpoly_struct,
exp: *const ulong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_randtest_bound(
A: *mut fq_zech_mpoly_struct,
state: *mut flint_rand_struct,
length: slong,
exp_bound: ulong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_randtest_bounds(
A: *mut fq_zech_mpoly_struct,
state: *mut flint_rand_struct,
length: slong,
exp_bounds: *mut ulong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_randtest_bits(
A: *mut fq_zech_mpoly_struct,
state: *mut flint_rand_struct,
length: slong,
exp_bits: flint_bitcnt_t,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn _fq_zech_mpoly_add(
coeff1: *mut fq_zech_struct,
exp1: *mut ulong,
coeff2: *mut fq_zech_struct,
exp2: *const ulong,
len2: slong,
coeff3: *mut fq_zech_struct,
exp3: *const ulong,
len3: slong,
N: slong,
cmpmask: *const ulong,
fqctx: *const fq_zech_ctx_struct,
) -> slong;
pub fn fq_zech_mpoly_add_fq_zech(
A: *mut fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
C: *const fq_zech_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_sub_fq_zech(
A: *mut fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
C: *const fq_zech_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_add(
A: *mut fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
C: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_sub(
A: *mut fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
C: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_neg(
A: *mut fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_scalar_mul_fq_zech(
A: *mut fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
c: *const fq_zech_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_make_monic(
A: *mut fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_scalar_addmul_fq_zech(
A: *mut fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
C: *const fq_zech_mpoly_struct,
d: *const fq_zech_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_derivative(
A: *mut fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
var: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_evaluate_one_fq_zech(
A: *mut fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
var: slong,
val: *const fq_zech_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn _fq_zech_mpoly_eval_all_fq_zech(
eval: *mut fq_zech_struct,
Acoeffs: *const fq_zech_struct,
Aexps: *const ulong,
Alen: slong,
Abits: flint_bitcnt_t,
alphas: *const *mut fq_zech_struct,
mctx: *const mpoly_ctx_struct,
fqctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_mpoly_evaluate_all_fq_zech(
ev: *mut fq_zech_struct,
A: *const fq_zech_mpoly_struct,
vals: *const *mut fq_zech_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_compose_fq_zech_poly(
A: *mut fq_zech_poly_struct,
B: *const fq_zech_mpoly_struct,
C: *const *mut fq_zech_poly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fq_zech_mpoly_compose_mat(
A: *mut fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
M: *const fmpz_mat_struct,
ctxB: *const fq_zech_mpoly_ctx_struct,
ctxAC: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_compose_fq_zech_mpoly_geobucket(
A: *mut fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
C: *const *mut fq_zech_mpoly_struct,
ctxB: *const fq_zech_mpoly_ctx_struct,
ctxAC: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_compose_fq_zech_mpoly_horner(
A: *mut fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
C: *const *mut fq_zech_mpoly_struct,
ctxB: *const fq_zech_mpoly_ctx_struct,
ctxAC: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_compose_fq_zech_mpoly(
A: *mut fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
C: *const *mut fq_zech_mpoly_struct,
ctxB: *const fq_zech_mpoly_ctx_struct,
ctxAC: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_compose_fq_zech_mpoly_gen(
A: *mut fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
c: *const slong,
ctxB: *const fq_zech_mpoly_ctx_struct,
ctxAC: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_mul(
A: *mut fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
C: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_mul_johnson(
poly1: *mut fq_zech_mpoly_struct,
poly2: *const fq_zech_mpoly_struct,
poly3: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn _fq_zech_mpoly_mul_johnson(
coeff1: *mut *mut fq_zech_struct,
exp1: *mut *mut ulong,
alloc: *mut slong,
coeff2: *const fq_zech_struct,
exp2: *const ulong,
len2: slong,
coeff3: *const fq_zech_struct,
exp3: *const ulong,
len3: slong,
bits: flint_bitcnt_t,
N: slong,
cmpmask: *const ulong,
fqctx: *const fq_zech_ctx_struct,
) -> slong;
pub fn fq_zech_mpoly_pow_fmpz(
A: *mut fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
k: *const fmpz,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_pow_ui(
A: *mut fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
k: ulong,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_divides(
Q: *mut fq_zech_mpoly_struct,
A: *const fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_div(
Q: *mut fq_zech_mpoly_struct,
A: *const fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_divrem(
Q: *mut fq_zech_mpoly_struct,
R: *mut fq_zech_mpoly_struct,
A: *const fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_divrem_ideal(
Q: *mut *mut fq_zech_mpoly_struct,
R: *mut fq_zech_mpoly_struct,
A: *const fq_zech_mpoly_struct,
B: *const *mut fq_zech_mpoly_struct,
len: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_divides_monagan_pearce(
poly1: *mut fq_zech_mpoly_struct,
poly2: *const fq_zech_mpoly_struct,
poly3: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_div_monagan_pearce(
q: *mut fq_zech_mpoly_struct,
poly2: *const fq_zech_mpoly_struct,
poly3: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_divrem_monagan_pearce(
q: *mut fq_zech_mpoly_struct,
r: *mut fq_zech_mpoly_struct,
poly2: *const fq_zech_mpoly_struct,
poly3: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_divrem_ideal_monagan_pearce(
q: *mut *mut fq_zech_mpoly_struct,
r: *mut fq_zech_mpoly_struct,
poly2: *const fq_zech_mpoly_struct,
poly3: *const *mut fq_zech_mpoly_struct,
len: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_gcd(
G: *mut fq_zech_mpoly_struct,
A: *const fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fq_zech_mpoly_gcd(
G: *mut fq_zech_mpoly_struct,
Gbits: flint_bitcnt_t,
A: *const fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_gcd_cofactors(
G: *mut fq_zech_mpoly_struct,
Abar: *mut fq_zech_mpoly_struct,
Bbar: *mut fq_zech_mpoly_struct,
A: *const fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fq_zech_mpoly_gcd_cofactors(
G: *mut fq_zech_mpoly_struct,
Gbits: flint_bitcnt_t,
Abar: *mut fq_zech_mpoly_struct,
Abarbits: flint_bitcnt_t,
Bbar: *mut fq_zech_mpoly_struct,
Bbarbits: flint_bitcnt_t,
A: *const fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_gcd_brown(
G: *mut fq_zech_mpoly_struct,
A: *const fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_gcd_zippel(
G: *mut fq_zech_mpoly_struct,
A: *const fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_deflation(
shift: *mut fmpz,
stride: *mut fmpz,
A: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_deflate(
A: *mut fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
shift: *const fmpz,
stride: *const fmpz,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_inflate(
A: *mut fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
shift: *const fmpz,
stride: *const fmpz,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_univar_init(
A: *mut fq_zech_mpoly_univar_struct,
UNUSED_ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_univar_clear(
A: *mut fq_zech_mpoly_univar_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_univar_fit_length(
A: *mut fq_zech_mpoly_univar_struct,
length: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_univar_print_pretty(
A: *const fq_zech_mpoly_univar_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_univar_assert_canonical(
A: *mut fq_zech_mpoly_univar_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_to_univar(
A: *mut fq_zech_mpoly_univar_struct,
B: *const fq_zech_mpoly_struct,
var: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_from_univar_bits(
A: *mut fq_zech_mpoly_struct,
Abits: flint_bitcnt_t,
B: *const fq_zech_mpoly_univar_struct,
var: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_from_univar(
A: *mut fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_univar_struct,
var: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_univar_swap(
A: *mut fq_zech_mpoly_univar_struct,
B: *mut fq_zech_mpoly_univar_struct,
UNUSED_ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_univar_degree_fits_si(
A: *const fq_zech_mpoly_univar_struct,
UNUSED_ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_univar_length(
A: *const fq_zech_mpoly_univar_struct,
UNUSED_ctx: *const fq_zech_mpoly_ctx_struct,
) -> slong;
pub fn fq_zech_mpoly_univar_get_term_exp_si(
A: *mut fq_zech_mpoly_univar_struct,
i: slong,
UNUSED_ctx: *const fq_zech_mpoly_ctx_struct,
) -> slong;
pub fn fq_zech_mpoly_univar_get_term_coeff(
c: *mut fq_zech_mpoly_struct,
A: *const fq_zech_mpoly_univar_struct,
i: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_univar_swap_term_coeff(
c: *mut fq_zech_mpoly_struct,
A: *mut fq_zech_mpoly_univar_struct,
i: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
///Internal functions (guaranteed to change without notice)
pub fn _fq_zech_mpoly_get_nmod_mpoly(
s: *mut nmod_mpoly_struct,
sctx: *const nmod_mpoly_ctx_struct,
t: *const fq_zech_mpoly_struct,
tctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fq_zech_mpoly_set_nmod_mpoly(
A: *mut fq_zech_mpoly_struct,
Actx: *const fq_zech_mpoly_ctx_struct,
B: *const nmod_mpoly_struct,
Bctx: *const nmod_mpoly_ctx_struct,
);
pub fn fq_zech_mpolyl_lead_coeff(
c: *mut fq_zech_mpoly_struct,
A: *const fq_zech_mpoly_struct,
num_vars: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_pow_rmul(
A: *mut fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
k: ulong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_repack_bits_inplace(
A: *mut fq_zech_mpoly_struct,
Abits: flint_bitcnt_t,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_ctx_change_modulus(
ctx: *mut fq_zech_mpoly_ctx_struct,
deg: slong,
);
pub fn _fq_zech_mpoly_get_fq_nmod_mpoly(
A: *mut fq_nmod_mpoly_struct,
ctxA: *const fq_nmod_mpoly_ctx_struct,
B: *const fq_zech_mpoly_struct,
ctxB: *const fq_zech_mpoly_ctx_struct,
);
pub fn _fq_zech_mpoly_set_fq_nmod_mpoly(
A: *mut fq_zech_mpoly_struct,
ctxA: *const fq_zech_mpoly_ctx_struct,
B: *const fq_nmod_mpoly_struct,
ctxB: *const fq_nmod_mpoly_ctx_struct,
);
pub fn fq_zech_mpolyu_is_canonical(
poly: *const fq_zech_mpolyu_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpolyu_init(
A: *mut fq_zech_mpolyu_struct,
bits: flint_bitcnt_t,
UNUSED_ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpolyu_clear(
A: *mut fq_zech_mpolyu_struct,
uctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpolyu_swap(
A: *mut fq_zech_mpolyu_struct,
B: *mut fq_zech_mpolyu_struct,
);
pub fn fq_zech_mpolyu_zero(
A: *mut fq_zech_mpolyu_struct,
uctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpolyu_is_one(
A: *mut fq_zech_mpolyu_struct,
uctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpolyu_print_pretty(
poly: *const fq_zech_mpolyu_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpolyu_fit_length(
A: *mut fq_zech_mpolyu_struct,
length: slong,
uctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpolyu_one(
A: *mut fq_zech_mpolyu_struct,
uctx: *const fq_zech_mpoly_ctx_struct,
);
}
/* fq_zech_mpoly_factor.h */
#[repr(C)]
pub struct fq_zech_bpoly_struct {
pub coeffs: *mut fq_zech_poly_struct,
pub alloc: slong,
pub length: slong,
}
impl Default for fq_zech_bpoly_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type fq_zech_bpoly_t = [fq_zech_bpoly_struct; 1usize];
#[repr(C)]
pub struct fq_zech_tpoly_struct {
pub coeffs: *mut fq_zech_bpoly_struct,
pub alloc: slong,
pub length: slong,
}
impl Default for fq_zech_tpoly_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type fq_zech_tpoly_t = [fq_zech_tpoly_struct; 1usize];
#[repr(C)]
pub struct fq_zech_polyu_struct {
pub exps: *mut ulong,
pub coeffs: *mut fq_zech_struct,
pub length: slong,
pub alloc: slong,
}
impl Default for fq_zech_polyu_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 fq_zech_polyu_t = [fq_zech_polyu_struct; 1usize];
#[repr(C)]
pub struct fq_zech_polyun_struct {
pub coeffs: *mut fq_zech_poly_struct,
pub exps: *mut ulong,
pub length: slong,
pub alloc: slong,
}
impl Default for fq_zech_polyun_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 fq_zech_polyun_t = [fq_zech_polyun_struct; 1usize];
#[repr(C)]
pub struct fq_zech_mpoly_factor_struct {
pub constant: fq_zech_t,
pub poly: *mut fq_zech_mpoly_struct,
pub exp: *mut fmpz,
pub num: slong,
pub alloc: slong,
}
impl Default for fq_zech_mpoly_factor_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 fq_zech_mpoly_factor_t = [fq_zech_mpoly_factor_struct; 1usize];
#[repr(C)]
pub struct fq_zech_mpolyv_struct {
pub coeffs: *mut fq_zech_mpoly_struct,
pub alloc: slong,
pub length: slong,
}
impl Default for fq_zech_mpolyv_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type fq_zech_mpolyv_t = [fq_zech_mpolyv_struct; 1usize];
#[repr(C)]
pub struct fq_zech_mpoly_pfrac_struct {
pub bits: flint_bitcnt_t,
pub w: slong,
pub r: slong,
pub inv_prod_dbetas: *mut fq_zech_poly_struct,
pub inv_prod_dbetas_mvar: *mut fq_zech_mpoly_struct,
pub dbetas: *mut fq_zech_poly_struct,
pub dbetas_mvar: *mut fq_zech_mpoly_struct,
pub prod_mbetas: *mut fq_zech_mpoly_struct,
pub prod_mbetas_coeffs: *mut fq_zech_mpolyv_struct,
pub mbetas: *mut fq_zech_mpoly_struct,
pub deltas: *mut fq_zech_mpoly_struct,
pub xalpha: *mut fq_zech_mpoly_struct,
pub q: *mut fq_zech_mpoly_struct,
pub qt: *mut fq_zech_mpoly_struct,
pub newt: *mut fq_zech_mpoly_struct,
pub delta_coeffs: *mut fq_zech_mpolyv_struct,
pub T: fq_zech_mpoly_t,
pub Q: fq_zech_mpoly_t,
pub R: fq_zech_mpoly_t,
}
impl Default for fq_zech_mpoly_pfrac_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type fq_zech_mpoly_pfrac_t = [fq_zech_mpoly_pfrac_struct; 1usize];
unsafe extern "C" {
pub fn fq_zech_bpoly_init(
A: *mut fq_zech_bpoly_struct,
UNUSED_ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_bpoly_clear(
A: *mut fq_zech_bpoly_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_bpoly_swap(
A: *mut fq_zech_bpoly_struct,
B: *mut fq_zech_bpoly_struct,
UNUSED_ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_bpoly_normalise(
A: *mut fq_zech_bpoly_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_bpoly_realloc(
A: *mut fq_zech_bpoly_struct,
len: slong,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_bpoly_fit_length(
A: *mut fq_zech_bpoly_struct,
len: slong,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_bpoly_zero(
A: *mut fq_zech_bpoly_struct,
UNUSED_ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_bpoly_is_zero(
A: *const fq_zech_bpoly_struct,
UNUSED_ctx: *const fq_zech_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_bpoly_equal(
A: *const fq_zech_bpoly_struct,
B: *const fq_zech_bpoly_struct,
ctx: *const fq_zech_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_bpoly_get_coeff(
c: *mut fq_zech_struct,
A: *const fq_zech_bpoly_struct,
e0: slong,
e1: slong,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_bpoly_degree0(
A: *const fq_zech_bpoly_struct,
UNUSED_ctx: *const fq_zech_ctx_struct,
) -> slong;
pub fn fq_zech_bpoly_degree1(
A: *const fq_zech_bpoly_struct,
UNUSED_ctx: *const fq_zech_ctx_struct,
) -> slong;
pub fn fq_zech_bpoly_set_poly_var1(
A: *mut fq_zech_bpoly_struct,
B: *const fq_zech_poly_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_bpoly_set_poly_var0(
A: *mut fq_zech_bpoly_struct,
B: *const fq_zech_poly_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_bpoly_print_pretty(
A: *const fq_zech_bpoly_struct,
var0: *const ::std::os::raw::c_char,
var1: *const ::std::os::raw::c_char,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_bpoly_is_canonical(
A: *const fq_zech_bpoly_struct,
ctx: *const fq_zech_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_bpoly_fq_equal(
A: *const fq_zech_bpoly_struct,
B: *const fq_zech_bpoly_struct,
ctx: *const fq_zech_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_bpoly_set_coeff_fq_zech(
A: *mut fq_zech_bpoly_struct,
xi: slong,
yi: slong,
c: *const fq_zech_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_bpoly_set_fq_zech_poly_var0(
A: *mut fq_zech_bpoly_struct,
B: *const fq_zech_poly_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_bpoly_set_fq_zech_poly_var1(
A: *mut fq_zech_bpoly_struct,
B: *const fq_zech_poly_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_bpoly_make_monic(
A: *mut fq_zech_bpoly_struct,
order: slong,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_bpoly_mul(
A: *mut fq_zech_bpoly_struct,
B: *const fq_zech_bpoly_struct,
C: *const fq_zech_bpoly_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_bpoly_mul_series(
A: *mut fq_zech_bpoly_struct,
B: *const fq_zech_bpoly_struct,
C: *const fq_zech_bpoly_struct,
order: slong,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_bpoly_add(
A: *mut fq_zech_bpoly_struct,
B: *const fq_zech_bpoly_struct,
C: *const fq_zech_bpoly_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_bpoly_one(
A: *mut fq_zech_bpoly_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_bpoly_sub(
A: *mut fq_zech_bpoly_struct,
B: *const fq_zech_bpoly_struct,
C: *const fq_zech_bpoly_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_bpoly_derivative(
A: *mut fq_zech_bpoly_struct,
B: *const fq_zech_bpoly_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_bpoly_divrem_series(
Q: *mut fq_zech_bpoly_struct,
R: *mut fq_zech_bpoly_struct,
A: *const fq_zech_bpoly_struct,
B: *const fq_zech_bpoly_struct,
order: slong,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_bpoly_divides(
Q: *mut fq_zech_bpoly_struct,
A: *const fq_zech_bpoly_struct,
B: *const fq_zech_bpoly_struct,
ctx: *const fq_zech_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_bpoly_set(
A: *mut fq_zech_bpoly_struct,
B: *const fq_zech_bpoly_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_bpoly_make_primitive(
g: *mut fq_zech_poly_struct,
A: *mut fq_zech_bpoly_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_bpoly_taylor_shift_var1(
A: *mut fq_zech_bpoly_struct,
B: *const fq_zech_bpoly_struct,
c_: *const fq_zech_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_bpoly_taylor_shift_var0(
A: *mut fq_zech_bpoly_struct,
alpha: *const fq_zech_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_mpoly_get_fq_zech_bpoly(
A: *mut fq_zech_bpoly_struct,
B: *const fq_zech_mpoly_struct,
varx: slong,
vary: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_set_fq_zech_bpoly(
A: *mut fq_zech_mpoly_struct,
Abits: flint_bitcnt_t,
B: *const fq_zech_bpoly_struct,
varx: slong,
vary: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_bpoly_factor_smprime(
c: *mut fq_zech_poly_struct,
F: *mut fq_zech_tpoly_struct,
B: *mut fq_zech_bpoly_struct,
allow_shift: ::std::os::raw::c_int,
ctx: *const fq_zech_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_bpoly_factor_lgprime(
c: *mut fq_zech_poly_struct,
F: *mut fq_zech_tpoly_struct,
B: *mut fq_zech_bpoly_struct,
ctx: *const fq_zech_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_tpoly_init(
A: *mut fq_zech_tpoly_struct,
UNUSED_ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_tpoly_swap(
A: *mut fq_zech_tpoly_struct,
B: *mut fq_zech_tpoly_struct,
UNUSED_ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_tpoly_fit_length(
A: *mut fq_zech_tpoly_struct,
len: slong,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_tpoly_clear(
A: *mut fq_zech_tpoly_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_polyu_init(
A: *mut fq_zech_polyu_struct,
UNUSED_ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_polyu_clear(
A: *mut fq_zech_polyu_struct,
UNUSED_ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_polyu_realloc(
A: *mut fq_zech_polyu_struct,
len: slong,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_polyu_fit_length(
A: *mut fq_zech_polyu_struct,
len: slong,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_polyu_swap(
A: *mut fq_zech_polyu_struct,
B: *mut fq_zech_polyu_struct,
UNUSED_ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_polyu3_print_pretty(
A: *const fq_zech_polyu_struct,
var0: *const ::std::os::raw::c_char,
var1: *const ::std::os::raw::c_char,
var2: *const ::std::os::raw::c_char,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_polyu3_degrees(
deg0: *mut slong,
deg1: *mut slong,
deg2: *mut slong,
A: *const fq_zech_polyu_struct,
);
pub fn fq_zech_polyu_is_canonical(
A: *const fq_zech_polyu_struct,
ctx: *const fq_zech_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_polyun_init(
A: *mut fq_zech_polyun_struct,
UNUSED_ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_polyun_clear(
A: *mut fq_zech_polyun_struct,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_polyun_realloc(
A: *mut fq_zech_polyun_struct,
len: slong,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_polyun_fit_length(
A: *mut fq_zech_polyun_struct,
len: slong,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_polyun_swap(
A: *mut fq_zech_polyun_struct,
B: *mut fq_zech_polyun_struct,
UNUSED_ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_polyu2n_print_pretty(
A: *const fq_zech_polyun_struct,
var0: *const ::std::os::raw::c_char,
var1: *const ::std::os::raw::c_char,
varlast: *const ::std::os::raw::c_char,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_polyu3n_print_pretty(
A: *const fq_zech_polyun_struct,
var0: *const ::std::os::raw::c_char,
var1: *const ::std::os::raw::c_char,
var2: *const ::std::os::raw::c_char,
varlast: *const ::std::os::raw::c_char,
ctx: *const fq_zech_ctx_struct,
);
pub fn fq_zech_polyun_is_canonical(
A: *const fq_zech_polyun_struct,
ctx: *const fq_zech_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_is_fq_zech_poly(
A: *const fq_zech_mpoly_struct,
var: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_get_fq_zech_poly(
A: *mut fq_zech_poly_struct,
B: *const fq_zech_mpoly_struct,
var: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fq_zech_mpoly_set_fq_zech_poly(
A: *mut fq_zech_mpoly_struct,
Abits: flint_bitcnt_t,
Bcoeffs: *const fq_zech_struct,
Blen: slong,
var: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_set_fq_zech_poly(
A: *mut fq_zech_mpoly_struct,
B: *const fq_zech_poly_struct,
var: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_factor_init(
f: *mut fq_zech_mpoly_factor_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_factor_realloc(
f: *mut fq_zech_mpoly_factor_struct,
alloc: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_factor_fit_length(
f: *mut fq_zech_mpoly_factor_struct,
len: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_factor_clear(
f: *mut fq_zech_mpoly_factor_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_factor_set(
a: *mut fq_zech_mpoly_factor_struct,
b: *const fq_zech_mpoly_factor_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_factor_print_pretty(
f: *const fq_zech_mpoly_factor_struct,
vars: *mut *const ::std::os::raw::c_char,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_factor_append_ui(
f: *mut fq_zech_mpoly_factor_struct,
A: *const fq_zech_mpoly_struct,
e: ulong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_factor_append_fmpz(
f: *mut fq_zech_mpoly_factor_struct,
A: *const fq_zech_mpoly_struct,
e: *const fmpz,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_factor_squarefree(
f: *mut fq_zech_mpoly_factor_struct,
A: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_factor(
f: *mut fq_zech_mpoly_factor_struct,
A: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_factor_swap(
A: *mut fq_zech_mpoly_factor_struct,
B: *mut fq_zech_mpoly_factor_struct,
UNUSED_ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_factor_one(
a: *mut fq_zech_mpoly_factor_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_factor_expand(
A: *mut fq_zech_mpoly_struct,
f: *const fq_zech_mpoly_factor_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_factor_matches(
a: *const fq_zech_mpoly_struct,
f: *const fq_zech_mpoly_factor_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fq_zech_mpoly_get_lead0(
c: *mut fq_zech_mpoly_struct,
A: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn _fq_zech_mpoly_set_lead0(
A: *mut fq_zech_mpoly_struct,
B: *const fq_zech_mpoly_struct,
c: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpolyv_init(
A: *mut fq_zech_mpolyv_struct,
UNUSED_ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpolyv_swap(
A: *mut fq_zech_mpolyv_struct,
B: *mut fq_zech_mpolyv_struct,
UNUSED_ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpolyv_clear(
A: *mut fq_zech_mpolyv_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpolyv_print_pretty(
poly: *const fq_zech_mpolyv_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpolyv_fit_length(
A: *mut fq_zech_mpolyv_struct,
length: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpolyv_set_coeff(
A: *mut fq_zech_mpolyv_struct,
i: slong,
c: *mut fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_to_mpolyv(
A: *mut fq_zech_mpolyv_struct,
B: *const fq_zech_mpoly_struct,
xalpha: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_from_mpolyv(
A: *mut fq_zech_mpoly_struct,
B: *const fq_zech_mpolyv_struct,
xalpha: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_univar_content_mpoly(
g: *mut fq_zech_mpoly_struct,
A: *const fq_zech_mpoly_univar_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_univar_divexact_mpoly(
A: *mut fq_zech_mpoly_univar_struct,
b: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_factor_lcc_wang(
lc_divs: *mut fq_zech_mpoly_struct,
lcAfac: *const fq_zech_mpoly_factor_struct,
Auc: *const fq_zech_poly_struct,
Auf: *const fq_zech_bpoly_struct,
r: slong,
alpha: *const fq_zech_poly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_factor_irred_smprime_zassenhaus(
fac: *mut fq_zech_mpolyv_struct,
A: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_factor_irred_lgprime_zassenhaus(
fac: *mut fq_zech_mpolyv_struct,
A: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_factor_irred_smprime_wang(
fac: *mut fq_zech_mpolyv_struct,
A: *const fq_zech_mpoly_struct,
lcAfac: *const fq_zech_mpoly_factor_struct,
lcA: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_factor_irred_lgprime_wang(
Af: *mut fq_zech_mpolyv_struct,
A: *const fq_zech_mpoly_struct,
lcAfac: *const fq_zech_mpoly_factor_struct,
lcA: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_factor_irred_smprime_zippel(
fac: *mut fq_zech_mpolyv_struct,
A: *const fq_zech_mpoly_struct,
lcAfac: *const fq_zech_mpoly_factor_struct,
lcA: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_factor_irred_lgprime_zippel(
Af: *mut fq_zech_mpolyv_struct,
A: *const fq_zech_mpoly_struct,
lcAfac: *const fq_zech_mpoly_factor_struct,
lcA: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_pfrac_init(
Iv: *mut fq_zech_mpoly_pfrac_struct,
bits: flint_bitcnt_t,
l: slong,
r: slong,
betas: *const fq_zech_mpoly_struct,
alpha: *const fq_zech_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_pfrac_clear(
Iv: *mut fq_zech_mpoly_pfrac_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_mpoly_pfrac(
r: slong,
t: *mut fq_zech_mpoly_struct,
deg: *const slong,
Iv: *mut fq_zech_mpoly_pfrac_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_hlift(
m: slong,
f: *mut fq_zech_mpoly_struct,
r: slong,
alpha: *const fq_zech_struct,
A: *const fq_zech_mpoly_struct,
degs: *const slong,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_bpoly_hlift2(
A: *mut fq_zech_bpoly_struct,
B0: *mut fq_zech_bpoly_struct,
B1: *mut fq_zech_bpoly_struct,
alpha: *const fq_zech_struct,
degree_inner: slong,
ctx: *const fq_zech_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_bpoly_hlift(
r: slong,
A: *mut fq_zech_bpoly_struct,
B: *mut fq_zech_bpoly_struct,
alpha: *const fq_zech_struct,
degree_inner: slong,
ctx: *const fq_zech_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_polyu3_hlift(
r: slong,
BB: *mut fq_zech_polyun_struct,
A: *mut fq_zech_polyu_struct,
B: *mut fq_zech_polyu_struct,
beta: *const fq_zech_struct,
degree_inner: slong,
ctx: *const fq_zech_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_factor_algo(
f: *mut fq_zech_mpoly_factor_struct,
A: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
algo: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_factor_zassenhaus(
f: *mut fq_zech_mpoly_factor_struct,
A: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_factor_wang(
f: *mut fq_zech_mpoly_factor_struct,
A: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_mpoly_factor_zippel(
f: *mut fq_zech_mpoly_factor_struct,
A: *const fq_zech_mpoly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn fq_zech_poly_product_roots_fq_zech(
master: *mut fq_zech_poly_struct,
monomials: *const fq_zech_struct,
mlength: slong,
ctx: *const fq_zech_ctx_struct,
);
pub fn _fq_zech_mpoly_monomial_evals(
E: *mut fq_zech_struct,
Aexps: *const ulong,
Abits: flint_bitcnt_t,
Alen: slong,
alpha: *const fq_zech_struct,
vstart: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn _fq_zech_mpoly_eval_rest_fq_zech_poly(
E: *mut fq_zech_poly_struct,
starts: *mut slong,
ends: *mut slong,
stops: *mut slong,
es: *mut ulong,
Acoeffs: *const fq_zech_struct,
Aexps: *const ulong,
Alen: slong,
var: slong,
alphas: *const fq_zech_poly_struct,
offsets: *const slong,
shifts: *const slong,
N: slong,
mask: ulong,
nvars: slong,
ctx: *const fq_zech_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _fq_zech_mpoly_eval_to_bpoly(
E: *mut fq_zech_bpoly_struct,
A: *const fq_zech_mpoly_struct,
alphabetas: *const fq_zech_poly_struct,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn _fq_zech_mpoly_set_fq_zech_bpoly_var1_zero(
A: *mut fq_zech_mpoly_struct,
Abits: flint_bitcnt_t,
B: *const fq_zech_bpoly_struct,
var: slong,
ctx: *const fq_zech_mpoly_ctx_struct,
);
pub fn fq_zech_next(
x: *mut fq_zech_struct,
UNUSED_ctx: *const fq_zech_ctx_struct,
) -> ::std::os::raw::c_int;
}
/* fq_zech_poly.h */
/* fq_zech_poly_factor.h */
unsafe extern "C" {
pub fn FQ_ZECH_POLY_ITERATED_FROBENIUS_CUTOFF(
ctx: *const fq_zech_ctx_struct,
length: slong,
) -> ::std::os::raw::c_int;
pub fn fq_zech_poly_factor_get_poly(
z: *mut fq_zech_poly_struct,
fac: *const fq_zech_poly_factor_struct,
i: slong,
ctx: *const fq_zech_ctx_struct,
);
}
/* fq_zech_types.h */
#[repr(C)]
pub struct fq_zech_struct {
pub value: ulong,
}
impl Default for fq_zech_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 fq_zech_t = [fq_zech_struct; 1usize];
#[repr(C)]
pub struct fq_zech_ctx_struct {
pub qm1: ulong,
pub qm1o2: ulong,
pub qm1opm1: ulong,
pub p: ulong,
pub ppre: f64,
pub prime_root: ulong,
pub zech_log_table: *mut ulong,
pub prime_field_table: *mut ulong,
pub eval_table: *mut ulong,
pub fq_nmod_ctx: *mut fq_nmod_ctx_struct,
pub owns_fq_nmod_ctx: ::std::os::raw::c_int,
pub is_conway: ::std::os::raw::c_int,
}
impl Default for fq_zech_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 fq_zech_ctx_t = [fq_zech_ctx_struct; 1usize];
#[repr(C)]
pub struct fq_zech_mat_struct {
pub entries: *mut fq_zech_struct,
pub r: slong,
pub c: slong,
pub stride: slong,
}
impl Default for fq_zech_mat_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 fq_zech_mat_t = [fq_zech_mat_struct; 1usize];
#[repr(C)]
pub struct fq_zech_poly_struct {
pub coeffs: *mut fq_zech_struct,
pub alloc: slong,
pub length: slong,
}
impl Default for fq_zech_poly_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 fq_zech_poly_t = [fq_zech_poly_struct; 1usize];
#[repr(C)]
pub struct fq_zech_poly_factor_struct {
pub poly: *mut fq_zech_poly_struct,
pub exp: *mut slong,
pub num: slong,
pub alloc: slong,
}
impl Default for fq_zech_poly_factor_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 fq_zech_poly_factor_t = [fq_zech_poly_factor_struct; 1usize];
/* fq_zech_vec.h */
/* gr.h */
pub const gr_method_GR_METHOD_CTX_WRITE: gr_method = 0;
pub const gr_method_GR_METHOD_CTX_CLEAR: gr_method = 1;
pub const gr_method_GR_METHOD_CTX_IS_RING: gr_method = 2;
pub const gr_method_GR_METHOD_CTX_IS_COMMUTATIVE_RING: gr_method = 3;
pub const gr_method_GR_METHOD_CTX_IS_INTEGRAL_DOMAIN: gr_method = 4;
pub const gr_method_GR_METHOD_CTX_IS_FIELD: gr_method = 5;
pub const gr_method_GR_METHOD_CTX_IS_UNIQUE_FACTORIZATION_DOMAIN: gr_method = 6;
pub const gr_method_GR_METHOD_CTX_IS_FINITE: gr_method = 7;
pub const gr_method_GR_METHOD_CTX_IS_FINITE_CHARACTERISTIC: gr_method = 8;
pub const gr_method_GR_METHOD_CTX_IS_ALGEBRAICALLY_CLOSED: gr_method = 9;
pub const gr_method_GR_METHOD_CTX_IS_ZERO_RING: gr_method = 10;
pub const gr_method_GR_METHOD_CTX_IS_RATIONAL_VECTOR_SPACE: gr_method = 11;
pub const gr_method_GR_METHOD_CTX_IS_REAL_VECTOR_SPACE: gr_method = 12;
pub const gr_method_GR_METHOD_CTX_IS_COMPLEX_VECTOR_SPACE: gr_method = 13;
pub const gr_method_GR_METHOD_CTX_IS_ORDERED_RING: gr_method = 14;
pub const gr_method_GR_METHOD_CTX_IS_APPROX_COMMUTATIVE_RING: gr_method = 15;
pub const gr_method_GR_METHOD_CTX_IS_MULTIPLICATIVE_GROUP: gr_method = 16;
pub const gr_method_GR_METHOD_CTX_IS_EXACT: gr_method = 17;
pub const gr_method_GR_METHOD_CTX_IS_CANONICAL: gr_method = 18;
pub const gr_method_GR_METHOD_CTX_IS_THREADSAFE: gr_method = 19;
pub const gr_method_GR_METHOD_CTX_HAS_REAL_PREC: gr_method = 20;
pub const gr_method_GR_METHOD_CTX_SET_REAL_PREC: gr_method = 21;
pub const gr_method_GR_METHOD_CTX_GET_REAL_PREC: gr_method = 22;
pub const gr_method_GR_METHOD_CTX_SET_IS_FIELD: gr_method = 23;
pub const gr_method_GR_METHOD_CTX_SET_GEN_NAME: gr_method = 24;
pub const gr_method_GR_METHOD_CTX_SET_GEN_NAMES: gr_method = 25;
pub const gr_method_GR_METHOD_CTX_NGENS: gr_method = 26;
pub const gr_method_GR_METHOD_CTX_GEN_NAME: gr_method = 27;
pub const gr_method_GR_METHOD_CTX_BASE: gr_method = 28;
pub const gr_method_GR_METHOD_INIT: gr_method = 29;
pub const gr_method_GR_METHOD_CLEAR: gr_method = 30;
pub const gr_method_GR_METHOD_SWAP: gr_method = 31;
pub const gr_method_GR_METHOD_SET_SHALLOW: gr_method = 32;
pub const gr_method_GR_METHOD_WRITE: gr_method = 33;
pub const gr_method_GR_METHOD_WRITE_N: gr_method = 34;
pub const gr_method__GR_METHOD_LENGTH: gr_method = 35;
pub const gr_method_GR_METHOD_RANDTEST: gr_method = 36;
pub const gr_method_GR_METHOD_RANDTEST_NOT_ZERO: gr_method = 37;
pub const gr_method_GR_METHOD_RANDTEST_INVERTIBLE: gr_method = 38;
pub const gr_method_GR_METHOD_RANDTEST_SMALL: gr_method = 39;
pub const gr_method_GR_METHOD_ZERO: gr_method = 40;
pub const gr_method_GR_METHOD_ONE: gr_method = 41;
pub const gr_method_GR_METHOD_NEG_ONE: gr_method = 42;
pub const gr_method_GR_METHOD_IS_ZERO: gr_method = 43;
pub const gr_method_GR_METHOD_IS_ONE: gr_method = 44;
pub const gr_method_GR_METHOD_IS_NEG_ONE: gr_method = 45;
pub const gr_method_GR_METHOD_EQUAL: gr_method = 46;
pub const gr_method_GR_METHOD_SET: gr_method = 47;
pub const gr_method_GR_METHOD_SET_UI: gr_method = 48;
pub const gr_method_GR_METHOD_SET_SI: gr_method = 49;
pub const gr_method_GR_METHOD_SET_FMPZ: gr_method = 50;
pub const gr_method_GR_METHOD_SET_FMPQ: gr_method = 51;
pub const gr_method_GR_METHOD_SET_D: gr_method = 52;
pub const gr_method_GR_METHOD_SET_OTHER: gr_method = 53;
pub const gr_method_GR_METHOD_SET_STR: gr_method = 54;
pub const gr_method_GR_METHOD_GET_SI: gr_method = 55;
pub const gr_method_GR_METHOD_GET_UI: gr_method = 56;
pub const gr_method_GR_METHOD_GET_FMPZ: gr_method = 57;
pub const gr_method_GR_METHOD_GET_FMPQ: gr_method = 58;
pub const gr_method_GR_METHOD_GET_D: gr_method = 59;
pub const gr_method_GR_METHOD_GET_FEXPR: gr_method = 60;
pub const gr_method_GR_METHOD_GET_FEXPR_SERIALIZE: gr_method = 61;
pub const gr_method_GR_METHOD_SET_FEXPR: gr_method = 62;
pub const gr_method_GR_METHOD_NEG: gr_method = 63;
pub const gr_method_GR_METHOD_ADD: gr_method = 64;
pub const gr_method_GR_METHOD_ADD_UI: gr_method = 65;
pub const gr_method_GR_METHOD_ADD_SI: gr_method = 66;
pub const gr_method_GR_METHOD_ADD_FMPZ: gr_method = 67;
pub const gr_method_GR_METHOD_ADD_FMPQ: gr_method = 68;
pub const gr_method_GR_METHOD_ADD_OTHER: gr_method = 69;
pub const gr_method_GR_METHOD_OTHER_ADD: gr_method = 70;
pub const gr_method_GR_METHOD_SUB: gr_method = 71;
pub const gr_method_GR_METHOD_SUB_UI: gr_method = 72;
pub const gr_method_GR_METHOD_SUB_SI: gr_method = 73;
pub const gr_method_GR_METHOD_SUB_FMPZ: gr_method = 74;
pub const gr_method_GR_METHOD_SUB_FMPQ: gr_method = 75;
pub const gr_method_GR_METHOD_SUB_OTHER: gr_method = 76;
pub const gr_method_GR_METHOD_OTHER_SUB: gr_method = 77;
pub const gr_method_GR_METHOD_MUL: gr_method = 78;
pub const gr_method_GR_METHOD_MUL_UI: gr_method = 79;
pub const gr_method_GR_METHOD_MUL_SI: gr_method = 80;
pub const gr_method_GR_METHOD_MUL_FMPZ: gr_method = 81;
pub const gr_method_GR_METHOD_MUL_FMPQ: gr_method = 82;
pub const gr_method_GR_METHOD_MUL_OTHER: gr_method = 83;
pub const gr_method_GR_METHOD_OTHER_MUL: gr_method = 84;
pub const gr_method_GR_METHOD_ADDMUL: gr_method = 85;
pub const gr_method_GR_METHOD_ADDMUL_UI: gr_method = 86;
pub const gr_method_GR_METHOD_ADDMUL_SI: gr_method = 87;
pub const gr_method_GR_METHOD_ADDMUL_FMPZ: gr_method = 88;
pub const gr_method_GR_METHOD_ADDMUL_FMPQ: gr_method = 89;
pub const gr_method_GR_METHOD_ADDMUL_OTHER: gr_method = 90;
pub const gr_method_GR_METHOD_SUBMUL: gr_method = 91;
pub const gr_method_GR_METHOD_SUBMUL_UI: gr_method = 92;
pub const gr_method_GR_METHOD_SUBMUL_SI: gr_method = 93;
pub const gr_method_GR_METHOD_SUBMUL_FMPZ: gr_method = 94;
pub const gr_method_GR_METHOD_SUBMUL_FMPQ: gr_method = 95;
pub const gr_method_GR_METHOD_SUBMUL_OTHER: gr_method = 96;
pub const gr_method_GR_METHOD_FMA: gr_method = 97;
pub const gr_method_GR_METHOD_FMS: gr_method = 98;
pub const gr_method_GR_METHOD_FMMA: gr_method = 99;
pub const gr_method_GR_METHOD_FMMS: gr_method = 100;
pub const gr_method_GR_METHOD_MUL_TWO: gr_method = 101;
pub const gr_method_GR_METHOD_SQR: gr_method = 102;
pub const gr_method_GR_METHOD_MUL_2EXP_SI: gr_method = 103;
pub const gr_method_GR_METHOD_MUL_2EXP_FMPZ: gr_method = 104;
pub const gr_method_GR_METHOD_SET_FMPZ_2EXP_FMPZ: gr_method = 105;
pub const gr_method_GR_METHOD_GET_FMPZ_2EXP_FMPZ: gr_method = 106;
pub const gr_method_GR_METHOD_SET_FMPZ_10EXP_FMPZ: gr_method = 107;
pub const gr_method_GR_METHOD_GET_D_2EXP_SI: gr_method = 108;
pub const gr_method_GR_METHOD_IS_INVERTIBLE: gr_method = 109;
pub const gr_method_GR_METHOD_INV: gr_method = 110;
pub const gr_method_GR_METHOD_DIV: gr_method = 111;
pub const gr_method_GR_METHOD_DIV_UI: gr_method = 112;
pub const gr_method_GR_METHOD_DIV_SI: gr_method = 113;
pub const gr_method_GR_METHOD_DIV_FMPZ: gr_method = 114;
pub const gr_method_GR_METHOD_DIV_FMPQ: gr_method = 115;
pub const gr_method_GR_METHOD_DIV_OTHER: gr_method = 116;
pub const gr_method_GR_METHOD_OTHER_DIV: gr_method = 117;
pub const gr_method_GR_METHOD_DIV_NONUNIQUE: gr_method = 118;
pub const gr_method_GR_METHOD_DIVIDES: gr_method = 119;
pub const gr_method_GR_METHOD_DIVEXACT: gr_method = 120;
pub const gr_method_GR_METHOD_DIVEXACT_UI: gr_method = 121;
pub const gr_method_GR_METHOD_DIVEXACT_SI: gr_method = 122;
pub const gr_method_GR_METHOD_DIVEXACT_FMPZ: gr_method = 123;
pub const gr_method_GR_METHOD_DIVEXACT_FMPQ: gr_method = 124;
pub const gr_method_GR_METHOD_DIVEXACT_OTHER: gr_method = 125;
pub const gr_method_GR_METHOD_OTHER_DIVEXACT: gr_method = 126;
pub const gr_method_GR_METHOD_POW: gr_method = 127;
pub const gr_method_GR_METHOD_POW_UI: gr_method = 128;
pub const gr_method_GR_METHOD_POW_SI: gr_method = 129;
pub const gr_method_GR_METHOD_POW_FMPZ: gr_method = 130;
pub const gr_method_GR_METHOD_POW_FMPQ: gr_method = 131;
pub const gr_method_GR_METHOD_POW_OTHER: gr_method = 132;
pub const gr_method_GR_METHOD_OTHER_POW: gr_method = 133;
pub const gr_method_GR_METHOD_DERIVATIVE_GEN: gr_method = 134;
pub const gr_method_GR_METHOD_IS_SQUARE: gr_method = 135;
pub const gr_method_GR_METHOD_SQRT: gr_method = 136;
pub const gr_method_GR_METHOD_RSQRT: gr_method = 137;
pub const gr_method_GR_METHOD_HYPOT: gr_method = 138;
pub const gr_method_GR_METHOD_IS_PERFECT_POWER: gr_method = 139;
pub const gr_method_GR_METHOD_FACTOR_PERFECT_POWER: gr_method = 140;
pub const gr_method_GR_METHOD_ROOT_UI: gr_method = 141;
pub const gr_method_GR_METHOD_EUCLIDEAN_DIV: gr_method = 142;
pub const gr_method_GR_METHOD_EUCLIDEAN_REM: gr_method = 143;
pub const gr_method_GR_METHOD_EUCLIDEAN_DIVREM: gr_method = 144;
pub const gr_method_GR_METHOD_GCD: gr_method = 145;
pub const gr_method_GR_METHOD_LCM: gr_method = 146;
pub const gr_method_GR_METHOD_FACTOR: gr_method = 147;
pub const gr_method_GR_METHOD_NUMERATOR: gr_method = 148;
pub const gr_method_GR_METHOD_DENOMINATOR: gr_method = 149;
pub const gr_method_GR_METHOD_FLOOR: gr_method = 150;
pub const gr_method_GR_METHOD_CEIL: gr_method = 151;
pub const gr_method_GR_METHOD_TRUNC: gr_method = 152;
pub const gr_method_GR_METHOD_NINT: gr_method = 153;
pub const gr_method_GR_METHOD_CMP: gr_method = 154;
pub const gr_method_GR_METHOD_CMPABS: gr_method = 155;
pub const gr_method_GR_METHOD_CMP_OTHER: gr_method = 156;
pub const gr_method_GR_METHOD_CMPABS_OTHER: gr_method = 157;
pub const gr_method_GR_METHOD_MIN: gr_method = 158;
pub const gr_method_GR_METHOD_MAX: gr_method = 159;
pub const gr_method_GR_METHOD_ABS: gr_method = 160;
pub const gr_method_GR_METHOD_ABS2: gr_method = 161;
pub const gr_method_GR_METHOD_I: gr_method = 162;
pub const gr_method_GR_METHOD_CONJ: gr_method = 163;
pub const gr_method_GR_METHOD_RE: gr_method = 164;
pub const gr_method_GR_METHOD_IM: gr_method = 165;
pub const gr_method_GR_METHOD_SGN: gr_method = 166;
pub const gr_method_GR_METHOD_CSGN: gr_method = 167;
pub const gr_method_GR_METHOD_ARG: gr_method = 168;
pub const gr_method_GR_METHOD_CANONICAL_ASSOCIATE: gr_method = 169;
pub const gr_method_GR_METHOD_POS_INF: gr_method = 170;
pub const gr_method_GR_METHOD_NEG_INF: gr_method = 171;
pub const gr_method_GR_METHOD_UINF: gr_method = 172;
pub const gr_method_GR_METHOD_UNDEFINED: gr_method = 173;
pub const gr_method_GR_METHOD_UNKNOWN: gr_method = 174;
pub const gr_method_GR_METHOD_IS_INTEGER: gr_method = 175;
pub const gr_method_GR_METHOD_IS_RATIONAL: gr_method = 176;
pub const gr_method_GR_METHOD_IS_REAL: gr_method = 177;
pub const gr_method_GR_METHOD_IS_POSITIVE_INTEGER: gr_method = 178;
pub const gr_method_GR_METHOD_IS_NONNEGATIVE_INTEGER: gr_method = 179;
pub const gr_method_GR_METHOD_IS_NEGATIVE_INTEGER: gr_method = 180;
pub const gr_method_GR_METHOD_IS_NONPOSITIVE_INTEGER: gr_method = 181;
pub const gr_method_GR_METHOD_IS_POSITIVE_REAL: gr_method = 182;
pub const gr_method_GR_METHOD_IS_NONNEGATIVE_REAL: gr_method = 183;
pub const gr_method_GR_METHOD_IS_NEGATIVE_REAL: gr_method = 184;
pub const gr_method_GR_METHOD_IS_NONPOSITIVE_REAL: gr_method = 185;
pub const gr_method_GR_METHOD_SET_INTERVAL_MID_RAD: gr_method = 186;
pub const gr_method_GR_METHOD_IS_ROOT_OF_UNITY: gr_method = 187;
pub const gr_method_GR_METHOD_ROOT_OF_UNITY_UI: gr_method = 188;
pub const gr_method_GR_METHOD_ROOT_OF_UNITY_UI_VEC: gr_method = 189;
pub const gr_method_GR_METHOD_PI: gr_method = 190;
pub const gr_method_GR_METHOD_EXP: gr_method = 191;
pub const gr_method_GR_METHOD_EXPM1: gr_method = 192;
pub const gr_method_GR_METHOD_EXP_PI_I: gr_method = 193;
pub const gr_method_GR_METHOD_EXP2: gr_method = 194;
pub const gr_method_GR_METHOD_EXP10: gr_method = 195;
pub const gr_method_GR_METHOD_LOG: gr_method = 196;
pub const gr_method_GR_METHOD_LOG1P: gr_method = 197;
pub const gr_method_GR_METHOD_LOG_PI_I: gr_method = 198;
pub const gr_method_GR_METHOD_LOG2: gr_method = 199;
pub const gr_method_GR_METHOD_LOG10: gr_method = 200;
pub const gr_method_GR_METHOD_SIN: gr_method = 201;
pub const gr_method_GR_METHOD_COS: gr_method = 202;
pub const gr_method_GR_METHOD_SIN_COS: gr_method = 203;
pub const gr_method_GR_METHOD_TAN: gr_method = 204;
pub const gr_method_GR_METHOD_COT: gr_method = 205;
pub const gr_method_GR_METHOD_SEC: gr_method = 206;
pub const gr_method_GR_METHOD_CSC: gr_method = 207;
pub const gr_method_GR_METHOD_SIN_PI: gr_method = 208;
pub const gr_method_GR_METHOD_COS_PI: gr_method = 209;
pub const gr_method_GR_METHOD_SIN_COS_PI: gr_method = 210;
pub const gr_method_GR_METHOD_TAN_PI: gr_method = 211;
pub const gr_method_GR_METHOD_COT_PI: gr_method = 212;
pub const gr_method_GR_METHOD_SEC_PI: gr_method = 213;
pub const gr_method_GR_METHOD_CSC_PI: gr_method = 214;
pub const gr_method_GR_METHOD_SINC: gr_method = 215;
pub const gr_method_GR_METHOD_SINC_PI: gr_method = 216;
pub const gr_method_GR_METHOD_SINH: gr_method = 217;
pub const gr_method_GR_METHOD_COSH: gr_method = 218;
pub const gr_method_GR_METHOD_SINH_COSH: gr_method = 219;
pub const gr_method_GR_METHOD_TANH: gr_method = 220;
pub const gr_method_GR_METHOD_COTH: gr_method = 221;
pub const gr_method_GR_METHOD_SECH: gr_method = 222;
pub const gr_method_GR_METHOD_CSCH: gr_method = 223;
pub const gr_method_GR_METHOD_ASIN: gr_method = 224;
pub const gr_method_GR_METHOD_ACOS: gr_method = 225;
pub const gr_method_GR_METHOD_ATAN: gr_method = 226;
pub const gr_method_GR_METHOD_ATAN2: gr_method = 227;
pub const gr_method_GR_METHOD_ACOT: gr_method = 228;
pub const gr_method_GR_METHOD_ASEC: gr_method = 229;
pub const gr_method_GR_METHOD_ACSC: gr_method = 230;
pub const gr_method_GR_METHOD_ASINH: gr_method = 231;
pub const gr_method_GR_METHOD_ACOSH: gr_method = 232;
pub const gr_method_GR_METHOD_ATANH: gr_method = 233;
pub const gr_method_GR_METHOD_ACOTH: gr_method = 234;
pub const gr_method_GR_METHOD_ASECH: gr_method = 235;
pub const gr_method_GR_METHOD_ACSCH: gr_method = 236;
pub const gr_method_GR_METHOD_ASIN_PI: gr_method = 237;
pub const gr_method_GR_METHOD_ACOS_PI: gr_method = 238;
pub const gr_method_GR_METHOD_ATAN_PI: gr_method = 239;
pub const gr_method_GR_METHOD_ACOT_PI: gr_method = 240;
pub const gr_method_GR_METHOD_ASEC_PI: gr_method = 241;
pub const gr_method_GR_METHOD_ACSC_PI: gr_method = 242;
pub const gr_method_GR_METHOD_FAC: gr_method = 243;
pub const gr_method_GR_METHOD_FAC_UI: gr_method = 244;
pub const gr_method_GR_METHOD_FAC_FMPZ: gr_method = 245;
pub const gr_method_GR_METHOD_FAC_VEC: gr_method = 246;
pub const gr_method_GR_METHOD_RFAC: gr_method = 247;
pub const gr_method_GR_METHOD_RFAC_UI: gr_method = 248;
pub const gr_method_GR_METHOD_RFAC_FMPZ: gr_method = 249;
pub const gr_method_GR_METHOD_RFAC_VEC: gr_method = 250;
pub const gr_method_GR_METHOD_BIN: gr_method = 251;
pub const gr_method_GR_METHOD_BIN_UI: gr_method = 252;
pub const gr_method_GR_METHOD_BIN_UIUI: gr_method = 253;
pub const gr_method_GR_METHOD_BIN_VEC: gr_method = 254;
pub const gr_method_GR_METHOD_BIN_UI_VEC: gr_method = 255;
pub const gr_method_GR_METHOD_RISING_UI: gr_method = 256;
pub const gr_method_GR_METHOD_RISING: gr_method = 257;
pub const gr_method_GR_METHOD_FALLING_UI: gr_method = 258;
pub const gr_method_GR_METHOD_FALLING: gr_method = 259;
pub const gr_method_GR_METHOD_GAMMA: gr_method = 260;
pub const gr_method_GR_METHOD_GAMMA_FMPZ: gr_method = 261;
pub const gr_method_GR_METHOD_GAMMA_FMPQ: gr_method = 262;
pub const gr_method_GR_METHOD_RGAMMA: gr_method = 263;
pub const gr_method_GR_METHOD_LGAMMA: gr_method = 264;
pub const gr_method_GR_METHOD_DIGAMMA: gr_method = 265;
pub const gr_method_GR_METHOD_BETA: gr_method = 266;
pub const gr_method_GR_METHOD_DOUBLEFAC: gr_method = 267;
pub const gr_method_GR_METHOD_DOUBLEFAC_UI: gr_method = 268;
pub const gr_method_GR_METHOD_BARNES_G: gr_method = 269;
pub const gr_method_GR_METHOD_LOG_BARNES_G: gr_method = 270;
pub const gr_method_GR_METHOD_HARMONIC: gr_method = 271;
pub const gr_method_GR_METHOD_HARMONIC_UI: gr_method = 272;
pub const gr_method_GR_METHOD_BERNOULLI_UI: gr_method = 273;
pub const gr_method_GR_METHOD_BERNOULLI_FMPZ: gr_method = 274;
pub const gr_method_GR_METHOD_BERNOULLI_VEC: gr_method = 275;
pub const gr_method_GR_METHOD_FIB_UI: gr_method = 276;
pub const gr_method_GR_METHOD_FIB_FMPZ: gr_method = 277;
pub const gr_method_GR_METHOD_FIB_VEC: gr_method = 278;
pub const gr_method_GR_METHOD_STIRLING_S1U_UIUI: gr_method = 279;
pub const gr_method_GR_METHOD_STIRLING_S1_UIUI: gr_method = 280;
pub const gr_method_GR_METHOD_STIRLING_S2_UIUI: gr_method = 281;
pub const gr_method_GR_METHOD_STIRLING_S1U_UI_VEC: gr_method = 282;
pub const gr_method_GR_METHOD_STIRLING_S1_UI_VEC: gr_method = 283;
pub const gr_method_GR_METHOD_STIRLING_S2_UI_VEC: gr_method = 284;
pub const gr_method_GR_METHOD_EULERNUM_UI: gr_method = 285;
pub const gr_method_GR_METHOD_EULERNUM_FMPZ: gr_method = 286;
pub const gr_method_GR_METHOD_EULERNUM_VEC: gr_method = 287;
pub const gr_method_GR_METHOD_BELLNUM_UI: gr_method = 288;
pub const gr_method_GR_METHOD_BELLNUM_FMPZ: gr_method = 289;
pub const gr_method_GR_METHOD_BELLNUM_VEC: gr_method = 290;
pub const gr_method_GR_METHOD_PARTITIONS_UI: gr_method = 291;
pub const gr_method_GR_METHOD_PARTITIONS_FMPZ: gr_method = 292;
pub const gr_method_GR_METHOD_PARTITIONS_VEC: gr_method = 293;
pub const gr_method_GR_METHOD_CHEBYSHEV_T_FMPZ: gr_method = 294;
pub const gr_method_GR_METHOD_CHEBYSHEV_U_FMPZ: gr_method = 295;
pub const gr_method_GR_METHOD_CHEBYSHEV_T: gr_method = 296;
pub const gr_method_GR_METHOD_CHEBYSHEV_U: gr_method = 297;
pub const gr_method_GR_METHOD_JACOBI_P: gr_method = 298;
pub const gr_method_GR_METHOD_GEGENBAUER_C: gr_method = 299;
pub const gr_method_GR_METHOD_LAGUERRE_L: gr_method = 300;
pub const gr_method_GR_METHOD_HERMITE_H: gr_method = 301;
pub const gr_method_GR_METHOD_LEGENDRE_P: gr_method = 302;
pub const gr_method_GR_METHOD_LEGENDRE_Q: gr_method = 303;
pub const gr_method_GR_METHOD_LEGENDRE_P_ROOT_UI: gr_method = 304;
pub const gr_method_GR_METHOD_SPHERICAL_Y_SI: gr_method = 305;
pub const gr_method_GR_METHOD_EULER: gr_method = 306;
pub const gr_method_GR_METHOD_CATALAN: gr_method = 307;
pub const gr_method_GR_METHOD_KHINCHIN: gr_method = 308;
pub const gr_method_GR_METHOD_GLAISHER: gr_method = 309;
pub const gr_method_GR_METHOD_LAMBERTW: gr_method = 310;
pub const gr_method_GR_METHOD_LAMBERTW_FMPZ: gr_method = 311;
pub const gr_method_GR_METHOD_ERF: gr_method = 312;
pub const gr_method_GR_METHOD_ERFC: gr_method = 313;
pub const gr_method_GR_METHOD_ERFCX: gr_method = 314;
pub const gr_method_GR_METHOD_ERFI: gr_method = 315;
pub const gr_method_GR_METHOD_ERFINV: gr_method = 316;
pub const gr_method_GR_METHOD_ERFCINV: gr_method = 317;
pub const gr_method_GR_METHOD_FRESNEL_S: gr_method = 318;
pub const gr_method_GR_METHOD_FRESNEL_C: gr_method = 319;
pub const gr_method_GR_METHOD_FRESNEL: gr_method = 320;
pub const gr_method_GR_METHOD_GAMMA_UPPER: gr_method = 321;
pub const gr_method_GR_METHOD_GAMMA_LOWER: gr_method = 322;
pub const gr_method_GR_METHOD_BETA_LOWER: gr_method = 323;
pub const gr_method_GR_METHOD_EXP_INTEGRAL: gr_method = 324;
pub const gr_method_GR_METHOD_EXP_INTEGRAL_EI: gr_method = 325;
pub const gr_method_GR_METHOD_SIN_INTEGRAL: gr_method = 326;
pub const gr_method_GR_METHOD_COS_INTEGRAL: gr_method = 327;
pub const gr_method_GR_METHOD_SINH_INTEGRAL: gr_method = 328;
pub const gr_method_GR_METHOD_COSH_INTEGRAL: gr_method = 329;
pub const gr_method_GR_METHOD_LOG_INTEGRAL: gr_method = 330;
pub const gr_method_GR_METHOD_DILOG: gr_method = 331;
pub const gr_method_GR_METHOD_BESSEL_J: gr_method = 332;
pub const gr_method_GR_METHOD_BESSEL_Y: gr_method = 333;
pub const gr_method_GR_METHOD_BESSEL_J_Y: gr_method = 334;
pub const gr_method_GR_METHOD_BESSEL_I: gr_method = 335;
pub const gr_method_GR_METHOD_BESSEL_I_SCALED: gr_method = 336;
pub const gr_method_GR_METHOD_BESSEL_K: gr_method = 337;
pub const gr_method_GR_METHOD_BESSEL_K_SCALED: gr_method = 338;
pub const gr_method_GR_METHOD_AIRY: gr_method = 339;
pub const gr_method_GR_METHOD_AIRY_AI: gr_method = 340;
pub const gr_method_GR_METHOD_AIRY_BI: gr_method = 341;
pub const gr_method_GR_METHOD_AIRY_AI_PRIME: gr_method = 342;
pub const gr_method_GR_METHOD_AIRY_BI_PRIME: gr_method = 343;
pub const gr_method_GR_METHOD_AIRY_AI_ZERO: gr_method = 344;
pub const gr_method_GR_METHOD_AIRY_BI_ZERO: gr_method = 345;
pub const gr_method_GR_METHOD_AIRY_AI_PRIME_ZERO: gr_method = 346;
pub const gr_method_GR_METHOD_AIRY_BI_PRIME_ZERO: gr_method = 347;
pub const gr_method_GR_METHOD_COULOMB: gr_method = 348;
pub const gr_method_GR_METHOD_COULOMB_F: gr_method = 349;
pub const gr_method_GR_METHOD_COULOMB_G: gr_method = 350;
pub const gr_method_GR_METHOD_COULOMB_HPOS: gr_method = 351;
pub const gr_method_GR_METHOD_COULOMB_HNEG: gr_method = 352;
pub const gr_method_GR_METHOD_ZETA: gr_method = 353;
pub const gr_method_GR_METHOD_ZETA_UI: gr_method = 354;
pub const gr_method_GR_METHOD_HURWITZ_ZETA: gr_method = 355;
pub const gr_method_GR_METHOD_LERCH_PHI: gr_method = 356;
pub const gr_method_GR_METHOD_STIELTJES: gr_method = 357;
pub const gr_method_GR_METHOD_DIRICHLET_ETA: gr_method = 358;
pub const gr_method_GR_METHOD_DIRICHLET_BETA: gr_method = 359;
pub const gr_method_GR_METHOD_RIEMANN_XI: gr_method = 360;
pub const gr_method_GR_METHOD_ZETA_ZERO: gr_method = 361;
pub const gr_method_GR_METHOD_ZETA_ZERO_VEC: gr_method = 362;
pub const gr_method_GR_METHOD_ZETA_NZEROS: gr_method = 363;
pub const gr_method_GR_METHOD_DIRICHLET_CHI_UI: gr_method = 364;
pub const gr_method_GR_METHOD_DIRICHLET_CHI_FMPZ: gr_method = 365;
pub const gr_method_GR_METHOD_DIRICHLET_L: gr_method = 366;
pub const gr_method_GR_METHOD_DIRICHLET_HARDY_THETA: gr_method = 367;
pub const gr_method_GR_METHOD_DIRICHLET_HARDY_Z: gr_method = 368;
pub const gr_method_GR_METHOD_BERNPOLY_UI: gr_method = 369;
pub const gr_method_GR_METHOD_EULERPOLY_UI: gr_method = 370;
pub const gr_method_GR_METHOD_POLYLOG: gr_method = 371;
pub const gr_method_GR_METHOD_POLYGAMMA: gr_method = 372;
pub const gr_method_GR_METHOD_HYPGEOM_0F1: gr_method = 373;
pub const gr_method_GR_METHOD_HYPGEOM_1F1: gr_method = 374;
pub const gr_method_GR_METHOD_HYPGEOM_2F0: gr_method = 375;
pub const gr_method_GR_METHOD_HYPGEOM_2F1: gr_method = 376;
pub const gr_method_GR_METHOD_HYPGEOM_U: gr_method = 377;
pub const gr_method_GR_METHOD_HYPGEOM_PFQ: gr_method = 378;
pub const gr_method_GR_METHOD_JACOBI_THETA: gr_method = 379;
pub const gr_method_GR_METHOD_JACOBI_THETA_1: gr_method = 380;
pub const gr_method_GR_METHOD_JACOBI_THETA_2: gr_method = 381;
pub const gr_method_GR_METHOD_JACOBI_THETA_3: gr_method = 382;
pub const gr_method_GR_METHOD_JACOBI_THETA_4: gr_method = 383;
pub const gr_method_GR_METHOD_JACOBI_THETA_Q: gr_method = 384;
pub const gr_method_GR_METHOD_JACOBI_THETA_Q_1: gr_method = 385;
pub const gr_method_GR_METHOD_JACOBI_THETA_Q_2: gr_method = 386;
pub const gr_method_GR_METHOD_JACOBI_THETA_Q_3: gr_method = 387;
pub const gr_method_GR_METHOD_JACOBI_THETA_Q_4: gr_method = 388;
pub const gr_method_GR_METHOD_MODULAR_J: gr_method = 389;
pub const gr_method_GR_METHOD_MODULAR_LAMBDA: gr_method = 390;
pub const gr_method_GR_METHOD_MODULAR_DELTA: gr_method = 391;
pub const gr_method_GR_METHOD_HILBERT_CLASS_POLY: gr_method = 392;
pub const gr_method_GR_METHOD_DEDEKIND_ETA: gr_method = 393;
pub const gr_method_GR_METHOD_DEDEKIND_ETA_Q: gr_method = 394;
pub const gr_method_GR_METHOD_EISENSTEIN_E: gr_method = 395;
pub const gr_method_GR_METHOD_EISENSTEIN_G: gr_method = 396;
pub const gr_method_GR_METHOD_EISENSTEIN_G_VEC: gr_method = 397;
pub const gr_method_GR_METHOD_AGM: gr_method = 398;
pub const gr_method_GR_METHOD_AGM1: gr_method = 399;
pub const gr_method_GR_METHOD_ELLIPTIC_K: gr_method = 400;
pub const gr_method_GR_METHOD_ELLIPTIC_E: gr_method = 401;
pub const gr_method_GR_METHOD_ELLIPTIC_PI: gr_method = 402;
pub const gr_method_GR_METHOD_ELLIPTIC_F: gr_method = 403;
pub const gr_method_GR_METHOD_ELLIPTIC_E_INC: gr_method = 404;
pub const gr_method_GR_METHOD_ELLIPTIC_PI_INC: gr_method = 405;
pub const gr_method_GR_METHOD_CARLSON_RF: gr_method = 406;
pub const gr_method_GR_METHOD_CARLSON_RC: gr_method = 407;
pub const gr_method_GR_METHOD_CARLSON_RJ: gr_method = 408;
pub const gr_method_GR_METHOD_CARLSON_RG: gr_method = 409;
pub const gr_method_GR_METHOD_CARLSON_RD: gr_method = 410;
pub const gr_method_GR_METHOD_ELLIPTIC_ROOTS: gr_method = 411;
pub const gr_method_GR_METHOD_ELLIPTIC_INVARIANTS: gr_method = 412;
pub const gr_method_GR_METHOD_WEIERSTRASS_P: gr_method = 413;
pub const gr_method_GR_METHOD_WEIERSTRASS_P_PRIME: gr_method = 414;
pub const gr_method_GR_METHOD_WEIERSTRASS_P_INV: gr_method = 415;
pub const gr_method_GR_METHOD_WEIERSTRASS_ZETA: gr_method = 416;
pub const gr_method_GR_METHOD_WEIERSTRASS_SIGMA: gr_method = 417;
pub const gr_method_GR_METHOD_GEN: gr_method = 418;
pub const gr_method_GR_METHOD_GENS: gr_method = 419;
pub const gr_method_GR_METHOD_GENS_RECURSIVE: gr_method = 420;
pub const gr_method_GR_METHOD_BIG_O_BASE_FMPZ: gr_method = 421;
pub const gr_method_GR_METHOD_CTX_FQ_PRIME: gr_method = 422;
pub const gr_method_GR_METHOD_CTX_FQ_DEGREE: gr_method = 423;
pub const gr_method_GR_METHOD_CTX_FQ_ORDER: gr_method = 424;
pub const gr_method_GR_METHOD_FQ_FROBENIUS: gr_method = 425;
pub const gr_method_GR_METHOD_FQ_MULTIPLICATIVE_ORDER: gr_method = 426;
pub const gr_method_GR_METHOD_FQ_NORM: gr_method = 427;
pub const gr_method_GR_METHOD_FQ_TRACE: gr_method = 428;
pub const gr_method_GR_METHOD_FQ_IS_PRIMITIVE: gr_method = 429;
pub const gr_method_GR_METHOD_FQ_PTH_ROOT: gr_method = 430;
pub const gr_method_GR_METHOD_VEC_INIT: gr_method = 431;
pub const gr_method_GR_METHOD_VEC_CLEAR: gr_method = 432;
pub const gr_method_GR_METHOD_VEC_SWAP: gr_method = 433;
pub const gr_method_GR_METHOD_VEC_SET: gr_method = 434;
pub const gr_method_GR_METHOD_VEC_ZERO: gr_method = 435;
pub const gr_method_GR_METHOD_VEC_EQUAL: gr_method = 436;
pub const gr_method_GR_METHOD_VEC_IS_ZERO: gr_method = 437;
pub const gr_method_GR_METHOD_VEC_NEG: gr_method = 438;
pub const gr_method_GR_METHOD_VEC_NORMALISE: gr_method = 439;
pub const gr_method_GR_METHOD_VEC_NORMALISE_WEAK: gr_method = 440;
pub const gr_method_GR_METHOD_VEC_ADD: gr_method = 441;
pub const gr_method_GR_METHOD_VEC_SUB: gr_method = 442;
pub const gr_method_GR_METHOD_VEC_MUL: gr_method = 443;
pub const gr_method_GR_METHOD_VEC_DIV: gr_method = 444;
pub const gr_method_GR_METHOD_VEC_DIVEXACT: gr_method = 445;
pub const gr_method_GR_METHOD_VEC_POW: gr_method = 446;
pub const gr_method_GR_METHOD_VEC_ADD_SCALAR: gr_method = 447;
pub const gr_method_GR_METHOD_VEC_SUB_SCALAR: gr_method = 448;
pub const gr_method_GR_METHOD_VEC_MUL_SCALAR: gr_method = 449;
pub const gr_method_GR_METHOD_VEC_DIV_SCALAR: gr_method = 450;
pub const gr_method_GR_METHOD_VEC_DIVEXACT_SCALAR: gr_method = 451;
pub const gr_method_GR_METHOD_VEC_POW_SCALAR: gr_method = 452;
pub const gr_method_GR_METHOD_SCALAR_ADD_VEC: gr_method = 453;
pub const gr_method_GR_METHOD_SCALAR_SUB_VEC: gr_method = 454;
pub const gr_method_GR_METHOD_SCALAR_MUL_VEC: gr_method = 455;
pub const gr_method_GR_METHOD_SCALAR_DIV_VEC: gr_method = 456;
pub const gr_method_GR_METHOD_SCALAR_DIVEXACT_VEC: gr_method = 457;
pub const gr_method_GR_METHOD_SCALAR_POW_VEC: gr_method = 458;
pub const gr_method_GR_METHOD_VEC_ADD_OTHER: gr_method = 459;
pub const gr_method_GR_METHOD_VEC_SUB_OTHER: gr_method = 460;
pub const gr_method_GR_METHOD_VEC_MUL_OTHER: gr_method = 461;
pub const gr_method_GR_METHOD_VEC_DIV_OTHER: gr_method = 462;
pub const gr_method_GR_METHOD_VEC_DIVEXACT_OTHER: gr_method = 463;
pub const gr_method_GR_METHOD_VEC_POW_OTHER: gr_method = 464;
pub const gr_method_GR_METHOD_OTHER_ADD_VEC: gr_method = 465;
pub const gr_method_GR_METHOD_OTHER_SUB_VEC: gr_method = 466;
pub const gr_method_GR_METHOD_OTHER_MUL_VEC: gr_method = 467;
pub const gr_method_GR_METHOD_OTHER_DIV_VEC: gr_method = 468;
pub const gr_method_GR_METHOD_OTHER_DIVEXACT_VEC: gr_method = 469;
pub const gr_method_GR_METHOD_OTHER_POW_VEC: gr_method = 470;
pub const gr_method_GR_METHOD_VEC_ADD_SCALAR_OTHER: gr_method = 471;
pub const gr_method_GR_METHOD_VEC_SUB_SCALAR_OTHER: gr_method = 472;
pub const gr_method_GR_METHOD_VEC_MUL_SCALAR_OTHER: gr_method = 473;
pub const gr_method_GR_METHOD_VEC_DIV_SCALAR_OTHER: gr_method = 474;
pub const gr_method_GR_METHOD_VEC_DIVEXACT_SCALAR_OTHER: gr_method = 475;
pub const gr_method_GR_METHOD_VEC_POW_SCALAR_OTHER: gr_method = 476;
pub const gr_method_GR_METHOD_SCALAR_OTHER_ADD_VEC: gr_method = 477;
pub const gr_method_GR_METHOD_SCALAR_OTHER_SUB_VEC: gr_method = 478;
pub const gr_method_GR_METHOD_SCALAR_OTHER_MUL_VEC: gr_method = 479;
pub const gr_method_GR_METHOD_SCALAR_OTHER_DIV_VEC: gr_method = 480;
pub const gr_method_GR_METHOD_SCALAR_OTHER_DIVEXACT_VEC: gr_method = 481;
pub const gr_method_GR_METHOD_SCALAR_OTHER_POW_VEC: gr_method = 482;
pub const gr_method_GR_METHOD_VEC_ADD_SCALAR_SI: gr_method = 483;
pub const gr_method_GR_METHOD_VEC_ADD_SCALAR_UI: gr_method = 484;
pub const gr_method_GR_METHOD_VEC_ADD_SCALAR_FMPZ: gr_method = 485;
pub const gr_method_GR_METHOD_VEC_ADD_SCALAR_FMPQ: gr_method = 486;
pub const gr_method_GR_METHOD_VEC_SUB_SCALAR_SI: gr_method = 487;
pub const gr_method_GR_METHOD_VEC_SUB_SCALAR_UI: gr_method = 488;
pub const gr_method_GR_METHOD_VEC_SUB_SCALAR_FMPZ: gr_method = 489;
pub const gr_method_GR_METHOD_VEC_SUB_SCALAR_FMPQ: gr_method = 490;
pub const gr_method_GR_METHOD_VEC_MUL_SCALAR_SI: gr_method = 491;
pub const gr_method_GR_METHOD_VEC_MUL_SCALAR_UI: gr_method = 492;
pub const gr_method_GR_METHOD_VEC_MUL_SCALAR_FMPZ: gr_method = 493;
pub const gr_method_GR_METHOD_VEC_MUL_SCALAR_FMPQ: gr_method = 494;
pub const gr_method_GR_METHOD_VEC_DIV_SCALAR_SI: gr_method = 495;
pub const gr_method_GR_METHOD_VEC_DIV_SCALAR_UI: gr_method = 496;
pub const gr_method_GR_METHOD_VEC_DIV_SCALAR_FMPZ: gr_method = 497;
pub const gr_method_GR_METHOD_VEC_DIV_SCALAR_FMPQ: gr_method = 498;
pub const gr_method_GR_METHOD_VEC_DIVEXACT_SCALAR_SI: gr_method = 499;
pub const gr_method_GR_METHOD_VEC_DIVEXACT_SCALAR_UI: gr_method = 500;
pub const gr_method_GR_METHOD_VEC_DIVEXACT_SCALAR_FMPZ: gr_method = 501;
pub const gr_method_GR_METHOD_VEC_DIVEXACT_SCALAR_FMPQ: gr_method = 502;
pub const gr_method_GR_METHOD_VEC_POW_SCALAR_SI: gr_method = 503;
pub const gr_method_GR_METHOD_VEC_POW_SCALAR_UI: gr_method = 504;
pub const gr_method_GR_METHOD_VEC_POW_SCALAR_FMPZ: gr_method = 505;
pub const gr_method_GR_METHOD_VEC_POW_SCALAR_FMPQ: gr_method = 506;
pub const gr_method_GR_METHOD_VEC_MUL_SCALAR_2EXP_SI: gr_method = 507;
pub const gr_method_GR_METHOD_VEC_MUL_SCALAR_2EXP_FMPZ: gr_method = 508;
pub const gr_method_GR_METHOD_VEC_ADDMUL_SCALAR: gr_method = 509;
pub const gr_method_GR_METHOD_VEC_SUBMUL_SCALAR: gr_method = 510;
pub const gr_method_GR_METHOD_VEC_ADDMUL_SCALAR_SI: gr_method = 511;
pub const gr_method_GR_METHOD_VEC_SUBMUL_SCALAR_SI: gr_method = 512;
pub const gr_method_GR_METHOD_VEC_ADDMUL_SCALAR_FMPZ: gr_method = 513;
pub const gr_method_GR_METHOD_VEC_SUM: gr_method = 514;
pub const gr_method_GR_METHOD_VEC_PRODUCT: gr_method = 515;
pub const gr_method_GR_METHOD_VEC_DOT: gr_method = 516;
pub const gr_method_GR_METHOD_VEC_DOT_REV: gr_method = 517;
pub const gr_method_GR_METHOD_VEC_DOT_STRIDED: gr_method = 518;
pub const gr_method_GR_METHOD_VEC_DOT_UI: gr_method = 519;
pub const gr_method_GR_METHOD_VEC_DOT_SI: gr_method = 520;
pub const gr_method_GR_METHOD_VEC_DOT_FMPZ: gr_method = 521;
pub const gr_method_GR_METHOD_VEC_SET_POWERS: gr_method = 522;
pub const gr_method_GR_METHOD_VEC_RECIPROCALS: gr_method = 523;
pub const gr_method_GR_METHOD_POLY_MULLOW: gr_method = 524;
pub const gr_method_GR_METHOD_POLY_MULMID: gr_method = 525;
pub const gr_method_GR_METHOD_POLY_DIV: gr_method = 526;
pub const gr_method_GR_METHOD_POLY_DIVREM: gr_method = 527;
pub const gr_method_GR_METHOD_POLY_DIVEXACT: gr_method = 528;
pub const gr_method_GR_METHOD_POLY_GCD: gr_method = 529;
pub const gr_method_GR_METHOD_POLY_XGCD: gr_method = 530;
pub const gr_method_GR_METHOD_POLY_TAYLOR_SHIFT: gr_method = 531;
pub const gr_method_GR_METHOD_POLY_INV_SERIES: gr_method = 532;
pub const gr_method_GR_METHOD_POLY_INV_SERIES_BASECASE: gr_method = 533;
pub const gr_method_GR_METHOD_POLY_DIV_SERIES: gr_method = 534;
pub const gr_method_GR_METHOD_POLY_DIV_SERIES_BASECASE: gr_method = 535;
pub const gr_method_GR_METHOD_POLY_RSQRT_SERIES: gr_method = 536;
pub const gr_method_GR_METHOD_POLY_SQRT_SERIES: gr_method = 537;
pub const gr_method_GR_METHOD_POLY_EXP_SERIES: gr_method = 538;
pub const gr_method_GR_METHOD_POLY_FACTOR: gr_method = 539;
pub const gr_method_GR_METHOD_POLY_ROOTS: gr_method = 540;
pub const gr_method_GR_METHOD_POLY_ROOTS_OTHER: gr_method = 541;
pub const gr_method_GR_METHOD_MAT_MUL: gr_method = 542;
pub const gr_method_GR_METHOD_MAT_NONSINGULAR_SOLVE_TRIL: gr_method = 543;
pub const gr_method_GR_METHOD_MAT_NONSINGULAR_SOLVE_TRIU: gr_method = 544;
pub const gr_method_GR_METHOD_MAT_LU: gr_method = 545;
pub const gr_method_GR_METHOD_MAT_DET: gr_method = 546;
pub const gr_method_GR_METHOD_MAT_LQ: gr_method = 547;
pub const gr_method_GR_METHOD_MAT_EXP: gr_method = 548;
pub const gr_method_GR_METHOD_MAT_LOG: gr_method = 549;
pub const gr_method_GR_METHOD_MAT_FIND_NONZERO_PIVOT: gr_method = 550;
pub const gr_method_GR_METHOD_MAT_DIAGONALIZATION: gr_method = 551;
pub const gr_method_GR_METHOD_MAT_CHARPOLY: gr_method = 552;
pub const gr_method_GR_METHOD_MAT_REDUCE_ROW: gr_method = 553;
pub const gr_method_GR_METHOD_MAT_PERMANENT: gr_method = 554;
pub const gr_method_GR_METHOD_TAB_SIZE: gr_method = 555;
pub type gr_method = ::std::os::raw::c_uint;
pub type gr_static_method_table = [gr_funcptr; 555usize];
#[repr(C)]
pub struct gr_method_tab_input {
pub index: gr_method,
pub function: gr_funcptr,
}
impl Default for gr_method_tab_input {
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 const gr_which_structure_GR_CTX_FMPZ: gr_which_structure = 0;
pub const gr_which_structure_GR_CTX_RADIX_INTEGER: gr_which_structure = 1;
pub const gr_which_structure_GR_CTX_FMPQ: gr_which_structure = 2;
pub const gr_which_structure_GR_CTX_FMPZI: gr_which_structure = 3;
pub const gr_which_structure_GR_CTX_FMPZ_MOD: gr_which_structure = 4;
pub const gr_which_structure_GR_CTX_NMOD: gr_which_structure = 5;
pub const gr_which_structure_GR_CTX_NMOD8: gr_which_structure = 6;
pub const gr_which_structure_GR_CTX_NMOD32: gr_which_structure = 7;
pub const gr_which_structure_GR_CTX_NMOD_REDC: gr_which_structure = 8;
pub const gr_which_structure_GR_CTX_NMOD_REDC_FAST: gr_which_structure = 9;
pub const gr_which_structure_GR_CTX_MPN_MOD: gr_which_structure = 10;
pub const gr_which_structure_GR_CTX_FQ: gr_which_structure = 11;
pub const gr_which_structure_GR_CTX_FQ_NMOD: gr_which_structure = 12;
pub const gr_which_structure_GR_CTX_FQ_ZECH: gr_which_structure = 13;
pub const gr_which_structure_GR_CTX_NF: gr_which_structure = 14;
pub const gr_which_structure_GR_CTX_PADIC_RADIX: gr_which_structure = 15;
pub const gr_which_structure_GR_CTX_REAL_ALGEBRAIC_QQBAR: gr_which_structure = 16;
pub const gr_which_structure_GR_CTX_COMPLEX_ALGEBRAIC_QQBAR: gr_which_structure = 17;
pub const gr_which_structure_GR_CTX_REAL_ALGEBRAIC_CA: gr_which_structure = 18;
pub const gr_which_structure_GR_CTX_COMPLEX_ALGEBRAIC_CA: gr_which_structure = 19;
pub const gr_which_structure_GR_CTX_RR_CA: gr_which_structure = 20;
pub const gr_which_structure_GR_CTX_CC_CA: gr_which_structure = 21;
pub const gr_which_structure_GR_CTX_COMPLEX_EXTENDED_CA: gr_which_structure = 22;
pub const gr_which_structure_GR_CTX_RR_ARB: gr_which_structure = 23;
pub const gr_which_structure_GR_CTX_CC_ACB: gr_which_structure = 24;
pub const gr_which_structure_GR_CTX_REAL_FLOAT_ARF: gr_which_structure = 25;
pub const gr_which_structure_GR_CTX_COMPLEX_FLOAT_ACF: gr_which_structure = 26;
pub const gr_which_structure_GR_CTX_NFLOAT: gr_which_structure = 27;
pub const gr_which_structure_GR_CTX_NFLOAT_COMPLEX: gr_which_structure = 28;
pub const gr_which_structure_GR_CTX_MPF: gr_which_structure = 29;
pub const gr_which_structure_GR_CTX_FMPZ_POLY: gr_which_structure = 30;
pub const gr_which_structure_GR_CTX_FMPQ_POLY: gr_which_structure = 31;
pub const gr_which_structure_GR_CTX_GR_POLY: gr_which_structure = 32;
pub const gr_which_structure_GR_CTX_FMPZ_MPOLY: gr_which_structure = 33;
pub const gr_which_structure_GR_CTX_FMPQ_MPOLY: gr_which_structure = 34;
pub const gr_which_structure_GR_CTX_GR_MPOLY: gr_which_structure = 35;
pub const gr_which_structure_GR_CTX_FMPZ_MPOLY_Q: gr_which_structure = 36;
pub const gr_which_structure_GR_CTX_FMPZ_MOD_MPOLY_Q: gr_which_structure = 37;
pub const gr_which_structure_GR_CTX_GR_ORE_POLY: gr_which_structure = 38;
pub const gr_which_structure_GR_CTX_GR_FRACTION: gr_which_structure = 39;
pub const gr_which_structure_GR_CTX_GR_COMPLEX: gr_which_structure = 40;
pub const gr_which_structure_GR_CTX_GR_SERIES: gr_which_structure = 41;
pub const gr_which_structure_GR_CTX_SERIES_MOD_GR_POLY: gr_which_structure = 42;
pub const gr_which_structure_GR_CTX_GR_MAT: gr_which_structure = 43;
pub const gr_which_structure_GR_CTX_GR_VEC: gr_which_structure = 44;
pub const gr_which_structure_GR_CTX_PSL2Z: gr_which_structure = 45;
pub const gr_which_structure_GR_CTX_DIRICHLET_GROUP: gr_which_structure = 46;
pub const gr_which_structure_GR_CTX_PERM: gr_which_structure = 47;
pub const gr_which_structure_GR_CTX_FEXPR: gr_which_structure = 48;
pub const gr_which_structure_GR_CTX_DEBUG: gr_which_structure = 49;
pub const gr_which_structure_GR_CTX_UNINITIALIZED: gr_which_structure = 50;
pub const gr_which_structure_GR_CTX_UNKNOWN_DOMAIN: gr_which_structure = 51;
pub const gr_which_structure_GR_CTX_WHICH_STRUCTURE_TAB_SIZE: gr_which_structure = 52;
pub type gr_which_structure = ::std::os::raw::c_uint;
pub type gr_method_init_clear_op = ::std::option::Option<
unsafe extern "C" fn(arg1: gr_ptr, arg2: gr_ctx_ptr),
>;
pub type gr_method_swap_op = ::std::option::Option<
unsafe extern "C" fn(arg1: gr_ptr, arg2: gr_ptr, arg3: gr_ctx_ptr),
>;
pub type gr_method_ctx = ::std::option::Option<
unsafe extern "C" fn(arg1: gr_ctx_ptr) -> ::std::os::raw::c_int,
>;
pub type gr_method_ctx_void_op = ::std::option::Option<
unsafe extern "C" fn(arg1: gr_ctx_ptr),
>;
pub type gr_method_ctx_base = ::std::option::Option<
unsafe extern "C" fn(arg1: gr_ctx_ptr) -> gr_ctx_ptr,
>;
pub type gr_method_ctx_predicate = ::std::option::Option<
unsafe extern "C" fn(arg1: gr_ctx_ptr) -> truth_t,
>;
pub type gr_method_ctx_size = ::std::option::Option<
unsafe extern "C" fn(arg1: gr_ctx_ptr) -> slong,
>;
pub type gr_method_ctx_gen_name = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut *mut ::std::os::raw::c_char,
arg2: slong,
arg3: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_ctx_set_si = ::std::option::Option<
unsafe extern "C" fn(arg1: gr_ctx_ptr, arg2: slong) -> ::std::os::raw::c_int,
>;
pub type gr_method_ctx_get_si = ::std::option::Option<
unsafe extern "C" fn(arg1: *mut slong, arg2: gr_ctx_ptr) -> ::std::os::raw::c_int,
>;
pub type gr_method_ctx_set_truth = ::std::option::Option<
unsafe extern "C" fn(arg1: gr_ctx_ptr, arg2: truth_t) -> ::std::os::raw::c_int,
>;
pub type gr_method_ctx_stream = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut gr_stream_struct,
arg2: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_ctx_set_str = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ctx_ptr,
arg2: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_ctx_set_strs = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ctx_ptr,
arg2: *mut *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_stream_in = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut gr_stream_struct,
arg2: gr_srcptr,
arg3: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_stream_in_si = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut gr_stream_struct,
arg2: gr_srcptr,
arg3: slong,
arg4: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_randtest = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
state: *mut flint_rand_struct,
arg2: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_constant_op = ::std::option::Option<
unsafe extern "C" fn(arg1: gr_ptr, arg2: gr_ctx_ptr) -> ::std::os::raw::c_int,
>;
pub type gr_method_constant_op_get_si = ::std::option::Option<
unsafe extern "C" fn(arg1: *mut slong, arg2: gr_ctx_ptr) -> ::std::os::raw::c_int,
>;
pub type gr_method_constant_op_get_fmpz = ::std::option::Option<
unsafe extern "C" fn(arg1: *mut fmpz, arg2: gr_ctx_ptr) -> ::std::os::raw::c_int,
>;
pub type gr_method_void_unary_op = ::std::option::Option<
unsafe extern "C" fn(arg1: gr_ptr, arg2: gr_srcptr, arg3: gr_ctx_ptr),
>;
pub type gr_method_unary_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_unary_op_si = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: slong,
arg3: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_unary_op_ui = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: ulong,
arg3: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_unary_op_fmpz = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: *const fmpz,
arg3: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_unary_op_fmpq = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: *const fmpq,
arg3: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_unary_op_d = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: f64,
arg3: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_unary_op_other = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: gr_ctx_ptr,
arg4: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_unary_op_str = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: *const ::std::os::raw::c_char,
arg3: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_unary_op_get_ui = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ulong,
arg2: gr_srcptr,
arg3: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_unary_op_get_si = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut slong,
arg2: gr_srcptr,
arg3: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_unary_op_get_fmpz = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut fmpz,
arg2: gr_srcptr,
arg3: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_unary_op_get_fmpq = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut fmpq,
arg2: gr_srcptr,
arg3: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_unary_op_get_d = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut f64,
arg2: gr_srcptr,
arg3: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_unary_op_get_d_si = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut f64,
arg2: *mut slong,
arg3: gr_srcptr,
arg4: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_unary_op_get_fmpz_fmpz = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut fmpz,
arg2: *mut fmpz,
arg3: gr_srcptr,
arg4: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_unary_op_with_flag = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: ::std::os::raw::c_int,
arg4: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_binary_unary_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_ptr,
arg3: gr_srcptr,
arg4: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_binary_unary_op_with_flag = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_ptr,
arg3: gr_srcptr,
arg4: ::std::os::raw::c_int,
arg5: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_quaternary_unary_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_ptr,
arg3: gr_ptr,
arg4: gr_ptr,
arg5: gr_srcptr,
arg6: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_binary_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: gr_srcptr,
arg4: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_binary_op_si = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: slong,
arg4: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_binary_op_ui = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: ulong,
arg4: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_binary_op_fmpz = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: *const fmpz,
arg4: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_binary_op_fmpz_fmpz = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: *const fmpz,
arg3: *const fmpz,
arg4: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_binary_op_fmpz_si = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: *const fmpz,
arg3: slong,
arg4: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_binary_op_fmpq = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: *const fmpq,
arg4: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_binary_op_other = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: gr_srcptr,
arg4: gr_ctx_ptr,
arg5: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_other_binary_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: gr_ctx_ptr,
arg4: gr_srcptr,
arg5: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_si_binary_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: slong,
arg3: gr_srcptr,
arg4: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_ui_binary_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: ulong,
arg3: gr_srcptr,
arg4: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_fmpz_binary_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: *const fmpz,
arg3: gr_srcptr,
arg4: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_fmpq_binary_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: *const fmpq,
arg3: gr_srcptr,
arg4: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_binary_op_ui_ui = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: ulong,
arg3: ulong,
arg4: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_binary_op_ui_si = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: ulong,
arg3: slong,
arg4: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_binary_op_get_int = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_int,
arg2: gr_srcptr,
arg3: gr_srcptr,
arg4: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_binary_op_other_get_int = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_int,
arg2: gr_srcptr,
arg3: gr_srcptr,
arg4: gr_ctx_ptr,
arg5: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_binary_binary_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_ptr,
arg3: gr_srcptr,
arg4: gr_srcptr,
arg5: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_binary_op_with_flag = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: gr_srcptr,
arg4: ::std::os::raw::c_int,
arg5: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_binary_binary_op_ui_ui = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_ptr,
arg3: ulong,
arg4: ulong,
arg5: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_ternary_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: gr_srcptr,
arg4: gr_srcptr,
arg5: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_ternary_op_with_flag = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: gr_srcptr,
arg4: gr_srcptr,
arg5: ::std::os::raw::c_int,
arg6: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_ternary_unary_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_ptr,
arg3: gr_ptr,
arg4: gr_srcptr,
arg5: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_quaternary_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: gr_srcptr,
arg4: gr_srcptr,
arg5: gr_srcptr,
arg6: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_quaternary_op_with_flag = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: gr_srcptr,
arg4: gr_srcptr,
arg5: gr_srcptr,
arg6: ::std::os::raw::c_int,
arg7: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_quaternary_binary_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_ptr,
arg3: gr_ptr,
arg4: gr_ptr,
arg5: gr_srcptr,
arg6: gr_srcptr,
arg7: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_quaternary_ternary_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_ptr,
arg3: gr_ptr,
arg4: gr_ptr,
arg5: gr_srcptr,
arg6: gr_srcptr,
arg7: gr_srcptr,
arg8: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_si_si_quaternary_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: slong,
arg3: slong,
arg4: gr_srcptr,
arg5: gr_srcptr,
arg6: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_unary_predicate = ::std::option::Option<
unsafe extern "C" fn(arg1: gr_srcptr, arg2: gr_ctx_ptr) -> truth_t,
>;
pub type gr_method_binary_predicate = ::std::option::Option<
unsafe extern "C" fn(arg1: gr_srcptr, arg2: gr_srcptr, arg3: gr_ctx_ptr) -> truth_t,
>;
pub type gr_method_vec_init_clear_op = ::std::option::Option<
unsafe extern "C" fn(arg1: gr_ptr, arg2: slong, arg3: gr_ctx_ptr),
>;
pub type gr_method_vec_swap_op = ::std::option::Option<
unsafe extern "C" fn(arg1: gr_ptr, arg2: gr_ptr, arg3: slong, arg4: gr_ctx_ptr),
>;
pub type gr_method_vec_constant_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: slong,
arg3: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_vec_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: slong,
arg4: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_vec_vec_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: gr_srcptr,
arg4: slong,
arg5: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_vec_scalar_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: slong,
arg4: gr_srcptr,
arg5: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_scalar_vec_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: gr_srcptr,
arg4: slong,
arg5: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_vec_op_other = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: gr_srcptr,
arg4: gr_ctx_ptr,
arg5: slong,
arg6: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_other_op_vec = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: gr_ctx_ptr,
arg4: gr_srcptr,
arg5: slong,
arg6: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_vec_op_scalar_other = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: slong,
arg4: gr_srcptr,
arg5: gr_ctx_ptr,
arg6: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_scalar_other_op_vec = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: gr_ctx_ptr,
arg4: gr_srcptr,
arg5: slong,
arg6: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_vec_scalar_op_si = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: slong,
arg4: slong,
arg5: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_vec_scalar_op_ui = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: slong,
arg4: ulong,
arg5: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_vec_scalar_op_fmpz = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: slong,
arg4: *const fmpz,
arg5: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_vec_scalar_op_fmpq = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: slong,
arg4: *const fmpq,
arg5: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_vec_predicate = ::std::option::Option<
unsafe extern "C" fn(arg1: gr_srcptr, arg2: slong, arg3: gr_ctx_ptr) -> truth_t,
>;
pub type gr_method_vec_vec_predicate = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_srcptr,
arg2: gr_srcptr,
arg3: slong,
arg4: gr_ctx_ptr,
) -> truth_t,
>;
pub type gr_method_factor_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: *mut gr_vec_struct,
arg3: *mut fmpz_vec_struct,
arg4: gr_srcptr,
arg5: ::std::os::raw::c_int,
arg6: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_poly_unary_trunc_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: slong,
arg4: slong,
arg5: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_poly_binary_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: slong,
arg4: gr_srcptr,
arg5: slong,
arg6: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_poly_binary_binary_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_ptr,
arg3: gr_srcptr,
arg4: slong,
arg5: gr_srcptr,
arg6: slong,
arg7: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_poly_binary_trunc_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: slong,
arg4: gr_srcptr,
arg5: slong,
arg6: slong,
arg7: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_poly_binary_trunc2_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: slong,
arg4: gr_srcptr,
arg5: slong,
arg6: slong,
arg7: slong,
arg8: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_poly_gcd_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: *mut slong,
arg3: gr_srcptr,
arg4: slong,
arg5: gr_srcptr,
arg6: slong,
arg7: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_poly_xgcd_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut slong,
arg2: gr_ptr,
arg3: gr_ptr,
arg4: gr_ptr,
arg5: gr_srcptr,
arg6: slong,
arg7: gr_srcptr,
arg8: slong,
arg9: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_vec_ctx_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut gr_vec_struct,
arg2: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type _gr_method_get_si_op = ::std::option::Option<
unsafe extern "C" fn(arg1: gr_srcptr, arg2: gr_ctx_ptr) -> slong,
>;
#[repr(C)]
pub struct polynomial_ctx_t {
pub base_ring: *mut gr_ctx_struct,
pub degree_limit: slong,
pub var: *mut ::std::os::raw::c_char,
}
impl Default for polynomial_ctx_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 vector_ctx_t {
pub base_ring: *mut gr_ctx_struct,
pub all_sizes: ::std::os::raw::c_int,
pub n: slong,
}
impl Default for vector_ctx_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 matrix_ctx_t {
pub base_ring: *mut gr_ctx_struct,
pub all_sizes: ::std::os::raw::c_int,
pub nrows: slong,
pub ncols: slong,
}
impl Default for matrix_ctx_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()
}
}
}
unsafe extern "C" {
pub fn truth_and(x: truth_t, y: truth_t) -> truth_t;
pub fn truth_or(x: truth_t, y: truth_t) -> truth_t;
pub fn truth_not(x: truth_t) -> truth_t;
pub fn gr_in_domain(status: ::std::os::raw::c_int) -> truth_t;
pub fn gr_check(t: truth_t) -> ::std::os::raw::c_int;
pub fn truth_println(x: truth_t);
pub fn gr_stream_init_file(out: *mut gr_stream_struct, fp: *mut FILE);
pub fn gr_stream_init_str(out: *mut gr_stream_struct);
pub fn gr_stream_write(
out: *mut gr_stream_struct,
s: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn gr_stream_write_si(
out: *mut gr_stream_struct,
x: slong,
) -> ::std::os::raw::c_int;
pub fn gr_stream_write_ui(
out: *mut gr_stream_struct,
x: ulong,
) -> ::std::os::raw::c_int;
pub fn gr_stream_write_free(
out: *mut gr_stream_struct,
s: *mut ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn gr_stream_write_fmpz(
out: *mut gr_stream_struct,
x: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn gr_not_implemented() -> ::std::os::raw::c_int;
pub fn gr_not_in_domain() -> ::std::os::raw::c_int;
pub fn gr_method_tab_init(methods: *mut gr_funcptr, tab: *mut gr_method_tab_input);
pub fn gr_method_tab_extend(methods: *mut gr_funcptr, tab: *mut gr_method_tab_input);
pub fn gr_ctx_data_ptr(ctx: *mut gr_ctx_struct) -> *mut ::std::os::raw::c_void;
pub fn gr_ctx_data_as_ptr(ctx: *mut gr_ctx_struct) -> *mut ::std::os::raw::c_void;
pub fn gr_ctx_sizeof_ctx() -> slong;
pub fn gr_ctx_sizeof_elem(ctx: *mut gr_ctx_struct) -> slong;
pub fn gr_ctx_clear(ctx: *mut gr_ctx_struct);
pub fn gr_ctx_write(
out: *mut gr_stream_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ctx_is_ring(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_ctx_is_commutative_ring(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_ctx_is_integral_domain(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_ctx_is_field(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_ctx_is_zero_ring(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_ctx_is_rational_vector_space(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_ctx_is_real_vector_space(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_ctx_is_complex_vector_space(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_ctx_is_unique_factorization_domain(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_ctx_is_finite(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_ctx_is_finite_characteristic(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_ctx_is_algebraically_closed(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_ctx_is_ordered_ring(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_ctx_is_approx_commutative_ring(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_ctx_is_multiplicative_group(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_ctx_is_exact(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_ctx_is_canonical(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_ctx_is_threadsafe(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_ctx_has_real_prec(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_ctx_set_real_prec(
ctx: *mut gr_ctx_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn gr_ctx_get_real_prec(
prec: *mut slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ctx_set_is_field(
ctx: *mut gr_ctx_struct,
is_field: truth_t,
) -> ::std::os::raw::c_int;
pub fn gr_ctx_set_gen_name(
ctx: *mut gr_ctx_struct,
s: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn gr_ctx_set_gen_names(
ctx: *mut gr_ctx_struct,
s: *mut *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn gr_ctx_ngens(
ngens: *mut slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ctx_gen_name(
name: *mut *mut ::std::os::raw::c_char,
i: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_ctx_get_real_prec(ctx: *mut gr_ctx_struct) -> slong;
pub fn gr_ctx_base(ctx: *mut gr_ctx_struct) -> gr_ptr;
pub fn gr_init(res: gr_ptr, ctx: *mut gr_ctx_struct);
pub fn gr_clear(res: gr_ptr, ctx: *mut gr_ctx_struct);
pub fn gr_swap(x: gr_ptr, y: gr_ptr, ctx: *mut gr_ctx_struct);
pub fn gr_set_shallow(res: gr_ptr, x: gr_srcptr, ctx: *mut gr_ctx_struct);
pub fn _gr_length(x: gr_srcptr, ctx: *mut gr_ctx_struct);
pub fn gr_randtest(
x: gr_ptr,
state: *mut flint_rand_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_randtest_not_zero(
x: gr_ptr,
state: *mut flint_rand_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_randtest_invertible(
x: gr_ptr,
state: *mut flint_rand_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_randtest_small(
x: gr_ptr,
state: *mut flint_rand_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_write(
out: *mut gr_stream_struct,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_write_n(
out: *mut gr_stream_struct,
x: gr_srcptr,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_zero(res: gr_ptr, ctx: *mut gr_ctx_struct) -> ::std::os::raw::c_int;
pub fn gr_one(res: gr_ptr, ctx: *mut gr_ctx_struct) -> ::std::os::raw::c_int;
pub fn gr_neg_one(res: gr_ptr, ctx: *mut gr_ctx_struct) -> ::std::os::raw::c_int;
pub fn gr_set(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_set_si(
res: gr_ptr,
x: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_set_ui(
res: gr_ptr,
x: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_set_fmpz(
res: gr_ptr,
x: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_set_fmpq(
res: gr_ptr,
x: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_set_d(
res: gr_ptr,
x: f64,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_set_other(
res: gr_ptr,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_set_str(
res: gr_ptr,
x: *const ::std::os::raw::c_char,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_get_si(
res: *mut slong,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_get_ui(
res: *mut ulong,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_get_fmpz(
res: *mut fmpz,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_get_fmpq(
res: *mut fmpq,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_get_d(
res: *mut f64,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_is_zero(x: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_is_one(x: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_is_neg_one(x: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_equal(x: gr_srcptr, y: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_not_equal(x: gr_srcptr, y: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_neg(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_add(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_add_ui(
res: gr_ptr,
x: gr_srcptr,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_add_si(
res: gr_ptr,
x: gr_srcptr,
y: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_add_fmpz(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_add_fmpq(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_add_other(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
y_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_other_add(
res: gr_ptr,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_sub(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_sub_ui(
res: gr_ptr,
x: gr_srcptr,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_sub_si(
res: gr_ptr,
x: gr_srcptr,
y: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_sub_fmpz(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_sub_fmpq(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_sub_other(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
y_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_other_sub(
res: gr_ptr,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mul(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mul_ui(
res: gr_ptr,
x: gr_srcptr,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mul_si(
res: gr_ptr,
x: gr_srcptr,
y: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mul_fmpz(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mul_fmpq(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mul_other(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
y_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_other_mul(
res: gr_ptr,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_addmul(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_addmul_ui(
res: gr_ptr,
x: gr_srcptr,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_addmul_si(
res: gr_ptr,
x: gr_srcptr,
y: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_addmul_fmpz(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_addmul_fmpq(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_addmul_other(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
y_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_submul(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_submul_ui(
res: gr_ptr,
x: gr_srcptr,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_submul_si(
res: gr_ptr,
x: gr_srcptr,
y: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_submul_fmpz(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_submul_fmpq(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_submul_other(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
y_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mul_two(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_sqr(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mul_2exp_si(
res: gr_ptr,
x: gr_srcptr,
y: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mul_2exp_fmpz(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_set_fmpz_2exp_fmpz(
res: gr_ptr,
x: *const fmpz,
y: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_get_fmpz_2exp_fmpz(
res1: *mut fmpz,
res2: *mut fmpz,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_set_fmpz_10exp_fmpz(
res: gr_ptr,
x: *const fmpz,
y: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_get_d_2exp_si(
res: *mut f64,
exp: *mut slong,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_inv(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_is_invertible(x: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_div(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_div_ui(
res: gr_ptr,
x: gr_srcptr,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_div_si(
res: gr_ptr,
x: gr_srcptr,
y: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_div_fmpz(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_div_fmpq(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_div_other(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
y_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_other_div(
res: gr_ptr,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_div_nonunique(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_divides(x: gr_srcptr, y: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_divexact(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_divexact_ui(
res: gr_ptr,
x: gr_srcptr,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_divexact_si(
res: gr_ptr,
x: gr_srcptr,
y: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_divexact_fmpz(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_divexact_fmpq(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_divexact_other(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
y_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_other_divexact(
res: gr_ptr,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_euclidean_div(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_euclidean_rem(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_euclidean_divrem(
res1: gr_ptr,
res2: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_gcd(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_lcm(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_numerator(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_denominator(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_factor(
c: gr_ptr,
factors: *mut gr_vec_struct,
exponents: *mut fmpz_vec_struct,
x: gr_srcptr,
flags: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_pow(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_pow_ui(
res: gr_ptr,
x: gr_srcptr,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_pow_si(
res: gr_ptr,
x: gr_srcptr,
y: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_pow_fmpz(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_pow_fmpq(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_pow_other(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
y_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_other_pow(
res: gr_ptr,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_derivative_gen(
res: gr_ptr,
x: gr_srcptr,
var: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_sqrt(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_rsqrt(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_is_square(x: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_floor(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ceil(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_trunc(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_nint(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_abs(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_i(res: gr_ptr, ctx: *mut gr_ctx_struct) -> ::std::os::raw::c_int;
pub fn gr_conj(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_re(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_im(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_sgn(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_csgn(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_arg(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_canonical_associate(
res1: gr_ptr,
res2: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_pos_inf(res: gr_ptr, ctx: *mut gr_ctx_struct) -> ::std::os::raw::c_int;
pub fn gr_neg_inf(res: gr_ptr, ctx: *mut gr_ctx_struct) -> ::std::os::raw::c_int;
pub fn gr_uinf(res: gr_ptr, ctx: *mut gr_ctx_struct) -> ::std::os::raw::c_int;
pub fn gr_undefined(res: gr_ptr, ctx: *mut gr_ctx_struct) -> ::std::os::raw::c_int;
pub fn gr_unknown(res: gr_ptr, ctx: *mut gr_ctx_struct) -> ::std::os::raw::c_int;
pub fn gr_cmp(
res: *mut ::std::os::raw::c_int,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_cmpabs(
res: *mut ::std::os::raw::c_int,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_cmp_other(
res: *mut ::std::os::raw::c_int,
x: gr_srcptr,
y: gr_srcptr,
y_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_cmpabs_other(
res: *mut ::std::os::raw::c_int,
x: gr_srcptr,
y: gr_srcptr,
y_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_le(x: gr_srcptr, y: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_lt(x: gr_srcptr, y: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_ge(x: gr_srcptr, y: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_gt(x: gr_srcptr, y: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_abs_le(x: gr_srcptr, y: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_abs_lt(x: gr_srcptr, y: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_abs_ge(x: gr_srcptr, y: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_abs_gt(x: gr_srcptr, y: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_min(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_max(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_gen(res: gr_ptr, ctx: *mut gr_ctx_struct) -> ::std::os::raw::c_int;
pub fn gr_gens(
res: *mut gr_vec_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_gens_recursive(
res: *mut gr_vec_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_big_o_base_fmpz(
res: gr_ptr,
base: gr_srcptr,
exp: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ctx_fq_prime(
res: *mut fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ctx_fq_degree(
res: *mut slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ctx_fq_order(
res: *mut fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_fq_frobenius(
res: gr_ptr,
x: gr_srcptr,
e: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_fq_multiplicative_order(
res: *mut fmpz,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_fq_norm(
res: *mut fmpz,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_fq_trace(
res: *mut fmpz,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_fq_is_primitive(x: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_fq_pth_root(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_set_interval_mid_rad(
res: gr_ptr,
m: gr_srcptr,
r: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_init(vec: gr_ptr, len: slong, ctx: *mut gr_ctx_struct);
pub fn _gr_vec_clear(vec: gr_ptr, len: slong, ctx: *mut gr_ctx_struct);
pub fn _gr_vec_swap(vec1: gr_ptr, vec2: gr_ptr, len: slong, ctx: *mut gr_ctx_struct);
pub fn gr_ctx_print(ctx: *mut gr_ctx_struct) -> ::std::os::raw::c_int;
pub fn gr_ctx_println(ctx: *mut gr_ctx_struct) -> ::std::os::raw::c_int;
pub fn gr_print(x: gr_srcptr, ctx: *mut gr_ctx_struct) -> ::std::os::raw::c_int;
pub fn gr_println(x: gr_srcptr, ctx: *mut gr_ctx_struct) -> ::std::os::raw::c_int;
pub fn gr_ctx_get_str(
s: *mut *mut ::std::os::raw::c_char,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_get_str(
s: *mut *mut ::std::os::raw::c_char,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_get_str_n(
s: *mut *mut ::std::os::raw::c_char,
x: gr_srcptr,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_heap_init(ctx: *mut gr_ctx_struct) -> gr_ptr;
pub fn gr_heap_clear(x: gr_ptr, ctx: *mut gr_ctx_struct);
pub fn gr_heap_init_vec(len: slong, ctx: *mut gr_ctx_struct) -> gr_ptr;
pub fn gr_heap_clear_vec(x: gr_ptr, len: slong, ctx: *mut gr_ctx_struct);
pub fn gr_generic_ctx_predicate(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_generic_ctx_predicate_true(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_generic_ctx_predicate_false(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_ctx_uninitialized(ctx: *mut gr_ctx_struct);
pub fn gr_ctx_init_random(ctx: *mut gr_ctx_struct, state: *mut flint_rand_struct);
pub fn gr_ctx_init_random_commutative_ring(
ctx: *mut gr_ctx_struct,
state: *mut flint_rand_struct,
);
pub fn gr_ctx_init_random_field(
ctx: *mut gr_ctx_struct,
state: *mut flint_rand_struct,
);
pub fn gr_ctx_init_random_finite_field(
ctx: *mut gr_ctx_struct,
state: *mut flint_rand_struct,
);
pub fn gr_ctx_init_random_poly(
ctx: *mut gr_ctx_struct,
state: *mut flint_rand_struct,
);
pub fn gr_ctx_init_random_mpoly(
ctx: *mut gr_ctx_struct,
state: *mut flint_rand_struct,
);
pub fn gr_ctx_init_random_series(
ctx: *mut gr_ctx_struct,
state: *mut flint_rand_struct,
);
pub fn gr_ctx_init_fmpz(ctx: *mut gr_ctx_struct);
pub fn gr_ctx_init_fmpq(ctx: *mut gr_ctx_struct);
pub fn gr_ctx_init_fmpzi(ctx: *mut gr_ctx_struct);
pub fn gr_ctx_init_fmpz_mod(ctx: *mut gr_ctx_struct, n: *const fmpz);
pub fn _gr_ctx_init_fmpz_mod_from_ref(
ctx: *mut gr_ctx_struct,
fmod_ctx: *const ::std::os::raw::c_void,
);
pub fn gr_ctx_init_nmod(ctx: *mut gr_ctx_struct, n: ulong) -> ::std::os::raw::c_int;
pub fn _gr_ctx_init_nmod(
ctx: *mut gr_ctx_struct,
nmod_t_ref: *mut ::std::os::raw::c_void,
);
pub fn gr_ctx_init_nmod8(ctx: *mut gr_ctx_struct, n: ulong) -> ::std::os::raw::c_int;
pub fn gr_ctx_init_nmod32(
ctx: *mut gr_ctx_struct,
n: ulong,
) -> ::std::os::raw::c_int;
pub fn gr_ctx_init_real_qqbar(ctx: *mut gr_ctx_struct);
pub fn gr_ctx_init_complex_qqbar(ctx: *mut gr_ctx_struct);
pub fn _gr_ctx_qqbar_set_limits(
ctx: *mut gr_ctx_struct,
deg_limit: slong,
bits_limit: slong,
);
pub fn gr_ctx_init_real_arb(ctx: *mut gr_ctx_struct, prec: slong);
pub fn gr_ctx_init_complex_acb(ctx: *mut gr_ctx_struct, prec: slong);
pub fn gr_ctx_init_real_float_arf(ctx: *mut gr_ctx_struct, prec: slong);
pub fn gr_ctx_init_complex_float_acf(ctx: *mut gr_ctx_struct, prec: slong);
pub fn gr_ctx_init_mpf(ctx: *mut gr_ctx_struct, prec: slong);
pub fn gr_ctx_init_real_ca(ctx: *mut gr_ctx_struct);
pub fn gr_ctx_init_complex_ca(ctx: *mut gr_ctx_struct);
pub fn gr_ctx_init_real_algebraic_ca(ctx: *mut gr_ctx_struct);
pub fn gr_ctx_init_complex_algebraic_ca(ctx: *mut gr_ctx_struct);
pub fn gr_ctx_init_complex_extended_ca(ctx: *mut gr_ctx_struct);
pub fn _gr_ctx_init_ca_from_ref(
ctx: *mut gr_ctx_struct,
which_ring: ::std::os::raw::c_int,
ca_ctx: *mut ::std::os::raw::c_void,
);
pub fn gr_ctx_ca_set_option(ctx: *mut gr_ctx_struct, option: slong, value: slong);
pub fn gr_ctx_ca_get_option(ctx: *mut gr_ctx_struct, option: slong) -> slong;
pub fn gr_ctx_init_fq(
ctx: *mut gr_ctx_struct,
p: *const fmpz,
d: slong,
var: *const ::std::os::raw::c_char,
);
pub fn gr_ctx_init_fq_nmod(
ctx: *mut gr_ctx_struct,
p: ulong,
d: slong,
var: *const ::std::os::raw::c_char,
);
pub fn gr_ctx_init_fq_zech(
ctx: *mut gr_ctx_struct,
p: ulong,
d: slong,
var: *const ::std::os::raw::c_char,
);
pub fn _gr_ctx_init_fq_from_ref(
ctx: *mut gr_ctx_struct,
fq_ctx: *const ::std::os::raw::c_void,
);
pub fn _gr_ctx_init_fq_nmod_from_ref(
ctx: *mut gr_ctx_struct,
fq_nmod_ctx: *const ::std::os::raw::c_void,
);
pub fn _gr_ctx_init_fq_zech_from_ref(
ctx: *mut gr_ctx_struct,
fq_zech_ctx: *const ::std::os::raw::c_void,
);
pub fn gr_ctx_init_fmpz_poly(ctx: *mut gr_ctx_struct);
pub fn gr_ctx_init_fmpq_poly(ctx: *mut gr_ctx_struct);
pub fn gr_ctx_init_perm(ctx: *mut gr_ctx_struct, n: ulong);
pub fn gr_ctx_init_psl2z(ctx: *mut gr_ctx_struct);
pub fn gr_ctx_init_dirichlet_group(
ctx: *mut gr_ctx_struct,
q: ulong,
) -> ::std::os::raw::c_int;
pub fn gr_ctx_init_gr_poly(ctx: *mut gr_ctx_struct, base_ring: *mut gr_ctx_struct);
pub fn gr_ctx_init_gr_fraction(
ctx: *mut gr_ctx_struct,
domain: *mut gr_ctx_struct,
flags: ::std::os::raw::c_int,
);
pub fn gr_ctx_init_gr_complex(ctx: *mut gr_ctx_struct, real_ctx: *mut gr_ctx_struct);
pub fn gr_ctx_init_gr_series(
ctx: *mut gr_ctx_struct,
base_ring: *mut gr_ctx_struct,
prec: slong,
);
pub fn gr_ctx_init_series_mod_gr_poly(
ctx: *mut gr_ctx_struct,
base_ring: *mut gr_ctx_struct,
n: slong,
);
pub fn gr_ctx_init_vector_gr_vec(
ctx: *mut gr_ctx_struct,
base_ring: *mut gr_ctx_struct,
);
pub fn gr_ctx_init_vector_space_gr_vec(
ctx: *mut gr_ctx_struct,
base_ring: *mut gr_ctx_struct,
n: slong,
);
pub fn gr_ctx_init_matrix_domain(
ctx: *mut gr_ctx_struct,
base_ring: *mut gr_ctx_struct,
);
pub fn gr_ctx_init_matrix_space(
ctx: *mut gr_ctx_struct,
base_ring: *mut gr_ctx_struct,
nrows: slong,
ncols: slong,
);
pub fn gr_ctx_matrix_is_fixed_size(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_ctx_init_matrix_ring(
ctx: *mut gr_ctx_struct,
base_ring: *mut gr_ctx_struct,
n: slong,
);
pub fn gr_ctx_init_fexpr(ctx: *mut gr_ctx_struct);
pub fn gr_ctx_cmp_coercion(
ctx1: *mut gr_ctx_struct,
ctx2: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ctx_init_debug(
ctx: *mut gr_ctx_struct,
elem_ctx: *mut gr_ctx_struct,
flags: ::std::os::raw::c_int,
unable_probability: f64,
);
pub fn gr_test_ring(
R: *mut gr_ctx_struct,
iters: slong,
test_flags: ::std::os::raw::c_int,
);
pub fn gr_test_multiplicative_group(
R: *mut gr_ctx_struct,
iters: slong,
test_flags: ::std::os::raw::c_int,
);
pub fn gr_test_floating_point(
R: *mut gr_ctx_struct,
iters: slong,
test_flags: ::std::os::raw::c_int,
);
pub fn gr_test_cmp_fun(
R: *mut gr_ctx_struct,
op: gr_method_binary_op_get_int,
R_ref: *mut gr_ctx_struct,
state: *mut flint_rand_struct,
test_flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn gr_test_approx_unary_op(
R: *mut gr_ctx_struct,
op: gr_method_unary_op,
R_ref: *mut gr_ctx_struct,
rel_tol: gr_srcptr,
state: *mut flint_rand_struct,
test_flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn gr_test_approx_binary_op(
R: *mut gr_ctx_struct,
op: gr_method_binary_op,
R_ref: *mut gr_ctx_struct,
rel_tol: gr_srcptr,
state: *mut flint_rand_struct,
test_flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn gr_test_approx_binary_op_type_variants(
R: *mut gr_ctx_struct,
opname: *const ::std::os::raw::c_char,
gr_op: gr_method_binary_op,
gr_op_ui: gr_method_binary_op_ui,
gr_op_si: gr_method_binary_op_si,
gr_op_fmpz: gr_method_binary_op_fmpz,
gr_op_fmpq: gr_method_binary_op_fmpq,
fused: ::std::os::raw::c_int,
small_test_values: ::std::os::raw::c_int,
rel_tol: gr_srcptr,
state: *mut flint_rand_struct,
test_flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn gr_test_approx_dot(
R: *mut gr_ctx_struct,
R_ref: *mut gr_ctx_struct,
maxlen: slong,
rel_tol: gr_srcptr,
state: *mut flint_rand_struct,
test_flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn gr_test_factor(
R: *mut gr_ctx_struct,
state: *mut flint_rand_struct,
test_flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn gr_test_pow_ui_exponent_addition(
R: *mut gr_ctx_struct,
state: *mut flint_rand_struct,
test_flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn gr_test_pow_ui_base_scalar_multiplication(
R: *mut gr_ctx_struct,
state: *mut flint_rand_struct,
test_flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn gr_test_pow_ui_base_multiplication(
R: *mut gr_ctx_struct,
state: *mut flint_rand_struct,
test_flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn gr_test_pow_ui_aliasing(
R: *mut gr_ctx_struct,
state: *mut flint_rand_struct,
test_flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn gr_test_pow_fmpz_exponent_addition(
R: *mut gr_ctx_struct,
state: *mut flint_rand_struct,
test_flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
/* gr_generic.h */
unsafe extern "C" {
pub fn gr_generic_ctx_clear(ctx: *mut gr_ctx_struct);
pub fn gr_generic_ctx_ngens_0(ngens: *mut slong, ctx: *mut gr_ctx_struct) -> slong;
pub fn gr_generic_ctx_ngens_1(ngens: *mut slong, ctx: *mut gr_ctx_struct) -> slong;
pub fn gr_generic_ctx_base(ctx: *mut gr_ctx_struct) -> gr_ptr;
pub fn gr_generic_set_shallow(res: gr_ptr, x: gr_srcptr, ctx: *const gr_ctx_struct);
pub fn gr_generic_write_n(
out: *mut gr_stream_struct,
x: gr_srcptr,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_randtest_not_zero(
x: gr_ptr,
state: *mut flint_rand_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_randtest_small(
x: gr_ptr,
state: *mut flint_rand_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_gens(
vec: *mut gr_vec_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_gens_single(
vec: *mut gr_vec_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_gens_recursive(
vec: *mut gr_vec_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_is_zero(x: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_generic_is_one(x: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_generic_is_neg_one(x: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_generic_neg_one(
res: gr_ptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_set_other(
res: gr_ptr,
x: gr_srcptr,
xctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_set_fmpq(
res: gr_ptr,
y: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_set_str_expr(
res: gr_ptr,
s: *const ::std::os::raw::c_char,
flags: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_set_str(
res: gr_ptr,
s: *const ::std::os::raw::c_char,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_set_str_balance_additions(
res: gr_ptr,
s: *const ::std::os::raw::c_char,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_set_str_ring_exponents(
res: gr_ptr,
s: *const ::std::os::raw::c_char,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_add_fmpz(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_add_ui(
res: gr_ptr,
x: gr_srcptr,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_add_si(
res: gr_ptr,
x: gr_srcptr,
y: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_add_fmpq(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_add_other(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
y_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_other_add(
res: gr_ptr,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_sub_ui(
res: gr_ptr,
x: gr_srcptr,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_sub_si(
res: gr_ptr,
x: gr_srcptr,
y: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_sub_fmpz(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_sub_fmpq(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_sub_other(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
y_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_other_sub(
res: gr_ptr,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_mul_fmpz(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_mul_ui(
res: gr_ptr,
x: gr_srcptr,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_mul_si(
res: gr_ptr,
x: gr_srcptr,
y: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_mul_fmpq(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_mul_other(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
y_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_other_mul(
res: gr_ptr,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_addmul(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_addmul_ui(
res: gr_ptr,
x: gr_srcptr,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_addmul_si(
res: gr_ptr,
x: gr_srcptr,
y: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_addmul_fmpz(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_addmul_fmpq(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_addmul_other(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
y_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_submul(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_submul_ui(
res: gr_ptr,
x: gr_srcptr,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_submul_si(
res: gr_ptr,
x: gr_srcptr,
y: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_submul_fmpz(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_submul_fmpq(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_submul_other(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
y_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_mul_two(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_sqr(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_mul_2exp_si(
res: gr_ptr,
x: gr_srcptr,
y: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_mul_2exp_fmpz(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_set_fmpz_2exp_fmpz(
res: gr_ptr,
x: *const fmpz,
y: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_get_fmpz_2exp_fmpz(
res1: *mut fmpz,
res2: *mut fmpz,
x: gr_ptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_set_fmpz_10exp_fmpz(
res: gr_ptr,
x: *const fmpz,
y: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_inv(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_is_invertible(x: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_generic_div_fmpz(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_div_ui(
res: gr_ptr,
x: gr_srcptr,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_div_si(
res: gr_ptr,
x: gr_srcptr,
y: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_div_fmpq(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_div_other(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
y_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_other_div(
res: gr_ptr,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_divexact(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_pow_fmpz_sliding(
f: gr_ptr,
g: gr_srcptr,
pow: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_pow_ui_sliding(
f: gr_ptr,
g: gr_srcptr,
pow: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_pow_fmpz_binexp(
res: gr_ptr,
x: gr_srcptr,
exp: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_pow_ui_binexp(
res: gr_ptr,
x: gr_srcptr,
e: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_pow_fmpz(
res: gr_ptr,
x: gr_srcptr,
e: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_pow_si(
res: gr_ptr,
x: gr_srcptr,
e: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_pow_ui(
res: gr_ptr,
x: gr_srcptr,
e: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_pow_fmpq(
res: gr_ptr,
x: gr_srcptr,
y: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_pow_other(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
y_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_other_pow(
res: gr_ptr,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_numerator(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_denominator(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_is_square(x: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_generic_sqrt(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_rsqrt(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_cmp(
res: *mut ::std::os::raw::c_int,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_cmpabs(
res: *mut ::std::os::raw::c_int,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_cmp_other(
res: *mut ::std::os::raw::c_int,
x: gr_srcptr,
y: gr_srcptr,
y_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_cmpabs_other(
res: *mut ::std::os::raw::c_int,
x: gr_srcptr,
y: gr_srcptr,
y_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_poly_factor_roots(
c: gr_ptr,
fac: *mut gr_vec_struct,
mult: *mut fmpz_vec_struct,
elt: gr_srcptr,
flags: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_bernoulli_ui(
res: gr_ptr,
n: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_bernoulli_fmpz(
res: gr_ptr,
n: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_bernoulli_vec(
res: gr_ptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_eulernum_ui(
res: gr_ptr,
n: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_eulernum_fmpz(
res: gr_ptr,
n: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_eulernum_vec(
res: gr_ptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_stirling_s1u_uiui(
res: gr_ptr,
x: ulong,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_stirling_s1_uiui(
res: gr_ptr,
x: ulong,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_stirling_s2_uiui(
res: gr_ptr,
x: ulong,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_stirling_s1u_ui_vec(
res: gr_ptr,
x: ulong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_stirling_s1_ui_vec(
res: gr_ptr,
x: ulong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_stirling_s2_ui_vec(
res: gr_ptr,
x: ulong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_init(vec: gr_ptr, len: slong, ctx: *mut gr_ctx_struct);
pub fn gr_generic_vec_clear(vec: gr_ptr, len: slong, ctx: *mut gr_ctx_struct);
pub fn gr_generic_vec_swap(
vec1: gr_ptr,
vec2: gr_ptr,
len: slong,
ctx: *mut gr_ctx_struct,
);
pub fn gr_generic_vec_zero(
vec: gr_ptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_set(
res: gr_ptr,
src: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_neg(
res: gr_ptr,
src: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_normalise(
res: *mut slong,
vec: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_normalise_weak(
vec: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> slong;
pub fn gr_generic_vec_mul_scalar_2exp_si(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_addmul_scalar(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_submul_scalar(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_addmul_scalar_si(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_submul_scalar_si(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_addmul_scalar_fmpz(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_equal(
vec1: gr_srcptr,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_generic_vec_is_zero(
vec: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_dot(
res: gr_ptr,
initial: gr_srcptr,
subtract: ::std::os::raw::c_int,
vec1: gr_srcptr,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_dot_rev(
res: gr_ptr,
initial: gr_srcptr,
subtract: ::std::os::raw::c_int,
vec1: gr_srcptr,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_dot_strided(
res: gr_ptr,
initial: gr_srcptr,
subtract: ::std::os::raw::c_int,
vec1: gr_srcptr,
stride1: slong,
vec2: gr_srcptr,
stride2: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_dot_ui(
res: gr_ptr,
initial: gr_srcptr,
subtract: ::std::os::raw::c_int,
vec1: gr_srcptr,
vec2: *const ulong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_dot_si(
res: gr_ptr,
initial: gr_srcptr,
subtract: ::std::os::raw::c_int,
vec1: gr_srcptr,
vec2: *const slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_dot_fmpz(
res: gr_ptr,
initial: gr_srcptr,
subtract: ::std::os::raw::c_int,
vec1: gr_srcptr,
vec2: *const fmpz,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_set_powers(
res: gr_ptr,
x: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_reciprocals(
res: gr_ptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_add(
res: gr_ptr,
src1: gr_srcptr,
src2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_sub(
res: gr_ptr,
src1: gr_srcptr,
src2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_mul(
res: gr_ptr,
src1: gr_srcptr,
src2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_div(
res: gr_ptr,
src1: gr_srcptr,
src2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_divexact(
res: gr_ptr,
src1: gr_srcptr,
src2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_pow(
res: gr_ptr,
src1: gr_srcptr,
src2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_add_scalar(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_sub_scalar(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_mul_scalar(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_div_scalar(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_divexact_scalar(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_pow_scalar(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_add_scalar_si(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_sub_scalar_si(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_mul_scalar_si(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_div_scalar_si(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_divexact_scalar_si(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_pow_scalar_si(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_add_scalar_ui(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_sub_scalar_ui(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_mul_scalar_ui(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_div_scalar_ui(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_divexact_scalar_ui(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_pow_scalar_ui(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_add_scalar_fmpz(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_sub_scalar_fmpz(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_mul_scalar_fmpz(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_div_scalar_fmpz(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_divexact_scalar_fmpz(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_pow_scalar_fmpz(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_add_scalar_fmpq(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_sub_scalar_fmpq(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_mul_scalar_fmpq(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_div_scalar_fmpq(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_divexact_scalar_fmpq(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_pow_scalar_fmpq(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_scalar_add_vec(
vec1: gr_ptr,
c: gr_srcptr,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_scalar_sub_vec(
vec1: gr_ptr,
c: gr_srcptr,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_scalar_mul_vec(
vec1: gr_ptr,
c: gr_srcptr,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_scalar_div_vec(
vec1: gr_ptr,
c: gr_srcptr,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_scalar_divexact_vec(
vec1: gr_ptr,
c: gr_srcptr,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_scalar_pow_vec(
vec1: gr_ptr,
c: gr_srcptr,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_add_other(
vec1: gr_ptr,
vec2: gr_srcptr,
vec3: gr_srcptr,
ctx3: *mut gr_ctx_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_sub_other(
vec1: gr_ptr,
vec2: gr_srcptr,
vec3: gr_srcptr,
ctx3: *mut gr_ctx_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_mul_other(
vec1: gr_ptr,
vec2: gr_srcptr,
vec3: gr_srcptr,
ctx3: *mut gr_ctx_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_div_other(
vec1: gr_ptr,
vec2: gr_srcptr,
vec3: gr_srcptr,
ctx3: *mut gr_ctx_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_divexact_other(
vec1: gr_ptr,
vec2: gr_srcptr,
vec3: gr_srcptr,
ctx3: *mut gr_ctx_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_pow_other(
vec1: gr_ptr,
vec2: gr_srcptr,
vec3: gr_srcptr,
ctx3: *mut gr_ctx_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_other_add_vec(
vec1: gr_ptr,
vec2: gr_srcptr,
ctx2: *mut gr_ctx_struct,
vec3: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_other_sub_vec(
vec1: gr_ptr,
vec2: gr_srcptr,
ctx2: *mut gr_ctx_struct,
vec3: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_other_mul_vec(
vec1: gr_ptr,
vec2: gr_srcptr,
ctx2: *mut gr_ctx_struct,
vec3: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_other_div_vec(
vec1: gr_ptr,
vec2: gr_srcptr,
ctx2: *mut gr_ctx_struct,
vec3: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_other_divexact_vec(
vec1: gr_ptr,
vec2: gr_srcptr,
ctx2: *mut gr_ctx_struct,
vec3: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_other_pow_vec(
vec1: gr_ptr,
vec2: gr_srcptr,
ctx2: *mut gr_ctx_struct,
vec3: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_add_scalar_other(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_sub_scalar_other(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_mul_scalar_other(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_div_scalar_other(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_divexact_scalar_other(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_vec_pow_scalar_other(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_scalar_other_add_vec(
vec1: gr_ptr,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_scalar_other_sub_vec(
vec1: gr_ptr,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_scalar_other_mul_vec(
vec1: gr_ptr,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_scalar_other_div_vec(
vec1: gr_ptr,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_scalar_other_divexact_vec(
vec1: gr_ptr,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_scalar_other_pow_vec(
vec1: gr_ptr,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
}
/* gr_mat.h */
pub type gr_method_mat_unary_op_get_scalar = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: *const gr_mat_struct,
arg3: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_mat_unary_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut gr_mat_struct,
arg2: *const gr_mat_struct,
arg3: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_mat_binary_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut gr_mat_struct,
arg2: *const gr_mat_struct,
arg3: *const gr_mat_struct,
arg4: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_mat_binary_op_with_flag = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut gr_mat_struct,
arg2: *const gr_mat_struct,
arg3: *const gr_mat_struct,
arg4: ::std::os::raw::c_int,
arg5: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_mat_binary_unary_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut gr_mat_struct,
arg2: *mut gr_mat_struct,
arg3: *const gr_mat_struct,
arg4: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_mat_pivot_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut slong,
arg2: *mut gr_mat_struct,
arg3: slong,
arg4: slong,
arg5: slong,
arg6: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_mat_diagonalization_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut gr_vec_struct,
arg2: *mut gr_mat_struct,
arg3: *mut gr_mat_struct,
arg4: *const gr_mat_struct,
arg5: ::std::os::raw::c_int,
arg6: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_mat_lu_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut slong,
arg2: *mut slong,
arg3: *mut gr_mat_struct,
arg4: *const gr_mat_struct,
arg5: ::std::os::raw::c_int,
arg6: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_mat_reduce_row_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut slong,
arg2: *mut gr_mat_struct,
arg3: *mut slong,
arg4: *mut slong,
arg5: slong,
arg6: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type __gr_method_vec_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: slong,
arg4: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type __gr_method_vec_scalar_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: slong,
arg4: gr_srcptr,
arg5: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
unsafe extern "C" {
pub fn gr_mat_entry_ptr(
mat: *mut gr_mat_struct,
i: slong,
j: slong,
ctx: *mut gr_ctx_struct,
) -> gr_ptr;
pub fn gr_mat_entry_srcptr(
mat: *const gr_mat_struct,
i: slong,
j: slong,
ctx: *mut gr_ctx_struct,
) -> gr_srcptr;
pub fn gr_mat_init(
mat: *mut gr_mat_struct,
rows: slong,
cols: slong,
ctx: *mut gr_ctx_struct,
);
pub fn gr_mat_init_set(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_clear(mat: *mut gr_mat_struct, ctx: *mut gr_ctx_struct);
pub fn _gr_mat_check_resize(
mat: *mut gr_mat_struct,
r: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_swap(
mat1: *mut gr_mat_struct,
mat2: *mut gr_mat_struct,
UNUSED_ctx: *mut gr_ctx_struct,
);
pub fn _gr_mat_swap_rows(
mat: *mut gr_mat_struct,
perm: *mut slong,
r: slong,
s: slong,
ctx: *mut gr_ctx_struct,
);
pub fn gr_mat_swap_rows(
mat: *mut gr_mat_struct,
perm: *mut slong,
r: slong,
s: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_invert_rows(
mat: *mut gr_mat_struct,
perm: *mut slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_permute_rows(
mat: *mut gr_mat_struct,
perm_store: *mut slong,
perm_act: *const slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_permute_rows_inv(
mat: *mut gr_mat_struct,
perm_store: *mut slong,
perm_act: *const slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_mat_swap_cols(
mat: *mut gr_mat_struct,
perm: *mut slong,
r: slong,
s: slong,
ctx: *mut gr_ctx_struct,
);
pub fn gr_mat_swap_cols(
mat: *mut gr_mat_struct,
perm: *mut slong,
r: slong,
s: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_invert_cols(
mat: *mut gr_mat_struct,
perm: *mut slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_permute_cols(
mat: *mut gr_mat_struct,
perm_store: *mut slong,
perm_act: *const slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_permute_cols_inv(
mat: *mut gr_mat_struct,
perm_store: *mut slong,
perm_act: *const slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_move_row(
A: *mut gr_mat_struct,
i: slong,
new_i: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_window_init(
window: *mut gr_mat_struct,
mat: *const gr_mat_struct,
r1: slong,
c1: slong,
r2: slong,
c2: slong,
ctx: *mut gr_ctx_struct,
);
pub fn gr_mat_window_clear(
UNUSED_window: *mut gr_mat_struct,
UNUSED_ctx: *mut gr_ctx_struct,
);
pub fn gr_mat_concat_horizontal(
res: *mut gr_mat_struct,
mat1: *const gr_mat_struct,
mat2: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_concat_vertical(
res: *mut gr_mat_struct,
mat1: *const gr_mat_struct,
mat2: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_write(
out: *mut gr_stream_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_print(
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_set_str(
mat: *mut gr_mat_struct,
s: *const ::std::os::raw::c_char,
resize: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_randtest(
mat: *mut gr_mat_struct,
state: *mut flint_rand_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_randops(
mat: *mut gr_mat_struct,
state: *mut flint_rand_struct,
count: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_randpermdiag(
parity: *mut ::std::os::raw::c_int,
mat: *mut gr_mat_struct,
state: *mut flint_rand_struct,
diag: gr_ptr,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_randrank(
mat: *mut gr_mat_struct,
state: *mut flint_rand_struct,
rank: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_randsimilar(
mat: *mut gr_mat_struct,
state: *mut flint_rand_struct,
opcount: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_is_empty(
mat: *const gr_mat_struct,
UNUSED_ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_mat_is_square(
mat: *const gr_mat_struct,
UNUSED_ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_mat_equal(
mat1: *const gr_mat_struct,
mat2: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_mat_is_zero(mat: *const gr_mat_struct, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_mat_is_one(mat: *const gr_mat_struct, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_mat_is_neg_one(
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_mat_zero(
res: *mut gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_one(
res: *mut gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_set(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_set_scalar(
res: *mut gr_mat_struct,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_set_ui(
res: *mut gr_mat_struct,
v: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_set_si(
res: *mut gr_mat_struct,
v: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_set_fmpz(
res: *mut gr_mat_struct,
v: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_set_fmpq(
res: *mut gr_mat_struct,
v: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_set_fmpz_mat(
res: *mut gr_mat_struct,
mat: *const fmpz_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_set_fmpq_mat(
res: *mut gr_mat_struct,
mat: *const fmpq_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_set_gr_mat_other(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
mat_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_neg(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_swap_entrywise(
mat1: *mut gr_mat_struct,
mat2: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_add(
res: *mut gr_mat_struct,
mat1: *const gr_mat_struct,
mat2: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_sub(
res: *mut gr_mat_struct,
mat1: *const gr_mat_struct,
mat2: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_add_scalar(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_scalar_add(
res: *mut gr_mat_struct,
x: gr_srcptr,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_add_ui(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
x: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_add_si(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
x: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_add_fmpz(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
x: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_add_fmpq(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
x: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_add_scalar_other(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_scalar_other_add(
res: *mut gr_mat_struct,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_sub_scalar(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_scalar_sub(
res: *mut gr_mat_struct,
x: gr_srcptr,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_sub_ui(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
x: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_sub_si(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
x: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_sub_fmpz(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
x: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_sub_fmpq(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
x: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_sub_scalar_other(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_scalar_other_sub(
res: *mut gr_mat_struct,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_mul_scalar(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_scalar_mul(
res: *mut gr_mat_struct,
x: gr_srcptr,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_mul_ui(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
x: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_mul_si(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
x: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_mul_fmpz(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
x: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_mul_fmpq(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
x: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_mul_scalar_other(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_scalar_other_mul(
res: *mut gr_mat_struct,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_div_scalar(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_div_scalar_other(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_div_ui(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
x: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_div_si(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
x: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_div_fmpz(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
x: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_div_fmpq(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
x: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_addmul_scalar(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_submul_scalar(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_mul_classical(
C: *mut gr_mat_struct,
A: *const gr_mat_struct,
B: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_mul_strassen(
C: *mut gr_mat_struct,
A: *const gr_mat_struct,
B: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_mul_waksman(
C: *mut gr_mat_struct,
A: *const gr_mat_struct,
B: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_mul_rosowski(
C: *mut gr_mat_struct,
A: *const gr_mat_struct,
B: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_mul_generic(
C: *mut gr_mat_struct,
A: *const gr_mat_struct,
B: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_mul(
C: *mut gr_mat_struct,
A: *const gr_mat_struct,
B: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_sqr(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_pow_ui(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
exp: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_pow_si(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
exp: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_pow_fmpz(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
exp: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_mat_gr_poly_evaluate(
y: *mut gr_mat_struct,
poly: gr_srcptr,
len: slong,
x: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_gr_poly_evaluate(
res: *mut gr_mat_struct,
f: *const gr_poly_struct,
a: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_find_nonzero_pivot_large_abs(
pivot_row: *mut slong,
mat: *mut gr_mat_struct,
start_row: slong,
end_row: slong,
column: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_find_nonzero_pivot_generic(
pivot_row: *mut slong,
mat: *mut gr_mat_struct,
start_row: slong,
end_row: slong,
column: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_find_nonzero_pivot(
pivot_row: *mut slong,
mat: *mut gr_mat_struct,
start_row: slong,
end_row: slong,
column: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_lu_recursive(
rank: *mut slong,
P: *mut slong,
LU: *mut gr_mat_struct,
A: *const gr_mat_struct,
rank_check: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_lu_classical(
rank: *mut slong,
P: *mut slong,
LU: *mut gr_mat_struct,
A: *const gr_mat_struct,
rank_check: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_lu_generic(
rank: *mut slong,
P: *mut slong,
LU: *mut gr_mat_struct,
A: *const gr_mat_struct,
rank_check: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_lu(
rank: *mut slong,
P: *mut slong,
LU: *mut gr_mat_struct,
A: *const gr_mat_struct,
rank_check: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_fflu(
res_rank: *mut slong,
P: *mut slong,
LU: *mut gr_mat_struct,
den: gr_ptr,
A: *const gr_mat_struct,
rank_check: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_nonsingular_solve_fflu(
X: *mut gr_mat_struct,
A: *const gr_mat_struct,
B: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_nonsingular_solve_lu(
X: *mut gr_mat_struct,
A: *const gr_mat_struct,
B: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_nonsingular_solve(
X: *mut gr_mat_struct,
A: *const gr_mat_struct,
B: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_nonsingular_solve_fflu_precomp(
X: *mut gr_mat_struct,
perm: *const slong,
A: *const gr_mat_struct,
B: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_nonsingular_solve_lu_precomp(
X: *mut gr_mat_struct,
perm: *const slong,
A: *const gr_mat_struct,
B: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_nonsingular_solve_den_fflu(
X: *mut gr_mat_struct,
den: gr_ptr,
A: *const gr_mat_struct,
B: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_nonsingular_solve_den(
X: *mut gr_mat_struct,
den: gr_ptr,
A: *const gr_mat_struct,
B: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_solve_field(
X: *mut gr_mat_struct,
A: *const gr_mat_struct,
B: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_det_berkowitz(
res: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_det_fflu(
res: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_det_lu(
res: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_det_cofactor(
res: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_det_generic_field(
res: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_det_generic_integral_domain(
res: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_det_generic(
res: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_det(
res: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_inv(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_adjugate_charpoly(
adj: *mut gr_mat_struct,
det: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_adjugate_cofactor(
adj: *mut gr_mat_struct,
det: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_adjugate(
adj: *mut gr_mat_struct,
det: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_permanent_cofactor(
res: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_permanent_ryser(
res: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_permanent_glynn(
res: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_permanent_glynn_threaded(
res: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_permanent_generic(
res: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_permanent(
res: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_rank_lu(
rank: *mut slong,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_rank_fflu(
rank: *mut slong,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_rank(
rank: *mut slong,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_rref_lu(
res_rank: *mut slong,
R: *mut gr_mat_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_rref_fflu(
res_rank: *mut slong,
R: *mut gr_mat_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_rref(
res_rank: *mut slong,
R: *mut gr_mat_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_rref_den_fflu(
res_rank: *mut slong,
R: *mut gr_mat_struct,
den: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_rref_den(
res_rank: *mut slong,
R: *mut gr_mat_struct,
den: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_nullspace_from_rref(
X: *mut gr_mat_struct,
A: *const gr_mat_struct,
Aden: gr_srcptr,
rank: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_nullspace_no_resize(
nullity: *mut slong,
X: *mut gr_mat_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_nullspace(
X: *mut gr_mat_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_ones(
mat: *mut gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_pascal(
mat: *mut gr_mat_struct,
triangular: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_stirling(
mat: *mut gr_mat_struct,
kind: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_hilbert(
mat: *mut gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_hadamard(
mat: *mut gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_transpose(
B: *mut gr_mat_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_nonsingular_solve_tril_classical(
X: *mut gr_mat_struct,
L: *const gr_mat_struct,
B: *const gr_mat_struct,
unit: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_nonsingular_solve_tril_recursive(
X: *mut gr_mat_struct,
L: *const gr_mat_struct,
B: *const gr_mat_struct,
unit: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_nonsingular_solve_tril_generic(
X: *mut gr_mat_struct,
L: *const gr_mat_struct,
B: *const gr_mat_struct,
unit: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_nonsingular_solve_tril(
X: *mut gr_mat_struct,
L: *const gr_mat_struct,
B: *const gr_mat_struct,
unit: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_nonsingular_solve_triu_classical(
X: *mut gr_mat_struct,
U: *const gr_mat_struct,
B: *const gr_mat_struct,
unit: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_nonsingular_solve_triu_recursive(
X: *mut gr_mat_struct,
U: *const gr_mat_struct,
B: *const gr_mat_struct,
unit: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_nonsingular_solve_triu_generic(
X: *mut gr_mat_struct,
L: *const gr_mat_struct,
B: *const gr_mat_struct,
unit: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_nonsingular_solve_triu(
X: *mut gr_mat_struct,
U: *const gr_mat_struct,
B: *const gr_mat_struct,
unit: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_trace(
res: gr_ptr,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_mat_charpoly_berkowitz(
res: gr_ptr,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_charpoly_berkowitz(
res: *mut gr_poly_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_mat_charpoly_danilevsky_inplace(
res: gr_ptr,
mat: *mut gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_mat_charpoly_danilevsky(
res: gr_ptr,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_charpoly_danilevsky(
res: *mut gr_poly_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_mat_charpoly_faddeev(
res: gr_ptr,
adj: *mut gr_mat_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_charpoly_faddeev(
res: *mut gr_poly_struct,
adj: *mut gr_mat_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_mat_charpoly_faddeev_bsgs(
res: gr_ptr,
adj: *mut gr_mat_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_charpoly_faddeev_bsgs(
res: *mut gr_poly_struct,
adj: *mut gr_mat_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_mat_charpoly_from_hessenberg(
res: gr_ptr,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_charpoly_from_hessenberg(
cp: *mut gr_poly_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_mat_charpoly_gauss(
res: gr_ptr,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_charpoly_gauss(
cp: *mut gr_poly_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_mat_charpoly_householder(
res: gr_ptr,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_charpoly_householder(
cp: *mut gr_poly_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_mat_charpoly_generic(
res: gr_ptr,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_charpoly_generic(
cp: *mut gr_poly_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_mat_charpoly(
res: gr_ptr,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_charpoly(
res: *mut gr_poly_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_mat_companion(
res: *mut gr_mat_struct,
poly: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_companion(
res: *mut gr_mat_struct,
poly: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_mat_companion_fraction(
res_num: *mut gr_mat_struct,
res_den: gr_ptr,
poly: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_companion_fraction(
res_num: *mut gr_mat_struct,
res_den: gr_ptr,
poly: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_hessenberg(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_hessenberg_gauss(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_hessenberg_householder(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_is_hessenberg(
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_mat_reduce_row_generic(
column: *mut slong,
A: *mut gr_mat_struct,
P: *mut slong,
L: *mut slong,
m: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_reduce_row(
column: *mut slong,
A: *mut gr_mat_struct,
P: *mut slong,
L: *mut slong,
m: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_apply_row_similarity(
A: *mut gr_mat_struct,
r: slong,
d: gr_ptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_minpoly_field(
p: *mut gr_poly_struct,
X: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_eigenvalues(
lambda: *mut gr_vec_struct,
mult: *mut fmpz_vec_struct,
mat: *const gr_mat_struct,
flags: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_eigenvalues_other(
lambda: *mut gr_vec_struct,
mult: *mut fmpz_vec_struct,
mat: *const gr_mat_struct,
mat_ctx: *mut gr_ctx_struct,
flags: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_diagonalization_precomp(
D: *mut gr_vec_struct,
L: *mut gr_mat_struct,
R: *mut gr_mat_struct,
A: *const gr_mat_struct,
eigenvalues: *const gr_vec_struct,
mult: *const fmpz_vec_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_diagonalization_generic(
D: *mut gr_vec_struct,
L: *mut gr_mat_struct,
R: *mut gr_mat_struct,
A: *const gr_mat_struct,
flags: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_diagonalization(
D: *mut gr_vec_struct,
L: *mut gr_mat_struct,
R: *mut gr_mat_struct,
A: *const gr_mat_struct,
flags: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_set_jordan_blocks(
mat: *mut gr_mat_struct,
lambda: *const gr_vec_struct,
num_blocks: slong,
block_lambda: *mut slong,
block_size: *mut slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_jordan_blocks(
lambda: *mut gr_vec_struct,
num_blocks: *mut slong,
block_lambda: *mut slong,
block_size: *mut slong,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_jordan_transformation(
mat: *mut gr_mat_struct,
lambda: *const gr_vec_struct,
num_blocks: slong,
block_lambda: *mut slong,
block_size: *mut slong,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_jordan_form(
J: *mut gr_mat_struct,
P: *mut gr_mat_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_is_scalar(
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_mat_is_diagonal(
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_mat_is_lower_triangular(
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_mat_is_upper_triangular(
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_mat_mul_diag(
C: *mut gr_mat_struct,
A: *const gr_mat_struct,
D: *const gr_vec_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_diag_mul(
C: *mut gr_mat_struct,
D: *const gr_vec_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_func_jordan(
res: *mut gr_mat_struct,
A: *const gr_mat_struct,
jet_func: __gr_method_vec_op,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_func_param_jordan(
res: *mut gr_mat_struct,
A: *const gr_mat_struct,
jet_func: __gr_method_vec_scalar_op,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_exp_jordan(
res: *mut gr_mat_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_exp(
res: *mut gr_mat_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_log_jordan(
res: *mut gr_mat_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_log(
res: *mut gr_mat_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_pow_scalar_jordan(
res: *mut gr_mat_struct,
A: *const gr_mat_struct,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_pow_scalar(
res: *mut gr_mat_struct,
A: *const gr_mat_struct,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_pow_fmpq_jordan(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
exp: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_pow_fmpq(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
exp: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_sqrt(
res: *mut gr_mat_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_rsqrt(
res: *mut gr_mat_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_norm_max(
res: gr_ptr,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_norm_1(
res: gr_ptr,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_norm_inf(
res: gr_ptr,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_norm_frobenius(
res: gr_ptr,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_is_orthogonal(
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_mat_is_row_orthogonal(
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_mat_is_row_orthonormal(
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_mat_is_col_orthogonal(
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_mat_is_col_orthonormal(
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_mat_randtest_orthogonal(
A: *mut gr_mat_struct,
state: *mut flint_rand_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_lq_gso(
L: *mut gr_mat_struct,
Q: *mut gr_mat_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_lq_recursive(
L: *mut gr_mat_struct,
Q: *mut gr_mat_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_lq_generic(
L: *mut gr_mat_struct,
Q: *mut gr_mat_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_lq(
L: *mut gr_mat_struct,
Q: *mut gr_mat_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_qr(
Q: *mut gr_mat_struct,
R: *mut gr_mat_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_is_row_lll_reduced_naive(
A: *const gr_mat_struct,
delta: gr_srcptr,
eta: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_mat_is_row_lll_reduced_with_removal_naive(
A: *const gr_mat_struct,
delta: gr_srcptr,
eta: gr_srcptr,
gs_B: gr_srcptr,
newd: slong,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn _gr_mat_gr_poly_solve_lode_newton_start(
Y: *mut gr_mat_struct,
Z: *mut gr_mat_struct,
A_denominator_inv: *mut gr_poly_struct,
A_numerator: *const gr_mat_struct,
A_denominator: *const gr_poly_struct,
Y0: *const gr_mat_struct,
sol_poly_ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_mat_gr_poly_solve_lode_newton_step(
Y: *mut gr_mat_struct,
Z: *mut gr_mat_struct,
A_denominator_inv: *mut gr_poly_struct,
len: slong,
A_numerator: *const gr_mat_struct,
A_denominator: *const gr_poly_struct,
A_is_companion: ::std::os::raw::c_int,
sol_poly_ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_mat_gr_poly_solve_lode_newton(
Y: *mut gr_mat_struct,
Z: *mut gr_mat_struct,
A_numerator: *const gr_mat_struct,
A_denominator: *const gr_poly_struct,
Y0: *const gr_mat_struct,
len: slong,
A_poly_ctx: *mut gr_ctx_struct,
sol_poly_ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_gr_poly_solve_lode_newton(
Y: *mut gr_mat_struct,
A_numerator: *const gr_mat_struct,
A_denominator: *const gr_poly_struct,
Y0: *const gr_mat_struct,
len: slong,
A_poly_ctx: *mut gr_ctx_struct,
sol_poly_ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mat_test_mul(
mul_impl: gr_method_mat_binary_op,
state: *mut flint_rand_struct,
iters: slong,
maxn: slong,
ctx: *mut gr_ctx_struct,
);
pub fn gr_mat_test_lu(
lu_impl: gr_method_mat_lu_op,
state: *mut flint_rand_struct,
iters: slong,
maxn: slong,
ctx: *mut gr_ctx_struct,
);
pub fn gr_mat_test_det(
det_impl: gr_method_mat_unary_op_get_scalar,
state: *mut flint_rand_struct,
iters: slong,
maxn: slong,
ctx: *mut gr_ctx_struct,
);
pub fn gr_mat_test_charpoly(
charpoly_impl: gr_method_mat_unary_op_get_scalar,
state: *mut flint_rand_struct,
iters: slong,
maxn: slong,
ctx: *mut gr_ctx_struct,
);
pub fn gr_mat_test_nonsingular_solve_tril(
solve_impl: gr_method_mat_binary_op_with_flag,
state: *mut flint_rand_struct,
iters: slong,
maxn: slong,
ctx: *mut gr_ctx_struct,
);
pub fn gr_mat_test_nonsingular_solve_triu(
solve_impl: gr_method_mat_binary_op_with_flag,
state: *mut flint_rand_struct,
iters: slong,
maxn: slong,
ctx: *mut gr_ctx_struct,
);
pub fn gr_mat_test_approx_mul_max_norm(
mul_impl: gr_method_mat_binary_op,
rel_tol: gr_srcptr,
state: *mut flint_rand_struct,
iters: slong,
maxn: slong,
ctx: *mut gr_ctx_struct,
);
pub fn gr_mat_test_approx_mul_pos_entrywise_accurate(
mul_impl: gr_method_mat_binary_op,
rel_tol: gr_srcptr,
state: *mut flint_rand_struct,
iters: slong,
maxn: slong,
ctx: *mut gr_ctx_struct,
);
}
/* gr_mpoly.h */
#[repr(C)]
pub struct gr_mpoly_struct {
pub coeffs: gr_ptr,
pub exps: *mut ulong,
pub length: slong,
pub bits: flint_bitcnt_t,
pub coeffs_alloc: slong,
pub exps_alloc: slong,
}
impl Default for gr_mpoly_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 gr_mpoly_t = [gr_mpoly_struct; 1usize];
#[repr(C)]
pub struct _gr_mpoly_ctx_struct {
pub cctx: *mut gr_ctx_struct,
pub mctx: *mut mpoly_ctx_struct,
pub vars: *mut *mut ::std::os::raw::c_char,
}
impl Default for _gr_mpoly_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 gr_mpoly_ctx_struct = gr_ctx_struct;
pub type gr_mpoly_ctx_t = [gr_mpoly_ctx_struct; 1usize];
unsafe extern "C" {
pub fn gr_mpoly_ctx_init_rand(
ctx: *mut gr_mpoly_ctx_struct,
state: *mut flint_rand_struct,
base_ring: *mut gr_ctx_struct,
max_nvars: slong,
);
pub fn gr_mpoly_ctx_clear(ctx: *mut gr_mpoly_ctx_struct);
pub fn gr_mpoly_ctx_init(
ctx: *mut gr_mpoly_ctx_struct,
base_ring: *mut gr_ctx_struct,
nvars: slong,
ord: ordering_t,
);
pub fn gr_mpoly_ctx_set_gen_names(
ctx: *mut gr_mpoly_ctx_struct,
s: *mut *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_gens(
res: *mut gr_vec_struct,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_gens_recursive(
vec: *mut gr_vec_struct,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_ctx_write(
out: *mut gr_stream_struct,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_ctx_is_ring(ctx: *mut gr_mpoly_ctx_struct) -> truth_t;
pub fn gr_mpoly_ctx_is_zero_ring(ctx: *mut gr_mpoly_ctx_struct) -> truth_t;
pub fn gr_mpoly_ctx_is_commutative_ring(ctx: *mut gr_mpoly_ctx_struct) -> truth_t;
pub fn gr_mpoly_ctx_is_integral_domain(ctx: *mut gr_mpoly_ctx_struct) -> truth_t;
pub fn gr_mpoly_ctx_is_field(ctx: *mut gr_mpoly_ctx_struct) -> truth_t;
pub fn gr_mpoly_ctx_is_threadsafe(ctx: *mut gr_mpoly_ctx_struct) -> truth_t;
pub fn gr_mpoly_init(A: *mut gr_mpoly_struct, UNUSED_ctx: *mut gr_mpoly_ctx_struct);
pub fn gr_mpoly_init3(
A: *mut gr_mpoly_struct,
alloc: slong,
bits: flint_bitcnt_t,
ctx: *mut gr_mpoly_ctx_struct,
);
pub fn gr_mpoly_init2(
A: *mut gr_mpoly_struct,
alloc: slong,
ctx: *mut gr_mpoly_ctx_struct,
);
pub fn gr_mpoly_clear(A: *mut gr_mpoly_struct, ctx: *mut gr_mpoly_ctx_struct);
pub fn _gr_mpoly_fit_length(
coeffs: *mut gr_ptr,
coeffs_alloc: *mut slong,
exps: *mut *mut ulong,
exps_alloc: *mut slong,
N: slong,
length: slong,
cctx: *mut gr_ctx_struct,
);
pub fn gr_mpoly_fit_length(
A: *mut gr_mpoly_struct,
len: slong,
ctx: *mut gr_mpoly_ctx_struct,
);
pub fn gr_mpoly_fit_bits(
A: *mut gr_mpoly_struct,
bits: flint_bitcnt_t,
ctx: *mut gr_mpoly_ctx_struct,
);
pub fn gr_mpoly_fit_length_fit_bits(
A: *mut gr_mpoly_struct,
len: slong,
bits: flint_bitcnt_t,
ctx: *mut gr_mpoly_ctx_struct,
);
pub fn gr_mpoly_fit_length_reset_bits(
A: *mut gr_mpoly_struct,
len: slong,
bits: flint_bitcnt_t,
ctx: *mut gr_mpoly_ctx_struct,
);
pub fn _gr_mpoly_set_length(
A: *mut gr_mpoly_struct,
newlen: slong,
UNUSED_ctx: *mut gr_mpoly_ctx_struct,
);
pub fn gr_mpoly_length(
x: *const gr_mpoly_struct,
UNUSED_ctx: *mut gr_mpoly_ctx_struct,
) -> slong;
pub fn _gr_mpoly_normalise(A: *mut gr_mpoly_struct, ctx: *mut gr_mpoly_ctx_struct);
pub fn gr_mpoly_swap(
A: *mut gr_mpoly_struct,
B: *mut gr_mpoly_struct,
UNUSED_ctx: *mut gr_mpoly_ctx_struct,
);
pub fn gr_mpoly_set_shallow(
res: *mut gr_mpoly_struct,
poly: *const gr_mpoly_struct,
UNUSED_ctx: *mut gr_mpoly_ctx_struct,
);
pub fn gr_mpoly_set(
A: *mut gr_mpoly_struct,
B: *const gr_mpoly_struct,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_zero(
A: *mut gr_mpoly_struct,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_is_zero(
A: *const gr_mpoly_struct,
ctx: *mut gr_mpoly_ctx_struct,
) -> truth_t;
pub fn gr_mpoly_gen(
A: *mut gr_mpoly_struct,
var: slong,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_is_gen(
A: *const gr_mpoly_struct,
var: slong,
ctx: *mut gr_mpoly_ctx_struct,
) -> truth_t;
pub fn gr_mpoly_equal(
A: *const gr_mpoly_struct,
B: *const gr_mpoly_struct,
ctx: *mut gr_mpoly_ctx_struct,
) -> truth_t;
pub fn _gr_mpoly_push_exp_ui(
A: *mut gr_mpoly_struct,
exp: *const ulong,
ctx: *mut gr_mpoly_ctx_struct,
);
pub fn gr_mpoly_push_term_scalar_ui(
A: *mut gr_mpoly_struct,
c: gr_srcptr,
exp: *const ulong,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_mpoly_push_exp_fmpz(
A: *mut gr_mpoly_struct,
exp: *const fmpz,
ctx: *mut gr_mpoly_ctx_struct,
);
pub fn gr_mpoly_push_term_scalar_fmpz(
A: *mut gr_mpoly_struct,
c: gr_srcptr,
exp: *const fmpz,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_sort_terms(A: *mut gr_mpoly_struct, ctx: *mut gr_mpoly_ctx_struct);
pub fn gr_mpoly_combine_like_terms(
A: *mut gr_mpoly_struct,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_is_canonical(
A: *const gr_mpoly_struct,
ctx: *mut gr_mpoly_ctx_struct,
) -> truth_t;
pub fn gr_mpoly_assert_canonical(
A: *const gr_mpoly_struct,
ctx: *mut gr_mpoly_ctx_struct,
);
pub fn gr_mpoly_randtest_bits(
A: *mut gr_mpoly_struct,
state: *mut flint_rand_struct,
length: slong,
exp_bits: flint_bitcnt_t,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_randtest_bound(
A: *mut gr_mpoly_struct,
state: *mut flint_rand_struct,
length: slong,
exp_bound: ulong,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_mpoly_randtest_default(
res: *mut gr_mpoly_struct,
state: *mut flint_rand_struct,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_write_pretty(
out: *mut gr_stream_struct,
A: *const gr_mpoly_struct,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_write(
out: *mut gr_stream_struct,
poly: *mut gr_mpoly_struct,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_print_pretty(
A: *const gr_mpoly_struct,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_set_other(
res: *mut gr_mpoly_struct,
A: gr_srcptr,
A_ctx: *mut gr_ctx_struct,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_set_scalar(
A: *mut gr_mpoly_struct,
c: gr_srcptr,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_set_ui(
A: *mut gr_mpoly_struct,
c: ulong,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_set_si(
A: *mut gr_mpoly_struct,
c: slong,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_set_fmpz(
A: *mut gr_mpoly_struct,
c: *const fmpz,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_set_fmpq(
A: *mut gr_mpoly_struct,
c: *const fmpq,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_one(
A: *mut gr_mpoly_struct,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_is_one(
A: *const gr_mpoly_struct,
ctx: *mut gr_mpoly_ctx_struct,
) -> truth_t;
pub fn gr_mpoly_get_coeff_scalar_fmpz(
c: gr_ptr,
A: *const gr_mpoly_struct,
exp: *const fmpz,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_get_coeff_scalar_ui(
c: gr_ptr,
A: *const gr_mpoly_struct,
exp: *const ulong,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_set_coeff_scalar_fmpz(
A: *mut gr_mpoly_struct,
c: gr_srcptr,
exp: *const fmpz,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_set_coeff_ui_fmpz(
A: *mut gr_mpoly_struct,
c: ulong,
exp: *const fmpz,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_set_coeff_si_fmpz(
A: *mut gr_mpoly_struct,
c: slong,
exp: *const fmpz,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_set_coeff_fmpz_fmpz(
A: *mut gr_mpoly_struct,
c: *const fmpz,
exp: *const fmpz,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_set_coeff_fmpq_fmpz(
A: *mut gr_mpoly_struct,
c: *const fmpq,
exp: *const fmpz,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_set_coeff_scalar_ui(
poly: *mut gr_mpoly_struct,
c: gr_srcptr,
exp: *const ulong,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_set_coeff_ui_ui(
A: *mut gr_mpoly_struct,
c: ulong,
exp: *const ulong,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_set_coeff_si_ui(
A: *mut gr_mpoly_struct,
c: slong,
exp: *const ulong,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_set_coeff_fmpz_ui(
A: *mut gr_mpoly_struct,
c: *const fmpz,
exp: *const ulong,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_set_coeff_fmpq_ui(
A: *mut gr_mpoly_struct,
c: *const fmpq,
exp: *const ulong,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_neg(
A: *mut gr_mpoly_struct,
B: *const gr_mpoly_struct,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_add(
A: *mut gr_mpoly_struct,
B: *const gr_mpoly_struct,
C: *const gr_mpoly_struct,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_sub(
A: *mut gr_mpoly_struct,
B: *const gr_mpoly_struct,
C: *const gr_mpoly_struct,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_mul(
poly1: *mut gr_mpoly_struct,
poly2: *const gr_mpoly_struct,
poly3: *const gr_mpoly_struct,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_mul_johnson(
poly1: *mut gr_mpoly_struct,
poly2: *const gr_mpoly_struct,
poly3: *const gr_mpoly_struct,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_mul_monomial(
A: *mut gr_mpoly_struct,
B: *const gr_mpoly_struct,
C: *const gr_mpoly_struct,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_mul_scalar(
A: *mut gr_mpoly_struct,
B: *const gr_mpoly_struct,
c: gr_srcptr,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_mul_si(
A: *mut gr_mpoly_struct,
B: *const gr_mpoly_struct,
c: slong,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_mul_ui(
A: *mut gr_mpoly_struct,
B: *const gr_mpoly_struct,
c: ulong,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_mul_fmpz(
A: *mut gr_mpoly_struct,
B: *const gr_mpoly_struct,
c: *const fmpz,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_mul_fmpq(
A: *mut gr_mpoly_struct,
B: *const gr_mpoly_struct,
c: *const fmpq,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_inv(
res: *mut gr_mpoly_struct,
poly: *const gr_mpoly_struct,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_canonical_associate(
res: *mut gr_mpoly_struct,
u: *mut gr_mpoly_struct,
poly: *const gr_mpoly_struct,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_derivative(
A: *mut gr_mpoly_struct,
B: *const gr_mpoly_struct,
var: slong,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_mpoly_integral(
A: *mut gr_mpoly_struct,
B: *const gr_mpoly_struct,
var: slong,
ctx: *mut gr_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
}
/* gr_ore_poly.h */
pub const ore_algebra_t_ORE_ALGEBRA_CUSTOM: ore_algebra_t = 0;
pub const ore_algebra_t_ORE_ALGEBRA_COMMUTATIVE: ore_algebra_t = 1;
pub const ore_algebra_t_ORE_ALGEBRA_DERIVATIVE: ore_algebra_t = 2;
pub const ore_algebra_t_ORE_ALGEBRA_EULER_DERIVATIVE: ore_algebra_t = 3;
pub const ore_algebra_t_ORE_ALGEBRA_FORWARD_SHIFT: ore_algebra_t = 4;
pub const ore_algebra_t_ORE_ALGEBRA_FORWARD_DIFFERENCE: ore_algebra_t = 5;
pub const ore_algebra_t_ORE_ALGEBRA_BACKWARD_SHIFT: ore_algebra_t = 6;
pub const ore_algebra_t_ORE_ALGEBRA_BACKWARD_DIFFERENCE: ore_algebra_t = 7;
pub const ore_algebra_t_ORE_ALGEBRA_Q_SHIFT: ore_algebra_t = 8;
pub const ore_algebra_t_ORE_ALGEBRA_MAHLER: ore_algebra_t = 9;
pub const ore_algebra_t_ORE_ALGEBRA_FROBENIUS: ore_algebra_t = 10;
pub const ore_algebra_t_ORE_POLY_NUM_ALGEBRAS: ore_algebra_t = 11;
pub type ore_algebra_t = ::std::os::raw::c_uint;
#[repr(C)]
pub struct gr_ore_poly_struct {
pub coeffs: gr_ptr,
pub alloc: slong,
pub length: slong,
}
impl Default for gr_ore_poly_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 gr_ore_poly_t = [gr_ore_poly_struct; 1usize];
pub type gr_ore_poly_ctx_struct = gr_ctx_struct;
pub type gr_ore_poly_ctx_t = [gr_ore_poly_ctx_struct; 1usize];
pub type gr_ore_poly_sigma_delta_t = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_ptr,
arg3: gr_srcptr,
arg4: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int,
>;
#[repr(C)]
pub struct gr_ore_poly_ore_data_t {
pub base_var: slong,
pub sigma_x: gr_ptr,
pub __gr_ore_poly_bindgen_anon_1: gr_ore_poly_ore_data_t__gr_ore_poly_bindgen_ty_1,
}
#[repr(C)]
pub union gr_ore_poly_ore_data_t__gr_ore_poly_bindgen_ty_1 {
pub q: ::std::mem::ManuallyDrop<gr_ptr>,
pub mahler_base: ::std::mem::ManuallyDrop<slong>,
}
impl Default for gr_ore_poly_ore_data_t__gr_ore_poly_bindgen_ty_1 {
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()
}
}
}
impl Default for gr_ore_poly_ore_data_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 _gr_ore_poly_ctx_struct {
pub base_ring: *mut gr_ctx_struct,
pub degree_limit: slong,
pub var: *mut ::std::os::raw::c_char,
pub which_algebra: ore_algebra_t,
pub sigma_delta: gr_ore_poly_sigma_delta_t,
pub ore_data: *mut ::std::os::raw::c_void,
}
impl Default for _gr_ore_poly_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()
}
}
}
unsafe extern "C" {
pub fn ore_algebra_randtest(state: *mut flint_rand_struct) -> ore_algebra_t;
pub fn gr_ore_poly_ctx_data_ptr(
ctx: *mut gr_ore_poly_ctx_struct,
) -> *mut ::std::os::raw::c_void;
pub fn gr_ctx_init_gr_ore_poly(
ctx: *mut gr_ctx_struct,
base_ring: *mut gr_ctx_struct,
base_var: slong,
which_algebra: ore_algebra_t,
);
pub fn gr_ore_poly_ctx_init(
ctx: *mut gr_ore_poly_ctx_struct,
base_ring: *mut gr_ctx_struct,
base_var: slong,
which_algebra: ore_algebra_t,
);
pub fn gr_ore_poly_ctx_init_q_shift(
ctx: *mut gr_ore_poly_ctx_struct,
base_ring: *mut gr_ctx_struct,
base_var: slong,
q: gr_srcptr,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_ctx_init_mahler(
ctx: *mut gr_ore_poly_ctx_struct,
base_ring: *mut gr_ctx_struct,
base_var: slong,
mahler_base: slong,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_ctx_init_custom(
ctx: *mut gr_ore_poly_ctx_struct,
base_ring: *mut gr_ctx_struct,
sigma_delta: gr_ore_poly_sigma_delta_t,
ore_data: *mut ::std::os::raw::c_void,
);
pub fn gr_ore_poly_ctx_clear(ctx: *mut gr_ore_poly_ctx_struct);
pub fn gr_ore_poly_ctx_init_randtest(
ctx: *mut gr_ore_poly_ctx_struct,
state: *mut flint_rand_struct,
base_ring: *mut gr_ctx_struct,
);
pub fn gr_ore_poly_ctx_init_randtest2(
base_ring: *mut gr_ctx_struct,
ctx: *mut gr_ore_poly_ctx_struct,
state: *mut flint_rand_struct,
);
pub fn _gr_ore_poly_ctx_set_gen_name(
ctx: *mut gr_ctx_struct,
s: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn _gr_ore_poly_ctx_set_gen_names(
ctx: *mut gr_ctx_struct,
s: *mut *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_gens_recursive(
vec: *mut gr_vec_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_ctx_write(
out: *mut gr_stream_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_ctx_is_ring(ctx: *mut gr_ore_poly_ctx_struct) -> truth_t;
pub fn gr_ore_poly_ctx_is_zero_ring(ctx: *mut gr_ore_poly_ctx_struct) -> truth_t;
pub fn gr_ore_poly_ctx_is_commutative_ring(
ctx: *mut gr_ore_poly_ctx_struct,
) -> truth_t;
pub fn gr_ore_poly_ctx_is_integral_domain(
ctx: *mut gr_ore_poly_ctx_struct,
) -> truth_t;
pub fn gr_ore_poly_ctx_is_threadsafe(ctx: *mut gr_ore_poly_ctx_struct) -> truth_t;
pub fn gr_ore_poly_init(
poly: *mut gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
);
pub fn gr_ore_poly_init2(
poly: *mut gr_ore_poly_struct,
len: slong,
ctx: *mut gr_ore_poly_ctx_struct,
);
pub fn gr_ore_poly_clear(
poly: *mut gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
);
pub fn gr_ore_poly_coeff_ptr(
poly: *mut gr_ore_poly_struct,
i: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> gr_ptr;
pub fn gr_ore_poly_coeff_srcptr(
poly: *const gr_ore_poly_struct,
i: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> gr_srcptr;
pub fn gr_ore_poly_length(
poly: *const gr_ore_poly_struct,
UNUSED_ctx: *mut gr_ore_poly_ctx_struct,
) -> slong;
pub fn gr_ore_poly_swap(
poly1: *mut gr_ore_poly_struct,
poly2: *mut gr_ore_poly_struct,
UNUSED_ctx: *mut gr_ore_poly_ctx_struct,
);
pub fn gr_ore_poly_set_shallow(
res: *mut gr_ore_poly_struct,
x: *const gr_ore_poly_struct,
UNUSED_ctx: *const gr_ore_poly_ctx_struct,
);
pub fn gr_ore_poly_fit_length(
poly: *mut gr_ore_poly_struct,
len: slong,
ctx: *mut gr_ore_poly_ctx_struct,
);
pub fn _gr_ore_poly_set_length(
poly: *mut gr_ore_poly_struct,
len: slong,
ctx: *mut gr_ore_poly_ctx_struct,
);
pub fn _gr_ore_poly_normalise(
poly: *mut gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
);
pub fn gr_ore_poly_set(
res: *mut gr_ore_poly_struct,
src: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_truncate(
poly: *mut gr_ore_poly_struct,
src: *const gr_ore_poly_struct,
newlen: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_zero(
poly: *mut gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_one(
poly: *mut gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_neg_one(
poly: *mut gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_gen(
poly: *mut gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_ore_poly_equal(
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> truth_t;
pub fn gr_ore_poly_equal(
poly1: *const gr_ore_poly_struct,
poly2: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> truth_t;
pub fn gr_ore_poly_is_zero(
poly: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> truth_t;
pub fn gr_ore_poly_is_one(
poly: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> truth_t;
pub fn gr_ore_poly_is_gen(
poly: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> truth_t;
pub fn _gr_ore_poly_write(
out: *mut gr_stream_struct,
poly: gr_srcptr,
len: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_write(
out: *mut gr_stream_struct,
poly: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_ore_poly_get_str(
res: *mut *mut ::std::os::raw::c_char,
f: gr_srcptr,
len: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_get_str(
res: *mut *mut ::std::os::raw::c_char,
poly: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_ore_poly_set_str(
res: gr_ptr,
s: *const ::std::os::raw::c_char,
len: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_set_str(
res: *mut gr_ore_poly_struct,
s: *const ::std::os::raw::c_char,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_print(
poly: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_randtest(
poly: *mut gr_ore_poly_struct,
state: *mut flint_rand_struct,
len: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_ore_poly_randtest_default(
res: *mut gr_ore_poly_struct,
state: *mut flint_rand_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_set_si(
poly: *mut gr_ore_poly_struct,
x: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_set_ui(
poly: *mut gr_ore_poly_struct,
x: ulong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_set_fmpz(
poly: *mut gr_ore_poly_struct,
x: *const fmpz,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_set_fmpq(
poly: *mut gr_ore_poly_struct,
x: *const fmpq,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_set_other(
poly: *mut gr_ore_poly_struct,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn sigma_delta_unable(
sigma: gr_ptr,
delta: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn sigma_delta_commutative(
sigma: gr_ptr,
delta: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn sigma_delta_derivative(
sigma: gr_ptr,
delta: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn sigma_delta_euler_derivative(
sigma: gr_ptr,
delta: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn sigma_delta_forward_shift(
sigma: gr_ptr,
delta: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn sigma_delta_backward_shift(
sigma: gr_ptr,
delta: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn sigma_delta_forward_difference(
sigma: gr_ptr,
delta: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn sigma_delta_backward_difference(
sigma: gr_ptr,
delta: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn sigma_delta_compose(
sigma: gr_ptr,
delta: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn sigma_delta_mahler(
sigma: gr_ptr,
delta: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn sigma_delta_frobenius(
sigma: gr_ptr,
delta: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_sigma_delta(
sigma: gr_ptr,
delta: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_sigma(
res: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_delta(
res: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_neg(
res: *mut gr_ore_poly_struct,
src: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_ore_poly_add(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_add(
res: *mut gr_ore_poly_struct,
poly1: *const gr_ore_poly_struct,
poly2: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_ore_poly_sub(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_sub(
res: *mut gr_ore_poly_struct,
poly1: *const gr_ore_poly_struct,
poly2: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_add_ui(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
c: ulong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_add_si(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
c: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_add_fmpz(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
c: *const fmpz,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_add_fmpq(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
c: *const fmpq,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_add_other(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_sub_ui(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
c: ulong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_sub_si(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
c: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_sub_fmpz(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
c: *const fmpz,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_sub_fmpq(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
c: *const fmpq,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_sub_other(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_mul_ui(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
c: ulong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_mul_si(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
c: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_mul_fmpz(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
c: *const fmpz,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_mul_fmpq(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
c: *const fmpq,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_other_mul(
res: *mut gr_ore_poly_struct,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
poly: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_ore_poly_lmul_gen(
res: gr_ptr,
poly: gr_srcptr,
len: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_lmul_gen(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_ore_poly_mul(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_mul(
res: *mut gr_ore_poly_struct,
poly1: *const gr_ore_poly_struct,
poly2: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_ore_poly_divrem(
Q: gr_ptr,
R: gr_ptr,
U: gr_srcptr,
lenU: slong,
V: gr_srcptr,
lenV: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_divrem(
Q: *mut gr_ore_poly_struct,
R: *mut gr_ore_poly_struct,
U: *const gr_ore_poly_struct,
V: *mut gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_div(
Q: *mut gr_ore_poly_struct,
U: *const gr_ore_poly_struct,
V: *mut gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_ore_poly_rem(
R: *mut gr_ore_poly_struct,
U: *const gr_ore_poly_struct,
V: *mut gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> ::std::os::raw::c_int;
}
/* gr_poly.h */
pub type gr_poly_roots_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut gr_vec_struct,
arg2: *mut fmpz_vec_struct,
arg3: *const gr_poly_struct,
arg4: ::std::os::raw::c_int,
arg5: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_poly_roots_op_other = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut gr_vec_struct,
arg2: *mut fmpz_vec_struct,
arg3: *const gr_poly_struct,
arg4: gr_ctx_ptr,
arg5: ::std::os::raw::c_int,
arg6: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type _gr_method_compose_mod_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: slong,
arg4: gr_srcptr,
arg5: gr_srcptr,
arg6: slong,
arg7: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int,
>;
pub type _gr_method_compose_mod_preinv_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: slong,
arg4: gr_srcptr,
arg5: gr_srcptr,
arg6: slong,
arg7: gr_srcptr,
arg8: slong,
arg9: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int,
>;
unsafe extern "C" {
pub fn gr_poly_init(poly: *mut gr_poly_struct, ctx: *mut gr_ctx_struct);
pub fn gr_poly_init2(poly: *mut gr_poly_struct, len: slong, ctx: *mut gr_ctx_struct);
pub fn gr_poly_clear(poly: *mut gr_poly_struct, ctx: *mut gr_ctx_struct);
pub fn gr_poly_coeff_ptr(
poly: *mut gr_poly_struct,
i: slong,
ctx: *mut gr_ctx_struct,
) -> gr_ptr;
pub fn gr_poly_entry_ptr(
poly: *mut gr_poly_struct,
i: slong,
ctx: *mut gr_ctx_struct,
) -> gr_ptr;
pub fn gr_poly_coeff_srcptr(
poly: *const gr_poly_struct,
i: slong,
ctx: *mut gr_ctx_struct,
) -> gr_srcptr;
pub fn gr_poly_entry_srcptr(
poly: *const gr_poly_struct,
i: slong,
ctx: *mut gr_ctx_struct,
) -> gr_srcptr;
pub fn gr_poly_length(
poly: *const gr_poly_struct,
UNUSED_ctx: *mut gr_ctx_struct,
) -> slong;
pub fn gr_poly_swap(
poly1: *mut gr_poly_struct,
poly2: *mut gr_poly_struct,
UNUSED_ctx: *mut gr_ctx_struct,
);
pub fn gr_poly_fit_length(
poly: *mut gr_poly_struct,
len: slong,
ctx: *mut gr_ctx_struct,
);
pub fn _gr_poly_set_length(
poly: *mut gr_poly_struct,
len: slong,
ctx: *mut gr_ctx_struct,
);
pub fn _gr_poly_normalise(poly: *mut gr_poly_struct, ctx: *mut gr_ctx_struct);
pub fn gr_poly_vec_init(
vec: *mut gr_poly_vec_struct,
len: slong,
ctx: *mut gr_ctx_struct,
);
pub fn gr_poly_vec_clear(vec: *mut gr_poly_vec_struct, ctx: *mut gr_ctx_struct);
pub fn gr_poly_vec_set(
res: *mut gr_poly_vec_struct,
src: *const gr_poly_vec_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_vec_fit_length(
vec: *mut gr_poly_vec_struct,
len: slong,
ctx: *mut gr_ctx_struct,
);
pub fn gr_poly_vec_set_length(
vec: *mut gr_poly_vec_struct,
len: slong,
ctx: *mut gr_ctx_struct,
);
pub fn gr_poly_vec_append(
vec: *mut gr_poly_vec_struct,
f: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_vec_length(
vec: *const gr_poly_vec_struct,
UNUSED_ctx: *mut gr_ctx_struct,
) -> slong;
pub fn gr_poly_vec_entry_ptr(
vec: *mut gr_poly_vec_struct,
i: slong,
UNUSED_ctx: *mut gr_ctx_struct,
) -> *mut gr_poly_struct;
pub fn gr_poly_vec_entry_srcptr(
vec: *const gr_poly_vec_struct,
i: slong,
UNUSED_ctx: *mut gr_ctx_struct,
) -> *const gr_poly_struct;
pub fn gr_poly_set(
res: *mut gr_poly_struct,
src: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_reverse(
res: gr_ptr,
poly: gr_srcptr,
len: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_reverse(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_truncate(
poly: *mut gr_poly_struct,
src: *const gr_poly_struct,
newlen: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_zero(
poly: *mut gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_one(
poly: *mut gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_neg_one(
poly: *mut gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_gen(
poly: *mut gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_write(
out: *mut gr_stream_struct,
poly: gr_srcptr,
len: slong,
x: *const ::std::os::raw::c_char,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_write(
out: *mut gr_stream_struct,
poly: *const gr_poly_struct,
x: *const ::std::os::raw::c_char,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_get_str(
res: *mut *mut ::std::os::raw::c_char,
f: gr_srcptr,
len: slong,
x: *const ::std::os::raw::c_char,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_get_str(
res: *mut *mut ::std::os::raw::c_char,
poly: *const gr_poly_struct,
x: *const ::std::os::raw::c_char,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_set_str(
res: gr_ptr,
s: *const ::std::os::raw::c_char,
x: *const ::std::os::raw::c_char,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_set_str(
res: *mut gr_poly_struct,
s: *const ::std::os::raw::c_char,
x: *const ::std::os::raw::c_char,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_print(
poly: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_randtest(
poly: *mut gr_poly_struct,
state: *mut flint_rand_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_equal(
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_poly_equal(
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_poly_is_zero(
poly: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_poly_is_one(
poly: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_poly_is_gen(
poly: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_poly_is_scalar(
poly: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_poly_set_scalar(
poly: *mut gr_poly_struct,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_set_si(
poly: *mut gr_poly_struct,
x: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_set_ui(
poly: *mut gr_poly_struct,
x: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_set_fmpz(
poly: *mut gr_poly_struct,
x: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_set_fmpq(
poly: *mut gr_poly_struct,
x: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_set_fmpz_poly(
res: *mut gr_poly_struct,
src: *const fmpz_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_set_fmpq_poly(
res: *mut gr_poly_struct,
src: *const fmpq_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_set_gr_poly_other(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
x_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_set_coeff_scalar(
poly: *mut gr_poly_struct,
n: slong,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_set_coeff_si(
poly: *mut gr_poly_struct,
n: slong,
x: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_set_coeff_ui(
poly: *mut gr_poly_struct,
n: slong,
x: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_set_coeff_fmpz(
poly: *mut gr_poly_struct,
n: slong,
x: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_set_coeff_fmpq(
poly: *mut gr_poly_struct,
n: slong,
x: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_get_coeff_scalar(
res: gr_ptr,
poly: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_neg(
res: *mut gr_poly_struct,
src: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_add(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_add(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_sub(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_sub(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_mul(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_mul(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_mullow(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_mullow_generic(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_mullow(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_mulmid_complex_reorder(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
nlo: slong,
nhi: slong,
karatsuba: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
real_ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_mulmid_complex_reorder(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
nlo: slong,
nhi: slong,
karatsuba: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
real_ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_mullow_complex_reorder(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
n: slong,
karatsuba: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
real_ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_mullow_complex_reorder(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
n: slong,
karatsuba: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
real_ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_mullow_bivariate_KS(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_mullow_bivariate_KS(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_mullow_toom_serial(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
trunc: slong,
num_points: slong,
splitting_degree: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_mullow_toom_serial(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
n: slong,
num_points: slong,
splitting_degree: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_mulmid(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
nlo: slong,
nhi: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_mulmid_generic(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
nlo: slong,
nhi: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_mulmid(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
nlo: slong,
nhi: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_mulmid_classical(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
nlo: slong,
nhi: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_mulmid_classical(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
nlo: slong,
nhi: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_mulmid_bivariate_KS(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
nlo: slong,
nhi: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_mulmid_bivariate_KS(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
nlo: slong,
nhi: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_mullow_classical(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_mullow_classical(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_mul_karatsuba(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_mul_karatsuba(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_mul_toom33(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_mul_toom33(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_add_scalar(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_add_ui(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
c: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_add_si(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
c: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_add_fmpz(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
c: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_add_fmpq(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
c: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_sub_scalar(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_sub_ui(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
c: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_sub_si(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
c: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_sub_fmpz(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
c: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_sub_fmpq(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
c: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_mul_scalar(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_scalar_mul(
res: *mut gr_poly_struct,
c: gr_srcptr,
poly: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_mul_ui(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
c: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_mul_si(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
c: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_mul_fmpz(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
c: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_mul_fmpq(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
c: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_addmul_scalar(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_submul_scalar(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_pow_series_ui_binexp(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
exp: ulong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_pow_series_ui_binexp(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
exp: ulong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_pow_series_ui(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
exp: ulong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_pow_series_ui(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
exp: ulong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_pow_ui_binexp(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
exp: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_pow_ui_binexp(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
exp: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_pow_ui(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
exp: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_pow_ui(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
exp: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_pow_fmpz(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
exp: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_pow_series_fmpq_recurrence(
h: gr_ptr,
f: gr_srcptr,
flen: slong,
exp: *const fmpq,
len: slong,
precomp: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_pow_series_fmpq_recurrence(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
exp: *const fmpq,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_shift_left(
res: gr_ptr,
poly: gr_srcptr,
len: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_shift_left(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_shift_right(
res: gr_ptr,
poly: gr_srcptr,
len: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_shift_right(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_div_scalar(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_divexact_scalar(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_inv(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_divrem_basecase_preinv1(
Q: gr_ptr,
R: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
invB: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_divrem_basecase_noinv(
Q: gr_ptr,
R: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_divrem_basecase(
Q: gr_ptr,
R: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_divrem_basecase(
Q: *mut gr_poly_struct,
R: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_divrem_divconquer_preinv1(
Q: gr_ptr,
R: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
invB: gr_srcptr,
cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_divrem_divconquer_noinv(
Q: gr_ptr,
R: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_divrem_divconquer(
Q: gr_ptr,
R: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_divrem_divconquer(
Q: *mut gr_poly_struct,
R: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_divrem_newton(
Q: gr_ptr,
R: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_divrem_newton(
Q: *mut gr_poly_struct,
R: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_divrem(
Q: gr_ptr,
R: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_divrem_generic(
Q: gr_ptr,
R: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_divrem(
Q: *mut gr_poly_struct,
R: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_div_divconquer_preinv1(
Q: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
invB: gr_srcptr,
cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_div_divconquer_noinv(
Q: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_div_divconquer(
Q: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_div_divconquer(
Q: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_div_basecase_preinv1(
Q: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
invB: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_div_basecase_noinv(
Q: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_div_basecase(
Q: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_div_basecase(
Q: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_div_newton(
Q: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_div_newton(
Q: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_div(
Q: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_div_generic(
Q: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_div(
Q: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_rem(
R: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_rem(
R: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_div_newton_n_preinv(
Q: gr_ptr,
A: gr_srcptr,
lenA: slong,
UNUSED_B: gr_srcptr,
lenB: slong,
Binv: gr_srcptr,
lenBinv: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_div_newton_n_preinv(
Q: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
Binv: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_divrem_newton_n_preinv(
Q: gr_ptr,
R: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
Binv: gr_srcptr,
lenBinv: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_divrem_newton_n_preinv(
Q: *mut gr_poly_struct,
R: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
Binv: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_inv_series_newton(
Qinv: gr_ptr,
Q: gr_srcptr,
Qlen: slong,
len: slong,
cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_inv_series_newton(
Qinv: *mut gr_poly_struct,
Q: *const gr_poly_struct,
len: slong,
cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_inv_series_basecase_preinv1(
res: gr_ptr,
A: gr_srcptr,
Alen: slong,
Ainv: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_inv_series_basecase_generic(
Qinv: gr_ptr,
Q: gr_srcptr,
Qlen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_inv_series_basecase(
Qinv: *mut gr_poly_struct,
Q: *const gr_poly_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_inv_series_basecase(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_inv_series(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_inv_series_generic(
Qinv: gr_ptr,
Q: gr_srcptr,
Qlen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_inv_series(
Qinv: *mut gr_poly_struct,
Q: *const gr_poly_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_div_series_newton(
res: gr_ptr,
A: gr_srcptr,
Alen: slong,
B: gr_srcptr,
Blen: slong,
len: slong,
cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_div_series_newton(
Q: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
len: slong,
cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_div_series_divconquer(
res: gr_ptr,
A: gr_srcptr,
Alen: slong,
B: gr_srcptr,
Blen: slong,
len: slong,
cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_div_series_divconquer(
Q: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
len: slong,
cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_div_series_basecase_generic(
Q: gr_ptr,
A: gr_srcptr,
Alen: slong,
B: gr_srcptr,
Blen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_div_series_basecase(
Q: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_div_series_basecase_preinv1(
Q: gr_ptr,
A: gr_srcptr,
Alen: slong,
B: gr_srcptr,
Blen: slong,
Binv: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_div_series_basecase_noinv(
Q: gr_ptr,
A: gr_srcptr,
Alen: slong,
B: gr_srcptr,
Blen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_div_series_invmul(
Q: gr_ptr,
A: gr_srcptr,
Alen: slong,
B: gr_srcptr,
Blen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_div_series_invmul(
Q: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_div_series_basecase(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
g: gr_srcptr,
glen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_div_series(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
g: gr_srcptr,
glen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_div_series_generic(
Q: gr_ptr,
A: gr_srcptr,
Alen: slong,
B: gr_srcptr,
Blen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_div_series(
Q: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_divexact_basecase_bidirectional(
Q: gr_ptr,
A: gr_srcptr,
Alen: slong,
B: gr_srcptr,
Blen: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_divexact_basecase_bidirectional(
Q: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_divexact_bidirectional(
Q: gr_ptr,
A: gr_srcptr,
Alen: slong,
B: gr_srcptr,
Blen: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_divexact_bidirectional(
Q: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_divexact_basecase_noinv(
Q: gr_ptr,
A: gr_srcptr,
Alen: slong,
B: gr_srcptr,
Blen: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_divexact_basecase(
Q: gr_ptr,
A: gr_srcptr,
Alen: slong,
B: gr_srcptr,
Blen: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_divexact_basecase(
Q: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_divexact(
Q: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_divexact_generic(
Q: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_divexact(
Q: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_divexact_series_basecase_noinv(
Q: gr_ptr,
A: gr_srcptr,
Alen: slong,
B: gr_srcptr,
Blen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_divexact_series_basecase(
Q: gr_ptr,
A: gr_srcptr,
Alen: slong,
B: gr_srcptr,
Blen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_divexact_series_basecase(
Q: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_sqrt_series_newton(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
len: slong,
cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_sqrt_series_newton(
res: *mut gr_poly_struct,
f: *const gr_poly_struct,
len: slong,
cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_sqrt_series_basecase(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_sqrt_series_basecase(
res: *mut gr_poly_struct,
f: *const gr_poly_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_sqrt_series_miller(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_sqrt_series_miller(
res: *mut gr_poly_struct,
f: *const gr_poly_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_sqrt_series(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_sqrt_series_generic(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_sqrt_series(
res: *mut gr_poly_struct,
f: *const gr_poly_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_rsqrt_series_newton(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
len: slong,
cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_rsqrt_series_newton(
res: *mut gr_poly_struct,
f: *const gr_poly_struct,
len: slong,
cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_rsqrt_series_basecase(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_rsqrt_series_basecase(
res: *mut gr_poly_struct,
f: *const gr_poly_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_rsqrt_series_miller(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_rsqrt_series_miller(
res: *mut gr_poly_struct,
f: *const gr_poly_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_rsqrt_series(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_rsqrt_series_generic(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_rsqrt_series(
res: *mut gr_poly_struct,
f: *const gr_poly_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_evaluate_rectangular(
res: gr_ptr,
poly: gr_srcptr,
len: slong,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_evaluate_rectangular(
res: gr_ptr,
poly: *const gr_poly_struct,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_evaluate_modular(
res: gr_ptr,
poly: gr_srcptr,
len: slong,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_evaluate_modular(
res: gr_ptr,
poly: *const gr_poly_struct,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_evaluate_horner(
res: gr_ptr,
poly: gr_srcptr,
len: slong,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_evaluate_horner(
res: gr_ptr,
poly: *const gr_poly_struct,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_evaluate(
res: gr_ptr,
poly: gr_srcptr,
len: slong,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_evaluate(
res: gr_ptr,
poly: *const gr_poly_struct,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_evaluate_other_horner(
res: gr_ptr,
f: gr_srcptr,
len: slong,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_evaluate_other_horner(
res: gr_ptr,
f: *const gr_poly_struct,
a: gr_srcptr,
a_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_evaluate_other_rectangular(
res: gr_ptr,
f: gr_srcptr,
len: slong,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_evaluate_other_rectangular(
res: gr_ptr,
f: *const gr_poly_struct,
a: gr_srcptr,
a_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_evaluate_other(
res: gr_ptr,
f: gr_srcptr,
len: slong,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_evaluate_other(
res: gr_ptr,
f: *const gr_poly_struct,
a: gr_srcptr,
a_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_taylor_shift_horner(
res: gr_ptr,
poly: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_taylor_shift_horner(
res: *mut gr_poly_struct,
f: *const gr_poly_struct,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_taylor_shift_divconquer(
res: gr_ptr,
poly: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_taylor_shift_divconquer(
res: *mut gr_poly_struct,
f: *const gr_poly_struct,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_taylor_shift_convolution(
res: gr_ptr,
poly: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_taylor_shift_convolution(
res: *mut gr_poly_struct,
f: *const gr_poly_struct,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_taylor_shift_generic(
res: gr_ptr,
poly: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_taylor_shift(
res: gr_ptr,
f: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_taylor_shift(
res: *mut gr_poly_struct,
f: *const gr_poly_struct,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_compose_horner(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_compose_horner(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_compose_divconquer(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_compose_divconquer(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_compose(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_compose(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_compose_series_horner(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_compose_series_horner(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_compose_series_brent_kung(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_compose_series_brent_kung(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_compose_series_divconquer(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_compose_series_divconquer(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_compose_series_kinoshita_li(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_compose_series_kinoshita_li(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_compose_series(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_compose_series(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_revert_series_lagrange(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_revert_series_lagrange(
res: *mut gr_poly_struct,
f: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_revert_series_lagrange_fast(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_revert_series_lagrange_fast(
res: *mut gr_poly_struct,
f: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_revert_series_newton(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_revert_series_newton(
res: *mut gr_poly_struct,
f: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_revert_series(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_revert_series(
res: *mut gr_poly_struct,
f: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_derivative(
res: gr_ptr,
poly: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_derivative(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_nth_derivative(
res: gr_ptr,
poly: gr_srcptr,
n: ulong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_nth_derivative(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
n: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_integral(
res: gr_ptr,
poly: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_integral(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_make_monic(
res: gr_ptr,
poly: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_make_monic(
res: *mut gr_poly_struct,
src: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_is_monic(
poly: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_poly_is_monic(
res: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn _gr_poly_canonical_associate(
res: gr_ptr,
u: gr_ptr,
poly: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_canonical_associate(
res: *mut gr_poly_struct,
u: *mut gr_poly_struct,
poly: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_hgcd(
r: gr_ptr,
sgn: *mut slong,
M: *mut gr_ptr,
lenM: *mut slong,
A: gr_ptr,
lenA: *mut slong,
B: gr_ptr,
lenB: *mut slong,
a: gr_srcptr,
lena: slong,
b: gr_srcptr,
lenb: slong,
cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_gcd_hgcd(
G: gr_ptr,
_lenG: *mut slong,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
inner_cutoff: slong,
cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_gcd_hgcd(
G: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
inner_cutoff: slong,
cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_gcd_euclidean(
G: gr_ptr,
lenG: *mut slong,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_gcd_euclidean(
G: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_gcd_subresultant(
G: gr_ptr,
lenG: *mut slong,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_gcd_subresultant(
G: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_gcd_generic(
G: gr_ptr,
lenG: *mut slong,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_gcd(
G: gr_ptr,
lenG: *mut slong,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_gcd(
G: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_gcd_wrapper(
gcd_impl: gr_method_poly_gcd_op,
canonicalise_unit: ::std::os::raw::c_int,
G: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_xgcd_euclidean(
lenG: *mut slong,
G: gr_ptr,
S: gr_ptr,
T: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_xgcd_euclidean(
G: *mut gr_poly_struct,
S: *mut gr_poly_struct,
T: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_xgcd_hgcd(
Glen: *mut slong,
G: gr_ptr,
S: gr_ptr,
T: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
hgcd_cutoff: slong,
cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_xgcd_hgcd(
G: *mut gr_poly_struct,
S: *mut gr_poly_struct,
T: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
hgcd_cutoff: slong,
cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_xgcd_subresultant(
lenG: *mut slong,
G: gr_ptr,
S: gr_ptr,
T: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_xgcd_subresultant(
G: *mut gr_poly_struct,
S: *mut gr_poly_struct,
T: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_xgcd(
Glen: *mut slong,
G: gr_ptr,
S: gr_ptr,
T: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_xgcd_generic(
Glen: *mut slong,
G: gr_ptr,
S: gr_ptr,
T: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_xgcd_wrapper(
_xgcd_op: gr_method_poly_xgcd_op,
G: *mut gr_poly_struct,
S: *mut gr_poly_struct,
T: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_xgcd(
G: *mut gr_poly_struct,
S: *mut gr_poly_struct,
T: *mut gr_poly_struct,
A: *const gr_poly_struct,
B: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_resultant_euclidean(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_resultant_euclidean(
r: gr_ptr,
f: *const gr_poly_struct,
g: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_resultant_hgcd(
res: gr_ptr,
A: gr_srcptr,
lenA: slong,
B: gr_srcptr,
lenB: slong,
inner_cutoff: slong,
cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_resultant_hgcd(
r: gr_ptr,
f: *const gr_poly_struct,
g: *const gr_poly_struct,
inner_cutoff: slong,
cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_resultant_sylvester(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_resultant_sylvester(
r: gr_ptr,
f: *const gr_poly_struct,
g: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_resultant_subresultant(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_resultant_subresultant(
r: gr_ptr,
f: *const gr_poly_struct,
g: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_resultant_small(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_resultant_small(
r: gr_ptr,
f: *const gr_poly_struct,
g: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_resultant(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_resultant(
r: gr_ptr,
f: *const gr_poly_struct,
g: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_newton_basis_evaluate(
res: gr_ptr,
basis: gr_srcptr,
poly: gr_srcptr,
len: slong,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_newton_basis_evaluate(
res: gr_ptr,
basis: *const gr_vec_struct,
poly: *const gr_poly_struct,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_newton_basis_interpolate_exact(
res: gr_ptr,
basis: gr_srcptr,
ys: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_newton_basis_interpolate_exact(
res: *mut gr_poly_struct,
basis: *const gr_vec_struct,
ys: *const gr_vec_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_newton_basis_interpolate(
res: gr_ptr,
basis: gr_srcptr,
ys: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_newton_basis_interpolate(
res: *mut gr_poly_struct,
basis: *const gr_vec_struct,
ys: *const gr_vec_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_newton_basis_to_monomial(
res: gr_ptr,
basis: gr_srcptr,
poly: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_newton_basis_to_monomial(
res: *mut gr_poly_struct,
basis: *const gr_vec_struct,
poly: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_newton_basis_from_monomial(
res: gr_ptr,
basis: gr_srcptr,
poly: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_newton_basis_from_monomial(
res: *mut gr_poly_struct,
basis: *const gr_vec_struct,
poly: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_tree_alloc(len: slong, ctx: *mut gr_ctx_struct) -> *mut gr_ptr;
pub fn _gr_poly_tree_free(tree: *mut gr_ptr, len: slong, ctx: *mut gr_ctx_struct);
pub fn _gr_poly_tree_build(
tree: *mut gr_ptr,
roots: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_product_roots(
poly: gr_ptr,
xs: gr_srcptr,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_product_roots(
poly: *mut gr_poly_struct,
xs: *const gr_vec_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_evaluate_vec_fast_precomp(
vs: gr_ptr,
poly: gr_srcptr,
plen: slong,
tree: *const gr_ptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_evaluate_vec_fast(
ys: gr_ptr,
poly: gr_srcptr,
plen: slong,
xs: gr_srcptr,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_evaluate_vec_fast(
ys: *mut gr_vec_struct,
poly: *const gr_poly_struct,
xs: *const gr_vec_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_evaluate_vec_iter(
ys: gr_ptr,
poly: gr_srcptr,
plen: slong,
xs: gr_srcptr,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_evaluate_vec_iter(
ys: *mut gr_vec_struct,
poly: *const gr_poly_struct,
xs: *const gr_vec_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_interpolate_exact_newton(
res: gr_ptr,
xs: gr_srcptr,
ys: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_interpolate_exact_newton(
poly: *mut gr_poly_struct,
xs: *const gr_vec_struct,
ys: *const gr_vec_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_interpolate_newton(
res: gr_ptr,
xs: gr_srcptr,
ys: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_interpolate_newton(
poly: *mut gr_poly_struct,
xs: *const gr_vec_struct,
ys: *const gr_vec_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_interpolation_weights(
w: gr_ptr,
tree: *const gr_ptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_interpolate_fast_precomp(
poly: gr_ptr,
ys: gr_srcptr,
tree: *const gr_ptr,
weights: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_interpolate_fast(
res: gr_ptr,
xs: gr_srcptr,
ys: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_interpolate_fast(
poly: *mut gr_poly_struct,
xs: *const gr_vec_struct,
ys: *const gr_vec_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_interpolate_exact(
res: gr_ptr,
xs: gr_srcptr,
ys: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_interpolate_exact(
poly: *mut gr_poly_struct,
xs: *const gr_vec_struct,
ys: *const gr_vec_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_interpolate(
res: gr_ptr,
xs: gr_srcptr,
ys: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_interpolate(
poly: *mut gr_poly_struct,
xs: *const gr_vec_struct,
ys: *const gr_vec_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_factor_squarefree(
c: gr_ptr,
fac: *mut gr_poly_vec_struct,
exp: *mut fmpz_vec_struct,
F: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_squarefree_part(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_leading_taylor_shift(
shift: gr_ptr,
p: *const gr_poly_struct,
q: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_shift_equivalent(
shift: *mut fmpz,
p: *const gr_poly_struct,
q: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_poly_dispersion_resultant(
disp: *mut fmpz,
disp_set: *mut gr_vec_struct,
f: *const gr_poly_struct,
g: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_dispersion_from_factors(
disp: *mut fmpz,
disp_set: *mut gr_vec_struct,
ffac: *const gr_poly_vec_struct,
gfac: *const gr_poly_vec_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_dispersion_factor(
disp: *mut fmpz,
disp_set: *mut gr_vec_struct,
f: *const gr_poly_struct,
g: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_dispersion(
disp: *mut fmpz,
disp_set: *mut gr_vec_struct,
f: *const gr_poly_struct,
g: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_shiftless_decomposition_from_factors(
slfac: *mut gr_poly_vec_struct,
slshifts: *mut gr_vec_struct,
slmult: *mut gr_vec_struct,
fac: *const gr_poly_vec_struct,
mult: *const fmpz_vec_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_shiftless_decomposition_from_factors(
slfac: *mut gr_poly_vec_struct,
slshifts: *mut gr_vec_struct,
slmult: *mut gr_vec_struct,
fac: *const gr_poly_vec_struct,
mult: *const fmpz_vec_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_shiftless_decomposition_factor(
c: gr_ptr,
slfac: *mut gr_poly_vec_struct,
slshifts: *mut gr_vec_struct,
slmult: *mut gr_vec_struct,
pol: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_shiftless_decomposition(
c: gr_ptr,
slfac: *mut gr_poly_vec_struct,
slshifts: *mut gr_vec_struct,
slmult: *mut gr_vec_struct,
pol: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_refine_roots_aberth(
w: gr_ptr,
f: gr_srcptr,
f_prime: gr_srcptr,
deg: slong,
z: gr_srcptr,
progressive: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_refine_roots_wdk(
w: gr_ptr,
f: gr_srcptr,
deg: slong,
z: gr_srcptr,
progressive: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_roots(
roots: *mut gr_vec_struct,
mult: *mut fmpz_vec_struct,
poly: *const gr_poly_struct,
flags: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_roots_other(
roots: *mut gr_vec_struct,
mult: *mut fmpz_vec_struct,
poly: *const gr_poly_struct,
poly_ctx: *mut gr_ctx_struct,
flags: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_asin_series(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_asin_series(
res: *mut gr_poly_struct,
f: *const gr_poly_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_asinh_series(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_asinh_series(
res: *mut gr_poly_struct,
f: *const gr_poly_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_acos_series(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_acos_series(
res: *mut gr_poly_struct,
f: *const gr_poly_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_acosh_series(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_acosh_series(
res: *mut gr_poly_struct,
f: *const gr_poly_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_atan_series(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_atan_series(
res: *mut gr_poly_struct,
f: *const gr_poly_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_atanh_series(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_atanh_series(
res: *mut gr_poly_struct,
f: *const gr_poly_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_log_series(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_log_series(
res: *mut gr_poly_struct,
f: *const gr_poly_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_log1p_series(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_log1p_series(
res: *mut gr_poly_struct,
f: *const gr_poly_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_exp_series_basecase(
f: gr_ptr,
h: gr_srcptr,
hlen: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_exp_series_basecase(
f: *mut gr_poly_struct,
h: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_exp_series_basecase_mul(
f: gr_ptr,
h: gr_srcptr,
hlen: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_exp_series_basecase_mul(
f: *mut gr_poly_struct,
h: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_exp_series_newton(
f: gr_ptr,
g: gr_ptr,
h: gr_srcptr,
hlen: slong,
n: slong,
cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_exp_series_newton(
f: *mut gr_poly_struct,
h: *const gr_poly_struct,
n: slong,
cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_exp_series(
res: gr_ptr,
f: gr_srcptr,
flen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_exp_series_generic(
f: gr_ptr,
h: gr_srcptr,
hlen: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_exp_series(
f: *mut gr_poly_struct,
h: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_sin_cos_series_basecase(
s: gr_ptr,
c: gr_ptr,
h: gr_srcptr,
hlen: slong,
n: slong,
times_pi: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_sin_cos_series_basecase(
s: *mut gr_poly_struct,
c: *mut gr_poly_struct,
h: *const gr_poly_struct,
n: slong,
times_pi: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_sin_cos_series_tangent(
s: gr_ptr,
c: gr_ptr,
h: gr_srcptr,
hlen: slong,
n: slong,
times_pi: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_sin_cos_series_tangent(
s: *mut gr_poly_struct,
c: *mut gr_poly_struct,
h: *const gr_poly_struct,
n: slong,
times_pi: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_sin_cos_series_newton(
s: gr_ptr,
c: gr_ptr,
h: gr_srcptr,
hlen: slong,
n: slong,
cutoff: slong,
times_pi: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_sin_cos_series_newton(
s: *mut gr_poly_struct,
c: *mut gr_poly_struct,
h: *const gr_poly_struct,
n: slong,
cutoff: slong,
times_pi: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_sin_cos_series(
s: gr_ptr,
c: gr_ptr,
h: gr_srcptr,
hlen: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_sin_cos_pi_series(
s: gr_ptr,
c: gr_ptr,
h: gr_srcptr,
hlen: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_sin_series(
s: gr_ptr,
h: gr_srcptr,
hlen: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_sin_pi_series(
s: gr_ptr,
h: gr_srcptr,
hlen: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_cos_series(
c: gr_ptr,
h: gr_srcptr,
hlen: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_cos_pi_series(
c: gr_ptr,
h: gr_srcptr,
hlen: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_sin_cos_series(
s: *mut gr_poly_struct,
c: *mut gr_poly_struct,
h: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_sin_cos_pi_series(
s: *mut gr_poly_struct,
c: *mut gr_poly_struct,
h: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_sin_series(
s: *mut gr_poly_struct,
h: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_sin_pi_series(
s: *mut gr_poly_struct,
h: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_cos_series(
c: *mut gr_poly_struct,
h: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_cos_pi_series(
c: *mut gr_poly_struct,
h: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_tan_series_basecase(
f: gr_ptr,
h: gr_srcptr,
hlen: slong,
n: slong,
func: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_tan_series_basecase(
f: *mut gr_poly_struct,
h: *const gr_poly_struct,
n: slong,
func: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_tan_series_newton(
f: gr_ptr,
h: gr_srcptr,
hlen: slong,
n: slong,
cutoff: slong,
func: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_tan_series_newton(
f: *mut gr_poly_struct,
h: *const gr_poly_struct,
n: slong,
cutoff: slong,
func: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_tan_series_sine_cosine(
f: gr_ptr,
h: gr_srcptr,
hlen: slong,
n: slong,
func: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_tan_series_sine_cosine(
res: *mut gr_poly_struct,
h: *const gr_poly_struct,
len: slong,
func: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_tan_series_exponential(
f: gr_ptr,
h: gr_srcptr,
hlen: slong,
n: slong,
func: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_tan_series_exponential(
res: *mut gr_poly_struct,
h: *const gr_poly_struct,
len: slong,
func: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_tan_series(
f: gr_ptr,
h: gr_srcptr,
hlen: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_tanh_series(
f: gr_ptr,
h: gr_srcptr,
hlen: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_cot_series(
f: gr_ptr,
h: gr_srcptr,
hlen: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_coth_series(
f: gr_ptr,
h: gr_srcptr,
hlen: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_tan_pi_series(
f: gr_ptr,
h: gr_srcptr,
hlen: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_cot_pi_series(
f: gr_ptr,
h: gr_srcptr,
hlen: slong,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_tan_series(
f: *mut gr_poly_struct,
h: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_tanh_series(
f: *mut gr_poly_struct,
h: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_cot_series(
f: *mut gr_poly_struct,
h: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_coth_series(
f: *mut gr_poly_struct,
h: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_tan_pi_series(
f: *mut gr_poly_struct,
h: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_cot_pi_series(
f: *mut gr_poly_struct,
h: *const gr_poly_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_bessel_j_series(
res: gr_ptr,
nu: gr_srcptr,
z: gr_srcptr,
zlen: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_bessel_j_series(
res: *mut gr_poly_struct,
nu: gr_srcptr,
z: *const gr_poly_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_mulmod(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
f: gr_srcptr,
lenf: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_mulmod(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
f: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_mulmod_preinv(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
f: gr_srcptr,
lenf: slong,
finv: gr_srcptr,
lenfinv: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_mulmod_preinv(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
f: *const gr_poly_struct,
finv: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_powmod_fmpz_binexp(
res: gr_ptr,
poly: gr_srcptr,
e: *const fmpz,
f: gr_srcptr,
lenf: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_powmod_fmpz_binexp(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
e: *const fmpz,
f: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_powmod_fmpz_binexp_preinv(
res: gr_ptr,
poly: gr_srcptr,
e: *const fmpz,
f: gr_srcptr,
lenf: slong,
finv: gr_srcptr,
lenfinv: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_powmod_fmpz_binexp_preinv(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
e: *const fmpz,
f: *const gr_poly_struct,
finv: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_powmod_x_fmpz_preinv(
res: gr_ptr,
e: *const fmpz,
f: gr_srcptr,
lenf: slong,
finv: gr_srcptr,
lenfinv: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_powmod_x_fmpz_preinv(
res: *mut gr_poly_struct,
e: *const fmpz,
f: *const gr_poly_struct,
finv: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_powmod_ui_binexp(
res: gr_ptr,
poly: gr_srcptr,
e: ulong,
f: gr_srcptr,
lenf: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_powmod_ui_binexp(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
e: ulong,
f: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_powmod_ui_binexp_preinv(
res: gr_ptr,
poly: gr_srcptr,
e: ulong,
f: gr_srcptr,
lenf: slong,
finv: gr_srcptr,
lenfinv: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_powmod_ui_binexp_preinv(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
e: ulong,
f: *const gr_poly_struct,
finv: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_powmod_fmpz_sliding_preinv(
res: gr_ptr,
poly: gr_srcptr,
e: *const fmpz,
k: ulong,
f: gr_srcptr,
lenf: slong,
finv: gr_srcptr,
lenfinv: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_powmod_fmpz_sliding_preinv(
res: *mut gr_poly_struct,
poly: *const gr_poly_struct,
e: *const fmpz,
k: ulong,
f: *const gr_poly_struct,
finv: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_compose_mod_wrapper(
_compose_mod: _gr_method_compose_mod_op,
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
poly3: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_compose_mod_preinv_wrapper(
_compose_mod: _gr_method_compose_mod_preinv_op,
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
poly3: *const gr_poly_struct,
poly3inv: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_compose_mod_horner(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
poly3: gr_srcptr,
len3: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_compose_mod_horner(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
poly3: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_compose_mod_brent_kung(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
poly3: gr_srcptr,
len3: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_compose_mod_brent_kung(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
poly3: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_compose_mod(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
poly3: gr_srcptr,
len3: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_compose_mod(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
poly3: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_compose_mod_horner_preinv(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
poly3: gr_srcptr,
len3: slong,
poly3inv: gr_srcptr,
inv3len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_compose_mod_horner_preinv(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
poly3: *const gr_poly_struct,
poly3inv: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_compose_mod_brent_kung_preinv(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
poly3: gr_srcptr,
len3: slong,
poly3inv: gr_srcptr,
inv3len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_compose_mod_brent_kung_preinv(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
poly3: *const gr_poly_struct,
poly3inv: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_compose_mod_preinv(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
poly3: gr_srcptr,
len3: slong,
poly3inv: gr_srcptr,
inv3len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_compose_mod_preinv(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
poly3: *const gr_poly_struct,
poly3inv: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_reduce_matrix_mod_poly(
A: *mut gr_mat_struct,
B: *const gr_mat_struct,
f: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_precompute_matrix(
A: *mut gr_mat_struct,
poly1: gr_srcptr,
poly2: gr_srcptr,
len2: slong,
poly2inv: gr_srcptr,
len2inv: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_precompute_matrix(
A: *mut gr_mat_struct,
poly1: *const gr_poly_struct,
poly2: *const gr_poly_struct,
poly2inv: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_compose_mod_brent_kung_precomp_preinv(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
A: *const gr_mat_struct,
poly3: gr_srcptr,
len3: slong,
poly3inv: gr_srcptr,
len3inv: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_poly_compose_mod_brent_kung_precomp_preinv(
res: *mut gr_poly_struct,
poly1: *const gr_poly_struct,
A: *const gr_mat_struct,
poly3: *const gr_poly_struct,
poly3inv: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_poly_test_mullow(
mullow_impl: gr_method_poly_binary_trunc_op,
mullow_ref: gr_method_poly_binary_trunc_op,
state: *mut flint_rand_struct,
iters: slong,
maxn: slong,
ctx: *mut gr_ctx_struct,
);
pub fn _gr_poly_test_mulmid(
mulmid_impl: gr_method_poly_binary_trunc2_op,
mulmid_ref: gr_method_poly_binary_trunc2_op,
state: *mut flint_rand_struct,
iters: slong,
maxn: slong,
ctx: *mut gr_ctx_struct,
);
pub fn _gr_poly_test_approx_mulmid_pos_entrywise_accurate(
mulmid_impl: gr_method_poly_binary_trunc2_op,
mulmid_ref: gr_method_poly_binary_trunc2_op,
rel_tol: gr_srcptr,
state: *mut flint_rand_struct,
iters: slong,
maxn: slong,
ctx: *mut gr_ctx_struct,
);
pub fn _gr_poly_test_divrem(
divrem_impl: gr_method_poly_binary_binary_op,
state: *mut flint_rand_struct,
iters: slong,
maxn: slong,
ctx: *mut gr_ctx_struct,
);
pub fn _gr_poly_test_div(
div_impl: gr_method_poly_binary_op,
state: *mut flint_rand_struct,
iters: slong,
maxn: slong,
ctx: *mut gr_ctx_struct,
);
pub fn _gr_poly_test_inv_series(
inv_series_impl: gr_method_poly_unary_trunc_op,
state: *mut flint_rand_struct,
iters: slong,
maxn: slong,
ctx: *mut gr_ctx_struct,
);
pub fn _gr_poly_test_div_series(
div_series_impl: gr_method_poly_binary_trunc_op,
state: *mut flint_rand_struct,
iters: slong,
maxn: slong,
ctx: *mut gr_ctx_struct,
);
pub fn _gr_poly_test_gcd_field(
gcd_impl: gr_method_poly_gcd_op,
state: *mut flint_rand_struct,
iters: slong,
maxn: slong,
ctx: *mut gr_ctx_struct,
);
pub fn _gr_poly_test_gcd_ufd(
gcd_impl: gr_method_poly_gcd_op,
state: *mut flint_rand_struct,
iters: slong,
maxn: slong,
ctx: *mut gr_ctx_struct,
);
pub fn _gr_poly_test_xgcd(
xgcd_impl: gr_method_poly_xgcd_op,
state: *mut flint_rand_struct,
iters: slong,
maxn: slong,
flags: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
);
}
/* gr_series.h */
#[repr(C)]
pub struct series_mod_ctx_t {
pub base_ring: *mut gr_ctx_struct,
pub n: slong,
pub var: *mut ::std::os::raw::c_char,
}
impl Default for series_mod_ctx_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 series_ctx_t {
pub base_ring: *mut gr_ctx_struct,
pub prec: slong,
pub var: *mut ::std::os::raw::c_char,
}
impl Default for series_ctx_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 gr_series_struct {
pub poly: gr_poly_struct,
pub error: slong,
}
impl Default for gr_series_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 gr_series_t = [gr_series_struct; 1usize];
#[repr(C)]
pub struct gr_series_vec_struct {
pub entries: *mut gr_series_struct,
pub alloc: slong,
pub length: slong,
}
impl Default for gr_series_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 gr_series_vec_t = [gr_series_vec_struct; 1usize];
unsafe extern "C" {
pub fn gr_series_ctx_init(
ctx: *mut gr_ctx_struct,
base_ring: *mut gr_ctx_struct,
prec: slong,
);
pub fn gr_series_ctx_clear(ctx: *mut gr_ctx_struct);
pub fn gr_series_ctx_write(
out: *mut gr_stream_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_ctx_is_ring(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_series_ctx_is_commutative_ring(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_series_ctx_is_integral_domain(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_series_ctx_is_rational_vector_space(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_series_ctx_is_real_vector_space(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_series_ctx_is_complex_vector_space(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_series_ctx_is_finite_characteristic(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_series_ctx_set_gen_name(
ctx: *mut gr_ctx_struct,
s: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn gr_series_ctx_set_gen_names(
ctx: *mut gr_ctx_struct,
s: *mut *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn gr_series_init(res: *mut gr_series_struct, ctx: *mut gr_ctx_struct);
pub fn gr_series_clear(res: *mut gr_series_struct, ctx: *mut gr_ctx_struct);
pub fn gr_series_swap(
x: *mut gr_series_struct,
y: *mut gr_series_struct,
ctx: *mut gr_ctx_struct,
);
pub fn gr_series_set_shallow(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
);
pub fn _gr_series_get_error(
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> slong;
pub fn _gr_series_is_exact(
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn _gr_series_set_error(
x: *mut gr_series_struct,
err: slong,
ctx: *mut gr_ctx_struct,
);
pub fn _gr_series_make_exact(x: *mut gr_series_struct, ctx: *mut gr_ctx_struct);
pub fn gr_series_randtest(
res: *mut gr_series_struct,
state: *mut flint_rand_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_write(
out: *mut gr_stream_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_zero(
res: *mut gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_one(
res: *mut gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_set(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_gen(
res: *mut gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_gens_recursive(
vec: *mut gr_vec_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_big_o(
res: *mut gr_series_struct,
base: *const gr_series_struct,
exp: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_neg(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_set_gr_poly(
res: *mut gr_series_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_set_scalar(
res: *mut gr_series_struct,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_set_si(
res: *mut gr_series_struct,
c: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_set_ui(
res: *mut gr_series_struct,
c: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_set_fmpz(
res: *mut gr_series_struct,
c: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_set_fmpq(
res: *mut gr_series_struct,
c: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_set_other(
res: *mut gr_series_struct,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_is_zero(
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_series_is_one(
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_series_coeff_is_zero(
x: *const gr_series_struct,
i: slong,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_series_equal(
x: *const gr_series_struct,
y: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_series_add(
res: *mut gr_series_struct,
x: *const gr_series_struct,
y: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_sub(
res: *mut gr_series_struct,
x: *const gr_series_struct,
y: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mul(
res: *mut gr_series_struct,
x: *const gr_series_struct,
y: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_inv(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_div(
res: *mut gr_series_struct,
x: *const gr_series_struct,
y: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_divexact(
res: *mut gr_series_struct,
x: *const gr_series_struct,
y: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_sqrt(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_rsqrt(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_exp(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_log(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_sin(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_cos(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_sin_pi(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_cos_pi(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_sin_cos(
res1: *mut gr_series_struct,
res2: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_sin_cos_pi(
res1: *mut gr_series_struct,
res2: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_tan(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_tanh(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_cot(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_coth(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_tan_pi(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_cot_pi(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_asin(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_acos(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_atan(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_asinh(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_acosh(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_atanh(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_gamma(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_rgamma(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_lgamma(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_digamma(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_erf(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_erfc(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_erfi(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_exp_integral_ei(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_cos_integral(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_cosh_integral(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_sin_integral(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_sinh_integral(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_bessel_j(
res: *mut gr_series_struct,
nu: gr_srcptr,
z: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_fresnel(
res1: *mut gr_series_struct,
res2: *mut gr_series_struct,
x: *const gr_series_struct,
normalized: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_fresnel_s(
res: *mut gr_series_struct,
x: *const gr_series_struct,
normalized: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_fresnel_c(
res: *mut gr_series_struct,
x: *const gr_series_struct,
normalized: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_airy(
res1: *mut gr_series_struct,
res2: *mut gr_series_struct,
res3: *mut gr_series_struct,
res4: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_airy_ai(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_airy_ai_prime(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_airy_bi(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_airy_bi_prime(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_log_integral(
res: *mut gr_series_struct,
x: *const gr_series_struct,
offset: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_gamma_upper(
res: *mut gr_series_struct,
s: *const gr_series_struct,
x: *const gr_series_struct,
regularized: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_gamma_lower(
res: *mut gr_series_struct,
s: *const gr_series_struct,
x: *const gr_series_struct,
regularized: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_beta_lower(
res: *mut gr_series_struct,
a: *const gr_series_struct,
b: *const gr_series_struct,
x: *const gr_series_struct,
regularized: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_polylog(
res: *mut gr_series_struct,
s: *const gr_series_struct,
z: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_hurwitz_zeta(
res: *mut gr_series_struct,
s: *const gr_series_struct,
z: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_dirichlet_l(
res: *mut gr_series_struct,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_dirichlet_hardy_theta(
res: *mut gr_series_struct,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_dirichlet_hardy_z(
res: *mut gr_series_struct,
G: *const dirichlet_group_struct,
chi: *const dirichlet_char_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_jacobi_theta(
res1: *mut gr_series_struct,
res2: *mut gr_series_struct,
res3: *mut gr_series_struct,
res4: *mut gr_series_struct,
x: *const gr_series_struct,
tau: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_jacobi_theta_1(
res: *mut gr_series_struct,
x: *const gr_series_struct,
tau: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_jacobi_theta_2(
res: *mut gr_series_struct,
x: *const gr_series_struct,
tau: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_jacobi_theta_3(
res: *mut gr_series_struct,
x: *const gr_series_struct,
tau: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_jacobi_theta_4(
res: *mut gr_series_struct,
x: *const gr_series_struct,
tau: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_agm1(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_elliptic_k(
res: *mut gr_series_struct,
x: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_weierstrass_p(
res: *mut gr_series_struct,
x: *const gr_series_struct,
tau: *const gr_series_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_hypgeom_pfq(
res: *mut gr_series_struct,
a: *const gr_series_vec_struct,
b: *const gr_series_vec_struct,
x: *const gr_series_struct,
regularized: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_ctx_init(
ctx: *mut gr_ctx_struct,
base_ring: *mut gr_ctx_struct,
n: slong,
);
pub fn gr_series_mod_ctx_clear(ctx: *mut gr_ctx_struct);
pub fn gr_series_mod_ctx_write(
out: *mut gr_stream_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_ctx_is_ring(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_series_mod_ctx_is_commutative_ring(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_series_mod_ctx_is_integral_domain(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_series_mod_ctx_is_rational_vector_space(
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_series_mod_ctx_is_real_vector_space(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_series_mod_ctx_is_complex_vector_space(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_series_mod_ctx_is_field(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn gr_series_mod_ctx_is_finite_characteristic(
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_series_mod_ctx_set_gen_name(
ctx: *mut gr_ctx_struct,
s: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_ctx_set_gen_names(
ctx: *mut gr_ctx_struct,
s: *mut *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_gens_recursive(
vec: *mut gr_vec_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_big_o(
res: *mut gr_poly_struct,
base: *const gr_poly_struct,
exp: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_init(res: *mut gr_poly_struct, ctx: *mut gr_ctx_struct);
pub fn gr_series_mod_clear(res: *mut gr_poly_struct, ctx: *mut gr_ctx_struct);
pub fn gr_series_mod_swap(
x: *mut gr_poly_struct,
y: *mut gr_poly_struct,
ctx: *mut gr_ctx_struct,
);
pub fn gr_series_mod_randtest(
res: *mut gr_poly_struct,
state: *mut flint_rand_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_write(
out: *mut gr_stream_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_zero(
res: *mut gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_one(
res: *mut gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_gen(
res: *mut gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_set(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_set_other(
res: *mut gr_poly_struct,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_set_shallow(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
);
pub fn gr_series_mod_set_si(
res: *mut gr_poly_struct,
c: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_set_ui(
res: *mut gr_poly_struct,
c: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_set_fmpz(
res: *mut gr_poly_struct,
c: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_set_fmpq(
res: *mut gr_poly_struct,
c: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_is_zero(
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_series_mod_is_one(
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_series_mod_equal(
x: *const gr_poly_struct,
y: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_series_mod_neg(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_add(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
y: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_sub(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
y: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_mul(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
y: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_inv(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_div(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
y: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_exp(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_log(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_sqrt(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_rsqrt(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_sin(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_cos(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_sin_pi(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_cos_pi(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_sin_cos(
res1: *mut gr_poly_struct,
res2: *mut gr_poly_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_sin_cos_pi(
res1: *mut gr_poly_struct,
res2: *mut gr_poly_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_tan(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_tanh(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_cot(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_coth(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_tan_pi(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_cot_pi(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_asin(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_acos(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_atan(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_asinh(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_acosh(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_series_mod_atanh(
res: *mut gr_poly_struct,
x: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
}
/* gr_special.h */
pub type gr_method_pfq_op_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: *const gr_vec_struct,
arg3: *const gr_vec_struct,
arg4: gr_srcptr,
arg5: ::std::os::raw::c_int,
arg6: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
unsafe extern "C" {
pub fn gr_pi(res: gr_ptr, ctx: *mut gr_ctx_struct) -> ::std::os::raw::c_int;
pub fn gr_euler(res: gr_ptr, ctx: *mut gr_ctx_struct) -> ::std::os::raw::c_int;
pub fn gr_catalan(res: gr_ptr, ctx: *mut gr_ctx_struct) -> ::std::os::raw::c_int;
pub fn gr_khinchin(res: gr_ptr, ctx: *mut gr_ctx_struct) -> ::std::os::raw::c_int;
pub fn gr_glaisher(res: gr_ptr, ctx: *mut gr_ctx_struct) -> ::std::os::raw::c_int;
pub fn gr_exp(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_expm1(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_exp2(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_exp10(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_exp_pi_i(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_log(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_log1p(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_log_pi_i(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_log2(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_log10(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_sin(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_cos(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_sin_cos(
res1: gr_ptr,
res2: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_tan(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_cot(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_sec(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_csc(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_sin_pi(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_cos_pi(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_sin_cos_pi(
res1: gr_ptr,
res2: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_tan_pi(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_cot_pi(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_sec_pi(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_csc_pi(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_sinc(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_sinc_pi(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_sinh(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_cosh(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_sinh_cosh(
res1: gr_ptr,
res2: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_tanh(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_coth(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_sech(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_csch(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_asin(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_acos(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_atan(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_atan2(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_acot(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_asec(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_acsc(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_asin_pi(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_acos_pi(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_atan_pi(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_acot_pi(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_asec_pi(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_acsc_pi(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_asinh(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_acosh(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_atanh(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_acoth(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_asech(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_acsch(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_lambertw(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_lambertw_fmpz(
res: gr_ptr,
x: gr_srcptr,
k: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_fac(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_fac_ui(
res: gr_ptr,
x: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_fac_fmpz(
res: gr_ptr,
x: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_fac_vec(
res: gr_ptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_rfac(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_rfac_ui(
res: gr_ptr,
x: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_rfac_fmpz(
res: gr_ptr,
x: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_rfac_vec(
res: gr_ptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_bin(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_bin_ui(
res: gr_ptr,
x: gr_srcptr,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_bin_uiui(
res: gr_ptr,
x: ulong,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_bin_vec(
res: gr_ptr,
x: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_bin_ui_vec(
res: gr_ptr,
x: ulong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_rising(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_rising_ui(
res: gr_ptr,
x: gr_srcptr,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_falling(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_falling_ui(
res: gr_ptr,
x: gr_srcptr,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_gamma(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_gamma_fmpz(
res: gr_ptr,
x: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_gamma_fmpq(
res: gr_ptr,
x: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_rgamma(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_lgamma(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_digamma(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_beta(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_barnes_g(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_log_barnes_g(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_doublefac(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_doublefac_ui(
res: gr_ptr,
x: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_harmonic(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_harmonic_ui(
res: gr_ptr,
x: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_bernoulli_ui(
res: gr_ptr,
x: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_bernoulli_fmpz(
res: gr_ptr,
x: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_bernoulli_vec(
res: gr_ptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_fib_ui(
res: gr_ptr,
x: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_fib_fmpz(
res: gr_ptr,
x: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_fib_vec(
res: gr_ptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_eulernum_ui(
res: gr_ptr,
x: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_eulernum_fmpz(
res: gr_ptr,
x: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_eulernum_vec(
res: gr_ptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_bernpoly_ui(
res: gr_ptr,
n: ulong,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_eulerpoly_ui(
res: gr_ptr,
n: ulong,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_bellnum_ui(
res: gr_ptr,
x: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_bellnum_fmpz(
res: gr_ptr,
x: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_bellnum_vec(
res: gr_ptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_stirling_s1u_uiui(
res: gr_ptr,
x: ulong,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_stirling_s1_uiui(
res: gr_ptr,
x: ulong,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_stirling_s2_uiui(
res: gr_ptr,
x: ulong,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_stirling_s1u_ui_vec(
res: gr_ptr,
x: ulong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_stirling_s1_ui_vec(
res: gr_ptr,
x: ulong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_stirling_s2_ui_vec(
res: gr_ptr,
x: ulong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_partitions_ui(
res: gr_ptr,
x: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_partitions_fmpz(
res: gr_ptr,
x: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_partitions_vec(
res: gr_ptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_erf(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_erfc(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_erfcx(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_erfi(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_erfinv(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_erfcinv(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_fresnel_s(
res: gr_ptr,
x: gr_srcptr,
normalized: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_fresnel_c(
res: gr_ptr,
x: gr_srcptr,
normalized: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_fresnel(
res1: gr_ptr,
res2: gr_ptr,
x: gr_srcptr,
normalized: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_gamma_upper(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
regularized: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_gamma_lower(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
regularized: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_beta_lower(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
z: gr_srcptr,
regularized: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_exp_integral(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_exp_integral_ei(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_sin_integral(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_cos_integral(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_sinh_integral(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_cosh_integral(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_log_integral(
res: gr_ptr,
x: gr_srcptr,
offset: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_dilog(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_bessel_j(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_bessel_y(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_bessel_i(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_bessel_k(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_bessel_j_y(
res1: gr_ptr,
res2: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_bessel_i_scaled(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_bessel_k_scaled(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_bessel_j_jet(
res: gr_ptr,
nu: gr_srcptr,
z: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_airy(
res1: gr_ptr,
res2: gr_ptr,
res3: gr_ptr,
res4: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_airy_ai(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_airy_bi(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_airy_ai_prime(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_airy_bi_prime(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_airy_ai_zero(
res: gr_ptr,
n: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_airy_bi_zero(
res: gr_ptr,
n: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_airy_ai_prime_zero(
res: gr_ptr,
n: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_airy_bi_prime_zero(
res: gr_ptr,
n: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_coulomb(
res1: gr_ptr,
res2: gr_ptr,
res3: gr_ptr,
res4: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
z: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_coulomb_f(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
z: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_coulomb_g(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
z: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_coulomb_hpos(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
z: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_coulomb_hneg(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
z: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_chebyshev_t_fmpz(
res: gr_ptr,
n: *const fmpz,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_chebyshev_t(
res: gr_ptr,
n: gr_srcptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_chebyshev_u_fmpz(
res: gr_ptr,
n: *const fmpz,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_chebyshev_u(
res: gr_ptr,
n: gr_srcptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_jacobi_p(
res: gr_ptr,
n: gr_srcptr,
a: gr_srcptr,
b: gr_srcptr,
z: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_gegenbauer_c(
res: gr_ptr,
n: gr_srcptr,
m: gr_srcptr,
z: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_laguerre_l(
res: gr_ptr,
n: gr_srcptr,
m: gr_srcptr,
z: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_hermite_h(
res: gr_ptr,
n: gr_srcptr,
z: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_legendre_p(
res: gr_ptr,
n: gr_srcptr,
m: gr_srcptr,
z: gr_srcptr,
type_: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_legendre_q(
res: gr_ptr,
n: gr_srcptr,
m: gr_srcptr,
z: gr_srcptr,
type_: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_spherical_y_si(
res: gr_ptr,
n: slong,
m: slong,
theta: gr_srcptr,
phi: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_legendre_p_root_ui(
root: gr_ptr,
weight: gr_ptr,
n: ulong,
k: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_hypgeom_0f1(
res: gr_ptr,
a: gr_srcptr,
z: gr_srcptr,
flags: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_hypgeom_1f1(
res: gr_ptr,
a: gr_srcptr,
b: gr_srcptr,
z: gr_srcptr,
flags: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_hypgeom_u(
res: gr_ptr,
a: gr_srcptr,
b: gr_srcptr,
z: gr_srcptr,
flags: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_hypgeom_2f1(
res: gr_ptr,
a: gr_srcptr,
b: gr_srcptr,
c: gr_srcptr,
z: gr_srcptr,
flags: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_hypgeom_pfq(
res: gr_ptr,
a: *const gr_vec_struct,
b: *const gr_vec_struct,
z: gr_srcptr,
flags: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_zeta(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_zeta_ui(
res: gr_ptr,
x: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_hurwitz_zeta(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_polylog(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_polygamma(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_lerch_phi(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
z: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_stieltjes(
res: gr_ptr,
x: *const fmpz,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_dirichlet_eta(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_dirichlet_beta(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_riemann_xi(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_zeta_zero(
res: gr_ptr,
n: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_zeta_zero_vec(
res: gr_ptr,
n: *const fmpz,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_zeta_nzeros(
res: gr_ptr,
t: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_jacobi_theta(
res1: gr_ptr,
res2: gr_ptr,
res3: gr_ptr,
res4: gr_ptr,
z: gr_srcptr,
tau: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_jacobi_theta_1(
res: gr_ptr,
z: gr_srcptr,
tau: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_jacobi_theta_2(
res: gr_ptr,
z: gr_srcptr,
tau: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_jacobi_theta_3(
res: gr_ptr,
z: gr_srcptr,
tau: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_jacobi_theta_4(
res: gr_ptr,
z: gr_srcptr,
tau: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_modular_j(
res: gr_ptr,
tau: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_modular_lambda(
res: gr_ptr,
tau: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_modular_delta(
res: gr_ptr,
tau: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_hilbert_class_poly(
res: gr_ptr,
D: slong,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_dedekind_eta(
res: gr_ptr,
tau: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_dedekind_eta_q(
res: gr_ptr,
tau: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_eisenstein_e(
res: gr_ptr,
n: ulong,
tau: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_eisenstein_g(
res: gr_ptr,
n: ulong,
tau: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_eisenstein_g_vec(
res: gr_ptr,
tau: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_agm1(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_agm(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_elliptic_k(
res: gr_ptr,
m: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_elliptic_e(
res: gr_ptr,
m: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_elliptic_pi(
res: gr_ptr,
n: gr_srcptr,
m: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_elliptic_f(
res: gr_ptr,
phi: gr_srcptr,
m: gr_srcptr,
pi: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_elliptic_e_inc(
res: gr_ptr,
phi: gr_srcptr,
m: gr_srcptr,
pi: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_elliptic_pi_inc(
res: gr_ptr,
n: gr_srcptr,
phi: gr_srcptr,
m: gr_srcptr,
pi: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_carlson_rc(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
flags: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_carlson_rf(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
z: gr_srcptr,
flags: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_carlson_rd(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
z: gr_srcptr,
flags: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_carlson_rg(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
z: gr_srcptr,
flags: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_carlson_rj(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
z: gr_srcptr,
w: gr_srcptr,
flags: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_elliptic_invariants(
res1: gr_ptr,
res2: gr_ptr,
tau: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_elliptic_roots(
res1: gr_ptr,
res2: gr_ptr,
res3: gr_ptr,
tau: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_weierstrass_p(
res: gr_ptr,
z: gr_srcptr,
tau: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_weierstrass_p_prime(
res: gr_ptr,
z: gr_srcptr,
tau: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_weierstrass_p_inv(
res: gr_ptr,
z: gr_srcptr,
tau: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_weierstrass_zeta(
res: gr_ptr,
z: gr_srcptr,
tau: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_weierstrass_sigma(
res: gr_ptr,
z: gr_srcptr,
tau: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_exp(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_expm1(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_exp2(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_exp10(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_log(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_log1p(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_log2(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_log10(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_sin(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_cos(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_sin_cos(
res1: gr_ptr,
res2: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_tan(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_tanh(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_asin(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_asinh(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_atan(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_atanh(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_acot(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_asec(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_acsc(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_acoth(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_asech(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_acsch(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_fac(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_fac_fmpz(
res: gr_ptr,
n: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_fac_ui(
res: gr_ptr,
n: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_fac_vec(
res: gr_ptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_rfac(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_rfac_fmpz(
res: gr_ptr,
n: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_rfac_ui(
res: gr_ptr,
n: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_rfac_vec(
res: gr_ptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_rising(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_rising_ui(
res: gr_ptr,
x: gr_srcptr,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_falling(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_falling_ui(
res: gr_ptr,
x: gr_srcptr,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_bin(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_bin_ui(
res: gr_ptr,
x: gr_srcptr,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_bin_uiui(
res: gr_ptr,
x: ulong,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_bin_vec(
res: gr_ptr,
x: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_bin_ui_vec(
res: gr_ptr,
x: ulong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_doublefac(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_doublefac_ui(
res: gr_ptr,
n: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_harmonic(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_harmonic_ui(
res: gr_ptr,
n: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_beta(
res: gr_ptr,
x: gr_srcptr,
y: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_fib2_fmpz(
v: gr_ptr,
u: gr_ptr,
n: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_fib_fmpz(
res: gr_ptr,
n: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_fib_ui(
res: gr_ptr,
n: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_fib_vec(
res: gr_ptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_bellnum_fmpz(
res: gr_ptr,
n: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_bellnum_ui(
res: gr_ptr,
n: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_bellnum_vec(
res: gr_ptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_partitions_fmpz(
res: gr_ptr,
n: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_partitions_ui(
res: gr_ptr,
n: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_partitions_vec(
res: gr_ptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_chebyshev_t2_fmpz(
a: gr_ptr,
b: gr_ptr,
n: *const fmpz,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_chebyshev_t_fmpz(
y: gr_ptr,
n: *const fmpz,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_chebyshev_u2_fmpz(
a: gr_ptr,
b: gr_ptr,
n: *const fmpz,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_chebyshev_u_fmpz(
y: gr_ptr,
n: *const fmpz,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_erfcx(
res: gr_ptr,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_generic_hilbert_class_poly(
res: gr_ptr,
D: slong,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
}
/* gr_types.h */
pub const truth_t_T_TRUE: truth_t = 0;
pub const truth_t_T_FALSE: truth_t = 1;
pub const truth_t_T_UNKNOWN: truth_t = 2;
pub type truth_t = ::std::os::raw::c_uint;
#[repr(C)]
pub struct gr_stream_struct {
pub fp: *mut FLINT_FILE,
pub s: *mut ::std::os::raw::c_char,
pub len: slong,
pub alloc: slong,
}
impl Default for gr_stream_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 gr_stream_t = [gr_stream_struct; 1usize];
pub type gr_funcptr = ::std::option::Option<
unsafe extern "C" fn() -> ::std::os::raw::c_int,
>;
#[repr(C)]
pub struct gr_ctx_struct {
pub data: [::std::os::raw::c_char; 48usize],
pub which_ring: ulong,
pub sizeof_elem: slong,
pub methods: *mut gr_funcptr,
pub size_limit: ulong,
}
impl Default for gr_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 gr_ctx_t = [gr_ctx_struct; 1usize];
pub type gr_ptr = *mut ::std::os::raw::c_void;
pub type gr_srcptr = *const ::std::os::raw::c_void;
pub type gr_ctx_ptr = *mut ::std::os::raw::c_void;
#[repr(C)]
pub struct gr_vec_struct {
pub entries: gr_ptr,
pub alloc: slong,
pub length: slong,
}
impl Default for gr_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 gr_vec_t = [gr_vec_struct; 1usize];
#[repr(C)]
pub struct gr_mat_struct {
pub entries: gr_ptr,
pub r: slong,
pub c: slong,
pub stride: slong,
}
impl Default for gr_mat_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 gr_mat_t = [gr_mat_struct; 1usize];
#[repr(C)]
pub struct gr_poly_struct {
pub coeffs: gr_ptr,
pub alloc: slong,
pub length: slong,
}
impl Default for gr_poly_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 gr_poly_t = [gr_poly_struct; 1usize];
#[repr(C)]
pub struct gr_poly_vec_struct {
pub entries: *mut gr_poly_struct,
pub alloc: slong,
pub length: slong,
}
impl Default for gr_poly_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 gr_poly_vec_t = [gr_poly_vec_struct; 1usize];
/* gr_vec.h */
pub type gr_method_vec_normalise_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut slong,
arg2: gr_srcptr,
arg3: slong,
arg4: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_vec_normalise_weak_op = ::std::option::Option<
unsafe extern "C" fn(arg1: gr_srcptr, arg2: slong, arg3: gr_ctx_ptr) -> slong,
>;
pub type gr_method_vec_reduce_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: slong,
arg4: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_vec_dot_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: ::std::os::raw::c_int,
arg4: gr_srcptr,
arg5: gr_srcptr,
arg6: slong,
arg7: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_vec_dot_strided_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: ::std::os::raw::c_int,
arg4: gr_srcptr,
arg5: slong,
arg6: gr_srcptr,
arg7: slong,
arg8: slong,
arg9: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_vec_dot_si_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: ::std::os::raw::c_int,
arg4: gr_srcptr,
arg5: *const slong,
arg6: slong,
arg7: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_vec_dot_ui_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: ::std::os::raw::c_int,
arg4: gr_srcptr,
arg5: *const ulong,
arg6: slong,
arg7: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
pub type gr_method_vec_dot_fmpz_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: ::std::os::raw::c_int,
arg4: gr_srcptr,
arg5: *const fmpz,
arg6: slong,
arg7: gr_ctx_ptr,
) -> ::std::os::raw::c_int,
>;
unsafe extern "C" {
pub fn gr_vec_init(vec: *mut gr_vec_struct, len: slong, ctx: *mut gr_ctx_struct);
pub fn gr_vec_clear(vec: *mut gr_vec_struct, ctx: *mut gr_ctx_struct);
pub fn _gr_vec_check_resize(
res: *mut gr_vec_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_vec_entry_ptr(
vec: *mut gr_vec_struct,
i: slong,
ctx: *mut gr_ctx_struct,
) -> gr_ptr;
pub fn gr_vec_entry_srcptr(
vec: *const gr_vec_struct,
i: slong,
ctx: *mut gr_ctx_struct,
) -> gr_srcptr;
pub fn gr_vec_length(
vec: *const gr_vec_struct,
UNUSED_ctx: *mut gr_ctx_struct,
) -> slong;
pub fn gr_vec_fit_length(
vec: *mut gr_vec_struct,
len: slong,
ctx: *mut gr_ctx_struct,
);
pub fn gr_vec_set_length(
vec: *mut gr_vec_struct,
len: slong,
ctx: *mut gr_ctx_struct,
);
pub fn gr_vec_set(
res: *mut gr_vec_struct,
src: *const gr_vec_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_vec_set_shallow(
res: *mut gr_vec_struct,
src: *const gr_vec_struct,
ctx: *mut gr_ctx_struct,
);
pub fn gr_vec_append(
vec: *mut gr_vec_struct,
f: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_vec_append_swap(
vec: *mut gr_vec_struct,
f: gr_ptr,
ctx: *mut gr_ctx_struct,
);
pub fn _gr_vec_contains(
vec: gr_srcptr,
len: slong,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn gr_vec_contains(
vec: *const gr_vec_struct,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn _gr_vec_sort(
vec: gr_ptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_vec_sort(
dest: *mut gr_vec_struct,
src: *const gr_vec_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_permute(
vec: gr_ptr,
perm: *mut slong,
len: slong,
ctx: *mut gr_ctx_struct,
);
pub fn gr_vec_permute(
dest: *mut gr_vec_struct,
src: *mut gr_vec_struct,
perm: *mut slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_permute_inv(
vec: gr_ptr,
perm: *mut slong,
len: slong,
ctx: *mut gr_ctx_struct,
);
pub fn gr_vec_permute_inv(
dest: *mut gr_vec_struct,
src: *mut gr_vec_struct,
perm: *mut slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_shuffle(
vec: gr_ptr,
state: *mut flint_rand_struct,
len: slong,
ctx: *mut gr_ctx_struct,
);
pub fn _gr_vec_write(
out: *mut gr_stream_struct,
vec: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_vec_write(
out: *mut gr_stream_struct,
vec: *const gr_vec_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_print(
vec: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_vec_print(
vec: *const gr_vec_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_vec_set_str(
vec: *mut gr_vec_struct,
s: *const ::std::os::raw::c_char,
resize: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn gr_vec_str_count_entries(
count: *mut slong,
s: *const ::std::os::raw::c_char,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_set_str(
res: gr_ptr,
s: *const ::std::os::raw::c_char,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_str_is_space(c: ::std::os::raw::c_char) -> ::std::os::raw::c_int;
pub fn _gr_str_find_sep(
s: *const ::std::os::raw::c_char,
end: *const ::std::os::raw::c_char,
err: *mut ::std::os::raw::c_int,
) -> *const ::std::os::raw::c_char;
pub fn _gr_str_strip_brackets(
content_begin: *mut *const ::std::os::raw::c_char,
content_end: *mut *const ::std::os::raw::c_char,
s: *const ::std::os::raw::c_char,
open: ::std::os::raw::c_char,
close: ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn _gr_str_blank(
s: *const ::std::os::raw::c_char,
end: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn _gr_str_trim(
s: *mut *const ::std::os::raw::c_char,
end: *mut *const ::std::os::raw::c_char,
);
pub fn _gr_vec_zero(
vec: gr_ptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_set(
res: gr_ptr,
src: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_set_shallow(
dest: gr_ptr,
src: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
);
pub fn _gr_vec_neg(
res: gr_ptr,
src: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_normalise(
res: *mut slong,
vec: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_normalise_weak(
vec: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> slong;
pub fn _gr_vec_add(
res: gr_ptr,
src1: gr_srcptr,
src2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_sub(
res: gr_ptr,
src1: gr_srcptr,
src2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_mul(
res: gr_ptr,
src1: gr_srcptr,
src2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_div(
res: gr_ptr,
src1: gr_srcptr,
src2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_divexact(
res: gr_ptr,
src1: gr_srcptr,
src2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_pow(
res: gr_ptr,
src1: gr_srcptr,
src2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_add_scalar(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_sub_scalar(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_mul_scalar(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_div_scalar(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_divexact_scalar(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_pow_scalar(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_add_scalar_si(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_sub_scalar_si(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_mul_scalar_si(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_div_scalar_si(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_divexact_scalar_si(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_pow_scalar_si(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_add_scalar_ui(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_sub_scalar_ui(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_mul_scalar_ui(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_div_scalar_ui(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_divexact_scalar_ui(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_pow_scalar_ui(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_add_scalar_fmpz(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_sub_scalar_fmpz(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_mul_scalar_fmpz(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_div_scalar_fmpz(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_divexact_scalar_fmpz(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_pow_scalar_fmpz(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_add_scalar_fmpq(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_sub_scalar_fmpq(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_mul_scalar_fmpq(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_div_scalar_fmpq(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_divexact_scalar_fmpq(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_pow_scalar_fmpq(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_scalar_add_vec(
vec1: gr_ptr,
c: gr_srcptr,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_scalar_sub_vec(
vec1: gr_ptr,
c: gr_srcptr,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_scalar_mul_vec(
vec1: gr_ptr,
c: gr_srcptr,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_scalar_div_vec(
vec1: gr_ptr,
c: gr_srcptr,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_scalar_divexact_vec(
vec1: gr_ptr,
c: gr_srcptr,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_scalar_pow_vec(
vec1: gr_ptr,
c: gr_srcptr,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_add_other(
vec1: gr_ptr,
vec2: gr_srcptr,
vec3: gr_srcptr,
ctx3: *mut gr_ctx_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_sub_other(
vec1: gr_ptr,
vec2: gr_srcptr,
vec3: gr_srcptr,
ctx3: *mut gr_ctx_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_mul_other(
vec1: gr_ptr,
vec2: gr_srcptr,
vec3: gr_srcptr,
ctx3: *mut gr_ctx_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_div_other(
vec1: gr_ptr,
vec2: gr_srcptr,
vec3: gr_srcptr,
ctx3: *mut gr_ctx_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_divexact_other(
vec1: gr_ptr,
vec2: gr_srcptr,
vec3: gr_srcptr,
ctx3: *mut gr_ctx_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_pow_other(
vec1: gr_ptr,
vec2: gr_srcptr,
vec3: gr_srcptr,
ctx3: *mut gr_ctx_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_other_add_vec(
vec1: gr_ptr,
vec2: gr_srcptr,
ctx2: *mut gr_ctx_struct,
vec3: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_other_sub_vec(
vec1: gr_ptr,
vec2: gr_srcptr,
ctx2: *mut gr_ctx_struct,
vec3: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_other_mul_vec(
vec1: gr_ptr,
vec2: gr_srcptr,
ctx2: *mut gr_ctx_struct,
vec3: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_other_div_vec(
vec1: gr_ptr,
vec2: gr_srcptr,
ctx2: *mut gr_ctx_struct,
vec3: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_other_divexact_vec(
vec1: gr_ptr,
vec2: gr_srcptr,
ctx2: *mut gr_ctx_struct,
vec3: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_other_pow_vec(
vec1: gr_ptr,
vec2: gr_srcptr,
ctx2: *mut gr_ctx_struct,
vec3: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_add_scalar_other(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_sub_scalar_other(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_mul_scalar_other(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_div_scalar_other(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_divexact_scalar_other(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_pow_scalar_other(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_scalar_other_add_vec(
vec1: gr_ptr,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_scalar_other_sub_vec(
vec1: gr_ptr,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_scalar_other_mul_vec(
vec1: gr_ptr,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_scalar_other_div_vec(
vec1: gr_ptr,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_scalar_other_divexact_vec(
vec1: gr_ptr,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_scalar_other_pow_vec(
vec1: gr_ptr,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_mul_scalar_2exp_si(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_addmul_scalar(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_submul_scalar(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_addmul_scalar_si(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_submul_scalar_si(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_addmul_scalar_fmpz(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_equal(
vec1: gr_srcptr,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn _gr_vec_is_zero(
vec: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn _gr_vec_sum(
res: gr_ptr,
vec: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_product(
res: gr_ptr,
vec: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_dot(
res: gr_ptr,
initial: gr_srcptr,
subtract: ::std::os::raw::c_int,
vec1: gr_srcptr,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_dot_rev(
res: gr_ptr,
initial: gr_srcptr,
subtract: ::std::os::raw::c_int,
vec1: gr_srcptr,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_dot_strided(
res: gr_ptr,
initial: gr_srcptr,
subtract: ::std::os::raw::c_int,
vec1: gr_srcptr,
stride1: slong,
vec2: gr_srcptr,
stride2: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_dot_si(
res: gr_ptr,
initial: gr_srcptr,
subtract: ::std::os::raw::c_int,
vec1: gr_srcptr,
vec2: *const slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_dot_ui(
res: gr_ptr,
initial: gr_srcptr,
subtract: ::std::os::raw::c_int,
vec1: gr_srcptr,
vec2: *const ulong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_dot_fmpz(
res: gr_ptr,
initial: gr_srcptr,
subtract: ::std::os::raw::c_int,
vec1: gr_srcptr,
vec2: *const fmpz,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_reciprocals(
res: gr_ptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_set_powers(
res: gr_ptr,
x: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_randtest(
res: gr_ptr,
state: *mut flint_rand_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_sum_bsplit_parallel(
res: gr_ptr,
vec: gr_srcptr,
len: slong,
basecase_cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_sum_bsplit(
res: gr_ptr,
vec: gr_srcptr,
len: slong,
basecase_cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_sum_parallel(
res: gr_ptr,
vec: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_sum_serial(
res: gr_ptr,
vec: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_sum_generic(
res: gr_ptr,
vec: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_product_bsplit_parallel(
res: gr_ptr,
vec: gr_srcptr,
len: slong,
basecase_cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_product_bsplit(
res: gr_ptr,
vec: gr_srcptr,
len: slong,
basecase_cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_product_parallel(
res: gr_ptr,
vec: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_product_serial(
res: gr_ptr,
vec: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_product_generic(
res: gr_ptr,
vec: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _gr_vec_step(
vec: gr_ptr,
start: gr_srcptr,
step: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
}
/* hypgeom.h */
#[repr(C)]
pub struct hypgeom_struct {
pub A: fmpz_poly_t,
pub B: fmpz_poly_t,
pub P: fmpz_poly_t,
pub Q: fmpz_poly_t,
pub have_precomputed: ::std::os::raw::c_int,
pub r: slong,
pub boundC: slong,
pub boundD: slong,
pub boundK: slong,
pub MK: mag_t,
}
impl Default for hypgeom_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 hypgeom_t = [hypgeom_struct; 1usize];
unsafe extern "C" {
pub fn hypgeom_init(hyp: *mut hypgeom_struct);
pub fn hypgeom_clear(hyp: *mut hypgeom_struct);
pub fn hypgeom_precompute(hyp: *mut hypgeom_struct);
pub fn hypgeom_estimate_terms(
z: *const mag_struct,
r: ::std::os::raw::c_int,
prec: slong,
) -> slong;
pub fn hypgeom_bound(
error: *mut mag_struct,
r: ::std::os::raw::c_int,
C: slong,
D: slong,
K: slong,
TK: *const mag_struct,
z: *const mag_struct,
prec: slong,
) -> slong;
pub fn arb_hypgeom_sum(
P: *mut arb_struct,
Q: *mut arb_struct,
hyp: *const hypgeom_struct,
n: slong,
prec: slong,
);
pub fn arb_hypgeom_infsum(
P: *mut arb_struct,
Q: *mut arb_struct,
hyp: *mut hypgeom_struct,
target_prec: slong,
prec: slong,
);
}
/* limb_types.h */
#[repr(C)]
pub struct n_factor_t {
pub num: ::std::os::raw::c_int,
pub exp: [::std::os::raw::c_int; 15usize],
pub p: [ulong; 15usize],
}
impl Default for n_factor_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 n_primes_struct {
pub small_i: slong,
pub small_num: slong,
pub small_primes: *mut ::std::os::raw::c_uint,
pub sieve_a: ulong,
pub sieve_b: ulong,
pub sieve_i: slong,
pub sieve_num: slong,
pub sieve: *mut ::std::os::raw::c_char,
}
impl Default for n_primes_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 n_primes_t = [n_primes_struct; 1usize];
/* long_extras.h */
unsafe extern "C" {
pub fn z_sizeinbase(n: slong, b: ::std::os::raw::c_int) -> usize;
pub fn z_mul_checked(a: *mut slong, b: slong, c: slong) -> ::std::os::raw::c_int;
pub fn z_add_checked(a: *mut slong, b: slong, c: slong) -> ::std::os::raw::c_int;
pub fn z_mat22_det_is_negative(
m11: slong,
m12: slong,
m21: slong,
m22: slong,
) -> ::std::os::raw::c_int;
pub fn z_randtest(state: *mut flint_rand_struct) -> slong;
pub fn z_randtest_not_zero(state: *mut flint_rand_struct) -> slong;
pub fn z_randint(state: *mut flint_rand_struct, limit: ulong) -> slong;
pub fn z_kronecker(a: slong, n: slong) -> ::std::os::raw::c_int;
}
/* mag.h */
unsafe extern "C" {
pub fn mag_init(x: *mut mag_struct);
pub fn mag_init_set(x: *mut mag_struct, y: *const mag_struct);
pub fn mag_clear(x: *mut mag_struct);
pub fn mag_swap(x: *mut mag_struct, y: *mut mag_struct);
pub fn mag_set(x: *mut mag_struct, y: *const mag_struct);
pub fn mag_zero(x: *mut mag_struct);
pub fn mag_one(x: *mut mag_struct);
pub fn mag_is_special(x: *const mag_struct) -> ::std::os::raw::c_int;
pub fn mag_is_zero(x: *const mag_struct) -> ::std::os::raw::c_int;
pub fn mag_inf(x: *mut mag_struct);
pub fn mag_is_inf(x: *const mag_struct) -> ::std::os::raw::c_int;
pub fn mag_is_finite(x: *const mag_struct) -> ::std::os::raw::c_int;
pub fn mag_equal(
x: *const mag_struct,
y: *const mag_struct,
) -> ::std::os::raw::c_int;
pub fn mag_mul(z: *mut mag_struct, x: *const mag_struct, y: *const mag_struct);
pub fn mag_mul_lower(z: *mut mag_struct, x: *const mag_struct, y: *const mag_struct);
pub fn mag_addmul(z: *mut mag_struct, x: *const mag_struct, y: *const mag_struct);
pub fn mag_add_2exp_fmpz(z: *mut mag_struct, x: *const mag_struct, e: *const fmpz);
pub fn mag_add(z: *mut mag_struct, x: *const mag_struct, y: *const mag_struct);
pub fn mag_add_lower(z: *mut mag_struct, x: *const mag_struct, y: *const mag_struct);
pub fn mag_add_ui(z: *mut mag_struct, x: *const mag_struct, y: ulong);
pub fn mag_add_ui_lower(res: *mut mag_struct, x: *const mag_struct, y: ulong);
pub fn mag_add_ui_2exp_si(
z: *mut mag_struct,
x: *const mag_struct,
y: ulong,
e: slong,
);
pub fn mag_div(z: *mut mag_struct, x: *const mag_struct, y: *const mag_struct);
pub fn mag_div_lower(z: *mut mag_struct, x: *const mag_struct, y: *const mag_struct);
pub fn mag_inv(res: *mut mag_struct, x: *const mag_struct);
pub fn mag_inv_lower(res: *mut mag_struct, x: *const mag_struct);
pub fn mag_mul_2exp_si(z: *mut mag_struct, x: *const mag_struct, y: slong);
pub fn mag_mul_2exp_fmpz(z: *mut mag_struct, x: *const mag_struct, y: *const fmpz);
pub fn mag_sub(z: *mut mag_struct, x: *const mag_struct, y: *const mag_struct);
pub fn mag_sub_lower(z: *mut mag_struct, x: *const mag_struct, y: *const mag_struct);
pub fn mag_fast_init_set(x: *mut mag_struct, y: *const mag_struct);
pub fn mag_fast_zero(x: *mut mag_struct);
pub fn mag_fast_is_zero(x: *const mag_struct) -> ::std::os::raw::c_int;
pub fn mag_fast_mul(z: *mut mag_struct, x: *const mag_struct, y: *const mag_struct);
pub fn mag_fast_mul_2exp_si(z: *mut mag_struct, x: *const mag_struct, y: slong);
pub fn mag_fast_addmul(
z: *mut mag_struct,
x: *const mag_struct,
y: *const mag_struct,
);
pub fn mag_fast_add_2exp_si(z: *mut mag_struct, x: *const mag_struct, e: slong);
pub fn mag_set_d(z: *mut mag_struct, x: f64);
pub fn mag_set_d_lower(z: *mut mag_struct, x: f64);
pub fn mag_set_d_2exp_fmpz(z: *mut mag_struct, c: f64, exp: *const fmpz);
pub fn mag_set_d_2exp_fmpz_lower(z: *mut mag_struct, c: f64, exp: *const fmpz);
pub fn mag_set_fmpz_2exp_fmpz(
z: *mut mag_struct,
man: *const fmpz,
exp: *const fmpz,
);
pub fn mag_randtest_special(
x: *mut mag_struct,
state: *mut flint_rand_struct,
expbits: slong,
);
pub fn mag_randtest(
x: *mut mag_struct,
state: *mut flint_rand_struct,
expbits: slong,
);
pub fn mag_fprint(file: *mut FILE, x: *const mag_struct);
pub fn mag_fprintd(file: *mut FILE, x: *const mag_struct, d: slong);
pub fn mag_print(x: *const mag_struct);
pub fn mag_printd(x: *const mag_struct, d: slong);
pub fn mag_get_fmpq(y: *mut fmpq, x: *const mag_struct);
pub fn mag_get_fmpz(res: *mut fmpz, x: *const mag_struct);
pub fn mag_get_fmpz_lower(res: *mut fmpz, x: *const mag_struct);
pub fn mag_cmp(x: *const mag_struct, y: *const mag_struct) -> ::std::os::raw::c_int;
pub fn mag_cmp_2exp_si(x: *const mag_struct, e: slong) -> ::std::os::raw::c_int;
pub fn mag_min(z: *mut mag_struct, x: *const mag_struct, y: *const mag_struct);
pub fn mag_max(z: *mut mag_struct, x: *const mag_struct, y: *const mag_struct);
pub fn _mag_vec_init(n: slong) -> mag_ptr;
pub fn _mag_vec_clear(v: mag_ptr, n: slong);
pub fn mag_get_d(z: *const mag_struct) -> f64;
pub fn mag_get_d_log2_approx(x: *const mag_struct) -> f64;
pub fn mag_d_log_upper_bound(x: f64) -> f64;
pub fn mag_d_log_lower_bound(x: f64) -> f64;
pub fn mag_log1p(z: *mut mag_struct, x: *const mag_struct);
pub fn mag_log_ui(t: *mut mag_struct, n: ulong);
pub fn mag_log(z: *mut mag_struct, x: *const mag_struct);
pub fn mag_log_lower(z: *mut mag_struct, x: *const mag_struct);
pub fn mag_neg_log(z: *mut mag_struct, x: *const mag_struct);
pub fn mag_neg_log_lower(z: *mut mag_struct, x: *const mag_struct);
pub fn mag_exp(y: *mut mag_struct, x: *const mag_struct);
pub fn mag_exp_lower(y: *mut mag_struct, x: *const mag_struct);
pub fn mag_expinv(res: *mut mag_struct, x: *const mag_struct);
pub fn mag_expinv_lower(y: *mut mag_struct, x: *const mag_struct);
pub fn mag_expm1(y: *mut mag_struct, x: *const mag_struct);
pub fn mag_exp_tail(z: *mut mag_struct, x: *const mag_struct, N: ulong);
pub fn mag_sinh(y: *mut mag_struct, x: *const mag_struct);
pub fn mag_sinh_lower(y: *mut mag_struct, x: *const mag_struct);
pub fn mag_cosh(y: *mut mag_struct, x: *const mag_struct);
pub fn mag_cosh_lower(y: *mut mag_struct, x: *const mag_struct);
pub fn mag_pow_ui(z: *mut mag_struct, x: *const mag_struct, e: ulong);
pub fn mag_pow_ui_lower(z: *mut mag_struct, x: *const mag_struct, e: ulong);
pub fn mag_pow_fmpz(z: *mut mag_struct, x: *const mag_struct, e: *const fmpz);
pub fn mag_pow_fmpz_lower(z: *mut mag_struct, x: *const mag_struct, e: *const fmpz);
pub fn mag_const_pi(res: *mut mag_struct);
pub fn mag_const_pi_lower(res: *mut mag_struct);
pub fn mag_atan(res: *mut mag_struct, x: *const mag_struct);
pub fn mag_atan_lower(res: *mut mag_struct, x: *const mag_struct);
pub fn mag_fac_ui(z: *mut mag_struct, n: ulong);
pub fn mag_rfac_ui(z: *mut mag_struct, n: ulong);
pub fn mag_bin_uiui(res: *mut mag_struct, n: ulong, k: ulong);
pub fn mag_bernoulli_div_fac_ui(z: *mut mag_struct, n: ulong);
pub fn mag_set_fmpz_2exp_fmpz_lower(
z: *mut mag_struct,
man: *const fmpz,
exp: *const fmpz,
);
pub fn mag_sqrt(y: *mut mag_struct, x: *const mag_struct);
pub fn mag_sqrt_lower(y: *mut mag_struct, x: *const mag_struct);
pub fn mag_rsqrt(y: *mut mag_struct, x: *const mag_struct);
pub fn mag_rsqrt_lower(y: *mut mag_struct, x: *const mag_struct);
pub fn mag_root(y: *mut mag_struct, x: *const mag_struct, n: ulong);
pub fn mag_hypot(z: *mut mag_struct, x: *const mag_struct, y: *const mag_struct);
pub fn mag_binpow_uiui(b: *mut mag_struct, m: ulong, n: ulong);
pub fn mag_polylog_tail(
u: *mut mag_struct,
z: *const mag_struct,
sigma: slong,
d: ulong,
N: ulong,
);
pub fn mag_geom_series(res: *mut mag_struct, x: *const mag_struct, n: ulong);
pub fn mag_hurwitz_zeta_uiui(res: *mut mag_struct, s: ulong, a: ulong);
pub fn mag_set_ui(z: *mut mag_struct, x: ulong);
pub fn mag_set_ui_lower(z: *mut mag_struct, x: ulong);
pub fn mag_set_ui_2exp_si(z: *mut mag_struct, v: ulong, e: slong);
pub fn mag_set_fmpz(z: *mut mag_struct, x: *const fmpz);
pub fn mag_set_fmpz_lower(z: *mut mag_struct, x: *const fmpz);
pub fn mag_mul_ui(z: *mut mag_struct, x: *const mag_struct, y: ulong);
pub fn mag_mul_ui_lower(z: *mut mag_struct, x: *const mag_struct, y: ulong);
pub fn mag_mul_fmpz(z: *mut mag_struct, x: *const mag_struct, y: *const fmpz);
pub fn mag_mul_fmpz_lower(z: *mut mag_struct, x: *const mag_struct, y: *const fmpz);
pub fn mag_div_ui(z: *mut mag_struct, x: *const mag_struct, y: ulong);
pub fn mag_div_fmpz(z: *mut mag_struct, x: *const mag_struct, y: *const fmpz);
pub fn mag_allocated_bytes(x: *const mag_struct) -> slong;
pub fn mag_load_str(
res: *mut mag_struct,
data: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn mag_dump_str(x: *const mag_struct) -> *mut ::std::os::raw::c_char;
pub fn mag_load_file(
res: *mut mag_struct,
stream: *mut FILE,
) -> ::std::os::raw::c_int;
pub fn mag_dump_file(
stream: *mut FILE,
x: *const mag_struct,
) -> ::std::os::raw::c_int;
}
/* mpn_mod.h */
#[repr(C)]
pub struct _mpn_mod_ctx_struct {
pub nlimbs: slong,
pub d: [ulong; 16usize],
pub dinv: [ulong; 16usize],
pub dnormed: [ulong; 16usize],
pub norm: flint_bitcnt_t,
pub is_prime: truth_t,
}
impl Default for _mpn_mod_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()
}
}
}
unsafe extern "C" {
pub fn mpn_mod_ctx_set_is_field(
ctx: *mut gr_ctx_struct,
is_field: truth_t,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_ctx_write(
out: *mut gr_stream_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_ctx_clear(ctx: *mut gr_ctx_struct);
pub fn mpn_mod_ctx_is_field(ctx: *mut gr_ctx_struct) -> truth_t;
pub fn mpn_mod_init(x: nn_ptr, ctx: *mut gr_ctx_struct);
pub fn mpn_mod_clear(UNUSED_x: nn_ptr, UNUSED_ctx: *mut gr_ctx_struct);
pub fn mpn_mod_swap(x: nn_ptr, y: nn_ptr, ctx: *mut gr_ctx_struct);
pub fn mpn_mod_set(
res: nn_ptr,
x: nn_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_zero(res: nn_ptr, ctx: *mut gr_ctx_struct) -> ::std::os::raw::c_int;
pub fn mpn_mod_one(res: nn_ptr, ctx: *mut gr_ctx_struct) -> ::std::os::raw::c_int;
pub fn mpn_mod_set_ui(
res: nn_ptr,
x: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_set_si(
res: nn_ptr,
x: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_neg_one(
res: nn_ptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_set_fmpz(
res: nn_ptr,
x: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_set_other(
res: nn_ptr,
v: gr_ptr,
v_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_randtest(
res: nn_ptr,
state: *mut flint_rand_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_write(
out: *mut gr_stream_struct,
x: nn_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_get_fmpz(
res: *mut fmpz,
x: nn_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_is_zero(x: nn_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn mpn_mod_is_one(x: nn_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn mpn_mod_is_neg_one(x: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn mpn_mod_equal(x: nn_srcptr, y: nn_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn mpn_mod_neg(
res: nn_ptr,
x: nn_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_add(
res: nn_ptr,
x: nn_srcptr,
y: nn_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_sub(
res: nn_ptr,
x: nn_srcptr,
y: nn_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_add_ui(
res: nn_ptr,
x: nn_srcptr,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_sub_ui(
res: nn_ptr,
x: nn_srcptr,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_add_si(
res: nn_ptr,
x: nn_srcptr,
y: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_sub_si(
res: nn_ptr,
x: nn_srcptr,
y: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_add_fmpz(
res: nn_ptr,
x: nn_srcptr,
y: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_sub_fmpz(
res: nn_ptr,
x: nn_srcptr,
y: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_mul(
res: nn_ptr,
x: nn_srcptr,
y: nn_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_mul_ui(
res: nn_ptr,
x: nn_srcptr,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_mul_si(
res: nn_ptr,
x: nn_srcptr,
y: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_mul_fmpz(
res: nn_ptr,
x: nn_srcptr,
y: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_addmul(
res: nn_ptr,
x: nn_srcptr,
y: nn_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_addmul_ui(
res: nn_ptr,
x: nn_srcptr,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_addmul_si(
res: nn_ptr,
x: nn_srcptr,
y: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_addmul_fmpz(
res: nn_ptr,
x: nn_srcptr,
y: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_submul(
res: nn_ptr,
x: nn_srcptr,
y: nn_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_submul_ui(
res: nn_ptr,
x: nn_srcptr,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_submul_si(
res: nn_ptr,
x: nn_srcptr,
y: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_submul_fmpz(
res: nn_ptr,
x: nn_srcptr,
y: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_sqr(
res: nn_ptr,
x: nn_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_fmma(
res: nn_ptr,
x1: nn_srcptr,
y1: nn_srcptr,
x2: nn_srcptr,
y2: nn_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_inv(
res: nn_ptr,
x: nn_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_div(
res: nn_ptr,
x: nn_srcptr,
y: nn_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_mat_mul_waksman(
C: *mut gr_mat_struct,
A: *const gr_mat_struct,
B: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_mat_mul_multi_mod(
C: *mut gr_mat_struct,
A: *const gr_mat_struct,
B: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_mat_mul(
C: *mut gr_mat_struct,
A: *const gr_mat_struct,
B: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_mat_nonsingular_solve_tril(
X: *mut gr_mat_struct,
L: *const gr_mat_struct,
B: *const gr_mat_struct,
unit: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_mat_nonsingular_solve_triu(
X: *mut gr_mat_struct,
U: *const gr_mat_struct,
B: *const gr_mat_struct,
unit: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_mat_lu_classical_delayed(
res_rank: *mut slong,
P: *mut slong,
A: *mut gr_mat_struct,
A_in: *const gr_mat_struct,
rank_check: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_mat_lu(
rank: *mut slong,
P: *mut slong,
LU: *mut gr_mat_struct,
A: *const gr_mat_struct,
rank_check: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_mat_det(
res: nn_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpn_mod_mat_reduce_row(
column: *mut slong,
A: *mut gr_mat_struct,
P: *mut slong,
L: *mut slong,
m: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
}
/* mpoly.h */
#[repr(C)]
pub struct mpoly_heap_t {
pub i: ulong,
pub j: ulong,
pub next: *mut mpoly_heap_t,
}
impl Default for mpoly_heap_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 mpoly_nheap_t {
pub i: ulong,
pub j: ulong,
pub next: *mut mpoly_nheap_t,
pub p: slong,
}
impl Default for mpoly_nheap_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 mpoly_heap1_s {
pub exp: ulong,
pub next: *mut ::std::os::raw::c_void,
}
impl Default for mpoly_heap1_s {
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 mpoly_heap_s {
pub exp: *mut ulong,
pub next: *mut ::std::os::raw::c_void,
}
impl Default for mpoly_heap_s {
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 mpoly_rbnode_ui_struct {
pub key: ulong,
pub up: slong,
pub left: slong,
pub right: slong,
pub color: ::std::os::raw::c_int,
}
impl Default for mpoly_rbnode_ui_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()
}
}
}
#[repr(C)]
pub struct mpoly_rbtree_ui_struct {
pub length: slong,
pub nodes: *mut mpoly_rbnode_ui_struct,
pub node_alloc: slong,
pub data: *mut ::std::os::raw::c_char,
pub data_alloc: slong,
pub data_size: slong,
}
impl Default for mpoly_rbtree_ui_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 mpoly_rbtree_ui_t = [mpoly_rbtree_ui_struct; 1usize];
#[repr(C)]
pub struct mpoly_rbnode_fmpz_struct {
pub key: fmpz_t,
pub up: slong,
pub left: slong,
pub right: slong,
pub color: ::std::os::raw::c_int,
}
impl Default for mpoly_rbnode_fmpz_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()
}
}
}
#[repr(C)]
pub struct mpoly_rbtree_fmpz_struct {
pub length: slong,
pub nodes: *mut mpoly_rbnode_fmpz_struct,
pub node_alloc: slong,
pub data: *mut ::std::os::raw::c_char,
pub data_alloc: slong,
pub data_size: slong,
}
impl Default for mpoly_rbtree_fmpz_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 mpoly_rbtree_fmpz_t = [mpoly_rbtree_fmpz_struct; 1usize];
#[repr(C)]
pub struct mpoly_univar_struct {
pub coeffs: *mut ::std::os::raw::c_char,
pub exps: *mut fmpz,
pub length: slong,
pub alloc: slong,
}
impl Default for 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 mpoly_univar_t = [mpoly_univar_struct; 1usize];
#[repr(C)]
pub struct string_with_length_struct {
pub str_: *mut ::std::os::raw::c_char,
pub str_len: slong,
}
impl Default for string_with_length_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()
}
}
}
#[repr(C)]
pub struct mpoly_parse_struct {
pub R: mpoly_void_ring_t,
pub stack: *mut slong,
pub stack_len: slong,
pub stack_alloc: slong,
pub estore: *mut ::std::os::raw::c_char,
pub estore_len: slong,
pub estore_alloc: slong,
pub tmp: *mut ::std::os::raw::c_void,
pub terminal_strings: *mut string_with_length_struct,
pub terminal_values: *mut ::std::os::raw::c_char,
pub terminals_alloc: slong,
pub terminals_len: slong,
}
impl Default for mpoly_parse_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 mpoly_parse_t = [mpoly_parse_struct; 1usize];
unsafe extern "C" {
pub fn mpoly_divide_threads(n: slong, la: f64, lb: f64) -> slong;
pub fn __gmpn_add_n(
arg1: nn_ptr,
arg2: nn_srcptr,
arg3: nn_srcptr,
arg4: ::std::os::raw::c_long,
) -> ulong;
pub fn __gmpn_sub_n(
arg1: nn_ptr,
arg2: nn_srcptr,
arg3: nn_srcptr,
arg4: ::std::os::raw::c_long,
) -> ulong;
pub fn __gmpn_addmul_1(
arg1: nn_ptr,
arg2: nn_srcptr,
arg3: ::std::os::raw::c_long,
arg4: ulong,
) -> ulong;
pub fn __gmpn_submul_1(
arg1: nn_ptr,
arg2: nn_srcptr,
arg3: ::std::os::raw::c_long,
arg4: ulong,
) -> ulong;
pub fn __gmpn_rshift(
arg1: nn_ptr,
arg2: nn_srcptr,
arg3: ::std::os::raw::c_long,
arg4: ::std::os::raw::c_uint,
) -> ulong;
pub fn __gmpn_mul_1(
arg1: nn_ptr,
arg2: nn_srcptr,
arg3: ::std::os::raw::c_long,
arg4: ulong,
) -> ulong;
pub fn mpoly_ctx_init(ctx: *mut mpoly_ctx_struct, nvars: slong, ord: ordering_t);
pub fn mpoly_ctx_init_rand(
mctx: *mut mpoly_ctx_struct,
state: *mut flint_rand_struct,
max_nvars: slong,
);
pub fn mpoly_monomial_randbits_fmpz(
exp: *mut fmpz,
state: *mut flint_rand_struct,
exp_bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_ctx_clear(UNUSED_mctx: *mut mpoly_ctx_struct);
pub fn mpoly_rbtree_ui_init(T: *mut mpoly_rbtree_ui_struct, data_size: slong);
pub fn mpoly_rbtree_ui_clear(T: *mut mpoly_rbtree_ui_struct);
pub fn mpoly_rbtree_ui_lookup(
T: *mut mpoly_rbtree_ui_struct,
its_new: *mut ::std::os::raw::c_int,
key: ulong,
) -> *mut ::std::os::raw::c_void;
pub fn mpoly_rbtree_fmpz_init(T: *mut mpoly_rbtree_fmpz_struct, data_size: slong);
pub fn mpoly_rbtree_fmpz_clear(T: *mut mpoly_rbtree_fmpz_struct);
pub fn mpoly_rbtree_fmpz_lookup(
T: *mut mpoly_rbtree_fmpz_struct,
its_new: *mut ::std::os::raw::c_int,
key: *const fmpz,
) -> *mut ::std::os::raw::c_void;
pub fn mpoly_ordering_randtest(state: *mut flint_rand_struct) -> ordering_t;
pub fn mpoly_ordering_isdeg(mctx: *const mpoly_ctx_struct) -> ::std::os::raw::c_int;
pub fn mpoly_ordering_isrev(mctx: *const mpoly_ctx_struct) -> ::std::os::raw::c_int;
pub fn mpoly_ordering_print(ord: ordering_t);
pub fn mpoly_monomial_msub_ui_array(
exp1: *mut ulong,
exp2: *const ulong,
scalar: *const ulong,
scalar_limbs: slong,
exp3: *const ulong,
N: slong,
);
pub fn mpoly_monomial_madd_ui_array(
exp1: *mut ulong,
exp2: *const ulong,
scalar: *const ulong,
scalar_limbs: slong,
exp3: *const ulong,
N: slong,
);
pub fn mpoly_monomial_max(
exp1: *mut ulong,
exp2: *const ulong,
exp3: *const ulong,
bits: flint_bitcnt_t,
N: slong,
mask: ulong,
);
pub fn mpoly_monomial_min(
exp1: *mut ulong,
exp2: *const ulong,
exp3: *const ulong,
bits: flint_bitcnt_t,
N: slong,
mask: ulong,
);
pub fn mpoly_monomial_max_mp(
exp1: *mut ulong,
exp2: *const ulong,
exp3: *const ulong,
bits: flint_bitcnt_t,
N: slong,
);
pub fn mpoly_monomial_min_mp(
exp1: *mut ulong,
exp2: *const ulong,
exp3: *const ulong,
bits: flint_bitcnt_t,
N: slong,
);
pub fn mpoly_copy_monomials(
exp1: *mut ulong,
exp2: *const ulong,
len: slong,
N: slong,
);
pub fn mpoly_monomial_mul_fmpz(
exp2: *mut ulong,
exp3: *const ulong,
N: slong,
c: *const fmpz,
);
pub fn mpoly_max_degrees_tight(
max_exp: *mut slong,
exps: *mut ulong,
len: slong,
prods: *mut slong,
num: slong,
);
pub fn _mpoly_bidegree(
Aexps: *const ulong,
Abits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
) -> ulong;
pub fn mpoly_gen_fields_ui(
exp: *mut ulong,
var: slong,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_gen_fields_fmpz(
exp: *mut fmpz,
var: slong,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_gen_bits_required(
UNUSED_var: slong,
UNUSED_mctx: *const mpoly_ctx_struct,
) -> flint_bitcnt_t;
pub fn mpoly_gen_offset_shift_sp(
offset: *mut slong,
shift: *mut slong,
var: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_gen_monomial_offset_shift_sp(
mexp: *mut ulong,
offset: *mut slong,
shift: *mut slong,
var: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_gen_monomial_sp(
oneexp: *mut ulong,
var: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_gen_offset_mp(
var: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
) -> slong;
pub fn mpoly_gen_monomial_offset_mp(
mexp: *mut ulong,
var: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
) -> slong;
pub fn mpoly_compose_mat_gen(
M: *mut fmpz_mat_struct,
c: *const slong,
mctxB: *const mpoly_ctx_struct,
mctxAC: *const mpoly_ctx_struct,
);
pub fn mpoly_compose_mat_fill_column(
M: *mut fmpz_mat_struct,
Cexp: *const ulong,
Cbits: flint_bitcnt_t,
Bvar: slong,
mctxB: *const mpoly_ctx_struct,
mctxAC: *const mpoly_ctx_struct,
);
pub fn mpoly_get_cmpmask(
cmpmask: *mut ulong,
N: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_get_ovfmask(
ovfmask: *mut ulong,
N: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_monomials_cmp(
Aexps: *const ulong,
Abits: flint_bitcnt_t,
Bexps: *const ulong,
Bbits: flint_bitcnt_t,
length: slong,
mctx: *const mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpoly_exp_bits_required_ui(
user_exp: *const ulong,
mctx: *const mpoly_ctx_struct,
) -> flint_bitcnt_t;
pub fn mpoly_exp_bits_required_ffmpz(
user_exp: *const fmpz,
mctx: *const mpoly_ctx_struct,
) -> flint_bitcnt_t;
pub fn mpoly_exp_bits_required_pfmpz(
user_exp: *const *mut fmpz,
mctx: *const mpoly_ctx_struct,
) -> flint_bitcnt_t;
pub fn mpoly_gen_pow_exp_bits_required(
UNUSED_v: slong,
e: ulong,
UNUSED_mctx: *const mpoly_ctx_struct,
) -> flint_bitcnt_t;
pub fn mpoly_is_poly(
Aexps: *const ulong,
Alen: slong,
Abits: flint_bitcnt_t,
var: slong,
mctx: *const mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpoly_pack_vec_ui(
exp1: *mut ulong,
exp2: *const ulong,
bits: flint_bitcnt_t,
nfields: slong,
len: slong,
);
pub fn mpoly_pack_vec_fmpz(
exp1: *mut ulong,
exp2: *const fmpz,
bits: flint_bitcnt_t,
nfields: slong,
len: slong,
);
pub fn mpoly_unpack_vec_ui(
exp1: *mut ulong,
exp2: *const ulong,
bits: flint_bitcnt_t,
nfields: slong,
len: slong,
);
pub fn mpoly_unpack_vec_fmpz(
exp1: *mut fmpz,
exp2: *const ulong,
bits: flint_bitcnt_t,
nfields: slong,
len: slong,
);
pub fn mpoly_get_monomial_ui_unpacked_ui(
user_exps: *mut ulong,
poly_exps: *const ulong,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_get_monomial_ui_unpacked_ffmpz(
user_exps: *mut ulong,
poly_exps: *const fmpz,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_get_monomial_ffmpz_unpacked_ffmpz(
user_exps: *mut fmpz,
poly_exps: *const fmpz,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_get_monomial_pfmpz_unpacked_ffmpz(
user_exps: *mut *mut fmpz,
poly_exps: *const fmpz,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_get_monomial_ui_sp(
user_exps: *mut ulong,
poly_exps: *const ulong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_get_monomial_si_mp(
user_exps: *mut slong,
poly_exps: *const ulong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_get_monomial_ui_mp(
user_exps: *mut ulong,
poly_exps: *const ulong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_get_monomial_ui(
user_exps: *mut ulong,
poly_exps: *const ulong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_get_monomial_si(
user_exps: *mut slong,
poly_exps: *const ulong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_get_monomial_var_exp_ui_sp(
poly_exps: *const ulong,
var: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
) -> ulong;
pub fn mpoly_get_monomial_var_exp_si_mp(
poly_exps: *const ulong,
var: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
) -> slong;
pub fn mpoly_get_monomial_var_exp_ui_mp(
poly_exps: *const ulong,
var: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
) -> ulong;
pub fn mpoly_get_monomial_var_exp_ui(
poly_exps: *const ulong,
var: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
) -> ulong;
pub fn mpoly_get_monomial_var_exp_si(
poly_exps: *const ulong,
var: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
) -> slong;
pub fn mpoly_get_monomial_ffmpz(
exps: *mut fmpz,
poly_exps: *const ulong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_get_monomial_pfmpz(
exps: *mut *mut fmpz,
poly_exps: *const ulong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_set_monomial_ui(
exp1: *mut ulong,
exp2: *const ulong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_set_monomial_ffmpz(
exp1: *mut ulong,
exp2: *const fmpz,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_set_monomial_pfmpz(
exp1: *mut ulong,
exp2: *const *mut fmpz,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_repack_monomials(
exps1: *mut ulong,
bits1: flint_bitcnt_t,
exps2: *const ulong,
bits2: flint_bitcnt_t,
len: slong,
mctx: *const mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpoly_pack_monomials_tight(
exp1: *mut ulong,
exp2: *const ulong,
len: slong,
mults: *const slong,
num: slong,
bits: slong,
);
pub fn mpoly_unpack_monomials_tight(
e1: *mut ulong,
e2: *mut ulong,
len: slong,
mults: *mut slong,
num: slong,
bits: slong,
);
pub fn mpoly_monomial_exists(
index: *mut slong,
poly_exps: *const ulong,
exp: *const ulong,
len: slong,
N: slong,
cmpmask: *const ulong,
) -> ::std::os::raw::c_int;
pub fn mpoly_monomial_index1_nomask(
Aexps: *mut ulong,
Alen: slong,
e: ulong,
) -> slong;
pub fn mpoly_monomial_index_ui(
Aexp: *const ulong,
Abits: flint_bitcnt_t,
Alength: slong,
exp: *const ulong,
mctx: *const mpoly_ctx_struct,
) -> slong;
pub fn mpoly_monomial_index_pfmpz(
Aexp: *const ulong,
Abits: flint_bitcnt_t,
Alength: slong,
exp: *const *mut fmpz,
mctx: *const mpoly_ctx_struct,
) -> slong;
pub fn mpoly_monomial_index_monomial(
Aexp: *const ulong,
Abits: flint_bitcnt_t,
Alength: slong,
Mexp: *const ulong,
Mbits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
) -> slong;
pub fn mpoly_min_fields_ui_sp(
min_fields: *mut ulong,
poly_exps: *const ulong,
len: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_min_fields_fmpz(
min_fields: *mut fmpz,
poly_exps: *const ulong,
len: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_max_fields_ui_sp(
max_fields: *mut ulong,
poly_exps: *const ulong,
len: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_max_fields_fmpz(
max_fields: *mut fmpz,
poly_exps: *const ulong,
len: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_degrees_fit_si(
poly_exps: *const ulong,
len: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpoly_degrees_si(
user_degs: *mut slong,
poly_exps: *const ulong,
len: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_degrees_si_threaded(
user_degs: *mut slong,
poly_exps: *const ulong,
len: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
handles: *const thread_pool_handle,
num_handles: slong,
);
pub fn mpoly_degrees_ffmpz(
user_degs: *mut fmpz,
poly_exps: *const ulong,
len: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_degrees_pfmpz(
user_degs: *mut *mut fmpz,
poly_exps: *const ulong,
len: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_degree_si(
poly_exps: *const ulong,
len: slong,
bits: flint_bitcnt_t,
var: slong,
mctx: *const mpoly_ctx_struct,
) -> slong;
pub fn mpoly_degree_fmpz(
deg: *mut fmpz,
poly_exps: *const ulong,
len: slong,
bits: flint_bitcnt_t,
var: slong,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_total_degree_fits_si(
exps: *const ulong,
len: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpoly_total_degree_si(
exps: *const ulong,
len: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
) -> slong;
pub fn mpoly_total_degree_fmpz(
totdeg: *mut fmpz,
exps: *const ulong,
len: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_total_degree_fmpz_ref(
totdeg: *mut fmpz,
exps: *const ulong,
len: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_used_vars_or(
used: *mut ::std::os::raw::c_int,
exps: *const ulong,
len: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_monomial_cmp_general(
Aexp: *mut ulong,
Abits: flint_bitcnt_t,
Bexp: *mut ulong,
Bbits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpoly_search_monomials(
e_ind: *mut *mut slong,
e: *mut ulong,
e_score: *mut slong,
t1: *mut slong,
t2: *mut slong,
t3: *mut slong,
lower: slong,
upper: slong,
a: *const ulong,
a_len: slong,
b: *const ulong,
b_len: slong,
N: slong,
cmpmask: *const ulong,
);
pub fn mpoly_main_variable_split_LEX(
ind: *mut slong,
pexp: *mut ulong,
Aexp: *const ulong,
l1: slong,
Alen: slong,
mults: *const ulong,
num: slong,
Abits: slong,
);
pub fn mpoly_main_variable_split_DEG(
ind: *mut slong,
pexp: *mut ulong,
Aexp: *const ulong,
l1: slong,
Alen: slong,
deg: ulong,
num: slong,
Abits: slong,
);
pub fn mpoly_term_exp_fits_si(
exps: *mut ulong,
bits: flint_bitcnt_t,
n: slong,
mctx: *const mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpoly_term_exp_fits_ui(
exps: *mut ulong,
bits: flint_bitcnt_t,
n: slong,
mctx: *const mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpoly_is_gen(
exps: *mut ulong,
var: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpoly_monomials_valid_test(
exps: *mut ulong,
len: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpoly_monomials_overflow_test(
exps: *mut ulong,
len: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpoly_monomials_inorder_test(
exps: *mut ulong,
len: slong,
bits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpoly_reverse(Aexp: *mut ulong, Bexp: *const ulong, len: slong, N: slong);
pub fn mpoly_monomials_deflation(
shift: *mut fmpz,
stride: *mut fmpz,
Aexps: *const ulong,
Abits: flint_bitcnt_t,
Alength: slong,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_monomials_deflate(
Aexps: *mut ulong,
Abits: flint_bitcnt_t,
Bexps: *const ulong,
Bbits: flint_bitcnt_t,
Blength: slong,
shift: *const fmpz,
stride: *const fmpz,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_monomials_inflate(
Aexps: *mut ulong,
Abits: flint_bitcnt_t,
Bexps: *const ulong,
Bbits: flint_bitcnt_t,
Blength: slong,
shift: *const fmpz,
stride: *const fmpz,
mctx: *const mpoly_ctx_struct,
);
pub fn _mpoly_gen_shift_right(
Aexp: *mut ulong,
Abits: flint_bitcnt_t,
Alength: slong,
var: slong,
amount: ulong,
mctx: *const mpoly_ctx_struct,
);
pub fn _mpoly_gen_shift_right_fmpz(
Aexp: *mut ulong,
Abits: flint_bitcnt_t,
Alength: slong,
var: slong,
amount: *const fmpz,
mctx: *const mpoly_ctx_struct,
);
pub fn _mpoly_gen_shift_left(
Aexp: *mut ulong,
Abits: flint_bitcnt_t,
Alength: slong,
var: slong,
amount: ulong,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_monomials_shift_right_ui(
Aexps: *mut ulong,
Abits: flint_bitcnt_t,
Alength: slong,
user_exps: *const ulong,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_monomials_shift_right_ffmpz(
Aexps: *mut ulong,
Abits: flint_bitcnt_t,
Alength: slong,
user_exps: *const fmpz,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly1_fill_marks(
Dcoeffs: *mut *mut ulong,
Dlen: *mut slong,
Dalloc: *mut slong,
Aexps: *const ulong,
Alen: slong,
Abits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly2_fill_marks(
Dcoeffs: *mut *mut ulong,
Dlen: *mut slong,
Dalloc: *mut slong,
Aexps: *const ulong,
Alen: slong,
Abits: flint_bitcnt_t,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_to_mpolyl_perm_deflate(
Aexps: *mut ulong,
Abits: flint_bitcnt_t,
Actx: *const mpoly_ctx_struct,
Bexps: *mut ulong,
Bbits: flint_bitcnt_t,
Bctx: *const mpoly_ctx_struct,
length: slong,
perm: *const slong,
shift: *const ulong,
stride: *const ulong,
);
pub fn mpoly_from_mpolyl_perm_inflate(
Bexps: *mut ulong,
Bbits: flint_bitcnt_t,
Bctx: *const mpoly_ctx_struct,
Aexps: *mut ulong,
Abits: flint_bitcnt_t,
Actx: *const mpoly_ctx_struct,
length: slong,
perm: *const slong,
shift: *const ulong,
stride: *const ulong,
);
pub fn mpoly_gcd_info_init(Iv: *mut mpoly_gcd_info_struct, nvars: slong);
pub fn mpoly_gcd_info_clear(Iv: *mut mpoly_gcd_info_struct);
pub fn mpoly_gcd_info_limits(
Amax_exp: *mut ulong,
Amin_exp: *mut ulong,
Amax_exp_count: *mut slong,
Amin_exp_count: *mut slong,
Aexps: *const ulong,
Abits: flint_bitcnt_t,
Alength: slong,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_gcd_info_stride(
strides: *mut ulong,
Aexps: *const ulong,
Abits: flint_bitcnt_t,
Alength: slong,
Amax_exp: *const ulong,
Amin_exp: *const ulong,
Bexps: *const ulong,
Bbits: flint_bitcnt_t,
Blength: slong,
Bmax_exp: *const ulong,
Bmin_exp: *const ulong,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_gcd_info_set_perm(
Iv: *mut mpoly_gcd_info_struct,
Alength: slong,
Blength: slong,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_gcd_info_get_brown_upper_limit(
Iv: *const mpoly_gcd_info_struct,
var: slong,
bound: slong,
) -> slong;
pub fn mpoly_gcd_info_measure_hensel(
Iv: *mut mpoly_gcd_info_struct,
Alength: slong,
Blength: slong,
UNUSED_mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_gcd_info_measure_brown(
Iv: *mut mpoly_gcd_info_struct,
Alength: slong,
Blength: slong,
UNUSED_mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_gcd_info_measure_bma(
Iv: *mut mpoly_gcd_info_struct,
Alength: slong,
Blength: slong,
UNUSED_mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_gcd_info_measure_zippel(
Iv: *mut mpoly_gcd_info_struct,
UNUSED_Alength: slong,
UNUSED_Blength: slong,
UNUSED_mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_gcd_info_measure_zippel2(
Iv: *mut mpoly_gcd_info_struct,
UNUSED_Alength: slong,
UNUSED_Blength: slong,
UNUSED_mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_monomial_cofactors(
Abarexps: *mut fmpz,
Bbarexps: *mut fmpz,
Aexps: *const ulong,
Abits: flint_bitcnt_t,
Bexps: *const ulong,
Bbits: flint_bitcnt_t,
length: slong,
mctx: *const mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn mpoly_is_proved_not_square(
Aexps: *const ulong,
Alen: slong,
Abits: flint_bitcnt_t,
N: slong,
t: *mut ulong,
) -> ::std::os::raw::c_int;
pub fn mpoly_remove_var_powers(
var_powers: *mut fmpz,
Aexps: *mut ulong,
Abits: flint_bitcnt_t,
Alen: slong,
mctx: *const mpoly_ctx_struct,
);
pub fn _mpoly_compress_exps(
V: *mut slong,
D: *mut slong,
deg: *mut slong,
S: *mut slong,
n: slong,
l: slong,
) -> slong;
pub fn mpoly_test_irreducible(
Aexps: *mut ulong,
Abits: flint_bitcnt_t,
Alen: slong,
ctx: *const mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _mpoly_test_irreducible(
Aexps: *mut slong,
stride: slong,
Alen: slong,
nvars: slong,
state: *mut flint_rand_struct,
tries_left: slong,
) -> ::std::os::raw::c_int;
pub fn mpoly_compression_init(M: *mut mpoly_compression_struct);
pub fn mpoly_compression_clear(M: *mut mpoly_compression_struct);
pub fn mpoly_compression_set(
M: *mut mpoly_compression_struct,
Aexps: *const ulong,
Abits: flint_bitcnt_t,
Alen: slong,
mctx: *const mpoly_ctx_struct,
);
pub fn mpoly_bivar_cld_bounds(l: *mut slong, n: slong);
pub fn _mpoly_heap_pop1(
heap: *mut mpoly_heap1_s,
heap_len: *mut slong,
maskhi: ulong,
) -> *mut ::std::os::raw::c_void;
pub fn _mpoly_heap_insert1(
heap: *mut mpoly_heap1_s,
exp: ulong,
x: *mut ::std::os::raw::c_void,
next_loc: *mut slong,
heap_len: *mut slong,
maskhi: ulong,
);
pub fn _mpoly_heap_pop(
heap: *mut mpoly_heap_s,
heap_len: *mut slong,
N: slong,
cmpmask: *const ulong,
) -> *mut ::std::os::raw::c_void;
pub fn _mpoly_heap_insert(
heap: *mut mpoly_heap_s,
exp: *mut ulong,
x: *mut ::std::os::raw::c_void,
next_loc: *mut slong,
heap_len: *mut slong,
N: slong,
cmpmask: *const ulong,
) -> ::std::os::raw::c_int;
pub fn mpoly_void_ring_elem_init(
R: *mut mpoly_void_ring_struct,
) -> *mut ::std::os::raw::c_void;
pub fn mpoly_void_ring_elem_clear(
a: *mut ::std::os::raw::c_void,
R: *mut mpoly_void_ring_struct,
);
pub fn mpoly_univar_init(
A: *mut mpoly_univar_struct,
R: *mut mpoly_void_ring_struct,
);
pub fn mpoly_univar_init2(
A: *mut mpoly_univar_struct,
len: slong,
R: *mut mpoly_void_ring_struct,
);
pub fn mpoly_univar_clear(
A: *mut mpoly_univar_struct,
R: *mut mpoly_void_ring_struct,
);
pub fn mpoly_univar_swap(A: *mut mpoly_univar_struct, B: *mut mpoly_univar_struct);
pub fn mpoly_univar_fit_length(
A: *mut mpoly_univar_struct,
len: slong,
R: *mut mpoly_void_ring_struct,
);
pub fn mpoly_univar_pseudo_gcd_ducos(
G: *mut mpoly_univar_struct,
B: *mut mpoly_univar_struct,
A: *mut mpoly_univar_struct,
R: *mut mpoly_void_ring_struct,
) -> ::std::os::raw::c_int;
pub fn mpoly_univar_resultant(
r: *mut ::std::os::raw::c_void,
fx: *mut mpoly_univar_struct,
gx: *mut mpoly_univar_struct,
R: *mut mpoly_void_ring_struct,
) -> ::std::os::raw::c_int;
pub fn mpoly_univar_discriminant(
d: *mut ::std::os::raw::c_void,
fx: *mut mpoly_univar_struct,
R: *mut mpoly_void_ring_struct,
) -> ::std::os::raw::c_int;
pub fn mpoly_parse_init(E: *mut mpoly_parse_struct);
pub fn mpoly_parse_clear(E: *mut mpoly_parse_struct);
pub fn mpoly_parse_add_terminal(
E: *mut mpoly_parse_struct,
s: *const ::std::os::raw::c_char,
v: *const ::std::os::raw::c_void,
);
pub fn mpoly_parse_parse(
E: *mut mpoly_parse_struct,
res: *mut ::std::os::raw::c_void,
s: *const ::std::os::raw::c_char,
len: slong,
) -> ::std::os::raw::c_int;
pub fn mpoly_main_variable_terms1(
i1: *mut slong,
n1: *mut slong,
exp1: *const ulong,
l1: slong,
len1: slong,
k: slong,
UNUSED_num: slong,
bits: slong,
);
}
/* mpoly_types.h */
pub const ordering_t_ORD_LEX: ordering_t = 0;
pub const ordering_t_ORD_DEGLEX: ordering_t = 1;
pub const ordering_t_ORD_DEGREVLEX: ordering_t = 2;
pub type ordering_t = ::std::os::raw::c_uint;
#[repr(C)]
pub struct mpoly_ctx_struct {
pub nvars: slong,
pub nfields: slong,
pub ord: ordering_t,
pub deg: ::std::os::raw::c_int,
pub rev: ::std::os::raw::c_int,
pub lut_words_per_exp: [slong; 64usize],
pub lut_fix_bits: [::std::os::raw::c_uchar; 64usize],
}
impl Default for mpoly_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 mpoly_ctx_t = [mpoly_ctx_struct; 1usize];
#[repr(C)]
pub struct nmod_mpoly_ctx_struct {
pub minfo: mpoly_ctx_t,
pub mod_: nmod_t,
}
impl Default for nmod_mpoly_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 nmod_mpoly_ctx_t = [nmod_mpoly_ctx_struct; 1usize];
#[repr(C)]
pub struct fmpz_mpoly_ctx_struct {
pub minfo: mpoly_ctx_t,
}
impl Default for fmpz_mpoly_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_mpoly_ctx_t = [fmpz_mpoly_ctx_struct; 1usize];
#[repr(C)]
pub struct fmpq_mpoly_ctx_struct {
pub zctx: fmpz_mpoly_ctx_t,
}
impl Default for fmpq_mpoly_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 fmpq_mpoly_ctx_t = [fmpq_mpoly_ctx_struct; 1usize];
#[repr(C)]
pub struct fmpz_mod_mpoly_ctx_struct {
pub minfo: mpoly_ctx_t,
pub ffinfo: fmpz_mod_ctx_t,
}
impl Default for fmpz_mod_mpoly_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_mod_mpoly_ctx_t = [fmpz_mod_mpoly_ctx_struct; 1usize];
#[repr(C)]
pub struct fq_nmod_mpoly_ctx_struct {
pub minfo: mpoly_ctx_t,
pub fqctx: fq_nmod_ctx_t,
}
impl Default for fq_nmod_mpoly_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 fq_nmod_mpoly_ctx_t = [fq_nmod_mpoly_ctx_struct; 1usize];
#[repr(C)]
pub struct mpoly_void_ring_struct {
pub elem_size: slong,
pub ctx: *const ::std::os::raw::c_void,
pub init: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: *const ::std::os::raw::c_void,
),
>,
pub clear: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: *const ::std::os::raw::c_void,
),
>,
pub is_zero: ::std::option::Option<
unsafe extern "C" fn(
arg1: *const ::std::os::raw::c_void,
arg2: *const ::std::os::raw::c_void,
) -> ::std::os::raw::c_int,
>,
pub zero: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: *const ::std::os::raw::c_void,
),
>,
pub one: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: *const ::std::os::raw::c_void,
),
>,
pub set_fmpz: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: *const fmpz,
arg3: *const ::std::os::raw::c_void,
),
>,
pub set: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: *const ::std::os::raw::c_void,
arg3: *const ::std::os::raw::c_void,
),
>,
pub swap: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: *mut ::std::os::raw::c_void,
arg3: *const ::std::os::raw::c_void,
),
>,
pub neg: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: *const ::std::os::raw::c_void,
arg3: *const ::std::os::raw::c_void,
),
>,
pub add: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: *const ::std::os::raw::c_void,
arg3: *const ::std::os::raw::c_void,
arg4: *const ::std::os::raw::c_void,
),
>,
pub sub: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: *const ::std::os::raw::c_void,
arg3: *const ::std::os::raw::c_void,
arg4: *const ::std::os::raw::c_void,
),
>,
pub mul_fmpz: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: *const ::std::os::raw::c_void,
arg3: *const fmpz,
arg4: *const ::std::os::raw::c_void,
),
>,
pub mul: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: *const ::std::os::raw::c_void,
arg3: *const ::std::os::raw::c_void,
arg4: *const ::std::os::raw::c_void,
),
>,
pub divexact: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: *const ::std::os::raw::c_void,
arg3: *const ::std::os::raw::c_void,
arg4: *const ::std::os::raw::c_void,
),
>,
pub divides: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: *const ::std::os::raw::c_void,
arg3: *const ::std::os::raw::c_void,
arg4: *const ::std::os::raw::c_void,
) -> ::std::os::raw::c_int,
>,
pub pow_fmpz: ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: *const ::std::os::raw::c_void,
arg3: *const fmpz,
arg4: *const ::std::os::raw::c_void,
) -> ::std::os::raw::c_int,
>,
pub length: ::std::option::Option<
unsafe extern "C" fn(
arg1: *const ::std::os::raw::c_void,
arg2: *const ::std::os::raw::c_void,
) -> slong,
>,
}
impl Default for mpoly_void_ring_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 mpoly_void_ring_t = [mpoly_void_ring_struct; 1usize];
#[repr(C)]
pub struct mpoly_gcd_info_struct {
pub Amax_exp: *mut ulong,
pub Amin_exp: *mut ulong,
pub Astride: *mut ulong,
pub Adeflate_deg: *mut slong,
pub Alead_count: *mut slong,
pub Atail_count: *mut slong,
pub Bmax_exp: *mut ulong,
pub Bmin_exp: *mut ulong,
pub Bstride: *mut ulong,
pub Bdeflate_deg: *mut slong,
pub Blead_count: *mut slong,
pub Btail_count: *mut slong,
pub Gmin_exp: *mut ulong,
pub Abarmin_exp: *mut ulong,
pub Bbarmin_exp: *mut ulong,
pub Gstride: *mut ulong,
pub Gterm_count_est: *mut slong,
pub Gdeflate_deg_bound: *mut slong,
pub Gbits: flint_bitcnt_t,
pub Abarbits: flint_bitcnt_t,
pub Bbarbits: flint_bitcnt_t,
pub mvars: slong,
pub Adeflate_tdeg: slong,
pub Bdeflate_tdeg: slong,
pub Adensity: f64,
pub Bdensity: f64,
pub hensel_time: f64,
pub brown_time: f64,
pub zippel_time: f64,
pub zippel2_time: f64,
pub hensel_perm: *mut slong,
pub brown_perm: *mut slong,
pub zippel_perm: *mut slong,
pub zippel2_perm: *mut slong,
pub can_use: ::std::os::raw::c_uint,
pub Gdeflate_deg_bounds_are_nice: ::std::os::raw::c_int,
pub data: *mut ::std::os::raw::c_char,
}
impl Default for mpoly_gcd_info_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 mpoly_gcd_info_t = [mpoly_gcd_info_struct; 1usize];
#[repr(C)]
pub struct mpoly_compression_struct {
pub mvars: slong,
pub nvars: slong,
pub exps: *mut slong,
pub exps_alloc: slong,
pub rest: *mut slong,
pub rest_alloc: slong,
pub umat: *mut slong,
pub deltas: *mut slong,
pub degs: *mut slong,
pub is_trivial: ::std::os::raw::c_int,
pub is_perm: ::std::os::raw::c_int,
pub is_irred: ::std::os::raw::c_int,
}
impl Default for mpoly_compression_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 mpoly_compression_t = [mpoly_compression_struct; 1usize];
#[repr(C)]
pub struct nmod_mpolyn_struct {
pub coeffs: *mut n_poly_struct,
pub exps: *mut ulong,
pub alloc: slong,
pub length: slong,
pub bits: slong,
}
impl Default for nmod_mpolyn_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 nmod_mpolyn_t = [nmod_mpolyn_struct; 1usize];
#[repr(C)]
pub struct nmod_mpolyun_struct {
pub coeffs: *mut nmod_mpolyn_struct,
pub exps: *mut ulong,
pub alloc: slong,
pub length: slong,
pub bits: flint_bitcnt_t,
}
impl Default for nmod_mpolyun_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 nmod_mpolyun_t = [nmod_mpolyun_struct; 1usize];
pub const nmod_gcds_ret_t_nmod_gcds_success: nmod_gcds_ret_t = 0;
pub const nmod_gcds_ret_t_nmod_gcds_form_main_degree_too_high: nmod_gcds_ret_t = 1;
pub const nmod_gcds_ret_t_nmod_gcds_form_wrong: nmod_gcds_ret_t = 2;
pub const nmod_gcds_ret_t_nmod_gcds_no_solution: nmod_gcds_ret_t = 3;
pub const nmod_gcds_ret_t_nmod_gcds_scales_not_found: nmod_gcds_ret_t = 4;
pub const nmod_gcds_ret_t_nmod_gcds_eval_point_not_found: nmod_gcds_ret_t = 5;
pub const nmod_gcds_ret_t_nmod_gcds_eval_gcd_deg_too_high: nmod_gcds_ret_t = 6;
pub type nmod_gcds_ret_t = ::std::os::raw::c_uint;
/* n_poly.h */
#[repr(C)]
pub struct n_polyun_stack_struct {
pub array: *mut *mut n_polyun_struct,
pub alloc: slong,
pub top: slong,
}
impl Default for n_polyun_stack_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 n_polyun_stack_t = [n_polyun_stack_struct; 1usize];
#[repr(C)]
pub struct n_poly_polyun_stack_struct {
pub poly_stack: n_poly_stack_t,
pub polyun_stack: n_polyun_stack_t,
}
impl Default for n_poly_polyun_stack_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 n_poly_polyun_stack_t = [n_poly_polyun_stack_struct; 1usize];
unsafe extern "C" {
pub fn n_poly_realloc(A: *mut n_poly_struct, len: slong);
pub fn n_poly_is_canonical(A: *const n_poly_struct) -> ::std::os::raw::c_int;
pub fn n_poly_reverse(
output: *mut n_poly_struct,
input: *const n_poly_struct,
m: slong,
);
pub fn n_poly_set_coeff(A: *mut n_poly_struct, e: slong, c: ulong);
pub fn _n_poly_eval_pow(
P: *mut n_poly_struct,
alphapow: *mut n_poly_struct,
params: dot_params_t,
ctx: nmod_t,
) -> ulong;
pub fn n_poly_print_pretty(
A: *const n_poly_struct,
x: *const ::std::os::raw::c_char,
);
pub fn n_poly_mod_is_canonical(
A: *const n_poly_struct,
mod_: nmod_t,
) -> ::std::os::raw::c_int;
pub fn n_poly_mod_set_coeff_ui(
A: *mut n_poly_struct,
j: slong,
c: ulong,
mod_: nmod_t,
);
pub fn n_poly_mod_scalar_mul_ui(
A: *mut n_poly_struct,
B: *const n_poly_struct,
c: ulong,
ctx: nmod_t,
);
pub fn n_poly_mod_eval_step2(
Acur: *mut n_poly_struct,
Ainc: *const n_poly_struct,
mod_: nmod_t,
) -> ulong;
pub fn n_poly_mod_add_ui(
res: *mut n_poly_struct,
poly: *const n_poly_struct,
c: ulong,
ctx: nmod_t,
);
pub fn n_poly_mod_shift_left_scalar_addmul(
A: *mut n_poly_struct,
k: slong,
c: ulong,
mod_: nmod_t,
);
pub fn n_poly_mod_addmul_linear(
A: *mut n_poly_struct,
B: *const n_poly_struct,
C: *const n_poly_struct,
d1: ulong,
d0: ulong,
mod_: nmod_t,
);
pub fn n_poly_mod_scalar_addmul_nmod(
A: *mut n_poly_struct,
B: *const n_poly_struct,
C: *const n_poly_struct,
d0: ulong,
ctx: nmod_t,
);
pub fn n_poly_mod_eval_pow(
P: *mut n_poly_struct,
alphapow: *mut n_poly_struct,
ctx: nmod_t,
) -> ulong;
pub fn n_poly_mod_eval2_pow(
vp: *mut ulong,
vm: *mut ulong,
P: *const n_poly_struct,
alphapow: *mut n_poly_struct,
ctx: nmod_t,
);
pub fn n_poly_mod_div_root(
Q: *mut n_poly_struct,
A: *const n_poly_struct,
c: ulong,
ctx: nmod_t,
) -> ulong;
pub fn n_poly_mod_mul(
A: *mut n_poly_struct,
B: *const n_poly_struct,
C: *const n_poly_struct,
mod_: nmod_t,
);
pub fn n_poly_mod_mullow(
A: *mut n_poly_struct,
B: *const n_poly_struct,
C: *const n_poly_struct,
n: slong,
mod_: nmod_t,
);
pub fn n_poly_mod_div(
Q: *mut n_poly_struct,
A: *const n_poly_struct,
B: *const n_poly_struct,
mod_: nmod_t,
);
pub fn n_poly_mod_rem(
R: *mut n_poly_struct,
A: *const n_poly_struct,
B: *const n_poly_struct,
mod_: nmod_t,
);
pub fn n_poly_mod_divrem(
Q: *mut n_poly_struct,
R: *mut n_poly_struct,
A: *const n_poly_struct,
B: *const n_poly_struct,
mod_: nmod_t,
);
pub fn n_poly_mod_divexact(
Q: *mut n_poly_struct,
A: *const n_poly_struct,
B: *const n_poly_struct,
mod_: nmod_t,
);
pub fn n_poly_mod_pow(
res: *mut n_poly_struct,
poly: *const n_poly_struct,
e: ulong,
ctx: nmod_t,
);
pub fn n_poly_mod_remove(
f: *mut n_poly_struct,
p: *const n_poly_struct,
ctx: nmod_t,
) -> ulong;
pub fn n_poly_mod_mulmod_preinv(
A: *mut n_poly_struct,
B: *const n_poly_struct,
C: *const n_poly_struct,
M: *const n_poly_struct,
Minv: *const n_poly_struct,
ctx: nmod_t,
);
pub fn n_poly_mod_mulmod(
res: *mut n_poly_struct,
poly1: *const n_poly_struct,
poly2: *const n_poly_struct,
f: *const n_poly_struct,
mod_: nmod_t,
);
pub fn n_poly_mod_invmod(
A: *mut n_poly_struct,
B: *const n_poly_struct,
P: *const n_poly_struct,
mod_: nmod_t,
) -> ::std::os::raw::c_int;
pub fn n_poly_mod_gcd(
G: *mut n_poly_struct,
A: *const n_poly_struct,
B: *const n_poly_struct,
mod_: nmod_t,
);
pub fn n_poly_mod_xgcd(
G: *mut n_poly_struct,
S: *mut n_poly_struct,
T: *mut n_poly_struct,
A: *const n_poly_struct,
B: *const n_poly_struct,
mod_: nmod_t,
);
pub fn n_poly_mod_inv_series(
Qinv: *mut n_poly_struct,
Q: *const n_poly_struct,
n: slong,
mod_: nmod_t,
);
pub fn n_poly_mod_div_series(
Q: *mut n_poly_struct,
A: *const n_poly_struct,
B: *const n_poly_struct,
order: slong,
ctx: nmod_t,
);
pub fn n_fq_gen(a: *mut ulong, ctx: *const fq_nmod_ctx_struct);
pub fn n_fq_equal_fq_nmod(
a: *const ulong,
b: *const nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn n_fq_is_canonical(
a: *const ulong,
ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn n_fq_randtest_not_zero(
a: *mut ulong,
state: *mut flint_rand_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_get_str_pretty(
a: *const ulong,
ctx: *const fq_nmod_ctx_struct,
) -> *mut ::std::os::raw::c_char;
pub fn n_fq_fprint_pretty(
file: *mut FILE,
a: *const ulong,
ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn n_fq_print_pretty(a: *const ulong, ctx: *const fq_nmod_ctx_struct);
pub fn n_fq_get_n_poly(
a: *mut n_poly_struct,
b: *const ulong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_get_fq_nmod(
a: *mut nmod_poly_struct,
b: *const ulong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn _n_fq_set_n_poly(
a: *mut ulong,
bcoeffs: *const ulong,
blen: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_set_fq_nmod(
a: *mut ulong,
b: *const nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_add_si(
a: *mut ulong,
b: *const ulong,
c: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_add_fq_nmod(
a: *mut ulong,
b: *const ulong,
c: *const nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_sub_fq_nmod(
a: *mut ulong,
b: *const ulong,
c: *const nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn _n_fq_mul_ui(
a: *mut ulong,
b: *const ulong,
c: ulong,
d: slong,
mod_: nmod_t,
);
pub fn _n_fq_madd2(
a: *mut ulong,
b: *const ulong,
c: *const ulong,
ctx: *const fq_nmod_ctx_struct,
t: *mut ulong,
);
pub fn _n_fq_mul2(
t: *mut ulong,
b: *const ulong,
c: *const ulong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn _n_fq_reduce(
a: *mut ulong,
b: *mut ulong,
blen: slong,
ctx: *const fq_nmod_ctx_struct,
t: *mut ulong,
);
pub fn _n_fq_dot_lazy_size(
len: slong,
ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _n_fq_madd2_lazy1(a: *mut ulong, b: *const ulong, c: *const ulong, d: slong);
pub fn _n_fq_mul2_lazy1(a: *mut ulong, b: *const ulong, c: *const ulong, d: slong);
pub fn _n_fq_reduce2_lazy1(a: *mut ulong, d: slong, ctx: nmod_t);
pub fn _n_fq_madd2_lazy2(a: *mut ulong, b: *const ulong, c: *const ulong, d: slong);
pub fn _n_fq_mul2_lazy2(a: *mut ulong, b: *const ulong, c: *const ulong, d: slong);
pub fn _n_fq_reduce2_lazy2(a: *mut ulong, d: slong, ctx: nmod_t);
pub fn _n_fq_madd2_lazy3(a: *mut ulong, b: *const ulong, c: *const ulong, d: slong);
pub fn _n_fq_mul2_lazy3(a: *mut ulong, b: *const ulong, c: *const ulong, d: slong);
pub fn _n_fq_reduce2_lazy3(a: *mut ulong, d: slong, ctx: nmod_t);
pub fn _n_fq_inv(
a: *mut ulong,
b: *const ulong,
ctx: *const fq_nmod_ctx_struct,
t: *mut ulong,
);
pub fn n_fq_inv(a: *mut ulong, b: *const ulong, ctx: *const fq_nmod_ctx_struct);
pub fn n_fq_mul(
a: *mut ulong,
b: *const ulong,
c: *const ulong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_mul_fq_nmod(
a: *mut ulong,
b: *const ulong,
c: *const nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_addmul(
a: *mut ulong,
b: *const ulong,
c: *const ulong,
d: *const ulong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn _n_fq_pow_ui(
a: *mut ulong,
b: *const ulong,
e: ulong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_pow_ui(
a: *mut ulong,
b: *const ulong,
e: ulong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_pow_fmpz(
a: *mut ulong,
b: *const ulong,
e: *const fmpz,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_init2(
A: *mut n_poly_struct,
alloc: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_is_canonical(
a: *const n_poly_struct,
ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _n_fq_poly_one(A: *mut n_poly_struct, d: slong);
pub fn n_fq_poly_is_one(
A: *mut n_poly_struct,
ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn n_fq_poly_equal(
A: *const n_poly_struct,
B: *const n_poly_struct,
ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn n_fq_poly_print_pretty(
A: *const n_poly_struct,
x: *const ::std::os::raw::c_char,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_set(
A: *mut n_poly_struct,
B: *const n_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_randtest(
A: *mut n_poly_struct,
state: *mut flint_rand_struct,
len: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_make_monic(
A: *mut n_poly_struct,
B: *const n_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_get_coeff_n_fq(
c: *mut ulong,
A: *const n_poly_struct,
e: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_get_coeff_fq_nmod(
c: *mut nmod_poly_struct,
A: *const n_poly_struct,
e: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_set_coeff_fq_nmod(
A: *mut n_poly_struct,
j: slong,
c: *const nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_set_coeff_n_fq(
A: *mut n_poly_struct,
j: slong,
c: *const ulong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_scalar_mul_ui(
A: *mut n_poly_struct,
B: *const n_poly_struct,
c: ulong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_scalar_mul_n_fq(
A: *mut n_poly_struct,
B: *const n_poly_struct,
c: *const ulong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_scalar_addmul_n_fq(
A: *mut n_poly_struct,
B: *const n_poly_struct,
C: *const n_poly_struct,
d: *const ulong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_shift_left_scalar_submul(
A: *mut n_poly_struct,
k: slong,
c: *const ulong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_evaluate_fq_nmod(
e: *mut nmod_poly_struct,
A: *const n_poly_struct,
c: *const nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_evaluate_n_fq(
e: *mut ulong,
A: *const n_poly_struct,
c: *const ulong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_get_fq_nmod_poly(
A: *mut fq_nmod_poly_struct,
B: *const n_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_set_n_fq(
A: *mut n_poly_struct,
c: *const ulong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_set_fq_nmod(
A: *mut n_poly_struct,
c: *const nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_set_fq_nmod_poly(
A: *mut n_poly_struct,
B: *const fq_nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_shift_left(
A: *mut n_poly_struct,
B: *const n_poly_struct,
n: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_shift_right(
A: *mut n_poly_struct,
B: *const n_poly_struct,
n: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_truncate(
A: *mut n_poly_struct,
len: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_neg(
A: *mut n_poly_struct,
B: *const n_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_add(
A: *mut n_poly_struct,
B: *const n_poly_struct,
C: *const n_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_sub(
A: *mut n_poly_struct,
B: *const n_poly_struct,
C: *const n_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_add_si(
A: *mut n_poly_struct,
B: *const n_poly_struct,
c: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn _n_fq_poly_mul_(
A: *mut ulong,
B: *const ulong,
Blen: slong,
C: *const ulong,
Clen: slong,
ctx: *const fq_nmod_ctx_struct,
St: *mut n_poly_stack_struct,
);
pub fn n_fq_poly_mul_(
A: *mut n_poly_struct,
B: *const n_poly_struct,
C: *const n_poly_struct,
ctx: *const fq_nmod_ctx_struct,
St: *mut n_poly_stack_struct,
);
pub fn n_fq_poly_mul(
A: *mut n_poly_struct,
B: *const n_poly_struct,
C: *const n_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_pow(
A: *mut n_poly_struct,
B: *const n_poly_struct,
e: ulong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_remove(
f: *mut n_poly_struct,
g: *const n_poly_struct,
ctx: *const fq_nmod_ctx_struct,
) -> ulong;
pub fn _n_fq_poly_divrem_basecase_(
Q: *mut ulong,
A: *mut ulong,
AA: *const ulong,
Alen: slong,
B: *const ulong,
Blen: slong,
invB: *const ulong,
ctx: *const fq_nmod_ctx_struct,
St: *mut n_poly_stack_struct,
);
pub fn n_fq_poly_divrem_divconquer_(
Q: *mut n_poly_struct,
R: *mut n_poly_struct,
A: *const n_poly_struct,
B: *const n_poly_struct,
ctx: *const fq_nmod_ctx_struct,
St: *mut n_poly_stack_struct,
);
pub fn n_fq_poly_divrem(
Q: *mut n_poly_struct,
R: *mut n_poly_struct,
A: *const n_poly_struct,
B: *const n_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_gcd_(
G: *mut n_poly_struct,
A: *const n_poly_struct,
B: *const n_poly_struct,
ctx: *const fq_nmod_ctx_struct,
St: *mut n_poly_stack_struct,
);
pub fn n_fq_poly_gcd(
G: *mut n_poly_struct,
A: *const n_poly_struct,
B: *const n_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_xgcd(
G: *mut n_poly_struct,
S: *mut n_poly_struct,
T: *mut n_poly_struct,
B: *const n_poly_struct,
C: *const n_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_mulmod(
A: *mut n_poly_struct,
B: *const n_poly_struct,
C: *const n_poly_struct,
M: *const n_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn _n_fq_poly_rem_basecase_(
Q: *mut ulong,
A: *mut ulong,
AA: *const ulong,
Alen: slong,
B: *const ulong,
Blen: slong,
invB: *const ulong,
ctx: *const fq_nmod_ctx_struct,
St: *mut n_poly_stack_struct,
);
pub fn n_fq_poly_rem(
R: *mut n_poly_struct,
A: *const n_poly_struct,
B: *const n_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_mullow(
A: *mut n_poly_struct,
B: *const n_poly_struct,
C: *const n_poly_struct,
order: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_inv_series(
A: *mut n_poly_struct,
B: *const n_poly_struct,
order: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_poly_eval_pow(
ev: *mut ulong,
A: *const n_poly_struct,
alphapow: *mut n_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_polyun_set(
A: *mut n_polyun_struct,
B: *const n_polyun_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_bpoly_clear(A: *mut n_bpoly_struct);
pub fn n_bpoly_realloc(A: *mut n_bpoly_struct, len: slong);
pub fn n_bpoly_print_pretty(
A: *const n_bpoly_struct,
xvar: *const ::std::os::raw::c_char,
yvar: *const ::std::os::raw::c_char,
);
pub fn n_bpoly_one(A: *mut n_bpoly_struct);
pub fn _n_bpoly_set(A: *mut n_bpoly_struct, B: *const n_bpoly_struct);
pub fn n_bpoly_equal(
A: *const n_bpoly_struct,
B: *const n_bpoly_struct,
) -> ::std::os::raw::c_int;
pub fn n_bpoly_set_coeff(A: *mut n_bpoly_struct, e0: slong, e1: slong, c: ulong);
pub fn n_bpoly_set_coeff_nonzero(
A: *mut n_bpoly_struct,
e0: slong,
e1: slong,
c: ulong,
);
pub fn n_bpoly_mod_derivative_gen0(
A: *mut n_bpoly_struct,
B: *const n_bpoly_struct,
ctx: nmod_t,
);
pub fn n_bpoly_degree1(A: *const n_bpoly_struct) -> slong;
pub fn n_bpoly_set_poly_gen0(A: *mut n_bpoly_struct, B: *const n_poly_struct);
pub fn n_bpoly_set_poly_gen1(A: *mut n_bpoly_struct, B: *const n_poly_struct);
pub fn n_bpoly_mod_is_canonical(
A: *const n_bpoly_struct,
mod_: nmod_t,
) -> ::std::os::raw::c_int;
pub fn n_bpoly_scalar_mul_nmod(A: *mut n_bpoly_struct, c: ulong, ctx: nmod_t);
pub fn n_bpoly_mod_content_last(
g: *mut n_poly_struct,
A: *const n_bpoly_struct,
ctx: nmod_t,
);
pub fn n_bpoly_mod_divexact_last(
A: *mut n_bpoly_struct,
b: *const n_poly_struct,
ctx: nmod_t,
);
pub fn n_bpoly_mod_mul_last(
A: *mut n_bpoly_struct,
b: *const n_poly_struct,
ctx: nmod_t,
);
pub fn n_bpoly_mod_taylor_shift_gen0(A: *mut n_bpoly_struct, c: ulong, ctx: nmod_t);
pub fn n_bpoly_mod_taylor_shift_gen1(
A: *mut n_bpoly_struct,
B: *const n_bpoly_struct,
c: ulong,
ctx: nmod_t,
);
pub fn n_bpoly_mod_add(
A: *mut n_bpoly_struct,
B: *const n_bpoly_struct,
C: *const n_bpoly_struct,
ctx: nmod_t,
);
pub fn n_bpoly_mod_sub(
A: *mut n_bpoly_struct,
B: *const n_bpoly_struct,
C: *const n_bpoly_struct,
ctx: nmod_t,
);
pub fn n_bpoly_mod_mul(
A: *mut n_bpoly_struct,
B: *const n_bpoly_struct,
C: *const n_bpoly_struct,
ctx: nmod_t,
);
pub fn n_bpoly_mod_divides(
Q: *mut n_bpoly_struct,
A: *const n_bpoly_struct,
B: *const n_bpoly_struct,
ctx: nmod_t,
) -> ::std::os::raw::c_int;
pub fn n_bpoly_mod_make_primitive(
g: *mut n_poly_struct,
A: *mut n_bpoly_struct,
ctx: nmod_t,
);
pub fn n_bpoly_mod_mul_series(
A: *mut n_bpoly_struct,
B: *const n_bpoly_struct,
C: *const n_bpoly_struct,
order: slong,
ctx: nmod_t,
);
pub fn n_bpoly_mod_divrem_series(
Q: *mut n_bpoly_struct,
R: *mut n_bpoly_struct,
A: *const n_bpoly_struct,
B: *const n_bpoly_struct,
order: slong,
ctx: nmod_t,
);
pub fn n_bpoly_mod_interp_reduce_2sm_poly(
Ap: *mut n_poly_struct,
Am: *mut n_poly_struct,
A: *const n_bpoly_struct,
alphapow: *mut n_poly_struct,
mod_: nmod_t,
);
pub fn n_bpoly_mod_interp_lift_2sm_poly(
deg1: *mut slong,
T: *mut n_bpoly_struct,
A: *const n_poly_struct,
B: *const n_poly_struct,
alpha: ulong,
mod_: nmod_t,
);
pub fn n_bpoly_mod_interp_crt_2sm_poly(
deg1: *mut slong,
F: *mut n_bpoly_struct,
T: *mut n_bpoly_struct,
A: *mut n_poly_struct,
B: *mut n_poly_struct,
modulus: *const n_poly_struct,
alphapow: *mut n_poly_struct,
mod_: nmod_t,
) -> ::std::os::raw::c_int;
pub fn n_bpoly_mod_gcd_brown_smprime(
G: *mut n_bpoly_struct,
Abar: *mut n_bpoly_struct,
Bbar: *mut n_bpoly_struct,
A: *mut n_bpoly_struct,
B: *mut n_bpoly_struct,
ctx: nmod_t,
Sp: *mut n_poly_bpoly_stack_struct,
) -> ::std::os::raw::c_int;
pub fn n_fq_bpoly_is_canonical(
A: *const n_bpoly_struct,
ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn n_fq_bpoly_one(A: *mut n_bpoly_struct, ctx: *const fq_nmod_ctx_struct);
pub fn n_fq_bpoly_set(
A: *mut n_bpoly_struct,
B: *const n_bpoly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_bpoly_equal(
A: *const n_bpoly_struct,
B: *const n_bpoly_struct,
ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn n_fq_bpoly_get_coeff_n_fq(
c: *mut ulong,
A: *const n_bpoly_struct,
e0: slong,
e1: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_bpoly_get_coeff_fq_nmod(
c: *mut nmod_poly_struct,
A: *const n_bpoly_struct,
e0: slong,
e1: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_bpoly_set_coeff_n_fq(
A: *mut n_bpoly_struct,
e0: slong,
e1: slong,
c: *const ulong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_bpoly_set_fq_nmod_poly_gen0(
A: *mut n_bpoly_struct,
B: *const fq_nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_bpoly_set_n_fq_poly_gen0(
A: *mut n_bpoly_struct,
B: *const n_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_bpoly_set_n_fq_poly_gen1(
A: *mut n_bpoly_struct,
B: *const n_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_bpoly_derivative_gen0(
A: *mut n_bpoly_struct,
B: *const n_bpoly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_bpoly_scalar_mul_n_fq(
A: *mut n_bpoly_struct,
c: *const ulong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_bpoly_taylor_shift_gen0_fq_nmod(
A: *mut n_bpoly_struct,
alpha: *const nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_bpoly_taylor_shift_gen1_fq_nmod(
A: *mut n_bpoly_struct,
B: *const n_bpoly_struct,
c_: *const nmod_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_bpoly_taylor_shift_gen0_n_fq(
A: *mut n_bpoly_struct,
alpha: *const ulong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_bpoly_gcd_brown_smprime(
G: *mut n_bpoly_struct,
Abar: *mut n_bpoly_struct,
Bbar: *mut n_bpoly_struct,
A: *mut n_bpoly_struct,
B: *mut n_bpoly_struct,
ctx: *const fq_nmod_ctx_struct,
Sp: *mut n_poly_bpoly_stack_struct,
) -> ::std::os::raw::c_int;
pub fn n_fq_bpoly_print_pretty(
A: *const n_bpoly_struct,
xvar: *const ::std::os::raw::c_char,
yvar: *const ::std::os::raw::c_char,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_tpoly_clear(A: *mut n_tpoly_struct);
pub fn n_tpoly_fit_length(A: *mut n_tpoly_struct, len: slong);
pub fn n_polyu_clear(A: *mut n_polyu_struct);
pub fn n_polyu_realloc(A: *mut n_polyu_struct, len: slong);
pub fn n_polyu3_print_pretty(
A: *const n_polyu_struct,
gen0: *const ::std::os::raw::c_char,
gen1: *const ::std::os::raw::c_char,
var2: *const ::std::os::raw::c_char,
);
pub fn n_polyu3_degrees(
deg0: *mut slong,
deg1: *mut slong,
deg2: *mut slong,
A: *const n_polyu_struct,
);
pub fn nmod_pow_cache_start(
b: ulong,
pos_direct: *mut n_poly_struct,
pos_bin: *mut n_poly_struct,
neg_direct: *mut n_poly_struct,
);
pub fn nmod_pow_cache_mulpow_ui(
a: ulong,
e: ulong,
pos_direct: *mut n_poly_struct,
pos_bin: *mut n_poly_struct,
neg_direct: *mut n_poly_struct,
ctx: nmod_t,
) -> ulong;
pub fn nmod_pow_cache_mulpow_neg_ui(
a: ulong,
e: ulong,
pos_direct: *mut n_poly_struct,
pos_bin: *mut n_poly_struct,
neg_direct: *mut n_poly_struct,
ctx: nmod_t,
) -> ulong;
pub fn nmod_pow_cache_mulpow_fmpz(
a: ulong,
e: *const fmpz,
pos_direct: *mut n_poly_struct,
pos_bin: *mut n_poly_struct,
neg_direct: *mut n_poly_struct,
ctx: nmod_t,
) -> ulong;
pub fn n_fq_pow_cache_start_n_fq(
b: *const ulong,
pos_direct: *mut n_poly_struct,
pos_bin: *mut n_poly_struct,
neg_direct: *mut n_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_pow_cache_start_fq_nmod(
b: *const nmod_poly_struct,
pos_direct: *mut n_poly_struct,
pos_bin: *mut n_poly_struct,
neg_direct: *mut n_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_pow_cache_mulpow_ui(
r: *mut ulong,
a: *const ulong,
e: ulong,
pos_direct: *mut n_poly_struct,
pos_bin: *mut n_poly_struct,
neg_direct: *mut n_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_pow_cache_mulpow_neg_ui(
r: *mut ulong,
a: *const ulong,
e: ulong,
pos_direct: *mut n_poly_struct,
pos_bin: *mut n_poly_struct,
neg_direct: *mut n_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_pow_cache_mulpow_fmpz(
r: *mut ulong,
a: *const ulong,
e: *const fmpz,
pos_direct: *mut n_poly_struct,
pos_bin: *mut n_poly_struct,
neg_direct: *mut n_poly_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn nmod_eval_interp_init(E: *mut nmod_eval_interp_struct);
pub fn nmod_eval_interp_clear(E: *mut nmod_eval_interp_struct);
pub fn nmod_eval_interp_set_degree_modulus(
E: *mut nmod_eval_interp_struct,
deg: slong,
ctx: nmod_t,
) -> ::std::os::raw::c_int;
pub fn nmod_eval_interp_to_coeffs_poly(
a: *mut n_poly_struct,
v: *const n_poly_struct,
E: *mut nmod_eval_interp_struct,
ctx: nmod_t,
);
pub fn nmod_eval_interp_from_coeffs_poly(
v: *mut n_poly_struct,
a: *const n_poly_struct,
E: *mut nmod_eval_interp_struct,
ctx: nmod_t,
);
pub fn nmod_eval_interp_to_coeffs_n_fq_poly(
a: *mut n_poly_struct,
v: *const n_poly_struct,
E: *mut nmod_eval_interp_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn nmod_eval_interp_from_coeffs_n_fq_poly(
v: *mut n_poly_struct,
a: *const n_poly_struct,
E: *mut nmod_eval_interp_struct,
ctx: *const fq_nmod_ctx_struct,
);
pub fn nmod_evals_add_inplace(
a: *mut n_poly_struct,
b: *mut n_poly_struct,
len: slong,
ctx: nmod_t,
);
pub fn nmod_evals_mul(
a: *mut n_poly_struct,
b: *mut n_poly_struct,
c: *mut n_poly_struct,
len: slong,
ctx: nmod_t,
);
pub fn nmod_evals_addmul(
a: *mut n_poly_struct,
b: *mut n_poly_struct,
c: *mut n_poly_struct,
len: slong,
ctx: nmod_t,
);
pub fn nmod_evals_fmma(
a: *mut n_poly_struct,
b: *mut n_poly_struct,
c: *mut n_poly_struct,
d: *mut n_poly_struct,
e: *mut n_poly_struct,
len: slong,
ctx: nmod_t,
);
pub fn n_fq_evals_add_inplace(
a: *mut n_poly_struct,
b: *mut n_poly_struct,
len: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_evals_mul(
a: *mut n_poly_struct,
b: *mut n_poly_struct,
c: *mut n_poly_struct,
len: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_evals_addmul(
a: *mut n_poly_struct,
b: *mut n_poly_struct,
c: *mut n_poly_struct,
len: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_fq_evals_fmma(
a: *mut n_poly_struct,
b: *mut n_poly_struct,
c: *mut n_poly_struct,
f: *mut n_poly_struct,
e: *mut n_poly_struct,
len: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn n_polyun_clear(A: *mut n_polyun_struct);
pub fn n_polyun_realloc(A: *mut n_polyun_struct, len: slong);
pub fn n_polyun_is_canonical(A: *const n_polyun_struct) -> ::std::os::raw::c_int;
pub fn n_polyun_mod_is_canonical(
A: *const n_polyun_struct,
mod_: nmod_t,
) -> ::std::os::raw::c_int;
pub fn n_polyun_set(A: *mut n_polyun_struct, B: *const n_polyun_struct);
pub fn n_polyu1n_print_pretty(
A: *const n_polyun_struct,
var0: *const ::std::os::raw::c_char,
varlast: *const ::std::os::raw::c_char,
);
pub fn n_polyu2n_print_pretty(
A: *const n_polyun_struct,
gen0: *const ::std::os::raw::c_char,
gen1: *const ::std::os::raw::c_char,
varlast: *const ::std::os::raw::c_char,
);
pub fn n_polyu3n_print_pretty(
A: *const n_polyun_struct,
gen0: *const ::std::os::raw::c_char,
gen1: *const ::std::os::raw::c_char,
var2: *const ::std::os::raw::c_char,
varlast: *const ::std::os::raw::c_char,
);
pub fn n_polyun_equal(
A: *const n_polyun_struct,
B: *const n_polyun_struct,
) -> ::std::os::raw::c_int;
pub fn n_polyu1n_mod_gcd_brown_smprime(
G: *mut n_polyun_struct,
Abar: *mut n_polyun_struct,
Bbar: *mut n_polyun_struct,
A: *mut n_polyun_struct,
B: *mut n_polyun_struct,
ctx: nmod_t,
St: *mut n_poly_polyun_stack_struct,
) -> ::std::os::raw::c_int;
pub fn n_fq_poly_product_roots_n_fq(
M: *mut n_poly_struct,
H: *const ulong,
length: slong,
ctx: *const fq_nmod_ctx_struct,
St: *mut n_poly_stack_struct,
);
pub fn n_polyun_product_roots(
M: *mut n_polyun_struct,
H: *const n_polyun_struct,
ctx: nmod_t,
) -> slong;
pub fn n_fq_polyun_product_roots(
M: *mut n_polyun_struct,
H: *const n_polyun_struct,
ctx: *const fq_nmod_ctx_struct,
St: *mut n_poly_stack_struct,
) -> slong;
pub fn _nmod_zip_eval_step(
cur: *mut ulong,
inc: *const ulong,
coeffs: *const ulong,
length: slong,
ctx: nmod_t,
) -> ulong;
pub fn _n_fq_zip_eval_step(
res: *mut ulong,
cur: *mut ulong,
inc: *const ulong,
coeffs: *const ulong,
length: slong,
ctx: *const fq_nmod_ctx_struct,
);
pub fn _n_fqp_zip_eval_step(
res: *mut ulong,
cur: *mut ulong,
inc: *const ulong,
coeffs: *const ulong,
length: slong,
d: slong,
mod_: nmod_t,
);
pub fn _nmod_zip_vand_solve(
coeffs: *mut ulong,
monomials: *const ulong,
mlength: slong,
evals: *const ulong,
elength: slong,
master: *const ulong,
scratch: *mut ulong,
ctx: nmod_t,
) -> ::std::os::raw::c_int;
pub fn _n_fq_zip_vand_solve(
coeffs: *mut ulong,
monomials: *const ulong,
mlength: slong,
evals: *const ulong,
elength: slong,
master: *const ulong,
scratch: *mut ulong,
ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _n_fqp_zip_vand_solve(
coeffs: *mut ulong,
monomials: *const ulong,
mlength: slong,
evals: *const ulong,
elength: slong,
master: *const ulong,
scratch: *mut ulong,
ctx: *const fq_nmod_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn n_poly_stack_init(S: *mut n_poly_stack_struct);
pub fn n_poly_stack_clear(S: *mut n_poly_stack_struct);
pub fn n_poly_stack_fit_request(
S: *mut n_poly_stack_struct,
k: slong,
) -> *mut *mut n_poly_struct;
pub fn n_bpoly_stack_init(S: *mut n_bpoly_stack_struct);
pub fn n_bpoly_stack_clear(S: *mut n_bpoly_stack_struct);
pub fn n_bpoly_stack_fit_request(
S: *mut n_bpoly_stack_struct,
k: slong,
) -> *mut *mut n_bpoly_struct;
pub fn n_polyun_stack_init(S: *mut n_polyun_stack_struct);
pub fn n_polyun_stack_clear(S: *mut n_polyun_stack_struct);
pub fn n_polyun_stack_fit_request(
S: *mut n_polyun_stack_struct,
k: slong,
) -> *mut *mut n_polyun_struct;
}
/* n_poly_types.h */
#[repr(C)]
pub struct n_poly_struct {
pub coeffs: *mut ulong,
pub alloc: slong,
pub length: slong,
}
impl Default for n_poly_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 n_poly_t = [n_poly_struct; 1usize];
pub type n_fq_poly_struct = n_poly_struct;
pub type n_fq_poly_t = n_poly_t;
#[repr(C)]
pub struct n_bpoly_struct {
pub coeffs: *mut n_poly_struct,
pub alloc: slong,
pub length: slong,
}
impl Default for n_bpoly_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type n_bpoly_t = [n_bpoly_struct; 1usize];
pub type n_fq_bpoly_struct = n_bpoly_struct;
pub type n_fq_bpoly_t = n_bpoly_t;
#[repr(C)]
pub struct n_tpoly_struct {
pub coeffs: *mut n_bpoly_struct,
pub alloc: slong,
pub length: slong,
}
impl Default for n_tpoly_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type n_tpoly_t = [n_tpoly_struct; 1usize];
pub type n_fq_tpoly_struct = n_tpoly_struct;
pub type n_fq_tpoly_t = n_tpoly_t;
#[repr(C)]
pub struct n_polyu_struct {
pub exps: *mut ulong,
pub coeffs: *mut ulong,
pub length: slong,
pub alloc: slong,
}
impl Default for n_polyu_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 n_polyu_t = [n_polyu_struct; 1usize];
pub type n_fq_polyu_struct = n_polyu_struct;
pub type n_fq_polyu_t = n_polyu_t;
#[repr(C)]
pub struct n_polyun_struct {
pub coeffs: *mut n_poly_struct,
pub exps: *mut ulong,
pub length: slong,
pub alloc: slong,
}
impl Default for n_polyun_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 n_polyun_t = [n_polyun_struct; 1usize];
pub type n_fq_polyun_struct = n_polyun_struct;
pub type n_fq_polyun_t = n_polyun_t;
#[repr(C)]
pub struct n_poly_stack_struct {
pub array: *mut *mut n_poly_struct,
pub alloc: slong,
pub top: slong,
}
impl Default for n_poly_stack_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 n_poly_stack_t = [n_poly_stack_struct; 1usize];
#[repr(C)]
pub struct n_bpoly_stack_struct {
pub array: *mut *mut n_bpoly_struct,
pub alloc: slong,
pub top: slong,
}
impl Default for n_bpoly_stack_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 n_bpoly_stack_t = [n_bpoly_stack_struct; 1usize];
#[repr(C)]
pub struct n_poly_bpoly_stack_struct {
pub poly_stack: n_poly_stack_t,
pub bpoly_stack: n_bpoly_stack_t,
}
impl Default for n_poly_bpoly_stack_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 n_poly_bpoly_stack_t = [n_poly_bpoly_stack_struct; 1usize];
#[repr(C)]
pub struct nmod_eval_interp_struct {
pub M: *mut ulong,
pub T: *mut ulong,
pub Q: *mut ulong,
pub array: *mut ulong,
pub alloc: slong,
pub d: slong,
pub radix: slong,
pub w: ulong,
}
impl Default for nmod_eval_interp_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 nmod_eval_interp_t = [nmod_eval_interp_struct; 1usize];
/* nf.h */
#[repr(C)]
pub struct nf_struct {
pub pol: fmpq_poly_t,
pub pinv: nf_struct__nf_bindgen_ty_1,
pub powers: nf_struct__nf_bindgen_ty_2,
pub traces: fmpq_poly_t,
pub flag: ulong,
}
#[repr(C)]
pub union nf_struct__nf_bindgen_ty_1 {
pub qq: ::std::mem::ManuallyDrop<fmpz_preinvn_t>,
}
impl Default for nf_struct__nf_bindgen_ty_1 {
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 union nf_struct__nf_bindgen_ty_2 {
pub qq: ::std::mem::ManuallyDrop<fmpq_poly_powers_precomp_t>,
pub zz: ::std::mem::ManuallyDrop<fmpz_poly_powers_precomp_t>,
}
impl Default for nf_struct__nf_bindgen_ty_2 {
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()
}
}
}
impl Default for nf_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 nf_t = [nf_struct; 1usize];
unsafe extern "C" {
///Initialisation
pub fn nf_init(nf: *mut nf_struct, pol: *const fmpq_poly_struct);
pub fn nf_init_randtest(
nf: *mut nf_struct,
state: *mut flint_rand_struct,
len: slong,
bits_in: flint_bitcnt_t,
);
pub fn nf_clear(nf: *mut nf_struct);
pub fn nf_print(nf: *const nf_struct);
}
/* nf_elem.h */
#[repr(C)]
pub struct lnf_elem_struct {
pub num: fmpz_t,
pub den: fmpz_t,
}
impl Default for lnf_elem_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 lnf_elem_t = [lnf_elem_struct; 1usize];
#[repr(C)]
pub struct qnf_elem_struct {
pub num: [fmpz; 3usize],
pub den: fmpz_t,
}
impl Default for qnf_elem_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 qnf_elem_t = [qnf_elem_struct; 1usize];
#[repr(C)]
pub union nf_elem_struct {
pub elem: ::std::mem::ManuallyDrop<fmpq_poly_t>,
pub lelem: ::std::mem::ManuallyDrop<lnf_elem_t>,
pub qelem: ::std::mem::ManuallyDrop<qnf_elem_t>,
}
impl Default for nf_elem_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 nf_elem_t = [nf_elem_struct; 1usize];
unsafe extern "C" {
pub fn nf_elem_init(a: *mut nf_elem_struct, nf: *const nf_struct);
pub fn nf_elem_clear(a: *mut nf_elem_struct, nf: *const nf_struct);
pub fn nf_elem_swap(
a: *mut nf_elem_struct,
b: *mut nf_elem_struct,
nf: *const nf_struct,
);
pub fn nf_elem_randtest(
a: *mut nf_elem_struct,
state: *mut flint_rand_struct,
bits: flint_bitcnt_t,
nf: *const nf_struct,
);
pub fn nf_elem_randtest_not_zero(
a: *mut nf_elem_struct,
state: *mut flint_rand_struct,
bits: flint_bitcnt_t,
nf: *const nf_struct,
);
pub fn nf_elem_canonicalise(a: *mut nf_elem_struct, nf: *const nf_struct);
pub fn _nf_elem_reduce(a: *mut nf_elem_struct, nf: *const nf_struct);
pub fn nf_elem_reduce(a: *mut nf_elem_struct, nf: *const nf_struct);
pub fn _nf_elem_invertible_check(
a: *mut nf_elem_struct,
nf: *const nf_struct,
) -> ::std::os::raw::c_int;
pub fn _nf_elem_equal(
a: *const nf_elem_struct,
b: *const nf_elem_struct,
nf: *const nf_struct,
) -> ::std::os::raw::c_int;
pub fn nf_elem_equal(
a: *const nf_elem_struct,
b: *const nf_elem_struct,
nf: *const nf_struct,
) -> ::std::os::raw::c_int;
pub fn nf_elem_is_zero(
a: *const nf_elem_struct,
nf: *const nf_struct,
) -> ::std::os::raw::c_int;
pub fn nf_elem_is_one(
a: *const nf_elem_struct,
nf: *const nf_struct,
) -> ::std::os::raw::c_int;
pub fn nf_elem_is_gen(
a: *const nf_elem_struct,
nf: *const nf_struct,
) -> ::std::os::raw::c_int;
pub fn nf_elem_is_integer(
a: *const nf_elem_struct,
nf: *const nf_struct,
) -> ::std::os::raw::c_int;
pub fn nf_elem_is_rational(
a: *const nf_elem_struct,
nf: *const nf_struct,
) -> ::std::os::raw::c_int;
pub fn nf_elem_equal_si(
a: *const nf_elem_struct,
b: slong,
nf: *const nf_struct,
) -> ::std::os::raw::c_int;
pub fn nf_elem_equal_ui(
a: *const nf_elem_struct,
b: ulong,
nf: *const nf_struct,
) -> ::std::os::raw::c_int;
pub fn nf_elem_equal_fmpz(
a: *const nf_elem_struct,
b: *const fmpz,
nf: *const nf_struct,
) -> ::std::os::raw::c_int;
pub fn nf_elem_equal_fmpq(
a: *const nf_elem_struct,
b: *const fmpq,
nf: *const nf_struct,
) -> ::std::os::raw::c_int;
pub fn nf_elem_print_pretty(
a: *const nf_elem_struct,
nf: *const nf_struct,
var: *const ::std::os::raw::c_char,
);
pub fn nf_elem_get_str_pretty(
a: *const nf_elem_struct,
var: *const ::std::os::raw::c_char,
nf: *const nf_struct,
) -> *mut ::std::os::raw::c_char;
pub fn nf_elem_zero(a: *mut nf_elem_struct, nf: *const nf_struct);
pub fn nf_elem_one(a: *mut nf_elem_struct, nf: *const nf_struct);
pub fn nf_elem_gen(a: *mut nf_elem_struct, nf: *const nf_struct);
pub fn nf_elem_set(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
nf: *const nf_struct,
);
pub fn nf_elem_set_si(a: *mut nf_elem_struct, c: slong, nf: *const nf_struct);
pub fn nf_elem_set_ui(a: *mut nf_elem_struct, c: ulong, nf: *const nf_struct);
pub fn nf_elem_set_fmpz(
a: *mut nf_elem_struct,
c: *const fmpz,
nf: *const nf_struct,
);
pub fn nf_elem_set_fmpq(
a: *mut nf_elem_struct,
c: *const fmpq,
nf: *const nf_struct,
);
pub fn nf_elem_set_fmpq_poly(
a: *mut nf_elem_struct,
pol: *const fmpq_poly_struct,
nf: *const nf_struct,
);
pub fn nf_elem_set_fmpz_mat_row(
b: *mut nf_elem_struct,
M: *const fmpz_mat_struct,
i: slong,
den: *mut fmpz,
nf: *const nf_struct,
);
pub fn nf_elem_get_fmpz_mat_row(
M: *mut fmpz_mat_struct,
i: slong,
den: *mut fmpz,
b: *const nf_elem_struct,
nf: *const nf_struct,
);
pub fn nf_elem_get_fmpq_poly(
pol: *mut fmpq_poly_struct,
a: *const nf_elem_struct,
nf: *const nf_struct,
);
pub fn nf_elem_get_nmod_poly_den(
pol: *mut nmod_poly_struct,
a: *const nf_elem_struct,
nf: *const nf_struct,
den: ::std::os::raw::c_int,
);
pub fn _nf_elem_get_nmod_poly(
pol: *mut nmod_poly_struct,
a: *const nf_elem_struct,
nf: *const nf_struct,
);
pub fn nf_elem_get_nmod_poly(
pol: *mut nmod_poly_struct,
a: *const nf_elem_struct,
nf: *const nf_struct,
);
pub fn nf_elem_get_fmpz_mod_poly_den(
pol: *mut fmpz_mod_poly_struct,
a: *const nf_elem_struct,
nf: *const nf_struct,
den: ::std::os::raw::c_int,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn _nf_elem_get_fmpz_mod_poly(
pol: *mut fmpz_mod_poly_struct,
a: *const nf_elem_struct,
nf: *const nf_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn nf_elem_get_fmpz_mod_poly(
pol: *mut fmpz_mod_poly_struct,
a: *const nf_elem_struct,
nf: *const nf_struct,
ctx: *const fmpz_mod_ctx_struct,
);
pub fn nf_elem_get_den(d: *mut fmpz, b: *const nf_elem_struct, nf: *const nf_struct);
pub fn nf_elem_set_den(b: *mut nf_elem_struct, d: *mut fmpz, nf: *const nf_struct);
pub fn nf_elem_get_coeff_fmpq(
a: *mut fmpq,
b: *const nf_elem_struct,
i: slong,
nf: *const nf_struct,
);
pub fn nf_elem_get_coeff_fmpz(
a: *mut fmpz,
b: *const nf_elem_struct,
i: slong,
nf: *const nf_struct,
);
pub fn nf_elem_den_is_one(
a: *const nf_elem_struct,
nf: *const nf_struct,
) -> ::std::os::raw::c_int;
pub fn _nf_elem_set_coeff_num_fmpz(
a: *mut nf_elem_struct,
i: slong,
b: *const fmpz,
nf: *const nf_struct,
);
pub fn nf_elem_neg(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
nf: *const nf_struct,
);
pub fn nf_elem_add_si(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: slong,
nf: *const nf_struct,
);
pub fn nf_elem_add_fmpz(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: *const fmpz,
nf: *const nf_struct,
);
pub fn nf_elem_add_fmpq(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: *const fmpq,
nf: *const nf_struct,
);
pub fn nf_elem_sub_si(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: slong,
nf: *const nf_struct,
);
pub fn nf_elem_sub_fmpz(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: *const fmpz,
nf: *const nf_struct,
);
pub fn nf_elem_sub_fmpq(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: *const fmpq,
nf: *const nf_struct,
);
pub fn nf_elem_si_sub(
a: *mut nf_elem_struct,
c: slong,
b: *const nf_elem_struct,
nf: *const nf_struct,
);
pub fn nf_elem_fmpz_sub(
a: *mut nf_elem_struct,
c: *const fmpz,
b: *const nf_elem_struct,
nf: *const nf_struct,
);
pub fn nf_elem_fmpq_sub(
a: *mut nf_elem_struct,
c: *const fmpq,
b: *const nf_elem_struct,
nf: *const nf_struct,
);
pub fn nf_elem_scalar_mul_si(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: slong,
nf: *const nf_struct,
);
pub fn nf_elem_scalar_mul_fmpz(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: *const fmpz,
nf: *const nf_struct,
);
pub fn nf_elem_scalar_mul_fmpq(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: *const fmpq,
nf: *const nf_struct,
);
pub fn nf_elem_scalar_div_si(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: slong,
nf: *const nf_struct,
);
pub fn nf_elem_scalar_div_fmpz(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: *const fmpz,
nf: *const nf_struct,
);
pub fn nf_elem_scalar_div_fmpq(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: *const fmpq,
nf: *const nf_struct,
);
pub fn _nf_elem_add_lf(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: *const nf_elem_struct,
nf: *const nf_struct,
can: ::std::os::raw::c_int,
);
pub fn _nf_elem_sub_lf(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: *const nf_elem_struct,
nf: *const nf_struct,
can: ::std::os::raw::c_int,
);
pub fn _nf_elem_add_qf(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: *const nf_elem_struct,
nf: *const nf_struct,
can: ::std::os::raw::c_int,
);
pub fn nf_elem_add_qf(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: *const nf_elem_struct,
nf: *const nf_struct,
);
pub fn _nf_elem_sub_qf(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: *const nf_elem_struct,
nf: *const nf_struct,
can: ::std::os::raw::c_int,
);
pub fn nf_elem_sub_qf(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: *const nf_elem_struct,
nf: *const nf_struct,
);
pub fn _nf_elem_add(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: *const nf_elem_struct,
nf: *const nf_struct,
);
pub fn nf_elem_add(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: *const nf_elem_struct,
nf: *const nf_struct,
);
pub fn _nf_elem_sub(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: *const nf_elem_struct,
nf: *const nf_struct,
);
pub fn nf_elem_sub(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: *const nf_elem_struct,
nf: *const nf_struct,
);
pub fn nf_elem_mul_gen(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
nf: *const nf_struct,
);
pub fn _nf_elem_mul(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: *const nf_elem_struct,
nf: *const nf_struct,
);
pub fn nf_elem_mul(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: *const nf_elem_struct,
nf: *const nf_struct,
);
pub fn _nf_elem_mul_red(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: *const nf_elem_struct,
nf: *const nf_struct,
red: ::std::os::raw::c_int,
);
pub fn nf_elem_mul_red(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: *const nf_elem_struct,
nf: *const nf_struct,
red: ::std::os::raw::c_int,
);
pub fn _nf_elem_inv(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
nf: *const nf_struct,
);
pub fn nf_elem_inv(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
nf: *const nf_struct,
);
pub fn _nf_elem_div(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: *const nf_elem_struct,
nf: *const nf_struct,
);
pub fn nf_elem_div(
a: *mut nf_elem_struct,
b: *const nf_elem_struct,
c: *const nf_elem_struct,
nf: *const nf_struct,
);
pub fn _nf_elem_pow(
res: *mut nf_elem_struct,
b: *const nf_elem_struct,
e: ulong,
nf: *const nf_struct,
);
pub fn nf_elem_pow(
res: *mut nf_elem_struct,
a: *const nf_elem_struct,
e: ulong,
nf: *const nf_struct,
);
pub fn _nf_elem_norm(
rnum: *mut fmpz,
rden: *mut fmpz,
a: *const nf_elem_struct,
nf: *const nf_struct,
);
pub fn nf_elem_norm(res: *mut fmpq, a: *const nf_elem_struct, nf: *const nf_struct);
pub fn _nf_elem_norm_div(
rnum: *mut fmpz,
rden: *mut fmpz,
a: *const nf_elem_struct,
nf: *const nf_struct,
divisor: *const fmpz,
nbits: slong,
);
pub fn nf_elem_norm_div(
res: *mut fmpq,
a: *const nf_elem_struct,
nf: *const nf_struct,
divisor: *const fmpz,
nbits: slong,
);
pub fn _nf_elem_trace(
rnum: *mut fmpz,
rden: *mut fmpz,
a: *const nf_elem_struct,
nf: *const nf_struct,
);
pub fn nf_elem_trace(res: *mut fmpq, a: *const nf_elem_struct, nf: *const nf_struct);
pub fn nf_elem_rep_mat(
res: *mut fmpq_mat_struct,
a: *const nf_elem_struct,
nf: *const nf_struct,
);
pub fn nf_elem_rep_mat_fmpz_mat_den(
res: *mut fmpz_mat_struct,
den: *mut fmpz,
a: *const nf_elem_struct,
nf: *const nf_struct,
);
pub fn nf_elem_mod_fmpz_den(
res: *mut nf_elem_struct,
a: *const nf_elem_struct,
mod_: *const fmpz,
nf: *const nf_struct,
den: ::std::os::raw::c_int,
);
pub fn _nf_elem_mod_fmpz(
res: *mut nf_elem_struct,
a: *const nf_elem_struct,
mod_: *const fmpz,
nf: *const nf_struct,
sign: ::std::os::raw::c_int,
);
pub fn nf_elem_mod_fmpz(
res: *mut nf_elem_struct,
a: *const nf_elem_struct,
mod_: *const fmpz,
nf: *const nf_struct,
);
pub fn nf_elem_smod_fmpz_den(
res: *mut nf_elem_struct,
a: *const nf_elem_struct,
mod_: *const fmpz,
nf: *const nf_struct,
den: ::std::os::raw::c_int,
);
pub fn nf_elem_smod_fmpz(
res: *mut nf_elem_struct,
a: *const nf_elem_struct,
mod_: *const fmpz,
nf: *const nf_struct,
);
pub fn nf_elem_coprime_den(
res: *mut nf_elem_struct,
a: *const nf_elem_struct,
mod_: *const fmpz,
nf: *const nf_struct,
);
pub fn nf_elem_coprime_den_signed(
res: *mut nf_elem_struct,
a: *const nf_elem_struct,
mod_: *const fmpz,
nf: *const nf_struct,
);
}
/* nfloat.h */
#[repr(C)]
pub struct _nfloat_ctx_struct {
pub nlimbs: slong,
pub flags: ::std::os::raw::c_int,
pub rnd: ::std::os::raw::c_int,
}
impl Default for _nfloat_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 nfloat_ptr = *mut ::std::os::raw::c_void;
pub type nfloat_srcptr = *const ::std::os::raw::c_void;
#[repr(C)]
pub struct nfloat64_struct {
pub head: [ulong; 2usize],
pub d: [ulong; 1usize],
}
impl Default for nfloat64_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()
}
}
}
#[repr(C)]
pub struct nfloat128_struct {
pub head: [ulong; 2usize],
pub d: [ulong; 2usize],
}
impl Default for nfloat128_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()
}
}
}
#[repr(C)]
pub struct nfloat192_struct {
pub head: [ulong; 2usize],
pub d: [ulong; 3usize],
}
impl Default for nfloat192_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()
}
}
}
#[repr(C)]
pub struct nfloat256_struct {
pub head: [ulong; 2usize],
pub d: [ulong; 4usize],
}
impl Default for nfloat256_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()
}
}
}
#[repr(C)]
pub struct nfloat384_struct {
pub head: [ulong; 2usize],
pub d: [ulong; 6usize],
}
impl Default for nfloat384_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()
}
}
}
#[repr(C)]
pub struct nfloat512_struct {
pub head: [ulong; 2usize],
pub d: [ulong; 8usize],
}
impl Default for nfloat512_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()
}
}
}
#[repr(C)]
pub struct nfloat1024_struct {
pub head: [ulong; 2usize],
pub d: [ulong; 16usize],
}
impl Default for nfloat1024_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()
}
}
}
#[repr(C)]
pub struct nfloat2048_struct {
pub head: [ulong; 2usize],
pub d: [ulong; 32usize],
}
impl Default for nfloat2048_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()
}
}
}
#[repr(C)]
pub struct nfloat4096_struct {
pub head: [ulong; 2usize],
pub d: [ulong; 64usize],
}
impl Default for nfloat4096_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 nfloat64_t = [nfloat64_struct; 1usize];
pub type nfloat128_t = [nfloat128_struct; 1usize];
pub type nfloat192_t = [nfloat192_struct; 1usize];
pub type nfloat256_t = [nfloat256_struct; 1usize];
pub type nfloat384_t = [nfloat384_struct; 1usize];
pub type nfloat512_t = [nfloat512_struct; 1usize];
pub type nfloat1024_t = [nfloat1024_struct; 1usize];
pub type nfloat2048_t = [nfloat2048_struct; 1usize];
pub type nfloat4096_t = [nfloat4096_struct; 1usize];
pub type nfloat_complex_ptr = nfloat_ptr;
pub type nfloat_complex_srcptr = nfloat_srcptr;
unsafe extern "C" {
pub fn nfloat_ctx_init(
ctx: *mut gr_ctx_struct,
prec: slong,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn nfloat_ctx_write(
out: *mut gr_stream_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_init(res: nfloat_ptr, UNUSED_ctx: *mut gr_ctx_struct);
pub fn nfloat_clear(UNUSED_res: nfloat_ptr, UNUSED_ctx: *mut gr_ctx_struct);
pub fn nfloat_swap(x: nfloat_ptr, y: nfloat_ptr, ctx: *mut gr_ctx_struct);
pub fn nfloat_set(
res: nfloat_ptr,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_equal(
x: nfloat_srcptr,
y: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn nfloat_ctx_set_real_prec(
UNUSED_ctx: *mut gr_ctx_struct,
UNUSED_prec: slong,
) -> ::std::os::raw::c_int;
pub fn nfloat_ctx_get_real_prec(
res: *mut slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_zero(
res: nfloat_ptr,
UNUSED_ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_pos_inf(
res: nfloat_ptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_neg_inf(
res: nfloat_ptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_nan(res: nfloat_ptr, ctx: *mut gr_ctx_struct) -> ::std::os::raw::c_int;
pub fn _nfloat_underflow(
res: nfloat_ptr,
sgnbit: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_overflow(
res: nfloat_ptr,
sgnbit: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_one(res: nfloat_ptr, ctx: *mut gr_ctx_struct) -> ::std::os::raw::c_int;
pub fn nfloat_neg_one(
res: nfloat_ptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_is_zero(x: nfloat_srcptr, UNUSED_ctx: *mut gr_ctx_struct) -> truth_t;
pub fn nfloat_is_one(x: nfloat_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn nfloat_is_neg_one(x: nfloat_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
pub fn nfloat_set_ui(
res: nfloat_ptr,
x: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_set_si(
res: nfloat_ptr,
x: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_1_set_2_2exp(
res: nfloat_ptr,
x1: ulong,
x0: ulong,
exp: slong,
xsgnbit: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_1_set_3_2exp(
res: nfloat_ptr,
x2: ulong,
x1: ulong,
x0: ulong,
exp: slong,
xsgnbit: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_2_set_3_2exp(
res: nfloat_ptr,
x2: ulong,
x1: ulong,
x0: ulong,
exp: slong,
xsgnbit: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_2_set_4_2exp(
res: nfloat_ptr,
x3: ulong,
x2: ulong,
x1: ulong,
x0: ulong,
exp: slong,
xsgnbit: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_set_fmpz(
res: nfloat_ptr,
x: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_get_d_2exp_si(
mant: *mut f64,
expo: *mut slong,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_get_fmpz(
res: *mut fmpz,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_set_fmpq(
res: nfloat_ptr,
v: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_set_d(
res: nfloat_ptr,
x: f64,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_set_str(
res: nfloat_ptr,
x: *const ::std::os::raw::c_char,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_set_other(
res: nfloat_ptr,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_write(
out: *mut gr_stream_struct,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_randtest(
res: nfloat_ptr,
state: *mut flint_rand_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_neg(
res: nfloat_ptr,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_abs(
res: nfloat_ptr,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_cmp(
x: nfloat_srcptr,
y: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_cmpabs(
x: nfloat_srcptr,
y: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_cmp(
res: *mut ::std::os::raw::c_int,
x: nfloat_srcptr,
y: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_cmpabs(
res: *mut ::std::os::raw::c_int,
x: nfloat_srcptr,
y: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_sgn(
res: nfloat_ptr,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_im(
res: nfloat_ptr,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_add_1(
res: nfloat_ptr,
x0: ulong,
xexp: slong,
xsgnbit: ::std::os::raw::c_int,
y0: ulong,
delta: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_sub_1(
res: nfloat_ptr,
x0: ulong,
xexp: slong,
xsgnbit: ::std::os::raw::c_int,
y0: ulong,
delta: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_add_2(
res: nfloat_ptr,
xd: nn_srcptr,
xexp: slong,
xsgnbit: ::std::os::raw::c_int,
yd: nn_srcptr,
delta: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_sub_2(
res: nfloat_ptr,
xd: nn_srcptr,
xexp: slong,
xsgnbit: ::std::os::raw::c_int,
yd: nn_srcptr,
delta: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_add_3(
res: nfloat_ptr,
x: nn_srcptr,
xexp: slong,
xsgnbit: ::std::os::raw::c_int,
y: nn_srcptr,
delta: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_sub_3(
res: nfloat_ptr,
x: nn_srcptr,
xexp: slong,
xsgnbit: ::std::os::raw::c_int,
y: nn_srcptr,
delta: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_add_4(
res: nfloat_ptr,
x: nn_srcptr,
xexp: slong,
xsgnbit: ::std::os::raw::c_int,
y: nn_srcptr,
delta: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_sub_4(
res: nfloat_ptr,
x: nn_srcptr,
xexp: slong,
xsgnbit: ::std::os::raw::c_int,
y: nn_srcptr,
delta: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_add_n(
res: nfloat_ptr,
xd: nn_srcptr,
xexp: slong,
xsgnbit: ::std::os::raw::c_int,
yd: nn_srcptr,
delta: slong,
nlimbs: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_sub_n(
res: nfloat_ptr,
xd: nn_srcptr,
xexp: slong,
xsgnbit: ::std::os::raw::c_int,
yd: nn_srcptr,
delta: slong,
nlimbs: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_add(
res: nfloat_ptr,
x: nfloat_srcptr,
y: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_sub(
res: nfloat_ptr,
x: nfloat_srcptr,
y: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_mul(
res: nfloat_ptr,
x: nfloat_srcptr,
y: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_addmul(
res: nfloat_ptr,
x: nfloat_srcptr,
y: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_submul(
res: nfloat_ptr,
x: nfloat_srcptr,
y: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_sqr(
res: nfloat_ptr,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_mul_2exp_si(
res: nfloat_ptr,
x: nfloat_srcptr,
y: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_inv(
res: nfloat_ptr,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_div(
res: nfloat_ptr,
x: nfloat_srcptr,
y: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_div_ui(
res: nfloat_ptr,
x: nfloat_srcptr,
y: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_div_si(
res: nfloat_ptr,
x: nfloat_srcptr,
y: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_sqrt(
res: nfloat_ptr,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_rsqrt(
res: nfloat_ptr,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_floor(
res: nfloat_ptr,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_ceil(
res: nfloat_ptr,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_trunc(
res: nfloat_ptr,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_nint(
res: nfloat_ptr,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_pi(res: nfloat_ptr, ctx: *mut gr_ctx_struct) -> ::std::os::raw::c_int;
pub fn nfloat_pow(
res: nfloat_ptr,
x: nfloat_srcptr,
y: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_exp(
res: nfloat_ptr,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_expm1(
res: nfloat_ptr,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_log(
res: nfloat_ptr,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_log1p(
res: nfloat_ptr,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_sin(
res: nfloat_ptr,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_cos(
res: nfloat_ptr,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_tan(
res: nfloat_ptr,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_sinh(
res: nfloat_ptr,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_cosh(
res: nfloat_ptr,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_tanh(
res: nfloat_ptr,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_atan(
res: nfloat_ptr,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_gamma(
res: nfloat_ptr,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_zeta(
res: nfloat_ptr,
x: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_vec_init(res: nfloat_ptr, len: slong, ctx: *mut gr_ctx_struct);
pub fn _nfloat_vec_clear(res: nfloat_ptr, len: slong, ctx: *mut gr_ctx_struct);
pub fn _nfloat_vec_set(
res: nfloat_ptr,
x: nfloat_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_vec_zero(
res: nfloat_ptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_vec_add(
res: nfloat_ptr,
x: nfloat_srcptr,
y: nfloat_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_vec_sub(
res: nfloat_ptr,
x: nfloat_srcptr,
y: nfloat_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_vec_mul(
res: nfloat_ptr,
x: nfloat_srcptr,
y: nfloat_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_vec_mul_scalar(
res: nfloat_ptr,
x: nfloat_srcptr,
len: slong,
y: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_vec_addmul_scalar(
res: nfloat_ptr,
x: nfloat_srcptr,
len: slong,
y: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_vec_submul_scalar(
res: nfloat_ptr,
x: nfloat_srcptr,
len: slong,
y: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_vec_dot(
res: nfloat_ptr,
initial: nfloat_srcptr,
subtract: ::std::os::raw::c_int,
x: nfloat_srcptr,
y: nfloat_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_vec_dot_rev(
res: nfloat_ptr,
initial: nfloat_srcptr,
subtract: ::std::os::raw::c_int,
x: nfloat_srcptr,
y: nfloat_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_mat_mul_fixed(
C: *mut gr_mat_struct,
A: *const gr_mat_struct,
B: *const gr_mat_struct,
max_extra_prec: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_mat_mul_block(
C: *mut gr_mat_struct,
A: *const gr_mat_struct,
B: *const gr_mat_struct,
min_block_size: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_mat_mul(
C: *mut gr_mat_struct,
A: *const gr_mat_struct,
B: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_mat_nonsingular_solve_tril(
X: *mut gr_mat_struct,
L: *const gr_mat_struct,
B: *const gr_mat_struct,
unit: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_mat_nonsingular_solve_triu(
X: *mut gr_mat_struct,
L: *const gr_mat_struct,
B: *const gr_mat_struct,
unit: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_mat_lu(
rank: *mut slong,
P: *mut slong,
LU: *mut gr_mat_struct,
A: *const gr_mat_struct,
rank_check: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_mat_lq(
L: *mut gr_mat_struct,
Q: *mut gr_mat_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_ctx_init(
ctx: *mut gr_ctx_struct,
prec: slong,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_init(res: nfloat_complex_ptr, ctx: *mut gr_ctx_struct);
pub fn nfloat_complex_clear(
UNUSED_res: nfloat_complex_ptr,
UNUSED_ctx: *mut gr_ctx_struct,
);
pub fn nfloat_complex_zero(
res: nfloat_complex_ptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_write(
out: *mut gr_stream_struct,
x: nfloat_complex_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_randtest(
res: nfloat_complex_ptr,
state: *mut flint_rand_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_swap(
x: nfloat_complex_ptr,
y: nfloat_complex_ptr,
ctx: *mut gr_ctx_struct,
);
pub fn nfloat_complex_set(
res: nfloat_complex_ptr,
x: nfloat_complex_ptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_one(
res: nfloat_complex_ptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_neg_one(
res: nfloat_complex_ptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_is_zero(
x: nfloat_complex_srcptr,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn nfloat_complex_is_one(
x: nfloat_complex_srcptr,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn nfloat_complex_is_neg_one(
x: nfloat_complex_srcptr,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn nfloat_complex_i(
res: nfloat_complex_ptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_pi(
res: nfloat_complex_ptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_conj(
res: nfloat_complex_ptr,
x: nfloat_complex_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_re(
res: nfloat_complex_ptr,
x: nfloat_complex_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_im(
res: nfloat_complex_ptr,
x: nfloat_complex_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_equal(
x: nfloat_complex_srcptr,
y: nfloat_complex_srcptr,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn nfloat_complex_set_si(
res: nfloat_complex_ptr,
x: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_set_ui(
res: nfloat_complex_ptr,
x: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_set_fmpz(
res: nfloat_complex_ptr,
x: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_set_fmpq(
res: nfloat_complex_ptr,
x: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_set_d(
res: nfloat_complex_ptr,
x: f64,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_set_other(
res: nfloat_complex_ptr,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_neg(
res: nfloat_complex_ptr,
x: nfloat_complex_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_add(
res: nfloat_complex_ptr,
x: nfloat_complex_srcptr,
y: nfloat_complex_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_sub(
res: nfloat_complex_ptr,
x: nfloat_complex_srcptr,
y: nfloat_complex_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_complex_sqr_naive(
res1: nfloat_ptr,
res2: nfloat_ptr,
a: nfloat_srcptr,
b: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_complex_sqr_standard(
res1: nfloat_ptr,
res2: nfloat_ptr,
a: nfloat_srcptr,
b: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_complex_sqr_karatsuba(
res1: nfloat_ptr,
res2: nfloat_ptr,
a: nfloat_srcptr,
b: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_complex_sqr(
res1: nfloat_ptr,
res2: nfloat_ptr,
a: nfloat_srcptr,
b: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_sqr(
res: nfloat_complex_ptr,
x: nfloat_complex_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_complex_mul_naive(
res1: nfloat_ptr,
res2: nfloat_ptr,
a: nfloat_srcptr,
b: nfloat_srcptr,
c: nfloat_srcptr,
d: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_complex_mul_standard(
res1: nfloat_ptr,
res2: nfloat_ptr,
a: nfloat_srcptr,
b: nfloat_srcptr,
c: nfloat_srcptr,
d: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_complex_mul_karatsuba(
res1: nfloat_ptr,
res2: nfloat_ptr,
a: nfloat_srcptr,
b: nfloat_srcptr,
c: nfloat_srcptr,
d: nfloat_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_mul(
res: nfloat_complex_ptr,
x: nfloat_complex_srcptr,
y: nfloat_complex_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_inv(
res: nfloat_complex_ptr,
x: nfloat_complex_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_div(
res: nfloat_complex_ptr,
x: nfloat_complex_srcptr,
y: nfloat_complex_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_mul_2exp_si(
res: nfloat_complex_ptr,
x: nfloat_complex_srcptr,
y: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_cmp(
res: *mut ::std::os::raw::c_int,
x: nfloat_complex_srcptr,
y: nfloat_complex_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_cmpabs(
res: *mut ::std::os::raw::c_int,
x: nfloat_complex_srcptr,
y: nfloat_complex_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_abs(
res: nfloat_ptr,
x: nfloat_complex_srcptr,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_complex_vec_init(
res: nfloat_complex_ptr,
len: slong,
ctx: *mut gr_ctx_struct,
);
pub fn _nfloat_complex_vec_clear(
res: nfloat_complex_ptr,
len: slong,
ctx: *mut gr_ctx_struct,
);
pub fn _nfloat_complex_vec_zero(
res: nfloat_complex_ptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_complex_vec_set(
res: nfloat_complex_ptr,
x: nfloat_complex_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_complex_vec_add(
res: nfloat_complex_ptr,
x: nfloat_complex_srcptr,
y: nfloat_complex_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_complex_vec_sub(
res: nfloat_complex_ptr,
x: nfloat_complex_srcptr,
y: nfloat_complex_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_complex_vec_dot(
res: nfloat_complex_ptr,
initial: nfloat_complex_srcptr,
subtract: ::std::os::raw::c_int,
x: nfloat_complex_srcptr,
y: nfloat_complex_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfloat_complex_vec_dot_rev(
res: nfloat_complex_ptr,
initial: nfloat_complex_srcptr,
subtract: ::std::os::raw::c_int,
x: nfloat_complex_srcptr,
y: nfloat_complex_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_mat_mul_fixed(
C: *mut gr_mat_struct,
A: *const gr_mat_struct,
B: *const gr_mat_struct,
max_extra_prec: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_mat_mul_block(
C: *mut gr_mat_struct,
A: *const gr_mat_struct,
B: *const gr_mat_struct,
min_block_size: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_mat_mul_reorder(
C: *mut gr_mat_struct,
A: *const gr_mat_struct,
B: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_mat_mul(
C: *mut gr_mat_struct,
A: *const gr_mat_struct,
B: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_mat_nonsingular_solve_tril(
X: *mut gr_mat_struct,
L: *const gr_mat_struct,
B: *const gr_mat_struct,
unit: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_mat_nonsingular_solve_triu(
X: *mut gr_mat_struct,
L: *const gr_mat_struct,
B: *const gr_mat_struct,
unit: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nfloat_complex_mat_lu(
rank: *mut slong,
P: *mut slong,
LU: *mut gr_mat_struct,
A: *const gr_mat_struct,
rank_check: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nfixed_print(x: nn_srcptr, nlimbs: slong, exp: slong);
pub fn _nfixed_vec_add(
res: nn_ptr,
a: nn_srcptr,
b: nn_srcptr,
len: slong,
nlimbs: slong,
);
pub fn _nfixed_vec_sub(
res: nn_ptr,
a: nn_srcptr,
b: nn_srcptr,
len: slong,
nlimbs: slong,
);
pub fn _nfixed_dot_2(
res: nn_ptr,
x: nn_srcptr,
xstride: slong,
y: nn_srcptr,
ystride: slong,
len: slong,
);
pub fn _nfixed_dot_3(
res: nn_ptr,
x: nn_srcptr,
xstride: slong,
y: nn_srcptr,
ystride: slong,
len: slong,
);
pub fn _nfixed_dot_4(
res: nn_ptr,
x: nn_srcptr,
xstride: slong,
y: nn_srcptr,
ystride: slong,
len: slong,
);
pub fn _nfixed_dot_5(
res: nn_ptr,
x: nn_srcptr,
xstride: slong,
y: nn_srcptr,
ystride: slong,
len: slong,
);
pub fn _nfixed_dot_6(
res: nn_ptr,
x: nn_srcptr,
xstride: slong,
y: nn_srcptr,
ystride: slong,
len: slong,
);
pub fn _nfixed_dot_7(
res: nn_ptr,
x: nn_srcptr,
xstride: slong,
y: nn_srcptr,
ystride: slong,
len: slong,
);
pub fn _nfixed_dot_8(
res: nn_ptr,
x: nn_srcptr,
xstride: slong,
y: nn_srcptr,
ystride: slong,
len: slong,
);
pub fn _nfixed_mat_mul_classical_precise(
C: nn_ptr,
A: nn_srcptr,
B: nn_srcptr,
m: slong,
n: slong,
p: slong,
nlimbs: slong,
);
pub fn _nfixed_mat_mul_classical(
C: nn_ptr,
A: nn_srcptr,
B: nn_srcptr,
m: slong,
n: slong,
p: slong,
nlimbs: slong,
);
pub fn _nfixed_mat_mul_waksman(
C: nn_ptr,
A: nn_srcptr,
B: nn_srcptr,
m: slong,
n: slong,
p: slong,
nlimbs: slong,
);
pub fn _nfixed_mat_mul_strassen(
C: nn_ptr,
A: nn_srcptr,
B: nn_srcptr,
m: slong,
n: slong,
p: slong,
cutoff: slong,
nlimbs: slong,
);
pub fn _nfixed_mat_mul(
C: nn_ptr,
A: nn_srcptr,
B: nn_srcptr,
m: slong,
n: slong,
p: slong,
nlimbs: slong,
);
pub fn _nfixed_mat_mul_bound_classical(
bound: *mut f64,
error: *mut f64,
m: slong,
n: slong,
p: slong,
A: f64,
B: f64,
nlimbs: slong,
);
pub fn _nfixed_mat_mul_bound_waksman(
bound: *mut f64,
error: *mut f64,
m: slong,
n: slong,
p: slong,
A: f64,
B: f64,
nlimbs: slong,
);
pub fn _nfixed_mat_mul_bound_strassen(
bound: *mut f64,
error: *mut f64,
m: slong,
n: slong,
p: slong,
A: f64,
B: f64,
cutoff: slong,
nlimbs: slong,
);
pub fn _nfixed_mat_mul_bound(
bound: *mut f64,
error: *mut f64,
m: slong,
n: slong,
p: slong,
A: f64,
B: f64,
nlimbs: slong,
);
pub fn _nfixed_complex_mat_mul_bound(
bound: *mut f64,
error: *mut f64,
m: slong,
n: slong,
p: slong,
A: f64,
B: f64,
C: f64,
D: f64,
nlimbs: slong,
);
}
/* nmod.h */
pub type ull_t = __uint128_t;
#[repr(C)]
pub struct nmod_redc_ctx_struct {
pub mod_: nmod_t,
pub nred: ulong,
}
impl Default for nmod_redc_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 nmod_redc_ctx_t = [nmod_redc_ctx_struct; 1usize];
#[repr(C)]
pub struct _gr_nmod_ctx_struct {
pub nmod: nmod_t,
pub a: ulong,
pub is_prime: truth_t,
}
impl Default for _gr_nmod_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()
}
}
}
#[repr(C)]
pub struct _gr_nmod_redc_ctx_struct {
pub ctx: nmod_redc_ctx_struct,
pub one: ulong,
pub is_prime: truth_t,
}
impl Default for _gr_nmod_redc_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()
}
}
}
#[repr(C)]
pub struct nmod_discrete_log_pohlig_hellman_table_entry_struct {
pub gammapow: ulong,
pub cm: ulong,
}
impl Default for nmod_discrete_log_pohlig_hellman_table_entry_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()
}
}
}
#[repr(C)]
pub struct nmod_discrete_log_pohlig_hellman_entry_struct {
pub exp: slong,
pub prime: ulong,
pub gamma: ulong,
pub gammainv: ulong,
pub startingbeta: ulong,
pub co: ulong,
pub startinge: ulong,
pub idem: ulong,
pub cbound: ulong,
pub dbound: ulong,
pub table: *mut nmod_discrete_log_pohlig_hellman_table_entry_struct,
}
impl Default for nmod_discrete_log_pohlig_hellman_entry_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()
}
}
}
#[repr(C)]
pub struct nmod_discrete_log_pohlig_hellman_struct {
pub mod_: nmod_t,
pub alpha: ulong,
pub alphainv: ulong,
pub num_factors: slong,
pub entries: *mut nmod_discrete_log_pohlig_hellman_entry_struct,
}
impl Default for nmod_discrete_log_pohlig_hellman_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 nmod_discrete_log_pohlig_hellman_t = [nmod_discrete_log_pohlig_hellman_struct; 1usize];
pub type __uint128_t = u128;
unsafe extern "C" {
pub fn nmod_set_ui(x: ulong, mod_: nmod_t) -> ulong;
pub fn nmod_set_si(x: slong, mod_: nmod_t) -> ulong;
pub fn _nmod_add(a: ulong, b: ulong, mod_: nmod_t) -> ulong;
pub fn _nmod_sub(a: ulong, b: ulong, mod_: nmod_t) -> ulong;
pub fn nmod_add(a: ulong, b: ulong, mod_: nmod_t) -> ulong;
pub fn nmod_ui_add_ui(a: ulong, b: ulong, mod_: nmod_t) -> ulong;
pub fn nmod_sub(a: ulong, b: ulong, mod_: nmod_t) -> ulong;
pub fn nmod_neg(a: ulong, mod_: nmod_t) -> ulong;
pub fn nmod_mul(a: ulong, b: ulong, mod_: nmod_t) -> ulong;
pub fn nmod_ui_mul_ui(a: ulong, b: ulong, mod_: nmod_t) -> ulong;
pub fn _nmod_mul_fullword(a: ulong, b: ulong, mod_: nmod_t) -> ulong;
pub fn nmod_addmul(s: ulong, a: ulong, b: ulong, mod_: nmod_t) -> ulong;
pub fn nmod_fmma(a: ulong, b: ulong, c: ulong, d: ulong, mod_: nmod_t) -> ulong;
pub fn nmod_inv(a: ulong, mod_: nmod_t) -> ulong;
pub fn nmod_div(a: ulong, b: ulong, mod_: nmod_t) -> ulong;
pub fn nmod_divides(
a: *mut ulong,
b: ulong,
c: ulong,
mod_: nmod_t,
) -> ::std::os::raw::c_int;
pub fn _nmod_pow_ui_redc(a: ulong, exp: ulong, mod_: nmod_t) -> ulong;
pub fn _nmod_pow_ui_binexp(a: ulong, exp: ulong, mod_: nmod_t) -> ulong;
pub fn nmod_pow_ui(a: ulong, exp: ulong, mod_: nmod_t) -> ulong;
pub fn nmod_ui_pow_ui(a: ulong, exp: ulong, mod_: nmod_t) -> ulong;
pub fn _nmod_2_pow_ui_binexp(exp: ulong, mod_: nmod_t) -> ulong;
pub fn nmod_2_pow_ui(exp: ulong, mod_: nmod_t) -> ulong;
pub fn nmod_pow_fmpz(a: ulong, exp: *const fmpz, mod_: nmod_t) -> ulong;
pub fn nmod_init(mod_: *mut nmod_t, n: ulong);
pub fn ull_hi(x: ull_t) -> ulong;
pub fn ull_lo(x: ull_t) -> ulong;
pub fn ull_add(x: ull_t, y: ull_t) -> ull_t;
pub fn ull_add_u(x: ull_t, y: ulong) -> ull_t;
pub fn ull_u_mul_u(x: ulong, y: ulong) -> ull_t;
pub fn ull(hi: ulong, lo: ulong) -> ull_t;
pub fn nmod_redc_ctx_init_nmod(ctx: *mut nmod_redc_ctx_struct, mod_: nmod_t);
pub fn nmod_redc_ctx_init_ui(ctx: *mut nmod_redc_ctx_struct, n: ulong);
pub fn nmod_redc_set_nmod(x: ulong, ctx: *const nmod_redc_ctx_struct) -> ulong;
pub fn nmod_redc_set_ui(x: ulong, ctx: *const nmod_redc_ctx_struct) -> ulong;
pub fn nmod_redc_get_nmod(x: ulong, ctx: *const nmod_redc_ctx_struct) -> ulong;
pub fn nmod_redc_neg(x: ulong, ctx: *const nmod_redc_ctx_struct) -> ulong;
pub fn nmod_redc_add(x: ulong, y: ulong, ctx: *const nmod_redc_ctx_struct) -> ulong;
pub fn nmod_redc_sub(x: ulong, y: ulong, ctx: *const nmod_redc_ctx_struct) -> ulong;
pub fn nmod_redc_mul(x: ulong, y: ulong, ctx: *const nmod_redc_ctx_struct) -> ulong;
pub fn nmod_redc_can_use_fast(
ctx: *const nmod_redc_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_redc_fast_mul(
x: ulong,
y: ulong,
ctx: *const nmod_redc_ctx_struct,
) -> ulong;
pub fn nmod_redc_fast_neg(x: ulong, ctx: *const nmod_redc_ctx_struct) -> ulong;
pub fn nmod_redc_fast_add(
x: ulong,
y: ulong,
ctx: *const nmod_redc_ctx_struct,
) -> ulong;
pub fn nmod_redc_fast_sub(
x: ulong,
y: ulong,
ctx: *const nmod_redc_ctx_struct,
) -> ulong;
pub fn nmod_redc_fast_normalise(x: ulong, ctx: *const nmod_redc_ctx_struct) -> ulong;
pub fn nmod_redc_fast_mul_two(x: ulong, ctx: *const nmod_redc_ctx_struct) -> ulong;
pub fn _nmod_redc_pow_ui(
a: ulong,
exp: ulong,
ctx: *const nmod_redc_ctx_struct,
) -> ulong;
pub fn _nmod_redc_fast_pow_ui(
a: ulong,
exp: ulong,
ctx: *const nmod_redc_ctx_struct,
) -> ulong;
pub fn _nmod_redc_2_pow_ui(exp: ulong, ctx: *const nmod_redc_ctx_struct) -> ulong;
pub fn _nmod_redc_fast_2_pow_ui(
exp: ulong,
ctx: *const nmod_redc_ctx_struct,
) -> ulong;
pub fn nmod_redc_half_ctx_init_nmod(ctx: *mut nmod_redc_ctx_struct, mod_: nmod_t);
pub fn nmod_redc_half_ctx_init_ui(ctx: *mut nmod_redc_ctx_struct, n: ulong);
pub fn nmod_redc_half_set_nmod(x: ulong, ctx: *const nmod_redc_ctx_struct) -> ulong;
pub fn nmod_redc_half_set_ui(x: ulong, ctx: *const nmod_redc_ctx_struct) -> ulong;
pub fn nmod_redc_half_get_nmod(x: ulong, ctx: *const nmod_redc_ctx_struct) -> ulong;
pub fn nmod_redc_half_add(
x: ulong,
y: ulong,
ctx: *const nmod_redc_ctx_struct,
) -> ulong;
pub fn nmod_redc_half_sub(
x: ulong,
y: ulong,
ctx: *const nmod_redc_ctx_struct,
) -> ulong;
pub fn nmod_redc_half_mul(
x: ulong,
y: ulong,
ctx: *const nmod_redc_ctx_struct,
) -> ulong;
pub fn nmod_redc_half_can_use_fast(
ctx: *const nmod_redc_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_redc_half_fast_mul(
x: ulong,
y: ulong,
ctx: *const nmod_redc_ctx_struct,
) -> ulong;
pub fn nmod_redc_half_fast_add(
x: ulong,
y: ulong,
ctx: *const nmod_redc_ctx_struct,
) -> ulong;
pub fn nmod_redc_half_fast_sub(
x: ulong,
y: ulong,
ctx: *const nmod_redc_ctx_struct,
) -> ulong;
pub fn gr_ctx_init_nmod_redc(
ctx: *mut gr_ctx_struct,
n: ulong,
) -> ::std::os::raw::c_int;
pub fn gr_ctx_init_nmod_redc_fast(
ctx: *mut gr_ctx_struct,
n: ulong,
) -> ::std::os::raw::c_int;
pub fn nmod_discrete_log_pohlig_hellman_init(
L: *mut nmod_discrete_log_pohlig_hellman_struct,
);
pub fn nmod_discrete_log_pohlig_hellman_clear(
L: *mut nmod_discrete_log_pohlig_hellman_struct,
);
pub fn nmod_discrete_log_pohlig_hellman_precompute_prime(
L: *mut nmod_discrete_log_pohlig_hellman_struct,
p: ulong,
) -> f64;
pub fn nmod_discrete_log_pohlig_hellman_run(
L: *const nmod_discrete_log_pohlig_hellman_struct,
y: ulong,
) -> ulong;
pub fn nmod_discrete_log_pohlig_hellman_primitive_root(
L: *const nmod_discrete_log_pohlig_hellman_struct,
) -> ulong;
}
/* nmod_mat.h */
unsafe extern "C" {
pub fn nmod_mat_get_entry(mat: *const nmod_mat_struct, i: slong, j: slong) -> ulong;
pub fn nmod_mat_entry_ptr(
mat: *const nmod_mat_struct,
i: slong,
j: slong,
) -> *mut ulong;
pub fn nmod_mat_row_ptr(mat: *const nmod_mat_struct, i: slong) -> *mut ulong;
pub fn nmod_mat_nrows(mat: *const nmod_mat_struct) -> slong;
pub fn nmod_mat_ncols(mat: *const nmod_mat_struct) -> slong;
pub fn nmod_mat_set_mod(mat: *mut nmod_mat_struct, n: ulong);
pub fn nmod_mat_mod(mat: *const nmod_mat_struct) -> nmod_t;
pub fn nmod_mat_init(mat: *mut nmod_mat_struct, rows: slong, cols: slong, n: ulong);
pub fn nmod_mat_init_set(mat: *mut nmod_mat_struct, src: *const nmod_mat_struct);
pub fn nmod_mat_clear(mat: *mut nmod_mat_struct);
pub fn nmod_mat_one(mat: *mut nmod_mat_struct);
pub fn nmod_mat_swap(mat1: *mut nmod_mat_struct, mat2: *mut nmod_mat_struct);
pub fn nmod_mat_swap_entrywise(
mat1: *mut nmod_mat_struct,
mat2: *mut nmod_mat_struct,
);
pub fn nmod_mat_window_init(
window: *mut nmod_mat_struct,
mat: *const nmod_mat_struct,
r1: slong,
c1: slong,
r2: slong,
c2: slong,
);
pub fn nmod_mat_window_clear(UNUSED_window: *mut nmod_mat_struct);
pub fn nmod_mat_concat_horizontal(
res: *mut nmod_mat_struct,
mat1: *const nmod_mat_struct,
mat2: *const nmod_mat_struct,
);
pub fn nmod_mat_concat_vertical(
res: *mut nmod_mat_struct,
mat1: *const nmod_mat_struct,
mat2: *const nmod_mat_struct,
);
pub fn nmod_mat_randtest(mat: *mut nmod_mat_struct, state: *mut flint_rand_struct);
pub fn nmod_mat_randfull(mat: *mut nmod_mat_struct, state: *mut flint_rand_struct);
pub fn nmod_mat_rand(mat: *mut nmod_mat_struct, state: *mut flint_rand_struct);
pub fn nmod_mat_randpermdiag(
mat: *mut nmod_mat_struct,
state: *mut flint_rand_struct,
diag: nn_srcptr,
n: slong,
) -> ::std::os::raw::c_int;
pub fn nmod_mat_randrank(
mat: *mut nmod_mat_struct,
state: *mut flint_rand_struct,
rank: slong,
);
pub fn nmod_mat_randops(
mat: *mut nmod_mat_struct,
state: *mut flint_rand_struct,
count: slong,
);
pub fn nmod_mat_randtril(
mat: *mut nmod_mat_struct,
state: *mut flint_rand_struct,
unit: ::std::os::raw::c_int,
);
pub fn nmod_mat_randtriu(
mat: *mut nmod_mat_struct,
state: *mut flint_rand_struct,
unit: ::std::os::raw::c_int,
);
pub fn nmod_mat_fprint_pretty(
file: *mut FILE,
mat: *const nmod_mat_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mat_fprint(
f: *mut FILE,
mat: *const nmod_mat_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mat_print_pretty(mat: *const nmod_mat_struct);
pub fn nmod_mat_print(mat: *const nmod_mat_struct) -> ::std::os::raw::c_int;
pub fn nmod_mat_equal(
mat1: *const nmod_mat_struct,
mat2: *const nmod_mat_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mat_zero(mat: *mut nmod_mat_struct);
pub fn nmod_mat_is_zero(mat: *const nmod_mat_struct) -> ::std::os::raw::c_int;
pub fn nmod_mat_is_one(mat: *const nmod_mat_struct) -> ::std::os::raw::c_int;
pub fn nmod_mat_is_zero_row(
mat: *const nmod_mat_struct,
i: slong,
) -> ::std::os::raw::c_int;
pub fn nmod_mat_is_empty(mat: *const nmod_mat_struct) -> ::std::os::raw::c_int;
pub fn nmod_mat_is_square(mat: *const nmod_mat_struct) -> ::std::os::raw::c_int;
pub fn nmod_mat_set(B: *mut nmod_mat_struct, A: *const nmod_mat_struct);
pub fn nmod_mat_transpose(B: *mut nmod_mat_struct, A: *const nmod_mat_struct);
pub fn nmod_mat_add(
C: *mut nmod_mat_struct,
A: *const nmod_mat_struct,
B: *const nmod_mat_struct,
);
pub fn nmod_mat_sub(
C: *mut nmod_mat_struct,
A: *const nmod_mat_struct,
B: *const nmod_mat_struct,
);
pub fn nmod_mat_neg(B: *mut nmod_mat_struct, A: *const nmod_mat_struct);
pub fn _nmod_mat_scalar_mul_generic(
B: *mut nmod_mat_struct,
A: *const nmod_mat_struct,
c: ulong,
);
pub fn _nmod_mat_scalar_mul_precomp(
B: *mut nmod_mat_struct,
A: *const nmod_mat_struct,
c: ulong,
c_pr: ulong,
);
pub fn nmod_mat_scalar_mul(
B: *mut nmod_mat_struct,
A: *const nmod_mat_struct,
c: ulong,
);
pub fn nmod_mat_scalar_mul_fmpz(
B: *mut nmod_mat_struct,
A: *const nmod_mat_struct,
c: *const fmpz,
);
pub fn _nmod_mat_scalar_addmul_ui_generic(
C: *mut nmod_mat_struct,
A: *const nmod_mat_struct,
B: *const nmod_mat_struct,
c: ulong,
);
pub fn _nmod_mat_scalar_addmul_ui_precomp(
C: *mut nmod_mat_struct,
A: *const nmod_mat_struct,
B: *const nmod_mat_struct,
c: ulong,
c_pr: ulong,
);
pub fn nmod_mat_scalar_addmul_ui(
C: *mut nmod_mat_struct,
A: *const nmod_mat_struct,
B: *const nmod_mat_struct,
c: ulong,
);
pub fn nmod_mat_mul(
C: *mut nmod_mat_struct,
A: *const nmod_mat_struct,
B: *const nmod_mat_struct,
);
pub fn nmod_mat_mul_blas(
C: *mut nmod_mat_struct,
A: *const nmod_mat_struct,
B: *const nmod_mat_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mat_mul_classical(
C: *mut nmod_mat_struct,
A: *const nmod_mat_struct,
B: *const nmod_mat_struct,
);
pub fn _nmod_mat_mul_classical_threaded_pool_op(
D: *mut nmod_mat_struct,
C: *const nmod_mat_struct,
A: *const nmod_mat_struct,
B: *const nmod_mat_struct,
op: ::std::os::raw::c_int,
threads: *mut thread_pool_handle,
num_threads: slong,
);
pub fn nmod_mat_mul_classical_threaded(
C: *mut nmod_mat_struct,
A: *const nmod_mat_struct,
B: *const nmod_mat_struct,
);
pub fn nmod_mat_mul_strassen(
C: *mut nmod_mat_struct,
A: *const nmod_mat_struct,
B: *const nmod_mat_struct,
);
pub fn _nmod_mat_mul_classical_op(
D: *mut nmod_mat_struct,
C: *const nmod_mat_struct,
A: *const nmod_mat_struct,
B: *const nmod_mat_struct,
op: ::std::os::raw::c_int,
);
pub fn nmod_mat_addmul(
D: *mut nmod_mat_struct,
C: *const nmod_mat_struct,
A: *const nmod_mat_struct,
B: *const nmod_mat_struct,
);
pub fn nmod_mat_submul(
D: *mut nmod_mat_struct,
C: *const nmod_mat_struct,
A: *const nmod_mat_struct,
B: *const nmod_mat_struct,
);
pub fn nmod_mat_mul_nmod_vec(
c: *mut ulong,
A: *const nmod_mat_struct,
b: *const ulong,
blen: slong,
);
pub fn nmod_mat_mul_nmod_vec_ptr(
c: *const *mut ulong,
A: *const nmod_mat_struct,
b: *const *const ulong,
blen: slong,
);
pub fn nmod_mat_nmod_vec_mul(
c: *mut ulong,
a: *const ulong,
alen: slong,
B: *const nmod_mat_struct,
);
pub fn nmod_mat_nmod_vec_mul_ptr(
c: *const *mut ulong,
a: *const *const ulong,
alen: slong,
B: *const nmod_mat_struct,
);
pub fn _nmod_mat_pow(
dest: *mut nmod_mat_struct,
mat: *const nmod_mat_struct,
pow: ulong,
);
pub fn nmod_mat_pow(
dest: *mut nmod_mat_struct,
mat: *const nmod_mat_struct,
pow: ulong,
);
pub fn nmod_mat_trace(mat: *const nmod_mat_struct) -> ulong;
pub fn _nmod_mat_det(A: *mut nmod_mat_struct) -> ulong;
pub fn nmod_mat_det(A: *const nmod_mat_struct) -> ulong;
pub fn _nmod_mat_det_howell(A: *mut nmod_mat_struct) -> ulong;
pub fn nmod_mat_det_howell(A: *const nmod_mat_struct) -> ulong;
pub fn nmod_mat_rank(A: *const nmod_mat_struct) -> slong;
pub fn nmod_mat_inv(
B: *mut nmod_mat_struct,
A: *const nmod_mat_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mat_swap_rows(
mat: *mut nmod_mat_struct,
perm: *mut slong,
r: slong,
s: slong,
);
pub fn nmod_mat_invert_rows(mat: *mut nmod_mat_struct, perm: *mut slong);
pub fn nmod_mat_swap_cols(
mat: *mut nmod_mat_struct,
perm: *mut slong,
r: slong,
s: slong,
);
pub fn nmod_mat_invert_cols(mat: *mut nmod_mat_struct, perm: *mut slong);
pub fn nmod_mat_permute_rows(
mat: *mut nmod_mat_struct,
perm_act: *const slong,
perm_store: *mut slong,
);
pub fn nmod_mat_solve_tril(
X: *mut nmod_mat_struct,
L: *const nmod_mat_struct,
B: *const nmod_mat_struct,
unit: ::std::os::raw::c_int,
);
pub fn nmod_mat_solve_tril_recursive(
X: *mut nmod_mat_struct,
L: *const nmod_mat_struct,
B: *const nmod_mat_struct,
unit: ::std::os::raw::c_int,
);
pub fn nmod_mat_solve_tril_classical(
X: *mut nmod_mat_struct,
L: *const nmod_mat_struct,
B: *const nmod_mat_struct,
unit: ::std::os::raw::c_int,
);
pub fn nmod_mat_solve_triu(
X: *mut nmod_mat_struct,
U: *const nmod_mat_struct,
B: *const nmod_mat_struct,
unit: ::std::os::raw::c_int,
);
pub fn nmod_mat_solve_triu_recursive(
X: *mut nmod_mat_struct,
U: *const nmod_mat_struct,
B: *const nmod_mat_struct,
unit: ::std::os::raw::c_int,
);
pub fn nmod_mat_solve_triu_classical(
X: *mut nmod_mat_struct,
U: *const nmod_mat_struct,
B: *const nmod_mat_struct,
unit: ::std::os::raw::c_int,
);
pub fn nmod_mat_lu(
P: *mut slong,
A: *mut nmod_mat_struct,
rank_check: ::std::os::raw::c_int,
) -> slong;
pub fn nmod_mat_lu_classical(
P: *mut slong,
A: *mut nmod_mat_struct,
rank_check: ::std::os::raw::c_int,
) -> slong;
pub fn nmod_mat_lu_classical_delayed(
P: *mut slong,
A: *mut nmod_mat_struct,
rank_check: ::std::os::raw::c_int,
) -> slong;
pub fn nmod_mat_lu_recursive(
P: *mut slong,
A: *mut nmod_mat_struct,
rank_check: ::std::os::raw::c_int,
) -> slong;
pub fn nmod_mat_lu_with_pivots(
P: *mut slong,
pivots_nonpivots: *mut slong,
A: *mut nmod_mat_struct,
) -> slong;
pub fn nmod_mat_solve(
X: *mut nmod_mat_struct,
A: *const nmod_mat_struct,
B: *const nmod_mat_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mat_solve_vec(
x: nn_ptr,
A: *const nmod_mat_struct,
b: nn_srcptr,
) -> ::std::os::raw::c_int;
pub fn nmod_mat_can_solve_inner(
rank: *mut slong,
prm: *mut slong,
piv: *mut slong,
X: *mut nmod_mat_struct,
A: *const nmod_mat_struct,
B: *const nmod_mat_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mat_can_solve(
X: *mut nmod_mat_struct,
A: *const nmod_mat_struct,
B: *const nmod_mat_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mat_rref(A: *mut nmod_mat_struct) -> slong;
pub fn _nmod_mat_rref(
A: *mut nmod_mat_struct,
pivots_nonpivots: *mut slong,
P: *mut slong,
) -> slong;
pub fn nmod_mat_rref_classical(A: *mut nmod_mat_struct) -> slong;
pub fn _nmod_mat_rref_classical(
A: *mut nmod_mat_struct,
pivots_nonpivots: *mut slong,
) -> slong;
pub fn nmod_mat_rref_storjohann(A: *mut nmod_mat_struct) -> slong;
pub fn _nmod_mat_rref_storjohann(
A: *mut nmod_mat_struct,
pivots_nonpivots: *mut slong,
) -> slong;
pub fn nmod_mat_reduce_row(
M: *mut nmod_mat_struct,
P: *mut slong,
L: *mut slong,
m: slong,
) -> slong;
pub fn nmod_mat_nullspace(
X: *mut nmod_mat_struct,
A: *const nmod_mat_struct,
) -> slong;
pub fn nmod_mat_left_nullspace(
X: *mut nmod_mat_struct,
A: *const nmod_mat_struct,
) -> slong;
pub fn nmod_mat_strong_echelon_form(A: *mut nmod_mat_struct);
pub fn nmod_mat_howell_form(A: *mut nmod_mat_struct) -> slong;
pub fn nmod_mat_similarity(M: *mut nmod_mat_struct, r: slong, d: ulong);
pub fn nmod_mat_set_entry(mat: *mut nmod_mat_struct, i: slong, j: slong, x: ulong);
}
/* nmod_mpoly.h */
#[repr(C)]
pub struct nmod_mpoly_univar_struct {
pub coeffs: *mut nmod_mpoly_struct,
pub exps: *mut fmpz,
pub alloc: slong,
pub length: slong,
}
impl Default for nmod_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 nmod_mpoly_univar_t = [nmod_mpoly_univar_struct; 1usize];
#[repr(C)]
pub struct nmod_mpolyu_struct {
pub coeffs: *mut nmod_mpoly_struct,
pub exps: *mut ulong,
pub alloc: slong,
pub length: slong,
pub bits: flint_bitcnt_t,
}
impl Default for nmod_mpolyu_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 nmod_mpolyu_t = [nmod_mpolyu_struct; 1usize];
#[repr(C)]
pub struct nmod_mpolyd_struct {
pub nvars: slong,
pub degb_alloc: slong,
pub deg_bounds: *mut slong,
pub coeff_alloc: slong,
pub coeffs: *mut ulong,
}
impl Default for nmod_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 nmod_mpolyd_t = [nmod_mpolyd_struct; 1usize];
#[repr(C)]
pub struct nmod_poly_stack_struct {
pub poly_array: *mut *mut n_poly_struct,
pub poly_alloc: slong,
pub poly_top: slong,
pub mpolyun_array: *mut *mut nmod_mpolyun_struct,
pub mpolyun_alloc: slong,
pub mpolyun_top: slong,
pub mpolyn_array: *mut *mut nmod_mpolyn_struct,
pub mpolyn_alloc: slong,
pub mpolyn_top: slong,
pub ctx: *const nmod_mpoly_ctx_struct,
pub bits: flint_bitcnt_t,
}
impl Default for nmod_poly_stack_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 nmod_poly_stack_t = [nmod_poly_stack_struct; 1usize];
#[repr(C)]
pub struct nmod_mpolyd_ctx_struct {
pub nvars: slong,
pub perm: *mut slong,
}
impl Default for nmod_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 nmod_mpolyd_ctx_t = [nmod_mpolyd_ctx_struct; 1usize];
#[repr(C)]
pub struct _nmod_mpoly_stripe_struct {
pub big_mem: *mut ::std::os::raw::c_char,
pub big_mem_alloc: slong,
pub ctx: *const nmod_mpoly_ctx_struct,
pub N: slong,
pub bits: flint_bitcnt_t,
pub mod_: nmod_t,
pub lc_minus_inv: ulong,
pub cmpmask: *const ulong,
pub startidx: *mut slong,
pub endidx: *mut slong,
pub emin: *mut ulong,
pub emax: *mut ulong,
pub upperclosed: ::std::os::raw::c_int,
}
impl Default for _nmod_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 nmod_mpoly_stripe_struct = _nmod_mpoly_stripe_struct;
pub type nmod_mpoly_stripe_t = [nmod_mpoly_stripe_struct; 1usize];
#[repr(C)]
pub struct nmod_mpoly_geobucket {
pub polys: [nmod_mpoly_struct; 32usize],
pub temps: [nmod_mpoly_struct; 32usize],
pub length: slong,
}
impl Default for nmod_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 nmod_mpoly_geobucket_struct = nmod_mpoly_geobucket;
pub type nmod_mpoly_geobucket_t = [nmod_mpoly_geobucket_struct; 1usize];
unsafe extern "C" {
pub fn nmod_poly_stack_init(
S: *mut nmod_poly_stack_struct,
bits: flint_bitcnt_t,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_poly_stack_clear(S: *mut nmod_poly_stack_struct);
pub fn nmod_poly_stack_set_ctx(
S: *mut nmod_poly_stack_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_poly_stack_fit_request_poly(
S: *mut nmod_poly_stack_struct,
k: slong,
) -> *mut *mut n_poly_struct;
pub fn nmod_poly_stack_fit_request_mpolyun(
S: *mut nmod_poly_stack_struct,
k: slong,
) -> *mut *mut nmod_mpolyun_struct;
pub fn nmod_poly_stack_fit_request_mpolyn(
S: *mut nmod_poly_stack_struct,
k: slong,
) -> *mut *mut nmod_mpolyn_struct;
pub fn nmod_mpoly_ctx_init(
ctx: *mut nmod_mpoly_ctx_struct,
nvars: slong,
ord: ordering_t,
modulus: ulong,
);
pub fn nmod_mpoly_ctx_init_rand(
ctx: *mut nmod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
max_nvars: slong,
modulus: ulong,
);
pub fn nmod_mpoly_ctx_clear(ctx: *mut nmod_mpoly_ctx_struct);
pub fn nmod_mpoly_ctx_set_modulus(ctx: *mut nmod_mpoly_ctx_struct, modulus: ulong);
pub fn nmod_mpoly_ctx_nvars(ctx: *const nmod_mpoly_ctx_struct) -> slong;
pub fn nmod_mpoly_ctx_ord(ctx: *const nmod_mpoly_ctx_struct) -> ordering_t;
pub fn nmod_mpoly_ctx_modulus(ctx: *const nmod_mpoly_ctx_struct) -> ulong;
pub fn nmod_mpoly_init(
A: *mut nmod_mpoly_struct,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_init2(
A: *mut nmod_mpoly_struct,
alloc: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_init3(
A: *mut nmod_mpoly_struct,
alloc: slong,
bits: flint_bitcnt_t,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_realloc(
A: *mut nmod_mpoly_struct,
alloc: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_clear(
A: *mut nmod_mpoly_struct,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_fit_length(
A: *mut nmod_mpoly_struct,
length: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_fit_length_fit_bits(
A: *mut nmod_mpoly_struct,
len: slong,
bits: flint_bitcnt_t,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_fit_length_reset_bits(
A: *mut nmod_mpoly_struct,
len: slong,
bits: flint_bitcnt_t,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn _nmod_mpoly_fit_length(
coeffs: *mut *mut ulong,
coeffs_alloc: *mut slong,
exps: *mut *mut ulong,
exps_alloc: *mut slong,
N: slong,
length: slong,
);
pub fn _nmod_mpoly_set_length(
A: *mut nmod_mpoly_struct,
newlen: slong,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_truncate(
A: *mut nmod_mpoly_struct,
newlen: slong,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_set_str_pretty(
A: *mut nmod_mpoly_struct,
str_: *const ::std::os::raw::c_char,
x: *mut *const ::std::os::raw::c_char,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_get_str_pretty(
A: *const nmod_mpoly_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const nmod_mpoly_ctx_struct,
) -> *mut ::std::os::raw::c_char;
pub fn nmod_mpoly_fprint_pretty(
file: *mut FILE,
A: *const nmod_mpoly_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_print_pretty(
A: *const nmod_mpoly_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_gen(
A: *mut nmod_mpoly_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_is_gen(
A: *const nmod_mpoly_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_set(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_equal(
A: *const nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_swap(
A: *mut nmod_mpoly_struct,
B: *mut nmod_mpoly_struct,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_is_ui(
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_get_ui(
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ulong;
pub fn nmod_mpoly_set_ui(
A: *mut nmod_mpoly_struct,
c: ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_set_fmpz(
A: *mut nmod_mpoly_struct,
c: *const fmpz,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_zero(A: *mut nmod_mpoly_struct, ctx: *const nmod_mpoly_ctx_struct);
pub fn nmod_mpoly_one(A: *mut nmod_mpoly_struct, ctx: *const nmod_mpoly_ctx_struct);
pub fn nmod_mpoly_equal_ui(
A: *const nmod_mpoly_struct,
c: ulong,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_is_zero(
A: *const nmod_mpoly_struct,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_is_one(
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_degrees_fit_si(
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_degrees_fmpz(
degs: *mut *mut fmpz,
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_degrees_si(
degs: *mut slong,
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_degree_fmpz(
deg: *mut fmpz,
A: *const nmod_mpoly_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_degree_si(
A: *const nmod_mpoly_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> slong;
pub fn nmod_mpoly_total_degree_fits_si(
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_total_degree_fmpz(
td: *mut fmpz,
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_total_degree_si(
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> slong;
pub fn nmod_mpoly_used_vars(
used: *mut ::std::os::raw::c_int,
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_get_coeff_ui_monomial(
A: *const nmod_mpoly_struct,
M: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ulong;
pub fn nmod_mpoly_set_coeff_ui_monomial(
A: *mut nmod_mpoly_struct,
c: ulong,
M: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_get_coeff_ui_ui(
A: *const nmod_mpoly_struct,
exp: *const ulong,
ctx: *const nmod_mpoly_ctx_struct,
) -> ulong;
pub fn nmod_mpoly_get_coeff_ui_fmpz(
A: *const nmod_mpoly_struct,
exp: *const *mut fmpz,
ctx: *const nmod_mpoly_ctx_struct,
) -> ulong;
pub fn _nmod_mpoly_set_coeff_ui_fmpz(
A: *mut nmod_mpoly_struct,
c: ulong,
exp: *const fmpz,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_set_coeff_ui_fmpz(
A: *mut nmod_mpoly_struct,
c: ulong,
exp: *const *mut fmpz,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_set_coeff_ui_ui(
A: *mut nmod_mpoly_struct,
c: ulong,
exp: *const ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_get_coeff_vars_ui(
C: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
vars: *const slong,
exps: *const ulong,
length: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_leadcoeff(
A: *mut nmod_mpoly_struct,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
) -> ulong;
pub fn nmod_mpoly_is_nmod_poly(
A: *const nmod_mpoly_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_get_n_poly(
A: *mut n_poly_struct,
B: *const nmod_mpoly_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_get_nmod_poly(
A: *mut nmod_poly_struct,
B: *const nmod_mpoly_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_set_n_poly_mod(
A: *mut nmod_mpoly_struct,
B: *const n_poly_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn _nmod_mpoly_set_nmod_poly(
A: *mut nmod_mpoly_struct,
Abits: flint_bitcnt_t,
Bcoeffs: *const ulong,
Blen: slong,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_set_nmod_poly(
A: *mut nmod_mpoly_struct,
B: *const nmod_poly_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_cmp(
A: *const nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_is_canonical(
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_length(
A: *const nmod_mpoly_struct,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
) -> slong;
pub fn nmod_mpoly_resize(
A: *mut nmod_mpoly_struct,
new_length: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_get_term_coeff_ui(
A: *const nmod_mpoly_struct,
i: slong,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
) -> ulong;
pub fn nmod_mpoly_set_term_coeff_ui(
A: *mut nmod_mpoly_struct,
i: slong,
c: ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_term_exp_fits_ui(
A: *const nmod_mpoly_struct,
i: slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_term_exp_fits_si(
A: *const nmod_mpoly_struct,
i: slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_get_term_exp_si(
exp: *mut slong,
A: *const nmod_mpoly_struct,
i: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_get_term_exp_ui(
exp: *mut ulong,
A: *const nmod_mpoly_struct,
i: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_get_term_exp_fmpz(
exp: *mut *mut fmpz,
A: *const nmod_mpoly_struct,
i: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_get_term_var_exp_si(
A: *const nmod_mpoly_struct,
i: slong,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> slong;
pub fn nmod_mpoly_get_term_var_exp_ui(
A: *const nmod_mpoly_struct,
i: slong,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> ulong;
pub fn nmod_mpoly_set_term_exp_ui(
A: *mut nmod_mpoly_struct,
i: slong,
exp: *const ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_set_term_exp_fmpz(
A: *mut nmod_mpoly_struct,
i: slong,
exp: *const *mut fmpz,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_get_term(
M: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
i: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_get_term_monomial(
M: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
i: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_push_term_ui_ui(
A: *mut nmod_mpoly_struct,
c: ulong,
exp: *const ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_push_term_ui_fmpz(
A: *mut nmod_mpoly_struct,
c: ulong,
exp: *const *mut fmpz,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_push_term_ui_ffmpz(
A: *mut nmod_mpoly_struct,
c: ulong,
exp: *const fmpz,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_sort_terms(
A: *mut nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_combine_like_terms(
A: *mut nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_reverse(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_assert_canonical(
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn _nmod_mpoly_radix_sort1(
A: *mut nmod_mpoly_struct,
left: slong,
right: slong,
pos: flint_bitcnt_t,
cmpmask: ulong,
totalmask: ulong,
);
pub fn _nmod_mpoly_radix_sort(
A: *mut nmod_mpoly_struct,
left: slong,
right: slong,
pos: flint_bitcnt_t,
N: slong,
cmpmask: *mut ulong,
);
pub fn _nmod_mpoly_push_exp_ui(
A: *mut nmod_mpoly_struct,
exp: *const ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn _nmod_mpoly_push_exp_ffmpz(
A: *mut nmod_mpoly_struct,
exp: *const fmpz,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn _nmod_mpoly_push_exp_pfmpz(
A: *mut nmod_mpoly_struct,
exp: *const *mut fmpz,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_randtest_bounds(
A: *mut nmod_mpoly_struct,
state: *mut flint_rand_struct,
length: slong,
exp_bounds: *mut ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_randtest_bound(
A: *mut nmod_mpoly_struct,
state: *mut flint_rand_struct,
length: slong,
exp_bound: ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_randtest_bits(
A: *mut nmod_mpoly_struct,
state: *mut flint_rand_struct,
length: slong,
exp_bits: flint_bitcnt_t,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn _nmod_mpoly_get_term_ui_fmpz(
poly: *const nmod_mpoly_struct,
exp: *const fmpz,
ctx: *const nmod_mpoly_ctx_struct,
) -> ulong;
pub fn nmod_mpoly_get_term_ui_fmpz(
poly: *const nmod_mpoly_struct,
exp: *const *mut fmpz,
ctx: *const nmod_mpoly_ctx_struct,
) -> ulong;
pub fn nmod_mpoly_get_term_ui_ui(
poly: *const nmod_mpoly_struct,
exp: *const ulong,
ctx: *const nmod_mpoly_ctx_struct,
) -> ulong;
pub fn _nmod_mpoly_max_degrees(
max_degs: *mut ulong,
exps: *const ulong,
len: slong,
bits: slong,
n: slong,
deg: ::std::os::raw::c_int,
rev: ::std::os::raw::c_int,
N: slong,
);
pub fn nmod_mpoly_max_degrees(
max_degs: *mut ulong,
poly: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_set_nmod(
poly: *mut nmod_mpoly_struct,
c: nmod_t,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_get_coeff_ui(
x: nmod_t,
poly: *const nmod_mpoly_struct,
n: slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> ulong;
pub fn nmod_mpoly_set_coeff_ui(
poly: *mut nmod_mpoly_struct,
n: slong,
x: ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_get_monomial(
exps: *mut ulong,
poly: *const nmod_mpoly_struct,
n: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_set_monomial(
poly: *mut nmod_mpoly_struct,
n: slong,
exps: *const ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_add_ui(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
c: ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_add(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
C: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_sub_ui(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
c: ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_sub(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
C: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn _nmod_mpoly_add(
coeff1: *mut ulong,
exp1: *mut ulong,
coeff2: *const ulong,
exp2: *const ulong,
len2: slong,
coeff3: *const ulong,
exp3: *const ulong,
len3: slong,
N: slong,
cmpmask: *const ulong,
fctx: nmod_t,
) -> slong;
pub fn _nmod_mpoly_sub(
coeff1: *mut ulong,
exp1: *mut ulong,
coeff2: *const ulong,
exp2: *const ulong,
len2: slong,
coeff3: *const ulong,
exp3: *const ulong,
len3: slong,
N: slong,
cmpmask: *const ulong,
fctx: nmod_t,
) -> slong;
pub fn nmod_mpoly_neg(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_scalar_mul_ui(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
c: ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_make_monic(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_scalar_mul_nmod_invertible(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
c: ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_scalar_addmul_ui(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
C: *const nmod_mpoly_struct,
d: ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_derivative(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn _ff_poly_pow_ui_is_not_feasible(
length: slong,
e: ulong,
) -> ::std::os::raw::c_int;
pub fn _ff_poly_pow_fmpz_is_not_feasible(
length: slong,
e: *const fmpz,
) -> ::std::os::raw::c_int;
pub fn _nmod_mpoly_eval_all_ui(
Acoeffs: *const ulong,
Aexps: *const ulong,
Alen: slong,
Abits: flint_bitcnt_t,
alphas: *const ulong,
mctx: *const mpoly_ctx_struct,
mod_: nmod_t,
) -> ulong;
pub fn nmod_mpoly_evaluate_all_ui(
A: *const nmod_mpoly_struct,
vals: *const ulong,
ctx: *const nmod_mpoly_ctx_struct,
) -> ulong;
pub fn nmod_mpoly_evaluate_one_ui(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
var: slong,
val: ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_compose_nmod_poly(
A: *mut nmod_poly_struct,
B: *const nmod_mpoly_struct,
C: *const *mut nmod_poly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nmod_mpoly_compose_mat(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
M: *const fmpz_mat_struct,
ctxB: *const nmod_mpoly_ctx_struct,
ctxAC: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_compose_nmod_mpoly_geobucket(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
C: *const *mut nmod_mpoly_struct,
ctxB: *const nmod_mpoly_ctx_struct,
ctxAC: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_compose_nmod_mpoly_horner(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
C: *const *mut nmod_mpoly_struct,
ctxB: *const nmod_mpoly_ctx_struct,
ctxAC: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_compose_nmod_mpoly(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
C: *const *mut nmod_mpoly_struct,
ctxB: *const nmod_mpoly_ctx_struct,
ctxAC: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_compose_nmod_mpoly_gen(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
c: *const slong,
ctxB: *const nmod_mpoly_ctx_struct,
ctxAC: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_mul(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
C: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_mul_johnson(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
C: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_mul_heap_threaded(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
C: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_mul_array(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
C: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_mul_array_threaded(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
C: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nmod_mpoly_mul_dense(
P: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
maxAfields: *mut fmpz,
B: *const nmod_mpoly_struct,
maxBfields: *mut fmpz,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_mul_dense(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
C: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nmod_mpoly_mul_johnson(
A: *mut nmod_mpoly_struct,
coeff2: *const ulong,
exp2: *const ulong,
len2: slong,
coeff3: *const ulong,
exp3: *const ulong,
len3: slong,
bits: flint_bitcnt_t,
N: slong,
cmpmask: *const ulong,
fctx: nmod_t,
) -> slong;
pub fn _nmod_mpoly_mul_johnson_maxfields(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
maxBfields: *mut fmpz,
C: *const nmod_mpoly_struct,
maxCfields: *mut fmpz,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn _nmod_mpoly_mul_heap_threaded_pool_maxfields(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
maxBfields: *mut fmpz,
C: *const nmod_mpoly_struct,
maxCfields: *mut fmpz,
ctx: *const nmod_mpoly_ctx_struct,
handles: *const thread_pool_handle,
num_handles: slong,
);
pub fn _nmod_mpoly_mul_array_DEG(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
maxBfields: *mut fmpz,
C: *const nmod_mpoly_struct,
maxCfields: *mut fmpz,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nmod_mpoly_mul_array_LEX(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
maxBfields: *mut fmpz,
C: *const nmod_mpoly_struct,
maxCfields: *mut fmpz,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nmod_mpoly_mul_array_threaded_pool_DEG(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
maxBfields: *mut fmpz,
C: *const nmod_mpoly_struct,
maxCfields: *mut fmpz,
ctx: *const nmod_mpoly_ctx_struct,
handles: *const thread_pool_handle,
num_handles: slong,
) -> ::std::os::raw::c_int;
pub fn _nmod_mpoly_mul_array_threaded_pool_LEX(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
maxBfields: *mut fmpz,
C: *const nmod_mpoly_struct,
maxCfields: *mut fmpz,
ctx: *const nmod_mpoly_ctx_struct,
handles: *const thread_pool_handle,
num_handles: slong,
) -> ::std::os::raw::c_int;
pub fn _nmod_mpoly_pow_rmul(
A: *mut nmod_mpoly_struct,
Bcoeffs: *const ulong,
Bexps: *const ulong,
Blen: slong,
k: ulong,
N: slong,
cmpmask: *const ulong,
mod_: nmod_t,
T: *mut nmod_mpoly_struct,
);
pub fn nmod_mpoly_pow_rmul(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
k: ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_pow_ui(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
k: ulong,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_pow_fmpz(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
k: *const fmpz,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_divides(
Q: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nmod_mpoly_divides_threaded_pool(
Q: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
handles: *const thread_pool_handle,
num_handles: slong,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_divides_monagan_pearce(
Q: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_divides_heap_threaded(
Q: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nmod_mpoly_divides_heap_threaded_pool(
Q: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
handles: *const thread_pool_handle,
num_handles: slong,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_divides_dense(
Q: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_div(
Q: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_divrem(
Q: *mut nmod_mpoly_struct,
R: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_divrem_ideal(
Q: *mut *mut nmod_mpoly_struct,
R: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
B: *const *mut nmod_mpoly_struct,
len: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_divexact(
Q: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn _nmod_mpoly_divides_monagan_pearce(
Q: *mut nmod_mpoly_struct,
coeff2: *const ulong,
exp2: *const ulong,
len2: slong,
coeff3: *const ulong,
exp3: *const ulong,
len3: slong,
bits: flint_bitcnt_t,
N: slong,
cmpmask: *const ulong,
fctx: nmod_t,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_div_monagan_pearce(
Q: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_divrem_monagan_pearce(
q: *mut nmod_mpoly_struct,
r: *mut nmod_mpoly_struct,
poly2: *const nmod_mpoly_struct,
poly3: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_divrem_ideal_monagan_pearce(
Q: *mut *mut nmod_mpoly_struct,
R: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
B: *const *mut nmod_mpoly_struct,
len: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_sqrt_heap(
Q: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_sqrt(
Q: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_is_square(
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_quadratic_root(
Q: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_term_content(
M: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_content_vars(
g: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
vars: *mut slong,
vars_length: slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_gcd(
G: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nmod_mpoly_gcd_algo_small(
G: *mut nmod_mpoly_struct,
Abar: *mut nmod_mpoly_struct,
Bbar: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
algo: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_int;
pub fn _nmod_mpoly_gcd_algo(
G: *mut nmod_mpoly_struct,
Abar: *mut nmod_mpoly_struct,
Bbar: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
algo: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_gcd_cofactors(
G: *mut nmod_mpoly_struct,
Abar: *mut nmod_mpoly_struct,
Bbar: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_gcd_brown(
G: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_gcd_hensel(
G: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_gcd_zippel(
G: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_gcd_zippel2(
G: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_deflation(
shift: *mut fmpz,
stride: *mut fmpz,
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_deflate(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
shift: *const fmpz,
stride: *const fmpz,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_inflate(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
shift: *const fmpz,
stride: *const fmpz,
ctx: *const nmod_mpoly_ctx_struct,
);
///Internal functions (guaranteed to change without notice)
pub fn mpoly_void_ring_init_nmod_mpoly_ctx(
R: *mut mpoly_void_ring_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyl_lead_coeff(
c: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
num_vars: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyl_content(
g: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
num_vars: slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nmod_mpoly_to_nmod_poly_deflate(
A: *mut nmod_poly_struct,
B: *const nmod_mpoly_struct,
var: slong,
Bshift: *const ulong,
Bstride: *const ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn _nmod_mpoly_from_nmod_poly_inflate(
A: *mut nmod_mpoly_struct,
Abits: flint_bitcnt_t,
B: *const nmod_poly_struct,
var: slong,
Ashift: *const ulong,
Astride: *const ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_repack_bits(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
Abits: flint_bitcnt_t,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_repack_bits_inplace(
A: *mut nmod_mpoly_struct,
Abits: flint_bitcnt_t,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_univar_init(
A: *mut nmod_mpoly_univar_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_univar_clear(
A: *mut nmod_mpoly_univar_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_univar_fit_length(
A: *mut nmod_mpoly_univar_struct,
length: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_univar_print_pretty(
A: *const nmod_mpoly_univar_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_univar_assert_canonical(
A: *mut nmod_mpoly_univar_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_univar_zero(
A: *mut nmod_mpoly_univar_struct,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_univar_set_coeff_ui(
A: *mut nmod_mpoly_univar_struct,
e: ulong,
c: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_to_univar(
A: *mut nmod_mpoly_univar_struct,
B: *const nmod_mpoly_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn _nmod_mpoly_from_univar(
A: *mut nmod_mpoly_struct,
Abits: flint_bitcnt_t,
B: *const nmod_mpoly_univar_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_from_univar(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_univar_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_univar_swap(
A: *mut nmod_mpoly_univar_struct,
B: *mut nmod_mpoly_univar_struct,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_univar_degree_fits_si(
A: *const nmod_mpoly_univar_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_univar_length(
A: *const nmod_mpoly_univar_struct,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
) -> slong;
pub fn nmod_mpoly_univar_get_term_exp_si(
A: *mut nmod_mpoly_univar_struct,
i: slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> slong;
pub fn nmod_mpoly_univar_get_term_coeff(
c: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_univar_struct,
i: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_univar_swap_term_coeff(
c: *mut nmod_mpoly_struct,
A: *mut nmod_mpoly_univar_struct,
i: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_univar_pseudo_gcd(
Gx: *mut nmod_mpoly_univar_struct,
Ax: *const nmod_mpoly_univar_struct,
Bx: *const nmod_mpoly_univar_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_univar_resultant(
R: *mut nmod_mpoly_struct,
Ax: *const nmod_mpoly_univar_struct,
Bx: *const nmod_mpoly_univar_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_univar_discriminant(
D: *mut nmod_mpoly_struct,
Fx: *const nmod_mpoly_univar_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_resultant(
R: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_discriminant(
R: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nmod_mpoly_mul_array_chunked_LEX(
P: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
mults: *const ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn _nmod_mpoly_mul_array_chunked_DEG(
P: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
degb: ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn _nmod_mpoly_addmul_array1_ulong1(
poly1: *mut ulong,
poly2: *const ulong,
exp2: *const ulong,
len2: slong,
poly3: *const ulong,
exp3: *const ulong,
len3: slong,
);
pub fn _nmod_mpoly_addmul_array1_ulong2(
poly1: *mut ulong,
poly2: *const ulong,
exp2: *const ulong,
len2: slong,
poly3: *const ulong,
exp3: *const ulong,
len3: slong,
);
pub fn _nmod_mpoly_addmul_array1_ulong3(
poly1: *mut ulong,
poly2: *const ulong,
exp2: *const ulong,
len2: slong,
poly3: *const ulong,
exp3: *const ulong,
len3: slong,
);
pub fn nmod_mpoly_append_array_sm1_LEX(
P: *mut nmod_mpoly_struct,
Plen: slong,
coeff_array: *mut ulong,
mults: *const ulong,
num: slong,
array_size: slong,
top: slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> slong;
pub fn nmod_mpoly_append_array_sm2_LEX(
P: *mut nmod_mpoly_struct,
Plen: slong,
coeff_array: *mut ulong,
mults: *const ulong,
num: slong,
array_size: slong,
top: slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> slong;
pub fn nmod_mpoly_append_array_sm3_LEX(
P: *mut nmod_mpoly_struct,
Plen: slong,
coeff_array: *mut ulong,
mults: *const ulong,
num: slong,
array_size: slong,
top: slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> slong;
pub fn nmod_mpoly_append_array_sm1_DEGLEX(
P: *mut nmod_mpoly_struct,
Plen: slong,
coeff_array: *mut ulong,
top: slong,
nvars: slong,
degb: slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> slong;
pub fn nmod_mpoly_append_array_sm2_DEGLEX(
P: *mut nmod_mpoly_struct,
Plen: slong,
coeff_array: *mut ulong,
top: slong,
nvars: slong,
degb: slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> slong;
pub fn nmod_mpoly_append_array_sm3_DEGLEX(
P: *mut nmod_mpoly_struct,
Plen: slong,
coeff_array: *mut ulong,
top: slong,
nvars: slong,
degb: slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> slong;
pub fn nmod_mpoly_append_array_sm1_DEGREVLEX(
P: *mut nmod_mpoly_struct,
Plen: slong,
coeff_array: *mut ulong,
top: slong,
nvars: slong,
degb: slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> slong;
pub fn nmod_mpoly_append_array_sm2_DEGREVLEX(
P: *mut nmod_mpoly_struct,
Plen: slong,
coeff_array: *mut ulong,
top: slong,
nvars: slong,
degb: slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> slong;
pub fn nmod_mpoly_append_array_sm3_DEGREVLEX(
P: *mut nmod_mpoly_struct,
Plen: slong,
coeff_array: *mut ulong,
top: slong,
nvars: slong,
degb: slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> slong;
pub fn nmod_mpolyd_ctx_init(dctx: *mut nmod_mpolyd_ctx_struct, nvars: slong);
pub fn nmod_mpolyd_ctx_clear(dctx: *mut nmod_mpolyd_ctx_struct);
pub fn nmod_mpolyd_set_degbounds(
A: *mut nmod_mpolyd_struct,
bounds: *mut slong,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyd_set_degbounds_perm(
A: *mut nmod_mpolyd_struct,
dctx: *const nmod_mpolyd_ctx_struct,
bounds: *mut slong,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_convert_to_nmod_mpolyd(
A: *mut nmod_mpolyd_struct,
dctx: *const nmod_mpolyd_ctx_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_convert_to_nmod_mpolyd_degbound(
A: *mut nmod_mpolyd_struct,
dctx: *const nmod_mpolyd_ctx_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_convert_from_nmod_mpolyd(
A: *mut nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
B: *const nmod_mpolyd_struct,
dctx: *const nmod_mpolyd_ctx_struct,
);
pub fn nmod_mpolyd_init(poly: *mut nmod_mpolyd_struct, nvars: slong);
pub fn nmod_mpolyd_fit_length(poly: *mut nmod_mpolyd_struct, len: slong);
pub fn nmod_mpolyd_zero(poly: *mut nmod_mpolyd_struct);
pub fn nmod_mpolyd_set_nvars(poly: *mut nmod_mpolyd_struct, nvars: slong);
pub fn nmod_mpolyd_set(A: *mut nmod_mpolyd_struct, B: *const nmod_mpolyd_struct);
pub fn nmod_mpolyd_clear(poly: *mut nmod_mpolyd_struct);
pub fn nmod_mpolyd_print(poly: *mut nmod_mpolyd_struct);
pub fn nmod_mpolyd_length(A: *const nmod_mpolyd_struct) -> slong;
pub fn nmod_mpolyu_init(
A: *mut nmod_mpolyu_struct,
bits: flint_bitcnt_t,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyu_clear(
A: *mut nmod_mpolyu_struct,
uctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyu_is_one(
A: *mut nmod_mpolyu_struct,
uctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyu_print_pretty(
poly: *const nmod_mpolyu_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyu_fit_length(
A: *mut nmod_mpolyu_struct,
length: slong,
uctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyu_one(
A: *mut nmod_mpolyu_struct,
uctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyu_degrees_si(
degs: *mut slong,
A: *const nmod_mpolyu_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyu_repack_bits_inplace(
A: *mut nmod_mpolyu_struct,
bits: flint_bitcnt_t,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn _nmod_mpolyu_get_coeff(
A: *mut nmod_mpolyu_struct,
pow: ulong,
uctx: *const nmod_mpoly_ctx_struct,
) -> *mut nmod_mpoly_struct;
pub fn nmod_mpolyu_shift_right(A: *mut nmod_mpolyu_struct, s: ulong);
pub fn nmod_mpolyu_shift_left(A: *mut nmod_mpolyu_struct, s: ulong);
pub fn nmod_mpolyu_content_mpoly(
g: *mut nmod_mpoly_struct,
A: *const nmod_mpolyu_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyu_scalar_mul_nmod(
A: *mut nmod_mpolyu_struct,
c: ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyu_set(
A: *mut nmod_mpolyu_struct,
B: *const nmod_mpolyu_struct,
uctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyu_cvtto_poly(
a: *mut nmod_poly_struct,
A: *mut nmod_mpolyu_struct,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyu_cvtfrom_poly(
A: *mut nmod_mpolyu_struct,
a: *mut nmod_poly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyu_cvtfrom_poly_notmain(
A: *mut nmod_mpolyu_struct,
a: *mut nmod_poly_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_to_mpolyu_perm_deflate_threaded_pool(
A: *mut nmod_mpolyu_struct,
uctx: *const nmod_mpoly_ctx_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
perm: *const slong,
shift: *const ulong,
stride: *const ulong,
handles: *const thread_pool_handle,
num_handles: slong,
);
pub fn nmod_mpoly_from_mpolyu_perm_inflate(
A: *mut nmod_mpoly_struct,
Abits: flint_bitcnt_t,
ctx: *const nmod_mpoly_ctx_struct,
B: *const nmod_mpolyu_struct,
uctx: *const nmod_mpoly_ctx_struct,
perm: *const slong,
shift: *const ulong,
stride: *const ulong,
);
pub fn nmod_mpolyuu_divides(
Q: *mut nmod_mpolyu_struct,
A: *const nmod_mpolyu_struct,
B: *const nmod_mpolyu_struct,
nmainvars: slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyu_divexact_mpoly_inplace(
A: *mut nmod_mpolyu_struct,
c: *mut nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyu_mul_mpoly(
A: *mut nmod_mpolyu_struct,
B: *mut nmod_mpolyu_struct,
c: *mut nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyu_mul_mpoly_inplace(
A: *mut nmod_mpolyu_struct,
c: *mut nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyu_setform(
A: *mut nmod_mpolyu_struct,
B: *mut nmod_mpolyu_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyu_gcdm_zippel(
G: *mut nmod_mpolyu_struct,
Abar: *mut nmod_mpolyu_struct,
Bbar: *mut nmod_mpolyu_struct,
A: *mut nmod_mpolyu_struct,
B: *mut nmod_mpolyu_struct,
ctx: *mut nmod_mpoly_ctx_struct,
randstate: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyu_leadcoeff(
A: *mut nmod_mpolyu_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ulong;
pub fn nmod_mpolyn_init(
A: *mut nmod_mpolyn_struct,
bits: flint_bitcnt_t,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_clear(
A: *mut nmod_mpolyn_struct,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_swap(A: *mut nmod_mpolyn_struct, B: *mut nmod_mpolyn_struct);
pub fn nmod_mpolyn_zero(
A: *mut nmod_mpolyn_struct,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_is_zero(
A: *mut nmod_mpolyn_struct,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyn_print_pretty(
A: *const nmod_mpolyn_struct,
x_in: *mut *const ::std::os::raw::c_char,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_fit_length(
A: *mut nmod_mpolyn_struct,
length: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_set_length(
A: *mut nmod_mpolyn_struct,
newlen: slong,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_fit_bits(
A: *mut nmod_mpolyn_struct,
bits: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_is_canonical(
A: *const nmod_mpolyn_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyn_set(
A: *mut nmod_mpolyn_struct,
B: *const nmod_mpolyn_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_set_mpoly(
A: *mut nmod_mpolyn_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_cvtfrom_mpolyn(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpolyn_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_mul_poly(
A: *mut nmod_mpolyn_struct,
B: *const nmod_mpolyn_struct,
c: *const n_poly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_cvtto_mpolyn(
A: *mut nmod_mpolyn_struct,
B: *const nmod_mpoly_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_leadcoeff(
A: *mut nmod_mpolyn_struct,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
) -> ulong;
pub fn nmod_mpolyn_leadcoeff_poly(
A: *mut nmod_mpolyn_struct,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
) -> *mut n_poly_struct;
pub fn nmod_mpolyun_init(
A: *mut nmod_mpolyun_struct,
bits: flint_bitcnt_t,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyun_clear(
A: *mut nmod_mpolyun_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyun_zero(
A: *mut nmod_mpolyun_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyun_print_pretty(
poly: *const nmod_mpolyun_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyun_fit_length(
A: *mut nmod_mpolyun_struct,
length: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyun_is_canonical(
A: *const nmod_mpolyun_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyun_shift_right(A: *mut nmod_mpolyun_struct, s: ulong);
pub fn nmod_mpolyun_shift_left(A: *mut nmod_mpolyun_struct, s: ulong);
pub fn nmod_mpolyn_lastdeg(
A: *mut nmod_mpolyn_struct,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
) -> slong;
pub fn nmod_mpolyun_lastdeg(
A: *mut nmod_mpolyun_struct,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
) -> slong;
pub fn nmod_mpolyun_set(
A: *mut nmod_mpolyun_struct,
B: *const nmod_mpolyun_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_one(
A: *mut nmod_mpolyn_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyun_one(
A: *mut nmod_mpolyun_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyun_leadcoeff_last(
A: *mut nmod_mpolyun_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ulong;
pub fn nmod_mpolyn_set_mod(UNUSED_A: *mut nmod_mpolyn_struct, UNUSED_mod: nmod_t);
pub fn nmod_mpolyun_set_mod(UNUSED_A: *mut nmod_mpolyun_struct, UNUSED_mod: nmod_t);
pub fn nmod_mpolyn_is_nonzero_nmod(
A: *const nmod_mpolyn_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyun_is_nonzero_nmod(
A: *const nmod_mpolyun_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyn_scalar_mul_nmod(
A: *mut nmod_mpolyn_struct,
c: ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyun_scalar_mul_nmod(
A: *mut nmod_mpolyun_struct,
c: ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_mul_last(
A: *mut nmod_mpolyn_struct,
b: *mut n_poly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyun_mul_last(
A: *mut nmod_mpolyun_struct,
b: *mut n_poly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_equal(
A: *const nmod_mpolyn_struct,
B: *const nmod_mpolyn_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyun_equal(
A: *const nmod_mpolyun_struct,
B: *const nmod_mpolyun_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyu_cvtto_mpolyun(
A: *mut nmod_mpolyun_struct,
B: *const nmod_mpolyu_struct,
k: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyu_cvtfrom_mpolyun(
A: *mut nmod_mpolyu_struct,
B: *const nmod_mpolyun_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyun_mul_poly(
A: *mut nmod_mpolyun_struct,
B: *const nmod_mpolyun_struct,
c: *const n_poly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_content_last(
a: *mut n_poly_struct,
B: *mut nmod_mpolyn_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyun_content_last(
a: *mut n_poly_struct,
B: *mut nmod_mpolyun_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_divexact_last(
A: *mut nmod_mpolyn_struct,
b: *mut n_poly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyun_divexact_last(
A: *mut nmod_mpolyun_struct,
b: *mut n_poly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_divides(
Q: *mut nmod_mpolyn_struct,
A: *const nmod_mpolyn_struct,
B: *const nmod_mpolyn_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyn_divides_threaded_pool(
Q: *mut nmod_mpolyn_struct,
A: *const nmod_mpolyn_struct,
B: *const nmod_mpolyn_struct,
ctx: *const nmod_mpoly_ctx_struct,
handles: *const thread_pool_handle,
num_handles: slong,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyun_divides(
Q: *mut nmod_mpolyun_struct,
A: *const nmod_mpolyun_struct,
B: *const nmod_mpolyun_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_to_mpolyun_perm_deflate_threaded_pool(
A: *mut nmod_mpolyun_struct,
uctx: *const nmod_mpoly_ctx_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
perm: *const slong,
shift: *const ulong,
stride: *const ulong,
handles: *const thread_pool_handle,
num_handles: slong,
);
pub fn nmod_mpoly_to_mpolyn_perm_deflate_threaded_pool(
A: *mut nmod_mpolyn_struct,
nctx: *const nmod_mpoly_ctx_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
perm: *const slong,
shift: *const ulong,
stride: *const ulong,
UNUSED_handles: *const thread_pool_handle,
UNUSED_num_handles: slong,
);
pub fn nmod_mpoly_from_mpolyun_perm_inflate(
A: *mut nmod_mpoly_struct,
Abits: flint_bitcnt_t,
ctx: *const nmod_mpoly_ctx_struct,
B: *const nmod_mpolyun_struct,
uctx: *const nmod_mpoly_ctx_struct,
perm: *const slong,
shift: *const ulong,
stride: *const ulong,
);
pub fn nmod_mpoly_from_mpolyn_perm_inflate(
A: *mut nmod_mpoly_struct,
Abits: flint_bitcnt_t,
ctx: *const nmod_mpoly_ctx_struct,
B: *const nmod_mpolyn_struct,
nctx: *const nmod_mpoly_ctx_struct,
perm: *const slong,
shift: *const ulong,
stride: *const ulong,
);
pub fn nmod_mpolyun_leadcoeff(
A: *mut nmod_mpolyun_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ulong;
pub fn nmod_mpolyun_leadcoeff_poly(
A: *mut nmod_mpolyun_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> *mut n_poly_struct;
pub fn mpoly_gcd_get_use_first(
rGdeg: slong,
Adeg: slong,
Bdeg: slong,
gammadeg: slong,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_gcd_get_use_new(
rGdeg: slong,
Adeg: slong,
Bdeg: slong,
gammadeg: slong,
degxAB: slong,
degyAB: slong,
numABgamma: slong,
G: *const n_polyun_struct,
Abar: *const n_polyun_struct,
Bbar: *const n_polyun_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyu_setform_mpolyun(
A: *mut nmod_mpolyu_struct,
B: *mut nmod_mpolyun_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_gcd_brown_smprime_bivar(
G: *mut nmod_mpolyn_struct,
Abar: *mut nmod_mpolyn_struct,
Bbar: *mut nmod_mpolyn_struct,
A: *mut nmod_mpolyn_struct,
B: *mut nmod_mpolyn_struct,
ctx: *const nmod_mpoly_ctx_struct,
Sp: *mut nmod_poly_stack_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyn_gcd_brown_smprime(
G: *mut nmod_mpolyn_struct,
Abar: *mut nmod_mpolyn_struct,
Bbar: *mut nmod_mpolyn_struct,
A: *mut nmod_mpolyn_struct,
B: *mut nmod_mpolyn_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
Iv: *const mpoly_gcd_info_struct,
Sp: *mut nmod_poly_stack_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyn_gcd_brown_smprime_threaded_pool(
G: *mut nmod_mpolyn_struct,
Abar: *mut nmod_mpolyn_struct,
Bbar: *mut nmod_mpolyn_struct,
A: *mut nmod_mpolyn_struct,
B: *mut nmod_mpolyn_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
Iv: *const mpoly_gcd_info_struct,
handles: *const thread_pool_handle,
num_workers: slong,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyn_gcd_brown_lgprime(
G: *mut nmod_mpolyn_struct,
Abar: *mut nmod_mpolyn_struct,
Bbar: *mut nmod_mpolyn_struct,
A: *mut nmod_mpolyn_struct,
B: *mut nmod_mpolyn_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyu_gcds_zippel(
G: *mut nmod_mpolyu_struct,
A: *mut nmod_mpolyu_struct,
B: *mut nmod_mpolyu_struct,
f: *mut nmod_mpolyu_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
randstate: *mut flint_rand_struct,
degbound: *mut slong,
) -> nmod_gcds_ret_t;
pub fn nmod_mpolyu_gcdp_zippel(
G: *mut nmod_mpolyu_struct,
Abar: *mut nmod_mpolyu_struct,
Bbar: *mut nmod_mpolyu_struct,
A: *mut nmod_mpolyu_struct,
B: *mut nmod_mpolyu_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
randstate: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_to_mpolyl_perm_deflate(
A: *mut nmod_mpoly_struct,
lctx: *const nmod_mpoly_ctx_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
perm: *const slong,
shift: *const ulong,
stride: *const ulong,
);
pub fn nmod_mpoly_from_mpolyl_perm_inflate(
A: *mut nmod_mpoly_struct,
Abits: flint_bitcnt_t,
ctx: *const nmod_mpoly_ctx_struct,
B: *const nmod_mpoly_struct,
lctx: *const nmod_mpoly_ctx_struct,
perm: *const slong,
shift: *const ulong,
stride: *const ulong,
);
pub fn nmod_mpolyl_gcd_zippel_smprime(
rG: *mut nmod_mpoly_struct,
rGdegs: *const slong,
rAbar: *mut nmod_mpoly_struct,
rBbar: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
Adegs: *const slong,
B: *const nmod_mpoly_struct,
Bdegs: *const slong,
gamma: *const nmod_mpoly_struct,
gammadegs: *const slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyl_gcd_zippel_lgprime(
rG: *mut nmod_mpoly_struct,
rGdegs: *const slong,
rAbar: *mut nmod_mpoly_struct,
rBbar: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
Adegs: *const slong,
B: *const nmod_mpoly_struct,
Bdegs: *const slong,
gamma: *const nmod_mpoly_struct,
gammadegs: *const slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyl_gcd_hensel_smprime(
G: *mut nmod_mpoly_struct,
Gdeg: slong,
Abar: *mut nmod_mpoly_struct,
Bbar: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyl_gcd_hensel_medprime(
G: *mut nmod_mpoly_struct,
Gdeg: slong,
Abar: *mut nmod_mpoly_struct,
Bbar: *mut nmod_mpoly_struct,
smA: *const nmod_mpoly_struct,
smB: *const nmod_mpoly_struct,
smctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nmod_mpoly_monomial_evals_cache(
E: *mut n_poly_struct,
Aexps: *const ulong,
Abits: flint_bitcnt_t,
Alen: slong,
betas: *const ulong,
start: slong,
stop: slong,
mctx: *const mpoly_ctx_struct,
mod_: nmod_t,
);
pub fn _nmod_mpoly_monomial_evals2_cache(
E: *mut n_polyun_struct,
Aexps: *const ulong,
Abits: flint_bitcnt_t,
Alen: slong,
betas: *const ulong,
m: slong,
ctx: *const mpoly_ctx_struct,
mod_: nmod_t,
);
pub fn _nmod_poly_eval2_pow(
vp: *mut ulong,
vm: *mut ulong,
P: *mut n_poly_struct,
alphapow: *mut n_poly_struct,
fctx: nmod_t,
);
pub fn nmod_mpolyn_interp_reduce_2sm_poly(
E: *mut n_poly_struct,
F: *mut n_poly_struct,
A: *const nmod_mpolyn_struct,
alphapow: *mut n_poly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_interp_lift_2sm_poly(
lastdeg_: *mut slong,
F: *mut nmod_mpolyn_struct,
A: *const n_poly_struct,
B: *const n_poly_struct,
alpha: ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_interp_crt_2sm_poly(
lastdeg_: *mut slong,
F: *mut nmod_mpolyn_struct,
T: *mut nmod_mpolyn_struct,
A: *const n_poly_struct,
B: *const n_poly_struct,
modulus: *const n_poly_struct,
alphapow: *mut n_poly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyn_interp_lift_sm_bpoly(
F: *mut nmod_mpolyn_struct,
A: *mut n_bpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_interp_crt_sm_bpoly(
lastdeg: *mut slong,
F: *mut nmod_mpolyn_struct,
T: *mut nmod_mpolyn_struct,
A: *mut n_bpoly_struct,
modulus: *mut n_poly_struct,
alphapow: *mut n_poly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyn_interp_reduce_2sm_mpolyn(
E: *mut nmod_mpolyn_struct,
F: *mut nmod_mpolyn_struct,
A: *mut nmod_mpolyn_struct,
var: slong,
alphapow: *mut n_poly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_interp_lift_2sm_mpolyn(
lastdeg: *mut slong,
T: *mut nmod_mpolyn_struct,
A: *mut nmod_mpolyn_struct,
B: *mut nmod_mpolyn_struct,
var: slong,
alpha: ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_interp_crt_2sm_mpolyn(
lastdeg: *mut slong,
F: *mut nmod_mpolyn_struct,
T: *mut nmod_mpolyn_struct,
A: *mut nmod_mpolyn_struct,
B: *mut nmod_mpolyn_struct,
var: slong,
modulus: *mut n_poly_struct,
alphapow: *mut n_poly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyun_interp_reduce_sm_mpolyu(
B: *mut nmod_mpolyu_struct,
A: *mut nmod_mpolyun_struct,
alpha: ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_interp_lift_sm_mpoly(
A: *mut nmod_mpolyn_struct,
B: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyun_interp_lift_sm_mpolyu(
A: *mut nmod_mpolyun_struct,
B: *const nmod_mpolyu_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyn_interp_crt_sm_mpoly(
lastdeg: *mut slong,
F: *mut nmod_mpolyn_struct,
T: *mut nmod_mpolyn_struct,
A: *mut nmod_mpoly_struct,
modulus: *mut n_poly_struct,
alpha: ulong,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyun_interp_crt_sm_mpolyu(
lastdeg: *mut slong,
F: *mut nmod_mpolyun_struct,
T: *mut nmod_mpolyun_struct,
A: *mut nmod_mpolyu_struct,
modulus: *mut n_poly_struct,
alpha: ulong,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyn_interp_mcrt_sm_mpoly(
lastdeg_: *mut slong,
F: *mut nmod_mpolyn_struct,
A: *const nmod_mpoly_struct,
modulus: *const n_poly_struct,
alphapow: *mut n_poly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_geobucket_init(
B: *mut nmod_mpoly_geobucket_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_geobucket_clear(
B: *mut nmod_mpoly_geobucket_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_geobucket_empty(
p: *mut nmod_mpoly_struct,
B: *mut nmod_mpoly_geobucket_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_geobucket_fit_length(
B: *mut nmod_mpoly_geobucket_struct,
i: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_geobucket_set(
B: *mut nmod_mpoly_geobucket_struct,
p: *mut nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_geobucket_add(
B: *mut nmod_mpoly_geobucket_struct,
p: *mut nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_geobucket_sub(
B: *mut nmod_mpoly_geobucket_struct,
p: *mut nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
///Internal consistency checks
pub fn nmod_mpoly_remainder_strongtest(
r: *const nmod_mpoly_struct,
g: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
}
/* nmod_mpoly_factor.h */
#[repr(C)]
pub struct nmod_mpolyv_struct {
pub coeffs: *mut nmod_mpoly_struct,
pub alloc: slong,
pub length: slong,
}
impl Default for nmod_mpolyv_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type nmod_mpolyv_t = [nmod_mpolyv_struct; 1usize];
#[repr(C)]
pub struct nmod_mpoly_pfrac_struct {
pub bits: flint_bitcnt_t,
pub w: slong,
pub r: slong,
pub inv_prod_dbetas: *mut n_poly_struct,
pub inv_prod_dbetas_mvar: *mut nmod_mpoly_struct,
pub dbetas: *mut n_poly_struct,
pub dbetas_mvar: *mut nmod_mpoly_struct,
pub prod_mbetas: *mut nmod_mpoly_struct,
pub prod_mbetas_coeffs: *mut nmod_mpolyv_struct,
pub mbetas: *mut nmod_mpoly_struct,
pub deltas: *mut nmod_mpoly_struct,
pub xalpha: *mut nmod_mpoly_struct,
pub q: *mut nmod_mpoly_struct,
pub G: *mut nmod_mpoly_geobucket_struct,
pub qt: *mut nmod_mpoly_struct,
pub newt: *mut nmod_mpoly_struct,
pub delta_coeffs: *mut nmod_mpolyv_struct,
pub T: nmod_mpoly_t,
pub Q: nmod_mpoly_t,
pub R: nmod_mpoly_t,
}
impl Default for nmod_mpoly_pfrac_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type nmod_mpoly_pfrac_t = [nmod_mpoly_pfrac_struct; 1usize];
unsafe extern "C" {
pub fn nmod_mpoly_get_bpoly(
A: *mut n_bpoly_struct,
B: *const nmod_mpoly_struct,
var0: slong,
var1: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_set_bpoly(
A: *mut nmod_mpoly_struct,
Abits: flint_bitcnt_t,
B: *const n_bpoly_struct,
var0: slong,
var1: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn n_bpoly_mod_factor_smprime(
c: *mut n_poly_struct,
F: *mut n_tpoly_struct,
B: *mut n_bpoly_struct,
allow_shift: ::std::os::raw::c_int,
ctx: nmod_t,
) -> ::std::os::raw::c_int;
pub fn n_bpoly_mod_factor_lgprime(
c: *mut n_poly_struct,
F: *mut n_tpoly_struct,
B: *mut n_bpoly_struct,
ctx: nmod_t,
);
pub fn nmod_mat_is_reduced(N: *const nmod_mat_struct) -> ::std::os::raw::c_int;
pub fn nmod_mat_init_nullspace_tr(
X: *mut nmod_mat_struct,
tmp: *mut nmod_mat_struct,
);
pub fn nmod_mpoly_factor_init(
f: *mut nmod_mpoly_factor_struct,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_factor_init2(
f: *mut nmod_mpoly_factor_struct,
alloc: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_factor_realloc(
f: *mut nmod_mpoly_factor_struct,
alloc: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_factor_fit_length(
f: *mut nmod_mpoly_factor_struct,
len: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_factor_clear(
f: *mut nmod_mpoly_factor_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_factor_length(
f: *const nmod_mpoly_factor_struct,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
) -> slong;
pub fn nmod_mpoly_factor_get_constant_ui(
f: *const nmod_mpoly_factor_struct,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
) -> ulong;
pub fn nmod_mpoly_factor_get_base(
p: *mut nmod_mpoly_struct,
f: *const nmod_mpoly_factor_struct,
i: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_factor_swap_base(
p: *mut nmod_mpoly_struct,
f: *mut nmod_mpoly_factor_struct,
i: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_factor_get_exp_si(
f: *mut nmod_mpoly_factor_struct,
i: slong,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
) -> slong;
pub fn nmod_mpoly_factor_append_ui(
f: *mut nmod_mpoly_factor_struct,
A: *const nmod_mpoly_struct,
e: ulong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_factor_append_fmpz(
f: *mut nmod_mpoly_factor_struct,
A: *const nmod_mpoly_struct,
e: *const fmpz,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_factor_set(
f: *mut nmod_mpoly_factor_struct,
g: *const nmod_mpoly_factor_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_factor_print_pretty(
f: *const nmod_mpoly_factor_struct,
vars: *mut *const ::std::os::raw::c_char,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_factor_content(
f: *mut nmod_mpoly_factor_struct,
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_factor_squarefree(
f: *mut nmod_mpoly_factor_struct,
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_factor_separable(
f: *mut nmod_mpoly_factor_struct,
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
sep: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_factor(
f: *mut nmod_mpoly_factor_struct,
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_factor_sort(
f: *mut nmod_mpoly_factor_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_factor_cmp(
A: *const nmod_mpoly_factor_struct,
B: *const nmod_mpoly_factor_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_factor_expand(
A: *mut nmod_mpoly_struct,
f: *const nmod_mpoly_factor_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_factor_matches(
a: *const nmod_mpoly_struct,
f: *const nmod_mpoly_factor_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_factor_fix_units(
f: *mut nmod_mpoly_factor_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_factor_swap(
f: *mut nmod_mpoly_factor_struct,
g: *mut nmod_mpoly_factor_struct,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_factor_one(
f: *mut nmod_mpoly_factor_struct,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
);
pub fn _nmod_mpoly_get_lead0(
c: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn _nmod_mpoly_set_lead0(
A: *mut nmod_mpoly_struct,
B: *const nmod_mpoly_struct,
c: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn _n_poly_vec_max_degree(A: *const n_poly_struct, Alen: slong) -> slong;
pub fn _n_poly_vec_mul_nmod_intertible(
A: *mut n_poly_struct,
Alen: slong,
c: ulong,
ctx: nmod_t,
);
pub fn _n_poly_vec_mod_mul_poly(
A: *mut n_poly_struct,
Alen: slong,
g: *const n_poly_struct,
ctx: nmod_t,
);
pub fn _n_poly_vec_mod_divexact_poly(
A: *mut n_poly_struct,
Alen: slong,
g: *const n_poly_struct,
ctx: nmod_t,
);
pub fn _n_poly_vec_mod_content(
g: *mut n_poly_struct,
A: *const n_poly_struct,
Alen: slong,
ctx: nmod_t,
);
pub fn _n_poly_vec_mod_remove_content(
g: *mut n_poly_struct,
A: *mut n_poly_struct,
Alen: slong,
ctx: nmod_t,
);
pub fn nmod_mpoly_get_polyu1n(
A: *mut n_polyun_struct,
B: *const nmod_mpoly_struct,
varx: slong,
vary: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_set_polyu1n(
B: *mut nmod_mpoly_struct,
A: *const n_polyun_struct,
varx: slong,
vary: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyv_init(
A: *mut nmod_mpolyv_struct,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyv_swap(
A: *mut nmod_mpolyv_struct,
B: *mut nmod_mpolyv_struct,
UNUSED_ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyv_clear(
A: *mut nmod_mpolyv_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyv_print_pretty(
poly: *const nmod_mpolyv_struct,
x: *mut *const ::std::os::raw::c_char,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyv_fit_length(
A: *mut nmod_mpolyv_struct,
length: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyv_set_coeff(
A: *mut nmod_mpolyv_struct,
i: slong,
c: *mut nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_to_mpolyv(
A: *mut nmod_mpolyv_struct,
B: *const nmod_mpoly_struct,
xalpha: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_from_mpolyv(
A: *mut nmod_mpoly_struct,
Abits: flint_bitcnt_t,
B: *const nmod_mpolyv_struct,
xalpha: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn _nmod_mpoly_vec_content_mpoly(
g: *mut nmod_mpoly_struct,
A: *const nmod_mpoly_struct,
Alen: slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nmod_mpoly_vec_divexact_mpoly(
A: *mut nmod_mpoly_struct,
Alen: slong,
c: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn _nmod_mpoly_vec_mul_mpoly(
A: *mut nmod_mpoly_struct,
Alen: slong,
c: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn _nmod_mpoly_factor_separable(
f: *mut nmod_mpoly_factor_struct,
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
sep: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_factor_lcc_wang(
lc_divs: *mut nmod_mpoly_struct,
lcAfac: *const nmod_mpoly_factor_struct,
Auc: *const n_poly_struct,
Auf: *const n_bpoly_struct,
r: slong,
alpha: *const n_poly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_factor_irred_smprime_zassenhaus(
fac: *mut nmod_mpolyv_struct,
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_factor_irred_medprime_zassenhaus(
fac: *mut nmod_mpolyv_struct,
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_factor_irred_lgprime_zassenhaus(
fac: *mut nmod_mpolyv_struct,
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_factor_irred_smprime_wang(
fac: *mut nmod_mpolyv_struct,
A: *const nmod_mpoly_struct,
lcAfac: *const nmod_mpoly_factor_struct,
lcA: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_factor_irred_medprime_wang(
Af: *mut nmod_mpolyv_struct,
A: *const nmod_mpoly_struct,
lcAfac: *const nmod_mpoly_factor_struct,
lcA: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_factor_irred_lgprime_wang(
Af: *mut nmod_mpolyv_struct,
A: *const nmod_mpoly_struct,
lcAfac: *const nmod_mpoly_factor_struct,
lcA: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_factor_irred_smprime_zippel(
fac: *mut nmod_mpolyv_struct,
A: *const nmod_mpoly_struct,
lcAfac: *const nmod_mpoly_factor_struct,
lcA: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_factor_irred_medprime_zippel(
Af: *mut nmod_mpolyv_struct,
A: *const nmod_mpoly_struct,
lcAfac: *const nmod_mpoly_factor_struct,
lcA: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_factor_irred_lgprime_zippel(
Af: *mut nmod_mpolyv_struct,
A: *const nmod_mpoly_struct,
lcAfac: *const nmod_mpoly_factor_struct,
lcA: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_compression_do(
L: *mut nmod_mpoly_struct,
Lctx: *const nmod_mpoly_ctx_struct,
Acoeffs: *mut ulong,
Alen: slong,
M: *mut mpoly_compression_struct,
);
pub fn nmod_mpoly_compression_undo(
A: *mut nmod_mpoly_struct,
Abits: flint_bitcnt_t,
Actx: *const nmod_mpoly_ctx_struct,
L: *mut nmod_mpoly_struct,
Lctx: *const nmod_mpoly_ctx_struct,
M: *mut mpoly_compression_struct,
);
pub fn nmod_mpolyu_is_canonical(
A: *const nmod_mpolyu_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyu3_print_pretty(
A: *const nmod_mpolyu_struct,
var0: *const ::std::os::raw::c_char,
var1: *const ::std::os::raw::c_char,
var2: *const ::std::os::raw::c_char,
vars: *mut *const ::std::os::raw::c_char,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_pfrac_init(
Iv: *mut nmod_mpoly_pfrac_struct,
bits: flint_bitcnt_t,
l: slong,
r: slong,
betas: *const nmod_mpoly_struct,
alpha: *const ulong,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_pfrac_clear(
Iv: *mut nmod_mpoly_pfrac_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpoly_pfrac(
r: slong,
t: *mut nmod_mpoly_struct,
deg: *const slong,
Iv: *mut nmod_mpoly_pfrac_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_hlift(
m: slong,
f: *mut nmod_mpoly_struct,
r: slong,
alpha: *const ulong,
A: *const nmod_mpoly_struct,
degs: *const slong,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn n_bpoly_mod_pfrac(
r: slong,
C: *mut n_bpoly_struct,
C_deg1_bound: *mut slong,
A: *mut n_bpoly_struct,
B: *mut n_bpoly_struct,
mod_: nmod_t,
) -> ::std::os::raw::c_int;
pub fn n_bpoly_mod_hlift2(
A: *mut n_bpoly_struct,
B0: *mut n_bpoly_struct,
B1: *mut n_bpoly_struct,
alpha: ulong,
degree_inner: slong,
mod_: nmod_t,
St: *mut n_poly_bpoly_stack_struct,
) -> ::std::os::raw::c_int;
pub fn n_bpoly_mod_hlift2_cubic(
A: *mut n_bpoly_struct,
B0: *mut n_bpoly_struct,
B1: *mut n_bpoly_struct,
alpha: ulong,
degree_inner: slong,
ctx: nmod_t,
E: *mut nmod_eval_interp_struct,
St: *mut n_poly_bpoly_stack_struct,
) -> ::std::os::raw::c_int;
pub fn n_bpoly_mod_hlift(
r: slong,
A: *mut n_bpoly_struct,
B: *mut n_bpoly_struct,
alpha: ulong,
degree_inner: slong,
mod_: nmod_t,
St: *mut n_poly_bpoly_stack_struct,
) -> ::std::os::raw::c_int;
pub fn n_bpoly_mod_hlift_cubic(
r: slong,
A: *mut n_bpoly_struct,
B: *mut n_bpoly_struct,
alpha: ulong,
degree_inner: slong,
mod_: nmod_t,
E: *mut nmod_eval_interp_struct,
St: *mut n_poly_bpoly_stack_struct,
) -> ::std::os::raw::c_int;
pub fn n_polyu3_mod_hlift(
r: slong,
BB: *mut n_polyun_struct,
A: *mut n_polyu_struct,
B: *mut n_polyu_struct,
beta: ulong,
degree_inner: slong,
ctx: nmod_t,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_hlift_zippel(
m: slong,
B: *mut nmod_mpoly_struct,
r: slong,
alpha: *const ulong,
A: *const nmod_mpoly_struct,
degs: *const slong,
ctx: *const nmod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_factor_algo(
f: *mut nmod_mpoly_factor_struct,
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
algo: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_factor_zassenhaus(
f: *mut nmod_mpoly_factor_struct,
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_factor_wang(
f: *mut nmod_mpoly_factor_struct,
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpoly_factor_zippel(
f: *mut nmod_mpoly_factor_struct,
A: *const nmod_mpoly_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _nmod_mpoly_evaluate_rest_n_poly(
E: *mut n_poly_struct,
starts: *mut slong,
ends: *mut slong,
stops: *mut slong,
es: *mut ulong,
Acoeffs: *const ulong,
Aexps: *const ulong,
Alen: slong,
var: slong,
alphas: *const n_poly_struct,
offsets: *const slong,
shifts: *const slong,
N: slong,
mask: ulong,
nvars: slong,
ctx: nmod_t,
) -> ::std::os::raw::c_int;
pub fn _nmod_mpoly_eval_rest_to_n_bpoly(
E: *mut n_bpoly_struct,
A: *const nmod_mpoly_struct,
alphabetas: *const n_poly_struct,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn _nmod_mpoly_set_n_bpoly_var1_zero(
A: *mut nmod_mpoly_struct,
Abits: flint_bitcnt_t,
B: *const n_bpoly_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
);
pub fn nmod_mpolyl_gcdp_zippel_smprime(
G: *mut nmod_mpoly_struct,
Abar: *mut nmod_mpoly_struct,
Bbar: *mut nmod_mpoly_struct,
A: *mut nmod_mpoly_struct,
B: *mut nmod_mpoly_struct,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mpolyl_gcds_zippel(
G: *mut nmod_mpoly_struct,
Gmarks: *const ulong,
Gmarkslen: slong,
A: *mut nmod_mpoly_struct,
B: *mut nmod_mpoly_struct,
perm: *mut slong,
l: slong,
var: slong,
ctx: *const nmod_mpoly_ctx_struct,
state: *mut flint_rand_struct,
Gdegbound: *mut slong,
Amarks: *mut n_poly_struct,
Bmarks: *mut n_poly_struct,
) -> ::std::os::raw::c_int;
pub fn mpoly_monomial_evals_nmod(
EH: *mut n_poly_struct,
Aexps: *const ulong,
Alen: slong,
Abits: flint_bitcnt_t,
alpha_caches: *mut n_poly_struct,
start: slong,
stop: slong,
mctx: *const mpoly_ctx_struct,
fpctx: nmod_t,
);
pub fn mpoly1_monomial_evals_nmod(
EH: *mut n_polyun_struct,
Aexps: *const ulong,
Abits: flint_bitcnt_t,
Amarks: *const ulong,
Amarkslen: slong,
alpha_caches: *mut n_poly_struct,
m: slong,
mctx: *const mpoly_ctx_struct,
fpctx: nmod_t,
);
pub fn mpoly2_monomial_evals_nmod(
EH: *mut n_polyun_struct,
Aexps: *const ulong,
Abits: flint_bitcnt_t,
Amarks: *mut ulong,
Amarkslen: slong,
alpha_caches: *mut n_poly_struct,
m: slong,
mctx: *const mpoly_ctx_struct,
fpctx: nmod_t,
);
pub fn n_polyun_zip_start(
Z: *mut n_polyun_struct,
H: *mut n_polyun_struct,
req_images: slong,
);
pub fn n_polyu2n_add_zip_must_match(
Z: *mut n_polyun_struct,
A: *const n_bpoly_struct,
cur_length: slong,
) -> ::std::os::raw::c_int;
pub fn n_polyun_zip_solve(
A: *mut nmod_mpoly_struct,
Z: *mut n_polyun_struct,
H: *mut n_polyun_struct,
M: *mut n_polyun_struct,
ctx: *const nmod_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
}
/* nmod_poly.h */
#[repr(C)]
pub struct nmod_poly_res_struct {
pub res: ulong,
pub lc: ulong,
pub len0: slong,
pub len1: slong,
pub off: slong,
}
impl Default for nmod_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 nmod_poly_res_t = [nmod_poly_res_struct; 1usize];
#[repr(C)]
pub struct nmod_poly_matrix_precompute_arg_t {
pub A: *mut nmod_mat_struct,
pub poly1: *mut nmod_poly_struct,
pub poly2: *mut nmod_poly_struct,
pub poly2inv: *mut nmod_poly_struct,
}
impl Default for nmod_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)]
pub struct nmod_poly_compose_mod_precomp_preinv_arg_t {
pub A: *mut nmod_mat_struct,
pub res: *mut nmod_poly_struct,
pub poly1: *mut nmod_poly_struct,
pub poly3: *mut nmod_poly_struct,
pub poly3inv: *mut nmod_poly_struct,
}
impl Default for nmod_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 nmod_geometric_progression_struct {
pub ev_s: nn_ptr,
pub ev_f: nmod_poly_t,
pub int_s1: nn_ptr,
pub int_s2: nn_ptr,
pub int_f: nmod_poly_t,
pub ext_ff: nmod_poly_t,
pub ext_fb: nmod_poly_t,
pub ext_s1f: nn_ptr,
pub ext_s1b: nn_ptr,
pub ext_s2: nn_ptr,
pub ext_s3: nn_ptr,
pub mod_: nmod_t,
pub len: slong,
pub function: ulong,
}
impl Default for nmod_geometric_progression_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 nmod_geometric_progression_t = [nmod_geometric_progression_struct; 1usize];
#[repr(C)]
pub struct nmod_poly_mulmod_precond_struct {
pub method: ::std::os::raw::c_int,
pub n: slong,
pub a: nn_srcptr,
pub alen: slong,
pub d: nn_srcptr,
pub dinv: nn_srcptr,
pub lendinv: slong,
pub adivd: nn_ptr,
pub matrix: nn_ptr,
pub packing: ::std::os::raw::c_int,
pub dot_params: dot_params_t,
}
impl Default for nmod_poly_mulmod_precond_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 nmod_poly_mulmod_precond_t = [nmod_poly_mulmod_precond_struct; 1usize];
#[repr(C)]
pub struct _nmod_poly_multi_crt_prog_instr {
pub a_idx: slong,
pub b_idx: slong,
pub c_idx: slong,
pub idem: nmod_poly_t,
pub modulus: nmod_poly_t,
}
impl Default for _nmod_poly_multi_crt_prog_instr {
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 nmod_poly_multi_crt_struct {
pub prog: *mut _nmod_poly_multi_crt_prog_instr,
pub length: slong,
pub alloc: slong,
pub localsize: slong,
pub temp1loc: slong,
pub temp2loc: slong,
pub good: ::std::os::raw::c_int,
}
impl Default for nmod_poly_multi_crt_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 nmod_poly_multi_crt_t = [nmod_poly_multi_crt_struct; 1usize];
#[repr(C)]
pub struct nmod_berlekamp_massey_struct {
pub npoints: slong,
pub R0: nmod_poly_t,
pub R1: nmod_poly_t,
pub V0: nmod_poly_t,
pub V1: nmod_poly_t,
pub qt: nmod_poly_t,
pub rt: nmod_poly_t,
pub points: nmod_poly_t,
}
impl Default for nmod_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 nmod_berlekamp_massey_t = [nmod_berlekamp_massey_struct; 1usize];
unsafe extern "C" {
pub fn nmod_poly_init(poly: *mut nmod_poly_struct, n: ulong);
pub fn nmod_poly_init_preinv(poly: *mut nmod_poly_struct, n: ulong, ninv: ulong);
pub fn nmod_poly_init2(poly: *mut nmod_poly_struct, n: ulong, alloc: slong);
pub fn nmod_poly_init2_preinv(
poly: *mut nmod_poly_struct,
n: ulong,
ninv: ulong,
alloc: slong,
);
pub fn nmod_poly_realloc(poly: *mut nmod_poly_struct, alloc: slong);
pub fn nmod_poly_clear(poly: *mut nmod_poly_struct);
pub fn nmod_poly_fit_length(poly: *mut nmod_poly_struct, alloc: slong);
pub fn nmod_poly_init_mod(poly: *mut nmod_poly_struct, mod_: nmod_t);
pub fn nmod_poly_set_mod(poly: *mut nmod_poly_struct, mod_: nmod_t);
pub fn _nmod_poly_set_length(poly: *mut nmod_poly_struct, len: slong);
pub fn _nmod_poly_normalise(poly: *mut nmod_poly_struct);
pub fn nmod_poly_length(poly: *const nmod_poly_struct) -> slong;
pub fn nmod_poly_degree(poly: *const nmod_poly_struct) -> slong;
pub fn nmod_poly_modulus(poly: *const nmod_poly_struct) -> ulong;
pub fn nmod_poly_max_bits(poly: *const nmod_poly_struct) -> flint_bitcnt_t;
pub fn nmod_poly_lead(poly: *const nmod_poly_struct) -> nn_ptr;
pub fn nmod_poly_set(a: *mut nmod_poly_struct, b: *const nmod_poly_struct);
pub fn nmod_poly_swap(poly1: *mut nmod_poly_struct, poly2: *mut nmod_poly_struct);
pub fn nmod_poly_zero(res: *mut nmod_poly_struct);
pub fn nmod_poly_one(res: *mut nmod_poly_struct);
pub fn nmod_poly_set_trunc(
res: *mut nmod_poly_struct,
poly: *const nmod_poly_struct,
len: slong,
);
pub fn nmod_poly_truncate(poly: *mut nmod_poly_struct, len: slong);
pub fn _nmod_poly_reverse(output: nn_ptr, input: nn_srcptr, len: slong, m: slong);
pub fn nmod_poly_reverse(
output: *mut nmod_poly_struct,
input: *const nmod_poly_struct,
m: slong,
);
pub fn nmod_poly_equal(
a: *const nmod_poly_struct,
b: *const nmod_poly_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_equal_nmod(
poly: *const nmod_poly_struct,
cst: ulong,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_equal_ui(
poly: *const nmod_poly_struct,
cst: ulong,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_equal_trunc(
poly1: *const nmod_poly_struct,
poly2: *const nmod_poly_struct,
n: slong,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_is_zero(poly: *const nmod_poly_struct) -> ::std::os::raw::c_int;
pub fn nmod_poly_is_one(poly: *const nmod_poly_struct) -> ::std::os::raw::c_int;
pub fn nmod_poly_is_unit(poly: *const nmod_poly_struct) -> ::std::os::raw::c_int;
pub fn nmod_poly_is_gen(poly: *const nmod_poly_struct) -> ::std::os::raw::c_int;
pub fn nmod_poly_is_monic(poly: *const nmod_poly_struct) -> ::std::os::raw::c_int;
pub fn nmod_poly_randtest(
poly: *mut nmod_poly_struct,
state: *mut flint_rand_struct,
len: slong,
);
pub fn nmod_poly_randtest_not_zero(
poly: *mut nmod_poly_struct,
state: *mut flint_rand_struct,
len: slong,
);
pub fn nmod_poly_minimal_irreducible(res: *mut nmod_poly_struct, n: ulong);
pub fn nmod_poly_randtest_irreducible(
poly: *mut nmod_poly_struct,
state: *mut flint_rand_struct,
len: slong,
);
pub fn nmod_poly_randtest_monic(
poly: *mut nmod_poly_struct,
state: *mut flint_rand_struct,
len: slong,
);
pub fn nmod_poly_randtest_monic_irreducible(
poly: *mut nmod_poly_struct,
state: *mut flint_rand_struct,
len: slong,
);
pub fn nmod_poly_randtest_monic_primitive(
poly: *mut nmod_poly_struct,
state: *mut flint_rand_struct,
len: slong,
);
pub fn nmod_poly_randtest_trinomial(
poly: *mut nmod_poly_struct,
state: *mut flint_rand_struct,
len: slong,
);
pub fn nmod_poly_randtest_trinomial_irreducible(
poly: *mut nmod_poly_struct,
state: *mut flint_rand_struct,
len: slong,
max_attempts: slong,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_randtest_pentomial(
poly: *mut nmod_poly_struct,
state: *mut flint_rand_struct,
len: slong,
);
pub fn nmod_poly_randtest_pentomial_irreducible(
poly: *mut nmod_poly_struct,
state: *mut flint_rand_struct,
len: slong,
max_attempts: slong,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_randtest_sparse_irreducible(
poly: *mut nmod_poly_struct,
state: *mut flint_rand_struct,
len: slong,
);
pub fn nmod_poly_get_coeff_ui(poly: *const nmod_poly_struct, j: slong) -> ulong;
pub fn nmod_poly_set_coeff_ui(poly: *mut nmod_poly_struct, j: slong, c: ulong);
pub fn nmod_poly_get_str(
poly: *const nmod_poly_struct,
) -> *mut ::std::os::raw::c_char;
pub fn nmod_poly_get_str_pretty(
poly: *const nmod_poly_struct,
x: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
pub fn nmod_poly_set_str(
poly: *mut nmod_poly_struct,
s: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_fprint(
f: *mut FILE,
poly: *const nmod_poly_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_fprint_pretty(
f: *mut FILE,
a: *const nmod_poly_struct,
x: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_fread(
f: *mut FILE,
poly: *mut nmod_poly_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_print(a: *const nmod_poly_struct) -> ::std::os::raw::c_int;
pub fn nmod_poly_print_pretty(
a: *const nmod_poly_struct,
x: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_read(poly: *mut nmod_poly_struct) -> ::std::os::raw::c_int;
pub fn _nmod_poly_shift_left(res: nn_ptr, poly: nn_srcptr, len: slong, k: slong);
pub fn nmod_poly_shift_left(
res: *mut nmod_poly_struct,
poly: *const nmod_poly_struct,
k: slong,
);
pub fn _nmod_poly_shift_right(res: nn_ptr, poly: nn_srcptr, len: slong, k: slong);
pub fn nmod_poly_shift_right(
res: *mut nmod_poly_struct,
poly: *const nmod_poly_struct,
k: slong,
);
pub fn _nmod_poly_add(
res: nn_ptr,
poly1: nn_srcptr,
len1: slong,
poly2: nn_srcptr,
len2: slong,
mod_: nmod_t,
);
pub fn nmod_poly_add(
res: *mut nmod_poly_struct,
poly1: *const nmod_poly_struct,
poly2: *const nmod_poly_struct,
);
pub fn _nmod_poly_sub(
res: nn_ptr,
poly1: nn_srcptr,
len1: slong,
poly2: nn_srcptr,
len2: slong,
mod_: nmod_t,
);
pub fn nmod_poly_sub(
res: *mut nmod_poly_struct,
poly1: *const nmod_poly_struct,
poly2: *const nmod_poly_struct,
);
pub fn nmod_poly_add_series(
res: *mut nmod_poly_struct,
poly1: *const nmod_poly_struct,
poly2: *const nmod_poly_struct,
n: slong,
);
pub fn nmod_poly_sub_series(
res: *mut nmod_poly_struct,
poly1: *const nmod_poly_struct,
poly2: *const nmod_poly_struct,
n: slong,
);
pub fn nmod_poly_add_ui(
res: *mut nmod_poly_struct,
poly: *const nmod_poly_struct,
c: ulong,
);
pub fn nmod_poly_sub_ui(
res: *mut nmod_poly_struct,
poly: *const nmod_poly_struct,
c: ulong,
);
pub fn nmod_poly_neg(res: *mut nmod_poly_struct, poly1: *const nmod_poly_struct);
pub fn nmod_poly_scalar_mul_nmod(
res: *mut nmod_poly_struct,
poly: *const nmod_poly_struct,
c: ulong,
);
pub fn nmod_poly_scalar_addmul_nmod(
res: *mut nmod_poly_struct,
poly: *const nmod_poly_struct,
c: ulong,
);
pub fn _nmod_poly_make_monic(
output: nn_ptr,
input: nn_srcptr,
len: slong,
mod_: nmod_t,
);
pub fn nmod_poly_make_monic(
output: *mut nmod_poly_struct,
input: *const nmod_poly_struct,
);
pub fn _nmod_poly_KS2_pack1(
res: nn_ptr,
op: nn_srcptr,
n: slong,
s: slong,
b: ulong,
k: ulong,
r: slong,
);
pub fn _nmod_poly_KS2_pack(
res: nn_ptr,
op: nn_srcptr,
n: slong,
s: slong,
b: ulong,
k: ulong,
r: slong,
);
pub fn _nmod_poly_KS2_unpack1(
res: nn_ptr,
op: nn_srcptr,
n: slong,
b: ulong,
k: ulong,
);
pub fn _nmod_poly_KS2_unpack2(
res: nn_ptr,
op: nn_srcptr,
n: slong,
b: ulong,
k: ulong,
);
pub fn _nmod_poly_KS2_unpack3(
res: nn_ptr,
op: nn_srcptr,
n: slong,
b: ulong,
k: ulong,
);
pub fn _nmod_poly_KS2_unpack(
res: nn_ptr,
op: nn_srcptr,
n: slong,
b: ulong,
k: ulong,
);
pub fn _nmod_poly_KS2_reduce(
res: nn_ptr,
s: slong,
op: nn_srcptr,
n: slong,
w: ulong,
mod_: nmod_t,
);
pub fn _nmod_poly_KS2_recover_reduce1(
res: nn_ptr,
s: slong,
op1: nn_srcptr,
op2: nn_srcptr,
n: slong,
b: ulong,
mod_: nmod_t,
);
pub fn _nmod_poly_KS2_recover_reduce2(
res: nn_ptr,
s: slong,
op1: nn_srcptr,
op2: nn_srcptr,
n: slong,
b: ulong,
mod_: nmod_t,
);
pub fn _nmod_poly_KS2_recover_reduce2b(
res: nn_ptr,
s: slong,
op1: nn_srcptr,
op2: nn_srcptr,
n: slong,
UNUSED_b: ulong,
mod_: nmod_t,
);
pub fn _nmod_poly_KS2_recover_reduce3(
res: nn_ptr,
s: slong,
op1: nn_srcptr,
op2: nn_srcptr,
n: slong,
b: ulong,
mod_: nmod_t,
);
pub fn _nmod_poly_KS2_recover_reduce(
res: nn_ptr,
s: slong,
op1: nn_srcptr,
op2: nn_srcptr,
n: slong,
b: ulong,
mod_: nmod_t,
);
pub fn _nmod_poly_bit_pack(
res: nn_ptr,
poly: nn_srcptr,
len: slong,
bits: flint_bitcnt_t,
);
pub fn nmod_poly_bit_pack(
f: *mut fmpz,
poly: *const nmod_poly_struct,
bit_size: flint_bitcnt_t,
);
pub fn _nmod_poly_bit_unpack(
res: nn_ptr,
nlo: slong,
nhi: slong,
mpn: nn_srcptr,
bits: flint_bitcnt_t,
mod_: nmod_t,
);
pub fn nmod_poly_bit_unpack(
poly: *mut nmod_poly_struct,
f: *const fmpz,
bit_size: flint_bitcnt_t,
);
pub fn _nmod_poly_mul_classical(
res: nn_ptr,
poly1: nn_srcptr,
len1: slong,
poly2: nn_srcptr,
len2: slong,
mod_: nmod_t,
);
pub fn nmod_poly_mul_classical(
res: *mut nmod_poly_struct,
poly1: *const nmod_poly_struct,
poly2: *const nmod_poly_struct,
);
pub fn _nmod_poly_mullow_classical(
res: nn_ptr,
poly1: nn_srcptr,
len1: slong,
poly2: nn_srcptr,
len2: slong,
trunc: slong,
mod_: nmod_t,
);
pub fn nmod_poly_mullow_classical(
res: *mut nmod_poly_struct,
poly1: *const nmod_poly_struct,
poly2: *const nmod_poly_struct,
trunc: slong,
);
pub fn _nmod_poly_mulhigh_classical(
res: nn_ptr,
poly1: nn_srcptr,
len1: slong,
poly2: nn_srcptr,
len2: slong,
start: slong,
mod_: nmod_t,
);
pub fn nmod_poly_mulhigh_classical(
res: *mut nmod_poly_struct,
poly1: *const nmod_poly_struct,
poly2: *const nmod_poly_struct,
start: slong,
);
pub fn _nmod_poly_mul_KS(
out: nn_ptr,
in1: nn_srcptr,
len1: slong,
in2: nn_srcptr,
len2: slong,
mod_: nmod_t,
);
pub fn nmod_poly_mul_KS(
res: *mut nmod_poly_struct,
poly1: *const nmod_poly_struct,
poly2: *const nmod_poly_struct,
);
pub fn _nmod_poly_mul_KS2(
res: nn_ptr,
op1: nn_srcptr,
n1: slong,
op2: nn_srcptr,
n2: slong,
mod_: nmod_t,
);
pub fn nmod_poly_mul_KS2(
res: *mut nmod_poly_struct,
poly1: *const nmod_poly_struct,
poly2: *const nmod_poly_struct,
);
pub fn _nmod_poly_mul_KS4(
res: nn_ptr,
op1: nn_srcptr,
n1: slong,
op2: nn_srcptr,
n2: slong,
mod_: nmod_t,
);
pub fn nmod_poly_mul_KS4(
res: *mut nmod_poly_struct,
poly1: *const nmod_poly_struct,
poly2: *const nmod_poly_struct,
);
pub fn _nmod_poly_mullow_KS(
out: nn_ptr,
in1: nn_srcptr,
len1: slong,
in2: nn_srcptr,
len2: slong,
n: slong,
mod_: nmod_t,
);
pub fn nmod_poly_mullow_KS(
res: *mut nmod_poly_struct,
poly1: *const nmod_poly_struct,
poly2: *const nmod_poly_struct,
n: slong,
);
pub fn _nmod_poly_mul(
res: nn_ptr,
poly1: nn_srcptr,
len1: slong,
poly2: nn_srcptr,
len2: slong,
mod_: nmod_t,
);
pub fn nmod_poly_mul(
res: *mut nmod_poly_struct,
poly1: *const nmod_poly_struct,
poly2: *const nmod_poly_struct,
);
pub fn _nmod_poly_mulmid_fft_small_repack(
z: nn_ptr,
a: nn_srcptr,
an: slong,
b: nn_srcptr,
bn: slong,
znlo: slong,
zn: slong,
mod_: nmod_t,
) -> ::std::os::raw::c_int;
pub fn _nmod_poly_mullow_want_fft_small(
len1: slong,
len2: slong,
n: slong,
squaring: ::std::os::raw::c_int,
mod_: nmod_t,
) -> ::std::os::raw::c_int;
pub fn _nmod_poly_mulmid_fft_small(
z: nn_ptr,
a: nn_srcptr,
an: slong,
b: nn_srcptr,
bn: slong,
znlo: slong,
zn: slong,
mod_: nmod_t,
);
pub fn _nmod_poly_mullow_fft_small(
z: nn_ptr,
a: nn_srcptr,
an: slong,
b: nn_srcptr,
bn: slong,
zn: slong,
mod_: nmod_t,
);
pub fn _nmod_poly_mullow(
res: nn_ptr,
poly1: nn_srcptr,
len1: slong,
poly2: nn_srcptr,
len2: slong,
trunc: slong,
mod_: nmod_t,
);
pub fn nmod_poly_mullow(
res: *mut nmod_poly_struct,
poly1: *const nmod_poly_struct,
poly2: *const nmod_poly_struct,
trunc: slong,
);
pub fn _nmod_poly_mulmid_classical(
res: nn_ptr,
poly1: nn_srcptr,
len1: slong,
poly2: nn_srcptr,
len2: slong,
nlo: slong,
nhi: slong,
mod_: nmod_t,
);
pub fn nmod_poly_mulmid_classical(
res: *mut nmod_poly_struct,
poly1: *const nmod_poly_struct,
poly2: *const nmod_poly_struct,
nlo: slong,
nhi: slong,
);
pub fn _nmod_poly_mulmid_KS(
res: nn_ptr,
poly1: nn_srcptr,
len1: slong,
poly2: nn_srcptr,
len2: slong,
nlo: slong,
nhi: slong,
mod_: nmod_t,
);
pub fn nmod_poly_mulmid_KS(
res: *mut nmod_poly_struct,
poly1: *const nmod_poly_struct,
poly2: *const nmod_poly_struct,
nlo: slong,
nhi: slong,
);
pub fn _nmod_poly_mulmid(
res: nn_ptr,
poly1: nn_srcptr,
len1: slong,
poly2: nn_srcptr,
len2: slong,
nlo: slong,
nhi: slong,
mod_: nmod_t,
);
pub fn nmod_poly_mulmid(
res: *mut nmod_poly_struct,
poly1: *const nmod_poly_struct,
poly2: *const nmod_poly_struct,
nlo: slong,
nhi: slong,
);
pub fn _nmod_poly_mulhigh(
res: nn_ptr,
poly1: nn_srcptr,
len1: slong,
poly2: nn_srcptr,
len2: slong,
n: slong,
mod_: nmod_t,
);
pub fn nmod_poly_mulhigh(
res: *mut nmod_poly_struct,
poly1: *const nmod_poly_struct,
poly2: *const nmod_poly_struct,
n: slong,
);
pub fn _nmod_poly_mulmod(
res: nn_ptr,
poly1: nn_srcptr,
len1: slong,
poly2: nn_srcptr,
len2: slong,
f: nn_srcptr,
lenf: slong,
mod_: nmod_t,
);
pub fn nmod_poly_mulmod(
res: *mut nmod_poly_struct,
poly1: *const nmod_poly_struct,
poly2: *const nmod_poly_struct,
f: *const nmod_poly_struct,
);
pub fn _nmod_poly_mulmod_preinv(
res: nn_ptr,
poly1: nn_srcptr,
len1: slong,
poly2: nn_srcptr,
len2: slong,
f: nn_srcptr,
lenf: slong,
finv: nn_srcptr,
lenfinv: slong,
mod_: nmod_t,
);
pub fn nmod_poly_mulmod_preinv(
res: *mut nmod_poly_struct,
poly1: *const nmod_poly_struct,
poly2: *const nmod_poly_struct,
f: *const nmod_poly_struct,
finv: *const nmod_poly_struct,
);
pub fn _nmod_poly_invmod(
A: *mut ulong,
B: *const ulong,
lenB: slong,
P: *const ulong,
lenP: slong,
mod_: nmod_t,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_invmod(
A: *mut nmod_poly_struct,
B: *const nmod_poly_struct,
P: *const nmod_poly_struct,
) -> ::std::os::raw::c_int;
pub fn _nmod_poly_mulmod_precond_init_method(
precond: *mut nmod_poly_mulmod_precond_struct,
a: nn_srcptr,
alen: slong,
d: nn_srcptr,
dlen: slong,
dinv: nn_srcptr,
lendinv: slong,
method: ::std::os::raw::c_int,
mod_: nmod_t,
);
pub fn nmod_poly_mulmod_precond_init_method(
precond: *mut nmod_poly_mulmod_precond_struct,
a: *const nmod_poly_struct,
d: *const nmod_poly_struct,
dinv: *const nmod_poly_struct,
method: ::std::os::raw::c_int,
);
pub fn _nmod_poly_mulmod_precond_init_num(
precond: *mut nmod_poly_mulmod_precond_struct,
a: nn_srcptr,
alen: slong,
d: nn_srcptr,
dlen: slong,
dinv: nn_srcptr,
lendinv: slong,
num: slong,
mod_: nmod_t,
);
pub fn nmod_poly_mulmod_precond_init_num(
precond: *mut nmod_poly_mulmod_precond_struct,
a: *const nmod_poly_struct,
d: *const nmod_poly_struct,
dinv: *const nmod_poly_struct,
num: slong,
);
pub fn nmod_poly_mulmod_precond_clear(precond: *mut nmod_poly_mulmod_precond_struct);
pub fn _nmod_poly_mulmod_precond(
res: nn_ptr,
precond: *const nmod_poly_mulmod_precond_struct,
b: nn_srcptr,
blen: slong,
mod_: nmod_t,
);
pub fn nmod_poly_mulmod_precond(
res: *mut nmod_poly_struct,
precond: *const nmod_poly_mulmod_precond_struct,
b: *const nmod_poly_struct,
);
pub fn _nmod_poly_pow_binexp(
res: nn_ptr,
poly: nn_srcptr,
len: slong,
e: ulong,
mod_: nmod_t,
);
pub fn nmod_poly_pow_binexp(
res: *mut nmod_poly_struct,
poly: *const nmod_poly_struct,
e: ulong,
);
pub fn _nmod_poly_pow(
res: nn_ptr,
poly: nn_srcptr,
len: slong,
e: ulong,
mod_: nmod_t,
);
pub fn nmod_poly_pow(
res: *mut nmod_poly_struct,
poly: *const nmod_poly_struct,
e: ulong,
);
pub fn _nmod_poly_pow_trunc_binexp(
res: nn_ptr,
poly: nn_srcptr,
e: ulong,
trunc: slong,
mod_: nmod_t,
);
pub fn nmod_poly_pow_trunc_binexp(
res: *mut nmod_poly_struct,
poly: *const nmod_poly_struct,
e: ulong,
trunc: slong,
);
pub fn _nmod_poly_pow_trunc(
res: nn_ptr,
poly: nn_srcptr,
e: ulong,
trunc: slong,
mod_: nmod_t,
);
pub fn nmod_poly_pow_trunc(
res: *mut nmod_poly_struct,
poly: *const nmod_poly_struct,
e: ulong,
trunc: slong,
);
pub fn _nmod_poly_powmod_ui_binexp(
res: nn_ptr,
poly: nn_srcptr,
e: ulong,
f: nn_srcptr,
lenf: slong,
mod_: nmod_t,
);
pub fn nmod_poly_powmod_ui_binexp(
res: *mut nmod_poly_struct,
poly: *const nmod_poly_struct,
e: ulong,
f: *const nmod_poly_struct,
);
pub fn _nmod_poly_powmod_fmpz_binexp(
res: nn_ptr,
poly: nn_srcptr,
e: *mut fmpz,
f: nn_srcptr,
lenf: slong,
mod_: nmod_t,
);
pub fn nmod_poly_powmod_fmpz_binexp(
res: *mut nmod_poly_struct,
poly: *const nmod_poly_struct,
e: *mut fmpz,
f: *const nmod_poly_struct,
);
pub fn _nmod_poly_powmod_ui_binexp_preinv(
res: nn_ptr,
poly: nn_srcptr,
e: ulong,
f: nn_srcptr,
lenf: slong,
finv: nn_srcptr,
lenfinv: slong,
mod_: nmod_t,
);
pub fn nmod_poly_powmod_ui_binexp_preinv(
res: *mut nmod_poly_struct,
poly: *const nmod_poly_struct,
e: ulong,
f: *const nmod_poly_struct,
finv: *const nmod_poly_struct,
);
pub fn _nmod_poly_powmod_fmpz_binexp_preinv(
res: nn_ptr,
poly: nn_srcptr,
e: *mut fmpz,
f: nn_srcptr,
lenf: slong,
finv: nn_srcptr,
lenfinv: slong,
mod_: nmod_t,
);
pub fn nmod_poly_powmod_fmpz_binexp_preinv(
res: *mut nmod_poly_struct,
poly: *const nmod_poly_struct,
e: *mut fmpz,
f: *const nmod_poly_struct,
finv: *const nmod_poly_struct,
);
pub fn _nmod_poly_powmod_x_ui_preinv(
res: nn_ptr,
e: ulong,
f: nn_srcptr,
lenf: slong,
finv: nn_srcptr,
lenfinv: slong,
mod_: nmod_t,
);
pub fn nmod_poly_powmod_x_ui_preinv(
res: *mut nmod_poly_struct,
e: ulong,
f: *const nmod_poly_struct,
finv: *const nmod_poly_struct,
);
pub fn _nmod_poly_powmod_x_fmpz_preinv(
res: nn_ptr,
e: *mut fmpz,
f: nn_srcptr,
lenf: slong,
finv: nn_srcptr,
lenfinv: slong,
mod_: nmod_t,
);
pub fn nmod_poly_powmod_x_fmpz_preinv(
res: *mut nmod_poly_struct,
e: *mut fmpz,
f: *const nmod_poly_struct,
finv: *const nmod_poly_struct,
);
pub fn _nmod_poly_powers_mod_preinv_naive(
res: *mut nn_ptr,
f: nn_srcptr,
flen: slong,
n: slong,
g: nn_srcptr,
glen: slong,
ginv: nn_srcptr,
ginvlen: slong,
mod_: nmod_t,
);
pub fn nmod_poly_powers_mod_naive(
res: *mut nmod_poly_struct,
f: *const nmod_poly_struct,
n: slong,
g: *const nmod_poly_struct,
);
pub fn _nmod_poly_powers_mod_preinv_threaded_pool(
res: *mut nn_ptr,
f: nn_srcptr,
flen: slong,
n: slong,
g: nn_srcptr,
glen: slong,
ginv: nn_srcptr,
ginvlen: slong,
mod_: nmod_t,
threads: *mut thread_pool_handle,
num_threads: slong,
);
pub fn _nmod_poly_powers_mod_preinv_threaded(
res: *mut nn_ptr,
f: nn_srcptr,
flen: slong,
n: slong,
g: nn_srcptr,
glen: slong,
ginv: nn_srcptr,
ginvlen: slong,
mod_: nmod_t,
);
pub fn nmod_poly_powers_mod_bsgs(
res: *mut nmod_poly_struct,
f: *const nmod_poly_struct,
n: slong,
g: *const nmod_poly_struct,
);
pub fn _nmod_poly_divrem_q1_preinv1(
Q: nn_ptr,
R: nn_ptr,
A: nn_srcptr,
lenA: slong,
B: nn_srcptr,
lenB: slong,
invL: ulong,
mod_: nmod_t,
);
pub fn _nmod_poly_divrem_basecase_preinv1(
Q: nn_ptr,
R: nn_ptr,
A: nn_srcptr,
A_len: slong,
B: nn_srcptr,
B_len: slong,
invB: ulong,
mod_: nmod_t,
);
pub fn _nmod_poly_divrem_basecase(
Q: nn_ptr,
R: nn_ptr,
A: nn_srcptr,
A_len: slong,
B: nn_srcptr,
B_len: slong,
mod_: nmod_t,
);
pub fn nmod_poly_divrem_basecase(
Q: *mut nmod_poly_struct,
R: *mut nmod_poly_struct,
A: *const nmod_poly_struct,
B: *const nmod_poly_struct,
);
pub fn _nmod_poly_divrem(
Q: nn_ptr,
R: nn_ptr,
A: nn_srcptr,
lenA: slong,
B: nn_srcptr,
lenB: slong,
mod_: nmod_t,
);
pub fn nmod_poly_divrem(
Q: *mut nmod_poly_struct,
R: *mut nmod_poly_struct,
A: *const nmod_poly_struct,
B: *const nmod_poly_struct,
);
pub fn _nmod_poly_div(
Q: nn_ptr,
A: nn_srcptr,
lenA: slong,
B: nn_srcptr,
lenB: slong,
mod_: nmod_t,
);
pub fn nmod_poly_div(
Q: *mut nmod_poly_struct,
A: *const nmod_poly_struct,
B: *const nmod_poly_struct,
);
pub fn _nmod_poly_rem(
R: nn_ptr,
A: nn_srcptr,
lenA: slong,
B: nn_srcptr,
lenB: slong,
mod_: nmod_t,
);
pub fn nmod_poly_rem(
R: *mut nmod_poly_struct,
A: *const nmod_poly_struct,
B: *const nmod_poly_struct,
);
pub fn _nmod_poly_divexact(
Q: nn_ptr,
A: nn_srcptr,
lenA: slong,
B: nn_srcptr,
lenB: slong,
mod_: nmod_t,
);
pub fn nmod_poly_divexact(
Q: *mut nmod_poly_struct,
A: *const nmod_poly_struct,
B: *const nmod_poly_struct,
);
pub fn _nmod_poly_inv_series_basecase(
Qinv: nn_ptr,
Q: nn_srcptr,
Qlen: slong,
n: slong,
mod_: nmod_t,
);
pub fn nmod_poly_inv_series_basecase(
Qinv: *mut nmod_poly_struct,
Q: *const nmod_poly_struct,
n: slong,
);
pub fn _nmod_poly_inv_series_newton(
Qinv: nn_ptr,
Q: nn_srcptr,
Qlen: slong,
n: slong,
mod_: nmod_t,
);
pub fn nmod_poly_inv_series_newton(
Qinv: *mut nmod_poly_struct,
Q: *const nmod_poly_struct,
n: slong,
);
pub fn _nmod_poly_inv_series(
Qinv: nn_ptr,
Q: nn_srcptr,
Qlen: slong,
n: slong,
mod_: nmod_t,
);
pub fn nmod_poly_inv_series(
Qinv: *mut nmod_poly_struct,
Q: *const nmod_poly_struct,
n: slong,
);
pub fn _nmod_poly_div_series_basecase(
Q: nn_ptr,
A: nn_srcptr,
Alen: slong,
B: nn_srcptr,
Blen: slong,
n: slong,
mod_: nmod_t,
);
pub fn nmod_poly_div_series_basecase(
Q: *mut nmod_poly_struct,
A: *const nmod_poly_struct,
B: *const nmod_poly_struct,
n: slong,
);
pub fn _nmod_poly_div_series(
Q: nn_ptr,
A: nn_srcptr,
Alen: slong,
B: nn_srcptr,
Blen: slong,
n: slong,
mod_: nmod_t,
);
pub fn nmod_poly_div_series(
Q: *mut nmod_poly_struct,
A: *const nmod_poly_struct,
B: *const nmod_poly_struct,
n: slong,
);
pub fn _nmod_poly_div_newton_n_preinv(
Q: nn_ptr,
A: nn_srcptr,
lenA: slong,
UNUSED_B: nn_srcptr,
lenB: slong,
Binv: nn_srcptr,
lenBinv: slong,
mod_: nmod_t,
);
pub fn nmod_poly_div_newton_n_preinv(
Q: *mut nmod_poly_struct,
A: *const nmod_poly_struct,
B: *const nmod_poly_struct,
Binv: *const nmod_poly_struct,
);
pub fn _nmod_poly_divrem_newton_n_preinv(
Q: nn_ptr,
R: nn_ptr,
A: nn_srcptr,
lenA: slong,
B: nn_srcptr,
lenB: slong,
Binv: nn_srcptr,
lenBinv: slong,
mod_: nmod_t,
);
pub fn nmod_poly_divrem_newton_n_preinv(
Q: *mut nmod_poly_struct,
R: *mut nmod_poly_struct,
A: *const nmod_poly_struct,
B: *const nmod_poly_struct,
Binv: *const nmod_poly_struct,
);
pub fn _nmod_poly_div_root(
Q: nn_ptr,
A: nn_srcptr,
len: slong,
c: ulong,
mod_: nmod_t,
) -> ulong;
pub fn nmod_poly_div_root(
Q: *mut nmod_poly_struct,
A: *const nmod_poly_struct,
c: ulong,
) -> ulong;
pub fn _nmod_poly_divides_classical(
Q: nn_ptr,
A: nn_srcptr,
lenA: slong,
B: nn_srcptr,
lenB: slong,
mod_: nmod_t,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_divides_classical(
Q: *mut nmod_poly_struct,
A: *const nmod_poly_struct,
B: *const nmod_poly_struct,
) -> ::std::os::raw::c_int;
pub fn _nmod_poly_divides(
Q: nn_ptr,
A: nn_srcptr,
lenA: slong,
B: nn_srcptr,
lenB: slong,
mod_: nmod_t,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_divides(
Q: *mut nmod_poly_struct,
A: *const nmod_poly_struct,
B: *const nmod_poly_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_remove(
f: *mut nmod_poly_struct,
p: *const nmod_poly_struct,
) -> ulong;
pub fn _nmod_poly_derivative(
x_prime: nn_ptr,
x: nn_srcptr,
len: slong,
mod_: nmod_t,
);
pub fn nmod_poly_derivative(
x_prime: *mut nmod_poly_struct,
x: *const nmod_poly_struct,
);
pub fn _nmod_poly_integral(x_int: nn_ptr, x: nn_srcptr, len: slong, mod_: nmod_t);
pub fn nmod_poly_integral(x_int: *mut nmod_poly_struct, x: *const nmod_poly_struct);
pub fn _nmod_poly_evaluate_nmod_horner(
poly: nn_srcptr,
len: slong,
c: ulong,
mod_: nmod_t,
) -> ulong;
pub fn _nmod_poly_evaluate_nmod_rectangular(
poly: nn_srcptr,
len: slong,
c: ulong,
mod_: nmod_t,
) -> ulong;
pub fn _nmod_poly_evaluate_nmod(
poly: nn_srcptr,
len: slong,
c: ulong,
mod_: nmod_t,
) -> ulong;
pub fn _nmod_poly_evaluate_nmod_precomp(
poly: nn_srcptr,
len: slong,
c: ulong,
c_precomp: ulong,
modn: ulong,
) -> ulong;
pub fn _nmod_poly_evaluate_nmod_precomp_lazy(
poly: nn_srcptr,
len: slong,
c: ulong,
c_precomp: ulong,
modn: ulong,
) -> ulong;
pub fn nmod_poly_evaluate_nmod(poly: *const nmod_poly_struct, c: ulong) -> ulong;
pub fn _nmod_poly_evaluate_nmod_vec(
ys: nn_ptr,
coeffs: nn_srcptr,
ilen: slong,
xs: nn_srcptr,
olen: slong,
mod_: nmod_t,
);
pub fn nmod_poly_evaluate_nmod_vec(
ys: nn_ptr,
poly: *const nmod_poly_struct,
xs: nn_srcptr,
olen: slong,
);
pub fn _nmod_poly_evaluate_nmod_vec_iter(
ys: nn_ptr,
coeffs: nn_srcptr,
ilen: slong,
xs: nn_srcptr,
olen: slong,
mod_: nmod_t,
);
pub fn nmod_poly_evaluate_nmod_vec_iter(
ys: nn_ptr,
poly: *const nmod_poly_struct,
xs: nn_srcptr,
olen: slong,
);
pub fn _nmod_poly_evaluate_nmod_vec_fast_precomp(
vs: nn_ptr,
poly: nn_srcptr,
ilen: slong,
tree: *const nn_ptr,
olen: slong,
mod_: nmod_t,
);
pub fn _nmod_poly_evaluate_nmod_vec_fast(
ys: nn_ptr,
coeffs: nn_srcptr,
ilen: slong,
xs: nn_srcptr,
olen: slong,
mod_: nmod_t,
);
pub fn nmod_poly_evaluate_nmod_vec_fast(
ys: nn_ptr,
poly: *const nmod_poly_struct,
xs: nn_srcptr,
olen: slong,
);
pub fn nmod_mat_one_addmul(
dest: *mut nmod_mat_struct,
mat: *const nmod_mat_struct,
c: ulong,
);
pub fn nmod_poly_evaluate_mat_horner(
dest: *mut nmod_mat_struct,
poly: *const nmod_poly_struct,
c: *const nmod_mat_struct,
);
pub fn nmod_poly_evaluate_mat_paterson_stockmeyer(
dest: *mut nmod_mat_struct,
poly: *const nmod_poly_struct,
c: *const nmod_mat_struct,
);
pub fn nmod_poly_evaluate_mat(
dest: *mut nmod_mat_struct,
poly: *const nmod_poly_struct,
c: *const nmod_mat_struct,
);
pub fn _nmod_poly_tree_alloc(len: slong) -> *mut nn_ptr;
pub fn _nmod_poly_tree_free(tree: *mut nn_ptr, len: slong);
pub fn _nmod_poly_tree_build(
tree: *mut nn_ptr,
roots: nn_srcptr,
len: slong,
mod_: nmod_t,
);
pub fn _nmod_geometric_progression_init_function(
G: *mut nmod_geometric_progression_struct,
r: ulong,
len: slong,
mod_: nmod_t,
function: ulong,
);
pub fn nmod_geometric_progression_init(
G: *mut nmod_geometric_progression_struct,
r: ulong,
len: slong,
mod_: nmod_t,
);
pub fn nmod_geometric_progression_clear(G: *mut nmod_geometric_progression_struct);
pub fn _nmod_poly_evaluate_geometric_nmod_vec_iter(
ys: nn_ptr,
coeffs: nn_srcptr,
ilen: slong,
r: ulong,
olen: slong,
mod_: nmod_t,
);
pub fn nmod_poly_evaluate_geometric_nmod_vec_iter(
ys: nn_ptr,
poly: *const nmod_poly_struct,
r: ulong,
olen: slong,
);
pub fn _nmod_poly_evaluate_geometric_nmod_vec_fast_precomp(
vs: nn_ptr,
poly: nn_srcptr,
ilen: slong,
G: *const nmod_geometric_progression_struct,
olen: slong,
mod_: nmod_t,
);
pub fn _nmod_poly_evaluate_geometric_nmod_vec_fast(
ys: nn_ptr,
coeffs: nn_srcptr,
ilen: slong,
r: ulong,
olen: slong,
mod_: nmod_t,
);
pub fn nmod_poly_evaluate_geometric_nmod_vec_fast(
ys: nn_ptr,
poly: *const nmod_poly_struct,
r: ulong,
olen: slong,
);
pub fn _nmod_poly_interpolate_geometric_nmod_vec_fast_precomp(
poly: nn_ptr,
v: nn_srcptr,
G: *const nmod_geometric_progression_struct,
len: slong,
mod_: nmod_t,
);
pub fn nmod_poly_interpolate_geometric_nmod_vec_fast_precomp(
poly: *mut nmod_poly_struct,
v: nn_srcptr,
G: *const nmod_geometric_progression_struct,
len: slong,
);
pub fn nmod_poly_interpolate_geometric_nmod_vec_fast(
poly: *mut nmod_poly_struct,
r: ulong,
ys: nn_srcptr,
len: slong,
);
pub fn nmod_poly_extrapolate_geometric(
oval: nn_ptr,
olen: slong,
ival: nn_srcptr,
ilen: slong,
offset: slong,
r: ulong,
mod_: nmod_t,
);
pub fn nmod_poly_extrapolate_geometric_precomp(
oval: nn_ptr,
olen: slong,
ival: nn_srcptr,
ilen: slong,
offset: slong,
G: *const nmod_geometric_progression_struct,
);
pub fn _nmod_poly_interpolate_nmod_vec_newton(
poly: nn_ptr,
xs: nn_srcptr,
ys: nn_srcptr,
len: slong,
mod_: nmod_t,
);
pub fn nmod_poly_interpolate_nmod_vec_newton(
poly: *mut nmod_poly_struct,
xs: nn_srcptr,
ys: nn_srcptr,
n: slong,
);
pub fn _nmod_poly_interpolate_nmod_vec_barycentric(
poly: nn_ptr,
xs: nn_srcptr,
ys: nn_srcptr,
len: slong,
mod_: nmod_t,
);
pub fn nmod_poly_interpolate_nmod_vec_barycentric(
poly: *mut nmod_poly_struct,
xs: nn_srcptr,
ys: nn_srcptr,
len: slong,
);
pub fn _nmod_poly_interpolate_nmod_vec(
poly: nn_ptr,
xs: nn_srcptr,
ys: nn_srcptr,
len: slong,
mod_: nmod_t,
);
pub fn nmod_poly_interpolate_nmod_vec(
poly: *mut nmod_poly_struct,
xs: nn_srcptr,
ys: nn_srcptr,
len: slong,
);
pub fn _nmod_poly_interpolate_nmod_vec_fast(
poly: nn_ptr,
xs: nn_srcptr,
ys: nn_srcptr,
len: slong,
mod_: nmod_t,
);
pub fn nmod_poly_interpolate_nmod_vec_fast(
poly: *mut nmod_poly_struct,
xs: nn_srcptr,
ys: nn_srcptr,
len: slong,
);
pub fn _nmod_poly_interpolate_nmod_vec_fast_precomp(
poly: nn_ptr,
ys: nn_srcptr,
tree: *const nn_ptr,
weights: nn_srcptr,
len: slong,
mod_: nmod_t,
);
pub fn _nmod_poly_interpolation_weights(
w: nn_ptr,
tree: *const nn_ptr,
len: slong,
mod_: nmod_t,
);
pub fn _nmod_poly_compose_horner(
res: nn_ptr,
poly1: nn_srcptr,
len1: slong,
poly2: nn_srcptr,
len2: slong,
mod_: nmod_t,
);
pub fn nmod_poly_compose_horner(
res: *mut nmod_poly_struct,
poly1: *const nmod_poly_struct,
poly2: *const nmod_poly_struct,
);
pub fn _nmod_poly_compose(
res: nn_ptr,
poly1: nn_srcptr,
len1: slong,
poly2: nn_srcptr,
len2: slong,
mod_: nmod_t,
);
pub fn nmod_poly_compose(
res: *mut nmod_poly_struct,
poly1: *const nmod_poly_struct,
poly2: *const nmod_poly_struct,
);
pub fn _nmod_poly_taylor_shift_horner(
poly: nn_ptr,
c: ulong,
len: slong,
mod_: nmod_t,
);
pub fn nmod_poly_taylor_shift_horner(
g: *mut nmod_poly_struct,
f: *const nmod_poly_struct,
c: ulong,
);
pub fn _nmod_poly_taylor_shift_convolution(
poly: nn_ptr,
c: ulong,
len: slong,
mod_: nmod_t,
);
pub fn nmod_poly_taylor_shift_convolution(
g: *mut nmod_poly_struct,
f: *const nmod_poly_struct,
c: ulong,
);
pub fn _nmod_poly_taylor_shift(poly: nn_ptr, c: ulong, len: slong, mod_: nmod_t);
pub fn nmod_poly_taylor_shift(
g: *mut nmod_poly_struct,
f: *const nmod_poly_struct,
c: ulong,
);
pub fn _nmod_poly_mod_matrix_rows_evaluate(
res: nn_ptr,
A: *const nmod_mat_struct,
h: nn_srcptr,
n: slong,
poly3: nn_srcptr,
len3: slong,
poly3inv: nn_srcptr,
len3inv: slong,
mod_: nmod_t,
);
pub fn _nmod_poly_compose_mod_brent_kung(
res: nn_ptr,
f: nn_srcptr,
lenf: slong,
g: nn_srcptr,
h: nn_srcptr,
lenh: slong,
mod_: nmod_t,
);
pub fn nmod_poly_compose_mod_brent_kung(
res: *mut nmod_poly_struct,
f: *const nmod_poly_struct,
g: *const nmod_poly_struct,
h: *const nmod_poly_struct,
);
pub fn _nmod_poly_reduce_matrix_mod_poly(
A: *mut nmod_mat_struct,
B: *const nmod_mat_struct,
f: *const nmod_poly_struct,
);
pub fn _nmod_poly_precompute_matrix(
A: *mut nmod_mat_struct,
poly1: nn_srcptr,
poly2: nn_srcptr,
len2: slong,
poly2inv: nn_srcptr,
len2inv: slong,
mod_: nmod_t,
);
pub fn _nmod_poly_precompute_matrix_worker(arg_ptr: *mut ::std::os::raw::c_void);
pub fn nmod_poly_precompute_matrix(
A: *mut nmod_mat_struct,
poly1: *const nmod_poly_struct,
poly2: *const nmod_poly_struct,
poly2inv: *const nmod_poly_struct,
);
pub fn _nmod_poly_compose_mod_brent_kung_precomp_preinv(
res: nn_ptr,
poly1: nn_srcptr,
len1: slong,
A: *const nmod_mat_struct,
poly3: nn_srcptr,
len3: slong,
poly3inv: nn_srcptr,
len3inv: slong,
mod_: nmod_t,
);
pub fn _nmod_poly_compose_mod_brent_kung_precomp_preinv_worker(
arg_ptr: *mut ::std::os::raw::c_void,
);
pub fn nmod_poly_compose_mod_brent_kung_precomp_preinv(
res: *mut nmod_poly_struct,
poly1: *const nmod_poly_struct,
A: *const nmod_mat_struct,
poly3: *const nmod_poly_struct,
poly3inv: *const nmod_poly_struct,
);
pub fn _nmod_poly_compose_mod_brent_kung_preinv(
res: nn_ptr,
poly1: nn_srcptr,
len1: slong,
poly2: nn_srcptr,
poly3: nn_srcptr,
len3: slong,
poly3inv: nn_srcptr,
len3inv: slong,
mod_: nmod_t,
);
pub fn nmod_poly_compose_mod_brent_kung_preinv(
res: *mut nmod_poly_struct,
poly1: *const nmod_poly_struct,
poly2: *const nmod_poly_struct,
poly3: *const nmod_poly_struct,
poly3inv: *const nmod_poly_struct,
);
pub fn _nmod_poly_compose_mod_brent_kung_vec_preinv(
res: *mut nmod_poly_struct,
polys: *const nmod_poly_struct,
UNUSED_lenpolys: slong,
l: slong,
g: nn_srcptr,
glen: slong,
poly: nn_srcptr,
len: slong,
polyinv: nn_srcptr,
leninv: slong,
mod_: nmod_t,
);
pub fn nmod_poly_compose_mod_brent_kung_vec_preinv(
res: *mut nmod_poly_struct,
polys: *const nmod_poly_struct,
len1: slong,
n: slong,
g: *const nmod_poly_struct,
poly: *const nmod_poly_struct,
polyinv: *const nmod_poly_struct,
);
pub fn _nmod_poly_compose_mod_brent_kung_vec_preinv_worker(
arg_ptr: *mut ::std::os::raw::c_void,
);
pub fn nmod_poly_compose_mod_brent_kung_vec_preinv_threaded_pool(
res: *mut nmod_poly_struct,
polys: *const nmod_poly_struct,
len1: slong,
n: slong,
g: *const nmod_poly_struct,
poly: *const nmod_poly_struct,
polyinv: *const nmod_poly_struct,
threads: *mut thread_pool_handle,
num_threads: slong,
);
pub fn _nmod_poly_compose_mod_brent_kung_vec_preinv_threaded_pool(
res: *mut nmod_poly_struct,
polys: *const nmod_poly_struct,
UNUSED_lenpolys: slong,
l: slong,
g: nn_srcptr,
glen: slong,
poly: nn_srcptr,
len: slong,
polyinv: nn_srcptr,
leninv: slong,
mod_: nmod_t,
threads: *mut thread_pool_handle,
num_threads: slong,
);
pub fn nmod_poly_compose_mod_brent_kung_vec_preinv_threaded(
res: *mut nmod_poly_struct,
polys: *const nmod_poly_struct,
len1: slong,
n: slong,
g: *const nmod_poly_struct,
poly: *const nmod_poly_struct,
polyinv: *const nmod_poly_struct,
);
pub fn _nmod_poly_compose_mod_horner(
res: nn_ptr,
f: nn_srcptr,
lenf: slong,
g: nn_srcptr,
h: nn_srcptr,
lenh: slong,
mod_: nmod_t,
);
pub fn nmod_poly_compose_mod_horner(
res: *mut nmod_poly_struct,
f: *const nmod_poly_struct,
g: *const nmod_poly_struct,
h: *const nmod_poly_struct,
);
pub fn _nmod_poly_compose_mod(
res: nn_ptr,
f: nn_srcptr,
lenf: slong,
g: nn_srcptr,
h: nn_srcptr,
lenh: slong,
mod_: nmod_t,
);
pub fn nmod_poly_compose_mod(
res: *mut nmod_poly_struct,
f: *const nmod_poly_struct,
g: *const nmod_poly_struct,
h: *const nmod_poly_struct,
);
pub fn _nmod_poly_compose_series(
res: nn_ptr,
poly1: nn_srcptr,
len1: slong,
poly2: nn_srcptr,
len2: slong,
n: slong,
mod_: nmod_t,
);
pub fn nmod_poly_compose_series(
res: *mut nmod_poly_struct,
poly1: *const nmod_poly_struct,
poly2: *const nmod_poly_struct,
n: slong,
);
pub fn _nmod_poly_revert_series(
Qinv: nn_ptr,
Q: nn_srcptr,
Qlen: slong,
n: slong,
mod_: nmod_t,
);
pub fn nmod_poly_revert_series(
Qinv: *mut nmod_poly_struct,
Q: *const nmod_poly_struct,
n: slong,
);
pub fn _nmod_poly_hamming_weight(a: nn_srcptr, len: slong) -> slong;
pub fn nmod_poly_hamming_weight(A: *const nmod_poly_struct) -> slong;
pub fn nmod_poly_hgcd_iter_recursive_cutoff(mod_: nmod_t) -> slong;
pub fn nmod_poly_hgcd_outer_cutoff(mod_: nmod_t) -> slong;
pub fn nmod_poly_gcd_hgcd_cutoff(mod_: nmod_t) -> slong;
pub fn nmod_poly_xgcd_hgcd_cutoff(mod_: nmod_t) -> slong;
pub fn _nmod_poly_gcd_euclidean(
G: nn_ptr,
A: nn_srcptr,
lenA: slong,
B: nn_srcptr,
lenB: slong,
mod_: nmod_t,
) -> slong;
pub fn nmod_poly_gcd_euclidean(
G: *mut nmod_poly_struct,
A: *const nmod_poly_struct,
B: *const nmod_poly_struct,
);
pub fn _nmod_poly_gcd_euclidean_redc_fast(
G: nn_ptr,
A: nn_srcptr,
lenA: slong,
B: nn_srcptr,
lenB: slong,
mod_: nmod_t,
) -> slong;
pub fn nmod_poly_gcd_euclidean_redc_fast(
G: *mut nmod_poly_struct,
A: *const nmod_poly_struct,
B: *const nmod_poly_struct,
);
pub fn _nmod_poly_hgcd_recursive(
M: *mut nn_ptr,
lenM: *mut slong,
A: nn_ptr,
lenA: *mut slong,
B: nn_ptr,
lenB: *mut slong,
a: nn_srcptr,
lena: slong,
b: nn_srcptr,
lenb: slong,
P: nn_ptr,
mod_: nmod_t,
flag: ::std::os::raw::c_int,
res: *mut nmod_poly_res_struct,
) -> slong;
pub fn nmod_poly_hgcd_ref(
m11: *mut nmod_poly_struct,
m12: *mut nmod_poly_struct,
m21: *mut nmod_poly_struct,
m22: *mut nmod_poly_struct,
A: *mut nmod_poly_struct,
B: *mut nmod_poly_struct,
a: *const nmod_poly_struct,
b: *const nmod_poly_struct,
) -> slong;
pub fn _nmod_poly_hgcd(
M: *mut nn_ptr,
lenM: *mut slong,
A: nn_ptr,
lenA: *mut slong,
B: nn_ptr,
lenB: *mut slong,
a: nn_srcptr,
lena: slong,
b: nn_srcptr,
lenb: slong,
mod_: nmod_t,
) -> slong;
pub fn nmod_poly_hgcd(
m11: *mut nmod_poly_struct,
m12: *mut nmod_poly_struct,
m21: *mut nmod_poly_struct,
m22: *mut nmod_poly_struct,
A: *mut nmod_poly_struct,
B: *mut nmod_poly_struct,
a: *const nmod_poly_struct,
b: *const nmod_poly_struct,
) -> slong;
pub fn _nmod_poly_gcd_hgcd(
G: nn_ptr,
A: nn_srcptr,
lenA: slong,
B: nn_srcptr,
lenB: slong,
mod_: nmod_t,
) -> slong;
pub fn nmod_poly_gcd_hgcd(
G: *mut nmod_poly_struct,
A: *const nmod_poly_struct,
B: *const nmod_poly_struct,
);
pub fn _nmod_poly_gcd(
G: nn_ptr,
A: nn_srcptr,
lenA: slong,
B: nn_srcptr,
lenB: slong,
mod_: nmod_t,
) -> slong;
pub fn nmod_poly_gcd(
G: *mut nmod_poly_struct,
A: *const nmod_poly_struct,
B: *const nmod_poly_struct,
);
pub fn _nmod_poly_xgcd_euclidean(
res: nn_ptr,
s: nn_ptr,
t: nn_ptr,
poly1: nn_srcptr,
len1: slong,
poly2: nn_srcptr,
len2: slong,
mod_: nmod_t,
) -> slong;
pub fn nmod_poly_xgcd_euclidean(
G: *mut nmod_poly_struct,
S: *mut nmod_poly_struct,
T: *mut nmod_poly_struct,
A: *const nmod_poly_struct,
B: *const nmod_poly_struct,
);
pub fn _nmod_poly_xgcd_hgcd(
G: nn_ptr,
S: nn_ptr,
T: nn_ptr,
A: nn_srcptr,
lenA: slong,
B: nn_srcptr,
lenB: slong,
mod_: nmod_t,
) -> slong;
pub fn nmod_poly_xgcd_hgcd(
G: *mut nmod_poly_struct,
S: *mut nmod_poly_struct,
T: *mut nmod_poly_struct,
A: *const nmod_poly_struct,
B: *const nmod_poly_struct,
);
pub fn _nmod_poly_xgcd(
G: nn_ptr,
S: nn_ptr,
T: nn_ptr,
A: nn_srcptr,
lenA: slong,
B: nn_srcptr,
lenB: slong,
mod_: nmod_t,
) -> slong;
pub fn nmod_poly_xgcd(
G: *mut nmod_poly_struct,
S: *mut nmod_poly_struct,
T: *mut nmod_poly_struct,
A: *const nmod_poly_struct,
B: *const nmod_poly_struct,
);
pub fn _nmod_poly_resultant_euclidean(
poly1: nn_srcptr,
len1: slong,
poly2: nn_srcptr,
len2: slong,
mod_: nmod_t,
) -> ulong;
pub fn nmod_poly_resultant_euclidean(
f: *const nmod_poly_struct,
g: *const nmod_poly_struct,
) -> ulong;
pub fn _nmod_poly_resultant_hgcd(
A: nn_srcptr,
lenA: slong,
B: nn_srcptr,
lenB: slong,
mod_: nmod_t,
) -> ulong;
pub fn nmod_poly_resultant_hgcd(
A: *const nmod_poly_struct,
B: *const nmod_poly_struct,
) -> ulong;
pub fn _nmod_poly_resultant(
A: nn_srcptr,
lenA: slong,
B: nn_srcptr,
lenB: slong,
mod_: nmod_t,
) -> ulong;
pub fn nmod_poly_resultant(
A: *const nmod_poly_struct,
B: *const nmod_poly_struct,
) -> ulong;
pub fn _nmod_poly_gcdinv(
G: *mut ulong,
S: *mut ulong,
A: *const ulong,
lenA: slong,
B: *const ulong,
lenB: slong,
mod_: nmod_t,
) -> slong;
pub fn nmod_poly_gcdinv(
G: *mut nmod_poly_struct,
S: *mut nmod_poly_struct,
A: *const nmod_poly_struct,
B: *const nmod_poly_struct,
);
pub fn _nmod_poly_discriminant(poly: nn_srcptr, len: slong, mod_: nmod_t) -> ulong;
pub fn nmod_poly_discriminant(f: *const nmod_poly_struct) -> ulong;
pub fn _nmod_poly_invsqrt_series(
g: nn_ptr,
h: nn_srcptr,
hlen: slong,
n: slong,
mod_: nmod_t,
);
pub fn nmod_poly_invsqrt_series(
g: *mut nmod_poly_struct,
h: *const nmod_poly_struct,
n: slong,
);
pub fn _nmod_poly_sqrt_series(
g: nn_ptr,
h: nn_srcptr,
hlen: slong,
n: slong,
mod_: nmod_t,
);
pub fn nmod_poly_sqrt_series(
g: *mut nmod_poly_struct,
h: *const nmod_poly_struct,
n: slong,
);
pub fn _nmod_poly_sqrt(
s: nn_ptr,
p: nn_srcptr,
len: slong,
mod_: nmod_t,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_sqrt(
b: *mut nmod_poly_struct,
a: *const nmod_poly_struct,
) -> ::std::os::raw::c_int;
pub fn _nmod_poly_power_sums_naive(
res: nn_ptr,
poly: nn_srcptr,
len: slong,
n: slong,
mod_: nmod_t,
);
pub fn nmod_poly_power_sums_naive(
res: *mut nmod_poly_struct,
poly: *const nmod_poly_struct,
n: slong,
);
pub fn _nmod_poly_power_sums_schoenhage(
res: nn_ptr,
poly: nn_srcptr,
len: slong,
n: slong,
mod_: nmod_t,
);
pub fn nmod_poly_power_sums_schoenhage(
res: *mut nmod_poly_struct,
poly: *const nmod_poly_struct,
n: slong,
);
pub fn _nmod_poly_power_sums(
res: nn_ptr,
poly: nn_srcptr,
len: slong,
n: slong,
mod_: nmod_t,
);
pub fn nmod_poly_power_sums(
res: *mut nmod_poly_struct,
poly: *const nmod_poly_struct,
n: slong,
);
pub fn _nmod_poly_power_sums_to_poly_naive(
res: nn_ptr,
poly: nn_srcptr,
len: slong,
mod_: nmod_t,
);
pub fn nmod_poly_power_sums_to_poly_naive(
res: *mut nmod_poly_struct,
Q: *const nmod_poly_struct,
);
pub fn _nmod_poly_power_sums_to_poly_schoenhage(
res: nn_ptr,
poly: nn_srcptr,
len: slong,
mod_: nmod_t,
);
pub fn nmod_poly_power_sums_to_poly_schoenhage(
res: *mut nmod_poly_struct,
Q: *const nmod_poly_struct,
);
pub fn _nmod_poly_power_sums_to_poly(
res: nn_ptr,
poly: nn_srcptr,
len: slong,
mod_: nmod_t,
);
pub fn nmod_poly_power_sums_to_poly(
res: *mut nmod_poly_struct,
Q: *const nmod_poly_struct,
);
pub fn _nmod_poly_atan_series(
g: nn_ptr,
h: nn_srcptr,
hlen: slong,
n: slong,
mod_: nmod_t,
);
pub fn nmod_poly_atan_series(
g: *mut nmod_poly_struct,
h: *const nmod_poly_struct,
n: slong,
);
pub fn _nmod_poly_tan_series(
g: nn_ptr,
h: nn_srcptr,
hlen: slong,
n: slong,
mod_: nmod_t,
);
pub fn nmod_poly_tan_series(
g: *mut nmod_poly_struct,
h: *const nmod_poly_struct,
n: slong,
);
pub fn _nmod_poly_asin_series(
g: nn_ptr,
h: nn_srcptr,
hlen: slong,
n: slong,
mod_: nmod_t,
);
pub fn nmod_poly_asin_series(
g: *mut nmod_poly_struct,
h: *const nmod_poly_struct,
n: slong,
);
pub fn _nmod_poly_sin_series(
g: nn_ptr,
h: nn_srcptr,
hlen: slong,
n: slong,
mod_: nmod_t,
);
pub fn nmod_poly_sin_series(
g: *mut nmod_poly_struct,
h: *const nmod_poly_struct,
n: slong,
);
pub fn _nmod_poly_cos_series(
g: nn_ptr,
h: nn_srcptr,
hlen: slong,
n: slong,
mod_: nmod_t,
);
pub fn nmod_poly_cos_series(
g: *mut nmod_poly_struct,
h: *const nmod_poly_struct,
n: slong,
);
pub fn _nmod_poly_asinh_series(
g: nn_ptr,
h: nn_srcptr,
hlen: slong,
n: slong,
mod_: nmod_t,
);
pub fn nmod_poly_asinh_series(
g: *mut nmod_poly_struct,
h: *const nmod_poly_struct,
n: slong,
);
pub fn _nmod_poly_atanh_series(
g: nn_ptr,
h: nn_srcptr,
hlen: slong,
n: slong,
mod_: nmod_t,
);
pub fn nmod_poly_atanh_series(
g: *mut nmod_poly_struct,
h: *const nmod_poly_struct,
n: slong,
);
pub fn _nmod_poly_sinh_series(g: nn_ptr, h: nn_srcptr, n: slong, mod_: nmod_t);
pub fn nmod_poly_sinh_series(
g: *mut nmod_poly_struct,
h: *const nmod_poly_struct,
n: slong,
);
pub fn _nmod_poly_cosh_series(g: nn_ptr, h: nn_srcptr, n: slong, mod_: nmod_t);
pub fn nmod_poly_cosh_series(
g: *mut nmod_poly_struct,
h: *const nmod_poly_struct,
n: slong,
);
pub fn _nmod_poly_tanh_series(
g: nn_ptr,
h: nn_srcptr,
hlen: slong,
n: slong,
mod_: nmod_t,
);
pub fn nmod_poly_tanh_series(
g: *mut nmod_poly_struct,
h: *const nmod_poly_struct,
n: slong,
);
pub fn _nmod_poly_log_series(
res: nn_ptr,
f: nn_srcptr,
flen: slong,
n: slong,
mod_: nmod_t,
);
pub fn nmod_poly_log_series(
res: *mut nmod_poly_struct,
f: *const nmod_poly_struct,
n: slong,
);
pub fn _nmod_poly_exp_expinv_series(
f: nn_ptr,
g: nn_ptr,
h: nn_srcptr,
hlen: slong,
n: slong,
mod_: nmod_t,
);
pub fn _nmod_poly_exp_series(
f: nn_ptr,
h: nn_srcptr,
hlen: slong,
n: slong,
mod_: nmod_t,
);
pub fn nmod_poly_exp_series(
f: *mut nmod_poly_struct,
h: *const nmod_poly_struct,
n: slong,
);
pub fn _nmod_poly_conway(
op: nn_ptr,
prime: ulong,
deg: slong,
) -> ::std::os::raw::c_int;
pub fn _nmod_poly_conway_rand(
degree: *mut slong,
state: *mut flint_rand_struct,
type_: ::std::os::raw::c_int,
) -> ulong;
pub fn nmod_poly_product_roots_nmod_vec(
poly: *mut nmod_poly_struct,
xs: nn_srcptr,
n: slong,
);
pub fn _nmod_poly_product_roots_nmod_vec(
poly: nn_ptr,
xs: nn_srcptr,
n: slong,
mod_: nmod_t,
);
pub fn _nmod_poly_split_rabin(
a: *mut nmod_poly_struct,
b: *mut nmod_poly_struct,
f: *const nmod_poly_struct,
t: *mut nmod_poly_struct,
t2: *mut nmod_poly_struct,
randstate: *mut flint_rand_struct,
);
pub fn nmod_poly_find_distinct_nonzero_roots(
roots: *mut ulong,
P: *const nmod_poly_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_multi_crt_init(CRT: *mut nmod_poly_multi_crt_struct);
pub fn nmod_poly_multi_crt_clear(CRT: *mut nmod_poly_multi_crt_struct);
pub fn nmod_poly_multi_crt_precompute(
CRT: *mut nmod_poly_multi_crt_struct,
moduli: *const nmod_poly_struct,
len: slong,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_multi_crt_precompute_p(
CRT: *mut nmod_poly_multi_crt_struct,
moduli: *const *const nmod_poly_struct,
len: slong,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_multi_crt_precomp(
output: *mut nmod_poly_struct,
CRT: *const nmod_poly_multi_crt_struct,
values: *const nmod_poly_struct,
);
pub fn nmod_poly_multi_crt_precomp_p(
output: *mut nmod_poly_struct,
CRT: *const nmod_poly_multi_crt_struct,
values: *const *const nmod_poly_struct,
);
pub fn nmod_poly_multi_crt(
output: *mut nmod_poly_struct,
moduli: *const nmod_poly_struct,
values: *const nmod_poly_struct,
len: slong,
) -> ::std::os::raw::c_int;
pub fn _nmod_poly_multi_crt_local_size(
CRT: *const nmod_poly_multi_crt_struct,
) -> slong;
pub fn _nmod_poly_multi_crt_run(
outputs: *mut nmod_poly_struct,
CRT: *const nmod_poly_multi_crt_struct,
inputs: *const nmod_poly_struct,
);
pub fn _nmod_poly_multi_crt_run_p(
outputs: *mut nmod_poly_struct,
CRT: *const nmod_poly_multi_crt_struct,
inputs: *const *const nmod_poly_struct,
);
pub fn nmod_poly_deflation(input: *const nmod_poly_struct) -> slong;
pub fn nmod_poly_deflate(
result: *mut nmod_poly_struct,
input: *const nmod_poly_struct,
deflation: slong,
);
pub fn nmod_poly_inflate(
result: *mut nmod_poly_struct,
input: *const nmod_poly_struct,
inflation: slong,
);
pub fn _nmod_mat_charpoly_berkowitz(
p: nn_ptr,
M: *const nmod_mat_struct,
mod_: nmod_t,
);
pub fn nmod_mat_charpoly_berkowitz(
p: *mut nmod_poly_struct,
M: *const nmod_mat_struct,
);
pub fn nmod_mat_charpoly_danilevsky(
p: *mut nmod_poly_struct,
M: *const nmod_mat_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_mat_charpoly(p: *mut nmod_poly_struct, M: *const nmod_mat_struct);
pub fn nmod_mat_minpoly_with_gens(
p: *mut nmod_poly_struct,
X: *const nmod_mat_struct,
P: *mut ulong,
);
pub fn nmod_mat_minpoly(p: *mut nmod_poly_struct, M: *const nmod_mat_struct);
pub fn nmod_berlekamp_massey_init(B: *mut nmod_berlekamp_massey_struct, p: ulong);
pub fn nmod_berlekamp_massey_clear(B: *mut nmod_berlekamp_massey_struct);
pub fn nmod_berlekamp_massey_start_over(B: *mut nmod_berlekamp_massey_struct);
pub fn nmod_berlekamp_massey_set_prime(
B: *mut nmod_berlekamp_massey_struct,
p: ulong,
);
pub fn nmod_berlekamp_massey_print(B: *const nmod_berlekamp_massey_struct);
pub fn nmod_berlekamp_massey_add_point(
B: *mut nmod_berlekamp_massey_struct,
a: ulong,
);
pub fn nmod_berlekamp_massey_add_points(
B: *mut nmod_berlekamp_massey_struct,
a: *const ulong,
count: slong,
);
pub fn nmod_berlekamp_massey_add_zeros(
B: *mut nmod_berlekamp_massey_struct,
count: slong,
);
pub fn nmod_berlekamp_massey_reduce(
B: *mut nmod_berlekamp_massey_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_berlekamp_massey_points(
B: *const nmod_berlekamp_massey_struct,
) -> *const ulong;
pub fn nmod_berlekamp_massey_point_count(
B: *const nmod_berlekamp_massey_struct,
) -> slong;
pub fn nmod_berlekamp_massey_V_poly(
B: *const nmod_berlekamp_massey_struct,
) -> *const nmod_poly_struct;
pub fn nmod_berlekamp_massey_R_poly(
B: *const nmod_berlekamp_massey_struct,
) -> *const nmod_poly_struct;
}
/* nmod_poly_factor.h */
#[repr(C)]
pub struct nmod_poly_interval_poly_arg_t {
pub baby: *mut nmod_poly_struct,
pub res: *mut nmod_poly_struct,
pub H: *mut nmod_poly_struct,
pub v: *mut nmod_poly_struct,
pub vinv: *mut nmod_poly_struct,
pub tmp: nn_ptr,
pub m: slong,
}
impl Default for nmod_poly_interval_poly_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()
}
}
}
unsafe extern "C" {
pub fn nmod_poly_factor_init(fac: *mut nmod_poly_factor_struct);
pub fn nmod_poly_factor_clear(fac: *mut nmod_poly_factor_struct);
pub fn nmod_poly_factor_realloc(fac: *mut nmod_poly_factor_struct, alloc: slong);
pub fn nmod_poly_factor_fit_length(fac: *mut nmod_poly_factor_struct, len: slong);
pub fn nmod_poly_factor_set(
res: *mut nmod_poly_factor_struct,
fac: *const nmod_poly_factor_struct,
);
pub fn nmod_poly_factor_swap(
a: *mut nmod_poly_factor_struct,
b: *mut nmod_poly_factor_struct,
);
pub fn nmod_poly_factor_get_poly(
a: *mut nmod_poly_struct,
b: *const nmod_poly_factor_struct,
i: slong,
);
pub fn nmod_poly_factor_insert(
fac: *mut nmod_poly_factor_struct,
poly: *const nmod_poly_struct,
exp: slong,
);
pub fn nmod_poly_factor_print(fac: *const nmod_poly_factor_struct);
pub fn nmod_poly_factor_print_pretty(
fac: *const nmod_poly_factor_struct,
var: *const ::std::os::raw::c_char,
);
pub fn nmod_poly_factor_concat(
res: *mut nmod_poly_factor_struct,
fac: *const nmod_poly_factor_struct,
);
pub fn nmod_poly_factor_pow(fac: *mut nmod_poly_factor_struct, exp: slong);
pub fn nmod_poly_factor_equal_deg(
factors: *mut nmod_poly_factor_struct,
pol: *const nmod_poly_struct,
d: slong,
);
pub fn nmod_poly_factor_equal_deg_prob(
factor: *mut nmod_poly_struct,
state: *mut flint_rand_struct,
pol: *const nmod_poly_struct,
d: slong,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_factor_distinct_deg(
res: *mut nmod_poly_factor_struct,
poly: *const nmod_poly_struct,
degs: *const *mut slong,
);
pub fn nmod_poly_factor_distinct_deg_threaded(
res: *mut nmod_poly_factor_struct,
poly: *const nmod_poly_struct,
degs: *const *mut slong,
);
pub fn nmod_poly_is_irreducible(f: *const nmod_poly_struct) -> ::std::os::raw::c_int;
pub fn nmod_poly_is_irreducible_rabin(
f: *const nmod_poly_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_is_irreducible_ddf(
f: *const nmod_poly_struct,
) -> ::std::os::raw::c_int;
pub fn _nmod_poly_is_squarefree(
f: nn_srcptr,
len: slong,
mod_: nmod_t,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_is_squarefree(f: *const nmod_poly_struct) -> ::std::os::raw::c_int;
pub fn nmod_poly_factor_cantor_zassenhaus(
res: *mut nmod_poly_factor_struct,
f: *const nmod_poly_struct,
);
pub fn nmod_poly_factor_berlekamp(
factors: *mut nmod_poly_factor_struct,
f: *const nmod_poly_struct,
);
pub fn nmod_poly_factor_kaltofen_shoup(
res: *mut nmod_poly_factor_struct,
poly: *const nmod_poly_struct,
);
pub fn nmod_poly_factor_squarefree(
res: *mut nmod_poly_factor_struct,
f: *const nmod_poly_struct,
);
pub fn nmod_poly_factor_with_berlekamp(
result: *mut nmod_poly_factor_struct,
input: *const nmod_poly_struct,
) -> ulong;
pub fn nmod_poly_factor_with_cantor_zassenhaus(
result: *mut nmod_poly_factor_struct,
input: *const nmod_poly_struct,
) -> ulong;
pub fn nmod_poly_factor_with_kaltofen_shoup(
result: *mut nmod_poly_factor_struct,
input: *const nmod_poly_struct,
) -> ulong;
pub fn nmod_poly_factor(
result: *mut nmod_poly_factor_struct,
input: *const nmod_poly_struct,
) -> ulong;
pub fn _nmod_poly_interval_poly_worker(arg_ptr: *mut ::std::os::raw::c_void);
pub fn nmod_poly_roots(
r: *mut nmod_poly_factor_struct,
f: *const nmod_poly_struct,
with_multiplicity: ::std::os::raw::c_int,
);
pub fn nmod_poly_roots_factored(
r: *mut nmod_poly_factor_struct,
f: *const nmod_poly_struct,
with_multiplicity: ::std::os::raw::c_int,
n: *const n_factor_t,
) -> ::std::os::raw::c_int;
}
/* nmod_poly_mat.h */
unsafe extern "C" {
pub fn nmod_poly_mat_entry(
mat: *const nmod_poly_mat_struct,
i: slong,
j: slong,
) -> *mut nmod_poly_struct;
pub fn nmod_poly_mat_nrows(mat: *const nmod_poly_mat_struct) -> slong;
pub fn nmod_poly_mat_ncols(mat: *const nmod_poly_mat_struct) -> slong;
pub fn nmod_poly_mat_init(
mat: *mut nmod_poly_mat_struct,
rows: slong,
cols: slong,
n: ulong,
);
pub fn nmod_poly_mat_init_set(
mat: *mut nmod_poly_mat_struct,
src: *const nmod_poly_mat_struct,
);
pub fn nmod_poly_mat_swap(
mat1: *mut nmod_poly_mat_struct,
mat2: *mut nmod_poly_mat_struct,
);
pub fn nmod_poly_mat_swap_entrywise(
mat1: *mut nmod_poly_mat_struct,
mat2: *mut nmod_poly_mat_struct,
);
pub fn nmod_poly_mat_set(
mat1: *mut nmod_poly_mat_struct,
mat2: *const nmod_poly_mat_struct,
);
pub fn nmod_poly_mat_set_nmod_mat(
pmat: *mut nmod_poly_mat_struct,
cmat: *const nmod_mat_struct,
);
pub fn nmod_poly_mat_clear(mat: *mut nmod_poly_mat_struct);
pub fn nmod_poly_mat_transpose(
B: *mut nmod_poly_mat_struct,
A: *const nmod_poly_mat_struct,
);
pub fn nmod_poly_mat_set_trunc(
res: *mut nmod_poly_mat_struct,
pmat: *const nmod_poly_mat_struct,
len: ::std::os::raw::c_long,
);
pub fn nmod_poly_mat_truncate(
pmat: *mut nmod_poly_mat_struct,
len: ::std::os::raw::c_long,
);
pub fn nmod_poly_mat_shift_left(
res: *mut nmod_poly_mat_struct,
pmat: *const nmod_poly_mat_struct,
k: slong,
);
pub fn nmod_poly_mat_shift_right(
res: *mut nmod_poly_mat_struct,
pmat: *const nmod_poly_mat_struct,
k: slong,
);
pub fn nmod_poly_mat_modulus(mat: *const nmod_poly_mat_struct) -> ulong;
pub fn nmod_poly_mat_get_coeff_mat(
coeff: *mut nmod_mat_struct,
pmat: *const nmod_poly_mat_struct,
deg: slong,
);
pub fn nmod_poly_mat_set_coeff_mat(
pmat: *mut nmod_poly_mat_struct,
coeff: *const nmod_mat_struct,
deg: slong,
);
pub fn nmod_poly_mat_equal(
mat1: *const nmod_poly_mat_struct,
mat2: *const nmod_poly_mat_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_mat_equal_nmod_mat(
pmat: *const nmod_poly_mat_struct,
cmat: *const nmod_mat_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_mat_is_zero(
mat: *const nmod_poly_mat_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_mat_is_one(
mat: *const nmod_poly_mat_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_mat_is_empty(
mat: *const nmod_poly_mat_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_mat_is_square(
mat: *const nmod_poly_mat_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_mat_zero(mat: *mut nmod_poly_mat_struct);
pub fn nmod_poly_mat_one(mat: *mut nmod_poly_mat_struct);
pub fn nmod_poly_mat_randtest(
mat: *mut nmod_poly_mat_struct,
state: *mut flint_rand_struct,
len: slong,
);
pub fn nmod_poly_mat_randtest_sparse(
A: *mut nmod_poly_mat_struct,
state: *mut flint_rand_struct,
len: slong,
density: f32,
);
pub fn nmod_poly_mat_window_init(
window: *mut nmod_poly_mat_struct,
mat: *const nmod_poly_mat_struct,
r1: slong,
c1: slong,
r2: slong,
c2: slong,
);
pub fn nmod_poly_mat_window_clear(window: *mut nmod_poly_mat_struct);
pub fn nmod_poly_mat_concat_horizontal(
res: *mut nmod_poly_mat_struct,
mat1: *const nmod_poly_mat_struct,
mat2: *const nmod_poly_mat_struct,
);
pub fn nmod_poly_mat_concat_vertical(
res: *mut nmod_poly_mat_struct,
mat1: *const nmod_poly_mat_struct,
mat2: *const nmod_poly_mat_struct,
);
pub fn nmod_poly_mat_print(
mat: *const nmod_poly_mat_struct,
x: *const ::std::os::raw::c_char,
);
pub fn nmod_poly_mat_max_length(A: *const nmod_poly_mat_struct) -> slong;
pub fn nmod_poly_mat_degree(pmat: *const nmod_poly_mat_struct) -> slong;
pub fn nmod_poly_mat_scalar_mul_nmod_poly(
B: *mut nmod_poly_mat_struct,
A: *const nmod_poly_mat_struct,
c: *const nmod_poly_struct,
);
pub fn nmod_poly_mat_scalar_mul_nmod(
B: *mut nmod_poly_mat_struct,
A: *const nmod_poly_mat_struct,
c: ulong,
);
pub fn nmod_poly_mat_add(
C: *mut nmod_poly_mat_struct,
A: *const nmod_poly_mat_struct,
B: *const nmod_poly_mat_struct,
);
pub fn nmod_poly_mat_sub(
C: *mut nmod_poly_mat_struct,
A: *const nmod_poly_mat_struct,
B: *const nmod_poly_mat_struct,
);
pub fn nmod_poly_mat_neg(
B: *mut nmod_poly_mat_struct,
A: *const nmod_poly_mat_struct,
);
pub fn nmod_poly_mat_mul(
C: *mut nmod_poly_mat_struct,
A: *const nmod_poly_mat_struct,
B: *const nmod_poly_mat_struct,
);
pub fn nmod_poly_mat_mul_interpolate(
C: *mut nmod_poly_mat_struct,
A: *const nmod_poly_mat_struct,
B: *const nmod_poly_mat_struct,
);
pub fn nmod_poly_mat_mul_classical(
C: *mut nmod_poly_mat_struct,
A: *const nmod_poly_mat_struct,
B: *const nmod_poly_mat_struct,
);
pub fn nmod_poly_mat_mul_KS(
C: *mut nmod_poly_mat_struct,
A: *const nmod_poly_mat_struct,
B: *const nmod_poly_mat_struct,
);
pub fn nmod_poly_mat_sqr(
B: *mut nmod_poly_mat_struct,
A: *const nmod_poly_mat_struct,
);
pub fn nmod_poly_mat_sqr_classical(
B: *mut nmod_poly_mat_struct,
A: *const nmod_poly_mat_struct,
);
pub fn nmod_poly_mat_sqr_KS(
B: *mut nmod_poly_mat_struct,
A: *const nmod_poly_mat_struct,
);
pub fn nmod_poly_mat_sqr_interpolate(
B: *mut nmod_poly_mat_struct,
A: *const nmod_poly_mat_struct,
);
pub fn nmod_poly_mat_pow(
B: *mut nmod_poly_mat_struct,
A: *const nmod_poly_mat_struct,
exp: ulong,
);
pub fn nmod_poly_mat_evaluate_nmod(
B: *mut nmod_mat_struct,
A: *const nmod_poly_mat_struct,
x: ulong,
);
pub fn nmod_poly_mat_find_pivot_any(
mat: *const nmod_poly_mat_struct,
start_row: slong,
end_row: slong,
c: slong,
) -> slong;
pub fn nmod_poly_mat_find_pivot_partial(
mat: *const nmod_poly_mat_struct,
start_row: slong,
end_row: slong,
c: slong,
) -> slong;
pub fn nmod_poly_mat_fflu(
B: *mut nmod_poly_mat_struct,
den: *mut nmod_poly_struct,
perm: *mut slong,
A: *const nmod_poly_mat_struct,
rank_check: ::std::os::raw::c_int,
) -> slong;
pub fn nmod_poly_mat_rref(
B: *mut nmod_poly_mat_struct,
den: *mut nmod_poly_struct,
A: *const nmod_poly_mat_struct,
) -> slong;
pub fn nmod_poly_mat_trace(
trace: *mut nmod_poly_struct,
mat: *const nmod_poly_mat_struct,
);
pub fn nmod_poly_mat_det(det: *mut nmod_poly_struct, A: *const nmod_poly_mat_struct);
pub fn nmod_poly_mat_det_fflu(
det: *mut nmod_poly_struct,
A: *const nmod_poly_mat_struct,
);
pub fn nmod_poly_mat_det_interpolate(
det: *mut nmod_poly_struct,
A: *const nmod_poly_mat_struct,
);
pub fn nmod_poly_mat_rank(A: *const nmod_poly_mat_struct) -> slong;
pub fn nmod_poly_mat_inv(
Ainv: *mut nmod_poly_mat_struct,
den: *mut nmod_poly_struct,
A: *const nmod_poly_mat_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_mat_nullspace(
res: *mut nmod_poly_mat_struct,
mat: *const nmod_poly_mat_struct,
) -> slong;
pub fn nmod_poly_mat_solve(
X: *mut nmod_poly_mat_struct,
den: *mut nmod_poly_struct,
A: *const nmod_poly_mat_struct,
B: *const nmod_poly_mat_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_mat_solve_fflu(
X: *mut nmod_poly_mat_struct,
den: *mut nmod_poly_struct,
A: *const nmod_poly_mat_struct,
B: *const nmod_poly_mat_struct,
) -> ::std::os::raw::c_int;
pub fn nmod_poly_mat_solve_fflu_precomp(
X: *mut nmod_poly_mat_struct,
perm: *const slong,
FFLU: *const nmod_poly_mat_struct,
B: *const nmod_poly_mat_struct,
);
}
/* nmod_types.h */
#[repr(C)]
pub struct nmod_mat_struct {
pub entries: *mut ulong,
pub r: slong,
pub c: slong,
pub stride: slong,
pub mod_: nmod_t,
}
impl Default for nmod_mat_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 nmod_mat_t = [nmod_mat_struct; 1usize];
#[repr(C)]
pub struct nmod_poly_struct {
pub coeffs: nn_ptr,
pub alloc: slong,
pub length: slong,
pub mod_: nmod_t,
}
impl Default for nmod_poly_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 nmod_poly_t = [nmod_poly_struct; 1usize];
#[repr(C)]
pub struct nmod_poly_factor_struct {
pub p: *mut nmod_poly_struct,
pub exp: *mut slong,
pub num: slong,
pub alloc: slong,
}
impl Default for nmod_poly_factor_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 nmod_poly_factor_t = [nmod_poly_factor_struct; 1usize];
#[repr(C)]
pub struct nmod_poly_mat_struct {
pub entries: *mut nmod_poly_struct,
pub r: slong,
pub c: slong,
pub stride: slong,
pub modulus: ulong,
}
impl Default for nmod_poly_mat_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 nmod_poly_mat_t = [nmod_poly_mat_struct; 1usize];
#[repr(C)]
pub struct nmod_mpoly_struct {
pub coeffs: *mut ulong,
pub exps: *mut ulong,
pub length: slong,
pub bits: flint_bitcnt_t,
pub coeffs_alloc: slong,
pub exps_alloc: slong,
}
impl Default for nmod_mpoly_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 nmod_mpoly_t = [nmod_mpoly_struct; 1usize];
#[repr(C)]
pub struct nmod_mpoly_factor_struct {
pub constant: ulong,
pub poly: *mut nmod_mpoly_struct,
pub exp: *mut fmpz,
pub num: slong,
pub alloc: slong,
}
impl Default for nmod_mpoly_factor_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 nmod_mpoly_factor_t = [nmod_mpoly_factor_struct; 1usize];
pub const dot_method_t__DOT0: dot_method_t = 0;
pub const dot_method_t__DOT1: dot_method_t = 1;
pub const dot_method_t__DOT2_SPLIT: dot_method_t = 2;
pub const dot_method_t__DOT2_HALF: dot_method_t = 3;
pub const dot_method_t__DOT2: dot_method_t = 4;
pub const dot_method_t__DOT3_ACC: dot_method_t = 5;
pub const dot_method_t__DOT3: dot_method_t = 6;
pub const dot_method_t__DOT_POW2: dot_method_t = 7;
pub type dot_method_t = ::std::os::raw::c_uint;
#[repr(C)]
pub struct dot_params_t {
pub method: dot_method_t,
pub pow2_precomp: ulong,
}
impl Default for dot_params_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()
}
}
}
/* nmod_vec.h */
unsafe extern "C" {
pub fn _nmod_vec_init(len: slong) -> nn_ptr;
pub fn _nmod_vec_clear(vec: nn_ptr);
pub fn _nmod_vec_randtest(
vec: nn_ptr,
state: *mut flint_rand_struct,
len: slong,
mod_: nmod_t,
);
pub fn _nmod_vec_rand(
vec: nn_ptr,
state: *mut flint_rand_struct,
len: slong,
mod_: nmod_t,
);
pub fn _nmod_vec_zero(vec: nn_ptr, len: slong);
pub fn _nmod_vec_max_bits(vec: nn_srcptr, len: slong) -> flint_bitcnt_t;
pub fn _nmod_vec_set(res: nn_ptr, vec: nn_srcptr, len: slong);
pub fn _nmod_vec_swap(a: nn_ptr, b: nn_ptr, length: slong);
pub fn _nmod_vec_equal(
vec: nn_srcptr,
vec2: nn_srcptr,
len: slong,
) -> ::std::os::raw::c_int;
pub fn _nmod_vec_is_zero(vec: nn_srcptr, len: slong) -> ::std::os::raw::c_int;
pub fn _nmod_vec_fprint_pretty(
file: *mut FILE,
vec: nn_srcptr,
len: slong,
mod_: nmod_t,
) -> ::std::os::raw::c_int;
pub fn _nmod_vec_fprint(
f: *mut FILE,
vec: nn_srcptr,
len: slong,
mod_: nmod_t,
) -> ::std::os::raw::c_int;
pub fn _nmod_vec_print_pretty(vec: nn_srcptr, len: slong, mod_: nmod_t);
pub fn _nmod_vec_print(
vec: nn_srcptr,
len: slong,
mod_: nmod_t,
) -> ::std::os::raw::c_int;
pub fn _nmod_vec_reduce(res: nn_ptr, vec: nn_srcptr, len: slong, mod_: nmod_t);
pub fn _nmod_vec_add(
res: nn_ptr,
vec1: nn_srcptr,
vec2: nn_srcptr,
len: slong,
mod_: nmod_t,
);
pub fn _nmod_vec_sub(
res: nn_ptr,
vec1: nn_srcptr,
vec2: nn_srcptr,
len: slong,
mod_: nmod_t,
);
pub fn _nmod_vec_neg(res: nn_ptr, vec: nn_srcptr, len: slong, mod_: nmod_t);
pub fn _nmod_vec_scalar_mul_nmod(
res: nn_ptr,
vec: nn_srcptr,
len: slong,
c: ulong,
mod_: nmod_t,
);
pub fn _nmod_vec_scalar_mul_nmod_redc(
res: nn_ptr,
vec: nn_srcptr,
len: slong,
c: ulong,
mod_: nmod_t,
);
pub fn _nmod_vec_scalar_mul_nmod_generic(
res: nn_ptr,
vec: nn_srcptr,
len: slong,
c: ulong,
mod_: nmod_t,
);
pub fn _nmod_vec_scalar_mul_nmod_shoup(
res: nn_ptr,
vec: nn_srcptr,
len: slong,
c: ulong,
mod_: nmod_t,
);
pub fn _nmod_vec_scalar_addmul_nmod(
res: nn_ptr,
vec: nn_srcptr,
len: slong,
c: ulong,
mod_: nmod_t,
);
pub fn _nmod_vec_scalar_addmul_nmod_generic(
res: nn_ptr,
vec: nn_srcptr,
len: slong,
c: ulong,
mod_: nmod_t,
);
pub fn _nmod_vec_scalar_addmul_nmod_shoup(
res: nn_ptr,
vec: nn_srcptr,
len: slong,
c: ulong,
mod_: nmod_t,
);
pub fn _nmod_vec_nored_scalar_addmul_halflimb(
res: nn_ptr,
vec: nn_srcptr,
len: slong,
c: ulong,
);
pub fn _nmod_vec_nored_ll_scalar_addmul_halflimb(
res: nn_ptr,
vec: nn_srcptr,
len: slong,
c: ulong,
);
pub fn _nmod_vec_nored_ll_scalar_addmul(
res: nn_ptr,
vec: nn_srcptr,
len: slong,
c: ulong,
);
pub fn _nmod_vec_nored_lll_scalar_addmul(
res: nn_ptr,
vec: nn_srcptr,
len: slong,
c: ulong,
);
pub fn _nmod_vec_invert(res: nn_ptr, vec: nn_srcptr, len: ulong, mod_: nmod_t);
pub fn _nmod_vec_invert_naive(res: nn_ptr, vec: nn_srcptr, len: ulong, mod_: nmod_t);
pub fn _nmod_vec_invert_generic(
res: nn_ptr,
vec: nn_srcptr,
len: ulong,
mod_: nmod_t,
);
pub fn _nmod_vec_invert_shoup(res: nn_ptr, vec: nn_srcptr, len: ulong, mod_: nmod_t);
pub fn _nmod_vec_dot_bound_limbs(len: slong, mod_: nmod_t) -> ::std::os::raw::c_int;
pub fn _nmod_vec_dot_bound_limbs_from_params(
len: slong,
mod_: nmod_t,
params: dot_params_t,
) -> ::std::os::raw::c_int;
pub fn _nmod_vec_dot_pow2(
vec1: nn_srcptr,
vec2: nn_srcptr,
len: slong,
mod_: nmod_t,
) -> ulong;
pub fn _nmod_vec_dot1(
vec1: nn_srcptr,
vec2: nn_srcptr,
len: slong,
mod_: nmod_t,
) -> ulong;
pub fn _nmod_vec_dot2_half(
vec1: nn_srcptr,
vec2: nn_srcptr,
len: slong,
mod_: nmod_t,
pow2_precomp: ulong,
) -> ulong;
pub fn _nmod_vec_dot2(
vec1: nn_srcptr,
vec2: nn_srcptr,
len: slong,
mod_: nmod_t,
) -> ulong;
pub fn _nmod_vec_dot3_acc(
vec1: nn_srcptr,
vec2: nn_srcptr,
len: slong,
mod_: nmod_t,
) -> ulong;
pub fn _nmod_vec_dot3(
vec1: nn_srcptr,
vec2: nn_srcptr,
len: slong,
mod_: nmod_t,
) -> ulong;
pub fn _nmod_vec_dot2_split(
vec1: nn_srcptr,
vec2: nn_srcptr,
len: slong,
mod_: nmod_t,
pow2_precomp: ulong,
) -> ulong;
pub fn _nmod_vec_dot_pow2_rev(
vec1: nn_srcptr,
vec2: nn_srcptr,
len: slong,
mod_: nmod_t,
) -> ulong;
pub fn _nmod_vec_dot1_rev(
vec1: nn_srcptr,
vec2: nn_srcptr,
len: slong,
mod_: nmod_t,
) -> ulong;
pub fn _nmod_vec_dot2_half_rev(
vec1: nn_srcptr,
vec2: nn_srcptr,
len: slong,
mod_: nmod_t,
) -> ulong;
pub fn _nmod_vec_dot2_rev(
vec1: nn_srcptr,
vec2: nn_srcptr,
len: slong,
mod_: nmod_t,
) -> ulong;
pub fn _nmod_vec_dot3_acc_rev(
vec1: nn_srcptr,
vec2: nn_srcptr,
len: slong,
mod_: nmod_t,
) -> ulong;
pub fn _nmod_vec_dot3_rev(
vec1: nn_srcptr,
vec2: nn_srcptr,
len: slong,
mod_: nmod_t,
) -> ulong;
pub fn _nmod_vec_dot2_split_rev(
vec1: nn_srcptr,
vec2: nn_srcptr,
len: slong,
mod_: nmod_t,
pow2_precomp: ulong,
) -> ulong;
pub fn _nmod_vec_dot_pow2_ptr(
vec1: nn_srcptr,
vec2: *const nn_ptr,
offset: slong,
len: slong,
mod_: nmod_t,
) -> ulong;
pub fn _nmod_vec_dot1_ptr(
vec1: nn_srcptr,
vec2: *const nn_ptr,
offset: slong,
len: slong,
mod_: nmod_t,
) -> ulong;
pub fn _nmod_vec_dot2_half_ptr(
vec1: nn_srcptr,
vec2: *const nn_ptr,
offset: slong,
len: slong,
mod_: nmod_t,
) -> ulong;
pub fn _nmod_vec_dot2_ptr(
vec1: nn_srcptr,
vec2: *const nn_ptr,
offset: slong,
len: slong,
mod_: nmod_t,
) -> ulong;
pub fn _nmod_vec_dot3_acc_ptr(
vec1: nn_srcptr,
vec2: *const nn_ptr,
offset: slong,
len: slong,
mod_: nmod_t,
) -> ulong;
pub fn _nmod_vec_dot3_ptr(
vec1: nn_srcptr,
vec2: *const nn_ptr,
offset: slong,
len: slong,
mod_: nmod_t,
) -> ulong;
pub fn _nmod_vec_dot2_split_ptr(
vec1: nn_srcptr,
vec2: *const nn_ptr,
offset: slong,
len: slong,
mod_: nmod_t,
pow2_precomp: ulong,
) -> ulong;
pub fn _nmod_vec_dot_strided(
vec1: nn_srcptr,
stride1: slong,
vec2: nn_srcptr,
stride2: slong,
len: slong,
mod_: nmod_t,
params: dot_params_t,
) -> ulong;
}
/* padic.h */
unsafe extern "C" {
pub fn padic_unit(x: *const padic_struct) -> *mut fmpz;
pub fn padic_get_val(x: *const padic_struct) -> slong;
pub fn padic_get_prec(x: *const padic_struct) -> slong;
pub fn padic_ctx_init(
ctx: *mut padic_ctx_struct,
p: *const fmpz,
min: slong,
max: slong,
mode: padic_print_mode,
);
pub fn padic_ctx_clear(ctx: *mut padic_ctx_struct);
pub fn _padic_ctx_pow_ui(
rop: *mut fmpz,
e: ulong,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_ctx_pow_ui(rop: *mut fmpz, e: ulong, ctx: *const padic_ctx_struct);
pub fn padic_init(rop: *mut padic_struct);
pub fn padic_init2(rop: *mut padic_struct, N: slong);
pub fn padic_clear(rop: *mut padic_struct);
pub fn _padic_canonicalise(rop: *mut padic_struct, ctx: *const padic_ctx_struct);
pub fn _padic_reduce(rop: *mut padic_struct, ctx: *const padic_ctx_struct);
pub fn padic_reduce(rop: *mut padic_struct, ctx: *const padic_ctx_struct);
pub fn padic_randtest(
rop: *mut padic_struct,
state: *mut flint_rand_struct,
ctx: *const padic_ctx_struct,
);
pub fn padic_randtest_not_zero(
rop: *mut padic_struct,
state: *mut flint_rand_struct,
ctx: *const padic_ctx_struct,
);
pub fn padic_randtest_int(
rop: *mut padic_struct,
state: *mut flint_rand_struct,
ctx: *const padic_ctx_struct,
);
pub fn padic_set_si(rop: *mut padic_struct, op: slong, ctx: *const padic_ctx_struct);
pub fn padic_set_ui(rop: *mut padic_struct, op: ulong, ctx: *const padic_ctx_struct);
pub fn padic_set_fmpz(
rop: *mut padic_struct,
op: *const fmpz,
ctx: *const padic_ctx_struct,
);
pub fn padic_set_fmpq(
rop: *mut padic_struct,
op: *const fmpq,
ctx: *const padic_ctx_struct,
);
pub fn padic_set(
rop: *mut padic_struct,
op: *const padic_struct,
ctx: *const padic_ctx_struct,
);
pub fn padic_get_fmpz(
rop: *mut fmpz,
op: *const padic_struct,
ctx: *const padic_ctx_struct,
);
pub fn padic_get_fmpq(
rop: *mut fmpq,
op: *const padic_struct,
ctx: *const padic_ctx_struct,
);
pub fn padic_swap(op1: *mut padic_struct, op2: *mut padic_struct);
pub fn padic_zero(rop: *mut padic_struct);
pub fn padic_one(rop: *mut padic_struct);
pub fn padic_is_zero(op: *const padic_struct) -> ::std::os::raw::c_int;
pub fn padic_is_one(op: *const padic_struct) -> ::std::os::raw::c_int;
pub fn padic_equal(
op1: *const padic_struct,
op2: *const padic_struct,
) -> ::std::os::raw::c_int;
pub fn _padic_lifts_exps(n: *mut slong, N: slong) -> *mut slong;
pub fn _padic_lifts_pows(pow: *mut fmpz, a: *const slong, n: slong, p: *const fmpz);
pub fn padic_add(
rop: *mut padic_struct,
op1: *const padic_struct,
op2: *const padic_struct,
ctx: *const padic_ctx_struct,
);
pub fn padic_sub(
rop: *mut padic_struct,
op1: *const padic_struct,
op2: *const padic_struct,
ctx: *const padic_ctx_struct,
);
pub fn padic_neg(
rop: *mut padic_struct,
op: *const padic_struct,
ctx: *const padic_ctx_struct,
);
pub fn padic_mul(
rop: *mut padic_struct,
op1: *const padic_struct,
op2: *const padic_struct,
ctx: *const padic_ctx_struct,
);
pub fn padic_shift(
rop: *mut padic_struct,
op: *const padic_struct,
v: slong,
ctx: *const padic_ctx_struct,
);
pub fn padic_div(
rop: *mut padic_struct,
op1: *const padic_struct,
op2: *const padic_struct,
ctx: *const padic_ctx_struct,
);
pub fn _padic_inv_precompute(S: *mut padic_inv_struct, p: *const fmpz, N: slong);
pub fn _padic_inv_clear(S: *mut padic_inv_struct);
pub fn _padic_inv_precomp(
rop: *mut fmpz,
op: *const fmpz,
S: *const padic_inv_struct,
);
pub fn _padic_inv(rop: *mut fmpz, op: *const fmpz, p: *const fmpz, N: slong);
pub fn padic_inv(
rop: *mut padic_struct,
op: *const padic_struct,
ctx: *const padic_ctx_struct,
);
pub fn _padic_sqrt(
rop: *mut fmpz,
op: *const fmpz,
p: *const fmpz,
N: slong,
) -> ::std::os::raw::c_int;
pub fn padic_sqrt(
rop: *mut padic_struct,
op: *const padic_struct,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_pow_si(
rop: *mut padic_struct,
op: *const padic_struct,
e: slong,
ctx: *const padic_ctx_struct,
);
pub fn _padic_exp_bound(v: slong, N: slong, p: *const fmpz) -> slong;
pub fn _padic_exp(
rop: *mut fmpz,
u: *const fmpz,
v: slong,
p: *const fmpz,
N: slong,
);
pub fn _padic_exp_rectangular(
rop: *mut fmpz,
u: *const fmpz,
v: slong,
p: *const fmpz,
N: slong,
);
pub fn _padic_exp_balanced(
rop: *mut fmpz,
u: *const fmpz,
v: slong,
p: *const fmpz,
N: slong,
);
pub fn padic_exp(
rop: *mut padic_struct,
op: *const padic_struct,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_exp_rectangular(
rop: *mut padic_struct,
op: *const padic_struct,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_exp_balanced(
rop: *mut padic_struct,
op: *const padic_struct,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _padic_log_bound(v: slong, N: slong, p: *const fmpz) -> slong;
pub fn _padic_log(z: *mut fmpz, y: *const fmpz, v: slong, p: *const fmpz, N: slong);
pub fn _padic_log_rectangular(
z: *mut fmpz,
y: *const fmpz,
v: slong,
p: *const fmpz,
N: slong,
);
pub fn _padic_log_satoh(
z: *mut fmpz,
y: *const fmpz,
v: slong,
p: *const fmpz,
N: slong,
);
pub fn _padic_log_balanced(
z: *mut fmpz,
y: *const fmpz,
UNUSED_v: slong,
p: *const fmpz,
N: slong,
);
pub fn padic_log(
rop: *mut padic_struct,
op: *const padic_struct,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_log_rectangular(
rop: *mut padic_struct,
op: *const padic_struct,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_log_satoh(
rop: *mut padic_struct,
op: *const padic_struct,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_log_balanced(
rop: *mut padic_struct,
op: *const padic_struct,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _padic_teichmuller(rop: *mut fmpz, op: *const fmpz, p: *const fmpz, N: slong);
pub fn padic_teichmuller(
rop: *mut padic_struct,
op: *const padic_struct,
ctx: *const padic_ctx_struct,
);
pub fn padic_val_fac_ui_2(N: ulong) -> ulong;
pub fn padic_val_fac_ui(N: ulong, p: *const fmpz) -> ulong;
pub fn padic_val_fac(rop: *mut fmpz, op: *const fmpz, p: *const fmpz);
pub fn _padic_get_str(
str_: *mut ::std::os::raw::c_char,
op: *const padic_struct,
p: *const fmpz,
mode: padic_print_mode,
) -> *mut ::std::os::raw::c_char;
pub fn padic_get_str(
str_: *mut ::std::os::raw::c_char,
op: *const padic_struct,
ctx: *const padic_ctx_struct,
) -> *mut ::std::os::raw::c_char;
pub fn _padic_fprint(
file: *mut FILE,
u: *const fmpz,
v: slong,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_fprint(
file: *mut FILE,
op: *const padic_struct,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _padic_print(
u: *const fmpz,
v: slong,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_print(
op: *const padic_struct,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_debug(op: *const padic_struct);
}
/* padic_mat.h */
unsafe extern "C" {
pub fn padic_mat(A: *const padic_mat_struct) -> *mut fmpz_mat_struct;
pub fn padic_mat_entry(A: *const padic_mat_struct, i: slong, j: slong) -> *mut fmpz;
pub fn padic_mat_get_val(A: *const padic_mat_struct) -> slong;
pub fn padic_mat_get_prec(A: *const padic_mat_struct) -> slong;
pub fn padic_mat_nrows(A: *const padic_mat_struct) -> slong;
pub fn padic_mat_ncols(A: *const padic_mat_struct) -> slong;
pub fn padic_mat_init(A: *mut padic_mat_struct, r: slong, c: slong);
pub fn padic_mat_init2(A: *mut padic_mat_struct, r: slong, c: slong, prec: slong);
pub fn padic_mat_clear(A: *mut padic_mat_struct);
pub fn _padic_mat_canonicalise(
A: *mut padic_mat_struct,
ctx: *const padic_ctx_struct,
);
pub fn _padic_mat_reduce(A: *mut padic_mat_struct, ctx: *const padic_ctx_struct);
pub fn padic_mat_reduce(A: *mut padic_mat_struct, ctx: *const padic_ctx_struct);
pub fn padic_mat_is_empty(A: *const padic_mat_struct) -> ::std::os::raw::c_int;
pub fn padic_mat_is_square(A: *const padic_mat_struct) -> ::std::os::raw::c_int;
pub fn padic_mat_is_canonical(
A: *const padic_mat_struct,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_mat_is_reduced(
A: *const padic_mat_struct,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_mat_set(
B: *mut padic_mat_struct,
A: *const padic_mat_struct,
ctx: *const padic_ctx_struct,
);
pub fn padic_mat_swap(A: *mut padic_mat_struct, B: *mut padic_mat_struct);
pub fn padic_mat_swap_entrywise(
mat1: *mut padic_mat_struct,
mat2: *mut padic_mat_struct,
);
pub fn padic_mat_zero(A: *mut padic_mat_struct);
pub fn padic_mat_one(A: *mut padic_mat_struct);
pub fn padic_mat_set_fmpq_mat(
B: *mut padic_mat_struct,
A: *const fmpq_mat_struct,
ctx: *const padic_ctx_struct,
);
pub fn padic_mat_get_fmpq_mat(
B: *mut fmpq_mat_struct,
A: *const padic_mat_struct,
ctx: *const padic_ctx_struct,
);
pub fn padic_mat_get_entry_padic(
rop: *mut padic_struct,
op: *const padic_mat_struct,
i: slong,
j: slong,
ctx: *const padic_ctx_struct,
);
pub fn padic_mat_set_entry_padic(
rop: *mut padic_mat_struct,
i: slong,
j: slong,
op: *const padic_struct,
ctx: *const padic_ctx_struct,
);
pub fn padic_mat_equal(
A: *const padic_mat_struct,
B: *const padic_mat_struct,
) -> ::std::os::raw::c_int;
pub fn padic_mat_is_zero(A: *const padic_mat_struct) -> ::std::os::raw::c_int;
pub fn padic_mat_fprint(
file: *mut FILE,
A: *const padic_mat_struct,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_mat_fprint_pretty(
file: *mut FILE,
A: *const padic_mat_struct,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_mat_print(
A: *const padic_mat_struct,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_mat_print_pretty(
A: *const padic_mat_struct,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_mat_randtest(
mat: *mut padic_mat_struct,
state: *mut flint_rand_struct,
ctx: *const padic_ctx_struct,
);
pub fn padic_mat_transpose(B: *mut padic_mat_struct, A: *const padic_mat_struct);
pub fn _padic_mat_add(
C: *mut padic_mat_struct,
A: *const padic_mat_struct,
B: *const padic_mat_struct,
ctx: *const padic_ctx_struct,
);
pub fn padic_mat_add(
C: *mut padic_mat_struct,
A: *const padic_mat_struct,
B: *const padic_mat_struct,
ctx: *const padic_ctx_struct,
);
pub fn _padic_mat_sub(
C: *mut padic_mat_struct,
A: *const padic_mat_struct,
B: *const padic_mat_struct,
ctx: *const padic_ctx_struct,
);
pub fn padic_mat_sub(
C: *mut padic_mat_struct,
A: *const padic_mat_struct,
B: *const padic_mat_struct,
ctx: *const padic_ctx_struct,
);
pub fn _padic_mat_neg(B: *mut padic_mat_struct, A: *const padic_mat_struct);
pub fn padic_mat_neg(
B: *mut padic_mat_struct,
A: *const padic_mat_struct,
ctx: *const padic_ctx_struct,
);
pub fn _padic_mat_scalar_mul_padic(
B: *mut padic_mat_struct,
A: *const padic_mat_struct,
c: *const padic_struct,
UNUSED_ctx: *const padic_ctx_struct,
);
pub fn padic_mat_scalar_mul_padic(
B: *mut padic_mat_struct,
A: *const padic_mat_struct,
c: *const padic_struct,
ctx: *const padic_ctx_struct,
);
pub fn _padic_mat_scalar_mul_fmpz(
B: *mut padic_mat_struct,
A: *const padic_mat_struct,
c: *const fmpz,
ctx: *const padic_ctx_struct,
);
pub fn padic_mat_scalar_mul_fmpz(
B: *mut padic_mat_struct,
A: *const padic_mat_struct,
c: *const fmpz,
ctx: *const padic_ctx_struct,
);
pub fn padic_mat_scalar_div_fmpz(
B: *mut padic_mat_struct,
A: *const padic_mat_struct,
c: *const fmpz,
ctx: *const padic_ctx_struct,
);
pub fn padic_mat_mul(
C: *mut padic_mat_struct,
A: *const padic_mat_struct,
B: *const padic_mat_struct,
ctx: *const padic_ctx_struct,
);
}
/* padic_poly.h */
unsafe extern "C" {
pub fn _fmpz_vec_ord_p(vec: *const fmpz, len: slong, p: *const fmpz) -> slong;
pub fn padic_poly_init(poly: *mut padic_poly_struct);
pub fn padic_poly_init2(poly: *mut padic_poly_struct, alloc: slong, prec: slong);
pub fn padic_poly_clear(poly: *mut padic_poly_struct);
pub fn padic_poly_realloc(
poly: *mut padic_poly_struct,
alloc: slong,
p: *const fmpz,
);
pub fn padic_poly_fit_length(poly: *mut padic_poly_struct, len: slong);
pub fn _padic_poly_set_length(poly: *mut padic_poly_struct, len: slong);
pub fn _padic_poly_normalise(poly: *mut padic_poly_struct);
pub fn _padic_poly_canonicalise(
poly: *mut fmpz,
v: *mut slong,
len: slong,
p: *const fmpz,
);
pub fn padic_poly_canonicalise(poly: *mut padic_poly_struct, p: *const fmpz);
pub fn padic_poly_reduce(poly: *mut padic_poly_struct, ctx: *const padic_ctx_struct);
pub fn padic_poly_truncate(poly: *mut padic_poly_struct, n: slong, p: *const fmpz);
pub fn padic_poly_degree(poly: *const padic_poly_struct) -> slong;
pub fn padic_poly_length(poly: *const padic_poly_struct) -> slong;
pub fn padic_poly_val(poly: *const padic_poly_struct) -> slong;
pub fn padic_poly_randtest(
f: *mut padic_poly_struct,
state: *mut flint_rand_struct,
len: slong,
ctx: *const padic_ctx_struct,
);
pub fn padic_poly_randtest_not_zero(
f: *mut padic_poly_struct,
state: *mut flint_rand_struct,
len: slong,
ctx: *const padic_ctx_struct,
);
pub fn padic_poly_randtest_val(
f: *mut padic_poly_struct,
state: *mut flint_rand_struct,
val: slong,
len: slong,
ctx: *const padic_ctx_struct,
);
pub fn padic_poly_set(
poly1: *mut padic_poly_struct,
poly2: *const padic_poly_struct,
ctx: *const padic_ctx_struct,
);
pub fn padic_poly_set_padic(
poly: *mut padic_poly_struct,
x: *const padic_struct,
ctx: *const padic_ctx_struct,
);
pub fn padic_poly_set_si(
poly: *mut padic_poly_struct,
x: slong,
ctx: *const padic_ctx_struct,
);
pub fn padic_poly_set_ui(
poly: *mut padic_poly_struct,
x: ulong,
ctx: *const padic_ctx_struct,
);
pub fn padic_poly_set_fmpz(
poly: *mut padic_poly_struct,
x: *const fmpz,
ctx: *const padic_ctx_struct,
);
pub fn padic_poly_set_fmpq(
poly: *mut padic_poly_struct,
x: *const fmpq,
ctx: *const padic_ctx_struct,
);
pub fn padic_poly_set_fmpz_poly(
rop: *mut padic_poly_struct,
op: *const fmpz_poly_struct,
ctx: *const padic_ctx_struct,
);
pub fn padic_poly_set_fmpq_poly(
rop: *mut padic_poly_struct,
op: *const fmpq_poly_struct,
ctx: *const padic_ctx_struct,
);
pub fn padic_poly_get_fmpz_poly(
rop: *mut fmpz_poly_struct,
op: *const padic_poly_struct,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_poly_get_fmpq_poly(
rop: *mut fmpq_poly_struct,
op: *const padic_poly_struct,
ctx: *const padic_ctx_struct,
);
pub fn padic_poly_zero(poly: *mut padic_poly_struct);
pub fn padic_poly_one(poly: *mut padic_poly_struct);
pub fn padic_poly_swap(poly1: *mut padic_poly_struct, poly2: *mut padic_poly_struct);
pub fn padic_poly_get_coeff_padic(
c: *mut padic_struct,
poly: *const padic_poly_struct,
n: slong,
ctx: *const padic_ctx_struct,
);
pub fn padic_poly_set_coeff_padic(
poly: *mut padic_poly_struct,
n: slong,
c: *const padic_struct,
ctx: *const padic_ctx_struct,
);
pub fn padic_poly_equal(
poly1: *const padic_poly_struct,
poly2: *const padic_poly_struct,
) -> ::std::os::raw::c_int;
pub fn padic_poly_is_zero(poly: *const padic_poly_struct) -> ::std::os::raw::c_int;
pub fn padic_poly_is_one(poly: *const padic_poly_struct) -> ::std::os::raw::c_int;
pub fn _padic_poly_add(
rop: *mut fmpz,
rval: *mut slong,
N: slong,
op1: *const fmpz,
val1: slong,
len1: slong,
UNUSED_N1: slong,
op2: *const fmpz,
val2: slong,
len2: slong,
UNUSED_N2: slong,
ctx: *const padic_ctx_struct,
);
pub fn padic_poly_add(
f: *mut padic_poly_struct,
g: *const padic_poly_struct,
h: *const padic_poly_struct,
ctx: *const padic_ctx_struct,
);
pub fn _padic_poly_sub(
rop: *mut fmpz,
rval: *mut slong,
N: slong,
op1: *const fmpz,
val1: slong,
len1: slong,
UNUSED_N1: slong,
op2: *const fmpz,
val2: slong,
len2: slong,
UNUSED_N2: slong,
ctx: *const padic_ctx_struct,
);
pub fn padic_poly_sub(
f: *mut padic_poly_struct,
g: *const padic_poly_struct,
h: *const padic_poly_struct,
ctx: *const padic_ctx_struct,
);
pub fn padic_poly_neg(
f: *mut padic_poly_struct,
g: *const padic_poly_struct,
ctx: *const padic_ctx_struct,
);
pub fn _padic_poly_scalar_mul_padic(
rop: *mut fmpz,
rval: *mut slong,
N: slong,
op: *const fmpz,
val: slong,
len: slong,
c: *const padic_struct,
ctx: *const padic_ctx_struct,
);
pub fn padic_poly_scalar_mul_padic(
rop: *mut padic_poly_struct,
op: *const padic_poly_struct,
c: *const padic_struct,
ctx: *const padic_ctx_struct,
);
pub fn _padic_poly_mul(
rop: *mut fmpz,
rval: *mut slong,
N: slong,
op1: *const fmpz,
val1: slong,
len1: slong,
op2: *const fmpz,
val2: slong,
len2: slong,
ctx: *const padic_ctx_struct,
);
pub fn padic_poly_mul(
res: *mut padic_poly_struct,
poly1: *const padic_poly_struct,
poly2: *const padic_poly_struct,
ctx: *const padic_ctx_struct,
);
pub fn _padic_poly_pow(
rop: *mut fmpz,
rval: *mut slong,
N: slong,
op: *const fmpz,
val: slong,
len: slong,
e: ulong,
ctx: *const padic_ctx_struct,
);
pub fn padic_poly_pow(
rop: *mut padic_poly_struct,
op: *const padic_poly_struct,
e: ulong,
ctx: *const padic_ctx_struct,
);
pub fn padic_poly_inv_series(
g: *mut padic_poly_struct,
f: *const padic_poly_struct,
n: slong,
ctx: *const padic_ctx_struct,
);
pub fn _padic_poly_derivative(
rop: *mut fmpz,
rval: *mut slong,
N: slong,
op: *const fmpz,
val: slong,
len: slong,
ctx: *const padic_ctx_struct,
);
pub fn padic_poly_derivative(
rop: *mut padic_poly_struct,
op: *const padic_poly_struct,
ctx: *const padic_ctx_struct,
);
pub fn padic_poly_shift_left(
rop: *mut padic_poly_struct,
op: *const padic_poly_struct,
n: slong,
ctx: *const padic_ctx_struct,
);
pub fn padic_poly_shift_right(
rop: *mut padic_poly_struct,
op: *const padic_poly_struct,
n: slong,
ctx: *const padic_ctx_struct,
);
pub fn _padic_poly_evaluate_padic(
u: *mut fmpz,
v: *mut slong,
N: slong,
poly: *const fmpz,
val: slong,
len: slong,
a: *const fmpz,
b: slong,
ctx: *const padic_ctx_struct,
);
pub fn padic_poly_evaluate_padic(
y: *mut padic_struct,
poly: *const padic_poly_struct,
a: *const padic_struct,
ctx: *const padic_ctx_struct,
);
pub fn _padic_poly_compose(
rop: *mut fmpz,
rval: *mut slong,
N: slong,
op1: *const fmpz,
val1: slong,
len1: slong,
op2: *const fmpz,
val2: slong,
len2: slong,
ctx: *const padic_ctx_struct,
);
pub fn padic_poly_compose(
rop: *mut padic_poly_struct,
op1: *const padic_poly_struct,
op2: *const padic_poly_struct,
ctx: *const padic_ctx_struct,
);
pub fn _padic_poly_compose_pow(
rop: *mut fmpz,
rval: *mut slong,
N: slong,
op: *const fmpz,
val: slong,
len: slong,
k: slong,
ctx: *const padic_ctx_struct,
);
pub fn padic_poly_compose_pow(
rop: *mut padic_poly_struct,
op: *const padic_poly_struct,
k: slong,
ctx: *const padic_ctx_struct,
);
pub fn _padic_poly_fprint(
file: *mut FILE,
poly: *const fmpz,
val: slong,
len: slong,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_poly_fprint(
file: *mut FILE,
poly: *const padic_poly_struct,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _padic_poly_fprint_pretty(
file: *mut FILE,
poly: *const fmpz,
len: slong,
val: slong,
var: *const ::std::os::raw::c_char,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_poly_fprint_pretty(
file: *mut FILE,
poly: *const padic_poly_struct,
var: *const ::std::os::raw::c_char,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _padic_poly_print(
poly: *const fmpz,
val: slong,
len: slong,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_poly_print(
poly: *const padic_poly_struct,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _padic_poly_print_pretty(
poly: *const fmpz,
len: slong,
val: slong,
var: *const ::std::os::raw::c_char,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_poly_print_pretty(
poly: *const padic_poly_struct,
var: *const ::std::os::raw::c_char,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_poly_debug(poly: *const padic_poly_struct) -> ::std::os::raw::c_int;
pub fn _padic_poly_is_canonical(
op: *const fmpz,
val: slong,
len: slong,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_poly_is_canonical(
op: *const padic_poly_struct,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _padic_poly_is_reduced(
op: *const fmpz,
val: slong,
len: slong,
N: slong,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_poly_is_reduced(
op: *const padic_poly_struct,
ctx: *const padic_ctx_struct,
) -> ::std::os::raw::c_int;
}
/* padic_radix.h */
#[repr(C)]
pub struct padic_radix_struct {
pub u: radix_integer_struct,
pub v: slong,
pub N: slong,
}
impl Default for padic_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 padic_radix_t = [padic_radix_struct; 1usize];
#[repr(C)]
pub struct padic_radix_ctx_struct {
pub radix: radix_struct,
pub p: ulong,
pub prec_abs: slong,
pub prec_rel: slong,
pub flags: ::std::os::raw::c_int,
}
impl Default for padic_radix_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 padic_radix_ctx_t = [padic_radix_ctx_struct; 1usize];
unsafe extern "C" {
pub fn gr_ctx_init_padic_radix(
ctx: *mut gr_ctx_struct,
p: ulong,
prec_rel: slong,
prec_abs: slong,
flags: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn gr_ctx_init_padic_radix_randtest(
ctx: *mut gr_ctx_struct,
state: *mut flint_rand_struct,
maxprec: slong,
) -> ::std::os::raw::c_int;
pub fn padic_radix_ctx_clear(ctx: *mut gr_ctx_struct);
pub fn padic_radix_ctx_write(
out: *mut gr_stream_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_init(res: *mut padic_radix_struct, ctx: *mut gr_ctx_struct);
pub fn padic_radix_clear(res: *mut padic_radix_struct, ctx: *mut gr_ctx_struct);
pub fn padic_radix_swap(
x: *mut padic_radix_struct,
y: *mut padic_radix_struct,
ctx: *mut gr_ctx_struct,
);
pub fn padic_radix_set_shallow(
res: *mut padic_radix_struct,
x: *const padic_radix_struct,
ctx: *mut gr_ctx_struct,
);
pub fn padic_radix_get_error(
x: *const padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> slong;
pub fn padic_radix_is_exact(
x: *const padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn _padic_radix_finalize(
res: *mut padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_randtest(
res: *mut padic_radix_struct,
state: *mut flint_rand_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_write(
out: *mut gr_stream_struct,
x: *const padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_zero(
res: *mut padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_one(
res: *mut padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_set(
res: *mut padic_radix_struct,
x: *const padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_set_ui(
res: *mut padic_radix_struct,
x: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_set_si(
res: *mut padic_radix_struct,
x: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_set_fmpz(
res: *mut padic_radix_struct,
x: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_exact_set_ui(
res: *mut padic_radix_struct,
x: ulong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_exact_set_si(
res: *mut padic_radix_struct,
x: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_exact_set_fmpz(
res: *mut padic_radix_struct,
x: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_get_fmpz(
res: *mut fmpz,
x: *const padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_neg(
res: *mut padic_radix_struct,
x: *const padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_add(
res: *mut padic_radix_struct,
x: *const padic_radix_struct,
y: *const padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_sub(
res: *mut padic_radix_struct,
x: *const padic_radix_struct,
y: *const padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_mul(
res: *mut padic_radix_struct,
x: *const padic_radix_struct,
y: *const padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_inv(
res: *mut padic_radix_struct,
x: *const padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_div(
res: *mut padic_radix_struct,
x: *const padic_radix_struct,
y: *const padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_sqrt(
res: *mut padic_radix_struct,
x: *const padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_rsqrt(
res: *mut padic_radix_struct,
x: *const padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_is_square(
x: *const padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn padic_radix_is_zero(
x: *const padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn padic_radix_is_one(
x: *const padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn padic_radix_is_neg_one(
x: *const padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn padic_radix_is_invertible(
x: *const padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn padic_radix_equal(
x: *const padic_radix_struct,
y: *const padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn padic_radix_dot(
res: *mut padic_radix_struct,
initial: *const padic_radix_struct,
subtract: ::std::os::raw::c_int,
vec1: *const padic_radix_struct,
vec2: *const padic_radix_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_dot_rev(
res: *mut padic_radix_struct,
initial: *const padic_radix_struct,
subtract: ::std::os::raw::c_int,
vec1: *const padic_radix_struct,
vec2: *const padic_radix_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_dot_strided(
res: *mut padic_radix_struct,
initial: *const padic_radix_struct,
subtract: ::std::os::raw::c_int,
vec1: *const padic_radix_struct,
stride1: slong,
vec2: *const padic_radix_struct,
stride2: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_dot_strided_delayed(
res: *mut padic_radix_struct,
initial: *const padic_radix_struct,
subtract: ::std::os::raw::c_int,
vec1: *const padic_radix_struct,
stride1: slong,
vec2: *const padic_radix_struct,
stride2: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_dot_strided_naive(
res: *mut padic_radix_struct,
initial: *const padic_radix_struct,
subtract: ::std::os::raw::c_int,
vec1: *const padic_radix_struct,
stride1: slong,
vec2: *const padic_radix_struct,
stride2: slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _padic_radix_exp_bound(v: slong, N: slong, p: ulong) -> slong;
pub fn _padic_radix_exp_rectangular(
rop: *mut radix_integer_struct,
u: *const radix_integer_struct,
v: slong,
N: slong,
radix: *const radix_struct,
);
pub fn _padic_radix_exp_balanced(
rop: *mut radix_integer_struct,
u: *const radix_integer_struct,
v: slong,
N: slong,
radix: *const radix_struct,
);
pub fn _padic_radix_exp(
rop: *mut radix_integer_struct,
u: *const radix_integer_struct,
v: slong,
N: slong,
radix: *const radix_struct,
);
pub fn padic_radix_exp_rectangular(
res: *mut padic_radix_struct,
x: *const padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_exp_balanced(
res: *mut padic_radix_struct,
x: *const padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_exp(
res: *mut padic_radix_struct,
x: *const padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _padic_radix_log_bound(v: slong, N: slong, p: ulong) -> slong;
pub fn _padic_radix_log_rectangular(
rop: *mut radix_integer_struct,
y: *const radix_integer_struct,
N: slong,
radix: *const radix_struct,
);
pub fn _padic_radix_log_balanced(
rop: *mut radix_integer_struct,
y: *const radix_integer_struct,
N: slong,
radix: *const radix_struct,
);
pub fn _padic_radix_log(
rop: *mut radix_integer_struct,
y: *const radix_integer_struct,
N: slong,
radix: *const radix_struct,
);
pub fn padic_radix_log_rectangular(
res: *mut padic_radix_struct,
x: *const padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_log_balanced(
res: *mut padic_radix_struct,
x: *const padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn padic_radix_log(
res: *mut padic_radix_struct,
x: *const padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _padic_radix_add_sub_reference(
res: *mut padic_radix_struct,
x: *const padic_radix_struct,
y: *const padic_radix_struct,
sub: ::std::os::raw::c_int,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _padic_radix_mul_reference(
res: *mut padic_radix_struct,
x: *const padic_radix_struct,
y: *const padic_radix_struct,
ctx: *mut gr_ctx_struct,
) -> ::std::os::raw::c_int;
}
/* padic_types.h */
#[repr(C)]
pub struct padic_struct {
pub u: fmpz,
pub v: slong,
pub N: slong,
}
impl Default for padic_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 padic_t = [padic_struct; 1usize];
pub const padic_print_mode_PADIC_TERSE: padic_print_mode = 0;
pub const padic_print_mode_PADIC_SERIES: padic_print_mode = 1;
pub const padic_print_mode_PADIC_VAL_UNIT: padic_print_mode = 2;
pub type padic_print_mode = ::std::os::raw::c_uint;
#[repr(C)]
pub struct padic_ctx_struct {
pub p: fmpz_t,
pub pinv: f64,
pub pow: *mut fmpz,
pub min: slong,
pub max: slong,
pub mode: padic_print_mode,
}
impl Default for padic_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 padic_ctx_t = [padic_ctx_struct; 1usize];
#[repr(C)]
pub struct padic_inv_struct {
pub n: slong,
pub pow: *mut fmpz,
}
impl Default for padic_inv_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 padic_inv_t = [padic_inv_struct; 1usize];
#[repr(C)]
pub struct padic_mat_struct {
pub mat: fmpz_mat_struct,
pub val: slong,
pub N: slong,
}
impl Default for padic_mat_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 padic_mat_t = [padic_mat_struct; 1usize];
#[repr(C)]
pub struct padic_poly_struct {
pub coeffs: *mut fmpz,
pub alloc: slong,
pub length: slong,
pub val: slong,
pub N: slong,
}
impl Default for padic_poly_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 padic_poly_t = [padic_poly_struct; 1usize];
/* partitions.h */
unsafe extern "C" {
pub fn partitions_rademacher_bound(b: *mut arf_struct, n: *const fmpz, N: ulong);
pub fn partitions_hrr_sum_arb(
x: *mut arb_struct,
n: *const fmpz,
N0: slong,
N: slong,
use_doubles: ::std::os::raw::c_int,
);
pub fn partitions_fmpz_fmpz(
p: *mut fmpz,
n: *const fmpz,
use_doubles: ::std::os::raw::c_int,
);
pub fn partitions_fmpz_ui(p: *mut fmpz, n: ulong);
pub fn partitions_leading_fmpz(res: *mut arb_struct, n: *const fmpz, prec: slong);
}
/* perm.h */
unsafe extern "C" {
pub fn _perm_init(n: slong) -> *mut slong;
pub fn _perm_clear(vec: *mut slong);
pub fn _perm_equal(vec1: *const slong, vec2: *const slong, n: slong) -> slong;
pub fn _perm_is_one(vec: *const slong, n: slong) -> slong;
pub fn _perm_set(res: *mut slong, vec: *const slong, n: slong);
pub fn _perm_one(vec: *mut slong, n: slong);
pub fn _perm_inv(res: *mut slong, vec: *const slong, n: slong);
pub fn _perm_compose(
res: *mut slong,
vec1: *const slong,
vec2: *const slong,
n: slong,
);
pub fn _perm_compose_inv1(
res: *mut slong,
vec1: *const slong,
vec2: *const slong,
n: slong,
);
pub fn _perm_compose_inv2(
res: *mut slong,
vec1: *const slong,
vec2: *const slong,
n: slong,
);
pub fn _perm_randtest(
vec: *mut slong,
n: slong,
state: *mut flint_rand_struct,
) -> ::std::os::raw::c_int;
pub fn _perm_parity(vec: *const slong, n: slong) -> ::std::os::raw::c_int;
pub fn _perm_next_lex(perm: *mut slong, n: slong) -> ::std::os::raw::c_int;
pub fn _perm_next_heap(
perm: *mut slong,
n: slong,
stack: *mut slong,
) -> ::std::os::raw::c_int;
}
/* qadic.h */
pub type qadic_t = padic_poly_t;
pub type qadic_struct = padic_poly_struct;
#[repr(C)]
pub struct qadic_ctx_struct {
pub pctx: padic_ctx_struct,
pub a: *mut fmpz,
pub j: *mut slong,
pub len: slong,
pub var: *mut ::std::os::raw::c_char,
}
impl Default for qadic_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 qadic_ctx_t = [qadic_ctx_struct; 1usize];
#[repr(C)]
pub struct qadic2_sqrt_precomp {
_unused: [u8; 0],
}
unsafe extern "C" {
pub fn qadic_val(op: *const padic_poly_struct) -> slong;
pub fn qadic_prec(op: *const padic_poly_struct) -> slong;
pub fn _qadic_ctx_init_conway_ui(
ctx: *mut qadic_ctx_struct,
p: ulong,
d: slong,
min: slong,
max: slong,
var: *const ::std::os::raw::c_char,
mode: padic_print_mode,
) -> ::std::os::raw::c_int;
pub fn qadic_ctx_init_conway(
ctx: *mut qadic_ctx_struct,
p: *const fmpz,
d: slong,
min: slong,
max: slong,
var: *const ::std::os::raw::c_char,
mode: padic_print_mode,
);
pub fn qadic_ctx_init_modulus(
ctx: *mut qadic_ctx_struct,
p: *const fmpz,
modulus: *const fmpz_mod_poly_struct,
min: slong,
max: slong,
var: *const ::std::os::raw::c_char,
mode: padic_print_mode,
);
pub fn qadic_ctx_init_modulus_nmod(
ctx: *mut qadic_ctx_struct,
p: ulong,
modulus: *const nmod_poly_struct,
min: slong,
max: slong,
var: *const ::std::os::raw::c_char,
mode: padic_print_mode,
);
pub fn qadic_ctx_init(
ctx: *mut qadic_ctx_struct,
p: *const fmpz,
d: slong,
min: slong,
max: slong,
var: *const ::std::os::raw::c_char,
mode: padic_print_mode,
);
pub fn qadic_ctx_clear(ctx: *mut qadic_ctx_struct);
pub fn qadic_ctx_degree(ctx: *const qadic_ctx_struct) -> slong;
pub fn qadic_ctx_print(ctx: *const qadic_ctx_struct);
pub fn qadic_init(x: *mut padic_poly_struct);
pub fn qadic_init2(rop: *mut padic_poly_struct, prec: slong);
pub fn qadic_clear(x: *mut padic_poly_struct);
pub fn _fmpz_poly_reduce(
R: *mut fmpz,
lenR: slong,
a: *const fmpz,
j: *const slong,
len: slong,
);
pub fn _fmpz_mod_poly_reduce(
R: *mut fmpz,
lenR: slong,
a: *const fmpz,
j: *const slong,
len: slong,
p: *const fmpz,
);
pub fn qadic_reduce(x: *mut padic_poly_struct, ctx: *const qadic_ctx_struct);
pub fn qadic_randtest(
x: *mut padic_poly_struct,
state: *mut flint_rand_struct,
ctx: *const qadic_ctx_struct,
);
pub fn qadic_randtest_not_zero(
x: *mut padic_poly_struct,
state: *mut flint_rand_struct,
ctx: *const qadic_ctx_struct,
);
pub fn qadic_randtest_val(
x: *mut padic_poly_struct,
state: *mut flint_rand_struct,
val: slong,
ctx: *const qadic_ctx_struct,
);
pub fn qadic_randtest_int(
x: *mut padic_poly_struct,
state: *mut flint_rand_struct,
ctx: *const qadic_ctx_struct,
);
pub fn qadic_zero(op: *mut padic_poly_struct);
pub fn qadic_one(op: *mut padic_poly_struct);
pub fn qadic_gen(x: *mut padic_poly_struct, ctx: *const qadic_ctx_struct);
pub fn qadic_set_ui(
rop: *mut padic_poly_struct,
op: ulong,
ctx: *const qadic_ctx_struct,
);
pub fn qadic_get_padic(
rop: *mut padic_struct,
op: *const padic_poly_struct,
ctx: *const qadic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn qadic_set(
rop: *mut padic_poly_struct,
op: *const padic_poly_struct,
ctx: *const qadic_ctx_struct,
);
pub fn qadic_set_fmpz_poly(
rop: *mut padic_poly_struct,
op: *const fmpz_poly_struct,
ctx: *const qadic_ctx_struct,
);
pub fn qadic_is_zero(op: *const padic_poly_struct) -> ::std::os::raw::c_int;
pub fn qadic_is_one(op: *const padic_poly_struct) -> ::std::os::raw::c_int;
pub fn qadic_equal(
op1: *const padic_poly_struct,
op2: *const padic_poly_struct,
) -> ::std::os::raw::c_int;
pub fn qadic_add(
x: *mut padic_poly_struct,
y: *const padic_poly_struct,
z: *const padic_poly_struct,
ctx: *const qadic_ctx_struct,
);
pub fn qadic_sub(
x: *mut padic_poly_struct,
y: *const padic_poly_struct,
z: *const padic_poly_struct,
ctx: *const qadic_ctx_struct,
);
pub fn qadic_neg(
x: *mut padic_poly_struct,
y: *const padic_poly_struct,
ctx: *const qadic_ctx_struct,
);
pub fn qadic_mul(
x: *mut padic_poly_struct,
y: *const padic_poly_struct,
z: *const padic_poly_struct,
ctx: *const qadic_ctx_struct,
);
pub fn _qadic_inv(
rop: *mut fmpz,
op: *const fmpz,
len: slong,
a: *const fmpz,
j: *const slong,
lena: slong,
p: *const fmpz,
N: slong,
);
pub fn qadic_inv(
x: *mut padic_poly_struct,
y: *const padic_poly_struct,
ctx: *const qadic_ctx_struct,
);
pub fn _qadic_pow(
rop: *mut fmpz,
op: *const fmpz,
len: slong,
e: *const fmpz,
a: *const fmpz,
j: *const slong,
lena: slong,
p: *const fmpz,
);
pub fn qadic_pow(
x: *mut padic_poly_struct,
y: *const padic_poly_struct,
e: *const fmpz,
ctx: *const qadic_ctx_struct,
);
pub fn _qadic_exp_rectangular(
rop: *mut fmpz,
op: *const fmpz,
v: slong,
len: slong,
a: *const fmpz,
j: *const slong,
lena: slong,
p: *const fmpz,
N: slong,
pN: *const fmpz,
);
pub fn qadic_exp_rectangular(
rop: *mut padic_poly_struct,
op: *const padic_poly_struct,
ctx: *const qadic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _qadic_exp_balanced(
rop: *mut fmpz,
op: *const fmpz,
v: slong,
len: slong,
a: *const fmpz,
j: *const slong,
lena: slong,
p: *const fmpz,
N: slong,
pN: *const fmpz,
);
pub fn qadic_exp_balanced(
rop: *mut padic_poly_struct,
op: *const padic_poly_struct,
ctx: *const qadic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _qadic_exp(
rop: *mut fmpz,
op: *const fmpz,
v: slong,
len: slong,
a: *const fmpz,
j: *const slong,
lena: slong,
p: *const fmpz,
N: slong,
pN: *const fmpz,
);
pub fn qadic_exp(
rop: *mut padic_poly_struct,
op: *const padic_poly_struct,
ctx: *const qadic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _qadic_log_rectangular(
z: *mut fmpz,
y: *const fmpz,
v: slong,
len: slong,
a: *const fmpz,
j: *const slong,
lena: slong,
p: *const fmpz,
N: slong,
pN: *const fmpz,
);
pub fn qadic_log_rectangular(
rop: *mut padic_poly_struct,
op: *const padic_poly_struct,
ctx: *const qadic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _qadic_log_balanced(
z: *mut fmpz,
y: *const fmpz,
len: slong,
a: *const fmpz,
j: *const slong,
lena: slong,
p: *const fmpz,
N: slong,
pN: *const fmpz,
);
pub fn qadic_log_balanced(
rop: *mut padic_poly_struct,
op: *const padic_poly_struct,
ctx: *const qadic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _qadic_log(
z: *mut fmpz,
y: *const fmpz,
v: slong,
len: slong,
a: *const fmpz,
j: *const slong,
lena: slong,
p: *const fmpz,
N: slong,
pN: *const fmpz,
);
pub fn qadic_log(
rop: *mut padic_poly_struct,
op: *const padic_poly_struct,
ctx: *const qadic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _qadic_frobenius_a(
rop: *mut fmpz,
exp: slong,
a: *const fmpz,
j: *const slong,
lena: slong,
p: *const fmpz,
N: slong,
);
pub fn _qadic_frobenius(
rop: *mut fmpz,
op: *const fmpz,
len: slong,
e: slong,
a: *const fmpz,
j: *const slong,
lena: slong,
p: *const fmpz,
N: slong,
);
pub fn qadic_frobenius(
rop: *mut padic_poly_struct,
op: *const padic_poly_struct,
e: slong,
ctx: *const qadic_ctx_struct,
);
pub fn _qadic_teichmuller(
rop: *mut fmpz,
op: *const fmpz,
len: slong,
a: *const fmpz,
j: *const slong,
lena: slong,
p: *const fmpz,
N: slong,
);
pub fn qadic_teichmuller(
rop: *mut padic_poly_struct,
op: *const padic_poly_struct,
ctx: *const qadic_ctx_struct,
);
pub fn _qadic_trace(
rop: *mut fmpz,
op: *const fmpz,
len: slong,
a: *const fmpz,
j: *const slong,
lena: slong,
pN: *const fmpz,
);
pub fn qadic_trace(
rop: *mut padic_struct,
op: *const padic_poly_struct,
ctx: *const qadic_ctx_struct,
);
pub fn _qadic_norm_resultant(
rop: *mut fmpz,
op: *const fmpz,
len: slong,
a: *const fmpz,
j: *const slong,
lena: slong,
p: *const fmpz,
N: slong,
);
pub fn _qadic_norm_analytic(
rop: *mut fmpz,
y: *const fmpz,
v: slong,
len: slong,
a: *const fmpz,
j: *const slong,
lena: slong,
p: *const fmpz,
N: slong,
);
pub fn _qadic_norm(
rop: *mut fmpz,
op: *const fmpz,
len: slong,
a: *const fmpz,
j: *const slong,
lena: slong,
p: *const fmpz,
N: slong,
);
pub fn qadic_norm(
rop: *mut padic_struct,
op: *const padic_poly_struct,
ctx: *const qadic_ctx_struct,
);
pub fn qadic_norm_analytic(
rop: *mut padic_struct,
op: *const padic_poly_struct,
ctx: *const qadic_ctx_struct,
);
pub fn qadic_norm_resultant(
rop: *mut padic_struct,
op: *const padic_poly_struct,
ctx: *const qadic_ctx_struct,
);
pub fn qadic_sqrt(
rop: *mut padic_poly_struct,
op: *const padic_poly_struct,
ctx: *const qadic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn _qadic_char2_sqrt_precomp_init(
ctx: *const qadic_ctx_struct,
) -> *mut qadic2_sqrt_precomp;
pub fn _qadic_char2_sqrt_with_precomp(
rop: *mut padic_poly_struct,
op: *const padic_poly_struct,
ctx: *const qadic_ctx_struct,
data: *const qadic2_sqrt_precomp,
) -> ::std::os::raw::c_int;
pub fn _qadic_char2_sqrt_precomp_clear(data: *mut qadic2_sqrt_precomp);
pub fn qadic_fprint_pretty(
file: *mut FILE,
op: *const padic_poly_struct,
ctx: *const qadic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn qadic_print_pretty(
op: *const padic_poly_struct,
ctx: *const qadic_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn qadic_debug(op: *const padic_poly_struct) -> ::std::os::raw::c_int;
}
/* qfb.h */
#[repr(C)]
pub struct qfb {
pub a: fmpz_t,
pub b: fmpz_t,
pub c: fmpz_t,
}
impl Default for qfb {
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 qfb_t = [qfb; 1usize];
#[repr(C)]
pub struct qfb_hash_t {
pub q: qfb_t,
pub q2: qfb_t,
pub iter: slong,
}
impl Default for qfb_hash_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()
}
}
}
unsafe extern "C" {
pub fn qfb_init(q: *mut qfb);
pub fn qfb_clear(q: *mut qfb);
pub fn qfb_equal(f: *mut qfb, g: *mut qfb) -> ::std::os::raw::c_int;
pub fn qfb_set(f: *mut qfb, g: *mut qfb);
pub fn qfb_discriminant(D: *mut fmpz, f: *mut qfb);
pub fn qfb_print(q: *mut qfb);
pub fn qfb_array_clear(forms: *mut *mut qfb, num: slong);
pub fn qfb_hash_init(depth: slong) -> *mut qfb_hash_t;
pub fn qfb_hash_clear(qhash: *mut qfb_hash_t, depth: slong);
pub fn qfb_hash_insert(
qhash: *mut qfb_hash_t,
q: *mut qfb,
q2: *mut qfb,
iter: slong,
depth: slong,
);
pub fn qfb_hash_find(qhash: *mut qfb_hash_t, q: *mut qfb, depth: slong) -> slong;
pub fn qfb_reduce(r: *mut qfb, f: *mut qfb, D: *mut fmpz);
pub fn qfb_is_reduced(r: *mut qfb) -> ::std::os::raw::c_int;
pub fn qfb_reduced_forms(forms: *mut *mut qfb, d: slong) -> slong;
pub fn qfb_reduced_forms_large(forms: *mut *mut qfb, d: slong) -> slong;
pub fn qfb_nucomp(
r: *mut qfb,
f: *const qfb,
g: *const qfb,
D: *mut fmpz,
L: *mut fmpz,
);
pub fn qfb_nudupl(r: *mut qfb, f: *const qfb, D: *mut fmpz, L: *mut fmpz);
pub fn qfb_pow_ui(r: *mut qfb, f: *mut qfb, D: *mut fmpz, exp: ulong);
pub fn qfb_pow(r: *mut qfb, f: *mut qfb, D: *mut fmpz, exp: *mut fmpz);
pub fn qfb_pow_with_root(
r: *mut qfb,
f: *mut qfb,
D: *mut fmpz,
e: *mut fmpz,
L: *mut fmpz,
);
pub fn qfb_inverse(r: *mut qfb, f: *mut qfb);
pub fn qfb_is_principal_form(f: *mut qfb, D: *mut fmpz) -> ::std::os::raw::c_int;
pub fn qfb_principal_form(f: *mut qfb, D: *mut fmpz);
pub fn qfb_is_primitive(f: *mut qfb) -> ::std::os::raw::c_int;
pub fn qfb_prime_form(r: *mut qfb, D: *mut fmpz, p: *mut fmpz);
pub fn qfb_exponent_element(
exponent: *mut fmpz,
f: *mut qfb,
n: *mut fmpz,
B1: ulong,
B2_sqrt: ulong,
) -> ::std::os::raw::c_int;
pub fn qfb_exponent(
exponent: *mut fmpz,
n: *mut fmpz,
B1: ulong,
B2_sqrt: ulong,
c: slong,
) -> ::std::os::raw::c_int;
pub fn qfb_exponent_grh(
exponent: *mut fmpz,
n: *mut fmpz,
B1: ulong,
B2_sqrt: ulong,
) -> ::std::os::raw::c_int;
}
/* qqbar.h */
#[repr(C)]
pub struct qqbar_struct {
pub poly: fmpz_poly_struct,
pub enclosure: acb_struct,
}
impl Default for qqbar_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 qqbar_t = [qqbar_struct; 1usize];
pub type qqbar_ptr = *mut qqbar_struct;
pub type qqbar_srcptr = *const qqbar_struct;
unsafe extern "C" {
pub fn qqbar_init(res: *mut qqbar_struct);
pub fn qqbar_clear(res: *mut qqbar_struct);
pub fn _qqbar_vec_init(len: slong) -> qqbar_ptr;
pub fn _qqbar_vec_clear(vec: qqbar_ptr, len: slong);
pub fn qqbar_swap(x: *mut qqbar_struct, y: *mut qqbar_struct);
pub fn qqbar_set(res: *mut qqbar_struct, x: *const qqbar_struct);
pub fn qqbar_set_si(res: *mut qqbar_struct, x: slong);
pub fn qqbar_set_ui(res: *mut qqbar_struct, x: ulong);
pub fn qqbar_set_fmpz(res: *mut qqbar_struct, x: *const fmpz);
pub fn qqbar_set_fmpq(res: *mut qqbar_struct, x: *const fmpq);
pub fn qqbar_set_re_im(
res: *mut qqbar_struct,
x: *const qqbar_struct,
y: *const qqbar_struct,
);
pub fn qqbar_set_d(res: *mut qqbar_struct, x: f64) -> ::std::os::raw::c_int;
pub fn qqbar_set_re_im_d(
res: *mut qqbar_struct,
x: f64,
y: f64,
) -> ::std::os::raw::c_int;
pub fn qqbar_degree(x: *const qqbar_struct) -> slong;
pub fn qqbar_is_rational(x: *const qqbar_struct) -> ::std::os::raw::c_int;
pub fn qqbar_is_integer(x: *const qqbar_struct) -> ::std::os::raw::c_int;
pub fn qqbar_is_algebraic_integer(x: *const qqbar_struct) -> ::std::os::raw::c_int;
pub fn qqbar_is_zero(x: *const qqbar_struct) -> ::std::os::raw::c_int;
pub fn qqbar_is_one(x: *const qqbar_struct) -> ::std::os::raw::c_int;
pub fn qqbar_is_neg_one(x: *const qqbar_struct) -> ::std::os::raw::c_int;
pub fn qqbar_is_i(x: *const qqbar_struct) -> ::std::os::raw::c_int;
pub fn qqbar_is_neg_i(x: *const qqbar_struct) -> ::std::os::raw::c_int;
pub fn qqbar_sgn_re(x: *const qqbar_struct) -> ::std::os::raw::c_int;
pub fn qqbar_sgn_im(x: *const qqbar_struct) -> ::std::os::raw::c_int;
pub fn qqbar_is_real(x: *const qqbar_struct) -> ::std::os::raw::c_int;
pub fn qqbar_height_bits(x: *const qqbar_struct) -> slong;
pub fn qqbar_height(res: *mut fmpz, x: *const qqbar_struct);
pub fn qqbar_within_limits(
x: *const qqbar_struct,
deg_limit: slong,
bits_limit: slong,
) -> ::std::os::raw::c_int;
pub fn qqbar_binop_within_limits(
x: *const qqbar_struct,
y: *const qqbar_struct,
deg_limit: slong,
bits_limit: slong,
) -> ::std::os::raw::c_int;
pub fn _qqbar_get_fmpq(num: *mut fmpz, den: *mut fmpz, x: *const qqbar_struct);
pub fn qqbar_get_fmpq(res: *mut fmpq, x: *const qqbar_struct);
pub fn qqbar_get_fmpz(res: *mut fmpz, x: *const qqbar_struct);
pub fn qqbar_zero(res: *mut qqbar_struct);
pub fn qqbar_one(res: *mut qqbar_struct);
pub fn qqbar_i(res: *mut qqbar_struct);
pub fn qqbar_phi(res: *mut qqbar_struct);
pub fn qqbar_randtest(
res: *mut qqbar_struct,
state: *mut flint_rand_struct,
deg: slong,
bits: slong,
);
pub fn qqbar_randtest_real(
res: *mut qqbar_struct,
state: *mut flint_rand_struct,
deg: slong,
bits: slong,
);
pub fn qqbar_randtest_nonreal(
res: *mut qqbar_struct,
state: *mut flint_rand_struct,
deg: slong,
bits: slong,
);
pub fn qqbar_print(x: *const qqbar_struct);
pub fn qqbar_printn(x: *const qqbar_struct, n: slong);
pub fn qqbar_printnd(x: *const qqbar_struct, n: slong);
pub fn qqbar_get_str_nd(
x: *const qqbar_struct,
n: slong,
) -> *mut ::std::os::raw::c_char;
pub fn qqbar_equal(
x: *const qqbar_struct,
y: *const qqbar_struct,
) -> ::std::os::raw::c_int;
pub fn qqbar_equal_fmpq_poly_val(
x: *const qqbar_struct,
f: *const fmpq_poly_struct,
y: *const qqbar_struct,
) -> ::std::os::raw::c_int;
pub fn qqbar_cmp_re(
x: *const qqbar_struct,
y: *const qqbar_struct,
) -> ::std::os::raw::c_int;
pub fn qqbar_cmp_im(
x: *const qqbar_struct,
y: *const qqbar_struct,
) -> ::std::os::raw::c_int;
pub fn qqbar_cmpabs_re(
x: *const qqbar_struct,
y: *const qqbar_struct,
) -> ::std::os::raw::c_int;
pub fn qqbar_cmpabs_im(
x: *const qqbar_struct,
y: *const qqbar_struct,
) -> ::std::os::raw::c_int;
pub fn qqbar_cmpabs(
x: *const qqbar_struct,
y: *const qqbar_struct,
) -> ::std::os::raw::c_int;
pub fn qqbar_cmp_root_order(
x: *const qqbar_struct,
y: *const qqbar_struct,
) -> ::std::os::raw::c_int;
pub fn qqbar_hash(x: *const qqbar_struct) -> ulong;
pub fn qqbar_conj(res: *mut qqbar_struct, x: *const qqbar_struct);
pub fn qqbar_re(res: *mut qqbar_struct, x: *const qqbar_struct);
pub fn qqbar_im(res: *mut qqbar_struct, x: *const qqbar_struct);
pub fn qqbar_re_im(
res1: *mut qqbar_struct,
res2: *mut qqbar_struct,
x: *const qqbar_struct,
);
pub fn qqbar_abs(res: *mut qqbar_struct, x: *const qqbar_struct);
pub fn qqbar_abs2(res: *mut qqbar_struct, x: *const qqbar_struct);
pub fn qqbar_sgn(res: *mut qqbar_struct, x: *const qqbar_struct);
pub fn qqbar_csgn(x: *const qqbar_struct) -> ::std::os::raw::c_int;
pub fn qqbar_floor(res: *mut fmpz, x: *const qqbar_struct);
pub fn qqbar_ceil(res: *mut fmpz, x: *const qqbar_struct);
pub fn qqbar_numerator(res: *mut qqbar_struct, y: *const qqbar_struct);
pub fn qqbar_denominator(res: *mut fmpz, y: *const qqbar_struct);
pub fn qqbar_neg(res: *mut qqbar_struct, x: *const qqbar_struct);
pub fn qqbar_add(
res: *mut qqbar_struct,
x: *const qqbar_struct,
y: *const qqbar_struct,
);
pub fn qqbar_add_fmpq(
res: *mut qqbar_struct,
x: *const qqbar_struct,
y: *const fmpq,
);
pub fn qqbar_add_fmpz(
res: *mut qqbar_struct,
x: *const qqbar_struct,
y: *const fmpz,
);
pub fn qqbar_add_ui(res: *mut qqbar_struct, x: *const qqbar_struct, y: ulong);
pub fn qqbar_add_si(res: *mut qqbar_struct, x: *const qqbar_struct, y: slong);
pub fn qqbar_sub(
res: *mut qqbar_struct,
x: *const qqbar_struct,
y: *const qqbar_struct,
);
pub fn qqbar_sub_fmpq(
res: *mut qqbar_struct,
x: *const qqbar_struct,
y: *const fmpq,
);
pub fn qqbar_sub_fmpz(
res: *mut qqbar_struct,
x: *const qqbar_struct,
y: *const fmpz,
);
pub fn qqbar_sub_ui(res: *mut qqbar_struct, x: *const qqbar_struct, y: ulong);
pub fn qqbar_sub_si(res: *mut qqbar_struct, x: *const qqbar_struct, y: slong);
pub fn qqbar_fmpq_sub(
res: *mut qqbar_struct,
x: *const fmpq,
y: *const qqbar_struct,
);
pub fn qqbar_fmpz_sub(
res: *mut qqbar_struct,
x: *const fmpz,
y: *const qqbar_struct,
);
pub fn qqbar_ui_sub(res: *mut qqbar_struct, x: ulong, y: *const qqbar_struct);
pub fn qqbar_si_sub(res: *mut qqbar_struct, x: slong, y: *const qqbar_struct);
pub fn qqbar_mul(
res: *mut qqbar_struct,
x: *const qqbar_struct,
y: *const qqbar_struct,
);
pub fn qqbar_mul_fmpq(
res: *mut qqbar_struct,
x: *const qqbar_struct,
y: *const fmpq,
);
pub fn qqbar_mul_fmpz(
res: *mut qqbar_struct,
x: *const qqbar_struct,
y: *const fmpz,
);
pub fn qqbar_mul_ui(res: *mut qqbar_struct, x: *const qqbar_struct, y: ulong);
pub fn qqbar_mul_si(res: *mut qqbar_struct, x: *const qqbar_struct, y: slong);
pub fn qqbar_div(
res: *mut qqbar_struct,
x: *const qqbar_struct,
y: *const qqbar_struct,
);
pub fn qqbar_div_fmpq(
res: *mut qqbar_struct,
x: *const qqbar_struct,
y: *const fmpq,
);
pub fn qqbar_div_fmpz(
res: *mut qqbar_struct,
x: *const qqbar_struct,
y: *const fmpz,
);
pub fn qqbar_div_ui(res: *mut qqbar_struct, x: *const qqbar_struct, y: ulong);
pub fn qqbar_div_si(res: *mut qqbar_struct, x: *const qqbar_struct, y: slong);
pub fn qqbar_fmpq_div(
res: *mut qqbar_struct,
x: *const fmpq,
y: *const qqbar_struct,
);
pub fn qqbar_fmpz_div(
res: *mut qqbar_struct,
x: *const fmpz,
y: *const qqbar_struct,
);
pub fn qqbar_ui_div(res: *mut qqbar_struct, x: ulong, y: *const qqbar_struct);
pub fn qqbar_si_div(res: *mut qqbar_struct, x: slong, y: *const qqbar_struct);
pub fn qqbar_sqr(res: *mut qqbar_struct, x: *const qqbar_struct);
pub fn qqbar_inv(res: *mut qqbar_struct, x: *const qqbar_struct);
pub fn qqbar_mul_2exp_si(res: *mut qqbar_struct, x: *const qqbar_struct, exp: slong);
pub fn qqbar_pow_ui(res: *mut qqbar_struct, x: *const qqbar_struct, e: ulong);
pub fn qqbar_pow_si(res: *mut qqbar_struct, x: *const qqbar_struct, n: slong);
pub fn qqbar_pow_fmpz(
res: *mut qqbar_struct,
x: *const qqbar_struct,
n: *const fmpz,
);
pub fn qqbar_pow_fmpq(
res: *mut qqbar_struct,
x: *const qqbar_struct,
n: *const fmpq,
);
pub fn qqbar_pow(
res: *mut qqbar_struct,
x: *const qqbar_struct,
e: *const qqbar_struct,
) -> ::std::os::raw::c_int;
pub fn _qqbar_fast_detect_simple_principal_surd(
x: *const qqbar_struct,
) -> ::std::os::raw::c_int;
pub fn qqbar_root_ui(res: *mut qqbar_struct, x: *const qqbar_struct, n: ulong);
pub fn qqbar_sqrt(res: *mut qqbar_struct, x: *const qqbar_struct);
pub fn qqbar_sqrt_ui(res: *mut qqbar_struct, x: ulong);
pub fn qqbar_rsqrt(res: *mut qqbar_struct, x: *const qqbar_struct);
pub fn qqbar_fmpq_root_ui(res: *mut qqbar_struct, x: *const fmpq, b: ulong);
pub fn qqbar_fmpq_pow_si_ui(
res: *mut qqbar_struct,
x: *const fmpq,
a: slong,
b: ulong,
);
pub fn qqbar_cache_enclosure(res: *mut qqbar_struct, prec: slong);
pub fn qqbar_get_arb(res: *mut arb_struct, x: *const qqbar_struct, prec: slong);
pub fn qqbar_get_acb(res: *mut acb_struct, x: *const qqbar_struct, prec: slong);
pub fn qqbar_get_arb_re(res: *mut arb_struct, x: *const qqbar_struct, prec: slong);
pub fn qqbar_get_arb_im(res: *mut arb_struct, x: *const qqbar_struct, prec: slong);
pub fn qqbar_conjugates(res: qqbar_ptr, x: *const qqbar_struct);
pub fn _qqbar_evaluate_fmpq_poly(
res: *mut qqbar_struct,
poly: *const fmpz,
den: *const fmpz,
len: slong,
x: *const qqbar_struct,
);
pub fn qqbar_evaluate_fmpq_poly(
res: *mut qqbar_struct,
poly: *const fmpq_poly_struct,
x: *const qqbar_struct,
);
pub fn _qqbar_evaluate_fmpz_poly(
res: *mut qqbar_struct,
poly: *const fmpz,
len: slong,
x: *const qqbar_struct,
);
pub fn qqbar_evaluate_fmpz_poly(
res: *mut qqbar_struct,
poly: *const fmpz_poly_struct,
x: *const qqbar_struct,
);
pub fn qqbar_evaluate_fmpz_mpoly_iter(
res: *mut qqbar_struct,
f: *const fmpz_mpoly_struct,
x: qqbar_srcptr,
deg_limit: slong,
bits_limit: slong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn qqbar_evaluate_fmpz_mpoly_horner(
res: *mut qqbar_struct,
f: *const fmpz_mpoly_struct,
x: qqbar_srcptr,
deg_limit: slong,
bits_limit: slong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn qqbar_evaluate_fmpz_mpoly(
res: *mut qqbar_struct,
f: *const fmpz_mpoly_struct,
x: qqbar_srcptr,
deg_limit: slong,
bits_limit: slong,
ctx: *const fmpz_mpoly_ctx_struct,
) -> ::std::os::raw::c_int;
pub fn qqbar_roots_fmpz_poly(
res: qqbar_ptr,
poly: *const fmpz_poly_struct,
flags: ::std::os::raw::c_int,
);
pub fn qqbar_roots_fmpq_poly(
res: qqbar_ptr,
poly: *const fmpq_poly_struct,
flags: ::std::os::raw::c_int,
);
pub fn _qqbar_roots_poly_squarefree(
roots: qqbar_ptr,
coeffs: qqbar_srcptr,
len: slong,
deg_limit: slong,
bits_limit: slong,
) -> ::std::os::raw::c_int;
pub fn qqbar_eigenvalues_fmpz_mat(
res: qqbar_ptr,
mat: *const fmpz_mat_struct,
flags: ::std::os::raw::c_int,
);
pub fn qqbar_eigenvalues_fmpq_mat(
res: qqbar_ptr,
mat: *const fmpq_mat_struct,
flags: ::std::os::raw::c_int,
);
pub fn qqbar_root_of_unity(res: *mut qqbar_struct, p: slong, q: ulong);
pub fn qqbar_is_root_of_unity(
p: *mut slong,
q: *mut ulong,
x: *const qqbar_struct,
) -> ::std::os::raw::c_int;
pub fn qqbar_exp_pi_i(res: *mut qqbar_struct, p: slong, q: ulong);
pub fn qqbar_cos_pi(res: *mut qqbar_struct, p: slong, q: ulong);
pub fn qqbar_sin_pi(res: *mut qqbar_struct, p: slong, q: ulong);
pub fn qqbar_tan_pi(
res: *mut qqbar_struct,
p: slong,
q: ulong,
) -> ::std::os::raw::c_int;
pub fn qqbar_cot_pi(
res: *mut qqbar_struct,
p: slong,
q: ulong,
) -> ::std::os::raw::c_int;
pub fn qqbar_sec_pi(
res: *mut qqbar_struct,
p: slong,
q: ulong,
) -> ::std::os::raw::c_int;
pub fn qqbar_csc_pi(
res: *mut qqbar_struct,
p: slong,
q: ulong,
) -> ::std::os::raw::c_int;
pub fn qqbar_log_pi_i(
p: *mut slong,
q: *mut ulong,
x: *const qqbar_struct,
) -> ::std::os::raw::c_int;
pub fn qqbar_atan_pi(
p: *mut slong,
q: *mut ulong,
x: *const qqbar_struct,
) -> ::std::os::raw::c_int;
pub fn qqbar_asin_pi(
p: *mut slong,
q: *mut ulong,
x: *const qqbar_struct,
) -> ::std::os::raw::c_int;
pub fn qqbar_acos_pi(
p: *mut slong,
q: *mut ulong,
x: *const qqbar_struct,
) -> ::std::os::raw::c_int;
pub fn qqbar_acot_pi(
p: *mut slong,
q: *mut ulong,
x: *const qqbar_struct,
) -> ::std::os::raw::c_int;
pub fn qqbar_asec_pi(
p: *mut slong,
q: *mut ulong,
x: *const qqbar_struct,
) -> ::std::os::raw::c_int;
pub fn qqbar_acsc_pi(
p: *mut slong,
q: *mut ulong,
x: *const qqbar_struct,
) -> ::std::os::raw::c_int;
pub fn qqbar_guess(
res: *mut qqbar_struct,
z: *const acb_struct,
max_deg: slong,
max_bits: slong,
flags: ::std::os::raw::c_int,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn qqbar_express_in_field(
res: *mut fmpq_poly_struct,
alpha: *const qqbar_struct,
x: *const qqbar_struct,
max_bits: slong,
flags: ::std::os::raw::c_int,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn qqbar_get_quadratic(
res_a: *mut fmpz,
res_b: *mut fmpz,
res_c: *mut fmpz,
res_q: *mut fmpz,
x: *const qqbar_struct,
factoring: ::std::os::raw::c_int,
);
pub fn qqbar_scalar_op(
res: *mut qqbar_struct,
x: *const qqbar_struct,
a: *const fmpz,
b: *const fmpz,
c: *const fmpz,
);
pub fn qqbar_fmpz_poly_composed_op(
res: *mut fmpz_poly_struct,
A: *const fmpz_poly_struct,
B: *const fmpz_poly_struct,
op: ::std::os::raw::c_int,
);
pub fn qqbar_binary_op(
res: *mut qqbar_struct,
x: *const qqbar_struct,
y: *const qqbar_struct,
op: ::std::os::raw::c_int,
);
pub fn _qqbar_validate_uniqueness(
res: *mut acb_struct,
poly: *const fmpz_poly_struct,
z: *const acb_struct,
max_prec: slong,
) -> ::std::os::raw::c_int;
pub fn _qqbar_validate_existence_uniqueness(
res: *mut acb_struct,
poly: *const fmpz_poly_struct,
z: *const acb_struct,
prec: slong,
) -> ::std::os::raw::c_int;
pub fn _qqbar_enclosure_raw(
res: *mut acb_struct,
poly: *const fmpz_poly_struct,
zin: *const acb_struct,
prec: slong,
);
pub fn qqbar_enclosure_raw(
res: *mut acb_struct,
x: *const qqbar_struct,
prec: slong,
);
pub fn _qqbar_acb_lindep(
rel: *mut fmpz,
vec: acb_srcptr,
len: slong,
check: ::std::os::raw::c_int,
prec: slong,
) -> ::std::os::raw::c_int;
}
/* qsieve.h */
#[repr(C)]
pub struct prime_t {
pub pinv: ulong,
pub pinv2: ulong,
pub p: ::std::os::raw::c_int,
pub size: ::std::os::raw::c_char,
}
impl Default for prime_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 fac_t {
pub ind: slong,
pub exp: slong,
}
impl Default for fac_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 la_col_t {
pub data: *mut slong,
pub weight: slong,
pub orig: slong,
}
impl Default for la_col_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 hash_t {
pub prime: ulong,
pub next: ulong,
pub count: ulong,
}
impl Default for hash_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 relation_t {
pub lp: ulong,
pub num_factors: slong,
pub small_primes: slong,
pub small: *mut slong,
pub factor: *mut fac_t,
pub Y: fmpz_t,
}
impl Default for relation_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 qs_poly_s {
pub B: fmpz_t,
pub soln1: *mut ::std::os::raw::c_int,
pub soln2: *mut ::std::os::raw::c_int,
pub posn1: *mut ::std::os::raw::c_int,
pub posn2: *mut ::std::os::raw::c_int,
pub small: *mut slong,
pub factor: *mut fac_t,
pub num_factors: slong,
}
impl Default for qs_poly_s {
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 qs_poly_t = [qs_poly_s; 1usize];
#[repr(C)]
pub struct qs_s {
pub index_j: slong,
pub mutex: pthread_mutex_t,
pub handles: *mut thread_pool_handle,
pub num_handles: slong,
pub n: fmpz_t,
pub bits: flint_bitcnt_t,
pub ks_primes: ulong,
pub fb_primes: slong,
pub k: ulong,
pub kn: fmpz_t,
pub num_primes: slong,
pub factor_base: *mut prime_t,
pub sqrts: *mut ::std::os::raw::c_int,
pub small_primes: slong,
pub second_prime: slong,
pub sieve_size: slong,
pub sieve_bits: ::std::os::raw::c_uchar,
pub sieve_fill: ::std::os::raw::c_uchar,
///POLYNOMIAL DATA
pub A: fmpz_t,
pub B: fmpz_t,
pub A_ind: *mut ulong,
pub A_divp: *mut fmpz_t,
pub B0_terms: *mut ulong,
pub B_terms: *mut fmpz_t,
pub A_inv: *mut ulong,
pub A_inv2B: *mut *mut ulong,
pub soln1: *mut ::std::os::raw::c_int,
pub soln2: *mut ::std::os::raw::c_int,
pub target_A: fmpz_t,
pub upp_bound: fmpz_t,
pub low_bound: fmpz_t,
pub s: slong,
pub low: slong,
pub high: slong,
pub span: slong,
pub h: slong,
pub m: slong,
pub A_ind_diff: slong,
pub curr_subset: *mut ulong,
pub first_subset: *mut ulong,
pub j: ulong,
pub poly: *mut qs_poly_s,
///RELATION DATA
pub siqs: *mut FLINT_FILE,
pub fname: *mut ::std::os::raw::c_char,
pub full_relation: slong,
pub num_cycles: slong,
pub vertices: slong,
pub components: slong,
pub edges: slong,
pub table_size: slong,
pub table: *mut hash_t,
pub hash_table: *mut ulong,
pub extra_rels: slong,
pub max_factors: slong,
pub Y_arr: *mut fmpz,
pub curr_rel: *mut slong,
pub relation: *mut slong,
pub buffer_size: slong,
pub num_relations: slong,
pub small_factor: ulong,
///LINEAR ALGEBRA DATA
pub matrix: *mut la_col_t,
pub qsort_arr: *mut *mut la_col_t,
pub columns: slong,
///SQUARE ROOT DATA
pub prime_count: *mut slong,
}
impl Default for qs_s {
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 qs_t = [qs_s; 1usize];
unsafe extern "C" {
pub fn qsieve_init(qs_inf: *mut qs_s, n: *const fmpz);
pub fn qsieve_init_with_tune(
qs_inf: *mut qs_s,
n: *const fmpz,
ks_primes: ulong,
fb_primes: slong,
small_primes: slong,
sieve_size: slong,
sieve_bits: ulong,
);
pub fn qsieve_knuth_schroeppel(qs_inf: *mut qs_s) -> ulong;
pub fn qsieve_clear(qs_inf: *mut qs_s);
pub fn qsieve_factor(factors: *mut fmpz_factor_struct, n: *const fmpz);
pub fn qsieve_factor_with_tune(
factors: *mut fmpz_factor_struct,
n: *const fmpz,
ks_primes: ulong,
fb_primes: slong,
small_primes: slong,
sieve_size: slong,
sieve_bits: ulong,
);
pub fn compute_factor_base(
small_factor: *mut ulong,
qs_inf: *mut qs_s,
num_primes: slong,
) -> *mut prime_t;
pub fn qsieve_primes_init(qs_inf: *mut qs_s) -> ulong;
pub fn qsieve_primes_increment(qs_inf: *mut qs_s, delta: ulong) -> ulong;
pub fn qsieve_poly_init(qs_inf: *mut qs_s) -> ulong;
pub fn qsieve_init_A(qs_inf: *mut qs_s) -> ::std::os::raw::c_int;
pub fn qsieve_reinit_A(qs_inf: *mut qs_s);
pub fn qsieve_next_A(qs_inf: *mut qs_s) -> ::std::os::raw::c_int;
pub fn qsieve_init_poly_first(qs_inf: *mut qs_s);
pub fn qsieve_init_poly_next(qs_inf: *mut qs_s, i: slong);
pub fn qsieve_compute_C(C: *mut fmpz, qs_inf: *mut qs_s, poly: *mut qs_poly_s);
pub fn qsieve_poly_copy(poly: *mut qs_poly_s, qs_inf: *mut qs_s);
pub fn qsieve_poly_clear(qs_inf: *mut qs_s);
pub fn qsieve_do_sieving(
qs_inf: *mut qs_s,
sieve: *mut ::std::os::raw::c_uchar,
poly: *mut qs_poly_s,
);
pub fn qsieve_do_sieving2(
qs_inf: *mut qs_s,
sieve: *mut ::std::os::raw::c_uchar,
poly: *mut qs_poly_s,
);
pub fn qsieve_evaluate_candidate(
qs_inf: *mut qs_s,
i: ulong,
sieve: *mut ::std::os::raw::c_uchar,
poly: *mut qs_poly_s,
) -> slong;
pub fn qsieve_evaluate_sieve(
qs_inf: *mut qs_s,
sieve: *mut ::std::os::raw::c_uchar,
poly: *mut qs_poly_s,
) -> slong;
pub fn qsieve_collect_relations(
qs_inf: *mut qs_s,
sieve: *mut ::std::os::raw::c_uchar,
) -> slong;
pub fn qsieve_linalg_init(qs_inf: *mut qs_s);
pub fn qsieve_linalg_realloc(qs_inf: *mut qs_s);
pub fn qsieve_linalg_clear(qs_inf: *mut qs_s);
pub fn qsieve_relations_cmp(
a: *const ::std::os::raw::c_void,
b: *const ::std::os::raw::c_void,
) -> ::std::os::raw::c_int;
pub fn qsieve_merge_relations(qs_inf: *mut qs_s) -> slong;
pub fn qsieve_write_to_file(
qs_inf: *mut qs_s,
prime: ulong,
Y: *const fmpz,
poly: *const qs_poly_s,
);
pub fn qsieve_get_table_entry(qs_inf: *mut qs_s, prime: ulong) -> *mut hash_t;
pub fn qsieve_add_to_hashtable(qs_inf: *mut qs_s, prime: ulong);
pub fn qsieve_parse_relation(qs_inf: *mut qs_s) -> relation_t;
pub fn qsieve_merge_relation(
qs_inf: *mut qs_s,
a: relation_t,
b: relation_t,
) -> relation_t;
pub fn qsieve_compare_relation(
a: *const ::std::os::raw::c_void,
b: *const ::std::os::raw::c_void,
) -> ::std::os::raw::c_int;
pub fn qsieve_remove_duplicates(
rel_list: *mut relation_t,
num_relations: slong,
) -> ::std::os::raw::c_int;
pub fn qsieve_insert_relation(
qs_inf: *mut qs_s,
rel_list: *mut relation_t,
num_relations: slong,
);
pub fn qsieve_process_relation(qs_inf: *mut qs_s) -> ::std::os::raw::c_int;
pub fn get_null_entry(nullrows: *mut u64, i: slong, l: slong) -> u64;
pub fn reduce_matrix(
qs_inf: *mut qs_s,
nrows: *mut slong,
ncols: *mut slong,
cols: *mut la_col_t,
);
pub fn block_lanczos(
state: *mut flint_rand_struct,
nrows: slong,
dense_rows: slong,
ncols: slong,
B: *mut la_col_t,
) -> *mut u64;
pub fn qsieve_square_root(
X: *mut fmpz,
Y: *mut fmpz,
qs_inf: *mut qs_s,
nullrows: *mut u64,
ncols: slong,
l: slong,
N: *mut fmpz,
);
}
/* radix.h */
#[repr(C)]
pub struct n_div_precomp_struct {
pub m: ulong,
pub e: ::std::os::raw::c_uint,
pub c: ::std::os::raw::c_uint,
}
impl Default for n_div_precomp_struct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type n_div_precomp_t = [n_div_precomp_struct; 1usize];
#[repr(C)]
pub struct n_pair_struct {
pub a: ulong,
pub b: ulong,
}
impl Default for n_pair_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()
}
}
}
#[repr(C)]
pub struct radix_struct {
pub b: nmod_t,
pub exp: ::std::os::raw::c_uint,
pub B: nmod_t,
pub bpow: *mut ulong,
pub bpow_div: *mut n_div_precomp_struct,
pub bits_to_digit_size: [::std::os::raw::c_uchar; 64usize],
pub bval: ::std::os::raw::c_uint,
pub bpow_oddinv: *mut n_pair_struct,
pub val_func: ::std::option::Option<
unsafe extern "C" fn(arg1: ulong, arg2: *const ::std::os::raw::c_void) -> ulong,
>,
pub trunc_limbs: slong,
pub trunc_digits: slong,
}
impl Default for 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 radix_t = [radix_struct; 1usize];
#[repr(C)]
pub struct radix_powers_struct {
pub len: slong,
pub exps: [ulong; 64usize],
pub pows: [nn_ptr; 64usize],
pub sizes: [slong; 64usize],
pub val_limbs: [slong; 64usize],
pub buf: nn_ptr,
}
impl Default for radix_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 radix_powers_t = [radix_powers_struct; 1usize];
#[repr(C)]
pub struct radix_integer_struct {
pub d: nn_ptr,
pub alloc: slong,
pub size: slong,
}
impl Default for radix_integer_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 radix_integer_t = [radix_integer_struct; 1usize];
unsafe extern "C" {
pub fn radix_init(radix: *mut radix_struct, b: ulong, exp: ::std::os::raw::c_uint);
pub fn radix_clear(radix: *mut radix_struct);
pub fn radix_init_randtest(radix: *mut radix_struct, state: *mut flint_rand_struct);
pub fn radix_init_randtest_prime(
radix: *mut radix_struct,
state: *mut flint_rand_struct,
);
pub fn radix_digit_radix(radix: *const radix_struct) -> ulong;
pub fn radix_limb_radix(radix: *const radix_struct) -> ulong;
pub fn radix_limb_exponent(radix: *const radix_struct) -> ulong;
pub fn _radix_size_digits_1(c: ulong, radix: *const radix_struct) -> ulong;
pub fn radix_size_digits_1(c: ulong, radix: *const radix_struct) -> ulong;
pub fn _radix_size_digits(
x: nn_srcptr,
n: slong,
radix: *const radix_struct,
) -> ulong;
pub fn radix_size_digits(
x: nn_srcptr,
n: slong,
radix: *const radix_struct,
) -> ulong;
pub fn _radix_valuation_digits_1(c: ulong, radix: *const radix_struct) -> ulong;
pub fn radix_rand_limbs(
res: nn_ptr,
state: *mut flint_rand_struct,
n: slong,
radix: *const radix_struct,
);
pub fn radix_rand_digits(
res: nn_ptr,
state: *mut flint_rand_struct,
n: slong,
radix: *const radix_struct,
);
pub fn radix_randtest_limbs(
res: nn_ptr,
state: *mut flint_rand_struct,
n: slong,
radix: *const radix_struct,
);
pub fn radix_randtest_digits(
res: nn_ptr,
state: *mut flint_rand_struct,
n: slong,
radix: *const radix_struct,
);
pub fn radix_neg(
res: nn_ptr,
a: nn_srcptr,
an: slong,
radix: *const radix_struct,
) -> ulong;
pub fn radix_add(
res: nn_ptr,
a: nn_srcptr,
an: slong,
b: nn_srcptr,
bn: slong,
radix: *const radix_struct,
) -> ulong;
pub fn radix_sub(
res: nn_ptr,
a: nn_srcptr,
an: slong,
b: nn_srcptr,
bn: slong,
radix: *const radix_struct,
) -> ulong;
pub fn radix_lshift_digits(
res: nn_ptr,
a: nn_srcptr,
n: slong,
e: ::std::os::raw::c_uint,
radix: *const radix_struct,
) -> ulong;
pub fn radix_rshift_digits(
res: nn_ptr,
a: nn_srcptr,
n: slong,
e: ::std::os::raw::c_uint,
radix: *const radix_struct,
) -> ulong;
pub fn radix_addlsh(
res: nn_ptr,
a: nn_srcptr,
an: slong,
b: nn_srcptr,
bn: slong,
sh: ::std::os::raw::c_uint,
radix: *const radix_struct,
) -> ulong;
pub fn radix_sublsh(
res: nn_ptr,
a: nn_srcptr,
an: slong,
b: nn_srcptr,
bn: slong,
sh: ::std::os::raw::c_uint,
radix: *const radix_struct,
) -> ulong;
pub fn radix_lshsub(
res: nn_ptr,
b: nn_srcptr,
bn: slong,
sh: ::std::os::raw::c_uint,
a: nn_srcptr,
an: slong,
radix: *const radix_struct,
) -> ulong;
pub fn radix_cmplsh(
a: nn_srcptr,
an: slong,
b: nn_srcptr,
bn: slong,
sh: ::std::os::raw::c_uint,
radix: *const radix_struct,
) -> ::std::os::raw::c_int;
pub fn radix_mul_1(
res: nn_ptr,
a: nn_srcptr,
n: slong,
c: ulong,
radix: *const radix_struct,
) -> ulong;
pub fn radix_mulmid_fft_small(
res: nn_ptr,
a: nn_srcptr,
an: slong,
b: nn_srcptr,
bn: slong,
lo: slong,
hi: slong,
radix: *const radix_struct,
);
pub fn radix_mulmid_classical(
res: nn_ptr,
a: nn_srcptr,
an: slong,
b: nn_srcptr,
bn: slong,
lo: slong,
hi: slong,
radix: *const radix_struct,
);
pub fn radix_mulmid_KS(
res: nn_ptr,
a: nn_srcptr,
an: slong,
b: nn_srcptr,
bn: slong,
lo: slong,
hi: slong,
radix: *const radix_struct,
);
pub fn radix_mulmid_naive(
res: nn_ptr,
a: nn_srcptr,
an: slong,
b: nn_srcptr,
bn: slong,
lo: slong,
hi: slong,
radix: *const radix_struct,
);
pub fn radix_mulmid(
res: nn_ptr,
a: nn_srcptr,
an: slong,
b: nn_srcptr,
bn: slong,
lo: slong,
hi: slong,
radix: *const radix_struct,
);
pub fn radix_mul(
res: nn_ptr,
a: nn_srcptr,
an: slong,
b: nn_srcptr,
bn: slong,
radix: *const radix_struct,
);
pub fn radix_sqr(res: nn_ptr, a: nn_srcptr, an: slong, radix: *const radix_struct);
pub fn radix_mul_two(
res: nn_ptr,
a: nn_srcptr,
an: slong,
radix: *const radix_struct,
) -> ulong;
pub fn _radix_mulhigh_known_low(
out: nn_ptr,
x: nn_srcptr,
xn: slong,
y: nn_srcptr,
yn: slong,
kl: nn_srcptr,
kl_len: slong,
klo: slong,
khi: slong,
scratch: nn_ptr,
radix: *const radix_struct,
);
pub fn radix_divrem_1(
res: nn_ptr,
a: nn_srcptr,
an: slong,
d: ulong,
radix: *const radix_struct,
) -> ulong;
pub fn radix_divexact_1(
res: nn_ptr,
a: nn_srcptr,
an: slong,
d: ulong,
radix: *const radix_struct,
);
pub fn radix_divrem_two(
res: nn_ptr,
a: nn_srcptr,
an: slong,
radix: *const radix_struct,
) -> ulong;
pub fn radix_inv_approx_basecase(
q: nn_ptr,
a: nn_srcptr,
an: slong,
n: slong,
radix: *const radix_struct,
);
pub fn radix_inv_approx(
q: nn_ptr,
a: nn_srcptr,
an: slong,
n: slong,
radix: *const radix_struct,
);
pub fn radix_div_approx_invmul(
Q: nn_ptr,
B: nn_srcptr,
Bn: slong,
A: nn_srcptr,
An: slong,
n: slong,
radix: *const radix_struct,
);
pub fn radix_div_approx(
Q: nn_ptr,
B: nn_srcptr,
Bn: slong,
A: nn_srcptr,
An: slong,
n: slong,
radix: *const radix_struct,
);
pub fn radix_divrem_preinv(
q: nn_ptr,
r: nn_ptr,
a: nn_srcptr,
an: slong,
b: nn_srcptr,
bn: slong,
binv: nn_srcptr,
binvn: slong,
radix: *const radix_struct,
);
pub fn radix_divrem_newton(
q: nn_ptr,
r: nn_ptr,
a: nn_srcptr,
an: slong,
b: nn_srcptr,
bn: slong,
radix: *const radix_struct,
);
pub fn radix_divrem_newton_karp_markstein(
Q: nn_ptr,
R: nn_ptr,
A: nn_srcptr,
An: slong,
B: nn_srcptr,
Bn: slong,
radix: *const radix_struct,
);
pub fn radix_divrem(
q: nn_ptr,
r: nn_ptr,
a: nn_srcptr,
an: slong,
b: nn_srcptr,
bn: slong,
radix: *const radix_struct,
);
pub fn radix_div(
q: nn_ptr,
a: nn_srcptr,
an: slong,
b: nn_srcptr,
bn: slong,
radix: *const radix_struct,
) -> ::std::os::raw::c_int;
pub fn radix_divexact(
q: nn_ptr,
a: nn_srcptr,
an: slong,
b: nn_srcptr,
bn: slong,
radix: *const radix_struct,
);
pub fn radix_cmp_bn_half(
x: nn_srcptr,
n: slong,
radix: *const radix_struct,
) -> ::std::os::raw::c_int;
pub fn radix_rsqrt_1_approx_basecase(
res: nn_ptr,
a: ulong,
n: slong,
radix: *const radix_struct,
);
pub fn radix_rsqrt_1_approx(
res: nn_ptr,
a: ulong,
n: slong,
radix: *const radix_struct,
);
pub fn radix_invmod_bn(
res: nn_ptr,
x: nn_srcptr,
xn: slong,
n: slong,
radix: *const radix_struct,
) -> ::std::os::raw::c_int;
pub fn radix_divmod_bn_1(
q: nn_ptr,
rem: nn_ptr,
a: nn_srcptr,
an: slong,
b: ulong,
n: slong,
radix: *const radix_struct,
) -> ::std::os::raw::c_int;
pub fn radix_divmod_bn_classical(
q: nn_ptr,
rem: nn_ptr,
a: nn_srcptr,
an: slong,
b: nn_srcptr,
bn: slong,
n: slong,
radix: *const radix_struct,
) -> ::std::os::raw::c_int;
pub fn radix_divmod_bn_karp_markstein(
q: nn_ptr,
rem: nn_ptr,
a: nn_srcptr,
an: slong,
b: nn_srcptr,
bn: slong,
n: slong,
radix: *const radix_struct,
) -> ::std::os::raw::c_int;
pub fn radix_divmod_bn(
q: nn_ptr,
rem: nn_ptr,
a: nn_srcptr,
an: slong,
b: nn_srcptr,
bn: slong,
n: slong,
radix: *const radix_struct,
) -> ::std::os::raw::c_int;
pub fn radix_rsqrtmod_bn(
res: nn_ptr,
x: nn_srcptr,
xn: slong,
n: slong,
radix: *const radix_struct,
) -> ::std::os::raw::c_int;
pub fn radix_sqrtmod_bn(
res: nn_ptr,
x: nn_srcptr,
xn: slong,
n: slong,
radix: *const radix_struct,
) -> ::std::os::raw::c_int;
pub fn radix_powers_clear(powers: *mut radix_powers_struct);
pub fn radix_get_str_decimal(
res: *mut ::std::os::raw::c_char,
x: nn_srcptr,
n: slong,
negative: ::std::os::raw::c_int,
radix: *const radix_struct,
) -> *mut ::std::os::raw::c_char;
pub fn radix_get_str_sum(
res: *mut ::std::os::raw::c_char,
x: nn_srcptr,
n: slong,
negative: ::std::os::raw::c_int,
ascending: ::std::os::raw::c_int,
radix: *const radix_struct,
) -> *mut ::std::os::raw::c_char;
pub fn gr_ctx_init_radix_integer(
ctx: *mut gr_ctx_struct,
b: ulong,
exp: ::std::os::raw::c_uint,
);
pub fn radix_integer_init(
res: *mut radix_integer_struct,
radix: *const radix_struct,
);
pub fn radix_integer_clear(
res: *mut radix_integer_struct,
radix: *const radix_struct,
);
pub fn radix_integer_fit_limbs(
res: *mut radix_integer_struct,
nlimbs: slong,
radix: *const radix_struct,
) -> nn_ptr;
pub fn radix_integer_zero(
res: *mut radix_integer_struct,
radix: *const radix_struct,
);
pub fn radix_integer_rand_limbs(
res: *mut radix_integer_struct,
state: *mut flint_rand_struct,
max_limbs: slong,
radix: *const radix_struct,
);
pub fn radix_integer_randtest_limbs(
res: *mut radix_integer_struct,
state: *mut flint_rand_struct,
max_limbs: slong,
radix: *const radix_struct,
);
pub fn radix_integer_one(res: *mut radix_integer_struct, radix: *const radix_struct);
pub fn radix_integer_neg_one(
res: *mut radix_integer_struct,
radix: *const radix_struct,
);
pub fn radix_integer_is_zero(
x: *const radix_integer_struct,
radix: *const radix_struct,
) -> ::std::os::raw::c_int;
pub fn radix_integer_is_one(
x: *const radix_integer_struct,
radix: *const radix_struct,
) -> ::std::os::raw::c_int;
pub fn radix_integer_is_neg_one(
x: *const radix_integer_struct,
radix: *const radix_struct,
) -> ::std::os::raw::c_int;
pub fn radix_integer_equal(
x: *const radix_integer_struct,
y: *const radix_integer_struct,
radix: *const radix_struct,
) -> ::std::os::raw::c_int;
pub fn radix_integer_cmp(
x: *const radix_integer_struct,
y: *const radix_integer_struct,
radix: *const radix_struct,
) -> ::std::os::raw::c_int;
pub fn radix_integer_cmpabs(
x: *const radix_integer_struct,
y: *const radix_integer_struct,
radix: *const radix_struct,
) -> ::std::os::raw::c_int;
pub fn radix_integer_set(
res: *mut radix_integer_struct,
x: *const radix_integer_struct,
radix: *const radix_struct,
);
pub fn radix_integer_set_ui(
res: *mut radix_integer_struct,
x: ulong,
radix: *const radix_struct,
);
pub fn radix_integer_set_si(
res: *mut radix_integer_struct,
x: slong,
radix: *const radix_struct,
);
pub fn radix_integer_set_fmpz(
res: *mut radix_integer_struct,
x: *const fmpz,
radix: *const radix_struct,
);
pub fn radix_integer_get_fmpz(
res: *mut fmpz,
x: *const radix_integer_struct,
radix: *const radix_struct,
);
pub fn radix_integer_neg(
res: *mut radix_integer_struct,
x: *const radix_integer_struct,
radix: *const radix_struct,
);
pub fn radix_integer_abs(
res: *mut radix_integer_struct,
x: *const radix_integer_struct,
radix: *const radix_struct,
);
pub fn radix_integer_sgn(
x: *const radix_integer_struct,
radix: *const radix_struct,
) -> ::std::os::raw::c_int;
pub fn radix_integer_add(
res: *mut radix_integer_struct,
x: *const radix_integer_struct,
y: *const radix_integer_struct,
radix: *const radix_struct,
);
pub fn radix_integer_sub(
res: *mut radix_integer_struct,
x: *const radix_integer_struct,
y: *const radix_integer_struct,
radix: *const radix_struct,
);
pub fn radix_integer_mul(
res: *mut radix_integer_struct,
x: *const radix_integer_struct,
y: *const radix_integer_struct,
radix: *const radix_struct,
);
pub fn radix_integer_is_normalised(
x: *const radix_integer_struct,
radix: *const radix_struct,
) -> ::std::os::raw::c_int;
pub fn radix_integer_size_limbs(
x: *const radix_integer_struct,
UNUSED_radix: *const radix_struct,
) -> slong;
pub fn radix_integer_ssize_limbs(
x: *const radix_integer_struct,
UNUSED_radix: *const radix_struct,
) -> slong;
pub fn radix_integer_size_digits(
x: *const radix_integer_struct,
radix: *const radix_struct,
) -> slong;
pub fn radix_integer_ssize_digits(
x: *const radix_integer_struct,
radix: *const radix_struct,
) -> slong;
pub fn radix_integer_get_limb(
x: *const radix_integer_struct,
n: slong,
UNUSED_radix: *const radix_struct,
) -> ulong;
pub fn radix_integer_set_limb(
res: *mut radix_integer_struct,
x: *const radix_integer_struct,
index: slong,
c: ulong,
radix: *const radix_struct,
);
pub fn radix_integer_get_digit(
x: *const radix_integer_struct,
index: slong,
radix: *const radix_struct,
) -> ulong;
pub fn radix_integer_set_digit(
res: *mut radix_integer_struct,
x: *const radix_integer_struct,
index: slong,
c: ulong,
radix: *const radix_struct,
);
pub fn radix_integer_lshift_limbs(
res: *mut radix_integer_struct,
x: *const radix_integer_struct,
n: slong,
radix: *const radix_struct,
);
pub fn radix_integer_rshift_limbs(
res: *mut radix_integer_struct,
x: *const radix_integer_struct,
n: slong,
radix: *const radix_struct,
);
pub fn radix_integer_lshift_digits(
res: *mut radix_integer_struct,
x: *const radix_integer_struct,
n: slong,
radix: *const radix_struct,
);
pub fn radix_integer_rshift_digits(
res: *mut radix_integer_struct,
x: *const radix_integer_struct,
n: slong,
radix: *const radix_struct,
);
pub fn radix_integer_addlsh(
res: *mut radix_integer_struct,
x: *const radix_integer_struct,
y: *const radix_integer_struct,
v: slong,
radix: *const radix_struct,
);
pub fn radix_integer_sublsh(
res: *mut radix_integer_struct,
x: *const radix_integer_struct,
y: *const radix_integer_struct,
v: slong,
radix: *const radix_struct,
);
pub fn radix_integer_valuation_limbs(
x: *const radix_integer_struct,
UNUSED_radix: *const radix_struct,
) -> slong;
pub fn radix_integer_valuation_digits(
x: *const radix_integer_struct,
radix: *const radix_struct,
) -> slong;
pub fn radix_integer_trunc_limbs(
res: *mut radix_integer_struct,
x: *const radix_integer_struct,
n: slong,
radix: *const radix_struct,
);
pub fn radix_integer_mod_limbs(
res: *mut radix_integer_struct,
x: *const radix_integer_struct,
n: slong,
radix: *const radix_struct,
);
pub fn radix_integer_smod_limbs(
res: *mut radix_integer_struct,
x: *const radix_integer_struct,
n: slong,
radix: *const radix_struct,
);
pub fn radix_integer_trunc_digits(
res: *mut radix_integer_struct,
x: *const radix_integer_struct,
n: slong,
radix: *const radix_struct,
);
pub fn radix_integer_mod_digits(
res: *mut radix_integer_struct,
x: *const radix_integer_struct,
n: slong,
radix: *const radix_struct,
);
pub fn radix_integer_mullow_limbs(
res: *mut radix_integer_struct,
x: *const radix_integer_struct,
y: *const radix_integer_struct,
n: slong,
radix: *const radix_struct,
);
pub fn radix_integer_invmod_limbs(
res: *mut radix_integer_struct,
x: *const radix_integer_struct,
n: slong,
radix: *const radix_struct,
) -> ::std::os::raw::c_int;
pub fn radix_integer_divmod_limbs(
res: *mut radix_integer_struct,
a: *const radix_integer_struct,
b: *const radix_integer_struct,
n: slong,
radix: *const radix_struct,
) -> ::std::os::raw::c_int;
pub fn radix_integer_rsqrtmod_limbs(
res: *mut radix_integer_struct,
x: *const radix_integer_struct,
n: slong,
radix: *const radix_struct,
) -> ::std::os::raw::c_int;
pub fn radix_integer_sqrtmod_limbs(
res: *mut radix_integer_struct,
x: *const radix_integer_struct,
n: slong,
radix: *const radix_struct,
) -> ::std::os::raw::c_int;
pub fn radix_integer_div(
q: *mut radix_integer_struct,
a: *const radix_integer_struct,
b: *const radix_integer_struct,
radix: *const radix_struct,
) -> ::std::os::raw::c_int;
pub fn radix_integer_divexact(
q: *mut radix_integer_struct,
a: *const radix_integer_struct,
b: *const radix_integer_struct,
radix: *const radix_struct,
);
pub fn radix_integer_tdiv_qr(
q: *mut radix_integer_struct,
r: *mut radix_integer_struct,
a: *const radix_integer_struct,
b: *const radix_integer_struct,
radix: *const radix_struct,
);
pub fn radix_integer_fdiv_qr(
q: *mut radix_integer_struct,
r: *mut radix_integer_struct,
a: *const radix_integer_struct,
b: *const radix_integer_struct,
radix: *const radix_struct,
);
pub fn radix_integer_cdiv_qr(
q: *mut radix_integer_struct,
r: *mut radix_integer_struct,
a: *const radix_integer_struct,
b: *const radix_integer_struct,
radix: *const radix_struct,
);
pub fn radix_integer_tdiv_q(
q: *mut radix_integer_struct,
a: *const radix_integer_struct,
b: *const radix_integer_struct,
radix: *const radix_struct,
);
pub fn radix_integer_fdiv_q(
q: *mut radix_integer_struct,
a: *const radix_integer_struct,
b: *const radix_integer_struct,
radix: *const radix_struct,
);
pub fn radix_integer_cdiv_q(
q: *mut radix_integer_struct,
a: *const radix_integer_struct,
b: *const radix_integer_struct,
radix: *const radix_struct,
);
pub fn radix_integer_tdiv_r(
r: *mut radix_integer_struct,
a: *const radix_integer_struct,
b: *const radix_integer_struct,
radix: *const radix_struct,
);
pub fn radix_integer_fdiv_r(
r: *mut radix_integer_struct,
a: *const radix_integer_struct,
b: *const radix_integer_struct,
radix: *const radix_struct,
);
pub fn radix_integer_cdiv_r(
r: *mut radix_integer_struct,
a: *const radix_integer_struct,
b: *const radix_integer_struct,
radix: *const radix_struct,
);
pub fn n_div_precomp_init(pre: *mut n_div_precomp_struct, d: ulong);
pub fn n_div_precomp_m0(x: ulong, pre: *const n_div_precomp_struct) -> ulong;
pub fn n_div_precomp_c0(x: ulong, pre: *const n_div_precomp_struct) -> ulong;
pub fn n_incsat(x: ulong) -> ulong;
pub fn n_div_precomp_c1_bounded(x: ulong, pre: *const n_div_precomp_struct) -> ulong;
pub fn n_div_precomp_c1(x: ulong, pre: *const n_div_precomp_struct) -> ulong;
pub fn n_div_precomp(x: ulong, pre: *const n_div_precomp_struct) -> ulong;
pub fn n_div_precomp_bounded(x: ulong, pre: *const n_div_precomp_struct) -> ulong;
pub fn n_rem_precomp_m0(
x: ulong,
UNUSED_d: ulong,
pre: *const n_div_precomp_struct,
) -> ulong;
pub fn n_rem_precomp_c0(
x: ulong,
d: ulong,
pre: *const n_div_precomp_struct,
) -> ulong;
pub fn n_rem_precomp_c1(
x: ulong,
d: ulong,
pre: *const n_div_precomp_struct,
) -> ulong;
pub fn n_rem_precomp_bounded(
x: ulong,
d: ulong,
pre: *const n_div_precomp_struct,
) -> ulong;
pub fn n_rem_precomp_c1_bounded(
x: ulong,
d: ulong,
pre: *const n_div_precomp_struct,
) -> ulong;
pub fn n_rem_precomp(x: ulong, d: ulong, pre: *const n_div_precomp_struct) -> ulong;
pub fn n_divrem_precomp_m0(
r: *mut ulong,
x: ulong,
d: ulong,
pre: *const n_div_precomp_struct,
) -> ulong;
pub fn n_divrem_precomp_c0(
r: *mut ulong,
x: ulong,
d: ulong,
pre: *const n_div_precomp_struct,
) -> ulong;
pub fn n_divrem_precomp_c1(
r: *mut ulong,
x: ulong,
d: ulong,
pre: *const n_div_precomp_struct,
) -> ulong;
pub fn n_divrem_precomp_c1_bounded(
r: *mut ulong,
x: ulong,
d: ulong,
pre: *const n_div_precomp_struct,
) -> ulong;
pub fn n_divrem_precomp(
r: *mut ulong,
x: ulong,
d: ulong,
pre: *const n_div_precomp_struct,
) -> ulong;
pub fn n_divrem_precomp_bounded(
r: *mut ulong,
x: ulong,
d: ulong,
pre: *const n_div_precomp_struct,
) -> ulong;
}
/* thread_support.h */
pub type do_func_t = ::std::option::Option<
unsafe extern "C" fn(i: slong, args: *mut ::std::os::raw::c_void),
>;
pub type bsplit_merge_func_t = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: *mut ::std::os::raw::c_void,
arg3: *mut ::std::os::raw::c_void,
arg4: *mut ::std::os::raw::c_void,
),
>;
pub type bsplit_basecase_func_t = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: slong,
arg3: slong,
arg4: *mut ::std::os::raw::c_void,
),
>;
pub type bsplit_init_func_t = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: *mut ::std::os::raw::c_void,
),
>;
pub type bsplit_clear_func_t = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut ::std::os::raw::c_void,
arg2: *mut ::std::os::raw::c_void,
),
>;
unsafe extern "C" {
pub fn flint_request_threads(
handles: *mut *mut thread_pool_handle,
thread_limit: slong,
) -> slong;
pub fn flint_give_back_threads(handles: *mut thread_pool_handle, num_handles: slong);
pub fn flint_get_num_available_threads() -> slong;
pub fn flint_parallel_do(
f: do_func_t,
args: *mut ::std::os::raw::c_void,
n: slong,
thread_limit: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
);
pub fn flint_parallel_binary_splitting(
res: *mut ::std::os::raw::c_void,
basecase: bsplit_basecase_func_t,
merge: bsplit_merge_func_t,
sizeof_res: usize,
init: bsplit_init_func_t,
clear: bsplit_clear_func_t,
args: *mut ::std::os::raw::c_void,
a: slong,
b: slong,
basecase_cutoff: slong,
thread_limit: ::std::os::raw::c_int,
flags: ::std::os::raw::c_int,
);
}
/* ulong_extras.h */
#[repr(C)]
pub struct n_ecm_s {
pub x: ulong,
pub z: ulong,
pub a24: ulong,
pub ninv: ulong,
pub normbits: ulong,
pub one: ulong,
pub GCD_table: *mut ::std::os::raw::c_uchar,
pub prime_table: *mut *mut ::std::os::raw::c_uchar,
}
impl Default for n_ecm_s {
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 n_ecm_t = [n_ecm_s; 1usize];
unsafe extern "C" {
pub fn n_randlimb(state: *mut flint_rand_struct) -> ulong;
pub fn n_urandint(state: *mut flint_rand_struct, limit: ulong) -> ulong;
pub fn n_randbits(
state: *mut flint_rand_struct,
bits: ::std::os::raw::c_uint,
) -> ulong;
pub fn n_randprime(
state: *mut flint_rand_struct,
bits: ulong,
proved: ::std::os::raw::c_int,
) -> ulong;
pub fn n_randtest_bits(
state: *mut flint_rand_struct,
bits: ::std::os::raw::c_int,
) -> ulong;
pub fn n_randtest(state: *mut flint_rand_struct) -> ulong;
pub fn n_randtest_not_zero(state: *mut flint_rand_struct) -> ulong;
pub fn n_randtest_prime(
state: *mut flint_rand_struct,
proved: ::std::os::raw::c_int,
) -> ulong;
pub fn n_mulhi(a: ulong, b: ulong) -> ulong;
pub fn _n_randlimb(state: *mut flint_rand_struct) -> ulong;
pub fn _n_randint(state: *mut flint_rand_struct, limit: ulong) -> ulong;
pub fn n_revbin(in_: ulong, bits: ulong) -> ulong;
pub fn n_divides(q: *mut ulong, n: ulong, p: ulong) -> ::std::os::raw::c_int;
pub fn n_divisible_odd_gm(
n: ulong,
inv1: ulong,
inv2: ulong,
) -> ::std::os::raw::c_int;
pub fn n_divrem2_precomp(q: *mut ulong, a: ulong, n: ulong, npre: f64) -> ulong;
pub fn n_divrem2_preinv(q: *mut ulong, a: ulong, n: ulong, ninv: ulong) -> ulong;
pub fn n_div2_preinv(a: ulong, n: ulong, ninv: ulong) -> ulong;
pub fn n_divrem_preinv(
q: *mut ulong,
a: ulong,
n: ulong,
ninv: ulong,
norm: ::std::os::raw::c_uint,
) -> ulong;
pub fn n_divrem_preinv_unnorm(
q: *mut ulong,
a: ulong,
n: ulong,
ninv: ulong,
norm: ::std::os::raw::c_uint,
) -> ulong;
pub fn n_divrem_norm(q: *mut ulong, a: ulong, n: ulong) -> ulong;
pub fn n_factorial_mod2_preinv(n: ulong, p: ulong, pinv: ulong) -> ulong;
pub fn n_factorial_fast_mod2_preinv(n: ulong, p: ulong, pinv: ulong) -> ulong;
pub fn n_sqrt(a: ulong) -> ulong;
pub fn n_sqrtrem(r: *mut ulong, a: ulong) -> ulong;
pub fn n_is_square(x: ulong) -> ::std::os::raw::c_int;
pub fn n_is_squarefree(n: ulong) -> ::std::os::raw::c_int;
pub fn n_cbrt_estimate(a: f64) -> f64;
pub fn n_cbrt(a: ulong) -> ulong;
pub fn n_cbrt_binary_search(x: ulong) -> ulong;
pub fn n_cbrt_chebyshev_approx(n: ulong) -> ulong;
pub fn n_cbrtrem(remainder: *mut ulong, n: ulong) -> ulong;
pub fn n_pow(n: ulong, exp: ulong) -> ulong;
pub fn _n_pow_check(n: ulong, exp: ulong) -> ulong;
pub fn n_root(n: ulong, root: ulong) -> ulong;
pub fn n_rootrem(remainder: *mut ulong, n: ulong, root: ulong) -> ulong;
pub fn n_is_perfect_power235(n: ulong) -> ::std::os::raw::c_int;
pub fn n_is_perfect_power(root: *mut ulong, n: ulong) -> ::std::os::raw::c_int;
pub fn n_sizeinbase(n: ulong, base: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
pub fn n_nonzero_sizeinbase10(n: ulong) -> slong;
pub fn n_flog(n: ulong, b: ulong) -> ulong;
pub fn n_clog(n: ulong, b: ulong) -> ulong;
pub fn n_clog_2exp(n: ulong, b: ulong) -> ulong;
pub fn __gmpn_gcd_11(arg1: ulong, arg2: ulong) -> ulong;
pub fn __gmpn_gcd_1(
arg1: nn_srcptr,
arg2: ::std::os::raw::c_long,
arg3: ulong,
) -> ulong;
pub fn n_gcd(x: ulong, y: ulong) -> ulong;
pub fn n_xgcd(a: *mut ulong, b: *mut ulong, x: ulong, y: ulong) -> ulong;
pub fn n_gcdinv(a: *mut ulong, x: ulong, y: ulong) -> ulong;
pub fn n_CRT(r1: ulong, m1: ulong, r2: ulong, m2: ulong) -> ulong;
pub fn n_mul_checked(a: *mut ulong, b: ulong, c: ulong) -> ::std::os::raw::c_int;
pub fn n_add_checked(a: *mut ulong, b: ulong, c: ulong) -> ::std::os::raw::c_int;
pub fn n_sub_checked(a: *mut ulong, b: ulong, c: ulong) -> ::std::os::raw::c_int;
pub fn n_precompute_inverse(n: ulong) -> f64;
pub fn n_preinvert_limb(n: ulong) -> ulong;
pub fn n_preinvert_limb_prenorm(n: ulong) -> ulong;
pub fn n_mod_precomp(a: ulong, n: ulong, ninv: f64) -> ulong;
pub fn n_mod2_precomp(a: ulong, n: ulong, ninv: f64) -> ulong;
pub fn n_mod2_preinv(a: ulong, n: ulong, ninv: ulong) -> ulong;
pub fn n_ll_mod_preinv(a_hi: ulong, a_lo: ulong, n: ulong, ninv: ulong) -> ulong;
pub fn n_lll_mod_preinv(
a_hi: ulong,
a_mi: ulong,
a_lo: ulong,
n: ulong,
ninv: ulong,
) -> ulong;
pub fn n_mulmod_precomp(a: ulong, b: ulong, n: ulong, ninv: f64) -> ulong;
pub fn n_mulmod_preinv(
a: ulong,
b: ulong,
n: ulong,
ninv: ulong,
norm: ulong,
) -> ulong;
pub fn n_mulmod2_preinv(a: ulong, b: ulong, n: ulong, ninv: ulong) -> ulong;
pub fn n_mulmod2(a: ulong, b: ulong, n: ulong) -> ulong;
pub fn n_powmod_ui_precomp(a: ulong, exp: ulong, n: ulong, npre: f64) -> ulong;
pub fn n_powmod_ui_preinv(
a: ulong,
exp: ulong,
n: ulong,
ninv: ulong,
norm: ulong,
) -> ulong;
pub fn n_powmod_precomp(a: ulong, exp: slong, n: ulong, npre: f64) -> ulong;
pub fn n_powmod(a: ulong, exp: slong, n: ulong) -> ulong;
pub fn n_powmod2_fmpz_preinv(
a: ulong,
exp: *const fmpz,
n: ulong,
ninv: ulong,
) -> ulong;
pub fn n_powmod2_preinv(a: ulong, exp: slong, n: ulong, ninv: ulong) -> ulong;
pub fn n_powmod2_ui_preinv(a: ulong, exp: ulong, n: ulong, ninv: ulong) -> ulong;
pub fn n_powmod2(a: ulong, exp: slong, n: ulong) -> ulong;
pub fn n_addmod(x: ulong, y: ulong, n: ulong) -> ulong;
pub fn n_submod(x: ulong, y: ulong, n: ulong) -> ulong;
pub fn n_negmod(x: ulong, n: ulong) -> ulong;
pub fn n_sqrtmod(a: ulong, p: ulong) -> ulong;
pub fn n_sqrtmod_2pow(sqrt: *mut *mut ulong, a: ulong, exp: slong) -> slong;
pub fn n_sqrtmod_primepow(
sqrt: *mut *mut ulong,
a: ulong,
p: ulong,
exp: slong,
) -> slong;
pub fn n_sqrtmodn(sqrt: *mut *mut ulong, a: ulong, fac: *mut n_factor_t) -> slong;
pub fn n_invmod(x: ulong, y: ulong) -> ulong;
pub fn n_binvert(a: ulong) -> ulong;
pub fn n_barrett_precomp(n: ulong) -> ulong;
pub fn n_mod_barrett_lazy(x: ulong, n: ulong, npre: ulong) -> ulong;
pub fn n_mod_barrett(x: ulong, n: ulong, npre: ulong) -> ulong;
pub fn n_lemire_precomp(n: ulong) -> ulong;
pub fn n_mod_lemire(x: ulong, n: ulong, npre: ulong) -> ulong;
pub fn n_ll_small_preinv(minv: nn_ptr, m: nn_srcptr);
pub fn n_ll_small_powmod_triple(
res1: nn_ptr,
res2: nn_ptr,
res3: nn_ptr,
b1: ulong,
b2: ulong,
b3: ulong,
exp: nn_srcptr,
m: nn_srcptr,
minv: nn_srcptr,
);
pub fn n_ll_small_2_powmod(
res: nn_ptr,
exp: nn_srcptr,
m: nn_srcptr,
minv: nn_srcptr,
);
pub fn n_mulmod_precomp_shoup(a: ulong, n: ulong) -> ulong;
pub fn n_mulmod_shoup(a: ulong, b: ulong, a_precomp: ulong, n: ulong) -> ulong;
pub fn n_mulmod_precomp_shoup_quo_rem(
a_pr_quo: *mut ulong,
a_pr_rem: *mut ulong,
a: ulong,
n: ulong,
);
pub fn n_mulmod_precomp_shoup_rem_from_quo(a_pr_quo: ulong, n: ulong) -> ulong;
pub fn n_mulmod_and_precomp_shoup(
ab: *mut ulong,
ab_precomp: *mut ulong,
a: ulong,
b: ulong,
a_pr_quo: ulong,
a_pr_rem: ulong,
b_precomp: ulong,
n: ulong,
);
pub fn n_quadratic_nonresidue(n: ulong) -> ulong;
pub fn n_primitive_root_prime_prefactor(p: ulong, factors: *mut n_factor_t) -> ulong;
pub fn n_primitive_root_prime(p: ulong) -> ulong;
pub fn n_discrete_log_bsgs(b: ulong, a: ulong, n: ulong) -> ulong;
pub fn n_jacobi(x: slong, y: ulong) -> ::std::os::raw::c_int;
pub fn n_jacobi_unsigned(x: ulong, y: ulong) -> ::std::os::raw::c_int;
pub fn _n_jacobi_unsigned(
x: ulong,
y: ulong,
r: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_int;
pub fn n_moebius_mu(n: ulong) -> ::std::os::raw::c_int;
pub fn n_moebius_mu_vec(mu: *mut ::std::os::raw::c_int, len: ulong);
pub fn n_euler_phi(n: ulong) -> ulong;
pub fn n_primes_init(iter: *mut n_primes_struct);
pub fn n_primes_clear(iter: *mut n_primes_struct);
pub fn n_primes_extend_small(iter: *mut n_primes_struct, bound: ulong);
pub fn n_primes_sieve_range(iter: *mut n_primes_struct, a: ulong, b: ulong);
pub fn n_primes_jump_after(iter: *mut n_primes_struct, n: ulong);
pub fn n_primes_next(iter: *mut n_primes_struct) -> ulong;
pub fn n_compute_primes(num_primes: ulong);
pub fn n_cleanup_primes();
pub fn n_primes_arr_readonly(n: ulong) -> *const ulong;
pub fn n_prime_inverses_arr_readonly(n: ulong) -> *const f64;
pub fn n_is_probabprime(n: ulong) -> ::std::os::raw::c_int;
pub fn n_is_probabprime_fermat(n: ulong, i: ulong) -> ::std::os::raw::c_int;
pub fn n_is_probabprime_fibonacci(n: ulong) -> ::std::os::raw::c_int;
pub fn n_is_probabprime_lucas(n: ulong) -> ::std::os::raw::c_int;
pub fn n_is_probabprime_BPSW(n: ulong) -> ::std::os::raw::c_int;
pub fn n_is_strong_probabprime_precomp(
n: ulong,
npre: f64,
a: ulong,
d: ulong,
) -> ::std::os::raw::c_int;
pub fn n_is_strong_probabprime2_preinv(
n: ulong,
ninv: ulong,
a: ulong,
d: ulong,
) -> ::std::os::raw::c_int;
pub fn n_is_prime(n: ulong) -> ::std::os::raw::c_int;
pub fn n_is_prime_odd_no_trial(n: ulong) -> ::std::os::raw::c_int;
pub fn n_is_prime_pseudosquare(n: ulong) -> ::std::os::raw::c_int;
pub fn n_is_prime_pocklington(n: ulong, iterations: ulong) -> ::std::os::raw::c_int;
pub fn n_nth_prime(n: ulong) -> ulong;
pub fn n_nth_prime_bounds(lo: *mut ulong, hi: *mut ulong, n: ulong);
pub fn n_prime_pi(n: ulong) -> ulong;
pub fn n_prime_pi_bounds(lo: *mut ulong, hi: *mut ulong, n: ulong);
pub fn n_nextprime(n: ulong, UNUSED_proved: ::std::os::raw::c_int) -> ulong;
pub fn n_ll_is_prime(nhi: ulong, nlo: ulong) -> ::std::os::raw::c_int;
pub fn n_factor_init(factors: *mut n_factor_t);
pub fn n_factor_evaluate(fac: *const n_factor_t) -> ulong;
pub fn n_factor(
factors: *mut n_factor_t,
n: ulong,
UNUSED_proved: ::std::os::raw::c_int,
);
pub fn n_factor_insert(factors: *mut n_factor_t, p: ulong, exp: ulong);
pub fn n_factor_trial_range(
factors: *mut n_factor_t,
n: ulong,
start: ulong,
num_primes: ulong,
) -> ulong;
pub fn n_factor_trial_partial(
factors: *mut n_factor_t,
n: ulong,
prod: *mut ulong,
num_primes: ulong,
limit: ulong,
) -> ulong;
pub fn n_factor_trial(
factors: *mut n_factor_t,
n: ulong,
num_primes: ulong,
) -> ulong;
pub fn n_factor_partial(
factors: *mut n_factor_t,
n: ulong,
limit: ulong,
proved: ::std::os::raw::c_int,
) -> ulong;
pub fn n_factor_power235(exp: *mut ulong, n: ulong) -> ulong;
pub fn n_factor_one_line(n: ulong, iters: ulong) -> ulong;
pub fn n_factor_lehman(n: ulong) -> ulong;
pub fn n_ll_factor_SQUFOF(nhi: ulong, nlo: ulong, iters: ulong) -> ulong;
pub fn n_factor_SQUFOF(n: ulong, iters: ulong) -> ulong;
pub fn n_factor_pp1(n: ulong, B1: ulong, c: ulong) -> ulong;
pub fn n_factor_pp1_wrapper(n: ulong) -> ulong;
pub fn n_factor_pollard_brent_single(
factor: *mut ulong,
n: ulong,
ai: ulong,
xi: ulong,
max_iters: ulong,
) -> ::std::os::raw::c_int;
pub fn n_factor_pollard_brent(
factor: *mut ulong,
state: *mut flint_rand_struct,
n_in: ulong,
max_tries: ulong,
max_iters: ulong,
) -> ::std::os::raw::c_int;
pub fn n_remove(n: *mut ulong, p: ulong) -> ::std::os::raw::c_int;
pub fn n_remove2_precomp(
n: *mut ulong,
p: ulong,
ppre: f64,
) -> ::std::os::raw::c_int;
pub fn n_factor_ecm_double(
x: *mut ulong,
z: *mut ulong,
x0: ulong,
z0: ulong,
n: ulong,
n_ecm_inf: *mut n_ecm_s,
);
pub fn n_factor_ecm_add(
x: *mut ulong,
z: *mut ulong,
x1: ulong,
z1: ulong,
x2: ulong,
z2: ulong,
x0: ulong,
z0: ulong,
n: ulong,
n_ecm_inf: *mut n_ecm_s,
);
pub fn n_factor_ecm_mul_montgomery_ladder(
x: *mut ulong,
z: *mut ulong,
x0: ulong,
z0: ulong,
k: ulong,
n: ulong,
n_ecm_inf: *mut n_ecm_s,
);
pub fn n_factor_ecm_select_curve(
f: *mut ulong,
sig: ulong,
n: ulong,
n_ecm_inf: *mut n_ecm_s,
) -> ::std::os::raw::c_int;
pub fn n_factor_ecm(
f: *mut ulong,
curves: ulong,
B1: ulong,
B2: ulong,
state: *mut flint_rand_struct,
n: ulong,
) -> ::std::os::raw::c_int;
pub fn n_factor_ecm_stage_I(
f: *mut ulong,
prime_array: *const ulong,
num: ulong,
B1: ulong,
n: ulong,
n_ecm_inf: *mut n_ecm_s,
) -> ::std::os::raw::c_int;
pub fn n_factor_ecm_stage_II(
f: *mut ulong,
B1: ulong,
B2: ulong,
P: ulong,
n: ulong,
n_ecm_inf: *mut n_ecm_s,
) -> ::std::os::raw::c_int;
}