use crate::deps::*;
use crate::flint::*;
use crate::fmpz_mod_types::*;
use crate::mpoly_types::*;
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,
) -> libc::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,
) -> libc::c_int;
#[link_name = "fmpz_mod_mpoly_q_is_zero__extern"]
pub fn fmpz_mod_mpoly_q_is_zero(
x: *const fmpz_mod_mpoly_q_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> libc::c_int;
#[link_name = "fmpz_mod_mpoly_q_is_one__extern"]
pub fn fmpz_mod_mpoly_q_is_one(
x: *const fmpz_mod_mpoly_q_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> libc::c_int;
#[link_name = "fmpz_mod_mpoly_q_is_fmpz_mod__extern"]
pub fn fmpz_mod_mpoly_q_is_fmpz_mod(
x: *const fmpz_mod_mpoly_q_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> libc::c_int;
#[link_name = "fmpz_mod_mpoly_q_zero__extern"]
pub fn fmpz_mod_mpoly_q_zero(
res: *mut fmpz_mod_mpoly_q_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
#[link_name = "fmpz_mod_mpoly_q_one__extern"]
pub fn fmpz_mod_mpoly_q_one(
res: *mut fmpz_mod_mpoly_q_struct,
ctx: *const fmpz_mod_mpoly_ctx_struct,
);
#[link_name = "fmpz_mod_mpoly_q_gen__extern"]
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 libc::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 libc::c_char,
ctx: *const fmpz_mod_mpoly_ctx_struct,
) -> *mut libc::c_char;
pub fn fmpz_mod_mpoly_q_set_str_pretty(
res: *mut fmpz_mod_mpoly_q_struct,
s: *const libc::c_char,
vars: *mut *const libc::c_char,
ctx: *mut fmpz_mod_mpoly_ctx_struct,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::c_int;
#[link_name = "fmpz_mod_mpoly_q_add_si__extern"]
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,
);
#[link_name = "fmpz_mod_mpoly_q_sub_si__extern"]
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,
);
#[link_name = "fmpz_mod_mpoly_q_mul_si__extern"]
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,
);
#[link_name = "fmpz_mod_mpoly_q_div_si__extern"]
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,
) -> libc::c_int;
#[link_name = "fmpz_mod_mpoly_gcd_assert_successful__extern"]
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,
);
#[link_name = "_fmpz_mod_mpoly_q_mpoly_divexact__extern"]
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,
);
}