Skip to main content

flint_sys/
acb_mat.rs

1/* automatically generated by rust-bindgen 0.70.1 */
2
3use 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}