use crate::deps::*;
use crate::flint::*;
use crate::gr_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> {}
pub const ore_algebra_t_ORE_ALGEBRA_CUSTOM: ore_algebra_t = 0;
pub const ore_algebra_t_ORE_ALGEBRA_COMMUTATIVE: ore_algebra_t = 1;
pub const ore_algebra_t_ORE_ALGEBRA_DERIVATIVE: ore_algebra_t = 2;
pub const ore_algebra_t_ORE_ALGEBRA_EULER_DERIVATIVE: ore_algebra_t = 3;
pub const ore_algebra_t_ORE_ALGEBRA_FORWARD_SHIFT: ore_algebra_t = 4;
pub const ore_algebra_t_ORE_ALGEBRA_FORWARD_DIFFERENCE: ore_algebra_t = 5;
pub const ore_algebra_t_ORE_ALGEBRA_BACKWARD_SHIFT: ore_algebra_t = 6;
pub const ore_algebra_t_ORE_ALGEBRA_BACKWARD_DIFFERENCE: ore_algebra_t = 7;
pub const ore_algebra_t_ORE_ALGEBRA_Q_SHIFT: ore_algebra_t = 8;
pub const ore_algebra_t_ORE_ALGEBRA_MAHLER: ore_algebra_t = 9;
pub const ore_algebra_t_ORE_ALGEBRA_FROBENIUS: ore_algebra_t = 10;
pub const ore_algebra_t_ORE_POLY_NUM_ALGEBRAS: ore_algebra_t = 11;
pub type ore_algebra_t = libc::c_uint;
#[repr(C)]
pub struct gr_ore_poly_struct {
pub coeffs: gr_ptr,
pub alloc: slong,
pub length: slong,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of gr_ore_poly_struct"][::std::mem::size_of::<gr_ore_poly_struct>() - 24usize];
["Alignment of gr_ore_poly_struct"][::std::mem::align_of::<gr_ore_poly_struct>() - 8usize];
["Offset of field: gr_ore_poly_struct::coeffs"]
[::std::mem::offset_of!(gr_ore_poly_struct, coeffs) - 0usize];
["Offset of field: gr_ore_poly_struct::alloc"]
[::std::mem::offset_of!(gr_ore_poly_struct, alloc) - 8usize];
["Offset of field: gr_ore_poly_struct::length"]
[::std::mem::offset_of!(gr_ore_poly_struct, length) - 16usize];
};
impl Default for gr_ore_poly_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 gr_ore_poly_t = [gr_ore_poly_struct; 1usize];
pub type gr_ore_poly_ctx_struct = gr_ctx_struct;
pub type gr_ore_poly_ctx_t = [gr_ore_poly_ctx_struct; 1usize];
pub type gr_ore_poly_sigma_delta_t = ::std::option::Option<
unsafe extern "C" fn(
arg1: gr_ptr,
arg2: gr_ptr,
arg3: gr_srcptr,
arg4: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int,
>;
#[repr(C)]
pub struct gr_ore_poly_ore_data_t {
pub base_var: slong,
pub sigma_x: gr_ptr,
pub __bindgen_anon_1: gr_ore_poly_ore_data_t__bindgen_ty_1,
}
#[repr(C)]
pub struct gr_ore_poly_ore_data_t__bindgen_ty_1 {
pub q: __BindgenUnionField<gr_ptr>,
pub mahler_base: __BindgenUnionField<slong>,
pub bindgen_union_field: u64,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of gr_ore_poly_ore_data_t__bindgen_ty_1"]
[::std::mem::size_of::<gr_ore_poly_ore_data_t__bindgen_ty_1>() - 8usize];
["Alignment of gr_ore_poly_ore_data_t__bindgen_ty_1"]
[::std::mem::align_of::<gr_ore_poly_ore_data_t__bindgen_ty_1>() - 8usize];
["Offset of field: gr_ore_poly_ore_data_t__bindgen_ty_1::q"]
[::std::mem::offset_of!(gr_ore_poly_ore_data_t__bindgen_ty_1, q) - 0usize];
["Offset of field: gr_ore_poly_ore_data_t__bindgen_ty_1::mahler_base"]
[::std::mem::offset_of!(gr_ore_poly_ore_data_t__bindgen_ty_1, mahler_base) - 0usize];
};
impl Default for gr_ore_poly_ore_data_t__bindgen_ty_1 {
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()
}
}
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of gr_ore_poly_ore_data_t"][::std::mem::size_of::<gr_ore_poly_ore_data_t>() - 24usize];
["Alignment of gr_ore_poly_ore_data_t"]
[::std::mem::align_of::<gr_ore_poly_ore_data_t>() - 8usize];
["Offset of field: gr_ore_poly_ore_data_t::base_var"]
[::std::mem::offset_of!(gr_ore_poly_ore_data_t, base_var) - 0usize];
["Offset of field: gr_ore_poly_ore_data_t::sigma_x"]
[::std::mem::offset_of!(gr_ore_poly_ore_data_t, sigma_x) - 8usize];
};
impl Default for gr_ore_poly_ore_data_t {
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()
}
}
}
#[repr(C)]
pub struct _gr_ore_poly_ctx_struct {
pub base_ring: *mut gr_ctx_struct,
pub degree_limit: slong,
pub var: *mut libc::c_char,
pub which_algebra: ore_algebra_t,
pub sigma_delta: gr_ore_poly_sigma_delta_t,
pub ore_data: *mut libc::c_void,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of _gr_ore_poly_ctx_struct"][::std::mem::size_of::<_gr_ore_poly_ctx_struct>() - 48usize];
["Alignment of _gr_ore_poly_ctx_struct"]
[::std::mem::align_of::<_gr_ore_poly_ctx_struct>() - 8usize];
["Offset of field: _gr_ore_poly_ctx_struct::base_ring"]
[::std::mem::offset_of!(_gr_ore_poly_ctx_struct, base_ring) - 0usize];
["Offset of field: _gr_ore_poly_ctx_struct::degree_limit"]
[::std::mem::offset_of!(_gr_ore_poly_ctx_struct, degree_limit) - 8usize];
["Offset of field: _gr_ore_poly_ctx_struct::var"]
[::std::mem::offset_of!(_gr_ore_poly_ctx_struct, var) - 16usize];
["Offset of field: _gr_ore_poly_ctx_struct::which_algebra"]
[::std::mem::offset_of!(_gr_ore_poly_ctx_struct, which_algebra) - 24usize];
["Offset of field: _gr_ore_poly_ctx_struct::sigma_delta"]
[::std::mem::offset_of!(_gr_ore_poly_ctx_struct, sigma_delta) - 32usize];
["Offset of field: _gr_ore_poly_ctx_struct::ore_data"]
[::std::mem::offset_of!(_gr_ore_poly_ctx_struct, ore_data) - 40usize];
};
impl Default for _gr_ore_poly_ctx_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()
}
}
}
extern "C" {
pub fn ore_algebra_randtest(state: *mut flint_rand_struct) -> ore_algebra_t;
#[link_name = "gr_ore_poly_ctx_data_ptr__extern"]
pub fn gr_ore_poly_ctx_data_ptr(ctx: *mut gr_ore_poly_ctx_struct) -> *mut libc::c_void;
pub fn gr_ctx_init_gr_ore_poly(
ctx: *mut gr_ctx_struct,
base_ring: *mut gr_ctx_struct,
base_var: slong,
which_algebra: ore_algebra_t,
);
pub fn gr_ore_poly_ctx_init(
ctx: *mut gr_ore_poly_ctx_struct,
base_ring: *mut gr_ctx_struct,
base_var: slong,
which_algebra: ore_algebra_t,
);
pub fn gr_ore_poly_ctx_init_q_shift(
ctx: *mut gr_ore_poly_ctx_struct,
base_ring: *mut gr_ctx_struct,
base_var: slong,
q: gr_srcptr,
) -> libc::c_int;
pub fn gr_ore_poly_ctx_init_mahler(
ctx: *mut gr_ore_poly_ctx_struct,
base_ring: *mut gr_ctx_struct,
base_var: slong,
mahler_base: slong,
) -> libc::c_int;
pub fn gr_ore_poly_ctx_init_custom(
ctx: *mut gr_ore_poly_ctx_struct,
base_ring: *mut gr_ctx_struct,
sigma_delta: gr_ore_poly_sigma_delta_t,
ore_data: *mut libc::c_void,
);
pub fn gr_ore_poly_ctx_clear(ctx: *mut gr_ore_poly_ctx_struct);
pub fn gr_ore_poly_ctx_init_randtest(
ctx: *mut gr_ore_poly_ctx_struct,
state: *mut flint_rand_struct,
base_ring: *mut gr_ctx_struct,
);
pub fn gr_ore_poly_ctx_init_randtest2(
base_ring: *mut gr_ctx_struct,
ctx: *mut gr_ore_poly_ctx_struct,
state: *mut flint_rand_struct,
);
pub fn _gr_ore_poly_ctx_set_gen_name(
ctx: *mut gr_ctx_struct,
s: *const libc::c_char,
) -> libc::c_int;
pub fn _gr_ore_poly_ctx_set_gen_names(
ctx: *mut gr_ctx_struct,
s: *mut *const libc::c_char,
) -> libc::c_int;
pub fn gr_ore_poly_gens_recursive(
vec: *mut gr_vec_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_ctx_write(
out: *mut gr_stream_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_ctx_is_ring(ctx: *mut gr_ore_poly_ctx_struct) -> truth_t;
pub fn gr_ore_poly_ctx_is_zero_ring(ctx: *mut gr_ore_poly_ctx_struct) -> truth_t;
pub fn gr_ore_poly_ctx_is_commutative_ring(ctx: *mut gr_ore_poly_ctx_struct) -> truth_t;
pub fn gr_ore_poly_ctx_is_integral_domain(ctx: *mut gr_ore_poly_ctx_struct) -> truth_t;
pub fn gr_ore_poly_ctx_is_threadsafe(ctx: *mut gr_ore_poly_ctx_struct) -> truth_t;
pub fn gr_ore_poly_init(poly: *mut gr_ore_poly_struct, ctx: *mut gr_ore_poly_ctx_struct);
pub fn gr_ore_poly_init2(
poly: *mut gr_ore_poly_struct,
len: slong,
ctx: *mut gr_ore_poly_ctx_struct,
);
pub fn gr_ore_poly_clear(poly: *mut gr_ore_poly_struct, ctx: *mut gr_ore_poly_ctx_struct);
#[link_name = "gr_ore_poly_coeff_ptr__extern"]
pub fn gr_ore_poly_coeff_ptr(
poly: *mut gr_ore_poly_struct,
i: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> gr_ptr;
#[link_name = "gr_ore_poly_coeff_srcptr__extern"]
pub fn gr_ore_poly_coeff_srcptr(
poly: *const gr_ore_poly_struct,
i: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> gr_srcptr;
#[link_name = "gr_ore_poly_length__extern"]
pub fn gr_ore_poly_length(
poly: *const gr_ore_poly_struct,
UNUSED_ctx: *mut gr_ore_poly_ctx_struct,
) -> slong;
#[link_name = "gr_ore_poly_swap__extern"]
pub fn gr_ore_poly_swap(
poly1: *mut gr_ore_poly_struct,
poly2: *mut gr_ore_poly_struct,
UNUSED_ctx: *mut gr_ore_poly_ctx_struct,
);
#[link_name = "gr_ore_poly_set_shallow__extern"]
pub fn gr_ore_poly_set_shallow(
res: *mut gr_ore_poly_struct,
x: *const gr_ore_poly_struct,
ctx: *const gr_ore_poly_ctx_struct,
);
pub fn gr_ore_poly_fit_length(
poly: *mut gr_ore_poly_struct,
len: slong,
ctx: *mut gr_ore_poly_ctx_struct,
);
pub fn _gr_ore_poly_set_length(
poly: *mut gr_ore_poly_struct,
len: slong,
ctx: *mut gr_ore_poly_ctx_struct,
);
pub fn _gr_ore_poly_normalise(poly: *mut gr_ore_poly_struct, ctx: *mut gr_ore_poly_ctx_struct);
pub fn gr_ore_poly_set(
res: *mut gr_ore_poly_struct,
src: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_truncate(
poly: *mut gr_ore_poly_struct,
src: *const gr_ore_poly_struct,
newlen: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
#[link_name = "gr_ore_poly_zero__extern"]
pub fn gr_ore_poly_zero(
poly: *mut gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_one(
poly: *mut gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_neg_one(
poly: *mut gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_gen(
poly: *mut gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn _gr_ore_poly_equal(
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> truth_t;
pub fn gr_ore_poly_equal(
poly1: *const gr_ore_poly_struct,
poly2: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> truth_t;
pub fn gr_ore_poly_is_zero(
poly: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> truth_t;
pub fn gr_ore_poly_is_one(
poly: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> truth_t;
pub fn gr_ore_poly_is_gen(
poly: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> truth_t;
pub fn _gr_ore_poly_write(
out: *mut gr_stream_struct,
poly: gr_srcptr,
len: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_write(
out: *mut gr_stream_struct,
poly: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn _gr_ore_poly_get_str(
res: *mut *mut libc::c_char,
f: gr_srcptr,
len: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_get_str(
res: *mut *mut libc::c_char,
poly: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn _gr_ore_poly_set_str(
res: gr_ptr,
s: *const libc::c_char,
len: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_set_str(
res: *mut gr_ore_poly_struct,
s: *const libc::c_char,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_print(
poly: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_randtest(
poly: *mut gr_ore_poly_struct,
state: *mut flint_rand_struct,
len: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
#[link_name = "_gr_ore_poly_randtest_default__extern"]
pub fn _gr_ore_poly_randtest_default(
res: *mut gr_ore_poly_struct,
state: *mut flint_rand_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_set_si(
poly: *mut gr_ore_poly_struct,
x: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_set_ui(
poly: *mut gr_ore_poly_struct,
x: ulong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_set_fmpz(
poly: *mut gr_ore_poly_struct,
x: *const fmpz,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_set_fmpq(
poly: *mut gr_ore_poly_struct,
x: *const fmpq,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_set_other(
poly: *mut gr_ore_poly_struct,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn sigma_delta_unable(
sigma: gr_ptr,
delta: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn sigma_delta_commutative(
sigma: gr_ptr,
delta: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn sigma_delta_derivative(
sigma: gr_ptr,
delta: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn sigma_delta_euler_derivative(
sigma: gr_ptr,
delta: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn sigma_delta_forward_shift(
sigma: gr_ptr,
delta: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn sigma_delta_backward_shift(
sigma: gr_ptr,
delta: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn sigma_delta_forward_difference(
sigma: gr_ptr,
delta: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn sigma_delta_backward_difference(
sigma: gr_ptr,
delta: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn sigma_delta_compose(
sigma: gr_ptr,
delta: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn sigma_delta_mahler(
sigma: gr_ptr,
delta: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn sigma_delta_frobenius(
sigma: gr_ptr,
delta: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
#[link_name = "gr_ore_poly_sigma_delta__extern"]
pub fn gr_ore_poly_sigma_delta(
sigma: gr_ptr,
delta: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
#[link_name = "gr_ore_poly_sigma__extern"]
pub fn gr_ore_poly_sigma(
res: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
#[link_name = "gr_ore_poly_delta__extern"]
pub fn gr_ore_poly_delta(
res: gr_ptr,
a: gr_srcptr,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub static _gr_ore_poly_default_sigma_delta: [gr_ore_poly_sigma_delta_t; 0usize];
pub fn gr_ore_poly_neg(
res: *mut gr_ore_poly_struct,
src: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn _gr_ore_poly_add(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_add(
res: *mut gr_ore_poly_struct,
poly1: *const gr_ore_poly_struct,
poly2: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn _gr_ore_poly_sub(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_sub(
res: *mut gr_ore_poly_struct,
poly1: *const gr_ore_poly_struct,
poly2: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_add_ui(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
c: ulong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_add_si(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
c: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_add_fmpz(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
c: *const fmpz,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_add_fmpq(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
c: *const fmpq,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_add_other(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_sub_ui(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
c: ulong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_sub_si(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
c: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_sub_fmpz(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
c: *const fmpz,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_sub_fmpq(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
c: *const fmpq,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_sub_other(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_mul_ui(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
c: ulong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_mul_si(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
c: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_mul_fmpz(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
c: *const fmpz,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_mul_fmpq(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
c: *const fmpq,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_other_mul(
res: *mut gr_ore_poly_struct,
x: gr_srcptr,
x_ctx: *mut gr_ctx_struct,
poly: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn _gr_ore_poly_lmul_gen(
res: gr_ptr,
poly: gr_srcptr,
len: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_lmul_gen(
res: *mut gr_ore_poly_struct,
poly: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn _gr_ore_poly_mul(
res: gr_ptr,
poly1: gr_srcptr,
len1: slong,
poly2: gr_srcptr,
len2: slong,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
pub fn gr_ore_poly_mul(
res: *mut gr_ore_poly_struct,
poly1: *const gr_ore_poly_struct,
poly2: *const gr_ore_poly_struct,
ctx: *mut gr_ore_poly_ctx_struct,
) -> libc::c_int;
}