lapack_inject/
backend.rs

1//! Fortran LAPACK function pointer registration.
2//!
3//! This module provides the infrastructure for registering Fortran LAPACK
4//! function pointers at runtime. Each function has its own `OnceLock` to allow
5//! partial registration (only register the functions you need).
6//!
7//! Auto-generated from lapack-sys.
8
9#![allow(non_camel_case_types)]
10#![allow(non_snake_case)]
11#![allow(clippy::too_many_arguments)]
12
13use std::ffi::c_char;
14use std::sync::OnceLock;
15
16use num_complex::{Complex32, Complex64};
17
18use crate::lapackint;
19
20// =============================================================================
21// Select function types for eigenvalue routines
22// =============================================================================
23
24/// Select function type for real GEES (single)
25pub type SSelectFn2 = unsafe extern "C" fn(ar: *const f32, ai: *const f32) -> lapackint;
26/// Select function type for real GEES (double)
27pub type DSelectFn2 = unsafe extern "C" fn(ar: *const f64, ai: *const f64) -> lapackint;
28/// Select function type for real (single) with 3 args
29pub type SSelectFn3 = unsafe extern "C" fn(ar: *const f32, ai: *const f32, b: *const f32) -> lapackint;
30/// Select function type for real (double) with 3 args
31pub type DSelectFn3 = unsafe extern "C" fn(ar: *const f64, ai: *const f64, b: *const f64) -> lapackint;
32/// Select function type for complex GEES (single)
33pub type CSelectFn1 = unsafe extern "C" fn(w: *const Complex32) -> lapackint;
34/// Select function type for complex GEES (double)
35pub type ZSelectFn1 = unsafe extern "C" fn(w: *const Complex64) -> lapackint;
36/// Select function type for complex (single) with 2 args
37pub type CSelectFn2 = unsafe extern "C" fn(a: *const Complex32, b: *const Complex32) -> lapackint;
38/// Select function type for complex (double) with 2 args
39pub type ZSelectFn2 = unsafe extern "C" fn(a: *const Complex64, b: *const Complex64) -> lapackint;
40
41// =============================================================================
42// Macro for defining LAPACK function types, storage, and registration
43// =============================================================================
44
45/// Macro to define a LAPACK function pointer type, OnceLock storage,
46/// registration function, and getter function.
47macro_rules! define_lapack_ffi {
48    ($func_name:ident, $type_name:ident, $( $param:ident : $param_ty:ty ),* $(,)?) => {
49        paste::paste! {
50            /// Fortran function pointer type
51            pub type $type_name = unsafe extern "C" fn( $( $param : $param_ty ),* );
52
53            static [<$func_name:upper>]: OnceLock<$type_name> = OnceLock::new();
54
55            #[doc = concat!("Register the Fortran ", stringify!($func_name), " function pointer.")]
56            #[no_mangle]
57            pub unsafe extern "C" fn [<register_ $func_name>](f: $type_name) {
58                let _ = [<$func_name:upper>].set(f);
59            }
60
61            #[doc = concat!("Get the registered ", stringify!($func_name), " function pointer.")]
62            #[allow(dead_code)]
63            pub(crate) fn [<get_ $func_name>]() -> $type_name {
64                *[<$func_name:upper>].get().expect(concat!(stringify!($func_name), " not registered"))
65            }
66        }
67    };
68}
69
70// BBCSD
71define_lapack_ffi!(cbbcsd, CbbcsdFnPtr,
72    jobu1: *const c_char,
73    jobu2: *const c_char,
74    jobv1t: *const c_char,
75    jobv2t: *const c_char,
76    trans: *const c_char,
77    m: *const lapackint,
78    p: *const lapackint,
79    q: *const lapackint,
80    theta: *mut f32,
81    phi: *mut f32,
82    U1: *mut Complex32,
83    ldu1: *const lapackint,
84    U2: *mut Complex32,
85    ldu2: *const lapackint,
86    V1T: *mut Complex32,
87    ldv1t: *const lapackint,
88    V2T: *mut Complex32,
89    ldv2t: *const lapackint,
90    B11D: *mut f32,
91    B11E: *mut f32,
92    B12D: *mut f32,
93    B12E: *mut f32,
94    B21D: *mut f32,
95    B21E: *mut f32,
96    B22D: *mut f32,
97    B22E: *mut f32,
98    rwork: *mut f32,
99    lrwork: *const lapackint,
100    info: *mut lapackint,
101);
102
103define_lapack_ffi!(dbbcsd, DbbcsdFnPtr,
104    jobu1: *const c_char,
105    jobu2: *const c_char,
106    jobv1t: *const c_char,
107    jobv2t: *const c_char,
108    trans: *const c_char,
109    m: *const lapackint,
110    p: *const lapackint,
111    q: *const lapackint,
112    theta: *mut f64,
113    phi: *mut f64,
114    U1: *mut f64,
115    ldu1: *const lapackint,
116    U2: *mut f64,
117    ldu2: *const lapackint,
118    V1T: *mut f64,
119    ldv1t: *const lapackint,
120    V2T: *mut f64,
121    ldv2t: *const lapackint,
122    B11D: *mut f64,
123    B11E: *mut f64,
124    B12D: *mut f64,
125    B12E: *mut f64,
126    b21d: *mut f64,
127    b21e: *mut f64,
128    b22d: *mut f64,
129    b22e: *mut f64,
130    work: *mut f64,
131    lwork: *const lapackint,
132    info: *mut lapackint,
133);
134
135define_lapack_ffi!(sbbcsd, SbbcsdFnPtr,
136    jobu1: *const c_char,
137    jobu2: *const c_char,
138    jobv1t: *const c_char,
139    jobv2t: *const c_char,
140    trans: *const c_char,
141    m: *const lapackint,
142    p: *const lapackint,
143    q: *const lapackint,
144    theta: *mut f32,
145    phi: *mut f32,
146    U1: *mut f32,
147    ldu1: *const lapackint,
148    U2: *mut f32,
149    ldu2: *const lapackint,
150    V1T: *mut f32,
151    ldv1t: *const lapackint,
152    V2T: *mut f32,
153    ldv2t: *const lapackint,
154    B11D: *mut f32,
155    B11E: *mut f32,
156    B12D: *mut f32,
157    B12E: *mut f32,
158    B21D: *mut f32,
159    B21E: *mut f32,
160    B22D: *mut f32,
161    B22E: *mut f32,
162    work: *mut f32,
163    lwork: *const lapackint,
164    info: *mut lapackint,
165);
166
167define_lapack_ffi!(zbbcsd, ZbbcsdFnPtr,
168    jobu1: *const c_char,
169    jobu2: *const c_char,
170    jobv1t: *const c_char,
171    jobv2t: *const c_char,
172    trans: *const c_char,
173    m: *const lapackint,
174    p: *const lapackint,
175    q: *const lapackint,
176    theta: *mut f64,
177    phi: *mut f64,
178    U1: *mut Complex64,
179    ldu1: *const lapackint,
180    U2: *mut Complex64,
181    ldu2: *const lapackint,
182    V1T: *mut Complex64,
183    ldv1t: *const lapackint,
184    V2T: *mut Complex64,
185    ldv2t: *const lapackint,
186    B11D: *mut f64,
187    B11E: *mut f64,
188    B12D: *mut f64,
189    B12E: *mut f64,
190    B21D: *mut f64,
191    B21E: *mut f64,
192    B22D: *mut f64,
193    B22E: *mut f64,
194    rwork: *mut f64,
195    lrwork: *const lapackint,
196    info: *mut lapackint,
197);
198
199// BDSDC
200define_lapack_ffi!(dbdsdc, DbdsdcFnPtr,
201    uplo: *const c_char,
202    compq: *const c_char,
203    n: *const lapackint,
204    D: *mut f64,
205    E: *mut f64,
206    U: *mut f64,
207    ldu: *const lapackint,
208    VT: *mut f64,
209    ldvt: *const lapackint,
210    Q: *mut f64,
211    IQ: *mut lapackint,
212    work: *mut f64,
213    iwork: *mut lapackint,
214    info: *mut lapackint,
215);
216
217define_lapack_ffi!(sbdsdc, SbdsdcFnPtr,
218    uplo: *const c_char,
219    compq: *const c_char,
220    n: *const lapackint,
221    D: *mut f32,
222    E: *mut f32,
223    U: *mut f32,
224    ldu: *const lapackint,
225    VT: *mut f32,
226    ldvt: *const lapackint,
227    Q: *mut f32,
228    IQ: *mut lapackint,
229    work: *mut f32,
230    iwork: *mut lapackint,
231    info: *mut lapackint,
232);
233
234// BDSQR
235define_lapack_ffi!(cbdsqr, CbdsqrFnPtr,
236    uplo: *const c_char,
237    n: *const lapackint,
238    ncvt: *const lapackint,
239    nru: *const lapackint,
240    ncc: *const lapackint,
241    D: *mut f32,
242    E: *mut f32,
243    VT: *mut Complex32,
244    ldvt: *const lapackint,
245    U: *mut Complex32,
246    ldu: *const lapackint,
247    C: *mut Complex32,
248    ldc: *const lapackint,
249    rwork: *mut f32,
250    info: *mut lapackint,
251);
252
253define_lapack_ffi!(dbdsqr, DbdsqrFnPtr,
254    uplo: *const c_char,
255    n: *const lapackint,
256    ncvt: *const lapackint,
257    nru: *const lapackint,
258    ncc: *const lapackint,
259    D: *mut f64,
260    E: *mut f64,
261    VT: *mut f64,
262    ldvt: *const lapackint,
263    U: *mut f64,
264    ldu: *const lapackint,
265    C: *mut f64,
266    ldc: *const lapackint,
267    work: *mut f64,
268    info: *mut lapackint,
269);
270
271define_lapack_ffi!(sbdsqr, SbdsqrFnPtr,
272    uplo: *const c_char,
273    n: *const lapackint,
274    ncvt: *const lapackint,
275    nru: *const lapackint,
276    ncc: *const lapackint,
277    D: *mut f32,
278    E: *mut f32,
279    VT: *mut f32,
280    ldvt: *const lapackint,
281    U: *mut f32,
282    ldu: *const lapackint,
283    C: *mut f32,
284    ldc: *const lapackint,
285    work: *mut f32,
286    info: *mut lapackint,
287);
288
289define_lapack_ffi!(zbdsqr, ZbdsqrFnPtr,
290    uplo: *const c_char,
291    n: *const lapackint,
292    ncvt: *const lapackint,
293    nru: *const lapackint,
294    ncc: *const lapackint,
295    D: *mut f64,
296    E: *mut f64,
297    VT: *mut Complex64,
298    ldvt: *const lapackint,
299    U: *mut Complex64,
300    ldu: *const lapackint,
301    C: *mut Complex64,
302    ldc: *const lapackint,
303    rwork: *mut f64,
304    info: *mut lapackint,
305);
306
307// BDSVDX
308define_lapack_ffi!(dbdsvdx, DbdsvdxFnPtr,
309    uplo: *const c_char,
310    jobz: *const c_char,
311    range: *const c_char,
312    n: *const lapackint,
313    D: *const f64,
314    E: *const f64,
315    vl: *const f64,
316    vu: *const f64,
317    il: *const lapackint,
318    iu: *const lapackint,
319    ns: *mut lapackint,
320    S: *mut f64,
321    Z: *mut f64,
322    ldz: *const lapackint,
323    work: *mut f64,
324    iwork: *mut lapackint,
325    info: *mut lapackint,
326);
327
328define_lapack_ffi!(sbdsvdx, SbdsvdxFnPtr,
329    uplo: *const c_char,
330    jobz: *const c_char,
331    range: *const c_char,
332    n: *const lapackint,
333    D: *const f32,
334    E: *const f32,
335    vl: *const f32,
336    vu: *const f32,
337    il: *const lapackint,
338    iu: *const lapackint,
339    ns: *mut lapackint,
340    S: *mut f32,
341    Z: *mut f32,
342    ldz: *const lapackint,
343    work: *mut f32,
344    iwork: *mut lapackint,
345    info: *mut lapackint,
346);
347
348// CGESV
349define_lapack_ffi!(zcgesv, ZcgesvFnPtr,
350    n: *const lapackint,
351    nrhs: *const lapackint,
352    A: *mut Complex64,
353    lda: *const lapackint,
354    ipiv: *mut lapackint,
355    B: *const Complex64,
356    ldb: *const lapackint,
357    X: *mut Complex64,
358    ldx: *const lapackint,
359    work: *mut Complex64,
360    swork: *mut Complex32,
361    rwork: *mut f64,
362    iter: *mut lapackint,
363    info: *mut lapackint,
364);
365
366// CPOSV
367define_lapack_ffi!(zcposv, ZcposvFnPtr,
368    uplo: *const c_char,
369    n: *const lapackint,
370    nrhs: *const lapackint,
371    A: *mut Complex64,
372    lda: *const lapackint,
373    B: *const Complex64,
374    ldb: *const lapackint,
375    X: *mut Complex64,
376    ldx: *const lapackint,
377    work: *mut Complex64,
378    swork: *mut Complex32,
379    rwork: *mut f64,
380    iter: *mut lapackint,
381    info: *mut lapackint,
382);
383
384// DISNA
385define_lapack_ffi!(ddisna, DdisnaFnPtr,
386    job: *const c_char,
387    m: *const lapackint,
388    n: *const lapackint,
389    D: *const f64,
390    SEP: *mut f64,
391    info: *mut lapackint,
392);
393
394define_lapack_ffi!(sdisna, SdisnaFnPtr,
395    job: *const c_char,
396    m: *const lapackint,
397    n: *const lapackint,
398    D: *const f32,
399    SEP: *mut f32,
400    info: *mut lapackint,
401);
402
403// GBBRD
404define_lapack_ffi!(cgbbrd, CgbbrdFnPtr,
405    vect: *const c_char,
406    m: *const lapackint,
407    n: *const lapackint,
408    ncc: *const lapackint,
409    kl: *const lapackint,
410    ku: *const lapackint,
411    AB: *mut Complex32,
412    ldab: *const lapackint,
413    D: *mut f32,
414    E: *mut f32,
415    Q: *mut Complex32,
416    ldq: *const lapackint,
417    PT: *mut Complex32,
418    ldpt: *const lapackint,
419    C: *mut Complex32,
420    ldc: *const lapackint,
421    work: *mut Complex32,
422    rwork: *mut f32,
423    info: *mut lapackint,
424);
425
426define_lapack_ffi!(dgbbrd, DgbbrdFnPtr,
427    vect: *const c_char,
428    m: *const lapackint,
429    n: *const lapackint,
430    ncc: *const lapackint,
431    kl: *const lapackint,
432    ku: *const lapackint,
433    AB: *mut f64,
434    ldab: *const lapackint,
435    D: *mut f64,
436    E: *mut f64,
437    Q: *mut f64,
438    ldq: *const lapackint,
439    PT: *mut f64,
440    ldpt: *const lapackint,
441    C: *mut f64,
442    ldc: *const lapackint,
443    work: *mut f64,
444    info: *mut lapackint,
445);
446
447define_lapack_ffi!(sgbbrd, SgbbrdFnPtr,
448    vect: *const c_char,
449    m: *const lapackint,
450    n: *const lapackint,
451    ncc: *const lapackint,
452    kl: *const lapackint,
453    ku: *const lapackint,
454    AB: *mut f32,
455    ldab: *const lapackint,
456    D: *mut f32,
457    E: *mut f32,
458    Q: *mut f32,
459    ldq: *const lapackint,
460    PT: *mut f32,
461    ldpt: *const lapackint,
462    C: *mut f32,
463    ldc: *const lapackint,
464    work: *mut f32,
465    info: *mut lapackint,
466);
467
468define_lapack_ffi!(zgbbrd, ZgbbrdFnPtr,
469    vect: *const c_char,
470    m: *const lapackint,
471    n: *const lapackint,
472    ncc: *const lapackint,
473    kl: *const lapackint,
474    ku: *const lapackint,
475    AB: *mut Complex64,
476    ldab: *const lapackint,
477    D: *mut f64,
478    E: *mut f64,
479    Q: *mut Complex64,
480    ldq: *const lapackint,
481    PT: *mut Complex64,
482    ldpt: *const lapackint,
483    C: *mut Complex64,
484    ldc: *const lapackint,
485    work: *mut Complex64,
486    rwork: *mut f64,
487    info: *mut lapackint,
488);
489
490// GBCON
491define_lapack_ffi!(cgbcon, CgbconFnPtr,
492    norm: *const c_char,
493    n: *const lapackint,
494    kl: *const lapackint,
495    ku: *const lapackint,
496    AB: *const Complex32,
497    ldab: *const lapackint,
498    ipiv: *const lapackint,
499    anorm: *const f32,
500    rcond: *mut f32,
501    work: *mut Complex32,
502    rwork: *mut f32,
503    info: *mut lapackint,
504);
505
506define_lapack_ffi!(dgbcon, DgbconFnPtr,
507    norm: *const c_char,
508    n: *const lapackint,
509    kl: *const lapackint,
510    ku: *const lapackint,
511    AB: *const f64,
512    ldab: *const lapackint,
513    ipiv: *const lapackint,
514    anorm: *const f64,
515    rcond: *mut f64,
516    work: *mut f64,
517    iwork: *mut lapackint,
518    info: *mut lapackint,
519);
520
521define_lapack_ffi!(sgbcon, SgbconFnPtr,
522    norm: *const c_char,
523    n: *const lapackint,
524    kl: *const lapackint,
525    ku: *const lapackint,
526    AB: *const f32,
527    ldab: *const lapackint,
528    ipiv: *const lapackint,
529    anorm: *const f32,
530    rcond: *mut f32,
531    work: *mut f32,
532    iwork: *mut lapackint,
533    info: *mut lapackint,
534);
535
536define_lapack_ffi!(zgbcon, ZgbconFnPtr,
537    norm: *const c_char,
538    n: *const lapackint,
539    kl: *const lapackint,
540    ku: *const lapackint,
541    AB: *const Complex64,
542    ldab: *const lapackint,
543    ipiv: *const lapackint,
544    anorm: *const f64,
545    rcond: *mut f64,
546    work: *mut Complex64,
547    rwork: *mut f64,
548    info: *mut lapackint,
549);
550
551// GBEQU
552define_lapack_ffi!(cgbequ, CgbequFnPtr,
553    m: *const lapackint,
554    n: *const lapackint,
555    kl: *const lapackint,
556    ku: *const lapackint,
557    AB: *const Complex32,
558    ldab: *const lapackint,
559    R: *mut f32,
560    C: *mut f32,
561    rowcnd: *mut f32,
562    colcnd: *mut f32,
563    amax: *mut f32,
564    info: *mut lapackint,
565);
566
567define_lapack_ffi!(dgbequ, DgbequFnPtr,
568    m: *const lapackint,
569    n: *const lapackint,
570    kl: *const lapackint,
571    ku: *const lapackint,
572    AB: *const f64,
573    ldab: *const lapackint,
574    R: *mut f64,
575    C: *mut f64,
576    rowcnd: *mut f64,
577    colcnd: *mut f64,
578    amax: *mut f64,
579    info: *mut lapackint,
580);
581
582define_lapack_ffi!(sgbequ, SgbequFnPtr,
583    m: *const lapackint,
584    n: *const lapackint,
585    kl: *const lapackint,
586    ku: *const lapackint,
587    AB: *const f32,
588    ldab: *const lapackint,
589    R: *mut f32,
590    C: *mut f32,
591    rowcnd: *mut f32,
592    colcnd: *mut f32,
593    amax: *mut f32,
594    info: *mut lapackint,
595);
596
597define_lapack_ffi!(zgbequ, ZgbequFnPtr,
598    m: *const lapackint,
599    n: *const lapackint,
600    kl: *const lapackint,
601    ku: *const lapackint,
602    AB: *const Complex64,
603    ldab: *const lapackint,
604    R: *mut f64,
605    C: *mut f64,
606    rowcnd: *mut f64,
607    colcnd: *mut f64,
608    amax: *mut f64,
609    info: *mut lapackint,
610);
611
612// GBEQUB
613define_lapack_ffi!(cgbequb, CgbequbFnPtr,
614    m: *const lapackint,
615    n: *const lapackint,
616    kl: *const lapackint,
617    ku: *const lapackint,
618    AB: *const Complex32,
619    ldab: *const lapackint,
620    R: *mut f32,
621    C: *mut f32,
622    rowcnd: *mut f32,
623    colcnd: *mut f32,
624    amax: *mut f32,
625    info: *mut lapackint,
626);
627
628define_lapack_ffi!(dgbequb, DgbequbFnPtr,
629    m: *const lapackint,
630    n: *const lapackint,
631    kl: *const lapackint,
632    ku: *const lapackint,
633    AB: *const f64,
634    ldab: *const lapackint,
635    R: *mut f64,
636    C: *mut f64,
637    rowcnd: *mut f64,
638    colcnd: *mut f64,
639    amax: *mut f64,
640    info: *mut lapackint,
641);
642
643define_lapack_ffi!(sgbequb, SgbequbFnPtr,
644    m: *const lapackint,
645    n: *const lapackint,
646    kl: *const lapackint,
647    ku: *const lapackint,
648    AB: *const f32,
649    ldab: *const lapackint,
650    R: *mut f32,
651    C: *mut f32,
652    rowcnd: *mut f32,
653    colcnd: *mut f32,
654    amax: *mut f32,
655    info: *mut lapackint,
656);
657
658define_lapack_ffi!(zgbequb, ZgbequbFnPtr,
659    m: *const lapackint,
660    n: *const lapackint,
661    kl: *const lapackint,
662    ku: *const lapackint,
663    AB: *const Complex64,
664    ldab: *const lapackint,
665    R: *mut f64,
666    C: *mut f64,
667    rowcnd: *mut f64,
668    colcnd: *mut f64,
669    amax: *mut f64,
670    info: *mut lapackint,
671);
672
673// GBRFS
674define_lapack_ffi!(cgbrfs, CgbrfsFnPtr,
675    trans: *const c_char,
676    n: *const lapackint,
677    kl: *const lapackint,
678    ku: *const lapackint,
679    nrhs: *const lapackint,
680    AB: *const Complex32,
681    ldab: *const lapackint,
682    AFB: *const Complex32,
683    ldafb: *const lapackint,
684    ipiv: *const lapackint,
685    B: *const Complex32,
686    ldb: *const lapackint,
687    X: *mut Complex32,
688    ldx: *const lapackint,
689    ferr: *mut f32,
690    berr: *mut f32,
691    work: *mut Complex32,
692    rwork: *mut f32,
693    info: *mut lapackint,
694);
695
696define_lapack_ffi!(dgbrfs, DgbrfsFnPtr,
697    trans: *const c_char,
698    n: *const lapackint,
699    kl: *const lapackint,
700    ku: *const lapackint,
701    nrhs: *const lapackint,
702    AB: *const f64,
703    ldab: *const lapackint,
704    AFB: *const f64,
705    ldafb: *const lapackint,
706    ipiv: *const lapackint,
707    B: *const f64,
708    ldb: *const lapackint,
709    X: *mut f64,
710    ldx: *const lapackint,
711    ferr: *mut f64,
712    berr: *mut f64,
713    work: *mut f64,
714    iwork: *mut lapackint,
715    info: *mut lapackint,
716);
717
718define_lapack_ffi!(sgbrfs, SgbrfsFnPtr,
719    trans: *const c_char,
720    n: *const lapackint,
721    kl: *const lapackint,
722    ku: *const lapackint,
723    nrhs: *const lapackint,
724    AB: *const f32,
725    ldab: *const lapackint,
726    AFB: *const f32,
727    ldafb: *const lapackint,
728    ipiv: *const lapackint,
729    B: *const f32,
730    ldb: *const lapackint,
731    X: *mut f32,
732    ldx: *const lapackint,
733    ferr: *mut f32,
734    berr: *mut f32,
735    work: *mut f32,
736    iwork: *mut lapackint,
737    info: *mut lapackint,
738);
739
740define_lapack_ffi!(zgbrfs, ZgbrfsFnPtr,
741    trans: *const c_char,
742    n: *const lapackint,
743    kl: *const lapackint,
744    ku: *const lapackint,
745    nrhs: *const lapackint,
746    AB: *const Complex64,
747    ldab: *const lapackint,
748    AFB: *const Complex64,
749    ldafb: *const lapackint,
750    ipiv: *const lapackint,
751    B: *const Complex64,
752    ldb: *const lapackint,
753    X: *mut Complex64,
754    ldx: *const lapackint,
755    ferr: *mut f64,
756    berr: *mut f64,
757    work: *mut Complex64,
758    rwork: *mut f64,
759    info: *mut lapackint,
760);
761
762// GBRFSX
763define_lapack_ffi!(cgbrfsx, CgbrfsxFnPtr,
764    trans: *const c_char,
765    equed: *const c_char,
766    n: *const lapackint,
767    kl: *const lapackint,
768    ku: *const lapackint,
769    nrhs: *const lapackint,
770    AB: *const Complex32,
771    ldab: *const lapackint,
772    AFB: *const Complex32,
773    ldafb: *const lapackint,
774    ipiv: *const lapackint,
775    R: *mut f32,
776    C: *mut f32,
777    B: *const Complex32,
778    ldb: *const lapackint,
779    X: *mut Complex32,
780    ldx: *const lapackint,
781    rcond: *mut f32,
782    berr: *mut f32,
783    n_err_bnds: *const lapackint,
784    err_bnds_norm: *mut f32,
785    err_bnds_comp: *mut f32,
786    nparams: *const lapackint,
787    params: *mut f32,
788    work: *mut Complex32,
789    rwork: *mut f32,
790    info: *mut lapackint,
791);
792
793define_lapack_ffi!(dgbrfsx, DgbrfsxFnPtr,
794    trans: *const c_char,
795    equed: *const c_char,
796    n: *const lapackint,
797    kl: *const lapackint,
798    ku: *const lapackint,
799    nrhs: *const lapackint,
800    AB: *const f64,
801    ldab: *const lapackint,
802    AFB: *const f64,
803    ldafb: *const lapackint,
804    ipiv: *const lapackint,
805    R: *mut f64,
806    C: *mut f64,
807    B: *const f64,
808    ldb: *const lapackint,
809    X: *mut f64,
810    ldx: *const lapackint,
811    rcond: *mut f64,
812    berr: *mut f64,
813    n_err_bnds: *const lapackint,
814    err_bnds_norm: *mut f64,
815    err_bnds_comp: *mut f64,
816    nparams: *const lapackint,
817    params: *mut f64,
818    work: *mut f64,
819    iwork: *mut lapackint,
820    info: *mut lapackint,
821);
822
823define_lapack_ffi!(sgbrfsx, SgbrfsxFnPtr,
824    trans: *const c_char,
825    equed: *const c_char,
826    n: *const lapackint,
827    kl: *const lapackint,
828    ku: *const lapackint,
829    nrhs: *const lapackint,
830    AB: *const f32,
831    ldab: *const lapackint,
832    AFB: *const f32,
833    ldafb: *const lapackint,
834    ipiv: *const lapackint,
835    R: *mut f32,
836    C: *mut f32,
837    B: *const f32,
838    ldb: *const lapackint,
839    X: *mut f32,
840    ldx: *const lapackint,
841    rcond: *mut f32,
842    berr: *mut f32,
843    n_err_bnds: *const lapackint,
844    err_bnds_norm: *mut f32,
845    err_bnds_comp: *mut f32,
846    nparams: *const lapackint,
847    params: *mut f32,
848    work: *mut f32,
849    iwork: *mut lapackint,
850    info: *mut lapackint,
851);
852
853define_lapack_ffi!(zgbrfsx, ZgbrfsxFnPtr,
854    trans: *const c_char,
855    equed: *const c_char,
856    n: *const lapackint,
857    kl: *const lapackint,
858    ku: *const lapackint,
859    nrhs: *const lapackint,
860    AB: *const Complex64,
861    ldab: *const lapackint,
862    AFB: *const Complex64,
863    ldafb: *const lapackint,
864    ipiv: *const lapackint,
865    R: *mut f64,
866    C: *mut f64,
867    B: *const Complex64,
868    ldb: *const lapackint,
869    X: *mut Complex64,
870    ldx: *const lapackint,
871    rcond: *mut f64,
872    berr: *mut f64,
873    n_err_bnds: *const lapackint,
874    err_bnds_norm: *mut f64,
875    err_bnds_comp: *mut f64,
876    nparams: *const lapackint,
877    params: *mut f64,
878    work: *mut Complex64,
879    rwork: *mut f64,
880    info: *mut lapackint,
881);
882
883// GBSV
884define_lapack_ffi!(cgbsv, CgbsvFnPtr,
885    n: *const lapackint,
886    kl: *const lapackint,
887    ku: *const lapackint,
888    nrhs: *const lapackint,
889    AB: *mut Complex32,
890    ldab: *const lapackint,
891    ipiv: *mut lapackint,
892    B: *mut Complex32,
893    ldb: *const lapackint,
894    info: *mut lapackint,
895);
896
897define_lapack_ffi!(dgbsv, DgbsvFnPtr,
898    n: *const lapackint,
899    kl: *const lapackint,
900    ku: *const lapackint,
901    nrhs: *const lapackint,
902    AB: *mut f64,
903    ldab: *const lapackint,
904    ipiv: *mut lapackint,
905    B: *mut f64,
906    ldb: *const lapackint,
907    info: *mut lapackint,
908);
909
910define_lapack_ffi!(sgbsv, SgbsvFnPtr,
911    n: *const lapackint,
912    kl: *const lapackint,
913    ku: *const lapackint,
914    nrhs: *const lapackint,
915    AB: *mut f32,
916    ldab: *const lapackint,
917    ipiv: *mut lapackint,
918    B: *mut f32,
919    ldb: *const lapackint,
920    info: *mut lapackint,
921);
922
923define_lapack_ffi!(zgbsv, ZgbsvFnPtr,
924    n: *const lapackint,
925    kl: *const lapackint,
926    ku: *const lapackint,
927    nrhs: *const lapackint,
928    AB: *mut Complex64,
929    ldab: *const lapackint,
930    ipiv: *mut lapackint,
931    B: *mut Complex64,
932    ldb: *const lapackint,
933    info: *mut lapackint,
934);
935
936// GBSVX
937define_lapack_ffi!(cgbsvx, CgbsvxFnPtr,
938    fact: *const c_char,
939    trans: *const c_char,
940    n: *const lapackint,
941    kl: *const lapackint,
942    ku: *const lapackint,
943    nrhs: *const lapackint,
944    AB: *mut Complex32,
945    ldab: *const lapackint,
946    AFB: *mut Complex32,
947    ldafb: *const lapackint,
948    ipiv: *mut lapackint,
949    equed: *mut c_char,
950    R: *mut f32,
951    C: *mut f32,
952    B: *mut Complex32,
953    ldb: *const lapackint,
954    X: *mut Complex32,
955    ldx: *const lapackint,
956    rcond: *mut f32,
957    ferr: *mut f32,
958    berr: *mut f32,
959    work: *mut Complex32,
960    rwork: *mut f32,
961    info: *mut lapackint,
962);
963
964define_lapack_ffi!(dgbsvx, DgbsvxFnPtr,
965    fact: *const c_char,
966    trans: *const c_char,
967    n: *const lapackint,
968    kl: *const lapackint,
969    ku: *const lapackint,
970    nrhs: *const lapackint,
971    AB: *mut f64,
972    ldab: *const lapackint,
973    AFB: *mut f64,
974    ldafb: *const lapackint,
975    ipiv: *mut lapackint,
976    equed: *mut c_char,
977    R: *mut f64,
978    C: *mut f64,
979    B: *mut f64,
980    ldb: *const lapackint,
981    X: *mut f64,
982    ldx: *const lapackint,
983    rcond: *mut f64,
984    ferr: *mut f64,
985    berr: *mut f64,
986    work: *mut f64,
987    iwork: *mut lapackint,
988    info: *mut lapackint,
989);
990
991define_lapack_ffi!(sgbsvx, SgbsvxFnPtr,
992    fact: *const c_char,
993    trans: *const c_char,
994    n: *const lapackint,
995    kl: *const lapackint,
996    ku: *const lapackint,
997    nrhs: *const lapackint,
998    AB: *mut f32,
999    ldab: *const lapackint,
1000    AFB: *mut f32,
1001    ldafb: *const lapackint,
1002    ipiv: *mut lapackint,
1003    equed: *mut c_char,
1004    R: *mut f32,
1005    C: *mut f32,
1006    B: *mut f32,
1007    ldb: *const lapackint,
1008    X: *mut f32,
1009    ldx: *const lapackint,
1010    rcond: *mut f32,
1011    ferr: *mut f32,
1012    berr: *mut f32,
1013    work: *mut f32,
1014    iwork: *mut lapackint,
1015    info: *mut lapackint,
1016);
1017
1018define_lapack_ffi!(zgbsvx, ZgbsvxFnPtr,
1019    fact: *const c_char,
1020    trans: *const c_char,
1021    n: *const lapackint,
1022    kl: *const lapackint,
1023    ku: *const lapackint,
1024    nrhs: *const lapackint,
1025    AB: *mut Complex64,
1026    ldab: *const lapackint,
1027    AFB: *mut Complex64,
1028    ldafb: *const lapackint,
1029    ipiv: *mut lapackint,
1030    equed: *mut c_char,
1031    R: *mut f64,
1032    C: *mut f64,
1033    B: *mut Complex64,
1034    ldb: *const lapackint,
1035    X: *mut Complex64,
1036    ldx: *const lapackint,
1037    rcond: *mut f64,
1038    ferr: *mut f64,
1039    berr: *mut f64,
1040    work: *mut Complex64,
1041    rwork: *mut f64,
1042    info: *mut lapackint,
1043);
1044
1045// GBSVXX
1046define_lapack_ffi!(cgbsvxx, CgbsvxxFnPtr,
1047    fact: *const c_char,
1048    trans: *const c_char,
1049    n: *const lapackint,
1050    kl: *const lapackint,
1051    ku: *const lapackint,
1052    nrhs: *const lapackint,
1053    AB: *mut Complex32,
1054    ldab: *const lapackint,
1055    AFB: *mut Complex32,
1056    ldafb: *const lapackint,
1057    ipiv: *mut lapackint,
1058    equed: *mut c_char,
1059    R: *mut f32,
1060    C: *mut f32,
1061    B: *mut Complex32,
1062    ldb: *const lapackint,
1063    X: *mut Complex32,
1064    ldx: *const lapackint,
1065    rcond: *mut f32,
1066    rpvgrw: *mut f32,
1067    berr: *mut f32,
1068    n_err_bnds: *const lapackint,
1069    err_bnds_norm: *mut f32,
1070    err_bnds_comp: *mut f32,
1071    nparams: *const lapackint,
1072    params: *mut f32,
1073    work: *mut Complex32,
1074    rwork: *mut f32,
1075    info: *mut lapackint,
1076);
1077
1078define_lapack_ffi!(dgbsvxx, DgbsvxxFnPtr,
1079    fact: *const c_char,
1080    trans: *const c_char,
1081    n: *const lapackint,
1082    kl: *const lapackint,
1083    ku: *const lapackint,
1084    nrhs: *const lapackint,
1085    AB: *mut f64,
1086    ldab: *const lapackint,
1087    AFB: *mut f64,
1088    ldafb: *const lapackint,
1089    ipiv: *mut lapackint,
1090    equed: *mut c_char,
1091    R: *mut f64,
1092    C: *mut f64,
1093    B: *mut f64,
1094    ldb: *const lapackint,
1095    X: *mut f64,
1096    ldx: *const lapackint,
1097    rcond: *mut f64,
1098    rpvgrw: *mut f64,
1099    berr: *mut f64,
1100    n_err_bnds: *const lapackint,
1101    err_bnds_norm: *mut f64,
1102    err_bnds_comp: *mut f64,
1103    nparams: *const lapackint,
1104    params: *mut f64,
1105    work: *mut f64,
1106    iwork: *mut lapackint,
1107    info: *mut lapackint,
1108);
1109
1110define_lapack_ffi!(sgbsvxx, SgbsvxxFnPtr,
1111    fact: *const c_char,
1112    trans: *const c_char,
1113    n: *const lapackint,
1114    kl: *const lapackint,
1115    ku: *const lapackint,
1116    nrhs: *const lapackint,
1117    AB: *mut f32,
1118    ldab: *const lapackint,
1119    AFB: *mut f32,
1120    ldafb: *const lapackint,
1121    ipiv: *mut lapackint,
1122    equed: *mut c_char,
1123    R: *mut f32,
1124    C: *mut f32,
1125    B: *mut f32,
1126    ldb: *const lapackint,
1127    X: *mut f32,
1128    ldx: *const lapackint,
1129    rcond: *mut f32,
1130    rpvgrw: *mut f32,
1131    berr: *mut f32,
1132    n_err_bnds: *const lapackint,
1133    err_bnds_norm: *mut f32,
1134    err_bnds_comp: *mut f32,
1135    nparams: *const lapackint,
1136    params: *mut f32,
1137    work: *mut f32,
1138    iwork: *mut lapackint,
1139    info: *mut lapackint,
1140);
1141
1142define_lapack_ffi!(zgbsvxx, ZgbsvxxFnPtr,
1143    fact: *const c_char,
1144    trans: *const c_char,
1145    n: *const lapackint,
1146    kl: *const lapackint,
1147    ku: *const lapackint,
1148    nrhs: *const lapackint,
1149    AB: *mut Complex64,
1150    ldab: *const lapackint,
1151    AFB: *mut Complex64,
1152    ldafb: *const lapackint,
1153    ipiv: *mut lapackint,
1154    equed: *mut c_char,
1155    R: *mut f64,
1156    C: *mut f64,
1157    B: *mut Complex64,
1158    ldb: *const lapackint,
1159    X: *mut Complex64,
1160    ldx: *const lapackint,
1161    rcond: *mut f64,
1162    rpvgrw: *mut f64,
1163    berr: *mut f64,
1164    n_err_bnds: *const lapackint,
1165    err_bnds_norm: *mut f64,
1166    err_bnds_comp: *mut f64,
1167    nparams: *const lapackint,
1168    params: *mut f64,
1169    work: *mut Complex64,
1170    rwork: *mut f64,
1171    info: *mut lapackint,
1172);
1173
1174// GBTRF
1175define_lapack_ffi!(cgbtrf, CgbtrfFnPtr,
1176    m: *const lapackint,
1177    n: *const lapackint,
1178    kl: *const lapackint,
1179    ku: *const lapackint,
1180    AB: *mut Complex32,
1181    ldab: *const lapackint,
1182    ipiv: *mut lapackint,
1183    info: *mut lapackint,
1184);
1185
1186define_lapack_ffi!(dgbtrf, DgbtrfFnPtr,
1187    m: *const lapackint,
1188    n: *const lapackint,
1189    kl: *const lapackint,
1190    ku: *const lapackint,
1191    AB: *mut f64,
1192    ldab: *const lapackint,
1193    ipiv: *mut lapackint,
1194    info: *mut lapackint,
1195);
1196
1197define_lapack_ffi!(sgbtrf, SgbtrfFnPtr,
1198    m: *const lapackint,
1199    n: *const lapackint,
1200    kl: *const lapackint,
1201    ku: *const lapackint,
1202    AB: *mut f32,
1203    ldab: *const lapackint,
1204    ipiv: *mut lapackint,
1205    info: *mut lapackint,
1206);
1207
1208define_lapack_ffi!(zgbtrf, ZgbtrfFnPtr,
1209    m: *const lapackint,
1210    n: *const lapackint,
1211    kl: *const lapackint,
1212    ku: *const lapackint,
1213    AB: *mut Complex64,
1214    ldab: *const lapackint,
1215    ipiv: *mut lapackint,
1216    info: *mut lapackint,
1217);
1218
1219// GBTRS
1220define_lapack_ffi!(cgbtrs, CgbtrsFnPtr,
1221    trans: *const c_char,
1222    n: *const lapackint,
1223    kl: *const lapackint,
1224    ku: *const lapackint,
1225    nrhs: *const lapackint,
1226    AB: *const Complex32,
1227    ldab: *const lapackint,
1228    ipiv: *const lapackint,
1229    B: *mut Complex32,
1230    ldb: *const lapackint,
1231    info: *mut lapackint,
1232);
1233
1234define_lapack_ffi!(dgbtrs, DgbtrsFnPtr,
1235    trans: *const c_char,
1236    n: *const lapackint,
1237    kl: *const lapackint,
1238    ku: *const lapackint,
1239    nrhs: *const lapackint,
1240    AB: *const f64,
1241    ldab: *const lapackint,
1242    ipiv: *const lapackint,
1243    B: *mut f64,
1244    ldb: *const lapackint,
1245    info: *mut lapackint,
1246);
1247
1248define_lapack_ffi!(sgbtrs, SgbtrsFnPtr,
1249    trans: *const c_char,
1250    n: *const lapackint,
1251    kl: *const lapackint,
1252    ku: *const lapackint,
1253    nrhs: *const lapackint,
1254    AB: *const f32,
1255    ldab: *const lapackint,
1256    ipiv: *const lapackint,
1257    B: *mut f32,
1258    ldb: *const lapackint,
1259    info: *mut lapackint,
1260);
1261
1262define_lapack_ffi!(zgbtrs, ZgbtrsFnPtr,
1263    trans: *const c_char,
1264    n: *const lapackint,
1265    kl: *const lapackint,
1266    ku: *const lapackint,
1267    nrhs: *const lapackint,
1268    AB: *const Complex64,
1269    ldab: *const lapackint,
1270    ipiv: *const lapackint,
1271    B: *mut Complex64,
1272    ldb: *const lapackint,
1273    info: *mut lapackint,
1274);
1275
1276// GEBAK
1277define_lapack_ffi!(cgebak, CgebakFnPtr,
1278    job: *const c_char,
1279    side: *const c_char,
1280    n: *const lapackint,
1281    ilo: *const lapackint,
1282    ihi: *const lapackint,
1283    scale: *const f32,
1284    m: *const lapackint,
1285    V: *mut Complex32,
1286    ldv: *const lapackint,
1287    info: *mut lapackint,
1288);
1289
1290define_lapack_ffi!(dgebak, DgebakFnPtr,
1291    job: *const c_char,
1292    side: *const c_char,
1293    n: *const lapackint,
1294    ilo: *const lapackint,
1295    ihi: *const lapackint,
1296    scale: *const f64,
1297    m: *const lapackint,
1298    V: *mut f64,
1299    ldv: *const lapackint,
1300    info: *mut lapackint,
1301);
1302
1303define_lapack_ffi!(sgebak, SgebakFnPtr,
1304    job: *const c_char,
1305    side: *const c_char,
1306    n: *const lapackint,
1307    ilo: *const lapackint,
1308    ihi: *const lapackint,
1309    scale: *const f32,
1310    m: *const lapackint,
1311    V: *mut f32,
1312    ldv: *const lapackint,
1313    info: *mut lapackint,
1314);
1315
1316define_lapack_ffi!(zgebak, ZgebakFnPtr,
1317    job: *const c_char,
1318    side: *const c_char,
1319    n: *const lapackint,
1320    ilo: *const lapackint,
1321    ihi: *const lapackint,
1322    scale: *const f64,
1323    m: *const lapackint,
1324    V: *mut Complex64,
1325    ldv: *const lapackint,
1326    info: *mut lapackint,
1327);
1328
1329// GEBAL
1330define_lapack_ffi!(cgebal, CgebalFnPtr,
1331    job: *const c_char,
1332    n: *const lapackint,
1333    A: *mut Complex32,
1334    lda: *const lapackint,
1335    ilo: *mut lapackint,
1336    ihi: *mut lapackint,
1337    scale: *mut f32,
1338    info: *mut lapackint,
1339);
1340
1341define_lapack_ffi!(dgebal, DgebalFnPtr,
1342    job: *const c_char,
1343    n: *const lapackint,
1344    A: *mut f64,
1345    lda: *const lapackint,
1346    ilo: *mut lapackint,
1347    ihi: *mut lapackint,
1348    scale: *mut f64,
1349    info: *mut lapackint,
1350);
1351
1352define_lapack_ffi!(sgebal, SgebalFnPtr,
1353    job: *const c_char,
1354    n: *const lapackint,
1355    A: *mut f32,
1356    lda: *const lapackint,
1357    ilo: *mut lapackint,
1358    ihi: *mut lapackint,
1359    scale: *mut f32,
1360    info: *mut lapackint,
1361);
1362
1363define_lapack_ffi!(zgebal, ZgebalFnPtr,
1364    job: *const c_char,
1365    n: *const lapackint,
1366    A: *mut Complex64,
1367    lda: *const lapackint,
1368    ilo: *mut lapackint,
1369    ihi: *mut lapackint,
1370    scale: *mut f64,
1371    info: *mut lapackint,
1372);
1373
1374// GEBRD
1375define_lapack_ffi!(cgebrd, CgebrdFnPtr,
1376    m: *const lapackint,
1377    n: *const lapackint,
1378    A: *mut Complex32,
1379    lda: *const lapackint,
1380    D: *mut f32,
1381    E: *mut f32,
1382    tauq: *mut Complex32,
1383    taup: *mut Complex32,
1384    work: *mut Complex32,
1385    lwork: *const lapackint,
1386    info: *mut lapackint,
1387);
1388
1389define_lapack_ffi!(dgebrd, DgebrdFnPtr,
1390    m: *const lapackint,
1391    n: *const lapackint,
1392    A: *mut f64,
1393    lda: *const lapackint,
1394    D: *mut f64,
1395    E: *mut f64,
1396    tauq: *mut f64,
1397    taup: *mut f64,
1398    work: *mut f64,
1399    lwork: *const lapackint,
1400    info: *mut lapackint,
1401);
1402
1403define_lapack_ffi!(sgebrd, SgebrdFnPtr,
1404    m: *const lapackint,
1405    n: *const lapackint,
1406    A: *mut f32,
1407    lda: *const lapackint,
1408    D: *mut f32,
1409    E: *mut f32,
1410    tauq: *mut f32,
1411    taup: *mut f32,
1412    work: *mut f32,
1413    lwork: *const lapackint,
1414    info: *mut lapackint,
1415);
1416
1417define_lapack_ffi!(zgebrd, ZgebrdFnPtr,
1418    m: *const lapackint,
1419    n: *const lapackint,
1420    A: *mut Complex64,
1421    lda: *const lapackint,
1422    D: *mut f64,
1423    E: *mut f64,
1424    tauq: *mut Complex64,
1425    taup: *mut Complex64,
1426    work: *mut Complex64,
1427    lwork: *const lapackint,
1428    info: *mut lapackint,
1429);
1430
1431// GECON
1432define_lapack_ffi!(cgecon, CgeconFnPtr,
1433    norm: *const c_char,
1434    n: *const lapackint,
1435    A: *const Complex32,
1436    lda: *const lapackint,
1437    anorm: *const f32,
1438    rcond: *mut f32,
1439    work: *mut Complex32,
1440    rwork: *mut f32,
1441    info: *mut lapackint,
1442);
1443
1444define_lapack_ffi!(dgecon, DgeconFnPtr,
1445    norm: *const c_char,
1446    n: *const lapackint,
1447    A: *const f64,
1448    lda: *const lapackint,
1449    anorm: *const f64,
1450    rcond: *mut f64,
1451    work: *mut f64,
1452    iwork: *mut lapackint,
1453    info: *mut lapackint,
1454);
1455
1456define_lapack_ffi!(sgecon, SgeconFnPtr,
1457    norm: *const c_char,
1458    n: *const lapackint,
1459    A: *const f32,
1460    lda: *const lapackint,
1461    anorm: *const f32,
1462    rcond: *mut f32,
1463    work: *mut f32,
1464    iwork: *mut lapackint,
1465    info: *mut lapackint,
1466);
1467
1468define_lapack_ffi!(zgecon, ZgeconFnPtr,
1469    norm: *const c_char,
1470    n: *const lapackint,
1471    A: *const Complex64,
1472    lda: *const lapackint,
1473    anorm: *const f64,
1474    rcond: *mut f64,
1475    work: *mut Complex64,
1476    rwork: *mut f64,
1477    info: *mut lapackint,
1478);
1479
1480// GEEQU
1481define_lapack_ffi!(cgeequ, CgeequFnPtr,
1482    m: *const lapackint,
1483    n: *const lapackint,
1484    A: *const Complex32,
1485    lda: *const lapackint,
1486    R: *mut f32,
1487    C: *mut f32,
1488    rowcnd: *mut f32,
1489    colcnd: *mut f32,
1490    amax: *mut f32,
1491    info: *mut lapackint,
1492);
1493
1494define_lapack_ffi!(dgeequ, DgeequFnPtr,
1495    m: *const lapackint,
1496    n: *const lapackint,
1497    A: *const f64,
1498    lda: *const lapackint,
1499    R: *mut f64,
1500    C: *mut f64,
1501    rowcnd: *mut f64,
1502    colcnd: *mut f64,
1503    amax: *mut f64,
1504    info: *mut lapackint,
1505);
1506
1507define_lapack_ffi!(sgeequ, SgeequFnPtr,
1508    m: *const lapackint,
1509    n: *const lapackint,
1510    A: *const f32,
1511    lda: *const lapackint,
1512    R: *mut f32,
1513    C: *mut f32,
1514    rowcnd: *mut f32,
1515    colcnd: *mut f32,
1516    amax: *mut f32,
1517    info: *mut lapackint,
1518);
1519
1520define_lapack_ffi!(zgeequ, ZgeequFnPtr,
1521    m: *const lapackint,
1522    n: *const lapackint,
1523    A: *const Complex64,
1524    lda: *const lapackint,
1525    R: *mut f64,
1526    C: *mut f64,
1527    rowcnd: *mut f64,
1528    colcnd: *mut f64,
1529    amax: *mut f64,
1530    info: *mut lapackint,
1531);
1532
1533// GEEQUB
1534define_lapack_ffi!(cgeequb, CgeequbFnPtr,
1535    m: *const lapackint,
1536    n: *const lapackint,
1537    A: *const Complex32,
1538    lda: *const lapackint,
1539    R: *mut f32,
1540    C: *mut f32,
1541    rowcnd: *mut f32,
1542    colcnd: *mut f32,
1543    amax: *mut f32,
1544    info: *mut lapackint,
1545);
1546
1547define_lapack_ffi!(dgeequb, DgeequbFnPtr,
1548    m: *const lapackint,
1549    n: *const lapackint,
1550    A: *const f64,
1551    lda: *const lapackint,
1552    R: *mut f64,
1553    C: *mut f64,
1554    rowcnd: *mut f64,
1555    colcnd: *mut f64,
1556    amax: *mut f64,
1557    info: *mut lapackint,
1558);
1559
1560define_lapack_ffi!(sgeequb, SgeequbFnPtr,
1561    m: *const lapackint,
1562    n: *const lapackint,
1563    A: *const f32,
1564    lda: *const lapackint,
1565    R: *mut f32,
1566    C: *mut f32,
1567    rowcnd: *mut f32,
1568    colcnd: *mut f32,
1569    amax: *mut f32,
1570    info: *mut lapackint,
1571);
1572
1573define_lapack_ffi!(zgeequb, ZgeequbFnPtr,
1574    m: *const lapackint,
1575    n: *const lapackint,
1576    A: *const Complex64,
1577    lda: *const lapackint,
1578    R: *mut f64,
1579    C: *mut f64,
1580    rowcnd: *mut f64,
1581    colcnd: *mut f64,
1582    amax: *mut f64,
1583    info: *mut lapackint,
1584);
1585
1586// GEES
1587define_lapack_ffi!(cgees, CgeesFnPtr,
1588    jobvs: *const c_char,
1589    sort: *const c_char,
1590    select: Option<CSelectFn1>,
1591    n: *const lapackint,
1592    A: *mut Complex32,
1593    lda: *const lapackint,
1594    sdim: *mut lapackint,
1595    W: *mut Complex32,
1596    VS: *mut Complex32,
1597    ldvs: *const lapackint,
1598    work: *mut Complex32,
1599    lwork: *const lapackint,
1600    rwork: *mut f32,
1601    BWORK: *mut lapackint,
1602    info: *mut lapackint,
1603);
1604
1605define_lapack_ffi!(dgees, DgeesFnPtr,
1606    jobvs: *const c_char,
1607    sort: *const c_char,
1608    select: Option<DSelectFn2>,
1609    n: *const lapackint,
1610    A: *mut f64,
1611    lda: *const lapackint,
1612    sdim: *mut lapackint,
1613    WR: *mut f64,
1614    WI: *mut f64,
1615    VS: *mut f64,
1616    ldvs: *const lapackint,
1617    work: *mut f64,
1618    lwork: *const lapackint,
1619    BWORK: *mut lapackint,
1620    info: *mut lapackint,
1621);
1622
1623define_lapack_ffi!(sgees, SgeesFnPtr,
1624    jobvs: *const c_char,
1625    sort: *const c_char,
1626    select: Option<SSelectFn2>,
1627    n: *const lapackint,
1628    A: *mut f32,
1629    lda: *const lapackint,
1630    sdim: *mut lapackint,
1631    WR: *mut f32,
1632    WI: *mut f32,
1633    VS: *mut f32,
1634    ldvs: *const lapackint,
1635    work: *mut f32,
1636    lwork: *const lapackint,
1637    BWORK: *mut lapackint,
1638    info: *mut lapackint,
1639);
1640
1641define_lapack_ffi!(zgees, ZgeesFnPtr,
1642    jobvs: *const c_char,
1643    sort: *const c_char,
1644    select: Option<ZSelectFn1>,
1645    n: *const lapackint,
1646    A: *mut Complex64,
1647    lda: *const lapackint,
1648    sdim: *mut lapackint,
1649    W: *mut Complex64,
1650    VS: *mut Complex64,
1651    ldvs: *const lapackint,
1652    work: *mut Complex64,
1653    lwork: *const lapackint,
1654    rwork: *mut f64,
1655    BWORK: *mut lapackint,
1656    info: *mut lapackint,
1657);
1658
1659// GEESX
1660define_lapack_ffi!(cgeesx, CgeesxFnPtr,
1661    jobvs: *const c_char,
1662    sort: *const c_char,
1663    select: Option<CSelectFn1>,
1664    sense: *const c_char,
1665    n: *const lapackint,
1666    A: *mut Complex32,
1667    lda: *const lapackint,
1668    sdim: *mut lapackint,
1669    W: *mut Complex32,
1670    VS: *mut Complex32,
1671    ldvs: *const lapackint,
1672    rconde: *mut f32,
1673    rcondv: *mut f32,
1674    work: *mut Complex32,
1675    lwork: *const lapackint,
1676    rwork: *mut f32,
1677    BWORK: *mut lapackint,
1678    info: *mut lapackint,
1679);
1680
1681define_lapack_ffi!(dgeesx, DgeesxFnPtr,
1682    jobvs: *const c_char,
1683    sort: *const c_char,
1684    select: Option<DSelectFn2>,
1685    sense: *const c_char,
1686    n: *const lapackint,
1687    A: *mut f64,
1688    lda: *const lapackint,
1689    sdim: *mut lapackint,
1690    WR: *mut f64,
1691    WI: *mut f64,
1692    VS: *mut f64,
1693    ldvs: *const lapackint,
1694    rconde: *mut f64,
1695    rcondv: *mut f64,
1696    work: *mut f64,
1697    lwork: *const lapackint,
1698    iwork: *mut lapackint,
1699    liwork: *const lapackint,
1700    BWORK: *mut lapackint,
1701    info: *mut lapackint,
1702);
1703
1704define_lapack_ffi!(sgeesx, SgeesxFnPtr,
1705    jobvs: *const c_char,
1706    sort: *const c_char,
1707    select: Option<SSelectFn2>,
1708    sense: *const c_char,
1709    n: *const lapackint,
1710    A: *mut f32,
1711    lda: *const lapackint,
1712    sdim: *mut lapackint,
1713    WR: *mut f32,
1714    WI: *mut f32,
1715    VS: *mut f32,
1716    ldvs: *const lapackint,
1717    rconde: *mut f32,
1718    rcondv: *mut f32,
1719    work: *mut f32,
1720    lwork: *const lapackint,
1721    iwork: *mut lapackint,
1722    liwork: *const lapackint,
1723    BWORK: *mut lapackint,
1724    info: *mut lapackint,
1725);
1726
1727define_lapack_ffi!(zgeesx, ZgeesxFnPtr,
1728    jobvs: *const c_char,
1729    sort: *const c_char,
1730    select: Option<ZSelectFn1>,
1731    sense: *const c_char,
1732    n: *const lapackint,
1733    A: *mut Complex64,
1734    lda: *const lapackint,
1735    sdim: *mut lapackint,
1736    W: *mut Complex64,
1737    VS: *mut Complex64,
1738    ldvs: *const lapackint,
1739    rconde: *mut f64,
1740    rcondv: *mut f64,
1741    work: *mut Complex64,
1742    lwork: *const lapackint,
1743    rwork: *mut f64,
1744    BWORK: *mut lapackint,
1745    info: *mut lapackint,
1746);
1747
1748// GEEV
1749define_lapack_ffi!(cgeev, CgeevFnPtr,
1750    jobvl: *const c_char,
1751    jobvr: *const c_char,
1752    n: *const lapackint,
1753    A: *mut Complex32,
1754    lda: *const lapackint,
1755    W: *mut Complex32,
1756    VL: *mut Complex32,
1757    ldvl: *const lapackint,
1758    VR: *mut Complex32,
1759    ldvr: *const lapackint,
1760    work: *mut Complex32,
1761    lwork: *const lapackint,
1762    rwork: *mut f32,
1763    info: *mut lapackint,
1764);
1765
1766define_lapack_ffi!(dgeev, DgeevFnPtr,
1767    jobvl: *const c_char,
1768    jobvr: *const c_char,
1769    n: *const lapackint,
1770    A: *mut f64,
1771    lda: *const lapackint,
1772    WR: *mut f64,
1773    WI: *mut f64,
1774    VL: *mut f64,
1775    ldvl: *const lapackint,
1776    VR: *mut f64,
1777    ldvr: *const lapackint,
1778    work: *mut f64,
1779    lwork: *const lapackint,
1780    info: *mut lapackint,
1781);
1782
1783define_lapack_ffi!(sgeev, SgeevFnPtr,
1784    jobvl: *const c_char,
1785    jobvr: *const c_char,
1786    n: *const lapackint,
1787    A: *mut f32,
1788    lda: *const lapackint,
1789    WR: *mut f32,
1790    WI: *mut f32,
1791    VL: *mut f32,
1792    ldvl: *const lapackint,
1793    VR: *mut f32,
1794    ldvr: *const lapackint,
1795    work: *mut f32,
1796    lwork: *const lapackint,
1797    info: *mut lapackint,
1798);
1799
1800define_lapack_ffi!(zgeev, ZgeevFnPtr,
1801    jobvl: *const c_char,
1802    jobvr: *const c_char,
1803    n: *const lapackint,
1804    A: *mut Complex64,
1805    lda: *const lapackint,
1806    W: *mut Complex64,
1807    VL: *mut Complex64,
1808    ldvl: *const lapackint,
1809    VR: *mut Complex64,
1810    ldvr: *const lapackint,
1811    work: *mut Complex64,
1812    lwork: *const lapackint,
1813    rwork: *mut f64,
1814    info: *mut lapackint,
1815);
1816
1817// GEEVX
1818define_lapack_ffi!(cgeevx, CgeevxFnPtr,
1819    balanc: *const c_char,
1820    jobvl: *const c_char,
1821    jobvr: *const c_char,
1822    sense: *const c_char,
1823    n: *const lapackint,
1824    A: *mut Complex32,
1825    lda: *const lapackint,
1826    W: *mut Complex32,
1827    VL: *mut Complex32,
1828    ldvl: *const lapackint,
1829    VR: *mut Complex32,
1830    ldvr: *const lapackint,
1831    ilo: *mut lapackint,
1832    ihi: *mut lapackint,
1833    scale: *mut f32,
1834    abnrm: *mut f32,
1835    rconde: *mut f32,
1836    rcondv: *mut f32,
1837    work: *mut Complex32,
1838    lwork: *const lapackint,
1839    rwork: *mut f32,
1840    info: *mut lapackint,
1841);
1842
1843define_lapack_ffi!(dgeevx, DgeevxFnPtr,
1844    balanc: *const c_char,
1845    jobvl: *const c_char,
1846    jobvr: *const c_char,
1847    sense: *const c_char,
1848    n: *const lapackint,
1849    A: *mut f64,
1850    lda: *const lapackint,
1851    WR: *mut f64,
1852    WI: *mut f64,
1853    VL: *mut f64,
1854    ldvl: *const lapackint,
1855    VR: *mut f64,
1856    ldvr: *const lapackint,
1857    ilo: *mut lapackint,
1858    ihi: *mut lapackint,
1859    scale: *mut f64,
1860    abnrm: *mut f64,
1861    rconde: *mut f64,
1862    rcondv: *mut f64,
1863    work: *mut f64,
1864    lwork: *const lapackint,
1865    iwork: *mut lapackint,
1866    info: *mut lapackint,
1867);
1868
1869define_lapack_ffi!(sgeevx, SgeevxFnPtr,
1870    balanc: *const c_char,
1871    jobvl: *const c_char,
1872    jobvr: *const c_char,
1873    sense: *const c_char,
1874    n: *const lapackint,
1875    A: *mut f32,
1876    lda: *const lapackint,
1877    WR: *mut f32,
1878    WI: *mut f32,
1879    VL: *mut f32,
1880    ldvl: *const lapackint,
1881    VR: *mut f32,
1882    ldvr: *const lapackint,
1883    ilo: *mut lapackint,
1884    ihi: *mut lapackint,
1885    scale: *mut f32,
1886    abnrm: *mut f32,
1887    rconde: *mut f32,
1888    rcondv: *mut f32,
1889    work: *mut f32,
1890    lwork: *const lapackint,
1891    iwork: *mut lapackint,
1892    info: *mut lapackint,
1893);
1894
1895define_lapack_ffi!(zgeevx, ZgeevxFnPtr,
1896    balanc: *const c_char,
1897    jobvl: *const c_char,
1898    jobvr: *const c_char,
1899    sense: *const c_char,
1900    n: *const lapackint,
1901    A: *mut Complex64,
1902    lda: *const lapackint,
1903    W: *mut Complex64,
1904    VL: *mut Complex64,
1905    ldvl: *const lapackint,
1906    VR: *mut Complex64,
1907    ldvr: *const lapackint,
1908    ilo: *mut lapackint,
1909    ihi: *mut lapackint,
1910    scale: *mut f64,
1911    abnrm: *mut f64,
1912    rconde: *mut f64,
1913    rcondv: *mut f64,
1914    work: *mut Complex64,
1915    lwork: *const lapackint,
1916    rwork: *mut f64,
1917    info: *mut lapackint,
1918);
1919
1920// GEHRD
1921define_lapack_ffi!(cgehrd, CgehrdFnPtr,
1922    n: *const lapackint,
1923    ilo: *const lapackint,
1924    ihi: *const lapackint,
1925    A: *mut Complex32,
1926    lda: *const lapackint,
1927    tau: *mut Complex32,
1928    work: *mut Complex32,
1929    lwork: *const lapackint,
1930    info: *mut lapackint,
1931);
1932
1933define_lapack_ffi!(dgehrd, DgehrdFnPtr,
1934    n: *const lapackint,
1935    ilo: *const lapackint,
1936    ihi: *const lapackint,
1937    A: *mut f64,
1938    lda: *const lapackint,
1939    tau: *mut f64,
1940    work: *mut f64,
1941    lwork: *const lapackint,
1942    info: *mut lapackint,
1943);
1944
1945define_lapack_ffi!(sgehrd, SgehrdFnPtr,
1946    n: *const lapackint,
1947    ilo: *const lapackint,
1948    ihi: *const lapackint,
1949    A: *mut f32,
1950    lda: *const lapackint,
1951    tau: *mut f32,
1952    work: *mut f32,
1953    lwork: *const lapackint,
1954    info: *mut lapackint,
1955);
1956
1957define_lapack_ffi!(zgehrd, ZgehrdFnPtr,
1958    n: *const lapackint,
1959    ilo: *const lapackint,
1960    ihi: *const lapackint,
1961    A: *mut Complex64,
1962    lda: *const lapackint,
1963    tau: *mut Complex64,
1964    work: *mut Complex64,
1965    lwork: *const lapackint,
1966    info: *mut lapackint,
1967);
1968
1969// GEJSV
1970define_lapack_ffi!(cgejsv, CgejsvFnPtr,
1971    joba: *const c_char,
1972    jobu: *const c_char,
1973    jobv: *const c_char,
1974    jobr: *const c_char,
1975    jobt: *const c_char,
1976    jobp: *const c_char,
1977    m: *const lapackint,
1978    n: *const lapackint,
1979    A: *mut Complex32,
1980    lda: *const lapackint,
1981    SVA: *mut f32,
1982    U: *mut Complex32,
1983    ldu: *const lapackint,
1984    V: *mut Complex32,
1985    ldv: *const lapackint,
1986    cwork: *mut Complex32,
1987    lwork: *const lapackint,
1988    rwork: *mut f32,
1989    lrwork: *const lapackint,
1990    iwork: *mut lapackint,
1991    info: *mut lapackint,
1992);
1993
1994define_lapack_ffi!(dgejsv, DgejsvFnPtr,
1995    joba: *const c_char,
1996    jobu: *const c_char,
1997    jobv: *const c_char,
1998    jobr: *const c_char,
1999    jobt: *const c_char,
2000    jobp: *const c_char,
2001    m: *const lapackint,
2002    n: *const lapackint,
2003    A: *mut f64,
2004    lda: *const lapackint,
2005    SVA: *mut f64,
2006    U: *mut f64,
2007    ldu: *const lapackint,
2008    V: *mut f64,
2009    ldv: *const lapackint,
2010    work: *mut f64,
2011    lwork: *const lapackint,
2012    iwork: *mut lapackint,
2013    info: *mut lapackint,
2014);
2015
2016define_lapack_ffi!(sgejsv, SgejsvFnPtr,
2017    joba: *const c_char,
2018    jobu: *const c_char,
2019    jobv: *const c_char,
2020    jobr: *const c_char,
2021    jobt: *const c_char,
2022    jobp: *const c_char,
2023    m: *const lapackint,
2024    n: *const lapackint,
2025    A: *mut f32,
2026    lda: *const lapackint,
2027    SVA: *mut f32,
2028    U: *mut f32,
2029    ldu: *const lapackint,
2030    V: *mut f32,
2031    ldv: *const lapackint,
2032    work: *mut f32,
2033    lwork: *const lapackint,
2034    iwork: *mut lapackint,
2035    info: *mut lapackint,
2036);
2037
2038define_lapack_ffi!(zgejsv, ZgejsvFnPtr,
2039    joba: *const c_char,
2040    jobu: *const c_char,
2041    jobv: *const c_char,
2042    jobr: *const c_char,
2043    jobt: *const c_char,
2044    jobp: *const c_char,
2045    m: *const lapackint,
2046    n: *const lapackint,
2047    A: *mut Complex64,
2048    lda: *const lapackint,
2049    SVA: *mut f64,
2050    U: *mut Complex64,
2051    ldu: *const lapackint,
2052    V: *mut Complex64,
2053    ldv: *const lapackint,
2054    cwork: *mut Complex64,
2055    lwork: *const lapackint,
2056    rwork: *mut f64,
2057    lrwork: *const lapackint,
2058    iwork: *mut lapackint,
2059    info: *mut lapackint,
2060);
2061
2062// GELQ
2063define_lapack_ffi!(cgelq, CgelqFnPtr,
2064    m: *const lapackint,
2065    n: *const lapackint,
2066    A: *mut Complex32,
2067    lda: *const lapackint,
2068    T: *mut Complex32,
2069    tsize: *const lapackint,
2070    work: *mut Complex32,
2071    lwork: *const lapackint,
2072    info: *mut lapackint,
2073);
2074
2075define_lapack_ffi!(dgelq, DgelqFnPtr,
2076    m: *const lapackint,
2077    n: *const lapackint,
2078    A: *mut f64,
2079    lda: *const lapackint,
2080    T: *mut f64,
2081    tsize: *const lapackint,
2082    work: *mut f64,
2083    lwork: *const lapackint,
2084    info: *mut lapackint,
2085);
2086
2087define_lapack_ffi!(sgelq, SgelqFnPtr,
2088    m: *const lapackint,
2089    n: *const lapackint,
2090    A: *mut f32,
2091    lda: *const lapackint,
2092    T: *mut f32,
2093    tsize: *const lapackint,
2094    work: *mut f32,
2095    lwork: *const lapackint,
2096    info: *mut lapackint,
2097);
2098
2099define_lapack_ffi!(zgelq, ZgelqFnPtr,
2100    m: *const lapackint,
2101    n: *const lapackint,
2102    A: *mut Complex64,
2103    lda: *const lapackint,
2104    T: *mut Complex64,
2105    tsize: *const lapackint,
2106    work: *mut Complex64,
2107    lwork: *const lapackint,
2108    info: *mut lapackint,
2109);
2110
2111// GELQ2
2112define_lapack_ffi!(cgelq2, Cgelq2FnPtr,
2113    m: *const lapackint,
2114    n: *const lapackint,
2115    A: *mut Complex32,
2116    lda: *const lapackint,
2117    tau: *mut Complex32,
2118    work: *mut Complex32,
2119    info: *mut lapackint,
2120);
2121
2122define_lapack_ffi!(dgelq2, Dgelq2FnPtr,
2123    m: *const lapackint,
2124    n: *const lapackint,
2125    A: *mut f64,
2126    lda: *const lapackint,
2127    tau: *mut f64,
2128    work: *mut f64,
2129    info: *mut lapackint,
2130);
2131
2132define_lapack_ffi!(sgelq2, Sgelq2FnPtr,
2133    m: *const lapackint,
2134    n: *const lapackint,
2135    A: *mut f32,
2136    lda: *const lapackint,
2137    tau: *mut f32,
2138    work: *mut f32,
2139    info: *mut lapackint,
2140);
2141
2142define_lapack_ffi!(zgelq2, Zgelq2FnPtr,
2143    m: *const lapackint,
2144    n: *const lapackint,
2145    A: *mut Complex64,
2146    lda: *const lapackint,
2147    tau: *mut Complex64,
2148    work: *mut Complex64,
2149    info: *mut lapackint,
2150);
2151
2152// GELQF
2153define_lapack_ffi!(cgelqf, CgelqfFnPtr,
2154    m: *const lapackint,
2155    n: *const lapackint,
2156    A: *mut Complex32,
2157    lda: *const lapackint,
2158    tau: *mut Complex32,
2159    work: *mut Complex32,
2160    lwork: *const lapackint,
2161    info: *mut lapackint,
2162);
2163
2164define_lapack_ffi!(dgelqf, DgelqfFnPtr,
2165    m: *const lapackint,
2166    n: *const lapackint,
2167    A: *mut f64,
2168    lda: *const lapackint,
2169    tau: *mut f64,
2170    work: *mut f64,
2171    lwork: *const lapackint,
2172    info: *mut lapackint,
2173);
2174
2175define_lapack_ffi!(sgelqf, SgelqfFnPtr,
2176    m: *const lapackint,
2177    n: *const lapackint,
2178    A: *mut f32,
2179    lda: *const lapackint,
2180    tau: *mut f32,
2181    work: *mut f32,
2182    lwork: *const lapackint,
2183    info: *mut lapackint,
2184);
2185
2186define_lapack_ffi!(zgelqf, ZgelqfFnPtr,
2187    m: *const lapackint,
2188    n: *const lapackint,
2189    A: *mut Complex64,
2190    lda: *const lapackint,
2191    tau: *mut Complex64,
2192    work: *mut Complex64,
2193    lwork: *const lapackint,
2194    info: *mut lapackint,
2195);
2196
2197// GELS
2198define_lapack_ffi!(cgels, CgelsFnPtr,
2199    trans: *const c_char,
2200    m: *const lapackint,
2201    n: *const lapackint,
2202    nrhs: *const lapackint,
2203    A: *mut Complex32,
2204    lda: *const lapackint,
2205    B: *mut Complex32,
2206    ldb: *const lapackint,
2207    work: *mut Complex32,
2208    lwork: *const lapackint,
2209    info: *mut lapackint,
2210);
2211
2212define_lapack_ffi!(dgels, DgelsFnPtr,
2213    trans: *const c_char,
2214    m: *const lapackint,
2215    n: *const lapackint,
2216    nrhs: *const lapackint,
2217    A: *mut f64,
2218    lda: *const lapackint,
2219    B: *mut f64,
2220    ldb: *const lapackint,
2221    work: *mut f64,
2222    lwork: *const lapackint,
2223    info: *mut lapackint,
2224    arg1: usize,
2225);
2226
2227define_lapack_ffi!(sgels, SgelsFnPtr,
2228    trans: *const c_char,
2229    m: *const lapackint,
2230    n: *const lapackint,
2231    nrhs: *const lapackint,
2232    A: *mut f32,
2233    lda: *const lapackint,
2234    B: *mut f32,
2235    ldb: *const lapackint,
2236    work: *mut f32,
2237    lwork: *const lapackint,
2238    info: *mut lapackint,
2239);
2240
2241define_lapack_ffi!(zgels, ZgelsFnPtr,
2242    trans: *const c_char,
2243    m: *const lapackint,
2244    n: *const lapackint,
2245    nrhs: *const lapackint,
2246    A: *mut Complex64,
2247    lda: *const lapackint,
2248    B: *mut Complex64,
2249    ldb: *const lapackint,
2250    work: *mut Complex64,
2251    lwork: *const lapackint,
2252    info: *mut lapackint,
2253);
2254
2255// GELSD
2256define_lapack_ffi!(cgelsd, CgelsdFnPtr,
2257    m: *const lapackint,
2258    n: *const lapackint,
2259    nrhs: *const lapackint,
2260    A: *mut Complex32,
2261    lda: *const lapackint,
2262    B: *mut Complex32,
2263    ldb: *const lapackint,
2264    S: *mut f32,
2265    rcond: *const f32,
2266    rank: *mut lapackint,
2267    work: *mut Complex32,
2268    lwork: *const lapackint,
2269    rwork: *mut f32,
2270    iwork: *mut lapackint,
2271    info: *mut lapackint,
2272);
2273
2274define_lapack_ffi!(dgelsd, DgelsdFnPtr,
2275    m: *const lapackint,
2276    n: *const lapackint,
2277    nrhs: *const lapackint,
2278    A: *mut f64,
2279    lda: *const lapackint,
2280    B: *mut f64,
2281    ldb: *const lapackint,
2282    S: *mut f64,
2283    rcond: *const f64,
2284    rank: *mut lapackint,
2285    work: *mut f64,
2286    lwork: *const lapackint,
2287    iwork: *mut lapackint,
2288    info: *mut lapackint,
2289);
2290
2291define_lapack_ffi!(sgelsd, SgelsdFnPtr,
2292    m: *const lapackint,
2293    n: *const lapackint,
2294    nrhs: *const lapackint,
2295    A: *mut f32,
2296    lda: *const lapackint,
2297    B: *mut f32,
2298    ldb: *const lapackint,
2299    S: *mut f32,
2300    rcond: *const f32,
2301    rank: *mut lapackint,
2302    work: *mut f32,
2303    lwork: *const lapackint,
2304    iwork: *mut lapackint,
2305    info: *mut lapackint,
2306);
2307
2308define_lapack_ffi!(zgelsd, ZgelsdFnPtr,
2309    m: *const lapackint,
2310    n: *const lapackint,
2311    nrhs: *const lapackint,
2312    A: *mut Complex64,
2313    lda: *const lapackint,
2314    B: *mut Complex64,
2315    ldb: *const lapackint,
2316    S: *mut f64,
2317    rcond: *const f64,
2318    rank: *mut lapackint,
2319    work: *mut Complex64,
2320    lwork: *const lapackint,
2321    rwork: *mut f64,
2322    iwork: *mut lapackint,
2323    info: *mut lapackint,
2324);
2325
2326// GELSS
2327define_lapack_ffi!(cgelss, CgelssFnPtr,
2328    m: *const lapackint,
2329    n: *const lapackint,
2330    nrhs: *const lapackint,
2331    A: *mut Complex32,
2332    lda: *const lapackint,
2333    B: *mut Complex32,
2334    ldb: *const lapackint,
2335    S: *mut f32,
2336    rcond: *const f32,
2337    rank: *mut lapackint,
2338    work: *mut Complex32,
2339    lwork: *const lapackint,
2340    rwork: *mut f32,
2341    info: *mut lapackint,
2342);
2343
2344define_lapack_ffi!(dgelss, DgelssFnPtr,
2345    m: *const lapackint,
2346    n: *const lapackint,
2347    nrhs: *const lapackint,
2348    A: *mut f64,
2349    lda: *const lapackint,
2350    B: *mut f64,
2351    ldb: *const lapackint,
2352    S: *mut f64,
2353    rcond: *const f64,
2354    rank: *mut lapackint,
2355    work: *mut f64,
2356    lwork: *const lapackint,
2357    info: *mut lapackint,
2358);
2359
2360define_lapack_ffi!(sgelss, SgelssFnPtr,
2361    m: *const lapackint,
2362    n: *const lapackint,
2363    nrhs: *const lapackint,
2364    A: *mut f32,
2365    lda: *const lapackint,
2366    B: *mut f32,
2367    ldb: *const lapackint,
2368    S: *mut f32,
2369    rcond: *const f32,
2370    rank: *mut lapackint,
2371    work: *mut f32,
2372    lwork: *const lapackint,
2373    info: *mut lapackint,
2374);
2375
2376define_lapack_ffi!(zgelss, ZgelssFnPtr,
2377    m: *const lapackint,
2378    n: *const lapackint,
2379    nrhs: *const lapackint,
2380    A: *mut Complex64,
2381    lda: *const lapackint,
2382    B: *mut Complex64,
2383    ldb: *const lapackint,
2384    S: *mut f64,
2385    rcond: *const f64,
2386    rank: *mut lapackint,
2387    work: *mut Complex64,
2388    lwork: *const lapackint,
2389    rwork: *mut f64,
2390    info: *mut lapackint,
2391);
2392
2393// GELSY
2394define_lapack_ffi!(cgelsy, CgelsyFnPtr,
2395    m: *const lapackint,
2396    n: *const lapackint,
2397    nrhs: *const lapackint,
2398    A: *mut Complex32,
2399    lda: *const lapackint,
2400    B: *mut Complex32,
2401    ldb: *const lapackint,
2402    JPVT: *mut lapackint,
2403    rcond: *const f32,
2404    rank: *mut lapackint,
2405    work: *mut Complex32,
2406    lwork: *const lapackint,
2407    rwork: *mut f32,
2408    info: *mut lapackint,
2409);
2410
2411define_lapack_ffi!(dgelsy, DgelsyFnPtr,
2412    m: *const lapackint,
2413    n: *const lapackint,
2414    nrhs: *const lapackint,
2415    A: *mut f64,
2416    lda: *const lapackint,
2417    B: *mut f64,
2418    ldb: *const lapackint,
2419    JPVT: *mut lapackint,
2420    rcond: *const f64,
2421    rank: *mut lapackint,
2422    work: *mut f64,
2423    lwork: *const lapackint,
2424    info: *mut lapackint,
2425);
2426
2427define_lapack_ffi!(sgelsy, SgelsyFnPtr,
2428    m: *const lapackint,
2429    n: *const lapackint,
2430    nrhs: *const lapackint,
2431    A: *mut f32,
2432    lda: *const lapackint,
2433    B: *mut f32,
2434    ldb: *const lapackint,
2435    JPVT: *mut lapackint,
2436    rcond: *const f32,
2437    rank: *mut lapackint,
2438    work: *mut f32,
2439    lwork: *const lapackint,
2440    info: *mut lapackint,
2441);
2442
2443define_lapack_ffi!(zgelsy, ZgelsyFnPtr,
2444    m: *const lapackint,
2445    n: *const lapackint,
2446    nrhs: *const lapackint,
2447    A: *mut Complex64,
2448    lda: *const lapackint,
2449    B: *mut Complex64,
2450    ldb: *const lapackint,
2451    JPVT: *mut lapackint,
2452    rcond: *const f64,
2453    rank: *mut lapackint,
2454    work: *mut Complex64,
2455    lwork: *const lapackint,
2456    rwork: *mut f64,
2457    info: *mut lapackint,
2458);
2459
2460// GEMLQ
2461define_lapack_ffi!(cgemlq, CgemlqFnPtr,
2462    side: *const c_char,
2463    trans: *const c_char,
2464    m: *const lapackint,
2465    n: *const lapackint,
2466    k: *const lapackint,
2467    A: *const Complex32,
2468    lda: *const lapackint,
2469    T: *const Complex32,
2470    tsize: *const lapackint,
2471    C: *mut Complex32,
2472    ldc: *const lapackint,
2473    work: *mut Complex32,
2474    lwork: *const lapackint,
2475    info: *mut lapackint,
2476);
2477
2478define_lapack_ffi!(dgemlq, DgemlqFnPtr,
2479    side: *const c_char,
2480    trans: *const c_char,
2481    m: *const lapackint,
2482    n: *const lapackint,
2483    k: *const lapackint,
2484    A: *const f64,
2485    lda: *const lapackint,
2486    T: *const f64,
2487    tsize: *const lapackint,
2488    C: *mut f64,
2489    ldc: *const lapackint,
2490    work: *mut f64,
2491    lwork: *const lapackint,
2492    info: *mut lapackint,
2493);
2494
2495define_lapack_ffi!(sgemlq, SgemlqFnPtr,
2496    side: *const c_char,
2497    trans: *const c_char,
2498    m: *const lapackint,
2499    n: *const lapackint,
2500    k: *const lapackint,
2501    A: *const f32,
2502    lda: *const lapackint,
2503    T: *const f32,
2504    tsize: *const lapackint,
2505    C: *mut f32,
2506    ldc: *const lapackint,
2507    work: *mut f32,
2508    lwork: *const lapackint,
2509    info: *mut lapackint,
2510);
2511
2512define_lapack_ffi!(zgemlq, ZgemlqFnPtr,
2513    side: *const c_char,
2514    trans: *const c_char,
2515    m: *const lapackint,
2516    n: *const lapackint,
2517    k: *const lapackint,
2518    A: *const Complex64,
2519    lda: *const lapackint,
2520    T: *const Complex64,
2521    tsize: *const lapackint,
2522    C: *mut Complex64,
2523    ldc: *const lapackint,
2524    work: *mut Complex64,
2525    lwork: *const lapackint,
2526    info: *mut lapackint,
2527);
2528
2529// GEMQR
2530define_lapack_ffi!(cgemqr, CgemqrFnPtr,
2531    side: *const c_char,
2532    trans: *const c_char,
2533    m: *const lapackint,
2534    n: *const lapackint,
2535    k: *const lapackint,
2536    A: *const Complex32,
2537    lda: *const lapackint,
2538    T: *const Complex32,
2539    tsize: *const lapackint,
2540    C: *mut Complex32,
2541    ldc: *const lapackint,
2542    work: *mut Complex32,
2543    lwork: *const lapackint,
2544    info: *mut lapackint,
2545);
2546
2547define_lapack_ffi!(dgemqr, DgemqrFnPtr,
2548    side: *const c_char,
2549    trans: *const c_char,
2550    m: *const lapackint,
2551    n: *const lapackint,
2552    k: *const lapackint,
2553    A: *const f64,
2554    lda: *const lapackint,
2555    T: *const f64,
2556    tsize: *const lapackint,
2557    C: *mut f64,
2558    ldc: *const lapackint,
2559    work: *mut f64,
2560    lwork: *const lapackint,
2561    info: *mut lapackint,
2562);
2563
2564define_lapack_ffi!(sgemqr, SgemqrFnPtr,
2565    side: *const c_char,
2566    trans: *const c_char,
2567    m: *const lapackint,
2568    n: *const lapackint,
2569    k: *const lapackint,
2570    A: *const f32,
2571    lda: *const lapackint,
2572    T: *const f32,
2573    tsize: *const lapackint,
2574    C: *mut f32,
2575    ldc: *const lapackint,
2576    work: *mut f32,
2577    lwork: *const lapackint,
2578    info: *mut lapackint,
2579);
2580
2581define_lapack_ffi!(zgemqr, ZgemqrFnPtr,
2582    side: *const c_char,
2583    trans: *const c_char,
2584    m: *const lapackint,
2585    n: *const lapackint,
2586    k: *const lapackint,
2587    A: *const Complex64,
2588    lda: *const lapackint,
2589    T: *const Complex64,
2590    tsize: *const lapackint,
2591    C: *mut Complex64,
2592    ldc: *const lapackint,
2593    work: *mut Complex64,
2594    lwork: *const lapackint,
2595    info: *mut lapackint,
2596);
2597
2598// GEMQRT
2599define_lapack_ffi!(cgemqrt, CgemqrtFnPtr,
2600    side: *const c_char,
2601    trans: *const c_char,
2602    m: *const lapackint,
2603    n: *const lapackint,
2604    k: *const lapackint,
2605    nb: *const lapackint,
2606    V: *const Complex32,
2607    ldv: *const lapackint,
2608    T: *const Complex32,
2609    ldt: *const lapackint,
2610    C: *mut Complex32,
2611    ldc: *const lapackint,
2612    work: *mut Complex32,
2613    info: *mut lapackint,
2614);
2615
2616define_lapack_ffi!(dgemqrt, DgemqrtFnPtr,
2617    side: *const c_char,
2618    trans: *const c_char,
2619    m: *const lapackint,
2620    n: *const lapackint,
2621    k: *const lapackint,
2622    nb: *const lapackint,
2623    V: *const f64,
2624    ldv: *const lapackint,
2625    T: *const f64,
2626    ldt: *const lapackint,
2627    C: *mut f64,
2628    ldc: *const lapackint,
2629    work: *mut f64,
2630    info: *mut lapackint,
2631);
2632
2633define_lapack_ffi!(sgemqrt, SgemqrtFnPtr,
2634    side: *const c_char,
2635    trans: *const c_char,
2636    m: *const lapackint,
2637    n: *const lapackint,
2638    k: *const lapackint,
2639    nb: *const lapackint,
2640    V: *const f32,
2641    ldv: *const lapackint,
2642    T: *const f32,
2643    ldt: *const lapackint,
2644    C: *mut f32,
2645    ldc: *const lapackint,
2646    work: *mut f32,
2647    info: *mut lapackint,
2648);
2649
2650define_lapack_ffi!(zgemqrt, ZgemqrtFnPtr,
2651    side: *const c_char,
2652    trans: *const c_char,
2653    m: *const lapackint,
2654    n: *const lapackint,
2655    k: *const lapackint,
2656    nb: *const lapackint,
2657    V: *const Complex64,
2658    ldv: *const lapackint,
2659    T: *const Complex64,
2660    ldt: *const lapackint,
2661    C: *mut Complex64,
2662    ldc: *const lapackint,
2663    work: *mut Complex64,
2664    info: *mut lapackint,
2665);
2666
2667// GEQL2
2668define_lapack_ffi!(cgeql2, Cgeql2FnPtr,
2669    m: *const lapackint,
2670    n: *const lapackint,
2671    A: *mut Complex32,
2672    lda: *const lapackint,
2673    tau: *mut Complex32,
2674    work: *mut Complex32,
2675    info: *mut lapackint,
2676);
2677
2678define_lapack_ffi!(dgeql2, Dgeql2FnPtr,
2679    m: *const lapackint,
2680    n: *const lapackint,
2681    A: *mut f64,
2682    lda: *const lapackint,
2683    tau: *mut f64,
2684    work: *mut f64,
2685    info: *mut lapackint,
2686);
2687
2688define_lapack_ffi!(sgeql2, Sgeql2FnPtr,
2689    m: *const lapackint,
2690    n: *const lapackint,
2691    A: *mut f32,
2692    lda: *const lapackint,
2693    tau: *mut f32,
2694    work: *mut f32,
2695    info: *mut lapackint,
2696);
2697
2698define_lapack_ffi!(zgeql2, Zgeql2FnPtr,
2699    m: *const lapackint,
2700    n: *const lapackint,
2701    A: *mut Complex64,
2702    lda: *const lapackint,
2703    tau: *mut Complex64,
2704    work: *mut Complex64,
2705    info: *mut lapackint,
2706);
2707
2708// GEQLF
2709define_lapack_ffi!(cgeqlf, CgeqlfFnPtr,
2710    m: *const lapackint,
2711    n: *const lapackint,
2712    A: *mut Complex32,
2713    lda: *const lapackint,
2714    tau: *mut Complex32,
2715    work: *mut Complex32,
2716    lwork: *const lapackint,
2717    info: *mut lapackint,
2718);
2719
2720define_lapack_ffi!(dgeqlf, DgeqlfFnPtr,
2721    m: *const lapackint,
2722    n: *const lapackint,
2723    A: *mut f64,
2724    lda: *const lapackint,
2725    tau: *mut f64,
2726    work: *mut f64,
2727    lwork: *const lapackint,
2728    info: *mut lapackint,
2729);
2730
2731define_lapack_ffi!(sgeqlf, SgeqlfFnPtr,
2732    m: *const lapackint,
2733    n: *const lapackint,
2734    A: *mut f32,
2735    lda: *const lapackint,
2736    tau: *mut f32,
2737    work: *mut f32,
2738    lwork: *const lapackint,
2739    info: *mut lapackint,
2740);
2741
2742define_lapack_ffi!(zgeqlf, ZgeqlfFnPtr,
2743    m: *const lapackint,
2744    n: *const lapackint,
2745    A: *mut Complex64,
2746    lda: *const lapackint,
2747    tau: *mut Complex64,
2748    work: *mut Complex64,
2749    lwork: *const lapackint,
2750    info: *mut lapackint,
2751);
2752
2753// GEQP3
2754define_lapack_ffi!(cgeqp3, Cgeqp3FnPtr,
2755    m: *const lapackint,
2756    n: *const lapackint,
2757    A: *mut Complex32,
2758    lda: *const lapackint,
2759    JPVT: *mut lapackint,
2760    tau: *mut Complex32,
2761    work: *mut Complex32,
2762    lwork: *const lapackint,
2763    rwork: *mut f32,
2764    info: *mut lapackint,
2765);
2766
2767define_lapack_ffi!(dgeqp3, Dgeqp3FnPtr,
2768    m: *const lapackint,
2769    n: *const lapackint,
2770    A: *mut f64,
2771    lda: *const lapackint,
2772    JPVT: *mut lapackint,
2773    tau: *mut f64,
2774    work: *mut f64,
2775    lwork: *const lapackint,
2776    info: *mut lapackint,
2777);
2778
2779define_lapack_ffi!(sgeqp3, Sgeqp3FnPtr,
2780    m: *const lapackint,
2781    n: *const lapackint,
2782    A: *mut f32,
2783    lda: *const lapackint,
2784    JPVT: *mut lapackint,
2785    tau: *mut f32,
2786    work: *mut f32,
2787    lwork: *const lapackint,
2788    info: *mut lapackint,
2789);
2790
2791define_lapack_ffi!(zgeqp3, Zgeqp3FnPtr,
2792    m: *const lapackint,
2793    n: *const lapackint,
2794    A: *mut Complex64,
2795    lda: *const lapackint,
2796    JPVT: *mut lapackint,
2797    tau: *mut Complex64,
2798    work: *mut Complex64,
2799    lwork: *const lapackint,
2800    rwork: *mut f64,
2801    info: *mut lapackint,
2802);
2803
2804// GEQPF
2805define_lapack_ffi!(cgeqpf, CgeqpfFnPtr,
2806    m: *mut lapackint,
2807    n: *mut lapackint,
2808    a: *mut Complex32,
2809    lda: *mut lapackint,
2810    jpvt: *mut lapackint,
2811    tau: *mut Complex32,
2812    work: *mut Complex32,
2813    rwork: *mut f32,
2814    info: *mut lapackint,
2815);
2816
2817define_lapack_ffi!(dgeqpf, DgeqpfFnPtr,
2818    m: *mut lapackint,
2819    n: *mut lapackint,
2820    a: *mut f64,
2821    lda: *mut lapackint,
2822    jpvt: *mut lapackint,
2823    tau: *mut f64,
2824    work: *mut f64,
2825    info: *mut lapackint,
2826);
2827
2828define_lapack_ffi!(sgeqpf, SgeqpfFnPtr,
2829    m: *mut lapackint,
2830    n: *mut lapackint,
2831    a: *mut f32,
2832    lda: *mut lapackint,
2833    jpvt: *mut lapackint,
2834    tau: *mut f32,
2835    work: *mut f32,
2836    info: *mut lapackint,
2837);
2838
2839define_lapack_ffi!(zgeqpf, ZgeqpfFnPtr,
2840    m: *mut lapackint,
2841    n: *mut lapackint,
2842    a: *mut Complex64,
2843    lda: *mut lapackint,
2844    jpvt: *mut lapackint,
2845    tau: *mut Complex64,
2846    work: *mut Complex64,
2847    rwork: *mut f64,
2848    info: *mut lapackint,
2849);
2850
2851// GEQR
2852define_lapack_ffi!(cgeqr, CgeqrFnPtr,
2853    m: *const lapackint,
2854    n: *const lapackint,
2855    A: *mut Complex32,
2856    lda: *const lapackint,
2857    T: *mut Complex32,
2858    tsize: *const lapackint,
2859    work: *mut Complex32,
2860    lwork: *const lapackint,
2861    info: *mut lapackint,
2862);
2863
2864define_lapack_ffi!(dgeqr, DgeqrFnPtr,
2865    m: *const lapackint,
2866    n: *const lapackint,
2867    A: *mut f64,
2868    lda: *const lapackint,
2869    T: *mut f64,
2870    tsize: *const lapackint,
2871    work: *mut f64,
2872    lwork: *const lapackint,
2873    info: *mut lapackint,
2874);
2875
2876define_lapack_ffi!(sgeqr, SgeqrFnPtr,
2877    m: *const lapackint,
2878    n: *const lapackint,
2879    A: *mut f32,
2880    lda: *const lapackint,
2881    T: *mut f32,
2882    tsize: *const lapackint,
2883    work: *mut f32,
2884    lwork: *const lapackint,
2885    info: *mut lapackint,
2886);
2887
2888define_lapack_ffi!(zgeqr, ZgeqrFnPtr,
2889    m: *const lapackint,
2890    n: *const lapackint,
2891    A: *mut Complex64,
2892    lda: *const lapackint,
2893    T: *mut Complex64,
2894    tsize: *const lapackint,
2895    work: *mut Complex64,
2896    lwork: *const lapackint,
2897    info: *mut lapackint,
2898);
2899
2900// GEQR2
2901define_lapack_ffi!(cgeqr2, Cgeqr2FnPtr,
2902    m: *const lapackint,
2903    n: *const lapackint,
2904    A: *mut Complex32,
2905    lda: *const lapackint,
2906    tau: *mut Complex32,
2907    work: *mut Complex32,
2908    info: *mut lapackint,
2909);
2910
2911define_lapack_ffi!(dgeqr2, Dgeqr2FnPtr,
2912    m: *const lapackint,
2913    n: *const lapackint,
2914    A: *mut f64,
2915    lda: *const lapackint,
2916    tau: *mut f64,
2917    work: *mut f64,
2918    info: *mut lapackint,
2919);
2920
2921define_lapack_ffi!(sgeqr2, Sgeqr2FnPtr,
2922    m: *const lapackint,
2923    n: *const lapackint,
2924    A: *mut f32,
2925    lda: *const lapackint,
2926    tau: *mut f32,
2927    work: *mut f32,
2928    info: *mut lapackint,
2929);
2930
2931define_lapack_ffi!(zgeqr2, Zgeqr2FnPtr,
2932    m: *const lapackint,
2933    n: *const lapackint,
2934    A: *mut Complex64,
2935    lda: *const lapackint,
2936    tau: *mut Complex64,
2937    work: *mut Complex64,
2938    info: *mut lapackint,
2939);
2940
2941// GEQRF
2942define_lapack_ffi!(cgeqrf, CgeqrfFnPtr,
2943    m: *const lapackint,
2944    n: *const lapackint,
2945    A: *mut Complex32,
2946    lda: *const lapackint,
2947    tau: *mut Complex32,
2948    work: *mut Complex32,
2949    lwork: *const lapackint,
2950    info: *mut lapackint,
2951);
2952
2953define_lapack_ffi!(dgeqrf, DgeqrfFnPtr,
2954    m: *const lapackint,
2955    n: *const lapackint,
2956    A: *mut f64,
2957    lda: *const lapackint,
2958    tau: *mut f64,
2959    work: *mut f64,
2960    lwork: *const lapackint,
2961    info: *mut lapackint,
2962);
2963
2964define_lapack_ffi!(sgeqrf, SgeqrfFnPtr,
2965    m: *const lapackint,
2966    n: *const lapackint,
2967    A: *mut f32,
2968    lda: *const lapackint,
2969    tau: *mut f32,
2970    work: *mut f32,
2971    lwork: *const lapackint,
2972    info: *mut lapackint,
2973);
2974
2975define_lapack_ffi!(zgeqrf, ZgeqrfFnPtr,
2976    m: *const lapackint,
2977    n: *const lapackint,
2978    A: *mut Complex64,
2979    lda: *const lapackint,
2980    tau: *mut Complex64,
2981    work: *mut Complex64,
2982    lwork: *const lapackint,
2983    info: *mut lapackint,
2984);
2985
2986// GEQRFP
2987define_lapack_ffi!(cgeqrfp, CgeqrfpFnPtr,
2988    m: *const lapackint,
2989    n: *const lapackint,
2990    A: *mut Complex32,
2991    lda: *const lapackint,
2992    tau: *mut Complex32,
2993    work: *mut Complex32,
2994    lwork: *const lapackint,
2995    info: *mut lapackint,
2996);
2997
2998define_lapack_ffi!(dgeqrfp, DgeqrfpFnPtr,
2999    m: *const lapackint,
3000    n: *const lapackint,
3001    A: *mut f64,
3002    lda: *const lapackint,
3003    tau: *mut f64,
3004    work: *mut f64,
3005    lwork: *const lapackint,
3006    info: *mut lapackint,
3007);
3008
3009define_lapack_ffi!(sgeqrfp, SgeqrfpFnPtr,
3010    m: *const lapackint,
3011    n: *const lapackint,
3012    A: *mut f32,
3013    lda: *const lapackint,
3014    tau: *mut f32,
3015    work: *mut f32,
3016    lwork: *const lapackint,
3017    info: *mut lapackint,
3018);
3019
3020define_lapack_ffi!(zgeqrfp, ZgeqrfpFnPtr,
3021    m: *const lapackint,
3022    n: *const lapackint,
3023    A: *mut Complex64,
3024    lda: *const lapackint,
3025    tau: *mut Complex64,
3026    work: *mut Complex64,
3027    lwork: *const lapackint,
3028    info: *mut lapackint,
3029);
3030
3031// GEQRT
3032define_lapack_ffi!(cgeqrt, CgeqrtFnPtr,
3033    m: *const lapackint,
3034    n: *const lapackint,
3035    nb: *const lapackint,
3036    A: *mut Complex32,
3037    lda: *const lapackint,
3038    T: *mut Complex32,
3039    ldt: *const lapackint,
3040    work: *mut Complex32,
3041    info: *mut lapackint,
3042);
3043
3044define_lapack_ffi!(dgeqrt, DgeqrtFnPtr,
3045    m: *const lapackint,
3046    n: *const lapackint,
3047    nb: *const lapackint,
3048    A: *mut f64,
3049    lda: *const lapackint,
3050    T: *mut f64,
3051    ldt: *const lapackint,
3052    work: *mut f64,
3053    info: *mut lapackint,
3054);
3055
3056define_lapack_ffi!(sgeqrt, SgeqrtFnPtr,
3057    m: *const lapackint,
3058    n: *const lapackint,
3059    nb: *const lapackint,
3060    A: *mut f32,
3061    lda: *const lapackint,
3062    T: *mut f32,
3063    ldt: *const lapackint,
3064    work: *mut f32,
3065    info: *mut lapackint,
3066);
3067
3068define_lapack_ffi!(zgeqrt, ZgeqrtFnPtr,
3069    m: *const lapackint,
3070    n: *const lapackint,
3071    nb: *const lapackint,
3072    A: *mut Complex64,
3073    lda: *const lapackint,
3074    T: *mut Complex64,
3075    ldt: *const lapackint,
3076    work: *mut Complex64,
3077    info: *mut lapackint,
3078);
3079
3080// GEQRT2
3081define_lapack_ffi!(cgeqrt2, Cgeqrt2FnPtr,
3082    m: *const lapackint,
3083    n: *const lapackint,
3084    A: *mut Complex32,
3085    lda: *const lapackint,
3086    T: *mut Complex32,
3087    ldt: *const lapackint,
3088    info: *mut lapackint,
3089);
3090
3091define_lapack_ffi!(dgeqrt2, Dgeqrt2FnPtr,
3092    m: *const lapackint,
3093    n: *const lapackint,
3094    A: *mut f64,
3095    lda: *const lapackint,
3096    T: *mut f64,
3097    ldt: *const lapackint,
3098    info: *mut lapackint,
3099);
3100
3101define_lapack_ffi!(sgeqrt2, Sgeqrt2FnPtr,
3102    m: *const lapackint,
3103    n: *const lapackint,
3104    A: *mut f32,
3105    lda: *const lapackint,
3106    T: *mut f32,
3107    ldt: *const lapackint,
3108    info: *mut lapackint,
3109);
3110
3111define_lapack_ffi!(zgeqrt2, Zgeqrt2FnPtr,
3112    m: *const lapackint,
3113    n: *const lapackint,
3114    A: *mut Complex64,
3115    lda: *const lapackint,
3116    T: *mut Complex64,
3117    ldt: *const lapackint,
3118    info: *mut lapackint,
3119);
3120
3121// GEQRT3
3122define_lapack_ffi!(cgeqrt3, Cgeqrt3FnPtr,
3123    m: *const lapackint,
3124    n: *const lapackint,
3125    A: *mut Complex32,
3126    lda: *const lapackint,
3127    T: *mut Complex32,
3128    ldt: *const lapackint,
3129    info: *mut lapackint,
3130);
3131
3132define_lapack_ffi!(dgeqrt3, Dgeqrt3FnPtr,
3133    m: *const lapackint,
3134    n: *const lapackint,
3135    A: *mut f64,
3136    lda: *const lapackint,
3137    T: *mut f64,
3138    ldt: *const lapackint,
3139    info: *mut lapackint,
3140);
3141
3142define_lapack_ffi!(sgeqrt3, Sgeqrt3FnPtr,
3143    m: *const lapackint,
3144    n: *const lapackint,
3145    A: *mut f32,
3146    lda: *const lapackint,
3147    T: *mut f32,
3148    ldt: *const lapackint,
3149    info: *mut lapackint,
3150);
3151
3152define_lapack_ffi!(zgeqrt3, Zgeqrt3FnPtr,
3153    m: *const lapackint,
3154    n: *const lapackint,
3155    A: *mut Complex64,
3156    lda: *const lapackint,
3157    T: *mut Complex64,
3158    ldt: *const lapackint,
3159    info: *mut lapackint,
3160);
3161
3162// GERFS
3163define_lapack_ffi!(cgerfs, CgerfsFnPtr,
3164    trans: *const c_char,
3165    n: *const lapackint,
3166    nrhs: *const lapackint,
3167    A: *const Complex32,
3168    lda: *const lapackint,
3169    AF: *const Complex32,
3170    ldaf: *const lapackint,
3171    ipiv: *const lapackint,
3172    B: *const Complex32,
3173    ldb: *const lapackint,
3174    X: *mut Complex32,
3175    ldx: *const lapackint,
3176    ferr: *mut f32,
3177    berr: *mut f32,
3178    work: *mut Complex32,
3179    rwork: *mut f32,
3180    info: *mut lapackint,
3181);
3182
3183define_lapack_ffi!(dgerfs, DgerfsFnPtr,
3184    trans: *const c_char,
3185    n: *const lapackint,
3186    nrhs: *const lapackint,
3187    A: *const f64,
3188    lda: *const lapackint,
3189    AF: *const f64,
3190    ldaf: *const lapackint,
3191    ipiv: *const lapackint,
3192    B: *const f64,
3193    ldb: *const lapackint,
3194    X: *mut f64,
3195    ldx: *const lapackint,
3196    ferr: *mut f64,
3197    berr: *mut f64,
3198    work: *mut f64,
3199    iwork: *mut lapackint,
3200    info: *mut lapackint,
3201);
3202
3203define_lapack_ffi!(sgerfs, SgerfsFnPtr,
3204    trans: *const c_char,
3205    n: *const lapackint,
3206    nrhs: *const lapackint,
3207    A: *const f32,
3208    lda: *const lapackint,
3209    AF: *const f32,
3210    ldaf: *const lapackint,
3211    ipiv: *const lapackint,
3212    B: *const f32,
3213    ldb: *const lapackint,
3214    X: *mut f32,
3215    ldx: *const lapackint,
3216    ferr: *mut f32,
3217    berr: *mut f32,
3218    work: *mut f32,
3219    iwork: *mut lapackint,
3220    info: *mut lapackint,
3221);
3222
3223define_lapack_ffi!(zgerfs, ZgerfsFnPtr,
3224    trans: *const c_char,
3225    n: *const lapackint,
3226    nrhs: *const lapackint,
3227    A: *const Complex64,
3228    lda: *const lapackint,
3229    AF: *const Complex64,
3230    ldaf: *const lapackint,
3231    ipiv: *const lapackint,
3232    B: *const Complex64,
3233    ldb: *const lapackint,
3234    X: *mut Complex64,
3235    ldx: *const lapackint,
3236    ferr: *mut f64,
3237    berr: *mut f64,
3238    work: *mut Complex64,
3239    rwork: *mut f64,
3240    info: *mut lapackint,
3241);
3242
3243// GERFSX
3244define_lapack_ffi!(cgerfsx, CgerfsxFnPtr,
3245    trans: *const c_char,
3246    equed: *const c_char,
3247    n: *const lapackint,
3248    nrhs: *const lapackint,
3249    A: *const Complex32,
3250    lda: *const lapackint,
3251    AF: *const Complex32,
3252    ldaf: *const lapackint,
3253    ipiv: *const lapackint,
3254    R: *const f32,
3255    C: *const f32,
3256    B: *const Complex32,
3257    ldb: *const lapackint,
3258    X: *mut Complex32,
3259    ldx: *const lapackint,
3260    rcond: *mut f32,
3261    berr: *mut f32,
3262    n_err_bnds: *const lapackint,
3263    err_bnds_norm: *mut f32,
3264    err_bnds_comp: *mut f32,
3265    nparams: *const lapackint,
3266    params: *mut f32,
3267    work: *mut Complex32,
3268    rwork: *mut f32,
3269    info: *mut lapackint,
3270);
3271
3272define_lapack_ffi!(dgerfsx, DgerfsxFnPtr,
3273    trans: *const c_char,
3274    equed: *const c_char,
3275    n: *const lapackint,
3276    nrhs: *const lapackint,
3277    A: *const f64,
3278    lda: *const lapackint,
3279    AF: *const f64,
3280    ldaf: *const lapackint,
3281    ipiv: *const lapackint,
3282    R: *const f64,
3283    C: *const f64,
3284    B: *const f64,
3285    ldb: *const lapackint,
3286    X: *mut f64,
3287    ldx: *const lapackint,
3288    rcond: *mut f64,
3289    berr: *mut f64,
3290    n_err_bnds: *const lapackint,
3291    err_bnds_norm: *mut f64,
3292    err_bnds_comp: *mut f64,
3293    nparams: *const lapackint,
3294    params: *mut f64,
3295    work: *mut f64,
3296    iwork: *mut lapackint,
3297    info: *mut lapackint,
3298);
3299
3300define_lapack_ffi!(sgerfsx, SgerfsxFnPtr,
3301    trans: *const c_char,
3302    equed: *const c_char,
3303    n: *const lapackint,
3304    nrhs: *const lapackint,
3305    A: *const f32,
3306    lda: *const lapackint,
3307    AF: *const f32,
3308    ldaf: *const lapackint,
3309    ipiv: *const lapackint,
3310    R: *const f32,
3311    C: *const f32,
3312    B: *const f32,
3313    ldb: *const lapackint,
3314    X: *mut f32,
3315    ldx: *const lapackint,
3316    rcond: *mut f32,
3317    berr: *mut f32,
3318    n_err_bnds: *const lapackint,
3319    err_bnds_norm: *mut f32,
3320    err_bnds_comp: *mut f32,
3321    nparams: *const lapackint,
3322    params: *mut f32,
3323    work: *mut f32,
3324    iwork: *mut lapackint,
3325    info: *mut lapackint,
3326);
3327
3328define_lapack_ffi!(zgerfsx, ZgerfsxFnPtr,
3329    trans: *const c_char,
3330    equed: *const c_char,
3331    n: *const lapackint,
3332    nrhs: *const lapackint,
3333    A: *const Complex64,
3334    lda: *const lapackint,
3335    AF: *const Complex64,
3336    ldaf: *const lapackint,
3337    ipiv: *const lapackint,
3338    R: *const f64,
3339    C: *const f64,
3340    B: *const Complex64,
3341    ldb: *const lapackint,
3342    X: *mut Complex64,
3343    ldx: *const lapackint,
3344    rcond: *mut f64,
3345    berr: *mut f64,
3346    n_err_bnds: *const lapackint,
3347    err_bnds_norm: *mut f64,
3348    err_bnds_comp: *mut f64,
3349    nparams: *const lapackint,
3350    params: *mut f64,
3351    work: *mut Complex64,
3352    rwork: *mut f64,
3353    info: *mut lapackint,
3354);
3355
3356// GERQ2
3357define_lapack_ffi!(cgerq2, Cgerq2FnPtr,
3358    m: *const lapackint,
3359    n: *const lapackint,
3360    A: *mut Complex32,
3361    lda: *const lapackint,
3362    tau: *mut Complex32,
3363    work: *mut Complex32,
3364    info: *mut lapackint,
3365);
3366
3367define_lapack_ffi!(dgerq2, Dgerq2FnPtr,
3368    m: *const lapackint,
3369    n: *const lapackint,
3370    A: *mut f64,
3371    lda: *const lapackint,
3372    tau: *mut f64,
3373    work: *mut f64,
3374    info: *mut lapackint,
3375);
3376
3377define_lapack_ffi!(sgerq2, Sgerq2FnPtr,
3378    m: *const lapackint,
3379    n: *const lapackint,
3380    A: *mut f32,
3381    lda: *const lapackint,
3382    tau: *mut f32,
3383    work: *mut f32,
3384    info: *mut lapackint,
3385);
3386
3387define_lapack_ffi!(zgerq2, Zgerq2FnPtr,
3388    m: *const lapackint,
3389    n: *const lapackint,
3390    A: *mut Complex64,
3391    lda: *const lapackint,
3392    tau: *mut Complex64,
3393    work: *mut Complex64,
3394    info: *mut lapackint,
3395);
3396
3397// GERQF
3398define_lapack_ffi!(cgerqf, CgerqfFnPtr,
3399    m: *const lapackint,
3400    n: *const lapackint,
3401    A: *mut Complex32,
3402    lda: *const lapackint,
3403    tau: *mut Complex32,
3404    work: *mut Complex32,
3405    lwork: *const lapackint,
3406    info: *mut lapackint,
3407);
3408
3409define_lapack_ffi!(dgerqf, DgerqfFnPtr,
3410    m: *const lapackint,
3411    n: *const lapackint,
3412    A: *mut f64,
3413    lda: *const lapackint,
3414    tau: *mut f64,
3415    work: *mut f64,
3416    lwork: *const lapackint,
3417    info: *mut lapackint,
3418);
3419
3420define_lapack_ffi!(sgerqf, SgerqfFnPtr,
3421    m: *const lapackint,
3422    n: *const lapackint,
3423    A: *mut f32,
3424    lda: *const lapackint,
3425    tau: *mut f32,
3426    work: *mut f32,
3427    lwork: *const lapackint,
3428    info: *mut lapackint,
3429);
3430
3431define_lapack_ffi!(zgerqf, ZgerqfFnPtr,
3432    m: *const lapackint,
3433    n: *const lapackint,
3434    A: *mut Complex64,
3435    lda: *const lapackint,
3436    tau: *mut Complex64,
3437    work: *mut Complex64,
3438    lwork: *const lapackint,
3439    info: *mut lapackint,
3440);
3441
3442// GESDD
3443define_lapack_ffi!(cgesdd, CgesddFnPtr,
3444    jobz: *const c_char,
3445    m: *const lapackint,
3446    n: *const lapackint,
3447    A: *mut Complex32,
3448    lda: *const lapackint,
3449    S: *mut f32,
3450    U: *mut Complex32,
3451    ldu: *const lapackint,
3452    VT: *mut Complex32,
3453    ldvt: *const lapackint,
3454    work: *mut Complex32,
3455    lwork: *const lapackint,
3456    rwork: *mut f32,
3457    iwork: *mut lapackint,
3458    info: *mut lapackint,
3459);
3460
3461define_lapack_ffi!(dgesdd, DgesddFnPtr,
3462    jobz: *const c_char,
3463    m: *const lapackint,
3464    n: *const lapackint,
3465    A: *mut f64,
3466    lda: *const lapackint,
3467    S: *mut f64,
3468    U: *mut f64,
3469    ldu: *const lapackint,
3470    VT: *mut f64,
3471    ldvt: *const lapackint,
3472    work: *mut f64,
3473    lwork: *const lapackint,
3474    iwork: *mut lapackint,
3475    info: *mut lapackint,
3476);
3477
3478define_lapack_ffi!(sgesdd, SgesddFnPtr,
3479    jobz: *const c_char,
3480    m: *const lapackint,
3481    n: *const lapackint,
3482    A: *mut f32,
3483    lda: *const lapackint,
3484    S: *mut f32,
3485    U: *mut f32,
3486    ldu: *const lapackint,
3487    VT: *mut f32,
3488    ldvt: *const lapackint,
3489    work: *mut f32,
3490    lwork: *const lapackint,
3491    iwork: *mut lapackint,
3492    info: *mut lapackint,
3493);
3494
3495define_lapack_ffi!(zgesdd, ZgesddFnPtr,
3496    jobz: *const c_char,
3497    m: *const lapackint,
3498    n: *const lapackint,
3499    A: *mut Complex64,
3500    lda: *const lapackint,
3501    S: *mut f64,
3502    U: *mut Complex64,
3503    ldu: *const lapackint,
3504    VT: *mut Complex64,
3505    ldvt: *const lapackint,
3506    work: *mut Complex64,
3507    lwork: *const lapackint,
3508    rwork: *mut f64,
3509    iwork: *mut lapackint,
3510    info: *mut lapackint,
3511);
3512
3513// GESV
3514define_lapack_ffi!(cgesv, CgesvFnPtr,
3515    n: *const lapackint,
3516    nrhs: *const lapackint,
3517    A: *mut Complex32,
3518    lda: *const lapackint,
3519    ipiv: *mut lapackint,
3520    B: *mut Complex32,
3521    ldb: *const lapackint,
3522    info: *mut lapackint,
3523);
3524
3525define_lapack_ffi!(dgesv, DgesvFnPtr,
3526    n: *const lapackint,
3527    nrhs: *const lapackint,
3528    A: *mut f64,
3529    lda: *const lapackint,
3530    ipiv: *mut lapackint,
3531    B: *mut f64,
3532    ldb: *const lapackint,
3533    info: *mut lapackint,
3534);
3535
3536define_lapack_ffi!(sgesv, SgesvFnPtr,
3537    n: *const lapackint,
3538    nrhs: *const lapackint,
3539    A: *mut f32,
3540    lda: *const lapackint,
3541    ipiv: *mut lapackint,
3542    B: *mut f32,
3543    ldb: *const lapackint,
3544    info: *mut lapackint,
3545);
3546
3547define_lapack_ffi!(zgesv, ZgesvFnPtr,
3548    n: *const lapackint,
3549    nrhs: *const lapackint,
3550    A: *mut Complex64,
3551    lda: *const lapackint,
3552    ipiv: *mut lapackint,
3553    B: *mut Complex64,
3554    ldb: *const lapackint,
3555    info: *mut lapackint,
3556);
3557
3558// GESVD
3559define_lapack_ffi!(cgesvd, CgesvdFnPtr,
3560    jobu: *const c_char,
3561    jobvt: *const c_char,
3562    m: *const lapackint,
3563    n: *const lapackint,
3564    A: *mut Complex32,
3565    lda: *const lapackint,
3566    S: *mut f32,
3567    U: *mut Complex32,
3568    ldu: *const lapackint,
3569    VT: *mut Complex32,
3570    ldvt: *const lapackint,
3571    work: *mut Complex32,
3572    lwork: *const lapackint,
3573    rwork: *mut f32,
3574    info: *mut lapackint,
3575);
3576
3577define_lapack_ffi!(dgesvd, DgesvdFnPtr,
3578    jobu: *const c_char,
3579    jobvt: *const c_char,
3580    m: *const lapackint,
3581    n: *const lapackint,
3582    A: *mut f64,
3583    lda: *const lapackint,
3584    S: *mut f64,
3585    U: *mut f64,
3586    ldu: *const lapackint,
3587    VT: *mut f64,
3588    ldvt: *const lapackint,
3589    work: *mut f64,
3590    lwork: *const lapackint,
3591    info: *mut lapackint,
3592);
3593
3594define_lapack_ffi!(sgesvd, SgesvdFnPtr,
3595    jobu: *const c_char,
3596    jobvt: *const c_char,
3597    m: *const lapackint,
3598    n: *const lapackint,
3599    A: *mut f32,
3600    lda: *const lapackint,
3601    S: *mut f32,
3602    U: *mut f32,
3603    ldu: *const lapackint,
3604    VT: *mut f32,
3605    ldvt: *const lapackint,
3606    work: *mut f32,
3607    lwork: *const lapackint,
3608    info: *mut lapackint,
3609);
3610
3611define_lapack_ffi!(zgesvd, ZgesvdFnPtr,
3612    jobu: *const c_char,
3613    jobvt: *const c_char,
3614    m: *const lapackint,
3615    n: *const lapackint,
3616    A: *mut Complex64,
3617    lda: *const lapackint,
3618    S: *mut f64,
3619    U: *mut Complex64,
3620    ldu: *const lapackint,
3621    VT: *mut Complex64,
3622    ldvt: *const lapackint,
3623    work: *mut Complex64,
3624    lwork: *const lapackint,
3625    rwork: *mut f64,
3626    info: *mut lapackint,
3627);
3628
3629// GESVDQ
3630define_lapack_ffi!(cgesvdq, CgesvdqFnPtr,
3631    joba: *const c_char,
3632    jobp: *const c_char,
3633    jobr: *const c_char,
3634    jobu: *const c_char,
3635    jobv: *const c_char,
3636    m: *const lapackint,
3637    n: *const lapackint,
3638    A: *mut Complex32,
3639    lda: *const lapackint,
3640    S: *mut f32,
3641    U: *mut Complex32,
3642    ldu: *const lapackint,
3643    V: *mut Complex32,
3644    ldv: *const lapackint,
3645    numrank: *mut lapackint,
3646    iwork: *mut lapackint,
3647    liwork: *const lapackint,
3648    cwork: *mut Complex32,
3649    lcwork: *mut lapackint,
3650    rwork: *mut f32,
3651    lrwork: *const lapackint,
3652    info: *mut lapackint,
3653);
3654
3655define_lapack_ffi!(dgesvdq, DgesvdqFnPtr,
3656    joba: *const c_char,
3657    jobp: *const c_char,
3658    jobr: *const c_char,
3659    jobu: *const c_char,
3660    jobv: *const c_char,
3661    m: *const lapackint,
3662    n: *const lapackint,
3663    A: *mut f64,
3664    lda: *const lapackint,
3665    S: *mut f64,
3666    U: *mut f64,
3667    ldu: *const lapackint,
3668    V: *mut f64,
3669    ldv: *const lapackint,
3670    numrank: *mut lapackint,
3671    iwork: *mut lapackint,
3672    liwork: *const lapackint,
3673    work: *mut f64,
3674    lwork: *mut lapackint,
3675    rwork: *mut f64,
3676    lrwork: *const lapackint,
3677    info: *mut lapackint,
3678);
3679
3680define_lapack_ffi!(sgesvdq, SgesvdqFnPtr,
3681    joba: *const c_char,
3682    jobp: *const c_char,
3683    jobr: *const c_char,
3684    jobu: *const c_char,
3685    jobv: *const c_char,
3686    m: *const lapackint,
3687    n: *const lapackint,
3688    A: *mut f32,
3689    lda: *const lapackint,
3690    S: *mut f32,
3691    U: *mut f32,
3692    ldu: *const lapackint,
3693    V: *mut f32,
3694    ldv: *const lapackint,
3695    numrank: *mut lapackint,
3696    iwork: *mut lapackint,
3697    liwork: *const lapackint,
3698    work: *mut f32,
3699    lwork: *mut lapackint,
3700    rwork: *mut f32,
3701    lrwork: *const lapackint,
3702    info: *mut lapackint,
3703);
3704
3705define_lapack_ffi!(zgesvdq, ZgesvdqFnPtr,
3706    joba: *const c_char,
3707    jobp: *const c_char,
3708    jobr: *const c_char,
3709    jobu: *const c_char,
3710    jobv: *const c_char,
3711    m: *const lapackint,
3712    n: *const lapackint,
3713    A: *mut Complex64,
3714    lda: *const lapackint,
3715    S: *mut f64,
3716    U: *mut Complex64,
3717    ldu: *const lapackint,
3718    V: *mut Complex64,
3719    ldv: *const lapackint,
3720    numrank: *mut lapackint,
3721    iwork: *mut lapackint,
3722    liwork: *const lapackint,
3723    cwork: *mut Complex64,
3724    lcwork: *mut lapackint,
3725    rwork: *mut f64,
3726    lrwork: *const lapackint,
3727    info: *mut lapackint,
3728);
3729
3730// GESVDX
3731define_lapack_ffi!(cgesvdx, CgesvdxFnPtr,
3732    jobu: *const c_char,
3733    jobvt: *const c_char,
3734    range: *const c_char,
3735    m: *const lapackint,
3736    n: *const lapackint,
3737    A: *mut Complex32,
3738    lda: *const lapackint,
3739    vl: *const f32,
3740    vu: *const f32,
3741    il: *const lapackint,
3742    iu: *const lapackint,
3743    ns: *mut lapackint,
3744    S: *mut f32,
3745    U: *mut Complex32,
3746    ldu: *const lapackint,
3747    VT: *mut Complex32,
3748    ldvt: *const lapackint,
3749    work: *mut Complex32,
3750    lwork: *const lapackint,
3751    rwork: *mut f32,
3752    iwork: *mut lapackint,
3753    info: *mut lapackint,
3754);
3755
3756define_lapack_ffi!(dgesvdx, DgesvdxFnPtr,
3757    jobu: *const c_char,
3758    jobvt: *const c_char,
3759    range: *const c_char,
3760    m: *const lapackint,
3761    n: *const lapackint,
3762    A: *mut f64,
3763    lda: *const lapackint,
3764    vl: *const f64,
3765    vu: *const f64,
3766    il: *const lapackint,
3767    iu: *const lapackint,
3768    ns: *mut lapackint,
3769    S: *mut f64,
3770    U: *mut f64,
3771    ldu: *const lapackint,
3772    VT: *mut f64,
3773    ldvt: *const lapackint,
3774    work: *mut f64,
3775    lwork: *const lapackint,
3776    iwork: *mut lapackint,
3777    info: *mut lapackint,
3778);
3779
3780define_lapack_ffi!(sgesvdx, SgesvdxFnPtr,
3781    jobu: *const c_char,
3782    jobvt: *const c_char,
3783    range: *const c_char,
3784    m: *const lapackint,
3785    n: *const lapackint,
3786    A: *mut f32,
3787    lda: *const lapackint,
3788    vl: *const f32,
3789    vu: *const f32,
3790    il: *const lapackint,
3791    iu: *const lapackint,
3792    ns: *mut lapackint,
3793    S: *mut f32,
3794    U: *mut f32,
3795    ldu: *const lapackint,
3796    VT: *mut f32,
3797    ldvt: *const lapackint,
3798    work: *mut f32,
3799    lwork: *const lapackint,
3800    iwork: *mut lapackint,
3801    info: *mut lapackint,
3802);
3803
3804define_lapack_ffi!(zgesvdx, ZgesvdxFnPtr,
3805    jobu: *const c_char,
3806    jobvt: *const c_char,
3807    range: *const c_char,
3808    m: *const lapackint,
3809    n: *const lapackint,
3810    A: *mut Complex64,
3811    lda: *const lapackint,
3812    vl: *const f64,
3813    vu: *const f64,
3814    il: *const lapackint,
3815    iu: *const lapackint,
3816    ns: *mut lapackint,
3817    S: *mut f64,
3818    U: *mut Complex64,
3819    ldu: *const lapackint,
3820    VT: *mut Complex64,
3821    ldvt: *const lapackint,
3822    work: *mut Complex64,
3823    lwork: *const lapackint,
3824    rwork: *mut f64,
3825    iwork: *mut lapackint,
3826    info: *mut lapackint,
3827);
3828
3829// GESVJ
3830define_lapack_ffi!(cgesvj, CgesvjFnPtr,
3831    joba: *const c_char,
3832    jobu: *const c_char,
3833    jobv: *const c_char,
3834    m: *const lapackint,
3835    n: *const lapackint,
3836    A: *mut Complex32,
3837    lda: *const lapackint,
3838    SVA: *mut f32,
3839    mv: *const lapackint,
3840    V: *mut Complex32,
3841    ldv: *const lapackint,
3842    cwork: *mut Complex32,
3843    lwork: *const lapackint,
3844    rwork: *mut f32,
3845    lrwork: *const lapackint,
3846    info: *mut lapackint,
3847);
3848
3849define_lapack_ffi!(dgesvj, DgesvjFnPtr,
3850    joba: *const c_char,
3851    jobu: *const c_char,
3852    jobv: *const c_char,
3853    m: *const lapackint,
3854    n: *const lapackint,
3855    A: *mut f64,
3856    lda: *const lapackint,
3857    SVA: *mut f64,
3858    mv: *const lapackint,
3859    V: *mut f64,
3860    ldv: *const lapackint,
3861    work: *mut f64,
3862    lwork: *const lapackint,
3863    info: *mut lapackint,
3864);
3865
3866define_lapack_ffi!(sgesvj, SgesvjFnPtr,
3867    joba: *const c_char,
3868    jobu: *const c_char,
3869    jobv: *const c_char,
3870    m: *const lapackint,
3871    n: *const lapackint,
3872    A: *mut f32,
3873    lda: *const lapackint,
3874    SVA: *mut f32,
3875    mv: *const lapackint,
3876    V: *mut f32,
3877    ldv: *const lapackint,
3878    work: *mut f32,
3879    lwork: *const lapackint,
3880    info: *mut lapackint,
3881);
3882
3883define_lapack_ffi!(zgesvj, ZgesvjFnPtr,
3884    joba: *const c_char,
3885    jobu: *const c_char,
3886    jobv: *const c_char,
3887    m: *const lapackint,
3888    n: *const lapackint,
3889    A: *mut Complex64,
3890    lda: *const lapackint,
3891    SVA: *mut f64,
3892    mv: *const lapackint,
3893    V: *mut Complex64,
3894    ldv: *const lapackint,
3895    cwork: *mut Complex64,
3896    lwork: *const lapackint,
3897    rwork: *mut f64,
3898    lrwork: *const lapackint,
3899    info: *mut lapackint,
3900);
3901
3902// GESVX
3903define_lapack_ffi!(cgesvx, CgesvxFnPtr,
3904    fact: *const c_char,
3905    trans: *const c_char,
3906    n: *const lapackint,
3907    nrhs: *const lapackint,
3908    A: *mut Complex32,
3909    lda: *const lapackint,
3910    AF: *mut Complex32,
3911    ldaf: *const lapackint,
3912    ipiv: *mut lapackint,
3913    equed: *mut c_char,
3914    R: *mut f32,
3915    C: *mut f32,
3916    B: *mut Complex32,
3917    ldb: *const lapackint,
3918    X: *mut Complex32,
3919    ldx: *const lapackint,
3920    rcond: *mut f32,
3921    ferr: *mut f32,
3922    berr: *mut f32,
3923    work: *mut Complex32,
3924    rwork: *mut f32,
3925    info: *mut lapackint,
3926);
3927
3928define_lapack_ffi!(dgesvx, DgesvxFnPtr,
3929    fact: *const c_char,
3930    trans: *const c_char,
3931    n: *const lapackint,
3932    nrhs: *const lapackint,
3933    A: *mut f64,
3934    lda: *const lapackint,
3935    AF: *mut f64,
3936    ldaf: *const lapackint,
3937    ipiv: *mut lapackint,
3938    equed: *mut c_char,
3939    R: *mut f64,
3940    C: *mut f64,
3941    B: *mut f64,
3942    ldb: *const lapackint,
3943    X: *mut f64,
3944    ldx: *const lapackint,
3945    rcond: *mut f64,
3946    ferr: *mut f64,
3947    berr: *mut f64,
3948    work: *mut f64,
3949    iwork: *mut lapackint,
3950    info: *mut lapackint,
3951);
3952
3953define_lapack_ffi!(sgesvx, SgesvxFnPtr,
3954    fact: *const c_char,
3955    trans: *const c_char,
3956    n: *const lapackint,
3957    nrhs: *const lapackint,
3958    A: *mut f32,
3959    lda: *const lapackint,
3960    AF: *mut f32,
3961    ldaf: *const lapackint,
3962    ipiv: *mut lapackint,
3963    equed: *mut c_char,
3964    R: *mut f32,
3965    C: *mut f32,
3966    B: *mut f32,
3967    ldb: *const lapackint,
3968    X: *mut f32,
3969    ldx: *const lapackint,
3970    rcond: *mut f32,
3971    ferr: *mut f32,
3972    berr: *mut f32,
3973    work: *mut f32,
3974    iwork: *mut lapackint,
3975    info: *mut lapackint,
3976);
3977
3978define_lapack_ffi!(zgesvx, ZgesvxFnPtr,
3979    fact: *const c_char,
3980    trans: *const c_char,
3981    n: *const lapackint,
3982    nrhs: *const lapackint,
3983    A: *mut Complex64,
3984    lda: *const lapackint,
3985    AF: *mut Complex64,
3986    ldaf: *const lapackint,
3987    ipiv: *mut lapackint,
3988    equed: *mut c_char,
3989    R: *mut f64,
3990    C: *mut f64,
3991    B: *mut Complex64,
3992    ldb: *const lapackint,
3993    X: *mut Complex64,
3994    ldx: *const lapackint,
3995    rcond: *mut f64,
3996    ferr: *mut f64,
3997    berr: *mut f64,
3998    work: *mut Complex64,
3999    rwork: *mut f64,
4000    info: *mut lapackint,
4001);
4002
4003// GESVXX
4004define_lapack_ffi!(cgesvxx, CgesvxxFnPtr,
4005    fact: *const c_char,
4006    trans: *const c_char,
4007    n: *const lapackint,
4008    nrhs: *const lapackint,
4009    A: *mut Complex32,
4010    lda: *const lapackint,
4011    AF: *mut Complex32,
4012    ldaf: *const lapackint,
4013    ipiv: *mut lapackint,
4014    equed: *mut c_char,
4015    R: *mut f32,
4016    C: *mut f32,
4017    B: *mut Complex32,
4018    ldb: *const lapackint,
4019    X: *mut Complex32,
4020    ldx: *const lapackint,
4021    rcond: *mut f32,
4022    rpvgrw: *mut f32,
4023    berr: *mut f32,
4024    n_err_bnds: *const lapackint,
4025    err_bnds_norm: *mut f32,
4026    err_bnds_comp: *mut f32,
4027    nparams: *const lapackint,
4028    params: *mut f32,
4029    work: *mut Complex32,
4030    rwork: *mut f32,
4031    info: *mut lapackint,
4032);
4033
4034define_lapack_ffi!(dgesvxx, DgesvxxFnPtr,
4035    fact: *const c_char,
4036    trans: *const c_char,
4037    n: *const lapackint,
4038    nrhs: *const lapackint,
4039    A: *mut f64,
4040    lda: *const lapackint,
4041    AF: *mut f64,
4042    ldaf: *const lapackint,
4043    ipiv: *mut lapackint,
4044    equed: *mut c_char,
4045    R: *mut f64,
4046    C: *mut f64,
4047    B: *mut f64,
4048    ldb: *const lapackint,
4049    X: *mut f64,
4050    ldx: *const lapackint,
4051    rcond: *mut f64,
4052    rpvgrw: *mut f64,
4053    berr: *mut f64,
4054    n_err_bnds: *const lapackint,
4055    err_bnds_norm: *mut f64,
4056    err_bnds_comp: *mut f64,
4057    nparams: *const lapackint,
4058    params: *mut f64,
4059    work: *mut f64,
4060    iwork: *mut lapackint,
4061    info: *mut lapackint,
4062);
4063
4064define_lapack_ffi!(sgesvxx, SgesvxxFnPtr,
4065    fact: *const c_char,
4066    trans: *const c_char,
4067    n: *const lapackint,
4068    nrhs: *const lapackint,
4069    A: *mut f32,
4070    lda: *const lapackint,
4071    AF: *mut f32,
4072    ldaf: *const lapackint,
4073    ipiv: *mut lapackint,
4074    equed: *mut c_char,
4075    R: *mut f32,
4076    C: *mut f32,
4077    B: *mut f32,
4078    ldb: *const lapackint,
4079    X: *mut f32,
4080    ldx: *const lapackint,
4081    rcond: *mut f32,
4082    rpvgrw: *mut f32,
4083    berr: *mut f32,
4084    n_err_bnds: *const lapackint,
4085    err_bnds_norm: *mut f32,
4086    err_bnds_comp: *mut f32,
4087    nparams: *const lapackint,
4088    params: *mut f32,
4089    work: *mut f32,
4090    iwork: *mut lapackint,
4091    info: *mut lapackint,
4092);
4093
4094define_lapack_ffi!(zgesvxx, ZgesvxxFnPtr,
4095    fact: *const c_char,
4096    trans: *const c_char,
4097    n: *const lapackint,
4098    nrhs: *const lapackint,
4099    A: *mut Complex64,
4100    lda: *const lapackint,
4101    AF: *mut Complex64,
4102    ldaf: *const lapackint,
4103    ipiv: *mut lapackint,
4104    equed: *mut c_char,
4105    R: *mut f64,
4106    C: *mut f64,
4107    B: *mut Complex64,
4108    ldb: *const lapackint,
4109    X: *mut Complex64,
4110    ldx: *const lapackint,
4111    rcond: *mut f64,
4112    rpvgrw: *mut f64,
4113    berr: *mut f64,
4114    n_err_bnds: *const lapackint,
4115    err_bnds_norm: *mut f64,
4116    err_bnds_comp: *mut f64,
4117    nparams: *const lapackint,
4118    params: *mut f64,
4119    work: *mut Complex64,
4120    rwork: *mut f64,
4121    info: *mut lapackint,
4122);
4123
4124// GETF2
4125define_lapack_ffi!(cgetf2, Cgetf2FnPtr,
4126    m: *const lapackint,
4127    n: *const lapackint,
4128    A: *mut Complex32,
4129    lda: *const lapackint,
4130    ipiv: *mut lapackint,
4131    info: *mut lapackint,
4132);
4133
4134define_lapack_ffi!(dgetf2, Dgetf2FnPtr,
4135    m: *const lapackint,
4136    n: *const lapackint,
4137    A: *mut f64,
4138    lda: *const lapackint,
4139    ipiv: *mut lapackint,
4140    info: *mut lapackint,
4141);
4142
4143define_lapack_ffi!(sgetf2, Sgetf2FnPtr,
4144    m: *const lapackint,
4145    n: *const lapackint,
4146    A: *mut f32,
4147    lda: *const lapackint,
4148    ipiv: *mut lapackint,
4149    info: *mut lapackint,
4150);
4151
4152define_lapack_ffi!(zgetf2, Zgetf2FnPtr,
4153    m: *const lapackint,
4154    n: *const lapackint,
4155    A: *mut Complex64,
4156    lda: *const lapackint,
4157    ipiv: *mut lapackint,
4158    info: *mut lapackint,
4159);
4160
4161// GETRF
4162define_lapack_ffi!(cgetrf, CgetrfFnPtr,
4163    m: *const lapackint,
4164    n: *const lapackint,
4165    A: *mut Complex32,
4166    lda: *const lapackint,
4167    ipiv: *mut lapackint,
4168    info: *mut lapackint,
4169);
4170
4171define_lapack_ffi!(dgetrf, DgetrfFnPtr,
4172    m: *const lapackint,
4173    n: *const lapackint,
4174    A: *mut f64,
4175    lda: *const lapackint,
4176    ipiv: *mut lapackint,
4177    info: *mut lapackint,
4178);
4179
4180define_lapack_ffi!(sgetrf, SgetrfFnPtr,
4181    m: *const lapackint,
4182    n: *const lapackint,
4183    A: *mut f32,
4184    lda: *const lapackint,
4185    ipiv: *mut lapackint,
4186    info: *mut lapackint,
4187);
4188
4189define_lapack_ffi!(zgetrf, ZgetrfFnPtr,
4190    m: *const lapackint,
4191    n: *const lapackint,
4192    A: *mut Complex64,
4193    lda: *const lapackint,
4194    ipiv: *mut lapackint,
4195    info: *mut lapackint,
4196);
4197
4198// GETRF2
4199define_lapack_ffi!(cgetrf2, Cgetrf2FnPtr,
4200    m: *const lapackint,
4201    n: *const lapackint,
4202    A: *mut Complex32,
4203    lda: *const lapackint,
4204    ipiv: *mut lapackint,
4205    info: *mut lapackint,
4206);
4207
4208define_lapack_ffi!(dgetrf2, Dgetrf2FnPtr,
4209    m: *const lapackint,
4210    n: *const lapackint,
4211    A: *mut f64,
4212    lda: *const lapackint,
4213    ipiv: *mut lapackint,
4214    info: *mut lapackint,
4215);
4216
4217define_lapack_ffi!(sgetrf2, Sgetrf2FnPtr,
4218    m: *const lapackint,
4219    n: *const lapackint,
4220    A: *mut f32,
4221    lda: *const lapackint,
4222    ipiv: *mut lapackint,
4223    info: *mut lapackint,
4224);
4225
4226define_lapack_ffi!(zgetrf2, Zgetrf2FnPtr,
4227    m: *const lapackint,
4228    n: *const lapackint,
4229    A: *mut Complex64,
4230    lda: *const lapackint,
4231    ipiv: *mut lapackint,
4232    info: *mut lapackint,
4233);
4234
4235// GETRI
4236define_lapack_ffi!(cgetri, CgetriFnPtr,
4237    n: *const lapackint,
4238    A: *mut Complex32,
4239    lda: *const lapackint,
4240    ipiv: *const lapackint,
4241    work: *mut Complex32,
4242    lwork: *const lapackint,
4243    info: *mut lapackint,
4244);
4245
4246define_lapack_ffi!(dgetri, DgetriFnPtr,
4247    n: *const lapackint,
4248    A: *mut f64,
4249    lda: *const lapackint,
4250    ipiv: *const lapackint,
4251    work: *mut f64,
4252    lwork: *const lapackint,
4253    info: *mut lapackint,
4254);
4255
4256define_lapack_ffi!(sgetri, SgetriFnPtr,
4257    n: *const lapackint,
4258    A: *mut f32,
4259    lda: *const lapackint,
4260    ipiv: *const lapackint,
4261    work: *mut f32,
4262    lwork: *const lapackint,
4263    info: *mut lapackint,
4264);
4265
4266define_lapack_ffi!(zgetri, ZgetriFnPtr,
4267    n: *const lapackint,
4268    A: *mut Complex64,
4269    lda: *const lapackint,
4270    ipiv: *const lapackint,
4271    work: *mut Complex64,
4272    lwork: *const lapackint,
4273    info: *mut lapackint,
4274);
4275
4276// GETRS
4277define_lapack_ffi!(cgetrs, CgetrsFnPtr,
4278    trans: *const c_char,
4279    n: *const lapackint,
4280    nrhs: *const lapackint,
4281    A: *const Complex32,
4282    lda: *const lapackint,
4283    ipiv: *const lapackint,
4284    B: *mut Complex32,
4285    ldb: *const lapackint,
4286    info: *mut lapackint,
4287);
4288
4289define_lapack_ffi!(dgetrs, DgetrsFnPtr,
4290    trans: *const c_char,
4291    n: *const lapackint,
4292    nrhs: *const lapackint,
4293    A: *const f64,
4294    lda: *const lapackint,
4295    ipiv: *const lapackint,
4296    B: *mut f64,
4297    ldb: *const lapackint,
4298    info: *mut lapackint,
4299);
4300
4301define_lapack_ffi!(sgetrs, SgetrsFnPtr,
4302    trans: *const c_char,
4303    n: *const lapackint,
4304    nrhs: *const lapackint,
4305    A: *const f32,
4306    lda: *const lapackint,
4307    ipiv: *const lapackint,
4308    B: *mut f32,
4309    ldb: *const lapackint,
4310    info: *mut lapackint,
4311);
4312
4313define_lapack_ffi!(zgetrs, ZgetrsFnPtr,
4314    trans: *const c_char,
4315    n: *const lapackint,
4316    nrhs: *const lapackint,
4317    A: *const Complex64,
4318    lda: *const lapackint,
4319    ipiv: *const lapackint,
4320    B: *mut Complex64,
4321    ldb: *const lapackint,
4322    info: *mut lapackint,
4323);
4324
4325// GETSLS
4326define_lapack_ffi!(cgetsls, CgetslsFnPtr,
4327    trans: *const c_char,
4328    m: *const lapackint,
4329    n: *const lapackint,
4330    nrhs: *const lapackint,
4331    A: *mut Complex32,
4332    lda: *const lapackint,
4333    B: *mut Complex32,
4334    ldb: *const lapackint,
4335    work: *mut Complex32,
4336    lwork: *const lapackint,
4337    info: *mut lapackint,
4338);
4339
4340define_lapack_ffi!(dgetsls, DgetslsFnPtr,
4341    trans: *const c_char,
4342    m: *const lapackint,
4343    n: *const lapackint,
4344    nrhs: *const lapackint,
4345    A: *mut f64,
4346    lda: *const lapackint,
4347    B: *mut f64,
4348    ldb: *const lapackint,
4349    work: *mut f64,
4350    lwork: *const lapackint,
4351    info: *mut lapackint,
4352);
4353
4354define_lapack_ffi!(sgetsls, SgetslsFnPtr,
4355    trans: *const c_char,
4356    m: *const lapackint,
4357    n: *const lapackint,
4358    nrhs: *const lapackint,
4359    A: *mut f32,
4360    lda: *const lapackint,
4361    B: *mut f32,
4362    ldb: *const lapackint,
4363    work: *mut f32,
4364    lwork: *const lapackint,
4365    info: *mut lapackint,
4366);
4367
4368define_lapack_ffi!(zgetsls, ZgetslsFnPtr,
4369    trans: *const c_char,
4370    m: *const lapackint,
4371    n: *const lapackint,
4372    nrhs: *const lapackint,
4373    A: *mut Complex64,
4374    lda: *const lapackint,
4375    B: *mut Complex64,
4376    ldb: *const lapackint,
4377    work: *mut Complex64,
4378    lwork: *const lapackint,
4379    info: *mut lapackint,
4380);
4381
4382// GETSQRHRT
4383define_lapack_ffi!(cgetsqrhrt, CgetsqrhrtFnPtr,
4384    m: *const lapackint,
4385    n: *const lapackint,
4386    mb1: *const lapackint,
4387    nb1: *const lapackint,
4388    nb2: *const lapackint,
4389    A: *mut Complex32,
4390    lda: *const lapackint,
4391    T: *mut Complex32,
4392    ldt: *const lapackint,
4393    work: *mut Complex32,
4394    lwork: *const lapackint,
4395    info: *mut lapackint,
4396);
4397
4398define_lapack_ffi!(dgetsqrhrt, DgetsqrhrtFnPtr,
4399    m: *const lapackint,
4400    n: *const lapackint,
4401    mb1: *const lapackint,
4402    nb1: *const lapackint,
4403    nb2: *const lapackint,
4404    A: *mut f64,
4405    lda: *const lapackint,
4406    T: *mut f64,
4407    ldt: *const lapackint,
4408    work: *mut f64,
4409    lwork: *const lapackint,
4410    info: *mut lapackint,
4411);
4412
4413define_lapack_ffi!(sgetsqrhrt, SgetsqrhrtFnPtr,
4414    m: *const lapackint,
4415    n: *const lapackint,
4416    mb1: *const lapackint,
4417    nb1: *const lapackint,
4418    nb2: *const lapackint,
4419    A: *mut f32,
4420    lda: *const lapackint,
4421    T: *mut f32,
4422    ldt: *const lapackint,
4423    work: *mut f32,
4424    lwork: *const lapackint,
4425    info: *mut lapackint,
4426);
4427
4428define_lapack_ffi!(zgetsqrhrt, ZgetsqrhrtFnPtr,
4429    m: *const lapackint,
4430    n: *const lapackint,
4431    mb1: *const lapackint,
4432    nb1: *const lapackint,
4433    nb2: *const lapackint,
4434    A: *mut Complex64,
4435    lda: *const lapackint,
4436    T: *mut Complex64,
4437    ldt: *const lapackint,
4438    work: *mut Complex64,
4439    lwork: *const lapackint,
4440    info: *mut lapackint,
4441);
4442
4443// GGBAK
4444define_lapack_ffi!(cggbak, CggbakFnPtr,
4445    job: *const c_char,
4446    side: *const c_char,
4447    n: *const lapackint,
4448    ilo: *const lapackint,
4449    ihi: *const lapackint,
4450    lscale: *const f32,
4451    rscale: *const f32,
4452    m: *const lapackint,
4453    V: *mut Complex32,
4454    ldv: *const lapackint,
4455    info: *mut lapackint,
4456);
4457
4458define_lapack_ffi!(dggbak, DggbakFnPtr,
4459    job: *const c_char,
4460    side: *const c_char,
4461    n: *const lapackint,
4462    ilo: *const lapackint,
4463    ihi: *const lapackint,
4464    lscale: *const f64,
4465    rscale: *const f64,
4466    m: *const lapackint,
4467    V: *mut f64,
4468    ldv: *const lapackint,
4469    info: *mut lapackint,
4470);
4471
4472define_lapack_ffi!(sggbak, SggbakFnPtr,
4473    job: *const c_char,
4474    side: *const c_char,
4475    n: *const lapackint,
4476    ilo: *const lapackint,
4477    ihi: *const lapackint,
4478    lscale: *const f32,
4479    rscale: *const f32,
4480    m: *const lapackint,
4481    V: *mut f32,
4482    ldv: *const lapackint,
4483    info: *mut lapackint,
4484);
4485
4486define_lapack_ffi!(zggbak, ZggbakFnPtr,
4487    job: *const c_char,
4488    side: *const c_char,
4489    n: *const lapackint,
4490    ilo: *const lapackint,
4491    ihi: *const lapackint,
4492    lscale: *const f64,
4493    rscale: *const f64,
4494    m: *const lapackint,
4495    V: *mut Complex64,
4496    ldv: *const lapackint,
4497    info: *mut lapackint,
4498);
4499
4500// GGBAL
4501define_lapack_ffi!(cggbal, CggbalFnPtr,
4502    job: *const c_char,
4503    n: *const lapackint,
4504    A: *mut Complex32,
4505    lda: *const lapackint,
4506    B: *mut Complex32,
4507    ldb: *const lapackint,
4508    ilo: *mut lapackint,
4509    ihi: *mut lapackint,
4510    lscale: *mut f32,
4511    rscale: *mut f32,
4512    work: *mut f32,
4513    info: *mut lapackint,
4514);
4515
4516define_lapack_ffi!(dggbal, DggbalFnPtr,
4517    job: *const c_char,
4518    n: *const lapackint,
4519    A: *mut f64,
4520    lda: *const lapackint,
4521    B: *mut f64,
4522    ldb: *const lapackint,
4523    ilo: *mut lapackint,
4524    ihi: *mut lapackint,
4525    lscale: *mut f64,
4526    rscale: *mut f64,
4527    work: *mut f64,
4528    info: *mut lapackint,
4529);
4530
4531define_lapack_ffi!(sggbal, SggbalFnPtr,
4532    job: *const c_char,
4533    n: *const lapackint,
4534    A: *mut f32,
4535    lda: *const lapackint,
4536    B: *mut f32,
4537    ldb: *const lapackint,
4538    ilo: *mut lapackint,
4539    ihi: *mut lapackint,
4540    lscale: *mut f32,
4541    rscale: *mut f32,
4542    work: *mut f32,
4543    info: *mut lapackint,
4544);
4545
4546define_lapack_ffi!(zggbal, ZggbalFnPtr,
4547    job: *const c_char,
4548    n: *const lapackint,
4549    A: *mut Complex64,
4550    lda: *const lapackint,
4551    B: *mut Complex64,
4552    ldb: *const lapackint,
4553    ilo: *mut lapackint,
4554    ihi: *mut lapackint,
4555    lscale: *mut f64,
4556    rscale: *mut f64,
4557    work: *mut f64,
4558    info: *mut lapackint,
4559);
4560
4561// GGES
4562define_lapack_ffi!(cgges, CggesFnPtr,
4563    jobvsl: *const c_char,
4564    jobvsr: *const c_char,
4565    sort: *const c_char,
4566    selctg: Option<CSelectFn2>,
4567    n: *const lapackint,
4568    A: *mut Complex32,
4569    lda: *const lapackint,
4570    B: *mut Complex32,
4571    ldb: *const lapackint,
4572    sdim: *mut lapackint,
4573    alpha: *mut Complex32,
4574    beta: *mut Complex32,
4575    VSL: *mut Complex32,
4576    ldvsl: *const lapackint,
4577    VSR: *mut Complex32,
4578    ldvsr: *const lapackint,
4579    work: *mut Complex32,
4580    lwork: *const lapackint,
4581    rwork: *mut f32,
4582    BWORK: *mut lapackint,
4583    info: *mut lapackint,
4584);
4585
4586define_lapack_ffi!(dgges, DggesFnPtr,
4587    jobvsl: *const c_char,
4588    jobvsr: *const c_char,
4589    sort: *const c_char,
4590    selctg: Option<DSelectFn3>,
4591    n: *const lapackint,
4592    A: *mut f64,
4593    lda: *const lapackint,
4594    B: *mut f64,
4595    ldb: *const lapackint,
4596    sdim: *mut lapackint,
4597    alphar: *mut f64,
4598    alphai: *mut f64,
4599    beta: *mut f64,
4600    VSL: *mut f64,
4601    ldvsl: *const lapackint,
4602    VSR: *mut f64,
4603    ldvsr: *const lapackint,
4604    work: *mut f64,
4605    lwork: *const lapackint,
4606    BWORK: *mut lapackint,
4607    info: *mut lapackint,
4608);
4609
4610define_lapack_ffi!(sgges, SggesFnPtr,
4611    jobvsl: *const c_char,
4612    jobvsr: *const c_char,
4613    sort: *const c_char,
4614    selctg: Option<SSelectFn3>,
4615    n: *const lapackint,
4616    A: *mut f32,
4617    lda: *const lapackint,
4618    B: *mut f32,
4619    ldb: *const lapackint,
4620    sdim: *mut lapackint,
4621    alphar: *mut f32,
4622    alphai: *mut f32,
4623    beta: *mut f32,
4624    VSL: *mut f32,
4625    ldvsl: *const lapackint,
4626    VSR: *mut f32,
4627    ldvsr: *const lapackint,
4628    work: *mut f32,
4629    lwork: *const lapackint,
4630    BWORK: *mut lapackint,
4631    info: *mut lapackint,
4632);
4633
4634define_lapack_ffi!(zgges, ZggesFnPtr,
4635    jobvsl: *const c_char,
4636    jobvsr: *const c_char,
4637    sort: *const c_char,
4638    selctg: Option<ZSelectFn2>,
4639    n: *const lapackint,
4640    A: *mut Complex64,
4641    lda: *const lapackint,
4642    B: *mut Complex64,
4643    ldb: *const lapackint,
4644    sdim: *mut lapackint,
4645    alpha: *mut Complex64,
4646    beta: *mut Complex64,
4647    VSL: *mut Complex64,
4648    ldvsl: *const lapackint,
4649    VSR: *mut Complex64,
4650    ldvsr: *const lapackint,
4651    work: *mut Complex64,
4652    lwork: *const lapackint,
4653    rwork: *mut f64,
4654    BWORK: *mut lapackint,
4655    info: *mut lapackint,
4656);
4657
4658// GGES3
4659define_lapack_ffi!(cgges3, Cgges3FnPtr,
4660    jobvsl: *const c_char,
4661    jobvsr: *const c_char,
4662    sort: *const c_char,
4663    selctg: Option<CSelectFn2>,
4664    n: *const lapackint,
4665    A: *mut Complex32,
4666    lda: *const lapackint,
4667    B: *mut Complex32,
4668    ldb: *const lapackint,
4669    sdim: *mut lapackint,
4670    alpha: *mut Complex32,
4671    beta: *mut Complex32,
4672    VSL: *mut Complex32,
4673    ldvsl: *const lapackint,
4674    VSR: *mut Complex32,
4675    ldvsr: *const lapackint,
4676    work: *mut Complex32,
4677    lwork: *const lapackint,
4678    rwork: *mut f32,
4679    BWORK: *mut lapackint,
4680    info: *mut lapackint,
4681);
4682
4683define_lapack_ffi!(dgges3, Dgges3FnPtr,
4684    jobvsl: *const c_char,
4685    jobvsr: *const c_char,
4686    sort: *const c_char,
4687    selctg: Option<DSelectFn3>,
4688    n: *const lapackint,
4689    A: *mut f64,
4690    lda: *const lapackint,
4691    B: *mut f64,
4692    ldb: *const lapackint,
4693    sdim: *mut lapackint,
4694    alphar: *mut f64,
4695    alphai: *mut f64,
4696    beta: *mut f64,
4697    VSL: *mut f64,
4698    ldvsl: *const lapackint,
4699    VSR: *mut f64,
4700    ldvsr: *const lapackint,
4701    work: *mut f64,
4702    lwork: *const lapackint,
4703    BWORK: *mut lapackint,
4704    info: *mut lapackint,
4705);
4706
4707define_lapack_ffi!(sgges3, Sgges3FnPtr,
4708    jobvsl: *const c_char,
4709    jobvsr: *const c_char,
4710    sort: *const c_char,
4711    selctg: Option<SSelectFn3>,
4712    n: *const lapackint,
4713    A: *mut f32,
4714    lda: *const lapackint,
4715    B: *mut f32,
4716    ldb: *const lapackint,
4717    sdim: *mut lapackint,
4718    alphar: *mut f32,
4719    alphai: *mut f32,
4720    beta: *mut f32,
4721    VSL: *mut f32,
4722    ldvsl: *const lapackint,
4723    VSR: *mut f32,
4724    ldvsr: *const lapackint,
4725    work: *mut f32,
4726    lwork: *const lapackint,
4727    BWORK: *mut lapackint,
4728    info: *mut lapackint,
4729);
4730
4731define_lapack_ffi!(zgges3, Zgges3FnPtr,
4732    jobvsl: *const c_char,
4733    jobvsr: *const c_char,
4734    sort: *const c_char,
4735    selctg: Option<ZSelectFn2>,
4736    n: *const lapackint,
4737    A: *mut Complex64,
4738    lda: *const lapackint,
4739    B: *mut Complex64,
4740    ldb: *const lapackint,
4741    sdim: *mut lapackint,
4742    alpha: *mut Complex64,
4743    beta: *mut Complex64,
4744    VSL: *mut Complex64,
4745    ldvsl: *const lapackint,
4746    VSR: *mut Complex64,
4747    ldvsr: *const lapackint,
4748    work: *mut Complex64,
4749    lwork: *const lapackint,
4750    rwork: *mut f64,
4751    BWORK: *mut lapackint,
4752    info: *mut lapackint,
4753);
4754
4755// GGESX
4756define_lapack_ffi!(cggesx, CggesxFnPtr,
4757    jobvsl: *const c_char,
4758    jobvsr: *const c_char,
4759    sort: *const c_char,
4760    selctg: Option<CSelectFn2>,
4761    sense: *const c_char,
4762    n: *const lapackint,
4763    A: *mut Complex32,
4764    lda: *const lapackint,
4765    B: *mut Complex32,
4766    ldb: *const lapackint,
4767    sdim: *mut lapackint,
4768    alpha: *mut Complex32,
4769    beta: *mut Complex32,
4770    VSL: *mut Complex32,
4771    ldvsl: *const lapackint,
4772    VSR: *mut Complex32,
4773    ldvsr: *const lapackint,
4774    rconde: *mut f32,
4775    rcondv: *mut f32,
4776    work: *mut Complex32,
4777    lwork: *const lapackint,
4778    rwork: *mut f32,
4779    iwork: *mut lapackint,
4780    liwork: *const lapackint,
4781    BWORK: *mut lapackint,
4782    info: *mut lapackint,
4783);
4784
4785define_lapack_ffi!(dggesx, DggesxFnPtr,
4786    jobvsl: *const c_char,
4787    jobvsr: *const c_char,
4788    sort: *const c_char,
4789    selctg: Option<DSelectFn3>,
4790    sense: *const c_char,
4791    n: *const lapackint,
4792    A: *mut f64,
4793    lda: *const lapackint,
4794    B: *mut f64,
4795    ldb: *const lapackint,
4796    sdim: *mut lapackint,
4797    alphar: *mut f64,
4798    alphai: *mut f64,
4799    beta: *mut f64,
4800    VSL: *mut f64,
4801    ldvsl: *const lapackint,
4802    VSR: *mut f64,
4803    ldvsr: *const lapackint,
4804    rconde: *mut f64,
4805    rcondv: *mut f64,
4806    work: *mut f64,
4807    lwork: *const lapackint,
4808    iwork: *mut lapackint,
4809    liwork: *const lapackint,
4810    BWORK: *mut lapackint,
4811    info: *mut lapackint,
4812);
4813
4814define_lapack_ffi!(sggesx, SggesxFnPtr,
4815    jobvsl: *const c_char,
4816    jobvsr: *const c_char,
4817    sort: *const c_char,
4818    selctg: Option<SSelectFn3>,
4819    sense: *const c_char,
4820    n: *const lapackint,
4821    A: *mut f32,
4822    lda: *const lapackint,
4823    B: *mut f32,
4824    ldb: *const lapackint,
4825    sdim: *mut lapackint,
4826    alphar: *mut f32,
4827    alphai: *mut f32,
4828    beta: *mut f32,
4829    VSL: *mut f32,
4830    ldvsl: *const lapackint,
4831    VSR: *mut f32,
4832    ldvsr: *const lapackint,
4833    rconde: *mut f32,
4834    rcondv: *mut f32,
4835    work: *mut f32,
4836    lwork: *const lapackint,
4837    iwork: *mut lapackint,
4838    liwork: *const lapackint,
4839    BWORK: *mut lapackint,
4840    info: *mut lapackint,
4841);
4842
4843define_lapack_ffi!(zggesx, ZggesxFnPtr,
4844    jobvsl: *const c_char,
4845    jobvsr: *const c_char,
4846    sort: *const c_char,
4847    selctg: Option<ZSelectFn2>,
4848    sense: *const c_char,
4849    n: *const lapackint,
4850    A: *mut Complex64,
4851    lda: *const lapackint,
4852    B: *mut Complex64,
4853    ldb: *const lapackint,
4854    sdim: *mut lapackint,
4855    alpha: *mut Complex64,
4856    beta: *mut Complex64,
4857    VSL: *mut Complex64,
4858    ldvsl: *const lapackint,
4859    VSR: *mut Complex64,
4860    ldvsr: *const lapackint,
4861    rconde: *mut f64,
4862    rcondv: *mut f64,
4863    work: *mut Complex64,
4864    lwork: *const lapackint,
4865    rwork: *mut f64,
4866    iwork: *mut lapackint,
4867    liwork: *const lapackint,
4868    BWORK: *mut lapackint,
4869    info: *mut lapackint,
4870);
4871
4872// GGEV
4873define_lapack_ffi!(cggev, CggevFnPtr,
4874    jobvl: *const c_char,
4875    jobvr: *const c_char,
4876    n: *const lapackint,
4877    A: *mut Complex32,
4878    lda: *const lapackint,
4879    B: *mut Complex32,
4880    ldb: *const lapackint,
4881    alpha: *mut Complex32,
4882    beta: *mut Complex32,
4883    VL: *mut Complex32,
4884    ldvl: *const lapackint,
4885    VR: *mut Complex32,
4886    ldvr: *const lapackint,
4887    work: *mut Complex32,
4888    lwork: *const lapackint,
4889    rwork: *mut f32,
4890    info: *mut lapackint,
4891);
4892
4893define_lapack_ffi!(dggev, DggevFnPtr,
4894    jobvl: *const c_char,
4895    jobvr: *const c_char,
4896    n: *const lapackint,
4897    A: *mut f64,
4898    lda: *const lapackint,
4899    B: *mut f64,
4900    ldb: *const lapackint,
4901    alphar: *mut f64,
4902    alphai: *mut f64,
4903    beta: *mut f64,
4904    VL: *mut f64,
4905    ldvl: *const lapackint,
4906    VR: *mut f64,
4907    ldvr: *const lapackint,
4908    work: *mut f64,
4909    lwork: *const lapackint,
4910    info: *mut lapackint,
4911);
4912
4913define_lapack_ffi!(sggev, SggevFnPtr,
4914    jobvl: *const c_char,
4915    jobvr: *const c_char,
4916    n: *const lapackint,
4917    A: *mut f32,
4918    lda: *const lapackint,
4919    B: *mut f32,
4920    ldb: *const lapackint,
4921    alphar: *mut f32,
4922    alphai: *mut f32,
4923    beta: *mut f32,
4924    VL: *mut f32,
4925    ldvl: *const lapackint,
4926    VR: *mut f32,
4927    ldvr: *const lapackint,
4928    work: *mut f32,
4929    lwork: *const lapackint,
4930    info: *mut lapackint,
4931);
4932
4933define_lapack_ffi!(zggev, ZggevFnPtr,
4934    jobvl: *const c_char,
4935    jobvr: *const c_char,
4936    n: *const lapackint,
4937    A: *mut Complex64,
4938    lda: *const lapackint,
4939    B: *mut Complex64,
4940    ldb: *const lapackint,
4941    alpha: *mut Complex64,
4942    beta: *mut Complex64,
4943    VL: *mut Complex64,
4944    ldvl: *const lapackint,
4945    VR: *mut Complex64,
4946    ldvr: *const lapackint,
4947    work: *mut Complex64,
4948    lwork: *const lapackint,
4949    rwork: *mut f64,
4950    info: *mut lapackint,
4951);
4952
4953// GGEV3
4954define_lapack_ffi!(cggev3, Cggev3FnPtr,
4955    jobvl: *const c_char,
4956    jobvr: *const c_char,
4957    n: *const lapackint,
4958    A: *mut Complex32,
4959    lda: *const lapackint,
4960    B: *mut Complex32,
4961    ldb: *const lapackint,
4962    alpha: *mut Complex32,
4963    beta: *mut Complex32,
4964    VL: *mut Complex32,
4965    ldvl: *const lapackint,
4966    VR: *mut Complex32,
4967    ldvr: *const lapackint,
4968    work: *mut Complex32,
4969    lwork: *const lapackint,
4970    rwork: *mut f32,
4971    info: *mut lapackint,
4972);
4973
4974define_lapack_ffi!(dggev3, Dggev3FnPtr,
4975    jobvl: *const c_char,
4976    jobvr: *const c_char,
4977    n: *const lapackint,
4978    A: *mut f64,
4979    lda: *const lapackint,
4980    B: *mut f64,
4981    ldb: *const lapackint,
4982    alphar: *mut f64,
4983    alphai: *mut f64,
4984    beta: *mut f64,
4985    VL: *mut f64,
4986    ldvl: *const lapackint,
4987    VR: *mut f64,
4988    ldvr: *const lapackint,
4989    work: *mut f64,
4990    lwork: *const lapackint,
4991    info: *mut lapackint,
4992);
4993
4994define_lapack_ffi!(sggev3, Sggev3FnPtr,
4995    jobvl: *const c_char,
4996    jobvr: *const c_char,
4997    n: *const lapackint,
4998    A: *mut f32,
4999    lda: *const lapackint,
5000    B: *mut f32,
5001    ldb: *const lapackint,
5002    alphar: *mut f32,
5003    alphai: *mut f32,
5004    beta: *mut f32,
5005    VL: *mut f32,
5006    ldvl: *const lapackint,
5007    VR: *mut f32,
5008    ldvr: *const lapackint,
5009    work: *mut f32,
5010    lwork: *const lapackint,
5011    info: *mut lapackint,
5012);
5013
5014define_lapack_ffi!(zggev3, Zggev3FnPtr,
5015    jobvl: *const c_char,
5016    jobvr: *const c_char,
5017    n: *const lapackint,
5018    A: *mut Complex64,
5019    lda: *const lapackint,
5020    B: *mut Complex64,
5021    ldb: *const lapackint,
5022    alpha: *mut Complex64,
5023    beta: *mut Complex64,
5024    VL: *mut Complex64,
5025    ldvl: *const lapackint,
5026    VR: *mut Complex64,
5027    ldvr: *const lapackint,
5028    work: *mut Complex64,
5029    lwork: *const lapackint,
5030    rwork: *mut f64,
5031    info: *mut lapackint,
5032);
5033
5034// GGEVX
5035define_lapack_ffi!(cggevx, CggevxFnPtr,
5036    balanc: *const c_char,
5037    jobvl: *const c_char,
5038    jobvr: *const c_char,
5039    sense: *const c_char,
5040    n: *const lapackint,
5041    A: *mut Complex32,
5042    lda: *const lapackint,
5043    B: *mut Complex32,
5044    ldb: *const lapackint,
5045    alpha: *mut Complex32,
5046    beta: *mut Complex32,
5047    VL: *mut Complex32,
5048    ldvl: *const lapackint,
5049    VR: *mut Complex32,
5050    ldvr: *const lapackint,
5051    ilo: *mut lapackint,
5052    ihi: *mut lapackint,
5053    lscale: *mut f32,
5054    rscale: *mut f32,
5055    abnrm: *mut f32,
5056    bbnrm: *mut f32,
5057    rconde: *mut f32,
5058    rcondv: *mut f32,
5059    work: *mut Complex32,
5060    lwork: *const lapackint,
5061    rwork: *mut f32,
5062    iwork: *mut lapackint,
5063    BWORK: *mut lapackint,
5064    info: *mut lapackint,
5065);
5066
5067define_lapack_ffi!(dggevx, DggevxFnPtr,
5068    balanc: *const c_char,
5069    jobvl: *const c_char,
5070    jobvr: *const c_char,
5071    sense: *const c_char,
5072    n: *const lapackint,
5073    A: *mut f64,
5074    lda: *const lapackint,
5075    B: *mut f64,
5076    ldb: *const lapackint,
5077    alphar: *mut f64,
5078    alphai: *mut f64,
5079    beta: *mut f64,
5080    VL: *mut f64,
5081    ldvl: *const lapackint,
5082    VR: *mut f64,
5083    ldvr: *const lapackint,
5084    ilo: *mut lapackint,
5085    ihi: *mut lapackint,
5086    lscale: *mut f64,
5087    rscale: *mut f64,
5088    abnrm: *mut f64,
5089    bbnrm: *mut f64,
5090    rconde: *mut f64,
5091    rcondv: *mut f64,
5092    work: *mut f64,
5093    lwork: *const lapackint,
5094    iwork: *mut lapackint,
5095    BWORK: *mut lapackint,
5096    info: *mut lapackint,
5097);
5098
5099define_lapack_ffi!(sggevx, SggevxFnPtr,
5100    balanc: *const c_char,
5101    jobvl: *const c_char,
5102    jobvr: *const c_char,
5103    sense: *const c_char,
5104    n: *const lapackint,
5105    A: *mut f32,
5106    lda: *const lapackint,
5107    B: *mut f32,
5108    ldb: *const lapackint,
5109    alphar: *mut f32,
5110    alphai: *mut f32,
5111    beta: *mut f32,
5112    VL: *mut f32,
5113    ldvl: *const lapackint,
5114    VR: *mut f32,
5115    ldvr: *const lapackint,
5116    ilo: *mut lapackint,
5117    ihi: *mut lapackint,
5118    lscale: *mut f32,
5119    rscale: *mut f32,
5120    abnrm: *mut f32,
5121    bbnrm: *mut f32,
5122    rconde: *mut f32,
5123    rcondv: *mut f32,
5124    work: *mut f32,
5125    lwork: *const lapackint,
5126    iwork: *mut lapackint,
5127    BWORK: *mut lapackint,
5128    info: *mut lapackint,
5129);
5130
5131define_lapack_ffi!(zggevx, ZggevxFnPtr,
5132    balanc: *const c_char,
5133    jobvl: *const c_char,
5134    jobvr: *const c_char,
5135    sense: *const c_char,
5136    n: *const lapackint,
5137    A: *mut Complex64,
5138    lda: *const lapackint,
5139    B: *mut Complex64,
5140    ldb: *const lapackint,
5141    alpha: *mut Complex64,
5142    beta: *mut Complex64,
5143    VL: *mut Complex64,
5144    ldvl: *const lapackint,
5145    VR: *mut Complex64,
5146    ldvr: *const lapackint,
5147    ilo: *mut lapackint,
5148    ihi: *mut lapackint,
5149    lscale: *mut f64,
5150    rscale: *mut f64,
5151    abnrm: *mut f64,
5152    bbnrm: *mut f64,
5153    rconde: *mut f64,
5154    rcondv: *mut f64,
5155    work: *mut Complex64,
5156    lwork: *const lapackint,
5157    rwork: *mut f64,
5158    iwork: *mut lapackint,
5159    BWORK: *mut lapackint,
5160    info: *mut lapackint,
5161);
5162
5163// GGGLM
5164define_lapack_ffi!(cggglm, CggglmFnPtr,
5165    n: *const lapackint,
5166    m: *const lapackint,
5167    p: *const lapackint,
5168    A: *mut Complex32,
5169    lda: *const lapackint,
5170    B: *mut Complex32,
5171    ldb: *const lapackint,
5172    D: *mut Complex32,
5173    X: *mut Complex32,
5174    Y: *mut Complex32,
5175    work: *mut Complex32,
5176    lwork: *const lapackint,
5177    info: *mut lapackint,
5178);
5179
5180define_lapack_ffi!(dggglm, DggglmFnPtr,
5181    n: *const lapackint,
5182    m: *const lapackint,
5183    p: *const lapackint,
5184    A: *mut f64,
5185    lda: *const lapackint,
5186    B: *mut f64,
5187    ldb: *const lapackint,
5188    D: *mut f64,
5189    X: *mut f64,
5190    Y: *mut f64,
5191    work: *mut f64,
5192    lwork: *const lapackint,
5193    info: *mut lapackint,
5194);
5195
5196define_lapack_ffi!(sggglm, SggglmFnPtr,
5197    n: *const lapackint,
5198    m: *const lapackint,
5199    p: *const lapackint,
5200    A: *mut f32,
5201    lda: *const lapackint,
5202    B: *mut f32,
5203    ldb: *const lapackint,
5204    D: *mut f32,
5205    X: *mut f32,
5206    Y: *mut f32,
5207    work: *mut f32,
5208    lwork: *const lapackint,
5209    info: *mut lapackint,
5210);
5211
5212define_lapack_ffi!(zggglm, ZggglmFnPtr,
5213    n: *const lapackint,
5214    m: *const lapackint,
5215    p: *const lapackint,
5216    A: *mut Complex64,
5217    lda: *const lapackint,
5218    B: *mut Complex64,
5219    ldb: *const lapackint,
5220    D: *mut Complex64,
5221    X: *mut Complex64,
5222    Y: *mut Complex64,
5223    work: *mut Complex64,
5224    lwork: *const lapackint,
5225    info: *mut lapackint,
5226);
5227
5228// GGHD3
5229define_lapack_ffi!(cgghd3, Cgghd3FnPtr,
5230    compq: *const c_char,
5231    compz: *const c_char,
5232    n: *const lapackint,
5233    ilo: *const lapackint,
5234    ihi: *const lapackint,
5235    A: *mut Complex32,
5236    lda: *const lapackint,
5237    B: *mut Complex32,
5238    ldb: *const lapackint,
5239    Q: *mut Complex32,
5240    ldq: *const lapackint,
5241    Z: *mut Complex32,
5242    ldz: *const lapackint,
5243    work: *mut Complex32,
5244    lwork: *const lapackint,
5245    info: *mut lapackint,
5246);
5247
5248define_lapack_ffi!(dgghd3, Dgghd3FnPtr,
5249    compq: *const c_char,
5250    compz: *const c_char,
5251    n: *const lapackint,
5252    ilo: *const lapackint,
5253    ihi: *const lapackint,
5254    A: *mut f64,
5255    lda: *const lapackint,
5256    B: *mut f64,
5257    ldb: *const lapackint,
5258    Q: *mut f64,
5259    ldq: *const lapackint,
5260    Z: *mut f64,
5261    ldz: *const lapackint,
5262    work: *mut f64,
5263    lwork: *const lapackint,
5264    info: *mut lapackint,
5265);
5266
5267define_lapack_ffi!(sgghd3, Sgghd3FnPtr,
5268    compq: *const c_char,
5269    compz: *const c_char,
5270    n: *const lapackint,
5271    ilo: *const lapackint,
5272    ihi: *const lapackint,
5273    A: *mut f32,
5274    lda: *const lapackint,
5275    B: *mut f32,
5276    ldb: *const lapackint,
5277    Q: *mut f32,
5278    ldq: *const lapackint,
5279    Z: *mut f32,
5280    ldz: *const lapackint,
5281    work: *mut f32,
5282    lwork: *const lapackint,
5283    info: *mut lapackint,
5284);
5285
5286define_lapack_ffi!(zgghd3, Zgghd3FnPtr,
5287    compq: *const c_char,
5288    compz: *const c_char,
5289    n: *const lapackint,
5290    ilo: *const lapackint,
5291    ihi: *const lapackint,
5292    A: *mut Complex64,
5293    lda: *const lapackint,
5294    B: *mut Complex64,
5295    ldb: *const lapackint,
5296    Q: *mut Complex64,
5297    ldq: *const lapackint,
5298    Z: *mut Complex64,
5299    ldz: *const lapackint,
5300    work: *mut Complex64,
5301    lwork: *const lapackint,
5302    info: *mut lapackint,
5303);
5304
5305// GGHRD
5306define_lapack_ffi!(cgghrd, CgghrdFnPtr,
5307    compq: *const c_char,
5308    compz: *const c_char,
5309    n: *const lapackint,
5310    ilo: *const lapackint,
5311    ihi: *const lapackint,
5312    A: *mut Complex32,
5313    lda: *const lapackint,
5314    B: *mut Complex32,
5315    ldb: *const lapackint,
5316    Q: *mut Complex32,
5317    ldq: *const lapackint,
5318    Z: *mut Complex32,
5319    ldz: *const lapackint,
5320    info: *mut lapackint,
5321);
5322
5323define_lapack_ffi!(dgghrd, DgghrdFnPtr,
5324    compq: *const c_char,
5325    compz: *const c_char,
5326    n: *const lapackint,
5327    ilo: *const lapackint,
5328    ihi: *const lapackint,
5329    A: *mut f64,
5330    lda: *const lapackint,
5331    B: *mut f64,
5332    ldb: *const lapackint,
5333    Q: *mut f64,
5334    ldq: *const lapackint,
5335    Z: *mut f64,
5336    ldz: *const lapackint,
5337    info: *mut lapackint,
5338);
5339
5340define_lapack_ffi!(sgghrd, SgghrdFnPtr,
5341    compq: *const c_char,
5342    compz: *const c_char,
5343    n: *const lapackint,
5344    ilo: *const lapackint,
5345    ihi: *const lapackint,
5346    A: *mut f32,
5347    lda: *const lapackint,
5348    B: *mut f32,
5349    ldb: *const lapackint,
5350    Q: *mut f32,
5351    ldq: *const lapackint,
5352    Z: *mut f32,
5353    ldz: *const lapackint,
5354    info: *mut lapackint,
5355);
5356
5357define_lapack_ffi!(zgghrd, ZgghrdFnPtr,
5358    compq: *const c_char,
5359    compz: *const c_char,
5360    n: *const lapackint,
5361    ilo: *const lapackint,
5362    ihi: *const lapackint,
5363    A: *mut Complex64,
5364    lda: *const lapackint,
5365    B: *mut Complex64,
5366    ldb: *const lapackint,
5367    Q: *mut Complex64,
5368    ldq: *const lapackint,
5369    Z: *mut Complex64,
5370    ldz: *const lapackint,
5371    info: *mut lapackint,
5372);
5373
5374// GGLSE
5375define_lapack_ffi!(cgglse, CgglseFnPtr,
5376    m: *const lapackint,
5377    n: *const lapackint,
5378    p: *const lapackint,
5379    A: *mut Complex32,
5380    lda: *const lapackint,
5381    B: *mut Complex32,
5382    ldb: *const lapackint,
5383    C: *mut Complex32,
5384    D: *mut Complex32,
5385    X: *mut Complex32,
5386    work: *mut Complex32,
5387    lwork: *const lapackint,
5388    info: *mut lapackint,
5389);
5390
5391define_lapack_ffi!(dgglse, DgglseFnPtr,
5392    m: *const lapackint,
5393    n: *const lapackint,
5394    p: *const lapackint,
5395    A: *mut f64,
5396    lda: *const lapackint,
5397    B: *mut f64,
5398    ldb: *const lapackint,
5399    C: *mut f64,
5400    D: *mut f64,
5401    X: *mut f64,
5402    work: *mut f64,
5403    lwork: *const lapackint,
5404    info: *mut lapackint,
5405);
5406
5407define_lapack_ffi!(sgglse, SgglseFnPtr,
5408    m: *const lapackint,
5409    n: *const lapackint,
5410    p: *const lapackint,
5411    A: *mut f32,
5412    lda: *const lapackint,
5413    B: *mut f32,
5414    ldb: *const lapackint,
5415    C: *mut f32,
5416    D: *mut f32,
5417    X: *mut f32,
5418    work: *mut f32,
5419    lwork: *const lapackint,
5420    info: *mut lapackint,
5421);
5422
5423define_lapack_ffi!(zgglse, ZgglseFnPtr,
5424    m: *const lapackint,
5425    n: *const lapackint,
5426    p: *const lapackint,
5427    A: *mut Complex64,
5428    lda: *const lapackint,
5429    B: *mut Complex64,
5430    ldb: *const lapackint,
5431    C: *mut Complex64,
5432    D: *mut Complex64,
5433    X: *mut Complex64,
5434    work: *mut Complex64,
5435    lwork: *const lapackint,
5436    info: *mut lapackint,
5437);
5438
5439// GGQRF
5440define_lapack_ffi!(cggqrf, CggqrfFnPtr,
5441    n: *const lapackint,
5442    m: *const lapackint,
5443    p: *const lapackint,
5444    A: *mut Complex32,
5445    lda: *const lapackint,
5446    taua: *mut Complex32,
5447    B: *mut Complex32,
5448    ldb: *const lapackint,
5449    taub: *mut Complex32,
5450    work: *mut Complex32,
5451    lwork: *const lapackint,
5452    info: *mut lapackint,
5453);
5454
5455define_lapack_ffi!(dggqrf, DggqrfFnPtr,
5456    n: *const lapackint,
5457    m: *const lapackint,
5458    p: *const lapackint,
5459    A: *mut f64,
5460    lda: *const lapackint,
5461    taua: *mut f64,
5462    B: *mut f64,
5463    ldb: *const lapackint,
5464    taub: *mut f64,
5465    work: *mut f64,
5466    lwork: *const lapackint,
5467    info: *mut lapackint,
5468);
5469
5470define_lapack_ffi!(sggqrf, SggqrfFnPtr,
5471    n: *const lapackint,
5472    m: *const lapackint,
5473    p: *const lapackint,
5474    A: *mut f32,
5475    lda: *const lapackint,
5476    taua: *mut f32,
5477    B: *mut f32,
5478    ldb: *const lapackint,
5479    taub: *mut f32,
5480    work: *mut f32,
5481    lwork: *const lapackint,
5482    info: *mut lapackint,
5483);
5484
5485define_lapack_ffi!(zggqrf, ZggqrfFnPtr,
5486    n: *const lapackint,
5487    m: *const lapackint,
5488    p: *const lapackint,
5489    A: *mut Complex64,
5490    lda: *const lapackint,
5491    taua: *mut Complex64,
5492    B: *mut Complex64,
5493    ldb: *const lapackint,
5494    taub: *mut Complex64,
5495    work: *mut Complex64,
5496    lwork: *const lapackint,
5497    info: *mut lapackint,
5498);
5499
5500// GGRQF
5501define_lapack_ffi!(cggrqf, CggrqfFnPtr,
5502    m: *const lapackint,
5503    p: *const lapackint,
5504    n: *const lapackint,
5505    A: *mut Complex32,
5506    lda: *const lapackint,
5507    taua: *mut Complex32,
5508    B: *mut Complex32,
5509    ldb: *const lapackint,
5510    taub: *mut Complex32,
5511    work: *mut Complex32,
5512    lwork: *const lapackint,
5513    info: *mut lapackint,
5514);
5515
5516define_lapack_ffi!(dggrqf, DggrqfFnPtr,
5517    m: *const lapackint,
5518    p: *const lapackint,
5519    n: *const lapackint,
5520    A: *mut f64,
5521    lda: *const lapackint,
5522    taua: *mut f64,
5523    B: *mut f64,
5524    ldb: *const lapackint,
5525    taub: *mut f64,
5526    work: *mut f64,
5527    lwork: *const lapackint,
5528    info: *mut lapackint,
5529);
5530
5531define_lapack_ffi!(sggrqf, SggrqfFnPtr,
5532    m: *const lapackint,
5533    p: *const lapackint,
5534    n: *const lapackint,
5535    A: *mut f32,
5536    lda: *const lapackint,
5537    taua: *mut f32,
5538    B: *mut f32,
5539    ldb: *const lapackint,
5540    taub: *mut f32,
5541    work: *mut f32,
5542    lwork: *const lapackint,
5543    info: *mut lapackint,
5544);
5545
5546define_lapack_ffi!(zggrqf, ZggrqfFnPtr,
5547    m: *const lapackint,
5548    p: *const lapackint,
5549    n: *const lapackint,
5550    A: *mut Complex64,
5551    lda: *const lapackint,
5552    taua: *mut Complex64,
5553    B: *mut Complex64,
5554    ldb: *const lapackint,
5555    taub: *mut Complex64,
5556    work: *mut Complex64,
5557    lwork: *const lapackint,
5558    info: *mut lapackint,
5559);
5560
5561// GGSVD
5562define_lapack_ffi!(cggsvd, CggsvdFnPtr,
5563    jobu: *const c_char,
5564    jobv: *const c_char,
5565    jobq: *const c_char,
5566    m: *const lapackint,
5567    n: *const lapackint,
5568    p: *const lapackint,
5569    k: *mut lapackint,
5570    l: *mut lapackint,
5571    a: *mut Complex32,
5572    lda: *const lapackint,
5573    b: *mut Complex32,
5574    ldb: *const lapackint,
5575    alpha: *mut f32,
5576    beta: *mut f32,
5577    u: *mut Complex32,
5578    ldu: *const lapackint,
5579    v: *mut Complex32,
5580    ldv: *const lapackint,
5581    q: *mut Complex32,
5582    ldq: *const lapackint,
5583    work: *mut Complex32,
5584    rwork: *mut f32,
5585    iwork: *mut lapackint,
5586    info: *mut lapackint,
5587);
5588
5589define_lapack_ffi!(dggsvd, DggsvdFnPtr,
5590    jobu: *const c_char,
5591    jobv: *const c_char,
5592    jobq: *const c_char,
5593    m: *const lapackint,
5594    n: *const lapackint,
5595    p: *const lapackint,
5596    k: *mut lapackint,
5597    l: *mut lapackint,
5598    a: *mut f64,
5599    lda: *const lapackint,
5600    b: *mut f64,
5601    ldb: *const lapackint,
5602    alpha: *mut f64,
5603    beta: *mut f64,
5604    u: *mut f64,
5605    ldu: *const lapackint,
5606    v: *mut f64,
5607    ldv: *const lapackint,
5608    q: *mut f64,
5609    ldq: *const lapackint,
5610    work: *mut f64,
5611    iwork: *mut lapackint,
5612    info: *mut lapackint,
5613);
5614
5615define_lapack_ffi!(sggsvd, SggsvdFnPtr,
5616    jobu: *const c_char,
5617    jobv: *const c_char,
5618    jobq: *const c_char,
5619    m: *const lapackint,
5620    n: *const lapackint,
5621    p: *const lapackint,
5622    k: *mut lapackint,
5623    l: *mut lapackint,
5624    a: *mut f32,
5625    lda: *const lapackint,
5626    b: *mut f32,
5627    ldb: *const lapackint,
5628    alpha: *mut f32,
5629    beta: *mut f32,
5630    u: *mut f32,
5631    ldu: *const lapackint,
5632    v: *mut f32,
5633    ldv: *const lapackint,
5634    q: *mut f32,
5635    ldq: *const lapackint,
5636    work: *mut f32,
5637    iwork: *mut lapackint,
5638    info: *mut lapackint,
5639);
5640
5641define_lapack_ffi!(zggsvd, ZggsvdFnPtr,
5642    jobu: *const c_char,
5643    jobv: *const c_char,
5644    jobq: *const c_char,
5645    m: *const lapackint,
5646    n: *const lapackint,
5647    p: *const lapackint,
5648    k: *mut lapackint,
5649    l: *mut lapackint,
5650    a: *mut Complex64,
5651    lda: *const lapackint,
5652    b: *mut Complex64,
5653    ldb: *const lapackint,
5654    alpha: *mut f64,
5655    beta: *mut f64,
5656    u: *mut Complex64,
5657    ldu: *const lapackint,
5658    v: *mut Complex64,
5659    ldv: *const lapackint,
5660    q: *mut Complex64,
5661    ldq: *const lapackint,
5662    work: *mut Complex64,
5663    rwork: *mut f64,
5664    iwork: *mut lapackint,
5665    info: *mut lapackint,
5666);
5667
5668// GGSVD3
5669define_lapack_ffi!(cggsvd3, Cggsvd3FnPtr,
5670    jobu: *const c_char,
5671    jobv: *const c_char,
5672    jobq: *const c_char,
5673    m: *const lapackint,
5674    n: *const lapackint,
5675    p: *const lapackint,
5676    k: *mut lapackint,
5677    l: *mut lapackint,
5678    A: *mut Complex32,
5679    lda: *const lapackint,
5680    B: *mut Complex32,
5681    ldb: *const lapackint,
5682    alpha: *mut f32,
5683    beta: *mut f32,
5684    U: *mut Complex32,
5685    ldu: *const lapackint,
5686    V: *mut Complex32,
5687    ldv: *const lapackint,
5688    Q: *mut Complex32,
5689    ldq: *const lapackint,
5690    work: *mut Complex32,
5691    lwork: *const lapackint,
5692    rwork: *mut f32,
5693    iwork: *mut lapackint,
5694    info: *mut lapackint,
5695);
5696
5697define_lapack_ffi!(dggsvd3, Dggsvd3FnPtr,
5698    jobu: *const c_char,
5699    jobv: *const c_char,
5700    jobq: *const c_char,
5701    m: *const lapackint,
5702    n: *const lapackint,
5703    p: *const lapackint,
5704    k: *mut lapackint,
5705    l: *mut lapackint,
5706    A: *mut f64,
5707    lda: *const lapackint,
5708    B: *mut f64,
5709    ldb: *const lapackint,
5710    alpha: *mut f64,
5711    beta: *mut f64,
5712    U: *mut f64,
5713    ldu: *const lapackint,
5714    V: *mut f64,
5715    ldv: *const lapackint,
5716    Q: *mut f64,
5717    ldq: *const lapackint,
5718    work: *mut f64,
5719    lwork: *const lapackint,
5720    iwork: *mut lapackint,
5721    info: *mut lapackint,
5722);
5723
5724define_lapack_ffi!(sggsvd3, Sggsvd3FnPtr,
5725    jobu: *const c_char,
5726    jobv: *const c_char,
5727    jobq: *const c_char,
5728    m: *const lapackint,
5729    n: *const lapackint,
5730    p: *const lapackint,
5731    k: *mut lapackint,
5732    l: *mut lapackint,
5733    A: *mut f32,
5734    lda: *const lapackint,
5735    B: *mut f32,
5736    ldb: *const lapackint,
5737    alpha: *mut f32,
5738    beta: *mut f32,
5739    U: *mut f32,
5740    ldu: *const lapackint,
5741    V: *mut f32,
5742    ldv: *const lapackint,
5743    Q: *mut f32,
5744    ldq: *const lapackint,
5745    work: *mut f32,
5746    lwork: *const lapackint,
5747    iwork: *mut lapackint,
5748    info: *mut lapackint,
5749);
5750
5751define_lapack_ffi!(zggsvd3, Zggsvd3FnPtr,
5752    jobu: *const c_char,
5753    jobv: *const c_char,
5754    jobq: *const c_char,
5755    m: *const lapackint,
5756    n: *const lapackint,
5757    p: *const lapackint,
5758    k: *mut lapackint,
5759    l: *mut lapackint,
5760    A: *mut Complex64,
5761    lda: *const lapackint,
5762    B: *mut Complex64,
5763    ldb: *const lapackint,
5764    alpha: *mut f64,
5765    beta: *mut f64,
5766    U: *mut Complex64,
5767    ldu: *const lapackint,
5768    V: *mut Complex64,
5769    ldv: *const lapackint,
5770    Q: *mut Complex64,
5771    ldq: *const lapackint,
5772    work: *mut Complex64,
5773    lwork: *const lapackint,
5774    rwork: *mut f64,
5775    iwork: *mut lapackint,
5776    info: *mut lapackint,
5777);
5778
5779// GGSVP
5780define_lapack_ffi!(cggsvp, CggsvpFnPtr,
5781    jobu: *const c_char,
5782    jobv: *const c_char,
5783    jobq: *const c_char,
5784    m: *const lapackint,
5785    p: *const lapackint,
5786    n: *const lapackint,
5787    a: *mut Complex32,
5788    lda: *const lapackint,
5789    b: *mut Complex32,
5790    ldb: *const lapackint,
5791    tola: *mut f32,
5792    tolb: *mut f32,
5793    k: *mut lapackint,
5794    l: *mut lapackint,
5795    u: *mut Complex32,
5796    ldu: *const lapackint,
5797    v: *mut Complex32,
5798    ldv: *const lapackint,
5799    q: *mut Complex32,
5800    ldq: *const lapackint,
5801    iwork: *mut lapackint,
5802    rwork: *mut f32,
5803    tau: *mut Complex32,
5804    work: *mut Complex32,
5805    info: *mut lapackint,
5806);
5807
5808define_lapack_ffi!(dggsvp, DggsvpFnPtr,
5809    jobu: *const c_char,
5810    jobv: *const c_char,
5811    jobq: *const c_char,
5812    m: *const lapackint,
5813    p: *const lapackint,
5814    n: *const lapackint,
5815    a: *mut f64,
5816    lda: *const lapackint,
5817    b: *mut f64,
5818    ldb: *const lapackint,
5819    tola: *mut f64,
5820    tolb: *mut f64,
5821    k: *mut lapackint,
5822    l: *mut lapackint,
5823    u: *mut f64,
5824    ldu: *const lapackint,
5825    v: *mut f64,
5826    ldv: *const lapackint,
5827    q: *mut f64,
5828    ldq: *const lapackint,
5829    iwork: *mut lapackint,
5830    tau: *mut f64,
5831    work: *mut f64,
5832    info: *mut lapackint,
5833);
5834
5835define_lapack_ffi!(sggsvp, SggsvpFnPtr,
5836    jobu: *const c_char,
5837    jobv: *const c_char,
5838    jobq: *const c_char,
5839    m: *const lapackint,
5840    p: *const lapackint,
5841    n: *const lapackint,
5842    a: *mut f32,
5843    lda: *const lapackint,
5844    b: *mut f32,
5845    ldb: *const lapackint,
5846    tola: *mut f32,
5847    tolb: *mut f32,
5848    k: *mut lapackint,
5849    l: *mut lapackint,
5850    u: *mut f32,
5851    ldu: *const lapackint,
5852    v: *mut f32,
5853    ldv: *const lapackint,
5854    q: *mut f32,
5855    ldq: *const lapackint,
5856    iwork: *mut lapackint,
5857    tau: *mut f32,
5858    work: *mut f32,
5859    info: *mut lapackint,
5860);
5861
5862define_lapack_ffi!(zggsvp, ZggsvpFnPtr,
5863    jobu: *const c_char,
5864    jobv: *const c_char,
5865    jobq: *const c_char,
5866    m: *const lapackint,
5867    p: *const lapackint,
5868    n: *const lapackint,
5869    a: *mut Complex64,
5870    lda: *const lapackint,
5871    b: *mut Complex64,
5872    ldb: *const lapackint,
5873    tola: *mut f64,
5874    tolb: *mut f64,
5875    k: *mut lapackint,
5876    l: *mut lapackint,
5877    u: *mut Complex64,
5878    ldu: *const lapackint,
5879    v: *mut Complex64,
5880    ldv: *const lapackint,
5881    q: *mut Complex64,
5882    ldq: *const lapackint,
5883    iwork: *mut lapackint,
5884    rwork: *mut f64,
5885    tau: *mut Complex64,
5886    work: *mut Complex64,
5887    info: *mut lapackint,
5888);
5889
5890// GGSVP3
5891define_lapack_ffi!(cggsvp3, Cggsvp3FnPtr,
5892    jobu: *const c_char,
5893    jobv: *const c_char,
5894    jobq: *const c_char,
5895    m: *const lapackint,
5896    p: *const lapackint,
5897    n: *const lapackint,
5898    A: *mut Complex32,
5899    lda: *const lapackint,
5900    B: *mut Complex32,
5901    ldb: *const lapackint,
5902    tola: *const f32,
5903    tolb: *const f32,
5904    k: *mut lapackint,
5905    l: *mut lapackint,
5906    U: *mut Complex32,
5907    ldu: *const lapackint,
5908    V: *mut Complex32,
5909    ldv: *const lapackint,
5910    Q: *mut Complex32,
5911    ldq: *const lapackint,
5912    iwork: *mut lapackint,
5913    rwork: *mut f32,
5914    tau: *mut Complex32,
5915    work: *mut Complex32,
5916    lwork: *const lapackint,
5917    info: *mut lapackint,
5918);
5919
5920define_lapack_ffi!(dggsvp3, Dggsvp3FnPtr,
5921    jobu: *const c_char,
5922    jobv: *const c_char,
5923    jobq: *const c_char,
5924    m: *const lapackint,
5925    p: *const lapackint,
5926    n: *const lapackint,
5927    A: *mut f64,
5928    lda: *const lapackint,
5929    B: *mut f64,
5930    ldb: *const lapackint,
5931    tola: *const f64,
5932    tolb: *const f64,
5933    k: *mut lapackint,
5934    l: *mut lapackint,
5935    U: *mut f64,
5936    ldu: *const lapackint,
5937    V: *mut f64,
5938    ldv: *const lapackint,
5939    Q: *mut f64,
5940    ldq: *const lapackint,
5941    iwork: *mut lapackint,
5942    tau: *mut f64,
5943    work: *mut f64,
5944    lwork: *const lapackint,
5945    info: *mut lapackint,
5946);
5947
5948define_lapack_ffi!(sggsvp3, Sggsvp3FnPtr,
5949    jobu: *const c_char,
5950    jobv: *const c_char,
5951    jobq: *const c_char,
5952    m: *const lapackint,
5953    p: *const lapackint,
5954    n: *const lapackint,
5955    A: *mut f32,
5956    lda: *const lapackint,
5957    B: *mut f32,
5958    ldb: *const lapackint,
5959    tola: *const f32,
5960    tolb: *const f32,
5961    k: *mut lapackint,
5962    l: *mut lapackint,
5963    U: *mut f32,
5964    ldu: *const lapackint,
5965    V: *mut f32,
5966    ldv: *const lapackint,
5967    Q: *mut f32,
5968    ldq: *const lapackint,
5969    iwork: *mut lapackint,
5970    tau: *mut f32,
5971    work: *mut f32,
5972    lwork: *const lapackint,
5973    info: *mut lapackint,
5974);
5975
5976define_lapack_ffi!(zggsvp3, Zggsvp3FnPtr,
5977    jobu: *const c_char,
5978    jobv: *const c_char,
5979    jobq: *const c_char,
5980    m: *const lapackint,
5981    p: *const lapackint,
5982    n: *const lapackint,
5983    A: *mut Complex64,
5984    lda: *const lapackint,
5985    B: *mut Complex64,
5986    ldb: *const lapackint,
5987    tola: *const f64,
5988    tolb: *const f64,
5989    k: *mut lapackint,
5990    l: *mut lapackint,
5991    U: *mut Complex64,
5992    ldu: *const lapackint,
5993    V: *mut Complex64,
5994    ldv: *const lapackint,
5995    Q: *mut Complex64,
5996    ldq: *const lapackint,
5997    iwork: *mut lapackint,
5998    rwork: *mut f64,
5999    tau: *mut Complex64,
6000    work: *mut Complex64,
6001    lwork: *const lapackint,
6002    info: *mut lapackint,
6003);
6004
6005// GTCON
6006define_lapack_ffi!(cgtcon, CgtconFnPtr,
6007    norm: *const c_char,
6008    n: *const lapackint,
6009    DL: *const Complex32,
6010    D: *const Complex32,
6011    DU: *const Complex32,
6012    DU2: *const Complex32,
6013    ipiv: *const lapackint,
6014    anorm: *const f32,
6015    rcond: *mut f32,
6016    work: *mut Complex32,
6017    info: *mut lapackint,
6018);
6019
6020define_lapack_ffi!(dgtcon, DgtconFnPtr,
6021    norm: *const c_char,
6022    n: *const lapackint,
6023    DL: *const f64,
6024    D: *const f64,
6025    DU: *const f64,
6026    DU2: *const f64,
6027    ipiv: *const lapackint,
6028    anorm: *const f64,
6029    rcond: *mut f64,
6030    work: *mut f64,
6031    iwork: *mut lapackint,
6032    info: *mut lapackint,
6033);
6034
6035define_lapack_ffi!(sgtcon, SgtconFnPtr,
6036    norm: *const c_char,
6037    n: *const lapackint,
6038    DL: *const f32,
6039    D: *const f32,
6040    DU: *const f32,
6041    DU2: *const f32,
6042    ipiv: *const lapackint,
6043    anorm: *const f32,
6044    rcond: *mut f32,
6045    work: *mut f32,
6046    iwork: *mut lapackint,
6047    info: *mut lapackint,
6048);
6049
6050define_lapack_ffi!(zgtcon, ZgtconFnPtr,
6051    norm: *const c_char,
6052    n: *const lapackint,
6053    DL: *const Complex64,
6054    D: *const Complex64,
6055    DU: *const Complex64,
6056    DU2: *const Complex64,
6057    ipiv: *const lapackint,
6058    anorm: *const f64,
6059    rcond: *mut f64,
6060    work: *mut Complex64,
6061    info: *mut lapackint,
6062);
6063
6064// GTRFS
6065define_lapack_ffi!(cgtrfs, CgtrfsFnPtr,
6066    trans: *const c_char,
6067    n: *const lapackint,
6068    nrhs: *const lapackint,
6069    DL: *const Complex32,
6070    D: *const Complex32,
6071    DU: *const Complex32,
6072    DLF: *const Complex32,
6073    DF: *const Complex32,
6074    DUF: *const Complex32,
6075    DU2: *const Complex32,
6076    ipiv: *const lapackint,
6077    B: *const Complex32,
6078    ldb: *const lapackint,
6079    X: *mut Complex32,
6080    ldx: *const lapackint,
6081    ferr: *mut f32,
6082    berr: *mut f32,
6083    work: *mut Complex32,
6084    rwork: *mut f32,
6085    info: *mut lapackint,
6086);
6087
6088define_lapack_ffi!(dgtrfs, DgtrfsFnPtr,
6089    trans: *const c_char,
6090    n: *const lapackint,
6091    nrhs: *const lapackint,
6092    DL: *const f64,
6093    D: *const f64,
6094    DU: *const f64,
6095    DLF: *const f64,
6096    DF: *const f64,
6097    DUF: *const f64,
6098    DU2: *const f64,
6099    ipiv: *const lapackint,
6100    B: *const f64,
6101    ldb: *const lapackint,
6102    X: *mut f64,
6103    ldx: *const lapackint,
6104    ferr: *mut f64,
6105    berr: *mut f64,
6106    work: *mut f64,
6107    iwork: *mut lapackint,
6108    info: *mut lapackint,
6109);
6110
6111define_lapack_ffi!(sgtrfs, SgtrfsFnPtr,
6112    trans: *const c_char,
6113    n: *const lapackint,
6114    nrhs: *const lapackint,
6115    DL: *const f32,
6116    D: *const f32,
6117    DU: *const f32,
6118    DLF: *const f32,
6119    DF: *const f32,
6120    DUF: *const f32,
6121    DU2: *const f32,
6122    ipiv: *const lapackint,
6123    B: *const f32,
6124    ldb: *const lapackint,
6125    X: *mut f32,
6126    ldx: *const lapackint,
6127    ferr: *mut f32,
6128    berr: *mut f32,
6129    work: *mut f32,
6130    iwork: *mut lapackint,
6131    info: *mut lapackint,
6132);
6133
6134define_lapack_ffi!(zgtrfs, ZgtrfsFnPtr,
6135    trans: *const c_char,
6136    n: *const lapackint,
6137    nrhs: *const lapackint,
6138    DL: *const Complex64,
6139    D: *const Complex64,
6140    DU: *const Complex64,
6141    DLF: *const Complex64,
6142    DF: *const Complex64,
6143    DUF: *const Complex64,
6144    DU2: *const Complex64,
6145    ipiv: *const lapackint,
6146    B: *const Complex64,
6147    ldb: *const lapackint,
6148    X: *mut Complex64,
6149    ldx: *const lapackint,
6150    ferr: *mut f64,
6151    berr: *mut f64,
6152    work: *mut Complex64,
6153    rwork: *mut f64,
6154    info: *mut lapackint,
6155);
6156
6157// GTSV
6158define_lapack_ffi!(cgtsv, CgtsvFnPtr,
6159    n: *const lapackint,
6160    nrhs: *const lapackint,
6161    DL: *mut Complex32,
6162    D: *mut Complex32,
6163    DU: *mut Complex32,
6164    B: *mut Complex32,
6165    ldb: *const lapackint,
6166    info: *mut lapackint,
6167);
6168
6169define_lapack_ffi!(dgtsv, DgtsvFnPtr,
6170    n: *const lapackint,
6171    nrhs: *const lapackint,
6172    DL: *mut f64,
6173    D: *mut f64,
6174    DU: *mut f64,
6175    B: *mut f64,
6176    ldb: *const lapackint,
6177    info: *mut lapackint,
6178);
6179
6180define_lapack_ffi!(sgtsv, SgtsvFnPtr,
6181    n: *const lapackint,
6182    nrhs: *const lapackint,
6183    DL: *mut f32,
6184    D: *mut f32,
6185    DU: *mut f32,
6186    B: *mut f32,
6187    ldb: *const lapackint,
6188    info: *mut lapackint,
6189);
6190
6191define_lapack_ffi!(zgtsv, ZgtsvFnPtr,
6192    n: *const lapackint,
6193    nrhs: *const lapackint,
6194    DL: *mut Complex64,
6195    D: *mut Complex64,
6196    DU: *mut Complex64,
6197    B: *mut Complex64,
6198    ldb: *const lapackint,
6199    info: *mut lapackint,
6200);
6201
6202// GTSVX
6203define_lapack_ffi!(cgtsvx, CgtsvxFnPtr,
6204    fact: *const c_char,
6205    trans: *const c_char,
6206    n: *const lapackint,
6207    nrhs: *const lapackint,
6208    DL: *const Complex32,
6209    D: *const Complex32,
6210    DU: *const Complex32,
6211    DLF: *mut Complex32,
6212    DF: *mut Complex32,
6213    DUF: *mut Complex32,
6214    DU2: *mut Complex32,
6215    ipiv: *mut lapackint,
6216    B: *const Complex32,
6217    ldb: *const lapackint,
6218    X: *mut Complex32,
6219    ldx: *const lapackint,
6220    rcond: *mut f32,
6221    ferr: *mut f32,
6222    berr: *mut f32,
6223    work: *mut Complex32,
6224    rwork: *mut f32,
6225    info: *mut lapackint,
6226);
6227
6228define_lapack_ffi!(dgtsvx, DgtsvxFnPtr,
6229    fact: *const c_char,
6230    trans: *const c_char,
6231    n: *const lapackint,
6232    nrhs: *const lapackint,
6233    DL: *const f64,
6234    D: *const f64,
6235    DU: *const f64,
6236    DLF: *mut f64,
6237    DF: *mut f64,
6238    DUF: *mut f64,
6239    DU2: *mut f64,
6240    ipiv: *mut lapackint,
6241    B: *const f64,
6242    ldb: *const lapackint,
6243    X: *mut f64,
6244    ldx: *const lapackint,
6245    rcond: *mut f64,
6246    ferr: *mut f64,
6247    berr: *mut f64,
6248    work: *mut f64,
6249    iwork: *mut lapackint,
6250    info: *mut lapackint,
6251);
6252
6253define_lapack_ffi!(sgtsvx, SgtsvxFnPtr,
6254    fact: *const c_char,
6255    trans: *const c_char,
6256    n: *const lapackint,
6257    nrhs: *const lapackint,
6258    DL: *const f32,
6259    D: *const f32,
6260    DU: *const f32,
6261    DLF: *mut f32,
6262    DF: *mut f32,
6263    DUF: *mut f32,
6264    DU2: *mut f32,
6265    ipiv: *mut lapackint,
6266    B: *const f32,
6267    ldb: *const lapackint,
6268    X: *mut f32,
6269    ldx: *const lapackint,
6270    rcond: *mut f32,
6271    ferr: *mut f32,
6272    berr: *mut f32,
6273    work: *mut f32,
6274    iwork: *mut lapackint,
6275    info: *mut lapackint,
6276);
6277
6278define_lapack_ffi!(zgtsvx, ZgtsvxFnPtr,
6279    fact: *const c_char,
6280    trans: *const c_char,
6281    n: *const lapackint,
6282    nrhs: *const lapackint,
6283    DL: *const Complex64,
6284    D: *const Complex64,
6285    DU: *const Complex64,
6286    DLF: *mut Complex64,
6287    DF: *mut Complex64,
6288    DUF: *mut Complex64,
6289    DU2: *mut Complex64,
6290    ipiv: *mut lapackint,
6291    B: *const Complex64,
6292    ldb: *const lapackint,
6293    X: *mut Complex64,
6294    ldx: *const lapackint,
6295    rcond: *mut f64,
6296    ferr: *mut f64,
6297    berr: *mut f64,
6298    work: *mut Complex64,
6299    rwork: *mut f64,
6300    info: *mut lapackint,
6301);
6302
6303// GTTRF
6304define_lapack_ffi!(cgttrf, CgttrfFnPtr,
6305    n: *const lapackint,
6306    DL: *mut Complex32,
6307    D: *mut Complex32,
6308    DU: *mut Complex32,
6309    DU2: *mut Complex32,
6310    ipiv: *mut lapackint,
6311    info: *mut lapackint,
6312);
6313
6314define_lapack_ffi!(dgttrf, DgttrfFnPtr,
6315    n: *const lapackint,
6316    DL: *mut f64,
6317    D: *mut f64,
6318    DU: *mut f64,
6319    DU2: *mut f64,
6320    ipiv: *mut lapackint,
6321    info: *mut lapackint,
6322);
6323
6324define_lapack_ffi!(sgttrf, SgttrfFnPtr,
6325    n: *const lapackint,
6326    DL: *mut f32,
6327    D: *mut f32,
6328    DU: *mut f32,
6329    DU2: *mut f32,
6330    ipiv: *mut lapackint,
6331    info: *mut lapackint,
6332);
6333
6334define_lapack_ffi!(zgttrf, ZgttrfFnPtr,
6335    n: *const lapackint,
6336    DL: *mut Complex64,
6337    D: *mut Complex64,
6338    DU: *mut Complex64,
6339    DU2: *mut Complex64,
6340    ipiv: *mut lapackint,
6341    info: *mut lapackint,
6342);
6343
6344// GTTRS
6345define_lapack_ffi!(cgttrs, CgttrsFnPtr,
6346    trans: *const c_char,
6347    n: *const lapackint,
6348    nrhs: *const lapackint,
6349    DL: *const Complex32,
6350    D: *const Complex32,
6351    DU: *const Complex32,
6352    DU2: *const Complex32,
6353    ipiv: *const lapackint,
6354    B: *mut Complex32,
6355    ldb: *const lapackint,
6356    info: *mut lapackint,
6357);
6358
6359define_lapack_ffi!(dgttrs, DgttrsFnPtr,
6360    trans: *const c_char,
6361    n: *const lapackint,
6362    nrhs: *const lapackint,
6363    DL: *const f64,
6364    D: *const f64,
6365    DU: *const f64,
6366    DU2: *const f64,
6367    ipiv: *const lapackint,
6368    B: *mut f64,
6369    ldb: *const lapackint,
6370    info: *mut lapackint,
6371);
6372
6373define_lapack_ffi!(sgttrs, SgttrsFnPtr,
6374    trans: *const c_char,
6375    n: *const lapackint,
6376    nrhs: *const lapackint,
6377    DL: *const f32,
6378    D: *const f32,
6379    DU: *const f32,
6380    DU2: *const f32,
6381    ipiv: *const lapackint,
6382    B: *mut f32,
6383    ldb: *const lapackint,
6384    info: *mut lapackint,
6385);
6386
6387define_lapack_ffi!(zgttrs, ZgttrsFnPtr,
6388    trans: *const c_char,
6389    n: *const lapackint,
6390    nrhs: *const lapackint,
6391    DL: *const Complex64,
6392    D: *const Complex64,
6393    DU: *const Complex64,
6394    DU2: *const Complex64,
6395    ipiv: *const lapackint,
6396    B: *mut Complex64,
6397    ldb: *const lapackint,
6398    info: *mut lapackint,
6399);
6400
6401// HBEV
6402define_lapack_ffi!(chbev, ChbevFnPtr,
6403    jobz: *const c_char,
6404    uplo: *const c_char,
6405    n: *const lapackint,
6406    kd: *const lapackint,
6407    AB: *mut Complex32,
6408    ldab: *const lapackint,
6409    W: *mut f32,
6410    Z: *mut Complex32,
6411    ldz: *const lapackint,
6412    work: *mut Complex32,
6413    rwork: *mut f32,
6414    info: *mut lapackint,
6415);
6416
6417define_lapack_ffi!(zhbev, ZhbevFnPtr,
6418    jobz: *const c_char,
6419    uplo: *const c_char,
6420    n: *const lapackint,
6421    kd: *const lapackint,
6422    AB: *mut Complex64,
6423    ldab: *const lapackint,
6424    W: *mut f64,
6425    Z: *mut Complex64,
6426    ldz: *const lapackint,
6427    work: *mut Complex64,
6428    rwork: *mut f64,
6429    info: *mut lapackint,
6430);
6431
6432// HBEV_2STAGE
6433define_lapack_ffi!(chbev_2stage, Chbev_2stageFnPtr,
6434    jobz: *const c_char,
6435    uplo: *const c_char,
6436    n: *const lapackint,
6437    kd: *const lapackint,
6438    AB: *mut Complex32,
6439    ldab: *const lapackint,
6440    W: *mut f32,
6441    Z: *mut Complex32,
6442    ldz: *const lapackint,
6443    work: *mut Complex32,
6444    lwork: *const lapackint,
6445    rwork: *mut f32,
6446    info: *mut lapackint,
6447);
6448
6449define_lapack_ffi!(zhbev_2stage, Zhbev_2stageFnPtr,
6450    jobz: *const c_char,
6451    uplo: *const c_char,
6452    n: *const lapackint,
6453    kd: *const lapackint,
6454    AB: *mut Complex64,
6455    ldab: *const lapackint,
6456    W: *mut f64,
6457    Z: *mut Complex64,
6458    ldz: *const lapackint,
6459    work: *mut Complex64,
6460    lwork: *const lapackint,
6461    rwork: *mut f64,
6462    info: *mut lapackint,
6463);
6464
6465// HBEVD
6466define_lapack_ffi!(chbevd, ChbevdFnPtr,
6467    jobz: *const c_char,
6468    uplo: *const c_char,
6469    n: *const lapackint,
6470    kd: *const lapackint,
6471    AB: *mut Complex32,
6472    ldab: *const lapackint,
6473    W: *mut f32,
6474    Z: *mut Complex32,
6475    ldz: *const lapackint,
6476    work: *mut Complex32,
6477    lwork: *const lapackint,
6478    rwork: *mut f32,
6479    lrwork: *const lapackint,
6480    iwork: *mut lapackint,
6481    liwork: *const lapackint,
6482    info: *mut lapackint,
6483);
6484
6485define_lapack_ffi!(zhbevd, ZhbevdFnPtr,
6486    jobz: *const c_char,
6487    uplo: *const c_char,
6488    n: *const lapackint,
6489    kd: *const lapackint,
6490    AB: *mut Complex64,
6491    ldab: *const lapackint,
6492    W: *mut f64,
6493    Z: *mut Complex64,
6494    ldz: *const lapackint,
6495    work: *mut Complex64,
6496    lwork: *const lapackint,
6497    rwork: *mut f64,
6498    lrwork: *const lapackint,
6499    iwork: *mut lapackint,
6500    liwork: *const lapackint,
6501    info: *mut lapackint,
6502);
6503
6504// HBEVD_2STAGE
6505define_lapack_ffi!(chbevd_2stage, Chbevd_2stageFnPtr,
6506    jobz: *const c_char,
6507    uplo: *const c_char,
6508    n: *const lapackint,
6509    kd: *const lapackint,
6510    AB: *mut Complex32,
6511    ldab: *const lapackint,
6512    W: *mut f32,
6513    Z: *mut Complex32,
6514    ldz: *const lapackint,
6515    work: *mut Complex32,
6516    lwork: *const lapackint,
6517    rwork: *mut f32,
6518    lrwork: *const lapackint,
6519    iwork: *mut lapackint,
6520    liwork: *const lapackint,
6521    info: *mut lapackint,
6522);
6523
6524define_lapack_ffi!(zhbevd_2stage, Zhbevd_2stageFnPtr,
6525    jobz: *const c_char,
6526    uplo: *const c_char,
6527    n: *const lapackint,
6528    kd: *const lapackint,
6529    AB: *mut Complex64,
6530    ldab: *const lapackint,
6531    W: *mut f64,
6532    Z: *mut Complex64,
6533    ldz: *const lapackint,
6534    work: *mut Complex64,
6535    lwork: *const lapackint,
6536    rwork: *mut f64,
6537    lrwork: *const lapackint,
6538    iwork: *mut lapackint,
6539    liwork: *const lapackint,
6540    info: *mut lapackint,
6541);
6542
6543// HBEVX
6544define_lapack_ffi!(chbevx, ChbevxFnPtr,
6545    jobz: *const c_char,
6546    range: *const c_char,
6547    uplo: *const c_char,
6548    n: *const lapackint,
6549    kd: *const lapackint,
6550    AB: *mut Complex32,
6551    ldab: *const lapackint,
6552    Q: *mut Complex32,
6553    ldq: *const lapackint,
6554    vl: *const f32,
6555    vu: *const f32,
6556    il: *const lapackint,
6557    iu: *const lapackint,
6558    abstol: *const f32,
6559    m: *mut lapackint,
6560    W: *mut f32,
6561    Z: *mut Complex32,
6562    ldz: *const lapackint,
6563    work: *mut Complex32,
6564    rwork: *mut f32,
6565    iwork: *mut lapackint,
6566    IFAIL: *mut lapackint,
6567    info: *mut lapackint,
6568);
6569
6570define_lapack_ffi!(zhbevx, ZhbevxFnPtr,
6571    jobz: *const c_char,
6572    range: *const c_char,
6573    uplo: *const c_char,
6574    n: *const lapackint,
6575    kd: *const lapackint,
6576    AB: *mut Complex64,
6577    ldab: *const lapackint,
6578    Q: *mut Complex64,
6579    ldq: *const lapackint,
6580    vl: *const f64,
6581    vu: *const f64,
6582    il: *const lapackint,
6583    iu: *const lapackint,
6584    abstol: *const f64,
6585    m: *mut lapackint,
6586    W: *mut f64,
6587    Z: *mut Complex64,
6588    ldz: *const lapackint,
6589    work: *mut Complex64,
6590    rwork: *mut f64,
6591    iwork: *mut lapackint,
6592    IFAIL: *mut lapackint,
6593    info: *mut lapackint,
6594);
6595
6596// HBEVX_2STAGE
6597define_lapack_ffi!(chbevx_2stage, Chbevx_2stageFnPtr,
6598    jobz: *const c_char,
6599    range: *const c_char,
6600    uplo: *const c_char,
6601    n: *const lapackint,
6602    kd: *const lapackint,
6603    AB: *mut Complex32,
6604    ldab: *const lapackint,
6605    Q: *mut Complex32,
6606    ldq: *const lapackint,
6607    vl: *const f32,
6608    vu: *const f32,
6609    il: *const lapackint,
6610    iu: *const lapackint,
6611    abstol: *const f32,
6612    m: *mut lapackint,
6613    W: *mut f32,
6614    Z: *mut Complex32,
6615    ldz: *const lapackint,
6616    work: *mut Complex32,
6617    lwork: *const lapackint,
6618    rwork: *mut f32,
6619    iwork: *mut lapackint,
6620    IFAIL: *mut lapackint,
6621    info: *mut lapackint,
6622);
6623
6624define_lapack_ffi!(zhbevx_2stage, Zhbevx_2stageFnPtr,
6625    jobz: *const c_char,
6626    range: *const c_char,
6627    uplo: *const c_char,
6628    n: *const lapackint,
6629    kd: *const lapackint,
6630    AB: *mut Complex64,
6631    ldab: *const lapackint,
6632    Q: *mut Complex64,
6633    ldq: *const lapackint,
6634    vl: *const f64,
6635    vu: *const f64,
6636    il: *const lapackint,
6637    iu: *const lapackint,
6638    abstol: *const f64,
6639    m: *mut lapackint,
6640    W: *mut f64,
6641    Z: *mut Complex64,
6642    ldz: *const lapackint,
6643    work: *mut Complex64,
6644    lwork: *const lapackint,
6645    rwork: *mut f64,
6646    iwork: *mut lapackint,
6647    IFAIL: *mut lapackint,
6648    info: *mut lapackint,
6649);
6650
6651// HBGST
6652define_lapack_ffi!(chbgst, ChbgstFnPtr,
6653    vect: *const c_char,
6654    uplo: *const c_char,
6655    n: *const lapackint,
6656    ka: *const lapackint,
6657    kb: *const lapackint,
6658    AB: *mut Complex32,
6659    ldab: *const lapackint,
6660    BB: *const Complex32,
6661    ldbb: *const lapackint,
6662    X: *mut Complex32,
6663    ldx: *const lapackint,
6664    work: *mut Complex32,
6665    rwork: *mut f32,
6666    info: *mut lapackint,
6667);
6668
6669define_lapack_ffi!(zhbgst, ZhbgstFnPtr,
6670    vect: *const c_char,
6671    uplo: *const c_char,
6672    n: *const lapackint,
6673    ka: *const lapackint,
6674    kb: *const lapackint,
6675    AB: *mut Complex64,
6676    ldab: *const lapackint,
6677    BB: *const Complex64,
6678    ldbb: *const lapackint,
6679    X: *mut Complex64,
6680    ldx: *const lapackint,
6681    work: *mut Complex64,
6682    rwork: *mut f64,
6683    info: *mut lapackint,
6684);
6685
6686// HBGV
6687define_lapack_ffi!(chbgv, ChbgvFnPtr,
6688    jobz: *const c_char,
6689    uplo: *const c_char,
6690    n: *const lapackint,
6691    ka: *const lapackint,
6692    kb: *const lapackint,
6693    AB: *mut Complex32,
6694    ldab: *const lapackint,
6695    BB: *mut Complex32,
6696    ldbb: *const lapackint,
6697    W: *mut f32,
6698    Z: *mut Complex32,
6699    ldz: *const lapackint,
6700    work: *mut Complex32,
6701    rwork: *mut f32,
6702    info: *mut lapackint,
6703);
6704
6705define_lapack_ffi!(zhbgv, ZhbgvFnPtr,
6706    jobz: *const c_char,
6707    uplo: *const c_char,
6708    n: *const lapackint,
6709    ka: *const lapackint,
6710    kb: *const lapackint,
6711    AB: *mut Complex64,
6712    ldab: *const lapackint,
6713    BB: *mut Complex64,
6714    ldbb: *const lapackint,
6715    W: *mut f64,
6716    Z: *mut Complex64,
6717    ldz: *const lapackint,
6718    work: *mut Complex64,
6719    rwork: *mut f64,
6720    info: *mut lapackint,
6721);
6722
6723// HBGVD
6724define_lapack_ffi!(chbgvd, ChbgvdFnPtr,
6725    jobz: *const c_char,
6726    uplo: *const c_char,
6727    n: *const lapackint,
6728    ka: *const lapackint,
6729    kb: *const lapackint,
6730    AB: *mut Complex32,
6731    ldab: *const lapackint,
6732    BB: *mut Complex32,
6733    ldbb: *const lapackint,
6734    W: *mut f32,
6735    Z: *mut Complex32,
6736    ldz: *const lapackint,
6737    work: *mut Complex32,
6738    lwork: *const lapackint,
6739    rwork: *mut f32,
6740    lrwork: *const lapackint,
6741    iwork: *mut lapackint,
6742    liwork: *const lapackint,
6743    info: *mut lapackint,
6744);
6745
6746define_lapack_ffi!(zhbgvd, ZhbgvdFnPtr,
6747    jobz: *const c_char,
6748    uplo: *const c_char,
6749    n: *const lapackint,
6750    ka: *const lapackint,
6751    kb: *const lapackint,
6752    AB: *mut Complex64,
6753    ldab: *const lapackint,
6754    BB: *mut Complex64,
6755    ldbb: *const lapackint,
6756    W: *mut f64,
6757    Z: *mut Complex64,
6758    ldz: *const lapackint,
6759    work: *mut Complex64,
6760    lwork: *const lapackint,
6761    rwork: *mut f64,
6762    lrwork: *const lapackint,
6763    iwork: *mut lapackint,
6764    liwork: *const lapackint,
6765    info: *mut lapackint,
6766);
6767
6768// HBGVX
6769define_lapack_ffi!(chbgvx, ChbgvxFnPtr,
6770    jobz: *const c_char,
6771    range: *const c_char,
6772    uplo: *const c_char,
6773    n: *const lapackint,
6774    ka: *const lapackint,
6775    kb: *const lapackint,
6776    AB: *mut Complex32,
6777    ldab: *const lapackint,
6778    BB: *mut Complex32,
6779    ldbb: *const lapackint,
6780    Q: *mut Complex32,
6781    ldq: *const lapackint,
6782    vl: *const f32,
6783    vu: *const f32,
6784    il: *const lapackint,
6785    iu: *const lapackint,
6786    abstol: *const f32,
6787    m: *mut lapackint,
6788    W: *mut f32,
6789    Z: *mut Complex32,
6790    ldz: *const lapackint,
6791    work: *mut Complex32,
6792    rwork: *mut f32,
6793    iwork: *mut lapackint,
6794    IFAIL: *mut lapackint,
6795    info: *mut lapackint,
6796);
6797
6798define_lapack_ffi!(zhbgvx, ZhbgvxFnPtr,
6799    jobz: *const c_char,
6800    range: *const c_char,
6801    uplo: *const c_char,
6802    n: *const lapackint,
6803    ka: *const lapackint,
6804    kb: *const lapackint,
6805    AB: *mut Complex64,
6806    ldab: *const lapackint,
6807    BB: *mut Complex64,
6808    ldbb: *const lapackint,
6809    Q: *mut Complex64,
6810    ldq: *const lapackint,
6811    vl: *const f64,
6812    vu: *const f64,
6813    il: *const lapackint,
6814    iu: *const lapackint,
6815    abstol: *const f64,
6816    m: *mut lapackint,
6817    W: *mut f64,
6818    Z: *mut Complex64,
6819    ldz: *const lapackint,
6820    work: *mut Complex64,
6821    rwork: *mut f64,
6822    iwork: *mut lapackint,
6823    IFAIL: *mut lapackint,
6824    info: *mut lapackint,
6825);
6826
6827// HBTRD
6828define_lapack_ffi!(chbtrd, ChbtrdFnPtr,
6829    vect: *const c_char,
6830    uplo: *const c_char,
6831    n: *const lapackint,
6832    kd: *const lapackint,
6833    AB: *mut Complex32,
6834    ldab: *const lapackint,
6835    D: *mut f32,
6836    E: *mut f32,
6837    Q: *mut Complex32,
6838    ldq: *const lapackint,
6839    work: *mut Complex32,
6840    info: *mut lapackint,
6841);
6842
6843define_lapack_ffi!(zhbtrd, ZhbtrdFnPtr,
6844    vect: *const c_char,
6845    uplo: *const c_char,
6846    n: *const lapackint,
6847    kd: *const lapackint,
6848    AB: *mut Complex64,
6849    ldab: *const lapackint,
6850    D: *mut f64,
6851    E: *mut f64,
6852    Q: *mut Complex64,
6853    ldq: *const lapackint,
6854    work: *mut Complex64,
6855    info: *mut lapackint,
6856);
6857
6858// HECON
6859define_lapack_ffi!(checon, CheconFnPtr,
6860    uplo: *const c_char,
6861    n: *const lapackint,
6862    A: *const Complex32,
6863    lda: *const lapackint,
6864    ipiv: *const lapackint,
6865    anorm: *const f32,
6866    rcond: *mut f32,
6867    work: *mut Complex32,
6868    info: *mut lapackint,
6869);
6870
6871define_lapack_ffi!(zhecon, ZheconFnPtr,
6872    uplo: *const c_char,
6873    n: *const lapackint,
6874    A: *const Complex64,
6875    lda: *const lapackint,
6876    ipiv: *const lapackint,
6877    anorm: *const f64,
6878    rcond: *mut f64,
6879    work: *mut Complex64,
6880    info: *mut lapackint,
6881);
6882
6883// HECON_3
6884define_lapack_ffi!(checon_3, Checon_3FnPtr,
6885    uplo: *const c_char,
6886    n: *const lapackint,
6887    A: *const Complex32,
6888    lda: *const lapackint,
6889    E: *const Complex32,
6890    ipiv: *const lapackint,
6891    anorm: *const f32,
6892    rcond: *mut f32,
6893    work: *mut Complex32,
6894    info: *mut lapackint,
6895);
6896
6897define_lapack_ffi!(zhecon_3, Zhecon_3FnPtr,
6898    uplo: *const c_char,
6899    n: *const lapackint,
6900    A: *const Complex64,
6901    lda: *const lapackint,
6902    E: *const Complex64,
6903    ipiv: *const lapackint,
6904    anorm: *const f64,
6905    rcond: *mut f64,
6906    work: *mut Complex64,
6907    info: *mut lapackint,
6908);
6909
6910// HEEQUB
6911define_lapack_ffi!(cheequb, CheequbFnPtr,
6912    uplo: *const c_char,
6913    n: *const lapackint,
6914    A: *const Complex32,
6915    lda: *const lapackint,
6916    S: *mut f32,
6917    scond: *mut f32,
6918    amax: *mut f32,
6919    work: *mut Complex32,
6920    info: *mut lapackint,
6921);
6922
6923define_lapack_ffi!(zheequb, ZheequbFnPtr,
6924    uplo: *const c_char,
6925    n: *const lapackint,
6926    A: *const Complex64,
6927    lda: *const lapackint,
6928    S: *mut f64,
6929    scond: *mut f64,
6930    amax: *mut f64,
6931    work: *mut Complex64,
6932    info: *mut lapackint,
6933);
6934
6935// HEEV
6936define_lapack_ffi!(cheev, CheevFnPtr,
6937    jobz: *const c_char,
6938    uplo: *const c_char,
6939    n: *const lapackint,
6940    A: *mut Complex32,
6941    lda: *const lapackint,
6942    W: *mut f32,
6943    work: *mut Complex32,
6944    lwork: *const lapackint,
6945    rwork: *mut f32,
6946    info: *mut lapackint,
6947);
6948
6949define_lapack_ffi!(zheev, ZheevFnPtr,
6950    jobz: *const c_char,
6951    uplo: *const c_char,
6952    n: *const lapackint,
6953    A: *mut Complex64,
6954    lda: *const lapackint,
6955    W: *mut f64,
6956    work: *mut Complex64,
6957    lwork: *const lapackint,
6958    rwork: *mut f64,
6959    info: *mut lapackint,
6960);
6961
6962// HEEV_2STAGE
6963define_lapack_ffi!(cheev_2stage, Cheev_2stageFnPtr,
6964    jobz: *const c_char,
6965    uplo: *const c_char,
6966    n: *const lapackint,
6967    A: *mut Complex32,
6968    lda: *const lapackint,
6969    W: *mut f32,
6970    work: *mut Complex32,
6971    lwork: *const lapackint,
6972    rwork: *mut f32,
6973    info: *mut lapackint,
6974);
6975
6976define_lapack_ffi!(zheev_2stage, Zheev_2stageFnPtr,
6977    jobz: *const c_char,
6978    uplo: *const c_char,
6979    n: *const lapackint,
6980    A: *mut Complex64,
6981    lda: *const lapackint,
6982    W: *mut f64,
6983    work: *mut Complex64,
6984    lwork: *const lapackint,
6985    rwork: *mut f64,
6986    info: *mut lapackint,
6987);
6988
6989// HEEVD
6990define_lapack_ffi!(cheevd, CheevdFnPtr,
6991    jobz: *const c_char,
6992    uplo: *const c_char,
6993    n: *const lapackint,
6994    A: *mut Complex32,
6995    lda: *const lapackint,
6996    W: *mut f32,
6997    work: *mut Complex32,
6998    lwork: *const lapackint,
6999    rwork: *mut f32,
7000    lrwork: *const lapackint,
7001    iwork: *mut lapackint,
7002    liwork: *const lapackint,
7003    info: *mut lapackint,
7004);
7005
7006define_lapack_ffi!(zheevd, ZheevdFnPtr,
7007    jobz: *const c_char,
7008    uplo: *const c_char,
7009    n: *const lapackint,
7010    A: *mut Complex64,
7011    lda: *const lapackint,
7012    W: *mut f64,
7013    work: *mut Complex64,
7014    lwork: *const lapackint,
7015    rwork: *mut f64,
7016    lrwork: *const lapackint,
7017    iwork: *mut lapackint,
7018    liwork: *const lapackint,
7019    info: *mut lapackint,
7020);
7021
7022// HEEVD_2STAGE
7023define_lapack_ffi!(cheevd_2stage, Cheevd_2stageFnPtr,
7024    jobz: *const c_char,
7025    uplo: *const c_char,
7026    n: *const lapackint,
7027    A: *mut Complex32,
7028    lda: *const lapackint,
7029    W: *mut f32,
7030    work: *mut Complex32,
7031    lwork: *const lapackint,
7032    rwork: *mut f32,
7033    lrwork: *const lapackint,
7034    iwork: *mut lapackint,
7035    liwork: *const lapackint,
7036    info: *mut lapackint,
7037);
7038
7039define_lapack_ffi!(zheevd_2stage, Zheevd_2stageFnPtr,
7040    jobz: *const c_char,
7041    uplo: *const c_char,
7042    n: *const lapackint,
7043    A: *mut Complex64,
7044    lda: *const lapackint,
7045    W: *mut f64,
7046    work: *mut Complex64,
7047    lwork: *const lapackint,
7048    rwork: *mut f64,
7049    lrwork: *const lapackint,
7050    iwork: *mut lapackint,
7051    liwork: *const lapackint,
7052    info: *mut lapackint,
7053);
7054
7055// HEEVR
7056define_lapack_ffi!(cheevr, CheevrFnPtr,
7057    jobz: *const c_char,
7058    range: *const c_char,
7059    uplo: *const c_char,
7060    n: *const lapackint,
7061    A: *mut Complex32,
7062    lda: *const lapackint,
7063    vl: *const f32,
7064    vu: *const f32,
7065    il: *const lapackint,
7066    iu: *const lapackint,
7067    abstol: *const f32,
7068    m: *mut lapackint,
7069    W: *mut f32,
7070    Z: *mut Complex32,
7071    ldz: *const lapackint,
7072    ISUPPZ: *mut lapackint,
7073    work: *mut Complex32,
7074    lwork: *const lapackint,
7075    rwork: *mut f32,
7076    lrwork: *const lapackint,
7077    iwork: *mut lapackint,
7078    liwork: *const lapackint,
7079    info: *mut lapackint,
7080);
7081
7082define_lapack_ffi!(zheevr, ZheevrFnPtr,
7083    jobz: *const c_char,
7084    range: *const c_char,
7085    uplo: *const c_char,
7086    n: *const lapackint,
7087    A: *mut Complex64,
7088    lda: *const lapackint,
7089    vl: *const f64,
7090    vu: *const f64,
7091    il: *const lapackint,
7092    iu: *const lapackint,
7093    abstol: *const f64,
7094    m: *mut lapackint,
7095    W: *mut f64,
7096    Z: *mut Complex64,
7097    ldz: *const lapackint,
7098    ISUPPZ: *mut lapackint,
7099    work: *mut Complex64,
7100    lwork: *const lapackint,
7101    rwork: *mut f64,
7102    lrwork: *const lapackint,
7103    iwork: *mut lapackint,
7104    liwork: *const lapackint,
7105    info: *mut lapackint,
7106);
7107
7108// HEEVR_2STAGE
7109define_lapack_ffi!(cheevr_2stage, Cheevr_2stageFnPtr,
7110    jobz: *const c_char,
7111    range: *const c_char,
7112    uplo: *const c_char,
7113    n: *const lapackint,
7114    A: *mut Complex32,
7115    lda: *const lapackint,
7116    vl: *const f32,
7117    vu: *const f32,
7118    il: *const lapackint,
7119    iu: *const lapackint,
7120    abstol: *const f32,
7121    m: *mut lapackint,
7122    W: *mut f32,
7123    Z: *mut Complex32,
7124    ldz: *const lapackint,
7125    ISUPPZ: *mut lapackint,
7126    work: *mut Complex32,
7127    lwork: *const lapackint,
7128    rwork: *mut f32,
7129    lrwork: *const lapackint,
7130    iwork: *mut lapackint,
7131    liwork: *const lapackint,
7132    info: *mut lapackint,
7133);
7134
7135define_lapack_ffi!(zheevr_2stage, Zheevr_2stageFnPtr,
7136    jobz: *const c_char,
7137    range: *const c_char,
7138    uplo: *const c_char,
7139    n: *const lapackint,
7140    A: *mut Complex64,
7141    lda: *const lapackint,
7142    vl: *const f64,
7143    vu: *const f64,
7144    il: *const lapackint,
7145    iu: *const lapackint,
7146    abstol: *const f64,
7147    m: *mut lapackint,
7148    W: *mut f64,
7149    Z: *mut Complex64,
7150    ldz: *const lapackint,
7151    ISUPPZ: *mut lapackint,
7152    work: *mut Complex64,
7153    lwork: *const lapackint,
7154    rwork: *mut f64,
7155    lrwork: *const lapackint,
7156    iwork: *mut lapackint,
7157    liwork: *const lapackint,
7158    info: *mut lapackint,
7159);
7160
7161// HEEVX
7162define_lapack_ffi!(cheevx, CheevxFnPtr,
7163    jobz: *const c_char,
7164    range: *const c_char,
7165    uplo: *const c_char,
7166    n: *const lapackint,
7167    A: *mut Complex32,
7168    lda: *const lapackint,
7169    vl: *const f32,
7170    vu: *const f32,
7171    il: *const lapackint,
7172    iu: *const lapackint,
7173    abstol: *const f32,
7174    m: *mut lapackint,
7175    W: *mut f32,
7176    Z: *mut Complex32,
7177    ldz: *const lapackint,
7178    work: *mut Complex32,
7179    lwork: *const lapackint,
7180    rwork: *mut f32,
7181    iwork: *mut lapackint,
7182    IFAIL: *mut lapackint,
7183    info: *mut lapackint,
7184);
7185
7186define_lapack_ffi!(zheevx, ZheevxFnPtr,
7187    jobz: *const c_char,
7188    range: *const c_char,
7189    uplo: *const c_char,
7190    n: *const lapackint,
7191    A: *mut Complex64,
7192    lda: *const lapackint,
7193    vl: *const f64,
7194    vu: *const f64,
7195    il: *const lapackint,
7196    iu: *const lapackint,
7197    abstol: *const f64,
7198    m: *mut lapackint,
7199    W: *mut f64,
7200    Z: *mut Complex64,
7201    ldz: *const lapackint,
7202    work: *mut Complex64,
7203    lwork: *const lapackint,
7204    rwork: *mut f64,
7205    iwork: *mut lapackint,
7206    IFAIL: *mut lapackint,
7207    info: *mut lapackint,
7208);
7209
7210// HEEVX_2STAGE
7211define_lapack_ffi!(cheevx_2stage, Cheevx_2stageFnPtr,
7212    jobz: *const c_char,
7213    range: *const c_char,
7214    uplo: *const c_char,
7215    n: *const lapackint,
7216    A: *mut Complex32,
7217    lda: *const lapackint,
7218    vl: *const f32,
7219    vu: *const f32,
7220    il: *const lapackint,
7221    iu: *const lapackint,
7222    abstol: *const f32,
7223    m: *mut lapackint,
7224    W: *mut f32,
7225    Z: *mut Complex32,
7226    ldz: *const lapackint,
7227    work: *mut Complex32,
7228    lwork: *const lapackint,
7229    rwork: *mut f32,
7230    iwork: *mut lapackint,
7231    IFAIL: *mut lapackint,
7232    info: *mut lapackint,
7233);
7234
7235define_lapack_ffi!(zheevx_2stage, Zheevx_2stageFnPtr,
7236    jobz: *const c_char,
7237    range: *const c_char,
7238    uplo: *const c_char,
7239    n: *const lapackint,
7240    A: *mut Complex64,
7241    lda: *const lapackint,
7242    vl: *const f64,
7243    vu: *const f64,
7244    il: *const lapackint,
7245    iu: *const lapackint,
7246    abstol: *const f64,
7247    m: *mut lapackint,
7248    W: *mut f64,
7249    Z: *mut Complex64,
7250    ldz: *const lapackint,
7251    work: *mut Complex64,
7252    lwork: *const lapackint,
7253    rwork: *mut f64,
7254    iwork: *mut lapackint,
7255    IFAIL: *mut lapackint,
7256    info: *mut lapackint,
7257);
7258
7259// HEGST
7260define_lapack_ffi!(chegst, ChegstFnPtr,
7261    itype: *const lapackint,
7262    uplo: *const c_char,
7263    n: *const lapackint,
7264    A: *mut Complex32,
7265    lda: *const lapackint,
7266    B: *mut Complex32,
7267    ldb: *const lapackint,
7268    info: *mut lapackint,
7269);
7270
7271define_lapack_ffi!(zhegst, ZhegstFnPtr,
7272    itype: *const lapackint,
7273    uplo: *const c_char,
7274    n: *const lapackint,
7275    A: *mut Complex64,
7276    lda: *const lapackint,
7277    B: *mut Complex64,
7278    ldb: *const lapackint,
7279    info: *mut lapackint,
7280);
7281
7282// HEGV
7283define_lapack_ffi!(chegv, ChegvFnPtr,
7284    itype: *const lapackint,
7285    jobz: *const c_char,
7286    uplo: *const c_char,
7287    n: *const lapackint,
7288    A: *mut Complex32,
7289    lda: *const lapackint,
7290    B: *mut Complex32,
7291    ldb: *const lapackint,
7292    W: *mut f32,
7293    work: *mut Complex32,
7294    lwork: *const lapackint,
7295    rwork: *mut f32,
7296    info: *mut lapackint,
7297);
7298
7299define_lapack_ffi!(zhegv, ZhegvFnPtr,
7300    itype: *const lapackint,
7301    jobz: *const c_char,
7302    uplo: *const c_char,
7303    n: *const lapackint,
7304    A: *mut Complex64,
7305    lda: *const lapackint,
7306    B: *mut Complex64,
7307    ldb: *const lapackint,
7308    W: *mut f64,
7309    work: *mut Complex64,
7310    lwork: *const lapackint,
7311    rwork: *mut f64,
7312    info: *mut lapackint,
7313);
7314
7315// HEGV_2STAGE
7316define_lapack_ffi!(chegv_2stage, Chegv_2stageFnPtr,
7317    itype: *const lapackint,
7318    jobz: *const c_char,
7319    uplo: *const c_char,
7320    n: *const lapackint,
7321    A: *mut Complex32,
7322    lda: *const lapackint,
7323    B: *mut Complex32,
7324    ldb: *const lapackint,
7325    W: *mut f32,
7326    work: *mut Complex32,
7327    lwork: *const lapackint,
7328    rwork: *mut f32,
7329    info: *mut lapackint,
7330);
7331
7332define_lapack_ffi!(zhegv_2stage, Zhegv_2stageFnPtr,
7333    itype: *const lapackint,
7334    jobz: *const c_char,
7335    uplo: *const c_char,
7336    n: *const lapackint,
7337    A: *mut Complex64,
7338    lda: *const lapackint,
7339    B: *mut Complex64,
7340    ldb: *const lapackint,
7341    W: *mut f64,
7342    work: *mut Complex64,
7343    lwork: *const lapackint,
7344    rwork: *mut f64,
7345    info: *mut lapackint,
7346);
7347
7348// HEGVD
7349define_lapack_ffi!(chegvd, ChegvdFnPtr,
7350    itype: *const lapackint,
7351    jobz: *const c_char,
7352    uplo: *const c_char,
7353    n: *const lapackint,
7354    A: *mut Complex32,
7355    lda: *const lapackint,
7356    B: *mut Complex32,
7357    ldb: *const lapackint,
7358    W: *mut f32,
7359    work: *mut Complex32,
7360    lwork: *const lapackint,
7361    rwork: *mut f32,
7362    lrwork: *const lapackint,
7363    iwork: *mut lapackint,
7364    liwork: *const lapackint,
7365    info: *mut lapackint,
7366);
7367
7368define_lapack_ffi!(zhegvd, ZhegvdFnPtr,
7369    itype: *const lapackint,
7370    jobz: *const c_char,
7371    uplo: *const c_char,
7372    n: *const lapackint,
7373    A: *mut Complex64,
7374    lda: *const lapackint,
7375    B: *mut Complex64,
7376    ldb: *const lapackint,
7377    W: *mut f64,
7378    work: *mut Complex64,
7379    lwork: *const lapackint,
7380    rwork: *mut f64,
7381    lrwork: *const lapackint,
7382    iwork: *mut lapackint,
7383    liwork: *const lapackint,
7384    info: *mut lapackint,
7385);
7386
7387// HEGVX
7388define_lapack_ffi!(chegvx, ChegvxFnPtr,
7389    itype: *const lapackint,
7390    jobz: *const c_char,
7391    range: *const c_char,
7392    uplo: *const c_char,
7393    n: *const lapackint,
7394    A: *mut Complex32,
7395    lda: *const lapackint,
7396    B: *mut Complex32,
7397    ldb: *const lapackint,
7398    vl: *const f32,
7399    vu: *const f32,
7400    il: *const lapackint,
7401    iu: *const lapackint,
7402    abstol: *const f32,
7403    m: *mut lapackint,
7404    W: *mut f32,
7405    Z: *mut Complex32,
7406    ldz: *const lapackint,
7407    work: *mut Complex32,
7408    lwork: *const lapackint,
7409    rwork: *mut f32,
7410    iwork: *mut lapackint,
7411    IFAIL: *mut lapackint,
7412    info: *mut lapackint,
7413);
7414
7415define_lapack_ffi!(zhegvx, ZhegvxFnPtr,
7416    itype: *const lapackint,
7417    jobz: *const c_char,
7418    range: *const c_char,
7419    uplo: *const c_char,
7420    n: *const lapackint,
7421    A: *mut Complex64,
7422    lda: *const lapackint,
7423    B: *mut Complex64,
7424    ldb: *const lapackint,
7425    vl: *const f64,
7426    vu: *const f64,
7427    il: *const lapackint,
7428    iu: *const lapackint,
7429    abstol: *const f64,
7430    m: *mut lapackint,
7431    W: *mut f64,
7432    Z: *mut Complex64,
7433    ldz: *const lapackint,
7434    work: *mut Complex64,
7435    lwork: *const lapackint,
7436    rwork: *mut f64,
7437    iwork: *mut lapackint,
7438    IFAIL: *mut lapackint,
7439    info: *mut lapackint,
7440);
7441
7442// HERFS
7443define_lapack_ffi!(cherfs, CherfsFnPtr,
7444    uplo: *const c_char,
7445    n: *const lapackint,
7446    nrhs: *const lapackint,
7447    A: *const Complex32,
7448    lda: *const lapackint,
7449    AF: *const Complex32,
7450    ldaf: *const lapackint,
7451    ipiv: *const lapackint,
7452    B: *const Complex32,
7453    ldb: *const lapackint,
7454    X: *mut Complex32,
7455    ldx: *const lapackint,
7456    ferr: *mut f32,
7457    berr: *mut f32,
7458    work: *mut Complex32,
7459    rwork: *mut f32,
7460    info: *mut lapackint,
7461);
7462
7463define_lapack_ffi!(zherfs, ZherfsFnPtr,
7464    uplo: *const c_char,
7465    n: *const lapackint,
7466    nrhs: *const lapackint,
7467    A: *const Complex64,
7468    lda: *const lapackint,
7469    AF: *const Complex64,
7470    ldaf: *const lapackint,
7471    ipiv: *const lapackint,
7472    B: *const Complex64,
7473    ldb: *const lapackint,
7474    X: *mut Complex64,
7475    ldx: *const lapackint,
7476    ferr: *mut f64,
7477    berr: *mut f64,
7478    work: *mut Complex64,
7479    rwork: *mut f64,
7480    info: *mut lapackint,
7481);
7482
7483// HERFSX
7484define_lapack_ffi!(cherfsx, CherfsxFnPtr,
7485    uplo: *const c_char,
7486    equed: *const c_char,
7487    n: *const lapackint,
7488    nrhs: *const lapackint,
7489    A: *const Complex32,
7490    lda: *const lapackint,
7491    AF: *const Complex32,
7492    ldaf: *const lapackint,
7493    ipiv: *const lapackint,
7494    S: *mut f32,
7495    B: *const Complex32,
7496    ldb: *const lapackint,
7497    X: *mut Complex32,
7498    ldx: *const lapackint,
7499    rcond: *mut f32,
7500    berr: *mut f32,
7501    n_err_bnds: *const lapackint,
7502    err_bnds_norm: *mut f32,
7503    err_bnds_comp: *mut f32,
7504    nparams: *const lapackint,
7505    params: *mut f32,
7506    work: *mut Complex32,
7507    rwork: *mut f32,
7508    info: *mut lapackint,
7509);
7510
7511define_lapack_ffi!(zherfsx, ZherfsxFnPtr,
7512    uplo: *const c_char,
7513    equed: *const c_char,
7514    n: *const lapackint,
7515    nrhs: *const lapackint,
7516    A: *const Complex64,
7517    lda: *const lapackint,
7518    AF: *const Complex64,
7519    ldaf: *const lapackint,
7520    ipiv: *const lapackint,
7521    S: *mut f64,
7522    B: *const Complex64,
7523    ldb: *const lapackint,
7524    X: *mut Complex64,
7525    ldx: *const lapackint,
7526    rcond: *mut f64,
7527    berr: *mut f64,
7528    n_err_bnds: *const lapackint,
7529    err_bnds_norm: *mut f64,
7530    err_bnds_comp: *mut f64,
7531    nparams: *const lapackint,
7532    params: *mut f64,
7533    work: *mut Complex64,
7534    rwork: *mut f64,
7535    info: *mut lapackint,
7536);
7537
7538// HESV
7539define_lapack_ffi!(chesv, ChesvFnPtr,
7540    uplo: *const c_char,
7541    n: *const lapackint,
7542    nrhs: *const lapackint,
7543    A: *mut Complex32,
7544    lda: *const lapackint,
7545    ipiv: *mut lapackint,
7546    B: *mut Complex32,
7547    ldb: *const lapackint,
7548    work: *mut Complex32,
7549    lwork: *const lapackint,
7550    info: *mut lapackint,
7551);
7552
7553define_lapack_ffi!(zhesv, ZhesvFnPtr,
7554    uplo: *const c_char,
7555    n: *const lapackint,
7556    nrhs: *const lapackint,
7557    A: *mut Complex64,
7558    lda: *const lapackint,
7559    ipiv: *mut lapackint,
7560    B: *mut Complex64,
7561    ldb: *const lapackint,
7562    work: *mut Complex64,
7563    lwork: *const lapackint,
7564    info: *mut lapackint,
7565);
7566
7567// HESV_AA
7568define_lapack_ffi!(chesv_aa, Chesv_aaFnPtr,
7569    uplo: *const c_char,
7570    n: *const lapackint,
7571    nrhs: *const lapackint,
7572    A: *mut Complex32,
7573    lda: *const lapackint,
7574    ipiv: *mut lapackint,
7575    B: *mut Complex32,
7576    ldb: *const lapackint,
7577    work: *mut Complex32,
7578    lwork: *const lapackint,
7579    info: *mut lapackint,
7580);
7581
7582define_lapack_ffi!(zhesv_aa, Zhesv_aaFnPtr,
7583    uplo: *const c_char,
7584    n: *const lapackint,
7585    nrhs: *const lapackint,
7586    A: *mut Complex64,
7587    lda: *const lapackint,
7588    ipiv: *mut lapackint,
7589    B: *mut Complex64,
7590    ldb: *const lapackint,
7591    work: *mut Complex64,
7592    lwork: *const lapackint,
7593    info: *mut lapackint,
7594);
7595
7596// HESV_AA_2STAGE
7597define_lapack_ffi!(chesv_aa_2stage, Chesv_aa_2stageFnPtr,
7598    uplo: *const c_char,
7599    n: *const lapackint,
7600    nrhs: *const lapackint,
7601    A: *mut Complex32,
7602    lda: *const lapackint,
7603    TB: *mut Complex32,
7604    ltb: *const lapackint,
7605    ipiv: *mut lapackint,
7606    ipiv2: *mut lapackint,
7607    B: *mut Complex32,
7608    ldb: *const lapackint,
7609    work: *mut Complex32,
7610    lwork: *const lapackint,
7611    info: *mut lapackint,
7612);
7613
7614define_lapack_ffi!(zhesv_aa_2stage, Zhesv_aa_2stageFnPtr,
7615    uplo: *const c_char,
7616    n: *const lapackint,
7617    nrhs: *const lapackint,
7618    A: *mut Complex64,
7619    lda: *const lapackint,
7620    TB: *mut Complex64,
7621    ltb: *const lapackint,
7622    ipiv: *mut lapackint,
7623    ipiv2: *mut lapackint,
7624    B: *mut Complex64,
7625    ldb: *const lapackint,
7626    work: *mut Complex64,
7627    lwork: *const lapackint,
7628    info: *mut lapackint,
7629);
7630
7631// HESV_RK
7632define_lapack_ffi!(chesv_rk, Chesv_rkFnPtr,
7633    uplo: *const c_char,
7634    n: *const lapackint,
7635    nrhs: *const lapackint,
7636    A: *mut Complex32,
7637    lda: *const lapackint,
7638    E: *mut Complex32,
7639    ipiv: *mut lapackint,
7640    B: *mut Complex32,
7641    ldb: *const lapackint,
7642    work: *mut Complex32,
7643    lwork: *const lapackint,
7644    info: *mut lapackint,
7645);
7646
7647define_lapack_ffi!(zhesv_rk, Zhesv_rkFnPtr,
7648    uplo: *const c_char,
7649    n: *const lapackint,
7650    nrhs: *const lapackint,
7651    A: *mut Complex64,
7652    lda: *const lapackint,
7653    E: *mut Complex64,
7654    ipiv: *mut lapackint,
7655    B: *mut Complex64,
7656    ldb: *const lapackint,
7657    work: *mut Complex64,
7658    lwork: *const lapackint,
7659    info: *mut lapackint,
7660);
7661
7662// HESV_ROOK
7663define_lapack_ffi!(chesv_rook, Chesv_rookFnPtr,
7664    uplo: *const c_char,
7665    n: *const lapackint,
7666    nrhs: *const lapackint,
7667    A: *mut Complex32,
7668    lda: *const lapackint,
7669    ipiv: *mut lapackint,
7670    B: *mut Complex32,
7671    ldb: *const lapackint,
7672    work: *mut Complex32,
7673    lwork: *const lapackint,
7674    info: *mut lapackint,
7675);
7676
7677define_lapack_ffi!(zhesv_rook, Zhesv_rookFnPtr,
7678    uplo: *const c_char,
7679    n: *const lapackint,
7680    nrhs: *const lapackint,
7681    A: *mut Complex64,
7682    lda: *const lapackint,
7683    ipiv: *mut lapackint,
7684    B: *mut Complex64,
7685    ldb: *const lapackint,
7686    work: *mut Complex64,
7687    lwork: *const lapackint,
7688    info: *mut lapackint,
7689);
7690
7691// HESVX
7692define_lapack_ffi!(chesvx, ChesvxFnPtr,
7693    fact: *const c_char,
7694    uplo: *const c_char,
7695    n: *const lapackint,
7696    nrhs: *const lapackint,
7697    A: *const Complex32,
7698    lda: *const lapackint,
7699    AF: *mut Complex32,
7700    ldaf: *const lapackint,
7701    ipiv: *mut lapackint,
7702    B: *const Complex32,
7703    ldb: *const lapackint,
7704    X: *mut Complex32,
7705    ldx: *const lapackint,
7706    rcond: *mut f32,
7707    ferr: *mut f32,
7708    berr: *mut f32,
7709    work: *mut Complex32,
7710    lwork: *const lapackint,
7711    rwork: *mut f32,
7712    info: *mut lapackint,
7713);
7714
7715define_lapack_ffi!(zhesvx, ZhesvxFnPtr,
7716    fact: *const c_char,
7717    uplo: *const c_char,
7718    n: *const lapackint,
7719    nrhs: *const lapackint,
7720    A: *const Complex64,
7721    lda: *const lapackint,
7722    AF: *mut Complex64,
7723    ldaf: *const lapackint,
7724    ipiv: *mut lapackint,
7725    B: *const Complex64,
7726    ldb: *const lapackint,
7727    X: *mut Complex64,
7728    ldx: *const lapackint,
7729    rcond: *mut f64,
7730    ferr: *mut f64,
7731    berr: *mut f64,
7732    work: *mut Complex64,
7733    lwork: *const lapackint,
7734    rwork: *mut f64,
7735    info: *mut lapackint,
7736);
7737
7738// HESVXX
7739define_lapack_ffi!(chesvxx, ChesvxxFnPtr,
7740    fact: *const c_char,
7741    uplo: *const c_char,
7742    n: *const lapackint,
7743    nrhs: *const lapackint,
7744    A: *mut Complex32,
7745    lda: *const lapackint,
7746    AF: *mut Complex32,
7747    ldaf: *const lapackint,
7748    ipiv: *mut lapackint,
7749    equed: *mut c_char,
7750    S: *mut f32,
7751    B: *mut Complex32,
7752    ldb: *const lapackint,
7753    X: *mut Complex32,
7754    ldx: *const lapackint,
7755    rcond: *mut f32,
7756    rpvgrw: *mut f32,
7757    berr: *mut f32,
7758    n_err_bnds: *const lapackint,
7759    err_bnds_norm: *mut f32,
7760    err_bnds_comp: *mut f32,
7761    nparams: *const lapackint,
7762    params: *mut f32,
7763    work: *mut Complex32,
7764    rwork: *mut f32,
7765    info: *mut lapackint,
7766);
7767
7768define_lapack_ffi!(zhesvxx, ZhesvxxFnPtr,
7769    fact: *const c_char,
7770    uplo: *const c_char,
7771    n: *const lapackint,
7772    nrhs: *const lapackint,
7773    A: *mut Complex64,
7774    lda: *const lapackint,
7775    AF: *mut Complex64,
7776    ldaf: *const lapackint,
7777    ipiv: *mut lapackint,
7778    equed: *mut c_char,
7779    S: *mut f64,
7780    B: *mut Complex64,
7781    ldb: *const lapackint,
7782    X: *mut Complex64,
7783    ldx: *const lapackint,
7784    rcond: *mut f64,
7785    rpvgrw: *mut f64,
7786    berr: *mut f64,
7787    n_err_bnds: *const lapackint,
7788    err_bnds_norm: *mut f64,
7789    err_bnds_comp: *mut f64,
7790    nparams: *const lapackint,
7791    params: *mut f64,
7792    work: *mut Complex64,
7793    rwork: *mut f64,
7794    info: *mut lapackint,
7795);
7796
7797// HESWAPR
7798define_lapack_ffi!(cheswapr, CheswaprFnPtr,
7799    uplo: *const c_char,
7800    n: *const lapackint,
7801    A: *mut Complex32,
7802    lda: *const lapackint,
7803    i1: *const lapackint,
7804    i2: *const lapackint,
7805);
7806
7807define_lapack_ffi!(zheswapr, ZheswaprFnPtr,
7808    uplo: *const c_char,
7809    n: *const lapackint,
7810    A: *mut Complex64,
7811    lda: *const lapackint,
7812    i1: *const lapackint,
7813    i2: *const lapackint,
7814);
7815
7816// HETRD
7817define_lapack_ffi!(chetrd, ChetrdFnPtr,
7818    uplo: *const c_char,
7819    n: *const lapackint,
7820    A: *mut Complex32,
7821    lda: *const lapackint,
7822    D: *mut f32,
7823    E: *mut f32,
7824    tau: *mut Complex32,
7825    work: *mut Complex32,
7826    lwork: *const lapackint,
7827    info: *mut lapackint,
7828);
7829
7830define_lapack_ffi!(zhetrd, ZhetrdFnPtr,
7831    uplo: *const c_char,
7832    n: *const lapackint,
7833    A: *mut Complex64,
7834    lda: *const lapackint,
7835    D: *mut f64,
7836    E: *mut f64,
7837    tau: *mut Complex64,
7838    work: *mut Complex64,
7839    lwork: *const lapackint,
7840    info: *mut lapackint,
7841);
7842
7843// HETRD_2STAGE
7844define_lapack_ffi!(chetrd_2stage, Chetrd_2stageFnPtr,
7845    vect: *const c_char,
7846    uplo: *const c_char,
7847    n: *const lapackint,
7848    A: *mut Complex32,
7849    lda: *const lapackint,
7850    D: *mut f32,
7851    E: *mut f32,
7852    tau: *mut Complex32,
7853    HOUS2: *mut Complex32,
7854    lhous2: *const lapackint,
7855    work: *mut Complex32,
7856    lwork: *const lapackint,
7857    info: *mut lapackint,
7858);
7859
7860define_lapack_ffi!(zhetrd_2stage, Zhetrd_2stageFnPtr,
7861    vect: *const c_char,
7862    uplo: *const c_char,
7863    n: *const lapackint,
7864    A: *mut Complex64,
7865    lda: *const lapackint,
7866    D: *mut f64,
7867    E: *mut f64,
7868    tau: *mut Complex64,
7869    HOUS2: *mut Complex64,
7870    lhous2: *const lapackint,
7871    work: *mut Complex64,
7872    lwork: *const lapackint,
7873    info: *mut lapackint,
7874);
7875
7876// HETRF
7877define_lapack_ffi!(chetrf, ChetrfFnPtr,
7878    uplo: *const c_char,
7879    n: *const lapackint,
7880    A: *mut Complex32,
7881    lda: *const lapackint,
7882    ipiv: *mut lapackint,
7883    work: *mut Complex32,
7884    lwork: *const lapackint,
7885    info: *mut lapackint,
7886);
7887
7888define_lapack_ffi!(zhetrf, ZhetrfFnPtr,
7889    uplo: *const c_char,
7890    n: *const lapackint,
7891    A: *mut Complex64,
7892    lda: *const lapackint,
7893    ipiv: *mut lapackint,
7894    work: *mut Complex64,
7895    lwork: *const lapackint,
7896    info: *mut lapackint,
7897);
7898
7899// HETRF_AA
7900define_lapack_ffi!(chetrf_aa, Chetrf_aaFnPtr,
7901    uplo: *const c_char,
7902    n: *const lapackint,
7903    A: *mut Complex32,
7904    lda: *const lapackint,
7905    ipiv: *mut lapackint,
7906    work: *mut Complex32,
7907    lwork: *const lapackint,
7908    info: *mut lapackint,
7909);
7910
7911define_lapack_ffi!(zhetrf_aa, Zhetrf_aaFnPtr,
7912    uplo: *const c_char,
7913    n: *const lapackint,
7914    A: *mut Complex64,
7915    lda: *const lapackint,
7916    ipiv: *mut lapackint,
7917    work: *mut Complex64,
7918    lwork: *const lapackint,
7919    info: *mut lapackint,
7920);
7921
7922// HETRF_AA_2STAGE
7923define_lapack_ffi!(chetrf_aa_2stage, Chetrf_aa_2stageFnPtr,
7924    uplo: *const c_char,
7925    n: *const lapackint,
7926    A: *mut Complex32,
7927    lda: *const lapackint,
7928    TB: *mut Complex32,
7929    ltb: *const lapackint,
7930    ipiv: *mut lapackint,
7931    ipiv2: *mut lapackint,
7932    work: *mut Complex32,
7933    lwork: *const lapackint,
7934    info: *mut lapackint,
7935);
7936
7937define_lapack_ffi!(zhetrf_aa_2stage, Zhetrf_aa_2stageFnPtr,
7938    uplo: *const c_char,
7939    n: *const lapackint,
7940    A: *mut Complex64,
7941    lda: *const lapackint,
7942    TB: *mut Complex64,
7943    ltb: *const lapackint,
7944    ipiv: *mut lapackint,
7945    ipiv2: *mut lapackint,
7946    work: *mut Complex64,
7947    lwork: *const lapackint,
7948    info: *mut lapackint,
7949);
7950
7951// HETRF_RK
7952define_lapack_ffi!(chetrf_rk, Chetrf_rkFnPtr,
7953    uplo: *const c_char,
7954    n: *const lapackint,
7955    A: *mut Complex32,
7956    lda: *const lapackint,
7957    E: *mut Complex32,
7958    ipiv: *mut lapackint,
7959    work: *mut Complex32,
7960    lwork: *const lapackint,
7961    info: *mut lapackint,
7962);
7963
7964define_lapack_ffi!(zhetrf_rk, Zhetrf_rkFnPtr,
7965    uplo: *const c_char,
7966    n: *const lapackint,
7967    A: *mut Complex64,
7968    lda: *const lapackint,
7969    E: *mut Complex64,
7970    ipiv: *mut lapackint,
7971    work: *mut Complex64,
7972    lwork: *const lapackint,
7973    info: *mut lapackint,
7974);
7975
7976// HETRF_ROOK
7977define_lapack_ffi!(chetrf_rook, Chetrf_rookFnPtr,
7978    uplo: *const c_char,
7979    n: *const lapackint,
7980    A: *mut Complex32,
7981    lda: *const lapackint,
7982    ipiv: *mut lapackint,
7983    work: *mut Complex32,
7984    lwork: *const lapackint,
7985    info: *mut lapackint,
7986);
7987
7988define_lapack_ffi!(zhetrf_rook, Zhetrf_rookFnPtr,
7989    uplo: *const c_char,
7990    n: *const lapackint,
7991    A: *mut Complex64,
7992    lda: *const lapackint,
7993    ipiv: *mut lapackint,
7994    work: *mut Complex64,
7995    lwork: *const lapackint,
7996    info: *mut lapackint,
7997);
7998
7999// HETRI
8000define_lapack_ffi!(chetri, ChetriFnPtr,
8001    uplo: *const c_char,
8002    n: *const lapackint,
8003    A: *mut Complex32,
8004    lda: *const lapackint,
8005    ipiv: *const lapackint,
8006    work: *mut Complex32,
8007    info: *mut lapackint,
8008);
8009
8010define_lapack_ffi!(zhetri, ZhetriFnPtr,
8011    uplo: *const c_char,
8012    n: *const lapackint,
8013    A: *mut Complex64,
8014    lda: *const lapackint,
8015    ipiv: *const lapackint,
8016    work: *mut Complex64,
8017    info: *mut lapackint,
8018);
8019
8020// HETRI2
8021define_lapack_ffi!(chetri2, Chetri2FnPtr,
8022    uplo: *const c_char,
8023    n: *const lapackint,
8024    A: *mut Complex32,
8025    lda: *const lapackint,
8026    ipiv: *const lapackint,
8027    work: *mut Complex32,
8028    lwork: *const lapackint,
8029    info: *mut lapackint,
8030);
8031
8032define_lapack_ffi!(zhetri2, Zhetri2FnPtr,
8033    uplo: *const c_char,
8034    n: *const lapackint,
8035    A: *mut Complex64,
8036    lda: *const lapackint,
8037    ipiv: *const lapackint,
8038    work: *mut Complex64,
8039    lwork: *const lapackint,
8040    info: *mut lapackint,
8041);
8042
8043// HETRI2X
8044define_lapack_ffi!(chetri2x, Chetri2xFnPtr,
8045    uplo: *const c_char,
8046    n: *const lapackint,
8047    A: *mut Complex32,
8048    lda: *const lapackint,
8049    ipiv: *const lapackint,
8050    work: *mut Complex32,
8051    nb: *const lapackint,
8052    info: *mut lapackint,
8053);
8054
8055define_lapack_ffi!(zhetri2x, Zhetri2xFnPtr,
8056    uplo: *const c_char,
8057    n: *const lapackint,
8058    A: *mut Complex64,
8059    lda: *const lapackint,
8060    ipiv: *const lapackint,
8061    work: *mut Complex64,
8062    nb: *const lapackint,
8063    info: *mut lapackint,
8064);
8065
8066// HETRI_3
8067define_lapack_ffi!(chetri_3, Chetri_3FnPtr,
8068    uplo: *const c_char,
8069    n: *const lapackint,
8070    A: *mut Complex32,
8071    lda: *const lapackint,
8072    E: *const Complex32,
8073    ipiv: *const lapackint,
8074    work: *mut Complex32,
8075    lwork: *const lapackint,
8076    info: *mut lapackint,
8077);
8078
8079define_lapack_ffi!(zhetri_3, Zhetri_3FnPtr,
8080    uplo: *const c_char,
8081    n: *const lapackint,
8082    A: *mut Complex64,
8083    lda: *const lapackint,
8084    E: *const Complex64,
8085    ipiv: *const lapackint,
8086    work: *mut Complex64,
8087    lwork: *const lapackint,
8088    info: *mut lapackint,
8089);
8090
8091// HETRS
8092define_lapack_ffi!(chetrs, ChetrsFnPtr,
8093    uplo: *const c_char,
8094    n: *const lapackint,
8095    nrhs: *const lapackint,
8096    A: *const Complex32,
8097    lda: *const lapackint,
8098    ipiv: *const lapackint,
8099    B: *mut Complex32,
8100    ldb: *const lapackint,
8101    info: *mut lapackint,
8102);
8103
8104define_lapack_ffi!(zhetrs, ZhetrsFnPtr,
8105    uplo: *const c_char,
8106    n: *const lapackint,
8107    nrhs: *const lapackint,
8108    A: *const Complex64,
8109    lda: *const lapackint,
8110    ipiv: *const lapackint,
8111    B: *mut Complex64,
8112    ldb: *const lapackint,
8113    info: *mut lapackint,
8114);
8115
8116// HETRS2
8117define_lapack_ffi!(chetrs2, Chetrs2FnPtr,
8118    uplo: *const c_char,
8119    n: *const lapackint,
8120    nrhs: *const lapackint,
8121    A: *const Complex32,
8122    lda: *const lapackint,
8123    ipiv: *const lapackint,
8124    B: *mut Complex32,
8125    ldb: *const lapackint,
8126    work: *mut Complex32,
8127    info: *mut lapackint,
8128);
8129
8130define_lapack_ffi!(zhetrs2, Zhetrs2FnPtr,
8131    uplo: *const c_char,
8132    n: *const lapackint,
8133    nrhs: *const lapackint,
8134    A: *const Complex64,
8135    lda: *const lapackint,
8136    ipiv: *const lapackint,
8137    B: *mut Complex64,
8138    ldb: *const lapackint,
8139    work: *mut Complex64,
8140    info: *mut lapackint,
8141);
8142
8143// HETRS_3
8144define_lapack_ffi!(chetrs_3, Chetrs_3FnPtr,
8145    uplo: *const c_char,
8146    n: *const lapackint,
8147    nrhs: *const lapackint,
8148    A: *const Complex32,
8149    lda: *const lapackint,
8150    E: *const Complex32,
8151    ipiv: *const lapackint,
8152    B: *mut Complex32,
8153    ldb: *const lapackint,
8154    info: *mut lapackint,
8155);
8156
8157define_lapack_ffi!(zhetrs_3, Zhetrs_3FnPtr,
8158    uplo: *const c_char,
8159    n: *const lapackint,
8160    nrhs: *const lapackint,
8161    A: *const Complex64,
8162    lda: *const lapackint,
8163    E: *const Complex64,
8164    ipiv: *const lapackint,
8165    B: *mut Complex64,
8166    ldb: *const lapackint,
8167    info: *mut lapackint,
8168);
8169
8170// HETRS_AA
8171define_lapack_ffi!(chetrs_aa, Chetrs_aaFnPtr,
8172    uplo: *const c_char,
8173    n: *const lapackint,
8174    nrhs: *const lapackint,
8175    A: *const Complex32,
8176    lda: *const lapackint,
8177    ipiv: *const lapackint,
8178    B: *mut Complex32,
8179    ldb: *const lapackint,
8180    work: *mut Complex32,
8181    lwork: *const lapackint,
8182    info: *mut lapackint,
8183);
8184
8185define_lapack_ffi!(zhetrs_aa, Zhetrs_aaFnPtr,
8186    uplo: *const c_char,
8187    n: *const lapackint,
8188    nrhs: *const lapackint,
8189    A: *const Complex64,
8190    lda: *const lapackint,
8191    ipiv: *const lapackint,
8192    B: *mut Complex64,
8193    ldb: *const lapackint,
8194    work: *mut Complex64,
8195    lwork: *const lapackint,
8196    info: *mut lapackint,
8197);
8198
8199// HETRS_AA_2STAGE
8200define_lapack_ffi!(chetrs_aa_2stage, Chetrs_aa_2stageFnPtr,
8201    uplo: *const c_char,
8202    n: *const lapackint,
8203    nrhs: *const lapackint,
8204    A: *const Complex32,
8205    lda: *const lapackint,
8206    TB: *mut Complex32,
8207    ltb: *const lapackint,
8208    ipiv: *const lapackint,
8209    ipiv2: *const lapackint,
8210    B: *mut Complex32,
8211    ldb: *const lapackint,
8212    info: *mut lapackint,
8213);
8214
8215define_lapack_ffi!(zhetrs_aa_2stage, Zhetrs_aa_2stageFnPtr,
8216    uplo: *const c_char,
8217    n: *const lapackint,
8218    nrhs: *const lapackint,
8219    A: *const Complex64,
8220    lda: *const lapackint,
8221    TB: *mut Complex64,
8222    ltb: *const lapackint,
8223    ipiv: *const lapackint,
8224    ipiv2: *const lapackint,
8225    B: *mut Complex64,
8226    ldb: *const lapackint,
8227    info: *mut lapackint,
8228);
8229
8230// HETRS_ROOK
8231define_lapack_ffi!(chetrs_rook, Chetrs_rookFnPtr,
8232    uplo: *const c_char,
8233    n: *const lapackint,
8234    nrhs: *const lapackint,
8235    A: *const Complex32,
8236    lda: *const lapackint,
8237    ipiv: *const lapackint,
8238    B: *mut Complex32,
8239    ldb: *const lapackint,
8240    info: *mut lapackint,
8241);
8242
8243define_lapack_ffi!(zhetrs_rook, Zhetrs_rookFnPtr,
8244    uplo: *const c_char,
8245    n: *const lapackint,
8246    nrhs: *const lapackint,
8247    A: *const Complex64,
8248    lda: *const lapackint,
8249    ipiv: *const lapackint,
8250    B: *mut Complex64,
8251    ldb: *const lapackint,
8252    info: *mut lapackint,
8253);
8254
8255// HFRK
8256define_lapack_ffi!(chfrk, ChfrkFnPtr,
8257    transr: *const c_char,
8258    uplo: *const c_char,
8259    trans: *const c_char,
8260    n: *const lapackint,
8261    k: *const lapackint,
8262    alpha: *const f32,
8263    A: *const Complex32,
8264    lda: *const lapackint,
8265    beta: *const f32,
8266    C: *mut Complex32,
8267);
8268
8269define_lapack_ffi!(zhfrk, ZhfrkFnPtr,
8270    transr: *const c_char,
8271    uplo: *const c_char,
8272    trans: *const c_char,
8273    n: *const lapackint,
8274    k: *const lapackint,
8275    alpha: *const f64,
8276    A: *const Complex64,
8277    lda: *const lapackint,
8278    beta: *const f64,
8279    C: *mut Complex64,
8280);
8281
8282// HGEQZ
8283define_lapack_ffi!(chgeqz, ChgeqzFnPtr,
8284    job: *const c_char,
8285    compq: *const c_char,
8286    compz: *const c_char,
8287    n: *const lapackint,
8288    ilo: *const lapackint,
8289    ihi: *const lapackint,
8290    H: *mut Complex32,
8291    ldh: *const lapackint,
8292    T: *mut Complex32,
8293    ldt: *const lapackint,
8294    alpha: *mut Complex32,
8295    beta: *mut Complex32,
8296    Q: *mut Complex32,
8297    ldq: *const lapackint,
8298    Z: *mut Complex32,
8299    ldz: *const lapackint,
8300    work: *mut Complex32,
8301    lwork: *const lapackint,
8302    rwork: *mut f32,
8303    info: *mut lapackint,
8304);
8305
8306define_lapack_ffi!(dhgeqz, DhgeqzFnPtr,
8307    job: *const c_char,
8308    compq: *const c_char,
8309    compz: *const c_char,
8310    n: *const lapackint,
8311    ilo: *const lapackint,
8312    ihi: *const lapackint,
8313    H: *mut f64,
8314    ldh: *const lapackint,
8315    T: *mut f64,
8316    ldt: *const lapackint,
8317    alphar: *mut f64,
8318    alphai: *mut f64,
8319    beta: *mut f64,
8320    Q: *mut f64,
8321    ldq: *const lapackint,
8322    Z: *mut f64,
8323    ldz: *const lapackint,
8324    work: *mut f64,
8325    lwork: *const lapackint,
8326    info: *mut lapackint,
8327);
8328
8329define_lapack_ffi!(shgeqz, ShgeqzFnPtr,
8330    job: *const c_char,
8331    compq: *const c_char,
8332    compz: *const c_char,
8333    n: *const lapackint,
8334    ilo: *const lapackint,
8335    ihi: *const lapackint,
8336    H: *mut f32,
8337    ldh: *const lapackint,
8338    T: *mut f32,
8339    ldt: *const lapackint,
8340    alphar: *mut f32,
8341    alphai: *mut f32,
8342    beta: *mut f32,
8343    Q: *mut f32,
8344    ldq: *const lapackint,
8345    Z: *mut f32,
8346    ldz: *const lapackint,
8347    work: *mut f32,
8348    lwork: *const lapackint,
8349    info: *mut lapackint,
8350);
8351
8352define_lapack_ffi!(zhgeqz, ZhgeqzFnPtr,
8353    job: *const c_char,
8354    compq: *const c_char,
8355    compz: *const c_char,
8356    n: *const lapackint,
8357    ilo: *const lapackint,
8358    ihi: *const lapackint,
8359    H: *mut Complex64,
8360    ldh: *const lapackint,
8361    T: *mut Complex64,
8362    ldt: *const lapackint,
8363    alpha: *mut Complex64,
8364    beta: *mut Complex64,
8365    Q: *mut Complex64,
8366    ldq: *const lapackint,
8367    Z: *mut Complex64,
8368    ldz: *const lapackint,
8369    work: *mut Complex64,
8370    lwork: *const lapackint,
8371    rwork: *mut f64,
8372    info: *mut lapackint,
8373);
8374
8375// HPCON
8376define_lapack_ffi!(chpcon, ChpconFnPtr,
8377    uplo: *const c_char,
8378    n: *const lapackint,
8379    AP: *const Complex32,
8380    ipiv: *const lapackint,
8381    anorm: *const f32,
8382    rcond: *mut f32,
8383    work: *mut Complex32,
8384    info: *mut lapackint,
8385);
8386
8387define_lapack_ffi!(zhpcon, ZhpconFnPtr,
8388    uplo: *const c_char,
8389    n: *const lapackint,
8390    AP: *const Complex64,
8391    ipiv: *const lapackint,
8392    anorm: *const f64,
8393    rcond: *mut f64,
8394    work: *mut Complex64,
8395    info: *mut lapackint,
8396);
8397
8398// HPEV
8399define_lapack_ffi!(chpev, ChpevFnPtr,
8400    jobz: *const c_char,
8401    uplo: *const c_char,
8402    n: *const lapackint,
8403    AP: *mut Complex32,
8404    W: *mut f32,
8405    Z: *mut Complex32,
8406    ldz: *const lapackint,
8407    work: *mut Complex32,
8408    rwork: *mut f32,
8409    info: *mut lapackint,
8410);
8411
8412define_lapack_ffi!(zhpev, ZhpevFnPtr,
8413    jobz: *const c_char,
8414    uplo: *const c_char,
8415    n: *const lapackint,
8416    AP: *mut Complex64,
8417    W: *mut f64,
8418    Z: *mut Complex64,
8419    ldz: *const lapackint,
8420    work: *mut Complex64,
8421    rwork: *mut f64,
8422    info: *mut lapackint,
8423);
8424
8425// HPEVD
8426define_lapack_ffi!(chpevd, ChpevdFnPtr,
8427    jobz: *const c_char,
8428    uplo: *const c_char,
8429    n: *const lapackint,
8430    AP: *mut Complex32,
8431    W: *mut f32,
8432    Z: *mut Complex32,
8433    ldz: *const lapackint,
8434    work: *mut Complex32,
8435    lwork: *const lapackint,
8436    rwork: *mut f32,
8437    lrwork: *const lapackint,
8438    iwork: *mut lapackint,
8439    liwork: *const lapackint,
8440    info: *mut lapackint,
8441);
8442
8443define_lapack_ffi!(zhpevd, ZhpevdFnPtr,
8444    jobz: *const c_char,
8445    uplo: *const c_char,
8446    n: *const lapackint,
8447    AP: *mut Complex64,
8448    W: *mut f64,
8449    Z: *mut Complex64,
8450    ldz: *const lapackint,
8451    work: *mut Complex64,
8452    lwork: *const lapackint,
8453    rwork: *mut f64,
8454    lrwork: *const lapackint,
8455    iwork: *mut lapackint,
8456    liwork: *const lapackint,
8457    info: *mut lapackint,
8458);
8459
8460// HPEVX
8461define_lapack_ffi!(chpevx, ChpevxFnPtr,
8462    jobz: *const c_char,
8463    range: *const c_char,
8464    uplo: *const c_char,
8465    n: *const lapackint,
8466    AP: *mut Complex32,
8467    vl: *const f32,
8468    vu: *const f32,
8469    il: *const lapackint,
8470    iu: *const lapackint,
8471    abstol: *const f32,
8472    m: *mut lapackint,
8473    W: *mut f32,
8474    Z: *mut Complex32,
8475    ldz: *const lapackint,
8476    work: *mut Complex32,
8477    rwork: *mut f32,
8478    iwork: *mut lapackint,
8479    IFAIL: *mut lapackint,
8480    info: *mut lapackint,
8481);
8482
8483define_lapack_ffi!(zhpevx, ZhpevxFnPtr,
8484    jobz: *const c_char,
8485    range: *const c_char,
8486    uplo: *const c_char,
8487    n: *const lapackint,
8488    AP: *mut Complex64,
8489    vl: *const f64,
8490    vu: *const f64,
8491    il: *const lapackint,
8492    iu: *const lapackint,
8493    abstol: *const f64,
8494    m: *mut lapackint,
8495    W: *mut f64,
8496    Z: *mut Complex64,
8497    ldz: *const lapackint,
8498    work: *mut Complex64,
8499    rwork: *mut f64,
8500    iwork: *mut lapackint,
8501    IFAIL: *mut lapackint,
8502    info: *mut lapackint,
8503);
8504
8505// HPGST
8506define_lapack_ffi!(chpgst, ChpgstFnPtr,
8507    itype: *const lapackint,
8508    uplo: *const c_char,
8509    n: *const lapackint,
8510    AP: *mut Complex32,
8511    BP: *const Complex32,
8512    info: *mut lapackint,
8513);
8514
8515define_lapack_ffi!(zhpgst, ZhpgstFnPtr,
8516    itype: *const lapackint,
8517    uplo: *const c_char,
8518    n: *const lapackint,
8519    AP: *mut Complex64,
8520    BP: *const Complex64,
8521    info: *mut lapackint,
8522);
8523
8524// HPGV
8525define_lapack_ffi!(chpgv, ChpgvFnPtr,
8526    itype: *const lapackint,
8527    jobz: *const c_char,
8528    uplo: *const c_char,
8529    n: *const lapackint,
8530    AP: *mut Complex32,
8531    BP: *mut Complex32,
8532    W: *mut f32,
8533    Z: *mut Complex32,
8534    ldz: *const lapackint,
8535    work: *mut Complex32,
8536    rwork: *mut f32,
8537    info: *mut lapackint,
8538);
8539
8540define_lapack_ffi!(zhpgv, ZhpgvFnPtr,
8541    itype: *const lapackint,
8542    jobz: *const c_char,
8543    uplo: *const c_char,
8544    n: *const lapackint,
8545    AP: *mut Complex64,
8546    BP: *mut Complex64,
8547    W: *mut f64,
8548    Z: *mut Complex64,
8549    ldz: *const lapackint,
8550    work: *mut Complex64,
8551    rwork: *mut f64,
8552    info: *mut lapackint,
8553);
8554
8555// HPGVD
8556define_lapack_ffi!(chpgvd, ChpgvdFnPtr,
8557    itype: *const lapackint,
8558    jobz: *const c_char,
8559    uplo: *const c_char,
8560    n: *const lapackint,
8561    AP: *mut Complex32,
8562    BP: *mut Complex32,
8563    W: *mut f32,
8564    Z: *mut Complex32,
8565    ldz: *const lapackint,
8566    work: *mut Complex32,
8567    lwork: *const lapackint,
8568    rwork: *mut f32,
8569    lrwork: *const lapackint,
8570    iwork: *mut lapackint,
8571    liwork: *const lapackint,
8572    info: *mut lapackint,
8573);
8574
8575define_lapack_ffi!(zhpgvd, ZhpgvdFnPtr,
8576    itype: *const lapackint,
8577    jobz: *const c_char,
8578    uplo: *const c_char,
8579    n: *const lapackint,
8580    AP: *mut Complex64,
8581    BP: *mut Complex64,
8582    W: *mut f64,
8583    Z: *mut Complex64,
8584    ldz: *const lapackint,
8585    work: *mut Complex64,
8586    lwork: *const lapackint,
8587    rwork: *mut f64,
8588    lrwork: *const lapackint,
8589    iwork: *mut lapackint,
8590    liwork: *const lapackint,
8591    info: *mut lapackint,
8592);
8593
8594// HPGVX
8595define_lapack_ffi!(chpgvx, ChpgvxFnPtr,
8596    itype: *const lapackint,
8597    jobz: *const c_char,
8598    range: *const c_char,
8599    uplo: *const c_char,
8600    n: *const lapackint,
8601    AP: *mut Complex32,
8602    BP: *mut Complex32,
8603    vl: *const f32,
8604    vu: *const f32,
8605    il: *const lapackint,
8606    iu: *const lapackint,
8607    abstol: *const f32,
8608    m: *mut lapackint,
8609    W: *mut f32,
8610    Z: *mut Complex32,
8611    ldz: *const lapackint,
8612    work: *mut Complex32,
8613    rwork: *mut f32,
8614    iwork: *mut lapackint,
8615    IFAIL: *mut lapackint,
8616    info: *mut lapackint,
8617);
8618
8619define_lapack_ffi!(zhpgvx, ZhpgvxFnPtr,
8620    itype: *const lapackint,
8621    jobz: *const c_char,
8622    range: *const c_char,
8623    uplo: *const c_char,
8624    n: *const lapackint,
8625    AP: *mut Complex64,
8626    BP: *mut Complex64,
8627    vl: *const f64,
8628    vu: *const f64,
8629    il: *const lapackint,
8630    iu: *const lapackint,
8631    abstol: *const f64,
8632    m: *mut lapackint,
8633    W: *mut f64,
8634    Z: *mut Complex64,
8635    ldz: *const lapackint,
8636    work: *mut Complex64,
8637    rwork: *mut f64,
8638    iwork: *mut lapackint,
8639    IFAIL: *mut lapackint,
8640    info: *mut lapackint,
8641);
8642
8643// HPRFS
8644define_lapack_ffi!(chprfs, ChprfsFnPtr,
8645    uplo: *const c_char,
8646    n: *const lapackint,
8647    nrhs: *const lapackint,
8648    AP: *const Complex32,
8649    AFP: *const Complex32,
8650    ipiv: *const lapackint,
8651    B: *const Complex32,
8652    ldb: *const lapackint,
8653    X: *mut Complex32,
8654    ldx: *const lapackint,
8655    ferr: *mut f32,
8656    berr: *mut f32,
8657    work: *mut Complex32,
8658    rwork: *mut f32,
8659    info: *mut lapackint,
8660);
8661
8662define_lapack_ffi!(zhprfs, ZhprfsFnPtr,
8663    uplo: *const c_char,
8664    n: *const lapackint,
8665    nrhs: *const lapackint,
8666    AP: *const Complex64,
8667    AFP: *const Complex64,
8668    ipiv: *const lapackint,
8669    B: *const Complex64,
8670    ldb: *const lapackint,
8671    X: *mut Complex64,
8672    ldx: *const lapackint,
8673    ferr: *mut f64,
8674    berr: *mut f64,
8675    work: *mut Complex64,
8676    rwork: *mut f64,
8677    info: *mut lapackint,
8678);
8679
8680// HPSV
8681define_lapack_ffi!(chpsv, ChpsvFnPtr,
8682    uplo: *const c_char,
8683    n: *const lapackint,
8684    nrhs: *const lapackint,
8685    AP: *mut Complex32,
8686    ipiv: *mut lapackint,
8687    B: *mut Complex32,
8688    ldb: *const lapackint,
8689    info: *mut lapackint,
8690);
8691
8692define_lapack_ffi!(zhpsv, ZhpsvFnPtr,
8693    uplo: *const c_char,
8694    n: *const lapackint,
8695    nrhs: *const lapackint,
8696    AP: *mut Complex64,
8697    ipiv: *mut lapackint,
8698    B: *mut Complex64,
8699    ldb: *const lapackint,
8700    info: *mut lapackint,
8701);
8702
8703// HPSVX
8704define_lapack_ffi!(chpsvx, ChpsvxFnPtr,
8705    fact: *const c_char,
8706    uplo: *const c_char,
8707    n: *const lapackint,
8708    nrhs: *const lapackint,
8709    AP: *const Complex32,
8710    AFP: *mut Complex32,
8711    ipiv: *mut lapackint,
8712    B: *const Complex32,
8713    ldb: *const lapackint,
8714    X: *mut Complex32,
8715    ldx: *const lapackint,
8716    rcond: *mut f32,
8717    ferr: *mut f32,
8718    berr: *mut f32,
8719    work: *mut Complex32,
8720    rwork: *mut f32,
8721    info: *mut lapackint,
8722);
8723
8724define_lapack_ffi!(zhpsvx, ZhpsvxFnPtr,
8725    fact: *const c_char,
8726    uplo: *const c_char,
8727    n: *const lapackint,
8728    nrhs: *const lapackint,
8729    AP: *const Complex64,
8730    AFP: *mut Complex64,
8731    ipiv: *mut lapackint,
8732    B: *const Complex64,
8733    ldb: *const lapackint,
8734    X: *mut Complex64,
8735    ldx: *const lapackint,
8736    rcond: *mut f64,
8737    ferr: *mut f64,
8738    berr: *mut f64,
8739    work: *mut Complex64,
8740    rwork: *mut f64,
8741    info: *mut lapackint,
8742);
8743
8744// HPTRD
8745define_lapack_ffi!(chptrd, ChptrdFnPtr,
8746    uplo: *const c_char,
8747    n: *const lapackint,
8748    AP: *mut Complex32,
8749    D: *mut f32,
8750    E: *mut f32,
8751    tau: *mut Complex32,
8752    info: *mut lapackint,
8753);
8754
8755define_lapack_ffi!(zhptrd, ZhptrdFnPtr,
8756    uplo: *const c_char,
8757    n: *const lapackint,
8758    AP: *mut Complex64,
8759    D: *mut f64,
8760    E: *mut f64,
8761    tau: *mut Complex64,
8762    info: *mut lapackint,
8763);
8764
8765// HPTRF
8766define_lapack_ffi!(chptrf, ChptrfFnPtr,
8767    uplo: *const c_char,
8768    n: *const lapackint,
8769    AP: *mut Complex32,
8770    ipiv: *mut lapackint,
8771    info: *mut lapackint,
8772);
8773
8774define_lapack_ffi!(zhptrf, ZhptrfFnPtr,
8775    uplo: *const c_char,
8776    n: *const lapackint,
8777    AP: *mut Complex64,
8778    ipiv: *mut lapackint,
8779    info: *mut lapackint,
8780);
8781
8782// HPTRI
8783define_lapack_ffi!(chptri, ChptriFnPtr,
8784    uplo: *const c_char,
8785    n: *const lapackint,
8786    AP: *mut Complex32,
8787    ipiv: *const lapackint,
8788    work: *mut Complex32,
8789    info: *mut lapackint,
8790);
8791
8792define_lapack_ffi!(zhptri, ZhptriFnPtr,
8793    uplo: *const c_char,
8794    n: *const lapackint,
8795    AP: *mut Complex64,
8796    ipiv: *const lapackint,
8797    work: *mut Complex64,
8798    info: *mut lapackint,
8799);
8800
8801// HPTRS
8802define_lapack_ffi!(chptrs, ChptrsFnPtr,
8803    uplo: *const c_char,
8804    n: *const lapackint,
8805    nrhs: *const lapackint,
8806    AP: *const Complex32,
8807    ipiv: *const lapackint,
8808    B: *mut Complex32,
8809    ldb: *const lapackint,
8810    info: *mut lapackint,
8811);
8812
8813define_lapack_ffi!(zhptrs, ZhptrsFnPtr,
8814    uplo: *const c_char,
8815    n: *const lapackint,
8816    nrhs: *const lapackint,
8817    AP: *const Complex64,
8818    ipiv: *const lapackint,
8819    B: *mut Complex64,
8820    ldb: *const lapackint,
8821    info: *mut lapackint,
8822);
8823
8824// HSEIN
8825define_lapack_ffi!(chsein, ChseinFnPtr,
8826    side: *const c_char,
8827    eigsrc: *const c_char,
8828    initv: *const c_char,
8829    select: *const lapackint,
8830    n: *const lapackint,
8831    H: *const Complex32,
8832    ldh: *const lapackint,
8833    W: *mut Complex32,
8834    VL: *mut Complex32,
8835    ldvl: *const lapackint,
8836    VR: *mut Complex32,
8837    ldvr: *const lapackint,
8838    mm: *const lapackint,
8839    m: *mut lapackint,
8840    work: *mut Complex32,
8841    rwork: *mut f32,
8842    IFAILL: *mut lapackint,
8843    IFAILR: *mut lapackint,
8844    info: *mut lapackint,
8845);
8846
8847define_lapack_ffi!(dhsein, DhseinFnPtr,
8848    side: *const c_char,
8849    eigsrc: *const c_char,
8850    initv: *const c_char,
8851    select: *mut lapackint,
8852    n: *const lapackint,
8853    H: *const f64,
8854    ldh: *const lapackint,
8855    WR: *mut f64,
8856    WI: *const f64,
8857    VL: *mut f64,
8858    ldvl: *const lapackint,
8859    VR: *mut f64,
8860    ldvr: *const lapackint,
8861    mm: *const lapackint,
8862    m: *mut lapackint,
8863    work: *mut f64,
8864    IFAILL: *mut lapackint,
8865    IFAILR: *mut lapackint,
8866    info: *mut lapackint,
8867);
8868
8869define_lapack_ffi!(shsein, ShseinFnPtr,
8870    side: *const c_char,
8871    eigsrc: *const c_char,
8872    initv: *const c_char,
8873    select: *mut lapackint,
8874    n: *const lapackint,
8875    H: *const f32,
8876    ldh: *const lapackint,
8877    WR: *mut f32,
8878    WI: *const f32,
8879    VL: *mut f32,
8880    ldvl: *const lapackint,
8881    VR: *mut f32,
8882    ldvr: *const lapackint,
8883    mm: *const lapackint,
8884    m: *mut lapackint,
8885    work: *mut f32,
8886    IFAILL: *mut lapackint,
8887    IFAILR: *mut lapackint,
8888    info: *mut lapackint,
8889);
8890
8891define_lapack_ffi!(zhsein, ZhseinFnPtr,
8892    side: *const c_char,
8893    eigsrc: *const c_char,
8894    initv: *const c_char,
8895    select: *const lapackint,
8896    n: *const lapackint,
8897    H: *const Complex64,
8898    ldh: *const lapackint,
8899    W: *mut Complex64,
8900    VL: *mut Complex64,
8901    ldvl: *const lapackint,
8902    VR: *mut Complex64,
8903    ldvr: *const lapackint,
8904    mm: *const lapackint,
8905    m: *mut lapackint,
8906    work: *mut Complex64,
8907    rwork: *mut f64,
8908    IFAILL: *mut lapackint,
8909    IFAILR: *mut lapackint,
8910    info: *mut lapackint,
8911);
8912
8913// HSEQR
8914define_lapack_ffi!(chseqr, ChseqrFnPtr,
8915    job: *const c_char,
8916    compz: *const c_char,
8917    n: *const lapackint,
8918    ilo: *const lapackint,
8919    ihi: *const lapackint,
8920    H: *mut Complex32,
8921    ldh: *const lapackint,
8922    W: *mut Complex32,
8923    Z: *mut Complex32,
8924    ldz: *const lapackint,
8925    work: *mut Complex32,
8926    lwork: *const lapackint,
8927    info: *mut lapackint,
8928);
8929
8930define_lapack_ffi!(dhseqr, DhseqrFnPtr,
8931    job: *const c_char,
8932    compz: *const c_char,
8933    n: *const lapackint,
8934    ilo: *const lapackint,
8935    ihi: *const lapackint,
8936    H: *mut f64,
8937    ldh: *const lapackint,
8938    WR: *mut f64,
8939    WI: *mut f64,
8940    Z: *mut f64,
8941    ldz: *const lapackint,
8942    work: *mut f64,
8943    lwork: *const lapackint,
8944    info: *mut lapackint,
8945);
8946
8947define_lapack_ffi!(shseqr, ShseqrFnPtr,
8948    job: *const c_char,
8949    compz: *const c_char,
8950    n: *const lapackint,
8951    ilo: *const lapackint,
8952    ihi: *const lapackint,
8953    H: *mut f32,
8954    ldh: *const lapackint,
8955    WR: *mut f32,
8956    WI: *mut f32,
8957    Z: *mut f32,
8958    ldz: *const lapackint,
8959    work: *mut f32,
8960    lwork: *const lapackint,
8961    info: *mut lapackint,
8962);
8963
8964define_lapack_ffi!(zhseqr, ZhseqrFnPtr,
8965    job: *const c_char,
8966    compz: *const c_char,
8967    n: *const lapackint,
8968    ilo: *const lapackint,
8969    ihi: *const lapackint,
8970    H: *mut Complex64,
8971    ldh: *const lapackint,
8972    W: *mut Complex64,
8973    Z: *mut Complex64,
8974    ldz: *const lapackint,
8975    work: *mut Complex64,
8976    lwork: *const lapackint,
8977    info: *mut lapackint,
8978);
8979
8980// ILAVER
8981define_lapack_ffi!(ilaver, IlaverFnPtr,
8982    vers_major: *mut lapackint,
8983    vers_minor: *mut lapackint,
8984    vers_patch: *mut lapackint,
8985);
8986
8987// LACGV
8988define_lapack_ffi!(clacgv, ClacgvFnPtr,
8989    n: *const lapackint,
8990    X: *mut Complex32,
8991    incx: *const lapackint,
8992);
8993
8994define_lapack_ffi!(zlacgv, ZlacgvFnPtr,
8995    n: *const lapackint,
8996    X: *mut Complex64,
8997    incx: *const lapackint,
8998);
8999
9000// LACN2
9001define_lapack_ffi!(clacn2, Clacn2FnPtr,
9002    n: *const lapackint,
9003    V: *mut Complex32,
9004    X: *mut Complex32,
9005    est: *mut f32,
9006    kase: *mut lapackint,
9007    ISAVE: *mut lapackint,
9008);
9009
9010define_lapack_ffi!(dlacn2, Dlacn2FnPtr,
9011    n: *const lapackint,
9012    V: *mut f64,
9013    X: *mut f64,
9014    ISGN: *mut lapackint,
9015    est: *mut f64,
9016    kase: *mut lapackint,
9017    ISAVE: *mut lapackint,
9018);
9019
9020define_lapack_ffi!(slacn2, Slacn2FnPtr,
9021    n: *const lapackint,
9022    V: *mut f32,
9023    X: *mut f32,
9024    ISGN: *mut lapackint,
9025    est: *mut f32,
9026    kase: *mut lapackint,
9027    ISAVE: *mut lapackint,
9028);
9029
9030define_lapack_ffi!(zlacn2, Zlacn2FnPtr,
9031    n: *const lapackint,
9032    V: *mut Complex64,
9033    X: *mut Complex64,
9034    est: *mut f64,
9035    kase: *mut lapackint,
9036    ISAVE: *mut lapackint,
9037);
9038
9039// LACP2
9040define_lapack_ffi!(clacp2, Clacp2FnPtr,
9041    uplo: *const c_char,
9042    m: *const lapackint,
9043    n: *const lapackint,
9044    A: *const f32,
9045    lda: *const lapackint,
9046    B: *mut Complex32,
9047    ldb: *const lapackint,
9048);
9049
9050define_lapack_ffi!(zlacp2, Zlacp2FnPtr,
9051    uplo: *const c_char,
9052    m: *const lapackint,
9053    n: *const lapackint,
9054    A: *const f64,
9055    lda: *const lapackint,
9056    B: *mut Complex64,
9057    ldb: *const lapackint,
9058);
9059
9060// LACPY
9061define_lapack_ffi!(clacpy, ClacpyFnPtr,
9062    uplo: *const c_char,
9063    m: *const lapackint,
9064    n: *const lapackint,
9065    A: *const Complex32,
9066    lda: *const lapackint,
9067    B: *mut Complex32,
9068    ldb: *const lapackint,
9069);
9070
9071define_lapack_ffi!(dlacpy, DlacpyFnPtr,
9072    uplo: *const c_char,
9073    m: *const lapackint,
9074    n: *const lapackint,
9075    A: *const f64,
9076    lda: *const lapackint,
9077    B: *mut f64,
9078    ldb: *const lapackint,
9079);
9080
9081define_lapack_ffi!(slacpy, SlacpyFnPtr,
9082    uplo: *const c_char,
9083    m: *const lapackint,
9084    n: *const lapackint,
9085    A: *const f32,
9086    lda: *const lapackint,
9087    B: *mut f32,
9088    ldb: *const lapackint,
9089);
9090
9091define_lapack_ffi!(zlacpy, ZlacpyFnPtr,
9092    uplo: *const c_char,
9093    m: *const lapackint,
9094    n: *const lapackint,
9095    A: *const Complex64,
9096    lda: *const lapackint,
9097    B: *mut Complex64,
9098    ldb: *const lapackint,
9099);
9100
9101// LACRM
9102define_lapack_ffi!(clacrm, ClacrmFnPtr,
9103    m: *const lapackint,
9104    n: *const lapackint,
9105    A: *const Complex32,
9106    lda: *const lapackint,
9107    B: *const f32,
9108    ldb: *const lapackint,
9109    C: *mut Complex32,
9110    ldc: *const lapackint,
9111    rwork: *mut f32,
9112);
9113
9114define_lapack_ffi!(zlacrm, ZlacrmFnPtr,
9115    m: *const lapackint,
9116    n: *const lapackint,
9117    A: *const Complex64,
9118    lda: *const lapackint,
9119    B: *const f64,
9120    ldb: *const lapackint,
9121    C: *mut Complex64,
9122    ldc: *const lapackint,
9123    rwork: *mut f64,
9124);
9125
9126// LAG2C
9127define_lapack_ffi!(zlag2c, Zlag2cFnPtr,
9128    m: *const lapackint,
9129    n: *const lapackint,
9130    A: *const Complex64,
9131    lda: *const lapackint,
9132    SA: *mut Complex32,
9133    ldsa: *const lapackint,
9134    info: *mut lapackint,
9135);
9136
9137// LAG2D
9138define_lapack_ffi!(slag2d, Slag2dFnPtr,
9139    m: *const lapackint,
9140    n: *const lapackint,
9141    SA: *const f32,
9142    ldsa: *const lapackint,
9143    A: *mut f64,
9144    lda: *const lapackint,
9145    info: *mut lapackint,
9146);
9147
9148// LAG2S
9149define_lapack_ffi!(dlag2s, Dlag2sFnPtr,
9150    m: *const lapackint,
9151    n: *const lapackint,
9152    A: *const f64,
9153    lda: *const lapackint,
9154    SA: *mut f32,
9155    ldsa: *const lapackint,
9156    info: *mut lapackint,
9157);
9158
9159// LAG2Z
9160define_lapack_ffi!(clag2z, Clag2zFnPtr,
9161    m: *const lapackint,
9162    n: *const lapackint,
9163    SA: *const Complex32,
9164    ldsa: *const lapackint,
9165    A: *mut Complex64,
9166    lda: *const lapackint,
9167    info: *mut lapackint,
9168);
9169
9170// LAGGE
9171define_lapack_ffi!(clagge, ClaggeFnPtr,
9172    m: *const lapackint,
9173    n: *const lapackint,
9174    kl: *const lapackint,
9175    ku: *const lapackint,
9176    D: *const f32,
9177    A: *mut Complex32,
9178    lda: *const lapackint,
9179    iseed: *mut lapackint,
9180    work: *mut Complex32,
9181    info: *mut lapackint,
9182);
9183
9184define_lapack_ffi!(dlagge, DlaggeFnPtr,
9185    m: *const lapackint,
9186    n: *const lapackint,
9187    kl: *const lapackint,
9188    ku: *const lapackint,
9189    D: *const f64,
9190    A: *mut f64,
9191    lda: *const lapackint,
9192    iseed: *mut lapackint,
9193    work: *mut f64,
9194    info: *mut lapackint,
9195);
9196
9197define_lapack_ffi!(slagge, SlaggeFnPtr,
9198    m: *const lapackint,
9199    n: *const lapackint,
9200    kl: *const lapackint,
9201    ku: *const lapackint,
9202    D: *const f32,
9203    A: *mut f32,
9204    lda: *const lapackint,
9205    iseed: *mut lapackint,
9206    work: *mut f32,
9207    info: *mut lapackint,
9208);
9209
9210define_lapack_ffi!(zlagge, ZlaggeFnPtr,
9211    m: *const lapackint,
9212    n: *const lapackint,
9213    kl: *const lapackint,
9214    ku: *const lapackint,
9215    D: *const f64,
9216    A: *mut Complex64,
9217    lda: *const lapackint,
9218    iseed: *mut lapackint,
9219    work: *mut Complex64,
9220    info: *mut lapackint,
9221);
9222
9223// LAGHE
9224define_lapack_ffi!(claghe, ClagheFnPtr,
9225    n: *const lapackint,
9226    k: *const lapackint,
9227    D: *const f32,
9228    A: *mut Complex32,
9229    lda: *const lapackint,
9230    iseed: *mut lapackint,
9231    work: *mut Complex32,
9232    info: *mut lapackint,
9233);
9234
9235define_lapack_ffi!(zlaghe, ZlagheFnPtr,
9236    n: *const lapackint,
9237    k: *const lapackint,
9238    D: *const f64,
9239    A: *mut Complex64,
9240    lda: *const lapackint,
9241    iseed: *mut lapackint,
9242    work: *mut Complex64,
9243    info: *mut lapackint,
9244);
9245
9246// LAGSY
9247define_lapack_ffi!(clagsy, ClagsyFnPtr,
9248    n: *const lapackint,
9249    k: *const lapackint,
9250    D: *const f32,
9251    A: *mut Complex32,
9252    lda: *const lapackint,
9253    iseed: *mut lapackint,
9254    work: *mut Complex32,
9255    info: *mut lapackint,
9256);
9257
9258define_lapack_ffi!(dlagsy, DlagsyFnPtr,
9259    n: *const lapackint,
9260    k: *const lapackint,
9261    D: *const f64,
9262    A: *mut f64,
9263    lda: *const lapackint,
9264    iseed: *mut lapackint,
9265    work: *mut f64,
9266    info: *mut lapackint,
9267);
9268
9269define_lapack_ffi!(slagsy, SlagsyFnPtr,
9270    n: *const lapackint,
9271    k: *const lapackint,
9272    D: *const f32,
9273    A: *mut f32,
9274    lda: *const lapackint,
9275    iseed: *mut lapackint,
9276    work: *mut f32,
9277    info: *mut lapackint,
9278);
9279
9280define_lapack_ffi!(zlagsy, ZlagsyFnPtr,
9281    n: *const lapackint,
9282    k: *const lapackint,
9283    D: *const f64,
9284    A: *mut Complex64,
9285    lda: *const lapackint,
9286    iseed: *mut lapackint,
9287    work: *mut Complex64,
9288    info: *mut lapackint,
9289);
9290
9291// LAMCH
9292define_lapack_ffi!(dlamch, DlamchFnPtr,
9293    cmach: *const c_char,
9294);
9295
9296define_lapack_ffi!(slamch, SlamchFnPtr,
9297    cmach: *const c_char,
9298);
9299
9300// LANGB
9301define_lapack_ffi!(clangb, ClangbFnPtr,
9302    norm: *const c_char,
9303    n: *const lapackint,
9304    kl: *const lapackint,
9305    ku: *const lapackint,
9306    AB: *const Complex32,
9307    ldab: *const lapackint,
9308    work: *mut f32,
9309);
9310
9311define_lapack_ffi!(dlangb, DlangbFnPtr,
9312    norm: *const c_char,
9313    n: *const lapackint,
9314    kl: *const lapackint,
9315    ku: *const lapackint,
9316    AB: *const f64,
9317    ldab: *const lapackint,
9318    work: *mut f64,
9319);
9320
9321define_lapack_ffi!(slangb, SlangbFnPtr,
9322    norm: *const c_char,
9323    n: *const lapackint,
9324    kl: *const lapackint,
9325    ku: *const lapackint,
9326    AB: *const f32,
9327    ldab: *const lapackint,
9328    work: *mut f32,
9329);
9330
9331define_lapack_ffi!(zlangb, ZlangbFnPtr,
9332    norm: *const c_char,
9333    n: *const lapackint,
9334    kl: *const lapackint,
9335    ku: *const lapackint,
9336    AB: *const Complex64,
9337    ldab: *const lapackint,
9338    work: *mut f64,
9339);
9340
9341// LANGE
9342define_lapack_ffi!(clange, ClangeFnPtr,
9343    norm: *const c_char,
9344    m: *const lapackint,
9345    n: *const lapackint,
9346    A: *const Complex32,
9347    lda: *const lapackint,
9348    work: *mut f32,
9349);
9350
9351define_lapack_ffi!(dlange, DlangeFnPtr,
9352    norm: *const c_char,
9353    m: *const lapackint,
9354    n: *const lapackint,
9355    A: *const f64,
9356    lda: *const lapackint,
9357    work: *mut f64,
9358);
9359
9360define_lapack_ffi!(slange, SlangeFnPtr,
9361    norm: *const c_char,
9362    m: *const lapackint,
9363    n: *const lapackint,
9364    A: *const f32,
9365    lda: *const lapackint,
9366    work: *mut f32,
9367);
9368
9369define_lapack_ffi!(zlange, ZlangeFnPtr,
9370    norm: *const c_char,
9371    m: *const lapackint,
9372    n: *const lapackint,
9373    A: *const Complex64,
9374    lda: *const lapackint,
9375    work: *mut f64,
9376);
9377
9378// LANGT
9379define_lapack_ffi!(clangt, ClangtFnPtr,
9380    norm: *const c_char,
9381    n: *const lapackint,
9382    DL: *const Complex32,
9383    D: *const Complex32,
9384    DU: *const Complex32,
9385);
9386
9387define_lapack_ffi!(dlangt, DlangtFnPtr,
9388    norm: *const c_char,
9389    n: *const lapackint,
9390    DL: *const f64,
9391    D: *const f64,
9392    DU: *const f64,
9393);
9394
9395define_lapack_ffi!(slangt, SlangtFnPtr,
9396    norm: *const c_char,
9397    n: *const lapackint,
9398    DL: *const f32,
9399    D: *const f32,
9400    DU: *const f32,
9401);
9402
9403define_lapack_ffi!(zlangt, ZlangtFnPtr,
9404    norm: *const c_char,
9405    n: *const lapackint,
9406    DL: *const Complex64,
9407    D: *const Complex64,
9408    DU: *const Complex64,
9409);
9410
9411// LANHB
9412define_lapack_ffi!(clanhb, ClanhbFnPtr,
9413    norm: *const c_char,
9414    uplo: *const c_char,
9415    n: *const lapackint,
9416    k: *const lapackint,
9417    AB: *const Complex32,
9418    ldab: *const lapackint,
9419    work: *mut f32,
9420);
9421
9422define_lapack_ffi!(zlanhb, ZlanhbFnPtr,
9423    norm: *const c_char,
9424    uplo: *const c_char,
9425    n: *const lapackint,
9426    k: *const lapackint,
9427    AB: *const Complex64,
9428    ldab: *const lapackint,
9429    work: *mut f64,
9430);
9431
9432// LANHE
9433define_lapack_ffi!(clanhe, ClanheFnPtr,
9434    norm: *const c_char,
9435    uplo: *const c_char,
9436    n: *const lapackint,
9437    A: *const Complex32,
9438    lda: *const lapackint,
9439    work: *mut f32,
9440);
9441
9442define_lapack_ffi!(zlanhe, ZlanheFnPtr,
9443    norm: *const c_char,
9444    uplo: *const c_char,
9445    n: *const lapackint,
9446    A: *const Complex64,
9447    lda: *const lapackint,
9448    work: *mut f64,
9449);
9450
9451// LANHP
9452define_lapack_ffi!(clanhp, ClanhpFnPtr,
9453    norm: *const c_char,
9454    uplo: *const c_char,
9455    n: *const lapackint,
9456    AP: *const Complex32,
9457    work: *mut f32,
9458);
9459
9460define_lapack_ffi!(zlanhp, ZlanhpFnPtr,
9461    norm: *const c_char,
9462    uplo: *const c_char,
9463    n: *const lapackint,
9464    AP: *const Complex64,
9465    work: *mut f64,
9466);
9467
9468// LANHS
9469define_lapack_ffi!(clanhs, ClanhsFnPtr,
9470    norm: *const c_char,
9471    n: *const lapackint,
9472    A: *const Complex32,
9473    lda: *const lapackint,
9474    work: *mut f32,
9475);
9476
9477define_lapack_ffi!(dlanhs, DlanhsFnPtr,
9478    norm: *const c_char,
9479    n: *const lapackint,
9480    A: *const f64,
9481    lda: *const lapackint,
9482    work: *mut f64,
9483);
9484
9485define_lapack_ffi!(slanhs, SlanhsFnPtr,
9486    norm: *const c_char,
9487    n: *const lapackint,
9488    A: *const f32,
9489    lda: *const lapackint,
9490    work: *mut f32,
9491);
9492
9493define_lapack_ffi!(zlanhs, ZlanhsFnPtr,
9494    norm: *const c_char,
9495    n: *const lapackint,
9496    A: *const Complex64,
9497    lda: *const lapackint,
9498    work: *mut f64,
9499);
9500
9501// LANHT
9502define_lapack_ffi!(clanht, ClanhtFnPtr,
9503    norm: *const c_char,
9504    n: *const lapackint,
9505    D: *const f32,
9506    E: *const Complex32,
9507);
9508
9509define_lapack_ffi!(zlanht, ZlanhtFnPtr,
9510    norm: *const c_char,
9511    n: *const lapackint,
9512    D: *const f64,
9513    E: *const Complex64,
9514);
9515
9516// LANSB
9517define_lapack_ffi!(clansb, ClansbFnPtr,
9518    norm: *const c_char,
9519    uplo: *const c_char,
9520    n: *const lapackint,
9521    k: *const lapackint,
9522    AB: *const Complex32,
9523    ldab: *const lapackint,
9524    work: *mut f32,
9525);
9526
9527define_lapack_ffi!(dlansb, DlansbFnPtr,
9528    norm: *const c_char,
9529    uplo: *const c_char,
9530    n: *const lapackint,
9531    k: *const lapackint,
9532    AB: *const f64,
9533    ldab: *const lapackint,
9534    work: *mut f64,
9535);
9536
9537define_lapack_ffi!(slansb, SlansbFnPtr,
9538    norm: *const c_char,
9539    uplo: *const c_char,
9540    n: *const lapackint,
9541    k: *const lapackint,
9542    AB: *const f32,
9543    ldab: *const lapackint,
9544    work: *mut f32,
9545);
9546
9547define_lapack_ffi!(zlansb, ZlansbFnPtr,
9548    norm: *const c_char,
9549    uplo: *const c_char,
9550    n: *const lapackint,
9551    k: *const lapackint,
9552    AB: *const Complex64,
9553    ldab: *const lapackint,
9554    work: *mut f64,
9555);
9556
9557// LANSP
9558define_lapack_ffi!(clansp, ClanspFnPtr,
9559    norm: *const c_char,
9560    uplo: *const c_char,
9561    n: *const lapackint,
9562    AP: *const Complex32,
9563    work: *mut f32,
9564);
9565
9566define_lapack_ffi!(dlansp, DlanspFnPtr,
9567    norm: *const c_char,
9568    uplo: *const c_char,
9569    n: *const lapackint,
9570    AP: *const f64,
9571    work: *mut f64,
9572);
9573
9574define_lapack_ffi!(slansp, SlanspFnPtr,
9575    norm: *const c_char,
9576    uplo: *const c_char,
9577    n: *const lapackint,
9578    AP: *const f32,
9579    work: *mut f32,
9580);
9581
9582define_lapack_ffi!(zlansp, ZlanspFnPtr,
9583    norm: *const c_char,
9584    uplo: *const c_char,
9585    n: *const lapackint,
9586    AP: *const Complex64,
9587    work: *mut f64,
9588);
9589
9590// LANST
9591define_lapack_ffi!(dlanst, DlanstFnPtr,
9592    norm: *const c_char,
9593    n: *const lapackint,
9594    D: *const f64,
9595    E: *const f64,
9596);
9597
9598define_lapack_ffi!(slanst, SlanstFnPtr,
9599    norm: *const c_char,
9600    n: *const lapackint,
9601    D: *const f32,
9602    E: *const f32,
9603);
9604
9605// LANSY
9606define_lapack_ffi!(clansy, ClansyFnPtr,
9607    norm: *const c_char,
9608    uplo: *const c_char,
9609    n: *const lapackint,
9610    A: *const Complex32,
9611    lda: *const lapackint,
9612    work: *mut f32,
9613);
9614
9615define_lapack_ffi!(dlansy, DlansyFnPtr,
9616    norm: *const c_char,
9617    uplo: *const c_char,
9618    n: *const lapackint,
9619    A: *const f64,
9620    lda: *const lapackint,
9621    work: *mut f64,
9622);
9623
9624define_lapack_ffi!(slansy, SlansyFnPtr,
9625    norm: *const c_char,
9626    uplo: *const c_char,
9627    n: *const lapackint,
9628    A: *const f32,
9629    lda: *const lapackint,
9630    work: *mut f32,
9631);
9632
9633define_lapack_ffi!(zlansy, ZlansyFnPtr,
9634    norm: *const c_char,
9635    uplo: *const c_char,
9636    n: *const lapackint,
9637    A: *const Complex64,
9638    lda: *const lapackint,
9639    work: *mut f64,
9640);
9641
9642// LANTB
9643define_lapack_ffi!(clantb, ClantbFnPtr,
9644    norm: *const c_char,
9645    uplo: *const c_char,
9646    diag: *const c_char,
9647    n: *const lapackint,
9648    k: *const lapackint,
9649    AB: *const Complex32,
9650    ldab: *const lapackint,
9651    work: *mut f32,
9652);
9653
9654define_lapack_ffi!(dlantb, DlantbFnPtr,
9655    norm: *const c_char,
9656    uplo: *const c_char,
9657    diag: *const c_char,
9658    n: *const lapackint,
9659    k: *const lapackint,
9660    AB: *const f64,
9661    ldab: *const lapackint,
9662    work: *mut f64,
9663);
9664
9665define_lapack_ffi!(slantb, SlantbFnPtr,
9666    norm: *const c_char,
9667    uplo: *const c_char,
9668    diag: *const c_char,
9669    n: *const lapackint,
9670    k: *const lapackint,
9671    AB: *const f32,
9672    ldab: *const lapackint,
9673    work: *mut f32,
9674);
9675
9676define_lapack_ffi!(zlantb, ZlantbFnPtr,
9677    norm: *const c_char,
9678    uplo: *const c_char,
9679    diag: *const c_char,
9680    n: *const lapackint,
9681    k: *const lapackint,
9682    AB: *const Complex64,
9683    ldab: *const lapackint,
9684    work: *mut f64,
9685);
9686
9687// LANTP
9688define_lapack_ffi!(clantp, ClantpFnPtr,
9689    norm: *const c_char,
9690    uplo: *const c_char,
9691    diag: *const c_char,
9692    n: *const lapackint,
9693    AP: *const Complex32,
9694    work: *mut f32,
9695);
9696
9697define_lapack_ffi!(dlantp, DlantpFnPtr,
9698    norm: *const c_char,
9699    uplo: *const c_char,
9700    diag: *const c_char,
9701    n: *const lapackint,
9702    AP: *const f64,
9703    work: *mut f64,
9704);
9705
9706define_lapack_ffi!(slantp, SlantpFnPtr,
9707    norm: *const c_char,
9708    uplo: *const c_char,
9709    diag: *const c_char,
9710    n: *const lapackint,
9711    AP: *const f32,
9712    work: *mut f32,
9713);
9714
9715define_lapack_ffi!(zlantp, ZlantpFnPtr,
9716    norm: *const c_char,
9717    uplo: *const c_char,
9718    diag: *const c_char,
9719    n: *const lapackint,
9720    AP: *const Complex64,
9721    work: *mut f64,
9722);
9723
9724// LANTR
9725define_lapack_ffi!(clantr, ClantrFnPtr,
9726    norm: *const c_char,
9727    uplo: *const c_char,
9728    diag: *const c_char,
9729    m: *const lapackint,
9730    n: *const lapackint,
9731    A: *const Complex32,
9732    lda: *const lapackint,
9733    work: *mut f32,
9734);
9735
9736define_lapack_ffi!(dlantr, DlantrFnPtr,
9737    norm: *const c_char,
9738    uplo: *const c_char,
9739    diag: *const c_char,
9740    m: *const lapackint,
9741    n: *const lapackint,
9742    A: *const f64,
9743    lda: *const lapackint,
9744    work: *mut f64,
9745);
9746
9747define_lapack_ffi!(slantr, SlantrFnPtr,
9748    norm: *const c_char,
9749    uplo: *const c_char,
9750    diag: *const c_char,
9751    m: *const lapackint,
9752    n: *const lapackint,
9753    A: *const f32,
9754    lda: *const lapackint,
9755    work: *mut f32,
9756);
9757
9758define_lapack_ffi!(zlantr, ZlantrFnPtr,
9759    norm: *const c_char,
9760    uplo: *const c_char,
9761    diag: *const c_char,
9762    m: *const lapackint,
9763    n: *const lapackint,
9764    A: *const Complex64,
9765    lda: *const lapackint,
9766    work: *mut f64,
9767);
9768
9769// LAPMR
9770define_lapack_ffi!(clapmr, ClapmrFnPtr,
9771    forwrd: *const lapackint,
9772    m: *const lapackint,
9773    n: *const lapackint,
9774    X: *mut Complex32,
9775    ldx: *const lapackint,
9776    K: *mut lapackint,
9777);
9778
9779define_lapack_ffi!(dlapmr, DlapmrFnPtr,
9780    forwrd: *const lapackint,
9781    m: *const lapackint,
9782    n: *const lapackint,
9783    X: *mut f64,
9784    ldx: *const lapackint,
9785    K: *mut lapackint,
9786);
9787
9788define_lapack_ffi!(slapmr, SlapmrFnPtr,
9789    forwrd: *const lapackint,
9790    m: *const lapackint,
9791    n: *const lapackint,
9792    X: *mut f32,
9793    ldx: *const lapackint,
9794    K: *mut lapackint,
9795);
9796
9797define_lapack_ffi!(zlapmr, ZlapmrFnPtr,
9798    forwrd: *const lapackint,
9799    m: *const lapackint,
9800    n: *const lapackint,
9801    X: *mut Complex64,
9802    ldx: *const lapackint,
9803    K: *mut lapackint,
9804);
9805
9806// LAPMT
9807define_lapack_ffi!(clapmt, ClapmtFnPtr,
9808    forwrd: *const lapackint,
9809    m: *const lapackint,
9810    n: *const lapackint,
9811    X: *mut Complex32,
9812    ldx: *const lapackint,
9813    K: *mut lapackint,
9814);
9815
9816define_lapack_ffi!(dlapmt, DlapmtFnPtr,
9817    forwrd: *const lapackint,
9818    m: *const lapackint,
9819    n: *const lapackint,
9820    X: *mut f64,
9821    ldx: *const lapackint,
9822    K: *mut lapackint,
9823);
9824
9825define_lapack_ffi!(slapmt, SlapmtFnPtr,
9826    forwrd: *const lapackint,
9827    m: *const lapackint,
9828    n: *const lapackint,
9829    X: *mut f32,
9830    ldx: *const lapackint,
9831    K: *mut lapackint,
9832);
9833
9834define_lapack_ffi!(zlapmt, ZlapmtFnPtr,
9835    forwrd: *const lapackint,
9836    m: *const lapackint,
9837    n: *const lapackint,
9838    X: *mut Complex64,
9839    ldx: *const lapackint,
9840    K: *mut lapackint,
9841);
9842
9843// LAPY2
9844define_lapack_ffi!(dlapy2, Dlapy2FnPtr,
9845    x: *const f64,
9846    y: *const f64,
9847);
9848
9849define_lapack_ffi!(slapy2, Slapy2FnPtr,
9850    x: *const f32,
9851    y: *const f32,
9852);
9853
9854// LAPY3
9855define_lapack_ffi!(dlapy3, Dlapy3FnPtr,
9856    x: *const f64,
9857    y: *const f64,
9858    z: *const f64,
9859);
9860
9861define_lapack_ffi!(slapy3, Slapy3FnPtr,
9862    x: *const f32,
9863    y: *const f32,
9864    z: *const f32,
9865);
9866
9867// LARCM
9868define_lapack_ffi!(clarcm, ClarcmFnPtr,
9869    m: *const lapackint,
9870    n: *const lapackint,
9871    A: *const f32,
9872    lda: *const lapackint,
9873    B: *const Complex32,
9874    ldb: *const lapackint,
9875    C: *mut Complex32,
9876    ldc: *const lapackint,
9877    rwork: *mut f32,
9878);
9879
9880define_lapack_ffi!(zlarcm, ZlarcmFnPtr,
9881    m: *const lapackint,
9882    n: *const lapackint,
9883    A: *const f64,
9884    lda: *const lapackint,
9885    B: *const Complex64,
9886    ldb: *const lapackint,
9887    C: *mut Complex64,
9888    ldc: *const lapackint,
9889    rwork: *mut f64,
9890);
9891
9892// LARF
9893define_lapack_ffi!(clarf, ClarfFnPtr,
9894    side: *const c_char,
9895    m: *const lapackint,
9896    n: *const lapackint,
9897    V: *const Complex32,
9898    incv: *const lapackint,
9899    tau: *const Complex32,
9900    C: *mut Complex32,
9901    ldc: *const lapackint,
9902    work: *mut Complex32,
9903);
9904
9905define_lapack_ffi!(dlarf, DlarfFnPtr,
9906    side: *const c_char,
9907    m: *const lapackint,
9908    n: *const lapackint,
9909    V: *const f64,
9910    incv: *const lapackint,
9911    tau: *const f64,
9912    C: *mut f64,
9913    ldc: *const lapackint,
9914    work: *mut f64,
9915);
9916
9917define_lapack_ffi!(slarf, SlarfFnPtr,
9918    side: *const c_char,
9919    m: *const lapackint,
9920    n: *const lapackint,
9921    V: *const f32,
9922    incv: *const lapackint,
9923    tau: *const f32,
9924    C: *mut f32,
9925    ldc: *const lapackint,
9926    work: *mut f32,
9927);
9928
9929define_lapack_ffi!(zlarf, ZlarfFnPtr,
9930    side: *const c_char,
9931    m: *const lapackint,
9932    n: *const lapackint,
9933    V: *const Complex64,
9934    incv: *const lapackint,
9935    tau: *const Complex64,
9936    C: *mut Complex64,
9937    ldc: *const lapackint,
9938    work: *mut Complex64,
9939);
9940
9941// LARFB
9942define_lapack_ffi!(clarfb, ClarfbFnPtr,
9943    side: *const c_char,
9944    trans: *const c_char,
9945    direct: *const c_char,
9946    storev: *const c_char,
9947    m: *const lapackint,
9948    n: *const lapackint,
9949    k: *const lapackint,
9950    V: *const Complex32,
9951    ldv: *const lapackint,
9952    T: *const Complex32,
9953    ldt: *const lapackint,
9954    C: *mut Complex32,
9955    ldc: *const lapackint,
9956    work: *mut Complex32,
9957    ldwork: *const lapackint,
9958);
9959
9960define_lapack_ffi!(dlarfb, DlarfbFnPtr,
9961    side: *const c_char,
9962    trans: *const c_char,
9963    direct: *const c_char,
9964    storev: *const c_char,
9965    m: *const lapackint,
9966    n: *const lapackint,
9967    k: *const lapackint,
9968    V: *const f64,
9969    ldv: *const lapackint,
9970    T: *const f64,
9971    ldt: *const lapackint,
9972    C: *mut f64,
9973    ldc: *const lapackint,
9974    work: *mut f64,
9975    ldwork: *const lapackint,
9976);
9977
9978define_lapack_ffi!(slarfb, SlarfbFnPtr,
9979    side: *const c_char,
9980    trans: *const c_char,
9981    direct: *const c_char,
9982    storev: *const c_char,
9983    m: *const lapackint,
9984    n: *const lapackint,
9985    k: *const lapackint,
9986    V: *const f32,
9987    ldv: *const lapackint,
9988    T: *const f32,
9989    ldt: *const lapackint,
9990    C: *mut f32,
9991    ldc: *const lapackint,
9992    work: *mut f32,
9993    ldwork: *const lapackint,
9994);
9995
9996define_lapack_ffi!(zlarfb, ZlarfbFnPtr,
9997    side: *const c_char,
9998    trans: *const c_char,
9999    direct: *const c_char,
10000    storev: *const c_char,
10001    m: *const lapackint,
10002    n: *const lapackint,
10003    k: *const lapackint,
10004    V: *const Complex64,
10005    ldv: *const lapackint,
10006    T: *const Complex64,
10007    ldt: *const lapackint,
10008    C: *mut Complex64,
10009    ldc: *const lapackint,
10010    work: *mut Complex64,
10011    ldwork: *const lapackint,
10012);
10013
10014// LARFG
10015define_lapack_ffi!(clarfg, ClarfgFnPtr,
10016    n: *const lapackint,
10017    alpha: *mut Complex32,
10018    X: *mut Complex32,
10019    incx: *const lapackint,
10020    tau: *mut Complex32,
10021);
10022
10023define_lapack_ffi!(dlarfg, DlarfgFnPtr,
10024    n: *const lapackint,
10025    alpha: *mut f64,
10026    X: *mut f64,
10027    incx: *const lapackint,
10028    tau: *mut f64,
10029);
10030
10031define_lapack_ffi!(slarfg, SlarfgFnPtr,
10032    n: *const lapackint,
10033    alpha: *mut f32,
10034    X: *mut f32,
10035    incx: *const lapackint,
10036    tau: *mut f32,
10037);
10038
10039define_lapack_ffi!(zlarfg, ZlarfgFnPtr,
10040    n: *const lapackint,
10041    alpha: *mut Complex64,
10042    X: *mut Complex64,
10043    incx: *const lapackint,
10044    tau: *mut Complex64,
10045);
10046
10047// LARFT
10048define_lapack_ffi!(clarft, ClarftFnPtr,
10049    direct: *const c_char,
10050    storev: *const c_char,
10051    n: *const lapackint,
10052    k: *const lapackint,
10053    V: *const Complex32,
10054    ldv: *const lapackint,
10055    tau: *const Complex32,
10056    T: *mut Complex32,
10057    ldt: *const lapackint,
10058);
10059
10060define_lapack_ffi!(dlarft, DlarftFnPtr,
10061    direct: *const c_char,
10062    storev: *const c_char,
10063    n: *const lapackint,
10064    k: *const lapackint,
10065    V: *const f64,
10066    ldv: *const lapackint,
10067    tau: *const f64,
10068    T: *mut f64,
10069    ldt: *const lapackint,
10070);
10071
10072define_lapack_ffi!(slarft, SlarftFnPtr,
10073    direct: *const c_char,
10074    storev: *const c_char,
10075    n: *const lapackint,
10076    k: *const lapackint,
10077    V: *const f32,
10078    ldv: *const lapackint,
10079    tau: *const f32,
10080    T: *mut f32,
10081    ldt: *const lapackint,
10082);
10083
10084define_lapack_ffi!(zlarft, ZlarftFnPtr,
10085    direct: *const c_char,
10086    storev: *const c_char,
10087    n: *const lapackint,
10088    k: *const lapackint,
10089    V: *const Complex64,
10090    ldv: *const lapackint,
10091    tau: *const Complex64,
10092    T: *mut Complex64,
10093    ldt: *const lapackint,
10094);
10095
10096// LARFX
10097define_lapack_ffi!(clarfx, ClarfxFnPtr,
10098    side: *const c_char,
10099    m: *const lapackint,
10100    n: *const lapackint,
10101    V: *const Complex32,
10102    tau: *const Complex32,
10103    C: *mut Complex32,
10104    ldc: *const lapackint,
10105    work: *mut Complex32,
10106);
10107
10108define_lapack_ffi!(dlarfx, DlarfxFnPtr,
10109    side: *const c_char,
10110    m: *const lapackint,
10111    n: *const lapackint,
10112    V: *const f64,
10113    tau: *const f64,
10114    C: *mut f64,
10115    ldc: *const lapackint,
10116    work: *mut f64,
10117);
10118
10119define_lapack_ffi!(slarfx, SlarfxFnPtr,
10120    side: *const c_char,
10121    m: *const lapackint,
10122    n: *const lapackint,
10123    V: *const f32,
10124    tau: *const f32,
10125    C: *mut f32,
10126    ldc: *const lapackint,
10127    work: *mut f32,
10128);
10129
10130define_lapack_ffi!(zlarfx, ZlarfxFnPtr,
10131    side: *const c_char,
10132    m: *const lapackint,
10133    n: *const lapackint,
10134    V: *const Complex64,
10135    tau: *const Complex64,
10136    C: *mut Complex64,
10137    ldc: *const lapackint,
10138    work: *mut Complex64,
10139);
10140
10141// LARNV
10142define_lapack_ffi!(clarnv, ClarnvFnPtr,
10143    idist: *const lapackint,
10144    iseed: *mut lapackint,
10145    n: *const lapackint,
10146    X: *mut Complex32,
10147);
10148
10149define_lapack_ffi!(dlarnv, DlarnvFnPtr,
10150    idist: *const lapackint,
10151    iseed: *mut lapackint,
10152    n: *const lapackint,
10153    X: *mut f64,
10154);
10155
10156define_lapack_ffi!(slarnv, SlarnvFnPtr,
10157    idist: *const lapackint,
10158    iseed: *mut lapackint,
10159    n: *const lapackint,
10160    X: *mut f32,
10161);
10162
10163define_lapack_ffi!(zlarnv, ZlarnvFnPtr,
10164    idist: *const lapackint,
10165    iseed: *mut lapackint,
10166    n: *const lapackint,
10167    X: *mut Complex64,
10168);
10169
10170// LARTGP
10171define_lapack_ffi!(dlartgp, DlartgpFnPtr,
10172    f: *const f64,
10173    g: *const f64,
10174    cs: *mut f64,
10175    sn: *mut f64,
10176    r: *mut f64,
10177);
10178
10179define_lapack_ffi!(slartgp, SlartgpFnPtr,
10180    f: *const f32,
10181    g: *const f32,
10182    cs: *mut f32,
10183    sn: *mut f32,
10184    r: *mut f32,
10185);
10186
10187// LARTGS
10188define_lapack_ffi!(dlartgs, DlartgsFnPtr,
10189    x: *const f64,
10190    y: *const f64,
10191    sigma: *const f64,
10192    cs: *mut f64,
10193    sn: *mut f64,
10194);
10195
10196define_lapack_ffi!(slartgs, SlartgsFnPtr,
10197    x: *const f32,
10198    y: *const f32,
10199    sigma: *const f32,
10200    cs: *mut f32,
10201    sn: *mut f32,
10202);
10203
10204// LASCL
10205define_lapack_ffi!(clascl, ClasclFnPtr,
10206    type_: *const c_char,
10207    kl: *const lapackint,
10208    ku: *const lapackint,
10209    cfrom: *const f32,
10210    cto: *const f32,
10211    m: *const lapackint,
10212    n: *const lapackint,
10213    A: *mut Complex32,
10214    lda: *const lapackint,
10215    info: *mut lapackint,
10216);
10217
10218define_lapack_ffi!(dlascl, DlasclFnPtr,
10219    type_: *const c_char,
10220    kl: *const lapackint,
10221    ku: *const lapackint,
10222    cfrom: *const f64,
10223    cto: *const f64,
10224    m: *const lapackint,
10225    n: *const lapackint,
10226    A: *mut f64,
10227    lda: *const lapackint,
10228    info: *mut lapackint,
10229);
10230
10231define_lapack_ffi!(slascl, SlasclFnPtr,
10232    type_: *const c_char,
10233    kl: *const lapackint,
10234    ku: *const lapackint,
10235    cfrom: *const f32,
10236    cto: *const f32,
10237    m: *const lapackint,
10238    n: *const lapackint,
10239    A: *mut f32,
10240    lda: *const lapackint,
10241    info: *mut lapackint,
10242);
10243
10244define_lapack_ffi!(zlascl, ZlasclFnPtr,
10245    type_: *const c_char,
10246    kl: *const lapackint,
10247    ku: *const lapackint,
10248    cfrom: *const f64,
10249    cto: *const f64,
10250    m: *const lapackint,
10251    n: *const lapackint,
10252    A: *mut Complex64,
10253    lda: *const lapackint,
10254    info: *mut lapackint,
10255);
10256
10257// LASET
10258define_lapack_ffi!(claset, ClasetFnPtr,
10259    uplo: *const c_char,
10260    m: *const lapackint,
10261    n: *const lapackint,
10262    alpha: *const Complex32,
10263    beta: *const Complex32,
10264    A: *mut Complex32,
10265    lda: *const lapackint,
10266);
10267
10268define_lapack_ffi!(dlaset, DlasetFnPtr,
10269    uplo: *const c_char,
10270    m: *const lapackint,
10271    n: *const lapackint,
10272    alpha: *const f64,
10273    beta: *const f64,
10274    A: *mut f64,
10275    lda: *const lapackint,
10276);
10277
10278define_lapack_ffi!(slaset, SlasetFnPtr,
10279    uplo: *const c_char,
10280    m: *const lapackint,
10281    n: *const lapackint,
10282    alpha: *const f32,
10283    beta: *const f32,
10284    A: *mut f32,
10285    lda: *const lapackint,
10286);
10287
10288define_lapack_ffi!(zlaset, ZlasetFnPtr,
10289    uplo: *const c_char,
10290    m: *const lapackint,
10291    n: *const lapackint,
10292    alpha: *const Complex64,
10293    beta: *const Complex64,
10294    A: *mut Complex64,
10295    lda: *const lapackint,
10296);
10297
10298// LASRT
10299define_lapack_ffi!(dlasrt, DlasrtFnPtr,
10300    id: *const c_char,
10301    n: *const lapackint,
10302    D: *mut f64,
10303    info: *mut lapackint,
10304);
10305
10306define_lapack_ffi!(slasrt, SlasrtFnPtr,
10307    id: *const c_char,
10308    n: *const lapackint,
10309    D: *mut f32,
10310    info: *mut lapackint,
10311);
10312
10313// LASSQ
10314define_lapack_ffi!(classq, ClassqFnPtr,
10315    n: *const lapackint,
10316    X: *const Complex32,
10317    incx: *const lapackint,
10318    scale: *mut f32,
10319    sumsq: *mut f32,
10320);
10321
10322define_lapack_ffi!(dlassq, DlassqFnPtr,
10323    n: *const lapackint,
10324    X: *const f64,
10325    incx: *const lapackint,
10326    scale: *mut f64,
10327    sumsq: *mut f64,
10328);
10329
10330define_lapack_ffi!(slassq, SlassqFnPtr,
10331    n: *const lapackint,
10332    X: *const f32,
10333    incx: *const lapackint,
10334    scale: *mut f32,
10335    sumsq: *mut f32,
10336);
10337
10338define_lapack_ffi!(zlassq, ZlassqFnPtr,
10339    n: *const lapackint,
10340    X: *const Complex64,
10341    incx: *const lapackint,
10342    scale: *mut f64,
10343    sumsq: *mut f64,
10344);
10345
10346// LASWP
10347define_lapack_ffi!(claswp, ClaswpFnPtr,
10348    n: *const lapackint,
10349    A: *mut Complex32,
10350    lda: *const lapackint,
10351    k1: *const lapackint,
10352    k2: *const lapackint,
10353    ipiv: *const lapackint,
10354    incx: *const lapackint,
10355);
10356
10357define_lapack_ffi!(dlaswp, DlaswpFnPtr,
10358    n: *const lapackint,
10359    A: *mut f64,
10360    lda: *const lapackint,
10361    k1: *const lapackint,
10362    k2: *const lapackint,
10363    ipiv: *const lapackint,
10364    incx: *const lapackint,
10365);
10366
10367define_lapack_ffi!(slaswp, SlaswpFnPtr,
10368    n: *const lapackint,
10369    A: *mut f32,
10370    lda: *const lapackint,
10371    k1: *const lapackint,
10372    k2: *const lapackint,
10373    ipiv: *const lapackint,
10374    incx: *const lapackint,
10375);
10376
10377define_lapack_ffi!(zlaswp, ZlaswpFnPtr,
10378    n: *const lapackint,
10379    A: *mut Complex64,
10380    lda: *const lapackint,
10381    k1: *const lapackint,
10382    k2: *const lapackint,
10383    ipiv: *const lapackint,
10384    incx: *const lapackint,
10385);
10386
10387// LATMS
10388define_lapack_ffi!(clatms, ClatmsFnPtr,
10389    m: *const lapackint,
10390    n: *const lapackint,
10391    dist: *const c_char,
10392    iseed: *mut lapackint,
10393    sym: *const c_char,
10394    D: *mut f32,
10395    mode: *const lapackint,
10396    cond: *const f32,
10397    dmax: *const f32,
10398    kl: *const lapackint,
10399    ku: *const lapackint,
10400    pack: *const c_char,
10401    A: *mut Complex32,
10402    lda: *const lapackint,
10403    work: *mut Complex32,
10404    info: *mut lapackint,
10405);
10406
10407define_lapack_ffi!(dlatms, DlatmsFnPtr,
10408    m: *const lapackint,
10409    n: *const lapackint,
10410    dist: *const c_char,
10411    iseed: *mut lapackint,
10412    sym: *const c_char,
10413    D: *mut f64,
10414    mode: *const lapackint,
10415    cond: *const f64,
10416    dmax: *const f64,
10417    kl: *const lapackint,
10418    ku: *const lapackint,
10419    pack: *const c_char,
10420    A: *mut f64,
10421    lda: *const lapackint,
10422    work: *mut f64,
10423    info: *mut lapackint,
10424);
10425
10426define_lapack_ffi!(slatms, SlatmsFnPtr,
10427    m: *const lapackint,
10428    n: *const lapackint,
10429    dist: *const c_char,
10430    iseed: *mut lapackint,
10431    sym: *const c_char,
10432    D: *mut f32,
10433    mode: *const lapackint,
10434    cond: *const f32,
10435    dmax: *const f32,
10436    kl: *const lapackint,
10437    ku: *const lapackint,
10438    pack: *const c_char,
10439    A: *mut f32,
10440    lda: *const lapackint,
10441    work: *mut f32,
10442    info: *mut lapackint,
10443);
10444
10445define_lapack_ffi!(zlatms, ZlatmsFnPtr,
10446    m: *const lapackint,
10447    n: *const lapackint,
10448    dist: *const c_char,
10449    iseed: *mut lapackint,
10450    sym: *const c_char,
10451    D: *mut f64,
10452    mode: *const lapackint,
10453    cond: *const f64,
10454    dmax: *const f64,
10455    kl: *const lapackint,
10456    ku: *const lapackint,
10457    pack: *const c_char,
10458    A: *mut Complex64,
10459    lda: *const lapackint,
10460    work: *mut Complex64,
10461    info: *mut lapackint,
10462);
10463
10464// LAUUM
10465define_lapack_ffi!(clauum, ClauumFnPtr,
10466    uplo: *const c_char,
10467    n: *const lapackint,
10468    A: *mut Complex32,
10469    lda: *const lapackint,
10470    info: *mut lapackint,
10471);
10472
10473define_lapack_ffi!(dlauum, DlauumFnPtr,
10474    uplo: *const c_char,
10475    n: *const lapackint,
10476    A: *mut f64,
10477    lda: *const lapackint,
10478    info: *mut lapackint,
10479);
10480
10481define_lapack_ffi!(slauum, SlauumFnPtr,
10482    uplo: *const c_char,
10483    n: *const lapackint,
10484    A: *mut f32,
10485    lda: *const lapackint,
10486    info: *mut lapackint,
10487);
10488
10489define_lapack_ffi!(zlauum, ZlauumFnPtr,
10490    uplo: *const c_char,
10491    n: *const lapackint,
10492    A: *mut Complex64,
10493    lda: *const lapackint,
10494    info: *mut lapackint,
10495);
10496
10497// OPGTR
10498define_lapack_ffi!(dopgtr, DopgtrFnPtr,
10499    uplo: *const c_char,
10500    n: *const lapackint,
10501    AP: *const f64,
10502    tau: *const f64,
10503    Q: *mut f64,
10504    ldq: *const lapackint,
10505    work: *mut f64,
10506    info: *mut lapackint,
10507);
10508
10509define_lapack_ffi!(sopgtr, SopgtrFnPtr,
10510    uplo: *const c_char,
10511    n: *const lapackint,
10512    AP: *const f32,
10513    tau: *const f32,
10514    Q: *mut f32,
10515    ldq: *const lapackint,
10516    work: *mut f32,
10517    info: *mut lapackint,
10518);
10519
10520// OPMTR
10521define_lapack_ffi!(dopmtr, DopmtrFnPtr,
10522    side: *const c_char,
10523    uplo: *const c_char,
10524    trans: *const c_char,
10525    m: *const lapackint,
10526    n: *const lapackint,
10527    AP: *const f64,
10528    tau: *const f64,
10529    C: *mut f64,
10530    ldc: *const lapackint,
10531    work: *mut f64,
10532    info: *mut lapackint,
10533);
10534
10535define_lapack_ffi!(sopmtr, SopmtrFnPtr,
10536    side: *const c_char,
10537    uplo: *const c_char,
10538    trans: *const c_char,
10539    m: *const lapackint,
10540    n: *const lapackint,
10541    AP: *const f32,
10542    tau: *const f32,
10543    C: *mut f32,
10544    ldc: *const lapackint,
10545    work: *mut f32,
10546    info: *mut lapackint,
10547);
10548
10549// ORBDB
10550define_lapack_ffi!(dorbdb, DorbdbFnPtr,
10551    trans: *const c_char,
10552    signs: *const c_char,
10553    m: *const lapackint,
10554    p: *const lapackint,
10555    q: *const lapackint,
10556    X11: *mut f64,
10557    ldx11: *const lapackint,
10558    X12: *mut f64,
10559    ldx12: *const lapackint,
10560    X21: *mut f64,
10561    ldx21: *const lapackint,
10562    X22: *mut f64,
10563    ldx22: *const lapackint,
10564    theta: *mut f64,
10565    phi: *mut f64,
10566    TAUP1: *mut f64,
10567    TAUP2: *mut f64,
10568    TAUQ1: *mut f64,
10569    TAUQ2: *mut f64,
10570    work: *mut f64,
10571    lwork: *const lapackint,
10572    info: *mut lapackint,
10573);
10574
10575define_lapack_ffi!(sorbdb, SorbdbFnPtr,
10576    trans: *const c_char,
10577    signs: *const c_char,
10578    m: *const lapackint,
10579    p: *const lapackint,
10580    q: *const lapackint,
10581    X11: *mut f32,
10582    ldx11: *const lapackint,
10583    X12: *mut f32,
10584    ldx12: *const lapackint,
10585    X21: *mut f32,
10586    ldx21: *const lapackint,
10587    X22: *mut f32,
10588    ldx22: *const lapackint,
10589    theta: *mut f32,
10590    phi: *mut f32,
10591    TAUP1: *mut f32,
10592    TAUP2: *mut f32,
10593    TAUQ1: *mut f32,
10594    TAUQ2: *mut f32,
10595    work: *mut f32,
10596    lwork: *const lapackint,
10597    info: *mut lapackint,
10598);
10599
10600// ORCSD
10601define_lapack_ffi!(dorcsd, DorcsdFnPtr,
10602    jobu1: *const c_char,
10603    jobu2: *const c_char,
10604    jobv1t: *const c_char,
10605    jobv2t: *const c_char,
10606    trans: *const c_char,
10607    signs: *const c_char,
10608    m: *const lapackint,
10609    p: *const lapackint,
10610    q: *const lapackint,
10611    X11: *mut f64,
10612    ldx11: *const lapackint,
10613    X12: *mut f64,
10614    ldx12: *const lapackint,
10615    X21: *mut f64,
10616    ldx21: *const lapackint,
10617    X22: *mut f64,
10618    ldx22: *const lapackint,
10619    theta: *mut f64,
10620    U1: *mut f64,
10621    ldu1: *const lapackint,
10622    U2: *mut f64,
10623    ldu2: *const lapackint,
10624    V1T: *mut f64,
10625    ldv1t: *const lapackint,
10626    V2T: *mut f64,
10627    ldv2t: *const lapackint,
10628    work: *mut f64,
10629    lwork: *const lapackint,
10630    iwork: *mut lapackint,
10631    info: *mut lapackint,
10632);
10633
10634define_lapack_ffi!(sorcsd, SorcsdFnPtr,
10635    jobu1: *const c_char,
10636    jobu2: *const c_char,
10637    jobv1t: *const c_char,
10638    jobv2t: *const c_char,
10639    trans: *const c_char,
10640    signs: *const c_char,
10641    m: *const lapackint,
10642    p: *const lapackint,
10643    q: *const lapackint,
10644    X11: *mut f32,
10645    ldx11: *const lapackint,
10646    X12: *mut f32,
10647    ldx12: *const lapackint,
10648    X21: *mut f32,
10649    ldx21: *const lapackint,
10650    X22: *mut f32,
10651    ldx22: *const lapackint,
10652    theta: *mut f32,
10653    U1: *mut f32,
10654    ldu1: *const lapackint,
10655    U2: *mut f32,
10656    ldu2: *const lapackint,
10657    V1T: *mut f32,
10658    ldv1t: *const lapackint,
10659    V2T: *mut f32,
10660    ldv2t: *const lapackint,
10661    work: *mut f32,
10662    lwork: *const lapackint,
10663    iwork: *mut lapackint,
10664    info: *mut lapackint,
10665);
10666
10667// ORCSD2BY1
10668define_lapack_ffi!(dorcsd2by1, Dorcsd2by1FnPtr,
10669    jobu1: *const c_char,
10670    jobu2: *const c_char,
10671    jobv1t: *const c_char,
10672    m: *const lapackint,
10673    p: *const lapackint,
10674    q: *const lapackint,
10675    X11: *mut f64,
10676    ldx11: *const lapackint,
10677    X21: *mut f64,
10678    ldx21: *const lapackint,
10679    theta: *mut f64,
10680    U1: *mut f64,
10681    ldu1: *const lapackint,
10682    U2: *mut f64,
10683    ldu2: *const lapackint,
10684    V1T: *mut f64,
10685    ldv1t: *const lapackint,
10686    work: *mut f64,
10687    lwork: *const lapackint,
10688    iwork: *mut lapackint,
10689    info: *mut lapackint,
10690);
10691
10692define_lapack_ffi!(sorcsd2by1, Sorcsd2by1FnPtr,
10693    jobu1: *const c_char,
10694    jobu2: *const c_char,
10695    jobv1t: *const c_char,
10696    m: *const lapackint,
10697    p: *const lapackint,
10698    q: *const lapackint,
10699    X11: *mut f32,
10700    ldx11: *const lapackint,
10701    X21: *mut f32,
10702    ldx21: *const lapackint,
10703    theta: *mut f32,
10704    U1: *mut f32,
10705    ldu1: *const lapackint,
10706    U2: *mut f32,
10707    ldu2: *const lapackint,
10708    V1T: *mut f32,
10709    ldv1t: *const lapackint,
10710    work: *mut f32,
10711    lwork: *const lapackint,
10712    iwork: *mut lapackint,
10713    info: *mut lapackint,
10714);
10715
10716// ORGBR
10717define_lapack_ffi!(dorgbr, DorgbrFnPtr,
10718    vect: *const c_char,
10719    m: *const lapackint,
10720    n: *const lapackint,
10721    k: *const lapackint,
10722    A: *mut f64,
10723    lda: *const lapackint,
10724    tau: *const f64,
10725    work: *mut f64,
10726    lwork: *const lapackint,
10727    info: *mut lapackint,
10728);
10729
10730define_lapack_ffi!(sorgbr, SorgbrFnPtr,
10731    vect: *const c_char,
10732    m: *const lapackint,
10733    n: *const lapackint,
10734    k: *const lapackint,
10735    A: *mut f32,
10736    lda: *const lapackint,
10737    tau: *const f32,
10738    work: *mut f32,
10739    lwork: *const lapackint,
10740    info: *mut lapackint,
10741);
10742
10743// ORGHR
10744define_lapack_ffi!(dorghr, DorghrFnPtr,
10745    n: *const lapackint,
10746    ilo: *const lapackint,
10747    ihi: *const lapackint,
10748    A: *mut f64,
10749    lda: *const lapackint,
10750    tau: *const f64,
10751    work: *mut f64,
10752    lwork: *const lapackint,
10753    info: *mut lapackint,
10754);
10755
10756define_lapack_ffi!(sorghr, SorghrFnPtr,
10757    n: *const lapackint,
10758    ilo: *const lapackint,
10759    ihi: *const lapackint,
10760    A: *mut f32,
10761    lda: *const lapackint,
10762    tau: *const f32,
10763    work: *mut f32,
10764    lwork: *const lapackint,
10765    info: *mut lapackint,
10766);
10767
10768// ORGLQ
10769define_lapack_ffi!(dorglq, DorglqFnPtr,
10770    m: *const lapackint,
10771    n: *const lapackint,
10772    k: *const lapackint,
10773    A: *mut f64,
10774    lda: *const lapackint,
10775    tau: *const f64,
10776    work: *mut f64,
10777    lwork: *const lapackint,
10778    info: *mut lapackint,
10779);
10780
10781define_lapack_ffi!(sorglq, SorglqFnPtr,
10782    m: *const lapackint,
10783    n: *const lapackint,
10784    k: *const lapackint,
10785    A: *mut f32,
10786    lda: *const lapackint,
10787    tau: *const f32,
10788    work: *mut f32,
10789    lwork: *const lapackint,
10790    info: *mut lapackint,
10791);
10792
10793// ORGQL
10794define_lapack_ffi!(dorgql, DorgqlFnPtr,
10795    m: *const lapackint,
10796    n: *const lapackint,
10797    k: *const lapackint,
10798    A: *mut f64,
10799    lda: *const lapackint,
10800    tau: *const f64,
10801    work: *mut f64,
10802    lwork: *const lapackint,
10803    info: *mut lapackint,
10804);
10805
10806define_lapack_ffi!(sorgql, SorgqlFnPtr,
10807    m: *const lapackint,
10808    n: *const lapackint,
10809    k: *const lapackint,
10810    A: *mut f32,
10811    lda: *const lapackint,
10812    tau: *const f32,
10813    work: *mut f32,
10814    lwork: *const lapackint,
10815    info: *mut lapackint,
10816);
10817
10818// ORGQR
10819define_lapack_ffi!(dorgqr, DorgqrFnPtr,
10820    m: *const lapackint,
10821    n: *const lapackint,
10822    k: *const lapackint,
10823    A: *mut f64,
10824    lda: *const lapackint,
10825    tau: *const f64,
10826    work: *mut f64,
10827    lwork: *const lapackint,
10828    info: *mut lapackint,
10829);
10830
10831define_lapack_ffi!(sorgqr, SorgqrFnPtr,
10832    m: *const lapackint,
10833    n: *const lapackint,
10834    k: *const lapackint,
10835    A: *mut f32,
10836    lda: *const lapackint,
10837    tau: *const f32,
10838    work: *mut f32,
10839    lwork: *const lapackint,
10840    info: *mut lapackint,
10841);
10842
10843// ORGRQ
10844define_lapack_ffi!(dorgrq, DorgrqFnPtr,
10845    m: *const lapackint,
10846    n: *const lapackint,
10847    k: *const lapackint,
10848    A: *mut f64,
10849    lda: *const lapackint,
10850    tau: *const f64,
10851    work: *mut f64,
10852    lwork: *const lapackint,
10853    info: *mut lapackint,
10854);
10855
10856define_lapack_ffi!(sorgrq, SorgrqFnPtr,
10857    m: *const lapackint,
10858    n: *const lapackint,
10859    k: *const lapackint,
10860    A: *mut f32,
10861    lda: *const lapackint,
10862    tau: *const f32,
10863    work: *mut f32,
10864    lwork: *const lapackint,
10865    info: *mut lapackint,
10866);
10867
10868// ORGTR
10869define_lapack_ffi!(dorgtr, DorgtrFnPtr,
10870    uplo: *const c_char,
10871    n: *const lapackint,
10872    A: *mut f64,
10873    lda: *const lapackint,
10874    tau: *const f64,
10875    work: *mut f64,
10876    lwork: *const lapackint,
10877    info: *mut lapackint,
10878);
10879
10880define_lapack_ffi!(sorgtr, SorgtrFnPtr,
10881    uplo: *const c_char,
10882    n: *const lapackint,
10883    A: *mut f32,
10884    lda: *const lapackint,
10885    tau: *const f32,
10886    work: *mut f32,
10887    lwork: *const lapackint,
10888    info: *mut lapackint,
10889);
10890
10891// ORGTSQR_ROW
10892define_lapack_ffi!(dorgtsqr_row, Dorgtsqr_rowFnPtr,
10893    m: *const lapackint,
10894    n: *const lapackint,
10895    mb: *const lapackint,
10896    nb: *const lapackint,
10897    A: *mut f64,
10898    lda: *const lapackint,
10899    T: *const f64,
10900    ldt: *const lapackint,
10901    work: *mut f64,
10902    lwork: *const lapackint,
10903    info: *mut lapackint,
10904);
10905
10906define_lapack_ffi!(sorgtsqr_row, Sorgtsqr_rowFnPtr,
10907    m: *const lapackint,
10908    n: *const lapackint,
10909    mb: *const lapackint,
10910    nb: *const lapackint,
10911    A: *mut f32,
10912    lda: *const lapackint,
10913    T: *const f32,
10914    ldt: *const lapackint,
10915    work: *mut f32,
10916    lwork: *const lapackint,
10917    info: *mut lapackint,
10918);
10919
10920// ORMBR
10921define_lapack_ffi!(dormbr, DormbrFnPtr,
10922    vect: *const c_char,
10923    side: *const c_char,
10924    trans: *const c_char,
10925    m: *const lapackint,
10926    n: *const lapackint,
10927    k: *const lapackint,
10928    A: *const f64,
10929    lda: *const lapackint,
10930    tau: *const f64,
10931    C: *mut f64,
10932    ldc: *const lapackint,
10933    work: *mut f64,
10934    lwork: *const lapackint,
10935    info: *mut lapackint,
10936);
10937
10938define_lapack_ffi!(sormbr, SormbrFnPtr,
10939    vect: *const c_char,
10940    side: *const c_char,
10941    trans: *const c_char,
10942    m: *const lapackint,
10943    n: *const lapackint,
10944    k: *const lapackint,
10945    A: *const f32,
10946    lda: *const lapackint,
10947    tau: *const f32,
10948    C: *mut f32,
10949    ldc: *const lapackint,
10950    work: *mut f32,
10951    lwork: *const lapackint,
10952    info: *mut lapackint,
10953);
10954
10955// ORMHR
10956define_lapack_ffi!(dormhr, DormhrFnPtr,
10957    side: *const c_char,
10958    trans: *const c_char,
10959    m: *const lapackint,
10960    n: *const lapackint,
10961    ilo: *const lapackint,
10962    ihi: *const lapackint,
10963    A: *const f64,
10964    lda: *const lapackint,
10965    tau: *const f64,
10966    C: *mut f64,
10967    ldc: *const lapackint,
10968    work: *mut f64,
10969    lwork: *const lapackint,
10970    info: *mut lapackint,
10971);
10972
10973define_lapack_ffi!(sormhr, SormhrFnPtr,
10974    side: *const c_char,
10975    trans: *const c_char,
10976    m: *const lapackint,
10977    n: *const lapackint,
10978    ilo: *const lapackint,
10979    ihi: *const lapackint,
10980    A: *const f32,
10981    lda: *const lapackint,
10982    tau: *const f32,
10983    C: *mut f32,
10984    ldc: *const lapackint,
10985    work: *mut f32,
10986    lwork: *const lapackint,
10987    info: *mut lapackint,
10988);
10989
10990// ORMLQ
10991define_lapack_ffi!(dormlq, DormlqFnPtr,
10992    side: *const c_char,
10993    trans: *const c_char,
10994    m: *const lapackint,
10995    n: *const lapackint,
10996    k: *const lapackint,
10997    A: *const f64,
10998    lda: *const lapackint,
10999    tau: *const f64,
11000    C: *mut f64,
11001    ldc: *const lapackint,
11002    work: *mut f64,
11003    lwork: *const lapackint,
11004    info: *mut lapackint,
11005);
11006
11007define_lapack_ffi!(sormlq, SormlqFnPtr,
11008    side: *const c_char,
11009    trans: *const c_char,
11010    m: *const lapackint,
11011    n: *const lapackint,
11012    k: *const lapackint,
11013    A: *const f32,
11014    lda: *const lapackint,
11015    tau: *const f32,
11016    C: *mut f32,
11017    ldc: *const lapackint,
11018    work: *mut f32,
11019    lwork: *const lapackint,
11020    info: *mut lapackint,
11021);
11022
11023// ORMQL
11024define_lapack_ffi!(dormql, DormqlFnPtr,
11025    side: *const c_char,
11026    trans: *const c_char,
11027    m: *const lapackint,
11028    n: *const lapackint,
11029    k: *const lapackint,
11030    A: *const f64,
11031    lda: *const lapackint,
11032    tau: *const f64,
11033    C: *mut f64,
11034    ldc: *const lapackint,
11035    work: *mut f64,
11036    lwork: *const lapackint,
11037    info: *mut lapackint,
11038);
11039
11040define_lapack_ffi!(sormql, SormqlFnPtr,
11041    side: *const c_char,
11042    trans: *const c_char,
11043    m: *const lapackint,
11044    n: *const lapackint,
11045    k: *const lapackint,
11046    A: *const f32,
11047    lda: *const lapackint,
11048    tau: *const f32,
11049    C: *mut f32,
11050    ldc: *const lapackint,
11051    work: *mut f32,
11052    lwork: *const lapackint,
11053    info: *mut lapackint,
11054);
11055
11056// ORMQR
11057define_lapack_ffi!(dormqr, DormqrFnPtr,
11058    side: *const c_char,
11059    trans: *const c_char,
11060    m: *const lapackint,
11061    n: *const lapackint,
11062    k: *const lapackint,
11063    A: *const f64,
11064    lda: *const lapackint,
11065    tau: *const f64,
11066    C: *mut f64,
11067    ldc: *const lapackint,
11068    work: *mut f64,
11069    lwork: *const lapackint,
11070    info: *mut lapackint,
11071);
11072
11073define_lapack_ffi!(sormqr, SormqrFnPtr,
11074    side: *const c_char,
11075    trans: *const c_char,
11076    m: *const lapackint,
11077    n: *const lapackint,
11078    k: *const lapackint,
11079    A: *const f32,
11080    lda: *const lapackint,
11081    tau: *const f32,
11082    C: *mut f32,
11083    ldc: *const lapackint,
11084    work: *mut f32,
11085    lwork: *const lapackint,
11086    info: *mut lapackint,
11087);
11088
11089// ORMRQ
11090define_lapack_ffi!(dormrq, DormrqFnPtr,
11091    side: *const c_char,
11092    trans: *const c_char,
11093    m: *const lapackint,
11094    n: *const lapackint,
11095    k: *const lapackint,
11096    A: *const f64,
11097    lda: *const lapackint,
11098    tau: *const f64,
11099    C: *mut f64,
11100    ldc: *const lapackint,
11101    work: *mut f64,
11102    lwork: *const lapackint,
11103    info: *mut lapackint,
11104);
11105
11106define_lapack_ffi!(sormrq, SormrqFnPtr,
11107    side: *const c_char,
11108    trans: *const c_char,
11109    m: *const lapackint,
11110    n: *const lapackint,
11111    k: *const lapackint,
11112    A: *const f32,
11113    lda: *const lapackint,
11114    tau: *const f32,
11115    C: *mut f32,
11116    ldc: *const lapackint,
11117    work: *mut f32,
11118    lwork: *const lapackint,
11119    info: *mut lapackint,
11120);
11121
11122// ORMRZ
11123define_lapack_ffi!(dormrz, DormrzFnPtr,
11124    side: *const c_char,
11125    trans: *const c_char,
11126    m: *const lapackint,
11127    n: *const lapackint,
11128    k: *const lapackint,
11129    l: *const lapackint,
11130    A: *const f64,
11131    lda: *const lapackint,
11132    tau: *const f64,
11133    C: *mut f64,
11134    ldc: *const lapackint,
11135    work: *mut f64,
11136    lwork: *const lapackint,
11137    info: *mut lapackint,
11138);
11139
11140define_lapack_ffi!(sormrz, SormrzFnPtr,
11141    side: *const c_char,
11142    trans: *const c_char,
11143    m: *const lapackint,
11144    n: *const lapackint,
11145    k: *const lapackint,
11146    l: *const lapackint,
11147    A: *const f32,
11148    lda: *const lapackint,
11149    tau: *const f32,
11150    C: *mut f32,
11151    ldc: *const lapackint,
11152    work: *mut f32,
11153    lwork: *const lapackint,
11154    info: *mut lapackint,
11155);
11156
11157// ORMTR
11158define_lapack_ffi!(dormtr, DormtrFnPtr,
11159    side: *const c_char,
11160    uplo: *const c_char,
11161    trans: *const c_char,
11162    m: *const lapackint,
11163    n: *const lapackint,
11164    A: *const f64,
11165    lda: *const lapackint,
11166    tau: *const f64,
11167    C: *mut f64,
11168    ldc: *const lapackint,
11169    work: *mut f64,
11170    lwork: *const lapackint,
11171    info: *mut lapackint,
11172);
11173
11174define_lapack_ffi!(sormtr, SormtrFnPtr,
11175    side: *const c_char,
11176    uplo: *const c_char,
11177    trans: *const c_char,
11178    m: *const lapackint,
11179    n: *const lapackint,
11180    A: *const f32,
11181    lda: *const lapackint,
11182    tau: *const f32,
11183    C: *mut f32,
11184    ldc: *const lapackint,
11185    work: *mut f32,
11186    lwork: *const lapackint,
11187    info: *mut lapackint,
11188);
11189
11190// PBCON
11191define_lapack_ffi!(cpbcon, CpbconFnPtr,
11192    uplo: *const c_char,
11193    n: *const lapackint,
11194    kd: *const lapackint,
11195    AB: *const Complex32,
11196    ldab: *const lapackint,
11197    anorm: *const f32,
11198    rcond: *mut f32,
11199    work: *mut Complex32,
11200    rwork: *mut f32,
11201    info: *mut lapackint,
11202);
11203
11204define_lapack_ffi!(dpbcon, DpbconFnPtr,
11205    uplo: *const c_char,
11206    n: *const lapackint,
11207    kd: *const lapackint,
11208    AB: *const f64,
11209    ldab: *const lapackint,
11210    anorm: *const f64,
11211    rcond: *mut f64,
11212    work: *mut f64,
11213    iwork: *mut lapackint,
11214    info: *mut lapackint,
11215);
11216
11217define_lapack_ffi!(spbcon, SpbconFnPtr,
11218    uplo: *const c_char,
11219    n: *const lapackint,
11220    kd: *const lapackint,
11221    AB: *const f32,
11222    ldab: *const lapackint,
11223    anorm: *const f32,
11224    rcond: *mut f32,
11225    work: *mut f32,
11226    iwork: *mut lapackint,
11227    info: *mut lapackint,
11228);
11229
11230define_lapack_ffi!(zpbcon, ZpbconFnPtr,
11231    uplo: *const c_char,
11232    n: *const lapackint,
11233    kd: *const lapackint,
11234    AB: *const Complex64,
11235    ldab: *const lapackint,
11236    anorm: *const f64,
11237    rcond: *mut f64,
11238    work: *mut Complex64,
11239    rwork: *mut f64,
11240    info: *mut lapackint,
11241);
11242
11243// PBEQU
11244define_lapack_ffi!(cpbequ, CpbequFnPtr,
11245    uplo: *const c_char,
11246    n: *const lapackint,
11247    kd: *const lapackint,
11248    AB: *const Complex32,
11249    ldab: *const lapackint,
11250    S: *mut f32,
11251    scond: *mut f32,
11252    amax: *mut f32,
11253    info: *mut lapackint,
11254);
11255
11256define_lapack_ffi!(dpbequ, DpbequFnPtr,
11257    uplo: *const c_char,
11258    n: *const lapackint,
11259    kd: *const lapackint,
11260    AB: *const f64,
11261    ldab: *const lapackint,
11262    S: *mut f64,
11263    scond: *mut f64,
11264    amax: *mut f64,
11265    info: *mut lapackint,
11266);
11267
11268define_lapack_ffi!(spbequ, SpbequFnPtr,
11269    uplo: *const c_char,
11270    n: *const lapackint,
11271    kd: *const lapackint,
11272    AB: *const f32,
11273    ldab: *const lapackint,
11274    S: *mut f32,
11275    scond: *mut f32,
11276    amax: *mut f32,
11277    info: *mut lapackint,
11278);
11279
11280define_lapack_ffi!(zpbequ, ZpbequFnPtr,
11281    uplo: *const c_char,
11282    n: *const lapackint,
11283    kd: *const lapackint,
11284    AB: *const Complex64,
11285    ldab: *const lapackint,
11286    S: *mut f64,
11287    scond: *mut f64,
11288    amax: *mut f64,
11289    info: *mut lapackint,
11290);
11291
11292// PBRFS
11293define_lapack_ffi!(cpbrfs, CpbrfsFnPtr,
11294    uplo: *const c_char,
11295    n: *const lapackint,
11296    kd: *const lapackint,
11297    nrhs: *const lapackint,
11298    AB: *const Complex32,
11299    ldab: *const lapackint,
11300    AFB: *const Complex32,
11301    ldafb: *const lapackint,
11302    B: *const Complex32,
11303    ldb: *const lapackint,
11304    X: *mut Complex32,
11305    ldx: *const lapackint,
11306    ferr: *mut f32,
11307    berr: *mut f32,
11308    work: *mut Complex32,
11309    rwork: *mut f32,
11310    info: *mut lapackint,
11311);
11312
11313define_lapack_ffi!(dpbrfs, DpbrfsFnPtr,
11314    uplo: *const c_char,
11315    n: *const lapackint,
11316    kd: *const lapackint,
11317    nrhs: *const lapackint,
11318    AB: *const f64,
11319    ldab: *const lapackint,
11320    AFB: *const f64,
11321    ldafb: *const lapackint,
11322    B: *const f64,
11323    ldb: *const lapackint,
11324    X: *mut f64,
11325    ldx: *const lapackint,
11326    ferr: *mut f64,
11327    berr: *mut f64,
11328    work: *mut f64,
11329    iwork: *mut lapackint,
11330    info: *mut lapackint,
11331);
11332
11333define_lapack_ffi!(spbrfs, SpbrfsFnPtr,
11334    uplo: *const c_char,
11335    n: *const lapackint,
11336    kd: *const lapackint,
11337    nrhs: *const lapackint,
11338    AB: *const f32,
11339    ldab: *const lapackint,
11340    AFB: *const f32,
11341    ldafb: *const lapackint,
11342    B: *const f32,
11343    ldb: *const lapackint,
11344    X: *mut f32,
11345    ldx: *const lapackint,
11346    ferr: *mut f32,
11347    berr: *mut f32,
11348    work: *mut f32,
11349    iwork: *mut lapackint,
11350    info: *mut lapackint,
11351);
11352
11353define_lapack_ffi!(zpbrfs, ZpbrfsFnPtr,
11354    uplo: *const c_char,
11355    n: *const lapackint,
11356    kd: *const lapackint,
11357    nrhs: *const lapackint,
11358    AB: *const Complex64,
11359    ldab: *const lapackint,
11360    AFB: *const Complex64,
11361    ldafb: *const lapackint,
11362    B: *const Complex64,
11363    ldb: *const lapackint,
11364    X: *mut Complex64,
11365    ldx: *const lapackint,
11366    ferr: *mut f64,
11367    berr: *mut f64,
11368    work: *mut Complex64,
11369    rwork: *mut f64,
11370    info: *mut lapackint,
11371);
11372
11373// PBSTF
11374define_lapack_ffi!(cpbstf, CpbstfFnPtr,
11375    uplo: *const c_char,
11376    n: *const lapackint,
11377    kd: *const lapackint,
11378    AB: *mut Complex32,
11379    ldab: *const lapackint,
11380    info: *mut lapackint,
11381);
11382
11383define_lapack_ffi!(dpbstf, DpbstfFnPtr,
11384    uplo: *const c_char,
11385    n: *const lapackint,
11386    kd: *const lapackint,
11387    AB: *mut f64,
11388    ldab: *const lapackint,
11389    info: *mut lapackint,
11390);
11391
11392define_lapack_ffi!(spbstf, SpbstfFnPtr,
11393    uplo: *const c_char,
11394    n: *const lapackint,
11395    kd: *const lapackint,
11396    AB: *mut f32,
11397    ldab: *const lapackint,
11398    info: *mut lapackint,
11399);
11400
11401define_lapack_ffi!(zpbstf, ZpbstfFnPtr,
11402    uplo: *const c_char,
11403    n: *const lapackint,
11404    kd: *const lapackint,
11405    AB: *mut Complex64,
11406    ldab: *const lapackint,
11407    info: *mut lapackint,
11408);
11409
11410// PBSV
11411define_lapack_ffi!(cpbsv, CpbsvFnPtr,
11412    uplo: *const c_char,
11413    n: *const lapackint,
11414    kd: *const lapackint,
11415    nrhs: *const lapackint,
11416    AB: *mut Complex32,
11417    ldab: *const lapackint,
11418    B: *mut Complex32,
11419    ldb: *const lapackint,
11420    info: *mut lapackint,
11421);
11422
11423define_lapack_ffi!(dpbsv, DpbsvFnPtr,
11424    uplo: *const c_char,
11425    n: *const lapackint,
11426    kd: *const lapackint,
11427    nrhs: *const lapackint,
11428    AB: *mut f64,
11429    ldab: *const lapackint,
11430    B: *mut f64,
11431    ldb: *const lapackint,
11432    info: *mut lapackint,
11433);
11434
11435define_lapack_ffi!(spbsv, SpbsvFnPtr,
11436    uplo: *const c_char,
11437    n: *const lapackint,
11438    kd: *const lapackint,
11439    nrhs: *const lapackint,
11440    AB: *mut f32,
11441    ldab: *const lapackint,
11442    B: *mut f32,
11443    ldb: *const lapackint,
11444    info: *mut lapackint,
11445);
11446
11447define_lapack_ffi!(zpbsv, ZpbsvFnPtr,
11448    uplo: *const c_char,
11449    n: *const lapackint,
11450    kd: *const lapackint,
11451    nrhs: *const lapackint,
11452    AB: *mut Complex64,
11453    ldab: *const lapackint,
11454    B: *mut Complex64,
11455    ldb: *const lapackint,
11456    info: *mut lapackint,
11457);
11458
11459// PBSVX
11460define_lapack_ffi!(cpbsvx, CpbsvxFnPtr,
11461    fact: *const c_char,
11462    uplo: *const c_char,
11463    n: *const lapackint,
11464    kd: *const lapackint,
11465    nrhs: *const lapackint,
11466    AB: *mut Complex32,
11467    ldab: *const lapackint,
11468    AFB: *mut Complex32,
11469    ldafb: *const lapackint,
11470    equed: *mut c_char,
11471    S: *mut f32,
11472    B: *mut Complex32,
11473    ldb: *const lapackint,
11474    X: *mut Complex32,
11475    ldx: *const lapackint,
11476    rcond: *mut f32,
11477    ferr: *mut f32,
11478    berr: *mut f32,
11479    work: *mut Complex32,
11480    rwork: *mut f32,
11481    info: *mut lapackint,
11482);
11483
11484define_lapack_ffi!(dpbsvx, DpbsvxFnPtr,
11485    fact: *const c_char,
11486    uplo: *const c_char,
11487    n: *const lapackint,
11488    kd: *const lapackint,
11489    nrhs: *const lapackint,
11490    AB: *mut f64,
11491    ldab: *const lapackint,
11492    AFB: *mut f64,
11493    ldafb: *const lapackint,
11494    equed: *mut c_char,
11495    S: *mut f64,
11496    B: *mut f64,
11497    ldb: *const lapackint,
11498    X: *mut f64,
11499    ldx: *const lapackint,
11500    rcond: *mut f64,
11501    ferr: *mut f64,
11502    berr: *mut f64,
11503    work: *mut f64,
11504    iwork: *mut lapackint,
11505    info: *mut lapackint,
11506);
11507
11508define_lapack_ffi!(spbsvx, SpbsvxFnPtr,
11509    fact: *const c_char,
11510    uplo: *const c_char,
11511    n: *const lapackint,
11512    kd: *const lapackint,
11513    nrhs: *const lapackint,
11514    AB: *mut f32,
11515    ldab: *const lapackint,
11516    AFB: *mut f32,
11517    ldafb: *const lapackint,
11518    equed: *mut c_char,
11519    S: *mut f32,
11520    B: *mut f32,
11521    ldb: *const lapackint,
11522    X: *mut f32,
11523    ldx: *const lapackint,
11524    rcond: *mut f32,
11525    ferr: *mut f32,
11526    berr: *mut f32,
11527    work: *mut f32,
11528    iwork: *mut lapackint,
11529    info: *mut lapackint,
11530);
11531
11532define_lapack_ffi!(zpbsvx, ZpbsvxFnPtr,
11533    fact: *const c_char,
11534    uplo: *const c_char,
11535    n: *const lapackint,
11536    kd: *const lapackint,
11537    nrhs: *const lapackint,
11538    AB: *mut Complex64,
11539    ldab: *const lapackint,
11540    AFB: *mut Complex64,
11541    ldafb: *const lapackint,
11542    equed: *mut c_char,
11543    S: *mut f64,
11544    B: *mut Complex64,
11545    ldb: *const lapackint,
11546    X: *mut Complex64,
11547    ldx: *const lapackint,
11548    rcond: *mut f64,
11549    ferr: *mut f64,
11550    berr: *mut f64,
11551    work: *mut Complex64,
11552    rwork: *mut f64,
11553    info: *mut lapackint,
11554);
11555
11556// PBTRF
11557define_lapack_ffi!(cpbtrf, CpbtrfFnPtr,
11558    uplo: *const c_char,
11559    n: *const lapackint,
11560    kd: *const lapackint,
11561    AB: *mut Complex32,
11562    ldab: *const lapackint,
11563    info: *mut lapackint,
11564);
11565
11566define_lapack_ffi!(dpbtrf, DpbtrfFnPtr,
11567    uplo: *const c_char,
11568    n: *const lapackint,
11569    kd: *const lapackint,
11570    AB: *mut f64,
11571    ldab: *const lapackint,
11572    info: *mut lapackint,
11573);
11574
11575define_lapack_ffi!(spbtrf, SpbtrfFnPtr,
11576    uplo: *const c_char,
11577    n: *const lapackint,
11578    kd: *const lapackint,
11579    AB: *mut f32,
11580    ldab: *const lapackint,
11581    info: *mut lapackint,
11582);
11583
11584define_lapack_ffi!(zpbtrf, ZpbtrfFnPtr,
11585    uplo: *const c_char,
11586    n: *const lapackint,
11587    kd: *const lapackint,
11588    AB: *mut Complex64,
11589    ldab: *const lapackint,
11590    info: *mut lapackint,
11591);
11592
11593// PBTRS
11594define_lapack_ffi!(cpbtrs, CpbtrsFnPtr,
11595    uplo: *const c_char,
11596    n: *const lapackint,
11597    kd: *const lapackint,
11598    nrhs: *const lapackint,
11599    AB: *const Complex32,
11600    ldab: *const lapackint,
11601    B: *mut Complex32,
11602    ldb: *const lapackint,
11603    info: *mut lapackint,
11604);
11605
11606define_lapack_ffi!(dpbtrs, DpbtrsFnPtr,
11607    uplo: *const c_char,
11608    n: *const lapackint,
11609    kd: *const lapackint,
11610    nrhs: *const lapackint,
11611    AB: *const f64,
11612    ldab: *const lapackint,
11613    B: *mut f64,
11614    ldb: *const lapackint,
11615    info: *mut lapackint,
11616);
11617
11618define_lapack_ffi!(spbtrs, SpbtrsFnPtr,
11619    uplo: *const c_char,
11620    n: *const lapackint,
11621    kd: *const lapackint,
11622    nrhs: *const lapackint,
11623    AB: *const f32,
11624    ldab: *const lapackint,
11625    B: *mut f32,
11626    ldb: *const lapackint,
11627    info: *mut lapackint,
11628);
11629
11630define_lapack_ffi!(zpbtrs, ZpbtrsFnPtr,
11631    uplo: *const c_char,
11632    n: *const lapackint,
11633    kd: *const lapackint,
11634    nrhs: *const lapackint,
11635    AB: *const Complex64,
11636    ldab: *const lapackint,
11637    B: *mut Complex64,
11638    ldb: *const lapackint,
11639    info: *mut lapackint,
11640);
11641
11642// PFTRF
11643define_lapack_ffi!(cpftrf, CpftrfFnPtr,
11644    transr: *const c_char,
11645    uplo: *const c_char,
11646    n: *const lapackint,
11647    A: *mut Complex32,
11648    info: *mut lapackint,
11649);
11650
11651define_lapack_ffi!(dpftrf, DpftrfFnPtr,
11652    transr: *const c_char,
11653    uplo: *const c_char,
11654    n: *const lapackint,
11655    A: *mut f64,
11656    info: *mut lapackint,
11657);
11658
11659define_lapack_ffi!(spftrf, SpftrfFnPtr,
11660    transr: *const c_char,
11661    uplo: *const c_char,
11662    n: *const lapackint,
11663    A: *mut f32,
11664    info: *mut lapackint,
11665);
11666
11667define_lapack_ffi!(zpftrf, ZpftrfFnPtr,
11668    transr: *const c_char,
11669    uplo: *const c_char,
11670    n: *const lapackint,
11671    A: *mut Complex64,
11672    info: *mut lapackint,
11673);
11674
11675// PFTRI
11676define_lapack_ffi!(cpftri, CpftriFnPtr,
11677    transr: *const c_char,
11678    uplo: *const c_char,
11679    n: *const lapackint,
11680    A: *mut Complex32,
11681    info: *mut lapackint,
11682);
11683
11684define_lapack_ffi!(dpftri, DpftriFnPtr,
11685    transr: *const c_char,
11686    uplo: *const c_char,
11687    n: *const lapackint,
11688    A: *mut f64,
11689    info: *mut lapackint,
11690);
11691
11692define_lapack_ffi!(spftri, SpftriFnPtr,
11693    transr: *const c_char,
11694    uplo: *const c_char,
11695    n: *const lapackint,
11696    A: *mut f32,
11697    info: *mut lapackint,
11698);
11699
11700define_lapack_ffi!(zpftri, ZpftriFnPtr,
11701    transr: *const c_char,
11702    uplo: *const c_char,
11703    n: *const lapackint,
11704    A: *mut Complex64,
11705    info: *mut lapackint,
11706);
11707
11708// PFTRS
11709define_lapack_ffi!(cpftrs, CpftrsFnPtr,
11710    transr: *const c_char,
11711    uplo: *const c_char,
11712    n: *const lapackint,
11713    nrhs: *const lapackint,
11714    A: *const Complex32,
11715    B: *mut Complex32,
11716    ldb: *const lapackint,
11717    info: *mut lapackint,
11718);
11719
11720define_lapack_ffi!(dpftrs, DpftrsFnPtr,
11721    transr: *const c_char,
11722    uplo: *const c_char,
11723    n: *const lapackint,
11724    nrhs: *const lapackint,
11725    A: *const f64,
11726    B: *mut f64,
11727    ldb: *const lapackint,
11728    info: *mut lapackint,
11729);
11730
11731define_lapack_ffi!(spftrs, SpftrsFnPtr,
11732    transr: *const c_char,
11733    uplo: *const c_char,
11734    n: *const lapackint,
11735    nrhs: *const lapackint,
11736    A: *const f32,
11737    B: *mut f32,
11738    ldb: *const lapackint,
11739    info: *mut lapackint,
11740);
11741
11742define_lapack_ffi!(zpftrs, ZpftrsFnPtr,
11743    transr: *const c_char,
11744    uplo: *const c_char,
11745    n: *const lapackint,
11746    nrhs: *const lapackint,
11747    A: *const Complex64,
11748    B: *mut Complex64,
11749    ldb: *const lapackint,
11750    info: *mut lapackint,
11751);
11752
11753// POCON
11754define_lapack_ffi!(cpocon, CpoconFnPtr,
11755    uplo: *const c_char,
11756    n: *const lapackint,
11757    A: *const Complex32,
11758    lda: *const lapackint,
11759    anorm: *const f32,
11760    rcond: *mut f32,
11761    work: *mut Complex32,
11762    rwork: *mut f32,
11763    info: *mut lapackint,
11764);
11765
11766define_lapack_ffi!(dpocon, DpoconFnPtr,
11767    uplo: *const c_char,
11768    n: *const lapackint,
11769    A: *const f64,
11770    lda: *const lapackint,
11771    anorm: *const f64,
11772    rcond: *mut f64,
11773    work: *mut f64,
11774    iwork: *mut lapackint,
11775    info: *mut lapackint,
11776);
11777
11778define_lapack_ffi!(spocon, SpoconFnPtr,
11779    uplo: *const c_char,
11780    n: *const lapackint,
11781    A: *const f32,
11782    lda: *const lapackint,
11783    anorm: *const f32,
11784    rcond: *mut f32,
11785    work: *mut f32,
11786    iwork: *mut lapackint,
11787    info: *mut lapackint,
11788);
11789
11790define_lapack_ffi!(zpocon, ZpoconFnPtr,
11791    uplo: *const c_char,
11792    n: *const lapackint,
11793    A: *const Complex64,
11794    lda: *const lapackint,
11795    anorm: *const f64,
11796    rcond: *mut f64,
11797    work: *mut Complex64,
11798    rwork: *mut f64,
11799    info: *mut lapackint,
11800);
11801
11802// POEQU
11803define_lapack_ffi!(cpoequ, CpoequFnPtr,
11804    n: *const lapackint,
11805    A: *const Complex32,
11806    lda: *const lapackint,
11807    S: *mut f32,
11808    scond: *mut f32,
11809    amax: *mut f32,
11810    info: *mut lapackint,
11811);
11812
11813define_lapack_ffi!(dpoequ, DpoequFnPtr,
11814    n: *const lapackint,
11815    A: *const f64,
11816    lda: *const lapackint,
11817    S: *mut f64,
11818    scond: *mut f64,
11819    amax: *mut f64,
11820    info: *mut lapackint,
11821);
11822
11823define_lapack_ffi!(spoequ, SpoequFnPtr,
11824    n: *const lapackint,
11825    A: *const f32,
11826    lda: *const lapackint,
11827    S: *mut f32,
11828    scond: *mut f32,
11829    amax: *mut f32,
11830    info: *mut lapackint,
11831);
11832
11833define_lapack_ffi!(zpoequ, ZpoequFnPtr,
11834    n: *const lapackint,
11835    A: *const Complex64,
11836    lda: *const lapackint,
11837    S: *mut f64,
11838    scond: *mut f64,
11839    amax: *mut f64,
11840    info: *mut lapackint,
11841);
11842
11843// POEQUB
11844define_lapack_ffi!(cpoequb, CpoequbFnPtr,
11845    n: *const lapackint,
11846    A: *const Complex32,
11847    lda: *const lapackint,
11848    S: *mut f32,
11849    scond: *mut f32,
11850    amax: *mut f32,
11851    info: *mut lapackint,
11852);
11853
11854define_lapack_ffi!(dpoequb, DpoequbFnPtr,
11855    n: *const lapackint,
11856    A: *const f64,
11857    lda: *const lapackint,
11858    S: *mut f64,
11859    scond: *mut f64,
11860    amax: *mut f64,
11861    info: *mut lapackint,
11862);
11863
11864define_lapack_ffi!(spoequb, SpoequbFnPtr,
11865    n: *const lapackint,
11866    A: *const f32,
11867    lda: *const lapackint,
11868    S: *mut f32,
11869    scond: *mut f32,
11870    amax: *mut f32,
11871    info: *mut lapackint,
11872);
11873
11874define_lapack_ffi!(zpoequb, ZpoequbFnPtr,
11875    n: *const lapackint,
11876    A: *const Complex64,
11877    lda: *const lapackint,
11878    S: *mut f64,
11879    scond: *mut f64,
11880    amax: *mut f64,
11881    info: *mut lapackint,
11882);
11883
11884// PORFS
11885define_lapack_ffi!(cporfs, CporfsFnPtr,
11886    uplo: *const c_char,
11887    n: *const lapackint,
11888    nrhs: *const lapackint,
11889    A: *const Complex32,
11890    lda: *const lapackint,
11891    AF: *const Complex32,
11892    ldaf: *const lapackint,
11893    B: *const Complex32,
11894    ldb: *const lapackint,
11895    X: *mut Complex32,
11896    ldx: *const lapackint,
11897    ferr: *mut f32,
11898    berr: *mut f32,
11899    work: *mut Complex32,
11900    rwork: *mut f32,
11901    info: *mut lapackint,
11902);
11903
11904define_lapack_ffi!(dporfs, DporfsFnPtr,
11905    uplo: *const c_char,
11906    n: *const lapackint,
11907    nrhs: *const lapackint,
11908    A: *const f64,
11909    lda: *const lapackint,
11910    AF: *const f64,
11911    ldaf: *const lapackint,
11912    B: *const f64,
11913    ldb: *const lapackint,
11914    X: *mut f64,
11915    ldx: *const lapackint,
11916    ferr: *mut f64,
11917    berr: *mut f64,
11918    work: *mut f64,
11919    iwork: *mut lapackint,
11920    info: *mut lapackint,
11921);
11922
11923define_lapack_ffi!(sporfs, SporfsFnPtr,
11924    uplo: *const c_char,
11925    n: *const lapackint,
11926    nrhs: *const lapackint,
11927    A: *const f32,
11928    lda: *const lapackint,
11929    AF: *const f32,
11930    ldaf: *const lapackint,
11931    B: *const f32,
11932    ldb: *const lapackint,
11933    X: *mut f32,
11934    ldx: *const lapackint,
11935    ferr: *mut f32,
11936    berr: *mut f32,
11937    work: *mut f32,
11938    iwork: *mut lapackint,
11939    info: *mut lapackint,
11940);
11941
11942define_lapack_ffi!(zporfs, ZporfsFnPtr,
11943    uplo: *const c_char,
11944    n: *const lapackint,
11945    nrhs: *const lapackint,
11946    A: *const Complex64,
11947    lda: *const lapackint,
11948    AF: *const Complex64,
11949    ldaf: *const lapackint,
11950    B: *const Complex64,
11951    ldb: *const lapackint,
11952    X: *mut Complex64,
11953    ldx: *const lapackint,
11954    ferr: *mut f64,
11955    berr: *mut f64,
11956    work: *mut Complex64,
11957    rwork: *mut f64,
11958    info: *mut lapackint,
11959);
11960
11961// PORFSX
11962define_lapack_ffi!(cporfsx, CporfsxFnPtr,
11963    uplo: *const c_char,
11964    equed: *const c_char,
11965    n: *const lapackint,
11966    nrhs: *const lapackint,
11967    A: *const Complex32,
11968    lda: *const lapackint,
11969    AF: *const Complex32,
11970    ldaf: *const lapackint,
11971    S: *mut f32,
11972    B: *const Complex32,
11973    ldb: *const lapackint,
11974    X: *mut Complex32,
11975    ldx: *const lapackint,
11976    rcond: *mut f32,
11977    berr: *mut f32,
11978    n_err_bnds: *const lapackint,
11979    err_bnds_norm: *mut f32,
11980    err_bnds_comp: *mut f32,
11981    nparams: *const lapackint,
11982    params: *mut f32,
11983    work: *mut Complex32,
11984    rwork: *mut f32,
11985    info: *mut lapackint,
11986);
11987
11988define_lapack_ffi!(dporfsx, DporfsxFnPtr,
11989    uplo: *const c_char,
11990    equed: *const c_char,
11991    n: *const lapackint,
11992    nrhs: *const lapackint,
11993    A: *const f64,
11994    lda: *const lapackint,
11995    AF: *const f64,
11996    ldaf: *const lapackint,
11997    S: *mut f64,
11998    B: *const f64,
11999    ldb: *const lapackint,
12000    X: *mut f64,
12001    ldx: *const lapackint,
12002    rcond: *mut f64,
12003    berr: *mut f64,
12004    n_err_bnds: *const lapackint,
12005    err_bnds_norm: *mut f64,
12006    err_bnds_comp: *mut f64,
12007    nparams: *const lapackint,
12008    params: *mut f64,
12009    work: *mut f64,
12010    iwork: *mut lapackint,
12011    info: *mut lapackint,
12012);
12013
12014define_lapack_ffi!(sporfsx, SporfsxFnPtr,
12015    uplo: *const c_char,
12016    equed: *const c_char,
12017    n: *const lapackint,
12018    nrhs: *const lapackint,
12019    A: *const f32,
12020    lda: *const lapackint,
12021    AF: *const f32,
12022    ldaf: *const lapackint,
12023    S: *mut f32,
12024    B: *const f32,
12025    ldb: *const lapackint,
12026    X: *mut f32,
12027    ldx: *const lapackint,
12028    rcond: *mut f32,
12029    berr: *mut f32,
12030    n_err_bnds: *const lapackint,
12031    err_bnds_norm: *mut f32,
12032    err_bnds_comp: *mut f32,
12033    nparams: *const lapackint,
12034    params: *mut f32,
12035    work: *mut f32,
12036    iwork: *mut lapackint,
12037    info: *mut lapackint,
12038);
12039
12040define_lapack_ffi!(zporfsx, ZporfsxFnPtr,
12041    uplo: *const c_char,
12042    equed: *const c_char,
12043    n: *const lapackint,
12044    nrhs: *const lapackint,
12045    A: *const Complex64,
12046    lda: *const lapackint,
12047    AF: *const Complex64,
12048    ldaf: *const lapackint,
12049    S: *mut f64,
12050    B: *const Complex64,
12051    ldb: *const lapackint,
12052    X: *mut Complex64,
12053    ldx: *const lapackint,
12054    rcond: *mut f64,
12055    berr: *mut f64,
12056    n_err_bnds: *const lapackint,
12057    err_bnds_norm: *mut f64,
12058    err_bnds_comp: *mut f64,
12059    nparams: *const lapackint,
12060    params: *mut f64,
12061    work: *mut Complex64,
12062    rwork: *mut f64,
12063    info: *mut lapackint,
12064);
12065
12066// POSV
12067define_lapack_ffi!(cposv, CposvFnPtr,
12068    uplo: *const c_char,
12069    n: *const lapackint,
12070    nrhs: *const lapackint,
12071    A: *mut Complex32,
12072    lda: *const lapackint,
12073    B: *mut Complex32,
12074    ldb: *const lapackint,
12075    info: *mut lapackint,
12076);
12077
12078define_lapack_ffi!(dposv, DposvFnPtr,
12079    uplo: *const c_char,
12080    n: *const lapackint,
12081    nrhs: *const lapackint,
12082    A: *mut f64,
12083    lda: *const lapackint,
12084    B: *mut f64,
12085    ldb: *const lapackint,
12086    info: *mut lapackint,
12087);
12088
12089define_lapack_ffi!(sposv, SposvFnPtr,
12090    uplo: *const c_char,
12091    n: *const lapackint,
12092    nrhs: *const lapackint,
12093    A: *mut f32,
12094    lda: *const lapackint,
12095    B: *mut f32,
12096    ldb: *const lapackint,
12097    info: *mut lapackint,
12098);
12099
12100define_lapack_ffi!(zposv, ZposvFnPtr,
12101    uplo: *const c_char,
12102    n: *const lapackint,
12103    nrhs: *const lapackint,
12104    A: *mut Complex64,
12105    lda: *const lapackint,
12106    B: *mut Complex64,
12107    ldb: *const lapackint,
12108    info: *mut lapackint,
12109);
12110
12111// POSVX
12112define_lapack_ffi!(cposvx, CposvxFnPtr,
12113    fact: *const c_char,
12114    uplo: *const c_char,
12115    n: *const lapackint,
12116    nrhs: *const lapackint,
12117    A: *mut Complex32,
12118    lda: *const lapackint,
12119    AF: *mut Complex32,
12120    ldaf: *const lapackint,
12121    equed: *mut c_char,
12122    S: *mut f32,
12123    B: *mut Complex32,
12124    ldb: *const lapackint,
12125    X: *mut Complex32,
12126    ldx: *const lapackint,
12127    rcond: *mut f32,
12128    ferr: *mut f32,
12129    berr: *mut f32,
12130    work: *mut Complex32,
12131    rwork: *mut f32,
12132    info: *mut lapackint,
12133);
12134
12135define_lapack_ffi!(dposvx, DposvxFnPtr,
12136    fact: *const c_char,
12137    uplo: *const c_char,
12138    n: *const lapackint,
12139    nrhs: *const lapackint,
12140    A: *mut f64,
12141    lda: *const lapackint,
12142    AF: *mut f64,
12143    ldaf: *const lapackint,
12144    equed: *mut c_char,
12145    S: *mut f64,
12146    B: *mut f64,
12147    ldb: *const lapackint,
12148    X: *mut f64,
12149    ldx: *const lapackint,
12150    rcond: *mut f64,
12151    ferr: *mut f64,
12152    berr: *mut f64,
12153    work: *mut f64,
12154    iwork: *mut lapackint,
12155    info: *mut lapackint,
12156);
12157
12158define_lapack_ffi!(sposvx, SposvxFnPtr,
12159    fact: *const c_char,
12160    uplo: *const c_char,
12161    n: *const lapackint,
12162    nrhs: *const lapackint,
12163    A: *mut f32,
12164    lda: *const lapackint,
12165    AF: *mut f32,
12166    ldaf: *const lapackint,
12167    equed: *mut c_char,
12168    S: *mut f32,
12169    B: *mut f32,
12170    ldb: *const lapackint,
12171    X: *mut f32,
12172    ldx: *const lapackint,
12173    rcond: *mut f32,
12174    ferr: *mut f32,
12175    berr: *mut f32,
12176    work: *mut f32,
12177    iwork: *mut lapackint,
12178    info: *mut lapackint,
12179);
12180
12181define_lapack_ffi!(zposvx, ZposvxFnPtr,
12182    fact: *const c_char,
12183    uplo: *const c_char,
12184    n: *const lapackint,
12185    nrhs: *const lapackint,
12186    A: *mut Complex64,
12187    lda: *const lapackint,
12188    AF: *mut Complex64,
12189    ldaf: *const lapackint,
12190    equed: *mut c_char,
12191    S: *mut f64,
12192    B: *mut Complex64,
12193    ldb: *const lapackint,
12194    X: *mut Complex64,
12195    ldx: *const lapackint,
12196    rcond: *mut f64,
12197    ferr: *mut f64,
12198    berr: *mut f64,
12199    work: *mut Complex64,
12200    rwork: *mut f64,
12201    info: *mut lapackint,
12202);
12203
12204// POSVXX
12205define_lapack_ffi!(cposvxx, CposvxxFnPtr,
12206    fact: *const c_char,
12207    uplo: *const c_char,
12208    n: *const lapackint,
12209    nrhs: *const lapackint,
12210    A: *mut Complex32,
12211    lda: *const lapackint,
12212    AF: *mut Complex32,
12213    ldaf: *const lapackint,
12214    equed: *mut c_char,
12215    S: *mut f32,
12216    B: *mut Complex32,
12217    ldb: *const lapackint,
12218    X: *mut Complex32,
12219    ldx: *const lapackint,
12220    rcond: *mut f32,
12221    rpvgrw: *mut f32,
12222    berr: *mut f32,
12223    n_err_bnds: *const lapackint,
12224    err_bnds_norm: *mut f32,
12225    err_bnds_comp: *mut f32,
12226    nparams: *const lapackint,
12227    params: *mut f32,
12228    work: *mut Complex32,
12229    rwork: *mut f32,
12230    info: *mut lapackint,
12231);
12232
12233define_lapack_ffi!(dposvxx, DposvxxFnPtr,
12234    fact: *const c_char,
12235    uplo: *const c_char,
12236    n: *const lapackint,
12237    nrhs: *const lapackint,
12238    A: *mut f64,
12239    lda: *const lapackint,
12240    AF: *mut f64,
12241    ldaf: *const lapackint,
12242    equed: *mut c_char,
12243    S: *mut f64,
12244    B: *mut f64,
12245    ldb: *const lapackint,
12246    X: *mut f64,
12247    ldx: *const lapackint,
12248    rcond: *mut f64,
12249    rpvgrw: *mut f64,
12250    berr: *mut f64,
12251    n_err_bnds: *const lapackint,
12252    err_bnds_norm: *mut f64,
12253    err_bnds_comp: *mut f64,
12254    nparams: *const lapackint,
12255    params: *mut f64,
12256    work: *mut f64,
12257    iwork: *mut lapackint,
12258    info: *mut lapackint,
12259);
12260
12261define_lapack_ffi!(sposvxx, SposvxxFnPtr,
12262    fact: *const c_char,
12263    uplo: *const c_char,
12264    n: *const lapackint,
12265    nrhs: *const lapackint,
12266    A: *mut f32,
12267    lda: *const lapackint,
12268    AF: *mut f32,
12269    ldaf: *const lapackint,
12270    equed: *mut c_char,
12271    S: *mut f32,
12272    B: *mut f32,
12273    ldb: *const lapackint,
12274    X: *mut f32,
12275    ldx: *const lapackint,
12276    rcond: *mut f32,
12277    rpvgrw: *mut f32,
12278    berr: *mut f32,
12279    n_err_bnds: *const lapackint,
12280    err_bnds_norm: *mut f32,
12281    err_bnds_comp: *mut f32,
12282    nparams: *const lapackint,
12283    params: *mut f32,
12284    work: *mut f32,
12285    iwork: *mut lapackint,
12286    info: *mut lapackint,
12287);
12288
12289define_lapack_ffi!(zposvxx, ZposvxxFnPtr,
12290    fact: *const c_char,
12291    uplo: *const c_char,
12292    n: *const lapackint,
12293    nrhs: *const lapackint,
12294    A: *mut Complex64,
12295    lda: *const lapackint,
12296    AF: *mut Complex64,
12297    ldaf: *const lapackint,
12298    equed: *mut c_char,
12299    S: *mut f64,
12300    B: *mut Complex64,
12301    ldb: *const lapackint,
12302    X: *mut Complex64,
12303    ldx: *const lapackint,
12304    rcond: *mut f64,
12305    rpvgrw: *mut f64,
12306    berr: *mut f64,
12307    n_err_bnds: *const lapackint,
12308    err_bnds_norm: *mut f64,
12309    err_bnds_comp: *mut f64,
12310    nparams: *const lapackint,
12311    params: *mut f64,
12312    work: *mut Complex64,
12313    rwork: *mut f64,
12314    info: *mut lapackint,
12315);
12316
12317// POTF2
12318define_lapack_ffi!(cpotf2, Cpotf2FnPtr,
12319    uplo: *const c_char,
12320    n: *const lapackint,
12321    A: *mut Complex32,
12322    lda: *const lapackint,
12323    info: *mut lapackint,
12324);
12325
12326define_lapack_ffi!(dpotf2, Dpotf2FnPtr,
12327    uplo: *const c_char,
12328    n: *const lapackint,
12329    A: *mut f64,
12330    lda: *const lapackint,
12331    info: *mut lapackint,
12332);
12333
12334define_lapack_ffi!(spotf2, Spotf2FnPtr,
12335    uplo: *const c_char,
12336    n: *const lapackint,
12337    A: *mut f32,
12338    lda: *const lapackint,
12339    info: *mut lapackint,
12340);
12341
12342define_lapack_ffi!(zpotf2, Zpotf2FnPtr,
12343    uplo: *const c_char,
12344    n: *const lapackint,
12345    A: *mut Complex64,
12346    lda: *const lapackint,
12347    info: *mut lapackint,
12348);
12349
12350// POTRF
12351define_lapack_ffi!(cpotrf, CpotrfFnPtr,
12352    uplo: *const c_char,
12353    n: *const lapackint,
12354    A: *mut Complex32,
12355    lda: *const lapackint,
12356    info: *mut lapackint,
12357);
12358
12359define_lapack_ffi!(dpotrf, DpotrfFnPtr,
12360    uplo: *const c_char,
12361    n: *const lapackint,
12362    A: *mut f64,
12363    lda: *const lapackint,
12364    info: *mut lapackint,
12365);
12366
12367define_lapack_ffi!(spotrf, SpotrfFnPtr,
12368    uplo: *const c_char,
12369    n: *const lapackint,
12370    A: *mut f32,
12371    lda: *const lapackint,
12372    info: *mut lapackint,
12373);
12374
12375define_lapack_ffi!(zpotrf, ZpotrfFnPtr,
12376    uplo: *const c_char,
12377    n: *const lapackint,
12378    A: *mut Complex64,
12379    lda: *const lapackint,
12380    info: *mut lapackint,
12381);
12382
12383// POTRF2
12384define_lapack_ffi!(cpotrf2, Cpotrf2FnPtr,
12385    uplo: *const c_char,
12386    n: *const lapackint,
12387    A: *mut Complex32,
12388    lda: *const lapackint,
12389    info: *mut lapackint,
12390);
12391
12392define_lapack_ffi!(dpotrf2, Dpotrf2FnPtr,
12393    uplo: *const c_char,
12394    n: *const lapackint,
12395    A: *mut f64,
12396    lda: *const lapackint,
12397    info: *mut lapackint,
12398);
12399
12400define_lapack_ffi!(spotrf2, Spotrf2FnPtr,
12401    uplo: *const c_char,
12402    n: *const lapackint,
12403    A: *mut f32,
12404    lda: *const lapackint,
12405    info: *mut lapackint,
12406);
12407
12408define_lapack_ffi!(zpotrf2, Zpotrf2FnPtr,
12409    uplo: *const c_char,
12410    n: *const lapackint,
12411    A: *mut Complex64,
12412    lda: *const lapackint,
12413    info: *mut lapackint,
12414);
12415
12416// POTRI
12417define_lapack_ffi!(cpotri, CpotriFnPtr,
12418    uplo: *const c_char,
12419    n: *const lapackint,
12420    A: *mut Complex32,
12421    lda: *const lapackint,
12422    info: *mut lapackint,
12423);
12424
12425define_lapack_ffi!(dpotri, DpotriFnPtr,
12426    uplo: *const c_char,
12427    n: *const lapackint,
12428    A: *mut f64,
12429    lda: *const lapackint,
12430    info: *mut lapackint,
12431);
12432
12433define_lapack_ffi!(spotri, SpotriFnPtr,
12434    uplo: *const c_char,
12435    n: *const lapackint,
12436    A: *mut f32,
12437    lda: *const lapackint,
12438    info: *mut lapackint,
12439);
12440
12441define_lapack_ffi!(zpotri, ZpotriFnPtr,
12442    uplo: *const c_char,
12443    n: *const lapackint,
12444    A: *mut Complex64,
12445    lda: *const lapackint,
12446    info: *mut lapackint,
12447);
12448
12449// POTRS
12450define_lapack_ffi!(cpotrs, CpotrsFnPtr,
12451    uplo: *const c_char,
12452    n: *const lapackint,
12453    nrhs: *const lapackint,
12454    A: *const Complex32,
12455    lda: *const lapackint,
12456    B: *mut Complex32,
12457    ldb: *const lapackint,
12458    info: *mut lapackint,
12459);
12460
12461define_lapack_ffi!(dpotrs, DpotrsFnPtr,
12462    uplo: *const c_char,
12463    n: *const lapackint,
12464    nrhs: *const lapackint,
12465    A: *const f64,
12466    lda: *const lapackint,
12467    B: *mut f64,
12468    ldb: *const lapackint,
12469    info: *mut lapackint,
12470);
12471
12472define_lapack_ffi!(spotrs, SpotrsFnPtr,
12473    uplo: *const c_char,
12474    n: *const lapackint,
12475    nrhs: *const lapackint,
12476    A: *const f32,
12477    lda: *const lapackint,
12478    B: *mut f32,
12479    ldb: *const lapackint,
12480    info: *mut lapackint,
12481);
12482
12483define_lapack_ffi!(zpotrs, ZpotrsFnPtr,
12484    uplo: *const c_char,
12485    n: *const lapackint,
12486    nrhs: *const lapackint,
12487    A: *const Complex64,
12488    lda: *const lapackint,
12489    B: *mut Complex64,
12490    ldb: *const lapackint,
12491    info: *mut lapackint,
12492);
12493
12494// PPCON
12495define_lapack_ffi!(cppcon, CppconFnPtr,
12496    uplo: *const c_char,
12497    n: *const lapackint,
12498    AP: *const Complex32,
12499    anorm: *const f32,
12500    rcond: *mut f32,
12501    work: *mut Complex32,
12502    rwork: *mut f32,
12503    info: *mut lapackint,
12504);
12505
12506define_lapack_ffi!(dppcon, DppconFnPtr,
12507    uplo: *const c_char,
12508    n: *const lapackint,
12509    AP: *const f64,
12510    anorm: *const f64,
12511    rcond: *mut f64,
12512    work: *mut f64,
12513    iwork: *mut lapackint,
12514    info: *mut lapackint,
12515);
12516
12517define_lapack_ffi!(sppcon, SppconFnPtr,
12518    uplo: *const c_char,
12519    n: *const lapackint,
12520    AP: *const f32,
12521    anorm: *const f32,
12522    rcond: *mut f32,
12523    work: *mut f32,
12524    iwork: *mut lapackint,
12525    info: *mut lapackint,
12526);
12527
12528define_lapack_ffi!(zppcon, ZppconFnPtr,
12529    uplo: *const c_char,
12530    n: *const lapackint,
12531    AP: *const Complex64,
12532    anorm: *const f64,
12533    rcond: *mut f64,
12534    work: *mut Complex64,
12535    rwork: *mut f64,
12536    info: *mut lapackint,
12537);
12538
12539// PPEQU
12540define_lapack_ffi!(cppequ, CppequFnPtr,
12541    uplo: *const c_char,
12542    n: *const lapackint,
12543    AP: *const Complex32,
12544    S: *mut f32,
12545    scond: *mut f32,
12546    amax: *mut f32,
12547    info: *mut lapackint,
12548);
12549
12550define_lapack_ffi!(dppequ, DppequFnPtr,
12551    uplo: *const c_char,
12552    n: *const lapackint,
12553    AP: *const f64,
12554    S: *mut f64,
12555    scond: *mut f64,
12556    amax: *mut f64,
12557    info: *mut lapackint,
12558);
12559
12560define_lapack_ffi!(sppequ, SppequFnPtr,
12561    uplo: *const c_char,
12562    n: *const lapackint,
12563    AP: *const f32,
12564    S: *mut f32,
12565    scond: *mut f32,
12566    amax: *mut f32,
12567    info: *mut lapackint,
12568);
12569
12570define_lapack_ffi!(zppequ, ZppequFnPtr,
12571    uplo: *const c_char,
12572    n: *const lapackint,
12573    AP: *const Complex64,
12574    S: *mut f64,
12575    scond: *mut f64,
12576    amax: *mut f64,
12577    info: *mut lapackint,
12578);
12579
12580// PPRFS
12581define_lapack_ffi!(cpprfs, CpprfsFnPtr,
12582    uplo: *const c_char,
12583    n: *const lapackint,
12584    nrhs: *const lapackint,
12585    AP: *const Complex32,
12586    AFP: *const Complex32,
12587    B: *const Complex32,
12588    ldb: *const lapackint,
12589    X: *mut Complex32,
12590    ldx: *const lapackint,
12591    ferr: *mut f32,
12592    berr: *mut f32,
12593    work: *mut Complex32,
12594    rwork: *mut f32,
12595    info: *mut lapackint,
12596);
12597
12598define_lapack_ffi!(dpprfs, DpprfsFnPtr,
12599    uplo: *const c_char,
12600    n: *const lapackint,
12601    nrhs: *const lapackint,
12602    AP: *const f64,
12603    AFP: *const f64,
12604    B: *const f64,
12605    ldb: *const lapackint,
12606    X: *mut f64,
12607    ldx: *const lapackint,
12608    ferr: *mut f64,
12609    berr: *mut f64,
12610    work: *mut f64,
12611    iwork: *mut lapackint,
12612    info: *mut lapackint,
12613);
12614
12615define_lapack_ffi!(spprfs, SpprfsFnPtr,
12616    uplo: *const c_char,
12617    n: *const lapackint,
12618    nrhs: *const lapackint,
12619    AP: *const f32,
12620    AFP: *const f32,
12621    B: *const f32,
12622    ldb: *const lapackint,
12623    X: *mut f32,
12624    ldx: *const lapackint,
12625    ferr: *mut f32,
12626    berr: *mut f32,
12627    work: *mut f32,
12628    iwork: *mut lapackint,
12629    info: *mut lapackint,
12630);
12631
12632define_lapack_ffi!(zpprfs, ZpprfsFnPtr,
12633    uplo: *const c_char,
12634    n: *const lapackint,
12635    nrhs: *const lapackint,
12636    AP: *const Complex64,
12637    AFP: *const Complex64,
12638    B: *const Complex64,
12639    ldb: *const lapackint,
12640    X: *mut Complex64,
12641    ldx: *const lapackint,
12642    ferr: *mut f64,
12643    berr: *mut f64,
12644    work: *mut Complex64,
12645    rwork: *mut f64,
12646    info: *mut lapackint,
12647);
12648
12649// PPSV
12650define_lapack_ffi!(cppsv, CppsvFnPtr,
12651    uplo: *const c_char,
12652    n: *const lapackint,
12653    nrhs: *const lapackint,
12654    AP: *mut Complex32,
12655    B: *mut Complex32,
12656    ldb: *const lapackint,
12657    info: *mut lapackint,
12658);
12659
12660define_lapack_ffi!(dppsv, DppsvFnPtr,
12661    uplo: *const c_char,
12662    n: *const lapackint,
12663    nrhs: *const lapackint,
12664    AP: *mut f64,
12665    B: *mut f64,
12666    ldb: *const lapackint,
12667    info: *mut lapackint,
12668);
12669
12670define_lapack_ffi!(sppsv, SppsvFnPtr,
12671    uplo: *const c_char,
12672    n: *const lapackint,
12673    nrhs: *const lapackint,
12674    AP: *mut f32,
12675    B: *mut f32,
12676    ldb: *const lapackint,
12677    info: *mut lapackint,
12678);
12679
12680define_lapack_ffi!(zppsv, ZppsvFnPtr,
12681    uplo: *const c_char,
12682    n: *const lapackint,
12683    nrhs: *const lapackint,
12684    AP: *mut Complex64,
12685    B: *mut Complex64,
12686    ldb: *const lapackint,
12687    info: *mut lapackint,
12688);
12689
12690// PPSVX
12691define_lapack_ffi!(cppsvx, CppsvxFnPtr,
12692    fact: *const c_char,
12693    uplo: *const c_char,
12694    n: *const lapackint,
12695    nrhs: *const lapackint,
12696    AP: *mut Complex32,
12697    AFP: *mut Complex32,
12698    equed: *mut c_char,
12699    S: *mut f32,
12700    B: *mut Complex32,
12701    ldb: *const lapackint,
12702    X: *mut Complex32,
12703    ldx: *const lapackint,
12704    rcond: *mut f32,
12705    ferr: *mut f32,
12706    berr: *mut f32,
12707    work: *mut Complex32,
12708    rwork: *mut f32,
12709    info: *mut lapackint,
12710);
12711
12712define_lapack_ffi!(dppsvx, DppsvxFnPtr,
12713    fact: *const c_char,
12714    uplo: *const c_char,
12715    n: *const lapackint,
12716    nrhs: *const lapackint,
12717    AP: *mut f64,
12718    AFP: *mut f64,
12719    equed: *mut c_char,
12720    S: *mut f64,
12721    B: *mut f64,
12722    ldb: *const lapackint,
12723    X: *mut f64,
12724    ldx: *const lapackint,
12725    rcond: *mut f64,
12726    ferr: *mut f64,
12727    berr: *mut f64,
12728    work: *mut f64,
12729    iwork: *mut lapackint,
12730    info: *mut lapackint,
12731);
12732
12733define_lapack_ffi!(sppsvx, SppsvxFnPtr,
12734    fact: *const c_char,
12735    uplo: *const c_char,
12736    n: *const lapackint,
12737    nrhs: *const lapackint,
12738    AP: *mut f32,
12739    AFP: *mut f32,
12740    equed: *mut c_char,
12741    S: *mut f32,
12742    B: *mut f32,
12743    ldb: *const lapackint,
12744    X: *mut f32,
12745    ldx: *const lapackint,
12746    rcond: *mut f32,
12747    ferr: *mut f32,
12748    berr: *mut f32,
12749    work: *mut f32,
12750    iwork: *mut lapackint,
12751    info: *mut lapackint,
12752);
12753
12754define_lapack_ffi!(zppsvx, ZppsvxFnPtr,
12755    fact: *const c_char,
12756    uplo: *const c_char,
12757    n: *const lapackint,
12758    nrhs: *const lapackint,
12759    AP: *mut Complex64,
12760    AFP: *mut Complex64,
12761    equed: *mut c_char,
12762    S: *mut f64,
12763    B: *mut Complex64,
12764    ldb: *const lapackint,
12765    X: *mut Complex64,
12766    ldx: *const lapackint,
12767    rcond: *mut f64,
12768    ferr: *mut f64,
12769    berr: *mut f64,
12770    work: *mut Complex64,
12771    rwork: *mut f64,
12772    info: *mut lapackint,
12773);
12774
12775// PPTRF
12776define_lapack_ffi!(cpptrf, CpptrfFnPtr,
12777    uplo: *const c_char,
12778    n: *const lapackint,
12779    AP: *mut Complex32,
12780    info: *mut lapackint,
12781);
12782
12783define_lapack_ffi!(dpptrf, DpptrfFnPtr,
12784    uplo: *const c_char,
12785    n: *const lapackint,
12786    AP: *mut f64,
12787    info: *mut lapackint,
12788);
12789
12790define_lapack_ffi!(spptrf, SpptrfFnPtr,
12791    uplo: *const c_char,
12792    n: *const lapackint,
12793    AP: *mut f32,
12794    info: *mut lapackint,
12795);
12796
12797define_lapack_ffi!(zpptrf, ZpptrfFnPtr,
12798    uplo: *const c_char,
12799    n: *const lapackint,
12800    AP: *mut Complex64,
12801    info: *mut lapackint,
12802);
12803
12804// PPTRI
12805define_lapack_ffi!(cpptri, CpptriFnPtr,
12806    uplo: *const c_char,
12807    n: *const lapackint,
12808    AP: *mut Complex32,
12809    info: *mut lapackint,
12810);
12811
12812define_lapack_ffi!(dpptri, DpptriFnPtr,
12813    uplo: *const c_char,
12814    n: *const lapackint,
12815    AP: *mut f64,
12816    info: *mut lapackint,
12817);
12818
12819define_lapack_ffi!(spptri, SpptriFnPtr,
12820    uplo: *const c_char,
12821    n: *const lapackint,
12822    AP: *mut f32,
12823    info: *mut lapackint,
12824);
12825
12826define_lapack_ffi!(zpptri, ZpptriFnPtr,
12827    uplo: *const c_char,
12828    n: *const lapackint,
12829    AP: *mut Complex64,
12830    info: *mut lapackint,
12831);
12832
12833// PPTRS
12834define_lapack_ffi!(cpptrs, CpptrsFnPtr,
12835    uplo: *const c_char,
12836    n: *const lapackint,
12837    nrhs: *const lapackint,
12838    AP: *const Complex32,
12839    B: *mut Complex32,
12840    ldb: *const lapackint,
12841    info: *mut lapackint,
12842);
12843
12844define_lapack_ffi!(dpptrs, DpptrsFnPtr,
12845    uplo: *const c_char,
12846    n: *const lapackint,
12847    nrhs: *const lapackint,
12848    AP: *const f64,
12849    B: *mut f64,
12850    ldb: *const lapackint,
12851    info: *mut lapackint,
12852);
12853
12854define_lapack_ffi!(spptrs, SpptrsFnPtr,
12855    uplo: *const c_char,
12856    n: *const lapackint,
12857    nrhs: *const lapackint,
12858    AP: *const f32,
12859    B: *mut f32,
12860    ldb: *const lapackint,
12861    info: *mut lapackint,
12862);
12863
12864define_lapack_ffi!(zpptrs, ZpptrsFnPtr,
12865    uplo: *const c_char,
12866    n: *const lapackint,
12867    nrhs: *const lapackint,
12868    AP: *const Complex64,
12869    B: *mut Complex64,
12870    ldb: *const lapackint,
12871    info: *mut lapackint,
12872);
12873
12874// PSTRF
12875define_lapack_ffi!(cpstrf, CpstrfFnPtr,
12876    uplo: *const c_char,
12877    n: *const lapackint,
12878    A: *mut Complex32,
12879    lda: *const lapackint,
12880    piv: *mut lapackint,
12881    rank: *mut lapackint,
12882    tol: *const f32,
12883    work: *mut f32,
12884    info: *mut lapackint,
12885);
12886
12887define_lapack_ffi!(dpstrf, DpstrfFnPtr,
12888    uplo: *const c_char,
12889    n: *const lapackint,
12890    A: *mut f64,
12891    lda: *const lapackint,
12892    piv: *mut lapackint,
12893    rank: *mut lapackint,
12894    tol: *const f64,
12895    work: *mut f64,
12896    info: *mut lapackint,
12897);
12898
12899define_lapack_ffi!(spstrf, SpstrfFnPtr,
12900    uplo: *const c_char,
12901    n: *const lapackint,
12902    A: *mut f32,
12903    lda: *const lapackint,
12904    piv: *mut lapackint,
12905    rank: *mut lapackint,
12906    tol: *const f32,
12907    work: *mut f32,
12908    info: *mut lapackint,
12909);
12910
12911define_lapack_ffi!(zpstrf, ZpstrfFnPtr,
12912    uplo: *const c_char,
12913    n: *const lapackint,
12914    A: *mut Complex64,
12915    lda: *const lapackint,
12916    piv: *mut lapackint,
12917    rank: *mut lapackint,
12918    tol: *const f64,
12919    work: *mut f64,
12920    info: *mut lapackint,
12921);
12922
12923// PTCON
12924define_lapack_ffi!(cptcon, CptconFnPtr,
12925    n: *const lapackint,
12926    D: *const f32,
12927    E: *const Complex32,
12928    anorm: *const f32,
12929    rcond: *mut f32,
12930    rwork: *mut f32,
12931    info: *mut lapackint,
12932);
12933
12934define_lapack_ffi!(dptcon, DptconFnPtr,
12935    n: *const lapackint,
12936    D: *const f64,
12937    E: *const f64,
12938    anorm: *const f64,
12939    rcond: *mut f64,
12940    work: *mut f64,
12941    info: *mut lapackint,
12942);
12943
12944define_lapack_ffi!(sptcon, SptconFnPtr,
12945    n: *const lapackint,
12946    D: *const f32,
12947    E: *const f32,
12948    anorm: *const f32,
12949    rcond: *mut f32,
12950    work: *mut f32,
12951    info: *mut lapackint,
12952);
12953
12954define_lapack_ffi!(zptcon, ZptconFnPtr,
12955    n: *const lapackint,
12956    D: *const f64,
12957    E: *const Complex64,
12958    anorm: *const f64,
12959    rcond: *mut f64,
12960    rwork: *mut f64,
12961    info: *mut lapackint,
12962);
12963
12964// PTEQR
12965define_lapack_ffi!(cpteqr, CpteqrFnPtr,
12966    compz: *const c_char,
12967    n: *const lapackint,
12968    D: *mut f32,
12969    E: *mut f32,
12970    Z: *mut Complex32,
12971    ldz: *const lapackint,
12972    work: *mut f32,
12973    info: *mut lapackint,
12974);
12975
12976define_lapack_ffi!(dpteqr, DpteqrFnPtr,
12977    compz: *const c_char,
12978    n: *const lapackint,
12979    D: *mut f64,
12980    E: *mut f64,
12981    Z: *mut f64,
12982    ldz: *const lapackint,
12983    work: *mut f64,
12984    info: *mut lapackint,
12985);
12986
12987define_lapack_ffi!(spteqr, SpteqrFnPtr,
12988    compz: *const c_char,
12989    n: *const lapackint,
12990    D: *mut f32,
12991    E: *mut f32,
12992    Z: *mut f32,
12993    ldz: *const lapackint,
12994    work: *mut f32,
12995    info: *mut lapackint,
12996);
12997
12998define_lapack_ffi!(zpteqr, ZpteqrFnPtr,
12999    compz: *const c_char,
13000    n: *const lapackint,
13001    D: *mut f64,
13002    E: *mut f64,
13003    Z: *mut Complex64,
13004    ldz: *const lapackint,
13005    work: *mut f64,
13006    info: *mut lapackint,
13007);
13008
13009// PTRFS
13010define_lapack_ffi!(cptrfs, CptrfsFnPtr,
13011    uplo: *const c_char,
13012    n: *const lapackint,
13013    nrhs: *const lapackint,
13014    D: *const f32,
13015    E: *const Complex32,
13016    DF: *const f32,
13017    EF: *const Complex32,
13018    B: *const Complex32,
13019    ldb: *const lapackint,
13020    X: *mut Complex32,
13021    ldx: *const lapackint,
13022    ferr: *mut f32,
13023    berr: *mut f32,
13024    work: *mut Complex32,
13025    rwork: *mut f32,
13026    info: *mut lapackint,
13027);
13028
13029define_lapack_ffi!(dptrfs, DptrfsFnPtr,
13030    n: *const lapackint,
13031    nrhs: *const lapackint,
13032    D: *const f64,
13033    E: *const f64,
13034    DF: *const f64,
13035    EF: *const f64,
13036    B: *const f64,
13037    ldb: *const lapackint,
13038    X: *mut f64,
13039    ldx: *const lapackint,
13040    ferr: *mut f64,
13041    berr: *mut f64,
13042    work: *mut f64,
13043    info: *mut lapackint,
13044);
13045
13046define_lapack_ffi!(sptrfs, SptrfsFnPtr,
13047    n: *const lapackint,
13048    nrhs: *const lapackint,
13049    D: *const f32,
13050    E: *const f32,
13051    DF: *const f32,
13052    EF: *const f32,
13053    B: *const f32,
13054    ldb: *const lapackint,
13055    X: *mut f32,
13056    ldx: *const lapackint,
13057    ferr: *mut f32,
13058    berr: *mut f32,
13059    work: *mut f32,
13060    info: *mut lapackint,
13061);
13062
13063define_lapack_ffi!(zptrfs, ZptrfsFnPtr,
13064    uplo: *const c_char,
13065    n: *const lapackint,
13066    nrhs: *const lapackint,
13067    D: *const f64,
13068    E: *const Complex64,
13069    DF: *const f64,
13070    EF: *const Complex64,
13071    B: *const Complex64,
13072    ldb: *const lapackint,
13073    X: *mut Complex64,
13074    ldx: *const lapackint,
13075    ferr: *mut f64,
13076    berr: *mut f64,
13077    work: *mut Complex64,
13078    rwork: *mut f64,
13079    info: *mut lapackint,
13080);
13081
13082// PTSV
13083define_lapack_ffi!(cptsv, CptsvFnPtr,
13084    n: *const lapackint,
13085    nrhs: *const lapackint,
13086    D: *mut f32,
13087    E: *mut Complex32,
13088    B: *mut Complex32,
13089    ldb: *const lapackint,
13090    info: *mut lapackint,
13091);
13092
13093define_lapack_ffi!(dptsv, DptsvFnPtr,
13094    n: *const lapackint,
13095    nrhs: *const lapackint,
13096    D: *mut f64,
13097    E: *mut f64,
13098    B: *mut f64,
13099    ldb: *const lapackint,
13100    info: *mut lapackint,
13101);
13102
13103define_lapack_ffi!(sptsv, SptsvFnPtr,
13104    n: *const lapackint,
13105    nrhs: *const lapackint,
13106    D: *mut f32,
13107    E: *mut f32,
13108    B: *mut f32,
13109    ldb: *const lapackint,
13110    info: *mut lapackint,
13111);
13112
13113define_lapack_ffi!(zptsv, ZptsvFnPtr,
13114    n: *const lapackint,
13115    nrhs: *const lapackint,
13116    D: *mut f64,
13117    E: *mut Complex64,
13118    B: *mut Complex64,
13119    ldb: *const lapackint,
13120    info: *mut lapackint,
13121);
13122
13123// PTSVX
13124define_lapack_ffi!(cptsvx, CptsvxFnPtr,
13125    fact: *const c_char,
13126    n: *const lapackint,
13127    nrhs: *const lapackint,
13128    D: *const f32,
13129    E: *const Complex32,
13130    DF: *mut f32,
13131    EF: *mut Complex32,
13132    B: *const Complex32,
13133    ldb: *const lapackint,
13134    X: *mut Complex32,
13135    ldx: *const lapackint,
13136    rcond: *mut f32,
13137    ferr: *mut f32,
13138    berr: *mut f32,
13139    work: *mut Complex32,
13140    rwork: *mut f32,
13141    info: *mut lapackint,
13142);
13143
13144define_lapack_ffi!(dptsvx, DptsvxFnPtr,
13145    fact: *const c_char,
13146    n: *const lapackint,
13147    nrhs: *const lapackint,
13148    D: *const f64,
13149    E: *const f64,
13150    DF: *mut f64,
13151    EF: *mut f64,
13152    B: *const f64,
13153    ldb: *const lapackint,
13154    X: *mut f64,
13155    ldx: *const lapackint,
13156    rcond: *mut f64,
13157    ferr: *mut f64,
13158    berr: *mut f64,
13159    work: *mut f64,
13160    info: *mut lapackint,
13161);
13162
13163define_lapack_ffi!(sptsvx, SptsvxFnPtr,
13164    fact: *const c_char,
13165    n: *const lapackint,
13166    nrhs: *const lapackint,
13167    D: *const f32,
13168    E: *const f32,
13169    DF: *mut f32,
13170    EF: *mut f32,
13171    B: *const f32,
13172    ldb: *const lapackint,
13173    X: *mut f32,
13174    ldx: *const lapackint,
13175    rcond: *mut f32,
13176    ferr: *mut f32,
13177    berr: *mut f32,
13178    work: *mut f32,
13179    info: *mut lapackint,
13180);
13181
13182define_lapack_ffi!(zptsvx, ZptsvxFnPtr,
13183    fact: *const c_char,
13184    n: *const lapackint,
13185    nrhs: *const lapackint,
13186    D: *const f64,
13187    E: *const Complex64,
13188    DF: *mut f64,
13189    EF: *mut Complex64,
13190    B: *const Complex64,
13191    ldb: *const lapackint,
13192    X: *mut Complex64,
13193    ldx: *const lapackint,
13194    rcond: *mut f64,
13195    ferr: *mut f64,
13196    berr: *mut f64,
13197    work: *mut Complex64,
13198    rwork: *mut f64,
13199    info: *mut lapackint,
13200);
13201
13202// PTTRF
13203define_lapack_ffi!(cpttrf, CpttrfFnPtr,
13204    n: *const lapackint,
13205    D: *mut f32,
13206    E: *mut Complex32,
13207    info: *mut lapackint,
13208);
13209
13210define_lapack_ffi!(dpttrf, DpttrfFnPtr,
13211    n: *const lapackint,
13212    D: *mut f64,
13213    E: *mut f64,
13214    info: *mut lapackint,
13215);
13216
13217define_lapack_ffi!(spttrf, SpttrfFnPtr,
13218    n: *const lapackint,
13219    D: *mut f32,
13220    E: *mut f32,
13221    info: *mut lapackint,
13222);
13223
13224define_lapack_ffi!(zpttrf, ZpttrfFnPtr,
13225    n: *const lapackint,
13226    D: *mut f64,
13227    E: *mut Complex64,
13228    info: *mut lapackint,
13229);
13230
13231// PTTRS
13232define_lapack_ffi!(cpttrs, CpttrsFnPtr,
13233    uplo: *const c_char,
13234    n: *const lapackint,
13235    nrhs: *const lapackint,
13236    D: *const f32,
13237    E: *const Complex32,
13238    B: *mut Complex32,
13239    ldb: *const lapackint,
13240    info: *mut lapackint,
13241);
13242
13243define_lapack_ffi!(dpttrs, DpttrsFnPtr,
13244    n: *const lapackint,
13245    nrhs: *const lapackint,
13246    D: *const f64,
13247    E: *const f64,
13248    B: *mut f64,
13249    ldb: *const lapackint,
13250    info: *mut lapackint,
13251);
13252
13253define_lapack_ffi!(spttrs, SpttrsFnPtr,
13254    n: *const lapackint,
13255    nrhs: *const lapackint,
13256    D: *const f32,
13257    E: *const f32,
13258    B: *mut f32,
13259    ldb: *const lapackint,
13260    info: *mut lapackint,
13261);
13262
13263define_lapack_ffi!(zpttrs, ZpttrsFnPtr,
13264    uplo: *const c_char,
13265    n: *const lapackint,
13266    nrhs: *const lapackint,
13267    D: *const f64,
13268    E: *const Complex64,
13269    B: *mut Complex64,
13270    ldb: *const lapackint,
13271    info: *mut lapackint,
13272);
13273
13274// SBEV
13275define_lapack_ffi!(dsbev, DsbevFnPtr,
13276    jobz: *const c_char,
13277    uplo: *const c_char,
13278    n: *const lapackint,
13279    kd: *const lapackint,
13280    AB: *mut f64,
13281    ldab: *const lapackint,
13282    W: *mut f64,
13283    Z: *mut f64,
13284    ldz: *const lapackint,
13285    work: *mut f64,
13286    info: *mut lapackint,
13287);
13288
13289define_lapack_ffi!(ssbev, SsbevFnPtr,
13290    jobz: *const c_char,
13291    uplo: *const c_char,
13292    n: *const lapackint,
13293    kd: *const lapackint,
13294    AB: *mut f32,
13295    ldab: *const lapackint,
13296    W: *mut f32,
13297    Z: *mut f32,
13298    ldz: *const lapackint,
13299    work: *mut f32,
13300    info: *mut lapackint,
13301);
13302
13303// SBEV_2STAGE
13304define_lapack_ffi!(dsbev_2stage, Dsbev_2stageFnPtr,
13305    jobz: *const c_char,
13306    uplo: *const c_char,
13307    n: *const lapackint,
13308    kd: *const lapackint,
13309    AB: *mut f64,
13310    ldab: *const lapackint,
13311    W: *mut f64,
13312    Z: *mut f64,
13313    ldz: *const lapackint,
13314    work: *mut f64,
13315    lwork: *const lapackint,
13316    info: *mut lapackint,
13317);
13318
13319define_lapack_ffi!(ssbev_2stage, Ssbev_2stageFnPtr,
13320    jobz: *const c_char,
13321    uplo: *const c_char,
13322    n: *const lapackint,
13323    kd: *const lapackint,
13324    AB: *mut f32,
13325    ldab: *const lapackint,
13326    W: *mut f32,
13327    Z: *mut f32,
13328    ldz: *const lapackint,
13329    work: *mut f32,
13330    lwork: *const lapackint,
13331    info: *mut lapackint,
13332);
13333
13334// SBEVD
13335define_lapack_ffi!(dsbevd, DsbevdFnPtr,
13336    jobz: *const c_char,
13337    uplo: *const c_char,
13338    n: *const lapackint,
13339    kd: *const lapackint,
13340    AB: *mut f64,
13341    ldab: *const lapackint,
13342    W: *mut f64,
13343    Z: *mut f64,
13344    ldz: *const lapackint,
13345    work: *mut f64,
13346    lwork: *const lapackint,
13347    iwork: *mut lapackint,
13348    liwork: *const lapackint,
13349    info: *mut lapackint,
13350);
13351
13352define_lapack_ffi!(ssbevd, SsbevdFnPtr,
13353    jobz: *const c_char,
13354    uplo: *const c_char,
13355    n: *const lapackint,
13356    kd: *const lapackint,
13357    AB: *mut f32,
13358    ldab: *const lapackint,
13359    W: *mut f32,
13360    Z: *mut f32,
13361    ldz: *const lapackint,
13362    work: *mut f32,
13363    lwork: *const lapackint,
13364    iwork: *mut lapackint,
13365    liwork: *const lapackint,
13366    info: *mut lapackint,
13367);
13368
13369// SBEVD_2STAGE
13370define_lapack_ffi!(dsbevd_2stage, Dsbevd_2stageFnPtr,
13371    jobz: *const c_char,
13372    uplo: *const c_char,
13373    n: *const lapackint,
13374    kd: *const lapackint,
13375    AB: *mut f64,
13376    ldab: *const lapackint,
13377    W: *mut f64,
13378    Z: *mut f64,
13379    ldz: *const lapackint,
13380    work: *mut f64,
13381    lwork: *const lapackint,
13382    iwork: *mut lapackint,
13383    liwork: *const lapackint,
13384    info: *mut lapackint,
13385);
13386
13387define_lapack_ffi!(ssbevd_2stage, Ssbevd_2stageFnPtr,
13388    jobz: *const c_char,
13389    uplo: *const c_char,
13390    n: *const lapackint,
13391    kd: *const lapackint,
13392    AB: *mut f32,
13393    ldab: *const lapackint,
13394    W: *mut f32,
13395    Z: *mut f32,
13396    ldz: *const lapackint,
13397    work: *mut f32,
13398    lwork: *const lapackint,
13399    iwork: *mut lapackint,
13400    liwork: *const lapackint,
13401    info: *mut lapackint,
13402);
13403
13404// SBEVX
13405define_lapack_ffi!(dsbevx, DsbevxFnPtr,
13406    jobz: *const c_char,
13407    range: *const c_char,
13408    uplo: *const c_char,
13409    n: *const lapackint,
13410    kd: *const lapackint,
13411    AB: *mut f64,
13412    ldab: *const lapackint,
13413    Q: *mut f64,
13414    ldq: *const lapackint,
13415    vl: *const f64,
13416    vu: *const f64,
13417    il: *const lapackint,
13418    iu: *const lapackint,
13419    abstol: *const f64,
13420    m: *mut lapackint,
13421    W: *mut f64,
13422    Z: *mut f64,
13423    ldz: *const lapackint,
13424    work: *mut f64,
13425    iwork: *mut lapackint,
13426    IFAIL: *mut lapackint,
13427    info: *mut lapackint,
13428);
13429
13430define_lapack_ffi!(ssbevx, SsbevxFnPtr,
13431    jobz: *const c_char,
13432    range: *const c_char,
13433    uplo: *const c_char,
13434    n: *const lapackint,
13435    kd: *const lapackint,
13436    AB: *mut f32,
13437    ldab: *const lapackint,
13438    Q: *mut f32,
13439    ldq: *const lapackint,
13440    vl: *const f32,
13441    vu: *const f32,
13442    il: *const lapackint,
13443    iu: *const lapackint,
13444    abstol: *const f32,
13445    m: *mut lapackint,
13446    W: *mut f32,
13447    Z: *mut f32,
13448    ldz: *const lapackint,
13449    work: *mut f32,
13450    iwork: *mut lapackint,
13451    IFAIL: *mut lapackint,
13452    info: *mut lapackint,
13453);
13454
13455// SBEVX_2STAGE
13456define_lapack_ffi!(dsbevx_2stage, Dsbevx_2stageFnPtr,
13457    jobz: *const c_char,
13458    range: *const c_char,
13459    uplo: *const c_char,
13460    n: *const lapackint,
13461    kd: *const lapackint,
13462    AB: *mut f64,
13463    ldab: *const lapackint,
13464    Q: *mut f64,
13465    ldq: *const lapackint,
13466    vl: *const f64,
13467    vu: *const f64,
13468    il: *const lapackint,
13469    iu: *const lapackint,
13470    abstol: *const f64,
13471    m: *mut lapackint,
13472    W: *mut f64,
13473    Z: *mut f64,
13474    ldz: *const lapackint,
13475    work: *mut f64,
13476    lwork: *const lapackint,
13477    iwork: *mut lapackint,
13478    IFAIL: *mut lapackint,
13479    info: *mut lapackint,
13480);
13481
13482define_lapack_ffi!(ssbevx_2stage, Ssbevx_2stageFnPtr,
13483    jobz: *const c_char,
13484    range: *const c_char,
13485    uplo: *const c_char,
13486    n: *const lapackint,
13487    kd: *const lapackint,
13488    AB: *mut f32,
13489    ldab: *const lapackint,
13490    Q: *mut f32,
13491    ldq: *const lapackint,
13492    vl: *const f32,
13493    vu: *const f32,
13494    il: *const lapackint,
13495    iu: *const lapackint,
13496    abstol: *const f32,
13497    m: *mut lapackint,
13498    W: *mut f32,
13499    Z: *mut f32,
13500    ldz: *const lapackint,
13501    work: *mut f32,
13502    lwork: *const lapackint,
13503    iwork: *mut lapackint,
13504    IFAIL: *mut lapackint,
13505    info: *mut lapackint,
13506);
13507
13508// SBGST
13509define_lapack_ffi!(dsbgst, DsbgstFnPtr,
13510    vect: *const c_char,
13511    uplo: *const c_char,
13512    n: *const lapackint,
13513    ka: *const lapackint,
13514    kb: *const lapackint,
13515    AB: *mut f64,
13516    ldab: *const lapackint,
13517    BB: *const f64,
13518    ldbb: *const lapackint,
13519    X: *mut f64,
13520    ldx: *const lapackint,
13521    work: *mut f64,
13522    info: *mut lapackint,
13523);
13524
13525define_lapack_ffi!(ssbgst, SsbgstFnPtr,
13526    vect: *const c_char,
13527    uplo: *const c_char,
13528    n: *const lapackint,
13529    ka: *const lapackint,
13530    kb: *const lapackint,
13531    AB: *mut f32,
13532    ldab: *const lapackint,
13533    BB: *const f32,
13534    ldbb: *const lapackint,
13535    X: *mut f32,
13536    ldx: *const lapackint,
13537    work: *mut f32,
13538    info: *mut lapackint,
13539);
13540
13541// SBGV
13542define_lapack_ffi!(dsbgv, DsbgvFnPtr,
13543    jobz: *const c_char,
13544    uplo: *const c_char,
13545    n: *const lapackint,
13546    ka: *const lapackint,
13547    kb: *const lapackint,
13548    AB: *mut f64,
13549    ldab: *const lapackint,
13550    BB: *mut f64,
13551    ldbb: *const lapackint,
13552    W: *mut f64,
13553    Z: *mut f64,
13554    ldz: *const lapackint,
13555    work: *mut f64,
13556    info: *mut lapackint,
13557);
13558
13559define_lapack_ffi!(ssbgv, SsbgvFnPtr,
13560    jobz: *const c_char,
13561    uplo: *const c_char,
13562    n: *const lapackint,
13563    ka: *const lapackint,
13564    kb: *const lapackint,
13565    AB: *mut f32,
13566    ldab: *const lapackint,
13567    BB: *mut f32,
13568    ldbb: *const lapackint,
13569    W: *mut f32,
13570    Z: *mut f32,
13571    ldz: *const lapackint,
13572    work: *mut f32,
13573    info: *mut lapackint,
13574);
13575
13576// SBGVD
13577define_lapack_ffi!(dsbgvd, DsbgvdFnPtr,
13578    jobz: *const c_char,
13579    uplo: *const c_char,
13580    n: *const lapackint,
13581    ka: *const lapackint,
13582    kb: *const lapackint,
13583    AB: *mut f64,
13584    ldab: *const lapackint,
13585    BB: *mut f64,
13586    ldbb: *const lapackint,
13587    W: *mut f64,
13588    Z: *mut f64,
13589    ldz: *const lapackint,
13590    work: *mut f64,
13591    lwork: *const lapackint,
13592    iwork: *mut lapackint,
13593    liwork: *const lapackint,
13594    info: *mut lapackint,
13595);
13596
13597define_lapack_ffi!(ssbgvd, SsbgvdFnPtr,
13598    jobz: *const c_char,
13599    uplo: *const c_char,
13600    n: *const lapackint,
13601    ka: *const lapackint,
13602    kb: *const lapackint,
13603    AB: *mut f32,
13604    ldab: *const lapackint,
13605    BB: *mut f32,
13606    ldbb: *const lapackint,
13607    W: *mut f32,
13608    Z: *mut f32,
13609    ldz: *const lapackint,
13610    work: *mut f32,
13611    lwork: *const lapackint,
13612    iwork: *mut lapackint,
13613    liwork: *const lapackint,
13614    info: *mut lapackint,
13615);
13616
13617// SBGVX
13618define_lapack_ffi!(dsbgvx, DsbgvxFnPtr,
13619    jobz: *const c_char,
13620    range: *const c_char,
13621    uplo: *const c_char,
13622    n: *const lapackint,
13623    ka: *const lapackint,
13624    kb: *const lapackint,
13625    AB: *mut f64,
13626    ldab: *const lapackint,
13627    BB: *mut f64,
13628    ldbb: *const lapackint,
13629    Q: *mut f64,
13630    ldq: *const lapackint,
13631    vl: *const f64,
13632    vu: *const f64,
13633    il: *const lapackint,
13634    iu: *const lapackint,
13635    abstol: *const f64,
13636    m: *mut lapackint,
13637    W: *mut f64,
13638    Z: *mut f64,
13639    ldz: *const lapackint,
13640    work: *mut f64,
13641    iwork: *mut lapackint,
13642    IFAIL: *mut lapackint,
13643    info: *mut lapackint,
13644);
13645
13646define_lapack_ffi!(ssbgvx, SsbgvxFnPtr,
13647    jobz: *const c_char,
13648    range: *const c_char,
13649    uplo: *const c_char,
13650    n: *const lapackint,
13651    ka: *const lapackint,
13652    kb: *const lapackint,
13653    AB: *mut f32,
13654    ldab: *const lapackint,
13655    BB: *mut f32,
13656    ldbb: *const lapackint,
13657    Q: *mut f32,
13658    ldq: *const lapackint,
13659    vl: *const f32,
13660    vu: *const f32,
13661    il: *const lapackint,
13662    iu: *const lapackint,
13663    abstol: *const f32,
13664    m: *mut lapackint,
13665    W: *mut f32,
13666    Z: *mut f32,
13667    ldz: *const lapackint,
13668    work: *mut f32,
13669    iwork: *mut lapackint,
13670    IFAIL: *mut lapackint,
13671    info: *mut lapackint,
13672);
13673
13674// SBTRD
13675define_lapack_ffi!(dsbtrd, DsbtrdFnPtr,
13676    vect: *const c_char,
13677    uplo: *const c_char,
13678    n: *const lapackint,
13679    kd: *const lapackint,
13680    AB: *mut f64,
13681    ldab: *const lapackint,
13682    D: *mut f64,
13683    E: *mut f64,
13684    Q: *mut f64,
13685    ldq: *const lapackint,
13686    work: *mut f64,
13687    info: *mut lapackint,
13688);
13689
13690define_lapack_ffi!(ssbtrd, SsbtrdFnPtr,
13691    vect: *const c_char,
13692    uplo: *const c_char,
13693    n: *const lapackint,
13694    kd: *const lapackint,
13695    AB: *mut f32,
13696    ldab: *const lapackint,
13697    D: *mut f32,
13698    E: *mut f32,
13699    Q: *mut f32,
13700    ldq: *const lapackint,
13701    work: *mut f32,
13702    info: *mut lapackint,
13703);
13704
13705// SFRK
13706define_lapack_ffi!(dsfrk, DsfrkFnPtr,
13707    transr: *const c_char,
13708    uplo: *const c_char,
13709    trans: *const c_char,
13710    n: *const lapackint,
13711    k: *const lapackint,
13712    alpha: *const f64,
13713    A: *const f64,
13714    lda: *const lapackint,
13715    beta: *const f64,
13716    C: *mut f64,
13717);
13718
13719define_lapack_ffi!(ssfrk, SsfrkFnPtr,
13720    transr: *const c_char,
13721    uplo: *const c_char,
13722    trans: *const c_char,
13723    n: *const lapackint,
13724    k: *const lapackint,
13725    alpha: *const f32,
13726    A: *const f32,
13727    lda: *const lapackint,
13728    beta: *const f32,
13729    C: *mut f32,
13730);
13731
13732// SGESV
13733define_lapack_ffi!(dsgesv, DsgesvFnPtr,
13734    n: *const lapackint,
13735    nrhs: *const lapackint,
13736    A: *mut f64,
13737    lda: *const lapackint,
13738    ipiv: *mut lapackint,
13739    B: *const f64,
13740    ldb: *const lapackint,
13741    X: *mut f64,
13742    ldx: *const lapackint,
13743    work: *mut f64,
13744    swork: *mut f32,
13745    iter: *mut lapackint,
13746    info: *mut lapackint,
13747);
13748
13749// SPCON
13750define_lapack_ffi!(cspcon, CspconFnPtr,
13751    uplo: *const c_char,
13752    n: *const lapackint,
13753    AP: *const Complex32,
13754    ipiv: *const lapackint,
13755    anorm: *const f32,
13756    rcond: *mut f32,
13757    work: *mut Complex32,
13758    info: *mut lapackint,
13759);
13760
13761define_lapack_ffi!(dspcon, DspconFnPtr,
13762    uplo: *const c_char,
13763    n: *const lapackint,
13764    AP: *const f64,
13765    ipiv: *const lapackint,
13766    anorm: *const f64,
13767    rcond: *mut f64,
13768    work: *mut f64,
13769    iwork: *mut lapackint,
13770    info: *mut lapackint,
13771);
13772
13773define_lapack_ffi!(sspcon, SspconFnPtr,
13774    uplo: *const c_char,
13775    n: *const lapackint,
13776    AP: *const f32,
13777    ipiv: *const lapackint,
13778    anorm: *const f32,
13779    rcond: *mut f32,
13780    work: *mut f32,
13781    iwork: *mut lapackint,
13782    info: *mut lapackint,
13783);
13784
13785define_lapack_ffi!(zspcon, ZspconFnPtr,
13786    uplo: *const c_char,
13787    n: *const lapackint,
13788    AP: *const Complex64,
13789    ipiv: *const lapackint,
13790    anorm: *const f64,
13791    rcond: *mut f64,
13792    work: *mut Complex64,
13793    info: *mut lapackint,
13794);
13795
13796// SPEV
13797define_lapack_ffi!(dspev, DspevFnPtr,
13798    jobz: *const c_char,
13799    uplo: *const c_char,
13800    n: *const lapackint,
13801    AP: *mut f64,
13802    W: *mut f64,
13803    Z: *mut f64,
13804    ldz: *const lapackint,
13805    work: *mut f64,
13806    info: *mut lapackint,
13807);
13808
13809define_lapack_ffi!(sspev, SspevFnPtr,
13810    jobz: *const c_char,
13811    uplo: *const c_char,
13812    n: *const lapackint,
13813    AP: *mut f32,
13814    W: *mut f32,
13815    Z: *mut f32,
13816    ldz: *const lapackint,
13817    work: *mut f32,
13818    info: *mut lapackint,
13819);
13820
13821// SPEVD
13822define_lapack_ffi!(dspevd, DspevdFnPtr,
13823    jobz: *const c_char,
13824    uplo: *const c_char,
13825    n: *const lapackint,
13826    AP: *mut f64,
13827    W: *mut f64,
13828    Z: *mut f64,
13829    ldz: *const lapackint,
13830    work: *mut f64,
13831    lwork: *const lapackint,
13832    iwork: *mut lapackint,
13833    liwork: *const lapackint,
13834    info: *mut lapackint,
13835);
13836
13837define_lapack_ffi!(sspevd, SspevdFnPtr,
13838    jobz: *const c_char,
13839    uplo: *const c_char,
13840    n: *const lapackint,
13841    AP: *mut f32,
13842    W: *mut f32,
13843    Z: *mut f32,
13844    ldz: *const lapackint,
13845    work: *mut f32,
13846    lwork: *const lapackint,
13847    iwork: *mut lapackint,
13848    liwork: *const lapackint,
13849    info: *mut lapackint,
13850);
13851
13852// SPEVX
13853define_lapack_ffi!(dspevx, DspevxFnPtr,
13854    jobz: *const c_char,
13855    range: *const c_char,
13856    uplo: *const c_char,
13857    n: *const lapackint,
13858    AP: *mut f64,
13859    vl: *const f64,
13860    vu: *const f64,
13861    il: *const lapackint,
13862    iu: *const lapackint,
13863    abstol: *const f64,
13864    m: *mut lapackint,
13865    W: *mut f64,
13866    Z: *mut f64,
13867    ldz: *const lapackint,
13868    work: *mut f64,
13869    iwork: *mut lapackint,
13870    IFAIL: *mut lapackint,
13871    info: *mut lapackint,
13872);
13873
13874define_lapack_ffi!(sspevx, SspevxFnPtr,
13875    jobz: *const c_char,
13876    range: *const c_char,
13877    uplo: *const c_char,
13878    n: *const lapackint,
13879    AP: *mut f32,
13880    vl: *const f32,
13881    vu: *const f32,
13882    il: *const lapackint,
13883    iu: *const lapackint,
13884    abstol: *const f32,
13885    m: *mut lapackint,
13886    W: *mut f32,
13887    Z: *mut f32,
13888    ldz: *const lapackint,
13889    work: *mut f32,
13890    iwork: *mut lapackint,
13891    IFAIL: *mut lapackint,
13892    info: *mut lapackint,
13893);
13894
13895// SPGST
13896define_lapack_ffi!(dspgst, DspgstFnPtr,
13897    itype: *const lapackint,
13898    uplo: *const c_char,
13899    n: *const lapackint,
13900    AP: *mut f64,
13901    BP: *const f64,
13902    info: *mut lapackint,
13903);
13904
13905define_lapack_ffi!(sspgst, SspgstFnPtr,
13906    itype: *const lapackint,
13907    uplo: *const c_char,
13908    n: *const lapackint,
13909    AP: *mut f32,
13910    BP: *const f32,
13911    info: *mut lapackint,
13912);
13913
13914// SPGV
13915define_lapack_ffi!(dspgv, DspgvFnPtr,
13916    itype: *const lapackint,
13917    jobz: *const c_char,
13918    uplo: *const c_char,
13919    n: *const lapackint,
13920    AP: *mut f64,
13921    BP: *mut f64,
13922    W: *mut f64,
13923    Z: *mut f64,
13924    ldz: *const lapackint,
13925    work: *mut f64,
13926    info: *mut lapackint,
13927);
13928
13929define_lapack_ffi!(sspgv, SspgvFnPtr,
13930    itype: *const lapackint,
13931    jobz: *const c_char,
13932    uplo: *const c_char,
13933    n: *const lapackint,
13934    AP: *mut f32,
13935    BP: *mut f32,
13936    W: *mut f32,
13937    Z: *mut f32,
13938    ldz: *const lapackint,
13939    work: *mut f32,
13940    info: *mut lapackint,
13941);
13942
13943// SPGVD
13944define_lapack_ffi!(dspgvd, DspgvdFnPtr,
13945    itype: *const lapackint,
13946    jobz: *const c_char,
13947    uplo: *const c_char,
13948    n: *const lapackint,
13949    AP: *mut f64,
13950    BP: *mut f64,
13951    W: *mut f64,
13952    Z: *mut f64,
13953    ldz: *const lapackint,
13954    work: *mut f64,
13955    lwork: *const lapackint,
13956    iwork: *mut lapackint,
13957    liwork: *const lapackint,
13958    info: *mut lapackint,
13959);
13960
13961define_lapack_ffi!(sspgvd, SspgvdFnPtr,
13962    itype: *const lapackint,
13963    jobz: *const c_char,
13964    uplo: *const c_char,
13965    n: *const lapackint,
13966    AP: *mut f32,
13967    BP: *mut f32,
13968    W: *mut f32,
13969    Z: *mut f32,
13970    ldz: *const lapackint,
13971    work: *mut f32,
13972    lwork: *const lapackint,
13973    iwork: *mut lapackint,
13974    liwork: *const lapackint,
13975    info: *mut lapackint,
13976);
13977
13978// SPGVX
13979define_lapack_ffi!(dspgvx, DspgvxFnPtr,
13980    itype: *const lapackint,
13981    jobz: *const c_char,
13982    range: *const c_char,
13983    uplo: *const c_char,
13984    n: *const lapackint,
13985    AP: *mut f64,
13986    BP: *mut f64,
13987    vl: *const f64,
13988    vu: *const f64,
13989    il: *const lapackint,
13990    iu: *const lapackint,
13991    abstol: *const f64,
13992    m: *mut lapackint,
13993    W: *mut f64,
13994    Z: *mut f64,
13995    ldz: *const lapackint,
13996    work: *mut f64,
13997    iwork: *mut lapackint,
13998    IFAIL: *mut lapackint,
13999    info: *mut lapackint,
14000);
14001
14002define_lapack_ffi!(sspgvx, SspgvxFnPtr,
14003    itype: *const lapackint,
14004    jobz: *const c_char,
14005    range: *const c_char,
14006    uplo: *const c_char,
14007    n: *const lapackint,
14008    AP: *mut f32,
14009    BP: *mut f32,
14010    vl: *const f32,
14011    vu: *const f32,
14012    il: *const lapackint,
14013    iu: *const lapackint,
14014    abstol: *const f32,
14015    m: *mut lapackint,
14016    W: *mut f32,
14017    Z: *mut f32,
14018    ldz: *const lapackint,
14019    work: *mut f32,
14020    iwork: *mut lapackint,
14021    IFAIL: *mut lapackint,
14022    info: *mut lapackint,
14023);
14024
14025// SPOSV
14026define_lapack_ffi!(dsposv, DsposvFnPtr,
14027    uplo: *const c_char,
14028    n: *const lapackint,
14029    nrhs: *const lapackint,
14030    A: *mut f64,
14031    lda: *const lapackint,
14032    B: *const f64,
14033    ldb: *const lapackint,
14034    X: *mut f64,
14035    ldx: *const lapackint,
14036    work: *mut f64,
14037    swork: *mut f32,
14038    iter: *mut lapackint,
14039    info: *mut lapackint,
14040);
14041
14042// SPRFS
14043define_lapack_ffi!(csprfs, CsprfsFnPtr,
14044    uplo: *const c_char,
14045    n: *const lapackint,
14046    nrhs: *const lapackint,
14047    AP: *const Complex32,
14048    AFP: *const Complex32,
14049    ipiv: *const lapackint,
14050    B: *const Complex32,
14051    ldb: *const lapackint,
14052    X: *mut Complex32,
14053    ldx: *const lapackint,
14054    ferr: *mut f32,
14055    berr: *mut f32,
14056    work: *mut Complex32,
14057    rwork: *mut f32,
14058    info: *mut lapackint,
14059);
14060
14061define_lapack_ffi!(dsprfs, DsprfsFnPtr,
14062    uplo: *const c_char,
14063    n: *const lapackint,
14064    nrhs: *const lapackint,
14065    AP: *const f64,
14066    AFP: *const f64,
14067    ipiv: *const lapackint,
14068    B: *const f64,
14069    ldb: *const lapackint,
14070    X: *mut f64,
14071    ldx: *const lapackint,
14072    ferr: *mut f64,
14073    berr: *mut f64,
14074    work: *mut f64,
14075    iwork: *mut lapackint,
14076    info: *mut lapackint,
14077);
14078
14079define_lapack_ffi!(ssprfs, SsprfsFnPtr,
14080    uplo: *const c_char,
14081    n: *const lapackint,
14082    nrhs: *const lapackint,
14083    AP: *const f32,
14084    AFP: *const f32,
14085    ipiv: *const lapackint,
14086    B: *const f32,
14087    ldb: *const lapackint,
14088    X: *mut f32,
14089    ldx: *const lapackint,
14090    ferr: *mut f32,
14091    berr: *mut f32,
14092    work: *mut f32,
14093    iwork: *mut lapackint,
14094    info: *mut lapackint,
14095);
14096
14097define_lapack_ffi!(zsprfs, ZsprfsFnPtr,
14098    uplo: *const c_char,
14099    n: *const lapackint,
14100    nrhs: *const lapackint,
14101    AP: *const Complex64,
14102    AFP: *const Complex64,
14103    ipiv: *const lapackint,
14104    B: *const Complex64,
14105    ldb: *const lapackint,
14106    X: *mut Complex64,
14107    ldx: *const lapackint,
14108    ferr: *mut f64,
14109    berr: *mut f64,
14110    work: *mut Complex64,
14111    rwork: *mut f64,
14112    info: *mut lapackint,
14113);
14114
14115// SPSV
14116define_lapack_ffi!(cspsv, CspsvFnPtr,
14117    uplo: *const c_char,
14118    n: *const lapackint,
14119    nrhs: *const lapackint,
14120    AP: *mut Complex32,
14121    ipiv: *mut lapackint,
14122    B: *mut Complex32,
14123    ldb: *const lapackint,
14124    info: *mut lapackint,
14125);
14126
14127define_lapack_ffi!(dspsv, DspsvFnPtr,
14128    uplo: *const c_char,
14129    n: *const lapackint,
14130    nrhs: *const lapackint,
14131    AP: *mut f64,
14132    ipiv: *mut lapackint,
14133    B: *mut f64,
14134    ldb: *const lapackint,
14135    info: *mut lapackint,
14136);
14137
14138define_lapack_ffi!(sspsv, SspsvFnPtr,
14139    uplo: *const c_char,
14140    n: *const lapackint,
14141    nrhs: *const lapackint,
14142    AP: *mut f32,
14143    ipiv: *mut lapackint,
14144    B: *mut f32,
14145    ldb: *const lapackint,
14146    info: *mut lapackint,
14147);
14148
14149define_lapack_ffi!(zspsv, ZspsvFnPtr,
14150    uplo: *const c_char,
14151    n: *const lapackint,
14152    nrhs: *const lapackint,
14153    AP: *mut Complex64,
14154    ipiv: *mut lapackint,
14155    B: *mut Complex64,
14156    ldb: *const lapackint,
14157    info: *mut lapackint,
14158);
14159
14160// SPSVX
14161define_lapack_ffi!(cspsvx, CspsvxFnPtr,
14162    fact: *const c_char,
14163    uplo: *const c_char,
14164    n: *const lapackint,
14165    nrhs: *const lapackint,
14166    AP: *const Complex32,
14167    AFP: *mut Complex32,
14168    ipiv: *mut lapackint,
14169    B: *const Complex32,
14170    ldb: *const lapackint,
14171    X: *mut Complex32,
14172    ldx: *const lapackint,
14173    rcond: *mut f32,
14174    ferr: *mut f32,
14175    berr: *mut f32,
14176    work: *mut Complex32,
14177    rwork: *mut f32,
14178    info: *mut lapackint,
14179);
14180
14181define_lapack_ffi!(dspsvx, DspsvxFnPtr,
14182    fact: *const c_char,
14183    uplo: *const c_char,
14184    n: *const lapackint,
14185    nrhs: *const lapackint,
14186    AP: *const f64,
14187    AFP: *mut f64,
14188    ipiv: *mut lapackint,
14189    B: *const f64,
14190    ldb: *const lapackint,
14191    X: *mut f64,
14192    ldx: *const lapackint,
14193    rcond: *mut f64,
14194    ferr: *mut f64,
14195    berr: *mut f64,
14196    work: *mut f64,
14197    iwork: *mut lapackint,
14198    info: *mut lapackint,
14199);
14200
14201define_lapack_ffi!(sspsvx, SspsvxFnPtr,
14202    fact: *const c_char,
14203    uplo: *const c_char,
14204    n: *const lapackint,
14205    nrhs: *const lapackint,
14206    AP: *const f32,
14207    AFP: *mut f32,
14208    ipiv: *mut lapackint,
14209    B: *const f32,
14210    ldb: *const lapackint,
14211    X: *mut f32,
14212    ldx: *const lapackint,
14213    rcond: *mut f32,
14214    ferr: *mut f32,
14215    berr: *mut f32,
14216    work: *mut f32,
14217    iwork: *mut lapackint,
14218    info: *mut lapackint,
14219);
14220
14221define_lapack_ffi!(zspsvx, ZspsvxFnPtr,
14222    fact: *const c_char,
14223    uplo: *const c_char,
14224    n: *const lapackint,
14225    nrhs: *const lapackint,
14226    AP: *const Complex64,
14227    AFP: *mut Complex64,
14228    ipiv: *mut lapackint,
14229    B: *const Complex64,
14230    ldb: *const lapackint,
14231    X: *mut Complex64,
14232    ldx: *const lapackint,
14233    rcond: *mut f64,
14234    ferr: *mut f64,
14235    berr: *mut f64,
14236    work: *mut Complex64,
14237    rwork: *mut f64,
14238    info: *mut lapackint,
14239);
14240
14241// SPTRD
14242define_lapack_ffi!(dsptrd, DsptrdFnPtr,
14243    uplo: *const c_char,
14244    n: *const lapackint,
14245    AP: *mut f64,
14246    D: *mut f64,
14247    E: *mut f64,
14248    tau: *mut f64,
14249    info: *mut lapackint,
14250);
14251
14252define_lapack_ffi!(ssptrd, SsptrdFnPtr,
14253    uplo: *const c_char,
14254    n: *const lapackint,
14255    AP: *mut f32,
14256    D: *mut f32,
14257    E: *mut f32,
14258    tau: *mut f32,
14259    info: *mut lapackint,
14260);
14261
14262// SPTRF
14263define_lapack_ffi!(csptrf, CsptrfFnPtr,
14264    uplo: *const c_char,
14265    n: *const lapackint,
14266    AP: *mut Complex32,
14267    ipiv: *mut lapackint,
14268    info: *mut lapackint,
14269);
14270
14271define_lapack_ffi!(dsptrf, DsptrfFnPtr,
14272    uplo: *const c_char,
14273    n: *const lapackint,
14274    AP: *mut f64,
14275    ipiv: *mut lapackint,
14276    info: *mut lapackint,
14277);
14278
14279define_lapack_ffi!(ssptrf, SsptrfFnPtr,
14280    uplo: *const c_char,
14281    n: *const lapackint,
14282    AP: *mut f32,
14283    ipiv: *mut lapackint,
14284    info: *mut lapackint,
14285);
14286
14287define_lapack_ffi!(zsptrf, ZsptrfFnPtr,
14288    uplo: *const c_char,
14289    n: *const lapackint,
14290    AP: *mut Complex64,
14291    ipiv: *mut lapackint,
14292    info: *mut lapackint,
14293);
14294
14295// SPTRI
14296define_lapack_ffi!(csptri, CsptriFnPtr,
14297    uplo: *const c_char,
14298    n: *const lapackint,
14299    AP: *mut Complex32,
14300    ipiv: *const lapackint,
14301    work: *mut Complex32,
14302    info: *mut lapackint,
14303);
14304
14305define_lapack_ffi!(dsptri, DsptriFnPtr,
14306    uplo: *const c_char,
14307    n: *const lapackint,
14308    AP: *mut f64,
14309    ipiv: *const lapackint,
14310    work: *mut f64,
14311    info: *mut lapackint,
14312);
14313
14314define_lapack_ffi!(ssptri, SsptriFnPtr,
14315    uplo: *const c_char,
14316    n: *const lapackint,
14317    AP: *mut f32,
14318    ipiv: *const lapackint,
14319    work: *mut f32,
14320    info: *mut lapackint,
14321);
14322
14323define_lapack_ffi!(zsptri, ZsptriFnPtr,
14324    uplo: *const c_char,
14325    n: *const lapackint,
14326    AP: *mut Complex64,
14327    ipiv: *const lapackint,
14328    work: *mut Complex64,
14329    info: *mut lapackint,
14330);
14331
14332// SPTRS
14333define_lapack_ffi!(csptrs, CsptrsFnPtr,
14334    uplo: *const c_char,
14335    n: *const lapackint,
14336    nrhs: *const lapackint,
14337    AP: *const Complex32,
14338    ipiv: *const lapackint,
14339    B: *mut Complex32,
14340    ldb: *const lapackint,
14341    info: *mut lapackint,
14342);
14343
14344define_lapack_ffi!(dsptrs, DsptrsFnPtr,
14345    uplo: *const c_char,
14346    n: *const lapackint,
14347    nrhs: *const lapackint,
14348    AP: *const f64,
14349    ipiv: *const lapackint,
14350    B: *mut f64,
14351    ldb: *const lapackint,
14352    info: *mut lapackint,
14353);
14354
14355define_lapack_ffi!(ssptrs, SsptrsFnPtr,
14356    uplo: *const c_char,
14357    n: *const lapackint,
14358    nrhs: *const lapackint,
14359    AP: *const f32,
14360    ipiv: *const lapackint,
14361    B: *mut f32,
14362    ldb: *const lapackint,
14363    info: *mut lapackint,
14364);
14365
14366define_lapack_ffi!(zsptrs, ZsptrsFnPtr,
14367    uplo: *const c_char,
14368    n: *const lapackint,
14369    nrhs: *const lapackint,
14370    AP: *const Complex64,
14371    ipiv: *const lapackint,
14372    B: *mut Complex64,
14373    ldb: *const lapackint,
14374    info: *mut lapackint,
14375);
14376
14377// STEBZ
14378define_lapack_ffi!(dstebz, DstebzFnPtr,
14379    range: *const c_char,
14380    order: *const c_char,
14381    n: *const lapackint,
14382    vl: *const f64,
14383    vu: *const f64,
14384    il: *const lapackint,
14385    iu: *const lapackint,
14386    abstol: *const f64,
14387    D: *const f64,
14388    E: *const f64,
14389    m: *mut lapackint,
14390    nsplit: *mut lapackint,
14391    W: *mut f64,
14392    IBLOCK: *mut lapackint,
14393    ISPLIT: *mut lapackint,
14394    work: *mut f64,
14395    iwork: *mut lapackint,
14396    info: *mut lapackint,
14397);
14398
14399define_lapack_ffi!(sstebz, SstebzFnPtr,
14400    range: *const c_char,
14401    order: *const c_char,
14402    n: *const lapackint,
14403    vl: *const f32,
14404    vu: *const f32,
14405    il: *const lapackint,
14406    iu: *const lapackint,
14407    abstol: *const f32,
14408    D: *const f32,
14409    E: *const f32,
14410    m: *mut lapackint,
14411    nsplit: *mut lapackint,
14412    W: *mut f32,
14413    IBLOCK: *mut lapackint,
14414    ISPLIT: *mut lapackint,
14415    work: *mut f32,
14416    iwork: *mut lapackint,
14417    info: *mut lapackint,
14418);
14419
14420// STEDC
14421define_lapack_ffi!(cstedc, CstedcFnPtr,
14422    compz: *const c_char,
14423    n: *const lapackint,
14424    D: *mut f32,
14425    E: *mut f32,
14426    Z: *mut Complex32,
14427    ldz: *const lapackint,
14428    work: *mut Complex32,
14429    lwork: *const lapackint,
14430    rwork: *mut f32,
14431    lrwork: *const lapackint,
14432    iwork: *mut lapackint,
14433    liwork: *const lapackint,
14434    info: *mut lapackint,
14435);
14436
14437define_lapack_ffi!(dstedc, DstedcFnPtr,
14438    compz: *const c_char,
14439    n: *const lapackint,
14440    D: *mut f64,
14441    E: *mut f64,
14442    Z: *mut f64,
14443    ldz: *const lapackint,
14444    work: *mut f64,
14445    lwork: *const lapackint,
14446    iwork: *mut lapackint,
14447    liwork: *const lapackint,
14448    info: *mut lapackint,
14449);
14450
14451define_lapack_ffi!(sstedc, SstedcFnPtr,
14452    compz: *const c_char,
14453    n: *const lapackint,
14454    D: *mut f32,
14455    E: *mut f32,
14456    Z: *mut f32,
14457    ldz: *const lapackint,
14458    work: *mut f32,
14459    lwork: *const lapackint,
14460    iwork: *mut lapackint,
14461    liwork: *const lapackint,
14462    info: *mut lapackint,
14463);
14464
14465define_lapack_ffi!(zstedc, ZstedcFnPtr,
14466    compz: *const c_char,
14467    n: *const lapackint,
14468    D: *mut f64,
14469    E: *mut f64,
14470    Z: *mut Complex64,
14471    ldz: *const lapackint,
14472    work: *mut Complex64,
14473    lwork: *const lapackint,
14474    rwork: *mut f64,
14475    lrwork: *const lapackint,
14476    iwork: *mut lapackint,
14477    liwork: *const lapackint,
14478    info: *mut lapackint,
14479);
14480
14481// STEGR
14482define_lapack_ffi!(cstegr, CstegrFnPtr,
14483    jobz: *const c_char,
14484    range: *const c_char,
14485    n: *const lapackint,
14486    D: *mut f32,
14487    E: *mut f32,
14488    vl: *const f32,
14489    vu: *const f32,
14490    il: *const lapackint,
14491    iu: *const lapackint,
14492    abstol: *const f32,
14493    m: *mut lapackint,
14494    W: *mut f32,
14495    Z: *mut Complex32,
14496    ldz: *const lapackint,
14497    ISUPPZ: *mut lapackint,
14498    work: *mut f32,
14499    lwork: *const lapackint,
14500    iwork: *mut lapackint,
14501    liwork: *const lapackint,
14502    info: *mut lapackint,
14503);
14504
14505define_lapack_ffi!(dstegr, DstegrFnPtr,
14506    jobz: *const c_char,
14507    range: *const c_char,
14508    n: *const lapackint,
14509    D: *mut f64,
14510    E: *mut f64,
14511    vl: *const f64,
14512    vu: *const f64,
14513    il: *const lapackint,
14514    iu: *const lapackint,
14515    abstol: *const f64,
14516    m: *mut lapackint,
14517    W: *mut f64,
14518    Z: *mut f64,
14519    ldz: *const lapackint,
14520    ISUPPZ: *mut lapackint,
14521    work: *mut f64,
14522    lwork: *const lapackint,
14523    iwork: *mut lapackint,
14524    liwork: *const lapackint,
14525    info: *mut lapackint,
14526);
14527
14528define_lapack_ffi!(sstegr, SstegrFnPtr,
14529    jobz: *const c_char,
14530    range: *const c_char,
14531    n: *const lapackint,
14532    D: *mut f32,
14533    E: *mut f32,
14534    vl: *const f32,
14535    vu: *const f32,
14536    il: *const lapackint,
14537    iu: *const lapackint,
14538    abstol: *const f32,
14539    m: *mut lapackint,
14540    W: *mut f32,
14541    Z: *mut f32,
14542    ldz: *const lapackint,
14543    ISUPPZ: *mut lapackint,
14544    work: *mut f32,
14545    lwork: *const lapackint,
14546    iwork: *mut lapackint,
14547    liwork: *const lapackint,
14548    info: *mut lapackint,
14549);
14550
14551define_lapack_ffi!(zstegr, ZstegrFnPtr,
14552    jobz: *const c_char,
14553    range: *const c_char,
14554    n: *const lapackint,
14555    D: *mut f64,
14556    E: *mut f64,
14557    vl: *const f64,
14558    vu: *const f64,
14559    il: *const lapackint,
14560    iu: *const lapackint,
14561    abstol: *const f64,
14562    m: *mut lapackint,
14563    W: *mut f64,
14564    Z: *mut Complex64,
14565    ldz: *const lapackint,
14566    ISUPPZ: *mut lapackint,
14567    work: *mut f64,
14568    lwork: *const lapackint,
14569    iwork: *mut lapackint,
14570    liwork: *const lapackint,
14571    info: *mut lapackint,
14572);
14573
14574// STEIN
14575define_lapack_ffi!(cstein, CsteinFnPtr,
14576    n: *const lapackint,
14577    D: *const f32,
14578    E: *const f32,
14579    m: *const lapackint,
14580    W: *const f32,
14581    IBLOCK: *const lapackint,
14582    ISPLIT: *const lapackint,
14583    Z: *mut Complex32,
14584    ldz: *const lapackint,
14585    work: *mut f32,
14586    iwork: *mut lapackint,
14587    IFAIL: *mut lapackint,
14588    info: *mut lapackint,
14589);
14590
14591define_lapack_ffi!(dstein, DsteinFnPtr,
14592    n: *const lapackint,
14593    D: *const f64,
14594    E: *const f64,
14595    m: *const lapackint,
14596    W: *const f64,
14597    IBLOCK: *const lapackint,
14598    ISPLIT: *const lapackint,
14599    Z: *mut f64,
14600    ldz: *const lapackint,
14601    work: *mut f64,
14602    iwork: *mut lapackint,
14603    IFAIL: *mut lapackint,
14604    info: *mut lapackint,
14605);
14606
14607define_lapack_ffi!(sstein, SsteinFnPtr,
14608    n: *const lapackint,
14609    D: *const f32,
14610    E: *const f32,
14611    m: *const lapackint,
14612    W: *const f32,
14613    IBLOCK: *const lapackint,
14614    ISPLIT: *const lapackint,
14615    Z: *mut f32,
14616    ldz: *const lapackint,
14617    work: *mut f32,
14618    iwork: *mut lapackint,
14619    IFAIL: *mut lapackint,
14620    info: *mut lapackint,
14621);
14622
14623define_lapack_ffi!(zstein, ZsteinFnPtr,
14624    n: *const lapackint,
14625    D: *const f64,
14626    E: *const f64,
14627    m: *const lapackint,
14628    W: *const f64,
14629    IBLOCK: *const lapackint,
14630    ISPLIT: *const lapackint,
14631    Z: *mut Complex64,
14632    ldz: *const lapackint,
14633    work: *mut f64,
14634    iwork: *mut lapackint,
14635    IFAIL: *mut lapackint,
14636    info: *mut lapackint,
14637);
14638
14639// STEMR
14640define_lapack_ffi!(cstemr, CstemrFnPtr,
14641    jobz: *const c_char,
14642    range: *const c_char,
14643    n: *const lapackint,
14644    D: *mut f32,
14645    E: *mut f32,
14646    vl: *const f32,
14647    vu: *const f32,
14648    il: *const lapackint,
14649    iu: *const lapackint,
14650    m: *mut lapackint,
14651    W: *mut f32,
14652    Z: *mut Complex32,
14653    ldz: *const lapackint,
14654    nzc: *const lapackint,
14655    ISUPPZ: *mut lapackint,
14656    tryrac: *mut lapackint,
14657    work: *mut f32,
14658    lwork: *const lapackint,
14659    iwork: *mut lapackint,
14660    liwork: *const lapackint,
14661    info: *mut lapackint,
14662);
14663
14664define_lapack_ffi!(dstemr, DstemrFnPtr,
14665    jobz: *const c_char,
14666    range: *const c_char,
14667    n: *const lapackint,
14668    D: *mut f64,
14669    E: *mut f64,
14670    vl: *const f64,
14671    vu: *const f64,
14672    il: *const lapackint,
14673    iu: *const lapackint,
14674    m: *mut lapackint,
14675    W: *mut f64,
14676    Z: *mut f64,
14677    ldz: *const lapackint,
14678    nzc: *const lapackint,
14679    ISUPPZ: *mut lapackint,
14680    tryrac: *mut lapackint,
14681    work: *mut f64,
14682    lwork: *const lapackint,
14683    iwork: *mut lapackint,
14684    liwork: *const lapackint,
14685    info: *mut lapackint,
14686);
14687
14688define_lapack_ffi!(sstemr, SstemrFnPtr,
14689    jobz: *const c_char,
14690    range: *const c_char,
14691    n: *const lapackint,
14692    D: *mut f32,
14693    E: *mut f32,
14694    vl: *const f32,
14695    vu: *const f32,
14696    il: *const lapackint,
14697    iu: *const lapackint,
14698    m: *mut lapackint,
14699    W: *mut f32,
14700    Z: *mut f32,
14701    ldz: *const lapackint,
14702    nzc: *const lapackint,
14703    ISUPPZ: *mut lapackint,
14704    tryrac: *mut lapackint,
14705    work: *mut f32,
14706    lwork: *const lapackint,
14707    iwork: *mut lapackint,
14708    liwork: *const lapackint,
14709    info: *mut lapackint,
14710);
14711
14712define_lapack_ffi!(zstemr, ZstemrFnPtr,
14713    jobz: *const c_char,
14714    range: *const c_char,
14715    n: *const lapackint,
14716    D: *mut f64,
14717    E: *mut f64,
14718    vl: *const f64,
14719    vu: *const f64,
14720    il: *const lapackint,
14721    iu: *const lapackint,
14722    m: *mut lapackint,
14723    W: *mut f64,
14724    Z: *mut Complex64,
14725    ldz: *const lapackint,
14726    nzc: *const lapackint,
14727    ISUPPZ: *mut lapackint,
14728    tryrac: *mut lapackint,
14729    work: *mut f64,
14730    lwork: *const lapackint,
14731    iwork: *mut lapackint,
14732    liwork: *const lapackint,
14733    info: *mut lapackint,
14734);
14735
14736// STEQR
14737define_lapack_ffi!(csteqr, CsteqrFnPtr,
14738    compz: *const c_char,
14739    n: *const lapackint,
14740    D: *mut f32,
14741    E: *mut f32,
14742    Z: *mut Complex32,
14743    ldz: *const lapackint,
14744    work: *mut f32,
14745    info: *mut lapackint,
14746);
14747
14748define_lapack_ffi!(dsteqr, DsteqrFnPtr,
14749    compz: *const c_char,
14750    n: *const lapackint,
14751    D: *mut f64,
14752    E: *mut f64,
14753    Z: *mut f64,
14754    ldz: *const lapackint,
14755    work: *mut f64,
14756    info: *mut lapackint,
14757);
14758
14759define_lapack_ffi!(ssteqr, SsteqrFnPtr,
14760    compz: *const c_char,
14761    n: *const lapackint,
14762    D: *mut f32,
14763    E: *mut f32,
14764    Z: *mut f32,
14765    ldz: *const lapackint,
14766    work: *mut f32,
14767    info: *mut lapackint,
14768);
14769
14770define_lapack_ffi!(zsteqr, ZsteqrFnPtr,
14771    compz: *const c_char,
14772    n: *const lapackint,
14773    D: *mut f64,
14774    E: *mut f64,
14775    Z: *mut Complex64,
14776    ldz: *const lapackint,
14777    work: *mut f64,
14778    info: *mut lapackint,
14779);
14780
14781// STERF
14782define_lapack_ffi!(dsterf, DsterfFnPtr,
14783    n: *const lapackint,
14784    D: *mut f64,
14785    E: *mut f64,
14786    info: *mut lapackint,
14787);
14788
14789define_lapack_ffi!(ssterf, SsterfFnPtr,
14790    n: *const lapackint,
14791    D: *mut f32,
14792    E: *mut f32,
14793    info: *mut lapackint,
14794);
14795
14796// STEV
14797define_lapack_ffi!(dstev, DstevFnPtr,
14798    jobz: *const c_char,
14799    n: *const lapackint,
14800    D: *mut f64,
14801    E: *mut f64,
14802    Z: *mut f64,
14803    ldz: *const lapackint,
14804    work: *mut f64,
14805    info: *mut lapackint,
14806);
14807
14808define_lapack_ffi!(sstev, SstevFnPtr,
14809    jobz: *const c_char,
14810    n: *const lapackint,
14811    D: *mut f32,
14812    E: *mut f32,
14813    Z: *mut f32,
14814    ldz: *const lapackint,
14815    work: *mut f32,
14816    info: *mut lapackint,
14817);
14818
14819// STEVD
14820define_lapack_ffi!(dstevd, DstevdFnPtr,
14821    jobz: *const c_char,
14822    n: *const lapackint,
14823    D: *mut f64,
14824    E: *mut f64,
14825    Z: *mut f64,
14826    ldz: *const lapackint,
14827    work: *mut f64,
14828    lwork: *const lapackint,
14829    iwork: *mut lapackint,
14830    liwork: *const lapackint,
14831    info: *mut lapackint,
14832);
14833
14834define_lapack_ffi!(sstevd, SstevdFnPtr,
14835    jobz: *const c_char,
14836    n: *const lapackint,
14837    D: *mut f32,
14838    E: *mut f32,
14839    Z: *mut f32,
14840    ldz: *const lapackint,
14841    work: *mut f32,
14842    lwork: *const lapackint,
14843    iwork: *mut lapackint,
14844    liwork: *const lapackint,
14845    info: *mut lapackint,
14846);
14847
14848// STEVR
14849define_lapack_ffi!(dstevr, DstevrFnPtr,
14850    jobz: *const c_char,
14851    range: *const c_char,
14852    n: *const lapackint,
14853    D: *mut f64,
14854    E: *mut f64,
14855    vl: *const f64,
14856    vu: *const f64,
14857    il: *const lapackint,
14858    iu: *const lapackint,
14859    abstol: *const f64,
14860    m: *mut lapackint,
14861    W: *mut f64,
14862    Z: *mut f64,
14863    ldz: *const lapackint,
14864    ISUPPZ: *mut lapackint,
14865    work: *mut f64,
14866    lwork: *const lapackint,
14867    iwork: *mut lapackint,
14868    liwork: *const lapackint,
14869    info: *mut lapackint,
14870);
14871
14872define_lapack_ffi!(sstevr, SstevrFnPtr,
14873    jobz: *const c_char,
14874    range: *const c_char,
14875    n: *const lapackint,
14876    D: *mut f32,
14877    E: *mut f32,
14878    vl: *const f32,
14879    vu: *const f32,
14880    il: *const lapackint,
14881    iu: *const lapackint,
14882    abstol: *const f32,
14883    m: *mut lapackint,
14884    W: *mut f32,
14885    Z: *mut f32,
14886    ldz: *const lapackint,
14887    ISUPPZ: *mut lapackint,
14888    work: *mut f32,
14889    lwork: *const lapackint,
14890    iwork: *mut lapackint,
14891    liwork: *const lapackint,
14892    info: *mut lapackint,
14893);
14894
14895// STEVX
14896define_lapack_ffi!(dstevx, DstevxFnPtr,
14897    jobz: *const c_char,
14898    range: *const c_char,
14899    n: *const lapackint,
14900    D: *mut f64,
14901    E: *mut f64,
14902    vl: *const f64,
14903    vu: *const f64,
14904    il: *const lapackint,
14905    iu: *const lapackint,
14906    abstol: *const f64,
14907    m: *mut lapackint,
14908    W: *mut f64,
14909    Z: *mut f64,
14910    ldz: *const lapackint,
14911    work: *mut f64,
14912    iwork: *mut lapackint,
14913    IFAIL: *mut lapackint,
14914    info: *mut lapackint,
14915);
14916
14917define_lapack_ffi!(sstevx, SstevxFnPtr,
14918    jobz: *const c_char,
14919    range: *const c_char,
14920    n: *const lapackint,
14921    D: *mut f32,
14922    E: *mut f32,
14923    vl: *const f32,
14924    vu: *const f32,
14925    il: *const lapackint,
14926    iu: *const lapackint,
14927    abstol: *const f32,
14928    m: *mut lapackint,
14929    W: *mut f32,
14930    Z: *mut f32,
14931    ldz: *const lapackint,
14932    work: *mut f32,
14933    iwork: *mut lapackint,
14934    IFAIL: *mut lapackint,
14935    info: *mut lapackint,
14936);
14937
14938// SYCON
14939define_lapack_ffi!(csycon, CsyconFnPtr,
14940    uplo: *const c_char,
14941    n: *const lapackint,
14942    A: *const Complex32,
14943    lda: *const lapackint,
14944    ipiv: *const lapackint,
14945    anorm: *const f32,
14946    rcond: *mut f32,
14947    work: *mut Complex32,
14948    info: *mut lapackint,
14949);
14950
14951define_lapack_ffi!(dsycon, DsyconFnPtr,
14952    uplo: *const c_char,
14953    n: *const lapackint,
14954    A: *const f64,
14955    lda: *const lapackint,
14956    ipiv: *const lapackint,
14957    anorm: *const f64,
14958    rcond: *mut f64,
14959    work: *mut f64,
14960    iwork: *mut lapackint,
14961    info: *mut lapackint,
14962);
14963
14964define_lapack_ffi!(ssycon, SsyconFnPtr,
14965    uplo: *const c_char,
14966    n: *const lapackint,
14967    A: *const f32,
14968    lda: *const lapackint,
14969    ipiv: *const lapackint,
14970    anorm: *const f32,
14971    rcond: *mut f32,
14972    work: *mut f32,
14973    iwork: *mut lapackint,
14974    info: *mut lapackint,
14975);
14976
14977define_lapack_ffi!(zsycon, ZsyconFnPtr,
14978    uplo: *const c_char,
14979    n: *const lapackint,
14980    A: *const Complex64,
14981    lda: *const lapackint,
14982    ipiv: *const lapackint,
14983    anorm: *const f64,
14984    rcond: *mut f64,
14985    work: *mut Complex64,
14986    info: *mut lapackint,
14987);
14988
14989// SYCON_3
14990define_lapack_ffi!(csycon_3, Csycon_3FnPtr,
14991    uplo: *const c_char,
14992    n: *const lapackint,
14993    A: *const Complex32,
14994    lda: *const lapackint,
14995    E: *const Complex32,
14996    ipiv: *const lapackint,
14997    anorm: *const f32,
14998    rcond: *mut f32,
14999    work: *mut Complex32,
15000    info: *mut lapackint,
15001);
15002
15003define_lapack_ffi!(dsycon_3, Dsycon_3FnPtr,
15004    uplo: *const c_char,
15005    n: *const lapackint,
15006    A: *const f64,
15007    lda: *const lapackint,
15008    E: *const f64,
15009    ipiv: *const lapackint,
15010    anorm: *const f64,
15011    rcond: *mut f64,
15012    work: *mut f64,
15013    iwork: *mut lapackint,
15014    info: *mut lapackint,
15015);
15016
15017define_lapack_ffi!(ssycon_3, Ssycon_3FnPtr,
15018    uplo: *const c_char,
15019    n: *const lapackint,
15020    A: *const f32,
15021    lda: *const lapackint,
15022    E: *const f32,
15023    ipiv: *const lapackint,
15024    anorm: *const f32,
15025    rcond: *mut f32,
15026    work: *mut f32,
15027    iwork: *mut lapackint,
15028    info: *mut lapackint,
15029);
15030
15031define_lapack_ffi!(zsycon_3, Zsycon_3FnPtr,
15032    uplo: *const c_char,
15033    n: *const lapackint,
15034    A: *const Complex64,
15035    lda: *const lapackint,
15036    E: *const Complex64,
15037    ipiv: *const lapackint,
15038    anorm: *const f64,
15039    rcond: *mut f64,
15040    work: *mut Complex64,
15041    info: *mut lapackint,
15042);
15043
15044// SYCONV
15045define_lapack_ffi!(csyconv, CsyconvFnPtr,
15046    uplo: *const c_char,
15047    way: *const c_char,
15048    n: *const lapackint,
15049    A: *mut Complex32,
15050    lda: *const lapackint,
15051    ipiv: *const lapackint,
15052    E: *mut Complex32,
15053    info: *mut lapackint,
15054);
15055
15056define_lapack_ffi!(dsyconv, DsyconvFnPtr,
15057    uplo: *const c_char,
15058    way: *const c_char,
15059    n: *const lapackint,
15060    A: *mut f64,
15061    lda: *const lapackint,
15062    ipiv: *const lapackint,
15063    E: *mut f64,
15064    info: *mut lapackint,
15065);
15066
15067define_lapack_ffi!(ssyconv, SsyconvFnPtr,
15068    uplo: *const c_char,
15069    way: *const c_char,
15070    n: *const lapackint,
15071    A: *mut f32,
15072    lda: *const lapackint,
15073    ipiv: *const lapackint,
15074    E: *mut f32,
15075    info: *mut lapackint,
15076);
15077
15078define_lapack_ffi!(zsyconv, ZsyconvFnPtr,
15079    uplo: *const c_char,
15080    way: *const c_char,
15081    n: *const lapackint,
15082    A: *mut Complex64,
15083    lda: *const lapackint,
15084    ipiv: *const lapackint,
15085    E: *mut Complex64,
15086    info: *mut lapackint,
15087);
15088
15089// SYEQUB
15090define_lapack_ffi!(csyequb, CsyequbFnPtr,
15091    uplo: *const c_char,
15092    n: *const lapackint,
15093    A: *const Complex32,
15094    lda: *const lapackint,
15095    S: *mut f32,
15096    scond: *mut f32,
15097    amax: *mut f32,
15098    work: *mut Complex32,
15099    info: *mut lapackint,
15100);
15101
15102define_lapack_ffi!(dsyequb, DsyequbFnPtr,
15103    uplo: *const c_char,
15104    n: *const lapackint,
15105    A: *const f64,
15106    lda: *const lapackint,
15107    S: *mut f64,
15108    scond: *mut f64,
15109    amax: *mut f64,
15110    work: *mut f64,
15111    info: *mut lapackint,
15112);
15113
15114define_lapack_ffi!(ssyequb, SsyequbFnPtr,
15115    uplo: *const c_char,
15116    n: *const lapackint,
15117    A: *const f32,
15118    lda: *const lapackint,
15119    S: *mut f32,
15120    scond: *mut f32,
15121    amax: *mut f32,
15122    work: *mut f32,
15123    info: *mut lapackint,
15124);
15125
15126define_lapack_ffi!(zsyequb, ZsyequbFnPtr,
15127    uplo: *const c_char,
15128    n: *const lapackint,
15129    A: *const Complex64,
15130    lda: *const lapackint,
15131    S: *mut f64,
15132    scond: *mut f64,
15133    amax: *mut f64,
15134    work: *mut Complex64,
15135    info: *mut lapackint,
15136);
15137
15138// SYEV
15139define_lapack_ffi!(dsyev, DsyevFnPtr,
15140    jobz: *const c_char,
15141    uplo: *const c_char,
15142    n: *const lapackint,
15143    A: *mut f64,
15144    lda: *const lapackint,
15145    W: *mut f64,
15146    work: *mut f64,
15147    lwork: *const lapackint,
15148    info: *mut lapackint,
15149);
15150
15151define_lapack_ffi!(ssyev, SsyevFnPtr,
15152    jobz: *const c_char,
15153    uplo: *const c_char,
15154    n: *const lapackint,
15155    A: *mut f32,
15156    lda: *const lapackint,
15157    W: *mut f32,
15158    work: *mut f32,
15159    lwork: *const lapackint,
15160    info: *mut lapackint,
15161);
15162
15163// SYEV_2STAGE
15164define_lapack_ffi!(dsyev_2stage, Dsyev_2stageFnPtr,
15165    jobz: *const c_char,
15166    uplo: *const c_char,
15167    n: *const lapackint,
15168    A: *mut f64,
15169    lda: *const lapackint,
15170    W: *mut f64,
15171    work: *mut f64,
15172    lwork: *const lapackint,
15173    info: *mut lapackint,
15174);
15175
15176define_lapack_ffi!(ssyev_2stage, Ssyev_2stageFnPtr,
15177    jobz: *const c_char,
15178    uplo: *const c_char,
15179    n: *const lapackint,
15180    A: *mut f32,
15181    lda: *const lapackint,
15182    W: *mut f32,
15183    work: *mut f32,
15184    lwork: *const lapackint,
15185    info: *mut lapackint,
15186);
15187
15188// SYEVD
15189define_lapack_ffi!(dsyevd, DsyevdFnPtr,
15190    jobz: *const c_char,
15191    uplo: *const c_char,
15192    n: *const lapackint,
15193    A: *mut f64,
15194    lda: *const lapackint,
15195    W: *mut f64,
15196    work: *mut f64,
15197    lwork: *const lapackint,
15198    iwork: *mut lapackint,
15199    liwork: *const lapackint,
15200    info: *mut lapackint,
15201);
15202
15203define_lapack_ffi!(ssyevd, SsyevdFnPtr,
15204    jobz: *const c_char,
15205    uplo: *const c_char,
15206    n: *const lapackint,
15207    A: *mut f32,
15208    lda: *const lapackint,
15209    W: *mut f32,
15210    work: *mut f32,
15211    lwork: *const lapackint,
15212    iwork: *mut lapackint,
15213    liwork: *const lapackint,
15214    info: *mut lapackint,
15215);
15216
15217// SYEVD_2STAGE
15218define_lapack_ffi!(dsyevd_2stage, Dsyevd_2stageFnPtr,
15219    jobz: *const c_char,
15220    uplo: *const c_char,
15221    n: *const lapackint,
15222    A: *mut f64,
15223    lda: *const lapackint,
15224    W: *mut f64,
15225    work: *mut f64,
15226    lwork: *const lapackint,
15227    iwork: *mut lapackint,
15228    liwork: *const lapackint,
15229    info: *mut lapackint,
15230);
15231
15232define_lapack_ffi!(ssyevd_2stage, Ssyevd_2stageFnPtr,
15233    jobz: *const c_char,
15234    uplo: *const c_char,
15235    n: *const lapackint,
15236    A: *mut f32,
15237    lda: *const lapackint,
15238    W: *mut f32,
15239    work: *mut f32,
15240    lwork: *const lapackint,
15241    iwork: *mut lapackint,
15242    liwork: *const lapackint,
15243    info: *mut lapackint,
15244);
15245
15246// SYEVR
15247define_lapack_ffi!(dsyevr, DsyevrFnPtr,
15248    jobz: *const c_char,
15249    range: *const c_char,
15250    uplo: *const c_char,
15251    n: *const lapackint,
15252    A: *mut f64,
15253    lda: *const lapackint,
15254    vl: *const f64,
15255    vu: *const f64,
15256    il: *const lapackint,
15257    iu: *const lapackint,
15258    abstol: *const f64,
15259    m: *mut lapackint,
15260    W: *mut f64,
15261    Z: *mut f64,
15262    ldz: *const lapackint,
15263    ISUPPZ: *mut lapackint,
15264    work: *mut f64,
15265    lwork: *const lapackint,
15266    iwork: *mut lapackint,
15267    liwork: *const lapackint,
15268    info: *mut lapackint,
15269);
15270
15271define_lapack_ffi!(ssyevr, SsyevrFnPtr,
15272    jobz: *const c_char,
15273    range: *const c_char,
15274    uplo: *const c_char,
15275    n: *const lapackint,
15276    A: *mut f32,
15277    lda: *const lapackint,
15278    vl: *const f32,
15279    vu: *const f32,
15280    il: *const lapackint,
15281    iu: *const lapackint,
15282    abstol: *const f32,
15283    m: *mut lapackint,
15284    W: *mut f32,
15285    Z: *mut f32,
15286    ldz: *const lapackint,
15287    ISUPPZ: *mut lapackint,
15288    work: *mut f32,
15289    lwork: *const lapackint,
15290    iwork: *mut lapackint,
15291    liwork: *const lapackint,
15292    info: *mut lapackint,
15293);
15294
15295// SYEVR_2STAGE
15296define_lapack_ffi!(dsyevr_2stage, Dsyevr_2stageFnPtr,
15297    jobz: *const c_char,
15298    range: *const c_char,
15299    uplo: *const c_char,
15300    n: *const lapackint,
15301    A: *mut f64,
15302    lda: *const lapackint,
15303    vl: *const f64,
15304    vu: *const f64,
15305    il: *const lapackint,
15306    iu: *const lapackint,
15307    abstol: *const f64,
15308    m: *mut lapackint,
15309    W: *mut f64,
15310    Z: *mut f64,
15311    ldz: *const lapackint,
15312    ISUPPZ: *mut lapackint,
15313    work: *mut f64,
15314    lwork: *const lapackint,
15315    iwork: *mut lapackint,
15316    liwork: *const lapackint,
15317    info: *mut lapackint,
15318);
15319
15320define_lapack_ffi!(ssyevr_2stage, Ssyevr_2stageFnPtr,
15321    jobz: *const c_char,
15322    range: *const c_char,
15323    uplo: *const c_char,
15324    n: *const lapackint,
15325    A: *mut f32,
15326    lda: *const lapackint,
15327    vl: *const f32,
15328    vu: *const f32,
15329    il: *const lapackint,
15330    iu: *const lapackint,
15331    abstol: *const f32,
15332    m: *mut lapackint,
15333    W: *mut f32,
15334    Z: *mut f32,
15335    ldz: *const lapackint,
15336    ISUPPZ: *mut lapackint,
15337    work: *mut f32,
15338    lwork: *const lapackint,
15339    iwork: *mut lapackint,
15340    liwork: *const lapackint,
15341    info: *mut lapackint,
15342);
15343
15344// SYEVX
15345define_lapack_ffi!(dsyevx, DsyevxFnPtr,
15346    jobz: *const c_char,
15347    range: *const c_char,
15348    uplo: *const c_char,
15349    n: *const lapackint,
15350    A: *mut f64,
15351    lda: *const lapackint,
15352    vl: *const f64,
15353    vu: *const f64,
15354    il: *const lapackint,
15355    iu: *const lapackint,
15356    abstol: *const f64,
15357    m: *mut lapackint,
15358    W: *mut f64,
15359    Z: *mut f64,
15360    ldz: *const lapackint,
15361    work: *mut f64,
15362    lwork: *const lapackint,
15363    iwork: *mut lapackint,
15364    IFAIL: *mut lapackint,
15365    info: *mut lapackint,
15366);
15367
15368define_lapack_ffi!(ssyevx, SsyevxFnPtr,
15369    jobz: *const c_char,
15370    range: *const c_char,
15371    uplo: *const c_char,
15372    n: *const lapackint,
15373    A: *mut f32,
15374    lda: *const lapackint,
15375    vl: *const f32,
15376    vu: *const f32,
15377    il: *const lapackint,
15378    iu: *const lapackint,
15379    abstol: *const f32,
15380    m: *mut lapackint,
15381    W: *mut f32,
15382    Z: *mut f32,
15383    ldz: *const lapackint,
15384    work: *mut f32,
15385    lwork: *const lapackint,
15386    iwork: *mut lapackint,
15387    IFAIL: *mut lapackint,
15388    info: *mut lapackint,
15389);
15390
15391// SYEVX_2STAGE
15392define_lapack_ffi!(dsyevx_2stage, Dsyevx_2stageFnPtr,
15393    jobz: *const c_char,
15394    range: *const c_char,
15395    uplo: *const c_char,
15396    n: *const lapackint,
15397    A: *mut f64,
15398    lda: *const lapackint,
15399    vl: *const f64,
15400    vu: *const f64,
15401    il: *const lapackint,
15402    iu: *const lapackint,
15403    abstol: *const f64,
15404    m: *mut lapackint,
15405    W: *mut f64,
15406    Z: *mut f64,
15407    ldz: *const lapackint,
15408    work: *mut f64,
15409    lwork: *const lapackint,
15410    iwork: *mut lapackint,
15411    IFAIL: *mut lapackint,
15412    info: *mut lapackint,
15413);
15414
15415define_lapack_ffi!(ssyevx_2stage, Ssyevx_2stageFnPtr,
15416    jobz: *const c_char,
15417    range: *const c_char,
15418    uplo: *const c_char,
15419    n: *const lapackint,
15420    A: *mut f32,
15421    lda: *const lapackint,
15422    vl: *const f32,
15423    vu: *const f32,
15424    il: *const lapackint,
15425    iu: *const lapackint,
15426    abstol: *const f32,
15427    m: *mut lapackint,
15428    W: *mut f32,
15429    Z: *mut f32,
15430    ldz: *const lapackint,
15431    work: *mut f32,
15432    lwork: *const lapackint,
15433    iwork: *mut lapackint,
15434    IFAIL: *mut lapackint,
15435    info: *mut lapackint,
15436);
15437
15438// SYGST
15439define_lapack_ffi!(dsygst, DsygstFnPtr,
15440    itype: *const lapackint,
15441    uplo: *const c_char,
15442    n: *const lapackint,
15443    A: *mut f64,
15444    lda: *const lapackint,
15445    B: *const f64,
15446    ldb: *const lapackint,
15447    info: *mut lapackint,
15448);
15449
15450define_lapack_ffi!(ssygst, SsygstFnPtr,
15451    itype: *const lapackint,
15452    uplo: *const c_char,
15453    n: *const lapackint,
15454    A: *mut f32,
15455    lda: *const lapackint,
15456    B: *const f32,
15457    ldb: *const lapackint,
15458    info: *mut lapackint,
15459);
15460
15461// SYGV
15462define_lapack_ffi!(dsygv, DsygvFnPtr,
15463    itype: *const lapackint,
15464    jobz: *const c_char,
15465    uplo: *const c_char,
15466    n: *const lapackint,
15467    A: *mut f64,
15468    lda: *const lapackint,
15469    B: *mut f64,
15470    ldb: *const lapackint,
15471    W: *mut f64,
15472    work: *mut f64,
15473    lwork: *const lapackint,
15474    info: *mut lapackint,
15475);
15476
15477define_lapack_ffi!(ssygv, SsygvFnPtr,
15478    itype: *const lapackint,
15479    jobz: *const c_char,
15480    uplo: *const c_char,
15481    n: *const lapackint,
15482    A: *mut f32,
15483    lda: *const lapackint,
15484    B: *mut f32,
15485    ldb: *const lapackint,
15486    W: *mut f32,
15487    work: *mut f32,
15488    lwork: *const lapackint,
15489    info: *mut lapackint,
15490);
15491
15492// SYGV_2STAGE
15493define_lapack_ffi!(dsygv_2stage, Dsygv_2stageFnPtr,
15494    itype: *const lapackint,
15495    jobz: *const c_char,
15496    uplo: *const c_char,
15497    n: *const lapackint,
15498    A: *mut f64,
15499    lda: *const lapackint,
15500    B: *mut f64,
15501    ldb: *const lapackint,
15502    W: *mut f64,
15503    work: *mut f64,
15504    lwork: *const lapackint,
15505    info: *mut lapackint,
15506);
15507
15508define_lapack_ffi!(ssygv_2stage, Ssygv_2stageFnPtr,
15509    itype: *const lapackint,
15510    jobz: *const c_char,
15511    uplo: *const c_char,
15512    n: *const lapackint,
15513    A: *mut f32,
15514    lda: *const lapackint,
15515    B: *mut f32,
15516    ldb: *const lapackint,
15517    W: *mut f32,
15518    work: *mut f32,
15519    lwork: *const lapackint,
15520    info: *mut lapackint,
15521);
15522
15523// SYGVD
15524define_lapack_ffi!(dsygvd, DsygvdFnPtr,
15525    itype: *const lapackint,
15526    jobz: *const c_char,
15527    uplo: *const c_char,
15528    n: *const lapackint,
15529    A: *mut f64,
15530    lda: *const lapackint,
15531    B: *mut f64,
15532    ldb: *const lapackint,
15533    W: *mut f64,
15534    work: *mut f64,
15535    lwork: *const lapackint,
15536    iwork: *mut lapackint,
15537    liwork: *const lapackint,
15538    info: *mut lapackint,
15539);
15540
15541define_lapack_ffi!(ssygvd, SsygvdFnPtr,
15542    itype: *const lapackint,
15543    jobz: *const c_char,
15544    uplo: *const c_char,
15545    n: *const lapackint,
15546    A: *mut f32,
15547    lda: *const lapackint,
15548    B: *mut f32,
15549    ldb: *const lapackint,
15550    W: *mut f32,
15551    work: *mut f32,
15552    lwork: *const lapackint,
15553    iwork: *mut lapackint,
15554    liwork: *const lapackint,
15555    info: *mut lapackint,
15556);
15557
15558// SYGVX
15559define_lapack_ffi!(dsygvx, DsygvxFnPtr,
15560    itype: *const lapackint,
15561    jobz: *const c_char,
15562    range: *const c_char,
15563    uplo: *const c_char,
15564    n: *const lapackint,
15565    A: *mut f64,
15566    lda: *const lapackint,
15567    B: *mut f64,
15568    ldb: *const lapackint,
15569    vl: *const f64,
15570    vu: *const f64,
15571    il: *const lapackint,
15572    iu: *const lapackint,
15573    abstol: *const f64,
15574    m: *mut lapackint,
15575    W: *mut f64,
15576    Z: *mut f64,
15577    ldz: *const lapackint,
15578    work: *mut f64,
15579    lwork: *const lapackint,
15580    iwork: *mut lapackint,
15581    IFAIL: *mut lapackint,
15582    info: *mut lapackint,
15583);
15584
15585define_lapack_ffi!(ssygvx, SsygvxFnPtr,
15586    itype: *const lapackint,
15587    jobz: *const c_char,
15588    range: *const c_char,
15589    uplo: *const c_char,
15590    n: *const lapackint,
15591    A: *mut f32,
15592    lda: *const lapackint,
15593    B: *mut f32,
15594    ldb: *const lapackint,
15595    vl: *const f32,
15596    vu: *const f32,
15597    il: *const lapackint,
15598    iu: *const lapackint,
15599    abstol: *const f32,
15600    m: *mut lapackint,
15601    W: *mut f32,
15602    Z: *mut f32,
15603    ldz: *const lapackint,
15604    work: *mut f32,
15605    lwork: *const lapackint,
15606    iwork: *mut lapackint,
15607    IFAIL: *mut lapackint,
15608    info: *mut lapackint,
15609);
15610
15611// SYR
15612define_lapack_ffi!(csyr, CsyrFnPtr,
15613    uplo: *const c_char,
15614    n: *const lapackint,
15615    alpha: *const Complex32,
15616    X: *const Complex32,
15617    incx: *const lapackint,
15618    A: *mut Complex32,
15619    lda: *const lapackint,
15620);
15621
15622define_lapack_ffi!(zsyr, ZsyrFnPtr,
15623    uplo: *const c_char,
15624    n: *const lapackint,
15625    alpha: *const Complex64,
15626    X: *const Complex64,
15627    incx: *const lapackint,
15628    A: *mut Complex64,
15629    lda: *const lapackint,
15630);
15631
15632// SYRFS
15633define_lapack_ffi!(csyrfs, CsyrfsFnPtr,
15634    uplo: *const c_char,
15635    n: *const lapackint,
15636    nrhs: *const lapackint,
15637    A: *const Complex32,
15638    lda: *const lapackint,
15639    AF: *const Complex32,
15640    ldaf: *const lapackint,
15641    ipiv: *const lapackint,
15642    B: *const Complex32,
15643    ldb: *const lapackint,
15644    X: *mut Complex32,
15645    ldx: *const lapackint,
15646    ferr: *mut f32,
15647    berr: *mut f32,
15648    work: *mut Complex32,
15649    rwork: *mut f32,
15650    info: *mut lapackint,
15651);
15652
15653define_lapack_ffi!(dsyrfs, DsyrfsFnPtr,
15654    uplo: *const c_char,
15655    n: *const lapackint,
15656    nrhs: *const lapackint,
15657    A: *const f64,
15658    lda: *const lapackint,
15659    AF: *const f64,
15660    ldaf: *const lapackint,
15661    ipiv: *const lapackint,
15662    B: *const f64,
15663    ldb: *const lapackint,
15664    X: *mut f64,
15665    ldx: *const lapackint,
15666    ferr: *mut f64,
15667    berr: *mut f64,
15668    work: *mut f64,
15669    iwork: *mut lapackint,
15670    info: *mut lapackint,
15671);
15672
15673define_lapack_ffi!(ssyrfs, SsyrfsFnPtr,
15674    uplo: *const c_char,
15675    n: *const lapackint,
15676    nrhs: *const lapackint,
15677    A: *const f32,
15678    lda: *const lapackint,
15679    AF: *const f32,
15680    ldaf: *const lapackint,
15681    ipiv: *const lapackint,
15682    B: *const f32,
15683    ldb: *const lapackint,
15684    X: *mut f32,
15685    ldx: *const lapackint,
15686    ferr: *mut f32,
15687    berr: *mut f32,
15688    work: *mut f32,
15689    iwork: *mut lapackint,
15690    info: *mut lapackint,
15691);
15692
15693define_lapack_ffi!(zsyrfs, ZsyrfsFnPtr,
15694    uplo: *const c_char,
15695    n: *const lapackint,
15696    nrhs: *const lapackint,
15697    A: *const Complex64,
15698    lda: *const lapackint,
15699    AF: *const Complex64,
15700    ldaf: *const lapackint,
15701    ipiv: *const lapackint,
15702    B: *const Complex64,
15703    ldb: *const lapackint,
15704    X: *mut Complex64,
15705    ldx: *const lapackint,
15706    ferr: *mut f64,
15707    berr: *mut f64,
15708    work: *mut Complex64,
15709    rwork: *mut f64,
15710    info: *mut lapackint,
15711);
15712
15713// SYRFSX
15714define_lapack_ffi!(csyrfsx, CsyrfsxFnPtr,
15715    uplo: *const c_char,
15716    equed: *const c_char,
15717    n: *const lapackint,
15718    nrhs: *const lapackint,
15719    A: *const Complex32,
15720    lda: *const lapackint,
15721    AF: *const Complex32,
15722    ldaf: *const lapackint,
15723    ipiv: *const lapackint,
15724    S: *mut f32,
15725    B: *const Complex32,
15726    ldb: *const lapackint,
15727    X: *mut Complex32,
15728    ldx: *const lapackint,
15729    rcond: *mut f32,
15730    berr: *mut f32,
15731    n_err_bnds: *const lapackint,
15732    err_bnds_norm: *mut f32,
15733    err_bnds_comp: *mut f32,
15734    nparams: *const lapackint,
15735    params: *mut f32,
15736    work: *mut Complex32,
15737    rwork: *mut f32,
15738    info: *mut lapackint,
15739);
15740
15741define_lapack_ffi!(dsyrfsx, DsyrfsxFnPtr,
15742    uplo: *const c_char,
15743    equed: *const c_char,
15744    n: *const lapackint,
15745    nrhs: *const lapackint,
15746    A: *const f64,
15747    lda: *const lapackint,
15748    AF: *const f64,
15749    ldaf: *const lapackint,
15750    ipiv: *const lapackint,
15751    S: *mut f64,
15752    B: *const f64,
15753    ldb: *const lapackint,
15754    X: *mut f64,
15755    ldx: *const lapackint,
15756    rcond: *mut f64,
15757    berr: *mut f64,
15758    n_err_bnds: *const lapackint,
15759    err_bnds_norm: *mut f64,
15760    err_bnds_comp: *mut f64,
15761    nparams: *const lapackint,
15762    params: *mut f64,
15763    work: *mut f64,
15764    iwork: *mut lapackint,
15765    info: *mut lapackint,
15766);
15767
15768define_lapack_ffi!(ssyrfsx, SsyrfsxFnPtr,
15769    uplo: *const c_char,
15770    equed: *const c_char,
15771    n: *const lapackint,
15772    nrhs: *const lapackint,
15773    A: *const f32,
15774    lda: *const lapackint,
15775    AF: *const f32,
15776    ldaf: *const lapackint,
15777    ipiv: *const lapackint,
15778    S: *mut f32,
15779    B: *const f32,
15780    ldb: *const lapackint,
15781    X: *mut f32,
15782    ldx: *const lapackint,
15783    rcond: *mut f32,
15784    berr: *mut f32,
15785    n_err_bnds: *const lapackint,
15786    err_bnds_norm: *mut f32,
15787    err_bnds_comp: *mut f32,
15788    nparams: *const lapackint,
15789    params: *mut f32,
15790    work: *mut f32,
15791    iwork: *mut lapackint,
15792    info: *mut lapackint,
15793);
15794
15795define_lapack_ffi!(zsyrfsx, ZsyrfsxFnPtr,
15796    uplo: *const c_char,
15797    equed: *const c_char,
15798    n: *const lapackint,
15799    nrhs: *const lapackint,
15800    A: *const Complex64,
15801    lda: *const lapackint,
15802    AF: *const Complex64,
15803    ldaf: *const lapackint,
15804    ipiv: *const lapackint,
15805    S: *mut f64,
15806    B: *const Complex64,
15807    ldb: *const lapackint,
15808    X: *mut Complex64,
15809    ldx: *const lapackint,
15810    rcond: *mut f64,
15811    berr: *mut f64,
15812    n_err_bnds: *const lapackint,
15813    err_bnds_norm: *mut f64,
15814    err_bnds_comp: *mut f64,
15815    nparams: *const lapackint,
15816    params: *mut f64,
15817    work: *mut Complex64,
15818    rwork: *mut f64,
15819    info: *mut lapackint,
15820);
15821
15822// SYSV
15823define_lapack_ffi!(csysv, CsysvFnPtr,
15824    uplo: *const c_char,
15825    n: *const lapackint,
15826    nrhs: *const lapackint,
15827    A: *mut Complex32,
15828    lda: *const lapackint,
15829    ipiv: *mut lapackint,
15830    B: *mut Complex32,
15831    ldb: *const lapackint,
15832    work: *mut Complex32,
15833    lwork: *const lapackint,
15834    info: *mut lapackint,
15835);
15836
15837define_lapack_ffi!(dsysv, DsysvFnPtr,
15838    uplo: *const c_char,
15839    n: *const lapackint,
15840    nrhs: *const lapackint,
15841    A: *mut f64,
15842    lda: *const lapackint,
15843    ipiv: *mut lapackint,
15844    B: *mut f64,
15845    ldb: *const lapackint,
15846    work: *mut f64,
15847    lwork: *const lapackint,
15848    info: *mut lapackint,
15849);
15850
15851define_lapack_ffi!(ssysv, SsysvFnPtr,
15852    uplo: *const c_char,
15853    n: *const lapackint,
15854    nrhs: *const lapackint,
15855    A: *mut f32,
15856    lda: *const lapackint,
15857    ipiv: *mut lapackint,
15858    B: *mut f32,
15859    ldb: *const lapackint,
15860    work: *mut f32,
15861    lwork: *const lapackint,
15862    info: *mut lapackint,
15863);
15864
15865define_lapack_ffi!(zsysv, ZsysvFnPtr,
15866    uplo: *const c_char,
15867    n: *const lapackint,
15868    nrhs: *const lapackint,
15869    A: *mut Complex64,
15870    lda: *const lapackint,
15871    ipiv: *mut lapackint,
15872    B: *mut Complex64,
15873    ldb: *const lapackint,
15874    work: *mut Complex64,
15875    lwork: *const lapackint,
15876    info: *mut lapackint,
15877);
15878
15879// SYSV_AA
15880define_lapack_ffi!(csysv_aa, Csysv_aaFnPtr,
15881    uplo: *const c_char,
15882    n: *const lapackint,
15883    nrhs: *const lapackint,
15884    A: *mut Complex32,
15885    lda: *const lapackint,
15886    ipiv: *mut lapackint,
15887    B: *mut Complex32,
15888    ldb: *const lapackint,
15889    work: *mut Complex32,
15890    lwork: *const lapackint,
15891    info: *mut lapackint,
15892);
15893
15894define_lapack_ffi!(dsysv_aa, Dsysv_aaFnPtr,
15895    uplo: *const c_char,
15896    n: *const lapackint,
15897    nrhs: *const lapackint,
15898    A: *mut f64,
15899    lda: *const lapackint,
15900    ipiv: *mut lapackint,
15901    B: *mut f64,
15902    ldb: *const lapackint,
15903    work: *mut f64,
15904    lwork: *const lapackint,
15905    info: *mut lapackint,
15906);
15907
15908define_lapack_ffi!(ssysv_aa, Ssysv_aaFnPtr,
15909    uplo: *const c_char,
15910    n: *const lapackint,
15911    nrhs: *const lapackint,
15912    A: *mut f32,
15913    lda: *const lapackint,
15914    ipiv: *mut lapackint,
15915    B: *mut f32,
15916    ldb: *const lapackint,
15917    work: *mut f32,
15918    lwork: *const lapackint,
15919    info: *mut lapackint,
15920);
15921
15922define_lapack_ffi!(zsysv_aa, Zsysv_aaFnPtr,
15923    uplo: *const c_char,
15924    n: *const lapackint,
15925    nrhs: *const lapackint,
15926    A: *mut Complex64,
15927    lda: *const lapackint,
15928    ipiv: *mut lapackint,
15929    B: *mut Complex64,
15930    ldb: *const lapackint,
15931    work: *mut Complex64,
15932    lwork: *const lapackint,
15933    info: *mut lapackint,
15934);
15935
15936// SYSV_AA_2STAGE
15937define_lapack_ffi!(csysv_aa_2stage, Csysv_aa_2stageFnPtr,
15938    uplo: *const c_char,
15939    n: *const lapackint,
15940    nrhs: *const lapackint,
15941    A: *mut Complex32,
15942    lda: *const lapackint,
15943    TB: *mut Complex32,
15944    ltb: *const lapackint,
15945    ipiv: *mut lapackint,
15946    ipiv2: *mut lapackint,
15947    B: *mut Complex32,
15948    ldb: *const lapackint,
15949    work: *mut Complex32,
15950    lwork: *const lapackint,
15951    info: *mut lapackint,
15952);
15953
15954define_lapack_ffi!(dsysv_aa_2stage, Dsysv_aa_2stageFnPtr,
15955    uplo: *const c_char,
15956    n: *const lapackint,
15957    nrhs: *const lapackint,
15958    A: *mut f64,
15959    lda: *const lapackint,
15960    TB: *mut f64,
15961    ltb: *const lapackint,
15962    ipiv: *mut lapackint,
15963    ipiv2: *mut lapackint,
15964    B: *mut f64,
15965    ldb: *const lapackint,
15966    work: *mut f64,
15967    lwork: *const lapackint,
15968    info: *mut lapackint,
15969);
15970
15971define_lapack_ffi!(ssysv_aa_2stage, Ssysv_aa_2stageFnPtr,
15972    uplo: *const c_char,
15973    n: *const lapackint,
15974    nrhs: *const lapackint,
15975    A: *mut f32,
15976    lda: *const lapackint,
15977    TB: *mut f32,
15978    ltb: *const lapackint,
15979    ipiv: *mut lapackint,
15980    ipiv2: *mut lapackint,
15981    B: *mut f32,
15982    ldb: *const lapackint,
15983    work: *mut f32,
15984    lwork: *const lapackint,
15985    info: *mut lapackint,
15986);
15987
15988define_lapack_ffi!(zsysv_aa_2stage, Zsysv_aa_2stageFnPtr,
15989    uplo: *const c_char,
15990    n: *const lapackint,
15991    nrhs: *const lapackint,
15992    A: *mut Complex64,
15993    lda: *const lapackint,
15994    TB: *mut Complex64,
15995    ltb: *const lapackint,
15996    ipiv: *mut lapackint,
15997    ipiv2: *mut lapackint,
15998    B: *mut Complex64,
15999    ldb: *const lapackint,
16000    work: *mut Complex64,
16001    lwork: *const lapackint,
16002    info: *mut lapackint,
16003);
16004
16005// SYSV_RK
16006define_lapack_ffi!(csysv_rk, Csysv_rkFnPtr,
16007    uplo: *const c_char,
16008    n: *const lapackint,
16009    nrhs: *const lapackint,
16010    A: *mut Complex32,
16011    lda: *const lapackint,
16012    E: *mut Complex32,
16013    ipiv: *mut lapackint,
16014    B: *mut Complex32,
16015    ldb: *const lapackint,
16016    work: *mut Complex32,
16017    lwork: *const lapackint,
16018    info: *mut lapackint,
16019);
16020
16021define_lapack_ffi!(dsysv_rk, Dsysv_rkFnPtr,
16022    uplo: *const c_char,
16023    n: *const lapackint,
16024    nrhs: *const lapackint,
16025    A: *mut f64,
16026    lda: *const lapackint,
16027    E: *mut f64,
16028    ipiv: *mut lapackint,
16029    B: *mut f64,
16030    ldb: *const lapackint,
16031    work: *mut f64,
16032    lwork: *const lapackint,
16033    info: *mut lapackint,
16034);
16035
16036define_lapack_ffi!(ssysv_rk, Ssysv_rkFnPtr,
16037    uplo: *const c_char,
16038    n: *const lapackint,
16039    nrhs: *const lapackint,
16040    A: *mut f32,
16041    lda: *const lapackint,
16042    E: *mut f32,
16043    ipiv: *mut lapackint,
16044    B: *mut f32,
16045    ldb: *const lapackint,
16046    work: *mut f32,
16047    lwork: *const lapackint,
16048    info: *mut lapackint,
16049);
16050
16051define_lapack_ffi!(zsysv_rk, Zsysv_rkFnPtr,
16052    uplo: *const c_char,
16053    n: *const lapackint,
16054    nrhs: *const lapackint,
16055    A: *mut Complex64,
16056    lda: *const lapackint,
16057    E: *mut Complex64,
16058    ipiv: *mut lapackint,
16059    B: *mut Complex64,
16060    ldb: *const lapackint,
16061    work: *mut Complex64,
16062    lwork: *const lapackint,
16063    info: *mut lapackint,
16064);
16065
16066// SYSV_ROOK
16067define_lapack_ffi!(csysv_rook, Csysv_rookFnPtr,
16068    uplo: *const c_char,
16069    n: *const lapackint,
16070    nrhs: *const lapackint,
16071    A: *mut Complex32,
16072    lda: *const lapackint,
16073    ipiv: *mut lapackint,
16074    B: *mut Complex32,
16075    ldb: *const lapackint,
16076    work: *mut Complex32,
16077    lwork: *const lapackint,
16078    info: *mut lapackint,
16079);
16080
16081define_lapack_ffi!(dsysv_rook, Dsysv_rookFnPtr,
16082    uplo: *const c_char,
16083    n: *const lapackint,
16084    nrhs: *const lapackint,
16085    A: *mut f64,
16086    lda: *const lapackint,
16087    ipiv: *mut lapackint,
16088    B: *mut f64,
16089    ldb: *const lapackint,
16090    work: *mut f64,
16091    lwork: *const lapackint,
16092    info: *mut lapackint,
16093);
16094
16095define_lapack_ffi!(ssysv_rook, Ssysv_rookFnPtr,
16096    uplo: *const c_char,
16097    n: *const lapackint,
16098    nrhs: *const lapackint,
16099    A: *mut f32,
16100    lda: *const lapackint,
16101    ipiv: *mut lapackint,
16102    B: *mut f32,
16103    ldb: *const lapackint,
16104    work: *mut f32,
16105    lwork: *const lapackint,
16106    info: *mut lapackint,
16107);
16108
16109define_lapack_ffi!(zsysv_rook, Zsysv_rookFnPtr,
16110    uplo: *const c_char,
16111    n: *const lapackint,
16112    nrhs: *const lapackint,
16113    A: *mut Complex64,
16114    lda: *const lapackint,
16115    ipiv: *mut lapackint,
16116    B: *mut Complex64,
16117    ldb: *const lapackint,
16118    work: *mut Complex64,
16119    lwork: *const lapackint,
16120    info: *mut lapackint,
16121);
16122
16123// SYSVX
16124define_lapack_ffi!(csysvx, CsysvxFnPtr,
16125    fact: *const c_char,
16126    uplo: *const c_char,
16127    n: *const lapackint,
16128    nrhs: *const lapackint,
16129    A: *const Complex32,
16130    lda: *const lapackint,
16131    AF: *mut Complex32,
16132    ldaf: *const lapackint,
16133    ipiv: *mut lapackint,
16134    B: *const Complex32,
16135    ldb: *const lapackint,
16136    X: *mut Complex32,
16137    ldx: *const lapackint,
16138    rcond: *mut f32,
16139    ferr: *mut f32,
16140    berr: *mut f32,
16141    work: *mut Complex32,
16142    lwork: *const lapackint,
16143    rwork: *mut f32,
16144    info: *mut lapackint,
16145);
16146
16147define_lapack_ffi!(dsysvx, DsysvxFnPtr,
16148    fact: *const c_char,
16149    uplo: *const c_char,
16150    n: *const lapackint,
16151    nrhs: *const lapackint,
16152    A: *const f64,
16153    lda: *const lapackint,
16154    AF: *mut f64,
16155    ldaf: *const lapackint,
16156    ipiv: *mut lapackint,
16157    B: *const f64,
16158    ldb: *const lapackint,
16159    X: *mut f64,
16160    ldx: *const lapackint,
16161    rcond: *mut f64,
16162    ferr: *mut f64,
16163    berr: *mut f64,
16164    work: *mut f64,
16165    lwork: *const lapackint,
16166    iwork: *mut lapackint,
16167    info: *mut lapackint,
16168);
16169
16170define_lapack_ffi!(ssysvx, SsysvxFnPtr,
16171    fact: *const c_char,
16172    uplo: *const c_char,
16173    n: *const lapackint,
16174    nrhs: *const lapackint,
16175    A: *const f32,
16176    lda: *const lapackint,
16177    AF: *mut f32,
16178    ldaf: *const lapackint,
16179    ipiv: *mut lapackint,
16180    B: *const f32,
16181    ldb: *const lapackint,
16182    X: *mut f32,
16183    ldx: *const lapackint,
16184    rcond: *mut f32,
16185    ferr: *mut f32,
16186    berr: *mut f32,
16187    work: *mut f32,
16188    lwork: *const lapackint,
16189    iwork: *mut lapackint,
16190    info: *mut lapackint,
16191);
16192
16193define_lapack_ffi!(zsysvx, ZsysvxFnPtr,
16194    fact: *const c_char,
16195    uplo: *const c_char,
16196    n: *const lapackint,
16197    nrhs: *const lapackint,
16198    A: *const Complex64,
16199    lda: *const lapackint,
16200    AF: *mut Complex64,
16201    ldaf: *const lapackint,
16202    ipiv: *mut lapackint,
16203    B: *const Complex64,
16204    ldb: *const lapackint,
16205    X: *mut Complex64,
16206    ldx: *const lapackint,
16207    rcond: *mut f64,
16208    ferr: *mut f64,
16209    berr: *mut f64,
16210    work: *mut Complex64,
16211    lwork: *const lapackint,
16212    rwork: *mut f64,
16213    info: *mut lapackint,
16214);
16215
16216// SYSVXX
16217define_lapack_ffi!(csysvxx, CsysvxxFnPtr,
16218    fact: *const c_char,
16219    uplo: *const c_char,
16220    n: *const lapackint,
16221    nrhs: *const lapackint,
16222    A: *mut Complex32,
16223    lda: *const lapackint,
16224    AF: *mut Complex32,
16225    ldaf: *const lapackint,
16226    ipiv: *mut lapackint,
16227    equed: *mut c_char,
16228    S: *mut f32,
16229    B: *mut Complex32,
16230    ldb: *const lapackint,
16231    X: *mut Complex32,
16232    ldx: *const lapackint,
16233    rcond: *mut f32,
16234    rpvgrw: *mut f32,
16235    berr: *mut f32,
16236    n_err_bnds: *const lapackint,
16237    err_bnds_norm: *mut f32,
16238    err_bnds_comp: *mut f32,
16239    nparams: *const lapackint,
16240    params: *mut f32,
16241    work: *mut Complex32,
16242    rwork: *mut f32,
16243    info: *mut lapackint,
16244);
16245
16246define_lapack_ffi!(dsysvxx, DsysvxxFnPtr,
16247    fact: *const c_char,
16248    uplo: *const c_char,
16249    n: *const lapackint,
16250    nrhs: *const lapackint,
16251    A: *mut f64,
16252    lda: *const lapackint,
16253    AF: *mut f64,
16254    ldaf: *const lapackint,
16255    ipiv: *mut lapackint,
16256    equed: *mut c_char,
16257    S: *mut f64,
16258    B: *mut f64,
16259    ldb: *const lapackint,
16260    X: *mut f64,
16261    ldx: *const lapackint,
16262    rcond: *mut f64,
16263    rpvgrw: *mut f64,
16264    berr: *mut f64,
16265    n_err_bnds: *const lapackint,
16266    err_bnds_norm: *mut f64,
16267    err_bnds_comp: *mut f64,
16268    nparams: *const lapackint,
16269    params: *mut f64,
16270    work: *mut f64,
16271    iwork: *mut lapackint,
16272    info: *mut lapackint,
16273);
16274
16275define_lapack_ffi!(ssysvxx, SsysvxxFnPtr,
16276    fact: *const c_char,
16277    uplo: *const c_char,
16278    n: *const lapackint,
16279    nrhs: *const lapackint,
16280    A: *mut f32,
16281    lda: *const lapackint,
16282    AF: *mut f32,
16283    ldaf: *const lapackint,
16284    ipiv: *mut lapackint,
16285    equed: *mut c_char,
16286    S: *mut f32,
16287    B: *mut f32,
16288    ldb: *const lapackint,
16289    X: *mut f32,
16290    ldx: *const lapackint,
16291    rcond: *mut f32,
16292    rpvgrw: *mut f32,
16293    berr: *mut f32,
16294    n_err_bnds: *const lapackint,
16295    err_bnds_norm: *mut f32,
16296    err_bnds_comp: *mut f32,
16297    nparams: *const lapackint,
16298    params: *mut f32,
16299    work: *mut f32,
16300    iwork: *mut lapackint,
16301    info: *mut lapackint,
16302);
16303
16304define_lapack_ffi!(zsysvxx, ZsysvxxFnPtr,
16305    fact: *const c_char,
16306    uplo: *const c_char,
16307    n: *const lapackint,
16308    nrhs: *const lapackint,
16309    A: *mut Complex64,
16310    lda: *const lapackint,
16311    AF: *mut Complex64,
16312    ldaf: *const lapackint,
16313    ipiv: *mut lapackint,
16314    equed: *mut c_char,
16315    S: *mut f64,
16316    B: *mut Complex64,
16317    ldb: *const lapackint,
16318    X: *mut Complex64,
16319    ldx: *const lapackint,
16320    rcond: *mut f64,
16321    rpvgrw: *mut f64,
16322    berr: *mut f64,
16323    n_err_bnds: *const lapackint,
16324    err_bnds_norm: *mut f64,
16325    err_bnds_comp: *mut f64,
16326    nparams: *const lapackint,
16327    params: *mut f64,
16328    work: *mut Complex64,
16329    rwork: *mut f64,
16330    info: *mut lapackint,
16331);
16332
16333// SYSWAPR
16334define_lapack_ffi!(csyswapr, CsyswaprFnPtr,
16335    uplo: *const c_char,
16336    n: *const lapackint,
16337    A: *mut Complex32,
16338    lda: *const lapackint,
16339    i1: *const lapackint,
16340    i2: *const lapackint,
16341);
16342
16343define_lapack_ffi!(dsyswapr, DsyswaprFnPtr,
16344    uplo: *const c_char,
16345    n: *const lapackint,
16346    A: *mut f64,
16347    lda: *const lapackint,
16348    i1: *const lapackint,
16349    i2: *const lapackint,
16350);
16351
16352define_lapack_ffi!(ssyswapr, SsyswaprFnPtr,
16353    uplo: *const c_char,
16354    n: *const lapackint,
16355    A: *mut f32,
16356    lda: *const lapackint,
16357    i1: *const lapackint,
16358    i2: *const lapackint,
16359);
16360
16361define_lapack_ffi!(zsyswapr, ZsyswaprFnPtr,
16362    uplo: *const c_char,
16363    n: *const lapackint,
16364    A: *mut Complex64,
16365    lda: *const lapackint,
16366    i1: *const lapackint,
16367    i2: *const lapackint,
16368);
16369
16370// SYTRD
16371define_lapack_ffi!(dsytrd, DsytrdFnPtr,
16372    uplo: *const c_char,
16373    n: *const lapackint,
16374    A: *mut f64,
16375    lda: *const lapackint,
16376    D: *mut f64,
16377    E: *mut f64,
16378    tau: *mut f64,
16379    work: *mut f64,
16380    lwork: *const lapackint,
16381    info: *mut lapackint,
16382);
16383
16384define_lapack_ffi!(ssytrd, SsytrdFnPtr,
16385    uplo: *const c_char,
16386    n: *const lapackint,
16387    A: *mut f32,
16388    lda: *const lapackint,
16389    D: *mut f32,
16390    E: *mut f32,
16391    tau: *mut f32,
16392    work: *mut f32,
16393    lwork: *const lapackint,
16394    info: *mut lapackint,
16395);
16396
16397// SYTRD_2STAGE
16398define_lapack_ffi!(dsytrd_2stage, Dsytrd_2stageFnPtr,
16399    vect: *const c_char,
16400    uplo: *const c_char,
16401    n: *const lapackint,
16402    A: *mut f64,
16403    lda: *const lapackint,
16404    D: *mut f64,
16405    E: *mut f64,
16406    tau: *mut f64,
16407    HOUS2: *mut f64,
16408    lhous2: *const lapackint,
16409    work: *mut f64,
16410    lwork: *const lapackint,
16411    info: *mut lapackint,
16412);
16413
16414define_lapack_ffi!(ssytrd_2stage, Ssytrd_2stageFnPtr,
16415    vect: *const c_char,
16416    uplo: *const c_char,
16417    n: *const lapackint,
16418    A: *mut f32,
16419    lda: *const lapackint,
16420    D: *mut f32,
16421    E: *mut f32,
16422    tau: *mut f32,
16423    HOUS2: *mut f32,
16424    lhous2: *const lapackint,
16425    work: *mut f32,
16426    lwork: *const lapackint,
16427    info: *mut lapackint,
16428);
16429
16430// SYTRF
16431define_lapack_ffi!(csytrf, CsytrfFnPtr,
16432    uplo: *const c_char,
16433    n: *const lapackint,
16434    A: *mut Complex32,
16435    lda: *const lapackint,
16436    ipiv: *mut lapackint,
16437    work: *mut Complex32,
16438    lwork: *const lapackint,
16439    info: *mut lapackint,
16440);
16441
16442define_lapack_ffi!(dsytrf, DsytrfFnPtr,
16443    uplo: *const c_char,
16444    n: *const lapackint,
16445    A: *mut f64,
16446    lda: *const lapackint,
16447    ipiv: *mut lapackint,
16448    work: *mut f64,
16449    lwork: *const lapackint,
16450    info: *mut lapackint,
16451);
16452
16453define_lapack_ffi!(ssytrf, SsytrfFnPtr,
16454    uplo: *const c_char,
16455    n: *const lapackint,
16456    A: *mut f32,
16457    lda: *const lapackint,
16458    ipiv: *mut lapackint,
16459    work: *mut f32,
16460    lwork: *const lapackint,
16461    info: *mut lapackint,
16462);
16463
16464define_lapack_ffi!(zsytrf, ZsytrfFnPtr,
16465    uplo: *const c_char,
16466    n: *const lapackint,
16467    A: *mut Complex64,
16468    lda: *const lapackint,
16469    ipiv: *mut lapackint,
16470    work: *mut Complex64,
16471    lwork: *const lapackint,
16472    info: *mut lapackint,
16473);
16474
16475// SYTRF_AA
16476define_lapack_ffi!(csytrf_aa, Csytrf_aaFnPtr,
16477    uplo: *const c_char,
16478    n: *const lapackint,
16479    A: *mut Complex32,
16480    lda: *const lapackint,
16481    ipiv: *mut lapackint,
16482    work: *mut Complex32,
16483    lwork: *const lapackint,
16484    info: *mut lapackint,
16485);
16486
16487define_lapack_ffi!(dsytrf_aa, Dsytrf_aaFnPtr,
16488    uplo: *const c_char,
16489    n: *const lapackint,
16490    A: *mut f64,
16491    lda: *const lapackint,
16492    ipiv: *mut lapackint,
16493    work: *mut f64,
16494    lwork: *const lapackint,
16495    info: *mut lapackint,
16496);
16497
16498define_lapack_ffi!(ssytrf_aa, Ssytrf_aaFnPtr,
16499    uplo: *const c_char,
16500    n: *const lapackint,
16501    A: *mut f32,
16502    lda: *const lapackint,
16503    ipiv: *mut lapackint,
16504    work: *mut f32,
16505    lwork: *const lapackint,
16506    info: *mut lapackint,
16507);
16508
16509define_lapack_ffi!(zsytrf_aa, Zsytrf_aaFnPtr,
16510    uplo: *const c_char,
16511    n: *const lapackint,
16512    A: *mut Complex64,
16513    lda: *const lapackint,
16514    ipiv: *mut lapackint,
16515    work: *mut Complex64,
16516    lwork: *const lapackint,
16517    info: *mut lapackint,
16518);
16519
16520// SYTRF_AA_2STAGE
16521define_lapack_ffi!(csytrf_aa_2stage, Csytrf_aa_2stageFnPtr,
16522    uplo: *const c_char,
16523    n: *const lapackint,
16524    A: *mut Complex32,
16525    lda: *const lapackint,
16526    TB: *mut Complex32,
16527    ltb: *const lapackint,
16528    ipiv: *mut lapackint,
16529    ipiv2: *mut lapackint,
16530    work: *mut Complex32,
16531    lwork: *const lapackint,
16532    info: *mut lapackint,
16533);
16534
16535define_lapack_ffi!(dsytrf_aa_2stage, Dsytrf_aa_2stageFnPtr,
16536    uplo: *const c_char,
16537    n: *const lapackint,
16538    A: *mut f64,
16539    lda: *const lapackint,
16540    TB: *mut f64,
16541    ltb: *const lapackint,
16542    ipiv: *mut lapackint,
16543    ipiv2: *mut lapackint,
16544    work: *mut f64,
16545    lwork: *const lapackint,
16546    info: *mut lapackint,
16547);
16548
16549define_lapack_ffi!(ssytrf_aa_2stage, Ssytrf_aa_2stageFnPtr,
16550    uplo: *const c_char,
16551    n: *const lapackint,
16552    A: *mut f32,
16553    lda: *const lapackint,
16554    TB: *mut f32,
16555    ltb: *const lapackint,
16556    ipiv: *mut lapackint,
16557    ipiv2: *mut lapackint,
16558    work: *mut f32,
16559    lwork: *const lapackint,
16560    info: *mut lapackint,
16561);
16562
16563define_lapack_ffi!(zsytrf_aa_2stage, Zsytrf_aa_2stageFnPtr,
16564    uplo: *const c_char,
16565    n: *const lapackint,
16566    A: *mut Complex64,
16567    lda: *const lapackint,
16568    TB: *mut Complex64,
16569    ltb: *const lapackint,
16570    ipiv: *mut lapackint,
16571    ipiv2: *mut lapackint,
16572    work: *mut Complex64,
16573    lwork: *const lapackint,
16574    info: *mut lapackint,
16575);
16576
16577// SYTRF_RK
16578define_lapack_ffi!(csytrf_rk, Csytrf_rkFnPtr,
16579    uplo: *const c_char,
16580    n: *const lapackint,
16581    A: *mut Complex32,
16582    lda: *const lapackint,
16583    E: *mut Complex32,
16584    ipiv: *mut lapackint,
16585    work: *mut Complex32,
16586    lwork: *const lapackint,
16587    info: *mut lapackint,
16588);
16589
16590define_lapack_ffi!(dsytrf_rk, Dsytrf_rkFnPtr,
16591    uplo: *const c_char,
16592    n: *const lapackint,
16593    A: *mut f64,
16594    lda: *const lapackint,
16595    E: *mut f64,
16596    ipiv: *mut lapackint,
16597    work: *mut f64,
16598    lwork: *const lapackint,
16599    info: *mut lapackint,
16600);
16601
16602define_lapack_ffi!(ssytrf_rk, Ssytrf_rkFnPtr,
16603    uplo: *const c_char,
16604    n: *const lapackint,
16605    A: *mut f32,
16606    lda: *const lapackint,
16607    E: *mut f32,
16608    ipiv: *mut lapackint,
16609    work: *mut f32,
16610    lwork: *const lapackint,
16611    info: *mut lapackint,
16612);
16613
16614define_lapack_ffi!(zsytrf_rk, Zsytrf_rkFnPtr,
16615    uplo: *const c_char,
16616    n: *const lapackint,
16617    A: *mut Complex64,
16618    lda: *const lapackint,
16619    E: *mut Complex64,
16620    ipiv: *mut lapackint,
16621    work: *mut Complex64,
16622    lwork: *const lapackint,
16623    info: *mut lapackint,
16624);
16625
16626// SYTRF_ROOK
16627define_lapack_ffi!(csytrf_rook, Csytrf_rookFnPtr,
16628    uplo: *const c_char,
16629    n: *const lapackint,
16630    A: *mut Complex32,
16631    lda: *const lapackint,
16632    ipiv: *mut lapackint,
16633    work: *mut Complex32,
16634    lwork: *const lapackint,
16635    info: *mut lapackint,
16636);
16637
16638define_lapack_ffi!(dsytrf_rook, Dsytrf_rookFnPtr,
16639    uplo: *const c_char,
16640    n: *const lapackint,
16641    A: *mut f64,
16642    lda: *const lapackint,
16643    ipiv: *mut lapackint,
16644    work: *mut f64,
16645    lwork: *const lapackint,
16646    info: *mut lapackint,
16647);
16648
16649define_lapack_ffi!(ssytrf_rook, Ssytrf_rookFnPtr,
16650    uplo: *const c_char,
16651    n: *const lapackint,
16652    A: *mut f32,
16653    lda: *const lapackint,
16654    ipiv: *mut lapackint,
16655    work: *mut f32,
16656    lwork: *const lapackint,
16657    info: *mut lapackint,
16658);
16659
16660define_lapack_ffi!(zsytrf_rook, Zsytrf_rookFnPtr,
16661    uplo: *const c_char,
16662    n: *const lapackint,
16663    A: *mut Complex64,
16664    lda: *const lapackint,
16665    ipiv: *mut lapackint,
16666    work: *mut Complex64,
16667    lwork: *const lapackint,
16668    info: *mut lapackint,
16669);
16670
16671// SYTRI
16672define_lapack_ffi!(csytri, CsytriFnPtr,
16673    uplo: *const c_char,
16674    n: *const lapackint,
16675    A: *mut Complex32,
16676    lda: *const lapackint,
16677    ipiv: *const lapackint,
16678    work: *mut Complex32,
16679    info: *mut lapackint,
16680);
16681
16682define_lapack_ffi!(dsytri, DsytriFnPtr,
16683    uplo: *const c_char,
16684    n: *const lapackint,
16685    A: *mut f64,
16686    lda: *const lapackint,
16687    ipiv: *const lapackint,
16688    work: *mut f64,
16689    info: *mut lapackint,
16690);
16691
16692define_lapack_ffi!(ssytri, SsytriFnPtr,
16693    uplo: *const c_char,
16694    n: *const lapackint,
16695    A: *mut f32,
16696    lda: *const lapackint,
16697    ipiv: *const lapackint,
16698    work: *mut f32,
16699    info: *mut lapackint,
16700);
16701
16702define_lapack_ffi!(zsytri, ZsytriFnPtr,
16703    uplo: *const c_char,
16704    n: *const lapackint,
16705    A: *mut Complex64,
16706    lda: *const lapackint,
16707    ipiv: *const lapackint,
16708    work: *mut Complex64,
16709    info: *mut lapackint,
16710);
16711
16712// SYTRI2
16713define_lapack_ffi!(csytri2, Csytri2FnPtr,
16714    uplo: *const c_char,
16715    n: *const lapackint,
16716    A: *mut Complex32,
16717    lda: *const lapackint,
16718    ipiv: *const lapackint,
16719    work: *mut Complex32,
16720    lwork: *const lapackint,
16721    info: *mut lapackint,
16722);
16723
16724define_lapack_ffi!(dsytri2, Dsytri2FnPtr,
16725    uplo: *const c_char,
16726    n: *const lapackint,
16727    A: *mut f64,
16728    lda: *const lapackint,
16729    ipiv: *const lapackint,
16730    work: *mut f64,
16731    lwork: *const lapackint,
16732    info: *mut lapackint,
16733);
16734
16735define_lapack_ffi!(ssytri2, Ssytri2FnPtr,
16736    uplo: *const c_char,
16737    n: *const lapackint,
16738    A: *mut f32,
16739    lda: *const lapackint,
16740    ipiv: *const lapackint,
16741    work: *mut f32,
16742    lwork: *const lapackint,
16743    info: *mut lapackint,
16744);
16745
16746define_lapack_ffi!(zsytri2, Zsytri2FnPtr,
16747    uplo: *const c_char,
16748    n: *const lapackint,
16749    A: *mut Complex64,
16750    lda: *const lapackint,
16751    ipiv: *const lapackint,
16752    work: *mut Complex64,
16753    lwork: *const lapackint,
16754    info: *mut lapackint,
16755);
16756
16757// SYTRI2X
16758define_lapack_ffi!(csytri2x, Csytri2xFnPtr,
16759    uplo: *const c_char,
16760    n: *const lapackint,
16761    A: *mut Complex32,
16762    lda: *const lapackint,
16763    ipiv: *const lapackint,
16764    work: *mut Complex32,
16765    nb: *const lapackint,
16766    info: *mut lapackint,
16767);
16768
16769define_lapack_ffi!(dsytri2x, Dsytri2xFnPtr,
16770    uplo: *const c_char,
16771    n: *const lapackint,
16772    A: *mut f64,
16773    lda: *const lapackint,
16774    ipiv: *const lapackint,
16775    work: *mut f64,
16776    nb: *const lapackint,
16777    info: *mut lapackint,
16778);
16779
16780define_lapack_ffi!(ssytri2x, Ssytri2xFnPtr,
16781    uplo: *const c_char,
16782    n: *const lapackint,
16783    A: *mut f32,
16784    lda: *const lapackint,
16785    ipiv: *const lapackint,
16786    work: *mut f32,
16787    nb: *const lapackint,
16788    info: *mut lapackint,
16789);
16790
16791define_lapack_ffi!(zsytri2x, Zsytri2xFnPtr,
16792    uplo: *const c_char,
16793    n: *const lapackint,
16794    A: *mut Complex64,
16795    lda: *const lapackint,
16796    ipiv: *const lapackint,
16797    work: *mut Complex64,
16798    nb: *const lapackint,
16799    info: *mut lapackint,
16800);
16801
16802// SYTRI_3
16803define_lapack_ffi!(csytri_3, Csytri_3FnPtr,
16804    uplo: *const c_char,
16805    n: *const lapackint,
16806    A: *mut Complex32,
16807    lda: *const lapackint,
16808    E: *const Complex32,
16809    ipiv: *const lapackint,
16810    work: *mut Complex32,
16811    lwork: *const lapackint,
16812    info: *mut lapackint,
16813);
16814
16815define_lapack_ffi!(dsytri_3, Dsytri_3FnPtr,
16816    uplo: *const c_char,
16817    n: *const lapackint,
16818    A: *mut f64,
16819    lda: *const lapackint,
16820    E: *const f64,
16821    ipiv: *const lapackint,
16822    work: *mut f64,
16823    lwork: *const lapackint,
16824    info: *mut lapackint,
16825);
16826
16827define_lapack_ffi!(ssytri_3, Ssytri_3FnPtr,
16828    uplo: *const c_char,
16829    n: *const lapackint,
16830    A: *mut f32,
16831    lda: *const lapackint,
16832    E: *const f32,
16833    ipiv: *const lapackint,
16834    work: *mut f32,
16835    lwork: *const lapackint,
16836    info: *mut lapackint,
16837);
16838
16839define_lapack_ffi!(zsytri_3, Zsytri_3FnPtr,
16840    uplo: *const c_char,
16841    n: *const lapackint,
16842    A: *mut Complex64,
16843    lda: *const lapackint,
16844    E: *const Complex64,
16845    ipiv: *const lapackint,
16846    work: *mut Complex64,
16847    lwork: *const lapackint,
16848    info: *mut lapackint,
16849);
16850
16851// SYTRS
16852define_lapack_ffi!(csytrs, CsytrsFnPtr,
16853    uplo: *const c_char,
16854    n: *const lapackint,
16855    nrhs: *const lapackint,
16856    A: *const Complex32,
16857    lda: *const lapackint,
16858    ipiv: *const lapackint,
16859    B: *mut Complex32,
16860    ldb: *const lapackint,
16861    info: *mut lapackint,
16862);
16863
16864define_lapack_ffi!(dsytrs, DsytrsFnPtr,
16865    uplo: *const c_char,
16866    n: *const lapackint,
16867    nrhs: *const lapackint,
16868    A: *const f64,
16869    lda: *const lapackint,
16870    ipiv: *const lapackint,
16871    B: *mut f64,
16872    ldb: *const lapackint,
16873    info: *mut lapackint,
16874);
16875
16876define_lapack_ffi!(ssytrs, SsytrsFnPtr,
16877    uplo: *const c_char,
16878    n: *const lapackint,
16879    nrhs: *const lapackint,
16880    A: *const f32,
16881    lda: *const lapackint,
16882    ipiv: *const lapackint,
16883    B: *mut f32,
16884    ldb: *const lapackint,
16885    info: *mut lapackint,
16886);
16887
16888define_lapack_ffi!(zsytrs, ZsytrsFnPtr,
16889    uplo: *const c_char,
16890    n: *const lapackint,
16891    nrhs: *const lapackint,
16892    A: *const Complex64,
16893    lda: *const lapackint,
16894    ipiv: *const lapackint,
16895    B: *mut Complex64,
16896    ldb: *const lapackint,
16897    info: *mut lapackint,
16898);
16899
16900// SYTRS2
16901define_lapack_ffi!(csytrs2, Csytrs2FnPtr,
16902    uplo: *const c_char,
16903    n: *const lapackint,
16904    nrhs: *const lapackint,
16905    A: *mut Complex32,
16906    lda: *const lapackint,
16907    ipiv: *const lapackint,
16908    B: *mut Complex32,
16909    ldb: *const lapackint,
16910    work: *mut Complex32,
16911    info: *mut lapackint,
16912);
16913
16914define_lapack_ffi!(dsytrs2, Dsytrs2FnPtr,
16915    uplo: *const c_char,
16916    n: *const lapackint,
16917    nrhs: *const lapackint,
16918    A: *mut f64,
16919    lda: *const lapackint,
16920    ipiv: *const lapackint,
16921    B: *mut f64,
16922    ldb: *const lapackint,
16923    work: *mut f64,
16924    info: *mut lapackint,
16925);
16926
16927define_lapack_ffi!(ssytrs2, Ssytrs2FnPtr,
16928    uplo: *const c_char,
16929    n: *const lapackint,
16930    nrhs: *const lapackint,
16931    A: *mut f32,
16932    lda: *const lapackint,
16933    ipiv: *const lapackint,
16934    B: *mut f32,
16935    ldb: *const lapackint,
16936    work: *mut f32,
16937    info: *mut lapackint,
16938);
16939
16940define_lapack_ffi!(zsytrs2, Zsytrs2FnPtr,
16941    uplo: *const c_char,
16942    n: *const lapackint,
16943    nrhs: *const lapackint,
16944    A: *mut Complex64,
16945    lda: *const lapackint,
16946    ipiv: *const lapackint,
16947    B: *mut Complex64,
16948    ldb: *const lapackint,
16949    work: *mut Complex64,
16950    info: *mut lapackint,
16951);
16952
16953// SYTRS_3
16954define_lapack_ffi!(csytrs_3, Csytrs_3FnPtr,
16955    uplo: *const c_char,
16956    n: *const lapackint,
16957    nrhs: *const lapackint,
16958    A: *const Complex32,
16959    lda: *const lapackint,
16960    E: *const Complex32,
16961    ipiv: *const lapackint,
16962    B: *mut Complex32,
16963    ldb: *const lapackint,
16964    info: *mut lapackint,
16965);
16966
16967define_lapack_ffi!(dsytrs_3, Dsytrs_3FnPtr,
16968    uplo: *const c_char,
16969    n: *const lapackint,
16970    nrhs: *const lapackint,
16971    A: *const f64,
16972    lda: *const lapackint,
16973    E: *const f64,
16974    ipiv: *const lapackint,
16975    B: *mut f64,
16976    ldb: *const lapackint,
16977    info: *mut lapackint,
16978);
16979
16980define_lapack_ffi!(ssytrs_3, Ssytrs_3FnPtr,
16981    uplo: *const c_char,
16982    n: *const lapackint,
16983    nrhs: *const lapackint,
16984    A: *const f32,
16985    lda: *const lapackint,
16986    E: *const f32,
16987    ipiv: *const lapackint,
16988    B: *mut f32,
16989    ldb: *const lapackint,
16990    info: *mut lapackint,
16991);
16992
16993define_lapack_ffi!(zsytrs_3, Zsytrs_3FnPtr,
16994    uplo: *const c_char,
16995    n: *const lapackint,
16996    nrhs: *const lapackint,
16997    A: *const Complex64,
16998    lda: *const lapackint,
16999    E: *const Complex64,
17000    ipiv: *const lapackint,
17001    B: *mut Complex64,
17002    ldb: *const lapackint,
17003    info: *mut lapackint,
17004);
17005
17006// SYTRS_AA
17007define_lapack_ffi!(csytrs_aa, Csytrs_aaFnPtr,
17008    uplo: *const c_char,
17009    n: *const lapackint,
17010    nrhs: *const lapackint,
17011    A: *const Complex32,
17012    lda: *const lapackint,
17013    ipiv: *const lapackint,
17014    B: *mut Complex32,
17015    ldb: *const lapackint,
17016    work: *mut Complex32,
17017    lwork: *const lapackint,
17018    info: *mut lapackint,
17019);
17020
17021define_lapack_ffi!(dsytrs_aa, Dsytrs_aaFnPtr,
17022    uplo: *const c_char,
17023    n: *const lapackint,
17024    nrhs: *const lapackint,
17025    A: *const f64,
17026    lda: *const lapackint,
17027    ipiv: *const lapackint,
17028    B: *mut f64,
17029    ldb: *const lapackint,
17030    work: *mut f64,
17031    lwork: *const lapackint,
17032    info: *mut lapackint,
17033);
17034
17035define_lapack_ffi!(ssytrs_aa, Ssytrs_aaFnPtr,
17036    uplo: *const c_char,
17037    n: *const lapackint,
17038    nrhs: *const lapackint,
17039    A: *const f32,
17040    lda: *const lapackint,
17041    ipiv: *const lapackint,
17042    B: *mut f32,
17043    ldb: *const lapackint,
17044    work: *mut f32,
17045    lwork: *const lapackint,
17046    info: *mut lapackint,
17047);
17048
17049define_lapack_ffi!(zsytrs_aa, Zsytrs_aaFnPtr,
17050    uplo: *const c_char,
17051    n: *const lapackint,
17052    nrhs: *const lapackint,
17053    A: *const Complex64,
17054    lda: *const lapackint,
17055    ipiv: *const lapackint,
17056    B: *mut Complex64,
17057    ldb: *const lapackint,
17058    work: *mut Complex64,
17059    lwork: *const lapackint,
17060    info: *mut lapackint,
17061);
17062
17063// SYTRS_AA_2STAGE
17064define_lapack_ffi!(csytrs_aa_2stage, Csytrs_aa_2stageFnPtr,
17065    uplo: *const c_char,
17066    n: *const lapackint,
17067    nrhs: *const lapackint,
17068    A: *const Complex32,
17069    lda: *const lapackint,
17070    TB: *mut Complex32,
17071    ltb: *const lapackint,
17072    ipiv: *const lapackint,
17073    ipiv2: *const lapackint,
17074    B: *mut Complex32,
17075    ldb: *const lapackint,
17076    info: *mut lapackint,
17077);
17078
17079define_lapack_ffi!(dsytrs_aa_2stage, Dsytrs_aa_2stageFnPtr,
17080    uplo: *const c_char,
17081    n: *const lapackint,
17082    nrhs: *const lapackint,
17083    A: *const f64,
17084    lda: *const lapackint,
17085    TB: *mut f64,
17086    ltb: *const lapackint,
17087    ipiv: *const lapackint,
17088    ipiv2: *const lapackint,
17089    B: *mut f64,
17090    ldb: *const lapackint,
17091    info: *mut lapackint,
17092);
17093
17094define_lapack_ffi!(ssytrs_aa_2stage, Ssytrs_aa_2stageFnPtr,
17095    uplo: *const c_char,
17096    n: *const lapackint,
17097    nrhs: *const lapackint,
17098    A: *const f32,
17099    lda: *const lapackint,
17100    TB: *mut f32,
17101    ltb: *const lapackint,
17102    ipiv: *const lapackint,
17103    ipiv2: *const lapackint,
17104    B: *mut f32,
17105    ldb: *const lapackint,
17106    info: *mut lapackint,
17107);
17108
17109define_lapack_ffi!(zsytrs_aa_2stage, Zsytrs_aa_2stageFnPtr,
17110    uplo: *const c_char,
17111    n: *const lapackint,
17112    nrhs: *const lapackint,
17113    A: *const Complex64,
17114    lda: *const lapackint,
17115    TB: *mut Complex64,
17116    ltb: *const lapackint,
17117    ipiv: *const lapackint,
17118    ipiv2: *const lapackint,
17119    B: *mut Complex64,
17120    ldb: *const lapackint,
17121    info: *mut lapackint,
17122);
17123
17124// SYTRS_ROOK
17125define_lapack_ffi!(csytrs_rook, Csytrs_rookFnPtr,
17126    uplo: *const c_char,
17127    n: *const lapackint,
17128    nrhs: *const lapackint,
17129    A: *const Complex32,
17130    lda: *const lapackint,
17131    ipiv: *const lapackint,
17132    B: *mut Complex32,
17133    ldb: *const lapackint,
17134    info: *mut lapackint,
17135);
17136
17137define_lapack_ffi!(dsytrs_rook, Dsytrs_rookFnPtr,
17138    uplo: *const c_char,
17139    n: *const lapackint,
17140    nrhs: *const lapackint,
17141    A: *const f64,
17142    lda: *const lapackint,
17143    ipiv: *const lapackint,
17144    B: *mut f64,
17145    ldb: *const lapackint,
17146    info: *mut lapackint,
17147);
17148
17149define_lapack_ffi!(ssytrs_rook, Ssytrs_rookFnPtr,
17150    uplo: *const c_char,
17151    n: *const lapackint,
17152    nrhs: *const lapackint,
17153    A: *const f32,
17154    lda: *const lapackint,
17155    ipiv: *const lapackint,
17156    B: *mut f32,
17157    ldb: *const lapackint,
17158    info: *mut lapackint,
17159);
17160
17161define_lapack_ffi!(zsytrs_rook, Zsytrs_rookFnPtr,
17162    uplo: *const c_char,
17163    n: *const lapackint,
17164    nrhs: *const lapackint,
17165    A: *const Complex64,
17166    lda: *const lapackint,
17167    ipiv: *const lapackint,
17168    B: *mut Complex64,
17169    ldb: *const lapackint,
17170    info: *mut lapackint,
17171);
17172
17173// TBCON
17174define_lapack_ffi!(ctbcon, CtbconFnPtr,
17175    norm: *const c_char,
17176    uplo: *const c_char,
17177    diag: *const c_char,
17178    n: *const lapackint,
17179    kd: *const lapackint,
17180    AB: *const Complex32,
17181    ldab: *const lapackint,
17182    rcond: *mut f32,
17183    work: *mut Complex32,
17184    rwork: *mut f32,
17185    info: *mut lapackint,
17186);
17187
17188define_lapack_ffi!(dtbcon, DtbconFnPtr,
17189    norm: *const c_char,
17190    uplo: *const c_char,
17191    diag: *const c_char,
17192    n: *const lapackint,
17193    kd: *const lapackint,
17194    AB: *const f64,
17195    ldab: *const lapackint,
17196    rcond: *mut f64,
17197    work: *mut f64,
17198    iwork: *mut lapackint,
17199    info: *mut lapackint,
17200);
17201
17202define_lapack_ffi!(stbcon, StbconFnPtr,
17203    norm: *const c_char,
17204    uplo: *const c_char,
17205    diag: *const c_char,
17206    n: *const lapackint,
17207    kd: *const lapackint,
17208    AB: *const f32,
17209    ldab: *const lapackint,
17210    rcond: *mut f32,
17211    work: *mut f32,
17212    iwork: *mut lapackint,
17213    info: *mut lapackint,
17214);
17215
17216define_lapack_ffi!(ztbcon, ZtbconFnPtr,
17217    norm: *const c_char,
17218    uplo: *const c_char,
17219    diag: *const c_char,
17220    n: *const lapackint,
17221    kd: *const lapackint,
17222    AB: *const Complex64,
17223    ldab: *const lapackint,
17224    rcond: *mut f64,
17225    work: *mut Complex64,
17226    rwork: *mut f64,
17227    info: *mut lapackint,
17228);
17229
17230// TBRFS
17231define_lapack_ffi!(ctbrfs, CtbrfsFnPtr,
17232    uplo: *const c_char,
17233    trans: *const c_char,
17234    diag: *const c_char,
17235    n: *const lapackint,
17236    kd: *const lapackint,
17237    nrhs: *const lapackint,
17238    AB: *const Complex32,
17239    ldab: *const lapackint,
17240    B: *const Complex32,
17241    ldb: *const lapackint,
17242    X: *const Complex32,
17243    ldx: *const lapackint,
17244    ferr: *mut f32,
17245    berr: *mut f32,
17246    work: *mut Complex32,
17247    rwork: *mut f32,
17248    info: *mut lapackint,
17249);
17250
17251define_lapack_ffi!(dtbrfs, DtbrfsFnPtr,
17252    uplo: *const c_char,
17253    trans: *const c_char,
17254    diag: *const c_char,
17255    n: *const lapackint,
17256    kd: *const lapackint,
17257    nrhs: *const lapackint,
17258    AB: *const f64,
17259    ldab: *const lapackint,
17260    B: *const f64,
17261    ldb: *const lapackint,
17262    X: *const f64,
17263    ldx: *const lapackint,
17264    ferr: *mut f64,
17265    berr: *mut f64,
17266    work: *mut f64,
17267    iwork: *mut lapackint,
17268    info: *mut lapackint,
17269);
17270
17271define_lapack_ffi!(stbrfs, StbrfsFnPtr,
17272    uplo: *const c_char,
17273    trans: *const c_char,
17274    diag: *const c_char,
17275    n: *const lapackint,
17276    kd: *const lapackint,
17277    nrhs: *const lapackint,
17278    AB: *const f32,
17279    ldab: *const lapackint,
17280    B: *const f32,
17281    ldb: *const lapackint,
17282    X: *const f32,
17283    ldx: *const lapackint,
17284    ferr: *mut f32,
17285    berr: *mut f32,
17286    work: *mut f32,
17287    iwork: *mut lapackint,
17288    info: *mut lapackint,
17289);
17290
17291define_lapack_ffi!(ztbrfs, ZtbrfsFnPtr,
17292    uplo: *const c_char,
17293    trans: *const c_char,
17294    diag: *const c_char,
17295    n: *const lapackint,
17296    kd: *const lapackint,
17297    nrhs: *const lapackint,
17298    AB: *const Complex64,
17299    ldab: *const lapackint,
17300    B: *const Complex64,
17301    ldb: *const lapackint,
17302    X: *const Complex64,
17303    ldx: *const lapackint,
17304    ferr: *mut f64,
17305    berr: *mut f64,
17306    work: *mut Complex64,
17307    rwork: *mut f64,
17308    info: *mut lapackint,
17309);
17310
17311// TBTRS
17312define_lapack_ffi!(ctbtrs, CtbtrsFnPtr,
17313    uplo: *const c_char,
17314    trans: *const c_char,
17315    diag: *const c_char,
17316    n: *const lapackint,
17317    kd: *const lapackint,
17318    nrhs: *const lapackint,
17319    AB: *const Complex32,
17320    ldab: *const lapackint,
17321    B: *mut Complex32,
17322    ldb: *const lapackint,
17323    info: *mut lapackint,
17324);
17325
17326define_lapack_ffi!(dtbtrs, DtbtrsFnPtr,
17327    uplo: *const c_char,
17328    trans: *const c_char,
17329    diag: *const c_char,
17330    n: *const lapackint,
17331    kd: *const lapackint,
17332    nrhs: *const lapackint,
17333    AB: *const f64,
17334    ldab: *const lapackint,
17335    B: *mut f64,
17336    ldb: *const lapackint,
17337    info: *mut lapackint,
17338);
17339
17340define_lapack_ffi!(stbtrs, StbtrsFnPtr,
17341    uplo: *const c_char,
17342    trans: *const c_char,
17343    diag: *const c_char,
17344    n: *const lapackint,
17345    kd: *const lapackint,
17346    nrhs: *const lapackint,
17347    AB: *const f32,
17348    ldab: *const lapackint,
17349    B: *mut f32,
17350    ldb: *const lapackint,
17351    info: *mut lapackint,
17352);
17353
17354define_lapack_ffi!(ztbtrs, ZtbtrsFnPtr,
17355    uplo: *const c_char,
17356    trans: *const c_char,
17357    diag: *const c_char,
17358    n: *const lapackint,
17359    kd: *const lapackint,
17360    nrhs: *const lapackint,
17361    AB: *const Complex64,
17362    ldab: *const lapackint,
17363    B: *mut Complex64,
17364    ldb: *const lapackint,
17365    info: *mut lapackint,
17366);
17367
17368// TFSM
17369define_lapack_ffi!(ctfsm, CtfsmFnPtr,
17370    transr: *const c_char,
17371    side: *const c_char,
17372    uplo: *const c_char,
17373    trans: *const c_char,
17374    diag: *const c_char,
17375    m: *const lapackint,
17376    n: *const lapackint,
17377    alpha: *const Complex32,
17378    A: *const Complex32,
17379    B: *mut Complex32,
17380    ldb: *const lapackint,
17381);
17382
17383define_lapack_ffi!(dtfsm, DtfsmFnPtr,
17384    transr: *const c_char,
17385    side: *const c_char,
17386    uplo: *const c_char,
17387    trans: *const c_char,
17388    diag: *const c_char,
17389    m: *const lapackint,
17390    n: *const lapackint,
17391    alpha: *const f64,
17392    A: *const f64,
17393    B: *mut f64,
17394    ldb: *const lapackint,
17395);
17396
17397define_lapack_ffi!(stfsm, StfsmFnPtr,
17398    transr: *const c_char,
17399    side: *const c_char,
17400    uplo: *const c_char,
17401    trans: *const c_char,
17402    diag: *const c_char,
17403    m: *const lapackint,
17404    n: *const lapackint,
17405    alpha: *const f32,
17406    A: *const f32,
17407    B: *mut f32,
17408    ldb: *const lapackint,
17409);
17410
17411define_lapack_ffi!(ztfsm, ZtfsmFnPtr,
17412    transr: *const c_char,
17413    side: *const c_char,
17414    uplo: *const c_char,
17415    trans: *const c_char,
17416    diag: *const c_char,
17417    m: *const lapackint,
17418    n: *const lapackint,
17419    alpha: *const Complex64,
17420    A: *const Complex64,
17421    B: *mut Complex64,
17422    ldb: *const lapackint,
17423);
17424
17425// TFTRI
17426define_lapack_ffi!(ctftri, CtftriFnPtr,
17427    transr: *const c_char,
17428    uplo: *const c_char,
17429    diag: *const c_char,
17430    n: *const lapackint,
17431    A: *mut Complex32,
17432    info: *mut lapackint,
17433);
17434
17435define_lapack_ffi!(dtftri, DtftriFnPtr,
17436    transr: *const c_char,
17437    uplo: *const c_char,
17438    diag: *const c_char,
17439    n: *const lapackint,
17440    A: *mut f64,
17441    info: *mut lapackint,
17442);
17443
17444define_lapack_ffi!(stftri, StftriFnPtr,
17445    transr: *const c_char,
17446    uplo: *const c_char,
17447    diag: *const c_char,
17448    n: *const lapackint,
17449    A: *mut f32,
17450    info: *mut lapackint,
17451);
17452
17453define_lapack_ffi!(ztftri, ZtftriFnPtr,
17454    transr: *const c_char,
17455    uplo: *const c_char,
17456    diag: *const c_char,
17457    n: *const lapackint,
17458    A: *mut Complex64,
17459    info: *mut lapackint,
17460);
17461
17462// TFTTP
17463define_lapack_ffi!(ctfttp, CtfttpFnPtr,
17464    transr: *const c_char,
17465    uplo: *const c_char,
17466    n: *const lapackint,
17467    ARF: *const Complex32,
17468    AP: *mut Complex32,
17469    info: *mut lapackint,
17470);
17471
17472define_lapack_ffi!(dtfttp, DtfttpFnPtr,
17473    transr: *const c_char,
17474    uplo: *const c_char,
17475    n: *const lapackint,
17476    ARF: *const f64,
17477    AP: *mut f64,
17478    info: *mut lapackint,
17479);
17480
17481define_lapack_ffi!(stfttp, StfttpFnPtr,
17482    transr: *const c_char,
17483    uplo: *const c_char,
17484    n: *const lapackint,
17485    ARF: *const f32,
17486    AP: *mut f32,
17487    info: *mut lapackint,
17488);
17489
17490define_lapack_ffi!(ztfttp, ZtfttpFnPtr,
17491    transr: *const c_char,
17492    uplo: *const c_char,
17493    n: *const lapackint,
17494    ARF: *const Complex64,
17495    AP: *mut Complex64,
17496    info: *mut lapackint,
17497);
17498
17499// TFTTR
17500define_lapack_ffi!(ctfttr, CtfttrFnPtr,
17501    transr: *const c_char,
17502    uplo: *const c_char,
17503    n: *const lapackint,
17504    ARF: *const Complex32,
17505    A: *mut Complex32,
17506    lda: *const lapackint,
17507    info: *mut lapackint,
17508);
17509
17510define_lapack_ffi!(dtfttr, DtfttrFnPtr,
17511    transr: *const c_char,
17512    uplo: *const c_char,
17513    n: *const lapackint,
17514    ARF: *const f64,
17515    A: *mut f64,
17516    lda: *const lapackint,
17517    info: *mut lapackint,
17518);
17519
17520define_lapack_ffi!(stfttr, StfttrFnPtr,
17521    transr: *const c_char,
17522    uplo: *const c_char,
17523    n: *const lapackint,
17524    ARF: *const f32,
17525    A: *mut f32,
17526    lda: *const lapackint,
17527    info: *mut lapackint,
17528);
17529
17530define_lapack_ffi!(ztfttr, ZtfttrFnPtr,
17531    transr: *const c_char,
17532    uplo: *const c_char,
17533    n: *const lapackint,
17534    ARF: *const Complex64,
17535    A: *mut Complex64,
17536    lda: *const lapackint,
17537    info: *mut lapackint,
17538);
17539
17540// TGEVC
17541define_lapack_ffi!(ctgevc, CtgevcFnPtr,
17542    side: *const c_char,
17543    howmny: *const c_char,
17544    select: *const lapackint,
17545    n: *const lapackint,
17546    S: *const Complex32,
17547    lds: *const lapackint,
17548    P: *const Complex32,
17549    ldp: *const lapackint,
17550    VL: *mut Complex32,
17551    ldvl: *const lapackint,
17552    VR: *mut Complex32,
17553    ldvr: *const lapackint,
17554    mm: *const lapackint,
17555    m: *mut lapackint,
17556    work: *mut Complex32,
17557    rwork: *mut f32,
17558    info: *mut lapackint,
17559);
17560
17561define_lapack_ffi!(dtgevc, DtgevcFnPtr,
17562    side: *const c_char,
17563    howmny: *const c_char,
17564    select: *const lapackint,
17565    n: *const lapackint,
17566    S: *const f64,
17567    lds: *const lapackint,
17568    P: *const f64,
17569    ldp: *const lapackint,
17570    VL: *mut f64,
17571    ldvl: *const lapackint,
17572    VR: *mut f64,
17573    ldvr: *const lapackint,
17574    mm: *const lapackint,
17575    m: *mut lapackint,
17576    work: *mut f64,
17577    info: *mut lapackint,
17578);
17579
17580define_lapack_ffi!(stgevc, StgevcFnPtr,
17581    side: *const c_char,
17582    howmny: *const c_char,
17583    select: *const lapackint,
17584    n: *const lapackint,
17585    S: *const f32,
17586    lds: *const lapackint,
17587    P: *const f32,
17588    ldp: *const lapackint,
17589    VL: *mut f32,
17590    ldvl: *const lapackint,
17591    VR: *mut f32,
17592    ldvr: *const lapackint,
17593    mm: *const lapackint,
17594    m: *mut lapackint,
17595    work: *mut f32,
17596    info: *mut lapackint,
17597);
17598
17599define_lapack_ffi!(ztgevc, ZtgevcFnPtr,
17600    side: *const c_char,
17601    howmny: *const c_char,
17602    select: *const lapackint,
17603    n: *const lapackint,
17604    S: *const Complex64,
17605    lds: *const lapackint,
17606    P: *const Complex64,
17607    ldp: *const lapackint,
17608    VL: *mut Complex64,
17609    ldvl: *const lapackint,
17610    VR: *mut Complex64,
17611    ldvr: *const lapackint,
17612    mm: *const lapackint,
17613    m: *mut lapackint,
17614    work: *mut Complex64,
17615    rwork: *mut f64,
17616    info: *mut lapackint,
17617);
17618
17619// TGEXC
17620define_lapack_ffi!(ctgexc, CtgexcFnPtr,
17621    wantq: *const lapackint,
17622    wantz: *const lapackint,
17623    n: *const lapackint,
17624    A: *mut Complex32,
17625    lda: *const lapackint,
17626    B: *mut Complex32,
17627    ldb: *const lapackint,
17628    Q: *mut Complex32,
17629    ldq: *const lapackint,
17630    Z: *mut Complex32,
17631    ldz: *const lapackint,
17632    ifst: *const lapackint,
17633    ilst: *mut lapackint,
17634    info: *mut lapackint,
17635);
17636
17637define_lapack_ffi!(dtgexc, DtgexcFnPtr,
17638    wantq: *const lapackint,
17639    wantz: *const lapackint,
17640    n: *const lapackint,
17641    A: *mut f64,
17642    lda: *const lapackint,
17643    B: *mut f64,
17644    ldb: *const lapackint,
17645    Q: *mut f64,
17646    ldq: *const lapackint,
17647    Z: *mut f64,
17648    ldz: *const lapackint,
17649    ifst: *mut lapackint,
17650    ilst: *mut lapackint,
17651    work: *mut f64,
17652    lwork: *const lapackint,
17653    info: *mut lapackint,
17654);
17655
17656define_lapack_ffi!(stgexc, StgexcFnPtr,
17657    wantq: *const lapackint,
17658    wantz: *const lapackint,
17659    n: *const lapackint,
17660    A: *mut f32,
17661    lda: *const lapackint,
17662    B: *mut f32,
17663    ldb: *const lapackint,
17664    Q: *mut f32,
17665    ldq: *const lapackint,
17666    Z: *mut f32,
17667    ldz: *const lapackint,
17668    ifst: *mut lapackint,
17669    ilst: *mut lapackint,
17670    work: *mut f32,
17671    lwork: *const lapackint,
17672    info: *mut lapackint,
17673);
17674
17675define_lapack_ffi!(ztgexc, ZtgexcFnPtr,
17676    wantq: *const lapackint,
17677    wantz: *const lapackint,
17678    n: *const lapackint,
17679    A: *mut Complex64,
17680    lda: *const lapackint,
17681    B: *mut Complex64,
17682    ldb: *const lapackint,
17683    Q: *mut Complex64,
17684    ldq: *const lapackint,
17685    Z: *mut Complex64,
17686    ldz: *const lapackint,
17687    ifst: *const lapackint,
17688    ilst: *mut lapackint,
17689    info: *mut lapackint,
17690);
17691
17692// TGSEN
17693define_lapack_ffi!(ctgsen, CtgsenFnPtr,
17694    ijob: *const lapackint,
17695    wantq: *const lapackint,
17696    wantz: *const lapackint,
17697    select: *const lapackint,
17698    n: *const lapackint,
17699    A: *mut Complex32,
17700    lda: *const lapackint,
17701    B: *mut Complex32,
17702    ldb: *const lapackint,
17703    alpha: *mut Complex32,
17704    beta: *mut Complex32,
17705    Q: *mut Complex32,
17706    ldq: *const lapackint,
17707    Z: *mut Complex32,
17708    ldz: *const lapackint,
17709    m: *mut lapackint,
17710    pl: *mut f32,
17711    pr: *mut f32,
17712    DIF: *mut f32,
17713    work: *mut Complex32,
17714    lwork: *const lapackint,
17715    iwork: *mut lapackint,
17716    liwork: *const lapackint,
17717    info: *mut lapackint,
17718);
17719
17720define_lapack_ffi!(dtgsen, DtgsenFnPtr,
17721    ijob: *const lapackint,
17722    wantq: *const lapackint,
17723    wantz: *const lapackint,
17724    select: *const lapackint,
17725    n: *const lapackint,
17726    A: *mut f64,
17727    lda: *const lapackint,
17728    B: *mut f64,
17729    ldb: *const lapackint,
17730    alphar: *mut f64,
17731    alphai: *mut f64,
17732    beta: *mut f64,
17733    Q: *mut f64,
17734    ldq: *const lapackint,
17735    Z: *mut f64,
17736    ldz: *const lapackint,
17737    m: *mut lapackint,
17738    pl: *mut f64,
17739    pr: *mut f64,
17740    DIF: *mut f64,
17741    work: *mut f64,
17742    lwork: *const lapackint,
17743    iwork: *mut lapackint,
17744    liwork: *const lapackint,
17745    info: *mut lapackint,
17746);
17747
17748define_lapack_ffi!(stgsen, StgsenFnPtr,
17749    ijob: *const lapackint,
17750    wantq: *const lapackint,
17751    wantz: *const lapackint,
17752    select: *const lapackint,
17753    n: *const lapackint,
17754    A: *mut f32,
17755    lda: *const lapackint,
17756    B: *mut f32,
17757    ldb: *const lapackint,
17758    alphar: *mut f32,
17759    alphai: *mut f32,
17760    beta: *mut f32,
17761    Q: *mut f32,
17762    ldq: *const lapackint,
17763    Z: *mut f32,
17764    ldz: *const lapackint,
17765    m: *mut lapackint,
17766    pl: *mut f32,
17767    pr: *mut f32,
17768    DIF: *mut f32,
17769    work: *mut f32,
17770    lwork: *const lapackint,
17771    iwork: *mut lapackint,
17772    liwork: *const lapackint,
17773    info: *mut lapackint,
17774);
17775
17776define_lapack_ffi!(ztgsen, ZtgsenFnPtr,
17777    ijob: *const lapackint,
17778    wantq: *const lapackint,
17779    wantz: *const lapackint,
17780    select: *const lapackint,
17781    n: *const lapackint,
17782    A: *mut Complex64,
17783    lda: *const lapackint,
17784    B: *mut Complex64,
17785    ldb: *const lapackint,
17786    alpha: *mut Complex64,
17787    beta: *mut Complex64,
17788    Q: *mut Complex64,
17789    ldq: *const lapackint,
17790    Z: *mut Complex64,
17791    ldz: *const lapackint,
17792    m: *mut lapackint,
17793    pl: *mut f64,
17794    pr: *mut f64,
17795    DIF: *mut f64,
17796    work: *mut Complex64,
17797    lwork: *const lapackint,
17798    iwork: *mut lapackint,
17799    liwork: *const lapackint,
17800    info: *mut lapackint,
17801);
17802
17803// TGSJA
17804define_lapack_ffi!(ctgsja, CtgsjaFnPtr,
17805    jobu: *const c_char,
17806    jobv: *const c_char,
17807    jobq: *const c_char,
17808    m: *const lapackint,
17809    p: *const lapackint,
17810    n: *const lapackint,
17811    k: *const lapackint,
17812    l: *const lapackint,
17813    A: *mut Complex32,
17814    lda: *const lapackint,
17815    B: *mut Complex32,
17816    ldb: *const lapackint,
17817    tola: *const f32,
17818    tolb: *const f32,
17819    alpha: *mut f32,
17820    beta: *mut f32,
17821    U: *mut Complex32,
17822    ldu: *const lapackint,
17823    V: *mut Complex32,
17824    ldv: *const lapackint,
17825    Q: *mut Complex32,
17826    ldq: *const lapackint,
17827    work: *mut Complex32,
17828    ncycle: *mut lapackint,
17829    info: *mut lapackint,
17830);
17831
17832define_lapack_ffi!(dtgsja, DtgsjaFnPtr,
17833    jobu: *const c_char,
17834    jobv: *const c_char,
17835    jobq: *const c_char,
17836    m: *const lapackint,
17837    p: *const lapackint,
17838    n: *const lapackint,
17839    k: *const lapackint,
17840    l: *const lapackint,
17841    A: *mut f64,
17842    lda: *const lapackint,
17843    B: *mut f64,
17844    ldb: *const lapackint,
17845    tola: *const f64,
17846    tolb: *const f64,
17847    alpha: *mut f64,
17848    beta: *mut f64,
17849    U: *mut f64,
17850    ldu: *const lapackint,
17851    V: *mut f64,
17852    ldv: *const lapackint,
17853    Q: *mut f64,
17854    ldq: *const lapackint,
17855    work: *mut f64,
17856    ncycle: *mut lapackint,
17857    info: *mut lapackint,
17858);
17859
17860define_lapack_ffi!(stgsja, StgsjaFnPtr,
17861    jobu: *const c_char,
17862    jobv: *const c_char,
17863    jobq: *const c_char,
17864    m: *const lapackint,
17865    p: *const lapackint,
17866    n: *const lapackint,
17867    k: *const lapackint,
17868    l: *const lapackint,
17869    A: *mut f32,
17870    lda: *const lapackint,
17871    B: *mut f32,
17872    ldb: *const lapackint,
17873    tola: *const f32,
17874    tolb: *const f32,
17875    alpha: *mut f32,
17876    beta: *mut f32,
17877    U: *mut f32,
17878    ldu: *const lapackint,
17879    V: *mut f32,
17880    ldv: *const lapackint,
17881    Q: *mut f32,
17882    ldq: *const lapackint,
17883    work: *mut f32,
17884    ncycle: *mut lapackint,
17885    info: *mut lapackint,
17886);
17887
17888define_lapack_ffi!(ztgsja, ZtgsjaFnPtr,
17889    jobu: *const c_char,
17890    jobv: *const c_char,
17891    jobq: *const c_char,
17892    m: *const lapackint,
17893    p: *const lapackint,
17894    n: *const lapackint,
17895    k: *const lapackint,
17896    l: *const lapackint,
17897    A: *mut Complex64,
17898    lda: *const lapackint,
17899    B: *mut Complex64,
17900    ldb: *const lapackint,
17901    tola: *const f64,
17902    tolb: *const f64,
17903    alpha: *mut f64,
17904    beta: *mut f64,
17905    U: *mut Complex64,
17906    ldu: *const lapackint,
17907    V: *mut Complex64,
17908    ldv: *const lapackint,
17909    Q: *mut Complex64,
17910    ldq: *const lapackint,
17911    work: *mut Complex64,
17912    ncycle: *mut lapackint,
17913    info: *mut lapackint,
17914);
17915
17916// TGSNA
17917define_lapack_ffi!(ctgsna, CtgsnaFnPtr,
17918    job: *const c_char,
17919    howmny: *const c_char,
17920    select: *const lapackint,
17921    n: *const lapackint,
17922    A: *const Complex32,
17923    lda: *const lapackint,
17924    B: *const Complex32,
17925    ldb: *const lapackint,
17926    VL: *const Complex32,
17927    ldvl: *const lapackint,
17928    VR: *const Complex32,
17929    ldvr: *const lapackint,
17930    S: *mut f32,
17931    DIF: *mut f32,
17932    mm: *const lapackint,
17933    m: *mut lapackint,
17934    work: *mut Complex32,
17935    lwork: *const lapackint,
17936    iwork: *mut lapackint,
17937    info: *mut lapackint,
17938);
17939
17940define_lapack_ffi!(dtgsna, DtgsnaFnPtr,
17941    job: *const c_char,
17942    howmny: *const c_char,
17943    select: *const lapackint,
17944    n: *const lapackint,
17945    A: *const f64,
17946    lda: *const lapackint,
17947    B: *const f64,
17948    ldb: *const lapackint,
17949    VL: *const f64,
17950    ldvl: *const lapackint,
17951    VR: *const f64,
17952    ldvr: *const lapackint,
17953    S: *mut f64,
17954    DIF: *mut f64,
17955    mm: *const lapackint,
17956    m: *mut lapackint,
17957    work: *mut f64,
17958    lwork: *const lapackint,
17959    iwork: *mut lapackint,
17960    info: *mut lapackint,
17961);
17962
17963define_lapack_ffi!(stgsna, StgsnaFnPtr,
17964    job: *const c_char,
17965    howmny: *const c_char,
17966    select: *const lapackint,
17967    n: *const lapackint,
17968    A: *const f32,
17969    lda: *const lapackint,
17970    B: *const f32,
17971    ldb: *const lapackint,
17972    VL: *const f32,
17973    ldvl: *const lapackint,
17974    VR: *const f32,
17975    ldvr: *const lapackint,
17976    S: *mut f32,
17977    DIF: *mut f32,
17978    mm: *const lapackint,
17979    m: *mut lapackint,
17980    work: *mut f32,
17981    lwork: *const lapackint,
17982    iwork: *mut lapackint,
17983    info: *mut lapackint,
17984);
17985
17986define_lapack_ffi!(ztgsna, ZtgsnaFnPtr,
17987    job: *const c_char,
17988    howmny: *const c_char,
17989    select: *const lapackint,
17990    n: *const lapackint,
17991    A: *const Complex64,
17992    lda: *const lapackint,
17993    B: *const Complex64,
17994    ldb: *const lapackint,
17995    VL: *const Complex64,
17996    ldvl: *const lapackint,
17997    VR: *const Complex64,
17998    ldvr: *const lapackint,
17999    S: *mut f64,
18000    DIF: *mut f64,
18001    mm: *const lapackint,
18002    m: *mut lapackint,
18003    work: *mut Complex64,
18004    lwork: *const lapackint,
18005    iwork: *mut lapackint,
18006    info: *mut lapackint,
18007);
18008
18009// TGSYL
18010define_lapack_ffi!(ctgsyl, CtgsylFnPtr,
18011    trans: *const c_char,
18012    ijob: *const lapackint,
18013    m: *const lapackint,
18014    n: *const lapackint,
18015    A: *const Complex32,
18016    lda: *const lapackint,
18017    B: *const Complex32,
18018    ldb: *const lapackint,
18019    C: *mut Complex32,
18020    ldc: *const lapackint,
18021    D: *const Complex32,
18022    ldd: *const lapackint,
18023    E: *const Complex32,
18024    lde: *const lapackint,
18025    F: *mut Complex32,
18026    ldf: *const lapackint,
18027    dif: *mut f32,
18028    scale: *mut f32,
18029    work: *mut Complex32,
18030    lwork: *const lapackint,
18031    iwork: *mut lapackint,
18032    info: *mut lapackint,
18033);
18034
18035define_lapack_ffi!(dtgsyl, DtgsylFnPtr,
18036    trans: *const c_char,
18037    ijob: *const lapackint,
18038    m: *const lapackint,
18039    n: *const lapackint,
18040    A: *const f64,
18041    lda: *const lapackint,
18042    B: *const f64,
18043    ldb: *const lapackint,
18044    C: *mut f64,
18045    ldc: *const lapackint,
18046    D: *const f64,
18047    ldd: *const lapackint,
18048    E: *const f64,
18049    lde: *const lapackint,
18050    F: *mut f64,
18051    ldf: *const lapackint,
18052    dif: *mut f64,
18053    scale: *mut f64,
18054    work: *mut f64,
18055    lwork: *const lapackint,
18056    iwork: *mut lapackint,
18057    info: *mut lapackint,
18058);
18059
18060define_lapack_ffi!(stgsyl, StgsylFnPtr,
18061    trans: *const c_char,
18062    ijob: *const lapackint,
18063    m: *const lapackint,
18064    n: *const lapackint,
18065    A: *const f32,
18066    lda: *const lapackint,
18067    B: *const f32,
18068    ldb: *const lapackint,
18069    C: *mut f32,
18070    ldc: *const lapackint,
18071    D: *const f32,
18072    ldd: *const lapackint,
18073    E: *const f32,
18074    lde: *const lapackint,
18075    F: *mut f32,
18076    ldf: *const lapackint,
18077    dif: *mut f32,
18078    scale: *mut f32,
18079    work: *mut f32,
18080    lwork: *const lapackint,
18081    iwork: *mut lapackint,
18082    info: *mut lapackint,
18083);
18084
18085define_lapack_ffi!(ztgsyl, ZtgsylFnPtr,
18086    trans: *const c_char,
18087    ijob: *const lapackint,
18088    m: *const lapackint,
18089    n: *const lapackint,
18090    A: *const Complex64,
18091    lda: *const lapackint,
18092    B: *const Complex64,
18093    ldb: *const lapackint,
18094    C: *mut Complex64,
18095    ldc: *const lapackint,
18096    D: *const Complex64,
18097    ldd: *const lapackint,
18098    E: *const Complex64,
18099    lde: *const lapackint,
18100    F: *mut Complex64,
18101    ldf: *const lapackint,
18102    dif: *mut f64,
18103    scale: *mut f64,
18104    work: *mut Complex64,
18105    lwork: *const lapackint,
18106    iwork: *mut lapackint,
18107    info: *mut lapackint,
18108);
18109
18110// TPCON
18111define_lapack_ffi!(ctpcon, CtpconFnPtr,
18112    norm: *const c_char,
18113    uplo: *const c_char,
18114    diag: *const c_char,
18115    n: *const lapackint,
18116    AP: *const Complex32,
18117    rcond: *mut f32,
18118    work: *mut Complex32,
18119    rwork: *mut f32,
18120    info: *mut lapackint,
18121);
18122
18123define_lapack_ffi!(dtpcon, DtpconFnPtr,
18124    norm: *const c_char,
18125    uplo: *const c_char,
18126    diag: *const c_char,
18127    n: *const lapackint,
18128    AP: *const f64,
18129    rcond: *mut f64,
18130    work: *mut f64,
18131    iwork: *mut lapackint,
18132    info: *mut lapackint,
18133);
18134
18135define_lapack_ffi!(stpcon, StpconFnPtr,
18136    norm: *const c_char,
18137    uplo: *const c_char,
18138    diag: *const c_char,
18139    n: *const lapackint,
18140    AP: *const f32,
18141    rcond: *mut f32,
18142    work: *mut f32,
18143    iwork: *mut lapackint,
18144    info: *mut lapackint,
18145);
18146
18147define_lapack_ffi!(ztpcon, ZtpconFnPtr,
18148    norm: *const c_char,
18149    uplo: *const c_char,
18150    diag: *const c_char,
18151    n: *const lapackint,
18152    AP: *const Complex64,
18153    rcond: *mut f64,
18154    work: *mut Complex64,
18155    rwork: *mut f64,
18156    info: *mut lapackint,
18157);
18158
18159// TPLQT
18160define_lapack_ffi!(ctplqt, CtplqtFnPtr,
18161    m: *const lapackint,
18162    n: *const lapackint,
18163    l: *const lapackint,
18164    mb: *const lapackint,
18165    A: *mut Complex32,
18166    lda: *const lapackint,
18167    B: *mut Complex32,
18168    ldb: *const lapackint,
18169    T: *mut Complex32,
18170    ldt: *const lapackint,
18171    work: *mut Complex32,
18172    info: *mut lapackint,
18173);
18174
18175define_lapack_ffi!(dtplqt, DtplqtFnPtr,
18176    m: *const lapackint,
18177    n: *const lapackint,
18178    l: *const lapackint,
18179    mb: *const lapackint,
18180    A: *mut f64,
18181    lda: *const lapackint,
18182    B: *mut f64,
18183    ldb: *const lapackint,
18184    T: *mut f64,
18185    ldt: *const lapackint,
18186    work: *mut f64,
18187    info: *mut lapackint,
18188);
18189
18190define_lapack_ffi!(stplqt, StplqtFnPtr,
18191    m: *const lapackint,
18192    n: *const lapackint,
18193    l: *const lapackint,
18194    mb: *const lapackint,
18195    A: *mut f32,
18196    lda: *const lapackint,
18197    B: *mut f32,
18198    ldb: *const lapackint,
18199    T: *mut f32,
18200    ldt: *const lapackint,
18201    work: *mut f32,
18202    info: *mut lapackint,
18203);
18204
18205define_lapack_ffi!(ztplqt, ZtplqtFnPtr,
18206    m: *const lapackint,
18207    n: *const lapackint,
18208    l: *const lapackint,
18209    mb: *const lapackint,
18210    A: *mut Complex64,
18211    lda: *const lapackint,
18212    B: *mut Complex64,
18213    ldb: *const lapackint,
18214    T: *mut Complex64,
18215    ldt: *const lapackint,
18216    work: *mut Complex64,
18217    info: *mut lapackint,
18218);
18219
18220// TPLQT2
18221define_lapack_ffi!(ctplqt2, Ctplqt2FnPtr,
18222    m: *const lapackint,
18223    n: *const lapackint,
18224    l: *const lapackint,
18225    A: *mut Complex32,
18226    lda: *const lapackint,
18227    B: *mut Complex32,
18228    ldb: *const lapackint,
18229    T: *mut Complex32,
18230    ldt: *const lapackint,
18231    info: *mut lapackint,
18232);
18233
18234define_lapack_ffi!(dtplqt2, Dtplqt2FnPtr,
18235    m: *const lapackint,
18236    n: *const lapackint,
18237    l: *const lapackint,
18238    A: *mut f64,
18239    lda: *const lapackint,
18240    B: *mut f64,
18241    ldb: *const lapackint,
18242    T: *mut f64,
18243    ldt: *const lapackint,
18244    info: *mut lapackint,
18245);
18246
18247define_lapack_ffi!(stplqt2, Stplqt2FnPtr,
18248    m: *const lapackint,
18249    n: *const lapackint,
18250    l: *const lapackint,
18251    A: *mut f32,
18252    lda: *const lapackint,
18253    B: *mut f32,
18254    ldb: *const lapackint,
18255    T: *mut f32,
18256    ldt: *const lapackint,
18257    info: *mut lapackint,
18258);
18259
18260define_lapack_ffi!(ztplqt2, Ztplqt2FnPtr,
18261    m: *const lapackint,
18262    n: *const lapackint,
18263    l: *const lapackint,
18264    A: *mut Complex64,
18265    lda: *const lapackint,
18266    B: *mut Complex64,
18267    ldb: *const lapackint,
18268    T: *mut Complex64,
18269    ldt: *const lapackint,
18270    info: *mut lapackint,
18271);
18272
18273// TPMLQT
18274define_lapack_ffi!(ctpmlqt, CtpmlqtFnPtr,
18275    side: *const c_char,
18276    trans: *const c_char,
18277    m: *const lapackint,
18278    n: *const lapackint,
18279    k: *const lapackint,
18280    l: *const lapackint,
18281    mb: *const lapackint,
18282    V: *const Complex32,
18283    ldv: *const lapackint,
18284    T: *const Complex32,
18285    ldt: *const lapackint,
18286    A: *mut Complex32,
18287    lda: *const lapackint,
18288    B: *mut Complex32,
18289    ldb: *const lapackint,
18290    work: *mut Complex32,
18291    info: *mut lapackint,
18292);
18293
18294define_lapack_ffi!(dtpmlqt, DtpmlqtFnPtr,
18295    side: *const c_char,
18296    trans: *const c_char,
18297    m: *const lapackint,
18298    n: *const lapackint,
18299    k: *const lapackint,
18300    l: *const lapackint,
18301    mb: *const lapackint,
18302    V: *const f64,
18303    ldv: *const lapackint,
18304    T: *const f64,
18305    ldt: *const lapackint,
18306    A: *mut f64,
18307    lda: *const lapackint,
18308    B: *mut f64,
18309    ldb: *const lapackint,
18310    work: *mut f64,
18311    info: *mut lapackint,
18312);
18313
18314define_lapack_ffi!(stpmlqt, StpmlqtFnPtr,
18315    side: *const c_char,
18316    trans: *const c_char,
18317    m: *const lapackint,
18318    n: *const lapackint,
18319    k: *const lapackint,
18320    l: *const lapackint,
18321    mb: *const lapackint,
18322    V: *const f32,
18323    ldv: *const lapackint,
18324    T: *const f32,
18325    ldt: *const lapackint,
18326    A: *mut f32,
18327    lda: *const lapackint,
18328    B: *mut f32,
18329    ldb: *const lapackint,
18330    work: *mut f32,
18331    info: *mut lapackint,
18332);
18333
18334define_lapack_ffi!(ztpmlqt, ZtpmlqtFnPtr,
18335    side: *const c_char,
18336    trans: *const c_char,
18337    m: *const lapackint,
18338    n: *const lapackint,
18339    k: *const lapackint,
18340    l: *const lapackint,
18341    mb: *const lapackint,
18342    V: *const Complex64,
18343    ldv: *const lapackint,
18344    T: *const Complex64,
18345    ldt: *const lapackint,
18346    A: *mut Complex64,
18347    lda: *const lapackint,
18348    B: *mut Complex64,
18349    ldb: *const lapackint,
18350    work: *mut Complex64,
18351    info: *mut lapackint,
18352);
18353
18354// TPMQRT
18355define_lapack_ffi!(ctpmqrt, CtpmqrtFnPtr,
18356    side: *const c_char,
18357    trans: *const c_char,
18358    m: *const lapackint,
18359    n: *const lapackint,
18360    k: *const lapackint,
18361    l: *const lapackint,
18362    nb: *const lapackint,
18363    V: *const Complex32,
18364    ldv: *const lapackint,
18365    T: *const Complex32,
18366    ldt: *const lapackint,
18367    A: *mut Complex32,
18368    lda: *const lapackint,
18369    B: *mut Complex32,
18370    ldb: *const lapackint,
18371    work: *mut Complex32,
18372    info: *mut lapackint,
18373);
18374
18375define_lapack_ffi!(dtpmqrt, DtpmqrtFnPtr,
18376    side: *const c_char,
18377    trans: *const c_char,
18378    m: *const lapackint,
18379    n: *const lapackint,
18380    k: *const lapackint,
18381    l: *const lapackint,
18382    nb: *const lapackint,
18383    V: *const f64,
18384    ldv: *const lapackint,
18385    T: *const f64,
18386    ldt: *const lapackint,
18387    A: *mut f64,
18388    lda: *const lapackint,
18389    B: *mut f64,
18390    ldb: *const lapackint,
18391    work: *mut f64,
18392    info: *mut lapackint,
18393);
18394
18395define_lapack_ffi!(stpmqrt, StpmqrtFnPtr,
18396    side: *const c_char,
18397    trans: *const c_char,
18398    m: *const lapackint,
18399    n: *const lapackint,
18400    k: *const lapackint,
18401    l: *const lapackint,
18402    nb: *const lapackint,
18403    V: *const f32,
18404    ldv: *const lapackint,
18405    T: *const f32,
18406    ldt: *const lapackint,
18407    A: *mut f32,
18408    lda: *const lapackint,
18409    B: *mut f32,
18410    ldb: *const lapackint,
18411    work: *mut f32,
18412    info: *mut lapackint,
18413);
18414
18415define_lapack_ffi!(ztpmqrt, ZtpmqrtFnPtr,
18416    side: *const c_char,
18417    trans: *const c_char,
18418    m: *const lapackint,
18419    n: *const lapackint,
18420    k: *const lapackint,
18421    l: *const lapackint,
18422    nb: *const lapackint,
18423    V: *const Complex64,
18424    ldv: *const lapackint,
18425    T: *const Complex64,
18426    ldt: *const lapackint,
18427    A: *mut Complex64,
18428    lda: *const lapackint,
18429    B: *mut Complex64,
18430    ldb: *const lapackint,
18431    work: *mut Complex64,
18432    info: *mut lapackint,
18433);
18434
18435// TPQRT
18436define_lapack_ffi!(ctpqrt, CtpqrtFnPtr,
18437    m: *const lapackint,
18438    n: *const lapackint,
18439    l: *const lapackint,
18440    nb: *const lapackint,
18441    A: *mut Complex32,
18442    lda: *const lapackint,
18443    B: *mut Complex32,
18444    ldb: *const lapackint,
18445    T: *mut Complex32,
18446    ldt: *const lapackint,
18447    work: *mut Complex32,
18448    info: *mut lapackint,
18449);
18450
18451define_lapack_ffi!(dtpqrt, DtpqrtFnPtr,
18452    m: *const lapackint,
18453    n: *const lapackint,
18454    l: *const lapackint,
18455    nb: *const lapackint,
18456    A: *mut f64,
18457    lda: *const lapackint,
18458    B: *mut f64,
18459    ldb: *const lapackint,
18460    T: *mut f64,
18461    ldt: *const lapackint,
18462    work: *mut f64,
18463    info: *mut lapackint,
18464);
18465
18466define_lapack_ffi!(stpqrt, StpqrtFnPtr,
18467    m: *const lapackint,
18468    n: *const lapackint,
18469    l: *const lapackint,
18470    nb: *const lapackint,
18471    A: *mut f32,
18472    lda: *const lapackint,
18473    B: *mut f32,
18474    ldb: *const lapackint,
18475    T: *mut f32,
18476    ldt: *const lapackint,
18477    work: *mut f32,
18478    info: *mut lapackint,
18479);
18480
18481define_lapack_ffi!(ztpqrt, ZtpqrtFnPtr,
18482    m: *const lapackint,
18483    n: *const lapackint,
18484    l: *const lapackint,
18485    nb: *const lapackint,
18486    A: *mut Complex64,
18487    lda: *const lapackint,
18488    B: *mut Complex64,
18489    ldb: *const lapackint,
18490    T: *mut Complex64,
18491    ldt: *const lapackint,
18492    work: *mut Complex64,
18493    info: *mut lapackint,
18494);
18495
18496// TPQRT2
18497define_lapack_ffi!(ctpqrt2, Ctpqrt2FnPtr,
18498    m: *const lapackint,
18499    n: *const lapackint,
18500    l: *const lapackint,
18501    A: *mut Complex32,
18502    lda: *const lapackint,
18503    B: *mut Complex32,
18504    ldb: *const lapackint,
18505    T: *mut Complex32,
18506    ldt: *const lapackint,
18507    info: *mut lapackint,
18508);
18509
18510define_lapack_ffi!(dtpqrt2, Dtpqrt2FnPtr,
18511    m: *const lapackint,
18512    n: *const lapackint,
18513    l: *const lapackint,
18514    A: *mut f64,
18515    lda: *const lapackint,
18516    B: *mut f64,
18517    ldb: *const lapackint,
18518    T: *mut f64,
18519    ldt: *const lapackint,
18520    info: *mut lapackint,
18521);
18522
18523define_lapack_ffi!(stpqrt2, Stpqrt2FnPtr,
18524    m: *const lapackint,
18525    n: *const lapackint,
18526    l: *const lapackint,
18527    A: *mut f32,
18528    lda: *const lapackint,
18529    B: *mut f32,
18530    ldb: *const lapackint,
18531    T: *mut f32,
18532    ldt: *const lapackint,
18533    info: *mut lapackint,
18534);
18535
18536define_lapack_ffi!(ztpqrt2, Ztpqrt2FnPtr,
18537    m: *const lapackint,
18538    n: *const lapackint,
18539    l: *const lapackint,
18540    A: *mut Complex64,
18541    lda: *const lapackint,
18542    B: *mut Complex64,
18543    ldb: *const lapackint,
18544    T: *mut Complex64,
18545    ldt: *const lapackint,
18546    info: *mut lapackint,
18547);
18548
18549// TPRFB
18550define_lapack_ffi!(ctprfb, CtprfbFnPtr,
18551    side: *const c_char,
18552    trans: *const c_char,
18553    direct: *const c_char,
18554    storev: *const c_char,
18555    m: *const lapackint,
18556    n: *const lapackint,
18557    k: *const lapackint,
18558    l: *const lapackint,
18559    V: *const Complex32,
18560    ldv: *const lapackint,
18561    T: *const Complex32,
18562    ldt: *const lapackint,
18563    A: *mut Complex32,
18564    lda: *const lapackint,
18565    B: *mut Complex32,
18566    ldb: *const lapackint,
18567    work: *mut Complex32,
18568    ldwork: *const lapackint,
18569);
18570
18571define_lapack_ffi!(dtprfb, DtprfbFnPtr,
18572    side: *const c_char,
18573    trans: *const c_char,
18574    direct: *const c_char,
18575    storev: *const c_char,
18576    m: *const lapackint,
18577    n: *const lapackint,
18578    k: *const lapackint,
18579    l: *const lapackint,
18580    V: *const f64,
18581    ldv: *const lapackint,
18582    T: *const f64,
18583    ldt: *const lapackint,
18584    A: *mut f64,
18585    lda: *const lapackint,
18586    B: *mut f64,
18587    ldb: *const lapackint,
18588    work: *mut f64,
18589    ldwork: *const lapackint,
18590);
18591
18592define_lapack_ffi!(stprfb, StprfbFnPtr,
18593    side: *const c_char,
18594    trans: *const c_char,
18595    direct: *const c_char,
18596    storev: *const c_char,
18597    m: *const lapackint,
18598    n: *const lapackint,
18599    k: *const lapackint,
18600    l: *const lapackint,
18601    V: *const f32,
18602    ldv: *const lapackint,
18603    T: *const f32,
18604    ldt: *const lapackint,
18605    A: *mut f32,
18606    lda: *const lapackint,
18607    B: *mut f32,
18608    ldb: *const lapackint,
18609    work: *mut f32,
18610    ldwork: *const lapackint,
18611);
18612
18613define_lapack_ffi!(ztprfb, ZtprfbFnPtr,
18614    side: *const c_char,
18615    trans: *const c_char,
18616    direct: *const c_char,
18617    storev: *const c_char,
18618    m: *const lapackint,
18619    n: *const lapackint,
18620    k: *const lapackint,
18621    l: *const lapackint,
18622    V: *const Complex64,
18623    ldv: *const lapackint,
18624    T: *const Complex64,
18625    ldt: *const lapackint,
18626    A: *mut Complex64,
18627    lda: *const lapackint,
18628    B: *mut Complex64,
18629    ldb: *const lapackint,
18630    work: *mut Complex64,
18631    ldwork: *const lapackint,
18632);
18633
18634// TPRFS
18635define_lapack_ffi!(ctprfs, CtprfsFnPtr,
18636    uplo: *const c_char,
18637    trans: *const c_char,
18638    diag: *const c_char,
18639    n: *const lapackint,
18640    nrhs: *const lapackint,
18641    AP: *const Complex32,
18642    B: *const Complex32,
18643    ldb: *const lapackint,
18644    X: *const Complex32,
18645    ldx: *const lapackint,
18646    ferr: *mut f32,
18647    berr: *mut f32,
18648    work: *mut Complex32,
18649    rwork: *mut f32,
18650    info: *mut lapackint,
18651);
18652
18653define_lapack_ffi!(dtprfs, DtprfsFnPtr,
18654    uplo: *const c_char,
18655    trans: *const c_char,
18656    diag: *const c_char,
18657    n: *const lapackint,
18658    nrhs: *const lapackint,
18659    AP: *const f64,
18660    B: *const f64,
18661    ldb: *const lapackint,
18662    X: *const f64,
18663    ldx: *const lapackint,
18664    ferr: *mut f64,
18665    berr: *mut f64,
18666    work: *mut f64,
18667    iwork: *mut lapackint,
18668    info: *mut lapackint,
18669);
18670
18671define_lapack_ffi!(stprfs, StprfsFnPtr,
18672    uplo: *const c_char,
18673    trans: *const c_char,
18674    diag: *const c_char,
18675    n: *const lapackint,
18676    nrhs: *const lapackint,
18677    AP: *const f32,
18678    B: *const f32,
18679    ldb: *const lapackint,
18680    X: *const f32,
18681    ldx: *const lapackint,
18682    ferr: *mut f32,
18683    berr: *mut f32,
18684    work: *mut f32,
18685    iwork: *mut lapackint,
18686    info: *mut lapackint,
18687);
18688
18689define_lapack_ffi!(ztprfs, ZtprfsFnPtr,
18690    uplo: *const c_char,
18691    trans: *const c_char,
18692    diag: *const c_char,
18693    n: *const lapackint,
18694    nrhs: *const lapackint,
18695    AP: *const Complex64,
18696    B: *const Complex64,
18697    ldb: *const lapackint,
18698    X: *const Complex64,
18699    ldx: *const lapackint,
18700    ferr: *mut f64,
18701    berr: *mut f64,
18702    work: *mut Complex64,
18703    rwork: *mut f64,
18704    info: *mut lapackint,
18705);
18706
18707// TPTRI
18708define_lapack_ffi!(ctptri, CtptriFnPtr,
18709    uplo: *const c_char,
18710    diag: *const c_char,
18711    n: *const lapackint,
18712    AP: *mut Complex32,
18713    info: *mut lapackint,
18714);
18715
18716define_lapack_ffi!(dtptri, DtptriFnPtr,
18717    uplo: *const c_char,
18718    diag: *const c_char,
18719    n: *const lapackint,
18720    AP: *mut f64,
18721    info: *mut lapackint,
18722);
18723
18724define_lapack_ffi!(stptri, StptriFnPtr,
18725    uplo: *const c_char,
18726    diag: *const c_char,
18727    n: *const lapackint,
18728    AP: *mut f32,
18729    info: *mut lapackint,
18730);
18731
18732define_lapack_ffi!(ztptri, ZtptriFnPtr,
18733    uplo: *const c_char,
18734    diag: *const c_char,
18735    n: *const lapackint,
18736    AP: *mut Complex64,
18737    info: *mut lapackint,
18738);
18739
18740// TPTRS
18741define_lapack_ffi!(ctptrs, CtptrsFnPtr,
18742    uplo: *const c_char,
18743    trans: *const c_char,
18744    diag: *const c_char,
18745    n: *const lapackint,
18746    nrhs: *const lapackint,
18747    AP: *const Complex32,
18748    B: *mut Complex32,
18749    ldb: *const lapackint,
18750    info: *mut lapackint,
18751);
18752
18753define_lapack_ffi!(dtptrs, DtptrsFnPtr,
18754    uplo: *const c_char,
18755    trans: *const c_char,
18756    diag: *const c_char,
18757    n: *const lapackint,
18758    nrhs: *const lapackint,
18759    AP: *const f64,
18760    B: *mut f64,
18761    ldb: *const lapackint,
18762    info: *mut lapackint,
18763);
18764
18765define_lapack_ffi!(stptrs, StptrsFnPtr,
18766    uplo: *const c_char,
18767    trans: *const c_char,
18768    diag: *const c_char,
18769    n: *const lapackint,
18770    nrhs: *const lapackint,
18771    AP: *const f32,
18772    B: *mut f32,
18773    ldb: *const lapackint,
18774    info: *mut lapackint,
18775);
18776
18777define_lapack_ffi!(ztptrs, ZtptrsFnPtr,
18778    uplo: *const c_char,
18779    trans: *const c_char,
18780    diag: *const c_char,
18781    n: *const lapackint,
18782    nrhs: *const lapackint,
18783    AP: *const Complex64,
18784    B: *mut Complex64,
18785    ldb: *const lapackint,
18786    info: *mut lapackint,
18787);
18788
18789// TPTTF
18790define_lapack_ffi!(ctpttf, CtpttfFnPtr,
18791    transr: *const c_char,
18792    uplo: *const c_char,
18793    n: *const lapackint,
18794    AP: *const Complex32,
18795    ARF: *mut Complex32,
18796    info: *mut lapackint,
18797);
18798
18799define_lapack_ffi!(dtpttf, DtpttfFnPtr,
18800    transr: *const c_char,
18801    uplo: *const c_char,
18802    n: *const lapackint,
18803    AP: *const f64,
18804    ARF: *mut f64,
18805    info: *mut lapackint,
18806);
18807
18808define_lapack_ffi!(stpttf, StpttfFnPtr,
18809    transr: *const c_char,
18810    uplo: *const c_char,
18811    n: *const lapackint,
18812    AP: *const f32,
18813    ARF: *mut f32,
18814    info: *mut lapackint,
18815);
18816
18817define_lapack_ffi!(ztpttf, ZtpttfFnPtr,
18818    transr: *const c_char,
18819    uplo: *const c_char,
18820    n: *const lapackint,
18821    AP: *const Complex64,
18822    ARF: *mut Complex64,
18823    info: *mut lapackint,
18824);
18825
18826// TPTTR
18827define_lapack_ffi!(ctpttr, CtpttrFnPtr,
18828    uplo: *const c_char,
18829    n: *const lapackint,
18830    AP: *const Complex32,
18831    A: *mut Complex32,
18832    lda: *const lapackint,
18833    info: *mut lapackint,
18834);
18835
18836define_lapack_ffi!(dtpttr, DtpttrFnPtr,
18837    uplo: *const c_char,
18838    n: *const lapackint,
18839    AP: *const f64,
18840    A: *mut f64,
18841    lda: *const lapackint,
18842    info: *mut lapackint,
18843);
18844
18845define_lapack_ffi!(stpttr, StpttrFnPtr,
18846    uplo: *const c_char,
18847    n: *const lapackint,
18848    AP: *const f32,
18849    A: *mut f32,
18850    lda: *const lapackint,
18851    info: *mut lapackint,
18852);
18853
18854define_lapack_ffi!(ztpttr, ZtpttrFnPtr,
18855    uplo: *const c_char,
18856    n: *const lapackint,
18857    AP: *const Complex64,
18858    A: *mut Complex64,
18859    lda: *const lapackint,
18860    info: *mut lapackint,
18861);
18862
18863// TRCON
18864define_lapack_ffi!(ctrcon, CtrconFnPtr,
18865    norm: *const c_char,
18866    uplo: *const c_char,
18867    diag: *const c_char,
18868    n: *const lapackint,
18869    A: *const Complex32,
18870    lda: *const lapackint,
18871    rcond: *mut f32,
18872    work: *mut Complex32,
18873    rwork: *mut f32,
18874    info: *mut lapackint,
18875);
18876
18877define_lapack_ffi!(dtrcon, DtrconFnPtr,
18878    norm: *const c_char,
18879    uplo: *const c_char,
18880    diag: *const c_char,
18881    n: *const lapackint,
18882    A: *const f64,
18883    lda: *const lapackint,
18884    rcond: *mut f64,
18885    work: *mut f64,
18886    iwork: *mut lapackint,
18887    info: *mut lapackint,
18888);
18889
18890define_lapack_ffi!(strcon, StrconFnPtr,
18891    norm: *const c_char,
18892    uplo: *const c_char,
18893    diag: *const c_char,
18894    n: *const lapackint,
18895    A: *const f32,
18896    lda: *const lapackint,
18897    rcond: *mut f32,
18898    work: *mut f32,
18899    iwork: *mut lapackint,
18900    info: *mut lapackint,
18901);
18902
18903define_lapack_ffi!(ztrcon, ZtrconFnPtr,
18904    norm: *const c_char,
18905    uplo: *const c_char,
18906    diag: *const c_char,
18907    n: *const lapackint,
18908    A: *const Complex64,
18909    lda: *const lapackint,
18910    rcond: *mut f64,
18911    work: *mut Complex64,
18912    rwork: *mut f64,
18913    info: *mut lapackint,
18914);
18915
18916// TREVC
18917define_lapack_ffi!(ctrevc, CtrevcFnPtr,
18918    side: *const c_char,
18919    howmny: *const c_char,
18920    select: *const lapackint,
18921    n: *const lapackint,
18922    T: *mut Complex32,
18923    ldt: *const lapackint,
18924    VL: *mut Complex32,
18925    ldvl: *const lapackint,
18926    VR: *mut Complex32,
18927    ldvr: *const lapackint,
18928    mm: *const lapackint,
18929    m: *mut lapackint,
18930    work: *mut Complex32,
18931    rwork: *mut f32,
18932    info: *mut lapackint,
18933);
18934
18935define_lapack_ffi!(dtrevc, DtrevcFnPtr,
18936    side: *const c_char,
18937    howmny: *const c_char,
18938    select: *mut lapackint,
18939    n: *const lapackint,
18940    T: *const f64,
18941    ldt: *const lapackint,
18942    VL: *mut f64,
18943    ldvl: *const lapackint,
18944    VR: *mut f64,
18945    ldvr: *const lapackint,
18946    mm: *const lapackint,
18947    m: *mut lapackint,
18948    work: *mut f64,
18949    info: *mut lapackint,
18950);
18951
18952define_lapack_ffi!(strevc, StrevcFnPtr,
18953    side: *const c_char,
18954    howmny: *const c_char,
18955    select: *mut lapackint,
18956    n: *const lapackint,
18957    T: *const f32,
18958    ldt: *const lapackint,
18959    VL: *mut f32,
18960    ldvl: *const lapackint,
18961    VR: *mut f32,
18962    ldvr: *const lapackint,
18963    mm: *const lapackint,
18964    m: *mut lapackint,
18965    work: *mut f32,
18966    info: *mut lapackint,
18967);
18968
18969define_lapack_ffi!(ztrevc, ZtrevcFnPtr,
18970    side: *const c_char,
18971    howmny: *const c_char,
18972    select: *const lapackint,
18973    n: *const lapackint,
18974    T: *mut Complex64,
18975    ldt: *const lapackint,
18976    VL: *mut Complex64,
18977    ldvl: *const lapackint,
18978    VR: *mut Complex64,
18979    ldvr: *const lapackint,
18980    mm: *const lapackint,
18981    m: *mut lapackint,
18982    work: *mut Complex64,
18983    rwork: *mut f64,
18984    info: *mut lapackint,
18985);
18986
18987// TREVC3
18988define_lapack_ffi!(ctrevc3, Ctrevc3FnPtr,
18989    side: *const c_char,
18990    howmny: *const c_char,
18991    select: *const lapackint,
18992    n: *const lapackint,
18993    T: *mut Complex32,
18994    ldt: *const lapackint,
18995    VL: *mut Complex32,
18996    ldvl: *const lapackint,
18997    VR: *mut Complex32,
18998    ldvr: *const lapackint,
18999    mm: *const lapackint,
19000    m: *mut lapackint,
19001    work: *mut Complex32,
19002    lwork: *const lapackint,
19003    rwork: *mut f32,
19004    lrwork: *const lapackint,
19005    info: *mut lapackint,
19006);
19007
19008define_lapack_ffi!(dtrevc3, Dtrevc3FnPtr,
19009    side: *const c_char,
19010    howmny: *const c_char,
19011    select: *mut lapackint,
19012    n: *const lapackint,
19013    T: *const f64,
19014    ldt: *const lapackint,
19015    VL: *mut f64,
19016    ldvl: *const lapackint,
19017    VR: *mut f64,
19018    ldvr: *const lapackint,
19019    mm: *const lapackint,
19020    m: *mut lapackint,
19021    work: *mut f64,
19022    lwork: *const lapackint,
19023    info: *mut lapackint,
19024);
19025
19026define_lapack_ffi!(strevc3, Strevc3FnPtr,
19027    side: *const c_char,
19028    howmny: *const c_char,
19029    select: *mut lapackint,
19030    n: *const lapackint,
19031    T: *const f32,
19032    ldt: *const lapackint,
19033    VL: *mut f32,
19034    ldvl: *const lapackint,
19035    VR: *mut f32,
19036    ldvr: *const lapackint,
19037    mm: *const lapackint,
19038    m: *mut lapackint,
19039    work: *mut f32,
19040    lwork: *const lapackint,
19041    info: *mut lapackint,
19042);
19043
19044define_lapack_ffi!(ztrevc3, Ztrevc3FnPtr,
19045    side: *const c_char,
19046    howmny: *const c_char,
19047    select: *const lapackint,
19048    n: *const lapackint,
19049    T: *mut Complex64,
19050    ldt: *const lapackint,
19051    VL: *mut Complex64,
19052    ldvl: *const lapackint,
19053    VR: *mut Complex64,
19054    ldvr: *const lapackint,
19055    mm: *const lapackint,
19056    m: *mut lapackint,
19057    work: *mut Complex64,
19058    lwork: *const lapackint,
19059    rwork: *mut f64,
19060    lrwork: *const lapackint,
19061    info: *mut lapackint,
19062);
19063
19064// TREXC
19065define_lapack_ffi!(ctrexc, CtrexcFnPtr,
19066    compq: *const c_char,
19067    n: *const lapackint,
19068    T: *mut Complex32,
19069    ldt: *const lapackint,
19070    Q: *mut Complex32,
19071    ldq: *const lapackint,
19072    ifst: *const lapackint,
19073    ilst: *const lapackint,
19074    info: *mut lapackint,
19075);
19076
19077define_lapack_ffi!(dtrexc, DtrexcFnPtr,
19078    compq: *const c_char,
19079    n: *const lapackint,
19080    T: *mut f64,
19081    ldt: *const lapackint,
19082    Q: *mut f64,
19083    ldq: *const lapackint,
19084    ifst: *mut lapackint,
19085    ilst: *mut lapackint,
19086    work: *mut f64,
19087    info: *mut lapackint,
19088);
19089
19090define_lapack_ffi!(strexc, StrexcFnPtr,
19091    compq: *const c_char,
19092    n: *const lapackint,
19093    T: *mut f32,
19094    ldt: *const lapackint,
19095    Q: *mut f32,
19096    ldq: *const lapackint,
19097    ifst: *mut lapackint,
19098    ilst: *mut lapackint,
19099    work: *mut f32,
19100    info: *mut lapackint,
19101);
19102
19103define_lapack_ffi!(ztrexc, ZtrexcFnPtr,
19104    compq: *const c_char,
19105    n: *const lapackint,
19106    T: *mut Complex64,
19107    ldt: *const lapackint,
19108    Q: *mut Complex64,
19109    ldq: *const lapackint,
19110    ifst: *const lapackint,
19111    ilst: *const lapackint,
19112    info: *mut lapackint,
19113);
19114
19115// TRRFS
19116define_lapack_ffi!(ctrrfs, CtrrfsFnPtr,
19117    uplo: *const c_char,
19118    trans: *const c_char,
19119    diag: *const c_char,
19120    n: *const lapackint,
19121    nrhs: *const lapackint,
19122    A: *const Complex32,
19123    lda: *const lapackint,
19124    B: *const Complex32,
19125    ldb: *const lapackint,
19126    X: *const Complex32,
19127    ldx: *const lapackint,
19128    ferr: *mut f32,
19129    berr: *mut f32,
19130    work: *mut Complex32,
19131    rwork: *mut f32,
19132    info: *mut lapackint,
19133);
19134
19135define_lapack_ffi!(dtrrfs, DtrrfsFnPtr,
19136    uplo: *const c_char,
19137    trans: *const c_char,
19138    diag: *const c_char,
19139    n: *const lapackint,
19140    nrhs: *const lapackint,
19141    A: *const f64,
19142    lda: *const lapackint,
19143    B: *const f64,
19144    ldb: *const lapackint,
19145    X: *const f64,
19146    ldx: *const lapackint,
19147    ferr: *mut f64,
19148    berr: *mut f64,
19149    work: *mut f64,
19150    iwork: *mut lapackint,
19151    info: *mut lapackint,
19152);
19153
19154define_lapack_ffi!(strrfs, StrrfsFnPtr,
19155    uplo: *const c_char,
19156    trans: *const c_char,
19157    diag: *const c_char,
19158    n: *const lapackint,
19159    nrhs: *const lapackint,
19160    A: *const f32,
19161    lda: *const lapackint,
19162    B: *const f32,
19163    ldb: *const lapackint,
19164    X: *const f32,
19165    ldx: *const lapackint,
19166    ferr: *mut f32,
19167    berr: *mut f32,
19168    work: *mut f32,
19169    iwork: *mut lapackint,
19170    info: *mut lapackint,
19171);
19172
19173define_lapack_ffi!(ztrrfs, ZtrrfsFnPtr,
19174    uplo: *const c_char,
19175    trans: *const c_char,
19176    diag: *const c_char,
19177    n: *const lapackint,
19178    nrhs: *const lapackint,
19179    A: *const Complex64,
19180    lda: *const lapackint,
19181    B: *const Complex64,
19182    ldb: *const lapackint,
19183    X: *const Complex64,
19184    ldx: *const lapackint,
19185    ferr: *mut f64,
19186    berr: *mut f64,
19187    work: *mut Complex64,
19188    rwork: *mut f64,
19189    info: *mut lapackint,
19190);
19191
19192// TRSEN
19193define_lapack_ffi!(ctrsen, CtrsenFnPtr,
19194    job: *const c_char,
19195    compq: *const c_char,
19196    select: *const lapackint,
19197    n: *const lapackint,
19198    T: *mut Complex32,
19199    ldt: *const lapackint,
19200    Q: *mut Complex32,
19201    ldq: *const lapackint,
19202    W: *mut Complex32,
19203    m: *mut lapackint,
19204    s: *mut f32,
19205    sep: *mut f32,
19206    work: *mut Complex32,
19207    lwork: *const lapackint,
19208    info: *mut lapackint,
19209);
19210
19211define_lapack_ffi!(dtrsen, DtrsenFnPtr,
19212    job: *const c_char,
19213    compq: *const c_char,
19214    select: *const lapackint,
19215    n: *const lapackint,
19216    T: *mut f64,
19217    ldt: *const lapackint,
19218    Q: *mut f64,
19219    ldq: *const lapackint,
19220    WR: *mut f64,
19221    WI: *mut f64,
19222    m: *mut lapackint,
19223    s: *mut f64,
19224    sep: *mut f64,
19225    work: *mut f64,
19226    lwork: *const lapackint,
19227    iwork: *mut lapackint,
19228    liwork: *const lapackint,
19229    info: *mut lapackint,
19230);
19231
19232define_lapack_ffi!(strsen, StrsenFnPtr,
19233    job: *const c_char,
19234    compq: *const c_char,
19235    select: *const lapackint,
19236    n: *const lapackint,
19237    T: *mut f32,
19238    ldt: *const lapackint,
19239    Q: *mut f32,
19240    ldq: *const lapackint,
19241    WR: *mut f32,
19242    WI: *mut f32,
19243    m: *mut lapackint,
19244    s: *mut f32,
19245    sep: *mut f32,
19246    work: *mut f32,
19247    lwork: *const lapackint,
19248    iwork: *mut lapackint,
19249    liwork: *const lapackint,
19250    info: *mut lapackint,
19251);
19252
19253define_lapack_ffi!(ztrsen, ZtrsenFnPtr,
19254    job: *const c_char,
19255    compq: *const c_char,
19256    select: *const lapackint,
19257    n: *const lapackint,
19258    T: *mut Complex64,
19259    ldt: *const lapackint,
19260    Q: *mut Complex64,
19261    ldq: *const lapackint,
19262    W: *mut Complex64,
19263    m: *mut lapackint,
19264    s: *mut f64,
19265    sep: *mut f64,
19266    work: *mut Complex64,
19267    lwork: *const lapackint,
19268    info: *mut lapackint,
19269);
19270
19271// TRSNA
19272define_lapack_ffi!(ctrsna, CtrsnaFnPtr,
19273    job: *const c_char,
19274    howmny: *const c_char,
19275    select: *const lapackint,
19276    n: *const lapackint,
19277    T: *const Complex32,
19278    ldt: *const lapackint,
19279    VL: *const Complex32,
19280    ldvl: *const lapackint,
19281    VR: *const Complex32,
19282    ldvr: *const lapackint,
19283    S: *mut f32,
19284    SEP: *mut f32,
19285    mm: *const lapackint,
19286    m: *mut lapackint,
19287    work: *mut Complex32,
19288    ldwork: *const lapackint,
19289    rwork: *mut f32,
19290    info: *mut lapackint,
19291);
19292
19293define_lapack_ffi!(dtrsna, DtrsnaFnPtr,
19294    job: *const c_char,
19295    howmny: *const c_char,
19296    select: *const lapackint,
19297    n: *const lapackint,
19298    T: *const f64,
19299    ldt: *const lapackint,
19300    VL: *const f64,
19301    ldvl: *const lapackint,
19302    VR: *const f64,
19303    ldvr: *const lapackint,
19304    S: *mut f64,
19305    SEP: *mut f64,
19306    mm: *const lapackint,
19307    m: *mut lapackint,
19308    work: *mut f64,
19309    ldwork: *const lapackint,
19310    iwork: *mut lapackint,
19311    info: *mut lapackint,
19312);
19313
19314define_lapack_ffi!(strsna, StrsnaFnPtr,
19315    job: *const c_char,
19316    howmny: *const c_char,
19317    select: *const lapackint,
19318    n: *const lapackint,
19319    T: *const f32,
19320    ldt: *const lapackint,
19321    VL: *const f32,
19322    ldvl: *const lapackint,
19323    VR: *const f32,
19324    ldvr: *const lapackint,
19325    S: *mut f32,
19326    SEP: *mut f32,
19327    mm: *const lapackint,
19328    m: *mut lapackint,
19329    work: *mut f32,
19330    ldwork: *const lapackint,
19331    iwork: *mut lapackint,
19332    info: *mut lapackint,
19333);
19334
19335define_lapack_ffi!(ztrsna, ZtrsnaFnPtr,
19336    job: *const c_char,
19337    howmny: *const c_char,
19338    select: *const lapackint,
19339    n: *const lapackint,
19340    T: *const Complex64,
19341    ldt: *const lapackint,
19342    VL: *const Complex64,
19343    ldvl: *const lapackint,
19344    VR: *const Complex64,
19345    ldvr: *const lapackint,
19346    S: *mut f64,
19347    SEP: *mut f64,
19348    mm: *const lapackint,
19349    m: *mut lapackint,
19350    work: *mut Complex64,
19351    ldwork: *const lapackint,
19352    rwork: *mut f64,
19353    info: *mut lapackint,
19354);
19355
19356// TRSYL
19357define_lapack_ffi!(ctrsyl, CtrsylFnPtr,
19358    trana: *const c_char,
19359    tranb: *const c_char,
19360    isgn: *const lapackint,
19361    m: *const lapackint,
19362    n: *const lapackint,
19363    A: *const Complex32,
19364    lda: *const lapackint,
19365    B: *const Complex32,
19366    ldb: *const lapackint,
19367    C: *mut Complex32,
19368    ldc: *const lapackint,
19369    scale: *mut f32,
19370    info: *mut lapackint,
19371);
19372
19373define_lapack_ffi!(dtrsyl, DtrsylFnPtr,
19374    trana: *const c_char,
19375    tranb: *const c_char,
19376    isgn: *const lapackint,
19377    m: *const lapackint,
19378    n: *const lapackint,
19379    A: *const f64,
19380    lda: *const lapackint,
19381    B: *const f64,
19382    ldb: *const lapackint,
19383    C: *mut f64,
19384    ldc: *const lapackint,
19385    scale: *mut f64,
19386    info: *mut lapackint,
19387);
19388
19389define_lapack_ffi!(strsyl, StrsylFnPtr,
19390    trana: *const c_char,
19391    tranb: *const c_char,
19392    isgn: *const lapackint,
19393    m: *const lapackint,
19394    n: *const lapackint,
19395    A: *const f32,
19396    lda: *const lapackint,
19397    B: *const f32,
19398    ldb: *const lapackint,
19399    C: *mut f32,
19400    ldc: *const lapackint,
19401    scale: *mut f32,
19402    info: *mut lapackint,
19403);
19404
19405define_lapack_ffi!(ztrsyl, ZtrsylFnPtr,
19406    trana: *const c_char,
19407    tranb: *const c_char,
19408    isgn: *const lapackint,
19409    m: *const lapackint,
19410    n: *const lapackint,
19411    A: *const Complex64,
19412    lda: *const lapackint,
19413    B: *const Complex64,
19414    ldb: *const lapackint,
19415    C: *mut Complex64,
19416    ldc: *const lapackint,
19417    scale: *mut f64,
19418    info: *mut lapackint,
19419);
19420
19421// TRTRI
19422define_lapack_ffi!(ctrtri, CtrtriFnPtr,
19423    uplo: *const c_char,
19424    diag: *const c_char,
19425    n: *const lapackint,
19426    A: *mut Complex32,
19427    lda: *const lapackint,
19428    info: *mut lapackint,
19429);
19430
19431define_lapack_ffi!(dtrtri, DtrtriFnPtr,
19432    uplo: *const c_char,
19433    diag: *const c_char,
19434    n: *const lapackint,
19435    A: *mut f64,
19436    lda: *const lapackint,
19437    info: *mut lapackint,
19438);
19439
19440define_lapack_ffi!(strtri, StrtriFnPtr,
19441    uplo: *const c_char,
19442    diag: *const c_char,
19443    n: *const lapackint,
19444    A: *mut f32,
19445    lda: *const lapackint,
19446    info: *mut lapackint,
19447);
19448
19449define_lapack_ffi!(ztrtri, ZtrtriFnPtr,
19450    uplo: *const c_char,
19451    diag: *const c_char,
19452    n: *const lapackint,
19453    A: *mut Complex64,
19454    lda: *const lapackint,
19455    info: *mut lapackint,
19456);
19457
19458// TRTRS
19459define_lapack_ffi!(ctrtrs, CtrtrsFnPtr,
19460    uplo: *const c_char,
19461    trans: *const c_char,
19462    diag: *const c_char,
19463    n: *const lapackint,
19464    nrhs: *const lapackint,
19465    A: *const Complex32,
19466    lda: *const lapackint,
19467    B: *mut Complex32,
19468    ldb: *const lapackint,
19469    info: *mut lapackint,
19470);
19471
19472define_lapack_ffi!(dtrtrs, DtrtrsFnPtr,
19473    uplo: *const c_char,
19474    trans: *const c_char,
19475    diag: *const c_char,
19476    n: *const lapackint,
19477    nrhs: *const lapackint,
19478    A: *const f64,
19479    lda: *const lapackint,
19480    B: *mut f64,
19481    ldb: *const lapackint,
19482    info: *mut lapackint,
19483);
19484
19485define_lapack_ffi!(strtrs, StrtrsFnPtr,
19486    uplo: *const c_char,
19487    trans: *const c_char,
19488    diag: *const c_char,
19489    n: *const lapackint,
19490    nrhs: *const lapackint,
19491    A: *const f32,
19492    lda: *const lapackint,
19493    B: *mut f32,
19494    ldb: *const lapackint,
19495    info: *mut lapackint,
19496);
19497
19498define_lapack_ffi!(ztrtrs, ZtrtrsFnPtr,
19499    uplo: *const c_char,
19500    trans: *const c_char,
19501    diag: *const c_char,
19502    n: *const lapackint,
19503    nrhs: *const lapackint,
19504    A: *const Complex64,
19505    lda: *const lapackint,
19506    B: *mut Complex64,
19507    ldb: *const lapackint,
19508    info: *mut lapackint,
19509);
19510
19511// TRTTF
19512define_lapack_ffi!(ctrttf, CtrttfFnPtr,
19513    transr: *const c_char,
19514    uplo: *const c_char,
19515    n: *const lapackint,
19516    A: *const Complex32,
19517    lda: *const lapackint,
19518    ARF: *mut Complex32,
19519    info: *mut lapackint,
19520);
19521
19522define_lapack_ffi!(dtrttf, DtrttfFnPtr,
19523    transr: *const c_char,
19524    uplo: *const c_char,
19525    n: *const lapackint,
19526    A: *const f64,
19527    lda: *const lapackint,
19528    ARF: *mut f64,
19529    info: *mut lapackint,
19530);
19531
19532define_lapack_ffi!(strttf, StrttfFnPtr,
19533    transr: *const c_char,
19534    uplo: *const c_char,
19535    n: *const lapackint,
19536    A: *const f32,
19537    lda: *const lapackint,
19538    ARF: *mut f32,
19539    info: *mut lapackint,
19540);
19541
19542define_lapack_ffi!(ztrttf, ZtrttfFnPtr,
19543    transr: *const c_char,
19544    uplo: *const c_char,
19545    n: *const lapackint,
19546    A: *const Complex64,
19547    lda: *const lapackint,
19548    ARF: *mut Complex64,
19549    info: *mut lapackint,
19550);
19551
19552// TRTTP
19553define_lapack_ffi!(ctrttp, CtrttpFnPtr,
19554    uplo: *const c_char,
19555    n: *const lapackint,
19556    A: *const Complex32,
19557    lda: *const lapackint,
19558    AP: *mut Complex32,
19559    info: *mut lapackint,
19560);
19561
19562define_lapack_ffi!(dtrttp, DtrttpFnPtr,
19563    uplo: *const c_char,
19564    n: *const lapackint,
19565    A: *const f64,
19566    lda: *const lapackint,
19567    AP: *mut f64,
19568    info: *mut lapackint,
19569);
19570
19571define_lapack_ffi!(strttp, StrttpFnPtr,
19572    uplo: *const c_char,
19573    n: *const lapackint,
19574    A: *const f32,
19575    lda: *const lapackint,
19576    AP: *mut f32,
19577    info: *mut lapackint,
19578);
19579
19580define_lapack_ffi!(ztrttp, ZtrttpFnPtr,
19581    uplo: *const c_char,
19582    n: *const lapackint,
19583    A: *const Complex64,
19584    lda: *const lapackint,
19585    AP: *mut Complex64,
19586    info: *mut lapackint,
19587);
19588
19589// TZRZF
19590define_lapack_ffi!(ctzrzf, CtzrzfFnPtr,
19591    m: *const lapackint,
19592    n: *const lapackint,
19593    A: *mut Complex32,
19594    lda: *const lapackint,
19595    tau: *mut Complex32,
19596    work: *mut Complex32,
19597    lwork: *const lapackint,
19598    info: *mut lapackint,
19599);
19600
19601define_lapack_ffi!(dtzrzf, DtzrzfFnPtr,
19602    m: *const lapackint,
19603    n: *const lapackint,
19604    A: *mut f64,
19605    lda: *const lapackint,
19606    tau: *mut f64,
19607    work: *mut f64,
19608    lwork: *const lapackint,
19609    info: *mut lapackint,
19610);
19611
19612define_lapack_ffi!(stzrzf, StzrzfFnPtr,
19613    m: *const lapackint,
19614    n: *const lapackint,
19615    A: *mut f32,
19616    lda: *const lapackint,
19617    tau: *mut f32,
19618    work: *mut f32,
19619    lwork: *const lapackint,
19620    info: *mut lapackint,
19621);
19622
19623define_lapack_ffi!(ztzrzf, ZtzrzfFnPtr,
19624    m: *const lapackint,
19625    n: *const lapackint,
19626    A: *mut Complex64,
19627    lda: *const lapackint,
19628    tau: *mut Complex64,
19629    work: *mut Complex64,
19630    lwork: *const lapackint,
19631    info: *mut lapackint,
19632);
19633
19634// UNBDB
19635define_lapack_ffi!(cunbdb, CunbdbFnPtr,
19636    trans: *const c_char,
19637    signs: *const c_char,
19638    m: *const lapackint,
19639    p: *const lapackint,
19640    q: *const lapackint,
19641    X11: *mut Complex32,
19642    ldx11: *const lapackint,
19643    X12: *mut Complex32,
19644    ldx12: *const lapackint,
19645    X21: *mut Complex32,
19646    ldx21: *const lapackint,
19647    X22: *mut Complex32,
19648    ldx22: *const lapackint,
19649    theta: *mut f32,
19650    phi: *mut f32,
19651    TAUP1: *mut Complex32,
19652    TAUP2: *mut Complex32,
19653    TAUQ1: *mut Complex32,
19654    TAUQ2: *mut Complex32,
19655    work: *mut Complex32,
19656    lwork: *const lapackint,
19657    info: *mut lapackint,
19658);
19659
19660define_lapack_ffi!(zunbdb, ZunbdbFnPtr,
19661    trans: *const c_char,
19662    signs: *const c_char,
19663    m: *const lapackint,
19664    p: *const lapackint,
19665    q: *const lapackint,
19666    X11: *mut Complex64,
19667    ldx11: *const lapackint,
19668    X12: *mut Complex64,
19669    ldx12: *const lapackint,
19670    X21: *mut Complex64,
19671    ldx21: *const lapackint,
19672    X22: *mut Complex64,
19673    ldx22: *const lapackint,
19674    theta: *mut f64,
19675    phi: *mut f64,
19676    TAUP1: *mut Complex64,
19677    TAUP2: *mut Complex64,
19678    TAUQ1: *mut Complex64,
19679    TAUQ2: *mut Complex64,
19680    work: *mut Complex64,
19681    lwork: *const lapackint,
19682    info: *mut lapackint,
19683);
19684
19685// UNCSD
19686define_lapack_ffi!(cuncsd, CuncsdFnPtr,
19687    jobu1: *const c_char,
19688    jobu2: *const c_char,
19689    jobv1t: *const c_char,
19690    jobv2t: *const c_char,
19691    trans: *const c_char,
19692    signs: *const c_char,
19693    m: *const lapackint,
19694    p: *const lapackint,
19695    q: *const lapackint,
19696    X11: *mut Complex32,
19697    ldx11: *const lapackint,
19698    X12: *mut Complex32,
19699    ldx12: *const lapackint,
19700    X21: *mut Complex32,
19701    ldx21: *const lapackint,
19702    X22: *mut Complex32,
19703    ldx22: *const lapackint,
19704    theta: *mut f32,
19705    U1: *mut Complex32,
19706    ldu1: *const lapackint,
19707    U2: *mut Complex32,
19708    ldu2: *const lapackint,
19709    V1T: *mut Complex32,
19710    ldv1t: *const lapackint,
19711    V2T: *mut Complex32,
19712    ldv2t: *const lapackint,
19713    work: *mut Complex32,
19714    lwork: *const lapackint,
19715    rwork: *mut f32,
19716    lrwork: *const lapackint,
19717    iwork: *mut lapackint,
19718    info: *mut lapackint,
19719);
19720
19721define_lapack_ffi!(zuncsd, ZuncsdFnPtr,
19722    jobu1: *const c_char,
19723    jobu2: *const c_char,
19724    jobv1t: *const c_char,
19725    jobv2t: *const c_char,
19726    trans: *const c_char,
19727    signs: *const c_char,
19728    m: *const lapackint,
19729    p: *const lapackint,
19730    q: *const lapackint,
19731    X11: *mut Complex64,
19732    ldx11: *const lapackint,
19733    X12: *mut Complex64,
19734    ldx12: *const lapackint,
19735    X21: *mut Complex64,
19736    ldx21: *const lapackint,
19737    X22: *mut Complex64,
19738    ldx22: *const lapackint,
19739    theta: *mut f64,
19740    U1: *mut Complex64,
19741    ldu1: *const lapackint,
19742    U2: *mut Complex64,
19743    ldu2: *const lapackint,
19744    V1T: *mut Complex64,
19745    ldv1t: *const lapackint,
19746    V2T: *mut Complex64,
19747    ldv2t: *const lapackint,
19748    work: *mut Complex64,
19749    lwork: *const lapackint,
19750    rwork: *mut f64,
19751    lrwork: *const lapackint,
19752    iwork: *mut lapackint,
19753    info: *mut lapackint,
19754);
19755
19756// UNCSD2BY1
19757define_lapack_ffi!(cuncsd2by1, Cuncsd2by1FnPtr,
19758    jobu1: *const c_char,
19759    jobu2: *const c_char,
19760    jobv1t: *const c_char,
19761    m: *const lapackint,
19762    p: *const lapackint,
19763    q: *const lapackint,
19764    X11: *mut Complex32,
19765    ldx11: *const lapackint,
19766    X21: *mut Complex32,
19767    ldx21: *const lapackint,
19768    theta: *mut f32,
19769    U1: *mut Complex32,
19770    ldu1: *const lapackint,
19771    U2: *mut Complex32,
19772    ldu2: *const lapackint,
19773    V1T: *mut Complex32,
19774    ldv1t: *const lapackint,
19775    work: *mut Complex32,
19776    lwork: *const lapackint,
19777    rwork: *mut f32,
19778    lrwork: *const lapackint,
19779    iwork: *mut lapackint,
19780    info: *mut lapackint,
19781);
19782
19783define_lapack_ffi!(zuncsd2by1, Zuncsd2by1FnPtr,
19784    jobu1: *const c_char,
19785    jobu2: *const c_char,
19786    jobv1t: *const c_char,
19787    m: *const lapackint,
19788    p: *const lapackint,
19789    q: *const lapackint,
19790    X11: *mut Complex64,
19791    ldx11: *const lapackint,
19792    X21: *mut Complex64,
19793    ldx21: *const lapackint,
19794    theta: *mut f64,
19795    U1: *mut Complex64,
19796    ldu1: *const lapackint,
19797    U2: *mut Complex64,
19798    ldu2: *const lapackint,
19799    V1T: *mut Complex64,
19800    ldv1t: *const lapackint,
19801    work: *mut Complex64,
19802    lwork: *const lapackint,
19803    rwork: *mut f64,
19804    lrwork: *const lapackint,
19805    iwork: *mut lapackint,
19806    info: *mut lapackint,
19807);
19808
19809// UNGBR
19810define_lapack_ffi!(cungbr, CungbrFnPtr,
19811    vect: *const c_char,
19812    m: *const lapackint,
19813    n: *const lapackint,
19814    k: *const lapackint,
19815    A: *mut Complex32,
19816    lda: *const lapackint,
19817    tau: *const Complex32,
19818    work: *mut Complex32,
19819    lwork: *const lapackint,
19820    info: *mut lapackint,
19821);
19822
19823define_lapack_ffi!(zungbr, ZungbrFnPtr,
19824    vect: *const c_char,
19825    m: *const lapackint,
19826    n: *const lapackint,
19827    k: *const lapackint,
19828    A: *mut Complex64,
19829    lda: *const lapackint,
19830    tau: *const Complex64,
19831    work: *mut Complex64,
19832    lwork: *const lapackint,
19833    info: *mut lapackint,
19834);
19835
19836// UNGHR
19837define_lapack_ffi!(cunghr, CunghrFnPtr,
19838    n: *const lapackint,
19839    ilo: *const lapackint,
19840    ihi: *const lapackint,
19841    A: *mut Complex32,
19842    lda: *const lapackint,
19843    tau: *const Complex32,
19844    work: *mut Complex32,
19845    lwork: *const lapackint,
19846    info: *mut lapackint,
19847);
19848
19849define_lapack_ffi!(zunghr, ZunghrFnPtr,
19850    n: *const lapackint,
19851    ilo: *const lapackint,
19852    ihi: *const lapackint,
19853    A: *mut Complex64,
19854    lda: *const lapackint,
19855    tau: *const Complex64,
19856    work: *mut Complex64,
19857    lwork: *const lapackint,
19858    info: *mut lapackint,
19859);
19860
19861// UNGLQ
19862define_lapack_ffi!(cunglq, CunglqFnPtr,
19863    m: *const lapackint,
19864    n: *const lapackint,
19865    k: *const lapackint,
19866    A: *mut Complex32,
19867    lda: *const lapackint,
19868    tau: *const Complex32,
19869    work: *mut Complex32,
19870    lwork: *const lapackint,
19871    info: *mut lapackint,
19872);
19873
19874define_lapack_ffi!(zunglq, ZunglqFnPtr,
19875    m: *const lapackint,
19876    n: *const lapackint,
19877    k: *const lapackint,
19878    A: *mut Complex64,
19879    lda: *const lapackint,
19880    tau: *const Complex64,
19881    work: *mut Complex64,
19882    lwork: *const lapackint,
19883    info: *mut lapackint,
19884);
19885
19886// UNGQL
19887define_lapack_ffi!(cungql, CungqlFnPtr,
19888    m: *const lapackint,
19889    n: *const lapackint,
19890    k: *const lapackint,
19891    A: *mut Complex32,
19892    lda: *const lapackint,
19893    tau: *const Complex32,
19894    work: *mut Complex32,
19895    lwork: *const lapackint,
19896    info: *mut lapackint,
19897);
19898
19899define_lapack_ffi!(zungql, ZungqlFnPtr,
19900    m: *const lapackint,
19901    n: *const lapackint,
19902    k: *const lapackint,
19903    A: *mut Complex64,
19904    lda: *const lapackint,
19905    tau: *const Complex64,
19906    work: *mut Complex64,
19907    lwork: *const lapackint,
19908    info: *mut lapackint,
19909);
19910
19911// UNGQR
19912define_lapack_ffi!(cungqr, CungqrFnPtr,
19913    m: *const lapackint,
19914    n: *const lapackint,
19915    k: *const lapackint,
19916    A: *mut Complex32,
19917    lda: *const lapackint,
19918    tau: *const Complex32,
19919    work: *mut Complex32,
19920    lwork: *const lapackint,
19921    info: *mut lapackint,
19922);
19923
19924define_lapack_ffi!(zungqr, ZungqrFnPtr,
19925    m: *const lapackint,
19926    n: *const lapackint,
19927    k: *const lapackint,
19928    A: *mut Complex64,
19929    lda: *const lapackint,
19930    tau: *const Complex64,
19931    work: *mut Complex64,
19932    lwork: *const lapackint,
19933    info: *mut lapackint,
19934);
19935
19936// UNGRQ
19937define_lapack_ffi!(cungrq, CungrqFnPtr,
19938    m: *const lapackint,
19939    n: *const lapackint,
19940    k: *const lapackint,
19941    A: *mut Complex32,
19942    lda: *const lapackint,
19943    tau: *const Complex32,
19944    work: *mut Complex32,
19945    lwork: *const lapackint,
19946    info: *mut lapackint,
19947);
19948
19949define_lapack_ffi!(zungrq, ZungrqFnPtr,
19950    m: *const lapackint,
19951    n: *const lapackint,
19952    k: *const lapackint,
19953    A: *mut Complex64,
19954    lda: *const lapackint,
19955    tau: *const Complex64,
19956    work: *mut Complex64,
19957    lwork: *const lapackint,
19958    info: *mut lapackint,
19959);
19960
19961// UNGTR
19962define_lapack_ffi!(cungtr, CungtrFnPtr,
19963    uplo: *const c_char,
19964    n: *const lapackint,
19965    A: *mut Complex32,
19966    lda: *const lapackint,
19967    tau: *const Complex32,
19968    work: *mut Complex32,
19969    lwork: *const lapackint,
19970    info: *mut lapackint,
19971);
19972
19973define_lapack_ffi!(zungtr, ZungtrFnPtr,
19974    uplo: *const c_char,
19975    n: *const lapackint,
19976    A: *mut Complex64,
19977    lda: *const lapackint,
19978    tau: *const Complex64,
19979    work: *mut Complex64,
19980    lwork: *const lapackint,
19981    info: *mut lapackint,
19982);
19983
19984// UNGTSQR_ROW
19985define_lapack_ffi!(cungtsqr_row, Cungtsqr_rowFnPtr,
19986    m: *const lapackint,
19987    n: *const lapackint,
19988    mb: *const lapackint,
19989    nb: *const lapackint,
19990    A: *mut Complex32,
19991    lda: *const lapackint,
19992    T: *const Complex32,
19993    ldt: *const lapackint,
19994    work: *mut Complex32,
19995    lwork: *const lapackint,
19996    info: *mut lapackint,
19997);
19998
19999define_lapack_ffi!(zungtsqr_row, Zungtsqr_rowFnPtr,
20000    m: *const lapackint,
20001    n: *const lapackint,
20002    mb: *const lapackint,
20003    nb: *const lapackint,
20004    A: *mut Complex64,
20005    lda: *const lapackint,
20006    T: *const Complex64,
20007    ldt: *const lapackint,
20008    work: *mut Complex64,
20009    lwork: *const lapackint,
20010    info: *mut lapackint,
20011);
20012
20013// UNMBR
20014define_lapack_ffi!(cunmbr, CunmbrFnPtr,
20015    vect: *const c_char,
20016    side: *const c_char,
20017    trans: *const c_char,
20018    m: *const lapackint,
20019    n: *const lapackint,
20020    k: *const lapackint,
20021    A: *const Complex32,
20022    lda: *const lapackint,
20023    tau: *const Complex32,
20024    C: *mut Complex32,
20025    ldc: *const lapackint,
20026    work: *mut Complex32,
20027    lwork: *const lapackint,
20028    info: *mut lapackint,
20029);
20030
20031define_lapack_ffi!(zunmbr, ZunmbrFnPtr,
20032    vect: *const c_char,
20033    side: *const c_char,
20034    trans: *const c_char,
20035    m: *const lapackint,
20036    n: *const lapackint,
20037    k: *const lapackint,
20038    A: *const Complex64,
20039    lda: *const lapackint,
20040    tau: *const Complex64,
20041    C: *mut Complex64,
20042    ldc: *const lapackint,
20043    work: *mut Complex64,
20044    lwork: *const lapackint,
20045    info: *mut lapackint,
20046);
20047
20048// UNMHR
20049define_lapack_ffi!(cunmhr, CunmhrFnPtr,
20050    side: *const c_char,
20051    trans: *const c_char,
20052    m: *const lapackint,
20053    n: *const lapackint,
20054    ilo: *const lapackint,
20055    ihi: *const lapackint,
20056    A: *const Complex32,
20057    lda: *const lapackint,
20058    tau: *const Complex32,
20059    C: *mut Complex32,
20060    ldc: *const lapackint,
20061    work: *mut Complex32,
20062    lwork: *const lapackint,
20063    info: *mut lapackint,
20064);
20065
20066define_lapack_ffi!(zunmhr, ZunmhrFnPtr,
20067    side: *const c_char,
20068    trans: *const c_char,
20069    m: *const lapackint,
20070    n: *const lapackint,
20071    ilo: *const lapackint,
20072    ihi: *const lapackint,
20073    A: *const Complex64,
20074    lda: *const lapackint,
20075    tau: *const Complex64,
20076    C: *mut Complex64,
20077    ldc: *const lapackint,
20078    work: *mut Complex64,
20079    lwork: *const lapackint,
20080    info: *mut lapackint,
20081);
20082
20083// UNMLQ
20084define_lapack_ffi!(cunmlq, CunmlqFnPtr,
20085    side: *const c_char,
20086    trans: *const c_char,
20087    m: *const lapackint,
20088    n: *const lapackint,
20089    k: *const lapackint,
20090    A: *const Complex32,
20091    lda: *const lapackint,
20092    tau: *const Complex32,
20093    C: *mut Complex32,
20094    ldc: *const lapackint,
20095    work: *mut Complex32,
20096    lwork: *const lapackint,
20097    info: *mut lapackint,
20098);
20099
20100define_lapack_ffi!(zunmlq, ZunmlqFnPtr,
20101    side: *const c_char,
20102    trans: *const c_char,
20103    m: *const lapackint,
20104    n: *const lapackint,
20105    k: *const lapackint,
20106    A: *const Complex64,
20107    lda: *const lapackint,
20108    tau: *const Complex64,
20109    C: *mut Complex64,
20110    ldc: *const lapackint,
20111    work: *mut Complex64,
20112    lwork: *const lapackint,
20113    info: *mut lapackint,
20114);
20115
20116// UNMQL
20117define_lapack_ffi!(cunmql, CunmqlFnPtr,
20118    side: *const c_char,
20119    trans: *const c_char,
20120    m: *const lapackint,
20121    n: *const lapackint,
20122    k: *const lapackint,
20123    A: *const Complex32,
20124    lda: *const lapackint,
20125    tau: *const Complex32,
20126    C: *mut Complex32,
20127    ldc: *const lapackint,
20128    work: *mut Complex32,
20129    lwork: *const lapackint,
20130    info: *mut lapackint,
20131);
20132
20133define_lapack_ffi!(zunmql, ZunmqlFnPtr,
20134    side: *const c_char,
20135    trans: *const c_char,
20136    m: *const lapackint,
20137    n: *const lapackint,
20138    k: *const lapackint,
20139    A: *const Complex64,
20140    lda: *const lapackint,
20141    tau: *const Complex64,
20142    C: *mut Complex64,
20143    ldc: *const lapackint,
20144    work: *mut Complex64,
20145    lwork: *const lapackint,
20146    info: *mut lapackint,
20147);
20148
20149// UNMQR
20150define_lapack_ffi!(cunmqr, CunmqrFnPtr,
20151    side: *const c_char,
20152    trans: *const c_char,
20153    m: *const lapackint,
20154    n: *const lapackint,
20155    k: *const lapackint,
20156    A: *const Complex32,
20157    lda: *const lapackint,
20158    tau: *const Complex32,
20159    C: *mut Complex32,
20160    ldc: *const lapackint,
20161    work: *mut Complex32,
20162    lwork: *const lapackint,
20163    info: *mut lapackint,
20164);
20165
20166define_lapack_ffi!(zunmqr, ZunmqrFnPtr,
20167    side: *const c_char,
20168    trans: *const c_char,
20169    m: *const lapackint,
20170    n: *const lapackint,
20171    k: *const lapackint,
20172    A: *const Complex64,
20173    lda: *const lapackint,
20174    tau: *const Complex64,
20175    C: *mut Complex64,
20176    ldc: *const lapackint,
20177    work: *mut Complex64,
20178    lwork: *const lapackint,
20179    info: *mut lapackint,
20180);
20181
20182// UNMRQ
20183define_lapack_ffi!(cunmrq, CunmrqFnPtr,
20184    side: *const c_char,
20185    trans: *const c_char,
20186    m: *const lapackint,
20187    n: *const lapackint,
20188    k: *const lapackint,
20189    A: *const Complex32,
20190    lda: *const lapackint,
20191    tau: *const Complex32,
20192    C: *mut Complex32,
20193    ldc: *const lapackint,
20194    work: *mut Complex32,
20195    lwork: *const lapackint,
20196    info: *mut lapackint,
20197);
20198
20199define_lapack_ffi!(zunmrq, ZunmrqFnPtr,
20200    side: *const c_char,
20201    trans: *const c_char,
20202    m: *const lapackint,
20203    n: *const lapackint,
20204    k: *const lapackint,
20205    A: *const Complex64,
20206    lda: *const lapackint,
20207    tau: *const Complex64,
20208    C: *mut Complex64,
20209    ldc: *const lapackint,
20210    work: *mut Complex64,
20211    lwork: *const lapackint,
20212    info: *mut lapackint,
20213);
20214
20215// UNMRZ
20216define_lapack_ffi!(cunmrz, CunmrzFnPtr,
20217    side: *const c_char,
20218    trans: *const c_char,
20219    m: *const lapackint,
20220    n: *const lapackint,
20221    k: *const lapackint,
20222    l: *const lapackint,
20223    A: *const Complex32,
20224    lda: *const lapackint,
20225    tau: *const Complex32,
20226    C: *mut Complex32,
20227    ldc: *const lapackint,
20228    work: *mut Complex32,
20229    lwork: *const lapackint,
20230    info: *mut lapackint,
20231);
20232
20233define_lapack_ffi!(zunmrz, ZunmrzFnPtr,
20234    side: *const c_char,
20235    trans: *const c_char,
20236    m: *const lapackint,
20237    n: *const lapackint,
20238    k: *const lapackint,
20239    l: *const lapackint,
20240    A: *const Complex64,
20241    lda: *const lapackint,
20242    tau: *const Complex64,
20243    C: *mut Complex64,
20244    ldc: *const lapackint,
20245    work: *mut Complex64,
20246    lwork: *const lapackint,
20247    info: *mut lapackint,
20248);
20249
20250// UNMTR
20251define_lapack_ffi!(cunmtr, CunmtrFnPtr,
20252    side: *const c_char,
20253    uplo: *const c_char,
20254    trans: *const c_char,
20255    m: *const lapackint,
20256    n: *const lapackint,
20257    A: *const Complex32,
20258    lda: *const lapackint,
20259    tau: *const Complex32,
20260    C: *mut Complex32,
20261    ldc: *const lapackint,
20262    work: *mut Complex32,
20263    lwork: *const lapackint,
20264    info: *mut lapackint,
20265);
20266
20267define_lapack_ffi!(zunmtr, ZunmtrFnPtr,
20268    side: *const c_char,
20269    uplo: *const c_char,
20270    trans: *const c_char,
20271    m: *const lapackint,
20272    n: *const lapackint,
20273    A: *const Complex64,
20274    lda: *const lapackint,
20275    tau: *const Complex64,
20276    C: *mut Complex64,
20277    ldc: *const lapackint,
20278    work: *mut Complex64,
20279    lwork: *const lapackint,
20280    info: *mut lapackint,
20281);
20282
20283// UPGTR
20284define_lapack_ffi!(cupgtr, CupgtrFnPtr,
20285    uplo: *const c_char,
20286    n: *const lapackint,
20287    AP: *const Complex32,
20288    tau: *const Complex32,
20289    Q: *mut Complex32,
20290    ldq: *const lapackint,
20291    work: *mut Complex32,
20292    info: *mut lapackint,
20293);
20294
20295define_lapack_ffi!(zupgtr, ZupgtrFnPtr,
20296    uplo: *const c_char,
20297    n: *const lapackint,
20298    AP: *const Complex64,
20299    tau: *const Complex64,
20300    Q: *mut Complex64,
20301    ldq: *const lapackint,
20302    work: *mut Complex64,
20303    info: *mut lapackint,
20304);
20305
20306// UPMTR
20307define_lapack_ffi!(cupmtr, CupmtrFnPtr,
20308    side: *const c_char,
20309    uplo: *const c_char,
20310    trans: *const c_char,
20311    m: *const lapackint,
20312    n: *const lapackint,
20313    AP: *const Complex32,
20314    tau: *const Complex32,
20315    C: *mut Complex32,
20316    ldc: *const lapackint,
20317    work: *mut Complex32,
20318    info: *mut lapackint,
20319);
20320
20321define_lapack_ffi!(zupmtr, ZupmtrFnPtr,
20322    side: *const c_char,
20323    uplo: *const c_char,
20324    trans: *const c_char,
20325    m: *const lapackint,
20326    n: *const lapackint,
20327    AP: *const Complex64,
20328    tau: *const Complex64,
20329    C: *mut Complex64,
20330    ldc: *const lapackint,
20331    work: *mut Complex64,
20332    info: *mut lapackint,
20333);