use crate::deps::*;
use crate::flint::*;
use crate::gr_types::*;
pub type gr_method_vec_normalise_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: *mut slong,
arg2: gr_srcptr,
arg3: slong,
arg4: gr_ctx_ptr,
) -> libc::c_int,
>;
pub type gr_method_vec_normalise_weak_op = ::std::option::Option<
unsafe extern "C" fn(arg1: gr_srcptr, arg2: slong, arg3: gr_ctx_ptr) -> slong,
>;
pub type gr_method_vec_reduce_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_dot_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: libc::c_int,
arg4: gr_srcptr,
arg5: gr_srcptr,
arg6: slong,
arg7: gr_ctx_ptr,
) -> libc::c_int,
>;
pub type gr_method_vec_dot_si_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: libc::c_int,
arg4: gr_srcptr,
arg5: *const slong,
arg6: slong,
arg7: gr_ctx_ptr,
) -> libc::c_int,
>;
pub type gr_method_vec_dot_ui_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: libc::c_int,
arg4: gr_srcptr,
arg5: *const ulong,
arg6: slong,
arg7: gr_ctx_ptr,
) -> libc::c_int,
>;
pub type gr_method_vec_dot_fmpz_op = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_srcptr,
arg3: libc::c_int,
arg4: gr_srcptr,
arg5: *const fmpz,
arg6: slong,
arg7: gr_ctx_ptr,
) -> libc::c_int,
>;
extern "C" {
pub fn gr_vec_init(vec: *mut gr_vec_struct, len: slong, ctx: *mut gr_ctx_struct);
pub fn gr_vec_clear(vec: *mut gr_vec_struct, ctx: *mut gr_ctx_struct);
pub fn _gr_vec_check_resize(
res: *mut gr_vec_struct,
n: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "gr_vec_entry_ptr__extern"]
pub fn gr_vec_entry_ptr(vec: *mut gr_vec_struct, i: slong, ctx: *mut gr_ctx_struct) -> gr_ptr;
#[link_name = "gr_vec_entry_srcptr__extern"]
pub fn gr_vec_entry_srcptr(
vec: *const gr_vec_struct,
i: slong,
ctx: *mut gr_ctx_struct,
) -> gr_srcptr;
#[link_name = "gr_vec_length__extern"]
pub fn gr_vec_length(vec: *const gr_vec_struct, UNUSED_ctx: *mut gr_ctx_struct) -> slong;
pub fn gr_vec_fit_length(vec: *mut gr_vec_struct, len: slong, ctx: *mut gr_ctx_struct);
pub fn gr_vec_set_length(vec: *mut gr_vec_struct, len: slong, ctx: *mut gr_ctx_struct);
pub fn gr_vec_set(
res: *mut gr_vec_struct,
src: *const gr_vec_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_vec_append(
vec: *mut gr_vec_struct,
f: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_vec_append_swap(vec: *mut gr_vec_struct, f: gr_ptr, ctx: *mut gr_ctx_struct);
pub fn _gr_vec_contains(
vec: gr_srcptr,
len: slong,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> truth_t;
#[link_name = "gr_vec_contains__extern"]
pub fn gr_vec_contains(
vec: *const gr_vec_struct,
x: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> truth_t;
pub fn _gr_vec_sort(vec: gr_ptr, len: slong, ctx: *mut gr_ctx_struct) -> libc::c_int;
pub fn gr_vec_sort(
dest: *mut gr_vec_struct,
src: *const gr_vec_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn _gr_vec_permute(vec: gr_ptr, perm: *mut slong, len: slong, ctx: *mut gr_ctx_struct);
pub fn gr_vec_permute(
dest: *mut gr_vec_struct,
src: *mut gr_vec_struct,
perm: *mut slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn _gr_vec_shuffle(
vec: gr_ptr,
state: *mut flint_rand_struct,
len: slong,
ctx: *mut gr_ctx_struct,
);
pub fn _gr_vec_write(
out: *mut gr_stream_struct,
vec: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn gr_vec_write(
out: *mut gr_stream_struct,
vec: *const gr_vec_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn _gr_vec_print(vec: gr_srcptr, len: slong, ctx: *mut gr_ctx_struct) -> libc::c_int;
pub fn gr_vec_print(vec: *const gr_vec_struct, ctx: *mut gr_ctx_struct) -> libc::c_int;
#[link_name = "_gr_vec_zero__extern"]
pub fn _gr_vec_zero(vec: gr_ptr, len: slong, ctx: *mut gr_ctx_struct) -> libc::c_int;
#[link_name = "_gr_vec_set__extern"]
pub fn _gr_vec_set(
res: gr_ptr,
src: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_neg__extern"]
pub fn _gr_vec_neg(
res: gr_ptr,
src: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_normalise__extern"]
pub fn _gr_vec_normalise(
res: *mut slong,
vec: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_normalise_weak__extern"]
pub fn _gr_vec_normalise_weak(vec: gr_srcptr, len: slong, ctx: *mut gr_ctx_struct) -> slong;
#[link_name = "_gr_vec_add__extern"]
pub fn _gr_vec_add(
res: gr_ptr,
src1: gr_srcptr,
src2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_sub__extern"]
pub fn _gr_vec_sub(
res: gr_ptr,
src1: gr_srcptr,
src2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_mul__extern"]
pub fn _gr_vec_mul(
res: gr_ptr,
src1: gr_srcptr,
src2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_div__extern"]
pub fn _gr_vec_div(
res: gr_ptr,
src1: gr_srcptr,
src2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_divexact__extern"]
pub fn _gr_vec_divexact(
res: gr_ptr,
src1: gr_srcptr,
src2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_pow__extern"]
pub fn _gr_vec_pow(
res: gr_ptr,
src1: gr_srcptr,
src2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_add_scalar__extern"]
pub fn _gr_vec_add_scalar(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_sub_scalar__extern"]
pub fn _gr_vec_sub_scalar(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_mul_scalar__extern"]
pub fn _gr_vec_mul_scalar(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_div_scalar__extern"]
pub fn _gr_vec_div_scalar(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_divexact_scalar__extern"]
pub fn _gr_vec_divexact_scalar(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_pow_scalar__extern"]
pub fn _gr_vec_pow_scalar(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_add_scalar_si__extern"]
pub fn _gr_vec_add_scalar_si(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_sub_scalar_si__extern"]
pub fn _gr_vec_sub_scalar_si(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_mul_scalar_si__extern"]
pub fn _gr_vec_mul_scalar_si(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_div_scalar_si__extern"]
pub fn _gr_vec_div_scalar_si(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_divexact_scalar_si__extern"]
pub fn _gr_vec_divexact_scalar_si(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_pow_scalar_si__extern"]
pub fn _gr_vec_pow_scalar_si(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_add_scalar_ui__extern"]
pub fn _gr_vec_add_scalar_ui(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: ulong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_sub_scalar_ui__extern"]
pub fn _gr_vec_sub_scalar_ui(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: ulong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_mul_scalar_ui__extern"]
pub fn _gr_vec_mul_scalar_ui(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: ulong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_div_scalar_ui__extern"]
pub fn _gr_vec_div_scalar_ui(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: ulong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_divexact_scalar_ui__extern"]
pub fn _gr_vec_divexact_scalar_ui(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: ulong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_pow_scalar_ui__extern"]
pub fn _gr_vec_pow_scalar_ui(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: ulong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_add_scalar_fmpz__extern"]
pub fn _gr_vec_add_scalar_fmpz(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_sub_scalar_fmpz__extern"]
pub fn _gr_vec_sub_scalar_fmpz(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_mul_scalar_fmpz__extern"]
pub fn _gr_vec_mul_scalar_fmpz(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_div_scalar_fmpz__extern"]
pub fn _gr_vec_div_scalar_fmpz(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_divexact_scalar_fmpz__extern"]
pub fn _gr_vec_divexact_scalar_fmpz(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_pow_scalar_fmpz__extern"]
pub fn _gr_vec_pow_scalar_fmpz(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_add_scalar_fmpq__extern"]
pub fn _gr_vec_add_scalar_fmpq(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_sub_scalar_fmpq__extern"]
pub fn _gr_vec_sub_scalar_fmpq(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_mul_scalar_fmpq__extern"]
pub fn _gr_vec_mul_scalar_fmpq(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_div_scalar_fmpq__extern"]
pub fn _gr_vec_div_scalar_fmpq(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_divexact_scalar_fmpq__extern"]
pub fn _gr_vec_divexact_scalar_fmpq(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_pow_scalar_fmpq__extern"]
pub fn _gr_vec_pow_scalar_fmpq(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpq,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_scalar_add_vec__extern"]
pub fn _gr_scalar_add_vec(
vec1: gr_ptr,
c: gr_srcptr,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_scalar_sub_vec__extern"]
pub fn _gr_scalar_sub_vec(
vec1: gr_ptr,
c: gr_srcptr,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_scalar_mul_vec__extern"]
pub fn _gr_scalar_mul_vec(
vec1: gr_ptr,
c: gr_srcptr,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_scalar_div_vec__extern"]
pub fn _gr_scalar_div_vec(
vec1: gr_ptr,
c: gr_srcptr,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_scalar_divexact_vec__extern"]
pub fn _gr_scalar_divexact_vec(
vec1: gr_ptr,
c: gr_srcptr,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_scalar_pow_vec__extern"]
pub fn _gr_scalar_pow_vec(
vec1: gr_ptr,
c: gr_srcptr,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_add_other__extern"]
pub fn _gr_vec_add_other(
vec1: gr_ptr,
vec2: gr_srcptr,
vec3: gr_srcptr,
ctx3: *mut gr_ctx_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_sub_other__extern"]
pub fn _gr_vec_sub_other(
vec1: gr_ptr,
vec2: gr_srcptr,
vec3: gr_srcptr,
ctx3: *mut gr_ctx_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_mul_other__extern"]
pub fn _gr_vec_mul_other(
vec1: gr_ptr,
vec2: gr_srcptr,
vec3: gr_srcptr,
ctx3: *mut gr_ctx_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_div_other__extern"]
pub fn _gr_vec_div_other(
vec1: gr_ptr,
vec2: gr_srcptr,
vec3: gr_srcptr,
ctx3: *mut gr_ctx_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_divexact_other__extern"]
pub fn _gr_vec_divexact_other(
vec1: gr_ptr,
vec2: gr_srcptr,
vec3: gr_srcptr,
ctx3: *mut gr_ctx_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_pow_other__extern"]
pub fn _gr_vec_pow_other(
vec1: gr_ptr,
vec2: gr_srcptr,
vec3: gr_srcptr,
ctx3: *mut gr_ctx_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_other_add_vec__extern"]
pub fn _gr_other_add_vec(
vec1: gr_ptr,
vec2: gr_srcptr,
ctx2: *mut gr_ctx_struct,
vec3: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_other_sub_vec__extern"]
pub fn _gr_other_sub_vec(
vec1: gr_ptr,
vec2: gr_srcptr,
ctx2: *mut gr_ctx_struct,
vec3: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_other_mul_vec__extern"]
pub fn _gr_other_mul_vec(
vec1: gr_ptr,
vec2: gr_srcptr,
ctx2: *mut gr_ctx_struct,
vec3: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_other_div_vec__extern"]
pub fn _gr_other_div_vec(
vec1: gr_ptr,
vec2: gr_srcptr,
ctx2: *mut gr_ctx_struct,
vec3: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_other_divexact_vec__extern"]
pub fn _gr_other_divexact_vec(
vec1: gr_ptr,
vec2: gr_srcptr,
ctx2: *mut gr_ctx_struct,
vec3: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_other_pow_vec__extern"]
pub fn _gr_other_pow_vec(
vec1: gr_ptr,
vec2: gr_srcptr,
ctx2: *mut gr_ctx_struct,
vec3: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_add_scalar_other__extern"]
pub fn _gr_vec_add_scalar_other(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_sub_scalar_other__extern"]
pub fn _gr_vec_sub_scalar_other(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_mul_scalar_other__extern"]
pub fn _gr_vec_mul_scalar_other(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_div_scalar_other__extern"]
pub fn _gr_vec_div_scalar_other(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_divexact_scalar_other__extern"]
pub fn _gr_vec_divexact_scalar_other(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_pow_scalar_other__extern"]
pub fn _gr_vec_pow_scalar_other(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_scalar_other_add_vec__extern"]
pub fn _gr_scalar_other_add_vec(
vec1: gr_ptr,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_scalar_other_sub_vec__extern"]
pub fn _gr_scalar_other_sub_vec(
vec1: gr_ptr,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_scalar_other_mul_vec__extern"]
pub fn _gr_scalar_other_mul_vec(
vec1: gr_ptr,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_scalar_other_div_vec__extern"]
pub fn _gr_scalar_other_div_vec(
vec1: gr_ptr,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_scalar_other_divexact_vec__extern"]
pub fn _gr_scalar_other_divexact_vec(
vec1: gr_ptr,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_scalar_other_pow_vec__extern"]
pub fn _gr_scalar_other_pow_vec(
vec1: gr_ptr,
c: gr_srcptr,
cctx: *mut gr_ctx_struct,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_mul_scalar_2exp_si__extern"]
pub fn _gr_vec_mul_scalar_2exp_si(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_addmul_scalar__extern"]
pub fn _gr_vec_addmul_scalar(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_submul_scalar__extern"]
pub fn _gr_vec_submul_scalar(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: gr_srcptr,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_addmul_scalar_si__extern"]
pub fn _gr_vec_addmul_scalar_si(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_submul_scalar_si__extern"]
pub fn _gr_vec_submul_scalar_si(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_addmul_scalar_fmpz__extern"]
pub fn _gr_vec_addmul_scalar_fmpz(
vec1: gr_ptr,
vec2: gr_srcptr,
len: slong,
c: *const fmpz,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_equal__extern"]
pub fn _gr_vec_equal(
vec1: gr_srcptr,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> truth_t;
#[link_name = "_gr_vec_is_zero__extern"]
pub fn _gr_vec_is_zero(vec: gr_srcptr, len: slong, ctx: *mut gr_ctx_struct) -> truth_t;
#[link_name = "_gr_vec_sum__extern"]
pub fn _gr_vec_sum(
res: gr_ptr,
vec: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_product__extern"]
pub fn _gr_vec_product(
res: gr_ptr,
vec: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_dot__extern"]
pub fn _gr_vec_dot(
res: gr_ptr,
initial: gr_srcptr,
subtract: libc::c_int,
vec1: gr_srcptr,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_dot_rev__extern"]
pub fn _gr_vec_dot_rev(
res: gr_ptr,
initial: gr_srcptr,
subtract: libc::c_int,
vec1: gr_srcptr,
vec2: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_dot_si__extern"]
pub fn _gr_vec_dot_si(
res: gr_ptr,
initial: gr_srcptr,
subtract: libc::c_int,
vec1: gr_srcptr,
vec2: *const slong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_dot_ui__extern"]
pub fn _gr_vec_dot_ui(
res: gr_ptr,
initial: gr_srcptr,
subtract: libc::c_int,
vec1: gr_srcptr,
vec2: *const ulong,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_dot_fmpz__extern"]
pub fn _gr_vec_dot_fmpz(
res: gr_ptr,
initial: gr_srcptr,
subtract: libc::c_int,
vec1: gr_srcptr,
vec2: *const fmpz,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_vec_reciprocals__extern"]
pub fn _gr_vec_reciprocals(res: gr_ptr, len: slong, ctx: *mut gr_ctx_struct) -> libc::c_int;
#[link_name = "_gr_vec_set_powers__extern"]
pub fn _gr_vec_set_powers(
res: gr_ptr,
x: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn _gr_vec_randtest(
res: gr_ptr,
state: *mut flint_rand_struct,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn _gr_vec_sum_bsplit_parallel(
res: gr_ptr,
vec: gr_srcptr,
len: slong,
basecase_cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn _gr_vec_sum_bsplit(
res: gr_ptr,
vec: gr_srcptr,
len: slong,
basecase_cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn _gr_vec_sum_parallel(
res: gr_ptr,
vec: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn _gr_vec_sum_serial(
res: gr_ptr,
vec: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn _gr_vec_sum_generic(
res: gr_ptr,
vec: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn _gr_vec_product_bsplit_parallel(
res: gr_ptr,
vec: gr_srcptr,
len: slong,
basecase_cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn _gr_vec_product_bsplit(
res: gr_ptr,
vec: gr_srcptr,
len: slong,
basecase_cutoff: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn _gr_vec_product_parallel(
res: gr_ptr,
vec: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn _gr_vec_product_serial(
res: gr_ptr,
vec: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn _gr_vec_product_generic(
res: gr_ptr,
vec: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
pub fn _gr_vec_step(
vec: gr_ptr,
start: gr_srcptr,
step: gr_srcptr,
len: slong,
ctx: *mut gr_ctx_struct,
) -> libc::c_int;
}