1use 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}