use libc::*;
use crate::deps::*;
use crate::flint::*;
use crate::fmpz_mod_types::*;
use crate::fmpz_types::*;
use crate::fq_default::*;
use crate::fq_nmod_types::*;
use crate::fq_types::*;
use crate::fq_zech_types::*;
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 fq_default_mat_struct {
pub fq: __BindgenUnionField<fq_mat_t>,
pub fq_nmod: __BindgenUnionField<fq_nmod_mat_t>,
pub fq_zech: __BindgenUnionField<fq_zech_mat_t>,
pub nmod: __BindgenUnionField<nmod_mat_t>,
pub fmpz_mod: __BindgenUnionField<fmpz_mod_mat_t>,
pub bindgen_union_field: [u64; 7usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of fq_default_mat_struct"][::std::mem::size_of::<fq_default_mat_struct>() - 56usize];
["Alignment of fq_default_mat_struct"]
[::std::mem::align_of::<fq_default_mat_struct>() - 8usize];
["Offset of field: fq_default_mat_struct::fq"]
[::std::mem::offset_of!(fq_default_mat_struct, fq) - 0usize];
["Offset of field: fq_default_mat_struct::fq_nmod"]
[::std::mem::offset_of!(fq_default_mat_struct, fq_nmod) - 0usize];
["Offset of field: fq_default_mat_struct::fq_zech"]
[::std::mem::offset_of!(fq_default_mat_struct, fq_zech) - 0usize];
["Offset of field: fq_default_mat_struct::nmod"]
[::std::mem::offset_of!(fq_default_mat_struct, nmod) - 0usize];
["Offset of field: fq_default_mat_struct::fmpz_mod"]
[::std::mem::offset_of!(fq_default_mat_struct, fmpz_mod) - 0usize];
};
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];
extern "C" {
#[link_name = "fq_default_mat_init__extern"]
pub fn fq_default_mat_init(
mat: *mut fq_default_mat_struct,
rows: slong,
cols: slong,
ctx: *const fq_default_ctx_struct,
);
#[link_name = "fq_default_mat_init_set__extern"]
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,
);
#[link_name = "fq_default_mat_swap__extern"]
pub fn fq_default_mat_swap(
mat1: *mut fq_default_mat_struct,
mat2: *mut fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
);
#[link_name = "fq_default_mat_set__extern"]
pub fn fq_default_mat_set(
mat1: *mut fq_default_mat_struct,
mat2: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
);
#[link_name = "fq_default_mat_clear__extern"]
pub fn fq_default_mat_clear(mat: *mut fq_default_mat_struct, ctx: *const fq_default_ctx_struct);
#[link_name = "fq_default_mat_equal__extern"]
pub fn fq_default_mat_equal(
mat1: *const fq_default_mat_struct,
mat2: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> libc::c_int;
#[link_name = "fq_default_mat_is_zero__extern"]
pub fn fq_default_mat_is_zero(
mat: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> libc::c_int;
#[link_name = "fq_default_mat_is_one__extern"]
pub fn fq_default_mat_is_one(
mat: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> libc::c_int;
#[link_name = "fq_default_mat_is_empty__extern"]
pub fn fq_default_mat_is_empty(
mat: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> libc::c_int;
#[link_name = "fq_default_mat_is_square__extern"]
pub fn fq_default_mat_is_square(
mat: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> libc::c_int;
#[link_name = "fq_default_mat_transpose__extern"]
pub fn fq_default_mat_transpose(
B: *mut fq_default_mat_struct,
A: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
);
#[link_name = "fq_default_mat_entry__extern"]
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,
);
#[link_name = "fq_default_mat_entry_set__extern"]
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,
);
#[link_name = "fq_default_mat_entry_set_fmpz__extern"]
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,
);
#[link_name = "fq_default_mat_nrows__extern"]
pub fn fq_default_mat_nrows(
mat: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> slong;
#[link_name = "fq_default_mat_ncols__extern"]
pub fn fq_default_mat_ncols(
mat: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> slong;
#[link_name = "fq_default_mat_swap_rows__extern"]
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,
);
#[link_name = "fq_default_mat_invert_rows__extern"]
pub fn fq_default_mat_invert_rows(
mat: *mut fq_default_mat_struct,
perm: *mut slong,
ctx: *const fq_default_ctx_struct,
);
#[link_name = "fq_default_mat_swap_cols__extern"]
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,
);
#[link_name = "fq_default_mat_invert_cols__extern"]
pub fn fq_default_mat_invert_cols(
mat: *mut fq_default_mat_struct,
perm: *mut slong,
ctx: *const fq_default_ctx_struct,
);
#[link_name = "fq_default_mat_zero__extern"]
pub fn fq_default_mat_zero(A: *mut fq_default_mat_struct, ctx: *const fq_default_ctx_struct);
#[link_name = "fq_default_mat_one__extern"]
pub fn fq_default_mat_one(A: *mut fq_default_mat_struct, ctx: *const fq_default_ctx_struct);
#[link_name = "fq_default_mat_set_nmod_mat__extern"]
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,
);
#[link_name = "fq_default_mat_set_fmpz_mod_mat__extern"]
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,
);
#[link_name = "fq_default_mat_set_fmpz_mat__extern"]
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,
);
#[link_name = "fq_default_mat_window_init__extern"]
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,
);
#[link_name = "fq_default_mat_window_clear__extern"]
pub fn fq_default_mat_window_clear(
window: *mut fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
);
#[link_name = "fq_default_mat_concat_horizontal__extern"]
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,
);
#[link_name = "fq_default_mat_concat_vertical__extern"]
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,
) -> libc::c_int;
pub fn fq_default_mat_fprint_pretty(
file: *mut FILE,
mat: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> libc::c_int;
pub fn fq_default_mat_print(
mat: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> libc::c_int;
pub fn fq_default_mat_print_pretty(
mat: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> libc::c_int;
#[link_name = "fq_default_mat_randtest__extern"]
pub fn fq_default_mat_randtest(
mat: *mut fq_default_mat_struct,
state: *mut flint_rand_struct,
ctx: *const fq_default_ctx_struct,
);
#[link_name = "fq_default_mat_randrank__extern"]
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,
);
#[link_name = "fq_default_mat_randops__extern"]
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,
);
#[link_name = "fq_default_mat_randtril__extern"]
pub fn fq_default_mat_randtril(
mat: *mut fq_default_mat_struct,
state: *mut flint_rand_struct,
unit: libc::c_int,
ctx: *const fq_default_ctx_struct,
);
#[link_name = "fq_default_mat_randtriu__extern"]
pub fn fq_default_mat_randtriu(
mat: *mut fq_default_mat_struct,
state: *mut flint_rand_struct,
unit: libc::c_int,
ctx: *const fq_default_ctx_struct,
);
#[link_name = "fq_default_mat_add__extern"]
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,
);
#[link_name = "fq_default_mat_sub__extern"]
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,
);
#[link_name = "fq_default_mat_neg__extern"]
pub fn fq_default_mat_neg(
B: *mut fq_default_mat_struct,
A: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
);
#[link_name = "fq_default_mat_submul__extern"]
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,
);
#[link_name = "fq_default_mat_mul__extern"]
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,
);
#[link_name = "fq_default_mat_lu__extern"]
pub fn fq_default_mat_lu(
P: *mut slong,
A: *mut fq_default_mat_struct,
rank_check: libc::c_int,
ctx: *const fq_default_ctx_struct,
) -> slong;
#[link_name = "fq_default_mat_inv__extern"]
pub fn fq_default_mat_inv(
B: *mut fq_default_mat_struct,
A: *mut fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> libc::c_int;
#[link_name = "fq_default_mat_rref__extern"]
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;
#[link_name = "fq_default_mat_nullspace__extern"]
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;
#[link_name = "fq_default_mat_rank__extern"]
pub fn fq_default_mat_rank(
A: *const fq_default_mat_struct,
ctx: *const fq_default_ctx_struct,
) -> slong;
#[link_name = "fq_default_mat_solve_tril__extern"]
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: libc::c_int,
ctx: *const fq_default_ctx_struct,
);
#[link_name = "fq_default_mat_solve_triu__extern"]
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: libc::c_int,
ctx: *const fq_default_ctx_struct,
);
#[link_name = "fq_default_mat_solve__extern"]
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,
) -> libc::c_int;
#[link_name = "fq_default_mat_can_solve__extern"]
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,
) -> libc::c_int;
#[link_name = "fq_default_mat_similarity__extern"]
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,
);
}