Skip to main content

flint_sys/
gr_ore_poly.rs

1/* automatically generated by rust-bindgen 0.70.1 */
2
3use crate::deps::*;
4use crate::flint::*;
5use crate::gr_types::*;
6
7
8#[repr(C)]
9pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>);
10impl<T> __BindgenUnionField<T> {
11    #[inline]
12    pub const fn new() -> Self {
13        __BindgenUnionField(::std::marker::PhantomData)
14    }
15    #[inline]
16    pub unsafe fn as_ref(&self) -> &T {
17        ::std::mem::transmute(self)
18    }
19    #[inline]
20    pub unsafe fn as_mut(&mut self) -> &mut T {
21        ::std::mem::transmute(self)
22    }
23}
24impl<T> ::std::default::Default for __BindgenUnionField<T> {
25    #[inline]
26    fn default() -> Self {
27        Self::new()
28    }
29}
30impl<T> ::std::clone::Clone for __BindgenUnionField<T> {
31    #[inline]
32    fn clone(&self) -> Self {
33        *self
34    }
35}
36impl<T> ::std::marker::Copy for __BindgenUnionField<T> {}
37impl<T> ::std::fmt::Debug for __BindgenUnionField<T> {
38    fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
39        fmt.write_str("__BindgenUnionField")
40    }
41}
42impl<T> ::std::hash::Hash for __BindgenUnionField<T> {
43    fn hash<H: ::std::hash::Hasher>(&self, _state: &mut H) {}
44}
45impl<T> ::std::cmp::PartialEq for __BindgenUnionField<T> {
46    fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
47        true
48    }
49}
50impl<T> ::std::cmp::Eq for __BindgenUnionField<T> {}
51pub const ore_algebra_t_ORE_ALGEBRA_CUSTOM: ore_algebra_t = 0;
52pub const ore_algebra_t_ORE_ALGEBRA_COMMUTATIVE: ore_algebra_t = 1;
53pub const ore_algebra_t_ORE_ALGEBRA_DERIVATIVE: ore_algebra_t = 2;
54pub const ore_algebra_t_ORE_ALGEBRA_EULER_DERIVATIVE: ore_algebra_t = 3;
55pub const ore_algebra_t_ORE_ALGEBRA_FORWARD_SHIFT: ore_algebra_t = 4;
56pub const ore_algebra_t_ORE_ALGEBRA_FORWARD_DIFFERENCE: ore_algebra_t = 5;
57pub const ore_algebra_t_ORE_ALGEBRA_BACKWARD_SHIFT: ore_algebra_t = 6;
58pub const ore_algebra_t_ORE_ALGEBRA_BACKWARD_DIFFERENCE: ore_algebra_t = 7;
59pub const ore_algebra_t_ORE_ALGEBRA_Q_SHIFT: ore_algebra_t = 8;
60pub const ore_algebra_t_ORE_ALGEBRA_MAHLER: ore_algebra_t = 9;
61pub const ore_algebra_t_ORE_ALGEBRA_FROBENIUS: ore_algebra_t = 10;
62pub const ore_algebra_t_ORE_POLY_NUM_ALGEBRAS: ore_algebra_t = 11;
63pub type ore_algebra_t = libc::c_uint;
64#[repr(C)]
65pub struct gr_ore_poly_struct {
66    pub coeffs: gr_ptr,
67    pub alloc: slong,
68    pub length: slong,
69}
70#[allow(clippy::unnecessary_operation, clippy::identity_op)]
71const _: () = {
72    ["Size of gr_ore_poly_struct"][::std::mem::size_of::<gr_ore_poly_struct>() - 24usize];
73    ["Alignment of gr_ore_poly_struct"][::std::mem::align_of::<gr_ore_poly_struct>() - 8usize];
74    ["Offset of field: gr_ore_poly_struct::coeffs"]
75        [::std::mem::offset_of!(gr_ore_poly_struct, coeffs) - 0usize];
76    ["Offset of field: gr_ore_poly_struct::alloc"]
77        [::std::mem::offset_of!(gr_ore_poly_struct, alloc) - 8usize];
78    ["Offset of field: gr_ore_poly_struct::length"]
79        [::std::mem::offset_of!(gr_ore_poly_struct, length) - 16usize];
80};
81impl Default for gr_ore_poly_struct {
82    fn default() -> Self {
83        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
84        unsafe {
85            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
86            s.assume_init()
87        }
88    }
89}
90pub type gr_ore_poly_t = [gr_ore_poly_struct; 1usize];
91pub type gr_ore_poly_ctx_struct = gr_ctx_struct;
92pub type gr_ore_poly_ctx_t = [gr_ore_poly_ctx_struct; 1usize];
93pub type gr_ore_poly_sigma_delta_t = ::std::option::Option<
94    unsafe extern "C" fn(
95        arg1: gr_ptr,
96        arg2: gr_ptr,
97        arg3: gr_srcptr,
98        arg4: *mut gr_ore_poly_ctx_struct,
99    ) -> libc::c_int,
100>;
101#[repr(C)]
102pub struct gr_ore_poly_ore_data_t {
103    pub base_var: slong,
104    pub sigma_x: gr_ptr,
105    pub __bindgen_anon_1: gr_ore_poly_ore_data_t__bindgen_ty_1,
106}
107#[repr(C)]
108pub struct gr_ore_poly_ore_data_t__bindgen_ty_1 {
109    pub q: __BindgenUnionField<gr_ptr>,
110    pub mahler_base: __BindgenUnionField<slong>,
111    pub bindgen_union_field: u64,
112}
113#[allow(clippy::unnecessary_operation, clippy::identity_op)]
114const _: () = {
115    ["Size of gr_ore_poly_ore_data_t__bindgen_ty_1"]
116        [::std::mem::size_of::<gr_ore_poly_ore_data_t__bindgen_ty_1>() - 8usize];
117    ["Alignment of gr_ore_poly_ore_data_t__bindgen_ty_1"]
118        [::std::mem::align_of::<gr_ore_poly_ore_data_t__bindgen_ty_1>() - 8usize];
119    ["Offset of field: gr_ore_poly_ore_data_t__bindgen_ty_1::q"]
120        [::std::mem::offset_of!(gr_ore_poly_ore_data_t__bindgen_ty_1, q) - 0usize];
121    ["Offset of field: gr_ore_poly_ore_data_t__bindgen_ty_1::mahler_base"]
122        [::std::mem::offset_of!(gr_ore_poly_ore_data_t__bindgen_ty_1, mahler_base) - 0usize];
123};
124impl Default for gr_ore_poly_ore_data_t__bindgen_ty_1 {
125    fn default() -> Self {
126        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
127        unsafe {
128            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
129            s.assume_init()
130        }
131    }
132}
133#[allow(clippy::unnecessary_operation, clippy::identity_op)]
134const _: () = {
135    ["Size of gr_ore_poly_ore_data_t"][::std::mem::size_of::<gr_ore_poly_ore_data_t>() - 24usize];
136    ["Alignment of gr_ore_poly_ore_data_t"]
137        [::std::mem::align_of::<gr_ore_poly_ore_data_t>() - 8usize];
138    ["Offset of field: gr_ore_poly_ore_data_t::base_var"]
139        [::std::mem::offset_of!(gr_ore_poly_ore_data_t, base_var) - 0usize];
140    ["Offset of field: gr_ore_poly_ore_data_t::sigma_x"]
141        [::std::mem::offset_of!(gr_ore_poly_ore_data_t, sigma_x) - 8usize];
142};
143impl Default for gr_ore_poly_ore_data_t {
144    fn default() -> Self {
145        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
146        unsafe {
147            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
148            s.assume_init()
149        }
150    }
151}
152#[repr(C)]
153pub struct _gr_ore_poly_ctx_struct {
154    pub base_ring: *mut gr_ctx_struct,
155    pub degree_limit: slong,
156    pub var: *mut libc::c_char,
157    pub which_algebra: ore_algebra_t,
158    pub sigma_delta: gr_ore_poly_sigma_delta_t,
159    pub ore_data: *mut libc::c_void,
160}
161#[allow(clippy::unnecessary_operation, clippy::identity_op)]
162const _: () = {
163    ["Size of _gr_ore_poly_ctx_struct"][::std::mem::size_of::<_gr_ore_poly_ctx_struct>() - 48usize];
164    ["Alignment of _gr_ore_poly_ctx_struct"]
165        [::std::mem::align_of::<_gr_ore_poly_ctx_struct>() - 8usize];
166    ["Offset of field: _gr_ore_poly_ctx_struct::base_ring"]
167        [::std::mem::offset_of!(_gr_ore_poly_ctx_struct, base_ring) - 0usize];
168    ["Offset of field: _gr_ore_poly_ctx_struct::degree_limit"]
169        [::std::mem::offset_of!(_gr_ore_poly_ctx_struct, degree_limit) - 8usize];
170    ["Offset of field: _gr_ore_poly_ctx_struct::var"]
171        [::std::mem::offset_of!(_gr_ore_poly_ctx_struct, var) - 16usize];
172    ["Offset of field: _gr_ore_poly_ctx_struct::which_algebra"]
173        [::std::mem::offset_of!(_gr_ore_poly_ctx_struct, which_algebra) - 24usize];
174    ["Offset of field: _gr_ore_poly_ctx_struct::sigma_delta"]
175        [::std::mem::offset_of!(_gr_ore_poly_ctx_struct, sigma_delta) - 32usize];
176    ["Offset of field: _gr_ore_poly_ctx_struct::ore_data"]
177        [::std::mem::offset_of!(_gr_ore_poly_ctx_struct, ore_data) - 40usize];
178};
179impl Default for _gr_ore_poly_ctx_struct {
180    fn default() -> Self {
181        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
182        unsafe {
183            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
184            s.assume_init()
185        }
186    }
187}
188extern "C" {
189    pub fn ore_algebra_randtest(state: *mut flint_rand_struct) -> ore_algebra_t;
190    #[link_name = "gr_ore_poly_ctx_data_ptr__extern"]
191    pub fn gr_ore_poly_ctx_data_ptr(ctx: *mut gr_ore_poly_ctx_struct) -> *mut libc::c_void;
192    pub fn gr_ctx_init_gr_ore_poly(
193        ctx: *mut gr_ctx_struct,
194        base_ring: *mut gr_ctx_struct,
195        base_var: slong,
196        which_algebra: ore_algebra_t,
197    );
198    pub fn gr_ore_poly_ctx_init(
199        ctx: *mut gr_ore_poly_ctx_struct,
200        base_ring: *mut gr_ctx_struct,
201        base_var: slong,
202        which_algebra: ore_algebra_t,
203    );
204    pub fn gr_ore_poly_ctx_init_q_shift(
205        ctx: *mut gr_ore_poly_ctx_struct,
206        base_ring: *mut gr_ctx_struct,
207        base_var: slong,
208        q: gr_srcptr,
209    ) -> libc::c_int;
210    pub fn gr_ore_poly_ctx_init_mahler(
211        ctx: *mut gr_ore_poly_ctx_struct,
212        base_ring: *mut gr_ctx_struct,
213        base_var: slong,
214        mahler_base: slong,
215    ) -> libc::c_int;
216    pub fn gr_ore_poly_ctx_init_custom(
217        ctx: *mut gr_ore_poly_ctx_struct,
218        base_ring: *mut gr_ctx_struct,
219        sigma_delta: gr_ore_poly_sigma_delta_t,
220        ore_data: *mut libc::c_void,
221    );
222    pub fn gr_ore_poly_ctx_clear(ctx: *mut gr_ore_poly_ctx_struct);
223    pub fn gr_ore_poly_ctx_init_randtest(
224        ctx: *mut gr_ore_poly_ctx_struct,
225        state: *mut flint_rand_struct,
226        base_ring: *mut gr_ctx_struct,
227    );
228    pub fn gr_ore_poly_ctx_init_randtest2(
229        base_ring: *mut gr_ctx_struct,
230        ctx: *mut gr_ore_poly_ctx_struct,
231        state: *mut flint_rand_struct,
232    );
233    pub fn _gr_ore_poly_ctx_set_gen_name(
234        ctx: *mut gr_ctx_struct,
235        s: *const libc::c_char,
236    ) -> libc::c_int;
237    pub fn _gr_ore_poly_ctx_set_gen_names(
238        ctx: *mut gr_ctx_struct,
239        s: *mut *const libc::c_char,
240    ) -> libc::c_int;
241    pub fn gr_ore_poly_gens_recursive(
242        vec: *mut gr_vec_struct,
243        ctx: *mut gr_ore_poly_ctx_struct,
244    ) -> libc::c_int;
245    pub fn gr_ore_poly_ctx_write(
246        out: *mut gr_stream_struct,
247        ctx: *mut gr_ore_poly_ctx_struct,
248    ) -> libc::c_int;
249    pub fn gr_ore_poly_ctx_is_ring(ctx: *mut gr_ore_poly_ctx_struct) -> truth_t;
250    pub fn gr_ore_poly_ctx_is_zero_ring(ctx: *mut gr_ore_poly_ctx_struct) -> truth_t;
251    pub fn gr_ore_poly_ctx_is_commutative_ring(ctx: *mut gr_ore_poly_ctx_struct) -> truth_t;
252    pub fn gr_ore_poly_ctx_is_integral_domain(ctx: *mut gr_ore_poly_ctx_struct) -> truth_t;
253    pub fn gr_ore_poly_ctx_is_threadsafe(ctx: *mut gr_ore_poly_ctx_struct) -> truth_t;
254    pub fn gr_ore_poly_init(poly: *mut gr_ore_poly_struct, ctx: *mut gr_ore_poly_ctx_struct);
255    pub fn gr_ore_poly_init2(
256        poly: *mut gr_ore_poly_struct,
257        len: slong,
258        ctx: *mut gr_ore_poly_ctx_struct,
259    );
260    pub fn gr_ore_poly_clear(poly: *mut gr_ore_poly_struct, ctx: *mut gr_ore_poly_ctx_struct);
261    #[link_name = "gr_ore_poly_coeff_ptr__extern"]
262    pub fn gr_ore_poly_coeff_ptr(
263        poly: *mut gr_ore_poly_struct,
264        i: slong,
265        ctx: *mut gr_ore_poly_ctx_struct,
266    ) -> gr_ptr;
267    #[link_name = "gr_ore_poly_coeff_srcptr__extern"]
268    pub fn gr_ore_poly_coeff_srcptr(
269        poly: *const gr_ore_poly_struct,
270        i: slong,
271        ctx: *mut gr_ore_poly_ctx_struct,
272    ) -> gr_srcptr;
273    #[link_name = "gr_ore_poly_length__extern"]
274    pub fn gr_ore_poly_length(
275        poly: *const gr_ore_poly_struct,
276        UNUSED_ctx: *mut gr_ore_poly_ctx_struct,
277    ) -> slong;
278    #[link_name = "gr_ore_poly_swap__extern"]
279    pub fn gr_ore_poly_swap(
280        poly1: *mut gr_ore_poly_struct,
281        poly2: *mut gr_ore_poly_struct,
282        UNUSED_ctx: *mut gr_ore_poly_ctx_struct,
283    );
284    #[link_name = "gr_ore_poly_set_shallow__extern"]
285    pub fn gr_ore_poly_set_shallow(
286        res: *mut gr_ore_poly_struct,
287        x: *const gr_ore_poly_struct,
288        ctx: *const gr_ore_poly_ctx_struct,
289    );
290    pub fn gr_ore_poly_fit_length(
291        poly: *mut gr_ore_poly_struct,
292        len: slong,
293        ctx: *mut gr_ore_poly_ctx_struct,
294    );
295    pub fn _gr_ore_poly_set_length(
296        poly: *mut gr_ore_poly_struct,
297        len: slong,
298        ctx: *mut gr_ore_poly_ctx_struct,
299    );
300    pub fn _gr_ore_poly_normalise(poly: *mut gr_ore_poly_struct, ctx: *mut gr_ore_poly_ctx_struct);
301    pub fn gr_ore_poly_set(
302        res: *mut gr_ore_poly_struct,
303        src: *const gr_ore_poly_struct,
304        ctx: *mut gr_ore_poly_ctx_struct,
305    ) -> libc::c_int;
306    pub fn gr_ore_poly_truncate(
307        poly: *mut gr_ore_poly_struct,
308        src: *const gr_ore_poly_struct,
309        newlen: slong,
310        ctx: *mut gr_ore_poly_ctx_struct,
311    ) -> libc::c_int;
312    #[link_name = "gr_ore_poly_zero__extern"]
313    pub fn gr_ore_poly_zero(
314        poly: *mut gr_ore_poly_struct,
315        ctx: *mut gr_ore_poly_ctx_struct,
316    ) -> libc::c_int;
317    pub fn gr_ore_poly_one(
318        poly: *mut gr_ore_poly_struct,
319        ctx: *mut gr_ore_poly_ctx_struct,
320    ) -> libc::c_int;
321    pub fn gr_ore_poly_neg_one(
322        poly: *mut gr_ore_poly_struct,
323        ctx: *mut gr_ore_poly_ctx_struct,
324    ) -> libc::c_int;
325    pub fn gr_ore_poly_gen(
326        poly: *mut gr_ore_poly_struct,
327        ctx: *mut gr_ore_poly_ctx_struct,
328    ) -> libc::c_int;
329    pub fn _gr_ore_poly_equal(
330        poly1: gr_srcptr,
331        len1: slong,
332        poly2: gr_srcptr,
333        len2: slong,
334        ctx: *mut gr_ore_poly_ctx_struct,
335    ) -> truth_t;
336    pub fn gr_ore_poly_equal(
337        poly1: *const gr_ore_poly_struct,
338        poly2: *const gr_ore_poly_struct,
339        ctx: *mut gr_ore_poly_ctx_struct,
340    ) -> truth_t;
341    pub fn gr_ore_poly_is_zero(
342        poly: *const gr_ore_poly_struct,
343        ctx: *mut gr_ore_poly_ctx_struct,
344    ) -> truth_t;
345    pub fn gr_ore_poly_is_one(
346        poly: *const gr_ore_poly_struct,
347        ctx: *mut gr_ore_poly_ctx_struct,
348    ) -> truth_t;
349    pub fn gr_ore_poly_is_gen(
350        poly: *const gr_ore_poly_struct,
351        ctx: *mut gr_ore_poly_ctx_struct,
352    ) -> truth_t;
353    pub fn _gr_ore_poly_write(
354        out: *mut gr_stream_struct,
355        poly: gr_srcptr,
356        len: slong,
357        ctx: *mut gr_ore_poly_ctx_struct,
358    ) -> libc::c_int;
359    pub fn gr_ore_poly_write(
360        out: *mut gr_stream_struct,
361        poly: *const gr_ore_poly_struct,
362        ctx: *mut gr_ore_poly_ctx_struct,
363    ) -> libc::c_int;
364    pub fn _gr_ore_poly_get_str(
365        res: *mut *mut libc::c_char,
366        f: gr_srcptr,
367        len: slong,
368        ctx: *mut gr_ore_poly_ctx_struct,
369    ) -> libc::c_int;
370    pub fn gr_ore_poly_get_str(
371        res: *mut *mut libc::c_char,
372        poly: *const gr_ore_poly_struct,
373        ctx: *mut gr_ore_poly_ctx_struct,
374    ) -> libc::c_int;
375    pub fn _gr_ore_poly_set_str(
376        res: gr_ptr,
377        s: *const libc::c_char,
378        len: slong,
379        ctx: *mut gr_ore_poly_ctx_struct,
380    ) -> libc::c_int;
381    pub fn gr_ore_poly_set_str(
382        res: *mut gr_ore_poly_struct,
383        s: *const libc::c_char,
384        ctx: *mut gr_ore_poly_ctx_struct,
385    ) -> libc::c_int;
386    pub fn gr_ore_poly_print(
387        poly: *const gr_ore_poly_struct,
388        ctx: *mut gr_ore_poly_ctx_struct,
389    ) -> libc::c_int;
390    pub fn gr_ore_poly_randtest(
391        poly: *mut gr_ore_poly_struct,
392        state: *mut flint_rand_struct,
393        len: slong,
394        ctx: *mut gr_ore_poly_ctx_struct,
395    ) -> libc::c_int;
396    #[link_name = "_gr_ore_poly_randtest_default__extern"]
397    pub fn _gr_ore_poly_randtest_default(
398        res: *mut gr_ore_poly_struct,
399        state: *mut flint_rand_struct,
400        ctx: *mut gr_ore_poly_ctx_struct,
401    ) -> libc::c_int;
402    pub fn gr_ore_poly_set_si(
403        poly: *mut gr_ore_poly_struct,
404        x: slong,
405        ctx: *mut gr_ore_poly_ctx_struct,
406    ) -> libc::c_int;
407    pub fn gr_ore_poly_set_ui(
408        poly: *mut gr_ore_poly_struct,
409        x: ulong,
410        ctx: *mut gr_ore_poly_ctx_struct,
411    ) -> libc::c_int;
412    pub fn gr_ore_poly_set_fmpz(
413        poly: *mut gr_ore_poly_struct,
414        x: *const fmpz,
415        ctx: *mut gr_ore_poly_ctx_struct,
416    ) -> libc::c_int;
417    pub fn gr_ore_poly_set_fmpq(
418        poly: *mut gr_ore_poly_struct,
419        x: *const fmpq,
420        ctx: *mut gr_ore_poly_ctx_struct,
421    ) -> libc::c_int;
422    pub fn gr_ore_poly_set_other(
423        poly: *mut gr_ore_poly_struct,
424        x: gr_srcptr,
425        x_ctx: *mut gr_ctx_struct,
426        ctx: *mut gr_ore_poly_ctx_struct,
427    ) -> libc::c_int;
428    pub fn sigma_delta_unable(
429        sigma: gr_ptr,
430        delta: gr_ptr,
431        a: gr_srcptr,
432        ctx: *mut gr_ore_poly_ctx_struct,
433    ) -> libc::c_int;
434    pub fn sigma_delta_commutative(
435        sigma: gr_ptr,
436        delta: gr_ptr,
437        a: gr_srcptr,
438        ctx: *mut gr_ore_poly_ctx_struct,
439    ) -> libc::c_int;
440    pub fn sigma_delta_derivative(
441        sigma: gr_ptr,
442        delta: gr_ptr,
443        a: gr_srcptr,
444        ctx: *mut gr_ore_poly_ctx_struct,
445    ) -> libc::c_int;
446    pub fn sigma_delta_euler_derivative(
447        sigma: gr_ptr,
448        delta: gr_ptr,
449        a: gr_srcptr,
450        ctx: *mut gr_ore_poly_ctx_struct,
451    ) -> libc::c_int;
452    pub fn sigma_delta_forward_shift(
453        sigma: gr_ptr,
454        delta: gr_ptr,
455        a: gr_srcptr,
456        ctx: *mut gr_ore_poly_ctx_struct,
457    ) -> libc::c_int;
458    pub fn sigma_delta_backward_shift(
459        sigma: gr_ptr,
460        delta: gr_ptr,
461        a: gr_srcptr,
462        ctx: *mut gr_ore_poly_ctx_struct,
463    ) -> libc::c_int;
464    pub fn sigma_delta_forward_difference(
465        sigma: gr_ptr,
466        delta: gr_ptr,
467        a: gr_srcptr,
468        ctx: *mut gr_ore_poly_ctx_struct,
469    ) -> libc::c_int;
470    pub fn sigma_delta_backward_difference(
471        sigma: gr_ptr,
472        delta: gr_ptr,
473        a: gr_srcptr,
474        ctx: *mut gr_ore_poly_ctx_struct,
475    ) -> libc::c_int;
476    pub fn sigma_delta_compose(
477        sigma: gr_ptr,
478        delta: gr_ptr,
479        a: gr_srcptr,
480        ctx: *mut gr_ore_poly_ctx_struct,
481    ) -> libc::c_int;
482    pub fn sigma_delta_mahler(
483        sigma: gr_ptr,
484        delta: gr_ptr,
485        a: gr_srcptr,
486        ctx: *mut gr_ore_poly_ctx_struct,
487    ) -> libc::c_int;
488    pub fn sigma_delta_frobenius(
489        sigma: gr_ptr,
490        delta: gr_ptr,
491        a: gr_srcptr,
492        ctx: *mut gr_ore_poly_ctx_struct,
493    ) -> libc::c_int;
494    #[link_name = "gr_ore_poly_sigma_delta__extern"]
495    pub fn gr_ore_poly_sigma_delta(
496        sigma: gr_ptr,
497        delta: gr_ptr,
498        a: gr_srcptr,
499        ctx: *mut gr_ore_poly_ctx_struct,
500    ) -> libc::c_int;
501    #[link_name = "gr_ore_poly_sigma__extern"]
502    pub fn gr_ore_poly_sigma(
503        res: gr_ptr,
504        a: gr_srcptr,
505        ctx: *mut gr_ore_poly_ctx_struct,
506    ) -> libc::c_int;
507    #[link_name = "gr_ore_poly_delta__extern"]
508    pub fn gr_ore_poly_delta(
509        res: gr_ptr,
510        a: gr_srcptr,
511        ctx: *mut gr_ore_poly_ctx_struct,
512    ) -> libc::c_int;
513    pub static _gr_ore_poly_default_sigma_delta: [gr_ore_poly_sigma_delta_t; 0usize];
514    pub fn gr_ore_poly_neg(
515        res: *mut gr_ore_poly_struct,
516        src: *const gr_ore_poly_struct,
517        ctx: *mut gr_ore_poly_ctx_struct,
518    ) -> libc::c_int;
519    pub fn _gr_ore_poly_add(
520        res: gr_ptr,
521        poly1: gr_srcptr,
522        len1: slong,
523        poly2: gr_srcptr,
524        len2: slong,
525        ctx: *mut gr_ore_poly_ctx_struct,
526    ) -> libc::c_int;
527    pub fn gr_ore_poly_add(
528        res: *mut gr_ore_poly_struct,
529        poly1: *const gr_ore_poly_struct,
530        poly2: *const gr_ore_poly_struct,
531        ctx: *mut gr_ore_poly_ctx_struct,
532    ) -> libc::c_int;
533    pub fn _gr_ore_poly_sub(
534        res: gr_ptr,
535        poly1: gr_srcptr,
536        len1: slong,
537        poly2: gr_srcptr,
538        len2: slong,
539        ctx: *mut gr_ore_poly_ctx_struct,
540    ) -> libc::c_int;
541    pub fn gr_ore_poly_sub(
542        res: *mut gr_ore_poly_struct,
543        poly1: *const gr_ore_poly_struct,
544        poly2: *const gr_ore_poly_struct,
545        ctx: *mut gr_ore_poly_ctx_struct,
546    ) -> libc::c_int;
547    pub fn gr_ore_poly_add_ui(
548        res: *mut gr_ore_poly_struct,
549        poly: *const gr_ore_poly_struct,
550        c: ulong,
551        ctx: *mut gr_ore_poly_ctx_struct,
552    ) -> libc::c_int;
553    pub fn gr_ore_poly_add_si(
554        res: *mut gr_ore_poly_struct,
555        poly: *const gr_ore_poly_struct,
556        c: slong,
557        ctx: *mut gr_ore_poly_ctx_struct,
558    ) -> libc::c_int;
559    pub fn gr_ore_poly_add_fmpz(
560        res: *mut gr_ore_poly_struct,
561        poly: *const gr_ore_poly_struct,
562        c: *const fmpz,
563        ctx: *mut gr_ore_poly_ctx_struct,
564    ) -> libc::c_int;
565    pub fn gr_ore_poly_add_fmpq(
566        res: *mut gr_ore_poly_struct,
567        poly: *const gr_ore_poly_struct,
568        c: *const fmpq,
569        ctx: *mut gr_ore_poly_ctx_struct,
570    ) -> libc::c_int;
571    pub fn gr_ore_poly_add_other(
572        res: *mut gr_ore_poly_struct,
573        poly: *const gr_ore_poly_struct,
574        x: gr_srcptr,
575        x_ctx: *mut gr_ctx_struct,
576        ctx: *mut gr_ore_poly_ctx_struct,
577    ) -> libc::c_int;
578    pub fn gr_ore_poly_sub_ui(
579        res: *mut gr_ore_poly_struct,
580        poly: *const gr_ore_poly_struct,
581        c: ulong,
582        ctx: *mut gr_ore_poly_ctx_struct,
583    ) -> libc::c_int;
584    pub fn gr_ore_poly_sub_si(
585        res: *mut gr_ore_poly_struct,
586        poly: *const gr_ore_poly_struct,
587        c: slong,
588        ctx: *mut gr_ore_poly_ctx_struct,
589    ) -> libc::c_int;
590    pub fn gr_ore_poly_sub_fmpz(
591        res: *mut gr_ore_poly_struct,
592        poly: *const gr_ore_poly_struct,
593        c: *const fmpz,
594        ctx: *mut gr_ore_poly_ctx_struct,
595    ) -> libc::c_int;
596    pub fn gr_ore_poly_sub_fmpq(
597        res: *mut gr_ore_poly_struct,
598        poly: *const gr_ore_poly_struct,
599        c: *const fmpq,
600        ctx: *mut gr_ore_poly_ctx_struct,
601    ) -> libc::c_int;
602    pub fn gr_ore_poly_sub_other(
603        res: *mut gr_ore_poly_struct,
604        poly: *const gr_ore_poly_struct,
605        x: gr_srcptr,
606        x_ctx: *mut gr_ctx_struct,
607        ctx: *mut gr_ore_poly_ctx_struct,
608    ) -> libc::c_int;
609    pub fn gr_ore_poly_mul_ui(
610        res: *mut gr_ore_poly_struct,
611        poly: *const gr_ore_poly_struct,
612        c: ulong,
613        ctx: *mut gr_ore_poly_ctx_struct,
614    ) -> libc::c_int;
615    pub fn gr_ore_poly_mul_si(
616        res: *mut gr_ore_poly_struct,
617        poly: *const gr_ore_poly_struct,
618        c: slong,
619        ctx: *mut gr_ore_poly_ctx_struct,
620    ) -> libc::c_int;
621    pub fn gr_ore_poly_mul_fmpz(
622        res: *mut gr_ore_poly_struct,
623        poly: *const gr_ore_poly_struct,
624        c: *const fmpz,
625        ctx: *mut gr_ore_poly_ctx_struct,
626    ) -> libc::c_int;
627    pub fn gr_ore_poly_mul_fmpq(
628        res: *mut gr_ore_poly_struct,
629        poly: *const gr_ore_poly_struct,
630        c: *const fmpq,
631        ctx: *mut gr_ore_poly_ctx_struct,
632    ) -> libc::c_int;
633    pub fn gr_ore_poly_other_mul(
634        res: *mut gr_ore_poly_struct,
635        x: gr_srcptr,
636        x_ctx: *mut gr_ctx_struct,
637        poly: *const gr_ore_poly_struct,
638        ctx: *mut gr_ore_poly_ctx_struct,
639    ) -> libc::c_int;
640    pub fn _gr_ore_poly_lmul_gen(
641        res: gr_ptr,
642        poly: gr_srcptr,
643        len: slong,
644        ctx: *mut gr_ore_poly_ctx_struct,
645    ) -> libc::c_int;
646    pub fn gr_ore_poly_lmul_gen(
647        res: *mut gr_ore_poly_struct,
648        poly: *const gr_ore_poly_struct,
649        ctx: *mut gr_ore_poly_ctx_struct,
650    ) -> libc::c_int;
651    pub fn _gr_ore_poly_mul(
652        res: gr_ptr,
653        poly1: gr_srcptr,
654        len1: slong,
655        poly2: gr_srcptr,
656        len2: slong,
657        ctx: *mut gr_ore_poly_ctx_struct,
658    ) -> libc::c_int;
659    pub fn gr_ore_poly_mul(
660        res: *mut gr_ore_poly_struct,
661        poly1: *const gr_ore_poly_struct,
662        poly2: *const gr_ore_poly_struct,
663        ctx: *mut gr_ore_poly_ctx_struct,
664    ) -> libc::c_int;
665}