Skip to main content

flint_sys/
arb_mat.rs

1/* automatically generated by rust-bindgen 0.70.1 */
2
3use libc::*;
4use crate::deps::*;
5use crate::arb_types::*;
6use crate::flint::*;
7use crate::fmpq_types::*;
8use crate::fmpz_types::*;
9
10
11extern "C" {
12    #[link_name = "arb_mat_entry_ptr__extern"]
13    pub fn arb_mat_entry_ptr(mat: *mut arb_mat_struct, i: slong, j: slong) -> arb_ptr;
14    pub fn arb_mat_init(mat: *mut arb_mat_struct, r: slong, c: slong);
15    pub fn arb_mat_clear(mat: *mut arb_mat_struct);
16    #[link_name = "arb_mat_swap__extern"]
17    pub fn arb_mat_swap(mat1: *mut arb_mat_struct, mat2: *mut arb_mat_struct);
18    pub fn arb_mat_swap_entrywise(mat1: *mut arb_mat_struct, mat2: *mut arb_mat_struct);
19    pub fn arb_mat_window_init(
20        window: *mut arb_mat_struct,
21        mat: *const arb_mat_struct,
22        r1: slong,
23        c1: slong,
24        r2: slong,
25        c2: slong,
26    );
27    #[link_name = "arb_mat_window_clear__extern"]
28    pub fn arb_mat_window_clear(UNUSED_window: *mut arb_mat_struct);
29    pub fn arb_mat_set(dest: *mut arb_mat_struct, src: *const arb_mat_struct);
30    pub fn arb_mat_set_fmpz_mat(dest: *mut arb_mat_struct, src: *const fmpz_mat_struct);
31    pub fn arb_mat_set_round_fmpz_mat(
32        dest: *mut arb_mat_struct,
33        src: *const fmpz_mat_struct,
34        prec: slong,
35    );
36    pub fn arb_mat_set_fmpq_mat(
37        dest: *mut arb_mat_struct,
38        src: *const fmpq_mat_struct,
39        prec: slong,
40    );
41    pub fn arb_mat_randtest(
42        mat: *mut arb_mat_struct,
43        state: *mut flint_rand_struct,
44        prec: slong,
45        mag_bits: slong,
46    );
47    pub fn arb_mat_randtest_cho(
48        mat: *mut arb_mat_struct,
49        state: *mut flint_rand_struct,
50        prec: slong,
51        mag_bits: slong,
52    );
53    pub fn arb_mat_randtest_spd(
54        mat: *mut arb_mat_struct,
55        state: *mut flint_rand_struct,
56        prec: slong,
57        mag_bits: slong,
58    );
59    pub fn arb_mat_fprintd(file: *mut FILE, mat: *const arb_mat_struct, digits: slong);
60    pub fn arb_mat_printd(mat: *const arb_mat_struct, digits: slong);
61    pub fn arb_mat_eq(mat1: *const arb_mat_struct, mat2: *const arb_mat_struct) -> libc::c_int;
62    pub fn arb_mat_ne(mat1: *const arb_mat_struct, mat2: *const arb_mat_struct) -> libc::c_int;
63    pub fn arb_mat_equal(mat1: *const arb_mat_struct, mat2: *const arb_mat_struct) -> libc::c_int;
64    pub fn arb_mat_overlaps(
65        mat1: *const arb_mat_struct,
66        mat2: *const arb_mat_struct,
67    ) -> libc::c_int;
68    pub fn arb_mat_contains(
69        mat1: *const arb_mat_struct,
70        mat2: *const arb_mat_struct,
71    ) -> libc::c_int;
72    pub fn arb_mat_contains_fmpq_mat(
73        mat1: *const arb_mat_struct,
74        mat2: *const fmpq_mat_struct,
75    ) -> libc::c_int;
76    pub fn arb_mat_contains_fmpz_mat(
77        mat1: *const arb_mat_struct,
78        mat2: *const fmpz_mat_struct,
79    ) -> libc::c_int;
80    #[link_name = "arb_mat_is_empty__extern"]
81    pub fn arb_mat_is_empty(mat: *const arb_mat_struct) -> libc::c_int;
82    #[link_name = "arb_mat_is_square__extern"]
83    pub fn arb_mat_is_square(mat: *const arb_mat_struct) -> libc::c_int;
84    pub fn arb_mat_is_exact(A: *const arb_mat_struct) -> libc::c_int;
85    pub fn arb_mat_is_zero(mat: *const arb_mat_struct) -> libc::c_int;
86    pub fn arb_mat_is_finite(mat: *const arb_mat_struct) -> libc::c_int;
87    pub fn arb_mat_is_triu(mat: *const arb_mat_struct) -> libc::c_int;
88    pub fn arb_mat_is_tril(mat: *const arb_mat_struct) -> libc::c_int;
89    #[link_name = "arb_mat_is_diag__extern"]
90    pub fn arb_mat_is_diag(mat: *const arb_mat_struct) -> libc::c_int;
91    pub fn arb_mat_get_mid(B: *mut arb_mat_struct, A: *const arb_mat_struct);
92    pub fn arb_mat_add_error_mag(mat: *mut arb_mat_struct, err: *const mag_struct);
93    pub fn arb_mat_zero(mat: *mut arb_mat_struct);
94    pub fn arb_mat_one(mat: *mut arb_mat_struct);
95    pub fn arb_mat_ones(mat: *mut arb_mat_struct);
96    pub fn arb_mat_indeterminate(mat: *mut arb_mat_struct);
97    pub fn arb_mat_hilbert(mat: *mut arb_mat_struct, prec: slong);
98    pub fn arb_mat_pascal(mat: *mut arb_mat_struct, triangular: libc::c_int, prec: slong);
99    pub fn arb_mat_stirling(mat: *mut arb_mat_struct, kind: libc::c_int, prec: slong);
100    pub fn arb_mat_dct(mat: *mut arb_mat_struct, type_: libc::c_int, prec: slong);
101    pub fn arb_mat_transpose(mat1: *mut arb_mat_struct, mat2: *const arb_mat_struct);
102    pub fn arb_mat_bound_inf_norm(b: *mut mag_struct, A: *const arb_mat_struct);
103    pub fn arb_mat_frobenius_norm(res: *mut arb_struct, A: *const arb_mat_struct, prec: slong);
104    pub fn arb_mat_bound_frobenius_norm(b: *mut mag_struct, A: *const arb_mat_struct);
105    pub fn arb_mat_neg(dest: *mut arb_mat_struct, src: *const arb_mat_struct);
106    pub fn arb_mat_add(
107        res: *mut arb_mat_struct,
108        mat1: *const arb_mat_struct,
109        mat2: *const arb_mat_struct,
110        prec: slong,
111    );
112    pub fn arb_mat_sub(
113        res: *mut arb_mat_struct,
114        mat1: *const arb_mat_struct,
115        mat2: *const arb_mat_struct,
116        prec: slong,
117    );
118    pub fn arb_mat_mul(
119        res: *mut arb_mat_struct,
120        mat1: *const arb_mat_struct,
121        mat2: *const arb_mat_struct,
122        prec: slong,
123    );
124    pub fn arb_mat_mul_classical(
125        C: *mut arb_mat_struct,
126        A: *const arb_mat_struct,
127        B: *const arb_mat_struct,
128        prec: slong,
129    );
130    pub fn arb_mat_mul_threaded(
131        C: *mut arb_mat_struct,
132        A: *const arb_mat_struct,
133        B: *const arb_mat_struct,
134        prec: slong,
135    );
136    pub fn _arb_mat_addmul_rad_mag_fast(
137        C: *mut arb_mat_struct,
138        A: mag_srcptr,
139        B: mag_srcptr,
140        ar: slong,
141        ac: slong,
142        bc: slong,
143    );
144    pub fn arb_mat_mul_block(
145        C: *mut arb_mat_struct,
146        A: *const arb_mat_struct,
147        B: *const arb_mat_struct,
148        prec: slong,
149    );
150    pub fn arb_mat_mul_entrywise(
151        res: *mut arb_mat_struct,
152        mat1: *const arb_mat_struct,
153        mat2: *const arb_mat_struct,
154        prec: slong,
155    );
156    pub fn arb_mat_sqr_classical(B: *mut arb_mat_struct, A: *const arb_mat_struct, prec: slong);
157    pub fn arb_mat_sqr(B: *mut arb_mat_struct, A: *const arb_mat_struct, prec: slong);
158    pub fn arb_mat_pow_ui(
159        B: *mut arb_mat_struct,
160        A: *const arb_mat_struct,
161        exp: ulong,
162        prec: slong,
163    );
164    pub fn arb_mat_scalar_mul_2exp_si(B: *mut arb_mat_struct, A: *const arb_mat_struct, c: slong);
165    pub fn arb_mat_scalar_mul_si(
166        B: *mut arb_mat_struct,
167        A: *const arb_mat_struct,
168        c: slong,
169        prec: slong,
170    );
171    pub fn arb_mat_scalar_mul_fmpz(
172        B: *mut arb_mat_struct,
173        A: *const arb_mat_struct,
174        c: *const fmpz,
175        prec: slong,
176    );
177    pub fn arb_mat_scalar_mul_arb(
178        B: *mut arb_mat_struct,
179        A: *const arb_mat_struct,
180        c: *const arb_struct,
181        prec: slong,
182    );
183    pub fn arb_mat_scalar_addmul_si(
184        B: *mut arb_mat_struct,
185        A: *const arb_mat_struct,
186        c: slong,
187        prec: slong,
188    );
189    pub fn arb_mat_scalar_addmul_fmpz(
190        B: *mut arb_mat_struct,
191        A: *const arb_mat_struct,
192        c: *const fmpz,
193        prec: slong,
194    );
195    pub fn arb_mat_scalar_addmul_arb(
196        B: *mut arb_mat_struct,
197        A: *const arb_mat_struct,
198        c: *const arb_struct,
199        prec: slong,
200    );
201    pub fn arb_mat_scalar_div_si(
202        B: *mut arb_mat_struct,
203        A: *const arb_mat_struct,
204        c: slong,
205        prec: slong,
206    );
207    pub fn arb_mat_scalar_div_fmpz(
208        B: *mut arb_mat_struct,
209        A: *const arb_mat_struct,
210        c: *const fmpz,
211        prec: slong,
212    );
213    pub fn arb_mat_scalar_div_arb(
214        B: *mut arb_mat_struct,
215        A: *const arb_mat_struct,
216        c: *const arb_struct,
217        prec: slong,
218    );
219    pub fn _arb_mat_vector_mul_row(
220        res: arb_ptr,
221        v: arb_srcptr,
222        A: *const arb_mat_struct,
223        prec: slong,
224    );
225    pub fn _arb_mat_vector_mul_col(
226        res: arb_ptr,
227        A: *const arb_mat_struct,
228        v: arb_srcptr,
229        prec: slong,
230    );
231    pub fn arb_mat_vector_mul_row(
232        res: arb_ptr,
233        v: arb_srcptr,
234        A: *const arb_mat_struct,
235        prec: slong,
236    );
237    pub fn arb_mat_vector_mul_col(
238        res: arb_ptr,
239        A: *const arb_mat_struct,
240        v: arb_srcptr,
241        prec: slong,
242    );
243    pub fn arb_mat_swap_rows(mat: *mut arb_mat_struct, perm: *mut slong, r: slong, s: slong);
244    pub fn arb_mat_find_pivot_partial(
245        mat: *const arb_mat_struct,
246        start_row: slong,
247        end_row: slong,
248        c: slong,
249    ) -> slong;
250    pub fn arb_mat_solve_tril_classical(
251        X: *mut arb_mat_struct,
252        L: *const arb_mat_struct,
253        B: *const arb_mat_struct,
254        unit: libc::c_int,
255        prec: slong,
256    );
257    pub fn arb_mat_solve_tril_recursive(
258        X: *mut arb_mat_struct,
259        L: *const arb_mat_struct,
260        B: *const arb_mat_struct,
261        unit: libc::c_int,
262        prec: slong,
263    );
264    pub fn arb_mat_solve_tril(
265        X: *mut arb_mat_struct,
266        L: *const arb_mat_struct,
267        B: *const arb_mat_struct,
268        unit: libc::c_int,
269        prec: slong,
270    );
271    pub fn arb_mat_solve_triu_classical(
272        X: *mut arb_mat_struct,
273        U: *const arb_mat_struct,
274        B: *const arb_mat_struct,
275        unit: libc::c_int,
276        prec: slong,
277    );
278    pub fn arb_mat_solve_triu_recursive(
279        X: *mut arb_mat_struct,
280        U: *const arb_mat_struct,
281        B: *const arb_mat_struct,
282        unit: libc::c_int,
283        prec: slong,
284    );
285    pub fn arb_mat_solve_triu(
286        X: *mut arb_mat_struct,
287        U: *const arb_mat_struct,
288        B: *const arb_mat_struct,
289        unit: libc::c_int,
290        prec: slong,
291    );
292    pub fn arb_mat_lu_classical(
293        P: *mut slong,
294        LU: *mut arb_mat_struct,
295        A: *const arb_mat_struct,
296        prec: slong,
297    ) -> libc::c_int;
298    pub fn arb_mat_lu_recursive(
299        P: *mut slong,
300        LU: *mut arb_mat_struct,
301        A: *const arb_mat_struct,
302        prec: slong,
303    ) -> libc::c_int;
304    pub fn arb_mat_lu(
305        P: *mut slong,
306        LU: *mut arb_mat_struct,
307        A: *const arb_mat_struct,
308        prec: slong,
309    ) -> libc::c_int;
310    pub fn arb_mat_solve_lu_precomp(
311        X: *mut arb_mat_struct,
312        perm: *const slong,
313        A: *const arb_mat_struct,
314        B: *const arb_mat_struct,
315        prec: slong,
316    );
317    pub fn arb_mat_solve(
318        X: *mut arb_mat_struct,
319        A: *const arb_mat_struct,
320        B: *const arb_mat_struct,
321        prec: slong,
322    ) -> libc::c_int;
323    pub fn arb_mat_solve_lu(
324        X: *mut arb_mat_struct,
325        A: *const arb_mat_struct,
326        B: *const arb_mat_struct,
327        prec: slong,
328    ) -> libc::c_int;
329    pub fn arb_mat_solve_precond(
330        X: *mut arb_mat_struct,
331        A: *const arb_mat_struct,
332        B: *const arb_mat_struct,
333        prec: slong,
334    ) -> libc::c_int;
335    pub fn arb_mat_solve_preapprox(
336        X: *mut arb_mat_struct,
337        A: *const arb_mat_struct,
338        B: *const arb_mat_struct,
339        R: *const arb_mat_struct,
340        T: *const arb_mat_struct,
341        prec: slong,
342    ) -> libc::c_int;
343    pub fn arb_mat_approx_mul(
344        C: *mut arb_mat_struct,
345        A: *const arb_mat_struct,
346        B: *const arb_mat_struct,
347        prec: slong,
348    );
349    pub fn arb_mat_approx_solve_triu(
350        X: *mut arb_mat_struct,
351        U: *const arb_mat_struct,
352        B: *const arb_mat_struct,
353        unit: libc::c_int,
354        prec: slong,
355    );
356    pub fn arb_mat_approx_solve_tril(
357        X: *mut arb_mat_struct,
358        L: *const arb_mat_struct,
359        B: *const arb_mat_struct,
360        unit: libc::c_int,
361        prec: slong,
362    );
363    pub fn arb_mat_approx_lu(
364        P: *mut slong,
365        LU: *mut arb_mat_struct,
366        A: *const arb_mat_struct,
367        prec: slong,
368    ) -> libc::c_int;
369    pub fn arb_mat_approx_solve_lu_precomp(
370        X: *mut arb_mat_struct,
371        perm: *const slong,
372        A: *const arb_mat_struct,
373        B: *const arb_mat_struct,
374        prec: slong,
375    );
376    pub fn arb_mat_approx_solve(
377        X: *mut arb_mat_struct,
378        A: *const arb_mat_struct,
379        B: *const arb_mat_struct,
380        prec: slong,
381    ) -> libc::c_int;
382    pub fn arb_mat_approx_inv(
383        X: *mut arb_mat_struct,
384        A: *const arb_mat_struct,
385        prec: slong,
386    ) -> libc::c_int;
387    pub fn arb_mat_inv(
388        X: *mut arb_mat_struct,
389        A: *const arb_mat_struct,
390        prec: slong,
391    ) -> libc::c_int;
392    pub fn arb_mat_det_lu(det: *mut arb_struct, A: *const arb_mat_struct, prec: slong);
393    pub fn arb_mat_det_precond(det: *mut arb_struct, A: *const arb_mat_struct, prec: slong);
394    pub fn arb_mat_det(det: *mut arb_struct, A: *const arb_mat_struct, prec: slong);
395    pub fn _arb_mat_cholesky_banachiewicz(A: *mut arb_mat_struct, prec: slong) -> libc::c_int;
396    pub fn arb_mat_cho(
397        L: *mut arb_mat_struct,
398        A: *const arb_mat_struct,
399        prec: slong,
400    ) -> libc::c_int;
401    pub fn arb_mat_solve_cho_precomp(
402        X: *mut arb_mat_struct,
403        L: *const arb_mat_struct,
404        B: *const arb_mat_struct,
405        prec: slong,
406    );
407    pub fn arb_mat_inv_cho_precomp(X: *mut arb_mat_struct, L: *const arb_mat_struct, prec: slong);
408    pub fn arb_mat_spd_solve(
409        X: *mut arb_mat_struct,
410        A: *const arb_mat_struct,
411        B: *const arb_mat_struct,
412        prec: slong,
413    ) -> libc::c_int;
414    pub fn arb_mat_spd_inv(
415        X: *mut arb_mat_struct,
416        A: *const arb_mat_struct,
417        prec: slong,
418    ) -> libc::c_int;
419    pub fn _arb_mat_ldl_inplace(A: *mut arb_mat_struct, prec: slong) -> libc::c_int;
420    pub fn _arb_mat_ldl_golub_and_van_loan(A: *mut arb_mat_struct, prec: slong) -> libc::c_int;
421    pub fn arb_mat_ldl(
422        L: *mut arb_mat_struct,
423        A: *const arb_mat_struct,
424        prec: slong,
425    ) -> libc::c_int;
426    pub fn arb_mat_solve_ldl_precomp(
427        X: *mut arb_mat_struct,
428        L: *const arb_mat_struct,
429        B: *const arb_mat_struct,
430        prec: slong,
431    );
432    pub fn arb_mat_inv_ldl_precomp(X: *mut arb_mat_struct, L: *const arb_mat_struct, prec: slong);
433    pub fn arb_mat_exp_taylor_sum(
434        S: *mut arb_mat_struct,
435        A: *const arb_mat_struct,
436        N: slong,
437        prec: slong,
438    );
439    pub fn arb_mat_exp(B: *mut arb_mat_struct, A: *const arb_mat_struct, prec: slong);
440    pub fn _arb_mat_charpoly(poly: arb_ptr, mat: *const arb_mat_struct, prec: slong);
441    pub fn arb_mat_charpoly(poly: *mut arb_poly_struct, mat: *const arb_mat_struct, prec: slong);
442    pub fn _arb_mat_companion(mat: *mut arb_mat_struct, poly: arb_srcptr, prec: slong);
443    pub fn arb_mat_companion(mat: *mut arb_mat_struct, poly: *const arb_poly_struct, prec: slong);
444    pub fn arb_mat_trace(trace: *mut arb_struct, mat: *const arb_mat_struct, prec: slong);
445    pub fn _arb_mat_diag_prod(
446        res: *mut arb_struct,
447        A: *const arb_mat_struct,
448        a: slong,
449        b: slong,
450        prec: slong,
451    );
452    pub fn arb_mat_diag_prod(res: *mut arb_struct, A: *const arb_mat_struct, prec: slong);
453    pub fn arb_mat_count_is_zero(mat: *const arb_mat_struct) -> slong;
454    #[link_name = "arb_mat_count_not_is_zero__extern"]
455    pub fn arb_mat_count_not_is_zero(mat: *const arb_mat_struct) -> slong;
456    pub fn arb_mat_allocated_bytes(x: *const arb_mat_struct) -> slong;
457    pub fn arb_mat_spd_get_fmpz_mat(
458        B: *mut fmpz_mat_struct,
459        A: *const arb_mat_struct,
460        prec: slong,
461    ) -> libc::c_int;
462    pub fn arb_mat_spd_lll_reduce(
463        U: *mut fmpz_mat_struct,
464        A: *const arb_mat_struct,
465        delta: f64,
466        eta: f64,
467        prec: slong,
468    );
469    pub fn arb_mat_spd_is_lll_reduced(
470        A: *const arb_mat_struct,
471        delta: f64,
472        eta: f64,
473        prec: slong,
474    ) -> libc::c_int;
475}