Skip to main content

flint_sys/
mpn_mod.rs

1/* automatically generated by rust-bindgen 0.70.1 */
2
3use crate::deps::*;
4use crate::flint::*;
5use crate::gr_types::*;
6
7
8pub const MPN_MOD_MIN_LIMBS: u32 = 2;
9pub const MPN_MOD_MAX_LIMBS: u32 = 16;
10#[repr(C)]
11pub struct _mpn_mod_ctx_struct {
12    pub nlimbs: slong,
13    pub d: [ulong; 16usize],
14    pub dinv: [ulong; 16usize],
15    pub dnormed: [ulong; 16usize],
16    pub norm: flint_bitcnt_t,
17    pub is_prime: truth_t,
18}
19#[allow(clippy::unnecessary_operation, clippy::identity_op)]
20const _: () = {
21    ["Size of _mpn_mod_ctx_struct"][::std::mem::size_of::<_mpn_mod_ctx_struct>() - 408usize];
22    ["Alignment of _mpn_mod_ctx_struct"][::std::mem::align_of::<_mpn_mod_ctx_struct>() - 8usize];
23    ["Offset of field: _mpn_mod_ctx_struct::nlimbs"]
24        [::std::mem::offset_of!(_mpn_mod_ctx_struct, nlimbs) - 0usize];
25    ["Offset of field: _mpn_mod_ctx_struct::d"]
26        [::std::mem::offset_of!(_mpn_mod_ctx_struct, d) - 8usize];
27    ["Offset of field: _mpn_mod_ctx_struct::dinv"]
28        [::std::mem::offset_of!(_mpn_mod_ctx_struct, dinv) - 136usize];
29    ["Offset of field: _mpn_mod_ctx_struct::dnormed"]
30        [::std::mem::offset_of!(_mpn_mod_ctx_struct, dnormed) - 264usize];
31    ["Offset of field: _mpn_mod_ctx_struct::norm"]
32        [::std::mem::offset_of!(_mpn_mod_ctx_struct, norm) - 392usize];
33    ["Offset of field: _mpn_mod_ctx_struct::is_prime"]
34        [::std::mem::offset_of!(_mpn_mod_ctx_struct, is_prime) - 400usize];
35};
36impl Default for _mpn_mod_ctx_struct {
37    fn default() -> Self {
38        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
39        unsafe {
40            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
41            s.assume_init()
42        }
43    }
44}
45extern "C" {
46    #[link_name = "mpn_mod_ctx_set_is_field__extern"]
47    pub fn mpn_mod_ctx_set_is_field(ctx: *mut gr_ctx_struct, is_field: truth_t) -> libc::c_int;
48    pub fn gr_ctx_init_mpn_mod(ctx: *mut gr_ctx_struct, n: *const fmpz) -> libc::c_int;
49    pub fn _gr_ctx_init_mpn_mod(
50        ctx: *mut gr_ctx_struct,
51        n: nn_srcptr,
52        nlimbs: slong,
53    ) -> libc::c_int;
54    pub fn gr_ctx_init_mpn_mod_randtest(ctx: *mut gr_ctx_struct, state: *mut flint_rand_struct);
55    pub fn mpn_mod_ctx_write(out: *mut gr_stream_struct, ctx: *mut gr_ctx_struct) -> libc::c_int;
56    pub fn mpn_mod_ctx_clear(ctx: *mut gr_ctx_struct);
57    #[link_name = "mpn_mod_ctx_is_field__extern"]
58    pub fn mpn_mod_ctx_is_field(ctx: *mut gr_ctx_struct) -> truth_t;
59    #[link_name = "mpn_mod_init__extern"]
60    pub fn mpn_mod_init(x: nn_ptr, ctx: *mut gr_ctx_struct);
61    #[link_name = "mpn_mod_clear__extern"]
62    pub fn mpn_mod_clear(UNUSED_x: nn_ptr, UNUSED_ctx: *mut gr_ctx_struct);
63    #[link_name = "mpn_mod_swap__extern"]
64    pub fn mpn_mod_swap(x: nn_ptr, y: nn_ptr, ctx: *mut gr_ctx_struct);
65    #[link_name = "mpn_mod_set__extern"]
66    pub fn mpn_mod_set(res: nn_ptr, x: nn_srcptr, ctx: *mut gr_ctx_struct) -> libc::c_int;
67    #[link_name = "mpn_mod_zero__extern"]
68    pub fn mpn_mod_zero(res: nn_ptr, ctx: *mut gr_ctx_struct) -> libc::c_int;
69    #[link_name = "mpn_mod_one__extern"]
70    pub fn mpn_mod_one(res: nn_ptr, ctx: *mut gr_ctx_struct) -> libc::c_int;
71    pub fn mpn_mod_set_ui(res: nn_ptr, x: ulong, ctx: *mut gr_ctx_struct) -> libc::c_int;
72    pub fn mpn_mod_set_si(res: nn_ptr, x: slong, ctx: *mut gr_ctx_struct) -> libc::c_int;
73    pub fn mpn_mod_neg_one(res: nn_ptr, ctx: *mut gr_ctx_struct) -> libc::c_int;
74    pub fn mpn_mod_set_mpn(
75        res: nn_ptr,
76        x: nn_srcptr,
77        xn: slong,
78        ctx: *mut gr_ctx_struct,
79    ) -> libc::c_int;
80    pub fn mpn_mod_set_fmpz(res: nn_ptr, x: *const fmpz, ctx: *mut gr_ctx_struct) -> libc::c_int;
81    pub fn mpn_mod_set_other(
82        res: nn_ptr,
83        v: gr_ptr,
84        v_ctx: *mut gr_ctx_struct,
85        ctx: *mut gr_ctx_struct,
86    ) -> libc::c_int;
87    pub fn mpn_mod_randtest(
88        res: nn_ptr,
89        state: *mut flint_rand_struct,
90        ctx: *mut gr_ctx_struct,
91    ) -> libc::c_int;
92    pub fn mpn_mod_write(
93        out: *mut gr_stream_struct,
94        x: nn_srcptr,
95        ctx: *mut gr_ctx_struct,
96    ) -> libc::c_int;
97    pub fn mpn_mod_get_fmpz(res: *mut fmpz, x: nn_srcptr, ctx: *mut gr_ctx_struct) -> libc::c_int;
98    #[link_name = "mpn_mod_is_zero__extern"]
99    pub fn mpn_mod_is_zero(x: nn_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
100    #[link_name = "mpn_mod_is_one__extern"]
101    pub fn mpn_mod_is_one(x: nn_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
102    pub fn mpn_mod_is_neg_one(x: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
103    #[link_name = "mpn_mod_equal__extern"]
104    pub fn mpn_mod_equal(x: nn_srcptr, y: nn_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
105    pub fn mpn_mod_neg(res: nn_ptr, x: nn_srcptr, ctx: *mut gr_ctx_struct) -> libc::c_int;
106    pub fn mpn_mod_add(
107        res: nn_ptr,
108        x: nn_srcptr,
109        y: nn_srcptr,
110        ctx: *mut gr_ctx_struct,
111    ) -> libc::c_int;
112    pub fn mpn_mod_sub(
113        res: nn_ptr,
114        x: nn_srcptr,
115        y: nn_srcptr,
116        ctx: *mut gr_ctx_struct,
117    ) -> libc::c_int;
118    pub fn mpn_mod_add_ui(
119        res: nn_ptr,
120        x: nn_srcptr,
121        y: ulong,
122        ctx: *mut gr_ctx_struct,
123    ) -> libc::c_int;
124    pub fn mpn_mod_sub_ui(
125        res: nn_ptr,
126        x: nn_srcptr,
127        y: ulong,
128        ctx: *mut gr_ctx_struct,
129    ) -> libc::c_int;
130    pub fn mpn_mod_add_si(
131        res: nn_ptr,
132        x: nn_srcptr,
133        y: slong,
134        ctx: *mut gr_ctx_struct,
135    ) -> libc::c_int;
136    pub fn mpn_mod_sub_si(
137        res: nn_ptr,
138        x: nn_srcptr,
139        y: slong,
140        ctx: *mut gr_ctx_struct,
141    ) -> libc::c_int;
142    pub fn mpn_mod_add_fmpz(
143        res: nn_ptr,
144        x: nn_srcptr,
145        y: *const fmpz,
146        ctx: *mut gr_ctx_struct,
147    ) -> libc::c_int;
148    pub fn mpn_mod_sub_fmpz(
149        res: nn_ptr,
150        x: nn_srcptr,
151        y: *const fmpz,
152        ctx: *mut gr_ctx_struct,
153    ) -> libc::c_int;
154    pub fn mpn_mod_mul(
155        res: nn_ptr,
156        x: nn_srcptr,
157        y: nn_srcptr,
158        ctx: *mut gr_ctx_struct,
159    ) -> libc::c_int;
160    pub fn mpn_mod_mul_ui(
161        res: nn_ptr,
162        x: nn_srcptr,
163        y: ulong,
164        ctx: *mut gr_ctx_struct,
165    ) -> libc::c_int;
166    pub fn mpn_mod_mul_si(
167        res: nn_ptr,
168        x: nn_srcptr,
169        y: slong,
170        ctx: *mut gr_ctx_struct,
171    ) -> libc::c_int;
172    pub fn mpn_mod_mul_fmpz(
173        res: nn_ptr,
174        x: nn_srcptr,
175        y: *const fmpz,
176        ctx: *mut gr_ctx_struct,
177    ) -> libc::c_int;
178    pub fn mpn_mod_addmul(
179        res: nn_ptr,
180        x: nn_srcptr,
181        y: nn_srcptr,
182        ctx: *mut gr_ctx_struct,
183    ) -> libc::c_int;
184    pub fn mpn_mod_addmul_ui(
185        res: nn_ptr,
186        x: nn_srcptr,
187        y: ulong,
188        ctx: *mut gr_ctx_struct,
189    ) -> libc::c_int;
190    pub fn mpn_mod_addmul_si(
191        res: nn_ptr,
192        x: nn_srcptr,
193        y: slong,
194        ctx: *mut gr_ctx_struct,
195    ) -> libc::c_int;
196    pub fn mpn_mod_addmul_fmpz(
197        res: nn_ptr,
198        x: nn_srcptr,
199        y: *const fmpz,
200        ctx: *mut gr_ctx_struct,
201    ) -> libc::c_int;
202    pub fn mpn_mod_submul(
203        res: nn_ptr,
204        x: nn_srcptr,
205        y: nn_srcptr,
206        ctx: *mut gr_ctx_struct,
207    ) -> libc::c_int;
208    pub fn mpn_mod_submul_ui(
209        res: nn_ptr,
210        x: nn_srcptr,
211        y: ulong,
212        ctx: *mut gr_ctx_struct,
213    ) -> libc::c_int;
214    pub fn mpn_mod_submul_si(
215        res: nn_ptr,
216        x: nn_srcptr,
217        y: slong,
218        ctx: *mut gr_ctx_struct,
219    ) -> libc::c_int;
220    pub fn mpn_mod_submul_fmpz(
221        res: nn_ptr,
222        x: nn_srcptr,
223        y: *const fmpz,
224        ctx: *mut gr_ctx_struct,
225    ) -> libc::c_int;
226    #[link_name = "mpn_mod_sqr__extern"]
227    pub fn mpn_mod_sqr(res: nn_ptr, x: nn_srcptr, ctx: *mut gr_ctx_struct) -> libc::c_int;
228    pub fn mpn_mod_fmma(
229        res: nn_ptr,
230        x1: nn_srcptr,
231        y1: nn_srcptr,
232        x2: nn_srcptr,
233        y2: nn_srcptr,
234        ctx: *mut gr_ctx_struct,
235    ) -> libc::c_int;
236    pub fn mpn_mod_inv(res: nn_ptr, x: nn_srcptr, ctx: *mut gr_ctx_struct) -> libc::c_int;
237    pub fn mpn_mod_div(
238        res: nn_ptr,
239        x: nn_srcptr,
240        y: nn_srcptr,
241        ctx: *mut gr_ctx_struct,
242    ) -> libc::c_int;
243    pub fn _mpn_mod_vec_zero(res: nn_ptr, len: slong, ctx: *mut gr_ctx_struct) -> libc::c_int;
244    pub fn _mpn_mod_vec_clear(
245        UNUSED_res: nn_ptr,
246        UNUSED_len: slong,
247        UNUSED_ctx: *mut gr_ctx_struct,
248    ) -> libc::c_int;
249    pub fn _mpn_mod_vec_set(
250        res: nn_ptr,
251        x: nn_srcptr,
252        len: slong,
253        ctx: *mut gr_ctx_struct,
254    ) -> libc::c_int;
255    pub fn _mpn_mod_vec_swap(vec1: nn_ptr, vec2: nn_ptr, len: slong, ctx: *mut gr_ctx_struct);
256    pub fn _mpn_mod_vec_neg(
257        res: nn_ptr,
258        x: nn_srcptr,
259        len: slong,
260        ctx: *mut gr_ctx_struct,
261    ) -> libc::c_int;
262    pub fn _mpn_mod_vec_add(
263        res: nn_ptr,
264        x: nn_srcptr,
265        y: nn_srcptr,
266        len: slong,
267        ctx: *mut gr_ctx_struct,
268    ) -> libc::c_int;
269    pub fn _mpn_mod_vec_sub(
270        res: nn_ptr,
271        x: nn_srcptr,
272        y: nn_srcptr,
273        len: slong,
274        ctx: *mut gr_ctx_struct,
275    ) -> libc::c_int;
276    pub fn _mpn_mod_vec_mul(
277        res: nn_ptr,
278        x: nn_srcptr,
279        y: nn_srcptr,
280        len: slong,
281        ctx: *mut gr_ctx_struct,
282    ) -> libc::c_int;
283    pub fn _mpn_mod_vec_mul_scalar(
284        res: nn_ptr,
285        x: nn_srcptr,
286        len: slong,
287        y: nn_srcptr,
288        ctx: *mut gr_ctx_struct,
289    ) -> libc::c_int;
290    pub fn _mpn_mod_scalar_mul_vec(
291        res: nn_ptr,
292        y: nn_srcptr,
293        x: nn_srcptr,
294        len: slong,
295        ctx: *mut gr_ctx_struct,
296    ) -> libc::c_int;
297    pub fn _mpn_mod_vec_addmul_scalar(
298        res: nn_ptr,
299        x: nn_srcptr,
300        len: slong,
301        y: nn_srcptr,
302        ctx: *mut gr_ctx_struct,
303    ) -> libc::c_int;
304    pub fn _mpn_mod_vec_submul_scalar(
305        res: nn_ptr,
306        x: nn_srcptr,
307        len: slong,
308        y: nn_srcptr,
309        ctx: *mut gr_ctx_struct,
310    ) -> libc::c_int;
311    pub fn _mpn_mod_vec_dot(
312        res: nn_ptr,
313        initial: nn_srcptr,
314        subtract: libc::c_int,
315        vec1: nn_srcptr,
316        vec2: nn_srcptr,
317        len: slong,
318        ctx: *mut gr_ctx_struct,
319    ) -> libc::c_int;
320    pub fn _mpn_mod_vec_dot_rev(
321        res: nn_ptr,
322        initial: nn_srcptr,
323        subtract: libc::c_int,
324        vec1: nn_srcptr,
325        vec2: nn_srcptr,
326        len: slong,
327        ctx: *mut gr_ctx_struct,
328    ) -> libc::c_int;
329    pub fn mpn_mod_mat_mul_waksman(
330        C: *mut gr_mat_struct,
331        A: *const gr_mat_struct,
332        B: *const gr_mat_struct,
333        ctx: *mut gr_ctx_struct,
334    ) -> libc::c_int;
335    pub fn mpn_mod_mat_mul_multi_mod(
336        C: *mut gr_mat_struct,
337        A: *const gr_mat_struct,
338        B: *const gr_mat_struct,
339        ctx: *mut gr_ctx_struct,
340    ) -> libc::c_int;
341    pub fn mpn_mod_mat_mul(
342        C: *mut gr_mat_struct,
343        A: *const gr_mat_struct,
344        B: *const gr_mat_struct,
345        ctx: *mut gr_ctx_struct,
346    ) -> libc::c_int;
347    pub fn mpn_mod_mat_nonsingular_solve_tril(
348        X: *mut gr_mat_struct,
349        L: *const gr_mat_struct,
350        B: *const gr_mat_struct,
351        unit: libc::c_int,
352        ctx: *mut gr_ctx_struct,
353    ) -> libc::c_int;
354    pub fn mpn_mod_mat_nonsingular_solve_triu(
355        X: *mut gr_mat_struct,
356        U: *const gr_mat_struct,
357        B: *const gr_mat_struct,
358        unit: libc::c_int,
359        ctx: *mut gr_ctx_struct,
360    ) -> libc::c_int;
361    pub fn mpn_mod_mat_lu_classical_delayed(
362        res_rank: *mut slong,
363        P: *mut slong,
364        A: *mut gr_mat_struct,
365        A_in: *const gr_mat_struct,
366        rank_check: libc::c_int,
367        ctx: *mut gr_ctx_struct,
368    ) -> libc::c_int;
369    pub fn mpn_mod_mat_lu(
370        rank: *mut slong,
371        P: *mut slong,
372        LU: *mut gr_mat_struct,
373        A: *const gr_mat_struct,
374        rank_check: libc::c_int,
375        ctx: *mut gr_ctx_struct,
376    ) -> libc::c_int;
377    pub fn mpn_mod_mat_det(
378        res: nn_ptr,
379        A: *const gr_mat_struct,
380        ctx: *mut gr_ctx_struct,
381    ) -> libc::c_int;
382    pub fn _mpn_mod_mat_charpoly(
383        res: nn_ptr,
384        mat: *const gr_mat_struct,
385        ctx: *mut gr_ctx_struct,
386    ) -> libc::c_int;
387    pub fn mpn_mod_mat_reduce_row(
388        column: *mut slong,
389        A: *mut gr_mat_struct,
390        P: *mut slong,
391        L: *mut slong,
392        m: slong,
393        ctx: *mut gr_ctx_struct,
394    ) -> libc::c_int;
395    pub fn _mpn_mod_poly_mulmid_classical(
396        res: nn_ptr,
397        poly1: nn_srcptr,
398        len1: slong,
399        poly2: nn_srcptr,
400        len2: slong,
401        nlo: slong,
402        nhi: slong,
403        ctx: *mut gr_ctx_struct,
404    ) -> libc::c_int;
405    pub fn _mpn_mod_poly_mulmid_karatsuba(
406        res: nn_ptr,
407        poly1: nn_srcptr,
408        len1: slong,
409        poly2: nn_srcptr,
410        len2: slong,
411        nlo: slong,
412        nhi: slong,
413        cutoff: slong,
414        ctx: *mut gr_ctx_struct,
415    ) -> libc::c_int;
416    pub fn _mpn_mod_poly_mulmid_KS(
417        res: nn_ptr,
418        poly1: nn_srcptr,
419        len1: slong,
420        poly2: nn_srcptr,
421        len2: slong,
422        nlo: slong,
423        nhi: slong,
424        ctx: *mut gr_ctx_struct,
425    ) -> libc::c_int;
426    pub fn _mpn_mod_poly_mulmid_fft_small(
427        res: nn_ptr,
428        poly1: nn_srcptr,
429        len1: slong,
430        poly2: nn_srcptr,
431        len2: slong,
432        nlo: slong,
433        nhi: slong,
434        ctx: *mut gr_ctx_struct,
435    ) -> libc::c_int;
436    pub fn _mpn_mod_poly_mulmid(
437        res: nn_ptr,
438        poly1: nn_srcptr,
439        len1: slong,
440        poly2: nn_srcptr,
441        len2: slong,
442        nlo: slong,
443        nhi: slong,
444        ctx: *mut gr_ctx_struct,
445    ) -> libc::c_int;
446    pub fn _mpn_mod_poly_mullow_classical(
447        res: nn_ptr,
448        poly1: nn_srcptr,
449        len1: slong,
450        poly2: nn_srcptr,
451        len2: slong,
452        len: slong,
453        ctx: *mut gr_ctx_struct,
454    ) -> libc::c_int;
455    pub fn _mpn_mod_poly_mullow_karatsuba(
456        res: nn_ptr,
457        poly1: nn_srcptr,
458        len1: slong,
459        poly2: nn_srcptr,
460        len2: slong,
461        len: slong,
462        cutoff: slong,
463        ctx: *mut gr_ctx_struct,
464    ) -> libc::c_int;
465    pub fn _mpn_mod_poly_mullow_KS(
466        res: nn_ptr,
467        poly1: nn_srcptr,
468        len1: slong,
469        poly2: nn_srcptr,
470        len2: slong,
471        len: slong,
472        ctx: *mut gr_ctx_struct,
473    ) -> libc::c_int;
474    pub fn _mpn_mod_poly_mullow_fft_small(
475        res: nn_ptr,
476        poly1: nn_srcptr,
477        len1: slong,
478        poly2: nn_srcptr,
479        len2: slong,
480        len: slong,
481        ctx: *mut gr_ctx_struct,
482    ) -> libc::c_int;
483    pub fn _mpn_mod_poly_mullow(
484        res: nn_ptr,
485        poly1: nn_srcptr,
486        len1: slong,
487        poly2: nn_srcptr,
488        len2: slong,
489        len: slong,
490        ctx: *mut gr_ctx_struct,
491    ) -> libc::c_int;
492    pub fn _mpn_mod_poly_inv_series(
493        Q: nn_ptr,
494        B: nn_srcptr,
495        lenB: slong,
496        len: slong,
497        ctx: *mut gr_ctx_struct,
498    ) -> libc::c_int;
499    pub fn _mpn_mod_poly_div_series(
500        Q: nn_ptr,
501        A: nn_srcptr,
502        lenA: slong,
503        B: nn_srcptr,
504        lenB: slong,
505        len: slong,
506        ctx: *mut gr_ctx_struct,
507    ) -> libc::c_int;
508    pub fn _mpn_mod_poly_divrem_q1_preinv1_fmma(
509        Q: nn_ptr,
510        R: nn_ptr,
511        A: nn_srcptr,
512        lenA: slong,
513        B: nn_srcptr,
514        lenB: slong,
515        invL: nn_srcptr,
516        ctx: *mut gr_ctx_struct,
517    ) -> libc::c_int;
518    pub fn _mpn_mod_poly_divrem_q1_preinv1_fmma_precond(
519        Q: nn_ptr,
520        R: nn_ptr,
521        A: nn_srcptr,
522        lenA: slong,
523        B: nn_srcptr,
524        lenB: slong,
525        invL: nn_srcptr,
526        ctx: *mut gr_ctx_struct,
527    ) -> libc::c_int;
528    pub fn _mpn_mod_poly_divrem_q1_preinv1_karatsuba_precond(
529        Q: nn_ptr,
530        R: nn_ptr,
531        A: nn_srcptr,
532        lenA: slong,
533        B: nn_srcptr,
534        lenB: slong,
535        invL: nn_srcptr,
536        ctx: *mut gr_ctx_struct,
537    ) -> libc::c_int;
538    pub fn _mpn_mod_poly_divrem_q1_preinv1(
539        Q: nn_ptr,
540        R: nn_ptr,
541        A: nn_srcptr,
542        lenA: slong,
543        B: nn_srcptr,
544        lenB: slong,
545        invL: nn_srcptr,
546        ctx: *mut gr_ctx_struct,
547    ) -> libc::c_int;
548    pub fn _mpn_mod_poly_divrem_basecase_preinv1(
549        Q: nn_ptr,
550        R: nn_ptr,
551        A: nn_srcptr,
552        lenA: slong,
553        B: nn_srcptr,
554        lenB: slong,
555        invL: nn_srcptr,
556        ctx: *mut gr_ctx_struct,
557    ) -> libc::c_int;
558    pub fn _mpn_mod_poly_divrem_basecase(
559        Q: nn_ptr,
560        R: nn_ptr,
561        A: nn_srcptr,
562        lenA: slong,
563        B: nn_srcptr,
564        lenB: slong,
565        ctx: *mut gr_ctx_struct,
566    ) -> libc::c_int;
567    pub fn _mpn_mod_poly_divrem(
568        Q: nn_ptr,
569        R: nn_ptr,
570        A: nn_srcptr,
571        lenA: slong,
572        B: nn_srcptr,
573        lenB: slong,
574        ctx: *mut gr_ctx_struct,
575    ) -> libc::c_int;
576    pub fn _mpn_mod_poly_div(
577        Q: nn_ptr,
578        A: nn_srcptr,
579        lenA: slong,
580        B: nn_srcptr,
581        lenB: slong,
582        ctx: *mut gr_ctx_struct,
583    ) -> libc::c_int;
584    pub fn _mpn_mod_poly_gcd(
585        G: nn_ptr,
586        lenG: *mut slong,
587        A: nn_srcptr,
588        lenA: slong,
589        B: nn_srcptr,
590        lenB: slong,
591        ctx: *mut gr_ctx_struct,
592    ) -> libc::c_int;
593    pub fn _mpn_mod_poly_xgcd(
594        lenG: *mut slong,
595        G: nn_ptr,
596        S: nn_ptr,
597        T: nn_ptr,
598        A: nn_srcptr,
599        lenA: slong,
600        B: nn_srcptr,
601        lenB: slong,
602        ctx: *mut gr_ctx_struct,
603    ) -> libc::c_int;
604}