use crate::deps::*;
use crate::flint::*;
use crate::fmpq_types::*;
use crate::fmpz_mod_types::*;
use crate::fmpz_types::*;
use crate::nf::*;
use crate::nmod_types::*;
#[repr(C)]
pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>);
impl<T> __BindgenUnionField<T> {
#[inline]
pub const fn new() -> Self {
__BindgenUnionField(::std::marker::PhantomData)
}
#[inline]
pub unsafe fn as_ref(&self) -> &T {
::std::mem::transmute(self)
}
#[inline]
pub unsafe fn as_mut(&mut self) -> &mut T {
::std::mem::transmute(self)
}
}
impl<T> ::std::default::Default for __BindgenUnionField<T> {
#[inline]
fn default() -> Self {
Self::new()
}
}
impl<T> ::std::clone::Clone for __BindgenUnionField<T> {
#[inline]
fn clone(&self) -> Self {
*self
}
}
impl<T> ::std::marker::Copy for __BindgenUnionField<T> {}
impl<T> ::std::fmt::Debug for __BindgenUnionField<T> {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.write_str("__BindgenUnionField")
}
}
impl<T> ::std::hash::Hash for __BindgenUnionField<T> {
fn hash<H: ::std::hash::Hasher>(&self, _state: &mut H) {}
}
impl<T> ::std::cmp::PartialEq for __BindgenUnionField<T> {
fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
true
}
}
impl<T> ::std::cmp::Eq for __BindgenUnionField<T> {}
#[repr(C)]
pub struct lnf_elem_struct {
pub num: fmpz_t,
pub den: fmpz_t,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of lnf_elem_struct"][::std::mem::size_of::<lnf_elem_struct>() - 16usize];
["Alignment of lnf_elem_struct"][::std::mem::align_of::<lnf_elem_struct>() - 8usize];
["Offset of field: lnf_elem_struct::num"]
[::std::mem::offset_of!(lnf_elem_struct, num) - 0usize];
["Offset of field: lnf_elem_struct::den"]
[::std::mem::offset_of!(lnf_elem_struct, den) - 8usize];
};
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,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of qnf_elem_struct"][::std::mem::size_of::<qnf_elem_struct>() - 32usize];
["Alignment of qnf_elem_struct"][::std::mem::align_of::<qnf_elem_struct>() - 8usize];
["Offset of field: qnf_elem_struct::num"]
[::std::mem::offset_of!(qnf_elem_struct, num) - 0usize];
["Offset of field: qnf_elem_struct::den"]
[::std::mem::offset_of!(qnf_elem_struct, den) - 24usize];
};
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 struct nf_elem_struct {
pub elem: __BindgenUnionField<fmpq_poly_t>,
pub lelem: __BindgenUnionField<lnf_elem_t>,
pub qelem: __BindgenUnionField<qnf_elem_t>,
pub bindgen_union_field: [u64; 4usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of nf_elem_struct"][::std::mem::size_of::<nf_elem_struct>() - 32usize];
["Alignment of nf_elem_struct"][::std::mem::align_of::<nf_elem_struct>() - 8usize];
["Offset of field: nf_elem_struct::elem"]
[::std::mem::offset_of!(nf_elem_struct, elem) - 0usize];
["Offset of field: nf_elem_struct::lelem"]
[::std::mem::offset_of!(nf_elem_struct, lelem) - 0usize];
["Offset of field: nf_elem_struct::qelem"]
[::std::mem::offset_of!(nf_elem_struct, qelem) - 0usize];
};
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];
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,
);
#[link_name = "nf_elem_canonicalise__extern"]
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) -> libc::c_int;
pub fn _nf_elem_equal(
a: *const nf_elem_struct,
b: *const nf_elem_struct,
nf: *const nf_struct,
) -> libc::c_int;
pub fn nf_elem_equal(
a: *const nf_elem_struct,
b: *const nf_elem_struct,
nf: *const nf_struct,
) -> libc::c_int;
#[link_name = "nf_elem_is_zero__extern"]
pub fn nf_elem_is_zero(a: *const nf_elem_struct, nf: *const nf_struct) -> libc::c_int;
#[link_name = "nf_elem_is_one__extern"]
pub fn nf_elem_is_one(a: *const nf_elem_struct, nf: *const nf_struct) -> libc::c_int;
pub fn nf_elem_is_gen(a: *const nf_elem_struct, nf: *const nf_struct) -> libc::c_int;
#[link_name = "nf_elem_is_integer__extern"]
pub fn nf_elem_is_integer(a: *const nf_elem_struct, nf: *const nf_struct) -> libc::c_int;
#[link_name = "nf_elem_is_rational__extern"]
pub fn nf_elem_is_rational(a: *const nf_elem_struct, nf: *const nf_struct) -> libc::c_int;
pub fn nf_elem_equal_si(
a: *const nf_elem_struct,
b: slong,
nf: *const nf_struct,
) -> libc::c_int;
pub fn nf_elem_equal_ui(
a: *const nf_elem_struct,
b: ulong,
nf: *const nf_struct,
) -> libc::c_int;
pub fn nf_elem_equal_fmpz(
a: *const nf_elem_struct,
b: *const fmpz,
nf: *const nf_struct,
) -> libc::c_int;
pub fn nf_elem_equal_fmpq(
a: *const nf_elem_struct,
b: *const fmpq,
nf: *const nf_struct,
) -> libc::c_int;
pub fn nf_elem_print_pretty(
a: *const nf_elem_struct,
nf: *const nf_struct,
var: *const libc::c_char,
);
pub fn nf_elem_get_str_pretty(
a: *const nf_elem_struct,
var: *const libc::c_char,
nf: *const nf_struct,
) -> *mut libc::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: libc::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: libc::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,
);
#[link_name = "nf_elem_get_den__extern"]
pub fn nf_elem_get_den(d: *mut fmpz, b: *const nf_elem_struct, nf: *const nf_struct);
#[link_name = "nf_elem_set_den__extern"]
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,
);
#[link_name = "nf_elem_den_is_one__extern"]
pub fn nf_elem_den_is_one(a: *const nf_elem_struct, nf: *const nf_struct) -> libc::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: libc::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: libc::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: libc::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: libc::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: libc::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: libc::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: libc::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: libc::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: libc::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,
);
}