Skip to main content

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 plus supplemental Netlib LAPACK routines.
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// GESC2
3443define_lapack_ffi!(cgesc2, Cgesc2FnPtr,
3444    n: *const lapackint,
3445    A: *const Complex32,
3446    lda: *const lapackint,
3447    rhs: *mut Complex32,
3448    ipiv: *const lapackint,
3449    jpiv: *const lapackint,
3450    scale: *mut f32,
3451);
3452
3453define_lapack_ffi!(dgesc2, Dgesc2FnPtr,
3454    n: *const lapackint,
3455    A: *const f64,
3456    lda: *const lapackint,
3457    rhs: *mut f64,
3458    ipiv: *const lapackint,
3459    jpiv: *const lapackint,
3460    scale: *mut f64,
3461);
3462
3463define_lapack_ffi!(sgesc2, Sgesc2FnPtr,
3464    n: *const lapackint,
3465    A: *const f32,
3466    lda: *const lapackint,
3467    rhs: *mut f32,
3468    ipiv: *const lapackint,
3469    jpiv: *const lapackint,
3470    scale: *mut f32,
3471);
3472
3473define_lapack_ffi!(zgesc2, Zgesc2FnPtr,
3474    n: *const lapackint,
3475    A: *const Complex64,
3476    lda: *const lapackint,
3477    rhs: *mut Complex64,
3478    ipiv: *const lapackint,
3479    jpiv: *const lapackint,
3480    scale: *mut f64,
3481);
3482
3483// GESDD
3484define_lapack_ffi!(cgesdd, CgesddFnPtr,
3485    jobz: *const c_char,
3486    m: *const lapackint,
3487    n: *const lapackint,
3488    A: *mut Complex32,
3489    lda: *const lapackint,
3490    S: *mut f32,
3491    U: *mut Complex32,
3492    ldu: *const lapackint,
3493    VT: *mut Complex32,
3494    ldvt: *const lapackint,
3495    work: *mut Complex32,
3496    lwork: *const lapackint,
3497    rwork: *mut f32,
3498    iwork: *mut lapackint,
3499    info: *mut lapackint,
3500);
3501
3502define_lapack_ffi!(dgesdd, DgesddFnPtr,
3503    jobz: *const c_char,
3504    m: *const lapackint,
3505    n: *const lapackint,
3506    A: *mut f64,
3507    lda: *const lapackint,
3508    S: *mut f64,
3509    U: *mut f64,
3510    ldu: *const lapackint,
3511    VT: *mut f64,
3512    ldvt: *const lapackint,
3513    work: *mut f64,
3514    lwork: *const lapackint,
3515    iwork: *mut lapackint,
3516    info: *mut lapackint,
3517);
3518
3519define_lapack_ffi!(sgesdd, SgesddFnPtr,
3520    jobz: *const c_char,
3521    m: *const lapackint,
3522    n: *const lapackint,
3523    A: *mut f32,
3524    lda: *const lapackint,
3525    S: *mut f32,
3526    U: *mut f32,
3527    ldu: *const lapackint,
3528    VT: *mut f32,
3529    ldvt: *const lapackint,
3530    work: *mut f32,
3531    lwork: *const lapackint,
3532    iwork: *mut lapackint,
3533    info: *mut lapackint,
3534);
3535
3536define_lapack_ffi!(zgesdd, ZgesddFnPtr,
3537    jobz: *const c_char,
3538    m: *const lapackint,
3539    n: *const lapackint,
3540    A: *mut Complex64,
3541    lda: *const lapackint,
3542    S: *mut f64,
3543    U: *mut Complex64,
3544    ldu: *const lapackint,
3545    VT: *mut Complex64,
3546    ldvt: *const lapackint,
3547    work: *mut Complex64,
3548    lwork: *const lapackint,
3549    rwork: *mut f64,
3550    iwork: *mut lapackint,
3551    info: *mut lapackint,
3552);
3553
3554// GESV
3555define_lapack_ffi!(cgesv, CgesvFnPtr,
3556    n: *const lapackint,
3557    nrhs: *const lapackint,
3558    A: *mut Complex32,
3559    lda: *const lapackint,
3560    ipiv: *mut lapackint,
3561    B: *mut Complex32,
3562    ldb: *const lapackint,
3563    info: *mut lapackint,
3564);
3565
3566define_lapack_ffi!(dgesv, DgesvFnPtr,
3567    n: *const lapackint,
3568    nrhs: *const lapackint,
3569    A: *mut f64,
3570    lda: *const lapackint,
3571    ipiv: *mut lapackint,
3572    B: *mut f64,
3573    ldb: *const lapackint,
3574    info: *mut lapackint,
3575);
3576
3577define_lapack_ffi!(sgesv, SgesvFnPtr,
3578    n: *const lapackint,
3579    nrhs: *const lapackint,
3580    A: *mut f32,
3581    lda: *const lapackint,
3582    ipiv: *mut lapackint,
3583    B: *mut f32,
3584    ldb: *const lapackint,
3585    info: *mut lapackint,
3586);
3587
3588define_lapack_ffi!(zgesv, ZgesvFnPtr,
3589    n: *const lapackint,
3590    nrhs: *const lapackint,
3591    A: *mut Complex64,
3592    lda: *const lapackint,
3593    ipiv: *mut lapackint,
3594    B: *mut Complex64,
3595    ldb: *const lapackint,
3596    info: *mut lapackint,
3597);
3598
3599// GESVD
3600define_lapack_ffi!(cgesvd, CgesvdFnPtr,
3601    jobu: *const c_char,
3602    jobvt: *const c_char,
3603    m: *const lapackint,
3604    n: *const lapackint,
3605    A: *mut Complex32,
3606    lda: *const lapackint,
3607    S: *mut f32,
3608    U: *mut Complex32,
3609    ldu: *const lapackint,
3610    VT: *mut Complex32,
3611    ldvt: *const lapackint,
3612    work: *mut Complex32,
3613    lwork: *const lapackint,
3614    rwork: *mut f32,
3615    info: *mut lapackint,
3616);
3617
3618define_lapack_ffi!(dgesvd, DgesvdFnPtr,
3619    jobu: *const c_char,
3620    jobvt: *const c_char,
3621    m: *const lapackint,
3622    n: *const lapackint,
3623    A: *mut f64,
3624    lda: *const lapackint,
3625    S: *mut f64,
3626    U: *mut f64,
3627    ldu: *const lapackint,
3628    VT: *mut f64,
3629    ldvt: *const lapackint,
3630    work: *mut f64,
3631    lwork: *const lapackint,
3632    info: *mut lapackint,
3633);
3634
3635define_lapack_ffi!(sgesvd, SgesvdFnPtr,
3636    jobu: *const c_char,
3637    jobvt: *const c_char,
3638    m: *const lapackint,
3639    n: *const lapackint,
3640    A: *mut f32,
3641    lda: *const lapackint,
3642    S: *mut f32,
3643    U: *mut f32,
3644    ldu: *const lapackint,
3645    VT: *mut f32,
3646    ldvt: *const lapackint,
3647    work: *mut f32,
3648    lwork: *const lapackint,
3649    info: *mut lapackint,
3650);
3651
3652define_lapack_ffi!(zgesvd, ZgesvdFnPtr,
3653    jobu: *const c_char,
3654    jobvt: *const c_char,
3655    m: *const lapackint,
3656    n: *const lapackint,
3657    A: *mut Complex64,
3658    lda: *const lapackint,
3659    S: *mut f64,
3660    U: *mut Complex64,
3661    ldu: *const lapackint,
3662    VT: *mut Complex64,
3663    ldvt: *const lapackint,
3664    work: *mut Complex64,
3665    lwork: *const lapackint,
3666    rwork: *mut f64,
3667    info: *mut lapackint,
3668);
3669
3670// GESVDQ
3671define_lapack_ffi!(cgesvdq, CgesvdqFnPtr,
3672    joba: *const c_char,
3673    jobp: *const c_char,
3674    jobr: *const c_char,
3675    jobu: *const c_char,
3676    jobv: *const c_char,
3677    m: *const lapackint,
3678    n: *const lapackint,
3679    A: *mut Complex32,
3680    lda: *const lapackint,
3681    S: *mut f32,
3682    U: *mut Complex32,
3683    ldu: *const lapackint,
3684    V: *mut Complex32,
3685    ldv: *const lapackint,
3686    numrank: *mut lapackint,
3687    iwork: *mut lapackint,
3688    liwork: *const lapackint,
3689    cwork: *mut Complex32,
3690    lcwork: *mut lapackint,
3691    rwork: *mut f32,
3692    lrwork: *const lapackint,
3693    info: *mut lapackint,
3694);
3695
3696define_lapack_ffi!(dgesvdq, DgesvdqFnPtr,
3697    joba: *const c_char,
3698    jobp: *const c_char,
3699    jobr: *const c_char,
3700    jobu: *const c_char,
3701    jobv: *const c_char,
3702    m: *const lapackint,
3703    n: *const lapackint,
3704    A: *mut f64,
3705    lda: *const lapackint,
3706    S: *mut f64,
3707    U: *mut f64,
3708    ldu: *const lapackint,
3709    V: *mut f64,
3710    ldv: *const lapackint,
3711    numrank: *mut lapackint,
3712    iwork: *mut lapackint,
3713    liwork: *const lapackint,
3714    work: *mut f64,
3715    lwork: *mut lapackint,
3716    rwork: *mut f64,
3717    lrwork: *const lapackint,
3718    info: *mut lapackint,
3719);
3720
3721define_lapack_ffi!(sgesvdq, SgesvdqFnPtr,
3722    joba: *const c_char,
3723    jobp: *const c_char,
3724    jobr: *const c_char,
3725    jobu: *const c_char,
3726    jobv: *const c_char,
3727    m: *const lapackint,
3728    n: *const lapackint,
3729    A: *mut f32,
3730    lda: *const lapackint,
3731    S: *mut f32,
3732    U: *mut f32,
3733    ldu: *const lapackint,
3734    V: *mut f32,
3735    ldv: *const lapackint,
3736    numrank: *mut lapackint,
3737    iwork: *mut lapackint,
3738    liwork: *const lapackint,
3739    work: *mut f32,
3740    lwork: *mut lapackint,
3741    rwork: *mut f32,
3742    lrwork: *const lapackint,
3743    info: *mut lapackint,
3744);
3745
3746define_lapack_ffi!(zgesvdq, ZgesvdqFnPtr,
3747    joba: *const c_char,
3748    jobp: *const c_char,
3749    jobr: *const c_char,
3750    jobu: *const c_char,
3751    jobv: *const c_char,
3752    m: *const lapackint,
3753    n: *const lapackint,
3754    A: *mut Complex64,
3755    lda: *const lapackint,
3756    S: *mut f64,
3757    U: *mut Complex64,
3758    ldu: *const lapackint,
3759    V: *mut Complex64,
3760    ldv: *const lapackint,
3761    numrank: *mut lapackint,
3762    iwork: *mut lapackint,
3763    liwork: *const lapackint,
3764    cwork: *mut Complex64,
3765    lcwork: *mut lapackint,
3766    rwork: *mut f64,
3767    lrwork: *const lapackint,
3768    info: *mut lapackint,
3769);
3770
3771// GESVDX
3772define_lapack_ffi!(cgesvdx, CgesvdxFnPtr,
3773    jobu: *const c_char,
3774    jobvt: *const c_char,
3775    range: *const c_char,
3776    m: *const lapackint,
3777    n: *const lapackint,
3778    A: *mut Complex32,
3779    lda: *const lapackint,
3780    vl: *const f32,
3781    vu: *const f32,
3782    il: *const lapackint,
3783    iu: *const lapackint,
3784    ns: *mut lapackint,
3785    S: *mut f32,
3786    U: *mut Complex32,
3787    ldu: *const lapackint,
3788    VT: *mut Complex32,
3789    ldvt: *const lapackint,
3790    work: *mut Complex32,
3791    lwork: *const lapackint,
3792    rwork: *mut f32,
3793    iwork: *mut lapackint,
3794    info: *mut lapackint,
3795);
3796
3797define_lapack_ffi!(dgesvdx, DgesvdxFnPtr,
3798    jobu: *const c_char,
3799    jobvt: *const c_char,
3800    range: *const c_char,
3801    m: *const lapackint,
3802    n: *const lapackint,
3803    A: *mut f64,
3804    lda: *const lapackint,
3805    vl: *const f64,
3806    vu: *const f64,
3807    il: *const lapackint,
3808    iu: *const lapackint,
3809    ns: *mut lapackint,
3810    S: *mut f64,
3811    U: *mut f64,
3812    ldu: *const lapackint,
3813    VT: *mut f64,
3814    ldvt: *const lapackint,
3815    work: *mut f64,
3816    lwork: *const lapackint,
3817    iwork: *mut lapackint,
3818    info: *mut lapackint,
3819);
3820
3821define_lapack_ffi!(sgesvdx, SgesvdxFnPtr,
3822    jobu: *const c_char,
3823    jobvt: *const c_char,
3824    range: *const c_char,
3825    m: *const lapackint,
3826    n: *const lapackint,
3827    A: *mut f32,
3828    lda: *const lapackint,
3829    vl: *const f32,
3830    vu: *const f32,
3831    il: *const lapackint,
3832    iu: *const lapackint,
3833    ns: *mut lapackint,
3834    S: *mut f32,
3835    U: *mut f32,
3836    ldu: *const lapackint,
3837    VT: *mut f32,
3838    ldvt: *const lapackint,
3839    work: *mut f32,
3840    lwork: *const lapackint,
3841    iwork: *mut lapackint,
3842    info: *mut lapackint,
3843);
3844
3845define_lapack_ffi!(zgesvdx, ZgesvdxFnPtr,
3846    jobu: *const c_char,
3847    jobvt: *const c_char,
3848    range: *const c_char,
3849    m: *const lapackint,
3850    n: *const lapackint,
3851    A: *mut Complex64,
3852    lda: *const lapackint,
3853    vl: *const f64,
3854    vu: *const f64,
3855    il: *const lapackint,
3856    iu: *const lapackint,
3857    ns: *mut lapackint,
3858    S: *mut f64,
3859    U: *mut Complex64,
3860    ldu: *const lapackint,
3861    VT: *mut Complex64,
3862    ldvt: *const lapackint,
3863    work: *mut Complex64,
3864    lwork: *const lapackint,
3865    rwork: *mut f64,
3866    iwork: *mut lapackint,
3867    info: *mut lapackint,
3868);
3869
3870// GESVJ
3871define_lapack_ffi!(cgesvj, CgesvjFnPtr,
3872    joba: *const c_char,
3873    jobu: *const c_char,
3874    jobv: *const c_char,
3875    m: *const lapackint,
3876    n: *const lapackint,
3877    A: *mut Complex32,
3878    lda: *const lapackint,
3879    SVA: *mut f32,
3880    mv: *const lapackint,
3881    V: *mut Complex32,
3882    ldv: *const lapackint,
3883    cwork: *mut Complex32,
3884    lwork: *const lapackint,
3885    rwork: *mut f32,
3886    lrwork: *const lapackint,
3887    info: *mut lapackint,
3888);
3889
3890define_lapack_ffi!(dgesvj, DgesvjFnPtr,
3891    joba: *const c_char,
3892    jobu: *const c_char,
3893    jobv: *const c_char,
3894    m: *const lapackint,
3895    n: *const lapackint,
3896    A: *mut f64,
3897    lda: *const lapackint,
3898    SVA: *mut f64,
3899    mv: *const lapackint,
3900    V: *mut f64,
3901    ldv: *const lapackint,
3902    work: *mut f64,
3903    lwork: *const lapackint,
3904    info: *mut lapackint,
3905);
3906
3907define_lapack_ffi!(sgesvj, SgesvjFnPtr,
3908    joba: *const c_char,
3909    jobu: *const c_char,
3910    jobv: *const c_char,
3911    m: *const lapackint,
3912    n: *const lapackint,
3913    A: *mut f32,
3914    lda: *const lapackint,
3915    SVA: *mut f32,
3916    mv: *const lapackint,
3917    V: *mut f32,
3918    ldv: *const lapackint,
3919    work: *mut f32,
3920    lwork: *const lapackint,
3921    info: *mut lapackint,
3922);
3923
3924define_lapack_ffi!(zgesvj, ZgesvjFnPtr,
3925    joba: *const c_char,
3926    jobu: *const c_char,
3927    jobv: *const c_char,
3928    m: *const lapackint,
3929    n: *const lapackint,
3930    A: *mut Complex64,
3931    lda: *const lapackint,
3932    SVA: *mut f64,
3933    mv: *const lapackint,
3934    V: *mut Complex64,
3935    ldv: *const lapackint,
3936    cwork: *mut Complex64,
3937    lwork: *const lapackint,
3938    rwork: *mut f64,
3939    lrwork: *const lapackint,
3940    info: *mut lapackint,
3941);
3942
3943// GESVX
3944define_lapack_ffi!(cgesvx, CgesvxFnPtr,
3945    fact: *const c_char,
3946    trans: *const c_char,
3947    n: *const lapackint,
3948    nrhs: *const lapackint,
3949    A: *mut Complex32,
3950    lda: *const lapackint,
3951    AF: *mut Complex32,
3952    ldaf: *const lapackint,
3953    ipiv: *mut lapackint,
3954    equed: *mut c_char,
3955    R: *mut f32,
3956    C: *mut f32,
3957    B: *mut Complex32,
3958    ldb: *const lapackint,
3959    X: *mut Complex32,
3960    ldx: *const lapackint,
3961    rcond: *mut f32,
3962    ferr: *mut f32,
3963    berr: *mut f32,
3964    work: *mut Complex32,
3965    rwork: *mut f32,
3966    info: *mut lapackint,
3967);
3968
3969define_lapack_ffi!(dgesvx, DgesvxFnPtr,
3970    fact: *const c_char,
3971    trans: *const c_char,
3972    n: *const lapackint,
3973    nrhs: *const lapackint,
3974    A: *mut f64,
3975    lda: *const lapackint,
3976    AF: *mut f64,
3977    ldaf: *const lapackint,
3978    ipiv: *mut lapackint,
3979    equed: *mut c_char,
3980    R: *mut f64,
3981    C: *mut f64,
3982    B: *mut f64,
3983    ldb: *const lapackint,
3984    X: *mut f64,
3985    ldx: *const lapackint,
3986    rcond: *mut f64,
3987    ferr: *mut f64,
3988    berr: *mut f64,
3989    work: *mut f64,
3990    iwork: *mut lapackint,
3991    info: *mut lapackint,
3992);
3993
3994define_lapack_ffi!(sgesvx, SgesvxFnPtr,
3995    fact: *const c_char,
3996    trans: *const c_char,
3997    n: *const lapackint,
3998    nrhs: *const lapackint,
3999    A: *mut f32,
4000    lda: *const lapackint,
4001    AF: *mut f32,
4002    ldaf: *const lapackint,
4003    ipiv: *mut lapackint,
4004    equed: *mut c_char,
4005    R: *mut f32,
4006    C: *mut f32,
4007    B: *mut f32,
4008    ldb: *const lapackint,
4009    X: *mut f32,
4010    ldx: *const lapackint,
4011    rcond: *mut f32,
4012    ferr: *mut f32,
4013    berr: *mut f32,
4014    work: *mut f32,
4015    iwork: *mut lapackint,
4016    info: *mut lapackint,
4017);
4018
4019define_lapack_ffi!(zgesvx, ZgesvxFnPtr,
4020    fact: *const c_char,
4021    trans: *const c_char,
4022    n: *const lapackint,
4023    nrhs: *const lapackint,
4024    A: *mut Complex64,
4025    lda: *const lapackint,
4026    AF: *mut Complex64,
4027    ldaf: *const lapackint,
4028    ipiv: *mut lapackint,
4029    equed: *mut c_char,
4030    R: *mut f64,
4031    C: *mut f64,
4032    B: *mut Complex64,
4033    ldb: *const lapackint,
4034    X: *mut Complex64,
4035    ldx: *const lapackint,
4036    rcond: *mut f64,
4037    ferr: *mut f64,
4038    berr: *mut f64,
4039    work: *mut Complex64,
4040    rwork: *mut f64,
4041    info: *mut lapackint,
4042);
4043
4044// GESVXX
4045define_lapack_ffi!(cgesvxx, CgesvxxFnPtr,
4046    fact: *const c_char,
4047    trans: *const c_char,
4048    n: *const lapackint,
4049    nrhs: *const lapackint,
4050    A: *mut Complex32,
4051    lda: *const lapackint,
4052    AF: *mut Complex32,
4053    ldaf: *const lapackint,
4054    ipiv: *mut lapackint,
4055    equed: *mut c_char,
4056    R: *mut f32,
4057    C: *mut f32,
4058    B: *mut Complex32,
4059    ldb: *const lapackint,
4060    X: *mut Complex32,
4061    ldx: *const lapackint,
4062    rcond: *mut f32,
4063    rpvgrw: *mut f32,
4064    berr: *mut f32,
4065    n_err_bnds: *const lapackint,
4066    err_bnds_norm: *mut f32,
4067    err_bnds_comp: *mut f32,
4068    nparams: *const lapackint,
4069    params: *mut f32,
4070    work: *mut Complex32,
4071    rwork: *mut f32,
4072    info: *mut lapackint,
4073);
4074
4075define_lapack_ffi!(dgesvxx, DgesvxxFnPtr,
4076    fact: *const c_char,
4077    trans: *const c_char,
4078    n: *const lapackint,
4079    nrhs: *const lapackint,
4080    A: *mut f64,
4081    lda: *const lapackint,
4082    AF: *mut f64,
4083    ldaf: *const lapackint,
4084    ipiv: *mut lapackint,
4085    equed: *mut c_char,
4086    R: *mut f64,
4087    C: *mut f64,
4088    B: *mut f64,
4089    ldb: *const lapackint,
4090    X: *mut f64,
4091    ldx: *const lapackint,
4092    rcond: *mut f64,
4093    rpvgrw: *mut f64,
4094    berr: *mut f64,
4095    n_err_bnds: *const lapackint,
4096    err_bnds_norm: *mut f64,
4097    err_bnds_comp: *mut f64,
4098    nparams: *const lapackint,
4099    params: *mut f64,
4100    work: *mut f64,
4101    iwork: *mut lapackint,
4102    info: *mut lapackint,
4103);
4104
4105define_lapack_ffi!(sgesvxx, SgesvxxFnPtr,
4106    fact: *const c_char,
4107    trans: *const c_char,
4108    n: *const lapackint,
4109    nrhs: *const lapackint,
4110    A: *mut f32,
4111    lda: *const lapackint,
4112    AF: *mut f32,
4113    ldaf: *const lapackint,
4114    ipiv: *mut lapackint,
4115    equed: *mut c_char,
4116    R: *mut f32,
4117    C: *mut f32,
4118    B: *mut f32,
4119    ldb: *const lapackint,
4120    X: *mut f32,
4121    ldx: *const lapackint,
4122    rcond: *mut f32,
4123    rpvgrw: *mut f32,
4124    berr: *mut f32,
4125    n_err_bnds: *const lapackint,
4126    err_bnds_norm: *mut f32,
4127    err_bnds_comp: *mut f32,
4128    nparams: *const lapackint,
4129    params: *mut f32,
4130    work: *mut f32,
4131    iwork: *mut lapackint,
4132    info: *mut lapackint,
4133);
4134
4135define_lapack_ffi!(zgesvxx, ZgesvxxFnPtr,
4136    fact: *const c_char,
4137    trans: *const c_char,
4138    n: *const lapackint,
4139    nrhs: *const lapackint,
4140    A: *mut Complex64,
4141    lda: *const lapackint,
4142    AF: *mut Complex64,
4143    ldaf: *const lapackint,
4144    ipiv: *mut lapackint,
4145    equed: *mut c_char,
4146    R: *mut f64,
4147    C: *mut f64,
4148    B: *mut Complex64,
4149    ldb: *const lapackint,
4150    X: *mut Complex64,
4151    ldx: *const lapackint,
4152    rcond: *mut f64,
4153    rpvgrw: *mut f64,
4154    berr: *mut f64,
4155    n_err_bnds: *const lapackint,
4156    err_bnds_norm: *mut f64,
4157    err_bnds_comp: *mut f64,
4158    nparams: *const lapackint,
4159    params: *mut f64,
4160    work: *mut Complex64,
4161    rwork: *mut f64,
4162    info: *mut lapackint,
4163);
4164
4165// GETC2
4166define_lapack_ffi!(cgetc2, Cgetc2FnPtr,
4167    n: *const lapackint,
4168    A: *mut Complex32,
4169    lda: *const lapackint,
4170    ipiv: *mut lapackint,
4171    jpiv: *mut lapackint,
4172    info: *mut lapackint,
4173);
4174
4175define_lapack_ffi!(dgetc2, Dgetc2FnPtr,
4176    n: *const lapackint,
4177    A: *mut f64,
4178    lda: *const lapackint,
4179    ipiv: *mut lapackint,
4180    jpiv: *mut lapackint,
4181    info: *mut lapackint,
4182);
4183
4184define_lapack_ffi!(sgetc2, Sgetc2FnPtr,
4185    n: *const lapackint,
4186    A: *mut f32,
4187    lda: *const lapackint,
4188    ipiv: *mut lapackint,
4189    jpiv: *mut lapackint,
4190    info: *mut lapackint,
4191);
4192
4193define_lapack_ffi!(zgetc2, Zgetc2FnPtr,
4194    n: *const lapackint,
4195    A: *mut Complex64,
4196    lda: *const lapackint,
4197    ipiv: *mut lapackint,
4198    jpiv: *mut lapackint,
4199    info: *mut lapackint,
4200);
4201
4202// GETF2
4203define_lapack_ffi!(cgetf2, Cgetf2FnPtr,
4204    m: *const lapackint,
4205    n: *const lapackint,
4206    A: *mut Complex32,
4207    lda: *const lapackint,
4208    ipiv: *mut lapackint,
4209    info: *mut lapackint,
4210);
4211
4212define_lapack_ffi!(dgetf2, Dgetf2FnPtr,
4213    m: *const lapackint,
4214    n: *const lapackint,
4215    A: *mut f64,
4216    lda: *const lapackint,
4217    ipiv: *mut lapackint,
4218    info: *mut lapackint,
4219);
4220
4221define_lapack_ffi!(sgetf2, Sgetf2FnPtr,
4222    m: *const lapackint,
4223    n: *const lapackint,
4224    A: *mut f32,
4225    lda: *const lapackint,
4226    ipiv: *mut lapackint,
4227    info: *mut lapackint,
4228);
4229
4230define_lapack_ffi!(zgetf2, Zgetf2FnPtr,
4231    m: *const lapackint,
4232    n: *const lapackint,
4233    A: *mut Complex64,
4234    lda: *const lapackint,
4235    ipiv: *mut lapackint,
4236    info: *mut lapackint,
4237);
4238
4239// GETRF
4240define_lapack_ffi!(cgetrf, CgetrfFnPtr,
4241    m: *const lapackint,
4242    n: *const lapackint,
4243    A: *mut Complex32,
4244    lda: *const lapackint,
4245    ipiv: *mut lapackint,
4246    info: *mut lapackint,
4247);
4248
4249define_lapack_ffi!(dgetrf, DgetrfFnPtr,
4250    m: *const lapackint,
4251    n: *const lapackint,
4252    A: *mut f64,
4253    lda: *const lapackint,
4254    ipiv: *mut lapackint,
4255    info: *mut lapackint,
4256);
4257
4258define_lapack_ffi!(sgetrf, SgetrfFnPtr,
4259    m: *const lapackint,
4260    n: *const lapackint,
4261    A: *mut f32,
4262    lda: *const lapackint,
4263    ipiv: *mut lapackint,
4264    info: *mut lapackint,
4265);
4266
4267define_lapack_ffi!(zgetrf, ZgetrfFnPtr,
4268    m: *const lapackint,
4269    n: *const lapackint,
4270    A: *mut Complex64,
4271    lda: *const lapackint,
4272    ipiv: *mut lapackint,
4273    info: *mut lapackint,
4274);
4275
4276// GETRF2
4277define_lapack_ffi!(cgetrf2, Cgetrf2FnPtr,
4278    m: *const lapackint,
4279    n: *const lapackint,
4280    A: *mut Complex32,
4281    lda: *const lapackint,
4282    ipiv: *mut lapackint,
4283    info: *mut lapackint,
4284);
4285
4286define_lapack_ffi!(dgetrf2, Dgetrf2FnPtr,
4287    m: *const lapackint,
4288    n: *const lapackint,
4289    A: *mut f64,
4290    lda: *const lapackint,
4291    ipiv: *mut lapackint,
4292    info: *mut lapackint,
4293);
4294
4295define_lapack_ffi!(sgetrf2, Sgetrf2FnPtr,
4296    m: *const lapackint,
4297    n: *const lapackint,
4298    A: *mut f32,
4299    lda: *const lapackint,
4300    ipiv: *mut lapackint,
4301    info: *mut lapackint,
4302);
4303
4304define_lapack_ffi!(zgetrf2, Zgetrf2FnPtr,
4305    m: *const lapackint,
4306    n: *const lapackint,
4307    A: *mut Complex64,
4308    lda: *const lapackint,
4309    ipiv: *mut lapackint,
4310    info: *mut lapackint,
4311);
4312
4313// GETRI
4314define_lapack_ffi!(cgetri, CgetriFnPtr,
4315    n: *const lapackint,
4316    A: *mut Complex32,
4317    lda: *const lapackint,
4318    ipiv: *const lapackint,
4319    work: *mut Complex32,
4320    lwork: *const lapackint,
4321    info: *mut lapackint,
4322);
4323
4324define_lapack_ffi!(dgetri, DgetriFnPtr,
4325    n: *const lapackint,
4326    A: *mut f64,
4327    lda: *const lapackint,
4328    ipiv: *const lapackint,
4329    work: *mut f64,
4330    lwork: *const lapackint,
4331    info: *mut lapackint,
4332);
4333
4334define_lapack_ffi!(sgetri, SgetriFnPtr,
4335    n: *const lapackint,
4336    A: *mut f32,
4337    lda: *const lapackint,
4338    ipiv: *const lapackint,
4339    work: *mut f32,
4340    lwork: *const lapackint,
4341    info: *mut lapackint,
4342);
4343
4344define_lapack_ffi!(zgetri, ZgetriFnPtr,
4345    n: *const lapackint,
4346    A: *mut Complex64,
4347    lda: *const lapackint,
4348    ipiv: *const lapackint,
4349    work: *mut Complex64,
4350    lwork: *const lapackint,
4351    info: *mut lapackint,
4352);
4353
4354// GETRS
4355define_lapack_ffi!(cgetrs, CgetrsFnPtr,
4356    trans: *const c_char,
4357    n: *const lapackint,
4358    nrhs: *const lapackint,
4359    A: *const Complex32,
4360    lda: *const lapackint,
4361    ipiv: *const lapackint,
4362    B: *mut Complex32,
4363    ldb: *const lapackint,
4364    info: *mut lapackint,
4365);
4366
4367define_lapack_ffi!(dgetrs, DgetrsFnPtr,
4368    trans: *const c_char,
4369    n: *const lapackint,
4370    nrhs: *const lapackint,
4371    A: *const f64,
4372    lda: *const lapackint,
4373    ipiv: *const lapackint,
4374    B: *mut f64,
4375    ldb: *const lapackint,
4376    info: *mut lapackint,
4377);
4378
4379define_lapack_ffi!(sgetrs, SgetrsFnPtr,
4380    trans: *const c_char,
4381    n: *const lapackint,
4382    nrhs: *const lapackint,
4383    A: *const f32,
4384    lda: *const lapackint,
4385    ipiv: *const lapackint,
4386    B: *mut f32,
4387    ldb: *const lapackint,
4388    info: *mut lapackint,
4389);
4390
4391define_lapack_ffi!(zgetrs, ZgetrsFnPtr,
4392    trans: *const c_char,
4393    n: *const lapackint,
4394    nrhs: *const lapackint,
4395    A: *const Complex64,
4396    lda: *const lapackint,
4397    ipiv: *const lapackint,
4398    B: *mut Complex64,
4399    ldb: *const lapackint,
4400    info: *mut lapackint,
4401);
4402
4403// GETSLS
4404define_lapack_ffi!(cgetsls, CgetslsFnPtr,
4405    trans: *const c_char,
4406    m: *const lapackint,
4407    n: *const lapackint,
4408    nrhs: *const lapackint,
4409    A: *mut Complex32,
4410    lda: *const lapackint,
4411    B: *mut Complex32,
4412    ldb: *const lapackint,
4413    work: *mut Complex32,
4414    lwork: *const lapackint,
4415    info: *mut lapackint,
4416);
4417
4418define_lapack_ffi!(dgetsls, DgetslsFnPtr,
4419    trans: *const c_char,
4420    m: *const lapackint,
4421    n: *const lapackint,
4422    nrhs: *const lapackint,
4423    A: *mut f64,
4424    lda: *const lapackint,
4425    B: *mut f64,
4426    ldb: *const lapackint,
4427    work: *mut f64,
4428    lwork: *const lapackint,
4429    info: *mut lapackint,
4430);
4431
4432define_lapack_ffi!(sgetsls, SgetslsFnPtr,
4433    trans: *const c_char,
4434    m: *const lapackint,
4435    n: *const lapackint,
4436    nrhs: *const lapackint,
4437    A: *mut f32,
4438    lda: *const lapackint,
4439    B: *mut f32,
4440    ldb: *const lapackint,
4441    work: *mut f32,
4442    lwork: *const lapackint,
4443    info: *mut lapackint,
4444);
4445
4446define_lapack_ffi!(zgetsls, ZgetslsFnPtr,
4447    trans: *const c_char,
4448    m: *const lapackint,
4449    n: *const lapackint,
4450    nrhs: *const lapackint,
4451    A: *mut Complex64,
4452    lda: *const lapackint,
4453    B: *mut Complex64,
4454    ldb: *const lapackint,
4455    work: *mut Complex64,
4456    lwork: *const lapackint,
4457    info: *mut lapackint,
4458);
4459
4460// GETSQRHRT
4461define_lapack_ffi!(cgetsqrhrt, CgetsqrhrtFnPtr,
4462    m: *const lapackint,
4463    n: *const lapackint,
4464    mb1: *const lapackint,
4465    nb1: *const lapackint,
4466    nb2: *const lapackint,
4467    A: *mut Complex32,
4468    lda: *const lapackint,
4469    T: *mut Complex32,
4470    ldt: *const lapackint,
4471    work: *mut Complex32,
4472    lwork: *const lapackint,
4473    info: *mut lapackint,
4474);
4475
4476define_lapack_ffi!(dgetsqrhrt, DgetsqrhrtFnPtr,
4477    m: *const lapackint,
4478    n: *const lapackint,
4479    mb1: *const lapackint,
4480    nb1: *const lapackint,
4481    nb2: *const lapackint,
4482    A: *mut f64,
4483    lda: *const lapackint,
4484    T: *mut f64,
4485    ldt: *const lapackint,
4486    work: *mut f64,
4487    lwork: *const lapackint,
4488    info: *mut lapackint,
4489);
4490
4491define_lapack_ffi!(sgetsqrhrt, SgetsqrhrtFnPtr,
4492    m: *const lapackint,
4493    n: *const lapackint,
4494    mb1: *const lapackint,
4495    nb1: *const lapackint,
4496    nb2: *const lapackint,
4497    A: *mut f32,
4498    lda: *const lapackint,
4499    T: *mut f32,
4500    ldt: *const lapackint,
4501    work: *mut f32,
4502    lwork: *const lapackint,
4503    info: *mut lapackint,
4504);
4505
4506define_lapack_ffi!(zgetsqrhrt, ZgetsqrhrtFnPtr,
4507    m: *const lapackint,
4508    n: *const lapackint,
4509    mb1: *const lapackint,
4510    nb1: *const lapackint,
4511    nb2: *const lapackint,
4512    A: *mut Complex64,
4513    lda: *const lapackint,
4514    T: *mut Complex64,
4515    ldt: *const lapackint,
4516    work: *mut Complex64,
4517    lwork: *const lapackint,
4518    info: *mut lapackint,
4519);
4520
4521// GGBAK
4522define_lapack_ffi!(cggbak, CggbakFnPtr,
4523    job: *const c_char,
4524    side: *const c_char,
4525    n: *const lapackint,
4526    ilo: *const lapackint,
4527    ihi: *const lapackint,
4528    lscale: *const f32,
4529    rscale: *const f32,
4530    m: *const lapackint,
4531    V: *mut Complex32,
4532    ldv: *const lapackint,
4533    info: *mut lapackint,
4534);
4535
4536define_lapack_ffi!(dggbak, DggbakFnPtr,
4537    job: *const c_char,
4538    side: *const c_char,
4539    n: *const lapackint,
4540    ilo: *const lapackint,
4541    ihi: *const lapackint,
4542    lscale: *const f64,
4543    rscale: *const f64,
4544    m: *const lapackint,
4545    V: *mut f64,
4546    ldv: *const lapackint,
4547    info: *mut lapackint,
4548);
4549
4550define_lapack_ffi!(sggbak, SggbakFnPtr,
4551    job: *const c_char,
4552    side: *const c_char,
4553    n: *const lapackint,
4554    ilo: *const lapackint,
4555    ihi: *const lapackint,
4556    lscale: *const f32,
4557    rscale: *const f32,
4558    m: *const lapackint,
4559    V: *mut f32,
4560    ldv: *const lapackint,
4561    info: *mut lapackint,
4562);
4563
4564define_lapack_ffi!(zggbak, ZggbakFnPtr,
4565    job: *const c_char,
4566    side: *const c_char,
4567    n: *const lapackint,
4568    ilo: *const lapackint,
4569    ihi: *const lapackint,
4570    lscale: *const f64,
4571    rscale: *const f64,
4572    m: *const lapackint,
4573    V: *mut Complex64,
4574    ldv: *const lapackint,
4575    info: *mut lapackint,
4576);
4577
4578// GGBAL
4579define_lapack_ffi!(cggbal, CggbalFnPtr,
4580    job: *const c_char,
4581    n: *const lapackint,
4582    A: *mut Complex32,
4583    lda: *const lapackint,
4584    B: *mut Complex32,
4585    ldb: *const lapackint,
4586    ilo: *mut lapackint,
4587    ihi: *mut lapackint,
4588    lscale: *mut f32,
4589    rscale: *mut f32,
4590    work: *mut f32,
4591    info: *mut lapackint,
4592);
4593
4594define_lapack_ffi!(dggbal, DggbalFnPtr,
4595    job: *const c_char,
4596    n: *const lapackint,
4597    A: *mut f64,
4598    lda: *const lapackint,
4599    B: *mut f64,
4600    ldb: *const lapackint,
4601    ilo: *mut lapackint,
4602    ihi: *mut lapackint,
4603    lscale: *mut f64,
4604    rscale: *mut f64,
4605    work: *mut f64,
4606    info: *mut lapackint,
4607);
4608
4609define_lapack_ffi!(sggbal, SggbalFnPtr,
4610    job: *const c_char,
4611    n: *const lapackint,
4612    A: *mut f32,
4613    lda: *const lapackint,
4614    B: *mut f32,
4615    ldb: *const lapackint,
4616    ilo: *mut lapackint,
4617    ihi: *mut lapackint,
4618    lscale: *mut f32,
4619    rscale: *mut f32,
4620    work: *mut f32,
4621    info: *mut lapackint,
4622);
4623
4624define_lapack_ffi!(zggbal, ZggbalFnPtr,
4625    job: *const c_char,
4626    n: *const lapackint,
4627    A: *mut Complex64,
4628    lda: *const lapackint,
4629    B: *mut Complex64,
4630    ldb: *const lapackint,
4631    ilo: *mut lapackint,
4632    ihi: *mut lapackint,
4633    lscale: *mut f64,
4634    rscale: *mut f64,
4635    work: *mut f64,
4636    info: *mut lapackint,
4637);
4638
4639// GGES
4640define_lapack_ffi!(cgges, CggesFnPtr,
4641    jobvsl: *const c_char,
4642    jobvsr: *const c_char,
4643    sort: *const c_char,
4644    selctg: Option<CSelectFn2>,
4645    n: *const lapackint,
4646    A: *mut Complex32,
4647    lda: *const lapackint,
4648    B: *mut Complex32,
4649    ldb: *const lapackint,
4650    sdim: *mut lapackint,
4651    alpha: *mut Complex32,
4652    beta: *mut Complex32,
4653    VSL: *mut Complex32,
4654    ldvsl: *const lapackint,
4655    VSR: *mut Complex32,
4656    ldvsr: *const lapackint,
4657    work: *mut Complex32,
4658    lwork: *const lapackint,
4659    rwork: *mut f32,
4660    BWORK: *mut lapackint,
4661    info: *mut lapackint,
4662);
4663
4664define_lapack_ffi!(dgges, DggesFnPtr,
4665    jobvsl: *const c_char,
4666    jobvsr: *const c_char,
4667    sort: *const c_char,
4668    selctg: Option<DSelectFn3>,
4669    n: *const lapackint,
4670    A: *mut f64,
4671    lda: *const lapackint,
4672    B: *mut f64,
4673    ldb: *const lapackint,
4674    sdim: *mut lapackint,
4675    alphar: *mut f64,
4676    alphai: *mut f64,
4677    beta: *mut f64,
4678    VSL: *mut f64,
4679    ldvsl: *const lapackint,
4680    VSR: *mut f64,
4681    ldvsr: *const lapackint,
4682    work: *mut f64,
4683    lwork: *const lapackint,
4684    BWORK: *mut lapackint,
4685    info: *mut lapackint,
4686);
4687
4688define_lapack_ffi!(sgges, SggesFnPtr,
4689    jobvsl: *const c_char,
4690    jobvsr: *const c_char,
4691    sort: *const c_char,
4692    selctg: Option<SSelectFn3>,
4693    n: *const lapackint,
4694    A: *mut f32,
4695    lda: *const lapackint,
4696    B: *mut f32,
4697    ldb: *const lapackint,
4698    sdim: *mut lapackint,
4699    alphar: *mut f32,
4700    alphai: *mut f32,
4701    beta: *mut f32,
4702    VSL: *mut f32,
4703    ldvsl: *const lapackint,
4704    VSR: *mut f32,
4705    ldvsr: *const lapackint,
4706    work: *mut f32,
4707    lwork: *const lapackint,
4708    BWORK: *mut lapackint,
4709    info: *mut lapackint,
4710);
4711
4712define_lapack_ffi!(zgges, ZggesFnPtr,
4713    jobvsl: *const c_char,
4714    jobvsr: *const c_char,
4715    sort: *const c_char,
4716    selctg: Option<ZSelectFn2>,
4717    n: *const lapackint,
4718    A: *mut Complex64,
4719    lda: *const lapackint,
4720    B: *mut Complex64,
4721    ldb: *const lapackint,
4722    sdim: *mut lapackint,
4723    alpha: *mut Complex64,
4724    beta: *mut Complex64,
4725    VSL: *mut Complex64,
4726    ldvsl: *const lapackint,
4727    VSR: *mut Complex64,
4728    ldvsr: *const lapackint,
4729    work: *mut Complex64,
4730    lwork: *const lapackint,
4731    rwork: *mut f64,
4732    BWORK: *mut lapackint,
4733    info: *mut lapackint,
4734);
4735
4736// GGES3
4737define_lapack_ffi!(cgges3, Cgges3FnPtr,
4738    jobvsl: *const c_char,
4739    jobvsr: *const c_char,
4740    sort: *const c_char,
4741    selctg: Option<CSelectFn2>,
4742    n: *const lapackint,
4743    A: *mut Complex32,
4744    lda: *const lapackint,
4745    B: *mut Complex32,
4746    ldb: *const lapackint,
4747    sdim: *mut lapackint,
4748    alpha: *mut Complex32,
4749    beta: *mut Complex32,
4750    VSL: *mut Complex32,
4751    ldvsl: *const lapackint,
4752    VSR: *mut Complex32,
4753    ldvsr: *const lapackint,
4754    work: *mut Complex32,
4755    lwork: *const lapackint,
4756    rwork: *mut f32,
4757    BWORK: *mut lapackint,
4758    info: *mut lapackint,
4759);
4760
4761define_lapack_ffi!(dgges3, Dgges3FnPtr,
4762    jobvsl: *const c_char,
4763    jobvsr: *const c_char,
4764    sort: *const c_char,
4765    selctg: Option<DSelectFn3>,
4766    n: *const lapackint,
4767    A: *mut f64,
4768    lda: *const lapackint,
4769    B: *mut f64,
4770    ldb: *const lapackint,
4771    sdim: *mut lapackint,
4772    alphar: *mut f64,
4773    alphai: *mut f64,
4774    beta: *mut f64,
4775    VSL: *mut f64,
4776    ldvsl: *const lapackint,
4777    VSR: *mut f64,
4778    ldvsr: *const lapackint,
4779    work: *mut f64,
4780    lwork: *const lapackint,
4781    BWORK: *mut lapackint,
4782    info: *mut lapackint,
4783);
4784
4785define_lapack_ffi!(sgges3, Sgges3FnPtr,
4786    jobvsl: *const c_char,
4787    jobvsr: *const c_char,
4788    sort: *const c_char,
4789    selctg: Option<SSelectFn3>,
4790    n: *const lapackint,
4791    A: *mut f32,
4792    lda: *const lapackint,
4793    B: *mut f32,
4794    ldb: *const lapackint,
4795    sdim: *mut lapackint,
4796    alphar: *mut f32,
4797    alphai: *mut f32,
4798    beta: *mut f32,
4799    VSL: *mut f32,
4800    ldvsl: *const lapackint,
4801    VSR: *mut f32,
4802    ldvsr: *const lapackint,
4803    work: *mut f32,
4804    lwork: *const lapackint,
4805    BWORK: *mut lapackint,
4806    info: *mut lapackint,
4807);
4808
4809define_lapack_ffi!(zgges3, Zgges3FnPtr,
4810    jobvsl: *const c_char,
4811    jobvsr: *const c_char,
4812    sort: *const c_char,
4813    selctg: Option<ZSelectFn2>,
4814    n: *const lapackint,
4815    A: *mut Complex64,
4816    lda: *const lapackint,
4817    B: *mut Complex64,
4818    ldb: *const lapackint,
4819    sdim: *mut lapackint,
4820    alpha: *mut Complex64,
4821    beta: *mut Complex64,
4822    VSL: *mut Complex64,
4823    ldvsl: *const lapackint,
4824    VSR: *mut Complex64,
4825    ldvsr: *const lapackint,
4826    work: *mut Complex64,
4827    lwork: *const lapackint,
4828    rwork: *mut f64,
4829    BWORK: *mut lapackint,
4830    info: *mut lapackint,
4831);
4832
4833// GGESX
4834define_lapack_ffi!(cggesx, CggesxFnPtr,
4835    jobvsl: *const c_char,
4836    jobvsr: *const c_char,
4837    sort: *const c_char,
4838    selctg: Option<CSelectFn2>,
4839    sense: *const c_char,
4840    n: *const lapackint,
4841    A: *mut Complex32,
4842    lda: *const lapackint,
4843    B: *mut Complex32,
4844    ldb: *const lapackint,
4845    sdim: *mut lapackint,
4846    alpha: *mut Complex32,
4847    beta: *mut Complex32,
4848    VSL: *mut Complex32,
4849    ldvsl: *const lapackint,
4850    VSR: *mut Complex32,
4851    ldvsr: *const lapackint,
4852    rconde: *mut f32,
4853    rcondv: *mut f32,
4854    work: *mut Complex32,
4855    lwork: *const lapackint,
4856    rwork: *mut f32,
4857    iwork: *mut lapackint,
4858    liwork: *const lapackint,
4859    BWORK: *mut lapackint,
4860    info: *mut lapackint,
4861);
4862
4863define_lapack_ffi!(dggesx, DggesxFnPtr,
4864    jobvsl: *const c_char,
4865    jobvsr: *const c_char,
4866    sort: *const c_char,
4867    selctg: Option<DSelectFn3>,
4868    sense: *const c_char,
4869    n: *const lapackint,
4870    A: *mut f64,
4871    lda: *const lapackint,
4872    B: *mut f64,
4873    ldb: *const lapackint,
4874    sdim: *mut lapackint,
4875    alphar: *mut f64,
4876    alphai: *mut f64,
4877    beta: *mut f64,
4878    VSL: *mut f64,
4879    ldvsl: *const lapackint,
4880    VSR: *mut f64,
4881    ldvsr: *const lapackint,
4882    rconde: *mut f64,
4883    rcondv: *mut f64,
4884    work: *mut f64,
4885    lwork: *const lapackint,
4886    iwork: *mut lapackint,
4887    liwork: *const lapackint,
4888    BWORK: *mut lapackint,
4889    info: *mut lapackint,
4890);
4891
4892define_lapack_ffi!(sggesx, SggesxFnPtr,
4893    jobvsl: *const c_char,
4894    jobvsr: *const c_char,
4895    sort: *const c_char,
4896    selctg: Option<SSelectFn3>,
4897    sense: *const c_char,
4898    n: *const lapackint,
4899    A: *mut f32,
4900    lda: *const lapackint,
4901    B: *mut f32,
4902    ldb: *const lapackint,
4903    sdim: *mut lapackint,
4904    alphar: *mut f32,
4905    alphai: *mut f32,
4906    beta: *mut f32,
4907    VSL: *mut f32,
4908    ldvsl: *const lapackint,
4909    VSR: *mut f32,
4910    ldvsr: *const lapackint,
4911    rconde: *mut f32,
4912    rcondv: *mut f32,
4913    work: *mut f32,
4914    lwork: *const lapackint,
4915    iwork: *mut lapackint,
4916    liwork: *const lapackint,
4917    BWORK: *mut lapackint,
4918    info: *mut lapackint,
4919);
4920
4921define_lapack_ffi!(zggesx, ZggesxFnPtr,
4922    jobvsl: *const c_char,
4923    jobvsr: *const c_char,
4924    sort: *const c_char,
4925    selctg: Option<ZSelectFn2>,
4926    sense: *const c_char,
4927    n: *const lapackint,
4928    A: *mut Complex64,
4929    lda: *const lapackint,
4930    B: *mut Complex64,
4931    ldb: *const lapackint,
4932    sdim: *mut lapackint,
4933    alpha: *mut Complex64,
4934    beta: *mut Complex64,
4935    VSL: *mut Complex64,
4936    ldvsl: *const lapackint,
4937    VSR: *mut Complex64,
4938    ldvsr: *const lapackint,
4939    rconde: *mut f64,
4940    rcondv: *mut f64,
4941    work: *mut Complex64,
4942    lwork: *const lapackint,
4943    rwork: *mut f64,
4944    iwork: *mut lapackint,
4945    liwork: *const lapackint,
4946    BWORK: *mut lapackint,
4947    info: *mut lapackint,
4948);
4949
4950// GGEV
4951define_lapack_ffi!(cggev, CggevFnPtr,
4952    jobvl: *const c_char,
4953    jobvr: *const c_char,
4954    n: *const lapackint,
4955    A: *mut Complex32,
4956    lda: *const lapackint,
4957    B: *mut Complex32,
4958    ldb: *const lapackint,
4959    alpha: *mut Complex32,
4960    beta: *mut Complex32,
4961    VL: *mut Complex32,
4962    ldvl: *const lapackint,
4963    VR: *mut Complex32,
4964    ldvr: *const lapackint,
4965    work: *mut Complex32,
4966    lwork: *const lapackint,
4967    rwork: *mut f32,
4968    info: *mut lapackint,
4969);
4970
4971define_lapack_ffi!(dggev, DggevFnPtr,
4972    jobvl: *const c_char,
4973    jobvr: *const c_char,
4974    n: *const lapackint,
4975    A: *mut f64,
4976    lda: *const lapackint,
4977    B: *mut f64,
4978    ldb: *const lapackint,
4979    alphar: *mut f64,
4980    alphai: *mut f64,
4981    beta: *mut f64,
4982    VL: *mut f64,
4983    ldvl: *const lapackint,
4984    VR: *mut f64,
4985    ldvr: *const lapackint,
4986    work: *mut f64,
4987    lwork: *const lapackint,
4988    info: *mut lapackint,
4989);
4990
4991define_lapack_ffi!(sggev, SggevFnPtr,
4992    jobvl: *const c_char,
4993    jobvr: *const c_char,
4994    n: *const lapackint,
4995    A: *mut f32,
4996    lda: *const lapackint,
4997    B: *mut f32,
4998    ldb: *const lapackint,
4999    alphar: *mut f32,
5000    alphai: *mut f32,
5001    beta: *mut f32,
5002    VL: *mut f32,
5003    ldvl: *const lapackint,
5004    VR: *mut f32,
5005    ldvr: *const lapackint,
5006    work: *mut f32,
5007    lwork: *const lapackint,
5008    info: *mut lapackint,
5009);
5010
5011define_lapack_ffi!(zggev, ZggevFnPtr,
5012    jobvl: *const c_char,
5013    jobvr: *const c_char,
5014    n: *const lapackint,
5015    A: *mut Complex64,
5016    lda: *const lapackint,
5017    B: *mut Complex64,
5018    ldb: *const lapackint,
5019    alpha: *mut Complex64,
5020    beta: *mut Complex64,
5021    VL: *mut Complex64,
5022    ldvl: *const lapackint,
5023    VR: *mut Complex64,
5024    ldvr: *const lapackint,
5025    work: *mut Complex64,
5026    lwork: *const lapackint,
5027    rwork: *mut f64,
5028    info: *mut lapackint,
5029);
5030
5031// GGEV3
5032define_lapack_ffi!(cggev3, Cggev3FnPtr,
5033    jobvl: *const c_char,
5034    jobvr: *const c_char,
5035    n: *const lapackint,
5036    A: *mut Complex32,
5037    lda: *const lapackint,
5038    B: *mut Complex32,
5039    ldb: *const lapackint,
5040    alpha: *mut Complex32,
5041    beta: *mut Complex32,
5042    VL: *mut Complex32,
5043    ldvl: *const lapackint,
5044    VR: *mut Complex32,
5045    ldvr: *const lapackint,
5046    work: *mut Complex32,
5047    lwork: *const lapackint,
5048    rwork: *mut f32,
5049    info: *mut lapackint,
5050);
5051
5052define_lapack_ffi!(dggev3, Dggev3FnPtr,
5053    jobvl: *const c_char,
5054    jobvr: *const c_char,
5055    n: *const lapackint,
5056    A: *mut f64,
5057    lda: *const lapackint,
5058    B: *mut f64,
5059    ldb: *const lapackint,
5060    alphar: *mut f64,
5061    alphai: *mut f64,
5062    beta: *mut f64,
5063    VL: *mut f64,
5064    ldvl: *const lapackint,
5065    VR: *mut f64,
5066    ldvr: *const lapackint,
5067    work: *mut f64,
5068    lwork: *const lapackint,
5069    info: *mut lapackint,
5070);
5071
5072define_lapack_ffi!(sggev3, Sggev3FnPtr,
5073    jobvl: *const c_char,
5074    jobvr: *const c_char,
5075    n: *const lapackint,
5076    A: *mut f32,
5077    lda: *const lapackint,
5078    B: *mut f32,
5079    ldb: *const lapackint,
5080    alphar: *mut f32,
5081    alphai: *mut f32,
5082    beta: *mut f32,
5083    VL: *mut f32,
5084    ldvl: *const lapackint,
5085    VR: *mut f32,
5086    ldvr: *const lapackint,
5087    work: *mut f32,
5088    lwork: *const lapackint,
5089    info: *mut lapackint,
5090);
5091
5092define_lapack_ffi!(zggev3, Zggev3FnPtr,
5093    jobvl: *const c_char,
5094    jobvr: *const c_char,
5095    n: *const lapackint,
5096    A: *mut Complex64,
5097    lda: *const lapackint,
5098    B: *mut Complex64,
5099    ldb: *const lapackint,
5100    alpha: *mut Complex64,
5101    beta: *mut Complex64,
5102    VL: *mut Complex64,
5103    ldvl: *const lapackint,
5104    VR: *mut Complex64,
5105    ldvr: *const lapackint,
5106    work: *mut Complex64,
5107    lwork: *const lapackint,
5108    rwork: *mut f64,
5109    info: *mut lapackint,
5110);
5111
5112// GGEVX
5113define_lapack_ffi!(cggevx, CggevxFnPtr,
5114    balanc: *const c_char,
5115    jobvl: *const c_char,
5116    jobvr: *const c_char,
5117    sense: *const c_char,
5118    n: *const lapackint,
5119    A: *mut Complex32,
5120    lda: *const lapackint,
5121    B: *mut Complex32,
5122    ldb: *const lapackint,
5123    alpha: *mut Complex32,
5124    beta: *mut Complex32,
5125    VL: *mut Complex32,
5126    ldvl: *const lapackint,
5127    VR: *mut Complex32,
5128    ldvr: *const lapackint,
5129    ilo: *mut lapackint,
5130    ihi: *mut lapackint,
5131    lscale: *mut f32,
5132    rscale: *mut f32,
5133    abnrm: *mut f32,
5134    bbnrm: *mut f32,
5135    rconde: *mut f32,
5136    rcondv: *mut f32,
5137    work: *mut Complex32,
5138    lwork: *const lapackint,
5139    rwork: *mut f32,
5140    iwork: *mut lapackint,
5141    BWORK: *mut lapackint,
5142    info: *mut lapackint,
5143);
5144
5145define_lapack_ffi!(dggevx, DggevxFnPtr,
5146    balanc: *const c_char,
5147    jobvl: *const c_char,
5148    jobvr: *const c_char,
5149    sense: *const c_char,
5150    n: *const lapackint,
5151    A: *mut f64,
5152    lda: *const lapackint,
5153    B: *mut f64,
5154    ldb: *const lapackint,
5155    alphar: *mut f64,
5156    alphai: *mut f64,
5157    beta: *mut f64,
5158    VL: *mut f64,
5159    ldvl: *const lapackint,
5160    VR: *mut f64,
5161    ldvr: *const lapackint,
5162    ilo: *mut lapackint,
5163    ihi: *mut lapackint,
5164    lscale: *mut f64,
5165    rscale: *mut f64,
5166    abnrm: *mut f64,
5167    bbnrm: *mut f64,
5168    rconde: *mut f64,
5169    rcondv: *mut f64,
5170    work: *mut f64,
5171    lwork: *const lapackint,
5172    iwork: *mut lapackint,
5173    BWORK: *mut lapackint,
5174    info: *mut lapackint,
5175);
5176
5177define_lapack_ffi!(sggevx, SggevxFnPtr,
5178    balanc: *const c_char,
5179    jobvl: *const c_char,
5180    jobvr: *const c_char,
5181    sense: *const c_char,
5182    n: *const lapackint,
5183    A: *mut f32,
5184    lda: *const lapackint,
5185    B: *mut f32,
5186    ldb: *const lapackint,
5187    alphar: *mut f32,
5188    alphai: *mut f32,
5189    beta: *mut f32,
5190    VL: *mut f32,
5191    ldvl: *const lapackint,
5192    VR: *mut f32,
5193    ldvr: *const lapackint,
5194    ilo: *mut lapackint,
5195    ihi: *mut lapackint,
5196    lscale: *mut f32,
5197    rscale: *mut f32,
5198    abnrm: *mut f32,
5199    bbnrm: *mut f32,
5200    rconde: *mut f32,
5201    rcondv: *mut f32,
5202    work: *mut f32,
5203    lwork: *const lapackint,
5204    iwork: *mut lapackint,
5205    BWORK: *mut lapackint,
5206    info: *mut lapackint,
5207);
5208
5209define_lapack_ffi!(zggevx, ZggevxFnPtr,
5210    balanc: *const c_char,
5211    jobvl: *const c_char,
5212    jobvr: *const c_char,
5213    sense: *const c_char,
5214    n: *const lapackint,
5215    A: *mut Complex64,
5216    lda: *const lapackint,
5217    B: *mut Complex64,
5218    ldb: *const lapackint,
5219    alpha: *mut Complex64,
5220    beta: *mut Complex64,
5221    VL: *mut Complex64,
5222    ldvl: *const lapackint,
5223    VR: *mut Complex64,
5224    ldvr: *const lapackint,
5225    ilo: *mut lapackint,
5226    ihi: *mut lapackint,
5227    lscale: *mut f64,
5228    rscale: *mut f64,
5229    abnrm: *mut f64,
5230    bbnrm: *mut f64,
5231    rconde: *mut f64,
5232    rcondv: *mut f64,
5233    work: *mut Complex64,
5234    lwork: *const lapackint,
5235    rwork: *mut f64,
5236    iwork: *mut lapackint,
5237    BWORK: *mut lapackint,
5238    info: *mut lapackint,
5239);
5240
5241// GGGLM
5242define_lapack_ffi!(cggglm, CggglmFnPtr,
5243    n: *const lapackint,
5244    m: *const lapackint,
5245    p: *const lapackint,
5246    A: *mut Complex32,
5247    lda: *const lapackint,
5248    B: *mut Complex32,
5249    ldb: *const lapackint,
5250    D: *mut Complex32,
5251    X: *mut Complex32,
5252    Y: *mut Complex32,
5253    work: *mut Complex32,
5254    lwork: *const lapackint,
5255    info: *mut lapackint,
5256);
5257
5258define_lapack_ffi!(dggglm, DggglmFnPtr,
5259    n: *const lapackint,
5260    m: *const lapackint,
5261    p: *const lapackint,
5262    A: *mut f64,
5263    lda: *const lapackint,
5264    B: *mut f64,
5265    ldb: *const lapackint,
5266    D: *mut f64,
5267    X: *mut f64,
5268    Y: *mut f64,
5269    work: *mut f64,
5270    lwork: *const lapackint,
5271    info: *mut lapackint,
5272);
5273
5274define_lapack_ffi!(sggglm, SggglmFnPtr,
5275    n: *const lapackint,
5276    m: *const lapackint,
5277    p: *const lapackint,
5278    A: *mut f32,
5279    lda: *const lapackint,
5280    B: *mut f32,
5281    ldb: *const lapackint,
5282    D: *mut f32,
5283    X: *mut f32,
5284    Y: *mut f32,
5285    work: *mut f32,
5286    lwork: *const lapackint,
5287    info: *mut lapackint,
5288);
5289
5290define_lapack_ffi!(zggglm, ZggglmFnPtr,
5291    n: *const lapackint,
5292    m: *const lapackint,
5293    p: *const lapackint,
5294    A: *mut Complex64,
5295    lda: *const lapackint,
5296    B: *mut Complex64,
5297    ldb: *const lapackint,
5298    D: *mut Complex64,
5299    X: *mut Complex64,
5300    Y: *mut Complex64,
5301    work: *mut Complex64,
5302    lwork: *const lapackint,
5303    info: *mut lapackint,
5304);
5305
5306// GGHD3
5307define_lapack_ffi!(cgghd3, Cgghd3FnPtr,
5308    compq: *const c_char,
5309    compz: *const c_char,
5310    n: *const lapackint,
5311    ilo: *const lapackint,
5312    ihi: *const lapackint,
5313    A: *mut Complex32,
5314    lda: *const lapackint,
5315    B: *mut Complex32,
5316    ldb: *const lapackint,
5317    Q: *mut Complex32,
5318    ldq: *const lapackint,
5319    Z: *mut Complex32,
5320    ldz: *const lapackint,
5321    work: *mut Complex32,
5322    lwork: *const lapackint,
5323    info: *mut lapackint,
5324);
5325
5326define_lapack_ffi!(dgghd3, Dgghd3FnPtr,
5327    compq: *const c_char,
5328    compz: *const c_char,
5329    n: *const lapackint,
5330    ilo: *const lapackint,
5331    ihi: *const lapackint,
5332    A: *mut f64,
5333    lda: *const lapackint,
5334    B: *mut f64,
5335    ldb: *const lapackint,
5336    Q: *mut f64,
5337    ldq: *const lapackint,
5338    Z: *mut f64,
5339    ldz: *const lapackint,
5340    work: *mut f64,
5341    lwork: *const lapackint,
5342    info: *mut lapackint,
5343);
5344
5345define_lapack_ffi!(sgghd3, Sgghd3FnPtr,
5346    compq: *const c_char,
5347    compz: *const c_char,
5348    n: *const lapackint,
5349    ilo: *const lapackint,
5350    ihi: *const lapackint,
5351    A: *mut f32,
5352    lda: *const lapackint,
5353    B: *mut f32,
5354    ldb: *const lapackint,
5355    Q: *mut f32,
5356    ldq: *const lapackint,
5357    Z: *mut f32,
5358    ldz: *const lapackint,
5359    work: *mut f32,
5360    lwork: *const lapackint,
5361    info: *mut lapackint,
5362);
5363
5364define_lapack_ffi!(zgghd3, Zgghd3FnPtr,
5365    compq: *const c_char,
5366    compz: *const c_char,
5367    n: *const lapackint,
5368    ilo: *const lapackint,
5369    ihi: *const lapackint,
5370    A: *mut Complex64,
5371    lda: *const lapackint,
5372    B: *mut Complex64,
5373    ldb: *const lapackint,
5374    Q: *mut Complex64,
5375    ldq: *const lapackint,
5376    Z: *mut Complex64,
5377    ldz: *const lapackint,
5378    work: *mut Complex64,
5379    lwork: *const lapackint,
5380    info: *mut lapackint,
5381);
5382
5383// GGHRD
5384define_lapack_ffi!(cgghrd, CgghrdFnPtr,
5385    compq: *const c_char,
5386    compz: *const c_char,
5387    n: *const lapackint,
5388    ilo: *const lapackint,
5389    ihi: *const lapackint,
5390    A: *mut Complex32,
5391    lda: *const lapackint,
5392    B: *mut Complex32,
5393    ldb: *const lapackint,
5394    Q: *mut Complex32,
5395    ldq: *const lapackint,
5396    Z: *mut Complex32,
5397    ldz: *const lapackint,
5398    info: *mut lapackint,
5399);
5400
5401define_lapack_ffi!(dgghrd, DgghrdFnPtr,
5402    compq: *const c_char,
5403    compz: *const c_char,
5404    n: *const lapackint,
5405    ilo: *const lapackint,
5406    ihi: *const lapackint,
5407    A: *mut f64,
5408    lda: *const lapackint,
5409    B: *mut f64,
5410    ldb: *const lapackint,
5411    Q: *mut f64,
5412    ldq: *const lapackint,
5413    Z: *mut f64,
5414    ldz: *const lapackint,
5415    info: *mut lapackint,
5416);
5417
5418define_lapack_ffi!(sgghrd, SgghrdFnPtr,
5419    compq: *const c_char,
5420    compz: *const c_char,
5421    n: *const lapackint,
5422    ilo: *const lapackint,
5423    ihi: *const lapackint,
5424    A: *mut f32,
5425    lda: *const lapackint,
5426    B: *mut f32,
5427    ldb: *const lapackint,
5428    Q: *mut f32,
5429    ldq: *const lapackint,
5430    Z: *mut f32,
5431    ldz: *const lapackint,
5432    info: *mut lapackint,
5433);
5434
5435define_lapack_ffi!(zgghrd, ZgghrdFnPtr,
5436    compq: *const c_char,
5437    compz: *const c_char,
5438    n: *const lapackint,
5439    ilo: *const lapackint,
5440    ihi: *const lapackint,
5441    A: *mut Complex64,
5442    lda: *const lapackint,
5443    B: *mut Complex64,
5444    ldb: *const lapackint,
5445    Q: *mut Complex64,
5446    ldq: *const lapackint,
5447    Z: *mut Complex64,
5448    ldz: *const lapackint,
5449    info: *mut lapackint,
5450);
5451
5452// GGLSE
5453define_lapack_ffi!(cgglse, CgglseFnPtr,
5454    m: *const lapackint,
5455    n: *const lapackint,
5456    p: *const lapackint,
5457    A: *mut Complex32,
5458    lda: *const lapackint,
5459    B: *mut Complex32,
5460    ldb: *const lapackint,
5461    C: *mut Complex32,
5462    D: *mut Complex32,
5463    X: *mut Complex32,
5464    work: *mut Complex32,
5465    lwork: *const lapackint,
5466    info: *mut lapackint,
5467);
5468
5469define_lapack_ffi!(dgglse, DgglseFnPtr,
5470    m: *const lapackint,
5471    n: *const lapackint,
5472    p: *const lapackint,
5473    A: *mut f64,
5474    lda: *const lapackint,
5475    B: *mut f64,
5476    ldb: *const lapackint,
5477    C: *mut f64,
5478    D: *mut f64,
5479    X: *mut f64,
5480    work: *mut f64,
5481    lwork: *const lapackint,
5482    info: *mut lapackint,
5483);
5484
5485define_lapack_ffi!(sgglse, SgglseFnPtr,
5486    m: *const lapackint,
5487    n: *const lapackint,
5488    p: *const lapackint,
5489    A: *mut f32,
5490    lda: *const lapackint,
5491    B: *mut f32,
5492    ldb: *const lapackint,
5493    C: *mut f32,
5494    D: *mut f32,
5495    X: *mut f32,
5496    work: *mut f32,
5497    lwork: *const lapackint,
5498    info: *mut lapackint,
5499);
5500
5501define_lapack_ffi!(zgglse, ZgglseFnPtr,
5502    m: *const lapackint,
5503    n: *const lapackint,
5504    p: *const lapackint,
5505    A: *mut Complex64,
5506    lda: *const lapackint,
5507    B: *mut Complex64,
5508    ldb: *const lapackint,
5509    C: *mut Complex64,
5510    D: *mut Complex64,
5511    X: *mut Complex64,
5512    work: *mut Complex64,
5513    lwork: *const lapackint,
5514    info: *mut lapackint,
5515);
5516
5517// GGQRF
5518define_lapack_ffi!(cggqrf, CggqrfFnPtr,
5519    n: *const lapackint,
5520    m: *const lapackint,
5521    p: *const lapackint,
5522    A: *mut Complex32,
5523    lda: *const lapackint,
5524    taua: *mut Complex32,
5525    B: *mut Complex32,
5526    ldb: *const lapackint,
5527    taub: *mut Complex32,
5528    work: *mut Complex32,
5529    lwork: *const lapackint,
5530    info: *mut lapackint,
5531);
5532
5533define_lapack_ffi!(dggqrf, DggqrfFnPtr,
5534    n: *const lapackint,
5535    m: *const lapackint,
5536    p: *const lapackint,
5537    A: *mut f64,
5538    lda: *const lapackint,
5539    taua: *mut f64,
5540    B: *mut f64,
5541    ldb: *const lapackint,
5542    taub: *mut f64,
5543    work: *mut f64,
5544    lwork: *const lapackint,
5545    info: *mut lapackint,
5546);
5547
5548define_lapack_ffi!(sggqrf, SggqrfFnPtr,
5549    n: *const lapackint,
5550    m: *const lapackint,
5551    p: *const lapackint,
5552    A: *mut f32,
5553    lda: *const lapackint,
5554    taua: *mut f32,
5555    B: *mut f32,
5556    ldb: *const lapackint,
5557    taub: *mut f32,
5558    work: *mut f32,
5559    lwork: *const lapackint,
5560    info: *mut lapackint,
5561);
5562
5563define_lapack_ffi!(zggqrf, ZggqrfFnPtr,
5564    n: *const lapackint,
5565    m: *const lapackint,
5566    p: *const lapackint,
5567    A: *mut Complex64,
5568    lda: *const lapackint,
5569    taua: *mut Complex64,
5570    B: *mut Complex64,
5571    ldb: *const lapackint,
5572    taub: *mut Complex64,
5573    work: *mut Complex64,
5574    lwork: *const lapackint,
5575    info: *mut lapackint,
5576);
5577
5578// GGRQF
5579define_lapack_ffi!(cggrqf, CggrqfFnPtr,
5580    m: *const lapackint,
5581    p: *const lapackint,
5582    n: *const lapackint,
5583    A: *mut Complex32,
5584    lda: *const lapackint,
5585    taua: *mut Complex32,
5586    B: *mut Complex32,
5587    ldb: *const lapackint,
5588    taub: *mut Complex32,
5589    work: *mut Complex32,
5590    lwork: *const lapackint,
5591    info: *mut lapackint,
5592);
5593
5594define_lapack_ffi!(dggrqf, DggrqfFnPtr,
5595    m: *const lapackint,
5596    p: *const lapackint,
5597    n: *const lapackint,
5598    A: *mut f64,
5599    lda: *const lapackint,
5600    taua: *mut f64,
5601    B: *mut f64,
5602    ldb: *const lapackint,
5603    taub: *mut f64,
5604    work: *mut f64,
5605    lwork: *const lapackint,
5606    info: *mut lapackint,
5607);
5608
5609define_lapack_ffi!(sggrqf, SggrqfFnPtr,
5610    m: *const lapackint,
5611    p: *const lapackint,
5612    n: *const lapackint,
5613    A: *mut f32,
5614    lda: *const lapackint,
5615    taua: *mut f32,
5616    B: *mut f32,
5617    ldb: *const lapackint,
5618    taub: *mut f32,
5619    work: *mut f32,
5620    lwork: *const lapackint,
5621    info: *mut lapackint,
5622);
5623
5624define_lapack_ffi!(zggrqf, ZggrqfFnPtr,
5625    m: *const lapackint,
5626    p: *const lapackint,
5627    n: *const lapackint,
5628    A: *mut Complex64,
5629    lda: *const lapackint,
5630    taua: *mut Complex64,
5631    B: *mut Complex64,
5632    ldb: *const lapackint,
5633    taub: *mut Complex64,
5634    work: *mut Complex64,
5635    lwork: *const lapackint,
5636    info: *mut lapackint,
5637);
5638
5639// GGSVD
5640define_lapack_ffi!(cggsvd, CggsvdFnPtr,
5641    jobu: *const c_char,
5642    jobv: *const c_char,
5643    jobq: *const c_char,
5644    m: *const lapackint,
5645    n: *const lapackint,
5646    p: *const lapackint,
5647    k: *mut lapackint,
5648    l: *mut lapackint,
5649    a: *mut Complex32,
5650    lda: *const lapackint,
5651    b: *mut Complex32,
5652    ldb: *const lapackint,
5653    alpha: *mut f32,
5654    beta: *mut f32,
5655    u: *mut Complex32,
5656    ldu: *const lapackint,
5657    v: *mut Complex32,
5658    ldv: *const lapackint,
5659    q: *mut Complex32,
5660    ldq: *const lapackint,
5661    work: *mut Complex32,
5662    rwork: *mut f32,
5663    iwork: *mut lapackint,
5664    info: *mut lapackint,
5665);
5666
5667define_lapack_ffi!(dggsvd, DggsvdFnPtr,
5668    jobu: *const c_char,
5669    jobv: *const c_char,
5670    jobq: *const c_char,
5671    m: *const lapackint,
5672    n: *const lapackint,
5673    p: *const lapackint,
5674    k: *mut lapackint,
5675    l: *mut lapackint,
5676    a: *mut f64,
5677    lda: *const lapackint,
5678    b: *mut f64,
5679    ldb: *const lapackint,
5680    alpha: *mut f64,
5681    beta: *mut f64,
5682    u: *mut f64,
5683    ldu: *const lapackint,
5684    v: *mut f64,
5685    ldv: *const lapackint,
5686    q: *mut f64,
5687    ldq: *const lapackint,
5688    work: *mut f64,
5689    iwork: *mut lapackint,
5690    info: *mut lapackint,
5691);
5692
5693define_lapack_ffi!(sggsvd, SggsvdFnPtr,
5694    jobu: *const c_char,
5695    jobv: *const c_char,
5696    jobq: *const c_char,
5697    m: *const lapackint,
5698    n: *const lapackint,
5699    p: *const lapackint,
5700    k: *mut lapackint,
5701    l: *mut lapackint,
5702    a: *mut f32,
5703    lda: *const lapackint,
5704    b: *mut f32,
5705    ldb: *const lapackint,
5706    alpha: *mut f32,
5707    beta: *mut f32,
5708    u: *mut f32,
5709    ldu: *const lapackint,
5710    v: *mut f32,
5711    ldv: *const lapackint,
5712    q: *mut f32,
5713    ldq: *const lapackint,
5714    work: *mut f32,
5715    iwork: *mut lapackint,
5716    info: *mut lapackint,
5717);
5718
5719define_lapack_ffi!(zggsvd, ZggsvdFnPtr,
5720    jobu: *const c_char,
5721    jobv: *const c_char,
5722    jobq: *const c_char,
5723    m: *const lapackint,
5724    n: *const lapackint,
5725    p: *const lapackint,
5726    k: *mut lapackint,
5727    l: *mut lapackint,
5728    a: *mut Complex64,
5729    lda: *const lapackint,
5730    b: *mut Complex64,
5731    ldb: *const lapackint,
5732    alpha: *mut f64,
5733    beta: *mut f64,
5734    u: *mut Complex64,
5735    ldu: *const lapackint,
5736    v: *mut Complex64,
5737    ldv: *const lapackint,
5738    q: *mut Complex64,
5739    ldq: *const lapackint,
5740    work: *mut Complex64,
5741    rwork: *mut f64,
5742    iwork: *mut lapackint,
5743    info: *mut lapackint,
5744);
5745
5746// GGSVD3
5747define_lapack_ffi!(cggsvd3, Cggsvd3FnPtr,
5748    jobu: *const c_char,
5749    jobv: *const c_char,
5750    jobq: *const c_char,
5751    m: *const lapackint,
5752    n: *const lapackint,
5753    p: *const lapackint,
5754    k: *mut lapackint,
5755    l: *mut lapackint,
5756    A: *mut Complex32,
5757    lda: *const lapackint,
5758    B: *mut Complex32,
5759    ldb: *const lapackint,
5760    alpha: *mut f32,
5761    beta: *mut f32,
5762    U: *mut Complex32,
5763    ldu: *const lapackint,
5764    V: *mut Complex32,
5765    ldv: *const lapackint,
5766    Q: *mut Complex32,
5767    ldq: *const lapackint,
5768    work: *mut Complex32,
5769    lwork: *const lapackint,
5770    rwork: *mut f32,
5771    iwork: *mut lapackint,
5772    info: *mut lapackint,
5773);
5774
5775define_lapack_ffi!(dggsvd3, Dggsvd3FnPtr,
5776    jobu: *const c_char,
5777    jobv: *const c_char,
5778    jobq: *const c_char,
5779    m: *const lapackint,
5780    n: *const lapackint,
5781    p: *const lapackint,
5782    k: *mut lapackint,
5783    l: *mut lapackint,
5784    A: *mut f64,
5785    lda: *const lapackint,
5786    B: *mut f64,
5787    ldb: *const lapackint,
5788    alpha: *mut f64,
5789    beta: *mut f64,
5790    U: *mut f64,
5791    ldu: *const lapackint,
5792    V: *mut f64,
5793    ldv: *const lapackint,
5794    Q: *mut f64,
5795    ldq: *const lapackint,
5796    work: *mut f64,
5797    lwork: *const lapackint,
5798    iwork: *mut lapackint,
5799    info: *mut lapackint,
5800);
5801
5802define_lapack_ffi!(sggsvd3, Sggsvd3FnPtr,
5803    jobu: *const c_char,
5804    jobv: *const c_char,
5805    jobq: *const c_char,
5806    m: *const lapackint,
5807    n: *const lapackint,
5808    p: *const lapackint,
5809    k: *mut lapackint,
5810    l: *mut lapackint,
5811    A: *mut f32,
5812    lda: *const lapackint,
5813    B: *mut f32,
5814    ldb: *const lapackint,
5815    alpha: *mut f32,
5816    beta: *mut f32,
5817    U: *mut f32,
5818    ldu: *const lapackint,
5819    V: *mut f32,
5820    ldv: *const lapackint,
5821    Q: *mut f32,
5822    ldq: *const lapackint,
5823    work: *mut f32,
5824    lwork: *const lapackint,
5825    iwork: *mut lapackint,
5826    info: *mut lapackint,
5827);
5828
5829define_lapack_ffi!(zggsvd3, Zggsvd3FnPtr,
5830    jobu: *const c_char,
5831    jobv: *const c_char,
5832    jobq: *const c_char,
5833    m: *const lapackint,
5834    n: *const lapackint,
5835    p: *const lapackint,
5836    k: *mut lapackint,
5837    l: *mut lapackint,
5838    A: *mut Complex64,
5839    lda: *const lapackint,
5840    B: *mut Complex64,
5841    ldb: *const lapackint,
5842    alpha: *mut f64,
5843    beta: *mut f64,
5844    U: *mut Complex64,
5845    ldu: *const lapackint,
5846    V: *mut Complex64,
5847    ldv: *const lapackint,
5848    Q: *mut Complex64,
5849    ldq: *const lapackint,
5850    work: *mut Complex64,
5851    lwork: *const lapackint,
5852    rwork: *mut f64,
5853    iwork: *mut lapackint,
5854    info: *mut lapackint,
5855);
5856
5857// GGSVP
5858define_lapack_ffi!(cggsvp, CggsvpFnPtr,
5859    jobu: *const c_char,
5860    jobv: *const c_char,
5861    jobq: *const c_char,
5862    m: *const lapackint,
5863    p: *const lapackint,
5864    n: *const lapackint,
5865    a: *mut Complex32,
5866    lda: *const lapackint,
5867    b: *mut Complex32,
5868    ldb: *const lapackint,
5869    tola: *mut f32,
5870    tolb: *mut f32,
5871    k: *mut lapackint,
5872    l: *mut lapackint,
5873    u: *mut Complex32,
5874    ldu: *const lapackint,
5875    v: *mut Complex32,
5876    ldv: *const lapackint,
5877    q: *mut Complex32,
5878    ldq: *const lapackint,
5879    iwork: *mut lapackint,
5880    rwork: *mut f32,
5881    tau: *mut Complex32,
5882    work: *mut Complex32,
5883    info: *mut lapackint,
5884);
5885
5886define_lapack_ffi!(dggsvp, DggsvpFnPtr,
5887    jobu: *const c_char,
5888    jobv: *const c_char,
5889    jobq: *const c_char,
5890    m: *const lapackint,
5891    p: *const lapackint,
5892    n: *const lapackint,
5893    a: *mut f64,
5894    lda: *const lapackint,
5895    b: *mut f64,
5896    ldb: *const lapackint,
5897    tola: *mut f64,
5898    tolb: *mut f64,
5899    k: *mut lapackint,
5900    l: *mut lapackint,
5901    u: *mut f64,
5902    ldu: *const lapackint,
5903    v: *mut f64,
5904    ldv: *const lapackint,
5905    q: *mut f64,
5906    ldq: *const lapackint,
5907    iwork: *mut lapackint,
5908    tau: *mut f64,
5909    work: *mut f64,
5910    info: *mut lapackint,
5911);
5912
5913define_lapack_ffi!(sggsvp, SggsvpFnPtr,
5914    jobu: *const c_char,
5915    jobv: *const c_char,
5916    jobq: *const c_char,
5917    m: *const lapackint,
5918    p: *const lapackint,
5919    n: *const lapackint,
5920    a: *mut f32,
5921    lda: *const lapackint,
5922    b: *mut f32,
5923    ldb: *const lapackint,
5924    tola: *mut f32,
5925    tolb: *mut f32,
5926    k: *mut lapackint,
5927    l: *mut lapackint,
5928    u: *mut f32,
5929    ldu: *const lapackint,
5930    v: *mut f32,
5931    ldv: *const lapackint,
5932    q: *mut f32,
5933    ldq: *const lapackint,
5934    iwork: *mut lapackint,
5935    tau: *mut f32,
5936    work: *mut f32,
5937    info: *mut lapackint,
5938);
5939
5940define_lapack_ffi!(zggsvp, ZggsvpFnPtr,
5941    jobu: *const c_char,
5942    jobv: *const c_char,
5943    jobq: *const c_char,
5944    m: *const lapackint,
5945    p: *const lapackint,
5946    n: *const lapackint,
5947    a: *mut Complex64,
5948    lda: *const lapackint,
5949    b: *mut Complex64,
5950    ldb: *const lapackint,
5951    tola: *mut f64,
5952    tolb: *mut f64,
5953    k: *mut lapackint,
5954    l: *mut lapackint,
5955    u: *mut Complex64,
5956    ldu: *const lapackint,
5957    v: *mut Complex64,
5958    ldv: *const lapackint,
5959    q: *mut Complex64,
5960    ldq: *const lapackint,
5961    iwork: *mut lapackint,
5962    rwork: *mut f64,
5963    tau: *mut Complex64,
5964    work: *mut Complex64,
5965    info: *mut lapackint,
5966);
5967
5968// GGSVP3
5969define_lapack_ffi!(cggsvp3, Cggsvp3FnPtr,
5970    jobu: *const c_char,
5971    jobv: *const c_char,
5972    jobq: *const c_char,
5973    m: *const lapackint,
5974    p: *const lapackint,
5975    n: *const lapackint,
5976    A: *mut Complex32,
5977    lda: *const lapackint,
5978    B: *mut Complex32,
5979    ldb: *const lapackint,
5980    tola: *const f32,
5981    tolb: *const f32,
5982    k: *mut lapackint,
5983    l: *mut lapackint,
5984    U: *mut Complex32,
5985    ldu: *const lapackint,
5986    V: *mut Complex32,
5987    ldv: *const lapackint,
5988    Q: *mut Complex32,
5989    ldq: *const lapackint,
5990    iwork: *mut lapackint,
5991    rwork: *mut f32,
5992    tau: *mut Complex32,
5993    work: *mut Complex32,
5994    lwork: *const lapackint,
5995    info: *mut lapackint,
5996);
5997
5998define_lapack_ffi!(dggsvp3, Dggsvp3FnPtr,
5999    jobu: *const c_char,
6000    jobv: *const c_char,
6001    jobq: *const c_char,
6002    m: *const lapackint,
6003    p: *const lapackint,
6004    n: *const lapackint,
6005    A: *mut f64,
6006    lda: *const lapackint,
6007    B: *mut f64,
6008    ldb: *const lapackint,
6009    tola: *const f64,
6010    tolb: *const f64,
6011    k: *mut lapackint,
6012    l: *mut lapackint,
6013    U: *mut f64,
6014    ldu: *const lapackint,
6015    V: *mut f64,
6016    ldv: *const lapackint,
6017    Q: *mut f64,
6018    ldq: *const lapackint,
6019    iwork: *mut lapackint,
6020    tau: *mut f64,
6021    work: *mut f64,
6022    lwork: *const lapackint,
6023    info: *mut lapackint,
6024);
6025
6026define_lapack_ffi!(sggsvp3, Sggsvp3FnPtr,
6027    jobu: *const c_char,
6028    jobv: *const c_char,
6029    jobq: *const c_char,
6030    m: *const lapackint,
6031    p: *const lapackint,
6032    n: *const lapackint,
6033    A: *mut f32,
6034    lda: *const lapackint,
6035    B: *mut f32,
6036    ldb: *const lapackint,
6037    tola: *const f32,
6038    tolb: *const f32,
6039    k: *mut lapackint,
6040    l: *mut lapackint,
6041    U: *mut f32,
6042    ldu: *const lapackint,
6043    V: *mut f32,
6044    ldv: *const lapackint,
6045    Q: *mut f32,
6046    ldq: *const lapackint,
6047    iwork: *mut lapackint,
6048    tau: *mut f32,
6049    work: *mut f32,
6050    lwork: *const lapackint,
6051    info: *mut lapackint,
6052);
6053
6054define_lapack_ffi!(zggsvp3, Zggsvp3FnPtr,
6055    jobu: *const c_char,
6056    jobv: *const c_char,
6057    jobq: *const c_char,
6058    m: *const lapackint,
6059    p: *const lapackint,
6060    n: *const lapackint,
6061    A: *mut Complex64,
6062    lda: *const lapackint,
6063    B: *mut Complex64,
6064    ldb: *const lapackint,
6065    tola: *const f64,
6066    tolb: *const f64,
6067    k: *mut lapackint,
6068    l: *mut lapackint,
6069    U: *mut Complex64,
6070    ldu: *const lapackint,
6071    V: *mut Complex64,
6072    ldv: *const lapackint,
6073    Q: *mut Complex64,
6074    ldq: *const lapackint,
6075    iwork: *mut lapackint,
6076    rwork: *mut f64,
6077    tau: *mut Complex64,
6078    work: *mut Complex64,
6079    lwork: *const lapackint,
6080    info: *mut lapackint,
6081);
6082
6083// GTCON
6084define_lapack_ffi!(cgtcon, CgtconFnPtr,
6085    norm: *const c_char,
6086    n: *const lapackint,
6087    DL: *const Complex32,
6088    D: *const Complex32,
6089    DU: *const Complex32,
6090    DU2: *const Complex32,
6091    ipiv: *const lapackint,
6092    anorm: *const f32,
6093    rcond: *mut f32,
6094    work: *mut Complex32,
6095    info: *mut lapackint,
6096);
6097
6098define_lapack_ffi!(dgtcon, DgtconFnPtr,
6099    norm: *const c_char,
6100    n: *const lapackint,
6101    DL: *const f64,
6102    D: *const f64,
6103    DU: *const f64,
6104    DU2: *const f64,
6105    ipiv: *const lapackint,
6106    anorm: *const f64,
6107    rcond: *mut f64,
6108    work: *mut f64,
6109    iwork: *mut lapackint,
6110    info: *mut lapackint,
6111);
6112
6113define_lapack_ffi!(sgtcon, SgtconFnPtr,
6114    norm: *const c_char,
6115    n: *const lapackint,
6116    DL: *const f32,
6117    D: *const f32,
6118    DU: *const f32,
6119    DU2: *const f32,
6120    ipiv: *const lapackint,
6121    anorm: *const f32,
6122    rcond: *mut f32,
6123    work: *mut f32,
6124    iwork: *mut lapackint,
6125    info: *mut lapackint,
6126);
6127
6128define_lapack_ffi!(zgtcon, ZgtconFnPtr,
6129    norm: *const c_char,
6130    n: *const lapackint,
6131    DL: *const Complex64,
6132    D: *const Complex64,
6133    DU: *const Complex64,
6134    DU2: *const Complex64,
6135    ipiv: *const lapackint,
6136    anorm: *const f64,
6137    rcond: *mut f64,
6138    work: *mut Complex64,
6139    info: *mut lapackint,
6140);
6141
6142// GTRFS
6143define_lapack_ffi!(cgtrfs, CgtrfsFnPtr,
6144    trans: *const c_char,
6145    n: *const lapackint,
6146    nrhs: *const lapackint,
6147    DL: *const Complex32,
6148    D: *const Complex32,
6149    DU: *const Complex32,
6150    DLF: *const Complex32,
6151    DF: *const Complex32,
6152    DUF: *const Complex32,
6153    DU2: *const Complex32,
6154    ipiv: *const lapackint,
6155    B: *const Complex32,
6156    ldb: *const lapackint,
6157    X: *mut Complex32,
6158    ldx: *const lapackint,
6159    ferr: *mut f32,
6160    berr: *mut f32,
6161    work: *mut Complex32,
6162    rwork: *mut f32,
6163    info: *mut lapackint,
6164);
6165
6166define_lapack_ffi!(dgtrfs, DgtrfsFnPtr,
6167    trans: *const c_char,
6168    n: *const lapackint,
6169    nrhs: *const lapackint,
6170    DL: *const f64,
6171    D: *const f64,
6172    DU: *const f64,
6173    DLF: *const f64,
6174    DF: *const f64,
6175    DUF: *const f64,
6176    DU2: *const f64,
6177    ipiv: *const lapackint,
6178    B: *const f64,
6179    ldb: *const lapackint,
6180    X: *mut f64,
6181    ldx: *const lapackint,
6182    ferr: *mut f64,
6183    berr: *mut f64,
6184    work: *mut f64,
6185    iwork: *mut lapackint,
6186    info: *mut lapackint,
6187);
6188
6189define_lapack_ffi!(sgtrfs, SgtrfsFnPtr,
6190    trans: *const c_char,
6191    n: *const lapackint,
6192    nrhs: *const lapackint,
6193    DL: *const f32,
6194    D: *const f32,
6195    DU: *const f32,
6196    DLF: *const f32,
6197    DF: *const f32,
6198    DUF: *const f32,
6199    DU2: *const f32,
6200    ipiv: *const lapackint,
6201    B: *const f32,
6202    ldb: *const lapackint,
6203    X: *mut f32,
6204    ldx: *const lapackint,
6205    ferr: *mut f32,
6206    berr: *mut f32,
6207    work: *mut f32,
6208    iwork: *mut lapackint,
6209    info: *mut lapackint,
6210);
6211
6212define_lapack_ffi!(zgtrfs, ZgtrfsFnPtr,
6213    trans: *const c_char,
6214    n: *const lapackint,
6215    nrhs: *const lapackint,
6216    DL: *const Complex64,
6217    D: *const Complex64,
6218    DU: *const Complex64,
6219    DLF: *const Complex64,
6220    DF: *const Complex64,
6221    DUF: *const Complex64,
6222    DU2: *const Complex64,
6223    ipiv: *const lapackint,
6224    B: *const Complex64,
6225    ldb: *const lapackint,
6226    X: *mut Complex64,
6227    ldx: *const lapackint,
6228    ferr: *mut f64,
6229    berr: *mut f64,
6230    work: *mut Complex64,
6231    rwork: *mut f64,
6232    info: *mut lapackint,
6233);
6234
6235// GTSV
6236define_lapack_ffi!(cgtsv, CgtsvFnPtr,
6237    n: *const lapackint,
6238    nrhs: *const lapackint,
6239    DL: *mut Complex32,
6240    D: *mut Complex32,
6241    DU: *mut Complex32,
6242    B: *mut Complex32,
6243    ldb: *const lapackint,
6244    info: *mut lapackint,
6245);
6246
6247define_lapack_ffi!(dgtsv, DgtsvFnPtr,
6248    n: *const lapackint,
6249    nrhs: *const lapackint,
6250    DL: *mut f64,
6251    D: *mut f64,
6252    DU: *mut f64,
6253    B: *mut f64,
6254    ldb: *const lapackint,
6255    info: *mut lapackint,
6256);
6257
6258define_lapack_ffi!(sgtsv, SgtsvFnPtr,
6259    n: *const lapackint,
6260    nrhs: *const lapackint,
6261    DL: *mut f32,
6262    D: *mut f32,
6263    DU: *mut f32,
6264    B: *mut f32,
6265    ldb: *const lapackint,
6266    info: *mut lapackint,
6267);
6268
6269define_lapack_ffi!(zgtsv, ZgtsvFnPtr,
6270    n: *const lapackint,
6271    nrhs: *const lapackint,
6272    DL: *mut Complex64,
6273    D: *mut Complex64,
6274    DU: *mut Complex64,
6275    B: *mut Complex64,
6276    ldb: *const lapackint,
6277    info: *mut lapackint,
6278);
6279
6280// GTSVX
6281define_lapack_ffi!(cgtsvx, CgtsvxFnPtr,
6282    fact: *const c_char,
6283    trans: *const c_char,
6284    n: *const lapackint,
6285    nrhs: *const lapackint,
6286    DL: *const Complex32,
6287    D: *const Complex32,
6288    DU: *const Complex32,
6289    DLF: *mut Complex32,
6290    DF: *mut Complex32,
6291    DUF: *mut Complex32,
6292    DU2: *mut Complex32,
6293    ipiv: *mut lapackint,
6294    B: *const Complex32,
6295    ldb: *const lapackint,
6296    X: *mut Complex32,
6297    ldx: *const lapackint,
6298    rcond: *mut f32,
6299    ferr: *mut f32,
6300    berr: *mut f32,
6301    work: *mut Complex32,
6302    rwork: *mut f32,
6303    info: *mut lapackint,
6304);
6305
6306define_lapack_ffi!(dgtsvx, DgtsvxFnPtr,
6307    fact: *const c_char,
6308    trans: *const c_char,
6309    n: *const lapackint,
6310    nrhs: *const lapackint,
6311    DL: *const f64,
6312    D: *const f64,
6313    DU: *const f64,
6314    DLF: *mut f64,
6315    DF: *mut f64,
6316    DUF: *mut f64,
6317    DU2: *mut f64,
6318    ipiv: *mut lapackint,
6319    B: *const f64,
6320    ldb: *const lapackint,
6321    X: *mut f64,
6322    ldx: *const lapackint,
6323    rcond: *mut f64,
6324    ferr: *mut f64,
6325    berr: *mut f64,
6326    work: *mut f64,
6327    iwork: *mut lapackint,
6328    info: *mut lapackint,
6329);
6330
6331define_lapack_ffi!(sgtsvx, SgtsvxFnPtr,
6332    fact: *const c_char,
6333    trans: *const c_char,
6334    n: *const lapackint,
6335    nrhs: *const lapackint,
6336    DL: *const f32,
6337    D: *const f32,
6338    DU: *const f32,
6339    DLF: *mut f32,
6340    DF: *mut f32,
6341    DUF: *mut f32,
6342    DU2: *mut f32,
6343    ipiv: *mut lapackint,
6344    B: *const f32,
6345    ldb: *const lapackint,
6346    X: *mut f32,
6347    ldx: *const lapackint,
6348    rcond: *mut f32,
6349    ferr: *mut f32,
6350    berr: *mut f32,
6351    work: *mut f32,
6352    iwork: *mut lapackint,
6353    info: *mut lapackint,
6354);
6355
6356define_lapack_ffi!(zgtsvx, ZgtsvxFnPtr,
6357    fact: *const c_char,
6358    trans: *const c_char,
6359    n: *const lapackint,
6360    nrhs: *const lapackint,
6361    DL: *const Complex64,
6362    D: *const Complex64,
6363    DU: *const Complex64,
6364    DLF: *mut Complex64,
6365    DF: *mut Complex64,
6366    DUF: *mut Complex64,
6367    DU2: *mut Complex64,
6368    ipiv: *mut lapackint,
6369    B: *const Complex64,
6370    ldb: *const lapackint,
6371    X: *mut Complex64,
6372    ldx: *const lapackint,
6373    rcond: *mut f64,
6374    ferr: *mut f64,
6375    berr: *mut f64,
6376    work: *mut Complex64,
6377    rwork: *mut f64,
6378    info: *mut lapackint,
6379);
6380
6381// GTTRF
6382define_lapack_ffi!(cgttrf, CgttrfFnPtr,
6383    n: *const lapackint,
6384    DL: *mut Complex32,
6385    D: *mut Complex32,
6386    DU: *mut Complex32,
6387    DU2: *mut Complex32,
6388    ipiv: *mut lapackint,
6389    info: *mut lapackint,
6390);
6391
6392define_lapack_ffi!(dgttrf, DgttrfFnPtr,
6393    n: *const lapackint,
6394    DL: *mut f64,
6395    D: *mut f64,
6396    DU: *mut f64,
6397    DU2: *mut f64,
6398    ipiv: *mut lapackint,
6399    info: *mut lapackint,
6400);
6401
6402define_lapack_ffi!(sgttrf, SgttrfFnPtr,
6403    n: *const lapackint,
6404    DL: *mut f32,
6405    D: *mut f32,
6406    DU: *mut f32,
6407    DU2: *mut f32,
6408    ipiv: *mut lapackint,
6409    info: *mut lapackint,
6410);
6411
6412define_lapack_ffi!(zgttrf, ZgttrfFnPtr,
6413    n: *const lapackint,
6414    DL: *mut Complex64,
6415    D: *mut Complex64,
6416    DU: *mut Complex64,
6417    DU2: *mut Complex64,
6418    ipiv: *mut lapackint,
6419    info: *mut lapackint,
6420);
6421
6422// GTTRS
6423define_lapack_ffi!(cgttrs, CgttrsFnPtr,
6424    trans: *const c_char,
6425    n: *const lapackint,
6426    nrhs: *const lapackint,
6427    DL: *const Complex32,
6428    D: *const Complex32,
6429    DU: *const Complex32,
6430    DU2: *const Complex32,
6431    ipiv: *const lapackint,
6432    B: *mut Complex32,
6433    ldb: *const lapackint,
6434    info: *mut lapackint,
6435);
6436
6437define_lapack_ffi!(dgttrs, DgttrsFnPtr,
6438    trans: *const c_char,
6439    n: *const lapackint,
6440    nrhs: *const lapackint,
6441    DL: *const f64,
6442    D: *const f64,
6443    DU: *const f64,
6444    DU2: *const f64,
6445    ipiv: *const lapackint,
6446    B: *mut f64,
6447    ldb: *const lapackint,
6448    info: *mut lapackint,
6449);
6450
6451define_lapack_ffi!(sgttrs, SgttrsFnPtr,
6452    trans: *const c_char,
6453    n: *const lapackint,
6454    nrhs: *const lapackint,
6455    DL: *const f32,
6456    D: *const f32,
6457    DU: *const f32,
6458    DU2: *const f32,
6459    ipiv: *const lapackint,
6460    B: *mut f32,
6461    ldb: *const lapackint,
6462    info: *mut lapackint,
6463);
6464
6465define_lapack_ffi!(zgttrs, ZgttrsFnPtr,
6466    trans: *const c_char,
6467    n: *const lapackint,
6468    nrhs: *const lapackint,
6469    DL: *const Complex64,
6470    D: *const Complex64,
6471    DU: *const Complex64,
6472    DU2: *const Complex64,
6473    ipiv: *const lapackint,
6474    B: *mut Complex64,
6475    ldb: *const lapackint,
6476    info: *mut lapackint,
6477);
6478
6479// HBEV
6480define_lapack_ffi!(chbev, ChbevFnPtr,
6481    jobz: *const c_char,
6482    uplo: *const c_char,
6483    n: *const lapackint,
6484    kd: *const lapackint,
6485    AB: *mut Complex32,
6486    ldab: *const lapackint,
6487    W: *mut f32,
6488    Z: *mut Complex32,
6489    ldz: *const lapackint,
6490    work: *mut Complex32,
6491    rwork: *mut f32,
6492    info: *mut lapackint,
6493);
6494
6495define_lapack_ffi!(zhbev, ZhbevFnPtr,
6496    jobz: *const c_char,
6497    uplo: *const c_char,
6498    n: *const lapackint,
6499    kd: *const lapackint,
6500    AB: *mut Complex64,
6501    ldab: *const lapackint,
6502    W: *mut f64,
6503    Z: *mut Complex64,
6504    ldz: *const lapackint,
6505    work: *mut Complex64,
6506    rwork: *mut f64,
6507    info: *mut lapackint,
6508);
6509
6510// HBEV_2STAGE
6511define_lapack_ffi!(chbev_2stage, Chbev_2stageFnPtr,
6512    jobz: *const c_char,
6513    uplo: *const c_char,
6514    n: *const lapackint,
6515    kd: *const lapackint,
6516    AB: *mut Complex32,
6517    ldab: *const lapackint,
6518    W: *mut f32,
6519    Z: *mut Complex32,
6520    ldz: *const lapackint,
6521    work: *mut Complex32,
6522    lwork: *const lapackint,
6523    rwork: *mut f32,
6524    info: *mut lapackint,
6525);
6526
6527define_lapack_ffi!(zhbev_2stage, Zhbev_2stageFnPtr,
6528    jobz: *const c_char,
6529    uplo: *const c_char,
6530    n: *const lapackint,
6531    kd: *const lapackint,
6532    AB: *mut Complex64,
6533    ldab: *const lapackint,
6534    W: *mut f64,
6535    Z: *mut Complex64,
6536    ldz: *const lapackint,
6537    work: *mut Complex64,
6538    lwork: *const lapackint,
6539    rwork: *mut f64,
6540    info: *mut lapackint,
6541);
6542
6543// HBEVD
6544define_lapack_ffi!(chbevd, ChbevdFnPtr,
6545    jobz: *const c_char,
6546    uplo: *const c_char,
6547    n: *const lapackint,
6548    kd: *const lapackint,
6549    AB: *mut Complex32,
6550    ldab: *const lapackint,
6551    W: *mut f32,
6552    Z: *mut Complex32,
6553    ldz: *const lapackint,
6554    work: *mut Complex32,
6555    lwork: *const lapackint,
6556    rwork: *mut f32,
6557    lrwork: *const lapackint,
6558    iwork: *mut lapackint,
6559    liwork: *const lapackint,
6560    info: *mut lapackint,
6561);
6562
6563define_lapack_ffi!(zhbevd, ZhbevdFnPtr,
6564    jobz: *const c_char,
6565    uplo: *const c_char,
6566    n: *const lapackint,
6567    kd: *const lapackint,
6568    AB: *mut Complex64,
6569    ldab: *const lapackint,
6570    W: *mut f64,
6571    Z: *mut Complex64,
6572    ldz: *const lapackint,
6573    work: *mut Complex64,
6574    lwork: *const lapackint,
6575    rwork: *mut f64,
6576    lrwork: *const lapackint,
6577    iwork: *mut lapackint,
6578    liwork: *const lapackint,
6579    info: *mut lapackint,
6580);
6581
6582// HBEVD_2STAGE
6583define_lapack_ffi!(chbevd_2stage, Chbevd_2stageFnPtr,
6584    jobz: *const c_char,
6585    uplo: *const c_char,
6586    n: *const lapackint,
6587    kd: *const lapackint,
6588    AB: *mut Complex32,
6589    ldab: *const lapackint,
6590    W: *mut f32,
6591    Z: *mut Complex32,
6592    ldz: *const lapackint,
6593    work: *mut Complex32,
6594    lwork: *const lapackint,
6595    rwork: *mut f32,
6596    lrwork: *const lapackint,
6597    iwork: *mut lapackint,
6598    liwork: *const lapackint,
6599    info: *mut lapackint,
6600);
6601
6602define_lapack_ffi!(zhbevd_2stage, Zhbevd_2stageFnPtr,
6603    jobz: *const c_char,
6604    uplo: *const c_char,
6605    n: *const lapackint,
6606    kd: *const lapackint,
6607    AB: *mut Complex64,
6608    ldab: *const lapackint,
6609    W: *mut f64,
6610    Z: *mut Complex64,
6611    ldz: *const lapackint,
6612    work: *mut Complex64,
6613    lwork: *const lapackint,
6614    rwork: *mut f64,
6615    lrwork: *const lapackint,
6616    iwork: *mut lapackint,
6617    liwork: *const lapackint,
6618    info: *mut lapackint,
6619);
6620
6621// HBEVX
6622define_lapack_ffi!(chbevx, ChbevxFnPtr,
6623    jobz: *const c_char,
6624    range: *const c_char,
6625    uplo: *const c_char,
6626    n: *const lapackint,
6627    kd: *const lapackint,
6628    AB: *mut Complex32,
6629    ldab: *const lapackint,
6630    Q: *mut Complex32,
6631    ldq: *const lapackint,
6632    vl: *const f32,
6633    vu: *const f32,
6634    il: *const lapackint,
6635    iu: *const lapackint,
6636    abstol: *const f32,
6637    m: *mut lapackint,
6638    W: *mut f32,
6639    Z: *mut Complex32,
6640    ldz: *const lapackint,
6641    work: *mut Complex32,
6642    rwork: *mut f32,
6643    iwork: *mut lapackint,
6644    IFAIL: *mut lapackint,
6645    info: *mut lapackint,
6646);
6647
6648define_lapack_ffi!(zhbevx, ZhbevxFnPtr,
6649    jobz: *const c_char,
6650    range: *const c_char,
6651    uplo: *const c_char,
6652    n: *const lapackint,
6653    kd: *const lapackint,
6654    AB: *mut Complex64,
6655    ldab: *const lapackint,
6656    Q: *mut Complex64,
6657    ldq: *const lapackint,
6658    vl: *const f64,
6659    vu: *const f64,
6660    il: *const lapackint,
6661    iu: *const lapackint,
6662    abstol: *const f64,
6663    m: *mut lapackint,
6664    W: *mut f64,
6665    Z: *mut Complex64,
6666    ldz: *const lapackint,
6667    work: *mut Complex64,
6668    rwork: *mut f64,
6669    iwork: *mut lapackint,
6670    IFAIL: *mut lapackint,
6671    info: *mut lapackint,
6672);
6673
6674// HBEVX_2STAGE
6675define_lapack_ffi!(chbevx_2stage, Chbevx_2stageFnPtr,
6676    jobz: *const c_char,
6677    range: *const c_char,
6678    uplo: *const c_char,
6679    n: *const lapackint,
6680    kd: *const lapackint,
6681    AB: *mut Complex32,
6682    ldab: *const lapackint,
6683    Q: *mut Complex32,
6684    ldq: *const lapackint,
6685    vl: *const f32,
6686    vu: *const f32,
6687    il: *const lapackint,
6688    iu: *const lapackint,
6689    abstol: *const f32,
6690    m: *mut lapackint,
6691    W: *mut f32,
6692    Z: *mut Complex32,
6693    ldz: *const lapackint,
6694    work: *mut Complex32,
6695    lwork: *const lapackint,
6696    rwork: *mut f32,
6697    iwork: *mut lapackint,
6698    IFAIL: *mut lapackint,
6699    info: *mut lapackint,
6700);
6701
6702define_lapack_ffi!(zhbevx_2stage, Zhbevx_2stageFnPtr,
6703    jobz: *const c_char,
6704    range: *const c_char,
6705    uplo: *const c_char,
6706    n: *const lapackint,
6707    kd: *const lapackint,
6708    AB: *mut Complex64,
6709    ldab: *const lapackint,
6710    Q: *mut Complex64,
6711    ldq: *const lapackint,
6712    vl: *const f64,
6713    vu: *const f64,
6714    il: *const lapackint,
6715    iu: *const lapackint,
6716    abstol: *const f64,
6717    m: *mut lapackint,
6718    W: *mut f64,
6719    Z: *mut Complex64,
6720    ldz: *const lapackint,
6721    work: *mut Complex64,
6722    lwork: *const lapackint,
6723    rwork: *mut f64,
6724    iwork: *mut lapackint,
6725    IFAIL: *mut lapackint,
6726    info: *mut lapackint,
6727);
6728
6729// HBGST
6730define_lapack_ffi!(chbgst, ChbgstFnPtr,
6731    vect: *const c_char,
6732    uplo: *const c_char,
6733    n: *const lapackint,
6734    ka: *const lapackint,
6735    kb: *const lapackint,
6736    AB: *mut Complex32,
6737    ldab: *const lapackint,
6738    BB: *const Complex32,
6739    ldbb: *const lapackint,
6740    X: *mut Complex32,
6741    ldx: *const lapackint,
6742    work: *mut Complex32,
6743    rwork: *mut f32,
6744    info: *mut lapackint,
6745);
6746
6747define_lapack_ffi!(zhbgst, ZhbgstFnPtr,
6748    vect: *const c_char,
6749    uplo: *const c_char,
6750    n: *const lapackint,
6751    ka: *const lapackint,
6752    kb: *const lapackint,
6753    AB: *mut Complex64,
6754    ldab: *const lapackint,
6755    BB: *const Complex64,
6756    ldbb: *const lapackint,
6757    X: *mut Complex64,
6758    ldx: *const lapackint,
6759    work: *mut Complex64,
6760    rwork: *mut f64,
6761    info: *mut lapackint,
6762);
6763
6764// HBGV
6765define_lapack_ffi!(chbgv, ChbgvFnPtr,
6766    jobz: *const c_char,
6767    uplo: *const c_char,
6768    n: *const lapackint,
6769    ka: *const lapackint,
6770    kb: *const lapackint,
6771    AB: *mut Complex32,
6772    ldab: *const lapackint,
6773    BB: *mut Complex32,
6774    ldbb: *const lapackint,
6775    W: *mut f32,
6776    Z: *mut Complex32,
6777    ldz: *const lapackint,
6778    work: *mut Complex32,
6779    rwork: *mut f32,
6780    info: *mut lapackint,
6781);
6782
6783define_lapack_ffi!(zhbgv, ZhbgvFnPtr,
6784    jobz: *const c_char,
6785    uplo: *const c_char,
6786    n: *const lapackint,
6787    ka: *const lapackint,
6788    kb: *const lapackint,
6789    AB: *mut Complex64,
6790    ldab: *const lapackint,
6791    BB: *mut Complex64,
6792    ldbb: *const lapackint,
6793    W: *mut f64,
6794    Z: *mut Complex64,
6795    ldz: *const lapackint,
6796    work: *mut Complex64,
6797    rwork: *mut f64,
6798    info: *mut lapackint,
6799);
6800
6801// HBGVD
6802define_lapack_ffi!(chbgvd, ChbgvdFnPtr,
6803    jobz: *const c_char,
6804    uplo: *const c_char,
6805    n: *const lapackint,
6806    ka: *const lapackint,
6807    kb: *const lapackint,
6808    AB: *mut Complex32,
6809    ldab: *const lapackint,
6810    BB: *mut Complex32,
6811    ldbb: *const lapackint,
6812    W: *mut f32,
6813    Z: *mut Complex32,
6814    ldz: *const lapackint,
6815    work: *mut Complex32,
6816    lwork: *const lapackint,
6817    rwork: *mut f32,
6818    lrwork: *const lapackint,
6819    iwork: *mut lapackint,
6820    liwork: *const lapackint,
6821    info: *mut lapackint,
6822);
6823
6824define_lapack_ffi!(zhbgvd, ZhbgvdFnPtr,
6825    jobz: *const c_char,
6826    uplo: *const c_char,
6827    n: *const lapackint,
6828    ka: *const lapackint,
6829    kb: *const lapackint,
6830    AB: *mut Complex64,
6831    ldab: *const lapackint,
6832    BB: *mut Complex64,
6833    ldbb: *const lapackint,
6834    W: *mut f64,
6835    Z: *mut Complex64,
6836    ldz: *const lapackint,
6837    work: *mut Complex64,
6838    lwork: *const lapackint,
6839    rwork: *mut f64,
6840    lrwork: *const lapackint,
6841    iwork: *mut lapackint,
6842    liwork: *const lapackint,
6843    info: *mut lapackint,
6844);
6845
6846// HBGVX
6847define_lapack_ffi!(chbgvx, ChbgvxFnPtr,
6848    jobz: *const c_char,
6849    range: *const c_char,
6850    uplo: *const c_char,
6851    n: *const lapackint,
6852    ka: *const lapackint,
6853    kb: *const lapackint,
6854    AB: *mut Complex32,
6855    ldab: *const lapackint,
6856    BB: *mut Complex32,
6857    ldbb: *const lapackint,
6858    Q: *mut Complex32,
6859    ldq: *const lapackint,
6860    vl: *const f32,
6861    vu: *const f32,
6862    il: *const lapackint,
6863    iu: *const lapackint,
6864    abstol: *const f32,
6865    m: *mut lapackint,
6866    W: *mut f32,
6867    Z: *mut Complex32,
6868    ldz: *const lapackint,
6869    work: *mut Complex32,
6870    rwork: *mut f32,
6871    iwork: *mut lapackint,
6872    IFAIL: *mut lapackint,
6873    info: *mut lapackint,
6874);
6875
6876define_lapack_ffi!(zhbgvx, ZhbgvxFnPtr,
6877    jobz: *const c_char,
6878    range: *const c_char,
6879    uplo: *const c_char,
6880    n: *const lapackint,
6881    ka: *const lapackint,
6882    kb: *const lapackint,
6883    AB: *mut Complex64,
6884    ldab: *const lapackint,
6885    BB: *mut Complex64,
6886    ldbb: *const lapackint,
6887    Q: *mut Complex64,
6888    ldq: *const lapackint,
6889    vl: *const f64,
6890    vu: *const f64,
6891    il: *const lapackint,
6892    iu: *const lapackint,
6893    abstol: *const f64,
6894    m: *mut lapackint,
6895    W: *mut f64,
6896    Z: *mut Complex64,
6897    ldz: *const lapackint,
6898    work: *mut Complex64,
6899    rwork: *mut f64,
6900    iwork: *mut lapackint,
6901    IFAIL: *mut lapackint,
6902    info: *mut lapackint,
6903);
6904
6905// HBTRD
6906define_lapack_ffi!(chbtrd, ChbtrdFnPtr,
6907    vect: *const c_char,
6908    uplo: *const c_char,
6909    n: *const lapackint,
6910    kd: *const lapackint,
6911    AB: *mut Complex32,
6912    ldab: *const lapackint,
6913    D: *mut f32,
6914    E: *mut f32,
6915    Q: *mut Complex32,
6916    ldq: *const lapackint,
6917    work: *mut Complex32,
6918    info: *mut lapackint,
6919);
6920
6921define_lapack_ffi!(zhbtrd, ZhbtrdFnPtr,
6922    vect: *const c_char,
6923    uplo: *const c_char,
6924    n: *const lapackint,
6925    kd: *const lapackint,
6926    AB: *mut Complex64,
6927    ldab: *const lapackint,
6928    D: *mut f64,
6929    E: *mut f64,
6930    Q: *mut Complex64,
6931    ldq: *const lapackint,
6932    work: *mut Complex64,
6933    info: *mut lapackint,
6934);
6935
6936// HECON
6937define_lapack_ffi!(checon, CheconFnPtr,
6938    uplo: *const c_char,
6939    n: *const lapackint,
6940    A: *const Complex32,
6941    lda: *const lapackint,
6942    ipiv: *const lapackint,
6943    anorm: *const f32,
6944    rcond: *mut f32,
6945    work: *mut Complex32,
6946    info: *mut lapackint,
6947);
6948
6949define_lapack_ffi!(zhecon, ZheconFnPtr,
6950    uplo: *const c_char,
6951    n: *const lapackint,
6952    A: *const Complex64,
6953    lda: *const lapackint,
6954    ipiv: *const lapackint,
6955    anorm: *const f64,
6956    rcond: *mut f64,
6957    work: *mut Complex64,
6958    info: *mut lapackint,
6959);
6960
6961// HECON_3
6962define_lapack_ffi!(checon_3, Checon_3FnPtr,
6963    uplo: *const c_char,
6964    n: *const lapackint,
6965    A: *const Complex32,
6966    lda: *const lapackint,
6967    E: *const Complex32,
6968    ipiv: *const lapackint,
6969    anorm: *const f32,
6970    rcond: *mut f32,
6971    work: *mut Complex32,
6972    info: *mut lapackint,
6973);
6974
6975define_lapack_ffi!(zhecon_3, Zhecon_3FnPtr,
6976    uplo: *const c_char,
6977    n: *const lapackint,
6978    A: *const Complex64,
6979    lda: *const lapackint,
6980    E: *const Complex64,
6981    ipiv: *const lapackint,
6982    anorm: *const f64,
6983    rcond: *mut f64,
6984    work: *mut Complex64,
6985    info: *mut lapackint,
6986);
6987
6988// HEEQUB
6989define_lapack_ffi!(cheequb, CheequbFnPtr,
6990    uplo: *const c_char,
6991    n: *const lapackint,
6992    A: *const Complex32,
6993    lda: *const lapackint,
6994    S: *mut f32,
6995    scond: *mut f32,
6996    amax: *mut f32,
6997    work: *mut Complex32,
6998    info: *mut lapackint,
6999);
7000
7001define_lapack_ffi!(zheequb, ZheequbFnPtr,
7002    uplo: *const c_char,
7003    n: *const lapackint,
7004    A: *const Complex64,
7005    lda: *const lapackint,
7006    S: *mut f64,
7007    scond: *mut f64,
7008    amax: *mut f64,
7009    work: *mut Complex64,
7010    info: *mut lapackint,
7011);
7012
7013// HEEV
7014define_lapack_ffi!(cheev, CheevFnPtr,
7015    jobz: *const c_char,
7016    uplo: *const c_char,
7017    n: *const lapackint,
7018    A: *mut Complex32,
7019    lda: *const lapackint,
7020    W: *mut f32,
7021    work: *mut Complex32,
7022    lwork: *const lapackint,
7023    rwork: *mut f32,
7024    info: *mut lapackint,
7025);
7026
7027define_lapack_ffi!(zheev, ZheevFnPtr,
7028    jobz: *const c_char,
7029    uplo: *const c_char,
7030    n: *const lapackint,
7031    A: *mut Complex64,
7032    lda: *const lapackint,
7033    W: *mut f64,
7034    work: *mut Complex64,
7035    lwork: *const lapackint,
7036    rwork: *mut f64,
7037    info: *mut lapackint,
7038);
7039
7040// HEEV_2STAGE
7041define_lapack_ffi!(cheev_2stage, Cheev_2stageFnPtr,
7042    jobz: *const c_char,
7043    uplo: *const c_char,
7044    n: *const lapackint,
7045    A: *mut Complex32,
7046    lda: *const lapackint,
7047    W: *mut f32,
7048    work: *mut Complex32,
7049    lwork: *const lapackint,
7050    rwork: *mut f32,
7051    info: *mut lapackint,
7052);
7053
7054define_lapack_ffi!(zheev_2stage, Zheev_2stageFnPtr,
7055    jobz: *const c_char,
7056    uplo: *const c_char,
7057    n: *const lapackint,
7058    A: *mut Complex64,
7059    lda: *const lapackint,
7060    W: *mut f64,
7061    work: *mut Complex64,
7062    lwork: *const lapackint,
7063    rwork: *mut f64,
7064    info: *mut lapackint,
7065);
7066
7067// HEEVD
7068define_lapack_ffi!(cheevd, CheevdFnPtr,
7069    jobz: *const c_char,
7070    uplo: *const c_char,
7071    n: *const lapackint,
7072    A: *mut Complex32,
7073    lda: *const lapackint,
7074    W: *mut f32,
7075    work: *mut Complex32,
7076    lwork: *const lapackint,
7077    rwork: *mut f32,
7078    lrwork: *const lapackint,
7079    iwork: *mut lapackint,
7080    liwork: *const lapackint,
7081    info: *mut lapackint,
7082);
7083
7084define_lapack_ffi!(zheevd, ZheevdFnPtr,
7085    jobz: *const c_char,
7086    uplo: *const c_char,
7087    n: *const lapackint,
7088    A: *mut Complex64,
7089    lda: *const lapackint,
7090    W: *mut f64,
7091    work: *mut Complex64,
7092    lwork: *const lapackint,
7093    rwork: *mut f64,
7094    lrwork: *const lapackint,
7095    iwork: *mut lapackint,
7096    liwork: *const lapackint,
7097    info: *mut lapackint,
7098);
7099
7100// HEEVD_2STAGE
7101define_lapack_ffi!(cheevd_2stage, Cheevd_2stageFnPtr,
7102    jobz: *const c_char,
7103    uplo: *const c_char,
7104    n: *const lapackint,
7105    A: *mut Complex32,
7106    lda: *const lapackint,
7107    W: *mut f32,
7108    work: *mut Complex32,
7109    lwork: *const lapackint,
7110    rwork: *mut f32,
7111    lrwork: *const lapackint,
7112    iwork: *mut lapackint,
7113    liwork: *const lapackint,
7114    info: *mut lapackint,
7115);
7116
7117define_lapack_ffi!(zheevd_2stage, Zheevd_2stageFnPtr,
7118    jobz: *const c_char,
7119    uplo: *const c_char,
7120    n: *const lapackint,
7121    A: *mut Complex64,
7122    lda: *const lapackint,
7123    W: *mut f64,
7124    work: *mut Complex64,
7125    lwork: *const lapackint,
7126    rwork: *mut f64,
7127    lrwork: *const lapackint,
7128    iwork: *mut lapackint,
7129    liwork: *const lapackint,
7130    info: *mut lapackint,
7131);
7132
7133// HEEVR
7134define_lapack_ffi!(cheevr, CheevrFnPtr,
7135    jobz: *const c_char,
7136    range: *const c_char,
7137    uplo: *const c_char,
7138    n: *const lapackint,
7139    A: *mut Complex32,
7140    lda: *const lapackint,
7141    vl: *const f32,
7142    vu: *const f32,
7143    il: *const lapackint,
7144    iu: *const lapackint,
7145    abstol: *const f32,
7146    m: *mut lapackint,
7147    W: *mut f32,
7148    Z: *mut Complex32,
7149    ldz: *const lapackint,
7150    ISUPPZ: *mut lapackint,
7151    work: *mut Complex32,
7152    lwork: *const lapackint,
7153    rwork: *mut f32,
7154    lrwork: *const lapackint,
7155    iwork: *mut lapackint,
7156    liwork: *const lapackint,
7157    info: *mut lapackint,
7158);
7159
7160define_lapack_ffi!(zheevr, ZheevrFnPtr,
7161    jobz: *const c_char,
7162    range: *const c_char,
7163    uplo: *const c_char,
7164    n: *const lapackint,
7165    A: *mut Complex64,
7166    lda: *const lapackint,
7167    vl: *const f64,
7168    vu: *const f64,
7169    il: *const lapackint,
7170    iu: *const lapackint,
7171    abstol: *const f64,
7172    m: *mut lapackint,
7173    W: *mut f64,
7174    Z: *mut Complex64,
7175    ldz: *const lapackint,
7176    ISUPPZ: *mut lapackint,
7177    work: *mut Complex64,
7178    lwork: *const lapackint,
7179    rwork: *mut f64,
7180    lrwork: *const lapackint,
7181    iwork: *mut lapackint,
7182    liwork: *const lapackint,
7183    info: *mut lapackint,
7184);
7185
7186// HEEVR_2STAGE
7187define_lapack_ffi!(cheevr_2stage, Cheevr_2stageFnPtr,
7188    jobz: *const c_char,
7189    range: *const c_char,
7190    uplo: *const c_char,
7191    n: *const lapackint,
7192    A: *mut Complex32,
7193    lda: *const lapackint,
7194    vl: *const f32,
7195    vu: *const f32,
7196    il: *const lapackint,
7197    iu: *const lapackint,
7198    abstol: *const f32,
7199    m: *mut lapackint,
7200    W: *mut f32,
7201    Z: *mut Complex32,
7202    ldz: *const lapackint,
7203    ISUPPZ: *mut lapackint,
7204    work: *mut Complex32,
7205    lwork: *const lapackint,
7206    rwork: *mut f32,
7207    lrwork: *const lapackint,
7208    iwork: *mut lapackint,
7209    liwork: *const lapackint,
7210    info: *mut lapackint,
7211);
7212
7213define_lapack_ffi!(zheevr_2stage, Zheevr_2stageFnPtr,
7214    jobz: *const c_char,
7215    range: *const c_char,
7216    uplo: *const c_char,
7217    n: *const lapackint,
7218    A: *mut Complex64,
7219    lda: *const lapackint,
7220    vl: *const f64,
7221    vu: *const f64,
7222    il: *const lapackint,
7223    iu: *const lapackint,
7224    abstol: *const f64,
7225    m: *mut lapackint,
7226    W: *mut f64,
7227    Z: *mut Complex64,
7228    ldz: *const lapackint,
7229    ISUPPZ: *mut lapackint,
7230    work: *mut Complex64,
7231    lwork: *const lapackint,
7232    rwork: *mut f64,
7233    lrwork: *const lapackint,
7234    iwork: *mut lapackint,
7235    liwork: *const lapackint,
7236    info: *mut lapackint,
7237);
7238
7239// HEEVX
7240define_lapack_ffi!(cheevx, CheevxFnPtr,
7241    jobz: *const c_char,
7242    range: *const c_char,
7243    uplo: *const c_char,
7244    n: *const lapackint,
7245    A: *mut Complex32,
7246    lda: *const lapackint,
7247    vl: *const f32,
7248    vu: *const f32,
7249    il: *const lapackint,
7250    iu: *const lapackint,
7251    abstol: *const f32,
7252    m: *mut lapackint,
7253    W: *mut f32,
7254    Z: *mut Complex32,
7255    ldz: *const lapackint,
7256    work: *mut Complex32,
7257    lwork: *const lapackint,
7258    rwork: *mut f32,
7259    iwork: *mut lapackint,
7260    IFAIL: *mut lapackint,
7261    info: *mut lapackint,
7262);
7263
7264define_lapack_ffi!(zheevx, ZheevxFnPtr,
7265    jobz: *const c_char,
7266    range: *const c_char,
7267    uplo: *const c_char,
7268    n: *const lapackint,
7269    A: *mut Complex64,
7270    lda: *const lapackint,
7271    vl: *const f64,
7272    vu: *const f64,
7273    il: *const lapackint,
7274    iu: *const lapackint,
7275    abstol: *const f64,
7276    m: *mut lapackint,
7277    W: *mut f64,
7278    Z: *mut Complex64,
7279    ldz: *const lapackint,
7280    work: *mut Complex64,
7281    lwork: *const lapackint,
7282    rwork: *mut f64,
7283    iwork: *mut lapackint,
7284    IFAIL: *mut lapackint,
7285    info: *mut lapackint,
7286);
7287
7288// HEEVX_2STAGE
7289define_lapack_ffi!(cheevx_2stage, Cheevx_2stageFnPtr,
7290    jobz: *const c_char,
7291    range: *const c_char,
7292    uplo: *const c_char,
7293    n: *const lapackint,
7294    A: *mut Complex32,
7295    lda: *const lapackint,
7296    vl: *const f32,
7297    vu: *const f32,
7298    il: *const lapackint,
7299    iu: *const lapackint,
7300    abstol: *const f32,
7301    m: *mut lapackint,
7302    W: *mut f32,
7303    Z: *mut Complex32,
7304    ldz: *const lapackint,
7305    work: *mut Complex32,
7306    lwork: *const lapackint,
7307    rwork: *mut f32,
7308    iwork: *mut lapackint,
7309    IFAIL: *mut lapackint,
7310    info: *mut lapackint,
7311);
7312
7313define_lapack_ffi!(zheevx_2stage, Zheevx_2stageFnPtr,
7314    jobz: *const c_char,
7315    range: *const c_char,
7316    uplo: *const c_char,
7317    n: *const lapackint,
7318    A: *mut Complex64,
7319    lda: *const lapackint,
7320    vl: *const f64,
7321    vu: *const f64,
7322    il: *const lapackint,
7323    iu: *const lapackint,
7324    abstol: *const f64,
7325    m: *mut lapackint,
7326    W: *mut f64,
7327    Z: *mut Complex64,
7328    ldz: *const lapackint,
7329    work: *mut Complex64,
7330    lwork: *const lapackint,
7331    rwork: *mut f64,
7332    iwork: *mut lapackint,
7333    IFAIL: *mut lapackint,
7334    info: *mut lapackint,
7335);
7336
7337// HEGST
7338define_lapack_ffi!(chegst, ChegstFnPtr,
7339    itype: *const lapackint,
7340    uplo: *const c_char,
7341    n: *const lapackint,
7342    A: *mut Complex32,
7343    lda: *const lapackint,
7344    B: *mut Complex32,
7345    ldb: *const lapackint,
7346    info: *mut lapackint,
7347);
7348
7349define_lapack_ffi!(zhegst, ZhegstFnPtr,
7350    itype: *const lapackint,
7351    uplo: *const c_char,
7352    n: *const lapackint,
7353    A: *mut Complex64,
7354    lda: *const lapackint,
7355    B: *mut Complex64,
7356    ldb: *const lapackint,
7357    info: *mut lapackint,
7358);
7359
7360// HEGV
7361define_lapack_ffi!(chegv, ChegvFnPtr,
7362    itype: *const lapackint,
7363    jobz: *const c_char,
7364    uplo: *const c_char,
7365    n: *const lapackint,
7366    A: *mut Complex32,
7367    lda: *const lapackint,
7368    B: *mut Complex32,
7369    ldb: *const lapackint,
7370    W: *mut f32,
7371    work: *mut Complex32,
7372    lwork: *const lapackint,
7373    rwork: *mut f32,
7374    info: *mut lapackint,
7375);
7376
7377define_lapack_ffi!(zhegv, ZhegvFnPtr,
7378    itype: *const lapackint,
7379    jobz: *const c_char,
7380    uplo: *const c_char,
7381    n: *const lapackint,
7382    A: *mut Complex64,
7383    lda: *const lapackint,
7384    B: *mut Complex64,
7385    ldb: *const lapackint,
7386    W: *mut f64,
7387    work: *mut Complex64,
7388    lwork: *const lapackint,
7389    rwork: *mut f64,
7390    info: *mut lapackint,
7391);
7392
7393// HEGV_2STAGE
7394define_lapack_ffi!(chegv_2stage, Chegv_2stageFnPtr,
7395    itype: *const lapackint,
7396    jobz: *const c_char,
7397    uplo: *const c_char,
7398    n: *const lapackint,
7399    A: *mut Complex32,
7400    lda: *const lapackint,
7401    B: *mut Complex32,
7402    ldb: *const lapackint,
7403    W: *mut f32,
7404    work: *mut Complex32,
7405    lwork: *const lapackint,
7406    rwork: *mut f32,
7407    info: *mut lapackint,
7408);
7409
7410define_lapack_ffi!(zhegv_2stage, Zhegv_2stageFnPtr,
7411    itype: *const lapackint,
7412    jobz: *const c_char,
7413    uplo: *const c_char,
7414    n: *const lapackint,
7415    A: *mut Complex64,
7416    lda: *const lapackint,
7417    B: *mut Complex64,
7418    ldb: *const lapackint,
7419    W: *mut f64,
7420    work: *mut Complex64,
7421    lwork: *const lapackint,
7422    rwork: *mut f64,
7423    info: *mut lapackint,
7424);
7425
7426// HEGVD
7427define_lapack_ffi!(chegvd, ChegvdFnPtr,
7428    itype: *const lapackint,
7429    jobz: *const c_char,
7430    uplo: *const c_char,
7431    n: *const lapackint,
7432    A: *mut Complex32,
7433    lda: *const lapackint,
7434    B: *mut Complex32,
7435    ldb: *const lapackint,
7436    W: *mut f32,
7437    work: *mut Complex32,
7438    lwork: *const lapackint,
7439    rwork: *mut f32,
7440    lrwork: *const lapackint,
7441    iwork: *mut lapackint,
7442    liwork: *const lapackint,
7443    info: *mut lapackint,
7444);
7445
7446define_lapack_ffi!(zhegvd, ZhegvdFnPtr,
7447    itype: *const lapackint,
7448    jobz: *const c_char,
7449    uplo: *const c_char,
7450    n: *const lapackint,
7451    A: *mut Complex64,
7452    lda: *const lapackint,
7453    B: *mut Complex64,
7454    ldb: *const lapackint,
7455    W: *mut f64,
7456    work: *mut Complex64,
7457    lwork: *const lapackint,
7458    rwork: *mut f64,
7459    lrwork: *const lapackint,
7460    iwork: *mut lapackint,
7461    liwork: *const lapackint,
7462    info: *mut lapackint,
7463);
7464
7465// HEGVX
7466define_lapack_ffi!(chegvx, ChegvxFnPtr,
7467    itype: *const lapackint,
7468    jobz: *const c_char,
7469    range: *const c_char,
7470    uplo: *const c_char,
7471    n: *const lapackint,
7472    A: *mut Complex32,
7473    lda: *const lapackint,
7474    B: *mut Complex32,
7475    ldb: *const lapackint,
7476    vl: *const f32,
7477    vu: *const f32,
7478    il: *const lapackint,
7479    iu: *const lapackint,
7480    abstol: *const f32,
7481    m: *mut lapackint,
7482    W: *mut f32,
7483    Z: *mut Complex32,
7484    ldz: *const lapackint,
7485    work: *mut Complex32,
7486    lwork: *const lapackint,
7487    rwork: *mut f32,
7488    iwork: *mut lapackint,
7489    IFAIL: *mut lapackint,
7490    info: *mut lapackint,
7491);
7492
7493define_lapack_ffi!(zhegvx, ZhegvxFnPtr,
7494    itype: *const lapackint,
7495    jobz: *const c_char,
7496    range: *const c_char,
7497    uplo: *const c_char,
7498    n: *const lapackint,
7499    A: *mut Complex64,
7500    lda: *const lapackint,
7501    B: *mut Complex64,
7502    ldb: *const lapackint,
7503    vl: *const f64,
7504    vu: *const f64,
7505    il: *const lapackint,
7506    iu: *const lapackint,
7507    abstol: *const f64,
7508    m: *mut lapackint,
7509    W: *mut f64,
7510    Z: *mut Complex64,
7511    ldz: *const lapackint,
7512    work: *mut Complex64,
7513    lwork: *const lapackint,
7514    rwork: *mut f64,
7515    iwork: *mut lapackint,
7516    IFAIL: *mut lapackint,
7517    info: *mut lapackint,
7518);
7519
7520// HERFS
7521define_lapack_ffi!(cherfs, CherfsFnPtr,
7522    uplo: *const c_char,
7523    n: *const lapackint,
7524    nrhs: *const lapackint,
7525    A: *const Complex32,
7526    lda: *const lapackint,
7527    AF: *const Complex32,
7528    ldaf: *const lapackint,
7529    ipiv: *const lapackint,
7530    B: *const Complex32,
7531    ldb: *const lapackint,
7532    X: *mut Complex32,
7533    ldx: *const lapackint,
7534    ferr: *mut f32,
7535    berr: *mut f32,
7536    work: *mut Complex32,
7537    rwork: *mut f32,
7538    info: *mut lapackint,
7539);
7540
7541define_lapack_ffi!(zherfs, ZherfsFnPtr,
7542    uplo: *const c_char,
7543    n: *const lapackint,
7544    nrhs: *const lapackint,
7545    A: *const Complex64,
7546    lda: *const lapackint,
7547    AF: *const Complex64,
7548    ldaf: *const lapackint,
7549    ipiv: *const lapackint,
7550    B: *const Complex64,
7551    ldb: *const lapackint,
7552    X: *mut Complex64,
7553    ldx: *const lapackint,
7554    ferr: *mut f64,
7555    berr: *mut f64,
7556    work: *mut Complex64,
7557    rwork: *mut f64,
7558    info: *mut lapackint,
7559);
7560
7561// HERFSX
7562define_lapack_ffi!(cherfsx, CherfsxFnPtr,
7563    uplo: *const c_char,
7564    equed: *const c_char,
7565    n: *const lapackint,
7566    nrhs: *const lapackint,
7567    A: *const Complex32,
7568    lda: *const lapackint,
7569    AF: *const Complex32,
7570    ldaf: *const lapackint,
7571    ipiv: *const lapackint,
7572    S: *mut f32,
7573    B: *const Complex32,
7574    ldb: *const lapackint,
7575    X: *mut Complex32,
7576    ldx: *const lapackint,
7577    rcond: *mut f32,
7578    berr: *mut f32,
7579    n_err_bnds: *const lapackint,
7580    err_bnds_norm: *mut f32,
7581    err_bnds_comp: *mut f32,
7582    nparams: *const lapackint,
7583    params: *mut f32,
7584    work: *mut Complex32,
7585    rwork: *mut f32,
7586    info: *mut lapackint,
7587);
7588
7589define_lapack_ffi!(zherfsx, ZherfsxFnPtr,
7590    uplo: *const c_char,
7591    equed: *const c_char,
7592    n: *const lapackint,
7593    nrhs: *const lapackint,
7594    A: *const Complex64,
7595    lda: *const lapackint,
7596    AF: *const Complex64,
7597    ldaf: *const lapackint,
7598    ipiv: *const lapackint,
7599    S: *mut f64,
7600    B: *const Complex64,
7601    ldb: *const lapackint,
7602    X: *mut Complex64,
7603    ldx: *const lapackint,
7604    rcond: *mut f64,
7605    berr: *mut f64,
7606    n_err_bnds: *const lapackint,
7607    err_bnds_norm: *mut f64,
7608    err_bnds_comp: *mut f64,
7609    nparams: *const lapackint,
7610    params: *mut f64,
7611    work: *mut Complex64,
7612    rwork: *mut f64,
7613    info: *mut lapackint,
7614);
7615
7616// HESV
7617define_lapack_ffi!(chesv, ChesvFnPtr,
7618    uplo: *const c_char,
7619    n: *const lapackint,
7620    nrhs: *const lapackint,
7621    A: *mut Complex32,
7622    lda: *const lapackint,
7623    ipiv: *mut lapackint,
7624    B: *mut Complex32,
7625    ldb: *const lapackint,
7626    work: *mut Complex32,
7627    lwork: *const lapackint,
7628    info: *mut lapackint,
7629);
7630
7631define_lapack_ffi!(zhesv, ZhesvFnPtr,
7632    uplo: *const c_char,
7633    n: *const lapackint,
7634    nrhs: *const lapackint,
7635    A: *mut Complex64,
7636    lda: *const lapackint,
7637    ipiv: *mut lapackint,
7638    B: *mut Complex64,
7639    ldb: *const lapackint,
7640    work: *mut Complex64,
7641    lwork: *const lapackint,
7642    info: *mut lapackint,
7643);
7644
7645// HESV_AA
7646define_lapack_ffi!(chesv_aa, Chesv_aaFnPtr,
7647    uplo: *const c_char,
7648    n: *const lapackint,
7649    nrhs: *const lapackint,
7650    A: *mut Complex32,
7651    lda: *const lapackint,
7652    ipiv: *mut lapackint,
7653    B: *mut Complex32,
7654    ldb: *const lapackint,
7655    work: *mut Complex32,
7656    lwork: *const lapackint,
7657    info: *mut lapackint,
7658);
7659
7660define_lapack_ffi!(zhesv_aa, Zhesv_aaFnPtr,
7661    uplo: *const c_char,
7662    n: *const lapackint,
7663    nrhs: *const lapackint,
7664    A: *mut Complex64,
7665    lda: *const lapackint,
7666    ipiv: *mut lapackint,
7667    B: *mut Complex64,
7668    ldb: *const lapackint,
7669    work: *mut Complex64,
7670    lwork: *const lapackint,
7671    info: *mut lapackint,
7672);
7673
7674// HESV_AA_2STAGE
7675define_lapack_ffi!(chesv_aa_2stage, Chesv_aa_2stageFnPtr,
7676    uplo: *const c_char,
7677    n: *const lapackint,
7678    nrhs: *const lapackint,
7679    A: *mut Complex32,
7680    lda: *const lapackint,
7681    TB: *mut Complex32,
7682    ltb: *const lapackint,
7683    ipiv: *mut lapackint,
7684    ipiv2: *mut lapackint,
7685    B: *mut Complex32,
7686    ldb: *const lapackint,
7687    work: *mut Complex32,
7688    lwork: *const lapackint,
7689    info: *mut lapackint,
7690);
7691
7692define_lapack_ffi!(zhesv_aa_2stage, Zhesv_aa_2stageFnPtr,
7693    uplo: *const c_char,
7694    n: *const lapackint,
7695    nrhs: *const lapackint,
7696    A: *mut Complex64,
7697    lda: *const lapackint,
7698    TB: *mut Complex64,
7699    ltb: *const lapackint,
7700    ipiv: *mut lapackint,
7701    ipiv2: *mut lapackint,
7702    B: *mut Complex64,
7703    ldb: *const lapackint,
7704    work: *mut Complex64,
7705    lwork: *const lapackint,
7706    info: *mut lapackint,
7707);
7708
7709// HESV_RK
7710define_lapack_ffi!(chesv_rk, Chesv_rkFnPtr,
7711    uplo: *const c_char,
7712    n: *const lapackint,
7713    nrhs: *const lapackint,
7714    A: *mut Complex32,
7715    lda: *const lapackint,
7716    E: *mut Complex32,
7717    ipiv: *mut lapackint,
7718    B: *mut Complex32,
7719    ldb: *const lapackint,
7720    work: *mut Complex32,
7721    lwork: *const lapackint,
7722    info: *mut lapackint,
7723);
7724
7725define_lapack_ffi!(zhesv_rk, Zhesv_rkFnPtr,
7726    uplo: *const c_char,
7727    n: *const lapackint,
7728    nrhs: *const lapackint,
7729    A: *mut Complex64,
7730    lda: *const lapackint,
7731    E: *mut Complex64,
7732    ipiv: *mut lapackint,
7733    B: *mut Complex64,
7734    ldb: *const lapackint,
7735    work: *mut Complex64,
7736    lwork: *const lapackint,
7737    info: *mut lapackint,
7738);
7739
7740// HESV_ROOK
7741define_lapack_ffi!(chesv_rook, Chesv_rookFnPtr,
7742    uplo: *const c_char,
7743    n: *const lapackint,
7744    nrhs: *const lapackint,
7745    A: *mut Complex32,
7746    lda: *const lapackint,
7747    ipiv: *mut lapackint,
7748    B: *mut Complex32,
7749    ldb: *const lapackint,
7750    work: *mut Complex32,
7751    lwork: *const lapackint,
7752    info: *mut lapackint,
7753);
7754
7755define_lapack_ffi!(zhesv_rook, Zhesv_rookFnPtr,
7756    uplo: *const c_char,
7757    n: *const lapackint,
7758    nrhs: *const lapackint,
7759    A: *mut Complex64,
7760    lda: *const lapackint,
7761    ipiv: *mut lapackint,
7762    B: *mut Complex64,
7763    ldb: *const lapackint,
7764    work: *mut Complex64,
7765    lwork: *const lapackint,
7766    info: *mut lapackint,
7767);
7768
7769// HESVX
7770define_lapack_ffi!(chesvx, ChesvxFnPtr,
7771    fact: *const c_char,
7772    uplo: *const c_char,
7773    n: *const lapackint,
7774    nrhs: *const lapackint,
7775    A: *const Complex32,
7776    lda: *const lapackint,
7777    AF: *mut Complex32,
7778    ldaf: *const lapackint,
7779    ipiv: *mut lapackint,
7780    B: *const Complex32,
7781    ldb: *const lapackint,
7782    X: *mut Complex32,
7783    ldx: *const lapackint,
7784    rcond: *mut f32,
7785    ferr: *mut f32,
7786    berr: *mut f32,
7787    work: *mut Complex32,
7788    lwork: *const lapackint,
7789    rwork: *mut f32,
7790    info: *mut lapackint,
7791);
7792
7793define_lapack_ffi!(zhesvx, ZhesvxFnPtr,
7794    fact: *const c_char,
7795    uplo: *const c_char,
7796    n: *const lapackint,
7797    nrhs: *const lapackint,
7798    A: *const Complex64,
7799    lda: *const lapackint,
7800    AF: *mut Complex64,
7801    ldaf: *const lapackint,
7802    ipiv: *mut lapackint,
7803    B: *const Complex64,
7804    ldb: *const lapackint,
7805    X: *mut Complex64,
7806    ldx: *const lapackint,
7807    rcond: *mut f64,
7808    ferr: *mut f64,
7809    berr: *mut f64,
7810    work: *mut Complex64,
7811    lwork: *const lapackint,
7812    rwork: *mut f64,
7813    info: *mut lapackint,
7814);
7815
7816// HESVXX
7817define_lapack_ffi!(chesvxx, ChesvxxFnPtr,
7818    fact: *const c_char,
7819    uplo: *const c_char,
7820    n: *const lapackint,
7821    nrhs: *const lapackint,
7822    A: *mut Complex32,
7823    lda: *const lapackint,
7824    AF: *mut Complex32,
7825    ldaf: *const lapackint,
7826    ipiv: *mut lapackint,
7827    equed: *mut c_char,
7828    S: *mut f32,
7829    B: *mut Complex32,
7830    ldb: *const lapackint,
7831    X: *mut Complex32,
7832    ldx: *const lapackint,
7833    rcond: *mut f32,
7834    rpvgrw: *mut f32,
7835    berr: *mut f32,
7836    n_err_bnds: *const lapackint,
7837    err_bnds_norm: *mut f32,
7838    err_bnds_comp: *mut f32,
7839    nparams: *const lapackint,
7840    params: *mut f32,
7841    work: *mut Complex32,
7842    rwork: *mut f32,
7843    info: *mut lapackint,
7844);
7845
7846define_lapack_ffi!(zhesvxx, ZhesvxxFnPtr,
7847    fact: *const c_char,
7848    uplo: *const c_char,
7849    n: *const lapackint,
7850    nrhs: *const lapackint,
7851    A: *mut Complex64,
7852    lda: *const lapackint,
7853    AF: *mut Complex64,
7854    ldaf: *const lapackint,
7855    ipiv: *mut lapackint,
7856    equed: *mut c_char,
7857    S: *mut f64,
7858    B: *mut Complex64,
7859    ldb: *const lapackint,
7860    X: *mut Complex64,
7861    ldx: *const lapackint,
7862    rcond: *mut f64,
7863    rpvgrw: *mut f64,
7864    berr: *mut f64,
7865    n_err_bnds: *const lapackint,
7866    err_bnds_norm: *mut f64,
7867    err_bnds_comp: *mut f64,
7868    nparams: *const lapackint,
7869    params: *mut f64,
7870    work: *mut Complex64,
7871    rwork: *mut f64,
7872    info: *mut lapackint,
7873);
7874
7875// HESWAPR
7876define_lapack_ffi!(cheswapr, CheswaprFnPtr,
7877    uplo: *const c_char,
7878    n: *const lapackint,
7879    A: *mut Complex32,
7880    lda: *const lapackint,
7881    i1: *const lapackint,
7882    i2: *const lapackint,
7883);
7884
7885define_lapack_ffi!(zheswapr, ZheswaprFnPtr,
7886    uplo: *const c_char,
7887    n: *const lapackint,
7888    A: *mut Complex64,
7889    lda: *const lapackint,
7890    i1: *const lapackint,
7891    i2: *const lapackint,
7892);
7893
7894// HETRD
7895define_lapack_ffi!(chetrd, ChetrdFnPtr,
7896    uplo: *const c_char,
7897    n: *const lapackint,
7898    A: *mut Complex32,
7899    lda: *const lapackint,
7900    D: *mut f32,
7901    E: *mut f32,
7902    tau: *mut Complex32,
7903    work: *mut Complex32,
7904    lwork: *const lapackint,
7905    info: *mut lapackint,
7906);
7907
7908define_lapack_ffi!(zhetrd, ZhetrdFnPtr,
7909    uplo: *const c_char,
7910    n: *const lapackint,
7911    A: *mut Complex64,
7912    lda: *const lapackint,
7913    D: *mut f64,
7914    E: *mut f64,
7915    tau: *mut Complex64,
7916    work: *mut Complex64,
7917    lwork: *const lapackint,
7918    info: *mut lapackint,
7919);
7920
7921// HETRD_2STAGE
7922define_lapack_ffi!(chetrd_2stage, Chetrd_2stageFnPtr,
7923    vect: *const c_char,
7924    uplo: *const c_char,
7925    n: *const lapackint,
7926    A: *mut Complex32,
7927    lda: *const lapackint,
7928    D: *mut f32,
7929    E: *mut f32,
7930    tau: *mut Complex32,
7931    HOUS2: *mut Complex32,
7932    lhous2: *const lapackint,
7933    work: *mut Complex32,
7934    lwork: *const lapackint,
7935    info: *mut lapackint,
7936);
7937
7938define_lapack_ffi!(zhetrd_2stage, Zhetrd_2stageFnPtr,
7939    vect: *const c_char,
7940    uplo: *const c_char,
7941    n: *const lapackint,
7942    A: *mut Complex64,
7943    lda: *const lapackint,
7944    D: *mut f64,
7945    E: *mut f64,
7946    tau: *mut Complex64,
7947    HOUS2: *mut Complex64,
7948    lhous2: *const lapackint,
7949    work: *mut Complex64,
7950    lwork: *const lapackint,
7951    info: *mut lapackint,
7952);
7953
7954// HETRF
7955define_lapack_ffi!(chetrf, ChetrfFnPtr,
7956    uplo: *const c_char,
7957    n: *const lapackint,
7958    A: *mut Complex32,
7959    lda: *const lapackint,
7960    ipiv: *mut lapackint,
7961    work: *mut Complex32,
7962    lwork: *const lapackint,
7963    info: *mut lapackint,
7964);
7965
7966define_lapack_ffi!(zhetrf, ZhetrfFnPtr,
7967    uplo: *const c_char,
7968    n: *const lapackint,
7969    A: *mut Complex64,
7970    lda: *const lapackint,
7971    ipiv: *mut lapackint,
7972    work: *mut Complex64,
7973    lwork: *const lapackint,
7974    info: *mut lapackint,
7975);
7976
7977// HETRF_AA
7978define_lapack_ffi!(chetrf_aa, Chetrf_aaFnPtr,
7979    uplo: *const c_char,
7980    n: *const lapackint,
7981    A: *mut Complex32,
7982    lda: *const lapackint,
7983    ipiv: *mut lapackint,
7984    work: *mut Complex32,
7985    lwork: *const lapackint,
7986    info: *mut lapackint,
7987);
7988
7989define_lapack_ffi!(zhetrf_aa, Zhetrf_aaFnPtr,
7990    uplo: *const c_char,
7991    n: *const lapackint,
7992    A: *mut Complex64,
7993    lda: *const lapackint,
7994    ipiv: *mut lapackint,
7995    work: *mut Complex64,
7996    lwork: *const lapackint,
7997    info: *mut lapackint,
7998);
7999
8000// HETRF_AA_2STAGE
8001define_lapack_ffi!(chetrf_aa_2stage, Chetrf_aa_2stageFnPtr,
8002    uplo: *const c_char,
8003    n: *const lapackint,
8004    A: *mut Complex32,
8005    lda: *const lapackint,
8006    TB: *mut Complex32,
8007    ltb: *const lapackint,
8008    ipiv: *mut lapackint,
8009    ipiv2: *mut lapackint,
8010    work: *mut Complex32,
8011    lwork: *const lapackint,
8012    info: *mut lapackint,
8013);
8014
8015define_lapack_ffi!(zhetrf_aa_2stage, Zhetrf_aa_2stageFnPtr,
8016    uplo: *const c_char,
8017    n: *const lapackint,
8018    A: *mut Complex64,
8019    lda: *const lapackint,
8020    TB: *mut Complex64,
8021    ltb: *const lapackint,
8022    ipiv: *mut lapackint,
8023    ipiv2: *mut lapackint,
8024    work: *mut Complex64,
8025    lwork: *const lapackint,
8026    info: *mut lapackint,
8027);
8028
8029// HETRF_RK
8030define_lapack_ffi!(chetrf_rk, Chetrf_rkFnPtr,
8031    uplo: *const c_char,
8032    n: *const lapackint,
8033    A: *mut Complex32,
8034    lda: *const lapackint,
8035    E: *mut Complex32,
8036    ipiv: *mut lapackint,
8037    work: *mut Complex32,
8038    lwork: *const lapackint,
8039    info: *mut lapackint,
8040);
8041
8042define_lapack_ffi!(zhetrf_rk, Zhetrf_rkFnPtr,
8043    uplo: *const c_char,
8044    n: *const lapackint,
8045    A: *mut Complex64,
8046    lda: *const lapackint,
8047    E: *mut Complex64,
8048    ipiv: *mut lapackint,
8049    work: *mut Complex64,
8050    lwork: *const lapackint,
8051    info: *mut lapackint,
8052);
8053
8054// HETRF_ROOK
8055define_lapack_ffi!(chetrf_rook, Chetrf_rookFnPtr,
8056    uplo: *const c_char,
8057    n: *const lapackint,
8058    A: *mut Complex32,
8059    lda: *const lapackint,
8060    ipiv: *mut lapackint,
8061    work: *mut Complex32,
8062    lwork: *const lapackint,
8063    info: *mut lapackint,
8064);
8065
8066define_lapack_ffi!(zhetrf_rook, Zhetrf_rookFnPtr,
8067    uplo: *const c_char,
8068    n: *const lapackint,
8069    A: *mut Complex64,
8070    lda: *const lapackint,
8071    ipiv: *mut lapackint,
8072    work: *mut Complex64,
8073    lwork: *const lapackint,
8074    info: *mut lapackint,
8075);
8076
8077// HETRI
8078define_lapack_ffi!(chetri, ChetriFnPtr,
8079    uplo: *const c_char,
8080    n: *const lapackint,
8081    A: *mut Complex32,
8082    lda: *const lapackint,
8083    ipiv: *const lapackint,
8084    work: *mut Complex32,
8085    info: *mut lapackint,
8086);
8087
8088define_lapack_ffi!(zhetri, ZhetriFnPtr,
8089    uplo: *const c_char,
8090    n: *const lapackint,
8091    A: *mut Complex64,
8092    lda: *const lapackint,
8093    ipiv: *const lapackint,
8094    work: *mut Complex64,
8095    info: *mut lapackint,
8096);
8097
8098// HETRI2
8099define_lapack_ffi!(chetri2, Chetri2FnPtr,
8100    uplo: *const c_char,
8101    n: *const lapackint,
8102    A: *mut Complex32,
8103    lda: *const lapackint,
8104    ipiv: *const lapackint,
8105    work: *mut Complex32,
8106    lwork: *const lapackint,
8107    info: *mut lapackint,
8108);
8109
8110define_lapack_ffi!(zhetri2, Zhetri2FnPtr,
8111    uplo: *const c_char,
8112    n: *const lapackint,
8113    A: *mut Complex64,
8114    lda: *const lapackint,
8115    ipiv: *const lapackint,
8116    work: *mut Complex64,
8117    lwork: *const lapackint,
8118    info: *mut lapackint,
8119);
8120
8121// HETRI2X
8122define_lapack_ffi!(chetri2x, Chetri2xFnPtr,
8123    uplo: *const c_char,
8124    n: *const lapackint,
8125    A: *mut Complex32,
8126    lda: *const lapackint,
8127    ipiv: *const lapackint,
8128    work: *mut Complex32,
8129    nb: *const lapackint,
8130    info: *mut lapackint,
8131);
8132
8133define_lapack_ffi!(zhetri2x, Zhetri2xFnPtr,
8134    uplo: *const c_char,
8135    n: *const lapackint,
8136    A: *mut Complex64,
8137    lda: *const lapackint,
8138    ipiv: *const lapackint,
8139    work: *mut Complex64,
8140    nb: *const lapackint,
8141    info: *mut lapackint,
8142);
8143
8144// HETRI_3
8145define_lapack_ffi!(chetri_3, Chetri_3FnPtr,
8146    uplo: *const c_char,
8147    n: *const lapackint,
8148    A: *mut Complex32,
8149    lda: *const lapackint,
8150    E: *const Complex32,
8151    ipiv: *const lapackint,
8152    work: *mut Complex32,
8153    lwork: *const lapackint,
8154    info: *mut lapackint,
8155);
8156
8157define_lapack_ffi!(zhetri_3, Zhetri_3FnPtr,
8158    uplo: *const c_char,
8159    n: *const lapackint,
8160    A: *mut Complex64,
8161    lda: *const lapackint,
8162    E: *const Complex64,
8163    ipiv: *const lapackint,
8164    work: *mut Complex64,
8165    lwork: *const lapackint,
8166    info: *mut lapackint,
8167);
8168
8169// HETRS
8170define_lapack_ffi!(chetrs, ChetrsFnPtr,
8171    uplo: *const c_char,
8172    n: *const lapackint,
8173    nrhs: *const lapackint,
8174    A: *const Complex32,
8175    lda: *const lapackint,
8176    ipiv: *const lapackint,
8177    B: *mut Complex32,
8178    ldb: *const lapackint,
8179    info: *mut lapackint,
8180);
8181
8182define_lapack_ffi!(zhetrs, ZhetrsFnPtr,
8183    uplo: *const c_char,
8184    n: *const lapackint,
8185    nrhs: *const lapackint,
8186    A: *const Complex64,
8187    lda: *const lapackint,
8188    ipiv: *const lapackint,
8189    B: *mut Complex64,
8190    ldb: *const lapackint,
8191    info: *mut lapackint,
8192);
8193
8194// HETRS2
8195define_lapack_ffi!(chetrs2, Chetrs2FnPtr,
8196    uplo: *const c_char,
8197    n: *const lapackint,
8198    nrhs: *const lapackint,
8199    A: *const Complex32,
8200    lda: *const lapackint,
8201    ipiv: *const lapackint,
8202    B: *mut Complex32,
8203    ldb: *const lapackint,
8204    work: *mut Complex32,
8205    info: *mut lapackint,
8206);
8207
8208define_lapack_ffi!(zhetrs2, Zhetrs2FnPtr,
8209    uplo: *const c_char,
8210    n: *const lapackint,
8211    nrhs: *const lapackint,
8212    A: *const Complex64,
8213    lda: *const lapackint,
8214    ipiv: *const lapackint,
8215    B: *mut Complex64,
8216    ldb: *const lapackint,
8217    work: *mut Complex64,
8218    info: *mut lapackint,
8219);
8220
8221// HETRS_3
8222define_lapack_ffi!(chetrs_3, Chetrs_3FnPtr,
8223    uplo: *const c_char,
8224    n: *const lapackint,
8225    nrhs: *const lapackint,
8226    A: *const Complex32,
8227    lda: *const lapackint,
8228    E: *const Complex32,
8229    ipiv: *const lapackint,
8230    B: *mut Complex32,
8231    ldb: *const lapackint,
8232    info: *mut lapackint,
8233);
8234
8235define_lapack_ffi!(zhetrs_3, Zhetrs_3FnPtr,
8236    uplo: *const c_char,
8237    n: *const lapackint,
8238    nrhs: *const lapackint,
8239    A: *const Complex64,
8240    lda: *const lapackint,
8241    E: *const Complex64,
8242    ipiv: *const lapackint,
8243    B: *mut Complex64,
8244    ldb: *const lapackint,
8245    info: *mut lapackint,
8246);
8247
8248// HETRS_AA
8249define_lapack_ffi!(chetrs_aa, Chetrs_aaFnPtr,
8250    uplo: *const c_char,
8251    n: *const lapackint,
8252    nrhs: *const lapackint,
8253    A: *const Complex32,
8254    lda: *const lapackint,
8255    ipiv: *const lapackint,
8256    B: *mut Complex32,
8257    ldb: *const lapackint,
8258    work: *mut Complex32,
8259    lwork: *const lapackint,
8260    info: *mut lapackint,
8261);
8262
8263define_lapack_ffi!(zhetrs_aa, Zhetrs_aaFnPtr,
8264    uplo: *const c_char,
8265    n: *const lapackint,
8266    nrhs: *const lapackint,
8267    A: *const Complex64,
8268    lda: *const lapackint,
8269    ipiv: *const lapackint,
8270    B: *mut Complex64,
8271    ldb: *const lapackint,
8272    work: *mut Complex64,
8273    lwork: *const lapackint,
8274    info: *mut lapackint,
8275);
8276
8277// HETRS_AA_2STAGE
8278define_lapack_ffi!(chetrs_aa_2stage, Chetrs_aa_2stageFnPtr,
8279    uplo: *const c_char,
8280    n: *const lapackint,
8281    nrhs: *const lapackint,
8282    A: *const Complex32,
8283    lda: *const lapackint,
8284    TB: *mut Complex32,
8285    ltb: *const lapackint,
8286    ipiv: *const lapackint,
8287    ipiv2: *const lapackint,
8288    B: *mut Complex32,
8289    ldb: *const lapackint,
8290    info: *mut lapackint,
8291);
8292
8293define_lapack_ffi!(zhetrs_aa_2stage, Zhetrs_aa_2stageFnPtr,
8294    uplo: *const c_char,
8295    n: *const lapackint,
8296    nrhs: *const lapackint,
8297    A: *const Complex64,
8298    lda: *const lapackint,
8299    TB: *mut Complex64,
8300    ltb: *const lapackint,
8301    ipiv: *const lapackint,
8302    ipiv2: *const lapackint,
8303    B: *mut Complex64,
8304    ldb: *const lapackint,
8305    info: *mut lapackint,
8306);
8307
8308// HETRS_ROOK
8309define_lapack_ffi!(chetrs_rook, Chetrs_rookFnPtr,
8310    uplo: *const c_char,
8311    n: *const lapackint,
8312    nrhs: *const lapackint,
8313    A: *const Complex32,
8314    lda: *const lapackint,
8315    ipiv: *const lapackint,
8316    B: *mut Complex32,
8317    ldb: *const lapackint,
8318    info: *mut lapackint,
8319);
8320
8321define_lapack_ffi!(zhetrs_rook, Zhetrs_rookFnPtr,
8322    uplo: *const c_char,
8323    n: *const lapackint,
8324    nrhs: *const lapackint,
8325    A: *const Complex64,
8326    lda: *const lapackint,
8327    ipiv: *const lapackint,
8328    B: *mut Complex64,
8329    ldb: *const lapackint,
8330    info: *mut lapackint,
8331);
8332
8333// HFRK
8334define_lapack_ffi!(chfrk, ChfrkFnPtr,
8335    transr: *const c_char,
8336    uplo: *const c_char,
8337    trans: *const c_char,
8338    n: *const lapackint,
8339    k: *const lapackint,
8340    alpha: *const f32,
8341    A: *const Complex32,
8342    lda: *const lapackint,
8343    beta: *const f32,
8344    C: *mut Complex32,
8345);
8346
8347define_lapack_ffi!(zhfrk, ZhfrkFnPtr,
8348    transr: *const c_char,
8349    uplo: *const c_char,
8350    trans: *const c_char,
8351    n: *const lapackint,
8352    k: *const lapackint,
8353    alpha: *const f64,
8354    A: *const Complex64,
8355    lda: *const lapackint,
8356    beta: *const f64,
8357    C: *mut Complex64,
8358);
8359
8360// HGEQZ
8361define_lapack_ffi!(chgeqz, ChgeqzFnPtr,
8362    job: *const c_char,
8363    compq: *const c_char,
8364    compz: *const c_char,
8365    n: *const lapackint,
8366    ilo: *const lapackint,
8367    ihi: *const lapackint,
8368    H: *mut Complex32,
8369    ldh: *const lapackint,
8370    T: *mut Complex32,
8371    ldt: *const lapackint,
8372    alpha: *mut Complex32,
8373    beta: *mut Complex32,
8374    Q: *mut Complex32,
8375    ldq: *const lapackint,
8376    Z: *mut Complex32,
8377    ldz: *const lapackint,
8378    work: *mut Complex32,
8379    lwork: *const lapackint,
8380    rwork: *mut f32,
8381    info: *mut lapackint,
8382);
8383
8384define_lapack_ffi!(dhgeqz, DhgeqzFnPtr,
8385    job: *const c_char,
8386    compq: *const c_char,
8387    compz: *const c_char,
8388    n: *const lapackint,
8389    ilo: *const lapackint,
8390    ihi: *const lapackint,
8391    H: *mut f64,
8392    ldh: *const lapackint,
8393    T: *mut f64,
8394    ldt: *const lapackint,
8395    alphar: *mut f64,
8396    alphai: *mut f64,
8397    beta: *mut f64,
8398    Q: *mut f64,
8399    ldq: *const lapackint,
8400    Z: *mut f64,
8401    ldz: *const lapackint,
8402    work: *mut f64,
8403    lwork: *const lapackint,
8404    info: *mut lapackint,
8405);
8406
8407define_lapack_ffi!(shgeqz, ShgeqzFnPtr,
8408    job: *const c_char,
8409    compq: *const c_char,
8410    compz: *const c_char,
8411    n: *const lapackint,
8412    ilo: *const lapackint,
8413    ihi: *const lapackint,
8414    H: *mut f32,
8415    ldh: *const lapackint,
8416    T: *mut f32,
8417    ldt: *const lapackint,
8418    alphar: *mut f32,
8419    alphai: *mut f32,
8420    beta: *mut f32,
8421    Q: *mut f32,
8422    ldq: *const lapackint,
8423    Z: *mut f32,
8424    ldz: *const lapackint,
8425    work: *mut f32,
8426    lwork: *const lapackint,
8427    info: *mut lapackint,
8428);
8429
8430define_lapack_ffi!(zhgeqz, ZhgeqzFnPtr,
8431    job: *const c_char,
8432    compq: *const c_char,
8433    compz: *const c_char,
8434    n: *const lapackint,
8435    ilo: *const lapackint,
8436    ihi: *const lapackint,
8437    H: *mut Complex64,
8438    ldh: *const lapackint,
8439    T: *mut Complex64,
8440    ldt: *const lapackint,
8441    alpha: *mut Complex64,
8442    beta: *mut Complex64,
8443    Q: *mut Complex64,
8444    ldq: *const lapackint,
8445    Z: *mut Complex64,
8446    ldz: *const lapackint,
8447    work: *mut Complex64,
8448    lwork: *const lapackint,
8449    rwork: *mut f64,
8450    info: *mut lapackint,
8451);
8452
8453// HPCON
8454define_lapack_ffi!(chpcon, ChpconFnPtr,
8455    uplo: *const c_char,
8456    n: *const lapackint,
8457    AP: *const Complex32,
8458    ipiv: *const lapackint,
8459    anorm: *const f32,
8460    rcond: *mut f32,
8461    work: *mut Complex32,
8462    info: *mut lapackint,
8463);
8464
8465define_lapack_ffi!(zhpcon, ZhpconFnPtr,
8466    uplo: *const c_char,
8467    n: *const lapackint,
8468    AP: *const Complex64,
8469    ipiv: *const lapackint,
8470    anorm: *const f64,
8471    rcond: *mut f64,
8472    work: *mut Complex64,
8473    info: *mut lapackint,
8474);
8475
8476// HPEV
8477define_lapack_ffi!(chpev, ChpevFnPtr,
8478    jobz: *const c_char,
8479    uplo: *const c_char,
8480    n: *const lapackint,
8481    AP: *mut Complex32,
8482    W: *mut f32,
8483    Z: *mut Complex32,
8484    ldz: *const lapackint,
8485    work: *mut Complex32,
8486    rwork: *mut f32,
8487    info: *mut lapackint,
8488);
8489
8490define_lapack_ffi!(zhpev, ZhpevFnPtr,
8491    jobz: *const c_char,
8492    uplo: *const c_char,
8493    n: *const lapackint,
8494    AP: *mut Complex64,
8495    W: *mut f64,
8496    Z: *mut Complex64,
8497    ldz: *const lapackint,
8498    work: *mut Complex64,
8499    rwork: *mut f64,
8500    info: *mut lapackint,
8501);
8502
8503// HPEVD
8504define_lapack_ffi!(chpevd, ChpevdFnPtr,
8505    jobz: *const c_char,
8506    uplo: *const c_char,
8507    n: *const lapackint,
8508    AP: *mut Complex32,
8509    W: *mut f32,
8510    Z: *mut Complex32,
8511    ldz: *const lapackint,
8512    work: *mut Complex32,
8513    lwork: *const lapackint,
8514    rwork: *mut f32,
8515    lrwork: *const lapackint,
8516    iwork: *mut lapackint,
8517    liwork: *const lapackint,
8518    info: *mut lapackint,
8519);
8520
8521define_lapack_ffi!(zhpevd, ZhpevdFnPtr,
8522    jobz: *const c_char,
8523    uplo: *const c_char,
8524    n: *const lapackint,
8525    AP: *mut Complex64,
8526    W: *mut f64,
8527    Z: *mut Complex64,
8528    ldz: *const lapackint,
8529    work: *mut Complex64,
8530    lwork: *const lapackint,
8531    rwork: *mut f64,
8532    lrwork: *const lapackint,
8533    iwork: *mut lapackint,
8534    liwork: *const lapackint,
8535    info: *mut lapackint,
8536);
8537
8538// HPEVX
8539define_lapack_ffi!(chpevx, ChpevxFnPtr,
8540    jobz: *const c_char,
8541    range: *const c_char,
8542    uplo: *const c_char,
8543    n: *const lapackint,
8544    AP: *mut Complex32,
8545    vl: *const f32,
8546    vu: *const f32,
8547    il: *const lapackint,
8548    iu: *const lapackint,
8549    abstol: *const f32,
8550    m: *mut lapackint,
8551    W: *mut f32,
8552    Z: *mut Complex32,
8553    ldz: *const lapackint,
8554    work: *mut Complex32,
8555    rwork: *mut f32,
8556    iwork: *mut lapackint,
8557    IFAIL: *mut lapackint,
8558    info: *mut lapackint,
8559);
8560
8561define_lapack_ffi!(zhpevx, ZhpevxFnPtr,
8562    jobz: *const c_char,
8563    range: *const c_char,
8564    uplo: *const c_char,
8565    n: *const lapackint,
8566    AP: *mut Complex64,
8567    vl: *const f64,
8568    vu: *const f64,
8569    il: *const lapackint,
8570    iu: *const lapackint,
8571    abstol: *const f64,
8572    m: *mut lapackint,
8573    W: *mut f64,
8574    Z: *mut Complex64,
8575    ldz: *const lapackint,
8576    work: *mut Complex64,
8577    rwork: *mut f64,
8578    iwork: *mut lapackint,
8579    IFAIL: *mut lapackint,
8580    info: *mut lapackint,
8581);
8582
8583// HPGST
8584define_lapack_ffi!(chpgst, ChpgstFnPtr,
8585    itype: *const lapackint,
8586    uplo: *const c_char,
8587    n: *const lapackint,
8588    AP: *mut Complex32,
8589    BP: *const Complex32,
8590    info: *mut lapackint,
8591);
8592
8593define_lapack_ffi!(zhpgst, ZhpgstFnPtr,
8594    itype: *const lapackint,
8595    uplo: *const c_char,
8596    n: *const lapackint,
8597    AP: *mut Complex64,
8598    BP: *const Complex64,
8599    info: *mut lapackint,
8600);
8601
8602// HPGV
8603define_lapack_ffi!(chpgv, ChpgvFnPtr,
8604    itype: *const lapackint,
8605    jobz: *const c_char,
8606    uplo: *const c_char,
8607    n: *const lapackint,
8608    AP: *mut Complex32,
8609    BP: *mut Complex32,
8610    W: *mut f32,
8611    Z: *mut Complex32,
8612    ldz: *const lapackint,
8613    work: *mut Complex32,
8614    rwork: *mut f32,
8615    info: *mut lapackint,
8616);
8617
8618define_lapack_ffi!(zhpgv, ZhpgvFnPtr,
8619    itype: *const lapackint,
8620    jobz: *const c_char,
8621    uplo: *const c_char,
8622    n: *const lapackint,
8623    AP: *mut Complex64,
8624    BP: *mut Complex64,
8625    W: *mut f64,
8626    Z: *mut Complex64,
8627    ldz: *const lapackint,
8628    work: *mut Complex64,
8629    rwork: *mut f64,
8630    info: *mut lapackint,
8631);
8632
8633// HPGVD
8634define_lapack_ffi!(chpgvd, ChpgvdFnPtr,
8635    itype: *const lapackint,
8636    jobz: *const c_char,
8637    uplo: *const c_char,
8638    n: *const lapackint,
8639    AP: *mut Complex32,
8640    BP: *mut Complex32,
8641    W: *mut f32,
8642    Z: *mut Complex32,
8643    ldz: *const lapackint,
8644    work: *mut Complex32,
8645    lwork: *const lapackint,
8646    rwork: *mut f32,
8647    lrwork: *const lapackint,
8648    iwork: *mut lapackint,
8649    liwork: *const lapackint,
8650    info: *mut lapackint,
8651);
8652
8653define_lapack_ffi!(zhpgvd, ZhpgvdFnPtr,
8654    itype: *const lapackint,
8655    jobz: *const c_char,
8656    uplo: *const c_char,
8657    n: *const lapackint,
8658    AP: *mut Complex64,
8659    BP: *mut Complex64,
8660    W: *mut f64,
8661    Z: *mut Complex64,
8662    ldz: *const lapackint,
8663    work: *mut Complex64,
8664    lwork: *const lapackint,
8665    rwork: *mut f64,
8666    lrwork: *const lapackint,
8667    iwork: *mut lapackint,
8668    liwork: *const lapackint,
8669    info: *mut lapackint,
8670);
8671
8672// HPGVX
8673define_lapack_ffi!(chpgvx, ChpgvxFnPtr,
8674    itype: *const lapackint,
8675    jobz: *const c_char,
8676    range: *const c_char,
8677    uplo: *const c_char,
8678    n: *const lapackint,
8679    AP: *mut Complex32,
8680    BP: *mut Complex32,
8681    vl: *const f32,
8682    vu: *const f32,
8683    il: *const lapackint,
8684    iu: *const lapackint,
8685    abstol: *const f32,
8686    m: *mut lapackint,
8687    W: *mut f32,
8688    Z: *mut Complex32,
8689    ldz: *const lapackint,
8690    work: *mut Complex32,
8691    rwork: *mut f32,
8692    iwork: *mut lapackint,
8693    IFAIL: *mut lapackint,
8694    info: *mut lapackint,
8695);
8696
8697define_lapack_ffi!(zhpgvx, ZhpgvxFnPtr,
8698    itype: *const lapackint,
8699    jobz: *const c_char,
8700    range: *const c_char,
8701    uplo: *const c_char,
8702    n: *const lapackint,
8703    AP: *mut Complex64,
8704    BP: *mut Complex64,
8705    vl: *const f64,
8706    vu: *const f64,
8707    il: *const lapackint,
8708    iu: *const lapackint,
8709    abstol: *const f64,
8710    m: *mut lapackint,
8711    W: *mut f64,
8712    Z: *mut Complex64,
8713    ldz: *const lapackint,
8714    work: *mut Complex64,
8715    rwork: *mut f64,
8716    iwork: *mut lapackint,
8717    IFAIL: *mut lapackint,
8718    info: *mut lapackint,
8719);
8720
8721// HPRFS
8722define_lapack_ffi!(chprfs, ChprfsFnPtr,
8723    uplo: *const c_char,
8724    n: *const lapackint,
8725    nrhs: *const lapackint,
8726    AP: *const Complex32,
8727    AFP: *const Complex32,
8728    ipiv: *const lapackint,
8729    B: *const Complex32,
8730    ldb: *const lapackint,
8731    X: *mut Complex32,
8732    ldx: *const lapackint,
8733    ferr: *mut f32,
8734    berr: *mut f32,
8735    work: *mut Complex32,
8736    rwork: *mut f32,
8737    info: *mut lapackint,
8738);
8739
8740define_lapack_ffi!(zhprfs, ZhprfsFnPtr,
8741    uplo: *const c_char,
8742    n: *const lapackint,
8743    nrhs: *const lapackint,
8744    AP: *const Complex64,
8745    AFP: *const Complex64,
8746    ipiv: *const lapackint,
8747    B: *const Complex64,
8748    ldb: *const lapackint,
8749    X: *mut Complex64,
8750    ldx: *const lapackint,
8751    ferr: *mut f64,
8752    berr: *mut f64,
8753    work: *mut Complex64,
8754    rwork: *mut f64,
8755    info: *mut lapackint,
8756);
8757
8758// HPSV
8759define_lapack_ffi!(chpsv, ChpsvFnPtr,
8760    uplo: *const c_char,
8761    n: *const lapackint,
8762    nrhs: *const lapackint,
8763    AP: *mut Complex32,
8764    ipiv: *mut lapackint,
8765    B: *mut Complex32,
8766    ldb: *const lapackint,
8767    info: *mut lapackint,
8768);
8769
8770define_lapack_ffi!(zhpsv, ZhpsvFnPtr,
8771    uplo: *const c_char,
8772    n: *const lapackint,
8773    nrhs: *const lapackint,
8774    AP: *mut Complex64,
8775    ipiv: *mut lapackint,
8776    B: *mut Complex64,
8777    ldb: *const lapackint,
8778    info: *mut lapackint,
8779);
8780
8781// HPSVX
8782define_lapack_ffi!(chpsvx, ChpsvxFnPtr,
8783    fact: *const c_char,
8784    uplo: *const c_char,
8785    n: *const lapackint,
8786    nrhs: *const lapackint,
8787    AP: *const Complex32,
8788    AFP: *mut Complex32,
8789    ipiv: *mut lapackint,
8790    B: *const Complex32,
8791    ldb: *const lapackint,
8792    X: *mut Complex32,
8793    ldx: *const lapackint,
8794    rcond: *mut f32,
8795    ferr: *mut f32,
8796    berr: *mut f32,
8797    work: *mut Complex32,
8798    rwork: *mut f32,
8799    info: *mut lapackint,
8800);
8801
8802define_lapack_ffi!(zhpsvx, ZhpsvxFnPtr,
8803    fact: *const c_char,
8804    uplo: *const c_char,
8805    n: *const lapackint,
8806    nrhs: *const lapackint,
8807    AP: *const Complex64,
8808    AFP: *mut Complex64,
8809    ipiv: *mut lapackint,
8810    B: *const Complex64,
8811    ldb: *const lapackint,
8812    X: *mut Complex64,
8813    ldx: *const lapackint,
8814    rcond: *mut f64,
8815    ferr: *mut f64,
8816    berr: *mut f64,
8817    work: *mut Complex64,
8818    rwork: *mut f64,
8819    info: *mut lapackint,
8820);
8821
8822// HPTRD
8823define_lapack_ffi!(chptrd, ChptrdFnPtr,
8824    uplo: *const c_char,
8825    n: *const lapackint,
8826    AP: *mut Complex32,
8827    D: *mut f32,
8828    E: *mut f32,
8829    tau: *mut Complex32,
8830    info: *mut lapackint,
8831);
8832
8833define_lapack_ffi!(zhptrd, ZhptrdFnPtr,
8834    uplo: *const c_char,
8835    n: *const lapackint,
8836    AP: *mut Complex64,
8837    D: *mut f64,
8838    E: *mut f64,
8839    tau: *mut Complex64,
8840    info: *mut lapackint,
8841);
8842
8843// HPTRF
8844define_lapack_ffi!(chptrf, ChptrfFnPtr,
8845    uplo: *const c_char,
8846    n: *const lapackint,
8847    AP: *mut Complex32,
8848    ipiv: *mut lapackint,
8849    info: *mut lapackint,
8850);
8851
8852define_lapack_ffi!(zhptrf, ZhptrfFnPtr,
8853    uplo: *const c_char,
8854    n: *const lapackint,
8855    AP: *mut Complex64,
8856    ipiv: *mut lapackint,
8857    info: *mut lapackint,
8858);
8859
8860// HPTRI
8861define_lapack_ffi!(chptri, ChptriFnPtr,
8862    uplo: *const c_char,
8863    n: *const lapackint,
8864    AP: *mut Complex32,
8865    ipiv: *const lapackint,
8866    work: *mut Complex32,
8867    info: *mut lapackint,
8868);
8869
8870define_lapack_ffi!(zhptri, ZhptriFnPtr,
8871    uplo: *const c_char,
8872    n: *const lapackint,
8873    AP: *mut Complex64,
8874    ipiv: *const lapackint,
8875    work: *mut Complex64,
8876    info: *mut lapackint,
8877);
8878
8879// HPTRS
8880define_lapack_ffi!(chptrs, ChptrsFnPtr,
8881    uplo: *const c_char,
8882    n: *const lapackint,
8883    nrhs: *const lapackint,
8884    AP: *const Complex32,
8885    ipiv: *const lapackint,
8886    B: *mut Complex32,
8887    ldb: *const lapackint,
8888    info: *mut lapackint,
8889);
8890
8891define_lapack_ffi!(zhptrs, ZhptrsFnPtr,
8892    uplo: *const c_char,
8893    n: *const lapackint,
8894    nrhs: *const lapackint,
8895    AP: *const Complex64,
8896    ipiv: *const lapackint,
8897    B: *mut Complex64,
8898    ldb: *const lapackint,
8899    info: *mut lapackint,
8900);
8901
8902// HSEIN
8903define_lapack_ffi!(chsein, ChseinFnPtr,
8904    side: *const c_char,
8905    eigsrc: *const c_char,
8906    initv: *const c_char,
8907    select: *const lapackint,
8908    n: *const lapackint,
8909    H: *const Complex32,
8910    ldh: *const lapackint,
8911    W: *mut Complex32,
8912    VL: *mut Complex32,
8913    ldvl: *const lapackint,
8914    VR: *mut Complex32,
8915    ldvr: *const lapackint,
8916    mm: *const lapackint,
8917    m: *mut lapackint,
8918    work: *mut Complex32,
8919    rwork: *mut f32,
8920    IFAILL: *mut lapackint,
8921    IFAILR: *mut lapackint,
8922    info: *mut lapackint,
8923);
8924
8925define_lapack_ffi!(dhsein, DhseinFnPtr,
8926    side: *const c_char,
8927    eigsrc: *const c_char,
8928    initv: *const c_char,
8929    select: *mut lapackint,
8930    n: *const lapackint,
8931    H: *const f64,
8932    ldh: *const lapackint,
8933    WR: *mut f64,
8934    WI: *const f64,
8935    VL: *mut f64,
8936    ldvl: *const lapackint,
8937    VR: *mut f64,
8938    ldvr: *const lapackint,
8939    mm: *const lapackint,
8940    m: *mut lapackint,
8941    work: *mut f64,
8942    IFAILL: *mut lapackint,
8943    IFAILR: *mut lapackint,
8944    info: *mut lapackint,
8945);
8946
8947define_lapack_ffi!(shsein, ShseinFnPtr,
8948    side: *const c_char,
8949    eigsrc: *const c_char,
8950    initv: *const c_char,
8951    select: *mut lapackint,
8952    n: *const lapackint,
8953    H: *const f32,
8954    ldh: *const lapackint,
8955    WR: *mut f32,
8956    WI: *const f32,
8957    VL: *mut f32,
8958    ldvl: *const lapackint,
8959    VR: *mut f32,
8960    ldvr: *const lapackint,
8961    mm: *const lapackint,
8962    m: *mut lapackint,
8963    work: *mut f32,
8964    IFAILL: *mut lapackint,
8965    IFAILR: *mut lapackint,
8966    info: *mut lapackint,
8967);
8968
8969define_lapack_ffi!(zhsein, ZhseinFnPtr,
8970    side: *const c_char,
8971    eigsrc: *const c_char,
8972    initv: *const c_char,
8973    select: *const lapackint,
8974    n: *const lapackint,
8975    H: *const Complex64,
8976    ldh: *const lapackint,
8977    W: *mut Complex64,
8978    VL: *mut Complex64,
8979    ldvl: *const lapackint,
8980    VR: *mut Complex64,
8981    ldvr: *const lapackint,
8982    mm: *const lapackint,
8983    m: *mut lapackint,
8984    work: *mut Complex64,
8985    rwork: *mut f64,
8986    IFAILL: *mut lapackint,
8987    IFAILR: *mut lapackint,
8988    info: *mut lapackint,
8989);
8990
8991// HSEQR
8992define_lapack_ffi!(chseqr, ChseqrFnPtr,
8993    job: *const c_char,
8994    compz: *const c_char,
8995    n: *const lapackint,
8996    ilo: *const lapackint,
8997    ihi: *const lapackint,
8998    H: *mut Complex32,
8999    ldh: *const lapackint,
9000    W: *mut Complex32,
9001    Z: *mut Complex32,
9002    ldz: *const lapackint,
9003    work: *mut Complex32,
9004    lwork: *const lapackint,
9005    info: *mut lapackint,
9006);
9007
9008define_lapack_ffi!(dhseqr, DhseqrFnPtr,
9009    job: *const c_char,
9010    compz: *const c_char,
9011    n: *const lapackint,
9012    ilo: *const lapackint,
9013    ihi: *const lapackint,
9014    H: *mut f64,
9015    ldh: *const lapackint,
9016    WR: *mut f64,
9017    WI: *mut f64,
9018    Z: *mut f64,
9019    ldz: *const lapackint,
9020    work: *mut f64,
9021    lwork: *const lapackint,
9022    info: *mut lapackint,
9023);
9024
9025define_lapack_ffi!(shseqr, ShseqrFnPtr,
9026    job: *const c_char,
9027    compz: *const c_char,
9028    n: *const lapackint,
9029    ilo: *const lapackint,
9030    ihi: *const lapackint,
9031    H: *mut f32,
9032    ldh: *const lapackint,
9033    WR: *mut f32,
9034    WI: *mut f32,
9035    Z: *mut f32,
9036    ldz: *const lapackint,
9037    work: *mut f32,
9038    lwork: *const lapackint,
9039    info: *mut lapackint,
9040);
9041
9042define_lapack_ffi!(zhseqr, ZhseqrFnPtr,
9043    job: *const c_char,
9044    compz: *const c_char,
9045    n: *const lapackint,
9046    ilo: *const lapackint,
9047    ihi: *const lapackint,
9048    H: *mut Complex64,
9049    ldh: *const lapackint,
9050    W: *mut Complex64,
9051    Z: *mut Complex64,
9052    ldz: *const lapackint,
9053    work: *mut Complex64,
9054    lwork: *const lapackint,
9055    info: *mut lapackint,
9056);
9057
9058// ILAVER
9059define_lapack_ffi!(ilaver, IlaverFnPtr,
9060    vers_major: *mut lapackint,
9061    vers_minor: *mut lapackint,
9062    vers_patch: *mut lapackint,
9063);
9064
9065// LACGV
9066define_lapack_ffi!(clacgv, ClacgvFnPtr,
9067    n: *const lapackint,
9068    X: *mut Complex32,
9069    incx: *const lapackint,
9070);
9071
9072define_lapack_ffi!(zlacgv, ZlacgvFnPtr,
9073    n: *const lapackint,
9074    X: *mut Complex64,
9075    incx: *const lapackint,
9076);
9077
9078// LACN2
9079define_lapack_ffi!(clacn2, Clacn2FnPtr,
9080    n: *const lapackint,
9081    V: *mut Complex32,
9082    X: *mut Complex32,
9083    est: *mut f32,
9084    kase: *mut lapackint,
9085    ISAVE: *mut lapackint,
9086);
9087
9088define_lapack_ffi!(dlacn2, Dlacn2FnPtr,
9089    n: *const lapackint,
9090    V: *mut f64,
9091    X: *mut f64,
9092    ISGN: *mut lapackint,
9093    est: *mut f64,
9094    kase: *mut lapackint,
9095    ISAVE: *mut lapackint,
9096);
9097
9098define_lapack_ffi!(slacn2, Slacn2FnPtr,
9099    n: *const lapackint,
9100    V: *mut f32,
9101    X: *mut f32,
9102    ISGN: *mut lapackint,
9103    est: *mut f32,
9104    kase: *mut lapackint,
9105    ISAVE: *mut lapackint,
9106);
9107
9108define_lapack_ffi!(zlacn2, Zlacn2FnPtr,
9109    n: *const lapackint,
9110    V: *mut Complex64,
9111    X: *mut Complex64,
9112    est: *mut f64,
9113    kase: *mut lapackint,
9114    ISAVE: *mut lapackint,
9115);
9116
9117// LACP2
9118define_lapack_ffi!(clacp2, Clacp2FnPtr,
9119    uplo: *const c_char,
9120    m: *const lapackint,
9121    n: *const lapackint,
9122    A: *const f32,
9123    lda: *const lapackint,
9124    B: *mut Complex32,
9125    ldb: *const lapackint,
9126);
9127
9128define_lapack_ffi!(zlacp2, Zlacp2FnPtr,
9129    uplo: *const c_char,
9130    m: *const lapackint,
9131    n: *const lapackint,
9132    A: *const f64,
9133    lda: *const lapackint,
9134    B: *mut Complex64,
9135    ldb: *const lapackint,
9136);
9137
9138// LACPY
9139define_lapack_ffi!(clacpy, ClacpyFnPtr,
9140    uplo: *const c_char,
9141    m: *const lapackint,
9142    n: *const lapackint,
9143    A: *const Complex32,
9144    lda: *const lapackint,
9145    B: *mut Complex32,
9146    ldb: *const lapackint,
9147);
9148
9149define_lapack_ffi!(dlacpy, DlacpyFnPtr,
9150    uplo: *const c_char,
9151    m: *const lapackint,
9152    n: *const lapackint,
9153    A: *const f64,
9154    lda: *const lapackint,
9155    B: *mut f64,
9156    ldb: *const lapackint,
9157);
9158
9159define_lapack_ffi!(slacpy, SlacpyFnPtr,
9160    uplo: *const c_char,
9161    m: *const lapackint,
9162    n: *const lapackint,
9163    A: *const f32,
9164    lda: *const lapackint,
9165    B: *mut f32,
9166    ldb: *const lapackint,
9167);
9168
9169define_lapack_ffi!(zlacpy, ZlacpyFnPtr,
9170    uplo: *const c_char,
9171    m: *const lapackint,
9172    n: *const lapackint,
9173    A: *const Complex64,
9174    lda: *const lapackint,
9175    B: *mut Complex64,
9176    ldb: *const lapackint,
9177);
9178
9179// LACRM
9180define_lapack_ffi!(clacrm, ClacrmFnPtr,
9181    m: *const lapackint,
9182    n: *const lapackint,
9183    A: *const Complex32,
9184    lda: *const lapackint,
9185    B: *const f32,
9186    ldb: *const lapackint,
9187    C: *mut Complex32,
9188    ldc: *const lapackint,
9189    rwork: *mut f32,
9190);
9191
9192define_lapack_ffi!(zlacrm, ZlacrmFnPtr,
9193    m: *const lapackint,
9194    n: *const lapackint,
9195    A: *const Complex64,
9196    lda: *const lapackint,
9197    B: *const f64,
9198    ldb: *const lapackint,
9199    C: *mut Complex64,
9200    ldc: *const lapackint,
9201    rwork: *mut f64,
9202);
9203
9204// LAG2C
9205define_lapack_ffi!(zlag2c, Zlag2cFnPtr,
9206    m: *const lapackint,
9207    n: *const lapackint,
9208    A: *const Complex64,
9209    lda: *const lapackint,
9210    SA: *mut Complex32,
9211    ldsa: *const lapackint,
9212    info: *mut lapackint,
9213);
9214
9215// LAG2D
9216define_lapack_ffi!(slag2d, Slag2dFnPtr,
9217    m: *const lapackint,
9218    n: *const lapackint,
9219    SA: *const f32,
9220    ldsa: *const lapackint,
9221    A: *mut f64,
9222    lda: *const lapackint,
9223    info: *mut lapackint,
9224);
9225
9226// LAG2S
9227define_lapack_ffi!(dlag2s, Dlag2sFnPtr,
9228    m: *const lapackint,
9229    n: *const lapackint,
9230    A: *const f64,
9231    lda: *const lapackint,
9232    SA: *mut f32,
9233    ldsa: *const lapackint,
9234    info: *mut lapackint,
9235);
9236
9237// LAG2Z
9238define_lapack_ffi!(clag2z, Clag2zFnPtr,
9239    m: *const lapackint,
9240    n: *const lapackint,
9241    SA: *const Complex32,
9242    ldsa: *const lapackint,
9243    A: *mut Complex64,
9244    lda: *const lapackint,
9245    info: *mut lapackint,
9246);
9247
9248// LAGGE
9249define_lapack_ffi!(clagge, ClaggeFnPtr,
9250    m: *const lapackint,
9251    n: *const lapackint,
9252    kl: *const lapackint,
9253    ku: *const lapackint,
9254    D: *const f32,
9255    A: *mut Complex32,
9256    lda: *const lapackint,
9257    iseed: *mut lapackint,
9258    work: *mut Complex32,
9259    info: *mut lapackint,
9260);
9261
9262define_lapack_ffi!(dlagge, DlaggeFnPtr,
9263    m: *const lapackint,
9264    n: *const lapackint,
9265    kl: *const lapackint,
9266    ku: *const lapackint,
9267    D: *const f64,
9268    A: *mut f64,
9269    lda: *const lapackint,
9270    iseed: *mut lapackint,
9271    work: *mut f64,
9272    info: *mut lapackint,
9273);
9274
9275define_lapack_ffi!(slagge, SlaggeFnPtr,
9276    m: *const lapackint,
9277    n: *const lapackint,
9278    kl: *const lapackint,
9279    ku: *const lapackint,
9280    D: *const f32,
9281    A: *mut f32,
9282    lda: *const lapackint,
9283    iseed: *mut lapackint,
9284    work: *mut f32,
9285    info: *mut lapackint,
9286);
9287
9288define_lapack_ffi!(zlagge, ZlaggeFnPtr,
9289    m: *const lapackint,
9290    n: *const lapackint,
9291    kl: *const lapackint,
9292    ku: *const lapackint,
9293    D: *const f64,
9294    A: *mut Complex64,
9295    lda: *const lapackint,
9296    iseed: *mut lapackint,
9297    work: *mut Complex64,
9298    info: *mut lapackint,
9299);
9300
9301// LAGHE
9302define_lapack_ffi!(claghe, ClagheFnPtr,
9303    n: *const lapackint,
9304    k: *const lapackint,
9305    D: *const f32,
9306    A: *mut Complex32,
9307    lda: *const lapackint,
9308    iseed: *mut lapackint,
9309    work: *mut Complex32,
9310    info: *mut lapackint,
9311);
9312
9313define_lapack_ffi!(zlaghe, ZlagheFnPtr,
9314    n: *const lapackint,
9315    k: *const lapackint,
9316    D: *const f64,
9317    A: *mut Complex64,
9318    lda: *const lapackint,
9319    iseed: *mut lapackint,
9320    work: *mut Complex64,
9321    info: *mut lapackint,
9322);
9323
9324// LAGSY
9325define_lapack_ffi!(clagsy, ClagsyFnPtr,
9326    n: *const lapackint,
9327    k: *const lapackint,
9328    D: *const f32,
9329    A: *mut Complex32,
9330    lda: *const lapackint,
9331    iseed: *mut lapackint,
9332    work: *mut Complex32,
9333    info: *mut lapackint,
9334);
9335
9336define_lapack_ffi!(dlagsy, DlagsyFnPtr,
9337    n: *const lapackint,
9338    k: *const lapackint,
9339    D: *const f64,
9340    A: *mut f64,
9341    lda: *const lapackint,
9342    iseed: *mut lapackint,
9343    work: *mut f64,
9344    info: *mut lapackint,
9345);
9346
9347define_lapack_ffi!(slagsy, SlagsyFnPtr,
9348    n: *const lapackint,
9349    k: *const lapackint,
9350    D: *const f32,
9351    A: *mut f32,
9352    lda: *const lapackint,
9353    iseed: *mut lapackint,
9354    work: *mut f32,
9355    info: *mut lapackint,
9356);
9357
9358define_lapack_ffi!(zlagsy, ZlagsyFnPtr,
9359    n: *const lapackint,
9360    k: *const lapackint,
9361    D: *const f64,
9362    A: *mut Complex64,
9363    lda: *const lapackint,
9364    iseed: *mut lapackint,
9365    work: *mut Complex64,
9366    info: *mut lapackint,
9367);
9368
9369// LAMCH
9370define_lapack_ffi!(dlamch, DlamchFnPtr,
9371    cmach: *const c_char,
9372);
9373
9374define_lapack_ffi!(slamch, SlamchFnPtr,
9375    cmach: *const c_char,
9376);
9377
9378// LANGB
9379define_lapack_ffi!(clangb, ClangbFnPtr,
9380    norm: *const c_char,
9381    n: *const lapackint,
9382    kl: *const lapackint,
9383    ku: *const lapackint,
9384    AB: *const Complex32,
9385    ldab: *const lapackint,
9386    work: *mut f32,
9387);
9388
9389define_lapack_ffi!(dlangb, DlangbFnPtr,
9390    norm: *const c_char,
9391    n: *const lapackint,
9392    kl: *const lapackint,
9393    ku: *const lapackint,
9394    AB: *const f64,
9395    ldab: *const lapackint,
9396    work: *mut f64,
9397);
9398
9399define_lapack_ffi!(slangb, SlangbFnPtr,
9400    norm: *const c_char,
9401    n: *const lapackint,
9402    kl: *const lapackint,
9403    ku: *const lapackint,
9404    AB: *const f32,
9405    ldab: *const lapackint,
9406    work: *mut f32,
9407);
9408
9409define_lapack_ffi!(zlangb, ZlangbFnPtr,
9410    norm: *const c_char,
9411    n: *const lapackint,
9412    kl: *const lapackint,
9413    ku: *const lapackint,
9414    AB: *const Complex64,
9415    ldab: *const lapackint,
9416    work: *mut f64,
9417);
9418
9419// LANGE
9420define_lapack_ffi!(clange, ClangeFnPtr,
9421    norm: *const c_char,
9422    m: *const lapackint,
9423    n: *const lapackint,
9424    A: *const Complex32,
9425    lda: *const lapackint,
9426    work: *mut f32,
9427);
9428
9429define_lapack_ffi!(dlange, DlangeFnPtr,
9430    norm: *const c_char,
9431    m: *const lapackint,
9432    n: *const lapackint,
9433    A: *const f64,
9434    lda: *const lapackint,
9435    work: *mut f64,
9436);
9437
9438define_lapack_ffi!(slange, SlangeFnPtr,
9439    norm: *const c_char,
9440    m: *const lapackint,
9441    n: *const lapackint,
9442    A: *const f32,
9443    lda: *const lapackint,
9444    work: *mut f32,
9445);
9446
9447define_lapack_ffi!(zlange, ZlangeFnPtr,
9448    norm: *const c_char,
9449    m: *const lapackint,
9450    n: *const lapackint,
9451    A: *const Complex64,
9452    lda: *const lapackint,
9453    work: *mut f64,
9454);
9455
9456// LANGT
9457define_lapack_ffi!(clangt, ClangtFnPtr,
9458    norm: *const c_char,
9459    n: *const lapackint,
9460    DL: *const Complex32,
9461    D: *const Complex32,
9462    DU: *const Complex32,
9463);
9464
9465define_lapack_ffi!(dlangt, DlangtFnPtr,
9466    norm: *const c_char,
9467    n: *const lapackint,
9468    DL: *const f64,
9469    D: *const f64,
9470    DU: *const f64,
9471);
9472
9473define_lapack_ffi!(slangt, SlangtFnPtr,
9474    norm: *const c_char,
9475    n: *const lapackint,
9476    DL: *const f32,
9477    D: *const f32,
9478    DU: *const f32,
9479);
9480
9481define_lapack_ffi!(zlangt, ZlangtFnPtr,
9482    norm: *const c_char,
9483    n: *const lapackint,
9484    DL: *const Complex64,
9485    D: *const Complex64,
9486    DU: *const Complex64,
9487);
9488
9489// LANHB
9490define_lapack_ffi!(clanhb, ClanhbFnPtr,
9491    norm: *const c_char,
9492    uplo: *const c_char,
9493    n: *const lapackint,
9494    k: *const lapackint,
9495    AB: *const Complex32,
9496    ldab: *const lapackint,
9497    work: *mut f32,
9498);
9499
9500define_lapack_ffi!(zlanhb, ZlanhbFnPtr,
9501    norm: *const c_char,
9502    uplo: *const c_char,
9503    n: *const lapackint,
9504    k: *const lapackint,
9505    AB: *const Complex64,
9506    ldab: *const lapackint,
9507    work: *mut f64,
9508);
9509
9510// LANHE
9511define_lapack_ffi!(clanhe, ClanheFnPtr,
9512    norm: *const c_char,
9513    uplo: *const c_char,
9514    n: *const lapackint,
9515    A: *const Complex32,
9516    lda: *const lapackint,
9517    work: *mut f32,
9518);
9519
9520define_lapack_ffi!(zlanhe, ZlanheFnPtr,
9521    norm: *const c_char,
9522    uplo: *const c_char,
9523    n: *const lapackint,
9524    A: *const Complex64,
9525    lda: *const lapackint,
9526    work: *mut f64,
9527);
9528
9529// LANHP
9530define_lapack_ffi!(clanhp, ClanhpFnPtr,
9531    norm: *const c_char,
9532    uplo: *const c_char,
9533    n: *const lapackint,
9534    AP: *const Complex32,
9535    work: *mut f32,
9536);
9537
9538define_lapack_ffi!(zlanhp, ZlanhpFnPtr,
9539    norm: *const c_char,
9540    uplo: *const c_char,
9541    n: *const lapackint,
9542    AP: *const Complex64,
9543    work: *mut f64,
9544);
9545
9546// LANHS
9547define_lapack_ffi!(clanhs, ClanhsFnPtr,
9548    norm: *const c_char,
9549    n: *const lapackint,
9550    A: *const Complex32,
9551    lda: *const lapackint,
9552    work: *mut f32,
9553);
9554
9555define_lapack_ffi!(dlanhs, DlanhsFnPtr,
9556    norm: *const c_char,
9557    n: *const lapackint,
9558    A: *const f64,
9559    lda: *const lapackint,
9560    work: *mut f64,
9561);
9562
9563define_lapack_ffi!(slanhs, SlanhsFnPtr,
9564    norm: *const c_char,
9565    n: *const lapackint,
9566    A: *const f32,
9567    lda: *const lapackint,
9568    work: *mut f32,
9569);
9570
9571define_lapack_ffi!(zlanhs, ZlanhsFnPtr,
9572    norm: *const c_char,
9573    n: *const lapackint,
9574    A: *const Complex64,
9575    lda: *const lapackint,
9576    work: *mut f64,
9577);
9578
9579// LANHT
9580define_lapack_ffi!(clanht, ClanhtFnPtr,
9581    norm: *const c_char,
9582    n: *const lapackint,
9583    D: *const f32,
9584    E: *const Complex32,
9585);
9586
9587define_lapack_ffi!(zlanht, ZlanhtFnPtr,
9588    norm: *const c_char,
9589    n: *const lapackint,
9590    D: *const f64,
9591    E: *const Complex64,
9592);
9593
9594// LANSB
9595define_lapack_ffi!(clansb, ClansbFnPtr,
9596    norm: *const c_char,
9597    uplo: *const c_char,
9598    n: *const lapackint,
9599    k: *const lapackint,
9600    AB: *const Complex32,
9601    ldab: *const lapackint,
9602    work: *mut f32,
9603);
9604
9605define_lapack_ffi!(dlansb, DlansbFnPtr,
9606    norm: *const c_char,
9607    uplo: *const c_char,
9608    n: *const lapackint,
9609    k: *const lapackint,
9610    AB: *const f64,
9611    ldab: *const lapackint,
9612    work: *mut f64,
9613);
9614
9615define_lapack_ffi!(slansb, SlansbFnPtr,
9616    norm: *const c_char,
9617    uplo: *const c_char,
9618    n: *const lapackint,
9619    k: *const lapackint,
9620    AB: *const f32,
9621    ldab: *const lapackint,
9622    work: *mut f32,
9623);
9624
9625define_lapack_ffi!(zlansb, ZlansbFnPtr,
9626    norm: *const c_char,
9627    uplo: *const c_char,
9628    n: *const lapackint,
9629    k: *const lapackint,
9630    AB: *const Complex64,
9631    ldab: *const lapackint,
9632    work: *mut f64,
9633);
9634
9635// LANSP
9636define_lapack_ffi!(clansp, ClanspFnPtr,
9637    norm: *const c_char,
9638    uplo: *const c_char,
9639    n: *const lapackint,
9640    AP: *const Complex32,
9641    work: *mut f32,
9642);
9643
9644define_lapack_ffi!(dlansp, DlanspFnPtr,
9645    norm: *const c_char,
9646    uplo: *const c_char,
9647    n: *const lapackint,
9648    AP: *const f64,
9649    work: *mut f64,
9650);
9651
9652define_lapack_ffi!(slansp, SlanspFnPtr,
9653    norm: *const c_char,
9654    uplo: *const c_char,
9655    n: *const lapackint,
9656    AP: *const f32,
9657    work: *mut f32,
9658);
9659
9660define_lapack_ffi!(zlansp, ZlanspFnPtr,
9661    norm: *const c_char,
9662    uplo: *const c_char,
9663    n: *const lapackint,
9664    AP: *const Complex64,
9665    work: *mut f64,
9666);
9667
9668// LANST
9669define_lapack_ffi!(dlanst, DlanstFnPtr,
9670    norm: *const c_char,
9671    n: *const lapackint,
9672    D: *const f64,
9673    E: *const f64,
9674);
9675
9676define_lapack_ffi!(slanst, SlanstFnPtr,
9677    norm: *const c_char,
9678    n: *const lapackint,
9679    D: *const f32,
9680    E: *const f32,
9681);
9682
9683// LANSY
9684define_lapack_ffi!(clansy, ClansyFnPtr,
9685    norm: *const c_char,
9686    uplo: *const c_char,
9687    n: *const lapackint,
9688    A: *const Complex32,
9689    lda: *const lapackint,
9690    work: *mut f32,
9691);
9692
9693define_lapack_ffi!(dlansy, DlansyFnPtr,
9694    norm: *const c_char,
9695    uplo: *const c_char,
9696    n: *const lapackint,
9697    A: *const f64,
9698    lda: *const lapackint,
9699    work: *mut f64,
9700);
9701
9702define_lapack_ffi!(slansy, SlansyFnPtr,
9703    norm: *const c_char,
9704    uplo: *const c_char,
9705    n: *const lapackint,
9706    A: *const f32,
9707    lda: *const lapackint,
9708    work: *mut f32,
9709);
9710
9711define_lapack_ffi!(zlansy, ZlansyFnPtr,
9712    norm: *const c_char,
9713    uplo: *const c_char,
9714    n: *const lapackint,
9715    A: *const Complex64,
9716    lda: *const lapackint,
9717    work: *mut f64,
9718);
9719
9720// LANTB
9721define_lapack_ffi!(clantb, ClantbFnPtr,
9722    norm: *const c_char,
9723    uplo: *const c_char,
9724    diag: *const c_char,
9725    n: *const lapackint,
9726    k: *const lapackint,
9727    AB: *const Complex32,
9728    ldab: *const lapackint,
9729    work: *mut f32,
9730);
9731
9732define_lapack_ffi!(dlantb, DlantbFnPtr,
9733    norm: *const c_char,
9734    uplo: *const c_char,
9735    diag: *const c_char,
9736    n: *const lapackint,
9737    k: *const lapackint,
9738    AB: *const f64,
9739    ldab: *const lapackint,
9740    work: *mut f64,
9741);
9742
9743define_lapack_ffi!(slantb, SlantbFnPtr,
9744    norm: *const c_char,
9745    uplo: *const c_char,
9746    diag: *const c_char,
9747    n: *const lapackint,
9748    k: *const lapackint,
9749    AB: *const f32,
9750    ldab: *const lapackint,
9751    work: *mut f32,
9752);
9753
9754define_lapack_ffi!(zlantb, ZlantbFnPtr,
9755    norm: *const c_char,
9756    uplo: *const c_char,
9757    diag: *const c_char,
9758    n: *const lapackint,
9759    k: *const lapackint,
9760    AB: *const Complex64,
9761    ldab: *const lapackint,
9762    work: *mut f64,
9763);
9764
9765// LANTP
9766define_lapack_ffi!(clantp, ClantpFnPtr,
9767    norm: *const c_char,
9768    uplo: *const c_char,
9769    diag: *const c_char,
9770    n: *const lapackint,
9771    AP: *const Complex32,
9772    work: *mut f32,
9773);
9774
9775define_lapack_ffi!(dlantp, DlantpFnPtr,
9776    norm: *const c_char,
9777    uplo: *const c_char,
9778    diag: *const c_char,
9779    n: *const lapackint,
9780    AP: *const f64,
9781    work: *mut f64,
9782);
9783
9784define_lapack_ffi!(slantp, SlantpFnPtr,
9785    norm: *const c_char,
9786    uplo: *const c_char,
9787    diag: *const c_char,
9788    n: *const lapackint,
9789    AP: *const f32,
9790    work: *mut f32,
9791);
9792
9793define_lapack_ffi!(zlantp, ZlantpFnPtr,
9794    norm: *const c_char,
9795    uplo: *const c_char,
9796    diag: *const c_char,
9797    n: *const lapackint,
9798    AP: *const Complex64,
9799    work: *mut f64,
9800);
9801
9802// LANTR
9803define_lapack_ffi!(clantr, ClantrFnPtr,
9804    norm: *const c_char,
9805    uplo: *const c_char,
9806    diag: *const c_char,
9807    m: *const lapackint,
9808    n: *const lapackint,
9809    A: *const Complex32,
9810    lda: *const lapackint,
9811    work: *mut f32,
9812);
9813
9814define_lapack_ffi!(dlantr, DlantrFnPtr,
9815    norm: *const c_char,
9816    uplo: *const c_char,
9817    diag: *const c_char,
9818    m: *const lapackint,
9819    n: *const lapackint,
9820    A: *const f64,
9821    lda: *const lapackint,
9822    work: *mut f64,
9823);
9824
9825define_lapack_ffi!(slantr, SlantrFnPtr,
9826    norm: *const c_char,
9827    uplo: *const c_char,
9828    diag: *const c_char,
9829    m: *const lapackint,
9830    n: *const lapackint,
9831    A: *const f32,
9832    lda: *const lapackint,
9833    work: *mut f32,
9834);
9835
9836define_lapack_ffi!(zlantr, ZlantrFnPtr,
9837    norm: *const c_char,
9838    uplo: *const c_char,
9839    diag: *const c_char,
9840    m: *const lapackint,
9841    n: *const lapackint,
9842    A: *const Complex64,
9843    lda: *const lapackint,
9844    work: *mut f64,
9845);
9846
9847// LAPMR
9848define_lapack_ffi!(clapmr, ClapmrFnPtr,
9849    forwrd: *const lapackint,
9850    m: *const lapackint,
9851    n: *const lapackint,
9852    X: *mut Complex32,
9853    ldx: *const lapackint,
9854    K: *mut lapackint,
9855);
9856
9857define_lapack_ffi!(dlapmr, DlapmrFnPtr,
9858    forwrd: *const lapackint,
9859    m: *const lapackint,
9860    n: *const lapackint,
9861    X: *mut f64,
9862    ldx: *const lapackint,
9863    K: *mut lapackint,
9864);
9865
9866define_lapack_ffi!(slapmr, SlapmrFnPtr,
9867    forwrd: *const lapackint,
9868    m: *const lapackint,
9869    n: *const lapackint,
9870    X: *mut f32,
9871    ldx: *const lapackint,
9872    K: *mut lapackint,
9873);
9874
9875define_lapack_ffi!(zlapmr, ZlapmrFnPtr,
9876    forwrd: *const lapackint,
9877    m: *const lapackint,
9878    n: *const lapackint,
9879    X: *mut Complex64,
9880    ldx: *const lapackint,
9881    K: *mut lapackint,
9882);
9883
9884// LAPMT
9885define_lapack_ffi!(clapmt, ClapmtFnPtr,
9886    forwrd: *const lapackint,
9887    m: *const lapackint,
9888    n: *const lapackint,
9889    X: *mut Complex32,
9890    ldx: *const lapackint,
9891    K: *mut lapackint,
9892);
9893
9894define_lapack_ffi!(dlapmt, DlapmtFnPtr,
9895    forwrd: *const lapackint,
9896    m: *const lapackint,
9897    n: *const lapackint,
9898    X: *mut f64,
9899    ldx: *const lapackint,
9900    K: *mut lapackint,
9901);
9902
9903define_lapack_ffi!(slapmt, SlapmtFnPtr,
9904    forwrd: *const lapackint,
9905    m: *const lapackint,
9906    n: *const lapackint,
9907    X: *mut f32,
9908    ldx: *const lapackint,
9909    K: *mut lapackint,
9910);
9911
9912define_lapack_ffi!(zlapmt, ZlapmtFnPtr,
9913    forwrd: *const lapackint,
9914    m: *const lapackint,
9915    n: *const lapackint,
9916    X: *mut Complex64,
9917    ldx: *const lapackint,
9918    K: *mut lapackint,
9919);
9920
9921// LAPY2
9922define_lapack_ffi!(dlapy2, Dlapy2FnPtr,
9923    x: *const f64,
9924    y: *const f64,
9925);
9926
9927define_lapack_ffi!(slapy2, Slapy2FnPtr,
9928    x: *const f32,
9929    y: *const f32,
9930);
9931
9932// LAPY3
9933define_lapack_ffi!(dlapy3, Dlapy3FnPtr,
9934    x: *const f64,
9935    y: *const f64,
9936    z: *const f64,
9937);
9938
9939define_lapack_ffi!(slapy3, Slapy3FnPtr,
9940    x: *const f32,
9941    y: *const f32,
9942    z: *const f32,
9943);
9944
9945// LARCM
9946define_lapack_ffi!(clarcm, ClarcmFnPtr,
9947    m: *const lapackint,
9948    n: *const lapackint,
9949    A: *const f32,
9950    lda: *const lapackint,
9951    B: *const Complex32,
9952    ldb: *const lapackint,
9953    C: *mut Complex32,
9954    ldc: *const lapackint,
9955    rwork: *mut f32,
9956);
9957
9958define_lapack_ffi!(zlarcm, ZlarcmFnPtr,
9959    m: *const lapackint,
9960    n: *const lapackint,
9961    A: *const f64,
9962    lda: *const lapackint,
9963    B: *const Complex64,
9964    ldb: *const lapackint,
9965    C: *mut Complex64,
9966    ldc: *const lapackint,
9967    rwork: *mut f64,
9968);
9969
9970// LARF
9971define_lapack_ffi!(clarf, ClarfFnPtr,
9972    side: *const c_char,
9973    m: *const lapackint,
9974    n: *const lapackint,
9975    V: *const Complex32,
9976    incv: *const lapackint,
9977    tau: *const Complex32,
9978    C: *mut Complex32,
9979    ldc: *const lapackint,
9980    work: *mut Complex32,
9981);
9982
9983define_lapack_ffi!(dlarf, DlarfFnPtr,
9984    side: *const c_char,
9985    m: *const lapackint,
9986    n: *const lapackint,
9987    V: *const f64,
9988    incv: *const lapackint,
9989    tau: *const f64,
9990    C: *mut f64,
9991    ldc: *const lapackint,
9992    work: *mut f64,
9993);
9994
9995define_lapack_ffi!(slarf, SlarfFnPtr,
9996    side: *const c_char,
9997    m: *const lapackint,
9998    n: *const lapackint,
9999    V: *const f32,
10000    incv: *const lapackint,
10001    tau: *const f32,
10002    C: *mut f32,
10003    ldc: *const lapackint,
10004    work: *mut f32,
10005);
10006
10007define_lapack_ffi!(zlarf, ZlarfFnPtr,
10008    side: *const c_char,
10009    m: *const lapackint,
10010    n: *const lapackint,
10011    V: *const Complex64,
10012    incv: *const lapackint,
10013    tau: *const Complex64,
10014    C: *mut Complex64,
10015    ldc: *const lapackint,
10016    work: *mut Complex64,
10017);
10018
10019// LARFB
10020define_lapack_ffi!(clarfb, ClarfbFnPtr,
10021    side: *const c_char,
10022    trans: *const c_char,
10023    direct: *const c_char,
10024    storev: *const c_char,
10025    m: *const lapackint,
10026    n: *const lapackint,
10027    k: *const lapackint,
10028    V: *const Complex32,
10029    ldv: *const lapackint,
10030    T: *const Complex32,
10031    ldt: *const lapackint,
10032    C: *mut Complex32,
10033    ldc: *const lapackint,
10034    work: *mut Complex32,
10035    ldwork: *const lapackint,
10036);
10037
10038define_lapack_ffi!(dlarfb, DlarfbFnPtr,
10039    side: *const c_char,
10040    trans: *const c_char,
10041    direct: *const c_char,
10042    storev: *const c_char,
10043    m: *const lapackint,
10044    n: *const lapackint,
10045    k: *const lapackint,
10046    V: *const f64,
10047    ldv: *const lapackint,
10048    T: *const f64,
10049    ldt: *const lapackint,
10050    C: *mut f64,
10051    ldc: *const lapackint,
10052    work: *mut f64,
10053    ldwork: *const lapackint,
10054);
10055
10056define_lapack_ffi!(slarfb, SlarfbFnPtr,
10057    side: *const c_char,
10058    trans: *const c_char,
10059    direct: *const c_char,
10060    storev: *const c_char,
10061    m: *const lapackint,
10062    n: *const lapackint,
10063    k: *const lapackint,
10064    V: *const f32,
10065    ldv: *const lapackint,
10066    T: *const f32,
10067    ldt: *const lapackint,
10068    C: *mut f32,
10069    ldc: *const lapackint,
10070    work: *mut f32,
10071    ldwork: *const lapackint,
10072);
10073
10074define_lapack_ffi!(zlarfb, ZlarfbFnPtr,
10075    side: *const c_char,
10076    trans: *const c_char,
10077    direct: *const c_char,
10078    storev: *const c_char,
10079    m: *const lapackint,
10080    n: *const lapackint,
10081    k: *const lapackint,
10082    V: *const Complex64,
10083    ldv: *const lapackint,
10084    T: *const Complex64,
10085    ldt: *const lapackint,
10086    C: *mut Complex64,
10087    ldc: *const lapackint,
10088    work: *mut Complex64,
10089    ldwork: *const lapackint,
10090);
10091
10092// LARFG
10093define_lapack_ffi!(clarfg, ClarfgFnPtr,
10094    n: *const lapackint,
10095    alpha: *mut Complex32,
10096    X: *mut Complex32,
10097    incx: *const lapackint,
10098    tau: *mut Complex32,
10099);
10100
10101define_lapack_ffi!(dlarfg, DlarfgFnPtr,
10102    n: *const lapackint,
10103    alpha: *mut f64,
10104    X: *mut f64,
10105    incx: *const lapackint,
10106    tau: *mut f64,
10107);
10108
10109define_lapack_ffi!(slarfg, SlarfgFnPtr,
10110    n: *const lapackint,
10111    alpha: *mut f32,
10112    X: *mut f32,
10113    incx: *const lapackint,
10114    tau: *mut f32,
10115);
10116
10117define_lapack_ffi!(zlarfg, ZlarfgFnPtr,
10118    n: *const lapackint,
10119    alpha: *mut Complex64,
10120    X: *mut Complex64,
10121    incx: *const lapackint,
10122    tau: *mut Complex64,
10123);
10124
10125// LARFT
10126define_lapack_ffi!(clarft, ClarftFnPtr,
10127    direct: *const c_char,
10128    storev: *const c_char,
10129    n: *const lapackint,
10130    k: *const lapackint,
10131    V: *const Complex32,
10132    ldv: *const lapackint,
10133    tau: *const Complex32,
10134    T: *mut Complex32,
10135    ldt: *const lapackint,
10136);
10137
10138define_lapack_ffi!(dlarft, DlarftFnPtr,
10139    direct: *const c_char,
10140    storev: *const c_char,
10141    n: *const lapackint,
10142    k: *const lapackint,
10143    V: *const f64,
10144    ldv: *const lapackint,
10145    tau: *const f64,
10146    T: *mut f64,
10147    ldt: *const lapackint,
10148);
10149
10150define_lapack_ffi!(slarft, SlarftFnPtr,
10151    direct: *const c_char,
10152    storev: *const c_char,
10153    n: *const lapackint,
10154    k: *const lapackint,
10155    V: *const f32,
10156    ldv: *const lapackint,
10157    tau: *const f32,
10158    T: *mut f32,
10159    ldt: *const lapackint,
10160);
10161
10162define_lapack_ffi!(zlarft, ZlarftFnPtr,
10163    direct: *const c_char,
10164    storev: *const c_char,
10165    n: *const lapackint,
10166    k: *const lapackint,
10167    V: *const Complex64,
10168    ldv: *const lapackint,
10169    tau: *const Complex64,
10170    T: *mut Complex64,
10171    ldt: *const lapackint,
10172);
10173
10174// LARFX
10175define_lapack_ffi!(clarfx, ClarfxFnPtr,
10176    side: *const c_char,
10177    m: *const lapackint,
10178    n: *const lapackint,
10179    V: *const Complex32,
10180    tau: *const Complex32,
10181    C: *mut Complex32,
10182    ldc: *const lapackint,
10183    work: *mut Complex32,
10184);
10185
10186define_lapack_ffi!(dlarfx, DlarfxFnPtr,
10187    side: *const c_char,
10188    m: *const lapackint,
10189    n: *const lapackint,
10190    V: *const f64,
10191    tau: *const f64,
10192    C: *mut f64,
10193    ldc: *const lapackint,
10194    work: *mut f64,
10195);
10196
10197define_lapack_ffi!(slarfx, SlarfxFnPtr,
10198    side: *const c_char,
10199    m: *const lapackint,
10200    n: *const lapackint,
10201    V: *const f32,
10202    tau: *const f32,
10203    C: *mut f32,
10204    ldc: *const lapackint,
10205    work: *mut f32,
10206);
10207
10208define_lapack_ffi!(zlarfx, ZlarfxFnPtr,
10209    side: *const c_char,
10210    m: *const lapackint,
10211    n: *const lapackint,
10212    V: *const Complex64,
10213    tau: *const Complex64,
10214    C: *mut Complex64,
10215    ldc: *const lapackint,
10216    work: *mut Complex64,
10217);
10218
10219// LARNV
10220define_lapack_ffi!(clarnv, ClarnvFnPtr,
10221    idist: *const lapackint,
10222    iseed: *mut lapackint,
10223    n: *const lapackint,
10224    X: *mut Complex32,
10225);
10226
10227define_lapack_ffi!(dlarnv, DlarnvFnPtr,
10228    idist: *const lapackint,
10229    iseed: *mut lapackint,
10230    n: *const lapackint,
10231    X: *mut f64,
10232);
10233
10234define_lapack_ffi!(slarnv, SlarnvFnPtr,
10235    idist: *const lapackint,
10236    iseed: *mut lapackint,
10237    n: *const lapackint,
10238    X: *mut f32,
10239);
10240
10241define_lapack_ffi!(zlarnv, ZlarnvFnPtr,
10242    idist: *const lapackint,
10243    iseed: *mut lapackint,
10244    n: *const lapackint,
10245    X: *mut Complex64,
10246);
10247
10248// LARTGP
10249define_lapack_ffi!(dlartgp, DlartgpFnPtr,
10250    f: *const f64,
10251    g: *const f64,
10252    cs: *mut f64,
10253    sn: *mut f64,
10254    r: *mut f64,
10255);
10256
10257define_lapack_ffi!(slartgp, SlartgpFnPtr,
10258    f: *const f32,
10259    g: *const f32,
10260    cs: *mut f32,
10261    sn: *mut f32,
10262    r: *mut f32,
10263);
10264
10265// LARTGS
10266define_lapack_ffi!(dlartgs, DlartgsFnPtr,
10267    x: *const f64,
10268    y: *const f64,
10269    sigma: *const f64,
10270    cs: *mut f64,
10271    sn: *mut f64,
10272);
10273
10274define_lapack_ffi!(slartgs, SlartgsFnPtr,
10275    x: *const f32,
10276    y: *const f32,
10277    sigma: *const f32,
10278    cs: *mut f32,
10279    sn: *mut f32,
10280);
10281
10282// LASCL
10283define_lapack_ffi!(clascl, ClasclFnPtr,
10284    type_: *const c_char,
10285    kl: *const lapackint,
10286    ku: *const lapackint,
10287    cfrom: *const f32,
10288    cto: *const f32,
10289    m: *const lapackint,
10290    n: *const lapackint,
10291    A: *mut Complex32,
10292    lda: *const lapackint,
10293    info: *mut lapackint,
10294);
10295
10296define_lapack_ffi!(dlascl, DlasclFnPtr,
10297    type_: *const c_char,
10298    kl: *const lapackint,
10299    ku: *const lapackint,
10300    cfrom: *const f64,
10301    cto: *const f64,
10302    m: *const lapackint,
10303    n: *const lapackint,
10304    A: *mut f64,
10305    lda: *const lapackint,
10306    info: *mut lapackint,
10307);
10308
10309define_lapack_ffi!(slascl, SlasclFnPtr,
10310    type_: *const c_char,
10311    kl: *const lapackint,
10312    ku: *const lapackint,
10313    cfrom: *const f32,
10314    cto: *const f32,
10315    m: *const lapackint,
10316    n: *const lapackint,
10317    A: *mut f32,
10318    lda: *const lapackint,
10319    info: *mut lapackint,
10320);
10321
10322define_lapack_ffi!(zlascl, ZlasclFnPtr,
10323    type_: *const c_char,
10324    kl: *const lapackint,
10325    ku: *const lapackint,
10326    cfrom: *const f64,
10327    cto: *const f64,
10328    m: *const lapackint,
10329    n: *const lapackint,
10330    A: *mut Complex64,
10331    lda: *const lapackint,
10332    info: *mut lapackint,
10333);
10334
10335// LASET
10336define_lapack_ffi!(claset, ClasetFnPtr,
10337    uplo: *const c_char,
10338    m: *const lapackint,
10339    n: *const lapackint,
10340    alpha: *const Complex32,
10341    beta: *const Complex32,
10342    A: *mut Complex32,
10343    lda: *const lapackint,
10344);
10345
10346define_lapack_ffi!(dlaset, DlasetFnPtr,
10347    uplo: *const c_char,
10348    m: *const lapackint,
10349    n: *const lapackint,
10350    alpha: *const f64,
10351    beta: *const f64,
10352    A: *mut f64,
10353    lda: *const lapackint,
10354);
10355
10356define_lapack_ffi!(slaset, SlasetFnPtr,
10357    uplo: *const c_char,
10358    m: *const lapackint,
10359    n: *const lapackint,
10360    alpha: *const f32,
10361    beta: *const f32,
10362    A: *mut f32,
10363    lda: *const lapackint,
10364);
10365
10366define_lapack_ffi!(zlaset, ZlasetFnPtr,
10367    uplo: *const c_char,
10368    m: *const lapackint,
10369    n: *const lapackint,
10370    alpha: *const Complex64,
10371    beta: *const Complex64,
10372    A: *mut Complex64,
10373    lda: *const lapackint,
10374);
10375
10376// LASRT
10377define_lapack_ffi!(dlasrt, DlasrtFnPtr,
10378    id: *const c_char,
10379    n: *const lapackint,
10380    D: *mut f64,
10381    info: *mut lapackint,
10382);
10383
10384define_lapack_ffi!(slasrt, SlasrtFnPtr,
10385    id: *const c_char,
10386    n: *const lapackint,
10387    D: *mut f32,
10388    info: *mut lapackint,
10389);
10390
10391// LASSQ
10392define_lapack_ffi!(classq, ClassqFnPtr,
10393    n: *const lapackint,
10394    X: *const Complex32,
10395    incx: *const lapackint,
10396    scale: *mut f32,
10397    sumsq: *mut f32,
10398);
10399
10400define_lapack_ffi!(dlassq, DlassqFnPtr,
10401    n: *const lapackint,
10402    X: *const f64,
10403    incx: *const lapackint,
10404    scale: *mut f64,
10405    sumsq: *mut f64,
10406);
10407
10408define_lapack_ffi!(slassq, SlassqFnPtr,
10409    n: *const lapackint,
10410    X: *const f32,
10411    incx: *const lapackint,
10412    scale: *mut f32,
10413    sumsq: *mut f32,
10414);
10415
10416define_lapack_ffi!(zlassq, ZlassqFnPtr,
10417    n: *const lapackint,
10418    X: *const Complex64,
10419    incx: *const lapackint,
10420    scale: *mut f64,
10421    sumsq: *mut f64,
10422);
10423
10424// LASWP
10425define_lapack_ffi!(claswp, ClaswpFnPtr,
10426    n: *const lapackint,
10427    A: *mut Complex32,
10428    lda: *const lapackint,
10429    k1: *const lapackint,
10430    k2: *const lapackint,
10431    ipiv: *const lapackint,
10432    incx: *const lapackint,
10433);
10434
10435define_lapack_ffi!(dlaswp, DlaswpFnPtr,
10436    n: *const lapackint,
10437    A: *mut f64,
10438    lda: *const lapackint,
10439    k1: *const lapackint,
10440    k2: *const lapackint,
10441    ipiv: *const lapackint,
10442    incx: *const lapackint,
10443);
10444
10445define_lapack_ffi!(slaswp, SlaswpFnPtr,
10446    n: *const lapackint,
10447    A: *mut f32,
10448    lda: *const lapackint,
10449    k1: *const lapackint,
10450    k2: *const lapackint,
10451    ipiv: *const lapackint,
10452    incx: *const lapackint,
10453);
10454
10455define_lapack_ffi!(zlaswp, ZlaswpFnPtr,
10456    n: *const lapackint,
10457    A: *mut Complex64,
10458    lda: *const lapackint,
10459    k1: *const lapackint,
10460    k2: *const lapackint,
10461    ipiv: *const lapackint,
10462    incx: *const lapackint,
10463);
10464
10465// LATMS
10466define_lapack_ffi!(clatms, ClatmsFnPtr,
10467    m: *const lapackint,
10468    n: *const lapackint,
10469    dist: *const c_char,
10470    iseed: *mut lapackint,
10471    sym: *const c_char,
10472    D: *mut f32,
10473    mode: *const lapackint,
10474    cond: *const f32,
10475    dmax: *const f32,
10476    kl: *const lapackint,
10477    ku: *const lapackint,
10478    pack: *const c_char,
10479    A: *mut Complex32,
10480    lda: *const lapackint,
10481    work: *mut Complex32,
10482    info: *mut lapackint,
10483);
10484
10485define_lapack_ffi!(dlatms, DlatmsFnPtr,
10486    m: *const lapackint,
10487    n: *const lapackint,
10488    dist: *const c_char,
10489    iseed: *mut lapackint,
10490    sym: *const c_char,
10491    D: *mut f64,
10492    mode: *const lapackint,
10493    cond: *const f64,
10494    dmax: *const f64,
10495    kl: *const lapackint,
10496    ku: *const lapackint,
10497    pack: *const c_char,
10498    A: *mut f64,
10499    lda: *const lapackint,
10500    work: *mut f64,
10501    info: *mut lapackint,
10502);
10503
10504define_lapack_ffi!(slatms, SlatmsFnPtr,
10505    m: *const lapackint,
10506    n: *const lapackint,
10507    dist: *const c_char,
10508    iseed: *mut lapackint,
10509    sym: *const c_char,
10510    D: *mut f32,
10511    mode: *const lapackint,
10512    cond: *const f32,
10513    dmax: *const f32,
10514    kl: *const lapackint,
10515    ku: *const lapackint,
10516    pack: *const c_char,
10517    A: *mut f32,
10518    lda: *const lapackint,
10519    work: *mut f32,
10520    info: *mut lapackint,
10521);
10522
10523define_lapack_ffi!(zlatms, ZlatmsFnPtr,
10524    m: *const lapackint,
10525    n: *const lapackint,
10526    dist: *const c_char,
10527    iseed: *mut lapackint,
10528    sym: *const c_char,
10529    D: *mut f64,
10530    mode: *const lapackint,
10531    cond: *const f64,
10532    dmax: *const f64,
10533    kl: *const lapackint,
10534    ku: *const lapackint,
10535    pack: *const c_char,
10536    A: *mut Complex64,
10537    lda: *const lapackint,
10538    work: *mut Complex64,
10539    info: *mut lapackint,
10540);
10541
10542// LAUUM
10543define_lapack_ffi!(clauum, ClauumFnPtr,
10544    uplo: *const c_char,
10545    n: *const lapackint,
10546    A: *mut Complex32,
10547    lda: *const lapackint,
10548    info: *mut lapackint,
10549);
10550
10551define_lapack_ffi!(dlauum, DlauumFnPtr,
10552    uplo: *const c_char,
10553    n: *const lapackint,
10554    A: *mut f64,
10555    lda: *const lapackint,
10556    info: *mut lapackint,
10557);
10558
10559define_lapack_ffi!(slauum, SlauumFnPtr,
10560    uplo: *const c_char,
10561    n: *const lapackint,
10562    A: *mut f32,
10563    lda: *const lapackint,
10564    info: *mut lapackint,
10565);
10566
10567define_lapack_ffi!(zlauum, ZlauumFnPtr,
10568    uplo: *const c_char,
10569    n: *const lapackint,
10570    A: *mut Complex64,
10571    lda: *const lapackint,
10572    info: *mut lapackint,
10573);
10574
10575// OPGTR
10576define_lapack_ffi!(dopgtr, DopgtrFnPtr,
10577    uplo: *const c_char,
10578    n: *const lapackint,
10579    AP: *const f64,
10580    tau: *const f64,
10581    Q: *mut f64,
10582    ldq: *const lapackint,
10583    work: *mut f64,
10584    info: *mut lapackint,
10585);
10586
10587define_lapack_ffi!(sopgtr, SopgtrFnPtr,
10588    uplo: *const c_char,
10589    n: *const lapackint,
10590    AP: *const f32,
10591    tau: *const f32,
10592    Q: *mut f32,
10593    ldq: *const lapackint,
10594    work: *mut f32,
10595    info: *mut lapackint,
10596);
10597
10598// OPMTR
10599define_lapack_ffi!(dopmtr, DopmtrFnPtr,
10600    side: *const c_char,
10601    uplo: *const c_char,
10602    trans: *const c_char,
10603    m: *const lapackint,
10604    n: *const lapackint,
10605    AP: *const f64,
10606    tau: *const f64,
10607    C: *mut f64,
10608    ldc: *const lapackint,
10609    work: *mut f64,
10610    info: *mut lapackint,
10611);
10612
10613define_lapack_ffi!(sopmtr, SopmtrFnPtr,
10614    side: *const c_char,
10615    uplo: *const c_char,
10616    trans: *const c_char,
10617    m: *const lapackint,
10618    n: *const lapackint,
10619    AP: *const f32,
10620    tau: *const f32,
10621    C: *mut f32,
10622    ldc: *const lapackint,
10623    work: *mut f32,
10624    info: *mut lapackint,
10625);
10626
10627// ORBDB
10628define_lapack_ffi!(dorbdb, DorbdbFnPtr,
10629    trans: *const c_char,
10630    signs: *const c_char,
10631    m: *const lapackint,
10632    p: *const lapackint,
10633    q: *const lapackint,
10634    X11: *mut f64,
10635    ldx11: *const lapackint,
10636    X12: *mut f64,
10637    ldx12: *const lapackint,
10638    X21: *mut f64,
10639    ldx21: *const lapackint,
10640    X22: *mut f64,
10641    ldx22: *const lapackint,
10642    theta: *mut f64,
10643    phi: *mut f64,
10644    TAUP1: *mut f64,
10645    TAUP2: *mut f64,
10646    TAUQ1: *mut f64,
10647    TAUQ2: *mut f64,
10648    work: *mut f64,
10649    lwork: *const lapackint,
10650    info: *mut lapackint,
10651);
10652
10653define_lapack_ffi!(sorbdb, SorbdbFnPtr,
10654    trans: *const c_char,
10655    signs: *const c_char,
10656    m: *const lapackint,
10657    p: *const lapackint,
10658    q: *const lapackint,
10659    X11: *mut f32,
10660    ldx11: *const lapackint,
10661    X12: *mut f32,
10662    ldx12: *const lapackint,
10663    X21: *mut f32,
10664    ldx21: *const lapackint,
10665    X22: *mut f32,
10666    ldx22: *const lapackint,
10667    theta: *mut f32,
10668    phi: *mut f32,
10669    TAUP1: *mut f32,
10670    TAUP2: *mut f32,
10671    TAUQ1: *mut f32,
10672    TAUQ2: *mut f32,
10673    work: *mut f32,
10674    lwork: *const lapackint,
10675    info: *mut lapackint,
10676);
10677
10678// ORCSD
10679define_lapack_ffi!(dorcsd, DorcsdFnPtr,
10680    jobu1: *const c_char,
10681    jobu2: *const c_char,
10682    jobv1t: *const c_char,
10683    jobv2t: *const c_char,
10684    trans: *const c_char,
10685    signs: *const c_char,
10686    m: *const lapackint,
10687    p: *const lapackint,
10688    q: *const lapackint,
10689    X11: *mut f64,
10690    ldx11: *const lapackint,
10691    X12: *mut f64,
10692    ldx12: *const lapackint,
10693    X21: *mut f64,
10694    ldx21: *const lapackint,
10695    X22: *mut f64,
10696    ldx22: *const lapackint,
10697    theta: *mut f64,
10698    U1: *mut f64,
10699    ldu1: *const lapackint,
10700    U2: *mut f64,
10701    ldu2: *const lapackint,
10702    V1T: *mut f64,
10703    ldv1t: *const lapackint,
10704    V2T: *mut f64,
10705    ldv2t: *const lapackint,
10706    work: *mut f64,
10707    lwork: *const lapackint,
10708    iwork: *mut lapackint,
10709    info: *mut lapackint,
10710);
10711
10712define_lapack_ffi!(sorcsd, SorcsdFnPtr,
10713    jobu1: *const c_char,
10714    jobu2: *const c_char,
10715    jobv1t: *const c_char,
10716    jobv2t: *const c_char,
10717    trans: *const c_char,
10718    signs: *const c_char,
10719    m: *const lapackint,
10720    p: *const lapackint,
10721    q: *const lapackint,
10722    X11: *mut f32,
10723    ldx11: *const lapackint,
10724    X12: *mut f32,
10725    ldx12: *const lapackint,
10726    X21: *mut f32,
10727    ldx21: *const lapackint,
10728    X22: *mut f32,
10729    ldx22: *const lapackint,
10730    theta: *mut f32,
10731    U1: *mut f32,
10732    ldu1: *const lapackint,
10733    U2: *mut f32,
10734    ldu2: *const lapackint,
10735    V1T: *mut f32,
10736    ldv1t: *const lapackint,
10737    V2T: *mut f32,
10738    ldv2t: *const lapackint,
10739    work: *mut f32,
10740    lwork: *const lapackint,
10741    iwork: *mut lapackint,
10742    info: *mut lapackint,
10743);
10744
10745// ORCSD2BY1
10746define_lapack_ffi!(dorcsd2by1, Dorcsd2by1FnPtr,
10747    jobu1: *const c_char,
10748    jobu2: *const c_char,
10749    jobv1t: *const c_char,
10750    m: *const lapackint,
10751    p: *const lapackint,
10752    q: *const lapackint,
10753    X11: *mut f64,
10754    ldx11: *const lapackint,
10755    X21: *mut f64,
10756    ldx21: *const lapackint,
10757    theta: *mut f64,
10758    U1: *mut f64,
10759    ldu1: *const lapackint,
10760    U2: *mut f64,
10761    ldu2: *const lapackint,
10762    V1T: *mut f64,
10763    ldv1t: *const lapackint,
10764    work: *mut f64,
10765    lwork: *const lapackint,
10766    iwork: *mut lapackint,
10767    info: *mut lapackint,
10768);
10769
10770define_lapack_ffi!(sorcsd2by1, Sorcsd2by1FnPtr,
10771    jobu1: *const c_char,
10772    jobu2: *const c_char,
10773    jobv1t: *const c_char,
10774    m: *const lapackint,
10775    p: *const lapackint,
10776    q: *const lapackint,
10777    X11: *mut f32,
10778    ldx11: *const lapackint,
10779    X21: *mut f32,
10780    ldx21: *const lapackint,
10781    theta: *mut f32,
10782    U1: *mut f32,
10783    ldu1: *const lapackint,
10784    U2: *mut f32,
10785    ldu2: *const lapackint,
10786    V1T: *mut f32,
10787    ldv1t: *const lapackint,
10788    work: *mut f32,
10789    lwork: *const lapackint,
10790    iwork: *mut lapackint,
10791    info: *mut lapackint,
10792);
10793
10794// ORGBR
10795define_lapack_ffi!(dorgbr, DorgbrFnPtr,
10796    vect: *const c_char,
10797    m: *const lapackint,
10798    n: *const lapackint,
10799    k: *const lapackint,
10800    A: *mut f64,
10801    lda: *const lapackint,
10802    tau: *const f64,
10803    work: *mut f64,
10804    lwork: *const lapackint,
10805    info: *mut lapackint,
10806);
10807
10808define_lapack_ffi!(sorgbr, SorgbrFnPtr,
10809    vect: *const c_char,
10810    m: *const lapackint,
10811    n: *const lapackint,
10812    k: *const lapackint,
10813    A: *mut f32,
10814    lda: *const lapackint,
10815    tau: *const f32,
10816    work: *mut f32,
10817    lwork: *const lapackint,
10818    info: *mut lapackint,
10819);
10820
10821// ORGHR
10822define_lapack_ffi!(dorghr, DorghrFnPtr,
10823    n: *const lapackint,
10824    ilo: *const lapackint,
10825    ihi: *const lapackint,
10826    A: *mut f64,
10827    lda: *const lapackint,
10828    tau: *const f64,
10829    work: *mut f64,
10830    lwork: *const lapackint,
10831    info: *mut lapackint,
10832);
10833
10834define_lapack_ffi!(sorghr, SorghrFnPtr,
10835    n: *const lapackint,
10836    ilo: *const lapackint,
10837    ihi: *const lapackint,
10838    A: *mut f32,
10839    lda: *const lapackint,
10840    tau: *const f32,
10841    work: *mut f32,
10842    lwork: *const lapackint,
10843    info: *mut lapackint,
10844);
10845
10846// ORGLQ
10847define_lapack_ffi!(dorglq, DorglqFnPtr,
10848    m: *const lapackint,
10849    n: *const lapackint,
10850    k: *const lapackint,
10851    A: *mut f64,
10852    lda: *const lapackint,
10853    tau: *const f64,
10854    work: *mut f64,
10855    lwork: *const lapackint,
10856    info: *mut lapackint,
10857);
10858
10859define_lapack_ffi!(sorglq, SorglqFnPtr,
10860    m: *const lapackint,
10861    n: *const lapackint,
10862    k: *const lapackint,
10863    A: *mut f32,
10864    lda: *const lapackint,
10865    tau: *const f32,
10866    work: *mut f32,
10867    lwork: *const lapackint,
10868    info: *mut lapackint,
10869);
10870
10871// ORGQL
10872define_lapack_ffi!(dorgql, DorgqlFnPtr,
10873    m: *const lapackint,
10874    n: *const lapackint,
10875    k: *const lapackint,
10876    A: *mut f64,
10877    lda: *const lapackint,
10878    tau: *const f64,
10879    work: *mut f64,
10880    lwork: *const lapackint,
10881    info: *mut lapackint,
10882);
10883
10884define_lapack_ffi!(sorgql, SorgqlFnPtr,
10885    m: *const lapackint,
10886    n: *const lapackint,
10887    k: *const lapackint,
10888    A: *mut f32,
10889    lda: *const lapackint,
10890    tau: *const f32,
10891    work: *mut f32,
10892    lwork: *const lapackint,
10893    info: *mut lapackint,
10894);
10895
10896// ORGQR
10897define_lapack_ffi!(dorgqr, DorgqrFnPtr,
10898    m: *const lapackint,
10899    n: *const lapackint,
10900    k: *const lapackint,
10901    A: *mut f64,
10902    lda: *const lapackint,
10903    tau: *const f64,
10904    work: *mut f64,
10905    lwork: *const lapackint,
10906    info: *mut lapackint,
10907);
10908
10909define_lapack_ffi!(sorgqr, SorgqrFnPtr,
10910    m: *const lapackint,
10911    n: *const lapackint,
10912    k: *const lapackint,
10913    A: *mut f32,
10914    lda: *const lapackint,
10915    tau: *const f32,
10916    work: *mut f32,
10917    lwork: *const lapackint,
10918    info: *mut lapackint,
10919);
10920
10921// ORGRQ
10922define_lapack_ffi!(dorgrq, DorgrqFnPtr,
10923    m: *const lapackint,
10924    n: *const lapackint,
10925    k: *const lapackint,
10926    A: *mut f64,
10927    lda: *const lapackint,
10928    tau: *const f64,
10929    work: *mut f64,
10930    lwork: *const lapackint,
10931    info: *mut lapackint,
10932);
10933
10934define_lapack_ffi!(sorgrq, SorgrqFnPtr,
10935    m: *const lapackint,
10936    n: *const lapackint,
10937    k: *const lapackint,
10938    A: *mut f32,
10939    lda: *const lapackint,
10940    tau: *const f32,
10941    work: *mut f32,
10942    lwork: *const lapackint,
10943    info: *mut lapackint,
10944);
10945
10946// ORGTR
10947define_lapack_ffi!(dorgtr, DorgtrFnPtr,
10948    uplo: *const c_char,
10949    n: *const lapackint,
10950    A: *mut f64,
10951    lda: *const lapackint,
10952    tau: *const f64,
10953    work: *mut f64,
10954    lwork: *const lapackint,
10955    info: *mut lapackint,
10956);
10957
10958define_lapack_ffi!(sorgtr, SorgtrFnPtr,
10959    uplo: *const c_char,
10960    n: *const lapackint,
10961    A: *mut f32,
10962    lda: *const lapackint,
10963    tau: *const f32,
10964    work: *mut f32,
10965    lwork: *const lapackint,
10966    info: *mut lapackint,
10967);
10968
10969// ORGTSQR_ROW
10970define_lapack_ffi!(dorgtsqr_row, Dorgtsqr_rowFnPtr,
10971    m: *const lapackint,
10972    n: *const lapackint,
10973    mb: *const lapackint,
10974    nb: *const lapackint,
10975    A: *mut f64,
10976    lda: *const lapackint,
10977    T: *const f64,
10978    ldt: *const lapackint,
10979    work: *mut f64,
10980    lwork: *const lapackint,
10981    info: *mut lapackint,
10982);
10983
10984define_lapack_ffi!(sorgtsqr_row, Sorgtsqr_rowFnPtr,
10985    m: *const lapackint,
10986    n: *const lapackint,
10987    mb: *const lapackint,
10988    nb: *const lapackint,
10989    A: *mut f32,
10990    lda: *const lapackint,
10991    T: *const f32,
10992    ldt: *const lapackint,
10993    work: *mut f32,
10994    lwork: *const lapackint,
10995    info: *mut lapackint,
10996);
10997
10998// ORMBR
10999define_lapack_ffi!(dormbr, DormbrFnPtr,
11000    vect: *const c_char,
11001    side: *const c_char,
11002    trans: *const c_char,
11003    m: *const lapackint,
11004    n: *const lapackint,
11005    k: *const lapackint,
11006    A: *const f64,
11007    lda: *const lapackint,
11008    tau: *const f64,
11009    C: *mut f64,
11010    ldc: *const lapackint,
11011    work: *mut f64,
11012    lwork: *const lapackint,
11013    info: *mut lapackint,
11014);
11015
11016define_lapack_ffi!(sormbr, SormbrFnPtr,
11017    vect: *const c_char,
11018    side: *const c_char,
11019    trans: *const c_char,
11020    m: *const lapackint,
11021    n: *const lapackint,
11022    k: *const lapackint,
11023    A: *const f32,
11024    lda: *const lapackint,
11025    tau: *const f32,
11026    C: *mut f32,
11027    ldc: *const lapackint,
11028    work: *mut f32,
11029    lwork: *const lapackint,
11030    info: *mut lapackint,
11031);
11032
11033// ORMHR
11034define_lapack_ffi!(dormhr, DormhrFnPtr,
11035    side: *const c_char,
11036    trans: *const c_char,
11037    m: *const lapackint,
11038    n: *const lapackint,
11039    ilo: *const lapackint,
11040    ihi: *const lapackint,
11041    A: *const f64,
11042    lda: *const lapackint,
11043    tau: *const f64,
11044    C: *mut f64,
11045    ldc: *const lapackint,
11046    work: *mut f64,
11047    lwork: *const lapackint,
11048    info: *mut lapackint,
11049);
11050
11051define_lapack_ffi!(sormhr, SormhrFnPtr,
11052    side: *const c_char,
11053    trans: *const c_char,
11054    m: *const lapackint,
11055    n: *const lapackint,
11056    ilo: *const lapackint,
11057    ihi: *const lapackint,
11058    A: *const f32,
11059    lda: *const lapackint,
11060    tau: *const f32,
11061    C: *mut f32,
11062    ldc: *const lapackint,
11063    work: *mut f32,
11064    lwork: *const lapackint,
11065    info: *mut lapackint,
11066);
11067
11068// ORMLQ
11069define_lapack_ffi!(dormlq, DormlqFnPtr,
11070    side: *const c_char,
11071    trans: *const c_char,
11072    m: *const lapackint,
11073    n: *const lapackint,
11074    k: *const lapackint,
11075    A: *const f64,
11076    lda: *const lapackint,
11077    tau: *const f64,
11078    C: *mut f64,
11079    ldc: *const lapackint,
11080    work: *mut f64,
11081    lwork: *const lapackint,
11082    info: *mut lapackint,
11083);
11084
11085define_lapack_ffi!(sormlq, SormlqFnPtr,
11086    side: *const c_char,
11087    trans: *const c_char,
11088    m: *const lapackint,
11089    n: *const lapackint,
11090    k: *const lapackint,
11091    A: *const f32,
11092    lda: *const lapackint,
11093    tau: *const f32,
11094    C: *mut f32,
11095    ldc: *const lapackint,
11096    work: *mut f32,
11097    lwork: *const lapackint,
11098    info: *mut lapackint,
11099);
11100
11101// ORMQL
11102define_lapack_ffi!(dormql, DormqlFnPtr,
11103    side: *const c_char,
11104    trans: *const c_char,
11105    m: *const lapackint,
11106    n: *const lapackint,
11107    k: *const lapackint,
11108    A: *const f64,
11109    lda: *const lapackint,
11110    tau: *const f64,
11111    C: *mut f64,
11112    ldc: *const lapackint,
11113    work: *mut f64,
11114    lwork: *const lapackint,
11115    info: *mut lapackint,
11116);
11117
11118define_lapack_ffi!(sormql, SormqlFnPtr,
11119    side: *const c_char,
11120    trans: *const c_char,
11121    m: *const lapackint,
11122    n: *const lapackint,
11123    k: *const lapackint,
11124    A: *const f32,
11125    lda: *const lapackint,
11126    tau: *const f32,
11127    C: *mut f32,
11128    ldc: *const lapackint,
11129    work: *mut f32,
11130    lwork: *const lapackint,
11131    info: *mut lapackint,
11132);
11133
11134// ORMQR
11135define_lapack_ffi!(dormqr, DormqrFnPtr,
11136    side: *const c_char,
11137    trans: *const c_char,
11138    m: *const lapackint,
11139    n: *const lapackint,
11140    k: *const lapackint,
11141    A: *const f64,
11142    lda: *const lapackint,
11143    tau: *const f64,
11144    C: *mut f64,
11145    ldc: *const lapackint,
11146    work: *mut f64,
11147    lwork: *const lapackint,
11148    info: *mut lapackint,
11149);
11150
11151define_lapack_ffi!(sormqr, SormqrFnPtr,
11152    side: *const c_char,
11153    trans: *const c_char,
11154    m: *const lapackint,
11155    n: *const lapackint,
11156    k: *const lapackint,
11157    A: *const f32,
11158    lda: *const lapackint,
11159    tau: *const f32,
11160    C: *mut f32,
11161    ldc: *const lapackint,
11162    work: *mut f32,
11163    lwork: *const lapackint,
11164    info: *mut lapackint,
11165);
11166
11167// ORMRQ
11168define_lapack_ffi!(dormrq, DormrqFnPtr,
11169    side: *const c_char,
11170    trans: *const c_char,
11171    m: *const lapackint,
11172    n: *const lapackint,
11173    k: *const lapackint,
11174    A: *const f64,
11175    lda: *const lapackint,
11176    tau: *const f64,
11177    C: *mut f64,
11178    ldc: *const lapackint,
11179    work: *mut f64,
11180    lwork: *const lapackint,
11181    info: *mut lapackint,
11182);
11183
11184define_lapack_ffi!(sormrq, SormrqFnPtr,
11185    side: *const c_char,
11186    trans: *const c_char,
11187    m: *const lapackint,
11188    n: *const lapackint,
11189    k: *const lapackint,
11190    A: *const f32,
11191    lda: *const lapackint,
11192    tau: *const f32,
11193    C: *mut f32,
11194    ldc: *const lapackint,
11195    work: *mut f32,
11196    lwork: *const lapackint,
11197    info: *mut lapackint,
11198);
11199
11200// ORMRZ
11201define_lapack_ffi!(dormrz, DormrzFnPtr,
11202    side: *const c_char,
11203    trans: *const c_char,
11204    m: *const lapackint,
11205    n: *const lapackint,
11206    k: *const lapackint,
11207    l: *const lapackint,
11208    A: *const f64,
11209    lda: *const lapackint,
11210    tau: *const f64,
11211    C: *mut f64,
11212    ldc: *const lapackint,
11213    work: *mut f64,
11214    lwork: *const lapackint,
11215    info: *mut lapackint,
11216);
11217
11218define_lapack_ffi!(sormrz, SormrzFnPtr,
11219    side: *const c_char,
11220    trans: *const c_char,
11221    m: *const lapackint,
11222    n: *const lapackint,
11223    k: *const lapackint,
11224    l: *const lapackint,
11225    A: *const f32,
11226    lda: *const lapackint,
11227    tau: *const f32,
11228    C: *mut f32,
11229    ldc: *const lapackint,
11230    work: *mut f32,
11231    lwork: *const lapackint,
11232    info: *mut lapackint,
11233);
11234
11235// ORMTR
11236define_lapack_ffi!(dormtr, DormtrFnPtr,
11237    side: *const c_char,
11238    uplo: *const c_char,
11239    trans: *const c_char,
11240    m: *const lapackint,
11241    n: *const lapackint,
11242    A: *const f64,
11243    lda: *const lapackint,
11244    tau: *const f64,
11245    C: *mut f64,
11246    ldc: *const lapackint,
11247    work: *mut f64,
11248    lwork: *const lapackint,
11249    info: *mut lapackint,
11250);
11251
11252define_lapack_ffi!(sormtr, SormtrFnPtr,
11253    side: *const c_char,
11254    uplo: *const c_char,
11255    trans: *const c_char,
11256    m: *const lapackint,
11257    n: *const lapackint,
11258    A: *const f32,
11259    lda: *const lapackint,
11260    tau: *const f32,
11261    C: *mut f32,
11262    ldc: *const lapackint,
11263    work: *mut f32,
11264    lwork: *const lapackint,
11265    info: *mut lapackint,
11266);
11267
11268// PBCON
11269define_lapack_ffi!(cpbcon, CpbconFnPtr,
11270    uplo: *const c_char,
11271    n: *const lapackint,
11272    kd: *const lapackint,
11273    AB: *const Complex32,
11274    ldab: *const lapackint,
11275    anorm: *const f32,
11276    rcond: *mut f32,
11277    work: *mut Complex32,
11278    rwork: *mut f32,
11279    info: *mut lapackint,
11280);
11281
11282define_lapack_ffi!(dpbcon, DpbconFnPtr,
11283    uplo: *const c_char,
11284    n: *const lapackint,
11285    kd: *const lapackint,
11286    AB: *const f64,
11287    ldab: *const lapackint,
11288    anorm: *const f64,
11289    rcond: *mut f64,
11290    work: *mut f64,
11291    iwork: *mut lapackint,
11292    info: *mut lapackint,
11293);
11294
11295define_lapack_ffi!(spbcon, SpbconFnPtr,
11296    uplo: *const c_char,
11297    n: *const lapackint,
11298    kd: *const lapackint,
11299    AB: *const f32,
11300    ldab: *const lapackint,
11301    anorm: *const f32,
11302    rcond: *mut f32,
11303    work: *mut f32,
11304    iwork: *mut lapackint,
11305    info: *mut lapackint,
11306);
11307
11308define_lapack_ffi!(zpbcon, ZpbconFnPtr,
11309    uplo: *const c_char,
11310    n: *const lapackint,
11311    kd: *const lapackint,
11312    AB: *const Complex64,
11313    ldab: *const lapackint,
11314    anorm: *const f64,
11315    rcond: *mut f64,
11316    work: *mut Complex64,
11317    rwork: *mut f64,
11318    info: *mut lapackint,
11319);
11320
11321// PBEQU
11322define_lapack_ffi!(cpbequ, CpbequFnPtr,
11323    uplo: *const c_char,
11324    n: *const lapackint,
11325    kd: *const lapackint,
11326    AB: *const Complex32,
11327    ldab: *const lapackint,
11328    S: *mut f32,
11329    scond: *mut f32,
11330    amax: *mut f32,
11331    info: *mut lapackint,
11332);
11333
11334define_lapack_ffi!(dpbequ, DpbequFnPtr,
11335    uplo: *const c_char,
11336    n: *const lapackint,
11337    kd: *const lapackint,
11338    AB: *const f64,
11339    ldab: *const lapackint,
11340    S: *mut f64,
11341    scond: *mut f64,
11342    amax: *mut f64,
11343    info: *mut lapackint,
11344);
11345
11346define_lapack_ffi!(spbequ, SpbequFnPtr,
11347    uplo: *const c_char,
11348    n: *const lapackint,
11349    kd: *const lapackint,
11350    AB: *const f32,
11351    ldab: *const lapackint,
11352    S: *mut f32,
11353    scond: *mut f32,
11354    amax: *mut f32,
11355    info: *mut lapackint,
11356);
11357
11358define_lapack_ffi!(zpbequ, ZpbequFnPtr,
11359    uplo: *const c_char,
11360    n: *const lapackint,
11361    kd: *const lapackint,
11362    AB: *const Complex64,
11363    ldab: *const lapackint,
11364    S: *mut f64,
11365    scond: *mut f64,
11366    amax: *mut f64,
11367    info: *mut lapackint,
11368);
11369
11370// PBRFS
11371define_lapack_ffi!(cpbrfs, CpbrfsFnPtr,
11372    uplo: *const c_char,
11373    n: *const lapackint,
11374    kd: *const lapackint,
11375    nrhs: *const lapackint,
11376    AB: *const Complex32,
11377    ldab: *const lapackint,
11378    AFB: *const Complex32,
11379    ldafb: *const lapackint,
11380    B: *const Complex32,
11381    ldb: *const lapackint,
11382    X: *mut Complex32,
11383    ldx: *const lapackint,
11384    ferr: *mut f32,
11385    berr: *mut f32,
11386    work: *mut Complex32,
11387    rwork: *mut f32,
11388    info: *mut lapackint,
11389);
11390
11391define_lapack_ffi!(dpbrfs, DpbrfsFnPtr,
11392    uplo: *const c_char,
11393    n: *const lapackint,
11394    kd: *const lapackint,
11395    nrhs: *const lapackint,
11396    AB: *const f64,
11397    ldab: *const lapackint,
11398    AFB: *const f64,
11399    ldafb: *const lapackint,
11400    B: *const f64,
11401    ldb: *const lapackint,
11402    X: *mut f64,
11403    ldx: *const lapackint,
11404    ferr: *mut f64,
11405    berr: *mut f64,
11406    work: *mut f64,
11407    iwork: *mut lapackint,
11408    info: *mut lapackint,
11409);
11410
11411define_lapack_ffi!(spbrfs, SpbrfsFnPtr,
11412    uplo: *const c_char,
11413    n: *const lapackint,
11414    kd: *const lapackint,
11415    nrhs: *const lapackint,
11416    AB: *const f32,
11417    ldab: *const lapackint,
11418    AFB: *const f32,
11419    ldafb: *const lapackint,
11420    B: *const f32,
11421    ldb: *const lapackint,
11422    X: *mut f32,
11423    ldx: *const lapackint,
11424    ferr: *mut f32,
11425    berr: *mut f32,
11426    work: *mut f32,
11427    iwork: *mut lapackint,
11428    info: *mut lapackint,
11429);
11430
11431define_lapack_ffi!(zpbrfs, ZpbrfsFnPtr,
11432    uplo: *const c_char,
11433    n: *const lapackint,
11434    kd: *const lapackint,
11435    nrhs: *const lapackint,
11436    AB: *const Complex64,
11437    ldab: *const lapackint,
11438    AFB: *const Complex64,
11439    ldafb: *const lapackint,
11440    B: *const Complex64,
11441    ldb: *const lapackint,
11442    X: *mut Complex64,
11443    ldx: *const lapackint,
11444    ferr: *mut f64,
11445    berr: *mut f64,
11446    work: *mut Complex64,
11447    rwork: *mut f64,
11448    info: *mut lapackint,
11449);
11450
11451// PBSTF
11452define_lapack_ffi!(cpbstf, CpbstfFnPtr,
11453    uplo: *const c_char,
11454    n: *const lapackint,
11455    kd: *const lapackint,
11456    AB: *mut Complex32,
11457    ldab: *const lapackint,
11458    info: *mut lapackint,
11459);
11460
11461define_lapack_ffi!(dpbstf, DpbstfFnPtr,
11462    uplo: *const c_char,
11463    n: *const lapackint,
11464    kd: *const lapackint,
11465    AB: *mut f64,
11466    ldab: *const lapackint,
11467    info: *mut lapackint,
11468);
11469
11470define_lapack_ffi!(spbstf, SpbstfFnPtr,
11471    uplo: *const c_char,
11472    n: *const lapackint,
11473    kd: *const lapackint,
11474    AB: *mut f32,
11475    ldab: *const lapackint,
11476    info: *mut lapackint,
11477);
11478
11479define_lapack_ffi!(zpbstf, ZpbstfFnPtr,
11480    uplo: *const c_char,
11481    n: *const lapackint,
11482    kd: *const lapackint,
11483    AB: *mut Complex64,
11484    ldab: *const lapackint,
11485    info: *mut lapackint,
11486);
11487
11488// PBSV
11489define_lapack_ffi!(cpbsv, CpbsvFnPtr,
11490    uplo: *const c_char,
11491    n: *const lapackint,
11492    kd: *const lapackint,
11493    nrhs: *const lapackint,
11494    AB: *mut Complex32,
11495    ldab: *const lapackint,
11496    B: *mut Complex32,
11497    ldb: *const lapackint,
11498    info: *mut lapackint,
11499);
11500
11501define_lapack_ffi!(dpbsv, DpbsvFnPtr,
11502    uplo: *const c_char,
11503    n: *const lapackint,
11504    kd: *const lapackint,
11505    nrhs: *const lapackint,
11506    AB: *mut f64,
11507    ldab: *const lapackint,
11508    B: *mut f64,
11509    ldb: *const lapackint,
11510    info: *mut lapackint,
11511);
11512
11513define_lapack_ffi!(spbsv, SpbsvFnPtr,
11514    uplo: *const c_char,
11515    n: *const lapackint,
11516    kd: *const lapackint,
11517    nrhs: *const lapackint,
11518    AB: *mut f32,
11519    ldab: *const lapackint,
11520    B: *mut f32,
11521    ldb: *const lapackint,
11522    info: *mut lapackint,
11523);
11524
11525define_lapack_ffi!(zpbsv, ZpbsvFnPtr,
11526    uplo: *const c_char,
11527    n: *const lapackint,
11528    kd: *const lapackint,
11529    nrhs: *const lapackint,
11530    AB: *mut Complex64,
11531    ldab: *const lapackint,
11532    B: *mut Complex64,
11533    ldb: *const lapackint,
11534    info: *mut lapackint,
11535);
11536
11537// PBSVX
11538define_lapack_ffi!(cpbsvx, CpbsvxFnPtr,
11539    fact: *const c_char,
11540    uplo: *const c_char,
11541    n: *const lapackint,
11542    kd: *const lapackint,
11543    nrhs: *const lapackint,
11544    AB: *mut Complex32,
11545    ldab: *const lapackint,
11546    AFB: *mut Complex32,
11547    ldafb: *const lapackint,
11548    equed: *mut c_char,
11549    S: *mut f32,
11550    B: *mut Complex32,
11551    ldb: *const lapackint,
11552    X: *mut Complex32,
11553    ldx: *const lapackint,
11554    rcond: *mut f32,
11555    ferr: *mut f32,
11556    berr: *mut f32,
11557    work: *mut Complex32,
11558    rwork: *mut f32,
11559    info: *mut lapackint,
11560);
11561
11562define_lapack_ffi!(dpbsvx, DpbsvxFnPtr,
11563    fact: *const c_char,
11564    uplo: *const c_char,
11565    n: *const lapackint,
11566    kd: *const lapackint,
11567    nrhs: *const lapackint,
11568    AB: *mut f64,
11569    ldab: *const lapackint,
11570    AFB: *mut f64,
11571    ldafb: *const lapackint,
11572    equed: *mut c_char,
11573    S: *mut f64,
11574    B: *mut f64,
11575    ldb: *const lapackint,
11576    X: *mut f64,
11577    ldx: *const lapackint,
11578    rcond: *mut f64,
11579    ferr: *mut f64,
11580    berr: *mut f64,
11581    work: *mut f64,
11582    iwork: *mut lapackint,
11583    info: *mut lapackint,
11584);
11585
11586define_lapack_ffi!(spbsvx, SpbsvxFnPtr,
11587    fact: *const c_char,
11588    uplo: *const c_char,
11589    n: *const lapackint,
11590    kd: *const lapackint,
11591    nrhs: *const lapackint,
11592    AB: *mut f32,
11593    ldab: *const lapackint,
11594    AFB: *mut f32,
11595    ldafb: *const lapackint,
11596    equed: *mut c_char,
11597    S: *mut f32,
11598    B: *mut f32,
11599    ldb: *const lapackint,
11600    X: *mut f32,
11601    ldx: *const lapackint,
11602    rcond: *mut f32,
11603    ferr: *mut f32,
11604    berr: *mut f32,
11605    work: *mut f32,
11606    iwork: *mut lapackint,
11607    info: *mut lapackint,
11608);
11609
11610define_lapack_ffi!(zpbsvx, ZpbsvxFnPtr,
11611    fact: *const c_char,
11612    uplo: *const c_char,
11613    n: *const lapackint,
11614    kd: *const lapackint,
11615    nrhs: *const lapackint,
11616    AB: *mut Complex64,
11617    ldab: *const lapackint,
11618    AFB: *mut Complex64,
11619    ldafb: *const lapackint,
11620    equed: *mut c_char,
11621    S: *mut f64,
11622    B: *mut Complex64,
11623    ldb: *const lapackint,
11624    X: *mut Complex64,
11625    ldx: *const lapackint,
11626    rcond: *mut f64,
11627    ferr: *mut f64,
11628    berr: *mut f64,
11629    work: *mut Complex64,
11630    rwork: *mut f64,
11631    info: *mut lapackint,
11632);
11633
11634// PBTRF
11635define_lapack_ffi!(cpbtrf, CpbtrfFnPtr,
11636    uplo: *const c_char,
11637    n: *const lapackint,
11638    kd: *const lapackint,
11639    AB: *mut Complex32,
11640    ldab: *const lapackint,
11641    info: *mut lapackint,
11642);
11643
11644define_lapack_ffi!(dpbtrf, DpbtrfFnPtr,
11645    uplo: *const c_char,
11646    n: *const lapackint,
11647    kd: *const lapackint,
11648    AB: *mut f64,
11649    ldab: *const lapackint,
11650    info: *mut lapackint,
11651);
11652
11653define_lapack_ffi!(spbtrf, SpbtrfFnPtr,
11654    uplo: *const c_char,
11655    n: *const lapackint,
11656    kd: *const lapackint,
11657    AB: *mut f32,
11658    ldab: *const lapackint,
11659    info: *mut lapackint,
11660);
11661
11662define_lapack_ffi!(zpbtrf, ZpbtrfFnPtr,
11663    uplo: *const c_char,
11664    n: *const lapackint,
11665    kd: *const lapackint,
11666    AB: *mut Complex64,
11667    ldab: *const lapackint,
11668    info: *mut lapackint,
11669);
11670
11671// PBTRS
11672define_lapack_ffi!(cpbtrs, CpbtrsFnPtr,
11673    uplo: *const c_char,
11674    n: *const lapackint,
11675    kd: *const lapackint,
11676    nrhs: *const lapackint,
11677    AB: *const Complex32,
11678    ldab: *const lapackint,
11679    B: *mut Complex32,
11680    ldb: *const lapackint,
11681    info: *mut lapackint,
11682);
11683
11684define_lapack_ffi!(dpbtrs, DpbtrsFnPtr,
11685    uplo: *const c_char,
11686    n: *const lapackint,
11687    kd: *const lapackint,
11688    nrhs: *const lapackint,
11689    AB: *const f64,
11690    ldab: *const lapackint,
11691    B: *mut f64,
11692    ldb: *const lapackint,
11693    info: *mut lapackint,
11694);
11695
11696define_lapack_ffi!(spbtrs, SpbtrsFnPtr,
11697    uplo: *const c_char,
11698    n: *const lapackint,
11699    kd: *const lapackint,
11700    nrhs: *const lapackint,
11701    AB: *const f32,
11702    ldab: *const lapackint,
11703    B: *mut f32,
11704    ldb: *const lapackint,
11705    info: *mut lapackint,
11706);
11707
11708define_lapack_ffi!(zpbtrs, ZpbtrsFnPtr,
11709    uplo: *const c_char,
11710    n: *const lapackint,
11711    kd: *const lapackint,
11712    nrhs: *const lapackint,
11713    AB: *const Complex64,
11714    ldab: *const lapackint,
11715    B: *mut Complex64,
11716    ldb: *const lapackint,
11717    info: *mut lapackint,
11718);
11719
11720// PFTRF
11721define_lapack_ffi!(cpftrf, CpftrfFnPtr,
11722    transr: *const c_char,
11723    uplo: *const c_char,
11724    n: *const lapackint,
11725    A: *mut Complex32,
11726    info: *mut lapackint,
11727);
11728
11729define_lapack_ffi!(dpftrf, DpftrfFnPtr,
11730    transr: *const c_char,
11731    uplo: *const c_char,
11732    n: *const lapackint,
11733    A: *mut f64,
11734    info: *mut lapackint,
11735);
11736
11737define_lapack_ffi!(spftrf, SpftrfFnPtr,
11738    transr: *const c_char,
11739    uplo: *const c_char,
11740    n: *const lapackint,
11741    A: *mut f32,
11742    info: *mut lapackint,
11743);
11744
11745define_lapack_ffi!(zpftrf, ZpftrfFnPtr,
11746    transr: *const c_char,
11747    uplo: *const c_char,
11748    n: *const lapackint,
11749    A: *mut Complex64,
11750    info: *mut lapackint,
11751);
11752
11753// PFTRI
11754define_lapack_ffi!(cpftri, CpftriFnPtr,
11755    transr: *const c_char,
11756    uplo: *const c_char,
11757    n: *const lapackint,
11758    A: *mut Complex32,
11759    info: *mut lapackint,
11760);
11761
11762define_lapack_ffi!(dpftri, DpftriFnPtr,
11763    transr: *const c_char,
11764    uplo: *const c_char,
11765    n: *const lapackint,
11766    A: *mut f64,
11767    info: *mut lapackint,
11768);
11769
11770define_lapack_ffi!(spftri, SpftriFnPtr,
11771    transr: *const c_char,
11772    uplo: *const c_char,
11773    n: *const lapackint,
11774    A: *mut f32,
11775    info: *mut lapackint,
11776);
11777
11778define_lapack_ffi!(zpftri, ZpftriFnPtr,
11779    transr: *const c_char,
11780    uplo: *const c_char,
11781    n: *const lapackint,
11782    A: *mut Complex64,
11783    info: *mut lapackint,
11784);
11785
11786// PFTRS
11787define_lapack_ffi!(cpftrs, CpftrsFnPtr,
11788    transr: *const c_char,
11789    uplo: *const c_char,
11790    n: *const lapackint,
11791    nrhs: *const lapackint,
11792    A: *const Complex32,
11793    B: *mut Complex32,
11794    ldb: *const lapackint,
11795    info: *mut lapackint,
11796);
11797
11798define_lapack_ffi!(dpftrs, DpftrsFnPtr,
11799    transr: *const c_char,
11800    uplo: *const c_char,
11801    n: *const lapackint,
11802    nrhs: *const lapackint,
11803    A: *const f64,
11804    B: *mut f64,
11805    ldb: *const lapackint,
11806    info: *mut lapackint,
11807);
11808
11809define_lapack_ffi!(spftrs, SpftrsFnPtr,
11810    transr: *const c_char,
11811    uplo: *const c_char,
11812    n: *const lapackint,
11813    nrhs: *const lapackint,
11814    A: *const f32,
11815    B: *mut f32,
11816    ldb: *const lapackint,
11817    info: *mut lapackint,
11818);
11819
11820define_lapack_ffi!(zpftrs, ZpftrsFnPtr,
11821    transr: *const c_char,
11822    uplo: *const c_char,
11823    n: *const lapackint,
11824    nrhs: *const lapackint,
11825    A: *const Complex64,
11826    B: *mut Complex64,
11827    ldb: *const lapackint,
11828    info: *mut lapackint,
11829);
11830
11831// POCON
11832define_lapack_ffi!(cpocon, CpoconFnPtr,
11833    uplo: *const c_char,
11834    n: *const lapackint,
11835    A: *const Complex32,
11836    lda: *const lapackint,
11837    anorm: *const f32,
11838    rcond: *mut f32,
11839    work: *mut Complex32,
11840    rwork: *mut f32,
11841    info: *mut lapackint,
11842);
11843
11844define_lapack_ffi!(dpocon, DpoconFnPtr,
11845    uplo: *const c_char,
11846    n: *const lapackint,
11847    A: *const f64,
11848    lda: *const lapackint,
11849    anorm: *const f64,
11850    rcond: *mut f64,
11851    work: *mut f64,
11852    iwork: *mut lapackint,
11853    info: *mut lapackint,
11854);
11855
11856define_lapack_ffi!(spocon, SpoconFnPtr,
11857    uplo: *const c_char,
11858    n: *const lapackint,
11859    A: *const f32,
11860    lda: *const lapackint,
11861    anorm: *const f32,
11862    rcond: *mut f32,
11863    work: *mut f32,
11864    iwork: *mut lapackint,
11865    info: *mut lapackint,
11866);
11867
11868define_lapack_ffi!(zpocon, ZpoconFnPtr,
11869    uplo: *const c_char,
11870    n: *const lapackint,
11871    A: *const Complex64,
11872    lda: *const lapackint,
11873    anorm: *const f64,
11874    rcond: *mut f64,
11875    work: *mut Complex64,
11876    rwork: *mut f64,
11877    info: *mut lapackint,
11878);
11879
11880// POEQU
11881define_lapack_ffi!(cpoequ, CpoequFnPtr,
11882    n: *const lapackint,
11883    A: *const Complex32,
11884    lda: *const lapackint,
11885    S: *mut f32,
11886    scond: *mut f32,
11887    amax: *mut f32,
11888    info: *mut lapackint,
11889);
11890
11891define_lapack_ffi!(dpoequ, DpoequFnPtr,
11892    n: *const lapackint,
11893    A: *const f64,
11894    lda: *const lapackint,
11895    S: *mut f64,
11896    scond: *mut f64,
11897    amax: *mut f64,
11898    info: *mut lapackint,
11899);
11900
11901define_lapack_ffi!(spoequ, SpoequFnPtr,
11902    n: *const lapackint,
11903    A: *const f32,
11904    lda: *const lapackint,
11905    S: *mut f32,
11906    scond: *mut f32,
11907    amax: *mut f32,
11908    info: *mut lapackint,
11909);
11910
11911define_lapack_ffi!(zpoequ, ZpoequFnPtr,
11912    n: *const lapackint,
11913    A: *const Complex64,
11914    lda: *const lapackint,
11915    S: *mut f64,
11916    scond: *mut f64,
11917    amax: *mut f64,
11918    info: *mut lapackint,
11919);
11920
11921// POEQUB
11922define_lapack_ffi!(cpoequb, CpoequbFnPtr,
11923    n: *const lapackint,
11924    A: *const Complex32,
11925    lda: *const lapackint,
11926    S: *mut f32,
11927    scond: *mut f32,
11928    amax: *mut f32,
11929    info: *mut lapackint,
11930);
11931
11932define_lapack_ffi!(dpoequb, DpoequbFnPtr,
11933    n: *const lapackint,
11934    A: *const f64,
11935    lda: *const lapackint,
11936    S: *mut f64,
11937    scond: *mut f64,
11938    amax: *mut f64,
11939    info: *mut lapackint,
11940);
11941
11942define_lapack_ffi!(spoequb, SpoequbFnPtr,
11943    n: *const lapackint,
11944    A: *const f32,
11945    lda: *const lapackint,
11946    S: *mut f32,
11947    scond: *mut f32,
11948    amax: *mut f32,
11949    info: *mut lapackint,
11950);
11951
11952define_lapack_ffi!(zpoequb, ZpoequbFnPtr,
11953    n: *const lapackint,
11954    A: *const Complex64,
11955    lda: *const lapackint,
11956    S: *mut f64,
11957    scond: *mut f64,
11958    amax: *mut f64,
11959    info: *mut lapackint,
11960);
11961
11962// PORFS
11963define_lapack_ffi!(cporfs, CporfsFnPtr,
11964    uplo: *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    B: *const Complex32,
11972    ldb: *const lapackint,
11973    X: *mut Complex32,
11974    ldx: *const lapackint,
11975    ferr: *mut f32,
11976    berr: *mut f32,
11977    work: *mut Complex32,
11978    rwork: *mut f32,
11979    info: *mut lapackint,
11980);
11981
11982define_lapack_ffi!(dporfs, DporfsFnPtr,
11983    uplo: *const c_char,
11984    n: *const lapackint,
11985    nrhs: *const lapackint,
11986    A: *const f64,
11987    lda: *const lapackint,
11988    AF: *const f64,
11989    ldaf: *const lapackint,
11990    B: *const f64,
11991    ldb: *const lapackint,
11992    X: *mut f64,
11993    ldx: *const lapackint,
11994    ferr: *mut f64,
11995    berr: *mut f64,
11996    work: *mut f64,
11997    iwork: *mut lapackint,
11998    info: *mut lapackint,
11999);
12000
12001define_lapack_ffi!(sporfs, SporfsFnPtr,
12002    uplo: *const c_char,
12003    n: *const lapackint,
12004    nrhs: *const lapackint,
12005    A: *const f32,
12006    lda: *const lapackint,
12007    AF: *const f32,
12008    ldaf: *const lapackint,
12009    B: *const f32,
12010    ldb: *const lapackint,
12011    X: *mut f32,
12012    ldx: *const lapackint,
12013    ferr: *mut f32,
12014    berr: *mut f32,
12015    work: *mut f32,
12016    iwork: *mut lapackint,
12017    info: *mut lapackint,
12018);
12019
12020define_lapack_ffi!(zporfs, ZporfsFnPtr,
12021    uplo: *const c_char,
12022    n: *const lapackint,
12023    nrhs: *const lapackint,
12024    A: *const Complex64,
12025    lda: *const lapackint,
12026    AF: *const Complex64,
12027    ldaf: *const lapackint,
12028    B: *const Complex64,
12029    ldb: *const lapackint,
12030    X: *mut Complex64,
12031    ldx: *const lapackint,
12032    ferr: *mut f64,
12033    berr: *mut f64,
12034    work: *mut Complex64,
12035    rwork: *mut f64,
12036    info: *mut lapackint,
12037);
12038
12039// PORFSX
12040define_lapack_ffi!(cporfsx, CporfsxFnPtr,
12041    uplo: *const c_char,
12042    equed: *const c_char,
12043    n: *const lapackint,
12044    nrhs: *const lapackint,
12045    A: *const Complex32,
12046    lda: *const lapackint,
12047    AF: *const Complex32,
12048    ldaf: *const lapackint,
12049    S: *mut f32,
12050    B: *const Complex32,
12051    ldb: *const lapackint,
12052    X: *mut Complex32,
12053    ldx: *const lapackint,
12054    rcond: *mut f32,
12055    berr: *mut f32,
12056    n_err_bnds: *const lapackint,
12057    err_bnds_norm: *mut f32,
12058    err_bnds_comp: *mut f32,
12059    nparams: *const lapackint,
12060    params: *mut f32,
12061    work: *mut Complex32,
12062    rwork: *mut f32,
12063    info: *mut lapackint,
12064);
12065
12066define_lapack_ffi!(dporfsx, DporfsxFnPtr,
12067    uplo: *const c_char,
12068    equed: *const c_char,
12069    n: *const lapackint,
12070    nrhs: *const lapackint,
12071    A: *const f64,
12072    lda: *const lapackint,
12073    AF: *const f64,
12074    ldaf: *const lapackint,
12075    S: *mut f64,
12076    B: *const f64,
12077    ldb: *const lapackint,
12078    X: *mut f64,
12079    ldx: *const lapackint,
12080    rcond: *mut f64,
12081    berr: *mut f64,
12082    n_err_bnds: *const lapackint,
12083    err_bnds_norm: *mut f64,
12084    err_bnds_comp: *mut f64,
12085    nparams: *const lapackint,
12086    params: *mut f64,
12087    work: *mut f64,
12088    iwork: *mut lapackint,
12089    info: *mut lapackint,
12090);
12091
12092define_lapack_ffi!(sporfsx, SporfsxFnPtr,
12093    uplo: *const c_char,
12094    equed: *const c_char,
12095    n: *const lapackint,
12096    nrhs: *const lapackint,
12097    A: *const f32,
12098    lda: *const lapackint,
12099    AF: *const f32,
12100    ldaf: *const lapackint,
12101    S: *mut f32,
12102    B: *const f32,
12103    ldb: *const lapackint,
12104    X: *mut f32,
12105    ldx: *const lapackint,
12106    rcond: *mut f32,
12107    berr: *mut f32,
12108    n_err_bnds: *const lapackint,
12109    err_bnds_norm: *mut f32,
12110    err_bnds_comp: *mut f32,
12111    nparams: *const lapackint,
12112    params: *mut f32,
12113    work: *mut f32,
12114    iwork: *mut lapackint,
12115    info: *mut lapackint,
12116);
12117
12118define_lapack_ffi!(zporfsx, ZporfsxFnPtr,
12119    uplo: *const c_char,
12120    equed: *const c_char,
12121    n: *const lapackint,
12122    nrhs: *const lapackint,
12123    A: *const Complex64,
12124    lda: *const lapackint,
12125    AF: *const Complex64,
12126    ldaf: *const lapackint,
12127    S: *mut f64,
12128    B: *const Complex64,
12129    ldb: *const lapackint,
12130    X: *mut Complex64,
12131    ldx: *const lapackint,
12132    rcond: *mut f64,
12133    berr: *mut f64,
12134    n_err_bnds: *const lapackint,
12135    err_bnds_norm: *mut f64,
12136    err_bnds_comp: *mut f64,
12137    nparams: *const lapackint,
12138    params: *mut f64,
12139    work: *mut Complex64,
12140    rwork: *mut f64,
12141    info: *mut lapackint,
12142);
12143
12144// POSV
12145define_lapack_ffi!(cposv, CposvFnPtr,
12146    uplo: *const c_char,
12147    n: *const lapackint,
12148    nrhs: *const lapackint,
12149    A: *mut Complex32,
12150    lda: *const lapackint,
12151    B: *mut Complex32,
12152    ldb: *const lapackint,
12153    info: *mut lapackint,
12154);
12155
12156define_lapack_ffi!(dposv, DposvFnPtr,
12157    uplo: *const c_char,
12158    n: *const lapackint,
12159    nrhs: *const lapackint,
12160    A: *mut f64,
12161    lda: *const lapackint,
12162    B: *mut f64,
12163    ldb: *const lapackint,
12164    info: *mut lapackint,
12165);
12166
12167define_lapack_ffi!(sposv, SposvFnPtr,
12168    uplo: *const c_char,
12169    n: *const lapackint,
12170    nrhs: *const lapackint,
12171    A: *mut f32,
12172    lda: *const lapackint,
12173    B: *mut f32,
12174    ldb: *const lapackint,
12175    info: *mut lapackint,
12176);
12177
12178define_lapack_ffi!(zposv, ZposvFnPtr,
12179    uplo: *const c_char,
12180    n: *const lapackint,
12181    nrhs: *const lapackint,
12182    A: *mut Complex64,
12183    lda: *const lapackint,
12184    B: *mut Complex64,
12185    ldb: *const lapackint,
12186    info: *mut lapackint,
12187);
12188
12189// POSVX
12190define_lapack_ffi!(cposvx, CposvxFnPtr,
12191    fact: *const c_char,
12192    uplo: *const c_char,
12193    n: *const lapackint,
12194    nrhs: *const lapackint,
12195    A: *mut Complex32,
12196    lda: *const lapackint,
12197    AF: *mut Complex32,
12198    ldaf: *const lapackint,
12199    equed: *mut c_char,
12200    S: *mut f32,
12201    B: *mut Complex32,
12202    ldb: *const lapackint,
12203    X: *mut Complex32,
12204    ldx: *const lapackint,
12205    rcond: *mut f32,
12206    ferr: *mut f32,
12207    berr: *mut f32,
12208    work: *mut Complex32,
12209    rwork: *mut f32,
12210    info: *mut lapackint,
12211);
12212
12213define_lapack_ffi!(dposvx, DposvxFnPtr,
12214    fact: *const c_char,
12215    uplo: *const c_char,
12216    n: *const lapackint,
12217    nrhs: *const lapackint,
12218    A: *mut f64,
12219    lda: *const lapackint,
12220    AF: *mut f64,
12221    ldaf: *const lapackint,
12222    equed: *mut c_char,
12223    S: *mut f64,
12224    B: *mut f64,
12225    ldb: *const lapackint,
12226    X: *mut f64,
12227    ldx: *const lapackint,
12228    rcond: *mut f64,
12229    ferr: *mut f64,
12230    berr: *mut f64,
12231    work: *mut f64,
12232    iwork: *mut lapackint,
12233    info: *mut lapackint,
12234);
12235
12236define_lapack_ffi!(sposvx, SposvxFnPtr,
12237    fact: *const c_char,
12238    uplo: *const c_char,
12239    n: *const lapackint,
12240    nrhs: *const lapackint,
12241    A: *mut f32,
12242    lda: *const lapackint,
12243    AF: *mut f32,
12244    ldaf: *const lapackint,
12245    equed: *mut c_char,
12246    S: *mut f32,
12247    B: *mut f32,
12248    ldb: *const lapackint,
12249    X: *mut f32,
12250    ldx: *const lapackint,
12251    rcond: *mut f32,
12252    ferr: *mut f32,
12253    berr: *mut f32,
12254    work: *mut f32,
12255    iwork: *mut lapackint,
12256    info: *mut lapackint,
12257);
12258
12259define_lapack_ffi!(zposvx, ZposvxFnPtr,
12260    fact: *const c_char,
12261    uplo: *const c_char,
12262    n: *const lapackint,
12263    nrhs: *const lapackint,
12264    A: *mut Complex64,
12265    lda: *const lapackint,
12266    AF: *mut Complex64,
12267    ldaf: *const lapackint,
12268    equed: *mut c_char,
12269    S: *mut f64,
12270    B: *mut Complex64,
12271    ldb: *const lapackint,
12272    X: *mut Complex64,
12273    ldx: *const lapackint,
12274    rcond: *mut f64,
12275    ferr: *mut f64,
12276    berr: *mut f64,
12277    work: *mut Complex64,
12278    rwork: *mut f64,
12279    info: *mut lapackint,
12280);
12281
12282// POSVXX
12283define_lapack_ffi!(cposvxx, CposvxxFnPtr,
12284    fact: *const c_char,
12285    uplo: *const c_char,
12286    n: *const lapackint,
12287    nrhs: *const lapackint,
12288    A: *mut Complex32,
12289    lda: *const lapackint,
12290    AF: *mut Complex32,
12291    ldaf: *const lapackint,
12292    equed: *mut c_char,
12293    S: *mut f32,
12294    B: *mut Complex32,
12295    ldb: *const lapackint,
12296    X: *mut Complex32,
12297    ldx: *const lapackint,
12298    rcond: *mut f32,
12299    rpvgrw: *mut f32,
12300    berr: *mut f32,
12301    n_err_bnds: *const lapackint,
12302    err_bnds_norm: *mut f32,
12303    err_bnds_comp: *mut f32,
12304    nparams: *const lapackint,
12305    params: *mut f32,
12306    work: *mut Complex32,
12307    rwork: *mut f32,
12308    info: *mut lapackint,
12309);
12310
12311define_lapack_ffi!(dposvxx, DposvxxFnPtr,
12312    fact: *const c_char,
12313    uplo: *const c_char,
12314    n: *const lapackint,
12315    nrhs: *const lapackint,
12316    A: *mut f64,
12317    lda: *const lapackint,
12318    AF: *mut f64,
12319    ldaf: *const lapackint,
12320    equed: *mut c_char,
12321    S: *mut f64,
12322    B: *mut f64,
12323    ldb: *const lapackint,
12324    X: *mut f64,
12325    ldx: *const lapackint,
12326    rcond: *mut f64,
12327    rpvgrw: *mut f64,
12328    berr: *mut f64,
12329    n_err_bnds: *const lapackint,
12330    err_bnds_norm: *mut f64,
12331    err_bnds_comp: *mut f64,
12332    nparams: *const lapackint,
12333    params: *mut f64,
12334    work: *mut f64,
12335    iwork: *mut lapackint,
12336    info: *mut lapackint,
12337);
12338
12339define_lapack_ffi!(sposvxx, SposvxxFnPtr,
12340    fact: *const c_char,
12341    uplo: *const c_char,
12342    n: *const lapackint,
12343    nrhs: *const lapackint,
12344    A: *mut f32,
12345    lda: *const lapackint,
12346    AF: *mut f32,
12347    ldaf: *const lapackint,
12348    equed: *mut c_char,
12349    S: *mut f32,
12350    B: *mut f32,
12351    ldb: *const lapackint,
12352    X: *mut f32,
12353    ldx: *const lapackint,
12354    rcond: *mut f32,
12355    rpvgrw: *mut f32,
12356    berr: *mut f32,
12357    n_err_bnds: *const lapackint,
12358    err_bnds_norm: *mut f32,
12359    err_bnds_comp: *mut f32,
12360    nparams: *const lapackint,
12361    params: *mut f32,
12362    work: *mut f32,
12363    iwork: *mut lapackint,
12364    info: *mut lapackint,
12365);
12366
12367define_lapack_ffi!(zposvxx, ZposvxxFnPtr,
12368    fact: *const c_char,
12369    uplo: *const c_char,
12370    n: *const lapackint,
12371    nrhs: *const lapackint,
12372    A: *mut Complex64,
12373    lda: *const lapackint,
12374    AF: *mut Complex64,
12375    ldaf: *const lapackint,
12376    equed: *mut c_char,
12377    S: *mut f64,
12378    B: *mut Complex64,
12379    ldb: *const lapackint,
12380    X: *mut Complex64,
12381    ldx: *const lapackint,
12382    rcond: *mut f64,
12383    rpvgrw: *mut f64,
12384    berr: *mut f64,
12385    n_err_bnds: *const lapackint,
12386    err_bnds_norm: *mut f64,
12387    err_bnds_comp: *mut f64,
12388    nparams: *const lapackint,
12389    params: *mut f64,
12390    work: *mut Complex64,
12391    rwork: *mut f64,
12392    info: *mut lapackint,
12393);
12394
12395// POTF2
12396define_lapack_ffi!(cpotf2, Cpotf2FnPtr,
12397    uplo: *const c_char,
12398    n: *const lapackint,
12399    A: *mut Complex32,
12400    lda: *const lapackint,
12401    info: *mut lapackint,
12402);
12403
12404define_lapack_ffi!(dpotf2, Dpotf2FnPtr,
12405    uplo: *const c_char,
12406    n: *const lapackint,
12407    A: *mut f64,
12408    lda: *const lapackint,
12409    info: *mut lapackint,
12410);
12411
12412define_lapack_ffi!(spotf2, Spotf2FnPtr,
12413    uplo: *const c_char,
12414    n: *const lapackint,
12415    A: *mut f32,
12416    lda: *const lapackint,
12417    info: *mut lapackint,
12418);
12419
12420define_lapack_ffi!(zpotf2, Zpotf2FnPtr,
12421    uplo: *const c_char,
12422    n: *const lapackint,
12423    A: *mut Complex64,
12424    lda: *const lapackint,
12425    info: *mut lapackint,
12426);
12427
12428// POTRF
12429define_lapack_ffi!(cpotrf, CpotrfFnPtr,
12430    uplo: *const c_char,
12431    n: *const lapackint,
12432    A: *mut Complex32,
12433    lda: *const lapackint,
12434    info: *mut lapackint,
12435);
12436
12437define_lapack_ffi!(dpotrf, DpotrfFnPtr,
12438    uplo: *const c_char,
12439    n: *const lapackint,
12440    A: *mut f64,
12441    lda: *const lapackint,
12442    info: *mut lapackint,
12443);
12444
12445define_lapack_ffi!(spotrf, SpotrfFnPtr,
12446    uplo: *const c_char,
12447    n: *const lapackint,
12448    A: *mut f32,
12449    lda: *const lapackint,
12450    info: *mut lapackint,
12451);
12452
12453define_lapack_ffi!(zpotrf, ZpotrfFnPtr,
12454    uplo: *const c_char,
12455    n: *const lapackint,
12456    A: *mut Complex64,
12457    lda: *const lapackint,
12458    info: *mut lapackint,
12459);
12460
12461// POTRF2
12462define_lapack_ffi!(cpotrf2, Cpotrf2FnPtr,
12463    uplo: *const c_char,
12464    n: *const lapackint,
12465    A: *mut Complex32,
12466    lda: *const lapackint,
12467    info: *mut lapackint,
12468);
12469
12470define_lapack_ffi!(dpotrf2, Dpotrf2FnPtr,
12471    uplo: *const c_char,
12472    n: *const lapackint,
12473    A: *mut f64,
12474    lda: *const lapackint,
12475    info: *mut lapackint,
12476);
12477
12478define_lapack_ffi!(spotrf2, Spotrf2FnPtr,
12479    uplo: *const c_char,
12480    n: *const lapackint,
12481    A: *mut f32,
12482    lda: *const lapackint,
12483    info: *mut lapackint,
12484);
12485
12486define_lapack_ffi!(zpotrf2, Zpotrf2FnPtr,
12487    uplo: *const c_char,
12488    n: *const lapackint,
12489    A: *mut Complex64,
12490    lda: *const lapackint,
12491    info: *mut lapackint,
12492);
12493
12494// POTRI
12495define_lapack_ffi!(cpotri, CpotriFnPtr,
12496    uplo: *const c_char,
12497    n: *const lapackint,
12498    A: *mut Complex32,
12499    lda: *const lapackint,
12500    info: *mut lapackint,
12501);
12502
12503define_lapack_ffi!(dpotri, DpotriFnPtr,
12504    uplo: *const c_char,
12505    n: *const lapackint,
12506    A: *mut f64,
12507    lda: *const lapackint,
12508    info: *mut lapackint,
12509);
12510
12511define_lapack_ffi!(spotri, SpotriFnPtr,
12512    uplo: *const c_char,
12513    n: *const lapackint,
12514    A: *mut f32,
12515    lda: *const lapackint,
12516    info: *mut lapackint,
12517);
12518
12519define_lapack_ffi!(zpotri, ZpotriFnPtr,
12520    uplo: *const c_char,
12521    n: *const lapackint,
12522    A: *mut Complex64,
12523    lda: *const lapackint,
12524    info: *mut lapackint,
12525);
12526
12527// POTRS
12528define_lapack_ffi!(cpotrs, CpotrsFnPtr,
12529    uplo: *const c_char,
12530    n: *const lapackint,
12531    nrhs: *const lapackint,
12532    A: *const Complex32,
12533    lda: *const lapackint,
12534    B: *mut Complex32,
12535    ldb: *const lapackint,
12536    info: *mut lapackint,
12537);
12538
12539define_lapack_ffi!(dpotrs, DpotrsFnPtr,
12540    uplo: *const c_char,
12541    n: *const lapackint,
12542    nrhs: *const lapackint,
12543    A: *const f64,
12544    lda: *const lapackint,
12545    B: *mut f64,
12546    ldb: *const lapackint,
12547    info: *mut lapackint,
12548);
12549
12550define_lapack_ffi!(spotrs, SpotrsFnPtr,
12551    uplo: *const c_char,
12552    n: *const lapackint,
12553    nrhs: *const lapackint,
12554    A: *const f32,
12555    lda: *const lapackint,
12556    B: *mut f32,
12557    ldb: *const lapackint,
12558    info: *mut lapackint,
12559);
12560
12561define_lapack_ffi!(zpotrs, ZpotrsFnPtr,
12562    uplo: *const c_char,
12563    n: *const lapackint,
12564    nrhs: *const lapackint,
12565    A: *const Complex64,
12566    lda: *const lapackint,
12567    B: *mut Complex64,
12568    ldb: *const lapackint,
12569    info: *mut lapackint,
12570);
12571
12572// PPCON
12573define_lapack_ffi!(cppcon, CppconFnPtr,
12574    uplo: *const c_char,
12575    n: *const lapackint,
12576    AP: *const Complex32,
12577    anorm: *const f32,
12578    rcond: *mut f32,
12579    work: *mut Complex32,
12580    rwork: *mut f32,
12581    info: *mut lapackint,
12582);
12583
12584define_lapack_ffi!(dppcon, DppconFnPtr,
12585    uplo: *const c_char,
12586    n: *const lapackint,
12587    AP: *const f64,
12588    anorm: *const f64,
12589    rcond: *mut f64,
12590    work: *mut f64,
12591    iwork: *mut lapackint,
12592    info: *mut lapackint,
12593);
12594
12595define_lapack_ffi!(sppcon, SppconFnPtr,
12596    uplo: *const c_char,
12597    n: *const lapackint,
12598    AP: *const f32,
12599    anorm: *const f32,
12600    rcond: *mut f32,
12601    work: *mut f32,
12602    iwork: *mut lapackint,
12603    info: *mut lapackint,
12604);
12605
12606define_lapack_ffi!(zppcon, ZppconFnPtr,
12607    uplo: *const c_char,
12608    n: *const lapackint,
12609    AP: *const Complex64,
12610    anorm: *const f64,
12611    rcond: *mut f64,
12612    work: *mut Complex64,
12613    rwork: *mut f64,
12614    info: *mut lapackint,
12615);
12616
12617// PPEQU
12618define_lapack_ffi!(cppequ, CppequFnPtr,
12619    uplo: *const c_char,
12620    n: *const lapackint,
12621    AP: *const Complex32,
12622    S: *mut f32,
12623    scond: *mut f32,
12624    amax: *mut f32,
12625    info: *mut lapackint,
12626);
12627
12628define_lapack_ffi!(dppequ, DppequFnPtr,
12629    uplo: *const c_char,
12630    n: *const lapackint,
12631    AP: *const f64,
12632    S: *mut f64,
12633    scond: *mut f64,
12634    amax: *mut f64,
12635    info: *mut lapackint,
12636);
12637
12638define_lapack_ffi!(sppequ, SppequFnPtr,
12639    uplo: *const c_char,
12640    n: *const lapackint,
12641    AP: *const f32,
12642    S: *mut f32,
12643    scond: *mut f32,
12644    amax: *mut f32,
12645    info: *mut lapackint,
12646);
12647
12648define_lapack_ffi!(zppequ, ZppequFnPtr,
12649    uplo: *const c_char,
12650    n: *const lapackint,
12651    AP: *const Complex64,
12652    S: *mut f64,
12653    scond: *mut f64,
12654    amax: *mut f64,
12655    info: *mut lapackint,
12656);
12657
12658// PPRFS
12659define_lapack_ffi!(cpprfs, CpprfsFnPtr,
12660    uplo: *const c_char,
12661    n: *const lapackint,
12662    nrhs: *const lapackint,
12663    AP: *const Complex32,
12664    AFP: *const Complex32,
12665    B: *const Complex32,
12666    ldb: *const lapackint,
12667    X: *mut Complex32,
12668    ldx: *const lapackint,
12669    ferr: *mut f32,
12670    berr: *mut f32,
12671    work: *mut Complex32,
12672    rwork: *mut f32,
12673    info: *mut lapackint,
12674);
12675
12676define_lapack_ffi!(dpprfs, DpprfsFnPtr,
12677    uplo: *const c_char,
12678    n: *const lapackint,
12679    nrhs: *const lapackint,
12680    AP: *const f64,
12681    AFP: *const f64,
12682    B: *const f64,
12683    ldb: *const lapackint,
12684    X: *mut f64,
12685    ldx: *const lapackint,
12686    ferr: *mut f64,
12687    berr: *mut f64,
12688    work: *mut f64,
12689    iwork: *mut lapackint,
12690    info: *mut lapackint,
12691);
12692
12693define_lapack_ffi!(spprfs, SpprfsFnPtr,
12694    uplo: *const c_char,
12695    n: *const lapackint,
12696    nrhs: *const lapackint,
12697    AP: *const f32,
12698    AFP: *const f32,
12699    B: *const f32,
12700    ldb: *const lapackint,
12701    X: *mut f32,
12702    ldx: *const lapackint,
12703    ferr: *mut f32,
12704    berr: *mut f32,
12705    work: *mut f32,
12706    iwork: *mut lapackint,
12707    info: *mut lapackint,
12708);
12709
12710define_lapack_ffi!(zpprfs, ZpprfsFnPtr,
12711    uplo: *const c_char,
12712    n: *const lapackint,
12713    nrhs: *const lapackint,
12714    AP: *const Complex64,
12715    AFP: *const Complex64,
12716    B: *const Complex64,
12717    ldb: *const lapackint,
12718    X: *mut Complex64,
12719    ldx: *const lapackint,
12720    ferr: *mut f64,
12721    berr: *mut f64,
12722    work: *mut Complex64,
12723    rwork: *mut f64,
12724    info: *mut lapackint,
12725);
12726
12727// PPSV
12728define_lapack_ffi!(cppsv, CppsvFnPtr,
12729    uplo: *const c_char,
12730    n: *const lapackint,
12731    nrhs: *const lapackint,
12732    AP: *mut Complex32,
12733    B: *mut Complex32,
12734    ldb: *const lapackint,
12735    info: *mut lapackint,
12736);
12737
12738define_lapack_ffi!(dppsv, DppsvFnPtr,
12739    uplo: *const c_char,
12740    n: *const lapackint,
12741    nrhs: *const lapackint,
12742    AP: *mut f64,
12743    B: *mut f64,
12744    ldb: *const lapackint,
12745    info: *mut lapackint,
12746);
12747
12748define_lapack_ffi!(sppsv, SppsvFnPtr,
12749    uplo: *const c_char,
12750    n: *const lapackint,
12751    nrhs: *const lapackint,
12752    AP: *mut f32,
12753    B: *mut f32,
12754    ldb: *const lapackint,
12755    info: *mut lapackint,
12756);
12757
12758define_lapack_ffi!(zppsv, ZppsvFnPtr,
12759    uplo: *const c_char,
12760    n: *const lapackint,
12761    nrhs: *const lapackint,
12762    AP: *mut Complex64,
12763    B: *mut Complex64,
12764    ldb: *const lapackint,
12765    info: *mut lapackint,
12766);
12767
12768// PPSVX
12769define_lapack_ffi!(cppsvx, CppsvxFnPtr,
12770    fact: *const c_char,
12771    uplo: *const c_char,
12772    n: *const lapackint,
12773    nrhs: *const lapackint,
12774    AP: *mut Complex32,
12775    AFP: *mut Complex32,
12776    equed: *mut c_char,
12777    S: *mut f32,
12778    B: *mut Complex32,
12779    ldb: *const lapackint,
12780    X: *mut Complex32,
12781    ldx: *const lapackint,
12782    rcond: *mut f32,
12783    ferr: *mut f32,
12784    berr: *mut f32,
12785    work: *mut Complex32,
12786    rwork: *mut f32,
12787    info: *mut lapackint,
12788);
12789
12790define_lapack_ffi!(dppsvx, DppsvxFnPtr,
12791    fact: *const c_char,
12792    uplo: *const c_char,
12793    n: *const lapackint,
12794    nrhs: *const lapackint,
12795    AP: *mut f64,
12796    AFP: *mut f64,
12797    equed: *mut c_char,
12798    S: *mut f64,
12799    B: *mut f64,
12800    ldb: *const lapackint,
12801    X: *mut f64,
12802    ldx: *const lapackint,
12803    rcond: *mut f64,
12804    ferr: *mut f64,
12805    berr: *mut f64,
12806    work: *mut f64,
12807    iwork: *mut lapackint,
12808    info: *mut lapackint,
12809);
12810
12811define_lapack_ffi!(sppsvx, SppsvxFnPtr,
12812    fact: *const c_char,
12813    uplo: *const c_char,
12814    n: *const lapackint,
12815    nrhs: *const lapackint,
12816    AP: *mut f32,
12817    AFP: *mut f32,
12818    equed: *mut c_char,
12819    S: *mut f32,
12820    B: *mut f32,
12821    ldb: *const lapackint,
12822    X: *mut f32,
12823    ldx: *const lapackint,
12824    rcond: *mut f32,
12825    ferr: *mut f32,
12826    berr: *mut f32,
12827    work: *mut f32,
12828    iwork: *mut lapackint,
12829    info: *mut lapackint,
12830);
12831
12832define_lapack_ffi!(zppsvx, ZppsvxFnPtr,
12833    fact: *const c_char,
12834    uplo: *const c_char,
12835    n: *const lapackint,
12836    nrhs: *const lapackint,
12837    AP: *mut Complex64,
12838    AFP: *mut Complex64,
12839    equed: *mut c_char,
12840    S: *mut f64,
12841    B: *mut Complex64,
12842    ldb: *const lapackint,
12843    X: *mut Complex64,
12844    ldx: *const lapackint,
12845    rcond: *mut f64,
12846    ferr: *mut f64,
12847    berr: *mut f64,
12848    work: *mut Complex64,
12849    rwork: *mut f64,
12850    info: *mut lapackint,
12851);
12852
12853// PPTRF
12854define_lapack_ffi!(cpptrf, CpptrfFnPtr,
12855    uplo: *const c_char,
12856    n: *const lapackint,
12857    AP: *mut Complex32,
12858    info: *mut lapackint,
12859);
12860
12861define_lapack_ffi!(dpptrf, DpptrfFnPtr,
12862    uplo: *const c_char,
12863    n: *const lapackint,
12864    AP: *mut f64,
12865    info: *mut lapackint,
12866);
12867
12868define_lapack_ffi!(spptrf, SpptrfFnPtr,
12869    uplo: *const c_char,
12870    n: *const lapackint,
12871    AP: *mut f32,
12872    info: *mut lapackint,
12873);
12874
12875define_lapack_ffi!(zpptrf, ZpptrfFnPtr,
12876    uplo: *const c_char,
12877    n: *const lapackint,
12878    AP: *mut Complex64,
12879    info: *mut lapackint,
12880);
12881
12882// PPTRI
12883define_lapack_ffi!(cpptri, CpptriFnPtr,
12884    uplo: *const c_char,
12885    n: *const lapackint,
12886    AP: *mut Complex32,
12887    info: *mut lapackint,
12888);
12889
12890define_lapack_ffi!(dpptri, DpptriFnPtr,
12891    uplo: *const c_char,
12892    n: *const lapackint,
12893    AP: *mut f64,
12894    info: *mut lapackint,
12895);
12896
12897define_lapack_ffi!(spptri, SpptriFnPtr,
12898    uplo: *const c_char,
12899    n: *const lapackint,
12900    AP: *mut f32,
12901    info: *mut lapackint,
12902);
12903
12904define_lapack_ffi!(zpptri, ZpptriFnPtr,
12905    uplo: *const c_char,
12906    n: *const lapackint,
12907    AP: *mut Complex64,
12908    info: *mut lapackint,
12909);
12910
12911// PPTRS
12912define_lapack_ffi!(cpptrs, CpptrsFnPtr,
12913    uplo: *const c_char,
12914    n: *const lapackint,
12915    nrhs: *const lapackint,
12916    AP: *const Complex32,
12917    B: *mut Complex32,
12918    ldb: *const lapackint,
12919    info: *mut lapackint,
12920);
12921
12922define_lapack_ffi!(dpptrs, DpptrsFnPtr,
12923    uplo: *const c_char,
12924    n: *const lapackint,
12925    nrhs: *const lapackint,
12926    AP: *const f64,
12927    B: *mut f64,
12928    ldb: *const lapackint,
12929    info: *mut lapackint,
12930);
12931
12932define_lapack_ffi!(spptrs, SpptrsFnPtr,
12933    uplo: *const c_char,
12934    n: *const lapackint,
12935    nrhs: *const lapackint,
12936    AP: *const f32,
12937    B: *mut f32,
12938    ldb: *const lapackint,
12939    info: *mut lapackint,
12940);
12941
12942define_lapack_ffi!(zpptrs, ZpptrsFnPtr,
12943    uplo: *const c_char,
12944    n: *const lapackint,
12945    nrhs: *const lapackint,
12946    AP: *const Complex64,
12947    B: *mut Complex64,
12948    ldb: *const lapackint,
12949    info: *mut lapackint,
12950);
12951
12952// PSTRF
12953define_lapack_ffi!(cpstrf, CpstrfFnPtr,
12954    uplo: *const c_char,
12955    n: *const lapackint,
12956    A: *mut Complex32,
12957    lda: *const lapackint,
12958    piv: *mut lapackint,
12959    rank: *mut lapackint,
12960    tol: *const f32,
12961    work: *mut f32,
12962    info: *mut lapackint,
12963);
12964
12965define_lapack_ffi!(dpstrf, DpstrfFnPtr,
12966    uplo: *const c_char,
12967    n: *const lapackint,
12968    A: *mut f64,
12969    lda: *const lapackint,
12970    piv: *mut lapackint,
12971    rank: *mut lapackint,
12972    tol: *const f64,
12973    work: *mut f64,
12974    info: *mut lapackint,
12975);
12976
12977define_lapack_ffi!(spstrf, SpstrfFnPtr,
12978    uplo: *const c_char,
12979    n: *const lapackint,
12980    A: *mut f32,
12981    lda: *const lapackint,
12982    piv: *mut lapackint,
12983    rank: *mut lapackint,
12984    tol: *const f32,
12985    work: *mut f32,
12986    info: *mut lapackint,
12987);
12988
12989define_lapack_ffi!(zpstrf, ZpstrfFnPtr,
12990    uplo: *const c_char,
12991    n: *const lapackint,
12992    A: *mut Complex64,
12993    lda: *const lapackint,
12994    piv: *mut lapackint,
12995    rank: *mut lapackint,
12996    tol: *const f64,
12997    work: *mut f64,
12998    info: *mut lapackint,
12999);
13000
13001// PTCON
13002define_lapack_ffi!(cptcon, CptconFnPtr,
13003    n: *const lapackint,
13004    D: *const f32,
13005    E: *const Complex32,
13006    anorm: *const f32,
13007    rcond: *mut f32,
13008    rwork: *mut f32,
13009    info: *mut lapackint,
13010);
13011
13012define_lapack_ffi!(dptcon, DptconFnPtr,
13013    n: *const lapackint,
13014    D: *const f64,
13015    E: *const f64,
13016    anorm: *const f64,
13017    rcond: *mut f64,
13018    work: *mut f64,
13019    info: *mut lapackint,
13020);
13021
13022define_lapack_ffi!(sptcon, SptconFnPtr,
13023    n: *const lapackint,
13024    D: *const f32,
13025    E: *const f32,
13026    anorm: *const f32,
13027    rcond: *mut f32,
13028    work: *mut f32,
13029    info: *mut lapackint,
13030);
13031
13032define_lapack_ffi!(zptcon, ZptconFnPtr,
13033    n: *const lapackint,
13034    D: *const f64,
13035    E: *const Complex64,
13036    anorm: *const f64,
13037    rcond: *mut f64,
13038    rwork: *mut f64,
13039    info: *mut lapackint,
13040);
13041
13042// PTEQR
13043define_lapack_ffi!(cpteqr, CpteqrFnPtr,
13044    compz: *const c_char,
13045    n: *const lapackint,
13046    D: *mut f32,
13047    E: *mut f32,
13048    Z: *mut Complex32,
13049    ldz: *const lapackint,
13050    work: *mut f32,
13051    info: *mut lapackint,
13052);
13053
13054define_lapack_ffi!(dpteqr, DpteqrFnPtr,
13055    compz: *const c_char,
13056    n: *const lapackint,
13057    D: *mut f64,
13058    E: *mut f64,
13059    Z: *mut f64,
13060    ldz: *const lapackint,
13061    work: *mut f64,
13062    info: *mut lapackint,
13063);
13064
13065define_lapack_ffi!(spteqr, SpteqrFnPtr,
13066    compz: *const c_char,
13067    n: *const lapackint,
13068    D: *mut f32,
13069    E: *mut f32,
13070    Z: *mut f32,
13071    ldz: *const lapackint,
13072    work: *mut f32,
13073    info: *mut lapackint,
13074);
13075
13076define_lapack_ffi!(zpteqr, ZpteqrFnPtr,
13077    compz: *const c_char,
13078    n: *const lapackint,
13079    D: *mut f64,
13080    E: *mut f64,
13081    Z: *mut Complex64,
13082    ldz: *const lapackint,
13083    work: *mut f64,
13084    info: *mut lapackint,
13085);
13086
13087// PTRFS
13088define_lapack_ffi!(cptrfs, CptrfsFnPtr,
13089    uplo: *const c_char,
13090    n: *const lapackint,
13091    nrhs: *const lapackint,
13092    D: *const f32,
13093    E: *const Complex32,
13094    DF: *const f32,
13095    EF: *const Complex32,
13096    B: *const Complex32,
13097    ldb: *const lapackint,
13098    X: *mut Complex32,
13099    ldx: *const lapackint,
13100    ferr: *mut f32,
13101    berr: *mut f32,
13102    work: *mut Complex32,
13103    rwork: *mut f32,
13104    info: *mut lapackint,
13105);
13106
13107define_lapack_ffi!(dptrfs, DptrfsFnPtr,
13108    n: *const lapackint,
13109    nrhs: *const lapackint,
13110    D: *const f64,
13111    E: *const f64,
13112    DF: *const f64,
13113    EF: *const f64,
13114    B: *const f64,
13115    ldb: *const lapackint,
13116    X: *mut f64,
13117    ldx: *const lapackint,
13118    ferr: *mut f64,
13119    berr: *mut f64,
13120    work: *mut f64,
13121    info: *mut lapackint,
13122);
13123
13124define_lapack_ffi!(sptrfs, SptrfsFnPtr,
13125    n: *const lapackint,
13126    nrhs: *const lapackint,
13127    D: *const f32,
13128    E: *const f32,
13129    DF: *const f32,
13130    EF: *const f32,
13131    B: *const f32,
13132    ldb: *const lapackint,
13133    X: *mut f32,
13134    ldx: *const lapackint,
13135    ferr: *mut f32,
13136    berr: *mut f32,
13137    work: *mut f32,
13138    info: *mut lapackint,
13139);
13140
13141define_lapack_ffi!(zptrfs, ZptrfsFnPtr,
13142    uplo: *const c_char,
13143    n: *const lapackint,
13144    nrhs: *const lapackint,
13145    D: *const f64,
13146    E: *const Complex64,
13147    DF: *const f64,
13148    EF: *const Complex64,
13149    B: *const Complex64,
13150    ldb: *const lapackint,
13151    X: *mut Complex64,
13152    ldx: *const lapackint,
13153    ferr: *mut f64,
13154    berr: *mut f64,
13155    work: *mut Complex64,
13156    rwork: *mut f64,
13157    info: *mut lapackint,
13158);
13159
13160// PTSV
13161define_lapack_ffi!(cptsv, CptsvFnPtr,
13162    n: *const lapackint,
13163    nrhs: *const lapackint,
13164    D: *mut f32,
13165    E: *mut Complex32,
13166    B: *mut Complex32,
13167    ldb: *const lapackint,
13168    info: *mut lapackint,
13169);
13170
13171define_lapack_ffi!(dptsv, DptsvFnPtr,
13172    n: *const lapackint,
13173    nrhs: *const lapackint,
13174    D: *mut f64,
13175    E: *mut f64,
13176    B: *mut f64,
13177    ldb: *const lapackint,
13178    info: *mut lapackint,
13179);
13180
13181define_lapack_ffi!(sptsv, SptsvFnPtr,
13182    n: *const lapackint,
13183    nrhs: *const lapackint,
13184    D: *mut f32,
13185    E: *mut f32,
13186    B: *mut f32,
13187    ldb: *const lapackint,
13188    info: *mut lapackint,
13189);
13190
13191define_lapack_ffi!(zptsv, ZptsvFnPtr,
13192    n: *const lapackint,
13193    nrhs: *const lapackint,
13194    D: *mut f64,
13195    E: *mut Complex64,
13196    B: *mut Complex64,
13197    ldb: *const lapackint,
13198    info: *mut lapackint,
13199);
13200
13201// PTSVX
13202define_lapack_ffi!(cptsvx, CptsvxFnPtr,
13203    fact: *const c_char,
13204    n: *const lapackint,
13205    nrhs: *const lapackint,
13206    D: *const f32,
13207    E: *const Complex32,
13208    DF: *mut f32,
13209    EF: *mut Complex32,
13210    B: *const Complex32,
13211    ldb: *const lapackint,
13212    X: *mut Complex32,
13213    ldx: *const lapackint,
13214    rcond: *mut f32,
13215    ferr: *mut f32,
13216    berr: *mut f32,
13217    work: *mut Complex32,
13218    rwork: *mut f32,
13219    info: *mut lapackint,
13220);
13221
13222define_lapack_ffi!(dptsvx, DptsvxFnPtr,
13223    fact: *const c_char,
13224    n: *const lapackint,
13225    nrhs: *const lapackint,
13226    D: *const f64,
13227    E: *const f64,
13228    DF: *mut f64,
13229    EF: *mut f64,
13230    B: *const f64,
13231    ldb: *const lapackint,
13232    X: *mut f64,
13233    ldx: *const lapackint,
13234    rcond: *mut f64,
13235    ferr: *mut f64,
13236    berr: *mut f64,
13237    work: *mut f64,
13238    info: *mut lapackint,
13239);
13240
13241define_lapack_ffi!(sptsvx, SptsvxFnPtr,
13242    fact: *const c_char,
13243    n: *const lapackint,
13244    nrhs: *const lapackint,
13245    D: *const f32,
13246    E: *const f32,
13247    DF: *mut f32,
13248    EF: *mut f32,
13249    B: *const f32,
13250    ldb: *const lapackint,
13251    X: *mut f32,
13252    ldx: *const lapackint,
13253    rcond: *mut f32,
13254    ferr: *mut f32,
13255    berr: *mut f32,
13256    work: *mut f32,
13257    info: *mut lapackint,
13258);
13259
13260define_lapack_ffi!(zptsvx, ZptsvxFnPtr,
13261    fact: *const c_char,
13262    n: *const lapackint,
13263    nrhs: *const lapackint,
13264    D: *const f64,
13265    E: *const Complex64,
13266    DF: *mut f64,
13267    EF: *mut Complex64,
13268    B: *const Complex64,
13269    ldb: *const lapackint,
13270    X: *mut Complex64,
13271    ldx: *const lapackint,
13272    rcond: *mut f64,
13273    ferr: *mut f64,
13274    berr: *mut f64,
13275    work: *mut Complex64,
13276    rwork: *mut f64,
13277    info: *mut lapackint,
13278);
13279
13280// PTTRF
13281define_lapack_ffi!(cpttrf, CpttrfFnPtr,
13282    n: *const lapackint,
13283    D: *mut f32,
13284    E: *mut Complex32,
13285    info: *mut lapackint,
13286);
13287
13288define_lapack_ffi!(dpttrf, DpttrfFnPtr,
13289    n: *const lapackint,
13290    D: *mut f64,
13291    E: *mut f64,
13292    info: *mut lapackint,
13293);
13294
13295define_lapack_ffi!(spttrf, SpttrfFnPtr,
13296    n: *const lapackint,
13297    D: *mut f32,
13298    E: *mut f32,
13299    info: *mut lapackint,
13300);
13301
13302define_lapack_ffi!(zpttrf, ZpttrfFnPtr,
13303    n: *const lapackint,
13304    D: *mut f64,
13305    E: *mut Complex64,
13306    info: *mut lapackint,
13307);
13308
13309// PTTRS
13310define_lapack_ffi!(cpttrs, CpttrsFnPtr,
13311    uplo: *const c_char,
13312    n: *const lapackint,
13313    nrhs: *const lapackint,
13314    D: *const f32,
13315    E: *const Complex32,
13316    B: *mut Complex32,
13317    ldb: *const lapackint,
13318    info: *mut lapackint,
13319);
13320
13321define_lapack_ffi!(dpttrs, DpttrsFnPtr,
13322    n: *const lapackint,
13323    nrhs: *const lapackint,
13324    D: *const f64,
13325    E: *const f64,
13326    B: *mut f64,
13327    ldb: *const lapackint,
13328    info: *mut lapackint,
13329);
13330
13331define_lapack_ffi!(spttrs, SpttrsFnPtr,
13332    n: *const lapackint,
13333    nrhs: *const lapackint,
13334    D: *const f32,
13335    E: *const f32,
13336    B: *mut f32,
13337    ldb: *const lapackint,
13338    info: *mut lapackint,
13339);
13340
13341define_lapack_ffi!(zpttrs, ZpttrsFnPtr,
13342    uplo: *const c_char,
13343    n: *const lapackint,
13344    nrhs: *const lapackint,
13345    D: *const f64,
13346    E: *const Complex64,
13347    B: *mut Complex64,
13348    ldb: *const lapackint,
13349    info: *mut lapackint,
13350);
13351
13352// SBEV
13353define_lapack_ffi!(dsbev, DsbevFnPtr,
13354    jobz: *const c_char,
13355    uplo: *const c_char,
13356    n: *const lapackint,
13357    kd: *const lapackint,
13358    AB: *mut f64,
13359    ldab: *const lapackint,
13360    W: *mut f64,
13361    Z: *mut f64,
13362    ldz: *const lapackint,
13363    work: *mut f64,
13364    info: *mut lapackint,
13365);
13366
13367define_lapack_ffi!(ssbev, SsbevFnPtr,
13368    jobz: *const c_char,
13369    uplo: *const c_char,
13370    n: *const lapackint,
13371    kd: *const lapackint,
13372    AB: *mut f32,
13373    ldab: *const lapackint,
13374    W: *mut f32,
13375    Z: *mut f32,
13376    ldz: *const lapackint,
13377    work: *mut f32,
13378    info: *mut lapackint,
13379);
13380
13381// SBEV_2STAGE
13382define_lapack_ffi!(dsbev_2stage, Dsbev_2stageFnPtr,
13383    jobz: *const c_char,
13384    uplo: *const c_char,
13385    n: *const lapackint,
13386    kd: *const lapackint,
13387    AB: *mut f64,
13388    ldab: *const lapackint,
13389    W: *mut f64,
13390    Z: *mut f64,
13391    ldz: *const lapackint,
13392    work: *mut f64,
13393    lwork: *const lapackint,
13394    info: *mut lapackint,
13395);
13396
13397define_lapack_ffi!(ssbev_2stage, Ssbev_2stageFnPtr,
13398    jobz: *const c_char,
13399    uplo: *const c_char,
13400    n: *const lapackint,
13401    kd: *const lapackint,
13402    AB: *mut f32,
13403    ldab: *const lapackint,
13404    W: *mut f32,
13405    Z: *mut f32,
13406    ldz: *const lapackint,
13407    work: *mut f32,
13408    lwork: *const lapackint,
13409    info: *mut lapackint,
13410);
13411
13412// SBEVD
13413define_lapack_ffi!(dsbevd, DsbevdFnPtr,
13414    jobz: *const c_char,
13415    uplo: *const c_char,
13416    n: *const lapackint,
13417    kd: *const lapackint,
13418    AB: *mut f64,
13419    ldab: *const lapackint,
13420    W: *mut f64,
13421    Z: *mut f64,
13422    ldz: *const lapackint,
13423    work: *mut f64,
13424    lwork: *const lapackint,
13425    iwork: *mut lapackint,
13426    liwork: *const lapackint,
13427    info: *mut lapackint,
13428);
13429
13430define_lapack_ffi!(ssbevd, SsbevdFnPtr,
13431    jobz: *const c_char,
13432    uplo: *const c_char,
13433    n: *const lapackint,
13434    kd: *const lapackint,
13435    AB: *mut f32,
13436    ldab: *const lapackint,
13437    W: *mut f32,
13438    Z: *mut f32,
13439    ldz: *const lapackint,
13440    work: *mut f32,
13441    lwork: *const lapackint,
13442    iwork: *mut lapackint,
13443    liwork: *const lapackint,
13444    info: *mut lapackint,
13445);
13446
13447// SBEVD_2STAGE
13448define_lapack_ffi!(dsbevd_2stage, Dsbevd_2stageFnPtr,
13449    jobz: *const c_char,
13450    uplo: *const c_char,
13451    n: *const lapackint,
13452    kd: *const lapackint,
13453    AB: *mut f64,
13454    ldab: *const lapackint,
13455    W: *mut f64,
13456    Z: *mut f64,
13457    ldz: *const lapackint,
13458    work: *mut f64,
13459    lwork: *const lapackint,
13460    iwork: *mut lapackint,
13461    liwork: *const lapackint,
13462    info: *mut lapackint,
13463);
13464
13465define_lapack_ffi!(ssbevd_2stage, Ssbevd_2stageFnPtr,
13466    jobz: *const c_char,
13467    uplo: *const c_char,
13468    n: *const lapackint,
13469    kd: *const lapackint,
13470    AB: *mut f32,
13471    ldab: *const lapackint,
13472    W: *mut f32,
13473    Z: *mut f32,
13474    ldz: *const lapackint,
13475    work: *mut f32,
13476    lwork: *const lapackint,
13477    iwork: *mut lapackint,
13478    liwork: *const lapackint,
13479    info: *mut lapackint,
13480);
13481
13482// SBEVX
13483define_lapack_ffi!(dsbevx, DsbevxFnPtr,
13484    jobz: *const c_char,
13485    range: *const c_char,
13486    uplo: *const c_char,
13487    n: *const lapackint,
13488    kd: *const lapackint,
13489    AB: *mut f64,
13490    ldab: *const lapackint,
13491    Q: *mut f64,
13492    ldq: *const lapackint,
13493    vl: *const f64,
13494    vu: *const f64,
13495    il: *const lapackint,
13496    iu: *const lapackint,
13497    abstol: *const f64,
13498    m: *mut lapackint,
13499    W: *mut f64,
13500    Z: *mut f64,
13501    ldz: *const lapackint,
13502    work: *mut f64,
13503    iwork: *mut lapackint,
13504    IFAIL: *mut lapackint,
13505    info: *mut lapackint,
13506);
13507
13508define_lapack_ffi!(ssbevx, SsbevxFnPtr,
13509    jobz: *const c_char,
13510    range: *const c_char,
13511    uplo: *const c_char,
13512    n: *const lapackint,
13513    kd: *const lapackint,
13514    AB: *mut f32,
13515    ldab: *const lapackint,
13516    Q: *mut f32,
13517    ldq: *const lapackint,
13518    vl: *const f32,
13519    vu: *const f32,
13520    il: *const lapackint,
13521    iu: *const lapackint,
13522    abstol: *const f32,
13523    m: *mut lapackint,
13524    W: *mut f32,
13525    Z: *mut f32,
13526    ldz: *const lapackint,
13527    work: *mut f32,
13528    iwork: *mut lapackint,
13529    IFAIL: *mut lapackint,
13530    info: *mut lapackint,
13531);
13532
13533// SBEVX_2STAGE
13534define_lapack_ffi!(dsbevx_2stage, Dsbevx_2stageFnPtr,
13535    jobz: *const c_char,
13536    range: *const c_char,
13537    uplo: *const c_char,
13538    n: *const lapackint,
13539    kd: *const lapackint,
13540    AB: *mut f64,
13541    ldab: *const lapackint,
13542    Q: *mut f64,
13543    ldq: *const lapackint,
13544    vl: *const f64,
13545    vu: *const f64,
13546    il: *const lapackint,
13547    iu: *const lapackint,
13548    abstol: *const f64,
13549    m: *mut lapackint,
13550    W: *mut f64,
13551    Z: *mut f64,
13552    ldz: *const lapackint,
13553    work: *mut f64,
13554    lwork: *const lapackint,
13555    iwork: *mut lapackint,
13556    IFAIL: *mut lapackint,
13557    info: *mut lapackint,
13558);
13559
13560define_lapack_ffi!(ssbevx_2stage, Ssbevx_2stageFnPtr,
13561    jobz: *const c_char,
13562    range: *const c_char,
13563    uplo: *const c_char,
13564    n: *const lapackint,
13565    kd: *const lapackint,
13566    AB: *mut f32,
13567    ldab: *const lapackint,
13568    Q: *mut f32,
13569    ldq: *const lapackint,
13570    vl: *const f32,
13571    vu: *const f32,
13572    il: *const lapackint,
13573    iu: *const lapackint,
13574    abstol: *const f32,
13575    m: *mut lapackint,
13576    W: *mut f32,
13577    Z: *mut f32,
13578    ldz: *const lapackint,
13579    work: *mut f32,
13580    lwork: *const lapackint,
13581    iwork: *mut lapackint,
13582    IFAIL: *mut lapackint,
13583    info: *mut lapackint,
13584);
13585
13586// SBGST
13587define_lapack_ffi!(dsbgst, DsbgstFnPtr,
13588    vect: *const c_char,
13589    uplo: *const c_char,
13590    n: *const lapackint,
13591    ka: *const lapackint,
13592    kb: *const lapackint,
13593    AB: *mut f64,
13594    ldab: *const lapackint,
13595    BB: *const f64,
13596    ldbb: *const lapackint,
13597    X: *mut f64,
13598    ldx: *const lapackint,
13599    work: *mut f64,
13600    info: *mut lapackint,
13601);
13602
13603define_lapack_ffi!(ssbgst, SsbgstFnPtr,
13604    vect: *const c_char,
13605    uplo: *const c_char,
13606    n: *const lapackint,
13607    ka: *const lapackint,
13608    kb: *const lapackint,
13609    AB: *mut f32,
13610    ldab: *const lapackint,
13611    BB: *const f32,
13612    ldbb: *const lapackint,
13613    X: *mut f32,
13614    ldx: *const lapackint,
13615    work: *mut f32,
13616    info: *mut lapackint,
13617);
13618
13619// SBGV
13620define_lapack_ffi!(dsbgv, DsbgvFnPtr,
13621    jobz: *const c_char,
13622    uplo: *const c_char,
13623    n: *const lapackint,
13624    ka: *const lapackint,
13625    kb: *const lapackint,
13626    AB: *mut f64,
13627    ldab: *const lapackint,
13628    BB: *mut f64,
13629    ldbb: *const lapackint,
13630    W: *mut f64,
13631    Z: *mut f64,
13632    ldz: *const lapackint,
13633    work: *mut f64,
13634    info: *mut lapackint,
13635);
13636
13637define_lapack_ffi!(ssbgv, SsbgvFnPtr,
13638    jobz: *const c_char,
13639    uplo: *const c_char,
13640    n: *const lapackint,
13641    ka: *const lapackint,
13642    kb: *const lapackint,
13643    AB: *mut f32,
13644    ldab: *const lapackint,
13645    BB: *mut f32,
13646    ldbb: *const lapackint,
13647    W: *mut f32,
13648    Z: *mut f32,
13649    ldz: *const lapackint,
13650    work: *mut f32,
13651    info: *mut lapackint,
13652);
13653
13654// SBGVD
13655define_lapack_ffi!(dsbgvd, DsbgvdFnPtr,
13656    jobz: *const c_char,
13657    uplo: *const c_char,
13658    n: *const lapackint,
13659    ka: *const lapackint,
13660    kb: *const lapackint,
13661    AB: *mut f64,
13662    ldab: *const lapackint,
13663    BB: *mut f64,
13664    ldbb: *const lapackint,
13665    W: *mut f64,
13666    Z: *mut f64,
13667    ldz: *const lapackint,
13668    work: *mut f64,
13669    lwork: *const lapackint,
13670    iwork: *mut lapackint,
13671    liwork: *const lapackint,
13672    info: *mut lapackint,
13673);
13674
13675define_lapack_ffi!(ssbgvd, SsbgvdFnPtr,
13676    jobz: *const c_char,
13677    uplo: *const c_char,
13678    n: *const lapackint,
13679    ka: *const lapackint,
13680    kb: *const lapackint,
13681    AB: *mut f32,
13682    ldab: *const lapackint,
13683    BB: *mut f32,
13684    ldbb: *const lapackint,
13685    W: *mut f32,
13686    Z: *mut f32,
13687    ldz: *const lapackint,
13688    work: *mut f32,
13689    lwork: *const lapackint,
13690    iwork: *mut lapackint,
13691    liwork: *const lapackint,
13692    info: *mut lapackint,
13693);
13694
13695// SBGVX
13696define_lapack_ffi!(dsbgvx, DsbgvxFnPtr,
13697    jobz: *const c_char,
13698    range: *const c_char,
13699    uplo: *const c_char,
13700    n: *const lapackint,
13701    ka: *const lapackint,
13702    kb: *const lapackint,
13703    AB: *mut f64,
13704    ldab: *const lapackint,
13705    BB: *mut f64,
13706    ldbb: *const lapackint,
13707    Q: *mut f64,
13708    ldq: *const lapackint,
13709    vl: *const f64,
13710    vu: *const f64,
13711    il: *const lapackint,
13712    iu: *const lapackint,
13713    abstol: *const f64,
13714    m: *mut lapackint,
13715    W: *mut f64,
13716    Z: *mut f64,
13717    ldz: *const lapackint,
13718    work: *mut f64,
13719    iwork: *mut lapackint,
13720    IFAIL: *mut lapackint,
13721    info: *mut lapackint,
13722);
13723
13724define_lapack_ffi!(ssbgvx, SsbgvxFnPtr,
13725    jobz: *const c_char,
13726    range: *const c_char,
13727    uplo: *const c_char,
13728    n: *const lapackint,
13729    ka: *const lapackint,
13730    kb: *const lapackint,
13731    AB: *mut f32,
13732    ldab: *const lapackint,
13733    BB: *mut f32,
13734    ldbb: *const lapackint,
13735    Q: *mut f32,
13736    ldq: *const lapackint,
13737    vl: *const f32,
13738    vu: *const f32,
13739    il: *const lapackint,
13740    iu: *const lapackint,
13741    abstol: *const f32,
13742    m: *mut lapackint,
13743    W: *mut f32,
13744    Z: *mut f32,
13745    ldz: *const lapackint,
13746    work: *mut f32,
13747    iwork: *mut lapackint,
13748    IFAIL: *mut lapackint,
13749    info: *mut lapackint,
13750);
13751
13752// SBTRD
13753define_lapack_ffi!(dsbtrd, DsbtrdFnPtr,
13754    vect: *const c_char,
13755    uplo: *const c_char,
13756    n: *const lapackint,
13757    kd: *const lapackint,
13758    AB: *mut f64,
13759    ldab: *const lapackint,
13760    D: *mut f64,
13761    E: *mut f64,
13762    Q: *mut f64,
13763    ldq: *const lapackint,
13764    work: *mut f64,
13765    info: *mut lapackint,
13766);
13767
13768define_lapack_ffi!(ssbtrd, SsbtrdFnPtr,
13769    vect: *const c_char,
13770    uplo: *const c_char,
13771    n: *const lapackint,
13772    kd: *const lapackint,
13773    AB: *mut f32,
13774    ldab: *const lapackint,
13775    D: *mut f32,
13776    E: *mut f32,
13777    Q: *mut f32,
13778    ldq: *const lapackint,
13779    work: *mut f32,
13780    info: *mut lapackint,
13781);
13782
13783// SFRK
13784define_lapack_ffi!(dsfrk, DsfrkFnPtr,
13785    transr: *const c_char,
13786    uplo: *const c_char,
13787    trans: *const c_char,
13788    n: *const lapackint,
13789    k: *const lapackint,
13790    alpha: *const f64,
13791    A: *const f64,
13792    lda: *const lapackint,
13793    beta: *const f64,
13794    C: *mut f64,
13795);
13796
13797define_lapack_ffi!(ssfrk, SsfrkFnPtr,
13798    transr: *const c_char,
13799    uplo: *const c_char,
13800    trans: *const c_char,
13801    n: *const lapackint,
13802    k: *const lapackint,
13803    alpha: *const f32,
13804    A: *const f32,
13805    lda: *const lapackint,
13806    beta: *const f32,
13807    C: *mut f32,
13808);
13809
13810// SGESV
13811define_lapack_ffi!(dsgesv, DsgesvFnPtr,
13812    n: *const lapackint,
13813    nrhs: *const lapackint,
13814    A: *mut f64,
13815    lda: *const lapackint,
13816    ipiv: *mut lapackint,
13817    B: *const f64,
13818    ldb: *const lapackint,
13819    X: *mut f64,
13820    ldx: *const lapackint,
13821    work: *mut f64,
13822    swork: *mut f32,
13823    iter: *mut lapackint,
13824    info: *mut lapackint,
13825);
13826
13827// SPCON
13828define_lapack_ffi!(cspcon, CspconFnPtr,
13829    uplo: *const c_char,
13830    n: *const lapackint,
13831    AP: *const Complex32,
13832    ipiv: *const lapackint,
13833    anorm: *const f32,
13834    rcond: *mut f32,
13835    work: *mut Complex32,
13836    info: *mut lapackint,
13837);
13838
13839define_lapack_ffi!(dspcon, DspconFnPtr,
13840    uplo: *const c_char,
13841    n: *const lapackint,
13842    AP: *const f64,
13843    ipiv: *const lapackint,
13844    anorm: *const f64,
13845    rcond: *mut f64,
13846    work: *mut f64,
13847    iwork: *mut lapackint,
13848    info: *mut lapackint,
13849);
13850
13851define_lapack_ffi!(sspcon, SspconFnPtr,
13852    uplo: *const c_char,
13853    n: *const lapackint,
13854    AP: *const f32,
13855    ipiv: *const lapackint,
13856    anorm: *const f32,
13857    rcond: *mut f32,
13858    work: *mut f32,
13859    iwork: *mut lapackint,
13860    info: *mut lapackint,
13861);
13862
13863define_lapack_ffi!(zspcon, ZspconFnPtr,
13864    uplo: *const c_char,
13865    n: *const lapackint,
13866    AP: *const Complex64,
13867    ipiv: *const lapackint,
13868    anorm: *const f64,
13869    rcond: *mut f64,
13870    work: *mut Complex64,
13871    info: *mut lapackint,
13872);
13873
13874// SPEV
13875define_lapack_ffi!(dspev, DspevFnPtr,
13876    jobz: *const c_char,
13877    uplo: *const c_char,
13878    n: *const lapackint,
13879    AP: *mut f64,
13880    W: *mut f64,
13881    Z: *mut f64,
13882    ldz: *const lapackint,
13883    work: *mut f64,
13884    info: *mut lapackint,
13885);
13886
13887define_lapack_ffi!(sspev, SspevFnPtr,
13888    jobz: *const c_char,
13889    uplo: *const c_char,
13890    n: *const lapackint,
13891    AP: *mut f32,
13892    W: *mut f32,
13893    Z: *mut f32,
13894    ldz: *const lapackint,
13895    work: *mut f32,
13896    info: *mut lapackint,
13897);
13898
13899// SPEVD
13900define_lapack_ffi!(dspevd, DspevdFnPtr,
13901    jobz: *const c_char,
13902    uplo: *const c_char,
13903    n: *const lapackint,
13904    AP: *mut f64,
13905    W: *mut f64,
13906    Z: *mut f64,
13907    ldz: *const lapackint,
13908    work: *mut f64,
13909    lwork: *const lapackint,
13910    iwork: *mut lapackint,
13911    liwork: *const lapackint,
13912    info: *mut lapackint,
13913);
13914
13915define_lapack_ffi!(sspevd, SspevdFnPtr,
13916    jobz: *const c_char,
13917    uplo: *const c_char,
13918    n: *const lapackint,
13919    AP: *mut f32,
13920    W: *mut f32,
13921    Z: *mut f32,
13922    ldz: *const lapackint,
13923    work: *mut f32,
13924    lwork: *const lapackint,
13925    iwork: *mut lapackint,
13926    liwork: *const lapackint,
13927    info: *mut lapackint,
13928);
13929
13930// SPEVX
13931define_lapack_ffi!(dspevx, DspevxFnPtr,
13932    jobz: *const c_char,
13933    range: *const c_char,
13934    uplo: *const c_char,
13935    n: *const lapackint,
13936    AP: *mut f64,
13937    vl: *const f64,
13938    vu: *const f64,
13939    il: *const lapackint,
13940    iu: *const lapackint,
13941    abstol: *const f64,
13942    m: *mut lapackint,
13943    W: *mut f64,
13944    Z: *mut f64,
13945    ldz: *const lapackint,
13946    work: *mut f64,
13947    iwork: *mut lapackint,
13948    IFAIL: *mut lapackint,
13949    info: *mut lapackint,
13950);
13951
13952define_lapack_ffi!(sspevx, SspevxFnPtr,
13953    jobz: *const c_char,
13954    range: *const c_char,
13955    uplo: *const c_char,
13956    n: *const lapackint,
13957    AP: *mut f32,
13958    vl: *const f32,
13959    vu: *const f32,
13960    il: *const lapackint,
13961    iu: *const lapackint,
13962    abstol: *const f32,
13963    m: *mut lapackint,
13964    W: *mut f32,
13965    Z: *mut f32,
13966    ldz: *const lapackint,
13967    work: *mut f32,
13968    iwork: *mut lapackint,
13969    IFAIL: *mut lapackint,
13970    info: *mut lapackint,
13971);
13972
13973// SPGST
13974define_lapack_ffi!(dspgst, DspgstFnPtr,
13975    itype: *const lapackint,
13976    uplo: *const c_char,
13977    n: *const lapackint,
13978    AP: *mut f64,
13979    BP: *const f64,
13980    info: *mut lapackint,
13981);
13982
13983define_lapack_ffi!(sspgst, SspgstFnPtr,
13984    itype: *const lapackint,
13985    uplo: *const c_char,
13986    n: *const lapackint,
13987    AP: *mut f32,
13988    BP: *const f32,
13989    info: *mut lapackint,
13990);
13991
13992// SPGV
13993define_lapack_ffi!(dspgv, DspgvFnPtr,
13994    itype: *const lapackint,
13995    jobz: *const c_char,
13996    uplo: *const c_char,
13997    n: *const lapackint,
13998    AP: *mut f64,
13999    BP: *mut f64,
14000    W: *mut f64,
14001    Z: *mut f64,
14002    ldz: *const lapackint,
14003    work: *mut f64,
14004    info: *mut lapackint,
14005);
14006
14007define_lapack_ffi!(sspgv, SspgvFnPtr,
14008    itype: *const lapackint,
14009    jobz: *const c_char,
14010    uplo: *const c_char,
14011    n: *const lapackint,
14012    AP: *mut f32,
14013    BP: *mut f32,
14014    W: *mut f32,
14015    Z: *mut f32,
14016    ldz: *const lapackint,
14017    work: *mut f32,
14018    info: *mut lapackint,
14019);
14020
14021// SPGVD
14022define_lapack_ffi!(dspgvd, DspgvdFnPtr,
14023    itype: *const lapackint,
14024    jobz: *const c_char,
14025    uplo: *const c_char,
14026    n: *const lapackint,
14027    AP: *mut f64,
14028    BP: *mut f64,
14029    W: *mut f64,
14030    Z: *mut f64,
14031    ldz: *const lapackint,
14032    work: *mut f64,
14033    lwork: *const lapackint,
14034    iwork: *mut lapackint,
14035    liwork: *const lapackint,
14036    info: *mut lapackint,
14037);
14038
14039define_lapack_ffi!(sspgvd, SspgvdFnPtr,
14040    itype: *const lapackint,
14041    jobz: *const c_char,
14042    uplo: *const c_char,
14043    n: *const lapackint,
14044    AP: *mut f32,
14045    BP: *mut f32,
14046    W: *mut f32,
14047    Z: *mut f32,
14048    ldz: *const lapackint,
14049    work: *mut f32,
14050    lwork: *const lapackint,
14051    iwork: *mut lapackint,
14052    liwork: *const lapackint,
14053    info: *mut lapackint,
14054);
14055
14056// SPGVX
14057define_lapack_ffi!(dspgvx, DspgvxFnPtr,
14058    itype: *const lapackint,
14059    jobz: *const c_char,
14060    range: *const c_char,
14061    uplo: *const c_char,
14062    n: *const lapackint,
14063    AP: *mut f64,
14064    BP: *mut f64,
14065    vl: *const f64,
14066    vu: *const f64,
14067    il: *const lapackint,
14068    iu: *const lapackint,
14069    abstol: *const f64,
14070    m: *mut lapackint,
14071    W: *mut f64,
14072    Z: *mut f64,
14073    ldz: *const lapackint,
14074    work: *mut f64,
14075    iwork: *mut lapackint,
14076    IFAIL: *mut lapackint,
14077    info: *mut lapackint,
14078);
14079
14080define_lapack_ffi!(sspgvx, SspgvxFnPtr,
14081    itype: *const lapackint,
14082    jobz: *const c_char,
14083    range: *const c_char,
14084    uplo: *const c_char,
14085    n: *const lapackint,
14086    AP: *mut f32,
14087    BP: *mut f32,
14088    vl: *const f32,
14089    vu: *const f32,
14090    il: *const lapackint,
14091    iu: *const lapackint,
14092    abstol: *const f32,
14093    m: *mut lapackint,
14094    W: *mut f32,
14095    Z: *mut f32,
14096    ldz: *const lapackint,
14097    work: *mut f32,
14098    iwork: *mut lapackint,
14099    IFAIL: *mut lapackint,
14100    info: *mut lapackint,
14101);
14102
14103// SPOSV
14104define_lapack_ffi!(dsposv, DsposvFnPtr,
14105    uplo: *const c_char,
14106    n: *const lapackint,
14107    nrhs: *const lapackint,
14108    A: *mut f64,
14109    lda: *const lapackint,
14110    B: *const f64,
14111    ldb: *const lapackint,
14112    X: *mut f64,
14113    ldx: *const lapackint,
14114    work: *mut f64,
14115    swork: *mut f32,
14116    iter: *mut lapackint,
14117    info: *mut lapackint,
14118);
14119
14120// SPRFS
14121define_lapack_ffi!(csprfs, CsprfsFnPtr,
14122    uplo: *const c_char,
14123    n: *const lapackint,
14124    nrhs: *const lapackint,
14125    AP: *const Complex32,
14126    AFP: *const Complex32,
14127    ipiv: *const lapackint,
14128    B: *const Complex32,
14129    ldb: *const lapackint,
14130    X: *mut Complex32,
14131    ldx: *const lapackint,
14132    ferr: *mut f32,
14133    berr: *mut f32,
14134    work: *mut Complex32,
14135    rwork: *mut f32,
14136    info: *mut lapackint,
14137);
14138
14139define_lapack_ffi!(dsprfs, DsprfsFnPtr,
14140    uplo: *const c_char,
14141    n: *const lapackint,
14142    nrhs: *const lapackint,
14143    AP: *const f64,
14144    AFP: *const f64,
14145    ipiv: *const lapackint,
14146    B: *const f64,
14147    ldb: *const lapackint,
14148    X: *mut f64,
14149    ldx: *const lapackint,
14150    ferr: *mut f64,
14151    berr: *mut f64,
14152    work: *mut f64,
14153    iwork: *mut lapackint,
14154    info: *mut lapackint,
14155);
14156
14157define_lapack_ffi!(ssprfs, SsprfsFnPtr,
14158    uplo: *const c_char,
14159    n: *const lapackint,
14160    nrhs: *const lapackint,
14161    AP: *const f32,
14162    AFP: *const f32,
14163    ipiv: *const lapackint,
14164    B: *const f32,
14165    ldb: *const lapackint,
14166    X: *mut f32,
14167    ldx: *const lapackint,
14168    ferr: *mut f32,
14169    berr: *mut f32,
14170    work: *mut f32,
14171    iwork: *mut lapackint,
14172    info: *mut lapackint,
14173);
14174
14175define_lapack_ffi!(zsprfs, ZsprfsFnPtr,
14176    uplo: *const c_char,
14177    n: *const lapackint,
14178    nrhs: *const lapackint,
14179    AP: *const Complex64,
14180    AFP: *const Complex64,
14181    ipiv: *const lapackint,
14182    B: *const Complex64,
14183    ldb: *const lapackint,
14184    X: *mut Complex64,
14185    ldx: *const lapackint,
14186    ferr: *mut f64,
14187    berr: *mut f64,
14188    work: *mut Complex64,
14189    rwork: *mut f64,
14190    info: *mut lapackint,
14191);
14192
14193// SPSV
14194define_lapack_ffi!(cspsv, CspsvFnPtr,
14195    uplo: *const c_char,
14196    n: *const lapackint,
14197    nrhs: *const lapackint,
14198    AP: *mut Complex32,
14199    ipiv: *mut lapackint,
14200    B: *mut Complex32,
14201    ldb: *const lapackint,
14202    info: *mut lapackint,
14203);
14204
14205define_lapack_ffi!(dspsv, DspsvFnPtr,
14206    uplo: *const c_char,
14207    n: *const lapackint,
14208    nrhs: *const lapackint,
14209    AP: *mut f64,
14210    ipiv: *mut lapackint,
14211    B: *mut f64,
14212    ldb: *const lapackint,
14213    info: *mut lapackint,
14214);
14215
14216define_lapack_ffi!(sspsv, SspsvFnPtr,
14217    uplo: *const c_char,
14218    n: *const lapackint,
14219    nrhs: *const lapackint,
14220    AP: *mut f32,
14221    ipiv: *mut lapackint,
14222    B: *mut f32,
14223    ldb: *const lapackint,
14224    info: *mut lapackint,
14225);
14226
14227define_lapack_ffi!(zspsv, ZspsvFnPtr,
14228    uplo: *const c_char,
14229    n: *const lapackint,
14230    nrhs: *const lapackint,
14231    AP: *mut Complex64,
14232    ipiv: *mut lapackint,
14233    B: *mut Complex64,
14234    ldb: *const lapackint,
14235    info: *mut lapackint,
14236);
14237
14238// SPSVX
14239define_lapack_ffi!(cspsvx, CspsvxFnPtr,
14240    fact: *const c_char,
14241    uplo: *const c_char,
14242    n: *const lapackint,
14243    nrhs: *const lapackint,
14244    AP: *const Complex32,
14245    AFP: *mut Complex32,
14246    ipiv: *mut lapackint,
14247    B: *const Complex32,
14248    ldb: *const lapackint,
14249    X: *mut Complex32,
14250    ldx: *const lapackint,
14251    rcond: *mut f32,
14252    ferr: *mut f32,
14253    berr: *mut f32,
14254    work: *mut Complex32,
14255    rwork: *mut f32,
14256    info: *mut lapackint,
14257);
14258
14259define_lapack_ffi!(dspsvx, DspsvxFnPtr,
14260    fact: *const c_char,
14261    uplo: *const c_char,
14262    n: *const lapackint,
14263    nrhs: *const lapackint,
14264    AP: *const f64,
14265    AFP: *mut f64,
14266    ipiv: *mut lapackint,
14267    B: *const f64,
14268    ldb: *const lapackint,
14269    X: *mut f64,
14270    ldx: *const lapackint,
14271    rcond: *mut f64,
14272    ferr: *mut f64,
14273    berr: *mut f64,
14274    work: *mut f64,
14275    iwork: *mut lapackint,
14276    info: *mut lapackint,
14277);
14278
14279define_lapack_ffi!(sspsvx, SspsvxFnPtr,
14280    fact: *const c_char,
14281    uplo: *const c_char,
14282    n: *const lapackint,
14283    nrhs: *const lapackint,
14284    AP: *const f32,
14285    AFP: *mut f32,
14286    ipiv: *mut lapackint,
14287    B: *const f32,
14288    ldb: *const lapackint,
14289    X: *mut f32,
14290    ldx: *const lapackint,
14291    rcond: *mut f32,
14292    ferr: *mut f32,
14293    berr: *mut f32,
14294    work: *mut f32,
14295    iwork: *mut lapackint,
14296    info: *mut lapackint,
14297);
14298
14299define_lapack_ffi!(zspsvx, ZspsvxFnPtr,
14300    fact: *const c_char,
14301    uplo: *const c_char,
14302    n: *const lapackint,
14303    nrhs: *const lapackint,
14304    AP: *const Complex64,
14305    AFP: *mut Complex64,
14306    ipiv: *mut lapackint,
14307    B: *const Complex64,
14308    ldb: *const lapackint,
14309    X: *mut Complex64,
14310    ldx: *const lapackint,
14311    rcond: *mut f64,
14312    ferr: *mut f64,
14313    berr: *mut f64,
14314    work: *mut Complex64,
14315    rwork: *mut f64,
14316    info: *mut lapackint,
14317);
14318
14319// SPTRD
14320define_lapack_ffi!(dsptrd, DsptrdFnPtr,
14321    uplo: *const c_char,
14322    n: *const lapackint,
14323    AP: *mut f64,
14324    D: *mut f64,
14325    E: *mut f64,
14326    tau: *mut f64,
14327    info: *mut lapackint,
14328);
14329
14330define_lapack_ffi!(ssptrd, SsptrdFnPtr,
14331    uplo: *const c_char,
14332    n: *const lapackint,
14333    AP: *mut f32,
14334    D: *mut f32,
14335    E: *mut f32,
14336    tau: *mut f32,
14337    info: *mut lapackint,
14338);
14339
14340// SPTRF
14341define_lapack_ffi!(csptrf, CsptrfFnPtr,
14342    uplo: *const c_char,
14343    n: *const lapackint,
14344    AP: *mut Complex32,
14345    ipiv: *mut lapackint,
14346    info: *mut lapackint,
14347);
14348
14349define_lapack_ffi!(dsptrf, DsptrfFnPtr,
14350    uplo: *const c_char,
14351    n: *const lapackint,
14352    AP: *mut f64,
14353    ipiv: *mut lapackint,
14354    info: *mut lapackint,
14355);
14356
14357define_lapack_ffi!(ssptrf, SsptrfFnPtr,
14358    uplo: *const c_char,
14359    n: *const lapackint,
14360    AP: *mut f32,
14361    ipiv: *mut lapackint,
14362    info: *mut lapackint,
14363);
14364
14365define_lapack_ffi!(zsptrf, ZsptrfFnPtr,
14366    uplo: *const c_char,
14367    n: *const lapackint,
14368    AP: *mut Complex64,
14369    ipiv: *mut lapackint,
14370    info: *mut lapackint,
14371);
14372
14373// SPTRI
14374define_lapack_ffi!(csptri, CsptriFnPtr,
14375    uplo: *const c_char,
14376    n: *const lapackint,
14377    AP: *mut Complex32,
14378    ipiv: *const lapackint,
14379    work: *mut Complex32,
14380    info: *mut lapackint,
14381);
14382
14383define_lapack_ffi!(dsptri, DsptriFnPtr,
14384    uplo: *const c_char,
14385    n: *const lapackint,
14386    AP: *mut f64,
14387    ipiv: *const lapackint,
14388    work: *mut f64,
14389    info: *mut lapackint,
14390);
14391
14392define_lapack_ffi!(ssptri, SsptriFnPtr,
14393    uplo: *const c_char,
14394    n: *const lapackint,
14395    AP: *mut f32,
14396    ipiv: *const lapackint,
14397    work: *mut f32,
14398    info: *mut lapackint,
14399);
14400
14401define_lapack_ffi!(zsptri, ZsptriFnPtr,
14402    uplo: *const c_char,
14403    n: *const lapackint,
14404    AP: *mut Complex64,
14405    ipiv: *const lapackint,
14406    work: *mut Complex64,
14407    info: *mut lapackint,
14408);
14409
14410// SPTRS
14411define_lapack_ffi!(csptrs, CsptrsFnPtr,
14412    uplo: *const c_char,
14413    n: *const lapackint,
14414    nrhs: *const lapackint,
14415    AP: *const Complex32,
14416    ipiv: *const lapackint,
14417    B: *mut Complex32,
14418    ldb: *const lapackint,
14419    info: *mut lapackint,
14420);
14421
14422define_lapack_ffi!(dsptrs, DsptrsFnPtr,
14423    uplo: *const c_char,
14424    n: *const lapackint,
14425    nrhs: *const lapackint,
14426    AP: *const f64,
14427    ipiv: *const lapackint,
14428    B: *mut f64,
14429    ldb: *const lapackint,
14430    info: *mut lapackint,
14431);
14432
14433define_lapack_ffi!(ssptrs, SsptrsFnPtr,
14434    uplo: *const c_char,
14435    n: *const lapackint,
14436    nrhs: *const lapackint,
14437    AP: *const f32,
14438    ipiv: *const lapackint,
14439    B: *mut f32,
14440    ldb: *const lapackint,
14441    info: *mut lapackint,
14442);
14443
14444define_lapack_ffi!(zsptrs, ZsptrsFnPtr,
14445    uplo: *const c_char,
14446    n: *const lapackint,
14447    nrhs: *const lapackint,
14448    AP: *const Complex64,
14449    ipiv: *const lapackint,
14450    B: *mut Complex64,
14451    ldb: *const lapackint,
14452    info: *mut lapackint,
14453);
14454
14455// STEBZ
14456define_lapack_ffi!(dstebz, DstebzFnPtr,
14457    range: *const c_char,
14458    order: *const c_char,
14459    n: *const lapackint,
14460    vl: *const f64,
14461    vu: *const f64,
14462    il: *const lapackint,
14463    iu: *const lapackint,
14464    abstol: *const f64,
14465    D: *const f64,
14466    E: *const f64,
14467    m: *mut lapackint,
14468    nsplit: *mut lapackint,
14469    W: *mut f64,
14470    IBLOCK: *mut lapackint,
14471    ISPLIT: *mut lapackint,
14472    work: *mut f64,
14473    iwork: *mut lapackint,
14474    info: *mut lapackint,
14475);
14476
14477define_lapack_ffi!(sstebz, SstebzFnPtr,
14478    range: *const c_char,
14479    order: *const c_char,
14480    n: *const lapackint,
14481    vl: *const f32,
14482    vu: *const f32,
14483    il: *const lapackint,
14484    iu: *const lapackint,
14485    abstol: *const f32,
14486    D: *const f32,
14487    E: *const f32,
14488    m: *mut lapackint,
14489    nsplit: *mut lapackint,
14490    W: *mut f32,
14491    IBLOCK: *mut lapackint,
14492    ISPLIT: *mut lapackint,
14493    work: *mut f32,
14494    iwork: *mut lapackint,
14495    info: *mut lapackint,
14496);
14497
14498// STEDC
14499define_lapack_ffi!(cstedc, CstedcFnPtr,
14500    compz: *const c_char,
14501    n: *const lapackint,
14502    D: *mut f32,
14503    E: *mut f32,
14504    Z: *mut Complex32,
14505    ldz: *const lapackint,
14506    work: *mut Complex32,
14507    lwork: *const lapackint,
14508    rwork: *mut f32,
14509    lrwork: *const lapackint,
14510    iwork: *mut lapackint,
14511    liwork: *const lapackint,
14512    info: *mut lapackint,
14513);
14514
14515define_lapack_ffi!(dstedc, DstedcFnPtr,
14516    compz: *const c_char,
14517    n: *const lapackint,
14518    D: *mut f64,
14519    E: *mut f64,
14520    Z: *mut f64,
14521    ldz: *const lapackint,
14522    work: *mut f64,
14523    lwork: *const lapackint,
14524    iwork: *mut lapackint,
14525    liwork: *const lapackint,
14526    info: *mut lapackint,
14527);
14528
14529define_lapack_ffi!(sstedc, SstedcFnPtr,
14530    compz: *const c_char,
14531    n: *const lapackint,
14532    D: *mut f32,
14533    E: *mut f32,
14534    Z: *mut f32,
14535    ldz: *const lapackint,
14536    work: *mut f32,
14537    lwork: *const lapackint,
14538    iwork: *mut lapackint,
14539    liwork: *const lapackint,
14540    info: *mut lapackint,
14541);
14542
14543define_lapack_ffi!(zstedc, ZstedcFnPtr,
14544    compz: *const c_char,
14545    n: *const lapackint,
14546    D: *mut f64,
14547    E: *mut f64,
14548    Z: *mut Complex64,
14549    ldz: *const lapackint,
14550    work: *mut Complex64,
14551    lwork: *const lapackint,
14552    rwork: *mut f64,
14553    lrwork: *const lapackint,
14554    iwork: *mut lapackint,
14555    liwork: *const lapackint,
14556    info: *mut lapackint,
14557);
14558
14559// STEGR
14560define_lapack_ffi!(cstegr, CstegrFnPtr,
14561    jobz: *const c_char,
14562    range: *const c_char,
14563    n: *const lapackint,
14564    D: *mut f32,
14565    E: *mut f32,
14566    vl: *const f32,
14567    vu: *const f32,
14568    il: *const lapackint,
14569    iu: *const lapackint,
14570    abstol: *const f32,
14571    m: *mut lapackint,
14572    W: *mut f32,
14573    Z: *mut Complex32,
14574    ldz: *const lapackint,
14575    ISUPPZ: *mut lapackint,
14576    work: *mut f32,
14577    lwork: *const lapackint,
14578    iwork: *mut lapackint,
14579    liwork: *const lapackint,
14580    info: *mut lapackint,
14581);
14582
14583define_lapack_ffi!(dstegr, DstegrFnPtr,
14584    jobz: *const c_char,
14585    range: *const c_char,
14586    n: *const lapackint,
14587    D: *mut f64,
14588    E: *mut f64,
14589    vl: *const f64,
14590    vu: *const f64,
14591    il: *const lapackint,
14592    iu: *const lapackint,
14593    abstol: *const f64,
14594    m: *mut lapackint,
14595    W: *mut f64,
14596    Z: *mut f64,
14597    ldz: *const lapackint,
14598    ISUPPZ: *mut lapackint,
14599    work: *mut f64,
14600    lwork: *const lapackint,
14601    iwork: *mut lapackint,
14602    liwork: *const lapackint,
14603    info: *mut lapackint,
14604);
14605
14606define_lapack_ffi!(sstegr, SstegrFnPtr,
14607    jobz: *const c_char,
14608    range: *const c_char,
14609    n: *const lapackint,
14610    D: *mut f32,
14611    E: *mut f32,
14612    vl: *const f32,
14613    vu: *const f32,
14614    il: *const lapackint,
14615    iu: *const lapackint,
14616    abstol: *const f32,
14617    m: *mut lapackint,
14618    W: *mut f32,
14619    Z: *mut f32,
14620    ldz: *const lapackint,
14621    ISUPPZ: *mut lapackint,
14622    work: *mut f32,
14623    lwork: *const lapackint,
14624    iwork: *mut lapackint,
14625    liwork: *const lapackint,
14626    info: *mut lapackint,
14627);
14628
14629define_lapack_ffi!(zstegr, ZstegrFnPtr,
14630    jobz: *const c_char,
14631    range: *const c_char,
14632    n: *const lapackint,
14633    D: *mut f64,
14634    E: *mut f64,
14635    vl: *const f64,
14636    vu: *const f64,
14637    il: *const lapackint,
14638    iu: *const lapackint,
14639    abstol: *const f64,
14640    m: *mut lapackint,
14641    W: *mut f64,
14642    Z: *mut Complex64,
14643    ldz: *const lapackint,
14644    ISUPPZ: *mut lapackint,
14645    work: *mut f64,
14646    lwork: *const lapackint,
14647    iwork: *mut lapackint,
14648    liwork: *const lapackint,
14649    info: *mut lapackint,
14650);
14651
14652// STEIN
14653define_lapack_ffi!(cstein, CsteinFnPtr,
14654    n: *const lapackint,
14655    D: *const f32,
14656    E: *const f32,
14657    m: *const lapackint,
14658    W: *const f32,
14659    IBLOCK: *const lapackint,
14660    ISPLIT: *const lapackint,
14661    Z: *mut Complex32,
14662    ldz: *const lapackint,
14663    work: *mut f32,
14664    iwork: *mut lapackint,
14665    IFAIL: *mut lapackint,
14666    info: *mut lapackint,
14667);
14668
14669define_lapack_ffi!(dstein, DsteinFnPtr,
14670    n: *const lapackint,
14671    D: *const f64,
14672    E: *const f64,
14673    m: *const lapackint,
14674    W: *const f64,
14675    IBLOCK: *const lapackint,
14676    ISPLIT: *const lapackint,
14677    Z: *mut f64,
14678    ldz: *const lapackint,
14679    work: *mut f64,
14680    iwork: *mut lapackint,
14681    IFAIL: *mut lapackint,
14682    info: *mut lapackint,
14683);
14684
14685define_lapack_ffi!(sstein, SsteinFnPtr,
14686    n: *const lapackint,
14687    D: *const f32,
14688    E: *const f32,
14689    m: *const lapackint,
14690    W: *const f32,
14691    IBLOCK: *const lapackint,
14692    ISPLIT: *const lapackint,
14693    Z: *mut f32,
14694    ldz: *const lapackint,
14695    work: *mut f32,
14696    iwork: *mut lapackint,
14697    IFAIL: *mut lapackint,
14698    info: *mut lapackint,
14699);
14700
14701define_lapack_ffi!(zstein, ZsteinFnPtr,
14702    n: *const lapackint,
14703    D: *const f64,
14704    E: *const f64,
14705    m: *const lapackint,
14706    W: *const f64,
14707    IBLOCK: *const lapackint,
14708    ISPLIT: *const lapackint,
14709    Z: *mut Complex64,
14710    ldz: *const lapackint,
14711    work: *mut f64,
14712    iwork: *mut lapackint,
14713    IFAIL: *mut lapackint,
14714    info: *mut lapackint,
14715);
14716
14717// STEMR
14718define_lapack_ffi!(cstemr, CstemrFnPtr,
14719    jobz: *const c_char,
14720    range: *const c_char,
14721    n: *const lapackint,
14722    D: *mut f32,
14723    E: *mut f32,
14724    vl: *const f32,
14725    vu: *const f32,
14726    il: *const lapackint,
14727    iu: *const lapackint,
14728    m: *mut lapackint,
14729    W: *mut f32,
14730    Z: *mut Complex32,
14731    ldz: *const lapackint,
14732    nzc: *const lapackint,
14733    ISUPPZ: *mut lapackint,
14734    tryrac: *mut lapackint,
14735    work: *mut f32,
14736    lwork: *const lapackint,
14737    iwork: *mut lapackint,
14738    liwork: *const lapackint,
14739    info: *mut lapackint,
14740);
14741
14742define_lapack_ffi!(dstemr, DstemrFnPtr,
14743    jobz: *const c_char,
14744    range: *const c_char,
14745    n: *const lapackint,
14746    D: *mut f64,
14747    E: *mut f64,
14748    vl: *const f64,
14749    vu: *const f64,
14750    il: *const lapackint,
14751    iu: *const lapackint,
14752    m: *mut lapackint,
14753    W: *mut f64,
14754    Z: *mut f64,
14755    ldz: *const lapackint,
14756    nzc: *const lapackint,
14757    ISUPPZ: *mut lapackint,
14758    tryrac: *mut lapackint,
14759    work: *mut f64,
14760    lwork: *const lapackint,
14761    iwork: *mut lapackint,
14762    liwork: *const lapackint,
14763    info: *mut lapackint,
14764);
14765
14766define_lapack_ffi!(sstemr, SstemrFnPtr,
14767    jobz: *const c_char,
14768    range: *const c_char,
14769    n: *const lapackint,
14770    D: *mut f32,
14771    E: *mut f32,
14772    vl: *const f32,
14773    vu: *const f32,
14774    il: *const lapackint,
14775    iu: *const lapackint,
14776    m: *mut lapackint,
14777    W: *mut f32,
14778    Z: *mut f32,
14779    ldz: *const lapackint,
14780    nzc: *const lapackint,
14781    ISUPPZ: *mut lapackint,
14782    tryrac: *mut lapackint,
14783    work: *mut f32,
14784    lwork: *const lapackint,
14785    iwork: *mut lapackint,
14786    liwork: *const lapackint,
14787    info: *mut lapackint,
14788);
14789
14790define_lapack_ffi!(zstemr, ZstemrFnPtr,
14791    jobz: *const c_char,
14792    range: *const c_char,
14793    n: *const lapackint,
14794    D: *mut f64,
14795    E: *mut f64,
14796    vl: *const f64,
14797    vu: *const f64,
14798    il: *const lapackint,
14799    iu: *const lapackint,
14800    m: *mut lapackint,
14801    W: *mut f64,
14802    Z: *mut Complex64,
14803    ldz: *const lapackint,
14804    nzc: *const lapackint,
14805    ISUPPZ: *mut lapackint,
14806    tryrac: *mut lapackint,
14807    work: *mut f64,
14808    lwork: *const lapackint,
14809    iwork: *mut lapackint,
14810    liwork: *const lapackint,
14811    info: *mut lapackint,
14812);
14813
14814// STEQR
14815define_lapack_ffi!(csteqr, CsteqrFnPtr,
14816    compz: *const c_char,
14817    n: *const lapackint,
14818    D: *mut f32,
14819    E: *mut f32,
14820    Z: *mut Complex32,
14821    ldz: *const lapackint,
14822    work: *mut f32,
14823    info: *mut lapackint,
14824);
14825
14826define_lapack_ffi!(dsteqr, DsteqrFnPtr,
14827    compz: *const c_char,
14828    n: *const lapackint,
14829    D: *mut f64,
14830    E: *mut f64,
14831    Z: *mut f64,
14832    ldz: *const lapackint,
14833    work: *mut f64,
14834    info: *mut lapackint,
14835);
14836
14837define_lapack_ffi!(ssteqr, SsteqrFnPtr,
14838    compz: *const c_char,
14839    n: *const lapackint,
14840    D: *mut f32,
14841    E: *mut f32,
14842    Z: *mut f32,
14843    ldz: *const lapackint,
14844    work: *mut f32,
14845    info: *mut lapackint,
14846);
14847
14848define_lapack_ffi!(zsteqr, ZsteqrFnPtr,
14849    compz: *const c_char,
14850    n: *const lapackint,
14851    D: *mut f64,
14852    E: *mut f64,
14853    Z: *mut Complex64,
14854    ldz: *const lapackint,
14855    work: *mut f64,
14856    info: *mut lapackint,
14857);
14858
14859// STERF
14860define_lapack_ffi!(dsterf, DsterfFnPtr,
14861    n: *const lapackint,
14862    D: *mut f64,
14863    E: *mut f64,
14864    info: *mut lapackint,
14865);
14866
14867define_lapack_ffi!(ssterf, SsterfFnPtr,
14868    n: *const lapackint,
14869    D: *mut f32,
14870    E: *mut f32,
14871    info: *mut lapackint,
14872);
14873
14874// STEV
14875define_lapack_ffi!(dstev, DstevFnPtr,
14876    jobz: *const c_char,
14877    n: *const lapackint,
14878    D: *mut f64,
14879    E: *mut f64,
14880    Z: *mut f64,
14881    ldz: *const lapackint,
14882    work: *mut f64,
14883    info: *mut lapackint,
14884);
14885
14886define_lapack_ffi!(sstev, SstevFnPtr,
14887    jobz: *const c_char,
14888    n: *const lapackint,
14889    D: *mut f32,
14890    E: *mut f32,
14891    Z: *mut f32,
14892    ldz: *const lapackint,
14893    work: *mut f32,
14894    info: *mut lapackint,
14895);
14896
14897// STEVD
14898define_lapack_ffi!(dstevd, DstevdFnPtr,
14899    jobz: *const c_char,
14900    n: *const lapackint,
14901    D: *mut f64,
14902    E: *mut f64,
14903    Z: *mut f64,
14904    ldz: *const lapackint,
14905    work: *mut f64,
14906    lwork: *const lapackint,
14907    iwork: *mut lapackint,
14908    liwork: *const lapackint,
14909    info: *mut lapackint,
14910);
14911
14912define_lapack_ffi!(sstevd, SstevdFnPtr,
14913    jobz: *const c_char,
14914    n: *const lapackint,
14915    D: *mut f32,
14916    E: *mut f32,
14917    Z: *mut f32,
14918    ldz: *const lapackint,
14919    work: *mut f32,
14920    lwork: *const lapackint,
14921    iwork: *mut lapackint,
14922    liwork: *const lapackint,
14923    info: *mut lapackint,
14924);
14925
14926// STEVR
14927define_lapack_ffi!(dstevr, DstevrFnPtr,
14928    jobz: *const c_char,
14929    range: *const c_char,
14930    n: *const lapackint,
14931    D: *mut f64,
14932    E: *mut f64,
14933    vl: *const f64,
14934    vu: *const f64,
14935    il: *const lapackint,
14936    iu: *const lapackint,
14937    abstol: *const f64,
14938    m: *mut lapackint,
14939    W: *mut f64,
14940    Z: *mut f64,
14941    ldz: *const lapackint,
14942    ISUPPZ: *mut lapackint,
14943    work: *mut f64,
14944    lwork: *const lapackint,
14945    iwork: *mut lapackint,
14946    liwork: *const lapackint,
14947    info: *mut lapackint,
14948);
14949
14950define_lapack_ffi!(sstevr, SstevrFnPtr,
14951    jobz: *const c_char,
14952    range: *const c_char,
14953    n: *const lapackint,
14954    D: *mut f32,
14955    E: *mut f32,
14956    vl: *const f32,
14957    vu: *const f32,
14958    il: *const lapackint,
14959    iu: *const lapackint,
14960    abstol: *const f32,
14961    m: *mut lapackint,
14962    W: *mut f32,
14963    Z: *mut f32,
14964    ldz: *const lapackint,
14965    ISUPPZ: *mut lapackint,
14966    work: *mut f32,
14967    lwork: *const lapackint,
14968    iwork: *mut lapackint,
14969    liwork: *const lapackint,
14970    info: *mut lapackint,
14971);
14972
14973// STEVX
14974define_lapack_ffi!(dstevx, DstevxFnPtr,
14975    jobz: *const c_char,
14976    range: *const c_char,
14977    n: *const lapackint,
14978    D: *mut f64,
14979    E: *mut f64,
14980    vl: *const f64,
14981    vu: *const f64,
14982    il: *const lapackint,
14983    iu: *const lapackint,
14984    abstol: *const f64,
14985    m: *mut lapackint,
14986    W: *mut f64,
14987    Z: *mut f64,
14988    ldz: *const lapackint,
14989    work: *mut f64,
14990    iwork: *mut lapackint,
14991    IFAIL: *mut lapackint,
14992    info: *mut lapackint,
14993);
14994
14995define_lapack_ffi!(sstevx, SstevxFnPtr,
14996    jobz: *const c_char,
14997    range: *const c_char,
14998    n: *const lapackint,
14999    D: *mut f32,
15000    E: *mut f32,
15001    vl: *const f32,
15002    vu: *const f32,
15003    il: *const lapackint,
15004    iu: *const lapackint,
15005    abstol: *const f32,
15006    m: *mut lapackint,
15007    W: *mut f32,
15008    Z: *mut f32,
15009    ldz: *const lapackint,
15010    work: *mut f32,
15011    iwork: *mut lapackint,
15012    IFAIL: *mut lapackint,
15013    info: *mut lapackint,
15014);
15015
15016// SYCON
15017define_lapack_ffi!(csycon, CsyconFnPtr,
15018    uplo: *const c_char,
15019    n: *const lapackint,
15020    A: *const Complex32,
15021    lda: *const lapackint,
15022    ipiv: *const lapackint,
15023    anorm: *const f32,
15024    rcond: *mut f32,
15025    work: *mut Complex32,
15026    info: *mut lapackint,
15027);
15028
15029define_lapack_ffi!(dsycon, DsyconFnPtr,
15030    uplo: *const c_char,
15031    n: *const lapackint,
15032    A: *const f64,
15033    lda: *const lapackint,
15034    ipiv: *const lapackint,
15035    anorm: *const f64,
15036    rcond: *mut f64,
15037    work: *mut f64,
15038    iwork: *mut lapackint,
15039    info: *mut lapackint,
15040);
15041
15042define_lapack_ffi!(ssycon, SsyconFnPtr,
15043    uplo: *const c_char,
15044    n: *const lapackint,
15045    A: *const f32,
15046    lda: *const lapackint,
15047    ipiv: *const lapackint,
15048    anorm: *const f32,
15049    rcond: *mut f32,
15050    work: *mut f32,
15051    iwork: *mut lapackint,
15052    info: *mut lapackint,
15053);
15054
15055define_lapack_ffi!(zsycon, ZsyconFnPtr,
15056    uplo: *const c_char,
15057    n: *const lapackint,
15058    A: *const Complex64,
15059    lda: *const lapackint,
15060    ipiv: *const lapackint,
15061    anorm: *const f64,
15062    rcond: *mut f64,
15063    work: *mut Complex64,
15064    info: *mut lapackint,
15065);
15066
15067// SYCON_3
15068define_lapack_ffi!(csycon_3, Csycon_3FnPtr,
15069    uplo: *const c_char,
15070    n: *const lapackint,
15071    A: *const Complex32,
15072    lda: *const lapackint,
15073    E: *const Complex32,
15074    ipiv: *const lapackint,
15075    anorm: *const f32,
15076    rcond: *mut f32,
15077    work: *mut Complex32,
15078    info: *mut lapackint,
15079);
15080
15081define_lapack_ffi!(dsycon_3, Dsycon_3FnPtr,
15082    uplo: *const c_char,
15083    n: *const lapackint,
15084    A: *const f64,
15085    lda: *const lapackint,
15086    E: *const f64,
15087    ipiv: *const lapackint,
15088    anorm: *const f64,
15089    rcond: *mut f64,
15090    work: *mut f64,
15091    iwork: *mut lapackint,
15092    info: *mut lapackint,
15093);
15094
15095define_lapack_ffi!(ssycon_3, Ssycon_3FnPtr,
15096    uplo: *const c_char,
15097    n: *const lapackint,
15098    A: *const f32,
15099    lda: *const lapackint,
15100    E: *const f32,
15101    ipiv: *const lapackint,
15102    anorm: *const f32,
15103    rcond: *mut f32,
15104    work: *mut f32,
15105    iwork: *mut lapackint,
15106    info: *mut lapackint,
15107);
15108
15109define_lapack_ffi!(zsycon_3, Zsycon_3FnPtr,
15110    uplo: *const c_char,
15111    n: *const lapackint,
15112    A: *const Complex64,
15113    lda: *const lapackint,
15114    E: *const Complex64,
15115    ipiv: *const lapackint,
15116    anorm: *const f64,
15117    rcond: *mut f64,
15118    work: *mut Complex64,
15119    info: *mut lapackint,
15120);
15121
15122// SYCONV
15123define_lapack_ffi!(csyconv, CsyconvFnPtr,
15124    uplo: *const c_char,
15125    way: *const c_char,
15126    n: *const lapackint,
15127    A: *mut Complex32,
15128    lda: *const lapackint,
15129    ipiv: *const lapackint,
15130    E: *mut Complex32,
15131    info: *mut lapackint,
15132);
15133
15134define_lapack_ffi!(dsyconv, DsyconvFnPtr,
15135    uplo: *const c_char,
15136    way: *const c_char,
15137    n: *const lapackint,
15138    A: *mut f64,
15139    lda: *const lapackint,
15140    ipiv: *const lapackint,
15141    E: *mut f64,
15142    info: *mut lapackint,
15143);
15144
15145define_lapack_ffi!(ssyconv, SsyconvFnPtr,
15146    uplo: *const c_char,
15147    way: *const c_char,
15148    n: *const lapackint,
15149    A: *mut f32,
15150    lda: *const lapackint,
15151    ipiv: *const lapackint,
15152    E: *mut f32,
15153    info: *mut lapackint,
15154);
15155
15156define_lapack_ffi!(zsyconv, ZsyconvFnPtr,
15157    uplo: *const c_char,
15158    way: *const c_char,
15159    n: *const lapackint,
15160    A: *mut Complex64,
15161    lda: *const lapackint,
15162    ipiv: *const lapackint,
15163    E: *mut Complex64,
15164    info: *mut lapackint,
15165);
15166
15167// SYEQUB
15168define_lapack_ffi!(csyequb, CsyequbFnPtr,
15169    uplo: *const c_char,
15170    n: *const lapackint,
15171    A: *const Complex32,
15172    lda: *const lapackint,
15173    S: *mut f32,
15174    scond: *mut f32,
15175    amax: *mut f32,
15176    work: *mut Complex32,
15177    info: *mut lapackint,
15178);
15179
15180define_lapack_ffi!(dsyequb, DsyequbFnPtr,
15181    uplo: *const c_char,
15182    n: *const lapackint,
15183    A: *const f64,
15184    lda: *const lapackint,
15185    S: *mut f64,
15186    scond: *mut f64,
15187    amax: *mut f64,
15188    work: *mut f64,
15189    info: *mut lapackint,
15190);
15191
15192define_lapack_ffi!(ssyequb, SsyequbFnPtr,
15193    uplo: *const c_char,
15194    n: *const lapackint,
15195    A: *const f32,
15196    lda: *const lapackint,
15197    S: *mut f32,
15198    scond: *mut f32,
15199    amax: *mut f32,
15200    work: *mut f32,
15201    info: *mut lapackint,
15202);
15203
15204define_lapack_ffi!(zsyequb, ZsyequbFnPtr,
15205    uplo: *const c_char,
15206    n: *const lapackint,
15207    A: *const Complex64,
15208    lda: *const lapackint,
15209    S: *mut f64,
15210    scond: *mut f64,
15211    amax: *mut f64,
15212    work: *mut Complex64,
15213    info: *mut lapackint,
15214);
15215
15216// SYEV
15217define_lapack_ffi!(dsyev, DsyevFnPtr,
15218    jobz: *const c_char,
15219    uplo: *const c_char,
15220    n: *const lapackint,
15221    A: *mut f64,
15222    lda: *const lapackint,
15223    W: *mut f64,
15224    work: *mut f64,
15225    lwork: *const lapackint,
15226    info: *mut lapackint,
15227);
15228
15229define_lapack_ffi!(ssyev, SsyevFnPtr,
15230    jobz: *const c_char,
15231    uplo: *const c_char,
15232    n: *const lapackint,
15233    A: *mut f32,
15234    lda: *const lapackint,
15235    W: *mut f32,
15236    work: *mut f32,
15237    lwork: *const lapackint,
15238    info: *mut lapackint,
15239);
15240
15241// SYEV_2STAGE
15242define_lapack_ffi!(dsyev_2stage, Dsyev_2stageFnPtr,
15243    jobz: *const c_char,
15244    uplo: *const c_char,
15245    n: *const lapackint,
15246    A: *mut f64,
15247    lda: *const lapackint,
15248    W: *mut f64,
15249    work: *mut f64,
15250    lwork: *const lapackint,
15251    info: *mut lapackint,
15252);
15253
15254define_lapack_ffi!(ssyev_2stage, Ssyev_2stageFnPtr,
15255    jobz: *const c_char,
15256    uplo: *const c_char,
15257    n: *const lapackint,
15258    A: *mut f32,
15259    lda: *const lapackint,
15260    W: *mut f32,
15261    work: *mut f32,
15262    lwork: *const lapackint,
15263    info: *mut lapackint,
15264);
15265
15266// SYEVD
15267define_lapack_ffi!(dsyevd, DsyevdFnPtr,
15268    jobz: *const c_char,
15269    uplo: *const c_char,
15270    n: *const lapackint,
15271    A: *mut f64,
15272    lda: *const lapackint,
15273    W: *mut f64,
15274    work: *mut f64,
15275    lwork: *const lapackint,
15276    iwork: *mut lapackint,
15277    liwork: *const lapackint,
15278    info: *mut lapackint,
15279);
15280
15281define_lapack_ffi!(ssyevd, SsyevdFnPtr,
15282    jobz: *const c_char,
15283    uplo: *const c_char,
15284    n: *const lapackint,
15285    A: *mut f32,
15286    lda: *const lapackint,
15287    W: *mut f32,
15288    work: *mut f32,
15289    lwork: *const lapackint,
15290    iwork: *mut lapackint,
15291    liwork: *const lapackint,
15292    info: *mut lapackint,
15293);
15294
15295// SYEVD_2STAGE
15296define_lapack_ffi!(dsyevd_2stage, Dsyevd_2stageFnPtr,
15297    jobz: *const c_char,
15298    uplo: *const c_char,
15299    n: *const lapackint,
15300    A: *mut f64,
15301    lda: *const lapackint,
15302    W: *mut f64,
15303    work: *mut f64,
15304    lwork: *const lapackint,
15305    iwork: *mut lapackint,
15306    liwork: *const lapackint,
15307    info: *mut lapackint,
15308);
15309
15310define_lapack_ffi!(ssyevd_2stage, Ssyevd_2stageFnPtr,
15311    jobz: *const c_char,
15312    uplo: *const c_char,
15313    n: *const lapackint,
15314    A: *mut f32,
15315    lda: *const lapackint,
15316    W: *mut f32,
15317    work: *mut f32,
15318    lwork: *const lapackint,
15319    iwork: *mut lapackint,
15320    liwork: *const lapackint,
15321    info: *mut lapackint,
15322);
15323
15324// SYEVR
15325define_lapack_ffi!(dsyevr, DsyevrFnPtr,
15326    jobz: *const c_char,
15327    range: *const c_char,
15328    uplo: *const c_char,
15329    n: *const lapackint,
15330    A: *mut f64,
15331    lda: *const lapackint,
15332    vl: *const f64,
15333    vu: *const f64,
15334    il: *const lapackint,
15335    iu: *const lapackint,
15336    abstol: *const f64,
15337    m: *mut lapackint,
15338    W: *mut f64,
15339    Z: *mut f64,
15340    ldz: *const lapackint,
15341    ISUPPZ: *mut lapackint,
15342    work: *mut f64,
15343    lwork: *const lapackint,
15344    iwork: *mut lapackint,
15345    liwork: *const lapackint,
15346    info: *mut lapackint,
15347);
15348
15349define_lapack_ffi!(ssyevr, SsyevrFnPtr,
15350    jobz: *const c_char,
15351    range: *const c_char,
15352    uplo: *const c_char,
15353    n: *const lapackint,
15354    A: *mut f32,
15355    lda: *const lapackint,
15356    vl: *const f32,
15357    vu: *const f32,
15358    il: *const lapackint,
15359    iu: *const lapackint,
15360    abstol: *const f32,
15361    m: *mut lapackint,
15362    W: *mut f32,
15363    Z: *mut f32,
15364    ldz: *const lapackint,
15365    ISUPPZ: *mut lapackint,
15366    work: *mut f32,
15367    lwork: *const lapackint,
15368    iwork: *mut lapackint,
15369    liwork: *const lapackint,
15370    info: *mut lapackint,
15371);
15372
15373// SYEVR_2STAGE
15374define_lapack_ffi!(dsyevr_2stage, Dsyevr_2stageFnPtr,
15375    jobz: *const c_char,
15376    range: *const c_char,
15377    uplo: *const c_char,
15378    n: *const lapackint,
15379    A: *mut f64,
15380    lda: *const lapackint,
15381    vl: *const f64,
15382    vu: *const f64,
15383    il: *const lapackint,
15384    iu: *const lapackint,
15385    abstol: *const f64,
15386    m: *mut lapackint,
15387    W: *mut f64,
15388    Z: *mut f64,
15389    ldz: *const lapackint,
15390    ISUPPZ: *mut lapackint,
15391    work: *mut f64,
15392    lwork: *const lapackint,
15393    iwork: *mut lapackint,
15394    liwork: *const lapackint,
15395    info: *mut lapackint,
15396);
15397
15398define_lapack_ffi!(ssyevr_2stage, Ssyevr_2stageFnPtr,
15399    jobz: *const c_char,
15400    range: *const c_char,
15401    uplo: *const c_char,
15402    n: *const lapackint,
15403    A: *mut f32,
15404    lda: *const lapackint,
15405    vl: *const f32,
15406    vu: *const f32,
15407    il: *const lapackint,
15408    iu: *const lapackint,
15409    abstol: *const f32,
15410    m: *mut lapackint,
15411    W: *mut f32,
15412    Z: *mut f32,
15413    ldz: *const lapackint,
15414    ISUPPZ: *mut lapackint,
15415    work: *mut f32,
15416    lwork: *const lapackint,
15417    iwork: *mut lapackint,
15418    liwork: *const lapackint,
15419    info: *mut lapackint,
15420);
15421
15422// SYEVX
15423define_lapack_ffi!(dsyevx, DsyevxFnPtr,
15424    jobz: *const c_char,
15425    range: *const c_char,
15426    uplo: *const c_char,
15427    n: *const lapackint,
15428    A: *mut f64,
15429    lda: *const lapackint,
15430    vl: *const f64,
15431    vu: *const f64,
15432    il: *const lapackint,
15433    iu: *const lapackint,
15434    abstol: *const f64,
15435    m: *mut lapackint,
15436    W: *mut f64,
15437    Z: *mut f64,
15438    ldz: *const lapackint,
15439    work: *mut f64,
15440    lwork: *const lapackint,
15441    iwork: *mut lapackint,
15442    IFAIL: *mut lapackint,
15443    info: *mut lapackint,
15444);
15445
15446define_lapack_ffi!(ssyevx, SsyevxFnPtr,
15447    jobz: *const c_char,
15448    range: *const c_char,
15449    uplo: *const c_char,
15450    n: *const lapackint,
15451    A: *mut f32,
15452    lda: *const lapackint,
15453    vl: *const f32,
15454    vu: *const f32,
15455    il: *const lapackint,
15456    iu: *const lapackint,
15457    abstol: *const f32,
15458    m: *mut lapackint,
15459    W: *mut f32,
15460    Z: *mut f32,
15461    ldz: *const lapackint,
15462    work: *mut f32,
15463    lwork: *const lapackint,
15464    iwork: *mut lapackint,
15465    IFAIL: *mut lapackint,
15466    info: *mut lapackint,
15467);
15468
15469// SYEVX_2STAGE
15470define_lapack_ffi!(dsyevx_2stage, Dsyevx_2stageFnPtr,
15471    jobz: *const c_char,
15472    range: *const c_char,
15473    uplo: *const c_char,
15474    n: *const lapackint,
15475    A: *mut f64,
15476    lda: *const lapackint,
15477    vl: *const f64,
15478    vu: *const f64,
15479    il: *const lapackint,
15480    iu: *const lapackint,
15481    abstol: *const f64,
15482    m: *mut lapackint,
15483    W: *mut f64,
15484    Z: *mut f64,
15485    ldz: *const lapackint,
15486    work: *mut f64,
15487    lwork: *const lapackint,
15488    iwork: *mut lapackint,
15489    IFAIL: *mut lapackint,
15490    info: *mut lapackint,
15491);
15492
15493define_lapack_ffi!(ssyevx_2stage, Ssyevx_2stageFnPtr,
15494    jobz: *const c_char,
15495    range: *const c_char,
15496    uplo: *const c_char,
15497    n: *const lapackint,
15498    A: *mut f32,
15499    lda: *const lapackint,
15500    vl: *const f32,
15501    vu: *const f32,
15502    il: *const lapackint,
15503    iu: *const lapackint,
15504    abstol: *const f32,
15505    m: *mut lapackint,
15506    W: *mut f32,
15507    Z: *mut f32,
15508    ldz: *const lapackint,
15509    work: *mut f32,
15510    lwork: *const lapackint,
15511    iwork: *mut lapackint,
15512    IFAIL: *mut lapackint,
15513    info: *mut lapackint,
15514);
15515
15516// SYGST
15517define_lapack_ffi!(dsygst, DsygstFnPtr,
15518    itype: *const lapackint,
15519    uplo: *const c_char,
15520    n: *const lapackint,
15521    A: *mut f64,
15522    lda: *const lapackint,
15523    B: *const f64,
15524    ldb: *const lapackint,
15525    info: *mut lapackint,
15526);
15527
15528define_lapack_ffi!(ssygst, SsygstFnPtr,
15529    itype: *const lapackint,
15530    uplo: *const c_char,
15531    n: *const lapackint,
15532    A: *mut f32,
15533    lda: *const lapackint,
15534    B: *const f32,
15535    ldb: *const lapackint,
15536    info: *mut lapackint,
15537);
15538
15539// SYGV
15540define_lapack_ffi!(dsygv, DsygvFnPtr,
15541    itype: *const lapackint,
15542    jobz: *const c_char,
15543    uplo: *const c_char,
15544    n: *const lapackint,
15545    A: *mut f64,
15546    lda: *const lapackint,
15547    B: *mut f64,
15548    ldb: *const lapackint,
15549    W: *mut f64,
15550    work: *mut f64,
15551    lwork: *const lapackint,
15552    info: *mut lapackint,
15553);
15554
15555define_lapack_ffi!(ssygv, SsygvFnPtr,
15556    itype: *const lapackint,
15557    jobz: *const c_char,
15558    uplo: *const c_char,
15559    n: *const lapackint,
15560    A: *mut f32,
15561    lda: *const lapackint,
15562    B: *mut f32,
15563    ldb: *const lapackint,
15564    W: *mut f32,
15565    work: *mut f32,
15566    lwork: *const lapackint,
15567    info: *mut lapackint,
15568);
15569
15570// SYGV_2STAGE
15571define_lapack_ffi!(dsygv_2stage, Dsygv_2stageFnPtr,
15572    itype: *const lapackint,
15573    jobz: *const c_char,
15574    uplo: *const c_char,
15575    n: *const lapackint,
15576    A: *mut f64,
15577    lda: *const lapackint,
15578    B: *mut f64,
15579    ldb: *const lapackint,
15580    W: *mut f64,
15581    work: *mut f64,
15582    lwork: *const lapackint,
15583    info: *mut lapackint,
15584);
15585
15586define_lapack_ffi!(ssygv_2stage, Ssygv_2stageFnPtr,
15587    itype: *const lapackint,
15588    jobz: *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    W: *mut f32,
15596    work: *mut f32,
15597    lwork: *const lapackint,
15598    info: *mut lapackint,
15599);
15600
15601// SYGVD
15602define_lapack_ffi!(dsygvd, DsygvdFnPtr,
15603    itype: *const lapackint,
15604    jobz: *const c_char,
15605    uplo: *const c_char,
15606    n: *const lapackint,
15607    A: *mut f64,
15608    lda: *const lapackint,
15609    B: *mut f64,
15610    ldb: *const lapackint,
15611    W: *mut f64,
15612    work: *mut f64,
15613    lwork: *const lapackint,
15614    iwork: *mut lapackint,
15615    liwork: *const lapackint,
15616    info: *mut lapackint,
15617);
15618
15619define_lapack_ffi!(ssygvd, SsygvdFnPtr,
15620    itype: *const lapackint,
15621    jobz: *const c_char,
15622    uplo: *const c_char,
15623    n: *const lapackint,
15624    A: *mut f32,
15625    lda: *const lapackint,
15626    B: *mut f32,
15627    ldb: *const lapackint,
15628    W: *mut f32,
15629    work: *mut f32,
15630    lwork: *const lapackint,
15631    iwork: *mut lapackint,
15632    liwork: *const lapackint,
15633    info: *mut lapackint,
15634);
15635
15636// SYGVX
15637define_lapack_ffi!(dsygvx, DsygvxFnPtr,
15638    itype: *const lapackint,
15639    jobz: *const c_char,
15640    range: *const c_char,
15641    uplo: *const c_char,
15642    n: *const lapackint,
15643    A: *mut f64,
15644    lda: *const lapackint,
15645    B: *mut f64,
15646    ldb: *const lapackint,
15647    vl: *const f64,
15648    vu: *const f64,
15649    il: *const lapackint,
15650    iu: *const lapackint,
15651    abstol: *const f64,
15652    m: *mut lapackint,
15653    W: *mut f64,
15654    Z: *mut f64,
15655    ldz: *const lapackint,
15656    work: *mut f64,
15657    lwork: *const lapackint,
15658    iwork: *mut lapackint,
15659    IFAIL: *mut lapackint,
15660    info: *mut lapackint,
15661);
15662
15663define_lapack_ffi!(ssygvx, SsygvxFnPtr,
15664    itype: *const lapackint,
15665    jobz: *const c_char,
15666    range: *const c_char,
15667    uplo: *const c_char,
15668    n: *const lapackint,
15669    A: *mut f32,
15670    lda: *const lapackint,
15671    B: *mut f32,
15672    ldb: *const lapackint,
15673    vl: *const f32,
15674    vu: *const f32,
15675    il: *const lapackint,
15676    iu: *const lapackint,
15677    abstol: *const f32,
15678    m: *mut lapackint,
15679    W: *mut f32,
15680    Z: *mut f32,
15681    ldz: *const lapackint,
15682    work: *mut f32,
15683    lwork: *const lapackint,
15684    iwork: *mut lapackint,
15685    IFAIL: *mut lapackint,
15686    info: *mut lapackint,
15687);
15688
15689// SYR
15690define_lapack_ffi!(csyr, CsyrFnPtr,
15691    uplo: *const c_char,
15692    n: *const lapackint,
15693    alpha: *const Complex32,
15694    X: *const Complex32,
15695    incx: *const lapackint,
15696    A: *mut Complex32,
15697    lda: *const lapackint,
15698);
15699
15700define_lapack_ffi!(zsyr, ZsyrFnPtr,
15701    uplo: *const c_char,
15702    n: *const lapackint,
15703    alpha: *const Complex64,
15704    X: *const Complex64,
15705    incx: *const lapackint,
15706    A: *mut Complex64,
15707    lda: *const lapackint,
15708);
15709
15710// SYRFS
15711define_lapack_ffi!(csyrfs, CsyrfsFnPtr,
15712    uplo: *const c_char,
15713    n: *const lapackint,
15714    nrhs: *const lapackint,
15715    A: *const Complex32,
15716    lda: *const lapackint,
15717    AF: *const Complex32,
15718    ldaf: *const lapackint,
15719    ipiv: *const lapackint,
15720    B: *const Complex32,
15721    ldb: *const lapackint,
15722    X: *mut Complex32,
15723    ldx: *const lapackint,
15724    ferr: *mut f32,
15725    berr: *mut f32,
15726    work: *mut Complex32,
15727    rwork: *mut f32,
15728    info: *mut lapackint,
15729);
15730
15731define_lapack_ffi!(dsyrfs, DsyrfsFnPtr,
15732    uplo: *const c_char,
15733    n: *const lapackint,
15734    nrhs: *const lapackint,
15735    A: *const f64,
15736    lda: *const lapackint,
15737    AF: *const f64,
15738    ldaf: *const lapackint,
15739    ipiv: *const lapackint,
15740    B: *const f64,
15741    ldb: *const lapackint,
15742    X: *mut f64,
15743    ldx: *const lapackint,
15744    ferr: *mut f64,
15745    berr: *mut f64,
15746    work: *mut f64,
15747    iwork: *mut lapackint,
15748    info: *mut lapackint,
15749);
15750
15751define_lapack_ffi!(ssyrfs, SsyrfsFnPtr,
15752    uplo: *const c_char,
15753    n: *const lapackint,
15754    nrhs: *const lapackint,
15755    A: *const f32,
15756    lda: *const lapackint,
15757    AF: *const f32,
15758    ldaf: *const lapackint,
15759    ipiv: *const lapackint,
15760    B: *const f32,
15761    ldb: *const lapackint,
15762    X: *mut f32,
15763    ldx: *const lapackint,
15764    ferr: *mut f32,
15765    berr: *mut f32,
15766    work: *mut f32,
15767    iwork: *mut lapackint,
15768    info: *mut lapackint,
15769);
15770
15771define_lapack_ffi!(zsyrfs, ZsyrfsFnPtr,
15772    uplo: *const c_char,
15773    n: *const lapackint,
15774    nrhs: *const lapackint,
15775    A: *const Complex64,
15776    lda: *const lapackint,
15777    AF: *const Complex64,
15778    ldaf: *const lapackint,
15779    ipiv: *const lapackint,
15780    B: *const Complex64,
15781    ldb: *const lapackint,
15782    X: *mut Complex64,
15783    ldx: *const lapackint,
15784    ferr: *mut f64,
15785    berr: *mut f64,
15786    work: *mut Complex64,
15787    rwork: *mut f64,
15788    info: *mut lapackint,
15789);
15790
15791// SYRFSX
15792define_lapack_ffi!(csyrfsx, CsyrfsxFnPtr,
15793    uplo: *const c_char,
15794    equed: *const c_char,
15795    n: *const lapackint,
15796    nrhs: *const lapackint,
15797    A: *const Complex32,
15798    lda: *const lapackint,
15799    AF: *const Complex32,
15800    ldaf: *const lapackint,
15801    ipiv: *const lapackint,
15802    S: *mut f32,
15803    B: *const Complex32,
15804    ldb: *const lapackint,
15805    X: *mut Complex32,
15806    ldx: *const lapackint,
15807    rcond: *mut f32,
15808    berr: *mut f32,
15809    n_err_bnds: *const lapackint,
15810    err_bnds_norm: *mut f32,
15811    err_bnds_comp: *mut f32,
15812    nparams: *const lapackint,
15813    params: *mut f32,
15814    work: *mut Complex32,
15815    rwork: *mut f32,
15816    info: *mut lapackint,
15817);
15818
15819define_lapack_ffi!(dsyrfsx, DsyrfsxFnPtr,
15820    uplo: *const c_char,
15821    equed: *const c_char,
15822    n: *const lapackint,
15823    nrhs: *const lapackint,
15824    A: *const f64,
15825    lda: *const lapackint,
15826    AF: *const f64,
15827    ldaf: *const lapackint,
15828    ipiv: *const lapackint,
15829    S: *mut f64,
15830    B: *const f64,
15831    ldb: *const lapackint,
15832    X: *mut f64,
15833    ldx: *const lapackint,
15834    rcond: *mut f64,
15835    berr: *mut f64,
15836    n_err_bnds: *const lapackint,
15837    err_bnds_norm: *mut f64,
15838    err_bnds_comp: *mut f64,
15839    nparams: *const lapackint,
15840    params: *mut f64,
15841    work: *mut f64,
15842    iwork: *mut lapackint,
15843    info: *mut lapackint,
15844);
15845
15846define_lapack_ffi!(ssyrfsx, SsyrfsxFnPtr,
15847    uplo: *const c_char,
15848    equed: *const c_char,
15849    n: *const lapackint,
15850    nrhs: *const lapackint,
15851    A: *const f32,
15852    lda: *const lapackint,
15853    AF: *const f32,
15854    ldaf: *const lapackint,
15855    ipiv: *const lapackint,
15856    S: *mut f32,
15857    B: *const f32,
15858    ldb: *const lapackint,
15859    X: *mut f32,
15860    ldx: *const lapackint,
15861    rcond: *mut f32,
15862    berr: *mut f32,
15863    n_err_bnds: *const lapackint,
15864    err_bnds_norm: *mut f32,
15865    err_bnds_comp: *mut f32,
15866    nparams: *const lapackint,
15867    params: *mut f32,
15868    work: *mut f32,
15869    iwork: *mut lapackint,
15870    info: *mut lapackint,
15871);
15872
15873define_lapack_ffi!(zsyrfsx, ZsyrfsxFnPtr,
15874    uplo: *const c_char,
15875    equed: *const c_char,
15876    n: *const lapackint,
15877    nrhs: *const lapackint,
15878    A: *const Complex64,
15879    lda: *const lapackint,
15880    AF: *const Complex64,
15881    ldaf: *const lapackint,
15882    ipiv: *const lapackint,
15883    S: *mut f64,
15884    B: *const Complex64,
15885    ldb: *const lapackint,
15886    X: *mut Complex64,
15887    ldx: *const lapackint,
15888    rcond: *mut f64,
15889    berr: *mut f64,
15890    n_err_bnds: *const lapackint,
15891    err_bnds_norm: *mut f64,
15892    err_bnds_comp: *mut f64,
15893    nparams: *const lapackint,
15894    params: *mut f64,
15895    work: *mut Complex64,
15896    rwork: *mut f64,
15897    info: *mut lapackint,
15898);
15899
15900// SYSV
15901define_lapack_ffi!(csysv, CsysvFnPtr,
15902    uplo: *const c_char,
15903    n: *const lapackint,
15904    nrhs: *const lapackint,
15905    A: *mut Complex32,
15906    lda: *const lapackint,
15907    ipiv: *mut lapackint,
15908    B: *mut Complex32,
15909    ldb: *const lapackint,
15910    work: *mut Complex32,
15911    lwork: *const lapackint,
15912    info: *mut lapackint,
15913);
15914
15915define_lapack_ffi!(dsysv, DsysvFnPtr,
15916    uplo: *const c_char,
15917    n: *const lapackint,
15918    nrhs: *const lapackint,
15919    A: *mut f64,
15920    lda: *const lapackint,
15921    ipiv: *mut lapackint,
15922    B: *mut f64,
15923    ldb: *const lapackint,
15924    work: *mut f64,
15925    lwork: *const lapackint,
15926    info: *mut lapackint,
15927);
15928
15929define_lapack_ffi!(ssysv, SsysvFnPtr,
15930    uplo: *const c_char,
15931    n: *const lapackint,
15932    nrhs: *const lapackint,
15933    A: *mut f32,
15934    lda: *const lapackint,
15935    ipiv: *mut lapackint,
15936    B: *mut f32,
15937    ldb: *const lapackint,
15938    work: *mut f32,
15939    lwork: *const lapackint,
15940    info: *mut lapackint,
15941);
15942
15943define_lapack_ffi!(zsysv, ZsysvFnPtr,
15944    uplo: *const c_char,
15945    n: *const lapackint,
15946    nrhs: *const lapackint,
15947    A: *mut Complex64,
15948    lda: *const lapackint,
15949    ipiv: *mut lapackint,
15950    B: *mut Complex64,
15951    ldb: *const lapackint,
15952    work: *mut Complex64,
15953    lwork: *const lapackint,
15954    info: *mut lapackint,
15955);
15956
15957// SYSV_AA
15958define_lapack_ffi!(csysv_aa, Csysv_aaFnPtr,
15959    uplo: *const c_char,
15960    n: *const lapackint,
15961    nrhs: *const lapackint,
15962    A: *mut Complex32,
15963    lda: *const lapackint,
15964    ipiv: *mut lapackint,
15965    B: *mut Complex32,
15966    ldb: *const lapackint,
15967    work: *mut Complex32,
15968    lwork: *const lapackint,
15969    info: *mut lapackint,
15970);
15971
15972define_lapack_ffi!(dsysv_aa, Dsysv_aaFnPtr,
15973    uplo: *const c_char,
15974    n: *const lapackint,
15975    nrhs: *const lapackint,
15976    A: *mut f64,
15977    lda: *const lapackint,
15978    ipiv: *mut lapackint,
15979    B: *mut f64,
15980    ldb: *const lapackint,
15981    work: *mut f64,
15982    lwork: *const lapackint,
15983    info: *mut lapackint,
15984);
15985
15986define_lapack_ffi!(ssysv_aa, Ssysv_aaFnPtr,
15987    uplo: *const c_char,
15988    n: *const lapackint,
15989    nrhs: *const lapackint,
15990    A: *mut f32,
15991    lda: *const lapackint,
15992    ipiv: *mut lapackint,
15993    B: *mut f32,
15994    ldb: *const lapackint,
15995    work: *mut f32,
15996    lwork: *const lapackint,
15997    info: *mut lapackint,
15998);
15999
16000define_lapack_ffi!(zsysv_aa, Zsysv_aaFnPtr,
16001    uplo: *const c_char,
16002    n: *const lapackint,
16003    nrhs: *const lapackint,
16004    A: *mut Complex64,
16005    lda: *const lapackint,
16006    ipiv: *mut lapackint,
16007    B: *mut Complex64,
16008    ldb: *const lapackint,
16009    work: *mut Complex64,
16010    lwork: *const lapackint,
16011    info: *mut lapackint,
16012);
16013
16014// SYSV_AA_2STAGE
16015define_lapack_ffi!(csysv_aa_2stage, Csysv_aa_2stageFnPtr,
16016    uplo: *const c_char,
16017    n: *const lapackint,
16018    nrhs: *const lapackint,
16019    A: *mut Complex32,
16020    lda: *const lapackint,
16021    TB: *mut Complex32,
16022    ltb: *const lapackint,
16023    ipiv: *mut lapackint,
16024    ipiv2: *mut lapackint,
16025    B: *mut Complex32,
16026    ldb: *const lapackint,
16027    work: *mut Complex32,
16028    lwork: *const lapackint,
16029    info: *mut lapackint,
16030);
16031
16032define_lapack_ffi!(dsysv_aa_2stage, Dsysv_aa_2stageFnPtr,
16033    uplo: *const c_char,
16034    n: *const lapackint,
16035    nrhs: *const lapackint,
16036    A: *mut f64,
16037    lda: *const lapackint,
16038    TB: *mut f64,
16039    ltb: *const lapackint,
16040    ipiv: *mut lapackint,
16041    ipiv2: *mut lapackint,
16042    B: *mut f64,
16043    ldb: *const lapackint,
16044    work: *mut f64,
16045    lwork: *const lapackint,
16046    info: *mut lapackint,
16047);
16048
16049define_lapack_ffi!(ssysv_aa_2stage, Ssysv_aa_2stageFnPtr,
16050    uplo: *const c_char,
16051    n: *const lapackint,
16052    nrhs: *const lapackint,
16053    A: *mut f32,
16054    lda: *const lapackint,
16055    TB: *mut f32,
16056    ltb: *const lapackint,
16057    ipiv: *mut lapackint,
16058    ipiv2: *mut lapackint,
16059    B: *mut f32,
16060    ldb: *const lapackint,
16061    work: *mut f32,
16062    lwork: *const lapackint,
16063    info: *mut lapackint,
16064);
16065
16066define_lapack_ffi!(zsysv_aa_2stage, Zsysv_aa_2stageFnPtr,
16067    uplo: *const c_char,
16068    n: *const lapackint,
16069    nrhs: *const lapackint,
16070    A: *mut Complex64,
16071    lda: *const lapackint,
16072    TB: *mut Complex64,
16073    ltb: *const lapackint,
16074    ipiv: *mut lapackint,
16075    ipiv2: *mut lapackint,
16076    B: *mut Complex64,
16077    ldb: *const lapackint,
16078    work: *mut Complex64,
16079    lwork: *const lapackint,
16080    info: *mut lapackint,
16081);
16082
16083// SYSV_RK
16084define_lapack_ffi!(csysv_rk, Csysv_rkFnPtr,
16085    uplo: *const c_char,
16086    n: *const lapackint,
16087    nrhs: *const lapackint,
16088    A: *mut Complex32,
16089    lda: *const lapackint,
16090    E: *mut Complex32,
16091    ipiv: *mut lapackint,
16092    B: *mut Complex32,
16093    ldb: *const lapackint,
16094    work: *mut Complex32,
16095    lwork: *const lapackint,
16096    info: *mut lapackint,
16097);
16098
16099define_lapack_ffi!(dsysv_rk, Dsysv_rkFnPtr,
16100    uplo: *const c_char,
16101    n: *const lapackint,
16102    nrhs: *const lapackint,
16103    A: *mut f64,
16104    lda: *const lapackint,
16105    E: *mut f64,
16106    ipiv: *mut lapackint,
16107    B: *mut f64,
16108    ldb: *const lapackint,
16109    work: *mut f64,
16110    lwork: *const lapackint,
16111    info: *mut lapackint,
16112);
16113
16114define_lapack_ffi!(ssysv_rk, Ssysv_rkFnPtr,
16115    uplo: *const c_char,
16116    n: *const lapackint,
16117    nrhs: *const lapackint,
16118    A: *mut f32,
16119    lda: *const lapackint,
16120    E: *mut f32,
16121    ipiv: *mut lapackint,
16122    B: *mut f32,
16123    ldb: *const lapackint,
16124    work: *mut f32,
16125    lwork: *const lapackint,
16126    info: *mut lapackint,
16127);
16128
16129define_lapack_ffi!(zsysv_rk, Zsysv_rkFnPtr,
16130    uplo: *const c_char,
16131    n: *const lapackint,
16132    nrhs: *const lapackint,
16133    A: *mut Complex64,
16134    lda: *const lapackint,
16135    E: *mut Complex64,
16136    ipiv: *mut lapackint,
16137    B: *mut Complex64,
16138    ldb: *const lapackint,
16139    work: *mut Complex64,
16140    lwork: *const lapackint,
16141    info: *mut lapackint,
16142);
16143
16144// SYSV_ROOK
16145define_lapack_ffi!(csysv_rook, Csysv_rookFnPtr,
16146    uplo: *const c_char,
16147    n: *const lapackint,
16148    nrhs: *const lapackint,
16149    A: *mut Complex32,
16150    lda: *const lapackint,
16151    ipiv: *mut lapackint,
16152    B: *mut Complex32,
16153    ldb: *const lapackint,
16154    work: *mut Complex32,
16155    lwork: *const lapackint,
16156    info: *mut lapackint,
16157);
16158
16159define_lapack_ffi!(dsysv_rook, Dsysv_rookFnPtr,
16160    uplo: *const c_char,
16161    n: *const lapackint,
16162    nrhs: *const lapackint,
16163    A: *mut f64,
16164    lda: *const lapackint,
16165    ipiv: *mut lapackint,
16166    B: *mut f64,
16167    ldb: *const lapackint,
16168    work: *mut f64,
16169    lwork: *const lapackint,
16170    info: *mut lapackint,
16171);
16172
16173define_lapack_ffi!(ssysv_rook, Ssysv_rookFnPtr,
16174    uplo: *const c_char,
16175    n: *const lapackint,
16176    nrhs: *const lapackint,
16177    A: *mut f32,
16178    lda: *const lapackint,
16179    ipiv: *mut lapackint,
16180    B: *mut f32,
16181    ldb: *const lapackint,
16182    work: *mut f32,
16183    lwork: *const lapackint,
16184    info: *mut lapackint,
16185);
16186
16187define_lapack_ffi!(zsysv_rook, Zsysv_rookFnPtr,
16188    uplo: *const c_char,
16189    n: *const lapackint,
16190    nrhs: *const lapackint,
16191    A: *mut Complex64,
16192    lda: *const lapackint,
16193    ipiv: *mut lapackint,
16194    B: *mut Complex64,
16195    ldb: *const lapackint,
16196    work: *mut Complex64,
16197    lwork: *const lapackint,
16198    info: *mut lapackint,
16199);
16200
16201// SYSVX
16202define_lapack_ffi!(csysvx, CsysvxFnPtr,
16203    fact: *const c_char,
16204    uplo: *const c_char,
16205    n: *const lapackint,
16206    nrhs: *const lapackint,
16207    A: *const Complex32,
16208    lda: *const lapackint,
16209    AF: *mut Complex32,
16210    ldaf: *const lapackint,
16211    ipiv: *mut lapackint,
16212    B: *const Complex32,
16213    ldb: *const lapackint,
16214    X: *mut Complex32,
16215    ldx: *const lapackint,
16216    rcond: *mut f32,
16217    ferr: *mut f32,
16218    berr: *mut f32,
16219    work: *mut Complex32,
16220    lwork: *const lapackint,
16221    rwork: *mut f32,
16222    info: *mut lapackint,
16223);
16224
16225define_lapack_ffi!(dsysvx, DsysvxFnPtr,
16226    fact: *const c_char,
16227    uplo: *const c_char,
16228    n: *const lapackint,
16229    nrhs: *const lapackint,
16230    A: *const f64,
16231    lda: *const lapackint,
16232    AF: *mut f64,
16233    ldaf: *const lapackint,
16234    ipiv: *mut lapackint,
16235    B: *const f64,
16236    ldb: *const lapackint,
16237    X: *mut f64,
16238    ldx: *const lapackint,
16239    rcond: *mut f64,
16240    ferr: *mut f64,
16241    berr: *mut f64,
16242    work: *mut f64,
16243    lwork: *const lapackint,
16244    iwork: *mut lapackint,
16245    info: *mut lapackint,
16246);
16247
16248define_lapack_ffi!(ssysvx, SsysvxFnPtr,
16249    fact: *const c_char,
16250    uplo: *const c_char,
16251    n: *const lapackint,
16252    nrhs: *const lapackint,
16253    A: *const f32,
16254    lda: *const lapackint,
16255    AF: *mut f32,
16256    ldaf: *const lapackint,
16257    ipiv: *mut lapackint,
16258    B: *const f32,
16259    ldb: *const lapackint,
16260    X: *mut f32,
16261    ldx: *const lapackint,
16262    rcond: *mut f32,
16263    ferr: *mut f32,
16264    berr: *mut f32,
16265    work: *mut f32,
16266    lwork: *const lapackint,
16267    iwork: *mut lapackint,
16268    info: *mut lapackint,
16269);
16270
16271define_lapack_ffi!(zsysvx, ZsysvxFnPtr,
16272    fact: *const c_char,
16273    uplo: *const c_char,
16274    n: *const lapackint,
16275    nrhs: *const lapackint,
16276    A: *const Complex64,
16277    lda: *const lapackint,
16278    AF: *mut Complex64,
16279    ldaf: *const lapackint,
16280    ipiv: *mut lapackint,
16281    B: *const Complex64,
16282    ldb: *const lapackint,
16283    X: *mut Complex64,
16284    ldx: *const lapackint,
16285    rcond: *mut f64,
16286    ferr: *mut f64,
16287    berr: *mut f64,
16288    work: *mut Complex64,
16289    lwork: *const lapackint,
16290    rwork: *mut f64,
16291    info: *mut lapackint,
16292);
16293
16294// SYSVXX
16295define_lapack_ffi!(csysvxx, CsysvxxFnPtr,
16296    fact: *const c_char,
16297    uplo: *const c_char,
16298    n: *const lapackint,
16299    nrhs: *const lapackint,
16300    A: *mut Complex32,
16301    lda: *const lapackint,
16302    AF: *mut Complex32,
16303    ldaf: *const lapackint,
16304    ipiv: *mut lapackint,
16305    equed: *mut c_char,
16306    S: *mut f32,
16307    B: *mut Complex32,
16308    ldb: *const lapackint,
16309    X: *mut Complex32,
16310    ldx: *const lapackint,
16311    rcond: *mut f32,
16312    rpvgrw: *mut f32,
16313    berr: *mut f32,
16314    n_err_bnds: *const lapackint,
16315    err_bnds_norm: *mut f32,
16316    err_bnds_comp: *mut f32,
16317    nparams: *const lapackint,
16318    params: *mut f32,
16319    work: *mut Complex32,
16320    rwork: *mut f32,
16321    info: *mut lapackint,
16322);
16323
16324define_lapack_ffi!(dsysvxx, DsysvxxFnPtr,
16325    fact: *const c_char,
16326    uplo: *const c_char,
16327    n: *const lapackint,
16328    nrhs: *const lapackint,
16329    A: *mut f64,
16330    lda: *const lapackint,
16331    AF: *mut f64,
16332    ldaf: *const lapackint,
16333    ipiv: *mut lapackint,
16334    equed: *mut c_char,
16335    S: *mut f64,
16336    B: *mut f64,
16337    ldb: *const lapackint,
16338    X: *mut f64,
16339    ldx: *const lapackint,
16340    rcond: *mut f64,
16341    rpvgrw: *mut f64,
16342    berr: *mut f64,
16343    n_err_bnds: *const lapackint,
16344    err_bnds_norm: *mut f64,
16345    err_bnds_comp: *mut f64,
16346    nparams: *const lapackint,
16347    params: *mut f64,
16348    work: *mut f64,
16349    iwork: *mut lapackint,
16350    info: *mut lapackint,
16351);
16352
16353define_lapack_ffi!(ssysvxx, SsysvxxFnPtr,
16354    fact: *const c_char,
16355    uplo: *const c_char,
16356    n: *const lapackint,
16357    nrhs: *const lapackint,
16358    A: *mut f32,
16359    lda: *const lapackint,
16360    AF: *mut f32,
16361    ldaf: *const lapackint,
16362    ipiv: *mut lapackint,
16363    equed: *mut c_char,
16364    S: *mut f32,
16365    B: *mut f32,
16366    ldb: *const lapackint,
16367    X: *mut f32,
16368    ldx: *const lapackint,
16369    rcond: *mut f32,
16370    rpvgrw: *mut f32,
16371    berr: *mut f32,
16372    n_err_bnds: *const lapackint,
16373    err_bnds_norm: *mut f32,
16374    err_bnds_comp: *mut f32,
16375    nparams: *const lapackint,
16376    params: *mut f32,
16377    work: *mut f32,
16378    iwork: *mut lapackint,
16379    info: *mut lapackint,
16380);
16381
16382define_lapack_ffi!(zsysvxx, ZsysvxxFnPtr,
16383    fact: *const c_char,
16384    uplo: *const c_char,
16385    n: *const lapackint,
16386    nrhs: *const lapackint,
16387    A: *mut Complex64,
16388    lda: *const lapackint,
16389    AF: *mut Complex64,
16390    ldaf: *const lapackint,
16391    ipiv: *mut lapackint,
16392    equed: *mut c_char,
16393    S: *mut f64,
16394    B: *mut Complex64,
16395    ldb: *const lapackint,
16396    X: *mut Complex64,
16397    ldx: *const lapackint,
16398    rcond: *mut f64,
16399    rpvgrw: *mut f64,
16400    berr: *mut f64,
16401    n_err_bnds: *const lapackint,
16402    err_bnds_norm: *mut f64,
16403    err_bnds_comp: *mut f64,
16404    nparams: *const lapackint,
16405    params: *mut f64,
16406    work: *mut Complex64,
16407    rwork: *mut f64,
16408    info: *mut lapackint,
16409);
16410
16411// SYSWAPR
16412define_lapack_ffi!(csyswapr, CsyswaprFnPtr,
16413    uplo: *const c_char,
16414    n: *const lapackint,
16415    A: *mut Complex32,
16416    lda: *const lapackint,
16417    i1: *const lapackint,
16418    i2: *const lapackint,
16419);
16420
16421define_lapack_ffi!(dsyswapr, DsyswaprFnPtr,
16422    uplo: *const c_char,
16423    n: *const lapackint,
16424    A: *mut f64,
16425    lda: *const lapackint,
16426    i1: *const lapackint,
16427    i2: *const lapackint,
16428);
16429
16430define_lapack_ffi!(ssyswapr, SsyswaprFnPtr,
16431    uplo: *const c_char,
16432    n: *const lapackint,
16433    A: *mut f32,
16434    lda: *const lapackint,
16435    i1: *const lapackint,
16436    i2: *const lapackint,
16437);
16438
16439define_lapack_ffi!(zsyswapr, ZsyswaprFnPtr,
16440    uplo: *const c_char,
16441    n: *const lapackint,
16442    A: *mut Complex64,
16443    lda: *const lapackint,
16444    i1: *const lapackint,
16445    i2: *const lapackint,
16446);
16447
16448// SYTRD
16449define_lapack_ffi!(dsytrd, DsytrdFnPtr,
16450    uplo: *const c_char,
16451    n: *const lapackint,
16452    A: *mut f64,
16453    lda: *const lapackint,
16454    D: *mut f64,
16455    E: *mut f64,
16456    tau: *mut f64,
16457    work: *mut f64,
16458    lwork: *const lapackint,
16459    info: *mut lapackint,
16460);
16461
16462define_lapack_ffi!(ssytrd, SsytrdFnPtr,
16463    uplo: *const c_char,
16464    n: *const lapackint,
16465    A: *mut f32,
16466    lda: *const lapackint,
16467    D: *mut f32,
16468    E: *mut f32,
16469    tau: *mut f32,
16470    work: *mut f32,
16471    lwork: *const lapackint,
16472    info: *mut lapackint,
16473);
16474
16475// SYTRD_2STAGE
16476define_lapack_ffi!(dsytrd_2stage, Dsytrd_2stageFnPtr,
16477    vect: *const c_char,
16478    uplo: *const c_char,
16479    n: *const lapackint,
16480    A: *mut f64,
16481    lda: *const lapackint,
16482    D: *mut f64,
16483    E: *mut f64,
16484    tau: *mut f64,
16485    HOUS2: *mut f64,
16486    lhous2: *const lapackint,
16487    work: *mut f64,
16488    lwork: *const lapackint,
16489    info: *mut lapackint,
16490);
16491
16492define_lapack_ffi!(ssytrd_2stage, Ssytrd_2stageFnPtr,
16493    vect: *const c_char,
16494    uplo: *const c_char,
16495    n: *const lapackint,
16496    A: *mut f32,
16497    lda: *const lapackint,
16498    D: *mut f32,
16499    E: *mut f32,
16500    tau: *mut f32,
16501    HOUS2: *mut f32,
16502    lhous2: *const lapackint,
16503    work: *mut f32,
16504    lwork: *const lapackint,
16505    info: *mut lapackint,
16506);
16507
16508// SYTRF
16509define_lapack_ffi!(csytrf, CsytrfFnPtr,
16510    uplo: *const c_char,
16511    n: *const lapackint,
16512    A: *mut Complex32,
16513    lda: *const lapackint,
16514    ipiv: *mut lapackint,
16515    work: *mut Complex32,
16516    lwork: *const lapackint,
16517    info: *mut lapackint,
16518);
16519
16520define_lapack_ffi!(dsytrf, DsytrfFnPtr,
16521    uplo: *const c_char,
16522    n: *const lapackint,
16523    A: *mut f64,
16524    lda: *const lapackint,
16525    ipiv: *mut lapackint,
16526    work: *mut f64,
16527    lwork: *const lapackint,
16528    info: *mut lapackint,
16529);
16530
16531define_lapack_ffi!(ssytrf, SsytrfFnPtr,
16532    uplo: *const c_char,
16533    n: *const lapackint,
16534    A: *mut f32,
16535    lda: *const lapackint,
16536    ipiv: *mut lapackint,
16537    work: *mut f32,
16538    lwork: *const lapackint,
16539    info: *mut lapackint,
16540);
16541
16542define_lapack_ffi!(zsytrf, ZsytrfFnPtr,
16543    uplo: *const c_char,
16544    n: *const lapackint,
16545    A: *mut Complex64,
16546    lda: *const lapackint,
16547    ipiv: *mut lapackint,
16548    work: *mut Complex64,
16549    lwork: *const lapackint,
16550    info: *mut lapackint,
16551);
16552
16553// SYTRF_AA
16554define_lapack_ffi!(csytrf_aa, Csytrf_aaFnPtr,
16555    uplo: *const c_char,
16556    n: *const lapackint,
16557    A: *mut Complex32,
16558    lda: *const lapackint,
16559    ipiv: *mut lapackint,
16560    work: *mut Complex32,
16561    lwork: *const lapackint,
16562    info: *mut lapackint,
16563);
16564
16565define_lapack_ffi!(dsytrf_aa, Dsytrf_aaFnPtr,
16566    uplo: *const c_char,
16567    n: *const lapackint,
16568    A: *mut f64,
16569    lda: *const lapackint,
16570    ipiv: *mut lapackint,
16571    work: *mut f64,
16572    lwork: *const lapackint,
16573    info: *mut lapackint,
16574);
16575
16576define_lapack_ffi!(ssytrf_aa, Ssytrf_aaFnPtr,
16577    uplo: *const c_char,
16578    n: *const lapackint,
16579    A: *mut f32,
16580    lda: *const lapackint,
16581    ipiv: *mut lapackint,
16582    work: *mut f32,
16583    lwork: *const lapackint,
16584    info: *mut lapackint,
16585);
16586
16587define_lapack_ffi!(zsytrf_aa, Zsytrf_aaFnPtr,
16588    uplo: *const c_char,
16589    n: *const lapackint,
16590    A: *mut Complex64,
16591    lda: *const lapackint,
16592    ipiv: *mut lapackint,
16593    work: *mut Complex64,
16594    lwork: *const lapackint,
16595    info: *mut lapackint,
16596);
16597
16598// SYTRF_AA_2STAGE
16599define_lapack_ffi!(csytrf_aa_2stage, Csytrf_aa_2stageFnPtr,
16600    uplo: *const c_char,
16601    n: *const lapackint,
16602    A: *mut Complex32,
16603    lda: *const lapackint,
16604    TB: *mut Complex32,
16605    ltb: *const lapackint,
16606    ipiv: *mut lapackint,
16607    ipiv2: *mut lapackint,
16608    work: *mut Complex32,
16609    lwork: *const lapackint,
16610    info: *mut lapackint,
16611);
16612
16613define_lapack_ffi!(dsytrf_aa_2stage, Dsytrf_aa_2stageFnPtr,
16614    uplo: *const c_char,
16615    n: *const lapackint,
16616    A: *mut f64,
16617    lda: *const lapackint,
16618    TB: *mut f64,
16619    ltb: *const lapackint,
16620    ipiv: *mut lapackint,
16621    ipiv2: *mut lapackint,
16622    work: *mut f64,
16623    lwork: *const lapackint,
16624    info: *mut lapackint,
16625);
16626
16627define_lapack_ffi!(ssytrf_aa_2stage, Ssytrf_aa_2stageFnPtr,
16628    uplo: *const c_char,
16629    n: *const lapackint,
16630    A: *mut f32,
16631    lda: *const lapackint,
16632    TB: *mut f32,
16633    ltb: *const lapackint,
16634    ipiv: *mut lapackint,
16635    ipiv2: *mut lapackint,
16636    work: *mut f32,
16637    lwork: *const lapackint,
16638    info: *mut lapackint,
16639);
16640
16641define_lapack_ffi!(zsytrf_aa_2stage, Zsytrf_aa_2stageFnPtr,
16642    uplo: *const c_char,
16643    n: *const lapackint,
16644    A: *mut Complex64,
16645    lda: *const lapackint,
16646    TB: *mut Complex64,
16647    ltb: *const lapackint,
16648    ipiv: *mut lapackint,
16649    ipiv2: *mut lapackint,
16650    work: *mut Complex64,
16651    lwork: *const lapackint,
16652    info: *mut lapackint,
16653);
16654
16655// SYTRF_RK
16656define_lapack_ffi!(csytrf_rk, Csytrf_rkFnPtr,
16657    uplo: *const c_char,
16658    n: *const lapackint,
16659    A: *mut Complex32,
16660    lda: *const lapackint,
16661    E: *mut Complex32,
16662    ipiv: *mut lapackint,
16663    work: *mut Complex32,
16664    lwork: *const lapackint,
16665    info: *mut lapackint,
16666);
16667
16668define_lapack_ffi!(dsytrf_rk, Dsytrf_rkFnPtr,
16669    uplo: *const c_char,
16670    n: *const lapackint,
16671    A: *mut f64,
16672    lda: *const lapackint,
16673    E: *mut f64,
16674    ipiv: *mut lapackint,
16675    work: *mut f64,
16676    lwork: *const lapackint,
16677    info: *mut lapackint,
16678);
16679
16680define_lapack_ffi!(ssytrf_rk, Ssytrf_rkFnPtr,
16681    uplo: *const c_char,
16682    n: *const lapackint,
16683    A: *mut f32,
16684    lda: *const lapackint,
16685    E: *mut f32,
16686    ipiv: *mut lapackint,
16687    work: *mut f32,
16688    lwork: *const lapackint,
16689    info: *mut lapackint,
16690);
16691
16692define_lapack_ffi!(zsytrf_rk, Zsytrf_rkFnPtr,
16693    uplo: *const c_char,
16694    n: *const lapackint,
16695    A: *mut Complex64,
16696    lda: *const lapackint,
16697    E: *mut Complex64,
16698    ipiv: *mut lapackint,
16699    work: *mut Complex64,
16700    lwork: *const lapackint,
16701    info: *mut lapackint,
16702);
16703
16704// SYTRF_ROOK
16705define_lapack_ffi!(csytrf_rook, Csytrf_rookFnPtr,
16706    uplo: *const c_char,
16707    n: *const lapackint,
16708    A: *mut Complex32,
16709    lda: *const lapackint,
16710    ipiv: *mut lapackint,
16711    work: *mut Complex32,
16712    lwork: *const lapackint,
16713    info: *mut lapackint,
16714);
16715
16716define_lapack_ffi!(dsytrf_rook, Dsytrf_rookFnPtr,
16717    uplo: *const c_char,
16718    n: *const lapackint,
16719    A: *mut f64,
16720    lda: *const lapackint,
16721    ipiv: *mut lapackint,
16722    work: *mut f64,
16723    lwork: *const lapackint,
16724    info: *mut lapackint,
16725);
16726
16727define_lapack_ffi!(ssytrf_rook, Ssytrf_rookFnPtr,
16728    uplo: *const c_char,
16729    n: *const lapackint,
16730    A: *mut f32,
16731    lda: *const lapackint,
16732    ipiv: *mut lapackint,
16733    work: *mut f32,
16734    lwork: *const lapackint,
16735    info: *mut lapackint,
16736);
16737
16738define_lapack_ffi!(zsytrf_rook, Zsytrf_rookFnPtr,
16739    uplo: *const c_char,
16740    n: *const lapackint,
16741    A: *mut Complex64,
16742    lda: *const lapackint,
16743    ipiv: *mut lapackint,
16744    work: *mut Complex64,
16745    lwork: *const lapackint,
16746    info: *mut lapackint,
16747);
16748
16749// SYTRI
16750define_lapack_ffi!(csytri, CsytriFnPtr,
16751    uplo: *const c_char,
16752    n: *const lapackint,
16753    A: *mut Complex32,
16754    lda: *const lapackint,
16755    ipiv: *const lapackint,
16756    work: *mut Complex32,
16757    info: *mut lapackint,
16758);
16759
16760define_lapack_ffi!(dsytri, DsytriFnPtr,
16761    uplo: *const c_char,
16762    n: *const lapackint,
16763    A: *mut f64,
16764    lda: *const lapackint,
16765    ipiv: *const lapackint,
16766    work: *mut f64,
16767    info: *mut lapackint,
16768);
16769
16770define_lapack_ffi!(ssytri, SsytriFnPtr,
16771    uplo: *const c_char,
16772    n: *const lapackint,
16773    A: *mut f32,
16774    lda: *const lapackint,
16775    ipiv: *const lapackint,
16776    work: *mut f32,
16777    info: *mut lapackint,
16778);
16779
16780define_lapack_ffi!(zsytri, ZsytriFnPtr,
16781    uplo: *const c_char,
16782    n: *const lapackint,
16783    A: *mut Complex64,
16784    lda: *const lapackint,
16785    ipiv: *const lapackint,
16786    work: *mut Complex64,
16787    info: *mut lapackint,
16788);
16789
16790// SYTRI2
16791define_lapack_ffi!(csytri2, Csytri2FnPtr,
16792    uplo: *const c_char,
16793    n: *const lapackint,
16794    A: *mut Complex32,
16795    lda: *const lapackint,
16796    ipiv: *const lapackint,
16797    work: *mut Complex32,
16798    lwork: *const lapackint,
16799    info: *mut lapackint,
16800);
16801
16802define_lapack_ffi!(dsytri2, Dsytri2FnPtr,
16803    uplo: *const c_char,
16804    n: *const lapackint,
16805    A: *mut f64,
16806    lda: *const lapackint,
16807    ipiv: *const lapackint,
16808    work: *mut f64,
16809    lwork: *const lapackint,
16810    info: *mut lapackint,
16811);
16812
16813define_lapack_ffi!(ssytri2, Ssytri2FnPtr,
16814    uplo: *const c_char,
16815    n: *const lapackint,
16816    A: *mut f32,
16817    lda: *const lapackint,
16818    ipiv: *const lapackint,
16819    work: *mut f32,
16820    lwork: *const lapackint,
16821    info: *mut lapackint,
16822);
16823
16824define_lapack_ffi!(zsytri2, Zsytri2FnPtr,
16825    uplo: *const c_char,
16826    n: *const lapackint,
16827    A: *mut Complex64,
16828    lda: *const lapackint,
16829    ipiv: *const lapackint,
16830    work: *mut Complex64,
16831    lwork: *const lapackint,
16832    info: *mut lapackint,
16833);
16834
16835// SYTRI2X
16836define_lapack_ffi!(csytri2x, Csytri2xFnPtr,
16837    uplo: *const c_char,
16838    n: *const lapackint,
16839    A: *mut Complex32,
16840    lda: *const lapackint,
16841    ipiv: *const lapackint,
16842    work: *mut Complex32,
16843    nb: *const lapackint,
16844    info: *mut lapackint,
16845);
16846
16847define_lapack_ffi!(dsytri2x, Dsytri2xFnPtr,
16848    uplo: *const c_char,
16849    n: *const lapackint,
16850    A: *mut f64,
16851    lda: *const lapackint,
16852    ipiv: *const lapackint,
16853    work: *mut f64,
16854    nb: *const lapackint,
16855    info: *mut lapackint,
16856);
16857
16858define_lapack_ffi!(ssytri2x, Ssytri2xFnPtr,
16859    uplo: *const c_char,
16860    n: *const lapackint,
16861    A: *mut f32,
16862    lda: *const lapackint,
16863    ipiv: *const lapackint,
16864    work: *mut f32,
16865    nb: *const lapackint,
16866    info: *mut lapackint,
16867);
16868
16869define_lapack_ffi!(zsytri2x, Zsytri2xFnPtr,
16870    uplo: *const c_char,
16871    n: *const lapackint,
16872    A: *mut Complex64,
16873    lda: *const lapackint,
16874    ipiv: *const lapackint,
16875    work: *mut Complex64,
16876    nb: *const lapackint,
16877    info: *mut lapackint,
16878);
16879
16880// SYTRI_3
16881define_lapack_ffi!(csytri_3, Csytri_3FnPtr,
16882    uplo: *const c_char,
16883    n: *const lapackint,
16884    A: *mut Complex32,
16885    lda: *const lapackint,
16886    E: *const Complex32,
16887    ipiv: *const lapackint,
16888    work: *mut Complex32,
16889    lwork: *const lapackint,
16890    info: *mut lapackint,
16891);
16892
16893define_lapack_ffi!(dsytri_3, Dsytri_3FnPtr,
16894    uplo: *const c_char,
16895    n: *const lapackint,
16896    A: *mut f64,
16897    lda: *const lapackint,
16898    E: *const f64,
16899    ipiv: *const lapackint,
16900    work: *mut f64,
16901    lwork: *const lapackint,
16902    info: *mut lapackint,
16903);
16904
16905define_lapack_ffi!(ssytri_3, Ssytri_3FnPtr,
16906    uplo: *const c_char,
16907    n: *const lapackint,
16908    A: *mut f32,
16909    lda: *const lapackint,
16910    E: *const f32,
16911    ipiv: *const lapackint,
16912    work: *mut f32,
16913    lwork: *const lapackint,
16914    info: *mut lapackint,
16915);
16916
16917define_lapack_ffi!(zsytri_3, Zsytri_3FnPtr,
16918    uplo: *const c_char,
16919    n: *const lapackint,
16920    A: *mut Complex64,
16921    lda: *const lapackint,
16922    E: *const Complex64,
16923    ipiv: *const lapackint,
16924    work: *mut Complex64,
16925    lwork: *const lapackint,
16926    info: *mut lapackint,
16927);
16928
16929// SYTRS
16930define_lapack_ffi!(csytrs, CsytrsFnPtr,
16931    uplo: *const c_char,
16932    n: *const lapackint,
16933    nrhs: *const lapackint,
16934    A: *const Complex32,
16935    lda: *const lapackint,
16936    ipiv: *const lapackint,
16937    B: *mut Complex32,
16938    ldb: *const lapackint,
16939    info: *mut lapackint,
16940);
16941
16942define_lapack_ffi!(dsytrs, DsytrsFnPtr,
16943    uplo: *const c_char,
16944    n: *const lapackint,
16945    nrhs: *const lapackint,
16946    A: *const f64,
16947    lda: *const lapackint,
16948    ipiv: *const lapackint,
16949    B: *mut f64,
16950    ldb: *const lapackint,
16951    info: *mut lapackint,
16952);
16953
16954define_lapack_ffi!(ssytrs, SsytrsFnPtr,
16955    uplo: *const c_char,
16956    n: *const lapackint,
16957    nrhs: *const lapackint,
16958    A: *const f32,
16959    lda: *const lapackint,
16960    ipiv: *const lapackint,
16961    B: *mut f32,
16962    ldb: *const lapackint,
16963    info: *mut lapackint,
16964);
16965
16966define_lapack_ffi!(zsytrs, ZsytrsFnPtr,
16967    uplo: *const c_char,
16968    n: *const lapackint,
16969    nrhs: *const lapackint,
16970    A: *const Complex64,
16971    lda: *const lapackint,
16972    ipiv: *const lapackint,
16973    B: *mut Complex64,
16974    ldb: *const lapackint,
16975    info: *mut lapackint,
16976);
16977
16978// SYTRS2
16979define_lapack_ffi!(csytrs2, Csytrs2FnPtr,
16980    uplo: *const c_char,
16981    n: *const lapackint,
16982    nrhs: *const lapackint,
16983    A: *mut Complex32,
16984    lda: *const lapackint,
16985    ipiv: *const lapackint,
16986    B: *mut Complex32,
16987    ldb: *const lapackint,
16988    work: *mut Complex32,
16989    info: *mut lapackint,
16990);
16991
16992define_lapack_ffi!(dsytrs2, Dsytrs2FnPtr,
16993    uplo: *const c_char,
16994    n: *const lapackint,
16995    nrhs: *const lapackint,
16996    A: *mut f64,
16997    lda: *const lapackint,
16998    ipiv: *const lapackint,
16999    B: *mut f64,
17000    ldb: *const lapackint,
17001    work: *mut f64,
17002    info: *mut lapackint,
17003);
17004
17005define_lapack_ffi!(ssytrs2, Ssytrs2FnPtr,
17006    uplo: *const c_char,
17007    n: *const lapackint,
17008    nrhs: *const lapackint,
17009    A: *mut f32,
17010    lda: *const lapackint,
17011    ipiv: *const lapackint,
17012    B: *mut f32,
17013    ldb: *const lapackint,
17014    work: *mut f32,
17015    info: *mut lapackint,
17016);
17017
17018define_lapack_ffi!(zsytrs2, Zsytrs2FnPtr,
17019    uplo: *const c_char,
17020    n: *const lapackint,
17021    nrhs: *const lapackint,
17022    A: *mut Complex64,
17023    lda: *const lapackint,
17024    ipiv: *const lapackint,
17025    B: *mut Complex64,
17026    ldb: *const lapackint,
17027    work: *mut Complex64,
17028    info: *mut lapackint,
17029);
17030
17031// SYTRS_3
17032define_lapack_ffi!(csytrs_3, Csytrs_3FnPtr,
17033    uplo: *const c_char,
17034    n: *const lapackint,
17035    nrhs: *const lapackint,
17036    A: *const Complex32,
17037    lda: *const lapackint,
17038    E: *const Complex32,
17039    ipiv: *const lapackint,
17040    B: *mut Complex32,
17041    ldb: *const lapackint,
17042    info: *mut lapackint,
17043);
17044
17045define_lapack_ffi!(dsytrs_3, Dsytrs_3FnPtr,
17046    uplo: *const c_char,
17047    n: *const lapackint,
17048    nrhs: *const lapackint,
17049    A: *const f64,
17050    lda: *const lapackint,
17051    E: *const f64,
17052    ipiv: *const lapackint,
17053    B: *mut f64,
17054    ldb: *const lapackint,
17055    info: *mut lapackint,
17056);
17057
17058define_lapack_ffi!(ssytrs_3, Ssytrs_3FnPtr,
17059    uplo: *const c_char,
17060    n: *const lapackint,
17061    nrhs: *const lapackint,
17062    A: *const f32,
17063    lda: *const lapackint,
17064    E: *const f32,
17065    ipiv: *const lapackint,
17066    B: *mut f32,
17067    ldb: *const lapackint,
17068    info: *mut lapackint,
17069);
17070
17071define_lapack_ffi!(zsytrs_3, Zsytrs_3FnPtr,
17072    uplo: *const c_char,
17073    n: *const lapackint,
17074    nrhs: *const lapackint,
17075    A: *const Complex64,
17076    lda: *const lapackint,
17077    E: *const Complex64,
17078    ipiv: *const lapackint,
17079    B: *mut Complex64,
17080    ldb: *const lapackint,
17081    info: *mut lapackint,
17082);
17083
17084// SYTRS_AA
17085define_lapack_ffi!(csytrs_aa, Csytrs_aaFnPtr,
17086    uplo: *const c_char,
17087    n: *const lapackint,
17088    nrhs: *const lapackint,
17089    A: *const Complex32,
17090    lda: *const lapackint,
17091    ipiv: *const lapackint,
17092    B: *mut Complex32,
17093    ldb: *const lapackint,
17094    work: *mut Complex32,
17095    lwork: *const lapackint,
17096    info: *mut lapackint,
17097);
17098
17099define_lapack_ffi!(dsytrs_aa, Dsytrs_aaFnPtr,
17100    uplo: *const c_char,
17101    n: *const lapackint,
17102    nrhs: *const lapackint,
17103    A: *const f64,
17104    lda: *const lapackint,
17105    ipiv: *const lapackint,
17106    B: *mut f64,
17107    ldb: *const lapackint,
17108    work: *mut f64,
17109    lwork: *const lapackint,
17110    info: *mut lapackint,
17111);
17112
17113define_lapack_ffi!(ssytrs_aa, Ssytrs_aaFnPtr,
17114    uplo: *const c_char,
17115    n: *const lapackint,
17116    nrhs: *const lapackint,
17117    A: *const f32,
17118    lda: *const lapackint,
17119    ipiv: *const lapackint,
17120    B: *mut f32,
17121    ldb: *const lapackint,
17122    work: *mut f32,
17123    lwork: *const lapackint,
17124    info: *mut lapackint,
17125);
17126
17127define_lapack_ffi!(zsytrs_aa, Zsytrs_aaFnPtr,
17128    uplo: *const c_char,
17129    n: *const lapackint,
17130    nrhs: *const lapackint,
17131    A: *const Complex64,
17132    lda: *const lapackint,
17133    ipiv: *const lapackint,
17134    B: *mut Complex64,
17135    ldb: *const lapackint,
17136    work: *mut Complex64,
17137    lwork: *const lapackint,
17138    info: *mut lapackint,
17139);
17140
17141// SYTRS_AA_2STAGE
17142define_lapack_ffi!(csytrs_aa_2stage, Csytrs_aa_2stageFnPtr,
17143    uplo: *const c_char,
17144    n: *const lapackint,
17145    nrhs: *const lapackint,
17146    A: *const Complex32,
17147    lda: *const lapackint,
17148    TB: *mut Complex32,
17149    ltb: *const lapackint,
17150    ipiv: *const lapackint,
17151    ipiv2: *const lapackint,
17152    B: *mut Complex32,
17153    ldb: *const lapackint,
17154    info: *mut lapackint,
17155);
17156
17157define_lapack_ffi!(dsytrs_aa_2stage, Dsytrs_aa_2stageFnPtr,
17158    uplo: *const c_char,
17159    n: *const lapackint,
17160    nrhs: *const lapackint,
17161    A: *const f64,
17162    lda: *const lapackint,
17163    TB: *mut f64,
17164    ltb: *const lapackint,
17165    ipiv: *const lapackint,
17166    ipiv2: *const lapackint,
17167    B: *mut f64,
17168    ldb: *const lapackint,
17169    info: *mut lapackint,
17170);
17171
17172define_lapack_ffi!(ssytrs_aa_2stage, Ssytrs_aa_2stageFnPtr,
17173    uplo: *const c_char,
17174    n: *const lapackint,
17175    nrhs: *const lapackint,
17176    A: *const f32,
17177    lda: *const lapackint,
17178    TB: *mut f32,
17179    ltb: *const lapackint,
17180    ipiv: *const lapackint,
17181    ipiv2: *const lapackint,
17182    B: *mut f32,
17183    ldb: *const lapackint,
17184    info: *mut lapackint,
17185);
17186
17187define_lapack_ffi!(zsytrs_aa_2stage, Zsytrs_aa_2stageFnPtr,
17188    uplo: *const c_char,
17189    n: *const lapackint,
17190    nrhs: *const lapackint,
17191    A: *const Complex64,
17192    lda: *const lapackint,
17193    TB: *mut Complex64,
17194    ltb: *const lapackint,
17195    ipiv: *const lapackint,
17196    ipiv2: *const lapackint,
17197    B: *mut Complex64,
17198    ldb: *const lapackint,
17199    info: *mut lapackint,
17200);
17201
17202// SYTRS_ROOK
17203define_lapack_ffi!(csytrs_rook, Csytrs_rookFnPtr,
17204    uplo: *const c_char,
17205    n: *const lapackint,
17206    nrhs: *const lapackint,
17207    A: *const Complex32,
17208    lda: *const lapackint,
17209    ipiv: *const lapackint,
17210    B: *mut Complex32,
17211    ldb: *const lapackint,
17212    info: *mut lapackint,
17213);
17214
17215define_lapack_ffi!(dsytrs_rook, Dsytrs_rookFnPtr,
17216    uplo: *const c_char,
17217    n: *const lapackint,
17218    nrhs: *const lapackint,
17219    A: *const f64,
17220    lda: *const lapackint,
17221    ipiv: *const lapackint,
17222    B: *mut f64,
17223    ldb: *const lapackint,
17224    info: *mut lapackint,
17225);
17226
17227define_lapack_ffi!(ssytrs_rook, Ssytrs_rookFnPtr,
17228    uplo: *const c_char,
17229    n: *const lapackint,
17230    nrhs: *const lapackint,
17231    A: *const f32,
17232    lda: *const lapackint,
17233    ipiv: *const lapackint,
17234    B: *mut f32,
17235    ldb: *const lapackint,
17236    info: *mut lapackint,
17237);
17238
17239define_lapack_ffi!(zsytrs_rook, Zsytrs_rookFnPtr,
17240    uplo: *const c_char,
17241    n: *const lapackint,
17242    nrhs: *const lapackint,
17243    A: *const Complex64,
17244    lda: *const lapackint,
17245    ipiv: *const lapackint,
17246    B: *mut Complex64,
17247    ldb: *const lapackint,
17248    info: *mut lapackint,
17249);
17250
17251// TBCON
17252define_lapack_ffi!(ctbcon, CtbconFnPtr,
17253    norm: *const c_char,
17254    uplo: *const c_char,
17255    diag: *const c_char,
17256    n: *const lapackint,
17257    kd: *const lapackint,
17258    AB: *const Complex32,
17259    ldab: *const lapackint,
17260    rcond: *mut f32,
17261    work: *mut Complex32,
17262    rwork: *mut f32,
17263    info: *mut lapackint,
17264);
17265
17266define_lapack_ffi!(dtbcon, DtbconFnPtr,
17267    norm: *const c_char,
17268    uplo: *const c_char,
17269    diag: *const c_char,
17270    n: *const lapackint,
17271    kd: *const lapackint,
17272    AB: *const f64,
17273    ldab: *const lapackint,
17274    rcond: *mut f64,
17275    work: *mut f64,
17276    iwork: *mut lapackint,
17277    info: *mut lapackint,
17278);
17279
17280define_lapack_ffi!(stbcon, StbconFnPtr,
17281    norm: *const c_char,
17282    uplo: *const c_char,
17283    diag: *const c_char,
17284    n: *const lapackint,
17285    kd: *const lapackint,
17286    AB: *const f32,
17287    ldab: *const lapackint,
17288    rcond: *mut f32,
17289    work: *mut f32,
17290    iwork: *mut lapackint,
17291    info: *mut lapackint,
17292);
17293
17294define_lapack_ffi!(ztbcon, ZtbconFnPtr,
17295    norm: *const c_char,
17296    uplo: *const c_char,
17297    diag: *const c_char,
17298    n: *const lapackint,
17299    kd: *const lapackint,
17300    AB: *const Complex64,
17301    ldab: *const lapackint,
17302    rcond: *mut f64,
17303    work: *mut Complex64,
17304    rwork: *mut f64,
17305    info: *mut lapackint,
17306);
17307
17308// TBRFS
17309define_lapack_ffi!(ctbrfs, CtbrfsFnPtr,
17310    uplo: *const c_char,
17311    trans: *const c_char,
17312    diag: *const c_char,
17313    n: *const lapackint,
17314    kd: *const lapackint,
17315    nrhs: *const lapackint,
17316    AB: *const Complex32,
17317    ldab: *const lapackint,
17318    B: *const Complex32,
17319    ldb: *const lapackint,
17320    X: *const Complex32,
17321    ldx: *const lapackint,
17322    ferr: *mut f32,
17323    berr: *mut f32,
17324    work: *mut Complex32,
17325    rwork: *mut f32,
17326    info: *mut lapackint,
17327);
17328
17329define_lapack_ffi!(dtbrfs, DtbrfsFnPtr,
17330    uplo: *const c_char,
17331    trans: *const c_char,
17332    diag: *const c_char,
17333    n: *const lapackint,
17334    kd: *const lapackint,
17335    nrhs: *const lapackint,
17336    AB: *const f64,
17337    ldab: *const lapackint,
17338    B: *const f64,
17339    ldb: *const lapackint,
17340    X: *const f64,
17341    ldx: *const lapackint,
17342    ferr: *mut f64,
17343    berr: *mut f64,
17344    work: *mut f64,
17345    iwork: *mut lapackint,
17346    info: *mut lapackint,
17347);
17348
17349define_lapack_ffi!(stbrfs, StbrfsFnPtr,
17350    uplo: *const c_char,
17351    trans: *const c_char,
17352    diag: *const c_char,
17353    n: *const lapackint,
17354    kd: *const lapackint,
17355    nrhs: *const lapackint,
17356    AB: *const f32,
17357    ldab: *const lapackint,
17358    B: *const f32,
17359    ldb: *const lapackint,
17360    X: *const f32,
17361    ldx: *const lapackint,
17362    ferr: *mut f32,
17363    berr: *mut f32,
17364    work: *mut f32,
17365    iwork: *mut lapackint,
17366    info: *mut lapackint,
17367);
17368
17369define_lapack_ffi!(ztbrfs, ZtbrfsFnPtr,
17370    uplo: *const c_char,
17371    trans: *const c_char,
17372    diag: *const c_char,
17373    n: *const lapackint,
17374    kd: *const lapackint,
17375    nrhs: *const lapackint,
17376    AB: *const Complex64,
17377    ldab: *const lapackint,
17378    B: *const Complex64,
17379    ldb: *const lapackint,
17380    X: *const Complex64,
17381    ldx: *const lapackint,
17382    ferr: *mut f64,
17383    berr: *mut f64,
17384    work: *mut Complex64,
17385    rwork: *mut f64,
17386    info: *mut lapackint,
17387);
17388
17389// TBTRS
17390define_lapack_ffi!(ctbtrs, CtbtrsFnPtr,
17391    uplo: *const c_char,
17392    trans: *const c_char,
17393    diag: *const c_char,
17394    n: *const lapackint,
17395    kd: *const lapackint,
17396    nrhs: *const lapackint,
17397    AB: *const Complex32,
17398    ldab: *const lapackint,
17399    B: *mut Complex32,
17400    ldb: *const lapackint,
17401    info: *mut lapackint,
17402);
17403
17404define_lapack_ffi!(dtbtrs, DtbtrsFnPtr,
17405    uplo: *const c_char,
17406    trans: *const c_char,
17407    diag: *const c_char,
17408    n: *const lapackint,
17409    kd: *const lapackint,
17410    nrhs: *const lapackint,
17411    AB: *const f64,
17412    ldab: *const lapackint,
17413    B: *mut f64,
17414    ldb: *const lapackint,
17415    info: *mut lapackint,
17416);
17417
17418define_lapack_ffi!(stbtrs, StbtrsFnPtr,
17419    uplo: *const c_char,
17420    trans: *const c_char,
17421    diag: *const c_char,
17422    n: *const lapackint,
17423    kd: *const lapackint,
17424    nrhs: *const lapackint,
17425    AB: *const f32,
17426    ldab: *const lapackint,
17427    B: *mut f32,
17428    ldb: *const lapackint,
17429    info: *mut lapackint,
17430);
17431
17432define_lapack_ffi!(ztbtrs, ZtbtrsFnPtr,
17433    uplo: *const c_char,
17434    trans: *const c_char,
17435    diag: *const c_char,
17436    n: *const lapackint,
17437    kd: *const lapackint,
17438    nrhs: *const lapackint,
17439    AB: *const Complex64,
17440    ldab: *const lapackint,
17441    B: *mut Complex64,
17442    ldb: *const lapackint,
17443    info: *mut lapackint,
17444);
17445
17446// TFSM
17447define_lapack_ffi!(ctfsm, CtfsmFnPtr,
17448    transr: *const c_char,
17449    side: *const c_char,
17450    uplo: *const c_char,
17451    trans: *const c_char,
17452    diag: *const c_char,
17453    m: *const lapackint,
17454    n: *const lapackint,
17455    alpha: *const Complex32,
17456    A: *const Complex32,
17457    B: *mut Complex32,
17458    ldb: *const lapackint,
17459);
17460
17461define_lapack_ffi!(dtfsm, DtfsmFnPtr,
17462    transr: *const c_char,
17463    side: *const c_char,
17464    uplo: *const c_char,
17465    trans: *const c_char,
17466    diag: *const c_char,
17467    m: *const lapackint,
17468    n: *const lapackint,
17469    alpha: *const f64,
17470    A: *const f64,
17471    B: *mut f64,
17472    ldb: *const lapackint,
17473);
17474
17475define_lapack_ffi!(stfsm, StfsmFnPtr,
17476    transr: *const c_char,
17477    side: *const c_char,
17478    uplo: *const c_char,
17479    trans: *const c_char,
17480    diag: *const c_char,
17481    m: *const lapackint,
17482    n: *const lapackint,
17483    alpha: *const f32,
17484    A: *const f32,
17485    B: *mut f32,
17486    ldb: *const lapackint,
17487);
17488
17489define_lapack_ffi!(ztfsm, ZtfsmFnPtr,
17490    transr: *const c_char,
17491    side: *const c_char,
17492    uplo: *const c_char,
17493    trans: *const c_char,
17494    diag: *const c_char,
17495    m: *const lapackint,
17496    n: *const lapackint,
17497    alpha: *const Complex64,
17498    A: *const Complex64,
17499    B: *mut Complex64,
17500    ldb: *const lapackint,
17501);
17502
17503// TFTRI
17504define_lapack_ffi!(ctftri, CtftriFnPtr,
17505    transr: *const c_char,
17506    uplo: *const c_char,
17507    diag: *const c_char,
17508    n: *const lapackint,
17509    A: *mut Complex32,
17510    info: *mut lapackint,
17511);
17512
17513define_lapack_ffi!(dtftri, DtftriFnPtr,
17514    transr: *const c_char,
17515    uplo: *const c_char,
17516    diag: *const c_char,
17517    n: *const lapackint,
17518    A: *mut f64,
17519    info: *mut lapackint,
17520);
17521
17522define_lapack_ffi!(stftri, StftriFnPtr,
17523    transr: *const c_char,
17524    uplo: *const c_char,
17525    diag: *const c_char,
17526    n: *const lapackint,
17527    A: *mut f32,
17528    info: *mut lapackint,
17529);
17530
17531define_lapack_ffi!(ztftri, ZtftriFnPtr,
17532    transr: *const c_char,
17533    uplo: *const c_char,
17534    diag: *const c_char,
17535    n: *const lapackint,
17536    A: *mut Complex64,
17537    info: *mut lapackint,
17538);
17539
17540// TFTTP
17541define_lapack_ffi!(ctfttp, CtfttpFnPtr,
17542    transr: *const c_char,
17543    uplo: *const c_char,
17544    n: *const lapackint,
17545    ARF: *const Complex32,
17546    AP: *mut Complex32,
17547    info: *mut lapackint,
17548);
17549
17550define_lapack_ffi!(dtfttp, DtfttpFnPtr,
17551    transr: *const c_char,
17552    uplo: *const c_char,
17553    n: *const lapackint,
17554    ARF: *const f64,
17555    AP: *mut f64,
17556    info: *mut lapackint,
17557);
17558
17559define_lapack_ffi!(stfttp, StfttpFnPtr,
17560    transr: *const c_char,
17561    uplo: *const c_char,
17562    n: *const lapackint,
17563    ARF: *const f32,
17564    AP: *mut f32,
17565    info: *mut lapackint,
17566);
17567
17568define_lapack_ffi!(ztfttp, ZtfttpFnPtr,
17569    transr: *const c_char,
17570    uplo: *const c_char,
17571    n: *const lapackint,
17572    ARF: *const Complex64,
17573    AP: *mut Complex64,
17574    info: *mut lapackint,
17575);
17576
17577// TFTTR
17578define_lapack_ffi!(ctfttr, CtfttrFnPtr,
17579    transr: *const c_char,
17580    uplo: *const c_char,
17581    n: *const lapackint,
17582    ARF: *const Complex32,
17583    A: *mut Complex32,
17584    lda: *const lapackint,
17585    info: *mut lapackint,
17586);
17587
17588define_lapack_ffi!(dtfttr, DtfttrFnPtr,
17589    transr: *const c_char,
17590    uplo: *const c_char,
17591    n: *const lapackint,
17592    ARF: *const f64,
17593    A: *mut f64,
17594    lda: *const lapackint,
17595    info: *mut lapackint,
17596);
17597
17598define_lapack_ffi!(stfttr, StfttrFnPtr,
17599    transr: *const c_char,
17600    uplo: *const c_char,
17601    n: *const lapackint,
17602    ARF: *const f32,
17603    A: *mut f32,
17604    lda: *const lapackint,
17605    info: *mut lapackint,
17606);
17607
17608define_lapack_ffi!(ztfttr, ZtfttrFnPtr,
17609    transr: *const c_char,
17610    uplo: *const c_char,
17611    n: *const lapackint,
17612    ARF: *const Complex64,
17613    A: *mut Complex64,
17614    lda: *const lapackint,
17615    info: *mut lapackint,
17616);
17617
17618// TGEVC
17619define_lapack_ffi!(ctgevc, CtgevcFnPtr,
17620    side: *const c_char,
17621    howmny: *const c_char,
17622    select: *const lapackint,
17623    n: *const lapackint,
17624    S: *const Complex32,
17625    lds: *const lapackint,
17626    P: *const Complex32,
17627    ldp: *const lapackint,
17628    VL: *mut Complex32,
17629    ldvl: *const lapackint,
17630    VR: *mut Complex32,
17631    ldvr: *const lapackint,
17632    mm: *const lapackint,
17633    m: *mut lapackint,
17634    work: *mut Complex32,
17635    rwork: *mut f32,
17636    info: *mut lapackint,
17637);
17638
17639define_lapack_ffi!(dtgevc, DtgevcFnPtr,
17640    side: *const c_char,
17641    howmny: *const c_char,
17642    select: *const lapackint,
17643    n: *const lapackint,
17644    S: *const f64,
17645    lds: *const lapackint,
17646    P: *const f64,
17647    ldp: *const lapackint,
17648    VL: *mut f64,
17649    ldvl: *const lapackint,
17650    VR: *mut f64,
17651    ldvr: *const lapackint,
17652    mm: *const lapackint,
17653    m: *mut lapackint,
17654    work: *mut f64,
17655    info: *mut lapackint,
17656);
17657
17658define_lapack_ffi!(stgevc, StgevcFnPtr,
17659    side: *const c_char,
17660    howmny: *const c_char,
17661    select: *const lapackint,
17662    n: *const lapackint,
17663    S: *const f32,
17664    lds: *const lapackint,
17665    P: *const f32,
17666    ldp: *const lapackint,
17667    VL: *mut f32,
17668    ldvl: *const lapackint,
17669    VR: *mut f32,
17670    ldvr: *const lapackint,
17671    mm: *const lapackint,
17672    m: *mut lapackint,
17673    work: *mut f32,
17674    info: *mut lapackint,
17675);
17676
17677define_lapack_ffi!(ztgevc, ZtgevcFnPtr,
17678    side: *const c_char,
17679    howmny: *const c_char,
17680    select: *const lapackint,
17681    n: *const lapackint,
17682    S: *const Complex64,
17683    lds: *const lapackint,
17684    P: *const Complex64,
17685    ldp: *const lapackint,
17686    VL: *mut Complex64,
17687    ldvl: *const lapackint,
17688    VR: *mut Complex64,
17689    ldvr: *const lapackint,
17690    mm: *const lapackint,
17691    m: *mut lapackint,
17692    work: *mut Complex64,
17693    rwork: *mut f64,
17694    info: *mut lapackint,
17695);
17696
17697// TGEXC
17698define_lapack_ffi!(ctgexc, CtgexcFnPtr,
17699    wantq: *const lapackint,
17700    wantz: *const lapackint,
17701    n: *const lapackint,
17702    A: *mut Complex32,
17703    lda: *const lapackint,
17704    B: *mut Complex32,
17705    ldb: *const lapackint,
17706    Q: *mut Complex32,
17707    ldq: *const lapackint,
17708    Z: *mut Complex32,
17709    ldz: *const lapackint,
17710    ifst: *const lapackint,
17711    ilst: *mut lapackint,
17712    info: *mut lapackint,
17713);
17714
17715define_lapack_ffi!(dtgexc, DtgexcFnPtr,
17716    wantq: *const lapackint,
17717    wantz: *const lapackint,
17718    n: *const lapackint,
17719    A: *mut f64,
17720    lda: *const lapackint,
17721    B: *mut f64,
17722    ldb: *const lapackint,
17723    Q: *mut f64,
17724    ldq: *const lapackint,
17725    Z: *mut f64,
17726    ldz: *const lapackint,
17727    ifst: *mut lapackint,
17728    ilst: *mut lapackint,
17729    work: *mut f64,
17730    lwork: *const lapackint,
17731    info: *mut lapackint,
17732);
17733
17734define_lapack_ffi!(stgexc, StgexcFnPtr,
17735    wantq: *const lapackint,
17736    wantz: *const lapackint,
17737    n: *const lapackint,
17738    A: *mut f32,
17739    lda: *const lapackint,
17740    B: *mut f32,
17741    ldb: *const lapackint,
17742    Q: *mut f32,
17743    ldq: *const lapackint,
17744    Z: *mut f32,
17745    ldz: *const lapackint,
17746    ifst: *mut lapackint,
17747    ilst: *mut lapackint,
17748    work: *mut f32,
17749    lwork: *const lapackint,
17750    info: *mut lapackint,
17751);
17752
17753define_lapack_ffi!(ztgexc, ZtgexcFnPtr,
17754    wantq: *const lapackint,
17755    wantz: *const lapackint,
17756    n: *const lapackint,
17757    A: *mut Complex64,
17758    lda: *const lapackint,
17759    B: *mut Complex64,
17760    ldb: *const lapackint,
17761    Q: *mut Complex64,
17762    ldq: *const lapackint,
17763    Z: *mut Complex64,
17764    ldz: *const lapackint,
17765    ifst: *const lapackint,
17766    ilst: *mut lapackint,
17767    info: *mut lapackint,
17768);
17769
17770// TGSEN
17771define_lapack_ffi!(ctgsen, CtgsenFnPtr,
17772    ijob: *const lapackint,
17773    wantq: *const lapackint,
17774    wantz: *const lapackint,
17775    select: *const lapackint,
17776    n: *const lapackint,
17777    A: *mut Complex32,
17778    lda: *const lapackint,
17779    B: *mut Complex32,
17780    ldb: *const lapackint,
17781    alpha: *mut Complex32,
17782    beta: *mut Complex32,
17783    Q: *mut Complex32,
17784    ldq: *const lapackint,
17785    Z: *mut Complex32,
17786    ldz: *const lapackint,
17787    m: *mut lapackint,
17788    pl: *mut f32,
17789    pr: *mut f32,
17790    DIF: *mut f32,
17791    work: *mut Complex32,
17792    lwork: *const lapackint,
17793    iwork: *mut lapackint,
17794    liwork: *const lapackint,
17795    info: *mut lapackint,
17796);
17797
17798define_lapack_ffi!(dtgsen, DtgsenFnPtr,
17799    ijob: *const lapackint,
17800    wantq: *const lapackint,
17801    wantz: *const lapackint,
17802    select: *const lapackint,
17803    n: *const lapackint,
17804    A: *mut f64,
17805    lda: *const lapackint,
17806    B: *mut f64,
17807    ldb: *const lapackint,
17808    alphar: *mut f64,
17809    alphai: *mut f64,
17810    beta: *mut f64,
17811    Q: *mut f64,
17812    ldq: *const lapackint,
17813    Z: *mut f64,
17814    ldz: *const lapackint,
17815    m: *mut lapackint,
17816    pl: *mut f64,
17817    pr: *mut f64,
17818    DIF: *mut f64,
17819    work: *mut f64,
17820    lwork: *const lapackint,
17821    iwork: *mut lapackint,
17822    liwork: *const lapackint,
17823    info: *mut lapackint,
17824);
17825
17826define_lapack_ffi!(stgsen, StgsenFnPtr,
17827    ijob: *const lapackint,
17828    wantq: *const lapackint,
17829    wantz: *const lapackint,
17830    select: *const lapackint,
17831    n: *const lapackint,
17832    A: *mut f32,
17833    lda: *const lapackint,
17834    B: *mut f32,
17835    ldb: *const lapackint,
17836    alphar: *mut f32,
17837    alphai: *mut f32,
17838    beta: *mut f32,
17839    Q: *mut f32,
17840    ldq: *const lapackint,
17841    Z: *mut f32,
17842    ldz: *const lapackint,
17843    m: *mut lapackint,
17844    pl: *mut f32,
17845    pr: *mut f32,
17846    DIF: *mut f32,
17847    work: *mut f32,
17848    lwork: *const lapackint,
17849    iwork: *mut lapackint,
17850    liwork: *const lapackint,
17851    info: *mut lapackint,
17852);
17853
17854define_lapack_ffi!(ztgsen, ZtgsenFnPtr,
17855    ijob: *const lapackint,
17856    wantq: *const lapackint,
17857    wantz: *const lapackint,
17858    select: *const lapackint,
17859    n: *const lapackint,
17860    A: *mut Complex64,
17861    lda: *const lapackint,
17862    B: *mut Complex64,
17863    ldb: *const lapackint,
17864    alpha: *mut Complex64,
17865    beta: *mut Complex64,
17866    Q: *mut Complex64,
17867    ldq: *const lapackint,
17868    Z: *mut Complex64,
17869    ldz: *const lapackint,
17870    m: *mut lapackint,
17871    pl: *mut f64,
17872    pr: *mut f64,
17873    DIF: *mut f64,
17874    work: *mut Complex64,
17875    lwork: *const lapackint,
17876    iwork: *mut lapackint,
17877    liwork: *const lapackint,
17878    info: *mut lapackint,
17879);
17880
17881// TGSJA
17882define_lapack_ffi!(ctgsja, CtgsjaFnPtr,
17883    jobu: *const c_char,
17884    jobv: *const c_char,
17885    jobq: *const c_char,
17886    m: *const lapackint,
17887    p: *const lapackint,
17888    n: *const lapackint,
17889    k: *const lapackint,
17890    l: *const lapackint,
17891    A: *mut Complex32,
17892    lda: *const lapackint,
17893    B: *mut Complex32,
17894    ldb: *const lapackint,
17895    tola: *const f32,
17896    tolb: *const f32,
17897    alpha: *mut f32,
17898    beta: *mut f32,
17899    U: *mut Complex32,
17900    ldu: *const lapackint,
17901    V: *mut Complex32,
17902    ldv: *const lapackint,
17903    Q: *mut Complex32,
17904    ldq: *const lapackint,
17905    work: *mut Complex32,
17906    ncycle: *mut lapackint,
17907    info: *mut lapackint,
17908);
17909
17910define_lapack_ffi!(dtgsja, DtgsjaFnPtr,
17911    jobu: *const c_char,
17912    jobv: *const c_char,
17913    jobq: *const c_char,
17914    m: *const lapackint,
17915    p: *const lapackint,
17916    n: *const lapackint,
17917    k: *const lapackint,
17918    l: *const lapackint,
17919    A: *mut f64,
17920    lda: *const lapackint,
17921    B: *mut f64,
17922    ldb: *const lapackint,
17923    tola: *const f64,
17924    tolb: *const f64,
17925    alpha: *mut f64,
17926    beta: *mut f64,
17927    U: *mut f64,
17928    ldu: *const lapackint,
17929    V: *mut f64,
17930    ldv: *const lapackint,
17931    Q: *mut f64,
17932    ldq: *const lapackint,
17933    work: *mut f64,
17934    ncycle: *mut lapackint,
17935    info: *mut lapackint,
17936);
17937
17938define_lapack_ffi!(stgsja, StgsjaFnPtr,
17939    jobu: *const c_char,
17940    jobv: *const c_char,
17941    jobq: *const c_char,
17942    m: *const lapackint,
17943    p: *const lapackint,
17944    n: *const lapackint,
17945    k: *const lapackint,
17946    l: *const lapackint,
17947    A: *mut f32,
17948    lda: *const lapackint,
17949    B: *mut f32,
17950    ldb: *const lapackint,
17951    tola: *const f32,
17952    tolb: *const f32,
17953    alpha: *mut f32,
17954    beta: *mut f32,
17955    U: *mut f32,
17956    ldu: *const lapackint,
17957    V: *mut f32,
17958    ldv: *const lapackint,
17959    Q: *mut f32,
17960    ldq: *const lapackint,
17961    work: *mut f32,
17962    ncycle: *mut lapackint,
17963    info: *mut lapackint,
17964);
17965
17966define_lapack_ffi!(ztgsja, ZtgsjaFnPtr,
17967    jobu: *const c_char,
17968    jobv: *const c_char,
17969    jobq: *const c_char,
17970    m: *const lapackint,
17971    p: *const lapackint,
17972    n: *const lapackint,
17973    k: *const lapackint,
17974    l: *const lapackint,
17975    A: *mut Complex64,
17976    lda: *const lapackint,
17977    B: *mut Complex64,
17978    ldb: *const lapackint,
17979    tola: *const f64,
17980    tolb: *const f64,
17981    alpha: *mut f64,
17982    beta: *mut f64,
17983    U: *mut Complex64,
17984    ldu: *const lapackint,
17985    V: *mut Complex64,
17986    ldv: *const lapackint,
17987    Q: *mut Complex64,
17988    ldq: *const lapackint,
17989    work: *mut Complex64,
17990    ncycle: *mut lapackint,
17991    info: *mut lapackint,
17992);
17993
17994// TGSNA
17995define_lapack_ffi!(ctgsna, CtgsnaFnPtr,
17996    job: *const c_char,
17997    howmny: *const c_char,
17998    select: *const lapackint,
17999    n: *const lapackint,
18000    A: *const Complex32,
18001    lda: *const lapackint,
18002    B: *const Complex32,
18003    ldb: *const lapackint,
18004    VL: *const Complex32,
18005    ldvl: *const lapackint,
18006    VR: *const Complex32,
18007    ldvr: *const lapackint,
18008    S: *mut f32,
18009    DIF: *mut f32,
18010    mm: *const lapackint,
18011    m: *mut lapackint,
18012    work: *mut Complex32,
18013    lwork: *const lapackint,
18014    iwork: *mut lapackint,
18015    info: *mut lapackint,
18016);
18017
18018define_lapack_ffi!(dtgsna, DtgsnaFnPtr,
18019    job: *const c_char,
18020    howmny: *const c_char,
18021    select: *const lapackint,
18022    n: *const lapackint,
18023    A: *const f64,
18024    lda: *const lapackint,
18025    B: *const f64,
18026    ldb: *const lapackint,
18027    VL: *const f64,
18028    ldvl: *const lapackint,
18029    VR: *const f64,
18030    ldvr: *const lapackint,
18031    S: *mut f64,
18032    DIF: *mut f64,
18033    mm: *const lapackint,
18034    m: *mut lapackint,
18035    work: *mut f64,
18036    lwork: *const lapackint,
18037    iwork: *mut lapackint,
18038    info: *mut lapackint,
18039);
18040
18041define_lapack_ffi!(stgsna, StgsnaFnPtr,
18042    job: *const c_char,
18043    howmny: *const c_char,
18044    select: *const lapackint,
18045    n: *const lapackint,
18046    A: *const f32,
18047    lda: *const lapackint,
18048    B: *const f32,
18049    ldb: *const lapackint,
18050    VL: *const f32,
18051    ldvl: *const lapackint,
18052    VR: *const f32,
18053    ldvr: *const lapackint,
18054    S: *mut f32,
18055    DIF: *mut f32,
18056    mm: *const lapackint,
18057    m: *mut lapackint,
18058    work: *mut f32,
18059    lwork: *const lapackint,
18060    iwork: *mut lapackint,
18061    info: *mut lapackint,
18062);
18063
18064define_lapack_ffi!(ztgsna, ZtgsnaFnPtr,
18065    job: *const c_char,
18066    howmny: *const c_char,
18067    select: *const lapackint,
18068    n: *const lapackint,
18069    A: *const Complex64,
18070    lda: *const lapackint,
18071    B: *const Complex64,
18072    ldb: *const lapackint,
18073    VL: *const Complex64,
18074    ldvl: *const lapackint,
18075    VR: *const Complex64,
18076    ldvr: *const lapackint,
18077    S: *mut f64,
18078    DIF: *mut f64,
18079    mm: *const lapackint,
18080    m: *mut lapackint,
18081    work: *mut Complex64,
18082    lwork: *const lapackint,
18083    iwork: *mut lapackint,
18084    info: *mut lapackint,
18085);
18086
18087// TGSYL
18088define_lapack_ffi!(ctgsyl, CtgsylFnPtr,
18089    trans: *const c_char,
18090    ijob: *const lapackint,
18091    m: *const lapackint,
18092    n: *const lapackint,
18093    A: *const Complex32,
18094    lda: *const lapackint,
18095    B: *const Complex32,
18096    ldb: *const lapackint,
18097    C: *mut Complex32,
18098    ldc: *const lapackint,
18099    D: *const Complex32,
18100    ldd: *const lapackint,
18101    E: *const Complex32,
18102    lde: *const lapackint,
18103    F: *mut Complex32,
18104    ldf: *const lapackint,
18105    dif: *mut f32,
18106    scale: *mut f32,
18107    work: *mut Complex32,
18108    lwork: *const lapackint,
18109    iwork: *mut lapackint,
18110    info: *mut lapackint,
18111);
18112
18113define_lapack_ffi!(dtgsyl, DtgsylFnPtr,
18114    trans: *const c_char,
18115    ijob: *const lapackint,
18116    m: *const lapackint,
18117    n: *const lapackint,
18118    A: *const f64,
18119    lda: *const lapackint,
18120    B: *const f64,
18121    ldb: *const lapackint,
18122    C: *mut f64,
18123    ldc: *const lapackint,
18124    D: *const f64,
18125    ldd: *const lapackint,
18126    E: *const f64,
18127    lde: *const lapackint,
18128    F: *mut f64,
18129    ldf: *const lapackint,
18130    dif: *mut f64,
18131    scale: *mut f64,
18132    work: *mut f64,
18133    lwork: *const lapackint,
18134    iwork: *mut lapackint,
18135    info: *mut lapackint,
18136);
18137
18138define_lapack_ffi!(stgsyl, StgsylFnPtr,
18139    trans: *const c_char,
18140    ijob: *const lapackint,
18141    m: *const lapackint,
18142    n: *const lapackint,
18143    A: *const f32,
18144    lda: *const lapackint,
18145    B: *const f32,
18146    ldb: *const lapackint,
18147    C: *mut f32,
18148    ldc: *const lapackint,
18149    D: *const f32,
18150    ldd: *const lapackint,
18151    E: *const f32,
18152    lde: *const lapackint,
18153    F: *mut f32,
18154    ldf: *const lapackint,
18155    dif: *mut f32,
18156    scale: *mut f32,
18157    work: *mut f32,
18158    lwork: *const lapackint,
18159    iwork: *mut lapackint,
18160    info: *mut lapackint,
18161);
18162
18163define_lapack_ffi!(ztgsyl, ZtgsylFnPtr,
18164    trans: *const c_char,
18165    ijob: *const lapackint,
18166    m: *const lapackint,
18167    n: *const lapackint,
18168    A: *const Complex64,
18169    lda: *const lapackint,
18170    B: *const Complex64,
18171    ldb: *const lapackint,
18172    C: *mut Complex64,
18173    ldc: *const lapackint,
18174    D: *const Complex64,
18175    ldd: *const lapackint,
18176    E: *const Complex64,
18177    lde: *const lapackint,
18178    F: *mut Complex64,
18179    ldf: *const lapackint,
18180    dif: *mut f64,
18181    scale: *mut f64,
18182    work: *mut Complex64,
18183    lwork: *const lapackint,
18184    iwork: *mut lapackint,
18185    info: *mut lapackint,
18186);
18187
18188// TPCON
18189define_lapack_ffi!(ctpcon, CtpconFnPtr,
18190    norm: *const c_char,
18191    uplo: *const c_char,
18192    diag: *const c_char,
18193    n: *const lapackint,
18194    AP: *const Complex32,
18195    rcond: *mut f32,
18196    work: *mut Complex32,
18197    rwork: *mut f32,
18198    info: *mut lapackint,
18199);
18200
18201define_lapack_ffi!(dtpcon, DtpconFnPtr,
18202    norm: *const c_char,
18203    uplo: *const c_char,
18204    diag: *const c_char,
18205    n: *const lapackint,
18206    AP: *const f64,
18207    rcond: *mut f64,
18208    work: *mut f64,
18209    iwork: *mut lapackint,
18210    info: *mut lapackint,
18211);
18212
18213define_lapack_ffi!(stpcon, StpconFnPtr,
18214    norm: *const c_char,
18215    uplo: *const c_char,
18216    diag: *const c_char,
18217    n: *const lapackint,
18218    AP: *const f32,
18219    rcond: *mut f32,
18220    work: *mut f32,
18221    iwork: *mut lapackint,
18222    info: *mut lapackint,
18223);
18224
18225define_lapack_ffi!(ztpcon, ZtpconFnPtr,
18226    norm: *const c_char,
18227    uplo: *const c_char,
18228    diag: *const c_char,
18229    n: *const lapackint,
18230    AP: *const Complex64,
18231    rcond: *mut f64,
18232    work: *mut Complex64,
18233    rwork: *mut f64,
18234    info: *mut lapackint,
18235);
18236
18237// TPLQT
18238define_lapack_ffi!(ctplqt, CtplqtFnPtr,
18239    m: *const lapackint,
18240    n: *const lapackint,
18241    l: *const lapackint,
18242    mb: *const lapackint,
18243    A: *mut Complex32,
18244    lda: *const lapackint,
18245    B: *mut Complex32,
18246    ldb: *const lapackint,
18247    T: *mut Complex32,
18248    ldt: *const lapackint,
18249    work: *mut Complex32,
18250    info: *mut lapackint,
18251);
18252
18253define_lapack_ffi!(dtplqt, DtplqtFnPtr,
18254    m: *const lapackint,
18255    n: *const lapackint,
18256    l: *const lapackint,
18257    mb: *const lapackint,
18258    A: *mut f64,
18259    lda: *const lapackint,
18260    B: *mut f64,
18261    ldb: *const lapackint,
18262    T: *mut f64,
18263    ldt: *const lapackint,
18264    work: *mut f64,
18265    info: *mut lapackint,
18266);
18267
18268define_lapack_ffi!(stplqt, StplqtFnPtr,
18269    m: *const lapackint,
18270    n: *const lapackint,
18271    l: *const lapackint,
18272    mb: *const lapackint,
18273    A: *mut f32,
18274    lda: *const lapackint,
18275    B: *mut f32,
18276    ldb: *const lapackint,
18277    T: *mut f32,
18278    ldt: *const lapackint,
18279    work: *mut f32,
18280    info: *mut lapackint,
18281);
18282
18283define_lapack_ffi!(ztplqt, ZtplqtFnPtr,
18284    m: *const lapackint,
18285    n: *const lapackint,
18286    l: *const lapackint,
18287    mb: *const lapackint,
18288    A: *mut Complex64,
18289    lda: *const lapackint,
18290    B: *mut Complex64,
18291    ldb: *const lapackint,
18292    T: *mut Complex64,
18293    ldt: *const lapackint,
18294    work: *mut Complex64,
18295    info: *mut lapackint,
18296);
18297
18298// TPLQT2
18299define_lapack_ffi!(ctplqt2, Ctplqt2FnPtr,
18300    m: *const lapackint,
18301    n: *const lapackint,
18302    l: *const lapackint,
18303    A: *mut Complex32,
18304    lda: *const lapackint,
18305    B: *mut Complex32,
18306    ldb: *const lapackint,
18307    T: *mut Complex32,
18308    ldt: *const lapackint,
18309    info: *mut lapackint,
18310);
18311
18312define_lapack_ffi!(dtplqt2, Dtplqt2FnPtr,
18313    m: *const lapackint,
18314    n: *const lapackint,
18315    l: *const lapackint,
18316    A: *mut f64,
18317    lda: *const lapackint,
18318    B: *mut f64,
18319    ldb: *const lapackint,
18320    T: *mut f64,
18321    ldt: *const lapackint,
18322    info: *mut lapackint,
18323);
18324
18325define_lapack_ffi!(stplqt2, Stplqt2FnPtr,
18326    m: *const lapackint,
18327    n: *const lapackint,
18328    l: *const lapackint,
18329    A: *mut f32,
18330    lda: *const lapackint,
18331    B: *mut f32,
18332    ldb: *const lapackint,
18333    T: *mut f32,
18334    ldt: *const lapackint,
18335    info: *mut lapackint,
18336);
18337
18338define_lapack_ffi!(ztplqt2, Ztplqt2FnPtr,
18339    m: *const lapackint,
18340    n: *const lapackint,
18341    l: *const lapackint,
18342    A: *mut Complex64,
18343    lda: *const lapackint,
18344    B: *mut Complex64,
18345    ldb: *const lapackint,
18346    T: *mut Complex64,
18347    ldt: *const lapackint,
18348    info: *mut lapackint,
18349);
18350
18351// TPMLQT
18352define_lapack_ffi!(ctpmlqt, CtpmlqtFnPtr,
18353    side: *const c_char,
18354    trans: *const c_char,
18355    m: *const lapackint,
18356    n: *const lapackint,
18357    k: *const lapackint,
18358    l: *const lapackint,
18359    mb: *const lapackint,
18360    V: *const Complex32,
18361    ldv: *const lapackint,
18362    T: *const Complex32,
18363    ldt: *const lapackint,
18364    A: *mut Complex32,
18365    lda: *const lapackint,
18366    B: *mut Complex32,
18367    ldb: *const lapackint,
18368    work: *mut Complex32,
18369    info: *mut lapackint,
18370);
18371
18372define_lapack_ffi!(dtpmlqt, DtpmlqtFnPtr,
18373    side: *const c_char,
18374    trans: *const c_char,
18375    m: *const lapackint,
18376    n: *const lapackint,
18377    k: *const lapackint,
18378    l: *const lapackint,
18379    mb: *const lapackint,
18380    V: *const f64,
18381    ldv: *const lapackint,
18382    T: *const f64,
18383    ldt: *const lapackint,
18384    A: *mut f64,
18385    lda: *const lapackint,
18386    B: *mut f64,
18387    ldb: *const lapackint,
18388    work: *mut f64,
18389    info: *mut lapackint,
18390);
18391
18392define_lapack_ffi!(stpmlqt, StpmlqtFnPtr,
18393    side: *const c_char,
18394    trans: *const c_char,
18395    m: *const lapackint,
18396    n: *const lapackint,
18397    k: *const lapackint,
18398    l: *const lapackint,
18399    mb: *const lapackint,
18400    V: *const f32,
18401    ldv: *const lapackint,
18402    T: *const f32,
18403    ldt: *const lapackint,
18404    A: *mut f32,
18405    lda: *const lapackint,
18406    B: *mut f32,
18407    ldb: *const lapackint,
18408    work: *mut f32,
18409    info: *mut lapackint,
18410);
18411
18412define_lapack_ffi!(ztpmlqt, ZtpmlqtFnPtr,
18413    side: *const c_char,
18414    trans: *const c_char,
18415    m: *const lapackint,
18416    n: *const lapackint,
18417    k: *const lapackint,
18418    l: *const lapackint,
18419    mb: *const lapackint,
18420    V: *const Complex64,
18421    ldv: *const lapackint,
18422    T: *const Complex64,
18423    ldt: *const lapackint,
18424    A: *mut Complex64,
18425    lda: *const lapackint,
18426    B: *mut Complex64,
18427    ldb: *const lapackint,
18428    work: *mut Complex64,
18429    info: *mut lapackint,
18430);
18431
18432// TPMQRT
18433define_lapack_ffi!(ctpmqrt, CtpmqrtFnPtr,
18434    side: *const c_char,
18435    trans: *const c_char,
18436    m: *const lapackint,
18437    n: *const lapackint,
18438    k: *const lapackint,
18439    l: *const lapackint,
18440    nb: *const lapackint,
18441    V: *const Complex32,
18442    ldv: *const lapackint,
18443    T: *const Complex32,
18444    ldt: *const lapackint,
18445    A: *mut Complex32,
18446    lda: *const lapackint,
18447    B: *mut Complex32,
18448    ldb: *const lapackint,
18449    work: *mut Complex32,
18450    info: *mut lapackint,
18451);
18452
18453define_lapack_ffi!(dtpmqrt, DtpmqrtFnPtr,
18454    side: *const c_char,
18455    trans: *const c_char,
18456    m: *const lapackint,
18457    n: *const lapackint,
18458    k: *const lapackint,
18459    l: *const lapackint,
18460    nb: *const lapackint,
18461    V: *const f64,
18462    ldv: *const lapackint,
18463    T: *const f64,
18464    ldt: *const lapackint,
18465    A: *mut f64,
18466    lda: *const lapackint,
18467    B: *mut f64,
18468    ldb: *const lapackint,
18469    work: *mut f64,
18470    info: *mut lapackint,
18471);
18472
18473define_lapack_ffi!(stpmqrt, StpmqrtFnPtr,
18474    side: *const c_char,
18475    trans: *const c_char,
18476    m: *const lapackint,
18477    n: *const lapackint,
18478    k: *const lapackint,
18479    l: *const lapackint,
18480    nb: *const lapackint,
18481    V: *const f32,
18482    ldv: *const lapackint,
18483    T: *const f32,
18484    ldt: *const lapackint,
18485    A: *mut f32,
18486    lda: *const lapackint,
18487    B: *mut f32,
18488    ldb: *const lapackint,
18489    work: *mut f32,
18490    info: *mut lapackint,
18491);
18492
18493define_lapack_ffi!(ztpmqrt, ZtpmqrtFnPtr,
18494    side: *const c_char,
18495    trans: *const c_char,
18496    m: *const lapackint,
18497    n: *const lapackint,
18498    k: *const lapackint,
18499    l: *const lapackint,
18500    nb: *const lapackint,
18501    V: *const Complex64,
18502    ldv: *const lapackint,
18503    T: *const Complex64,
18504    ldt: *const lapackint,
18505    A: *mut Complex64,
18506    lda: *const lapackint,
18507    B: *mut Complex64,
18508    ldb: *const lapackint,
18509    work: *mut Complex64,
18510    info: *mut lapackint,
18511);
18512
18513// TPQRT
18514define_lapack_ffi!(ctpqrt, CtpqrtFnPtr,
18515    m: *const lapackint,
18516    n: *const lapackint,
18517    l: *const lapackint,
18518    nb: *const lapackint,
18519    A: *mut Complex32,
18520    lda: *const lapackint,
18521    B: *mut Complex32,
18522    ldb: *const lapackint,
18523    T: *mut Complex32,
18524    ldt: *const lapackint,
18525    work: *mut Complex32,
18526    info: *mut lapackint,
18527);
18528
18529define_lapack_ffi!(dtpqrt, DtpqrtFnPtr,
18530    m: *const lapackint,
18531    n: *const lapackint,
18532    l: *const lapackint,
18533    nb: *const lapackint,
18534    A: *mut f64,
18535    lda: *const lapackint,
18536    B: *mut f64,
18537    ldb: *const lapackint,
18538    T: *mut f64,
18539    ldt: *const lapackint,
18540    work: *mut f64,
18541    info: *mut lapackint,
18542);
18543
18544define_lapack_ffi!(stpqrt, StpqrtFnPtr,
18545    m: *const lapackint,
18546    n: *const lapackint,
18547    l: *const lapackint,
18548    nb: *const lapackint,
18549    A: *mut f32,
18550    lda: *const lapackint,
18551    B: *mut f32,
18552    ldb: *const lapackint,
18553    T: *mut f32,
18554    ldt: *const lapackint,
18555    work: *mut f32,
18556    info: *mut lapackint,
18557);
18558
18559define_lapack_ffi!(ztpqrt, ZtpqrtFnPtr,
18560    m: *const lapackint,
18561    n: *const lapackint,
18562    l: *const lapackint,
18563    nb: *const lapackint,
18564    A: *mut Complex64,
18565    lda: *const lapackint,
18566    B: *mut Complex64,
18567    ldb: *const lapackint,
18568    T: *mut Complex64,
18569    ldt: *const lapackint,
18570    work: *mut Complex64,
18571    info: *mut lapackint,
18572);
18573
18574// TPQRT2
18575define_lapack_ffi!(ctpqrt2, Ctpqrt2FnPtr,
18576    m: *const lapackint,
18577    n: *const lapackint,
18578    l: *const lapackint,
18579    A: *mut Complex32,
18580    lda: *const lapackint,
18581    B: *mut Complex32,
18582    ldb: *const lapackint,
18583    T: *mut Complex32,
18584    ldt: *const lapackint,
18585    info: *mut lapackint,
18586);
18587
18588define_lapack_ffi!(dtpqrt2, Dtpqrt2FnPtr,
18589    m: *const lapackint,
18590    n: *const lapackint,
18591    l: *const lapackint,
18592    A: *mut f64,
18593    lda: *const lapackint,
18594    B: *mut f64,
18595    ldb: *const lapackint,
18596    T: *mut f64,
18597    ldt: *const lapackint,
18598    info: *mut lapackint,
18599);
18600
18601define_lapack_ffi!(stpqrt2, Stpqrt2FnPtr,
18602    m: *const lapackint,
18603    n: *const lapackint,
18604    l: *const lapackint,
18605    A: *mut f32,
18606    lda: *const lapackint,
18607    B: *mut f32,
18608    ldb: *const lapackint,
18609    T: *mut f32,
18610    ldt: *const lapackint,
18611    info: *mut lapackint,
18612);
18613
18614define_lapack_ffi!(ztpqrt2, Ztpqrt2FnPtr,
18615    m: *const lapackint,
18616    n: *const lapackint,
18617    l: *const lapackint,
18618    A: *mut Complex64,
18619    lda: *const lapackint,
18620    B: *mut Complex64,
18621    ldb: *const lapackint,
18622    T: *mut Complex64,
18623    ldt: *const lapackint,
18624    info: *mut lapackint,
18625);
18626
18627// TPRFB
18628define_lapack_ffi!(ctprfb, CtprfbFnPtr,
18629    side: *const c_char,
18630    trans: *const c_char,
18631    direct: *const c_char,
18632    storev: *const c_char,
18633    m: *const lapackint,
18634    n: *const lapackint,
18635    k: *const lapackint,
18636    l: *const lapackint,
18637    V: *const Complex32,
18638    ldv: *const lapackint,
18639    T: *const Complex32,
18640    ldt: *const lapackint,
18641    A: *mut Complex32,
18642    lda: *const lapackint,
18643    B: *mut Complex32,
18644    ldb: *const lapackint,
18645    work: *mut Complex32,
18646    ldwork: *const lapackint,
18647);
18648
18649define_lapack_ffi!(dtprfb, DtprfbFnPtr,
18650    side: *const c_char,
18651    trans: *const c_char,
18652    direct: *const c_char,
18653    storev: *const c_char,
18654    m: *const lapackint,
18655    n: *const lapackint,
18656    k: *const lapackint,
18657    l: *const lapackint,
18658    V: *const f64,
18659    ldv: *const lapackint,
18660    T: *const f64,
18661    ldt: *const lapackint,
18662    A: *mut f64,
18663    lda: *const lapackint,
18664    B: *mut f64,
18665    ldb: *const lapackint,
18666    work: *mut f64,
18667    ldwork: *const lapackint,
18668);
18669
18670define_lapack_ffi!(stprfb, StprfbFnPtr,
18671    side: *const c_char,
18672    trans: *const c_char,
18673    direct: *const c_char,
18674    storev: *const c_char,
18675    m: *const lapackint,
18676    n: *const lapackint,
18677    k: *const lapackint,
18678    l: *const lapackint,
18679    V: *const f32,
18680    ldv: *const lapackint,
18681    T: *const f32,
18682    ldt: *const lapackint,
18683    A: *mut f32,
18684    lda: *const lapackint,
18685    B: *mut f32,
18686    ldb: *const lapackint,
18687    work: *mut f32,
18688    ldwork: *const lapackint,
18689);
18690
18691define_lapack_ffi!(ztprfb, ZtprfbFnPtr,
18692    side: *const c_char,
18693    trans: *const c_char,
18694    direct: *const c_char,
18695    storev: *const c_char,
18696    m: *const lapackint,
18697    n: *const lapackint,
18698    k: *const lapackint,
18699    l: *const lapackint,
18700    V: *const Complex64,
18701    ldv: *const lapackint,
18702    T: *const Complex64,
18703    ldt: *const lapackint,
18704    A: *mut Complex64,
18705    lda: *const lapackint,
18706    B: *mut Complex64,
18707    ldb: *const lapackint,
18708    work: *mut Complex64,
18709    ldwork: *const lapackint,
18710);
18711
18712// TPRFS
18713define_lapack_ffi!(ctprfs, CtprfsFnPtr,
18714    uplo: *const c_char,
18715    trans: *const c_char,
18716    diag: *const c_char,
18717    n: *const lapackint,
18718    nrhs: *const lapackint,
18719    AP: *const Complex32,
18720    B: *const Complex32,
18721    ldb: *const lapackint,
18722    X: *const Complex32,
18723    ldx: *const lapackint,
18724    ferr: *mut f32,
18725    berr: *mut f32,
18726    work: *mut Complex32,
18727    rwork: *mut f32,
18728    info: *mut lapackint,
18729);
18730
18731define_lapack_ffi!(dtprfs, DtprfsFnPtr,
18732    uplo: *const c_char,
18733    trans: *const c_char,
18734    diag: *const c_char,
18735    n: *const lapackint,
18736    nrhs: *const lapackint,
18737    AP: *const f64,
18738    B: *const f64,
18739    ldb: *const lapackint,
18740    X: *const f64,
18741    ldx: *const lapackint,
18742    ferr: *mut f64,
18743    berr: *mut f64,
18744    work: *mut f64,
18745    iwork: *mut lapackint,
18746    info: *mut lapackint,
18747);
18748
18749define_lapack_ffi!(stprfs, StprfsFnPtr,
18750    uplo: *const c_char,
18751    trans: *const c_char,
18752    diag: *const c_char,
18753    n: *const lapackint,
18754    nrhs: *const lapackint,
18755    AP: *const f32,
18756    B: *const f32,
18757    ldb: *const lapackint,
18758    X: *const f32,
18759    ldx: *const lapackint,
18760    ferr: *mut f32,
18761    berr: *mut f32,
18762    work: *mut f32,
18763    iwork: *mut lapackint,
18764    info: *mut lapackint,
18765);
18766
18767define_lapack_ffi!(ztprfs, ZtprfsFnPtr,
18768    uplo: *const c_char,
18769    trans: *const c_char,
18770    diag: *const c_char,
18771    n: *const lapackint,
18772    nrhs: *const lapackint,
18773    AP: *const Complex64,
18774    B: *const Complex64,
18775    ldb: *const lapackint,
18776    X: *const Complex64,
18777    ldx: *const lapackint,
18778    ferr: *mut f64,
18779    berr: *mut f64,
18780    work: *mut Complex64,
18781    rwork: *mut f64,
18782    info: *mut lapackint,
18783);
18784
18785// TPTRI
18786define_lapack_ffi!(ctptri, CtptriFnPtr,
18787    uplo: *const c_char,
18788    diag: *const c_char,
18789    n: *const lapackint,
18790    AP: *mut Complex32,
18791    info: *mut lapackint,
18792);
18793
18794define_lapack_ffi!(dtptri, DtptriFnPtr,
18795    uplo: *const c_char,
18796    diag: *const c_char,
18797    n: *const lapackint,
18798    AP: *mut f64,
18799    info: *mut lapackint,
18800);
18801
18802define_lapack_ffi!(stptri, StptriFnPtr,
18803    uplo: *const c_char,
18804    diag: *const c_char,
18805    n: *const lapackint,
18806    AP: *mut f32,
18807    info: *mut lapackint,
18808);
18809
18810define_lapack_ffi!(ztptri, ZtptriFnPtr,
18811    uplo: *const c_char,
18812    diag: *const c_char,
18813    n: *const lapackint,
18814    AP: *mut Complex64,
18815    info: *mut lapackint,
18816);
18817
18818// TPTRS
18819define_lapack_ffi!(ctptrs, CtptrsFnPtr,
18820    uplo: *const c_char,
18821    trans: *const c_char,
18822    diag: *const c_char,
18823    n: *const lapackint,
18824    nrhs: *const lapackint,
18825    AP: *const Complex32,
18826    B: *mut Complex32,
18827    ldb: *const lapackint,
18828    info: *mut lapackint,
18829);
18830
18831define_lapack_ffi!(dtptrs, DtptrsFnPtr,
18832    uplo: *const c_char,
18833    trans: *const c_char,
18834    diag: *const c_char,
18835    n: *const lapackint,
18836    nrhs: *const lapackint,
18837    AP: *const f64,
18838    B: *mut f64,
18839    ldb: *const lapackint,
18840    info: *mut lapackint,
18841);
18842
18843define_lapack_ffi!(stptrs, StptrsFnPtr,
18844    uplo: *const c_char,
18845    trans: *const c_char,
18846    diag: *const c_char,
18847    n: *const lapackint,
18848    nrhs: *const lapackint,
18849    AP: *const f32,
18850    B: *mut f32,
18851    ldb: *const lapackint,
18852    info: *mut lapackint,
18853);
18854
18855define_lapack_ffi!(ztptrs, ZtptrsFnPtr,
18856    uplo: *const c_char,
18857    trans: *const c_char,
18858    diag: *const c_char,
18859    n: *const lapackint,
18860    nrhs: *const lapackint,
18861    AP: *const Complex64,
18862    B: *mut Complex64,
18863    ldb: *const lapackint,
18864    info: *mut lapackint,
18865);
18866
18867// TPTTF
18868define_lapack_ffi!(ctpttf, CtpttfFnPtr,
18869    transr: *const c_char,
18870    uplo: *const c_char,
18871    n: *const lapackint,
18872    AP: *const Complex32,
18873    ARF: *mut Complex32,
18874    info: *mut lapackint,
18875);
18876
18877define_lapack_ffi!(dtpttf, DtpttfFnPtr,
18878    transr: *const c_char,
18879    uplo: *const c_char,
18880    n: *const lapackint,
18881    AP: *const f64,
18882    ARF: *mut f64,
18883    info: *mut lapackint,
18884);
18885
18886define_lapack_ffi!(stpttf, StpttfFnPtr,
18887    transr: *const c_char,
18888    uplo: *const c_char,
18889    n: *const lapackint,
18890    AP: *const f32,
18891    ARF: *mut f32,
18892    info: *mut lapackint,
18893);
18894
18895define_lapack_ffi!(ztpttf, ZtpttfFnPtr,
18896    transr: *const c_char,
18897    uplo: *const c_char,
18898    n: *const lapackint,
18899    AP: *const Complex64,
18900    ARF: *mut Complex64,
18901    info: *mut lapackint,
18902);
18903
18904// TPTTR
18905define_lapack_ffi!(ctpttr, CtpttrFnPtr,
18906    uplo: *const c_char,
18907    n: *const lapackint,
18908    AP: *const Complex32,
18909    A: *mut Complex32,
18910    lda: *const lapackint,
18911    info: *mut lapackint,
18912);
18913
18914define_lapack_ffi!(dtpttr, DtpttrFnPtr,
18915    uplo: *const c_char,
18916    n: *const lapackint,
18917    AP: *const f64,
18918    A: *mut f64,
18919    lda: *const lapackint,
18920    info: *mut lapackint,
18921);
18922
18923define_lapack_ffi!(stpttr, StpttrFnPtr,
18924    uplo: *const c_char,
18925    n: *const lapackint,
18926    AP: *const f32,
18927    A: *mut f32,
18928    lda: *const lapackint,
18929    info: *mut lapackint,
18930);
18931
18932define_lapack_ffi!(ztpttr, ZtpttrFnPtr,
18933    uplo: *const c_char,
18934    n: *const lapackint,
18935    AP: *const Complex64,
18936    A: *mut Complex64,
18937    lda: *const lapackint,
18938    info: *mut lapackint,
18939);
18940
18941// TRCON
18942define_lapack_ffi!(ctrcon, CtrconFnPtr,
18943    norm: *const c_char,
18944    uplo: *const c_char,
18945    diag: *const c_char,
18946    n: *const lapackint,
18947    A: *const Complex32,
18948    lda: *const lapackint,
18949    rcond: *mut f32,
18950    work: *mut Complex32,
18951    rwork: *mut f32,
18952    info: *mut lapackint,
18953);
18954
18955define_lapack_ffi!(dtrcon, DtrconFnPtr,
18956    norm: *const c_char,
18957    uplo: *const c_char,
18958    diag: *const c_char,
18959    n: *const lapackint,
18960    A: *const f64,
18961    lda: *const lapackint,
18962    rcond: *mut f64,
18963    work: *mut f64,
18964    iwork: *mut lapackint,
18965    info: *mut lapackint,
18966);
18967
18968define_lapack_ffi!(strcon, StrconFnPtr,
18969    norm: *const c_char,
18970    uplo: *const c_char,
18971    diag: *const c_char,
18972    n: *const lapackint,
18973    A: *const f32,
18974    lda: *const lapackint,
18975    rcond: *mut f32,
18976    work: *mut f32,
18977    iwork: *mut lapackint,
18978    info: *mut lapackint,
18979);
18980
18981define_lapack_ffi!(ztrcon, ZtrconFnPtr,
18982    norm: *const c_char,
18983    uplo: *const c_char,
18984    diag: *const c_char,
18985    n: *const lapackint,
18986    A: *const Complex64,
18987    lda: *const lapackint,
18988    rcond: *mut f64,
18989    work: *mut Complex64,
18990    rwork: *mut f64,
18991    info: *mut lapackint,
18992);
18993
18994// TREVC
18995define_lapack_ffi!(ctrevc, CtrevcFnPtr,
18996    side: *const c_char,
18997    howmny: *const c_char,
18998    select: *const lapackint,
18999    n: *const lapackint,
19000    T: *mut Complex32,
19001    ldt: *const lapackint,
19002    VL: *mut Complex32,
19003    ldvl: *const lapackint,
19004    VR: *mut Complex32,
19005    ldvr: *const lapackint,
19006    mm: *const lapackint,
19007    m: *mut lapackint,
19008    work: *mut Complex32,
19009    rwork: *mut f32,
19010    info: *mut lapackint,
19011);
19012
19013define_lapack_ffi!(dtrevc, DtrevcFnPtr,
19014    side: *const c_char,
19015    howmny: *const c_char,
19016    select: *mut lapackint,
19017    n: *const lapackint,
19018    T: *const f64,
19019    ldt: *const lapackint,
19020    VL: *mut f64,
19021    ldvl: *const lapackint,
19022    VR: *mut f64,
19023    ldvr: *const lapackint,
19024    mm: *const lapackint,
19025    m: *mut lapackint,
19026    work: *mut f64,
19027    info: *mut lapackint,
19028);
19029
19030define_lapack_ffi!(strevc, StrevcFnPtr,
19031    side: *const c_char,
19032    howmny: *const c_char,
19033    select: *mut lapackint,
19034    n: *const lapackint,
19035    T: *const f32,
19036    ldt: *const lapackint,
19037    VL: *mut f32,
19038    ldvl: *const lapackint,
19039    VR: *mut f32,
19040    ldvr: *const lapackint,
19041    mm: *const lapackint,
19042    m: *mut lapackint,
19043    work: *mut f32,
19044    info: *mut lapackint,
19045);
19046
19047define_lapack_ffi!(ztrevc, ZtrevcFnPtr,
19048    side: *const c_char,
19049    howmny: *const c_char,
19050    select: *const lapackint,
19051    n: *const lapackint,
19052    T: *mut Complex64,
19053    ldt: *const lapackint,
19054    VL: *mut Complex64,
19055    ldvl: *const lapackint,
19056    VR: *mut Complex64,
19057    ldvr: *const lapackint,
19058    mm: *const lapackint,
19059    m: *mut lapackint,
19060    work: *mut Complex64,
19061    rwork: *mut f64,
19062    info: *mut lapackint,
19063);
19064
19065// TREVC3
19066define_lapack_ffi!(ctrevc3, Ctrevc3FnPtr,
19067    side: *const c_char,
19068    howmny: *const c_char,
19069    select: *const lapackint,
19070    n: *const lapackint,
19071    T: *mut Complex32,
19072    ldt: *const lapackint,
19073    VL: *mut Complex32,
19074    ldvl: *const lapackint,
19075    VR: *mut Complex32,
19076    ldvr: *const lapackint,
19077    mm: *const lapackint,
19078    m: *mut lapackint,
19079    work: *mut Complex32,
19080    lwork: *const lapackint,
19081    rwork: *mut f32,
19082    lrwork: *const lapackint,
19083    info: *mut lapackint,
19084);
19085
19086define_lapack_ffi!(dtrevc3, Dtrevc3FnPtr,
19087    side: *const c_char,
19088    howmny: *const c_char,
19089    select: *mut lapackint,
19090    n: *const lapackint,
19091    T: *const f64,
19092    ldt: *const lapackint,
19093    VL: *mut f64,
19094    ldvl: *const lapackint,
19095    VR: *mut f64,
19096    ldvr: *const lapackint,
19097    mm: *const lapackint,
19098    m: *mut lapackint,
19099    work: *mut f64,
19100    lwork: *const lapackint,
19101    info: *mut lapackint,
19102);
19103
19104define_lapack_ffi!(strevc3, Strevc3FnPtr,
19105    side: *const c_char,
19106    howmny: *const c_char,
19107    select: *mut lapackint,
19108    n: *const lapackint,
19109    T: *const f32,
19110    ldt: *const lapackint,
19111    VL: *mut f32,
19112    ldvl: *const lapackint,
19113    VR: *mut f32,
19114    ldvr: *const lapackint,
19115    mm: *const lapackint,
19116    m: *mut lapackint,
19117    work: *mut f32,
19118    lwork: *const lapackint,
19119    info: *mut lapackint,
19120);
19121
19122define_lapack_ffi!(ztrevc3, Ztrevc3FnPtr,
19123    side: *const c_char,
19124    howmny: *const c_char,
19125    select: *const lapackint,
19126    n: *const lapackint,
19127    T: *mut Complex64,
19128    ldt: *const lapackint,
19129    VL: *mut Complex64,
19130    ldvl: *const lapackint,
19131    VR: *mut Complex64,
19132    ldvr: *const lapackint,
19133    mm: *const lapackint,
19134    m: *mut lapackint,
19135    work: *mut Complex64,
19136    lwork: *const lapackint,
19137    rwork: *mut f64,
19138    lrwork: *const lapackint,
19139    info: *mut lapackint,
19140);
19141
19142// TREXC
19143define_lapack_ffi!(ctrexc, CtrexcFnPtr,
19144    compq: *const c_char,
19145    n: *const lapackint,
19146    T: *mut Complex32,
19147    ldt: *const lapackint,
19148    Q: *mut Complex32,
19149    ldq: *const lapackint,
19150    ifst: *const lapackint,
19151    ilst: *const lapackint,
19152    info: *mut lapackint,
19153);
19154
19155define_lapack_ffi!(dtrexc, DtrexcFnPtr,
19156    compq: *const c_char,
19157    n: *const lapackint,
19158    T: *mut f64,
19159    ldt: *const lapackint,
19160    Q: *mut f64,
19161    ldq: *const lapackint,
19162    ifst: *mut lapackint,
19163    ilst: *mut lapackint,
19164    work: *mut f64,
19165    info: *mut lapackint,
19166);
19167
19168define_lapack_ffi!(strexc, StrexcFnPtr,
19169    compq: *const c_char,
19170    n: *const lapackint,
19171    T: *mut f32,
19172    ldt: *const lapackint,
19173    Q: *mut f32,
19174    ldq: *const lapackint,
19175    ifst: *mut lapackint,
19176    ilst: *mut lapackint,
19177    work: *mut f32,
19178    info: *mut lapackint,
19179);
19180
19181define_lapack_ffi!(ztrexc, ZtrexcFnPtr,
19182    compq: *const c_char,
19183    n: *const lapackint,
19184    T: *mut Complex64,
19185    ldt: *const lapackint,
19186    Q: *mut Complex64,
19187    ldq: *const lapackint,
19188    ifst: *const lapackint,
19189    ilst: *const lapackint,
19190    info: *mut lapackint,
19191);
19192
19193// TRRFS
19194define_lapack_ffi!(ctrrfs, CtrrfsFnPtr,
19195    uplo: *const c_char,
19196    trans: *const c_char,
19197    diag: *const c_char,
19198    n: *const lapackint,
19199    nrhs: *const lapackint,
19200    A: *const Complex32,
19201    lda: *const lapackint,
19202    B: *const Complex32,
19203    ldb: *const lapackint,
19204    X: *const Complex32,
19205    ldx: *const lapackint,
19206    ferr: *mut f32,
19207    berr: *mut f32,
19208    work: *mut Complex32,
19209    rwork: *mut f32,
19210    info: *mut lapackint,
19211);
19212
19213define_lapack_ffi!(dtrrfs, DtrrfsFnPtr,
19214    uplo: *const c_char,
19215    trans: *const c_char,
19216    diag: *const c_char,
19217    n: *const lapackint,
19218    nrhs: *const lapackint,
19219    A: *const f64,
19220    lda: *const lapackint,
19221    B: *const f64,
19222    ldb: *const lapackint,
19223    X: *const f64,
19224    ldx: *const lapackint,
19225    ferr: *mut f64,
19226    berr: *mut f64,
19227    work: *mut f64,
19228    iwork: *mut lapackint,
19229    info: *mut lapackint,
19230);
19231
19232define_lapack_ffi!(strrfs, StrrfsFnPtr,
19233    uplo: *const c_char,
19234    trans: *const c_char,
19235    diag: *const c_char,
19236    n: *const lapackint,
19237    nrhs: *const lapackint,
19238    A: *const f32,
19239    lda: *const lapackint,
19240    B: *const f32,
19241    ldb: *const lapackint,
19242    X: *const f32,
19243    ldx: *const lapackint,
19244    ferr: *mut f32,
19245    berr: *mut f32,
19246    work: *mut f32,
19247    iwork: *mut lapackint,
19248    info: *mut lapackint,
19249);
19250
19251define_lapack_ffi!(ztrrfs, ZtrrfsFnPtr,
19252    uplo: *const c_char,
19253    trans: *const c_char,
19254    diag: *const c_char,
19255    n: *const lapackint,
19256    nrhs: *const lapackint,
19257    A: *const Complex64,
19258    lda: *const lapackint,
19259    B: *const Complex64,
19260    ldb: *const lapackint,
19261    X: *const Complex64,
19262    ldx: *const lapackint,
19263    ferr: *mut f64,
19264    berr: *mut f64,
19265    work: *mut Complex64,
19266    rwork: *mut f64,
19267    info: *mut lapackint,
19268);
19269
19270// TRSEN
19271define_lapack_ffi!(ctrsen, CtrsenFnPtr,
19272    job: *const c_char,
19273    compq: *const c_char,
19274    select: *const lapackint,
19275    n: *const lapackint,
19276    T: *mut Complex32,
19277    ldt: *const lapackint,
19278    Q: *mut Complex32,
19279    ldq: *const lapackint,
19280    W: *mut Complex32,
19281    m: *mut lapackint,
19282    s: *mut f32,
19283    sep: *mut f32,
19284    work: *mut Complex32,
19285    lwork: *const lapackint,
19286    info: *mut lapackint,
19287);
19288
19289define_lapack_ffi!(dtrsen, DtrsenFnPtr,
19290    job: *const c_char,
19291    compq: *const c_char,
19292    select: *const lapackint,
19293    n: *const lapackint,
19294    T: *mut f64,
19295    ldt: *const lapackint,
19296    Q: *mut f64,
19297    ldq: *const lapackint,
19298    WR: *mut f64,
19299    WI: *mut f64,
19300    m: *mut lapackint,
19301    s: *mut f64,
19302    sep: *mut f64,
19303    work: *mut f64,
19304    lwork: *const lapackint,
19305    iwork: *mut lapackint,
19306    liwork: *const lapackint,
19307    info: *mut lapackint,
19308);
19309
19310define_lapack_ffi!(strsen, StrsenFnPtr,
19311    job: *const c_char,
19312    compq: *const c_char,
19313    select: *const lapackint,
19314    n: *const lapackint,
19315    T: *mut f32,
19316    ldt: *const lapackint,
19317    Q: *mut f32,
19318    ldq: *const lapackint,
19319    WR: *mut f32,
19320    WI: *mut f32,
19321    m: *mut lapackint,
19322    s: *mut f32,
19323    sep: *mut f32,
19324    work: *mut f32,
19325    lwork: *const lapackint,
19326    iwork: *mut lapackint,
19327    liwork: *const lapackint,
19328    info: *mut lapackint,
19329);
19330
19331define_lapack_ffi!(ztrsen, ZtrsenFnPtr,
19332    job: *const c_char,
19333    compq: *const c_char,
19334    select: *const lapackint,
19335    n: *const lapackint,
19336    T: *mut Complex64,
19337    ldt: *const lapackint,
19338    Q: *mut Complex64,
19339    ldq: *const lapackint,
19340    W: *mut Complex64,
19341    m: *mut lapackint,
19342    s: *mut f64,
19343    sep: *mut f64,
19344    work: *mut Complex64,
19345    lwork: *const lapackint,
19346    info: *mut lapackint,
19347);
19348
19349// TRSNA
19350define_lapack_ffi!(ctrsna, CtrsnaFnPtr,
19351    job: *const c_char,
19352    howmny: *const c_char,
19353    select: *const lapackint,
19354    n: *const lapackint,
19355    T: *const Complex32,
19356    ldt: *const lapackint,
19357    VL: *const Complex32,
19358    ldvl: *const lapackint,
19359    VR: *const Complex32,
19360    ldvr: *const lapackint,
19361    S: *mut f32,
19362    SEP: *mut f32,
19363    mm: *const lapackint,
19364    m: *mut lapackint,
19365    work: *mut Complex32,
19366    ldwork: *const lapackint,
19367    rwork: *mut f32,
19368    info: *mut lapackint,
19369);
19370
19371define_lapack_ffi!(dtrsna, DtrsnaFnPtr,
19372    job: *const c_char,
19373    howmny: *const c_char,
19374    select: *const lapackint,
19375    n: *const lapackint,
19376    T: *const f64,
19377    ldt: *const lapackint,
19378    VL: *const f64,
19379    ldvl: *const lapackint,
19380    VR: *const f64,
19381    ldvr: *const lapackint,
19382    S: *mut f64,
19383    SEP: *mut f64,
19384    mm: *const lapackint,
19385    m: *mut lapackint,
19386    work: *mut f64,
19387    ldwork: *const lapackint,
19388    iwork: *mut lapackint,
19389    info: *mut lapackint,
19390);
19391
19392define_lapack_ffi!(strsna, StrsnaFnPtr,
19393    job: *const c_char,
19394    howmny: *const c_char,
19395    select: *const lapackint,
19396    n: *const lapackint,
19397    T: *const f32,
19398    ldt: *const lapackint,
19399    VL: *const f32,
19400    ldvl: *const lapackint,
19401    VR: *const f32,
19402    ldvr: *const lapackint,
19403    S: *mut f32,
19404    SEP: *mut f32,
19405    mm: *const lapackint,
19406    m: *mut lapackint,
19407    work: *mut f32,
19408    ldwork: *const lapackint,
19409    iwork: *mut lapackint,
19410    info: *mut lapackint,
19411);
19412
19413define_lapack_ffi!(ztrsna, ZtrsnaFnPtr,
19414    job: *const c_char,
19415    howmny: *const c_char,
19416    select: *const lapackint,
19417    n: *const lapackint,
19418    T: *const Complex64,
19419    ldt: *const lapackint,
19420    VL: *const Complex64,
19421    ldvl: *const lapackint,
19422    VR: *const Complex64,
19423    ldvr: *const lapackint,
19424    S: *mut f64,
19425    SEP: *mut f64,
19426    mm: *const lapackint,
19427    m: *mut lapackint,
19428    work: *mut Complex64,
19429    ldwork: *const lapackint,
19430    rwork: *mut f64,
19431    info: *mut lapackint,
19432);
19433
19434// TRSYL
19435define_lapack_ffi!(ctrsyl, CtrsylFnPtr,
19436    trana: *const c_char,
19437    tranb: *const c_char,
19438    isgn: *const lapackint,
19439    m: *const lapackint,
19440    n: *const lapackint,
19441    A: *const Complex32,
19442    lda: *const lapackint,
19443    B: *const Complex32,
19444    ldb: *const lapackint,
19445    C: *mut Complex32,
19446    ldc: *const lapackint,
19447    scale: *mut f32,
19448    info: *mut lapackint,
19449);
19450
19451define_lapack_ffi!(dtrsyl, DtrsylFnPtr,
19452    trana: *const c_char,
19453    tranb: *const c_char,
19454    isgn: *const lapackint,
19455    m: *const lapackint,
19456    n: *const lapackint,
19457    A: *const f64,
19458    lda: *const lapackint,
19459    B: *const f64,
19460    ldb: *const lapackint,
19461    C: *mut f64,
19462    ldc: *const lapackint,
19463    scale: *mut f64,
19464    info: *mut lapackint,
19465);
19466
19467define_lapack_ffi!(strsyl, StrsylFnPtr,
19468    trana: *const c_char,
19469    tranb: *const c_char,
19470    isgn: *const lapackint,
19471    m: *const lapackint,
19472    n: *const lapackint,
19473    A: *const f32,
19474    lda: *const lapackint,
19475    B: *const f32,
19476    ldb: *const lapackint,
19477    C: *mut f32,
19478    ldc: *const lapackint,
19479    scale: *mut f32,
19480    info: *mut lapackint,
19481);
19482
19483define_lapack_ffi!(ztrsyl, ZtrsylFnPtr,
19484    trana: *const c_char,
19485    tranb: *const c_char,
19486    isgn: *const lapackint,
19487    m: *const lapackint,
19488    n: *const lapackint,
19489    A: *const Complex64,
19490    lda: *const lapackint,
19491    B: *const Complex64,
19492    ldb: *const lapackint,
19493    C: *mut Complex64,
19494    ldc: *const lapackint,
19495    scale: *mut f64,
19496    info: *mut lapackint,
19497);
19498
19499// TRTRI
19500define_lapack_ffi!(ctrtri, CtrtriFnPtr,
19501    uplo: *const c_char,
19502    diag: *const c_char,
19503    n: *const lapackint,
19504    A: *mut Complex32,
19505    lda: *const lapackint,
19506    info: *mut lapackint,
19507);
19508
19509define_lapack_ffi!(dtrtri, DtrtriFnPtr,
19510    uplo: *const c_char,
19511    diag: *const c_char,
19512    n: *const lapackint,
19513    A: *mut f64,
19514    lda: *const lapackint,
19515    info: *mut lapackint,
19516);
19517
19518define_lapack_ffi!(strtri, StrtriFnPtr,
19519    uplo: *const c_char,
19520    diag: *const c_char,
19521    n: *const lapackint,
19522    A: *mut f32,
19523    lda: *const lapackint,
19524    info: *mut lapackint,
19525);
19526
19527define_lapack_ffi!(ztrtri, ZtrtriFnPtr,
19528    uplo: *const c_char,
19529    diag: *const c_char,
19530    n: *const lapackint,
19531    A: *mut Complex64,
19532    lda: *const lapackint,
19533    info: *mut lapackint,
19534);
19535
19536// TRTRS
19537define_lapack_ffi!(ctrtrs, CtrtrsFnPtr,
19538    uplo: *const c_char,
19539    trans: *const c_char,
19540    diag: *const c_char,
19541    n: *const lapackint,
19542    nrhs: *const lapackint,
19543    A: *const Complex32,
19544    lda: *const lapackint,
19545    B: *mut Complex32,
19546    ldb: *const lapackint,
19547    info: *mut lapackint,
19548);
19549
19550define_lapack_ffi!(dtrtrs, DtrtrsFnPtr,
19551    uplo: *const c_char,
19552    trans: *const c_char,
19553    diag: *const c_char,
19554    n: *const lapackint,
19555    nrhs: *const lapackint,
19556    A: *const f64,
19557    lda: *const lapackint,
19558    B: *mut f64,
19559    ldb: *const lapackint,
19560    info: *mut lapackint,
19561);
19562
19563define_lapack_ffi!(strtrs, StrtrsFnPtr,
19564    uplo: *const c_char,
19565    trans: *const c_char,
19566    diag: *const c_char,
19567    n: *const lapackint,
19568    nrhs: *const lapackint,
19569    A: *const f32,
19570    lda: *const lapackint,
19571    B: *mut f32,
19572    ldb: *const lapackint,
19573    info: *mut lapackint,
19574);
19575
19576define_lapack_ffi!(ztrtrs, ZtrtrsFnPtr,
19577    uplo: *const c_char,
19578    trans: *const c_char,
19579    diag: *const c_char,
19580    n: *const lapackint,
19581    nrhs: *const lapackint,
19582    A: *const Complex64,
19583    lda: *const lapackint,
19584    B: *mut Complex64,
19585    ldb: *const lapackint,
19586    info: *mut lapackint,
19587);
19588
19589// TRTTF
19590define_lapack_ffi!(ctrttf, CtrttfFnPtr,
19591    transr: *const c_char,
19592    uplo: *const c_char,
19593    n: *const lapackint,
19594    A: *const Complex32,
19595    lda: *const lapackint,
19596    ARF: *mut Complex32,
19597    info: *mut lapackint,
19598);
19599
19600define_lapack_ffi!(dtrttf, DtrttfFnPtr,
19601    transr: *const c_char,
19602    uplo: *const c_char,
19603    n: *const lapackint,
19604    A: *const f64,
19605    lda: *const lapackint,
19606    ARF: *mut f64,
19607    info: *mut lapackint,
19608);
19609
19610define_lapack_ffi!(strttf, StrttfFnPtr,
19611    transr: *const c_char,
19612    uplo: *const c_char,
19613    n: *const lapackint,
19614    A: *const f32,
19615    lda: *const lapackint,
19616    ARF: *mut f32,
19617    info: *mut lapackint,
19618);
19619
19620define_lapack_ffi!(ztrttf, ZtrttfFnPtr,
19621    transr: *const c_char,
19622    uplo: *const c_char,
19623    n: *const lapackint,
19624    A: *const Complex64,
19625    lda: *const lapackint,
19626    ARF: *mut Complex64,
19627    info: *mut lapackint,
19628);
19629
19630// TRTTP
19631define_lapack_ffi!(ctrttp, CtrttpFnPtr,
19632    uplo: *const c_char,
19633    n: *const lapackint,
19634    A: *const Complex32,
19635    lda: *const lapackint,
19636    AP: *mut Complex32,
19637    info: *mut lapackint,
19638);
19639
19640define_lapack_ffi!(dtrttp, DtrttpFnPtr,
19641    uplo: *const c_char,
19642    n: *const lapackint,
19643    A: *const f64,
19644    lda: *const lapackint,
19645    AP: *mut f64,
19646    info: *mut lapackint,
19647);
19648
19649define_lapack_ffi!(strttp, StrttpFnPtr,
19650    uplo: *const c_char,
19651    n: *const lapackint,
19652    A: *const f32,
19653    lda: *const lapackint,
19654    AP: *mut f32,
19655    info: *mut lapackint,
19656);
19657
19658define_lapack_ffi!(ztrttp, ZtrttpFnPtr,
19659    uplo: *const c_char,
19660    n: *const lapackint,
19661    A: *const Complex64,
19662    lda: *const lapackint,
19663    AP: *mut Complex64,
19664    info: *mut lapackint,
19665);
19666
19667// TZRZF
19668define_lapack_ffi!(ctzrzf, CtzrzfFnPtr,
19669    m: *const lapackint,
19670    n: *const lapackint,
19671    A: *mut Complex32,
19672    lda: *const lapackint,
19673    tau: *mut Complex32,
19674    work: *mut Complex32,
19675    lwork: *const lapackint,
19676    info: *mut lapackint,
19677);
19678
19679define_lapack_ffi!(dtzrzf, DtzrzfFnPtr,
19680    m: *const lapackint,
19681    n: *const lapackint,
19682    A: *mut f64,
19683    lda: *const lapackint,
19684    tau: *mut f64,
19685    work: *mut f64,
19686    lwork: *const lapackint,
19687    info: *mut lapackint,
19688);
19689
19690define_lapack_ffi!(stzrzf, StzrzfFnPtr,
19691    m: *const lapackint,
19692    n: *const lapackint,
19693    A: *mut f32,
19694    lda: *const lapackint,
19695    tau: *mut f32,
19696    work: *mut f32,
19697    lwork: *const lapackint,
19698    info: *mut lapackint,
19699);
19700
19701define_lapack_ffi!(ztzrzf, ZtzrzfFnPtr,
19702    m: *const lapackint,
19703    n: *const lapackint,
19704    A: *mut Complex64,
19705    lda: *const lapackint,
19706    tau: *mut Complex64,
19707    work: *mut Complex64,
19708    lwork: *const lapackint,
19709    info: *mut lapackint,
19710);
19711
19712// UNBDB
19713define_lapack_ffi!(cunbdb, CunbdbFnPtr,
19714    trans: *const c_char,
19715    signs: *const c_char,
19716    m: *const lapackint,
19717    p: *const lapackint,
19718    q: *const lapackint,
19719    X11: *mut Complex32,
19720    ldx11: *const lapackint,
19721    X12: *mut Complex32,
19722    ldx12: *const lapackint,
19723    X21: *mut Complex32,
19724    ldx21: *const lapackint,
19725    X22: *mut Complex32,
19726    ldx22: *const lapackint,
19727    theta: *mut f32,
19728    phi: *mut f32,
19729    TAUP1: *mut Complex32,
19730    TAUP2: *mut Complex32,
19731    TAUQ1: *mut Complex32,
19732    TAUQ2: *mut Complex32,
19733    work: *mut Complex32,
19734    lwork: *const lapackint,
19735    info: *mut lapackint,
19736);
19737
19738define_lapack_ffi!(zunbdb, ZunbdbFnPtr,
19739    trans: *const c_char,
19740    signs: *const c_char,
19741    m: *const lapackint,
19742    p: *const lapackint,
19743    q: *const lapackint,
19744    X11: *mut Complex64,
19745    ldx11: *const lapackint,
19746    X12: *mut Complex64,
19747    ldx12: *const lapackint,
19748    X21: *mut Complex64,
19749    ldx21: *const lapackint,
19750    X22: *mut Complex64,
19751    ldx22: *const lapackint,
19752    theta: *mut f64,
19753    phi: *mut f64,
19754    TAUP1: *mut Complex64,
19755    TAUP2: *mut Complex64,
19756    TAUQ1: *mut Complex64,
19757    TAUQ2: *mut Complex64,
19758    work: *mut Complex64,
19759    lwork: *const lapackint,
19760    info: *mut lapackint,
19761);
19762
19763// UNCSD
19764define_lapack_ffi!(cuncsd, CuncsdFnPtr,
19765    jobu1: *const c_char,
19766    jobu2: *const c_char,
19767    jobv1t: *const c_char,
19768    jobv2t: *const c_char,
19769    trans: *const c_char,
19770    signs: *const c_char,
19771    m: *const lapackint,
19772    p: *const lapackint,
19773    q: *const lapackint,
19774    X11: *mut Complex32,
19775    ldx11: *const lapackint,
19776    X12: *mut Complex32,
19777    ldx12: *const lapackint,
19778    X21: *mut Complex32,
19779    ldx21: *const lapackint,
19780    X22: *mut Complex32,
19781    ldx22: *const lapackint,
19782    theta: *mut f32,
19783    U1: *mut Complex32,
19784    ldu1: *const lapackint,
19785    U2: *mut Complex32,
19786    ldu2: *const lapackint,
19787    V1T: *mut Complex32,
19788    ldv1t: *const lapackint,
19789    V2T: *mut Complex32,
19790    ldv2t: *const lapackint,
19791    work: *mut Complex32,
19792    lwork: *const lapackint,
19793    rwork: *mut f32,
19794    lrwork: *const lapackint,
19795    iwork: *mut lapackint,
19796    info: *mut lapackint,
19797);
19798
19799define_lapack_ffi!(zuncsd, ZuncsdFnPtr,
19800    jobu1: *const c_char,
19801    jobu2: *const c_char,
19802    jobv1t: *const c_char,
19803    jobv2t: *const c_char,
19804    trans: *const c_char,
19805    signs: *const c_char,
19806    m: *const lapackint,
19807    p: *const lapackint,
19808    q: *const lapackint,
19809    X11: *mut Complex64,
19810    ldx11: *const lapackint,
19811    X12: *mut Complex64,
19812    ldx12: *const lapackint,
19813    X21: *mut Complex64,
19814    ldx21: *const lapackint,
19815    X22: *mut Complex64,
19816    ldx22: *const lapackint,
19817    theta: *mut f64,
19818    U1: *mut Complex64,
19819    ldu1: *const lapackint,
19820    U2: *mut Complex64,
19821    ldu2: *const lapackint,
19822    V1T: *mut Complex64,
19823    ldv1t: *const lapackint,
19824    V2T: *mut Complex64,
19825    ldv2t: *const lapackint,
19826    work: *mut Complex64,
19827    lwork: *const lapackint,
19828    rwork: *mut f64,
19829    lrwork: *const lapackint,
19830    iwork: *mut lapackint,
19831    info: *mut lapackint,
19832);
19833
19834// UNCSD2BY1
19835define_lapack_ffi!(cuncsd2by1, Cuncsd2by1FnPtr,
19836    jobu1: *const c_char,
19837    jobu2: *const c_char,
19838    jobv1t: *const c_char,
19839    m: *const lapackint,
19840    p: *const lapackint,
19841    q: *const lapackint,
19842    X11: *mut Complex32,
19843    ldx11: *const lapackint,
19844    X21: *mut Complex32,
19845    ldx21: *const lapackint,
19846    theta: *mut f32,
19847    U1: *mut Complex32,
19848    ldu1: *const lapackint,
19849    U2: *mut Complex32,
19850    ldu2: *const lapackint,
19851    V1T: *mut Complex32,
19852    ldv1t: *const lapackint,
19853    work: *mut Complex32,
19854    lwork: *const lapackint,
19855    rwork: *mut f32,
19856    lrwork: *const lapackint,
19857    iwork: *mut lapackint,
19858    info: *mut lapackint,
19859);
19860
19861define_lapack_ffi!(zuncsd2by1, Zuncsd2by1FnPtr,
19862    jobu1: *const c_char,
19863    jobu2: *const c_char,
19864    jobv1t: *const c_char,
19865    m: *const lapackint,
19866    p: *const lapackint,
19867    q: *const lapackint,
19868    X11: *mut Complex64,
19869    ldx11: *const lapackint,
19870    X21: *mut Complex64,
19871    ldx21: *const lapackint,
19872    theta: *mut f64,
19873    U1: *mut Complex64,
19874    ldu1: *const lapackint,
19875    U2: *mut Complex64,
19876    ldu2: *const lapackint,
19877    V1T: *mut Complex64,
19878    ldv1t: *const lapackint,
19879    work: *mut Complex64,
19880    lwork: *const lapackint,
19881    rwork: *mut f64,
19882    lrwork: *const lapackint,
19883    iwork: *mut lapackint,
19884    info: *mut lapackint,
19885);
19886
19887// UNGBR
19888define_lapack_ffi!(cungbr, CungbrFnPtr,
19889    vect: *const c_char,
19890    m: *const lapackint,
19891    n: *const lapackint,
19892    k: *const lapackint,
19893    A: *mut Complex32,
19894    lda: *const lapackint,
19895    tau: *const Complex32,
19896    work: *mut Complex32,
19897    lwork: *const lapackint,
19898    info: *mut lapackint,
19899);
19900
19901define_lapack_ffi!(zungbr, ZungbrFnPtr,
19902    vect: *const c_char,
19903    m: *const lapackint,
19904    n: *const lapackint,
19905    k: *const lapackint,
19906    A: *mut Complex64,
19907    lda: *const lapackint,
19908    tau: *const Complex64,
19909    work: *mut Complex64,
19910    lwork: *const lapackint,
19911    info: *mut lapackint,
19912);
19913
19914// UNGHR
19915define_lapack_ffi!(cunghr, CunghrFnPtr,
19916    n: *const lapackint,
19917    ilo: *const lapackint,
19918    ihi: *const lapackint,
19919    A: *mut Complex32,
19920    lda: *const lapackint,
19921    tau: *const Complex32,
19922    work: *mut Complex32,
19923    lwork: *const lapackint,
19924    info: *mut lapackint,
19925);
19926
19927define_lapack_ffi!(zunghr, ZunghrFnPtr,
19928    n: *const lapackint,
19929    ilo: *const lapackint,
19930    ihi: *const lapackint,
19931    A: *mut Complex64,
19932    lda: *const lapackint,
19933    tau: *const Complex64,
19934    work: *mut Complex64,
19935    lwork: *const lapackint,
19936    info: *mut lapackint,
19937);
19938
19939// UNGLQ
19940define_lapack_ffi!(cunglq, CunglqFnPtr,
19941    m: *const lapackint,
19942    n: *const lapackint,
19943    k: *const lapackint,
19944    A: *mut Complex32,
19945    lda: *const lapackint,
19946    tau: *const Complex32,
19947    work: *mut Complex32,
19948    lwork: *const lapackint,
19949    info: *mut lapackint,
19950);
19951
19952define_lapack_ffi!(zunglq, ZunglqFnPtr,
19953    m: *const lapackint,
19954    n: *const lapackint,
19955    k: *const lapackint,
19956    A: *mut Complex64,
19957    lda: *const lapackint,
19958    tau: *const Complex64,
19959    work: *mut Complex64,
19960    lwork: *const lapackint,
19961    info: *mut lapackint,
19962);
19963
19964// UNGQL
19965define_lapack_ffi!(cungql, CungqlFnPtr,
19966    m: *const lapackint,
19967    n: *const lapackint,
19968    k: *const lapackint,
19969    A: *mut Complex32,
19970    lda: *const lapackint,
19971    tau: *const Complex32,
19972    work: *mut Complex32,
19973    lwork: *const lapackint,
19974    info: *mut lapackint,
19975);
19976
19977define_lapack_ffi!(zungql, ZungqlFnPtr,
19978    m: *const lapackint,
19979    n: *const lapackint,
19980    k: *const lapackint,
19981    A: *mut Complex64,
19982    lda: *const lapackint,
19983    tau: *const Complex64,
19984    work: *mut Complex64,
19985    lwork: *const lapackint,
19986    info: *mut lapackint,
19987);
19988
19989// UNGQR
19990define_lapack_ffi!(cungqr, CungqrFnPtr,
19991    m: *const lapackint,
19992    n: *const lapackint,
19993    k: *const lapackint,
19994    A: *mut Complex32,
19995    lda: *const lapackint,
19996    tau: *const Complex32,
19997    work: *mut Complex32,
19998    lwork: *const lapackint,
19999    info: *mut lapackint,
20000);
20001
20002define_lapack_ffi!(zungqr, ZungqrFnPtr,
20003    m: *const lapackint,
20004    n: *const lapackint,
20005    k: *const lapackint,
20006    A: *mut Complex64,
20007    lda: *const lapackint,
20008    tau: *const Complex64,
20009    work: *mut Complex64,
20010    lwork: *const lapackint,
20011    info: *mut lapackint,
20012);
20013
20014// UNGRQ
20015define_lapack_ffi!(cungrq, CungrqFnPtr,
20016    m: *const lapackint,
20017    n: *const lapackint,
20018    k: *const lapackint,
20019    A: *mut Complex32,
20020    lda: *const lapackint,
20021    tau: *const Complex32,
20022    work: *mut Complex32,
20023    lwork: *const lapackint,
20024    info: *mut lapackint,
20025);
20026
20027define_lapack_ffi!(zungrq, ZungrqFnPtr,
20028    m: *const lapackint,
20029    n: *const lapackint,
20030    k: *const lapackint,
20031    A: *mut Complex64,
20032    lda: *const lapackint,
20033    tau: *const Complex64,
20034    work: *mut Complex64,
20035    lwork: *const lapackint,
20036    info: *mut lapackint,
20037);
20038
20039// UNGTR
20040define_lapack_ffi!(cungtr, CungtrFnPtr,
20041    uplo: *const c_char,
20042    n: *const lapackint,
20043    A: *mut Complex32,
20044    lda: *const lapackint,
20045    tau: *const Complex32,
20046    work: *mut Complex32,
20047    lwork: *const lapackint,
20048    info: *mut lapackint,
20049);
20050
20051define_lapack_ffi!(zungtr, ZungtrFnPtr,
20052    uplo: *const c_char,
20053    n: *const lapackint,
20054    A: *mut Complex64,
20055    lda: *const lapackint,
20056    tau: *const Complex64,
20057    work: *mut Complex64,
20058    lwork: *const lapackint,
20059    info: *mut lapackint,
20060);
20061
20062// UNGTSQR_ROW
20063define_lapack_ffi!(cungtsqr_row, Cungtsqr_rowFnPtr,
20064    m: *const lapackint,
20065    n: *const lapackint,
20066    mb: *const lapackint,
20067    nb: *const lapackint,
20068    A: *mut Complex32,
20069    lda: *const lapackint,
20070    T: *const Complex32,
20071    ldt: *const lapackint,
20072    work: *mut Complex32,
20073    lwork: *const lapackint,
20074    info: *mut lapackint,
20075);
20076
20077define_lapack_ffi!(zungtsqr_row, Zungtsqr_rowFnPtr,
20078    m: *const lapackint,
20079    n: *const lapackint,
20080    mb: *const lapackint,
20081    nb: *const lapackint,
20082    A: *mut Complex64,
20083    lda: *const lapackint,
20084    T: *const Complex64,
20085    ldt: *const lapackint,
20086    work: *mut Complex64,
20087    lwork: *const lapackint,
20088    info: *mut lapackint,
20089);
20090
20091// UNMBR
20092define_lapack_ffi!(cunmbr, CunmbrFnPtr,
20093    vect: *const c_char,
20094    side: *const c_char,
20095    trans: *const c_char,
20096    m: *const lapackint,
20097    n: *const lapackint,
20098    k: *const lapackint,
20099    A: *const Complex32,
20100    lda: *const lapackint,
20101    tau: *const Complex32,
20102    C: *mut Complex32,
20103    ldc: *const lapackint,
20104    work: *mut Complex32,
20105    lwork: *const lapackint,
20106    info: *mut lapackint,
20107);
20108
20109define_lapack_ffi!(zunmbr, ZunmbrFnPtr,
20110    vect: *const c_char,
20111    side: *const c_char,
20112    trans: *const c_char,
20113    m: *const lapackint,
20114    n: *const lapackint,
20115    k: *const lapackint,
20116    A: *const Complex64,
20117    lda: *const lapackint,
20118    tau: *const Complex64,
20119    C: *mut Complex64,
20120    ldc: *const lapackint,
20121    work: *mut Complex64,
20122    lwork: *const lapackint,
20123    info: *mut lapackint,
20124);
20125
20126// UNMHR
20127define_lapack_ffi!(cunmhr, CunmhrFnPtr,
20128    side: *const c_char,
20129    trans: *const c_char,
20130    m: *const lapackint,
20131    n: *const lapackint,
20132    ilo: *const lapackint,
20133    ihi: *const lapackint,
20134    A: *const Complex32,
20135    lda: *const lapackint,
20136    tau: *const Complex32,
20137    C: *mut Complex32,
20138    ldc: *const lapackint,
20139    work: *mut Complex32,
20140    lwork: *const lapackint,
20141    info: *mut lapackint,
20142);
20143
20144define_lapack_ffi!(zunmhr, ZunmhrFnPtr,
20145    side: *const c_char,
20146    trans: *const c_char,
20147    m: *const lapackint,
20148    n: *const lapackint,
20149    ilo: *const lapackint,
20150    ihi: *const lapackint,
20151    A: *const Complex64,
20152    lda: *const lapackint,
20153    tau: *const Complex64,
20154    C: *mut Complex64,
20155    ldc: *const lapackint,
20156    work: *mut Complex64,
20157    lwork: *const lapackint,
20158    info: *mut lapackint,
20159);
20160
20161// UNMLQ
20162define_lapack_ffi!(cunmlq, CunmlqFnPtr,
20163    side: *const c_char,
20164    trans: *const c_char,
20165    m: *const lapackint,
20166    n: *const lapackint,
20167    k: *const lapackint,
20168    A: *const Complex32,
20169    lda: *const lapackint,
20170    tau: *const Complex32,
20171    C: *mut Complex32,
20172    ldc: *const lapackint,
20173    work: *mut Complex32,
20174    lwork: *const lapackint,
20175    info: *mut lapackint,
20176);
20177
20178define_lapack_ffi!(zunmlq, ZunmlqFnPtr,
20179    side: *const c_char,
20180    trans: *const c_char,
20181    m: *const lapackint,
20182    n: *const lapackint,
20183    k: *const lapackint,
20184    A: *const Complex64,
20185    lda: *const lapackint,
20186    tau: *const Complex64,
20187    C: *mut Complex64,
20188    ldc: *const lapackint,
20189    work: *mut Complex64,
20190    lwork: *const lapackint,
20191    info: *mut lapackint,
20192);
20193
20194// UNMQL
20195define_lapack_ffi!(cunmql, CunmqlFnPtr,
20196    side: *const c_char,
20197    trans: *const c_char,
20198    m: *const lapackint,
20199    n: *const lapackint,
20200    k: *const lapackint,
20201    A: *const Complex32,
20202    lda: *const lapackint,
20203    tau: *const Complex32,
20204    C: *mut Complex32,
20205    ldc: *const lapackint,
20206    work: *mut Complex32,
20207    lwork: *const lapackint,
20208    info: *mut lapackint,
20209);
20210
20211define_lapack_ffi!(zunmql, ZunmqlFnPtr,
20212    side: *const c_char,
20213    trans: *const c_char,
20214    m: *const lapackint,
20215    n: *const lapackint,
20216    k: *const lapackint,
20217    A: *const Complex64,
20218    lda: *const lapackint,
20219    tau: *const Complex64,
20220    C: *mut Complex64,
20221    ldc: *const lapackint,
20222    work: *mut Complex64,
20223    lwork: *const lapackint,
20224    info: *mut lapackint,
20225);
20226
20227// UNMQR
20228define_lapack_ffi!(cunmqr, CunmqrFnPtr,
20229    side: *const c_char,
20230    trans: *const c_char,
20231    m: *const lapackint,
20232    n: *const lapackint,
20233    k: *const lapackint,
20234    A: *const Complex32,
20235    lda: *const lapackint,
20236    tau: *const Complex32,
20237    C: *mut Complex32,
20238    ldc: *const lapackint,
20239    work: *mut Complex32,
20240    lwork: *const lapackint,
20241    info: *mut lapackint,
20242);
20243
20244define_lapack_ffi!(zunmqr, ZunmqrFnPtr,
20245    side: *const c_char,
20246    trans: *const c_char,
20247    m: *const lapackint,
20248    n: *const lapackint,
20249    k: *const lapackint,
20250    A: *const Complex64,
20251    lda: *const lapackint,
20252    tau: *const Complex64,
20253    C: *mut Complex64,
20254    ldc: *const lapackint,
20255    work: *mut Complex64,
20256    lwork: *const lapackint,
20257    info: *mut lapackint,
20258);
20259
20260// UNMRQ
20261define_lapack_ffi!(cunmrq, CunmrqFnPtr,
20262    side: *const c_char,
20263    trans: *const c_char,
20264    m: *const lapackint,
20265    n: *const lapackint,
20266    k: *const lapackint,
20267    A: *const Complex32,
20268    lda: *const lapackint,
20269    tau: *const Complex32,
20270    C: *mut Complex32,
20271    ldc: *const lapackint,
20272    work: *mut Complex32,
20273    lwork: *const lapackint,
20274    info: *mut lapackint,
20275);
20276
20277define_lapack_ffi!(zunmrq, ZunmrqFnPtr,
20278    side: *const c_char,
20279    trans: *const c_char,
20280    m: *const lapackint,
20281    n: *const lapackint,
20282    k: *const lapackint,
20283    A: *const Complex64,
20284    lda: *const lapackint,
20285    tau: *const Complex64,
20286    C: *mut Complex64,
20287    ldc: *const lapackint,
20288    work: *mut Complex64,
20289    lwork: *const lapackint,
20290    info: *mut lapackint,
20291);
20292
20293// UNMRZ
20294define_lapack_ffi!(cunmrz, CunmrzFnPtr,
20295    side: *const c_char,
20296    trans: *const c_char,
20297    m: *const lapackint,
20298    n: *const lapackint,
20299    k: *const lapackint,
20300    l: *const lapackint,
20301    A: *const Complex32,
20302    lda: *const lapackint,
20303    tau: *const Complex32,
20304    C: *mut Complex32,
20305    ldc: *const lapackint,
20306    work: *mut Complex32,
20307    lwork: *const lapackint,
20308    info: *mut lapackint,
20309);
20310
20311define_lapack_ffi!(zunmrz, ZunmrzFnPtr,
20312    side: *const c_char,
20313    trans: *const c_char,
20314    m: *const lapackint,
20315    n: *const lapackint,
20316    k: *const lapackint,
20317    l: *const lapackint,
20318    A: *const Complex64,
20319    lda: *const lapackint,
20320    tau: *const Complex64,
20321    C: *mut Complex64,
20322    ldc: *const lapackint,
20323    work: *mut Complex64,
20324    lwork: *const lapackint,
20325    info: *mut lapackint,
20326);
20327
20328// UNMTR
20329define_lapack_ffi!(cunmtr, CunmtrFnPtr,
20330    side: *const c_char,
20331    uplo: *const c_char,
20332    trans: *const c_char,
20333    m: *const lapackint,
20334    n: *const lapackint,
20335    A: *const Complex32,
20336    lda: *const lapackint,
20337    tau: *const Complex32,
20338    C: *mut Complex32,
20339    ldc: *const lapackint,
20340    work: *mut Complex32,
20341    lwork: *const lapackint,
20342    info: *mut lapackint,
20343);
20344
20345define_lapack_ffi!(zunmtr, ZunmtrFnPtr,
20346    side: *const c_char,
20347    uplo: *const c_char,
20348    trans: *const c_char,
20349    m: *const lapackint,
20350    n: *const lapackint,
20351    A: *const Complex64,
20352    lda: *const lapackint,
20353    tau: *const Complex64,
20354    C: *mut Complex64,
20355    ldc: *const lapackint,
20356    work: *mut Complex64,
20357    lwork: *const lapackint,
20358    info: *mut lapackint,
20359);
20360
20361// UPGTR
20362define_lapack_ffi!(cupgtr, CupgtrFnPtr,
20363    uplo: *const c_char,
20364    n: *const lapackint,
20365    AP: *const Complex32,
20366    tau: *const Complex32,
20367    Q: *mut Complex32,
20368    ldq: *const lapackint,
20369    work: *mut Complex32,
20370    info: *mut lapackint,
20371);
20372
20373define_lapack_ffi!(zupgtr, ZupgtrFnPtr,
20374    uplo: *const c_char,
20375    n: *const lapackint,
20376    AP: *const Complex64,
20377    tau: *const Complex64,
20378    Q: *mut Complex64,
20379    ldq: *const lapackint,
20380    work: *mut Complex64,
20381    info: *mut lapackint,
20382);
20383
20384// UPMTR
20385define_lapack_ffi!(cupmtr, CupmtrFnPtr,
20386    side: *const c_char,
20387    uplo: *const c_char,
20388    trans: *const c_char,
20389    m: *const lapackint,
20390    n: *const lapackint,
20391    AP: *const Complex32,
20392    tau: *const Complex32,
20393    C: *mut Complex32,
20394    ldc: *const lapackint,
20395    work: *mut Complex32,
20396    info: *mut lapackint,
20397);
20398
20399define_lapack_ffi!(zupmtr, ZupmtrFnPtr,
20400    side: *const c_char,
20401    uplo: *const c_char,
20402    trans: *const c_char,
20403    m: *const lapackint,
20404    n: *const lapackint,
20405    AP: *const Complex64,
20406    tau: *const Complex64,
20407    C: *mut Complex64,
20408    ldc: *const lapackint,
20409    work: *mut Complex64,
20410    info: *mut lapackint,
20411);