1use crate::deps::*;
4use crate::flint::*;
5use crate::fmpq_types::*;
6use crate::fmpz_types::*;
7use crate::gr_types::*;
8
9
10pub type gr_method_mat_unary_op_get_scalar = ::std::option::Option<
11 unsafe extern "C" fn(arg1: gr_ptr, arg2: *const gr_mat_struct, arg3: gr_ctx_ptr) -> libc::c_int,
12>;
13pub type gr_method_mat_unary_op = ::std::option::Option<
14 unsafe extern "C" fn(
15 arg1: *mut gr_mat_struct,
16 arg2: *const gr_mat_struct,
17 arg3: gr_ctx_ptr,
18 ) -> libc::c_int,
19>;
20pub type gr_method_mat_binary_op = ::std::option::Option<
21 unsafe extern "C" fn(
22 arg1: *mut gr_mat_struct,
23 arg2: *const gr_mat_struct,
24 arg3: *const gr_mat_struct,
25 arg4: gr_ctx_ptr,
26 ) -> libc::c_int,
27>;
28pub type gr_method_mat_binary_op_with_flag = ::std::option::Option<
29 unsafe extern "C" fn(
30 arg1: *mut gr_mat_struct,
31 arg2: *const gr_mat_struct,
32 arg3: *const gr_mat_struct,
33 arg4: libc::c_int,
34 arg5: gr_ctx_ptr,
35 ) -> libc::c_int,
36>;
37pub type gr_method_mat_binary_unary_op = ::std::option::Option<
38 unsafe extern "C" fn(
39 arg1: *mut gr_mat_struct,
40 arg2: *mut gr_mat_struct,
41 arg3: *const gr_mat_struct,
42 arg4: gr_ctx_ptr,
43 ) -> libc::c_int,
44>;
45pub type gr_method_mat_pivot_op = ::std::option::Option<
46 unsafe extern "C" fn(
47 arg1: *mut slong,
48 arg2: *mut gr_mat_struct,
49 arg3: slong,
50 arg4: slong,
51 arg5: slong,
52 arg6: gr_ctx_ptr,
53 ) -> libc::c_int,
54>;
55pub type gr_method_mat_diagonalization_op = ::std::option::Option<
56 unsafe extern "C" fn(
57 arg1: *mut gr_vec_struct,
58 arg2: *mut gr_mat_struct,
59 arg3: *mut gr_mat_struct,
60 arg4: *const gr_mat_struct,
61 arg5: libc::c_int,
62 arg6: gr_ctx_ptr,
63 ) -> libc::c_int,
64>;
65pub type gr_method_mat_lu_op = ::std::option::Option<
66 unsafe extern "C" fn(
67 arg1: *mut slong,
68 arg2: *mut slong,
69 arg3: *mut gr_mat_struct,
70 arg4: *const gr_mat_struct,
71 arg5: libc::c_int,
72 arg6: gr_ctx_ptr,
73 ) -> libc::c_int,
74>;
75pub type gr_method_mat_reduce_row_op = ::std::option::Option<
76 unsafe extern "C" fn(
77 arg1: *mut slong,
78 arg2: *mut gr_mat_struct,
79 arg3: *mut slong,
80 arg4: *mut slong,
81 arg5: slong,
82 arg6: gr_ctx_ptr,
83 ) -> libc::c_int,
84>;
85pub type __gr_method_vec_op = ::std::option::Option<
86 unsafe extern "C" fn(
87 arg1: gr_ptr,
88 arg2: gr_srcptr,
89 arg3: slong,
90 arg4: gr_ctx_ptr,
91 ) -> libc::c_int,
92>;
93pub type __gr_method_vec_scalar_op = ::std::option::Option<
94 unsafe extern "C" fn(
95 arg1: gr_ptr,
96 arg2: gr_srcptr,
97 arg3: slong,
98 arg4: gr_srcptr,
99 arg5: gr_ctx_ptr,
100 ) -> libc::c_int,
101>;
102extern "C" {
103 #[link_name = "gr_mat_entry_ptr__extern"]
104 pub fn gr_mat_entry_ptr(
105 mat: *mut gr_mat_struct,
106 i: slong,
107 j: slong,
108 ctx: *mut gr_ctx_struct,
109 ) -> gr_ptr;
110 #[link_name = "gr_mat_entry_srcptr__extern"]
111 pub fn gr_mat_entry_srcptr(
112 mat: *const gr_mat_struct,
113 i: slong,
114 j: slong,
115 ctx: *mut gr_ctx_struct,
116 ) -> gr_srcptr;
117 pub fn gr_mat_init(mat: *mut gr_mat_struct, rows: slong, cols: slong, ctx: *mut gr_ctx_struct);
118 pub fn gr_mat_init_set(
119 res: *mut gr_mat_struct,
120 mat: *const gr_mat_struct,
121 ctx: *mut gr_ctx_struct,
122 ) -> libc::c_int;
123 pub fn gr_mat_clear(mat: *mut gr_mat_struct, ctx: *mut gr_ctx_struct);
124 pub fn _gr_mat_check_resize(
125 mat: *mut gr_mat_struct,
126 r: slong,
127 c: slong,
128 ctx: *mut gr_ctx_struct,
129 ) -> libc::c_int;
130 #[link_name = "gr_mat_swap__extern"]
131 pub fn gr_mat_swap(
132 mat1: *mut gr_mat_struct,
133 mat2: *mut gr_mat_struct,
134 UNUSED_ctx: *mut gr_ctx_struct,
135 );
136 pub fn gr_mat_swap_rows(
137 mat: *mut gr_mat_struct,
138 perm: *mut slong,
139 r: slong,
140 s: slong,
141 ctx: *mut gr_ctx_struct,
142 ) -> libc::c_int;
143 pub fn gr_mat_invert_rows(
144 mat: *mut gr_mat_struct,
145 perm: *mut slong,
146 ctx: *mut gr_ctx_struct,
147 ) -> libc::c_int;
148 pub fn gr_mat_swap_cols(
149 mat: *mut gr_mat_struct,
150 perm: *mut slong,
151 r: slong,
152 s: slong,
153 ctx: *mut gr_ctx_struct,
154 ) -> libc::c_int;
155 pub fn gr_mat_invert_cols(
156 mat: *mut gr_mat_struct,
157 perm: *mut slong,
158 ctx: *mut gr_ctx_struct,
159 ) -> libc::c_int;
160 pub fn gr_mat_move_row(
161 A: *mut gr_mat_struct,
162 i: slong,
163 new_i: slong,
164 ctx: *mut gr_ctx_struct,
165 ) -> libc::c_int;
166 #[link_name = "gr_mat_window_init__extern"]
167 pub fn gr_mat_window_init(
168 window: *mut gr_mat_struct,
169 mat: *const gr_mat_struct,
170 r1: slong,
171 c1: slong,
172 r2: slong,
173 c2: slong,
174 ctx: *mut gr_ctx_struct,
175 );
176 #[link_name = "gr_mat_window_clear__extern"]
177 pub fn gr_mat_window_clear(UNUSED_window: *mut gr_mat_struct, UNUSED_ctx: *mut gr_ctx_struct);
178 pub fn gr_mat_concat_horizontal(
179 res: *mut gr_mat_struct,
180 mat1: *const gr_mat_struct,
181 mat2: *const gr_mat_struct,
182 ctx: *mut gr_ctx_struct,
183 ) -> libc::c_int;
184 pub fn gr_mat_concat_vertical(
185 res: *mut gr_mat_struct,
186 mat1: *const gr_mat_struct,
187 mat2: *const gr_mat_struct,
188 ctx: *mut gr_ctx_struct,
189 ) -> libc::c_int;
190 pub fn gr_mat_write(
191 out: *mut gr_stream_struct,
192 mat: *const gr_mat_struct,
193 ctx: *mut gr_ctx_struct,
194 ) -> libc::c_int;
195 pub fn gr_mat_print(mat: *const gr_mat_struct, ctx: *mut gr_ctx_struct) -> libc::c_int;
196 pub fn gr_mat_randtest(
197 mat: *mut gr_mat_struct,
198 state: *mut flint_rand_struct,
199 ctx: *mut gr_ctx_struct,
200 ) -> libc::c_int;
201 pub fn gr_mat_randops(
202 mat: *mut gr_mat_struct,
203 state: *mut flint_rand_struct,
204 count: slong,
205 ctx: *mut gr_ctx_struct,
206 ) -> libc::c_int;
207 pub fn gr_mat_randpermdiag(
208 parity: *mut libc::c_int,
209 mat: *mut gr_mat_struct,
210 state: *mut flint_rand_struct,
211 diag: gr_ptr,
212 n: slong,
213 ctx: *mut gr_ctx_struct,
214 ) -> libc::c_int;
215 pub fn gr_mat_randrank(
216 mat: *mut gr_mat_struct,
217 state: *mut flint_rand_struct,
218 rank: slong,
219 ctx: *mut gr_ctx_struct,
220 ) -> libc::c_int;
221 pub fn gr_mat_randsimilar(
222 mat: *mut gr_mat_struct,
223 state: *mut flint_rand_struct,
224 opcount: slong,
225 ctx: *mut gr_ctx_struct,
226 ) -> libc::c_int;
227 #[link_name = "gr_mat_is_empty__extern"]
228 pub fn gr_mat_is_empty(mat: *const gr_mat_struct, UNUSED_ctx: *mut gr_ctx_struct) -> truth_t;
229 #[link_name = "gr_mat_is_square__extern"]
230 pub fn gr_mat_is_square(mat: *const gr_mat_struct, UNUSED_ctx: *mut gr_ctx_struct) -> truth_t;
231 pub fn gr_mat_equal(
232 mat1: *const gr_mat_struct,
233 mat2: *const gr_mat_struct,
234 ctx: *mut gr_ctx_struct,
235 ) -> truth_t;
236 pub fn gr_mat_is_zero(mat: *const gr_mat_struct, ctx: *mut gr_ctx_struct) -> truth_t;
237 pub fn gr_mat_is_one(mat: *const gr_mat_struct, ctx: *mut gr_ctx_struct) -> truth_t;
238 pub fn gr_mat_is_neg_one(mat: *const gr_mat_struct, ctx: *mut gr_ctx_struct) -> truth_t;
239 pub fn gr_mat_zero(res: *mut gr_mat_struct, ctx: *mut gr_ctx_struct) -> libc::c_int;
240 pub fn gr_mat_one(res: *mut gr_mat_struct, ctx: *mut gr_ctx_struct) -> libc::c_int;
241 pub fn gr_mat_set(
242 res: *mut gr_mat_struct,
243 mat: *const gr_mat_struct,
244 ctx: *mut gr_ctx_struct,
245 ) -> libc::c_int;
246 pub fn gr_mat_set_scalar(
247 res: *mut gr_mat_struct,
248 c: gr_srcptr,
249 ctx: *mut gr_ctx_struct,
250 ) -> libc::c_int;
251 pub fn gr_mat_set_ui(res: *mut gr_mat_struct, v: ulong, ctx: *mut gr_ctx_struct)
252 -> libc::c_int;
253 pub fn gr_mat_set_si(res: *mut gr_mat_struct, v: slong, ctx: *mut gr_ctx_struct)
254 -> libc::c_int;
255 pub fn gr_mat_set_fmpz(
256 res: *mut gr_mat_struct,
257 v: *const fmpz,
258 ctx: *mut gr_ctx_struct,
259 ) -> libc::c_int;
260 pub fn gr_mat_set_fmpq(
261 res: *mut gr_mat_struct,
262 v: *const fmpq,
263 ctx: *mut gr_ctx_struct,
264 ) -> libc::c_int;
265 pub fn gr_mat_set_fmpz_mat(
266 res: *mut gr_mat_struct,
267 mat: *const fmpz_mat_struct,
268 ctx: *mut gr_ctx_struct,
269 ) -> libc::c_int;
270 pub fn gr_mat_set_fmpq_mat(
271 res: *mut gr_mat_struct,
272 mat: *const fmpq_mat_struct,
273 ctx: *mut gr_ctx_struct,
274 ) -> libc::c_int;
275 pub fn gr_mat_set_gr_mat_other(
276 res: *mut gr_mat_struct,
277 mat: *const gr_mat_struct,
278 mat_ctx: *mut gr_ctx_struct,
279 ctx: *mut gr_ctx_struct,
280 ) -> libc::c_int;
281 pub fn gr_mat_neg(
282 res: *mut gr_mat_struct,
283 mat: *const gr_mat_struct,
284 ctx: *mut gr_ctx_struct,
285 ) -> libc::c_int;
286 pub fn gr_mat_swap_entrywise(
287 mat1: *mut gr_mat_struct,
288 mat2: *const gr_mat_struct,
289 ctx: *mut gr_ctx_struct,
290 ) -> libc::c_int;
291 pub fn gr_mat_add(
292 res: *mut gr_mat_struct,
293 mat1: *const gr_mat_struct,
294 mat2: *const gr_mat_struct,
295 ctx: *mut gr_ctx_struct,
296 ) -> libc::c_int;
297 pub fn gr_mat_sub(
298 res: *mut gr_mat_struct,
299 mat1: *const gr_mat_struct,
300 mat2: *const gr_mat_struct,
301 ctx: *mut gr_ctx_struct,
302 ) -> libc::c_int;
303 pub fn gr_mat_add_scalar(
304 res: *mut gr_mat_struct,
305 mat: *const gr_mat_struct,
306 x: gr_srcptr,
307 ctx: *mut gr_ctx_struct,
308 ) -> libc::c_int;
309 pub fn gr_mat_scalar_add(
310 res: *mut gr_mat_struct,
311 x: gr_srcptr,
312 mat: *const gr_mat_struct,
313 ctx: *mut gr_ctx_struct,
314 ) -> libc::c_int;
315 pub fn gr_mat_add_ui(
316 res: *mut gr_mat_struct,
317 mat: *const gr_mat_struct,
318 x: ulong,
319 ctx: *mut gr_ctx_struct,
320 ) -> libc::c_int;
321 pub fn gr_mat_add_si(
322 res: *mut gr_mat_struct,
323 mat: *const gr_mat_struct,
324 x: slong,
325 ctx: *mut gr_ctx_struct,
326 ) -> libc::c_int;
327 pub fn gr_mat_add_fmpz(
328 res: *mut gr_mat_struct,
329 mat: *const gr_mat_struct,
330 x: *const fmpz,
331 ctx: *mut gr_ctx_struct,
332 ) -> libc::c_int;
333 pub fn gr_mat_add_fmpq(
334 res: *mut gr_mat_struct,
335 mat: *const gr_mat_struct,
336 x: *const fmpq,
337 ctx: *mut gr_ctx_struct,
338 ) -> libc::c_int;
339 pub fn gr_mat_add_scalar_other(
340 res: *mut gr_mat_struct,
341 mat: *const gr_mat_struct,
342 x: gr_srcptr,
343 x_ctx: *mut gr_ctx_struct,
344 ctx: *mut gr_ctx_struct,
345 ) -> libc::c_int;
346 pub fn gr_mat_scalar_other_add(
347 res: *mut gr_mat_struct,
348 x: gr_srcptr,
349 x_ctx: *mut gr_ctx_struct,
350 mat: *const gr_mat_struct,
351 ctx: *mut gr_ctx_struct,
352 ) -> libc::c_int;
353 pub fn gr_mat_sub_scalar(
354 res: *mut gr_mat_struct,
355 mat: *const gr_mat_struct,
356 x: gr_srcptr,
357 ctx: *mut gr_ctx_struct,
358 ) -> libc::c_int;
359 pub fn gr_mat_scalar_sub(
360 res: *mut gr_mat_struct,
361 x: gr_srcptr,
362 mat: *const gr_mat_struct,
363 ctx: *mut gr_ctx_struct,
364 ) -> libc::c_int;
365 pub fn gr_mat_sub_ui(
366 res: *mut gr_mat_struct,
367 mat: *const gr_mat_struct,
368 x: ulong,
369 ctx: *mut gr_ctx_struct,
370 ) -> libc::c_int;
371 pub fn gr_mat_sub_si(
372 res: *mut gr_mat_struct,
373 mat: *const gr_mat_struct,
374 x: slong,
375 ctx: *mut gr_ctx_struct,
376 ) -> libc::c_int;
377 pub fn gr_mat_sub_fmpz(
378 res: *mut gr_mat_struct,
379 mat: *const gr_mat_struct,
380 x: *const fmpz,
381 ctx: *mut gr_ctx_struct,
382 ) -> libc::c_int;
383 pub fn gr_mat_sub_fmpq(
384 res: *mut gr_mat_struct,
385 mat: *const gr_mat_struct,
386 x: *const fmpq,
387 ctx: *mut gr_ctx_struct,
388 ) -> libc::c_int;
389 pub fn gr_mat_sub_scalar_other(
390 res: *mut gr_mat_struct,
391 mat: *const gr_mat_struct,
392 x: gr_srcptr,
393 x_ctx: *mut gr_ctx_struct,
394 ctx: *mut gr_ctx_struct,
395 ) -> libc::c_int;
396 pub fn gr_mat_scalar_other_sub(
397 res: *mut gr_mat_struct,
398 x: gr_srcptr,
399 x_ctx: *mut gr_ctx_struct,
400 mat: *const gr_mat_struct,
401 ctx: *mut gr_ctx_struct,
402 ) -> libc::c_int;
403 pub fn gr_mat_mul_scalar(
404 res: *mut gr_mat_struct,
405 mat: *const gr_mat_struct,
406 x: gr_srcptr,
407 ctx: *mut gr_ctx_struct,
408 ) -> libc::c_int;
409 pub fn gr_mat_scalar_mul(
410 res: *mut gr_mat_struct,
411 x: gr_srcptr,
412 mat: *const gr_mat_struct,
413 ctx: *mut gr_ctx_struct,
414 ) -> libc::c_int;
415 pub fn gr_mat_mul_ui(
416 res: *mut gr_mat_struct,
417 mat: *const gr_mat_struct,
418 x: ulong,
419 ctx: *mut gr_ctx_struct,
420 ) -> libc::c_int;
421 pub fn gr_mat_mul_si(
422 res: *mut gr_mat_struct,
423 mat: *const gr_mat_struct,
424 x: slong,
425 ctx: *mut gr_ctx_struct,
426 ) -> libc::c_int;
427 pub fn gr_mat_mul_fmpz(
428 res: *mut gr_mat_struct,
429 mat: *const gr_mat_struct,
430 x: *const fmpz,
431 ctx: *mut gr_ctx_struct,
432 ) -> libc::c_int;
433 pub fn gr_mat_mul_fmpq(
434 res: *mut gr_mat_struct,
435 mat: *const gr_mat_struct,
436 x: *const fmpq,
437 ctx: *mut gr_ctx_struct,
438 ) -> libc::c_int;
439 pub fn gr_mat_mul_scalar_other(
440 res: *mut gr_mat_struct,
441 mat: *const gr_mat_struct,
442 x: gr_srcptr,
443 x_ctx: *mut gr_ctx_struct,
444 ctx: *mut gr_ctx_struct,
445 ) -> libc::c_int;
446 pub fn gr_mat_scalar_other_mul(
447 res: *mut gr_mat_struct,
448 x: gr_srcptr,
449 x_ctx: *mut gr_ctx_struct,
450 mat: *const gr_mat_struct,
451 ctx: *mut gr_ctx_struct,
452 ) -> libc::c_int;
453 pub fn gr_mat_div_scalar(
454 res: *mut gr_mat_struct,
455 mat: *const gr_mat_struct,
456 x: gr_srcptr,
457 ctx: *mut gr_ctx_struct,
458 ) -> libc::c_int;
459 pub fn gr_mat_div_scalar_other(
460 res: *mut gr_mat_struct,
461 mat: *const gr_mat_struct,
462 x: gr_srcptr,
463 x_ctx: *mut gr_ctx_struct,
464 ctx: *mut gr_ctx_struct,
465 ) -> libc::c_int;
466 pub fn gr_mat_div_ui(
467 res: *mut gr_mat_struct,
468 mat: *const gr_mat_struct,
469 x: ulong,
470 ctx: *mut gr_ctx_struct,
471 ) -> libc::c_int;
472 pub fn gr_mat_div_si(
473 res: *mut gr_mat_struct,
474 mat: *const gr_mat_struct,
475 x: slong,
476 ctx: *mut gr_ctx_struct,
477 ) -> libc::c_int;
478 pub fn gr_mat_div_fmpz(
479 res: *mut gr_mat_struct,
480 mat: *const gr_mat_struct,
481 x: *const fmpz,
482 ctx: *mut gr_ctx_struct,
483 ) -> libc::c_int;
484 pub fn gr_mat_div_fmpq(
485 res: *mut gr_mat_struct,
486 mat: *const gr_mat_struct,
487 x: *const fmpq,
488 ctx: *mut gr_ctx_struct,
489 ) -> libc::c_int;
490 pub fn gr_mat_addmul_scalar(
491 res: *mut gr_mat_struct,
492 mat: *const gr_mat_struct,
493 x: gr_srcptr,
494 ctx: *mut gr_ctx_struct,
495 ) -> libc::c_int;
496 pub fn gr_mat_submul_scalar(
497 res: *mut gr_mat_struct,
498 mat: *const gr_mat_struct,
499 x: gr_srcptr,
500 ctx: *mut gr_ctx_struct,
501 ) -> libc::c_int;
502 pub fn gr_mat_mul_classical(
503 C: *mut gr_mat_struct,
504 A: *const gr_mat_struct,
505 B: *const gr_mat_struct,
506 ctx: *mut gr_ctx_struct,
507 ) -> libc::c_int;
508 pub fn gr_mat_mul_strassen(
509 C: *mut gr_mat_struct,
510 A: *const gr_mat_struct,
511 B: *const gr_mat_struct,
512 ctx: *mut gr_ctx_struct,
513 ) -> libc::c_int;
514 pub fn gr_mat_mul_waksman(
515 C: *mut gr_mat_struct,
516 A: *const gr_mat_struct,
517 B: *const gr_mat_struct,
518 ctx: *mut gr_ctx_struct,
519 ) -> libc::c_int;
520 pub fn gr_mat_mul_rosowski(
521 C: *mut gr_mat_struct,
522 A: *const gr_mat_struct,
523 B: *const gr_mat_struct,
524 ctx: *mut gr_ctx_struct,
525 ) -> libc::c_int;
526 pub fn gr_mat_mul_generic(
527 C: *mut gr_mat_struct,
528 A: *const gr_mat_struct,
529 B: *const gr_mat_struct,
530 ctx: *mut gr_ctx_struct,
531 ) -> libc::c_int;
532 pub fn gr_mat_mul(
533 C: *mut gr_mat_struct,
534 A: *const gr_mat_struct,
535 B: *const gr_mat_struct,
536 ctx: *mut gr_ctx_struct,
537 ) -> libc::c_int;
538 #[link_name = "gr_mat_sqr__extern"]
539 pub fn gr_mat_sqr(
540 res: *mut gr_mat_struct,
541 mat: *const gr_mat_struct,
542 ctx: *mut gr_ctx_struct,
543 ) -> libc::c_int;
544 pub fn gr_mat_pow_ui(
545 res: *mut gr_mat_struct,
546 mat: *const gr_mat_struct,
547 exp: ulong,
548 ctx: *mut gr_ctx_struct,
549 ) -> libc::c_int;
550 pub fn gr_mat_pow_si(
551 res: *mut gr_mat_struct,
552 mat: *const gr_mat_struct,
553 exp: slong,
554 ctx: *mut gr_ctx_struct,
555 ) -> libc::c_int;
556 pub fn gr_mat_pow_fmpz(
557 res: *mut gr_mat_struct,
558 mat: *const gr_mat_struct,
559 exp: *const fmpz,
560 ctx: *mut gr_ctx_struct,
561 ) -> libc::c_int;
562 pub fn _gr_mat_gr_poly_evaluate(
563 y: *mut gr_mat_struct,
564 poly: gr_srcptr,
565 len: slong,
566 x: *const gr_mat_struct,
567 ctx: *mut gr_ctx_struct,
568 ) -> libc::c_int;
569 pub fn gr_mat_gr_poly_evaluate(
570 res: *mut gr_mat_struct,
571 f: *const gr_poly_struct,
572 a: *const gr_mat_struct,
573 ctx: *mut gr_ctx_struct,
574 ) -> libc::c_int;
575 pub fn gr_mat_find_nonzero_pivot_large_abs(
576 pivot_row: *mut slong,
577 mat: *mut gr_mat_struct,
578 start_row: slong,
579 end_row: slong,
580 column: slong,
581 ctx: *mut gr_ctx_struct,
582 ) -> libc::c_int;
583 pub fn gr_mat_find_nonzero_pivot_generic(
584 pivot_row: *mut slong,
585 mat: *mut gr_mat_struct,
586 start_row: slong,
587 end_row: slong,
588 column: slong,
589 ctx: *mut gr_ctx_struct,
590 ) -> libc::c_int;
591 pub fn gr_mat_find_nonzero_pivot(
592 pivot_row: *mut slong,
593 mat: *mut gr_mat_struct,
594 start_row: slong,
595 end_row: slong,
596 column: slong,
597 ctx: *mut gr_ctx_struct,
598 ) -> libc::c_int;
599 pub fn gr_mat_lu_recursive(
600 rank: *mut slong,
601 P: *mut slong,
602 LU: *mut gr_mat_struct,
603 A: *const gr_mat_struct,
604 rank_check: libc::c_int,
605 ctx: *mut gr_ctx_struct,
606 ) -> libc::c_int;
607 pub fn gr_mat_lu_classical(
608 rank: *mut slong,
609 P: *mut slong,
610 LU: *mut gr_mat_struct,
611 A: *const gr_mat_struct,
612 rank_check: libc::c_int,
613 ctx: *mut gr_ctx_struct,
614 ) -> libc::c_int;
615 pub fn gr_mat_lu_generic(
616 rank: *mut slong,
617 P: *mut slong,
618 LU: *mut gr_mat_struct,
619 A: *const gr_mat_struct,
620 rank_check: libc::c_int,
621 ctx: *mut gr_ctx_struct,
622 ) -> libc::c_int;
623 pub fn gr_mat_lu(
624 rank: *mut slong,
625 P: *mut slong,
626 LU: *mut gr_mat_struct,
627 A: *const gr_mat_struct,
628 rank_check: libc::c_int,
629 ctx: *mut gr_ctx_struct,
630 ) -> libc::c_int;
631 pub fn gr_mat_fflu(
632 res_rank: *mut slong,
633 P: *mut slong,
634 LU: *mut gr_mat_struct,
635 den: gr_ptr,
636 A: *const gr_mat_struct,
637 rank_check: libc::c_int,
638 ctx: *mut gr_ctx_struct,
639 ) -> libc::c_int;
640 pub fn gr_mat_nonsingular_solve_fflu(
641 X: *mut gr_mat_struct,
642 A: *const gr_mat_struct,
643 B: *const gr_mat_struct,
644 ctx: *mut gr_ctx_struct,
645 ) -> libc::c_int;
646 pub fn gr_mat_nonsingular_solve_lu(
647 X: *mut gr_mat_struct,
648 A: *const gr_mat_struct,
649 B: *const gr_mat_struct,
650 ctx: *mut gr_ctx_struct,
651 ) -> libc::c_int;
652 pub fn gr_mat_nonsingular_solve(
653 X: *mut gr_mat_struct,
654 A: *const gr_mat_struct,
655 B: *const gr_mat_struct,
656 ctx: *mut gr_ctx_struct,
657 ) -> libc::c_int;
658 pub fn gr_mat_nonsingular_solve_fflu_precomp(
659 X: *mut gr_mat_struct,
660 perm: *const slong,
661 A: *const gr_mat_struct,
662 B: *const gr_mat_struct,
663 ctx: *mut gr_ctx_struct,
664 ) -> libc::c_int;
665 pub fn gr_mat_nonsingular_solve_lu_precomp(
666 X: *mut gr_mat_struct,
667 perm: *const slong,
668 A: *const gr_mat_struct,
669 B: *const gr_mat_struct,
670 ctx: *mut gr_ctx_struct,
671 ) -> libc::c_int;
672 pub fn gr_mat_nonsingular_solve_den_fflu(
673 X: *mut gr_mat_struct,
674 den: gr_ptr,
675 A: *const gr_mat_struct,
676 B: *const gr_mat_struct,
677 ctx: *mut gr_ctx_struct,
678 ) -> libc::c_int;
679 pub fn gr_mat_nonsingular_solve_den(
680 X: *mut gr_mat_struct,
681 den: gr_ptr,
682 A: *const gr_mat_struct,
683 B: *const gr_mat_struct,
684 ctx: *mut gr_ctx_struct,
685 ) -> libc::c_int;
686 pub fn gr_mat_solve_field(
687 X: *mut gr_mat_struct,
688 A: *const gr_mat_struct,
689 B: *const gr_mat_struct,
690 ctx: *mut gr_ctx_struct,
691 ) -> libc::c_int;
692 pub fn gr_mat_det_berkowitz(
693 res: gr_ptr,
694 A: *const gr_mat_struct,
695 ctx: *mut gr_ctx_struct,
696 ) -> libc::c_int;
697 pub fn gr_mat_det_fflu(
698 res: gr_ptr,
699 A: *const gr_mat_struct,
700 ctx: *mut gr_ctx_struct,
701 ) -> libc::c_int;
702 pub fn gr_mat_det_lu(
703 res: gr_ptr,
704 A: *const gr_mat_struct,
705 ctx: *mut gr_ctx_struct,
706 ) -> libc::c_int;
707 pub fn gr_mat_det_cofactor(
708 res: gr_ptr,
709 A: *const gr_mat_struct,
710 ctx: *mut gr_ctx_struct,
711 ) -> libc::c_int;
712 pub fn gr_mat_det_generic_field(
713 res: gr_ptr,
714 A: *const gr_mat_struct,
715 ctx: *mut gr_ctx_struct,
716 ) -> libc::c_int;
717 pub fn gr_mat_det_generic_integral_domain(
718 res: gr_ptr,
719 A: *const gr_mat_struct,
720 ctx: *mut gr_ctx_struct,
721 ) -> libc::c_int;
722 pub fn gr_mat_det_generic(
723 res: gr_ptr,
724 A: *const gr_mat_struct,
725 ctx: *mut gr_ctx_struct,
726 ) -> libc::c_int;
727 pub fn gr_mat_det(res: gr_ptr, A: *const gr_mat_struct, ctx: *mut gr_ctx_struct)
728 -> libc::c_int;
729 pub fn gr_mat_inv(
730 res: *mut gr_mat_struct,
731 mat: *const gr_mat_struct,
732 ctx: *mut gr_ctx_struct,
733 ) -> libc::c_int;
734 pub fn gr_mat_adjugate_charpoly(
735 adj: *mut gr_mat_struct,
736 det: gr_ptr,
737 A: *const gr_mat_struct,
738 ctx: *mut gr_ctx_struct,
739 ) -> libc::c_int;
740 pub fn gr_mat_adjugate_cofactor(
741 adj: *mut gr_mat_struct,
742 det: gr_ptr,
743 A: *const gr_mat_struct,
744 ctx: *mut gr_ctx_struct,
745 ) -> libc::c_int;
746 pub fn gr_mat_adjugate(
747 adj: *mut gr_mat_struct,
748 det: gr_ptr,
749 A: *const gr_mat_struct,
750 ctx: *mut gr_ctx_struct,
751 ) -> libc::c_int;
752 pub fn gr_mat_permanent_cofactor(
753 res: gr_ptr,
754 A: *const gr_mat_struct,
755 ctx: *mut gr_ctx_struct,
756 ) -> libc::c_int;
757 pub fn gr_mat_permanent_ryser(
758 res: gr_ptr,
759 A: *const gr_mat_struct,
760 ctx: *mut gr_ctx_struct,
761 ) -> libc::c_int;
762 pub fn gr_mat_permanent_glynn(
763 res: gr_ptr,
764 A: *const gr_mat_struct,
765 ctx: *mut gr_ctx_struct,
766 ) -> libc::c_int;
767 pub fn gr_mat_permanent_glynn_threaded(
768 res: gr_ptr,
769 A: *const gr_mat_struct,
770 ctx: *mut gr_ctx_struct,
771 ) -> libc::c_int;
772 pub fn gr_mat_permanent_generic(
773 res: gr_ptr,
774 A: *const gr_mat_struct,
775 ctx: *mut gr_ctx_struct,
776 ) -> libc::c_int;
777 pub fn gr_mat_permanent(
778 res: gr_ptr,
779 A: *const gr_mat_struct,
780 ctx: *mut gr_ctx_struct,
781 ) -> libc::c_int;
782 pub fn gr_mat_rank_lu(
783 rank: *mut slong,
784 A: *const gr_mat_struct,
785 ctx: *mut gr_ctx_struct,
786 ) -> libc::c_int;
787 pub fn gr_mat_rank_fflu(
788 rank: *mut slong,
789 A: *const gr_mat_struct,
790 ctx: *mut gr_ctx_struct,
791 ) -> libc::c_int;
792 pub fn gr_mat_rank(
793 rank: *mut slong,
794 A: *const gr_mat_struct,
795 ctx: *mut gr_ctx_struct,
796 ) -> libc::c_int;
797 pub fn gr_mat_rref_lu(
798 res_rank: *mut slong,
799 R: *mut gr_mat_struct,
800 A: *const gr_mat_struct,
801 ctx: *mut gr_ctx_struct,
802 ) -> libc::c_int;
803 pub fn gr_mat_rref_fflu(
804 res_rank: *mut slong,
805 R: *mut gr_mat_struct,
806 A: *const gr_mat_struct,
807 ctx: *mut gr_ctx_struct,
808 ) -> libc::c_int;
809 pub fn gr_mat_rref(
810 res_rank: *mut slong,
811 R: *mut gr_mat_struct,
812 A: *const gr_mat_struct,
813 ctx: *mut gr_ctx_struct,
814 ) -> libc::c_int;
815 pub fn gr_mat_rref_den_fflu(
816 res_rank: *mut slong,
817 R: *mut gr_mat_struct,
818 den: gr_ptr,
819 A: *const gr_mat_struct,
820 ctx: *mut gr_ctx_struct,
821 ) -> libc::c_int;
822 pub fn gr_mat_rref_den(
823 res_rank: *mut slong,
824 R: *mut gr_mat_struct,
825 den: gr_ptr,
826 A: *const gr_mat_struct,
827 ctx: *mut gr_ctx_struct,
828 ) -> libc::c_int;
829 pub fn gr_mat_nullspace_from_rref(
830 X: *mut gr_mat_struct,
831 A: *const gr_mat_struct,
832 Aden: gr_srcptr,
833 rank: slong,
834 ctx: *mut gr_ctx_struct,
835 ) -> libc::c_int;
836 pub fn gr_mat_nullspace_no_resize(
837 nullity: *mut slong,
838 X: *mut gr_mat_struct,
839 A: *const gr_mat_struct,
840 ctx: *mut gr_ctx_struct,
841 ) -> libc::c_int;
842 pub fn gr_mat_nullspace(
843 X: *mut gr_mat_struct,
844 A: *const gr_mat_struct,
845 ctx: *mut gr_ctx_struct,
846 ) -> libc::c_int;
847 pub fn gr_mat_ones(mat: *mut gr_mat_struct, ctx: *mut gr_ctx_struct) -> libc::c_int;
848 pub fn gr_mat_pascal(
849 mat: *mut gr_mat_struct,
850 triangular: libc::c_int,
851 ctx: *mut gr_ctx_struct,
852 ) -> libc::c_int;
853 pub fn gr_mat_stirling(
854 mat: *mut gr_mat_struct,
855 kind: libc::c_int,
856 ctx: *mut gr_ctx_struct,
857 ) -> libc::c_int;
858 pub fn gr_mat_hilbert(mat: *mut gr_mat_struct, ctx: *mut gr_ctx_struct) -> libc::c_int;
859 pub fn gr_mat_hadamard(mat: *mut gr_mat_struct, ctx: *mut gr_ctx_struct) -> libc::c_int;
860 pub fn gr_mat_transpose(
861 B: *mut gr_mat_struct,
862 A: *const gr_mat_struct,
863 ctx: *mut gr_ctx_struct,
864 ) -> libc::c_int;
865 pub fn gr_mat_nonsingular_solve_tril_classical(
866 X: *mut gr_mat_struct,
867 L: *const gr_mat_struct,
868 B: *const gr_mat_struct,
869 unit: libc::c_int,
870 ctx: *mut gr_ctx_struct,
871 ) -> libc::c_int;
872 pub fn gr_mat_nonsingular_solve_tril_recursive(
873 X: *mut gr_mat_struct,
874 L: *const gr_mat_struct,
875 B: *const gr_mat_struct,
876 unit: libc::c_int,
877 ctx: *mut gr_ctx_struct,
878 ) -> libc::c_int;
879 pub fn gr_mat_nonsingular_solve_tril_generic(
880 X: *mut gr_mat_struct,
881 L: *const gr_mat_struct,
882 B: *const gr_mat_struct,
883 unit: libc::c_int,
884 ctx: *mut gr_ctx_struct,
885 ) -> libc::c_int;
886 pub fn gr_mat_nonsingular_solve_tril(
887 X: *mut gr_mat_struct,
888 L: *const gr_mat_struct,
889 B: *const gr_mat_struct,
890 unit: libc::c_int,
891 ctx: *mut gr_ctx_struct,
892 ) -> libc::c_int;
893 pub fn gr_mat_nonsingular_solve_triu_classical(
894 X: *mut gr_mat_struct,
895 U: *const gr_mat_struct,
896 B: *const gr_mat_struct,
897 unit: libc::c_int,
898 ctx: *mut gr_ctx_struct,
899 ) -> libc::c_int;
900 pub fn gr_mat_nonsingular_solve_triu_recursive(
901 X: *mut gr_mat_struct,
902 U: *const gr_mat_struct,
903 B: *const gr_mat_struct,
904 unit: libc::c_int,
905 ctx: *mut gr_ctx_struct,
906 ) -> libc::c_int;
907 pub fn gr_mat_nonsingular_solve_triu_generic(
908 X: *mut gr_mat_struct,
909 L: *const gr_mat_struct,
910 B: *const gr_mat_struct,
911 unit: libc::c_int,
912 ctx: *mut gr_ctx_struct,
913 ) -> libc::c_int;
914 pub fn gr_mat_nonsingular_solve_triu(
915 X: *mut gr_mat_struct,
916 U: *const gr_mat_struct,
917 B: *const gr_mat_struct,
918 unit: libc::c_int,
919 ctx: *mut gr_ctx_struct,
920 ) -> libc::c_int;
921 pub fn gr_mat_trace(
922 res: gr_ptr,
923 mat: *const gr_mat_struct,
924 ctx: *mut gr_ctx_struct,
925 ) -> libc::c_int;
926 pub fn _gr_mat_charpoly_berkowitz(
927 res: gr_ptr,
928 mat: *const gr_mat_struct,
929 ctx: *mut gr_ctx_struct,
930 ) -> libc::c_int;
931 pub fn gr_mat_charpoly_berkowitz(
932 res: *mut gr_poly_struct,
933 mat: *const gr_mat_struct,
934 ctx: *mut gr_ctx_struct,
935 ) -> libc::c_int;
936 pub fn _gr_mat_charpoly_danilevsky_inplace(
937 res: gr_ptr,
938 mat: *mut gr_mat_struct,
939 ctx: *mut gr_ctx_struct,
940 ) -> libc::c_int;
941 pub fn _gr_mat_charpoly_danilevsky(
942 res: gr_ptr,
943 mat: *const gr_mat_struct,
944 ctx: *mut gr_ctx_struct,
945 ) -> libc::c_int;
946 pub fn gr_mat_charpoly_danilevsky(
947 res: *mut gr_poly_struct,
948 mat: *const gr_mat_struct,
949 ctx: *mut gr_ctx_struct,
950 ) -> libc::c_int;
951 pub fn _gr_mat_charpoly_faddeev(
952 res: gr_ptr,
953 adj: *mut gr_mat_struct,
954 mat: *const gr_mat_struct,
955 ctx: *mut gr_ctx_struct,
956 ) -> libc::c_int;
957 pub fn gr_mat_charpoly_faddeev(
958 res: *mut gr_poly_struct,
959 adj: *mut gr_mat_struct,
960 mat: *const gr_mat_struct,
961 ctx: *mut gr_ctx_struct,
962 ) -> libc::c_int;
963 pub fn _gr_mat_charpoly_faddeev_bsgs(
964 res: gr_ptr,
965 adj: *mut gr_mat_struct,
966 mat: *const gr_mat_struct,
967 ctx: *mut gr_ctx_struct,
968 ) -> libc::c_int;
969 pub fn gr_mat_charpoly_faddeev_bsgs(
970 res: *mut gr_poly_struct,
971 adj: *mut gr_mat_struct,
972 mat: *const gr_mat_struct,
973 ctx: *mut gr_ctx_struct,
974 ) -> libc::c_int;
975 pub fn _gr_mat_charpoly_from_hessenberg(
976 res: gr_ptr,
977 mat: *const gr_mat_struct,
978 ctx: *mut gr_ctx_struct,
979 ) -> libc::c_int;
980 pub fn gr_mat_charpoly_from_hessenberg(
981 cp: *mut gr_poly_struct,
982 mat: *const gr_mat_struct,
983 ctx: *mut gr_ctx_struct,
984 ) -> libc::c_int;
985 pub fn _gr_mat_charpoly_gauss(
986 res: gr_ptr,
987 mat: *const gr_mat_struct,
988 ctx: *mut gr_ctx_struct,
989 ) -> libc::c_int;
990 pub fn gr_mat_charpoly_gauss(
991 cp: *mut gr_poly_struct,
992 mat: *const gr_mat_struct,
993 ctx: *mut gr_ctx_struct,
994 ) -> libc::c_int;
995 pub fn _gr_mat_charpoly_householder(
996 res: gr_ptr,
997 mat: *const gr_mat_struct,
998 ctx: *mut gr_ctx_struct,
999 ) -> libc::c_int;
1000 pub fn gr_mat_charpoly_householder(
1001 cp: *mut gr_poly_struct,
1002 mat: *const gr_mat_struct,
1003 ctx: *mut gr_ctx_struct,
1004 ) -> libc::c_int;
1005 pub fn _gr_mat_charpoly_generic(
1006 res: gr_ptr,
1007 mat: *const gr_mat_struct,
1008 ctx: *mut gr_ctx_struct,
1009 ) -> libc::c_int;
1010 pub fn gr_mat_charpoly_generic(
1011 cp: *mut gr_poly_struct,
1012 mat: *const gr_mat_struct,
1013 ctx: *mut gr_ctx_struct,
1014 ) -> libc::c_int;
1015 pub fn _gr_mat_charpoly(
1016 res: gr_ptr,
1017 mat: *const gr_mat_struct,
1018 ctx: *mut gr_ctx_struct,
1019 ) -> libc::c_int;
1020 pub fn gr_mat_charpoly(
1021 res: *mut gr_poly_struct,
1022 mat: *const gr_mat_struct,
1023 ctx: *mut gr_ctx_struct,
1024 ) -> libc::c_int;
1025 pub fn _gr_mat_companion(
1026 res: *mut gr_mat_struct,
1027 poly: gr_srcptr,
1028 ctx: *mut gr_ctx_struct,
1029 ) -> libc::c_int;
1030 pub fn gr_mat_companion(
1031 res: *mut gr_mat_struct,
1032 poly: *const gr_poly_struct,
1033 ctx: *mut gr_ctx_struct,
1034 ) -> libc::c_int;
1035 pub fn _gr_mat_companion_fraction(
1036 res_num: *mut gr_mat_struct,
1037 res_den: gr_ptr,
1038 poly: gr_srcptr,
1039 ctx: *mut gr_ctx_struct,
1040 ) -> libc::c_int;
1041 pub fn gr_mat_companion_fraction(
1042 res_num: *mut gr_mat_struct,
1043 res_den: gr_ptr,
1044 poly: *const gr_poly_struct,
1045 ctx: *mut gr_ctx_struct,
1046 ) -> libc::c_int;
1047 pub fn gr_mat_hessenberg(
1048 res: *mut gr_mat_struct,
1049 mat: *const gr_mat_struct,
1050 ctx: *mut gr_ctx_struct,
1051 ) -> libc::c_int;
1052 pub fn gr_mat_hessenberg_gauss(
1053 res: *mut gr_mat_struct,
1054 mat: *const gr_mat_struct,
1055 ctx: *mut gr_ctx_struct,
1056 ) -> libc::c_int;
1057 pub fn gr_mat_hessenberg_householder(
1058 res: *mut gr_mat_struct,
1059 mat: *const gr_mat_struct,
1060 ctx: *mut gr_ctx_struct,
1061 ) -> libc::c_int;
1062 pub fn gr_mat_is_hessenberg(mat: *const gr_mat_struct, ctx: *mut gr_ctx_struct) -> truth_t;
1063 pub fn gr_mat_reduce_row_generic(
1064 column: *mut slong,
1065 A: *mut gr_mat_struct,
1066 P: *mut slong,
1067 L: *mut slong,
1068 m: slong,
1069 ctx: *mut gr_ctx_struct,
1070 ) -> libc::c_int;
1071 pub fn gr_mat_reduce_row(
1072 column: *mut slong,
1073 A: *mut gr_mat_struct,
1074 P: *mut slong,
1075 L: *mut slong,
1076 m: slong,
1077 ctx: *mut gr_ctx_struct,
1078 ) -> libc::c_int;
1079 pub fn gr_mat_apply_row_similarity(
1080 A: *mut gr_mat_struct,
1081 r: slong,
1082 d: gr_ptr,
1083 ctx: *mut gr_ctx_struct,
1084 ) -> libc::c_int;
1085 pub fn gr_mat_minpoly_field(
1086 p: *mut gr_poly_struct,
1087 X: *const gr_mat_struct,
1088 ctx: *mut gr_ctx_struct,
1089 ) -> libc::c_int;
1090 pub fn gr_mat_eigenvalues(
1091 lambda: *mut gr_vec_struct,
1092 mult: *mut gr_vec_struct,
1093 mat: *const gr_mat_struct,
1094 flags: libc::c_int,
1095 ctx: *mut gr_ctx_struct,
1096 ) -> libc::c_int;
1097 pub fn gr_mat_eigenvalues_other(
1098 lambda: *mut gr_vec_struct,
1099 mult: *mut gr_vec_struct,
1100 mat: *const gr_mat_struct,
1101 mat_ctx: *mut gr_ctx_struct,
1102 flags: libc::c_int,
1103 ctx: *mut gr_ctx_struct,
1104 ) -> libc::c_int;
1105 pub fn gr_mat_diagonalization_precomp(
1106 D: *mut gr_vec_struct,
1107 L: *mut gr_mat_struct,
1108 R: *mut gr_mat_struct,
1109 A: *const gr_mat_struct,
1110 eigenvalues: *const gr_vec_struct,
1111 mult: *const gr_vec_struct,
1112 ctx: *mut gr_ctx_struct,
1113 ) -> libc::c_int;
1114 pub fn gr_mat_diagonalization_generic(
1115 D: *mut gr_vec_struct,
1116 L: *mut gr_mat_struct,
1117 R: *mut gr_mat_struct,
1118 A: *const gr_mat_struct,
1119 flags: libc::c_int,
1120 ctx: *mut gr_ctx_struct,
1121 ) -> libc::c_int;
1122 pub fn gr_mat_diagonalization(
1123 D: *mut gr_vec_struct,
1124 L: *mut gr_mat_struct,
1125 R: *mut gr_mat_struct,
1126 A: *const gr_mat_struct,
1127 flags: libc::c_int,
1128 ctx: *mut gr_ctx_struct,
1129 ) -> libc::c_int;
1130 pub fn gr_mat_set_jordan_blocks(
1131 mat: *mut gr_mat_struct,
1132 lambda: *const gr_vec_struct,
1133 num_blocks: slong,
1134 block_lambda: *mut slong,
1135 block_size: *mut slong,
1136 ctx: *mut gr_ctx_struct,
1137 ) -> libc::c_int;
1138 pub fn gr_mat_jordan_blocks(
1139 lambda: *mut gr_vec_struct,
1140 num_blocks: *mut slong,
1141 block_lambda: *mut slong,
1142 block_size: *mut slong,
1143 A: *const gr_mat_struct,
1144 ctx: *mut gr_ctx_struct,
1145 ) -> libc::c_int;
1146 pub fn gr_mat_jordan_transformation(
1147 mat: *mut gr_mat_struct,
1148 lambda: *const gr_vec_struct,
1149 num_blocks: slong,
1150 block_lambda: *mut slong,
1151 block_size: *mut slong,
1152 A: *const gr_mat_struct,
1153 ctx: *mut gr_ctx_struct,
1154 ) -> libc::c_int;
1155 pub fn gr_mat_jordan_form(
1156 J: *mut gr_mat_struct,
1157 P: *mut gr_mat_struct,
1158 A: *const gr_mat_struct,
1159 ctx: *mut gr_ctx_struct,
1160 ) -> libc::c_int;
1161 pub fn gr_mat_is_scalar(mat: *const gr_mat_struct, ctx: *mut gr_ctx_struct) -> truth_t;
1162 pub fn gr_mat_is_diagonal(mat: *const gr_mat_struct, ctx: *mut gr_ctx_struct) -> truth_t;
1163 pub fn gr_mat_is_lower_triangular(
1164 mat: *const gr_mat_struct,
1165 ctx: *mut gr_ctx_struct,
1166 ) -> truth_t;
1167 pub fn gr_mat_is_upper_triangular(
1168 mat: *const gr_mat_struct,
1169 ctx: *mut gr_ctx_struct,
1170 ) -> truth_t;
1171 pub fn gr_mat_mul_diag(
1172 C: *mut gr_mat_struct,
1173 A: *const gr_mat_struct,
1174 D: *const gr_vec_struct,
1175 ctx: *mut gr_ctx_struct,
1176 ) -> libc::c_int;
1177 pub fn gr_mat_diag_mul(
1178 C: *mut gr_mat_struct,
1179 D: *const gr_vec_struct,
1180 A: *const gr_mat_struct,
1181 ctx: *mut gr_ctx_struct,
1182 ) -> libc::c_int;
1183 pub fn gr_mat_func_jordan(
1184 res: *mut gr_mat_struct,
1185 A: *const gr_mat_struct,
1186 jet_func: __gr_method_vec_op,
1187 ctx: *mut gr_ctx_struct,
1188 ) -> libc::c_int;
1189 pub fn gr_mat_func_param_jordan(
1190 res: *mut gr_mat_struct,
1191 A: *const gr_mat_struct,
1192 jet_func: __gr_method_vec_scalar_op,
1193 c: gr_srcptr,
1194 ctx: *mut gr_ctx_struct,
1195 ) -> libc::c_int;
1196 pub fn gr_mat_exp_jordan(
1197 res: *mut gr_mat_struct,
1198 A: *const gr_mat_struct,
1199 ctx: *mut gr_ctx_struct,
1200 ) -> libc::c_int;
1201 pub fn gr_mat_exp(
1202 res: *mut gr_mat_struct,
1203 A: *const gr_mat_struct,
1204 ctx: *mut gr_ctx_struct,
1205 ) -> libc::c_int;
1206 pub fn gr_mat_log_jordan(
1207 res: *mut gr_mat_struct,
1208 A: *const gr_mat_struct,
1209 ctx: *mut gr_ctx_struct,
1210 ) -> libc::c_int;
1211 pub fn gr_mat_log(
1212 res: *mut gr_mat_struct,
1213 A: *const gr_mat_struct,
1214 ctx: *mut gr_ctx_struct,
1215 ) -> libc::c_int;
1216 pub fn gr_mat_pow_scalar_jordan(
1217 res: *mut gr_mat_struct,
1218 A: *const gr_mat_struct,
1219 c: gr_srcptr,
1220 ctx: *mut gr_ctx_struct,
1221 ) -> libc::c_int;
1222 pub fn gr_mat_pow_scalar(
1223 res: *mut gr_mat_struct,
1224 A: *const gr_mat_struct,
1225 c: gr_srcptr,
1226 ctx: *mut gr_ctx_struct,
1227 ) -> libc::c_int;
1228 pub fn gr_mat_pow_fmpq_jordan(
1229 res: *mut gr_mat_struct,
1230 mat: *const gr_mat_struct,
1231 exp: *const fmpq,
1232 ctx: *mut gr_ctx_struct,
1233 ) -> libc::c_int;
1234 pub fn gr_mat_pow_fmpq(
1235 res: *mut gr_mat_struct,
1236 mat: *const gr_mat_struct,
1237 exp: *const fmpq,
1238 ctx: *mut gr_ctx_struct,
1239 ) -> libc::c_int;
1240 pub fn gr_mat_sqrt(
1241 res: *mut gr_mat_struct,
1242 A: *const gr_mat_struct,
1243 ctx: *mut gr_ctx_struct,
1244 ) -> libc::c_int;
1245 pub fn gr_mat_rsqrt(
1246 res: *mut gr_mat_struct,
1247 A: *const gr_mat_struct,
1248 ctx: *mut gr_ctx_struct,
1249 ) -> libc::c_int;
1250 pub fn gr_mat_norm_max(
1251 res: gr_ptr,
1252 mat: *const gr_mat_struct,
1253 ctx: *mut gr_ctx_struct,
1254 ) -> libc::c_int;
1255 pub fn gr_mat_norm_1(
1256 res: gr_ptr,
1257 mat: *const gr_mat_struct,
1258 ctx: *mut gr_ctx_struct,
1259 ) -> libc::c_int;
1260 pub fn gr_mat_norm_inf(
1261 res: gr_ptr,
1262 mat: *const gr_mat_struct,
1263 ctx: *mut gr_ctx_struct,
1264 ) -> libc::c_int;
1265 pub fn gr_mat_norm_frobenius(
1266 res: gr_ptr,
1267 mat: *const gr_mat_struct,
1268 ctx: *mut gr_ctx_struct,
1269 ) -> libc::c_int;
1270 pub fn gr_mat_is_orthogonal(A: *const gr_mat_struct, ctx: *mut gr_ctx_struct) -> truth_t;
1271 pub fn gr_mat_is_row_orthogonal(A: *const gr_mat_struct, ctx: *mut gr_ctx_struct) -> truth_t;
1272 pub fn gr_mat_is_row_orthonormal(A: *const gr_mat_struct, ctx: *mut gr_ctx_struct) -> truth_t;
1273 pub fn gr_mat_is_col_orthogonal(A: *const gr_mat_struct, ctx: *mut gr_ctx_struct) -> truth_t;
1274 pub fn gr_mat_is_col_orthonormal(A: *const gr_mat_struct, ctx: *mut gr_ctx_struct) -> truth_t;
1275 pub fn gr_mat_randtest_orthogonal(
1276 A: *mut gr_mat_struct,
1277 state: *mut flint_rand_struct,
1278 ctx: *mut gr_ctx_struct,
1279 ) -> libc::c_int;
1280 pub fn gr_mat_lq_gso(
1281 L: *mut gr_mat_struct,
1282 Q: *mut gr_mat_struct,
1283 A: *const gr_mat_struct,
1284 ctx: *mut gr_ctx_struct,
1285 ) -> libc::c_int;
1286 pub fn gr_mat_lq_recursive(
1287 L: *mut gr_mat_struct,
1288 Q: *mut gr_mat_struct,
1289 A: *const gr_mat_struct,
1290 ctx: *mut gr_ctx_struct,
1291 ) -> libc::c_int;
1292 pub fn gr_mat_lq_generic(
1293 L: *mut gr_mat_struct,
1294 Q: *mut gr_mat_struct,
1295 A: *const gr_mat_struct,
1296 ctx: *mut gr_ctx_struct,
1297 ) -> libc::c_int;
1298 pub fn gr_mat_lq(
1299 L: *mut gr_mat_struct,
1300 Q: *mut gr_mat_struct,
1301 A: *const gr_mat_struct,
1302 ctx: *mut gr_ctx_struct,
1303 ) -> libc::c_int;
1304 pub fn gr_mat_qr(
1305 Q: *mut gr_mat_struct,
1306 R: *mut gr_mat_struct,
1307 A: *const gr_mat_struct,
1308 ctx: *mut gr_ctx_struct,
1309 ) -> libc::c_int;
1310 pub fn gr_mat_is_row_lll_reduced_naive(
1311 A: *const gr_mat_struct,
1312 delta: gr_srcptr,
1313 eta: gr_srcptr,
1314 ctx: *mut gr_ctx_struct,
1315 ) -> truth_t;
1316 pub fn gr_mat_is_row_lll_reduced_with_removal_naive(
1317 A: *const gr_mat_struct,
1318 delta: gr_srcptr,
1319 eta: gr_srcptr,
1320 gs_B: gr_srcptr,
1321 newd: slong,
1322 ctx: *mut gr_ctx_struct,
1323 ) -> truth_t;
1324 pub fn _gr_mat_gr_poly_solve_lode_newton_start(
1325 Y: *mut gr_mat_struct,
1326 Z: *mut gr_mat_struct,
1327 A_denominator_inv: *mut gr_poly_struct,
1328 A_numerator: *const gr_mat_struct,
1329 A_denominator: *const gr_poly_struct,
1330 Y0: *const gr_mat_struct,
1331 sol_poly_ctx: *mut gr_ctx_struct,
1332 ) -> libc::c_int;
1333 pub fn _gr_mat_gr_poly_solve_lode_newton_step(
1334 Y: *mut gr_mat_struct,
1335 Z: *mut gr_mat_struct,
1336 A_denominator_inv: *mut gr_poly_struct,
1337 len: slong,
1338 A_numerator: *const gr_mat_struct,
1339 A_denominator: *const gr_poly_struct,
1340 A_is_companion: libc::c_int,
1341 sol_poly_ctx: *mut gr_ctx_struct,
1342 ) -> libc::c_int;
1343 pub fn _gr_mat_gr_poly_solve_lode_newton(
1344 Y: *mut gr_mat_struct,
1345 Z: *mut gr_mat_struct,
1346 A_numerator: *const gr_mat_struct,
1347 A_denominator: *const gr_poly_struct,
1348 Y0: *const gr_mat_struct,
1349 len: slong,
1350 A_poly_ctx: *mut gr_ctx_struct,
1351 sol_poly_ctx: *mut gr_ctx_struct,
1352 ) -> libc::c_int;
1353 pub fn gr_mat_gr_poly_solve_lode_newton(
1354 Y: *mut gr_mat_struct,
1355 A_numerator: *const gr_mat_struct,
1356 A_denominator: *const gr_poly_struct,
1357 Y0: *const gr_mat_struct,
1358 len: slong,
1359 A_poly_ctx: *mut gr_ctx_struct,
1360 sol_poly_ctx: *mut gr_ctx_struct,
1361 ) -> libc::c_int;
1362 pub fn gr_mat_test_mul(
1363 mul_impl: gr_method_mat_binary_op,
1364 state: *mut flint_rand_struct,
1365 iters: slong,
1366 maxn: slong,
1367 ctx: *mut gr_ctx_struct,
1368 );
1369 pub fn gr_mat_test_lu(
1370 lu_impl: gr_method_mat_lu_op,
1371 state: *mut flint_rand_struct,
1372 iters: slong,
1373 maxn: slong,
1374 ctx: *mut gr_ctx_struct,
1375 );
1376 pub fn gr_mat_test_det(
1377 det_impl: gr_method_mat_unary_op_get_scalar,
1378 state: *mut flint_rand_struct,
1379 iters: slong,
1380 maxn: slong,
1381 ctx: *mut gr_ctx_struct,
1382 );
1383 pub fn gr_mat_test_charpoly(
1384 charpoly_impl: gr_method_mat_unary_op_get_scalar,
1385 state: *mut flint_rand_struct,
1386 iters: slong,
1387 maxn: slong,
1388 ctx: *mut gr_ctx_struct,
1389 );
1390 pub fn gr_mat_test_nonsingular_solve_tril(
1391 solve_impl: gr_method_mat_binary_op_with_flag,
1392 state: *mut flint_rand_struct,
1393 iters: slong,
1394 maxn: slong,
1395 ctx: *mut gr_ctx_struct,
1396 );
1397 pub fn gr_mat_test_nonsingular_solve_triu(
1398 solve_impl: gr_method_mat_binary_op_with_flag,
1399 state: *mut flint_rand_struct,
1400 iters: slong,
1401 maxn: slong,
1402 ctx: *mut gr_ctx_struct,
1403 );
1404 pub fn gr_mat_test_approx_mul_max_norm(
1405 mul_impl: gr_method_mat_binary_op,
1406 rel_tol: gr_srcptr,
1407 state: *mut flint_rand_struct,
1408 iters: slong,
1409 maxn: slong,
1410 ctx: *mut gr_ctx_struct,
1411 );
1412 pub fn gr_mat_test_approx_mul_pos_entrywise_accurate(
1413 mul_impl: gr_method_mat_binary_op,
1414 rel_tol: gr_srcptr,
1415 state: *mut flint_rand_struct,
1416 iters: slong,
1417 maxn: slong,
1418 ctx: *mut gr_ctx_struct,
1419 );
1420}