1use libc::{c_double, c_int};
2
3extern "C" {
4 pub fn lufact_(
6 pivot: *const c_int,
7 thresh: *const c_double,
8 nrow: *const c_int,
9 ncol: *const c_int,
10 a: *const c_double,
11 arow: *const c_int,
12 acolst: *const c_int,
13 maxlu: *const c_int,
14 lastlu: *mut c_int,
15 lu: *mut c_double,
16 lurow: *mut c_int,
17 lcolst: *mut c_int,
18 ucolst: *mut c_int,
19 perm: *mut c_int,
20 error: *mut c_int,
21 rwork: *mut c_double,
22 iwork: *mut c_int,
23 );
24
25 pub fn maxmatch_(
27 nrows: *const c_int,
28 ncols: *const c_int,
29 colstr: *const c_int,
30 rowind: *const c_int,
31 prevcl: *mut c_int,
32 prevrw: *mut c_int,
33 marker: *mut c_int,
34 tryrow: *mut c_int,
35 nxtchp: *mut c_int,
36 rowset: *mut c_int,
37 colset: *mut c_int,
38 );
39
40 pub fn ifill_(a: *mut c_int, la: *const c_int, ival: *const c_int);
42 pub fn rfill_(a: *mut c_double, la: *const c_double, rval: *const c_double);
44
45 pub fn ludfs_(
47 jcol: *const c_int,
48 a: *const c_double,
49 arow: *const c_int,
50 acolst: *const c_int,
51 lastlu: *mut c_int,
52 lurow: *mut c_int,
53 lcolst: *mut c_int,
54 ucolst: *mut c_int,
55 rperm: *mut c_int,
56 cperm: *mut c_int,
57 dense: *mut c_double,
58 found: *mut c_int,
59 parent: *mut c_int,
60 child: *mut c_int,
61 error: *mut c_int,
62 );
63
64 pub fn lucomp_(
66 jcol: *const c_int,
67 lastlu: *mut c_int,
68 lu: *mut c_double,
69 lurow: *mut c_int,
70 lcolst: *mut c_int,
71 ucolst: *mut c_int,
72 rperm: *const c_int,
73 cperm: *const c_int,
74 dense: *mut c_double,
75 found: *mut c_int,
76 pattern: *mut c_int,
77 flops: *mut c_double,
78 );
79
80 pub fn lucopy_(
82 pivot: *const c_int,
83 pthresh: *const c_double,
84 dthresh: *const c_double,
85 nzcount: *const c_int,
86 jcol: *const c_int,
87 ncol: *const c_int,
88 lastlu: *mut c_int,
89 lu: *mut c_double,
90 lurow: *mut c_int,
91 lcolst: *mut c_int,
92 ucolst: *mut c_int,
93 rperm: *mut c_int,
94 cperm: *mut c_int,
95 dense: *mut c_double,
96 pattern: *mut c_int,
97 twork: *mut c_double,
98 flops: *mut c_double,
99 zpivot: *mut c_int,
100 );
101
102 pub fn lsolve_(
104 n: *const c_int,
105 lu: *const c_double,
106 lurow: *const c_int,
107 lcolst: *const c_int,
108 ucolst: *const c_int,
109 rperm: *const c_int,
110 cperm: *const c_int,
111 b: *const c_double,
112 x: *mut c_double,
113 error: *mut c_int,
114 );
115
116 pub fn usolve_(
118 n: *const c_int,
119 lu: *const c_double,
120 lurow: *const c_int,
121 lcolst: *const c_int,
122 ucolst: *const c_int,
123 rperm: *const c_int,
124 cperm: *const c_int,
125 b: *const c_double,
126 x: *mut c_double,
127 error: *mut c_int,
128 );
129
130 pub fn ltsolve_(
132 n: *const c_int,
133 lu: *const c_double,
134 lurow: *const c_int,
135 lcolst: *const c_int,
136 ucolst: *const c_int,
137 rperm: *const c_int,
138 cperm: *const c_int,
139 b: *const c_double,
140 x: *mut c_double,
141 error: *mut c_int,
142 );
143
144 pub fn utsolve_(
146 n: *const c_int,
147 lu: *const c_double,
148 lurow: *const c_int,
149 lcolst: *const c_int,
150 ucolst: *const c_int,
151 rperm: *const c_int,
152 cperm: *const c_int,
153 b: *const c_double,
154 x: *mut c_double,
155 error: *mut c_int,
156 );
157}