1use libc::*;
4use crate::deps::*;
5use crate::acb_types::*;
6use crate::arb_types::*;
7use crate::flint::*;
8use crate::fmpq_types::*;
9use crate::fmpz_types::*;
10
11
12extern "C" {
13 #[link_name = "acb_mat_entry_ptr__extern"]
14 pub fn acb_mat_entry_ptr(mat: *mut acb_mat_struct, i: slong, j: slong) -> acb_ptr;
15 pub fn acb_mat_init(mat: *mut acb_mat_struct, r: slong, c: slong);
16 pub fn acb_mat_clear(mat: *mut acb_mat_struct);
17 #[link_name = "acb_mat_swap__extern"]
18 pub fn acb_mat_swap(mat1: *mut acb_mat_struct, mat2: *mut acb_mat_struct);
19 pub fn acb_mat_swap_entrywise(mat1: *mut acb_mat_struct, mat2: *mut acb_mat_struct);
20 pub fn acb_mat_window_init(
21 window: *mut acb_mat_struct,
22 mat: *const acb_mat_struct,
23 r1: slong,
24 c1: slong,
25 r2: slong,
26 c2: slong,
27 );
28 #[link_name = "acb_mat_window_clear__extern"]
29 pub fn acb_mat_window_clear(UNUSED_window: *mut acb_mat_struct);
30 pub fn acb_mat_set(dest: *mut acb_mat_struct, src: *const acb_mat_struct);
31 pub fn acb_mat_set_fmpz_mat(dest: *mut acb_mat_struct, src: *const fmpz_mat_struct);
32 pub fn acb_mat_set_round_fmpz_mat(
33 dest: *mut acb_mat_struct,
34 src: *const fmpz_mat_struct,
35 prec: slong,
36 );
37 pub fn acb_mat_set_fmpq_mat(
38 dest: *mut acb_mat_struct,
39 src: *const fmpq_mat_struct,
40 prec: slong,
41 );
42 pub fn acb_mat_set_arb_mat(dest: *mut acb_mat_struct, src: *const arb_mat_struct);
43 pub fn acb_mat_set_round_arb_mat(
44 dest: *mut acb_mat_struct,
45 src: *const arb_mat_struct,
46 prec: slong,
47 );
48 pub fn acb_mat_get_real(re: *mut arb_mat_struct, mat: *const acb_mat_struct);
49 pub fn acb_mat_get_imag(im: *mut arb_mat_struct, mat: *const acb_mat_struct);
50 pub fn acb_mat_set_real_imag(
51 mat: *mut acb_mat_struct,
52 re: *const arb_mat_struct,
53 im: *const arb_mat_struct,
54 );
55 pub fn acb_mat_randtest(
56 mat: *mut acb_mat_struct,
57 state: *mut flint_rand_struct,
58 prec: slong,
59 mag_bits: slong,
60 );
61 pub fn acb_mat_randtest_eig(
62 A: *mut acb_mat_struct,
63 state: *mut flint_rand_struct,
64 E: acb_srcptr,
65 prec: slong,
66 );
67 pub fn acb_mat_fprintd(file: *mut FILE, mat: *const acb_mat_struct, digits: slong);
68 pub fn acb_mat_printd(mat: *const acb_mat_struct, digits: slong);
69 pub fn acb_mat_eq(mat1: *const acb_mat_struct, mat2: *const acb_mat_struct) -> libc::c_int;
70 pub fn acb_mat_ne(mat1: *const acb_mat_struct, mat2: *const acb_mat_struct) -> libc::c_int;
71 pub fn acb_mat_equal(mat1: *const acb_mat_struct, mat2: *const acb_mat_struct) -> libc::c_int;
72 pub fn acb_mat_overlaps(
73 mat1: *const acb_mat_struct,
74 mat2: *const acb_mat_struct,
75 ) -> libc::c_int;
76 pub fn acb_mat_contains(
77 mat1: *const acb_mat_struct,
78 mat2: *const acb_mat_struct,
79 ) -> libc::c_int;
80 pub fn acb_mat_contains_fmpq_mat(
81 mat1: *const acb_mat_struct,
82 mat2: *const fmpq_mat_struct,
83 ) -> libc::c_int;
84 pub fn acb_mat_contains_fmpz_mat(
85 mat1: *const acb_mat_struct,
86 mat2: *const fmpz_mat_struct,
87 ) -> libc::c_int;
88 pub fn acb_mat_is_real(mat: *const acb_mat_struct) -> libc::c_int;
89 #[link_name = "acb_mat_is_empty__extern"]
90 pub fn acb_mat_is_empty(mat: *const acb_mat_struct) -> libc::c_int;
91 #[link_name = "acb_mat_is_square__extern"]
92 pub fn acb_mat_is_square(mat: *const acb_mat_struct) -> libc::c_int;
93 pub fn acb_mat_is_exact(mat: *const acb_mat_struct) -> libc::c_int;
94 pub fn acb_mat_is_zero(mat: *const acb_mat_struct) -> libc::c_int;
95 pub fn acb_mat_is_finite(mat: *const acb_mat_struct) -> libc::c_int;
96 pub fn acb_mat_is_triu(mat: *const acb_mat_struct) -> libc::c_int;
97 pub fn acb_mat_is_tril(mat: *const acb_mat_struct) -> libc::c_int;
98 #[link_name = "acb_mat_is_diag__extern"]
99 pub fn acb_mat_is_diag(mat: *const acb_mat_struct) -> libc::c_int;
100 pub fn acb_mat_get_mid(B: *mut acb_mat_struct, A: *const acb_mat_struct);
101 pub fn acb_mat_add_error_mag(mat: *mut acb_mat_struct, err: *const mag_struct);
102 pub fn acb_mat_zero(mat: *mut acb_mat_struct);
103 pub fn acb_mat_one(mat: *mut acb_mat_struct);
104 pub fn acb_mat_ones(mat: *mut acb_mat_struct);
105 pub fn acb_mat_onei(mat: *mut acb_mat_struct);
106 pub fn acb_mat_indeterminate(mat: *mut acb_mat_struct);
107 pub fn acb_mat_dft(res: *mut acb_mat_struct, kind: libc::c_int, prec: slong);
108 pub fn acb_mat_transpose(mat1: *mut acb_mat_struct, mat2: *const acb_mat_struct);
109 pub fn acb_mat_conjugate(mat1: *mut acb_mat_struct, mat2: *const acb_mat_struct);
110 #[link_name = "acb_mat_conjugate_transpose__extern"]
111 pub fn acb_mat_conjugate_transpose(mat1: *mut acb_mat_struct, mat2: *const acb_mat_struct);
112 pub fn acb_mat_bound_inf_norm(b: *mut mag_struct, A: *const acb_mat_struct);
113 pub fn acb_mat_frobenius_norm(res: *mut arb_struct, A: *const acb_mat_struct, prec: slong);
114 pub fn acb_mat_bound_frobenius_norm(b: *mut mag_struct, A: *const acb_mat_struct);
115 pub fn acb_mat_neg(dest: *mut acb_mat_struct, src: *const acb_mat_struct);
116 pub fn acb_mat_add(
117 res: *mut acb_mat_struct,
118 mat1: *const acb_mat_struct,
119 mat2: *const acb_mat_struct,
120 prec: slong,
121 );
122 pub fn acb_mat_sub(
123 res: *mut acb_mat_struct,
124 mat1: *const acb_mat_struct,
125 mat2: *const acb_mat_struct,
126 prec: slong,
127 );
128 pub fn acb_mat_mul_classical(
129 res: *mut acb_mat_struct,
130 mat1: *const acb_mat_struct,
131 mat2: *const acb_mat_struct,
132 prec: slong,
133 );
134 pub fn acb_mat_mul_threaded(
135 res: *mut acb_mat_struct,
136 mat1: *const acb_mat_struct,
137 mat2: *const acb_mat_struct,
138 prec: slong,
139 );
140 pub fn acb_mat_mul_reorder(
141 res: *mut acb_mat_struct,
142 mat1: *const acb_mat_struct,
143 mat2: *const acb_mat_struct,
144 prec: slong,
145 );
146 pub fn acb_mat_mul(
147 res: *mut acb_mat_struct,
148 mat1: *const acb_mat_struct,
149 mat2: *const acb_mat_struct,
150 prec: slong,
151 );
152 pub fn acb_mat_mul_entrywise(
153 res: *mut acb_mat_struct,
154 mat1: *const acb_mat_struct,
155 mat2: *const acb_mat_struct,
156 prec: slong,
157 );
158 pub fn acb_mat_sqr_classical(res: *mut acb_mat_struct, mat: *const acb_mat_struct, prec: slong);
159 pub fn acb_mat_sqr(res: *mut acb_mat_struct, mat: *const acb_mat_struct, prec: slong);
160 pub fn acb_mat_pow_ui(
161 B: *mut acb_mat_struct,
162 A: *const acb_mat_struct,
163 exp: ulong,
164 prec: slong,
165 );
166 pub fn acb_mat_scalar_mul_2exp_si(B: *mut acb_mat_struct, A: *const acb_mat_struct, c: slong);
167 pub fn acb_mat_scalar_mul_si(
168 B: *mut acb_mat_struct,
169 A: *const acb_mat_struct,
170 c: slong,
171 prec: slong,
172 );
173 pub fn acb_mat_scalar_mul_fmpz(
174 B: *mut acb_mat_struct,
175 A: *const acb_mat_struct,
176 c: *const fmpz,
177 prec: slong,
178 );
179 pub fn acb_mat_scalar_mul_arb(
180 B: *mut acb_mat_struct,
181 A: *const acb_mat_struct,
182 c: *const arb_struct,
183 prec: slong,
184 );
185 pub fn acb_mat_scalar_mul_acb(
186 B: *mut acb_mat_struct,
187 A: *const acb_mat_struct,
188 c: *const acb_struct,
189 prec: slong,
190 );
191 pub fn acb_mat_scalar_addmul_si(
192 B: *mut acb_mat_struct,
193 A: *const acb_mat_struct,
194 c: slong,
195 prec: slong,
196 );
197 pub fn acb_mat_scalar_addmul_fmpz(
198 B: *mut acb_mat_struct,
199 A: *const acb_mat_struct,
200 c: *const fmpz,
201 prec: slong,
202 );
203 pub fn acb_mat_scalar_addmul_arb(
204 B: *mut acb_mat_struct,
205 A: *const acb_mat_struct,
206 c: *const arb_struct,
207 prec: slong,
208 );
209 pub fn acb_mat_scalar_addmul_acb(
210 B: *mut acb_mat_struct,
211 A: *const acb_mat_struct,
212 c: *const acb_struct,
213 prec: slong,
214 );
215 pub fn acb_mat_scalar_div_si(
216 B: *mut acb_mat_struct,
217 A: *const acb_mat_struct,
218 c: slong,
219 prec: slong,
220 );
221 pub fn acb_mat_scalar_div_fmpz(
222 B: *mut acb_mat_struct,
223 A: *const acb_mat_struct,
224 c: *const fmpz,
225 prec: slong,
226 );
227 pub fn acb_mat_scalar_div_arb(
228 B: *mut acb_mat_struct,
229 A: *const acb_mat_struct,
230 c: *const arb_struct,
231 prec: slong,
232 );
233 pub fn acb_mat_scalar_div_acb(
234 B: *mut acb_mat_struct,
235 A: *const acb_mat_struct,
236 c: *const acb_struct,
237 prec: slong,
238 );
239 pub fn _acb_mat_vector_mul_row(
240 res: acb_ptr,
241 v: acb_srcptr,
242 A: *const acb_mat_struct,
243 prec: slong,
244 );
245 pub fn _acb_mat_vector_mul_col(
246 res: acb_ptr,
247 A: *const acb_mat_struct,
248 v: acb_srcptr,
249 prec: slong,
250 );
251 pub fn acb_mat_vector_mul_row(
252 res: acb_ptr,
253 v: acb_srcptr,
254 A: *const acb_mat_struct,
255 prec: slong,
256 );
257 pub fn acb_mat_vector_mul_col(
258 res: acb_ptr,
259 A: *const acb_mat_struct,
260 v: acb_srcptr,
261 prec: slong,
262 );
263 pub fn acb_mat_swap_rows(mat: *mut acb_mat_struct, perm: *mut slong, r: slong, s: slong);
264 pub fn acb_mat_find_pivot_partial(
265 mat: *const acb_mat_struct,
266 start_row: slong,
267 end_row: slong,
268 c: slong,
269 ) -> slong;
270 pub fn acb_mat_solve_tril_classical(
271 X: *mut acb_mat_struct,
272 L: *const acb_mat_struct,
273 B: *const acb_mat_struct,
274 unit: libc::c_int,
275 prec: slong,
276 );
277 pub fn acb_mat_solve_tril_recursive(
278 X: *mut acb_mat_struct,
279 L: *const acb_mat_struct,
280 B: *const acb_mat_struct,
281 unit: libc::c_int,
282 prec: slong,
283 );
284 pub fn acb_mat_solve_tril(
285 X: *mut acb_mat_struct,
286 L: *const acb_mat_struct,
287 B: *const acb_mat_struct,
288 unit: libc::c_int,
289 prec: slong,
290 );
291 pub fn acb_mat_solve_triu_classical(
292 X: *mut acb_mat_struct,
293 U: *const acb_mat_struct,
294 B: *const acb_mat_struct,
295 unit: libc::c_int,
296 prec: slong,
297 );
298 pub fn acb_mat_solve_triu_recursive(
299 X: *mut acb_mat_struct,
300 U: *const acb_mat_struct,
301 B: *const acb_mat_struct,
302 unit: libc::c_int,
303 prec: slong,
304 );
305 pub fn acb_mat_solve_triu(
306 X: *mut acb_mat_struct,
307 U: *const acb_mat_struct,
308 B: *const acb_mat_struct,
309 unit: libc::c_int,
310 prec: slong,
311 );
312 pub fn acb_mat_lu_classical(
313 P: *mut slong,
314 LU: *mut acb_mat_struct,
315 A: *const acb_mat_struct,
316 prec: slong,
317 ) -> libc::c_int;
318 pub fn acb_mat_lu_recursive(
319 P: *mut slong,
320 LU: *mut acb_mat_struct,
321 A: *const acb_mat_struct,
322 prec: slong,
323 ) -> libc::c_int;
324 pub fn acb_mat_lu(
325 P: *mut slong,
326 LU: *mut acb_mat_struct,
327 A: *const acb_mat_struct,
328 prec: slong,
329 ) -> libc::c_int;
330 pub fn acb_mat_solve_lu_precomp(
331 X: *mut acb_mat_struct,
332 perm: *const slong,
333 A: *const acb_mat_struct,
334 B: *const acb_mat_struct,
335 prec: slong,
336 );
337 pub fn acb_mat_solve_lu(
338 X: *mut acb_mat_struct,
339 A: *const acb_mat_struct,
340 B: *const acb_mat_struct,
341 prec: slong,
342 ) -> libc::c_int;
343 pub fn acb_mat_solve(
344 X: *mut acb_mat_struct,
345 A: *const acb_mat_struct,
346 B: *const acb_mat_struct,
347 prec: slong,
348 ) -> libc::c_int;
349 pub fn acb_mat_solve_precond(
350 X: *mut acb_mat_struct,
351 A: *const acb_mat_struct,
352 B: *const acb_mat_struct,
353 prec: slong,
354 ) -> libc::c_int;
355 pub fn acb_mat_approx_mul(
356 C: *mut acb_mat_struct,
357 A: *const acb_mat_struct,
358 B: *const acb_mat_struct,
359 prec: slong,
360 );
361 pub fn acb_mat_approx_solve_triu(
362 X: *mut acb_mat_struct,
363 U: *const acb_mat_struct,
364 B: *const acb_mat_struct,
365 unit: libc::c_int,
366 prec: slong,
367 );
368 pub fn acb_mat_approx_solve_tril(
369 X: *mut acb_mat_struct,
370 L: *const acb_mat_struct,
371 B: *const acb_mat_struct,
372 unit: libc::c_int,
373 prec: slong,
374 );
375 pub fn acb_mat_approx_lu(
376 P: *mut slong,
377 LU: *mut acb_mat_struct,
378 A: *const acb_mat_struct,
379 prec: slong,
380 ) -> libc::c_int;
381 pub fn acb_mat_approx_solve_lu_precomp(
382 X: *mut acb_mat_struct,
383 perm: *const slong,
384 A: *const acb_mat_struct,
385 B: *const acb_mat_struct,
386 prec: slong,
387 );
388 pub fn acb_mat_approx_solve(
389 X: *mut acb_mat_struct,
390 A: *const acb_mat_struct,
391 B: *const acb_mat_struct,
392 prec: slong,
393 ) -> libc::c_int;
394 pub fn acb_mat_approx_inv(
395 X: *mut acb_mat_struct,
396 A: *const acb_mat_struct,
397 prec: slong,
398 ) -> libc::c_int;
399 pub fn acb_mat_inv(
400 X: *mut acb_mat_struct,
401 A: *const acb_mat_struct,
402 prec: slong,
403 ) -> libc::c_int;
404 pub fn acb_mat_det_lu(det: *mut acb_struct, A: *const acb_mat_struct, prec: slong);
405 pub fn acb_mat_det_precond(det: *mut acb_struct, A: *const acb_mat_struct, prec: slong);
406 pub fn acb_mat_det(det: *mut acb_struct, A: *const acb_mat_struct, prec: slong);
407 pub fn acb_mat_approx_eig_qr(
408 E: acb_ptr,
409 L: *mut acb_mat_struct,
410 R: *mut acb_mat_struct,
411 A: *const acb_mat_struct,
412 tol: *const mag_struct,
413 maxiter: slong,
414 prec: slong,
415 ) -> libc::c_int;
416 pub fn acb_mat_eig_global_enclosure(
417 eps: *mut mag_struct,
418 A: *const acb_mat_struct,
419 E: acb_srcptr,
420 R: *const acb_mat_struct,
421 prec: slong,
422 );
423 pub fn acb_mat_eig_enclosure_rump(
424 lambda: *mut acb_struct,
425 J: *mut acb_mat_struct,
426 X: *mut acb_mat_struct,
427 A: *const acb_mat_struct,
428 lambda_approx: *const acb_struct,
429 X_approx: *const acb_mat_struct,
430 prec: slong,
431 );
432 pub fn acb_mat_eig_simple_rump(
433 E: acb_ptr,
434 L: *mut acb_mat_struct,
435 R: *mut acb_mat_struct,
436 A: *const acb_mat_struct,
437 E_approx: acb_srcptr,
438 R_approx: *const acb_mat_struct,
439 prec: slong,
440 ) -> libc::c_int;
441 pub fn acb_mat_eig_simple_vdhoeven_mourrain(
442 E: acb_ptr,
443 L: *mut acb_mat_struct,
444 R: *mut acb_mat_struct,
445 A: *const acb_mat_struct,
446 E_approx: acb_srcptr,
447 R_approx: *const acb_mat_struct,
448 prec: slong,
449 ) -> libc::c_int;
450 pub fn acb_mat_eig_simple(
451 E: acb_ptr,
452 L: *mut acb_mat_struct,
453 R: *mut acb_mat_struct,
454 A: *const acb_mat_struct,
455 E_approx: acb_srcptr,
456 R_approx: *const acb_mat_struct,
457 prec: slong,
458 ) -> libc::c_int;
459 pub fn acb_mat_eig_multiple_rump(
460 E: acb_ptr,
461 A: *const acb_mat_struct,
462 E_approx: acb_srcptr,
463 R_approx: *const acb_mat_struct,
464 prec: slong,
465 ) -> libc::c_int;
466 pub fn acb_mat_eig_multiple(
467 E: acb_ptr,
468 A: *const acb_mat_struct,
469 E_approx: acb_srcptr,
470 R_approx: *const acb_mat_struct,
471 prec: slong,
472 ) -> libc::c_int;
473 pub fn acb_mat_exp_taylor_sum(
474 S: *mut acb_mat_struct,
475 A: *const acb_mat_struct,
476 N: slong,
477 prec: slong,
478 );
479 pub fn acb_mat_exp(B: *mut acb_mat_struct, A: *const acb_mat_struct, prec: slong);
480 pub fn _acb_mat_charpoly(poly: acb_ptr, mat: *const acb_mat_struct, prec: slong);
481 pub fn acb_mat_charpoly(poly: *mut acb_poly_struct, mat: *const acb_mat_struct, prec: slong);
482 pub fn _acb_mat_companion(mat: *mut acb_mat_struct, poly: acb_srcptr, prec: slong);
483 pub fn acb_mat_companion(mat: *mut acb_mat_struct, poly: *const acb_poly_struct, prec: slong);
484 pub fn acb_mat_trace(trace: *mut acb_struct, mat: *const acb_mat_struct, prec: slong);
485 pub fn _acb_mat_diag_prod(
486 res: *mut acb_struct,
487 A: *const acb_mat_struct,
488 a: slong,
489 b: slong,
490 prec: slong,
491 );
492 pub fn acb_mat_diag_prod(res: *mut acb_struct, A: *const acb_mat_struct, prec: slong);
493 pub fn acb_mat_allocated_bytes(x: *const acb_mat_struct) -> slong;
494}