1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
use libc::{c_char, c_double, c_int};

use slu_util::*;
use supermatrix::*;

extern "C" {
    pub fn dlsolve(ldm: c_int, ncol: c_int, M: *mut c_double, rhs: *mut c_double);

    pub fn dmatvec(
        ldm: c_int,
        nrow: c_int,
        ncol: c_int,
        M: *mut c_double,
        vec: *mut c_double,
        Mxvec: *mut c_double,
    );

    pub fn dusolve(ldm: c_int, ncol: c_int, M: *mut c_double, rhs: *mut c_double);

    pub fn sp_dgemv(
        trans: *mut c_char,
        alpha: c_double,
        A: *mut SuperMatrix,
        x: *mut c_double,
        incx: c_int,
        beta: c_double,
        y: *mut c_double,
        incy: c_int,
    ) -> c_int;

    pub fn sp_dtrsv(
        uplo: *mut c_char,
        trans: *mut c_char,
        diag: *mut c_char,
        L: *mut SuperMatrix,
        U: *mut SuperMatrix,
        x: *mut c_double,
        stat: *mut SuperLUStat_t,
        info: *mut c_int,
    ) -> c_int;
}