Skip to main content

pardiso_sys/
lib.rs

1//! Bindings to [PARDISO].
2//! 
3//! [PARDISO]: https://www.pardiso-project.org/
4
5#![allow(non_camel_case_types)]
6#![no_std]
7
8extern crate libc;
9
10use libc::{c_char, c_int, c_longlong, c_void};
11pub type mkl_int = c_int;
12pub type _mkl_dss_handle_t = c_void;
13
14// === Deprecated API ===
15// #[derive(Clone, Copy, Debug, Eq, PartialEq)]
16// #[repr(C)]
17// pub enum PARDISO_ENV_PARAM {
18//     PARDISO_OOC_FILE_NAME = 1,
19// }
20
21extern "C" {
22    pub fn pardiso(
23        pt: *mut _mkl_dss_handle_t,
24        maxfct: *const mkl_int,
25        mnum: *const mkl_int,
26        mtype: *const mkl_int,
27        phase: *const mkl_int,
28        n: *const mkl_int,
29        a: *const c_void,
30        ia: *const mkl_int,
31        ja: *const mkl_int,
32        perm: *mut mkl_int,
33        nrhs: *const mkl_int,
34        iparm: *mut mkl_int,
35        msglvl: *const mkl_int,
36        b: *mut c_void,
37        x: *mut c_void,
38        error: *mut mkl_int,
39    );
40    pub fn pardisoinit(
41        pt: *mut _mkl_dss_handle_t,
42        mtype: *const mkl_int,
43        iparm: *mut mkl_int,
44    );
45    pub fn pardiso_64(
46        pt: *mut _mkl_dss_handle_t,
47        maxfct: *const c_longlong,
48        mnum: *const c_longlong,
49        mtype: *const c_longlong,
50        phase: *const c_longlong,
51        n: *const c_longlong,
52        a: *const c_void,
53        ia: *const c_longlong,
54        ja: *const c_longlong,
55        perm: *mut c_longlong,
56        nrhs: *const c_longlong,
57        iparm: *mut c_longlong,
58        msglvl: *const c_longlong,
59        b: *mut c_void,
60        x: *mut c_void,
61        error: *mut c_longlong,
62    );
63    pub fn pardiso_handle_store_64(
64        pt: *mut _mkl_dss_handle_t,
65        dirname: *const c_char,
66        error: *mut c_longlong,
67    );
68    pub fn pardiso_handle_restore_64(
69        pt: *mut _mkl_dss_handle_t,
70        dirname: *const c_char,
71        error: *mut c_longlong,
72    );
73    pub fn pardiso_handle_delete_64(
74        dirname: *const c_char,
75        error: *mut c_longlong,
76    );
77    pub fn pardiso_handle_store(
78        pt: *mut _mkl_dss_handle_t,
79        dirname: *const c_char,
80        error: *mut mkl_int,
81    );
82    pub fn pardiso_handle_restore(
83        pt: *mut _mkl_dss_handle_t,
84        dirname: *const c_char,
85        error: *mut mkl_int,
86    );
87    pub fn pardiso_handle_delete(
88        dirname: *const c_char,
89        error: *mut mkl_int,
90    );
91    pub fn mkl_pardiso_pivot(
92        aii: *const c_void,
93        bii: *mut c_void,
94        eps: *const c_void,
95    ) -> c_int;
96    pub fn pardiso_getdiag(
97        pt: *const _mkl_dss_handle_t,
98        df: *mut c_void,
99        da: *mut c_void,
100        mnum: *const mkl_int,
101        error: *mut mkl_int,
102    );
103    pub fn pardiso_export(
104        pt: *mut _mkl_dss_handle_t,
105        values: *mut c_void,
106        rows: *mut mkl_int,
107        columns: *mut mkl_int,
108        step: *const mkl_int,
109        iparm: *const mkl_int,
110        error: *mut mkl_int,
111    );
112}