use crate::deps::*;
use crate::flint::*;
use crate::fmpq_types::*;
use crate::fmpz_types::*;
use crate::mpoly_types::*;
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,
);
#[link_name = "fmpq_mpoly_factor_length__extern"]
pub fn fmpq_mpoly_factor_length(
f: *const fmpq_mpoly_factor_struct,
UNUSED_ctx: *const fmpq_mpoly_ctx_struct,
) -> slong;
#[link_name = "fmpq_mpoly_factor_get_constant_fmpq__extern"]
pub fn fmpq_mpoly_factor_get_constant_fmpq(
c: *mut fmpq,
f: *const fmpq_mpoly_factor_struct,
UNUSED_ctx: *const fmpq_mpoly_ctx_struct,
);
#[link_name = "fmpq_mpoly_factor_get_base__extern"]
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,
);
#[link_name = "fmpq_mpoly_factor_swap_base__extern"]
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,
);
#[link_name = "fmpq_mpoly_factor_get_exp_si__extern"]
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,
) -> libc::c_int;
pub fn fmpq_mpoly_factor_make_integral(
f: *mut fmpq_mpoly_factor_struct,
UNUSED_ctx: *const fmpq_mpoly_ctx_struct,
) -> libc::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,
) -> libc::c_int;
pub fn fmpq_mpoly_factor(
f: *mut fmpq_mpoly_factor_struct,
A: *const fmpq_mpoly_struct,
ctx: *const fmpq_mpoly_ctx_struct,
) -> libc::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,
) -> libc::c_int;
}