use crate::deps::*;
use crate::flint::*;
use crate::fmpq_types::*;
use crate::fmpz_types::*;
use crate::gr_types::*;
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) -> libc::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,
) -> libc::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,
) -> libc::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: libc::c_int,
arg5: gr_ctx_ptr,
) -> libc::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,
) -> libc::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,
) -> libc::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: libc::c_int,
arg6: gr_ctx_ptr,
) -> libc::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: libc::c_int,
arg6: gr_ctx_ptr,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::c_int,
>;
extern "C" {
#[link_name = "gr_mat_entry_ptr__extern"]
pub fn gr_mat_entry_ptr(
mat: *mut gr_mat_struct,
i: slong,
j: slong,
ctx: *mut gr_ctx_struct,
) -> gr_ptr;
#[link_name = "gr_mat_entry_srcptr__extern"]
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,
) -> libc::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,
) -> libc::c_int;
#[link_name = "gr_mat_swap__extern"]
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,
) -> libc::c_int;
pub fn gr_mat_invert_rows(
mat: *mut gr_mat_struct,
perm: *mut slong,
ctx: *mut gr_ctx_struct,
) -> libc::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,
) -> libc::c_int;
pub fn gr_mat_invert_cols(
mat: *mut gr_mat_struct,
perm: *mut slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_move_row(
A: *mut gr_mat_struct,
i: slong,
new_i: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "gr_mat_window_init__extern"]
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,
);
#[link_name = "gr_mat_window_clear__extern"]
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,
) -> libc::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,
) -> libc::c_int;
pub fn gr_mat_write(
out: *mut gr_stream_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_print(mat: *const gr_mat_struct, ctx: *mut gr_ctx_struct) -> libc::c_int;
pub fn gr_mat_randtest(
mat: *mut gr_mat_struct,
state: *mut flint_rand_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_randops(
mat: *mut gr_mat_struct,
state: *mut flint_rand_struct,
count: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_randpermdiag(
parity: *mut libc::c_int,
mat: *mut gr_mat_struct,
state: *mut flint_rand_struct,
diag: gr_ptr,
n: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_randrank(
mat: *mut gr_mat_struct,
state: *mut flint_rand_struct,
rank: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_randsimilar(
mat: *mut gr_mat_struct,
state: *mut flint_rand_struct,
opcount: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "gr_mat_is_empty__extern"]
pub fn gr_mat_is_empty(mat: *const gr_mat_struct, UNUSED_ctx: *mut gr_ctx_struct) -> truth_t;
#[link_name = "gr_mat_is_square__extern"]
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) -> libc::c_int;
pub fn gr_mat_one(res: *mut gr_mat_struct, ctx: *mut gr_ctx_struct) -> libc::c_int;
pub fn gr_mat_set(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_set_scalar(
res: *mut gr_mat_struct,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_set_ui(res: *mut gr_mat_struct, v: ulong, ctx: *mut gr_ctx_struct)
-> libc::c_int;
pub fn gr_mat_set_si(res: *mut gr_mat_struct, v: slong, ctx: *mut gr_ctx_struct)
-> libc::c_int;
pub fn gr_mat_set_fmpz(
res: *mut gr_mat_struct,
v: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_set_fmpq(
res: *mut gr_mat_struct,
v: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_set_fmpz_mat(
res: *mut gr_mat_struct,
mat: *const fmpz_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_set_fmpq_mat(
res: *mut gr_mat_struct,
mat: *const fmpq_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::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,
) -> libc::c_int;
pub fn gr_mat_neg(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_swap_entrywise(
mat1: *mut gr_mat_struct,
mat2: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::c_int;
#[link_name = "gr_mat_sqr__extern"]
pub fn gr_mat_sqr(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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: libc::c_int,
ctx: *mut gr_ctx_struct,
) -> libc::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: libc::c_int,
ctx: *mut gr_ctx_struct,
) -> libc::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: libc::c_int,
ctx: *mut gr_ctx_struct,
) -> libc::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: libc::c_int,
ctx: *mut gr_ctx_struct,
) -> libc::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: libc::c_int,
ctx: *mut gr_ctx_struct,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::c_int;
pub fn gr_mat_det_berkowitz(
res: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_det_fflu(
res: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_det_lu(
res: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_det_cofactor(
res: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_det_generic_field(
res: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_det_generic_integral_domain(
res: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_det_generic(
res: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_det(res: gr_ptr, A: *const gr_mat_struct, ctx: *mut gr_ctx_struct)
-> libc::c_int;
pub fn gr_mat_inv(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::c_int;
pub fn gr_mat_permanent_cofactor(
res: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_permanent_ryser(
res: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_permanent_glynn(
res: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_permanent_glynn_threaded(
res: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_permanent_generic(
res: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_permanent(
res: gr_ptr,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_rank_lu(
rank: *mut slong,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_rank_fflu(
rank: *mut slong,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_rank(
rank: *mut slong,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::c_int;
pub fn gr_mat_nullspace(
X: *mut gr_mat_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_ones(mat: *mut gr_mat_struct, ctx: *mut gr_ctx_struct) -> libc::c_int;
pub fn gr_mat_pascal(
mat: *mut gr_mat_struct,
triangular: libc::c_int,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_stirling(
mat: *mut gr_mat_struct,
kind: libc::c_int,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_hilbert(mat: *mut gr_mat_struct, ctx: *mut gr_ctx_struct) -> libc::c_int;
pub fn gr_mat_hadamard(mat: *mut gr_mat_struct, ctx: *mut gr_ctx_struct) -> libc::c_int;
pub fn gr_mat_transpose(
B: *mut gr_mat_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::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: libc::c_int,
ctx: *mut gr_ctx_struct,
) -> libc::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: libc::c_int,
ctx: *mut gr_ctx_struct,
) -> libc::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: libc::c_int,
ctx: *mut gr_ctx_struct,
) -> libc::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: libc::c_int,
ctx: *mut gr_ctx_struct,
) -> libc::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: libc::c_int,
ctx: *mut gr_ctx_struct,
) -> libc::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: libc::c_int,
ctx: *mut gr_ctx_struct,
) -> libc::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: libc::c_int,
ctx: *mut gr_ctx_struct,
) -> libc::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: libc::c_int,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_trace(
res: gr_ptr,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn _gr_mat_charpoly_berkowitz(
res: gr_ptr,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_charpoly_berkowitz(
res: *mut gr_poly_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn _gr_mat_charpoly_danilevsky_inplace(
res: gr_ptr,
mat: *mut gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn _gr_mat_charpoly_danilevsky(
res: gr_ptr,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_charpoly_danilevsky(
res: *mut gr_poly_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::c_int;
pub fn _gr_mat_charpoly_from_hessenberg(
res: gr_ptr,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_charpoly_from_hessenberg(
cp: *mut gr_poly_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn _gr_mat_charpoly_gauss(
res: gr_ptr,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_charpoly_gauss(
cp: *mut gr_poly_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn _gr_mat_charpoly_householder(
res: gr_ptr,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_charpoly_householder(
cp: *mut gr_poly_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn _gr_mat_charpoly_generic(
res: gr_ptr,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_charpoly_generic(
cp: *mut gr_poly_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn _gr_mat_charpoly(
res: gr_ptr,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_charpoly(
res: *mut gr_poly_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn _gr_mat_companion(
res: *mut gr_mat_struct,
poly: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_companion(
res: *mut gr_mat_struct,
poly: *const gr_poly_struct,
ctx: *mut gr_ctx_struct,
) -> libc::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,
) -> libc::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,
) -> libc::c_int;
pub fn gr_mat_hessenberg(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_hessenberg_gauss(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_hessenberg_householder(
res: *mut gr_mat_struct,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::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,
) -> libc::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,
) -> libc::c_int;
pub fn gr_mat_apply_row_similarity(
A: *mut gr_mat_struct,
r: slong,
d: gr_ptr,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_minpoly_field(
p: *mut gr_poly_struct,
X: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_eigenvalues(
lambda: *mut gr_vec_struct,
mult: *mut gr_vec_struct,
mat: *const gr_mat_struct,
flags: libc::c_int,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_eigenvalues_other(
lambda: *mut gr_vec_struct,
mult: *mut gr_vec_struct,
mat: *const gr_mat_struct,
mat_ctx: *mut gr_ctx_struct,
flags: libc::c_int,
ctx: *mut gr_ctx_struct,
) -> libc::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 gr_vec_struct,
ctx: *mut gr_ctx_struct,
) -> libc::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: libc::c_int,
ctx: *mut gr_ctx_struct,
) -> libc::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: libc::c_int,
ctx: *mut gr_ctx_struct,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::c_int;
pub fn gr_mat_exp_jordan(
res: *mut gr_mat_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_exp(
res: *mut gr_mat_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_log_jordan(
res: *mut gr_mat_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_log(
res: *mut gr_mat_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::c_int;
pub fn gr_mat_sqrt(
res: *mut gr_mat_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_rsqrt(
res: *mut gr_mat_struct,
A: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_norm_max(
res: gr_ptr,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_norm_1(
res: gr_ptr,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_norm_inf(
res: gr_ptr,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_mat_norm_frobenius(
res: gr_ptr,
mat: *const gr_mat_struct,
ctx: *mut gr_ctx_struct,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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,
) -> libc::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: libc::c_int,
sol_poly_ctx: *mut gr_ctx_struct,
) -> libc::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,
) -> libc::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,
) -> libc::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,
);
}