lapack/
lapack-sys.rs

1#[inline]
2pub unsafe fn cbbcsd(
3    jobu1: u8,
4    jobu2: u8,
5    jobv1t: u8,
6    jobv2t: u8,
7    trans: u8,
8    m: i32,
9    p: i32,
10    q: &[i32],
11    theta: &mut [f32],
12    phi: &mut [f32],
13    u1: &mut [c32],
14    ldu1: i32,
15    u2: &mut [c32],
16    ldu2: i32,
17    v1t: &mut [c32],
18    ldv1t: i32,
19    v2t: &mut [c32],
20    ldv2t: i32,
21    b11d: &mut [f32],
22    b11e: &mut [f32],
23    b12d: &mut [f32],
24    b12e: &mut [f32],
25    b21d: &mut [f32],
26    b21e: &mut [f32],
27    b22d: &mut [f32],
28    b22e: &mut [f32],
29    rwork: &mut [f32],
30    lrwork: i32,
31    info: &mut i32,
32) {
33    ffi::cbbcsd_(
34        &(jobu1 as c_char),
35        &(jobu2 as c_char),
36        &(jobv1t as c_char),
37        &(jobv2t as c_char),
38        &(trans as c_char),
39        &m,
40        &p,
41        q.as_ptr(),
42        theta.as_mut_ptr(),
43        phi.as_mut_ptr(),
44        u1.as_mut_ptr() as *mut _,
45        &ldu1,
46        u2.as_mut_ptr() as *mut _,
47        &ldu2,
48        v1t.as_mut_ptr() as *mut _,
49        &ldv1t,
50        v2t.as_mut_ptr() as *mut _,
51        &ldv2t,
52        b11d.as_mut_ptr(),
53        b11e.as_mut_ptr(),
54        b12d.as_mut_ptr(),
55        b12e.as_mut_ptr(),
56        b21d.as_mut_ptr(),
57        b21e.as_mut_ptr(),
58        b22d.as_mut_ptr(),
59        b22e.as_mut_ptr(),
60        rwork.as_mut_ptr(),
61        &lrwork,
62        info,
63    )
64}
65
66#[inline]
67pub unsafe fn dbbcsd(
68    jobu1: u8,
69    jobu2: u8,
70    jobv1t: u8,
71    jobv2t: u8,
72    trans: u8,
73    m: i32,
74    p: i32,
75    q: &[i32],
76    theta: &mut [f64],
77    phi: &mut [f64],
78    u1: &mut [f64],
79    ldu1: i32,
80    u2: &mut [f64],
81    ldu2: i32,
82    v1t: &mut [f64],
83    ldv1t: i32,
84    v2t: &mut [f64],
85    ldv2t: i32,
86    b11d: &mut [f64],
87    b11e: &mut [f64],
88    b12d: &mut [f64],
89    b12e: &mut [f64],
90    b21d: &mut [f64],
91    b21e: &mut [f64],
92    b22d: &mut [f64],
93    b22e: &mut [f64],
94    work: &mut [f64],
95    lwork: i32,
96    info: &mut i32,
97) {
98    ffi::dbbcsd_(
99        &(jobu1 as c_char),
100        &(jobu2 as c_char),
101        &(jobv1t as c_char),
102        &(jobv2t as c_char),
103        &(trans as c_char),
104        &m,
105        &p,
106        q.as_ptr(),
107        theta.as_mut_ptr(),
108        phi.as_mut_ptr(),
109        u1.as_mut_ptr(),
110        &ldu1,
111        u2.as_mut_ptr(),
112        &ldu2,
113        v1t.as_mut_ptr(),
114        &ldv1t,
115        v2t.as_mut_ptr(),
116        &ldv2t,
117        b11d.as_mut_ptr(),
118        b11e.as_mut_ptr(),
119        b12d.as_mut_ptr(),
120        b12e.as_mut_ptr(),
121        b21d.as_mut_ptr(),
122        b21e.as_mut_ptr(),
123        b22d.as_mut_ptr(),
124        b22e.as_mut_ptr(),
125        work.as_mut_ptr(),
126        &lwork,
127        info,
128    )
129}
130
131#[inline]
132pub unsafe fn sbbcsd(
133    jobu1: u8,
134    jobu2: u8,
135    jobv1t: u8,
136    jobv2t: u8,
137    trans: u8,
138    m: i32,
139    p: i32,
140    q: &[i32],
141    theta: &mut [f32],
142    phi: &mut [f32],
143    u1: &mut [f32],
144    ldu1: i32,
145    u2: &mut [f32],
146    ldu2: i32,
147    v1t: &mut [f32],
148    ldv1t: i32,
149    v2t: &mut [f32],
150    ldv2t: i32,
151    b11d: &mut [f32],
152    b11e: &mut [f32],
153    b12d: &mut [f32],
154    b12e: &mut [f32],
155    b21d: &mut [f32],
156    b21e: &mut [f32],
157    b22d: &mut [f32],
158    b22e: &mut [f32],
159    work: &mut [f32],
160    lwork: i32,
161    info: &mut i32,
162) {
163    ffi::sbbcsd_(
164        &(jobu1 as c_char),
165        &(jobu2 as c_char),
166        &(jobv1t as c_char),
167        &(jobv2t as c_char),
168        &(trans as c_char),
169        &m,
170        &p,
171        q.as_ptr(),
172        theta.as_mut_ptr(),
173        phi.as_mut_ptr(),
174        u1.as_mut_ptr(),
175        &ldu1,
176        u2.as_mut_ptr(),
177        &ldu2,
178        v1t.as_mut_ptr(),
179        &ldv1t,
180        v2t.as_mut_ptr(),
181        &ldv2t,
182        b11d.as_mut_ptr(),
183        b11e.as_mut_ptr(),
184        b12d.as_mut_ptr(),
185        b12e.as_mut_ptr(),
186        b21d.as_mut_ptr(),
187        b21e.as_mut_ptr(),
188        b22d.as_mut_ptr(),
189        b22e.as_mut_ptr(),
190        work.as_mut_ptr(),
191        &lwork,
192        info,
193    )
194}
195
196#[inline]
197pub unsafe fn zbbcsd(
198    jobu1: u8,
199    jobu2: u8,
200    jobv1t: u8,
201    jobv2t: u8,
202    trans: u8,
203    m: i32,
204    p: i32,
205    q: &[i32],
206    theta: &mut [f64],
207    phi: &mut [f64],
208    u1: &mut [c64],
209    ldu1: i32,
210    u2: &mut [c64],
211    ldu2: i32,
212    v1t: &mut [c64],
213    ldv1t: i32,
214    v2t: &mut [c64],
215    ldv2t: i32,
216    b11d: &mut [f64],
217    b11e: &mut [f64],
218    b12d: &mut [f64],
219    b12e: &mut [f64],
220    b21d: &mut [f64],
221    b21e: &mut [f64],
222    b22d: &mut [f64],
223    b22e: &mut [f64],
224    rwork: &mut [f64],
225    lrwork: i32,
226    info: &mut i32,
227) {
228    ffi::zbbcsd_(
229        &(jobu1 as c_char),
230        &(jobu2 as c_char),
231        &(jobv1t as c_char),
232        &(jobv2t as c_char),
233        &(trans as c_char),
234        &m,
235        &p,
236        q.as_ptr(),
237        theta.as_mut_ptr(),
238        phi.as_mut_ptr(),
239        u1.as_mut_ptr() as *mut _,
240        &ldu1,
241        u2.as_mut_ptr() as *mut _,
242        &ldu2,
243        v1t.as_mut_ptr() as *mut _,
244        &ldv1t,
245        v2t.as_mut_ptr() as *mut _,
246        &ldv2t,
247        b11d.as_mut_ptr(),
248        b11e.as_mut_ptr(),
249        b12d.as_mut_ptr(),
250        b12e.as_mut_ptr(),
251        b21d.as_mut_ptr(),
252        b21e.as_mut_ptr(),
253        b22d.as_mut_ptr(),
254        b22e.as_mut_ptr(),
255        rwork.as_mut_ptr(),
256        &lrwork,
257        info,
258    )
259}
260
261#[inline]
262pub unsafe fn dbdsdc(
263    uplo: u8,
264    compq: u8,
265    n: i32,
266    d: &mut [f64],
267    e: &mut [f64],
268    u: &mut [f64],
269    ldu: i32,
270    vt: &mut [f64],
271    ldvt: i32,
272    q: &mut [f64],
273    iq: &mut [i32],
274    work: &mut [f64],
275    iwork: &mut [i32],
276    info: &mut i32,
277) {
278    ffi::dbdsdc_(
279        &(uplo as c_char),
280        &(compq as c_char),
281        &n,
282        d.as_mut_ptr(),
283        e.as_mut_ptr(),
284        u.as_mut_ptr(),
285        &ldu,
286        vt.as_mut_ptr(),
287        &ldvt,
288        q.as_mut_ptr(),
289        iq.as_mut_ptr(),
290        work.as_mut_ptr(),
291        iwork.as_mut_ptr(),
292        info,
293    )
294}
295
296#[inline]
297pub unsafe fn sbdsdc(
298    uplo: u8,
299    compq: u8,
300    n: i32,
301    d: &mut [f32],
302    e: &mut [f32],
303    u: &mut [f32],
304    ldu: i32,
305    vt: &mut [f32],
306    ldvt: i32,
307    q: &mut [f32],
308    iq: &mut [i32],
309    work: &mut [f32],
310    iwork: &mut [i32],
311    info: &mut i32,
312) {
313    ffi::sbdsdc_(
314        &(uplo as c_char),
315        &(compq as c_char),
316        &n,
317        d.as_mut_ptr(),
318        e.as_mut_ptr(),
319        u.as_mut_ptr(),
320        &ldu,
321        vt.as_mut_ptr(),
322        &ldvt,
323        q.as_mut_ptr(),
324        iq.as_mut_ptr(),
325        work.as_mut_ptr(),
326        iwork.as_mut_ptr(),
327        info,
328    )
329}
330
331#[inline]
332pub unsafe fn cbdsqr(
333    uplo: u8,
334    n: i32,
335    ncvt: &[i32],
336    nru: &[i32],
337    ncc: &[i32],
338    d: &mut [f32],
339    e: &mut [f32],
340    vt: &mut [c32],
341    ldvt: i32,
342    u: &mut [c32],
343    ldu: i32,
344    c: &mut [c32],
345    ldc: i32,
346    rwork: &mut [f32],
347    info: &mut i32,
348) {
349    ffi::cbdsqr_(
350        &(uplo as c_char),
351        &n,
352        ncvt.as_ptr(),
353        nru.as_ptr(),
354        ncc.as_ptr(),
355        d.as_mut_ptr(),
356        e.as_mut_ptr(),
357        vt.as_mut_ptr() as *mut _,
358        &ldvt,
359        u.as_mut_ptr() as *mut _,
360        &ldu,
361        c.as_mut_ptr() as *mut _,
362        &ldc,
363        rwork.as_mut_ptr(),
364        info,
365    )
366}
367
368#[inline]
369pub unsafe fn dbdsqr(
370    uplo: u8,
371    n: i32,
372    ncvt: &[i32],
373    nru: &[i32],
374    ncc: &[i32],
375    d: &mut [f64],
376    e: &mut [f64],
377    vt: &mut [f64],
378    ldvt: i32,
379    u: &mut [f64],
380    ldu: i32,
381    c: &mut [f64],
382    ldc: i32,
383    work: &mut [f64],
384    info: &mut i32,
385) {
386    ffi::dbdsqr_(
387        &(uplo as c_char),
388        &n,
389        ncvt.as_ptr(),
390        nru.as_ptr(),
391        ncc.as_ptr(),
392        d.as_mut_ptr(),
393        e.as_mut_ptr(),
394        vt.as_mut_ptr(),
395        &ldvt,
396        u.as_mut_ptr(),
397        &ldu,
398        c.as_mut_ptr(),
399        &ldc,
400        work.as_mut_ptr(),
401        info,
402    )
403}
404
405#[inline]
406pub unsafe fn sbdsqr(
407    uplo: u8,
408    n: i32,
409    ncvt: &[i32],
410    nru: &[i32],
411    ncc: &[i32],
412    d: &mut [f32],
413    e: &mut [f32],
414    vt: &mut [f32],
415    ldvt: i32,
416    u: &mut [f32],
417    ldu: i32,
418    c: &mut [f32],
419    ldc: i32,
420    work: &mut [f32],
421    info: &mut i32,
422) {
423    ffi::sbdsqr_(
424        &(uplo as c_char),
425        &n,
426        ncvt.as_ptr(),
427        nru.as_ptr(),
428        ncc.as_ptr(),
429        d.as_mut_ptr(),
430        e.as_mut_ptr(),
431        vt.as_mut_ptr(),
432        &ldvt,
433        u.as_mut_ptr(),
434        &ldu,
435        c.as_mut_ptr(),
436        &ldc,
437        work.as_mut_ptr(),
438        info,
439    )
440}
441
442#[inline]
443pub unsafe fn zbdsqr(
444    uplo: u8,
445    n: i32,
446    ncvt: &[i32],
447    nru: &[i32],
448    ncc: &[i32],
449    d: &mut [f64],
450    e: &mut [f64],
451    vt: &mut [c64],
452    ldvt: i32,
453    u: &mut [c64],
454    ldu: i32,
455    c: &mut [c64],
456    ldc: i32,
457    rwork: &mut [f64],
458    info: &mut i32,
459) {
460    ffi::zbdsqr_(
461        &(uplo as c_char),
462        &n,
463        ncvt.as_ptr(),
464        nru.as_ptr(),
465        ncc.as_ptr(),
466        d.as_mut_ptr(),
467        e.as_mut_ptr(),
468        vt.as_mut_ptr() as *mut _,
469        &ldvt,
470        u.as_mut_ptr() as *mut _,
471        &ldu,
472        c.as_mut_ptr() as *mut _,
473        &ldc,
474        rwork.as_mut_ptr(),
475        info,
476    )
477}
478
479#[inline]
480pub unsafe fn dbdsvdx(
481    uplo: u8,
482    jobz: u8,
483    range: u8,
484    n: i32,
485    d: &[f64],
486    e: &[f64],
487    vl: f64,
488    vu: f64,
489    il: i32,
490    iu: i32,
491    ns: &mut [i32],
492    s: &mut [f64],
493    z: &mut [f64],
494    ldz: i32,
495    work: &mut [f64],
496    iwork: &mut [i32],
497    info: &mut i32,
498) {
499    ffi::dbdsvdx_(
500        &(uplo as c_char),
501        &(jobz as c_char),
502        &(range as c_char),
503        &n,
504        d.as_ptr(),
505        e.as_ptr(),
506        &vl,
507        &vu,
508        &il,
509        &iu,
510        ns.as_mut_ptr(),
511        s.as_mut_ptr(),
512        z.as_mut_ptr(),
513        &ldz,
514        work.as_mut_ptr(),
515        iwork.as_mut_ptr(),
516        info,
517    )
518}
519
520#[inline]
521pub unsafe fn sbdsvdx(
522    uplo: u8,
523    jobz: u8,
524    range: u8,
525    n: i32,
526    d: &[f32],
527    e: &[f32],
528    vl: f32,
529    vu: f32,
530    il: i32,
531    iu: i32,
532    ns: &mut [i32],
533    s: &mut [f32],
534    z: &mut [f32],
535    ldz: i32,
536    work: &mut [f32],
537    iwork: &mut [i32],
538    info: &mut i32,
539) {
540    ffi::sbdsvdx_(
541        &(uplo as c_char),
542        &(jobz as c_char),
543        &(range as c_char),
544        &n,
545        d.as_ptr(),
546        e.as_ptr(),
547        &vl,
548        &vu,
549        &il,
550        &iu,
551        ns.as_mut_ptr(),
552        s.as_mut_ptr(),
553        z.as_mut_ptr(),
554        &ldz,
555        work.as_mut_ptr(),
556        iwork.as_mut_ptr(),
557        info,
558    )
559}
560
561#[inline]
562pub unsafe fn ddisna(job: u8, m: i32, n: i32, d: &[f64], sep: &mut [f64], info: &mut i32) {
563    ffi::ddisna_(&(job as c_char), &m, &n, d.as_ptr(), sep.as_mut_ptr(), info)
564}
565
566#[inline]
567pub unsafe fn sdisna(job: u8, m: i32, n: i32, d: &[f32], sep: &mut [f32], info: &mut i32) {
568    ffi::sdisna_(&(job as c_char), &m, &n, d.as_ptr(), sep.as_mut_ptr(), info)
569}
570
571#[inline]
572pub unsafe fn cgbbrd(
573    vect: u8,
574    m: i32,
575    n: i32,
576    ncc: &[i32],
577    kl: i32,
578    ku: i32,
579    ab: &mut [c32],
580    ldab: i32,
581    d: &mut [f32],
582    e: &mut [f32],
583    q: &mut [c32],
584    ldq: i32,
585    pt: &mut [c32],
586    ldpt: i32,
587    c: &mut [c32],
588    ldc: i32,
589    work: &mut [c32],
590    rwork: &mut [f32],
591    info: &mut i32,
592) {
593    ffi::cgbbrd_(
594        &(vect as c_char),
595        &m,
596        &n,
597        ncc.as_ptr(),
598        &kl,
599        &ku,
600        ab.as_mut_ptr() as *mut _,
601        &ldab,
602        d.as_mut_ptr(),
603        e.as_mut_ptr(),
604        q.as_mut_ptr() as *mut _,
605        &ldq,
606        pt.as_mut_ptr() as *mut _,
607        &ldpt,
608        c.as_mut_ptr() as *mut _,
609        &ldc,
610        work.as_mut_ptr() as *mut _,
611        rwork.as_mut_ptr(),
612        info,
613    )
614}
615
616#[inline]
617pub unsafe fn dgbbrd(
618    vect: u8,
619    m: i32,
620    n: i32,
621    ncc: &[i32],
622    kl: i32,
623    ku: i32,
624    ab: &mut [f64],
625    ldab: i32,
626    d: &mut [f64],
627    e: &mut [f64],
628    q: &mut [f64],
629    ldq: i32,
630    pt: &mut [f64],
631    ldpt: i32,
632    c: &mut [f64],
633    ldc: i32,
634    work: &mut [f64],
635    info: &mut i32,
636) {
637    ffi::dgbbrd_(
638        &(vect as c_char),
639        &m,
640        &n,
641        ncc.as_ptr(),
642        &kl,
643        &ku,
644        ab.as_mut_ptr(),
645        &ldab,
646        d.as_mut_ptr(),
647        e.as_mut_ptr(),
648        q.as_mut_ptr(),
649        &ldq,
650        pt.as_mut_ptr(),
651        &ldpt,
652        c.as_mut_ptr(),
653        &ldc,
654        work.as_mut_ptr(),
655        info,
656    )
657}
658
659#[inline]
660pub unsafe fn sgbbrd(
661    vect: u8,
662    m: i32,
663    n: i32,
664    ncc: &[i32],
665    kl: i32,
666    ku: i32,
667    ab: &mut [f32],
668    ldab: i32,
669    d: &mut [f32],
670    e: &mut [f32],
671    q: &mut [f32],
672    ldq: i32,
673    pt: &mut [f32],
674    ldpt: i32,
675    c: &mut [f32],
676    ldc: i32,
677    work: &mut [f32],
678    info: &mut i32,
679) {
680    ffi::sgbbrd_(
681        &(vect as c_char),
682        &m,
683        &n,
684        ncc.as_ptr(),
685        &kl,
686        &ku,
687        ab.as_mut_ptr(),
688        &ldab,
689        d.as_mut_ptr(),
690        e.as_mut_ptr(),
691        q.as_mut_ptr(),
692        &ldq,
693        pt.as_mut_ptr(),
694        &ldpt,
695        c.as_mut_ptr(),
696        &ldc,
697        work.as_mut_ptr(),
698        info,
699    )
700}
701
702#[inline]
703pub unsafe fn zgbbrd(
704    vect: u8,
705    m: i32,
706    n: i32,
707    ncc: &[i32],
708    kl: i32,
709    ku: i32,
710    ab: &mut [c64],
711    ldab: i32,
712    d: &mut [f64],
713    e: &mut [f64],
714    q: &mut [c64],
715    ldq: i32,
716    pt: &mut [c64],
717    ldpt: i32,
718    c: &mut [c64],
719    ldc: i32,
720    work: &mut [c64],
721    rwork: &mut [f64],
722    info: &mut i32,
723) {
724    ffi::zgbbrd_(
725        &(vect as c_char),
726        &m,
727        &n,
728        ncc.as_ptr(),
729        &kl,
730        &ku,
731        ab.as_mut_ptr() as *mut _,
732        &ldab,
733        d.as_mut_ptr(),
734        e.as_mut_ptr(),
735        q.as_mut_ptr() as *mut _,
736        &ldq,
737        pt.as_mut_ptr() as *mut _,
738        &ldpt,
739        c.as_mut_ptr() as *mut _,
740        &ldc,
741        work.as_mut_ptr() as *mut _,
742        rwork.as_mut_ptr(),
743        info,
744    )
745}
746
747#[inline]
748pub unsafe fn cgbcon(
749    norm: u8,
750    n: i32,
751    kl: i32,
752    ku: i32,
753    ab: &[c32],
754    ldab: i32,
755    ipiv: &[i32],
756    anorm: f32,
757    rcond: &mut f32,
758    work: &mut [c32],
759    rwork: &mut [f32],
760    info: &mut i32,
761) {
762    ffi::cgbcon_(
763        &(norm as c_char),
764        &n,
765        &kl,
766        &ku,
767        ab.as_ptr() as *const _,
768        &ldab,
769        ipiv.as_ptr(),
770        &anorm,
771        rcond,
772        work.as_mut_ptr() as *mut _,
773        rwork.as_mut_ptr(),
774        info,
775    )
776}
777
778#[inline]
779pub unsafe fn dgbcon(
780    norm: u8,
781    n: i32,
782    kl: i32,
783    ku: i32,
784    ab: &[f64],
785    ldab: i32,
786    ipiv: &[i32],
787    anorm: f64,
788    rcond: &mut f64,
789    work: &mut [f64],
790    iwork: &mut [i32],
791    info: &mut i32,
792) {
793    ffi::dgbcon_(
794        &(norm as c_char),
795        &n,
796        &kl,
797        &ku,
798        ab.as_ptr(),
799        &ldab,
800        ipiv.as_ptr(),
801        &anorm,
802        rcond,
803        work.as_mut_ptr(),
804        iwork.as_mut_ptr(),
805        info,
806    )
807}
808
809#[inline]
810pub unsafe fn sgbcon(
811    norm: u8,
812    n: i32,
813    kl: i32,
814    ku: i32,
815    ab: &[f32],
816    ldab: i32,
817    ipiv: &[i32],
818    anorm: f32,
819    rcond: &mut f32,
820    work: &mut [f32],
821    iwork: &mut [i32],
822    info: &mut i32,
823) {
824    ffi::sgbcon_(
825        &(norm as c_char),
826        &n,
827        &kl,
828        &ku,
829        ab.as_ptr(),
830        &ldab,
831        ipiv.as_ptr(),
832        &anorm,
833        rcond,
834        work.as_mut_ptr(),
835        iwork.as_mut_ptr(),
836        info,
837    )
838}
839
840#[inline]
841pub unsafe fn zgbcon(
842    norm: u8,
843    n: i32,
844    kl: i32,
845    ku: i32,
846    ab: &[c64],
847    ldab: i32,
848    ipiv: &[i32],
849    anorm: f64,
850    rcond: &mut f64,
851    work: &mut [c64],
852    rwork: &mut [f64],
853    info: &mut i32,
854) {
855    ffi::zgbcon_(
856        &(norm as c_char),
857        &n,
858        &kl,
859        &ku,
860        ab.as_ptr() as *const _,
861        &ldab,
862        ipiv.as_ptr(),
863        &anorm,
864        rcond,
865        work.as_mut_ptr() as *mut _,
866        rwork.as_mut_ptr(),
867        info,
868    )
869}
870
871#[inline]
872pub unsafe fn cgbequ(
873    m: i32,
874    n: i32,
875    kl: i32,
876    ku: i32,
877    ab: &[c32],
878    ldab: i32,
879    r: &mut [f32],
880    c: &mut [f32],
881    rowcnd: &mut f32,
882    colcnd: &mut f32,
883    amax: &mut f32,
884    info: &mut i32,
885) {
886    ffi::cgbequ_(
887        &m,
888        &n,
889        &kl,
890        &ku,
891        ab.as_ptr() as *const _,
892        &ldab,
893        r.as_mut_ptr(),
894        c.as_mut_ptr(),
895        rowcnd,
896        colcnd,
897        amax,
898        info,
899    )
900}
901
902#[inline]
903pub unsafe fn dgbequ(
904    m: i32,
905    n: i32,
906    kl: i32,
907    ku: i32,
908    ab: &[f64],
909    ldab: i32,
910    r: &mut [f64],
911    c: &mut [f64],
912    rowcnd: &mut f64,
913    colcnd: &mut f64,
914    amax: &mut f64,
915    info: &mut i32,
916) {
917    ffi::dgbequ_(
918        &m,
919        &n,
920        &kl,
921        &ku,
922        ab.as_ptr(),
923        &ldab,
924        r.as_mut_ptr(),
925        c.as_mut_ptr(),
926        rowcnd,
927        colcnd,
928        amax,
929        info,
930    )
931}
932
933#[inline]
934pub unsafe fn sgbequ(
935    m: i32,
936    n: i32,
937    kl: i32,
938    ku: i32,
939    ab: &[f32],
940    ldab: i32,
941    r: &mut [f32],
942    c: &mut [f32],
943    rowcnd: &mut f32,
944    colcnd: &mut f32,
945    amax: &mut f32,
946    info: &mut i32,
947) {
948    ffi::sgbequ_(
949        &m,
950        &n,
951        &kl,
952        &ku,
953        ab.as_ptr(),
954        &ldab,
955        r.as_mut_ptr(),
956        c.as_mut_ptr(),
957        rowcnd,
958        colcnd,
959        amax,
960        info,
961    )
962}
963
964#[inline]
965pub unsafe fn zgbequ(
966    m: i32,
967    n: i32,
968    kl: i32,
969    ku: i32,
970    ab: &[c64],
971    ldab: i32,
972    r: &mut [f64],
973    c: &mut [f64],
974    rowcnd: &mut f64,
975    colcnd: &mut f64,
976    amax: &mut f64,
977    info: &mut i32,
978) {
979    ffi::zgbequ_(
980        &m,
981        &n,
982        &kl,
983        &ku,
984        ab.as_ptr() as *const _,
985        &ldab,
986        r.as_mut_ptr(),
987        c.as_mut_ptr(),
988        rowcnd,
989        colcnd,
990        amax,
991        info,
992    )
993}
994
995#[inline]
996pub unsafe fn cgbequb(
997    m: i32,
998    n: i32,
999    kl: i32,
1000    ku: i32,
1001    ab: &[c32],
1002    ldab: i32,
1003    r: &mut [f32],
1004    c: &mut [f32],
1005    rowcnd: &mut f32,
1006    colcnd: &mut f32,
1007    amax: &mut f32,
1008    info: &mut i32,
1009) {
1010    ffi::cgbequb_(
1011        &m,
1012        &n,
1013        &kl,
1014        &ku,
1015        ab.as_ptr() as *const _,
1016        &ldab,
1017        r.as_mut_ptr(),
1018        c.as_mut_ptr(),
1019        rowcnd,
1020        colcnd,
1021        amax,
1022        info,
1023    )
1024}
1025
1026#[inline]
1027pub unsafe fn dgbequb(
1028    m: i32,
1029    n: i32,
1030    kl: i32,
1031    ku: i32,
1032    ab: &[f64],
1033    ldab: i32,
1034    r: &mut [f64],
1035    c: &mut [f64],
1036    rowcnd: &mut f64,
1037    colcnd: &mut f64,
1038    amax: &mut f64,
1039    info: &mut i32,
1040) {
1041    ffi::dgbequb_(
1042        &m,
1043        &n,
1044        &kl,
1045        &ku,
1046        ab.as_ptr(),
1047        &ldab,
1048        r.as_mut_ptr(),
1049        c.as_mut_ptr(),
1050        rowcnd,
1051        colcnd,
1052        amax,
1053        info,
1054    )
1055}
1056
1057#[inline]
1058pub unsafe fn sgbequb(
1059    m: i32,
1060    n: i32,
1061    kl: i32,
1062    ku: i32,
1063    ab: &[f32],
1064    ldab: i32,
1065    r: &mut [f32],
1066    c: &mut [f32],
1067    rowcnd: &mut f32,
1068    colcnd: &mut f32,
1069    amax: &mut f32,
1070    info: &mut i32,
1071) {
1072    ffi::sgbequb_(
1073        &m,
1074        &n,
1075        &kl,
1076        &ku,
1077        ab.as_ptr(),
1078        &ldab,
1079        r.as_mut_ptr(),
1080        c.as_mut_ptr(),
1081        rowcnd,
1082        colcnd,
1083        amax,
1084        info,
1085    )
1086}
1087
1088#[inline]
1089pub unsafe fn zgbequb(
1090    m: i32,
1091    n: i32,
1092    kl: i32,
1093    ku: i32,
1094    ab: &[c64],
1095    ldab: i32,
1096    r: &mut [f64],
1097    c: &mut [f64],
1098    rowcnd: &mut f64,
1099    colcnd: &mut f64,
1100    amax: &mut f64,
1101    info: &mut i32,
1102) {
1103    ffi::zgbequb_(
1104        &m,
1105        &n,
1106        &kl,
1107        &ku,
1108        ab.as_ptr() as *const _,
1109        &ldab,
1110        r.as_mut_ptr(),
1111        c.as_mut_ptr(),
1112        rowcnd,
1113        colcnd,
1114        amax,
1115        info,
1116    )
1117}
1118
1119#[inline]
1120pub unsafe fn cgbrfs(
1121    trans: u8,
1122    n: i32,
1123    kl: i32,
1124    ku: i32,
1125    nrhs: i32,
1126    ab: &[c32],
1127    ldab: i32,
1128    afb: &[c32],
1129    ldafb: i32,
1130    ipiv: &[i32],
1131    b: &[c32],
1132    ldb: i32,
1133    x: &mut [c32],
1134    ldx: i32,
1135    ferr: &mut [f32],
1136    berr: &mut [f32],
1137    work: &mut [c32],
1138    rwork: &mut [f32],
1139    info: &mut i32,
1140) {
1141    ffi::cgbrfs_(
1142        &(trans as c_char),
1143        &n,
1144        &kl,
1145        &ku,
1146        &nrhs,
1147        ab.as_ptr() as *const _,
1148        &ldab,
1149        afb.as_ptr() as *const _,
1150        &ldafb,
1151        ipiv.as_ptr(),
1152        b.as_ptr() as *const _,
1153        &ldb,
1154        x.as_mut_ptr() as *mut _,
1155        &ldx,
1156        ferr.as_mut_ptr(),
1157        berr.as_mut_ptr(),
1158        work.as_mut_ptr() as *mut _,
1159        rwork.as_mut_ptr(),
1160        info,
1161    )
1162}
1163
1164#[inline]
1165pub unsafe fn dgbrfs(
1166    trans: u8,
1167    n: i32,
1168    kl: i32,
1169    ku: i32,
1170    nrhs: i32,
1171    ab: &[f64],
1172    ldab: i32,
1173    afb: &[f64],
1174    ldafb: i32,
1175    ipiv: &[i32],
1176    b: &[f64],
1177    ldb: i32,
1178    x: &mut [f64],
1179    ldx: i32,
1180    ferr: &mut [f64],
1181    berr: &mut [f64],
1182    work: &mut [f64],
1183    iwork: &mut [i32],
1184    info: &mut i32,
1185) {
1186    ffi::dgbrfs_(
1187        &(trans as c_char),
1188        &n,
1189        &kl,
1190        &ku,
1191        &nrhs,
1192        ab.as_ptr(),
1193        &ldab,
1194        afb.as_ptr(),
1195        &ldafb,
1196        ipiv.as_ptr(),
1197        b.as_ptr(),
1198        &ldb,
1199        x.as_mut_ptr(),
1200        &ldx,
1201        ferr.as_mut_ptr(),
1202        berr.as_mut_ptr(),
1203        work.as_mut_ptr(),
1204        iwork.as_mut_ptr(),
1205        info,
1206    )
1207}
1208
1209#[inline]
1210pub unsafe fn sgbrfs(
1211    trans: u8,
1212    n: i32,
1213    kl: i32,
1214    ku: i32,
1215    nrhs: i32,
1216    ab: &[f32],
1217    ldab: i32,
1218    afb: &[f32],
1219    ldafb: i32,
1220    ipiv: &[i32],
1221    b: &[f32],
1222    ldb: i32,
1223    x: &mut [f32],
1224    ldx: i32,
1225    ferr: &mut [f32],
1226    berr: &mut [f32],
1227    work: &mut [f32],
1228    iwork: &mut [i32],
1229    info: &mut i32,
1230) {
1231    ffi::sgbrfs_(
1232        &(trans as c_char),
1233        &n,
1234        &kl,
1235        &ku,
1236        &nrhs,
1237        ab.as_ptr(),
1238        &ldab,
1239        afb.as_ptr(),
1240        &ldafb,
1241        ipiv.as_ptr(),
1242        b.as_ptr(),
1243        &ldb,
1244        x.as_mut_ptr(),
1245        &ldx,
1246        ferr.as_mut_ptr(),
1247        berr.as_mut_ptr(),
1248        work.as_mut_ptr(),
1249        iwork.as_mut_ptr(),
1250        info,
1251    )
1252}
1253
1254#[inline]
1255pub unsafe fn zgbrfs(
1256    trans: u8,
1257    n: i32,
1258    kl: i32,
1259    ku: i32,
1260    nrhs: i32,
1261    ab: &[c64],
1262    ldab: i32,
1263    afb: &[c64],
1264    ldafb: i32,
1265    ipiv: &[i32],
1266    b: &[c64],
1267    ldb: i32,
1268    x: &mut [c64],
1269    ldx: i32,
1270    ferr: &mut [f64],
1271    berr: &mut [f64],
1272    work: &mut [c64],
1273    rwork: &mut [f64],
1274    info: &mut i32,
1275) {
1276    ffi::zgbrfs_(
1277        &(trans as c_char),
1278        &n,
1279        &kl,
1280        &ku,
1281        &nrhs,
1282        ab.as_ptr() as *const _,
1283        &ldab,
1284        afb.as_ptr() as *const _,
1285        &ldafb,
1286        ipiv.as_ptr(),
1287        b.as_ptr() as *const _,
1288        &ldb,
1289        x.as_mut_ptr() as *mut _,
1290        &ldx,
1291        ferr.as_mut_ptr(),
1292        berr.as_mut_ptr(),
1293        work.as_mut_ptr() as *mut _,
1294        rwork.as_mut_ptr(),
1295        info,
1296    )
1297}
1298
1299#[inline]
1300pub unsafe fn cgbrfsx(
1301    trans: u8,
1302    equed: u8,
1303    n: i32,
1304    kl: i32,
1305    ku: i32,
1306    nrhs: i32,
1307    ab: &[c32],
1308    ldab: i32,
1309    afb: &[c32],
1310    ldafb: i32,
1311    ipiv: &[i32],
1312    r: &mut [f32],
1313    c: &mut [f32],
1314    b: &[c32],
1315    ldb: i32,
1316    x: &mut [c32],
1317    ldx: i32,
1318    rcond: &mut f32,
1319    berr: &mut [f32],
1320    n_err_bnds: i32,
1321    err_bnds_norm: &mut [f32],
1322    err_bnds_comp: &mut [f32],
1323    nparams: &[i32],
1324    params: &mut [f32],
1325    work: &mut [c32],
1326    rwork: &mut [f32],
1327    info: &mut i32,
1328) {
1329    ffi::cgbrfsx_(
1330        &(trans as c_char),
1331        &(equed as c_char),
1332        &n,
1333        &kl,
1334        &ku,
1335        &nrhs,
1336        ab.as_ptr() as *const _,
1337        &ldab,
1338        afb.as_ptr() as *const _,
1339        &ldafb,
1340        ipiv.as_ptr(),
1341        r.as_mut_ptr(),
1342        c.as_mut_ptr(),
1343        b.as_ptr() as *const _,
1344        &ldb,
1345        x.as_mut_ptr() as *mut _,
1346        &ldx,
1347        rcond,
1348        berr.as_mut_ptr(),
1349        &n_err_bnds,
1350        err_bnds_norm.as_mut_ptr(),
1351        err_bnds_comp.as_mut_ptr(),
1352        nparams.as_ptr(),
1353        params.as_mut_ptr(),
1354        work.as_mut_ptr() as *mut _,
1355        rwork.as_mut_ptr(),
1356        info,
1357    )
1358}
1359
1360#[inline]
1361pub unsafe fn dgbrfsx(
1362    trans: u8,
1363    equed: u8,
1364    n: i32,
1365    kl: i32,
1366    ku: i32,
1367    nrhs: i32,
1368    ab: &[f64],
1369    ldab: i32,
1370    afb: &[f64],
1371    ldafb: i32,
1372    ipiv: &[i32],
1373    r: &mut [f64],
1374    c: &mut [f64],
1375    b: &[f64],
1376    ldb: i32,
1377    x: &mut [f64],
1378    ldx: i32,
1379    rcond: &mut f64,
1380    berr: &mut [f64],
1381    n_err_bnds: i32,
1382    err_bnds_norm: &mut [f64],
1383    err_bnds_comp: &mut [f64],
1384    nparams: &[i32],
1385    params: &mut [f64],
1386    work: &mut [f64],
1387    iwork: &mut [i32],
1388    info: &mut i32,
1389) {
1390    ffi::dgbrfsx_(
1391        &(trans as c_char),
1392        &(equed as c_char),
1393        &n,
1394        &kl,
1395        &ku,
1396        &nrhs,
1397        ab.as_ptr(),
1398        &ldab,
1399        afb.as_ptr(),
1400        &ldafb,
1401        ipiv.as_ptr(),
1402        r.as_mut_ptr(),
1403        c.as_mut_ptr(),
1404        b.as_ptr(),
1405        &ldb,
1406        x.as_mut_ptr(),
1407        &ldx,
1408        rcond,
1409        berr.as_mut_ptr(),
1410        &n_err_bnds,
1411        err_bnds_norm.as_mut_ptr(),
1412        err_bnds_comp.as_mut_ptr(),
1413        nparams.as_ptr(),
1414        params.as_mut_ptr(),
1415        work.as_mut_ptr(),
1416        iwork.as_mut_ptr(),
1417        info,
1418    )
1419}
1420
1421#[inline]
1422pub unsafe fn sgbrfsx(
1423    trans: u8,
1424    equed: u8,
1425    n: i32,
1426    kl: i32,
1427    ku: i32,
1428    nrhs: i32,
1429    ab: &[f32],
1430    ldab: i32,
1431    afb: &[f32],
1432    ldafb: i32,
1433    ipiv: &[i32],
1434    r: &mut [f32],
1435    c: &mut [f32],
1436    b: &[f32],
1437    ldb: i32,
1438    x: &mut [f32],
1439    ldx: i32,
1440    rcond: &mut f32,
1441    berr: &mut [f32],
1442    n_err_bnds: i32,
1443    err_bnds_norm: &mut [f32],
1444    err_bnds_comp: &mut [f32],
1445    nparams: &[i32],
1446    params: &mut [f32],
1447    work: &mut [f32],
1448    iwork: &mut [i32],
1449    info: &mut i32,
1450) {
1451    ffi::sgbrfsx_(
1452        &(trans as c_char),
1453        &(equed as c_char),
1454        &n,
1455        &kl,
1456        &ku,
1457        &nrhs,
1458        ab.as_ptr(),
1459        &ldab,
1460        afb.as_ptr(),
1461        &ldafb,
1462        ipiv.as_ptr(),
1463        r.as_mut_ptr(),
1464        c.as_mut_ptr(),
1465        b.as_ptr(),
1466        &ldb,
1467        x.as_mut_ptr(),
1468        &ldx,
1469        rcond,
1470        berr.as_mut_ptr(),
1471        &n_err_bnds,
1472        err_bnds_norm.as_mut_ptr(),
1473        err_bnds_comp.as_mut_ptr(),
1474        nparams.as_ptr(),
1475        params.as_mut_ptr(),
1476        work.as_mut_ptr(),
1477        iwork.as_mut_ptr(),
1478        info,
1479    )
1480}
1481
1482#[inline]
1483pub unsafe fn zgbrfsx(
1484    trans: u8,
1485    equed: u8,
1486    n: i32,
1487    kl: i32,
1488    ku: i32,
1489    nrhs: i32,
1490    ab: &[c64],
1491    ldab: i32,
1492    afb: &[c64],
1493    ldafb: i32,
1494    ipiv: &[i32],
1495    r: &mut [f64],
1496    c: &mut [f64],
1497    b: &[c64],
1498    ldb: i32,
1499    x: &mut [c64],
1500    ldx: i32,
1501    rcond: &mut f64,
1502    berr: &mut [f64],
1503    n_err_bnds: i32,
1504    err_bnds_norm: &mut [f64],
1505    err_bnds_comp: &mut [f64],
1506    nparams: &[i32],
1507    params: &mut [f64],
1508    work: &mut [c64],
1509    rwork: &mut [f64],
1510    info: &mut i32,
1511) {
1512    ffi::zgbrfsx_(
1513        &(trans as c_char),
1514        &(equed as c_char),
1515        &n,
1516        &kl,
1517        &ku,
1518        &nrhs,
1519        ab.as_ptr() as *const _,
1520        &ldab,
1521        afb.as_ptr() as *const _,
1522        &ldafb,
1523        ipiv.as_ptr(),
1524        r.as_mut_ptr(),
1525        c.as_mut_ptr(),
1526        b.as_ptr() as *const _,
1527        &ldb,
1528        x.as_mut_ptr() as *mut _,
1529        &ldx,
1530        rcond,
1531        berr.as_mut_ptr(),
1532        &n_err_bnds,
1533        err_bnds_norm.as_mut_ptr(),
1534        err_bnds_comp.as_mut_ptr(),
1535        nparams.as_ptr(),
1536        params.as_mut_ptr(),
1537        work.as_mut_ptr() as *mut _,
1538        rwork.as_mut_ptr(),
1539        info,
1540    )
1541}
1542
1543#[inline]
1544pub unsafe fn cgbsv(
1545    n: i32,
1546    kl: i32,
1547    ku: i32,
1548    nrhs: i32,
1549    ab: &mut [c32],
1550    ldab: i32,
1551    ipiv: &mut [i32],
1552    b: &mut [c32],
1553    ldb: i32,
1554    info: &mut i32,
1555) {
1556    ffi::cgbsv_(
1557        &n,
1558        &kl,
1559        &ku,
1560        &nrhs,
1561        ab.as_mut_ptr() as *mut _,
1562        &ldab,
1563        ipiv.as_mut_ptr(),
1564        b.as_mut_ptr() as *mut _,
1565        &ldb,
1566        info,
1567    )
1568}
1569
1570#[inline]
1571pub unsafe fn dgbsv(
1572    n: i32,
1573    kl: i32,
1574    ku: i32,
1575    nrhs: i32,
1576    ab: &mut [f64],
1577    ldab: i32,
1578    ipiv: &mut [i32],
1579    b: &mut [f64],
1580    ldb: i32,
1581    info: &mut i32,
1582) {
1583    ffi::dgbsv_(
1584        &n,
1585        &kl,
1586        &ku,
1587        &nrhs,
1588        ab.as_mut_ptr(),
1589        &ldab,
1590        ipiv.as_mut_ptr(),
1591        b.as_mut_ptr(),
1592        &ldb,
1593        info,
1594    )
1595}
1596
1597#[inline]
1598pub unsafe fn sgbsv(
1599    n: i32,
1600    kl: i32,
1601    ku: i32,
1602    nrhs: i32,
1603    ab: &mut [f32],
1604    ldab: i32,
1605    ipiv: &mut [i32],
1606    b: &mut [f32],
1607    ldb: i32,
1608    info: &mut i32,
1609) {
1610    ffi::sgbsv_(
1611        &n,
1612        &kl,
1613        &ku,
1614        &nrhs,
1615        ab.as_mut_ptr(),
1616        &ldab,
1617        ipiv.as_mut_ptr(),
1618        b.as_mut_ptr(),
1619        &ldb,
1620        info,
1621    )
1622}
1623
1624#[inline]
1625pub unsafe fn zgbsv(
1626    n: i32,
1627    kl: i32,
1628    ku: i32,
1629    nrhs: i32,
1630    ab: &mut [c64],
1631    ldab: i32,
1632    ipiv: &mut [i32],
1633    b: &mut [c64],
1634    ldb: i32,
1635    info: &mut i32,
1636) {
1637    ffi::zgbsv_(
1638        &n,
1639        &kl,
1640        &ku,
1641        &nrhs,
1642        ab.as_mut_ptr() as *mut _,
1643        &ldab,
1644        ipiv.as_mut_ptr(),
1645        b.as_mut_ptr() as *mut _,
1646        &ldb,
1647        info,
1648    )
1649}
1650
1651#[inline]
1652pub unsafe fn cgbsvx(
1653    fact: u8,
1654    trans: u8,
1655    n: i32,
1656    kl: i32,
1657    ku: i32,
1658    nrhs: i32,
1659    ab: &mut [c32],
1660    ldab: i32,
1661    afb: &mut [c32],
1662    ldafb: i32,
1663    ipiv: &mut [i32],
1664    equed: &mut u8,
1665    r: &mut [f32],
1666    c: &mut [f32],
1667    b: &mut [c32],
1668    ldb: i32,
1669    x: &mut [c32],
1670    ldx: i32,
1671    rcond: &mut f32,
1672    ferr: &mut [f32],
1673    berr: &mut [f32],
1674    work: &mut [c32],
1675    rwork: &mut [f32],
1676    info: &mut i32,
1677) {
1678    ffi::cgbsvx_(
1679        &(fact as c_char),
1680        &(trans as c_char),
1681        &n,
1682        &kl,
1683        &ku,
1684        &nrhs,
1685        ab.as_mut_ptr() as *mut _,
1686        &ldab,
1687        afb.as_mut_ptr() as *mut _,
1688        &ldafb,
1689        ipiv.as_mut_ptr(),
1690        equed as *mut _ as *mut _,
1691        r.as_mut_ptr(),
1692        c.as_mut_ptr(),
1693        b.as_mut_ptr() as *mut _,
1694        &ldb,
1695        x.as_mut_ptr() as *mut _,
1696        &ldx,
1697        rcond,
1698        ferr.as_mut_ptr(),
1699        berr.as_mut_ptr(),
1700        work.as_mut_ptr() as *mut _,
1701        rwork.as_mut_ptr(),
1702        info,
1703    )
1704}
1705
1706#[inline]
1707pub unsafe fn dgbsvx(
1708    fact: u8,
1709    trans: u8,
1710    n: i32,
1711    kl: i32,
1712    ku: i32,
1713    nrhs: i32,
1714    ab: &mut [f64],
1715    ldab: i32,
1716    afb: &mut [f64],
1717    ldafb: i32,
1718    ipiv: &mut [i32],
1719    equed: &mut u8,
1720    r: &mut [f64],
1721    c: &mut [f64],
1722    b: &mut [f64],
1723    ldb: i32,
1724    x: &mut [f64],
1725    ldx: i32,
1726    rcond: &mut f64,
1727    ferr: &mut [f64],
1728    berr: &mut [f64],
1729    work: &mut [f64],
1730    iwork: &mut [i32],
1731    info: &mut i32,
1732) {
1733    ffi::dgbsvx_(
1734        &(fact as c_char),
1735        &(trans as c_char),
1736        &n,
1737        &kl,
1738        &ku,
1739        &nrhs,
1740        ab.as_mut_ptr(),
1741        &ldab,
1742        afb.as_mut_ptr(),
1743        &ldafb,
1744        ipiv.as_mut_ptr(),
1745        equed as *mut _ as *mut _,
1746        r.as_mut_ptr(),
1747        c.as_mut_ptr(),
1748        b.as_mut_ptr(),
1749        &ldb,
1750        x.as_mut_ptr(),
1751        &ldx,
1752        rcond,
1753        ferr.as_mut_ptr(),
1754        berr.as_mut_ptr(),
1755        work.as_mut_ptr(),
1756        iwork.as_mut_ptr(),
1757        info,
1758    )
1759}
1760
1761#[inline]
1762pub unsafe fn sgbsvx(
1763    fact: u8,
1764    trans: u8,
1765    n: i32,
1766    kl: i32,
1767    ku: i32,
1768    nrhs: i32,
1769    ab: &mut [f32],
1770    ldab: i32,
1771    afb: &mut [f32],
1772    ldafb: i32,
1773    ipiv: &mut [i32],
1774    equed: &mut u8,
1775    r: &mut [f32],
1776    c: &mut [f32],
1777    b: &mut [f32],
1778    ldb: i32,
1779    x: &mut [f32],
1780    ldx: i32,
1781    rcond: &mut f32,
1782    ferr: &mut [f32],
1783    berr: &mut [f32],
1784    work: &mut [f32],
1785    iwork: &mut [i32],
1786    info: &mut i32,
1787) {
1788    ffi::sgbsvx_(
1789        &(fact as c_char),
1790        &(trans as c_char),
1791        &n,
1792        &kl,
1793        &ku,
1794        &nrhs,
1795        ab.as_mut_ptr(),
1796        &ldab,
1797        afb.as_mut_ptr(),
1798        &ldafb,
1799        ipiv.as_mut_ptr(),
1800        equed as *mut _ as *mut _,
1801        r.as_mut_ptr(),
1802        c.as_mut_ptr(),
1803        b.as_mut_ptr(),
1804        &ldb,
1805        x.as_mut_ptr(),
1806        &ldx,
1807        rcond,
1808        ferr.as_mut_ptr(),
1809        berr.as_mut_ptr(),
1810        work.as_mut_ptr(),
1811        iwork.as_mut_ptr(),
1812        info,
1813    )
1814}
1815
1816#[inline]
1817pub unsafe fn zgbsvx(
1818    fact: u8,
1819    trans: u8,
1820    n: i32,
1821    kl: i32,
1822    ku: i32,
1823    nrhs: i32,
1824    ab: &mut [c64],
1825    ldab: i32,
1826    afb: &mut [c64],
1827    ldafb: i32,
1828    ipiv: &mut [i32],
1829    equed: &mut u8,
1830    r: &mut [f64],
1831    c: &mut [f64],
1832    b: &mut [c64],
1833    ldb: i32,
1834    x: &mut [c64],
1835    ldx: i32,
1836    rcond: &mut f64,
1837    ferr: &mut [f64],
1838    berr: &mut [f64],
1839    work: &mut [c64],
1840    rwork: &mut [f64],
1841    info: &mut i32,
1842) {
1843    ffi::zgbsvx_(
1844        &(fact as c_char),
1845        &(trans as c_char),
1846        &n,
1847        &kl,
1848        &ku,
1849        &nrhs,
1850        ab.as_mut_ptr() as *mut _,
1851        &ldab,
1852        afb.as_mut_ptr() as *mut _,
1853        &ldafb,
1854        ipiv.as_mut_ptr(),
1855        equed as *mut _ as *mut _,
1856        r.as_mut_ptr(),
1857        c.as_mut_ptr(),
1858        b.as_mut_ptr() as *mut _,
1859        &ldb,
1860        x.as_mut_ptr() as *mut _,
1861        &ldx,
1862        rcond,
1863        ferr.as_mut_ptr(),
1864        berr.as_mut_ptr(),
1865        work.as_mut_ptr() as *mut _,
1866        rwork.as_mut_ptr(),
1867        info,
1868    )
1869}
1870
1871#[inline]
1872pub unsafe fn cgbsvxx(
1873    fact: u8,
1874    trans: u8,
1875    n: i32,
1876    kl: i32,
1877    ku: i32,
1878    nrhs: i32,
1879    ab: &mut [c32],
1880    ldab: i32,
1881    afb: &mut [c32],
1882    ldafb: i32,
1883    ipiv: &mut [i32],
1884    equed: &mut u8,
1885    r: &mut [f32],
1886    c: &mut [f32],
1887    b: &mut [c32],
1888    ldb: i32,
1889    x: &mut [c32],
1890    ldx: i32,
1891    rcond: &mut f32,
1892    rpvgrw: &mut f32,
1893    berr: &mut [f32],
1894    n_err_bnds: i32,
1895    err_bnds_norm: &mut [f32],
1896    err_bnds_comp: &mut [f32],
1897    nparams: &[i32],
1898    params: &mut [f32],
1899    work: &mut [c32],
1900    rwork: &mut [f32],
1901    info: &mut i32,
1902) {
1903    ffi::cgbsvxx_(
1904        &(fact as c_char),
1905        &(trans as c_char),
1906        &n,
1907        &kl,
1908        &ku,
1909        &nrhs,
1910        ab.as_mut_ptr() as *mut _,
1911        &ldab,
1912        afb.as_mut_ptr() as *mut _,
1913        &ldafb,
1914        ipiv.as_mut_ptr(),
1915        equed as *mut _ as *mut _,
1916        r.as_mut_ptr(),
1917        c.as_mut_ptr(),
1918        b.as_mut_ptr() as *mut _,
1919        &ldb,
1920        x.as_mut_ptr() as *mut _,
1921        &ldx,
1922        rcond,
1923        rpvgrw,
1924        berr.as_mut_ptr(),
1925        &n_err_bnds,
1926        err_bnds_norm.as_mut_ptr(),
1927        err_bnds_comp.as_mut_ptr(),
1928        nparams.as_ptr(),
1929        params.as_mut_ptr(),
1930        work.as_mut_ptr() as *mut _,
1931        rwork.as_mut_ptr(),
1932        info,
1933    )
1934}
1935
1936#[inline]
1937pub unsafe fn dgbsvxx(
1938    fact: u8,
1939    trans: u8,
1940    n: i32,
1941    kl: i32,
1942    ku: i32,
1943    nrhs: i32,
1944    ab: &mut [f64],
1945    ldab: i32,
1946    afb: &mut [f64],
1947    ldafb: i32,
1948    ipiv: &mut [i32],
1949    equed: &mut u8,
1950    r: &mut [f64],
1951    c: &mut [f64],
1952    b: &mut [f64],
1953    ldb: i32,
1954    x: &mut [f64],
1955    ldx: i32,
1956    rcond: &mut f64,
1957    rpvgrw: &mut f64,
1958    berr: &mut [f64],
1959    n_err_bnds: i32,
1960    err_bnds_norm: &mut [f64],
1961    err_bnds_comp: &mut [f64],
1962    nparams: &[i32],
1963    params: &mut [f64],
1964    work: &mut [f64],
1965    iwork: &mut [i32],
1966    info: &mut i32,
1967) {
1968    ffi::dgbsvxx_(
1969        &(fact as c_char),
1970        &(trans as c_char),
1971        &n,
1972        &kl,
1973        &ku,
1974        &nrhs,
1975        ab.as_mut_ptr(),
1976        &ldab,
1977        afb.as_mut_ptr(),
1978        &ldafb,
1979        ipiv.as_mut_ptr(),
1980        equed as *mut _ as *mut _,
1981        r.as_mut_ptr(),
1982        c.as_mut_ptr(),
1983        b.as_mut_ptr(),
1984        &ldb,
1985        x.as_mut_ptr(),
1986        &ldx,
1987        rcond,
1988        rpvgrw,
1989        berr.as_mut_ptr(),
1990        &n_err_bnds,
1991        err_bnds_norm.as_mut_ptr(),
1992        err_bnds_comp.as_mut_ptr(),
1993        nparams.as_ptr(),
1994        params.as_mut_ptr(),
1995        work.as_mut_ptr(),
1996        iwork.as_mut_ptr(),
1997        info,
1998    )
1999}
2000
2001#[inline]
2002pub unsafe fn sgbsvxx(
2003    fact: u8,
2004    trans: u8,
2005    n: i32,
2006    kl: i32,
2007    ku: i32,
2008    nrhs: i32,
2009    ab: &mut [f32],
2010    ldab: i32,
2011    afb: &mut [f32],
2012    ldafb: i32,
2013    ipiv: &mut [i32],
2014    equed: &mut u8,
2015    r: &mut [f32],
2016    c: &mut [f32],
2017    b: &mut [f32],
2018    ldb: i32,
2019    x: &mut [f32],
2020    ldx: i32,
2021    rcond: &mut f32,
2022    rpvgrw: &mut f32,
2023    berr: &mut [f32],
2024    n_err_bnds: i32,
2025    err_bnds_norm: &mut [f32],
2026    err_bnds_comp: &mut [f32],
2027    nparams: &[i32],
2028    params: &mut [f32],
2029    work: &mut [f32],
2030    iwork: &mut [i32],
2031    info: &mut i32,
2032) {
2033    ffi::sgbsvxx_(
2034        &(fact as c_char),
2035        &(trans as c_char),
2036        &n,
2037        &kl,
2038        &ku,
2039        &nrhs,
2040        ab.as_mut_ptr(),
2041        &ldab,
2042        afb.as_mut_ptr(),
2043        &ldafb,
2044        ipiv.as_mut_ptr(),
2045        equed as *mut _ as *mut _,
2046        r.as_mut_ptr(),
2047        c.as_mut_ptr(),
2048        b.as_mut_ptr(),
2049        &ldb,
2050        x.as_mut_ptr(),
2051        &ldx,
2052        rcond,
2053        rpvgrw,
2054        berr.as_mut_ptr(),
2055        &n_err_bnds,
2056        err_bnds_norm.as_mut_ptr(),
2057        err_bnds_comp.as_mut_ptr(),
2058        nparams.as_ptr(),
2059        params.as_mut_ptr(),
2060        work.as_mut_ptr(),
2061        iwork.as_mut_ptr(),
2062        info,
2063    )
2064}
2065
2066#[inline]
2067pub unsafe fn zgbsvxx(
2068    fact: u8,
2069    trans: u8,
2070    n: i32,
2071    kl: i32,
2072    ku: i32,
2073    nrhs: i32,
2074    ab: &mut [c64],
2075    ldab: i32,
2076    afb: &mut [c64],
2077    ldafb: i32,
2078    ipiv: &mut [i32],
2079    equed: &mut u8,
2080    r: &mut [f64],
2081    c: &mut [f64],
2082    b: &mut [c64],
2083    ldb: i32,
2084    x: &mut [c64],
2085    ldx: i32,
2086    rcond: &mut f64,
2087    rpvgrw: &mut f64,
2088    berr: &mut [f64],
2089    n_err_bnds: i32,
2090    err_bnds_norm: &mut [f64],
2091    err_bnds_comp: &mut [f64],
2092    nparams: &[i32],
2093    params: &mut [f64],
2094    work: &mut [c64],
2095    rwork: &mut [f64],
2096    info: &mut i32,
2097) {
2098    ffi::zgbsvxx_(
2099        &(fact as c_char),
2100        &(trans as c_char),
2101        &n,
2102        &kl,
2103        &ku,
2104        &nrhs,
2105        ab.as_mut_ptr() as *mut _,
2106        &ldab,
2107        afb.as_mut_ptr() as *mut _,
2108        &ldafb,
2109        ipiv.as_mut_ptr(),
2110        equed as *mut _ as *mut _,
2111        r.as_mut_ptr(),
2112        c.as_mut_ptr(),
2113        b.as_mut_ptr() as *mut _,
2114        &ldb,
2115        x.as_mut_ptr() as *mut _,
2116        &ldx,
2117        rcond,
2118        rpvgrw,
2119        berr.as_mut_ptr(),
2120        &n_err_bnds,
2121        err_bnds_norm.as_mut_ptr(),
2122        err_bnds_comp.as_mut_ptr(),
2123        nparams.as_ptr(),
2124        params.as_mut_ptr(),
2125        work.as_mut_ptr() as *mut _,
2126        rwork.as_mut_ptr(),
2127        info,
2128    )
2129}
2130
2131#[inline]
2132pub unsafe fn cgbtrf(
2133    m: i32,
2134    n: i32,
2135    kl: i32,
2136    ku: i32,
2137    ab: &mut [c32],
2138    ldab: i32,
2139    ipiv: &mut [i32],
2140    info: &mut i32,
2141) {
2142    ffi::cgbtrf_(
2143        &m,
2144        &n,
2145        &kl,
2146        &ku,
2147        ab.as_mut_ptr() as *mut _,
2148        &ldab,
2149        ipiv.as_mut_ptr(),
2150        info,
2151    )
2152}
2153
2154#[inline]
2155pub unsafe fn dgbtrf(
2156    m: i32,
2157    n: i32,
2158    kl: i32,
2159    ku: i32,
2160    ab: &mut [f64],
2161    ldab: i32,
2162    ipiv: &mut [i32],
2163    info: &mut i32,
2164) {
2165    ffi::dgbtrf_(
2166        &m,
2167        &n,
2168        &kl,
2169        &ku,
2170        ab.as_mut_ptr(),
2171        &ldab,
2172        ipiv.as_mut_ptr(),
2173        info,
2174    )
2175}
2176
2177#[inline]
2178pub unsafe fn sgbtrf(
2179    m: i32,
2180    n: i32,
2181    kl: i32,
2182    ku: i32,
2183    ab: &mut [f32],
2184    ldab: i32,
2185    ipiv: &mut [i32],
2186    info: &mut i32,
2187) {
2188    ffi::sgbtrf_(
2189        &m,
2190        &n,
2191        &kl,
2192        &ku,
2193        ab.as_mut_ptr(),
2194        &ldab,
2195        ipiv.as_mut_ptr(),
2196        info,
2197    )
2198}
2199
2200#[inline]
2201pub unsafe fn zgbtrf(
2202    m: i32,
2203    n: i32,
2204    kl: i32,
2205    ku: i32,
2206    ab: &mut [c64],
2207    ldab: i32,
2208    ipiv: &mut [i32],
2209    info: &mut i32,
2210) {
2211    ffi::zgbtrf_(
2212        &m,
2213        &n,
2214        &kl,
2215        &ku,
2216        ab.as_mut_ptr() as *mut _,
2217        &ldab,
2218        ipiv.as_mut_ptr(),
2219        info,
2220    )
2221}
2222
2223#[inline]
2224pub unsafe fn cgbtrs(
2225    trans: u8,
2226    n: i32,
2227    kl: i32,
2228    ku: i32,
2229    nrhs: i32,
2230    ab: &[c32],
2231    ldab: i32,
2232    ipiv: &[i32],
2233    b: &mut [c32],
2234    ldb: i32,
2235    info: &mut i32,
2236) {
2237    ffi::cgbtrs_(
2238        &(trans as c_char),
2239        &n,
2240        &kl,
2241        &ku,
2242        &nrhs,
2243        ab.as_ptr() as *const _,
2244        &ldab,
2245        ipiv.as_ptr(),
2246        b.as_mut_ptr() as *mut _,
2247        &ldb,
2248        info,
2249    )
2250}
2251
2252#[inline]
2253pub unsafe fn dgbtrs(
2254    trans: u8,
2255    n: i32,
2256    kl: i32,
2257    ku: i32,
2258    nrhs: i32,
2259    ab: &[f64],
2260    ldab: i32,
2261    ipiv: &[i32],
2262    b: &mut [f64],
2263    ldb: i32,
2264    info: &mut i32,
2265) {
2266    ffi::dgbtrs_(
2267        &(trans as c_char),
2268        &n,
2269        &kl,
2270        &ku,
2271        &nrhs,
2272        ab.as_ptr(),
2273        &ldab,
2274        ipiv.as_ptr(),
2275        b.as_mut_ptr(),
2276        &ldb,
2277        info,
2278    )
2279}
2280
2281#[inline]
2282pub unsafe fn sgbtrs(
2283    trans: u8,
2284    n: i32,
2285    kl: i32,
2286    ku: i32,
2287    nrhs: i32,
2288    ab: &[f32],
2289    ldab: i32,
2290    ipiv: &[i32],
2291    b: &mut [f32],
2292    ldb: i32,
2293    info: &mut i32,
2294) {
2295    ffi::sgbtrs_(
2296        &(trans as c_char),
2297        &n,
2298        &kl,
2299        &ku,
2300        &nrhs,
2301        ab.as_ptr(),
2302        &ldab,
2303        ipiv.as_ptr(),
2304        b.as_mut_ptr(),
2305        &ldb,
2306        info,
2307    )
2308}
2309
2310#[inline]
2311pub unsafe fn zgbtrs(
2312    trans: u8,
2313    n: i32,
2314    kl: i32,
2315    ku: i32,
2316    nrhs: i32,
2317    ab: &[c64],
2318    ldab: i32,
2319    ipiv: &[i32],
2320    b: &mut [c64],
2321    ldb: i32,
2322    info: &mut i32,
2323) {
2324    ffi::zgbtrs_(
2325        &(trans as c_char),
2326        &n,
2327        &kl,
2328        &ku,
2329        &nrhs,
2330        ab.as_ptr() as *const _,
2331        &ldab,
2332        ipiv.as_ptr(),
2333        b.as_mut_ptr() as *mut _,
2334        &ldb,
2335        info,
2336    )
2337}
2338
2339#[inline]
2340pub unsafe fn cgebak(
2341    job: u8,
2342    side: u8,
2343    n: i32,
2344    ilo: i32,
2345    ihi: i32,
2346    scale: &[f32],
2347    m: i32,
2348    v: &mut [c32],
2349    ldv: i32,
2350    info: &mut i32,
2351) {
2352    ffi::cgebak_(
2353        &(job as c_char),
2354        &(side as c_char),
2355        &n,
2356        &ilo,
2357        &ihi,
2358        scale.as_ptr(),
2359        &m,
2360        v.as_mut_ptr() as *mut _,
2361        &ldv,
2362        info,
2363    )
2364}
2365
2366#[inline]
2367pub unsafe fn dgebak(
2368    job: u8,
2369    side: u8,
2370    n: i32,
2371    ilo: i32,
2372    ihi: i32,
2373    scale: &[f64],
2374    m: i32,
2375    v: &mut [f64],
2376    ldv: i32,
2377    info: &mut i32,
2378) {
2379    ffi::dgebak_(
2380        &(job as c_char),
2381        &(side as c_char),
2382        &n,
2383        &ilo,
2384        &ihi,
2385        scale.as_ptr(),
2386        &m,
2387        v.as_mut_ptr(),
2388        &ldv,
2389        info,
2390    )
2391}
2392
2393#[inline]
2394pub unsafe fn sgebak(
2395    job: u8,
2396    side: u8,
2397    n: i32,
2398    ilo: i32,
2399    ihi: i32,
2400    scale: &[f32],
2401    m: i32,
2402    v: &mut [f32],
2403    ldv: i32,
2404    info: &mut i32,
2405) {
2406    ffi::sgebak_(
2407        &(job as c_char),
2408        &(side as c_char),
2409        &n,
2410        &ilo,
2411        &ihi,
2412        scale.as_ptr(),
2413        &m,
2414        v.as_mut_ptr(),
2415        &ldv,
2416        info,
2417    )
2418}
2419
2420#[inline]
2421pub unsafe fn zgebak(
2422    job: u8,
2423    side: u8,
2424    n: i32,
2425    ilo: i32,
2426    ihi: i32,
2427    scale: &[f64],
2428    m: i32,
2429    v: &mut [c64],
2430    ldv: i32,
2431    info: &mut i32,
2432) {
2433    ffi::zgebak_(
2434        &(job as c_char),
2435        &(side as c_char),
2436        &n,
2437        &ilo,
2438        &ihi,
2439        scale.as_ptr(),
2440        &m,
2441        v.as_mut_ptr() as *mut _,
2442        &ldv,
2443        info,
2444    )
2445}
2446
2447#[inline]
2448pub unsafe fn cgebal(
2449    job: u8,
2450    n: i32,
2451    a: &mut [c32],
2452    lda: i32,
2453    ilo: &mut i32,
2454    ihi: &mut i32,
2455    scale: &mut [f32],
2456    info: &mut i32,
2457) {
2458    ffi::cgebal_(
2459        &(job as c_char),
2460        &n,
2461        a.as_mut_ptr() as *mut _,
2462        &lda,
2463        ilo,
2464        ihi,
2465        scale.as_mut_ptr(),
2466        info,
2467    )
2468}
2469
2470#[inline]
2471pub unsafe fn dgebal(
2472    job: u8,
2473    n: i32,
2474    a: &mut [f64],
2475    lda: i32,
2476    ilo: &mut i32,
2477    ihi: &mut i32,
2478    scale: &mut [f64],
2479    info: &mut i32,
2480) {
2481    ffi::dgebal_(
2482        &(job as c_char),
2483        &n,
2484        a.as_mut_ptr(),
2485        &lda,
2486        ilo,
2487        ihi,
2488        scale.as_mut_ptr(),
2489        info,
2490    )
2491}
2492
2493#[inline]
2494pub unsafe fn sgebal(
2495    job: u8,
2496    n: i32,
2497    a: &mut [f32],
2498    lda: i32,
2499    ilo: &mut i32,
2500    ihi: &mut i32,
2501    scale: &mut [f32],
2502    info: &mut i32,
2503) {
2504    ffi::sgebal_(
2505        &(job as c_char),
2506        &n,
2507        a.as_mut_ptr(),
2508        &lda,
2509        ilo,
2510        ihi,
2511        scale.as_mut_ptr(),
2512        info,
2513    )
2514}
2515
2516#[inline]
2517pub unsafe fn zgebal(
2518    job: u8,
2519    n: i32,
2520    a: &mut [c64],
2521    lda: i32,
2522    ilo: &mut i32,
2523    ihi: &mut i32,
2524    scale: &mut [f64],
2525    info: &mut i32,
2526) {
2527    ffi::zgebal_(
2528        &(job as c_char),
2529        &n,
2530        a.as_mut_ptr() as *mut _,
2531        &lda,
2532        ilo,
2533        ihi,
2534        scale.as_mut_ptr(),
2535        info,
2536    )
2537}
2538
2539#[inline]
2540pub unsafe fn cgebrd(
2541    m: i32,
2542    n: i32,
2543    a: &mut [c32],
2544    lda: i32,
2545    d: &mut [f32],
2546    e: &mut [f32],
2547    tauq: &mut [c32],
2548    taup: &mut [c32],
2549    work: &mut [c32],
2550    lwork: i32,
2551    info: &mut i32,
2552) {
2553    ffi::cgebrd_(
2554        &m,
2555        &n,
2556        a.as_mut_ptr() as *mut _,
2557        &lda,
2558        d.as_mut_ptr(),
2559        e.as_mut_ptr(),
2560        tauq.as_mut_ptr() as *mut _,
2561        taup.as_mut_ptr() as *mut _,
2562        work.as_mut_ptr() as *mut _,
2563        &lwork,
2564        info,
2565    )
2566}
2567
2568#[inline]
2569pub unsafe fn dgebrd(
2570    m: i32,
2571    n: i32,
2572    a: &mut [f64],
2573    lda: i32,
2574    d: &mut [f64],
2575    e: &mut [f64],
2576    tauq: &mut [f64],
2577    taup: &mut [f64],
2578    work: &mut [f64],
2579    lwork: i32,
2580    info: &mut i32,
2581) {
2582    ffi::dgebrd_(
2583        &m,
2584        &n,
2585        a.as_mut_ptr(),
2586        &lda,
2587        d.as_mut_ptr(),
2588        e.as_mut_ptr(),
2589        tauq.as_mut_ptr(),
2590        taup.as_mut_ptr(),
2591        work.as_mut_ptr(),
2592        &lwork,
2593        info,
2594    )
2595}
2596
2597#[inline]
2598pub unsafe fn sgebrd(
2599    m: i32,
2600    n: i32,
2601    a: &mut [f32],
2602    lda: i32,
2603    d: &mut [f32],
2604    e: &mut [f32],
2605    tauq: &mut [f32],
2606    taup: &mut [f32],
2607    work: &mut [f32],
2608    lwork: i32,
2609    info: &mut i32,
2610) {
2611    ffi::sgebrd_(
2612        &m,
2613        &n,
2614        a.as_mut_ptr(),
2615        &lda,
2616        d.as_mut_ptr(),
2617        e.as_mut_ptr(),
2618        tauq.as_mut_ptr(),
2619        taup.as_mut_ptr(),
2620        work.as_mut_ptr(),
2621        &lwork,
2622        info,
2623    )
2624}
2625
2626#[inline]
2627pub unsafe fn zgebrd(
2628    m: i32,
2629    n: i32,
2630    a: &mut [c64],
2631    lda: i32,
2632    d: &mut [f64],
2633    e: &mut [f64],
2634    tauq: &mut [c64],
2635    taup: &mut [c64],
2636    work: &mut [c64],
2637    lwork: i32,
2638    info: &mut i32,
2639) {
2640    ffi::zgebrd_(
2641        &m,
2642        &n,
2643        a.as_mut_ptr() as *mut _,
2644        &lda,
2645        d.as_mut_ptr(),
2646        e.as_mut_ptr(),
2647        tauq.as_mut_ptr() as *mut _,
2648        taup.as_mut_ptr() as *mut _,
2649        work.as_mut_ptr() as *mut _,
2650        &lwork,
2651        info,
2652    )
2653}
2654
2655#[inline]
2656pub unsafe fn cgecon(
2657    norm: u8,
2658    n: i32,
2659    a: &[c32],
2660    lda: i32,
2661    anorm: f32,
2662    rcond: &mut f32,
2663    work: &mut [c32],
2664    rwork: &mut [f32],
2665    info: &mut i32,
2666) {
2667    ffi::cgecon_(
2668        &(norm as c_char),
2669        &n,
2670        a.as_ptr() as *const _,
2671        &lda,
2672        &anorm,
2673        rcond,
2674        work.as_mut_ptr() as *mut _,
2675        rwork.as_mut_ptr(),
2676        info,
2677    )
2678}
2679
2680#[inline]
2681pub unsafe fn dgecon(
2682    norm: u8,
2683    n: i32,
2684    a: &[f64],
2685    lda: i32,
2686    anorm: f64,
2687    rcond: &mut f64,
2688    work: &mut [f64],
2689    iwork: &mut [i32],
2690    info: &mut i32,
2691) {
2692    ffi::dgecon_(
2693        &(norm as c_char),
2694        &n,
2695        a.as_ptr(),
2696        &lda,
2697        &anorm,
2698        rcond,
2699        work.as_mut_ptr(),
2700        iwork.as_mut_ptr(),
2701        info,
2702    )
2703}
2704
2705#[inline]
2706pub unsafe fn sgecon(
2707    norm: u8,
2708    n: i32,
2709    a: &[f32],
2710    lda: i32,
2711    anorm: f32,
2712    rcond: &mut f32,
2713    work: &mut [f32],
2714    iwork: &mut [i32],
2715    info: &mut i32,
2716) {
2717    ffi::sgecon_(
2718        &(norm as c_char),
2719        &n,
2720        a.as_ptr(),
2721        &lda,
2722        &anorm,
2723        rcond,
2724        work.as_mut_ptr(),
2725        iwork.as_mut_ptr(),
2726        info,
2727    )
2728}
2729
2730#[inline]
2731pub unsafe fn zgecon(
2732    norm: u8,
2733    n: i32,
2734    a: &[c64],
2735    lda: i32,
2736    anorm: f64,
2737    rcond: &mut f64,
2738    work: &mut [c64],
2739    rwork: &mut [f64],
2740    info: &mut i32,
2741) {
2742    ffi::zgecon_(
2743        &(norm as c_char),
2744        &n,
2745        a.as_ptr() as *const _,
2746        &lda,
2747        &anorm,
2748        rcond,
2749        work.as_mut_ptr() as *mut _,
2750        rwork.as_mut_ptr(),
2751        info,
2752    )
2753}
2754
2755#[inline]
2756pub unsafe fn cgeequ(
2757    m: i32,
2758    n: i32,
2759    a: &[c32],
2760    lda: i32,
2761    r: &mut [f32],
2762    c: &mut [f32],
2763    rowcnd: &mut f32,
2764    colcnd: &mut f32,
2765    amax: &mut f32,
2766    info: &mut i32,
2767) {
2768    ffi::cgeequ_(
2769        &m,
2770        &n,
2771        a.as_ptr() as *const _,
2772        &lda,
2773        r.as_mut_ptr(),
2774        c.as_mut_ptr(),
2775        rowcnd,
2776        colcnd,
2777        amax,
2778        info,
2779    )
2780}
2781
2782#[inline]
2783pub unsafe fn dgeequ(
2784    m: i32,
2785    n: i32,
2786    a: &[f64],
2787    lda: i32,
2788    r: &mut [f64],
2789    c: &mut [f64],
2790    rowcnd: &mut f64,
2791    colcnd: &mut f64,
2792    amax: &mut f64,
2793    info: &mut i32,
2794) {
2795    ffi::dgeequ_(
2796        &m,
2797        &n,
2798        a.as_ptr(),
2799        &lda,
2800        r.as_mut_ptr(),
2801        c.as_mut_ptr(),
2802        rowcnd,
2803        colcnd,
2804        amax,
2805        info,
2806    )
2807}
2808
2809#[inline]
2810pub unsafe fn sgeequ(
2811    m: i32,
2812    n: i32,
2813    a: &[f32],
2814    lda: i32,
2815    r: &mut [f32],
2816    c: &mut [f32],
2817    rowcnd: &mut f32,
2818    colcnd: &mut f32,
2819    amax: &mut f32,
2820    info: &mut i32,
2821) {
2822    ffi::sgeequ_(
2823        &m,
2824        &n,
2825        a.as_ptr(),
2826        &lda,
2827        r.as_mut_ptr(),
2828        c.as_mut_ptr(),
2829        rowcnd,
2830        colcnd,
2831        amax,
2832        info,
2833    )
2834}
2835
2836#[inline]
2837pub unsafe fn zgeequ(
2838    m: i32,
2839    n: i32,
2840    a: &[c64],
2841    lda: i32,
2842    r: &mut [f64],
2843    c: &mut [f64],
2844    rowcnd: &mut f64,
2845    colcnd: &mut f64,
2846    amax: &mut f64,
2847    info: &mut i32,
2848) {
2849    ffi::zgeequ_(
2850        &m,
2851        &n,
2852        a.as_ptr() as *const _,
2853        &lda,
2854        r.as_mut_ptr(),
2855        c.as_mut_ptr(),
2856        rowcnd,
2857        colcnd,
2858        amax,
2859        info,
2860    )
2861}
2862
2863#[inline]
2864pub unsafe fn cgeequb(
2865    m: i32,
2866    n: i32,
2867    a: &[c32],
2868    lda: i32,
2869    r: &mut [f32],
2870    c: &mut [f32],
2871    rowcnd: &mut f32,
2872    colcnd: &mut f32,
2873    amax: &mut f32,
2874    info: &mut i32,
2875) {
2876    ffi::cgeequb_(
2877        &m,
2878        &n,
2879        a.as_ptr() as *const _,
2880        &lda,
2881        r.as_mut_ptr(),
2882        c.as_mut_ptr(),
2883        rowcnd,
2884        colcnd,
2885        amax,
2886        info,
2887    )
2888}
2889
2890#[inline]
2891pub unsafe fn dgeequb(
2892    m: i32,
2893    n: i32,
2894    a: &[f64],
2895    lda: i32,
2896    r: &mut [f64],
2897    c: &mut [f64],
2898    rowcnd: &mut f64,
2899    colcnd: &mut f64,
2900    amax: &mut f64,
2901    info: &mut i32,
2902) {
2903    ffi::dgeequb_(
2904        &m,
2905        &n,
2906        a.as_ptr(),
2907        &lda,
2908        r.as_mut_ptr(),
2909        c.as_mut_ptr(),
2910        rowcnd,
2911        colcnd,
2912        amax,
2913        info,
2914    )
2915}
2916
2917#[inline]
2918pub unsafe fn sgeequb(
2919    m: i32,
2920    n: i32,
2921    a: &[f32],
2922    lda: i32,
2923    r: &mut [f32],
2924    c: &mut [f32],
2925    rowcnd: &mut f32,
2926    colcnd: &mut f32,
2927    amax: &mut f32,
2928    info: &mut i32,
2929) {
2930    ffi::sgeequb_(
2931        &m,
2932        &n,
2933        a.as_ptr(),
2934        &lda,
2935        r.as_mut_ptr(),
2936        c.as_mut_ptr(),
2937        rowcnd,
2938        colcnd,
2939        amax,
2940        info,
2941    )
2942}
2943
2944#[inline]
2945pub unsafe fn zgeequb(
2946    m: i32,
2947    n: i32,
2948    a: &[c64],
2949    lda: i32,
2950    r: &mut [f64],
2951    c: &mut [f64],
2952    rowcnd: &mut f64,
2953    colcnd: &mut f64,
2954    amax: &mut f64,
2955    info: &mut i32,
2956) {
2957    ffi::zgeequb_(
2958        &m,
2959        &n,
2960        a.as_ptr() as *const _,
2961        &lda,
2962        r.as_mut_ptr(),
2963        c.as_mut_ptr(),
2964        rowcnd,
2965        colcnd,
2966        amax,
2967        info,
2968    )
2969}
2970
2971#[inline]
2972pub unsafe fn cgees(
2973    jobvs: u8,
2974    sort: u8,
2975    select: Select1C32,
2976    n: i32,
2977    a: &mut [c32],
2978    lda: i32,
2979    sdim: &mut i32,
2980    w: &mut [c32],
2981    vs: &mut [c32],
2982    ldvs: i32,
2983    work: &mut [c32],
2984    lwork: i32,
2985    rwork: &mut [f32],
2986    bwork: &mut [i32],
2987    info: &mut i32,
2988) {
2989    ffi::cgees_(
2990        &(jobvs as c_char),
2991        &(sort as c_char),
2992        transmute(select),
2993        &n,
2994        a.as_mut_ptr() as *mut _,
2995        &lda,
2996        sdim,
2997        w.as_mut_ptr() as *mut _,
2998        vs.as_mut_ptr() as *mut _,
2999        &ldvs,
3000        work.as_mut_ptr() as *mut _,
3001        &lwork,
3002        rwork.as_mut_ptr(),
3003        bwork.as_mut_ptr(),
3004        info,
3005    )
3006}
3007
3008#[inline]
3009pub unsafe fn dgees(
3010    jobvs: u8,
3011    sort: u8,
3012    select: Select2F64,
3013    n: i32,
3014    a: &mut [f64],
3015    lda: i32,
3016    sdim: &mut i32,
3017    wr: &mut [f64],
3018    wi: &mut [f64],
3019    vs: &mut [f64],
3020    ldvs: i32,
3021    work: &mut [f64],
3022    lwork: i32,
3023    bwork: &mut [i32],
3024    info: &mut i32,
3025) {
3026    ffi::dgees_(
3027        &(jobvs as c_char),
3028        &(sort as c_char),
3029        transmute(select),
3030        &n,
3031        a.as_mut_ptr(),
3032        &lda,
3033        sdim,
3034        wr.as_mut_ptr(),
3035        wi.as_mut_ptr(),
3036        vs.as_mut_ptr(),
3037        &ldvs,
3038        work.as_mut_ptr(),
3039        &lwork,
3040        bwork.as_mut_ptr(),
3041        info,
3042    )
3043}
3044
3045#[inline]
3046pub unsafe fn sgees(
3047    jobvs: u8,
3048    sort: u8,
3049    select: Select2F32,
3050    n: i32,
3051    a: &mut [f32],
3052    lda: i32,
3053    sdim: &mut i32,
3054    wr: &mut [f32],
3055    wi: &mut [f32],
3056    vs: &mut [f32],
3057    ldvs: i32,
3058    work: &mut [f32],
3059    lwork: i32,
3060    bwork: &mut [i32],
3061    info: &mut i32,
3062) {
3063    ffi::sgees_(
3064        &(jobvs as c_char),
3065        &(sort as c_char),
3066        transmute(select),
3067        &n,
3068        a.as_mut_ptr(),
3069        &lda,
3070        sdim,
3071        wr.as_mut_ptr(),
3072        wi.as_mut_ptr(),
3073        vs.as_mut_ptr(),
3074        &ldvs,
3075        work.as_mut_ptr(),
3076        &lwork,
3077        bwork.as_mut_ptr(),
3078        info,
3079    )
3080}
3081
3082#[inline]
3083pub unsafe fn zgees(
3084    jobvs: u8,
3085    sort: u8,
3086    select: Select1C64,
3087    n: i32,
3088    a: &mut [c64],
3089    lda: i32,
3090    sdim: &mut i32,
3091    w: &mut [c64],
3092    vs: &mut [c64],
3093    ldvs: i32,
3094    work: &mut [c64],
3095    lwork: i32,
3096    rwork: &mut [f64],
3097    bwork: &mut [i32],
3098    info: &mut i32,
3099) {
3100    ffi::zgees_(
3101        &(jobvs as c_char),
3102        &(sort as c_char),
3103        transmute(select),
3104        &n,
3105        a.as_mut_ptr() as *mut _,
3106        &lda,
3107        sdim,
3108        w.as_mut_ptr() as *mut _,
3109        vs.as_mut_ptr() as *mut _,
3110        &ldvs,
3111        work.as_mut_ptr() as *mut _,
3112        &lwork,
3113        rwork.as_mut_ptr(),
3114        bwork.as_mut_ptr(),
3115        info,
3116    )
3117}
3118
3119#[inline]
3120pub unsafe fn cgeesx(
3121    jobvs: u8,
3122    sort: u8,
3123    select: Select1C32,
3124    sense: u8,
3125    n: i32,
3126    a: &mut [c32],
3127    lda: i32,
3128    sdim: &mut i32,
3129    w: &mut [c32],
3130    vs: &mut [c32],
3131    ldvs: i32,
3132    rconde: &mut [f32],
3133    rcondv: &mut [f32],
3134    work: &mut [c32],
3135    lwork: i32,
3136    rwork: &mut [f32],
3137    bwork: &mut [i32],
3138    info: &mut i32,
3139) {
3140    ffi::cgeesx_(
3141        &(jobvs as c_char),
3142        &(sort as c_char),
3143        transmute(select),
3144        &(sense as c_char),
3145        &n,
3146        a.as_mut_ptr() as *mut _,
3147        &lda,
3148        sdim,
3149        w.as_mut_ptr() as *mut _,
3150        vs.as_mut_ptr() as *mut _,
3151        &ldvs,
3152        rconde.as_mut_ptr(),
3153        rcondv.as_mut_ptr(),
3154        work.as_mut_ptr() as *mut _,
3155        &lwork,
3156        rwork.as_mut_ptr(),
3157        bwork.as_mut_ptr(),
3158        info,
3159    )
3160}
3161
3162#[inline]
3163pub unsafe fn dgeesx(
3164    jobvs: u8,
3165    sort: u8,
3166    select: Select2F64,
3167    sense: u8,
3168    n: i32,
3169    a: &mut [f64],
3170    lda: i32,
3171    sdim: &mut i32,
3172    wr: &mut [f64],
3173    wi: &mut [f64],
3174    vs: &mut [f64],
3175    ldvs: i32,
3176    rconde: &mut [f64],
3177    rcondv: &mut [f64],
3178    work: &mut [f64],
3179    lwork: i32,
3180    iwork: &mut [i32],
3181    liwork: i32,
3182    bwork: &mut [i32],
3183    info: &mut i32,
3184) {
3185    ffi::dgeesx_(
3186        &(jobvs as c_char),
3187        &(sort as c_char),
3188        transmute(select),
3189        &(sense as c_char),
3190        &n,
3191        a.as_mut_ptr(),
3192        &lda,
3193        sdim,
3194        wr.as_mut_ptr(),
3195        wi.as_mut_ptr(),
3196        vs.as_mut_ptr(),
3197        &ldvs,
3198        rconde.as_mut_ptr(),
3199        rcondv.as_mut_ptr(),
3200        work.as_mut_ptr(),
3201        &lwork,
3202        iwork.as_mut_ptr(),
3203        &liwork,
3204        bwork.as_mut_ptr(),
3205        info,
3206    )
3207}
3208
3209#[inline]
3210pub unsafe fn sgeesx(
3211    jobvs: u8,
3212    sort: u8,
3213    select: Select2F32,
3214    sense: u8,
3215    n: i32,
3216    a: &mut [f32],
3217    lda: i32,
3218    sdim: &mut i32,
3219    wr: &mut [f32],
3220    wi: &mut [f32],
3221    vs: &mut [f32],
3222    ldvs: i32,
3223    rconde: &mut [f32],
3224    rcondv: &mut [f32],
3225    work: &mut [f32],
3226    lwork: i32,
3227    iwork: &mut [i32],
3228    liwork: i32,
3229    bwork: &mut [i32],
3230    info: &mut i32,
3231) {
3232    ffi::sgeesx_(
3233        &(jobvs as c_char),
3234        &(sort as c_char),
3235        transmute(select),
3236        &(sense as c_char),
3237        &n,
3238        a.as_mut_ptr(),
3239        &lda,
3240        sdim,
3241        wr.as_mut_ptr(),
3242        wi.as_mut_ptr(),
3243        vs.as_mut_ptr(),
3244        &ldvs,
3245        rconde.as_mut_ptr(),
3246        rcondv.as_mut_ptr(),
3247        work.as_mut_ptr(),
3248        &lwork,
3249        iwork.as_mut_ptr(),
3250        &liwork,
3251        bwork.as_mut_ptr(),
3252        info,
3253    )
3254}
3255
3256#[inline]
3257pub unsafe fn zgeesx(
3258    jobvs: u8,
3259    sort: u8,
3260    select: Select1C64,
3261    sense: u8,
3262    n: i32,
3263    a: &mut [c64],
3264    lda: i32,
3265    sdim: &mut i32,
3266    w: &mut [c64],
3267    vs: &mut [c64],
3268    ldvs: i32,
3269    rconde: &mut [f64],
3270    rcondv: &mut [f64],
3271    work: &mut [c64],
3272    lwork: i32,
3273    rwork: &mut [f64],
3274    bwork: &mut [i32],
3275    info: &mut i32,
3276) {
3277    ffi::zgeesx_(
3278        &(jobvs as c_char),
3279        &(sort as c_char),
3280        transmute(select),
3281        &(sense as c_char),
3282        &n,
3283        a.as_mut_ptr() as *mut _,
3284        &lda,
3285        sdim,
3286        w.as_mut_ptr() as *mut _,
3287        vs.as_mut_ptr() as *mut _,
3288        &ldvs,
3289        rconde.as_mut_ptr(),
3290        rcondv.as_mut_ptr(),
3291        work.as_mut_ptr() as *mut _,
3292        &lwork,
3293        rwork.as_mut_ptr(),
3294        bwork.as_mut_ptr(),
3295        info,
3296    )
3297}
3298
3299#[inline]
3300pub unsafe fn cgeev(
3301    jobvl: u8,
3302    jobvr: u8,
3303    n: i32,
3304    a: &mut [c32],
3305    lda: i32,
3306    w: &mut [c32],
3307    vl: &mut [c32],
3308    ldvl: i32,
3309    vr: &mut [c32],
3310    ldvr: i32,
3311    work: &mut [c32],
3312    lwork: i32,
3313    rwork: &mut [f32],
3314    info: &mut i32,
3315) {
3316    ffi::cgeev_(
3317        &(jobvl as c_char),
3318        &(jobvr as c_char),
3319        &n,
3320        a.as_mut_ptr() as *mut _,
3321        &lda,
3322        w.as_mut_ptr() as *mut _,
3323        vl.as_mut_ptr() as *mut _,
3324        &ldvl,
3325        vr.as_mut_ptr() as *mut _,
3326        &ldvr,
3327        work.as_mut_ptr() as *mut _,
3328        &lwork,
3329        rwork.as_mut_ptr(),
3330        info,
3331    )
3332}
3333
3334#[inline]
3335pub unsafe fn dgeev(
3336    jobvl: u8,
3337    jobvr: u8,
3338    n: i32,
3339    a: &mut [f64],
3340    lda: i32,
3341    wr: &mut [f64],
3342    wi: &mut [f64],
3343    vl: &mut [f64],
3344    ldvl: i32,
3345    vr: &mut [f64],
3346    ldvr: i32,
3347    work: &mut [f64],
3348    lwork: i32,
3349    info: &mut i32,
3350) {
3351    ffi::dgeev_(
3352        &(jobvl as c_char),
3353        &(jobvr as c_char),
3354        &n,
3355        a.as_mut_ptr(),
3356        &lda,
3357        wr.as_mut_ptr(),
3358        wi.as_mut_ptr(),
3359        vl.as_mut_ptr(),
3360        &ldvl,
3361        vr.as_mut_ptr(),
3362        &ldvr,
3363        work.as_mut_ptr(),
3364        &lwork,
3365        info,
3366    )
3367}
3368
3369#[inline]
3370pub unsafe fn sgeev(
3371    jobvl: u8,
3372    jobvr: u8,
3373    n: i32,
3374    a: &mut [f32],
3375    lda: i32,
3376    wr: &mut [f32],
3377    wi: &mut [f32],
3378    vl: &mut [f32],
3379    ldvl: i32,
3380    vr: &mut [f32],
3381    ldvr: i32,
3382    work: &mut [f32],
3383    lwork: i32,
3384    info: &mut i32,
3385) {
3386    ffi::sgeev_(
3387        &(jobvl as c_char),
3388        &(jobvr as c_char),
3389        &n,
3390        a.as_mut_ptr(),
3391        &lda,
3392        wr.as_mut_ptr(),
3393        wi.as_mut_ptr(),
3394        vl.as_mut_ptr(),
3395        &ldvl,
3396        vr.as_mut_ptr(),
3397        &ldvr,
3398        work.as_mut_ptr(),
3399        &lwork,
3400        info,
3401    )
3402}
3403
3404#[inline]
3405pub unsafe fn zgeev(
3406    jobvl: u8,
3407    jobvr: u8,
3408    n: i32,
3409    a: &mut [c64],
3410    lda: i32,
3411    w: &mut [c64],
3412    vl: &mut [c64],
3413    ldvl: i32,
3414    vr: &mut [c64],
3415    ldvr: i32,
3416    work: &mut [c64],
3417    lwork: i32,
3418    rwork: &mut [f64],
3419    info: &mut i32,
3420) {
3421    ffi::zgeev_(
3422        &(jobvl as c_char),
3423        &(jobvr as c_char),
3424        &n,
3425        a.as_mut_ptr() as *mut _,
3426        &lda,
3427        w.as_mut_ptr() as *mut _,
3428        vl.as_mut_ptr() as *mut _,
3429        &ldvl,
3430        vr.as_mut_ptr() as *mut _,
3431        &ldvr,
3432        work.as_mut_ptr() as *mut _,
3433        &lwork,
3434        rwork.as_mut_ptr(),
3435        info,
3436    )
3437}
3438
3439#[inline]
3440pub unsafe fn cgeevx(
3441    balanc: u8,
3442    jobvl: u8,
3443    jobvr: u8,
3444    sense: u8,
3445    n: i32,
3446    a: &mut [c32],
3447    lda: i32,
3448    w: &mut [c32],
3449    vl: &mut [c32],
3450    ldvl: i32,
3451    vr: &mut [c32],
3452    ldvr: i32,
3453    ilo: &mut i32,
3454    ihi: &mut i32,
3455    scale: &mut [f32],
3456    abnrm: &mut f32,
3457    rconde: &mut [f32],
3458    rcondv: &mut [f32],
3459    work: &mut [c32],
3460    lwork: i32,
3461    rwork: &mut [f32],
3462    info: &mut i32,
3463) {
3464    ffi::cgeevx_(
3465        &(balanc as c_char),
3466        &(jobvl as c_char),
3467        &(jobvr as c_char),
3468        &(sense as c_char),
3469        &n,
3470        a.as_mut_ptr() as *mut _,
3471        &lda,
3472        w.as_mut_ptr() as *mut _,
3473        vl.as_mut_ptr() as *mut _,
3474        &ldvl,
3475        vr.as_mut_ptr() as *mut _,
3476        &ldvr,
3477        ilo,
3478        ihi,
3479        scale.as_mut_ptr(),
3480        abnrm,
3481        rconde.as_mut_ptr(),
3482        rcondv.as_mut_ptr(),
3483        work.as_mut_ptr() as *mut _,
3484        &lwork,
3485        rwork.as_mut_ptr(),
3486        info,
3487    )
3488}
3489
3490#[inline]
3491pub unsafe fn dgeevx(
3492    balanc: u8,
3493    jobvl: u8,
3494    jobvr: u8,
3495    sense: u8,
3496    n: i32,
3497    a: &mut [f64],
3498    lda: i32,
3499    wr: &mut [f64],
3500    wi: &mut [f64],
3501    vl: &mut [f64],
3502    ldvl: i32,
3503    vr: &mut [f64],
3504    ldvr: i32,
3505    ilo: &mut i32,
3506    ihi: &mut i32,
3507    scale: &mut [f64],
3508    abnrm: &mut f64,
3509    rconde: &mut [f64],
3510    rcondv: &mut [f64],
3511    work: &mut [f64],
3512    lwork: i32,
3513    iwork: &mut [i32],
3514    info: &mut i32,
3515) {
3516    ffi::dgeevx_(
3517        &(balanc as c_char),
3518        &(jobvl as c_char),
3519        &(jobvr as c_char),
3520        &(sense as c_char),
3521        &n,
3522        a.as_mut_ptr(),
3523        &lda,
3524        wr.as_mut_ptr(),
3525        wi.as_mut_ptr(),
3526        vl.as_mut_ptr(),
3527        &ldvl,
3528        vr.as_mut_ptr(),
3529        &ldvr,
3530        ilo,
3531        ihi,
3532        scale.as_mut_ptr(),
3533        abnrm,
3534        rconde.as_mut_ptr(),
3535        rcondv.as_mut_ptr(),
3536        work.as_mut_ptr(),
3537        &lwork,
3538        iwork.as_mut_ptr(),
3539        info,
3540    )
3541}
3542
3543#[inline]
3544pub unsafe fn sgeevx(
3545    balanc: u8,
3546    jobvl: u8,
3547    jobvr: u8,
3548    sense: u8,
3549    n: i32,
3550    a: &mut [f32],
3551    lda: i32,
3552    wr: &mut [f32],
3553    wi: &mut [f32],
3554    vl: &mut [f32],
3555    ldvl: i32,
3556    vr: &mut [f32],
3557    ldvr: i32,
3558    ilo: &mut i32,
3559    ihi: &mut i32,
3560    scale: &mut [f32],
3561    abnrm: &mut f32,
3562    rconde: &mut [f32],
3563    rcondv: &mut [f32],
3564    work: &mut [f32],
3565    lwork: i32,
3566    iwork: &mut [i32],
3567    info: &mut i32,
3568) {
3569    ffi::sgeevx_(
3570        &(balanc as c_char),
3571        &(jobvl as c_char),
3572        &(jobvr as c_char),
3573        &(sense as c_char),
3574        &n,
3575        a.as_mut_ptr(),
3576        &lda,
3577        wr.as_mut_ptr(),
3578        wi.as_mut_ptr(),
3579        vl.as_mut_ptr(),
3580        &ldvl,
3581        vr.as_mut_ptr(),
3582        &ldvr,
3583        ilo,
3584        ihi,
3585        scale.as_mut_ptr(),
3586        abnrm,
3587        rconde.as_mut_ptr(),
3588        rcondv.as_mut_ptr(),
3589        work.as_mut_ptr(),
3590        &lwork,
3591        iwork.as_mut_ptr(),
3592        info,
3593    )
3594}
3595
3596#[inline]
3597pub unsafe fn zgeevx(
3598    balanc: u8,
3599    jobvl: u8,
3600    jobvr: u8,
3601    sense: u8,
3602    n: i32,
3603    a: &mut [c64],
3604    lda: i32,
3605    w: &mut [c64],
3606    vl: &mut [c64],
3607    ldvl: i32,
3608    vr: &mut [c64],
3609    ldvr: i32,
3610    ilo: &mut i32,
3611    ihi: &mut i32,
3612    scale: &mut [f64],
3613    abnrm: &mut f64,
3614    rconde: &mut [f64],
3615    rcondv: &mut [f64],
3616    work: &mut [c64],
3617    lwork: i32,
3618    rwork: &mut [f64],
3619    info: &mut i32,
3620) {
3621    ffi::zgeevx_(
3622        &(balanc as c_char),
3623        &(jobvl as c_char),
3624        &(jobvr as c_char),
3625        &(sense as c_char),
3626        &n,
3627        a.as_mut_ptr() as *mut _,
3628        &lda,
3629        w.as_mut_ptr() as *mut _,
3630        vl.as_mut_ptr() as *mut _,
3631        &ldvl,
3632        vr.as_mut_ptr() as *mut _,
3633        &ldvr,
3634        ilo,
3635        ihi,
3636        scale.as_mut_ptr(),
3637        abnrm,
3638        rconde.as_mut_ptr(),
3639        rcondv.as_mut_ptr(),
3640        work.as_mut_ptr() as *mut _,
3641        &lwork,
3642        rwork.as_mut_ptr(),
3643        info,
3644    )
3645}
3646
3647#[inline]
3648pub unsafe fn cgehrd(
3649    n: i32,
3650    ilo: i32,
3651    ihi: i32,
3652    a: &mut [c32],
3653    lda: i32,
3654    tau: &mut [c32],
3655    work: &mut [c32],
3656    lwork: i32,
3657    info: &mut i32,
3658) {
3659    ffi::cgehrd_(
3660        &n,
3661        &ilo,
3662        &ihi,
3663        a.as_mut_ptr() as *mut _,
3664        &lda,
3665        tau.as_mut_ptr() as *mut _,
3666        work.as_mut_ptr() as *mut _,
3667        &lwork,
3668        info,
3669    )
3670}
3671
3672#[inline]
3673pub unsafe fn dgehrd(
3674    n: i32,
3675    ilo: i32,
3676    ihi: i32,
3677    a: &mut [f64],
3678    lda: i32,
3679    tau: &mut [f64],
3680    work: &mut [f64],
3681    lwork: i32,
3682    info: &mut i32,
3683) {
3684    ffi::dgehrd_(
3685        &n,
3686        &ilo,
3687        &ihi,
3688        a.as_mut_ptr(),
3689        &lda,
3690        tau.as_mut_ptr(),
3691        work.as_mut_ptr(),
3692        &lwork,
3693        info,
3694    )
3695}
3696
3697#[inline]
3698pub unsafe fn sgehrd(
3699    n: i32,
3700    ilo: i32,
3701    ihi: i32,
3702    a: &mut [f32],
3703    lda: i32,
3704    tau: &mut [f32],
3705    work: &mut [f32],
3706    lwork: i32,
3707    info: &mut i32,
3708) {
3709    ffi::sgehrd_(
3710        &n,
3711        &ilo,
3712        &ihi,
3713        a.as_mut_ptr(),
3714        &lda,
3715        tau.as_mut_ptr(),
3716        work.as_mut_ptr(),
3717        &lwork,
3718        info,
3719    )
3720}
3721
3722#[inline]
3723pub unsafe fn zgehrd(
3724    n: i32,
3725    ilo: i32,
3726    ihi: i32,
3727    a: &mut [c64],
3728    lda: i32,
3729    tau: &mut [c64],
3730    work: &mut [c64],
3731    lwork: i32,
3732    info: &mut i32,
3733) {
3734    ffi::zgehrd_(
3735        &n,
3736        &ilo,
3737        &ihi,
3738        a.as_mut_ptr() as *mut _,
3739        &lda,
3740        tau.as_mut_ptr() as *mut _,
3741        work.as_mut_ptr() as *mut _,
3742        &lwork,
3743        info,
3744    )
3745}
3746
3747#[inline]
3748pub unsafe fn cgejsv(
3749    joba: u8,
3750    jobu: u8,
3751    jobv: u8,
3752    jobr: u8,
3753    jobt: u8,
3754    jobp: u8,
3755    m: i32,
3756    n: i32,
3757    a: &mut [c32],
3758    lda: i32,
3759    sva: &mut [f32],
3760    u: &mut [c32],
3761    ldu: i32,
3762    v: &mut [c32],
3763    ldv: i32,
3764    cwork: &mut [c32],
3765    lwork: i32,
3766    rwork: &mut [f32],
3767    lrwork: i32,
3768    iwork: &mut [i32],
3769    info: &mut i32,
3770) {
3771    ffi::cgejsv_(
3772        &(joba as c_char),
3773        &(jobu as c_char),
3774        &(jobv as c_char),
3775        &(jobr as c_char),
3776        &(jobt as c_char),
3777        &(jobp as c_char),
3778        &m,
3779        &n,
3780        a.as_mut_ptr() as *mut _,
3781        &lda,
3782        sva.as_mut_ptr(),
3783        u.as_mut_ptr() as *mut _,
3784        &ldu,
3785        v.as_mut_ptr() as *mut _,
3786        &ldv,
3787        cwork.as_mut_ptr() as *mut _,
3788        &lwork,
3789        rwork.as_mut_ptr(),
3790        &lrwork,
3791        iwork.as_mut_ptr(),
3792        info,
3793    )
3794}
3795
3796#[inline]
3797pub unsafe fn dgejsv(
3798    joba: u8,
3799    jobu: u8,
3800    jobv: u8,
3801    jobr: u8,
3802    jobt: u8,
3803    jobp: u8,
3804    m: i32,
3805    n: i32,
3806    a: &mut [f64],
3807    lda: i32,
3808    sva: &mut [f64],
3809    u: &mut [f64],
3810    ldu: i32,
3811    v: &mut [f64],
3812    ldv: i32,
3813    work: &mut [f64],
3814    lwork: i32,
3815    iwork: &mut [i32],
3816    info: &mut i32,
3817) {
3818    ffi::dgejsv_(
3819        &(joba as c_char),
3820        &(jobu as c_char),
3821        &(jobv as c_char),
3822        &(jobr as c_char),
3823        &(jobt as c_char),
3824        &(jobp as c_char),
3825        &m,
3826        &n,
3827        a.as_mut_ptr(),
3828        &lda,
3829        sva.as_mut_ptr(),
3830        u.as_mut_ptr(),
3831        &ldu,
3832        v.as_mut_ptr(),
3833        &ldv,
3834        work.as_mut_ptr(),
3835        &lwork,
3836        iwork.as_mut_ptr(),
3837        info,
3838    )
3839}
3840
3841#[inline]
3842pub unsafe fn sgejsv(
3843    joba: u8,
3844    jobu: u8,
3845    jobv: u8,
3846    jobr: u8,
3847    jobt: u8,
3848    jobp: u8,
3849    m: i32,
3850    n: i32,
3851    a: &mut [f32],
3852    lda: i32,
3853    sva: &mut [f32],
3854    u: &mut [f32],
3855    ldu: i32,
3856    v: &mut [f32],
3857    ldv: i32,
3858    work: &mut [f32],
3859    lwork: i32,
3860    iwork: &mut [i32],
3861    info: &mut i32,
3862) {
3863    ffi::sgejsv_(
3864        &(joba as c_char),
3865        &(jobu as c_char),
3866        &(jobv as c_char),
3867        &(jobr as c_char),
3868        &(jobt as c_char),
3869        &(jobp as c_char),
3870        &m,
3871        &n,
3872        a.as_mut_ptr(),
3873        &lda,
3874        sva.as_mut_ptr(),
3875        u.as_mut_ptr(),
3876        &ldu,
3877        v.as_mut_ptr(),
3878        &ldv,
3879        work.as_mut_ptr(),
3880        &lwork,
3881        iwork.as_mut_ptr(),
3882        info,
3883    )
3884}
3885
3886#[inline]
3887pub unsafe fn zgejsv(
3888    joba: u8,
3889    jobu: u8,
3890    jobv: u8,
3891    jobr: u8,
3892    jobt: u8,
3893    jobp: u8,
3894    m: i32,
3895    n: i32,
3896    a: &mut [c64],
3897    lda: i32,
3898    sva: &mut [f64],
3899    u: &mut [c64],
3900    ldu: i32,
3901    v: &mut [c64],
3902    ldv: i32,
3903    cwork: &mut [c64],
3904    lwork: i32,
3905    rwork: &mut [f64],
3906    lrwork: i32,
3907    iwork: &mut [i32],
3908    info: &mut i32,
3909) {
3910    ffi::zgejsv_(
3911        &(joba as c_char),
3912        &(jobu as c_char),
3913        &(jobv as c_char),
3914        &(jobr as c_char),
3915        &(jobt as c_char),
3916        &(jobp as c_char),
3917        &m,
3918        &n,
3919        a.as_mut_ptr() as *mut _,
3920        &lda,
3921        sva.as_mut_ptr(),
3922        u.as_mut_ptr() as *mut _,
3923        &ldu,
3924        v.as_mut_ptr() as *mut _,
3925        &ldv,
3926        cwork.as_mut_ptr() as *mut _,
3927        &lwork,
3928        rwork.as_mut_ptr(),
3929        &lrwork,
3930        iwork.as_mut_ptr(),
3931        info,
3932    )
3933}
3934
3935#[inline]
3936pub unsafe fn cgelq(
3937    m: i32,
3938    n: i32,
3939    a: &mut [c32],
3940    lda: i32,
3941    t: &mut [c32],
3942    tsize: &[i32],
3943    work: &mut [c32],
3944    lwork: i32,
3945    info: &mut i32,
3946) {
3947    ffi::cgelq_(
3948        &m,
3949        &n,
3950        a.as_mut_ptr() as *mut _,
3951        &lda,
3952        t.as_mut_ptr() as *mut _,
3953        tsize.as_ptr(),
3954        work.as_mut_ptr() as *mut _,
3955        &lwork,
3956        info,
3957    )
3958}
3959
3960#[inline]
3961pub unsafe fn dgelq(
3962    m: i32,
3963    n: i32,
3964    a: &mut [f64],
3965    lda: i32,
3966    t: &mut [f64],
3967    tsize: &[i32],
3968    work: &mut [f64],
3969    lwork: i32,
3970    info: &mut i32,
3971) {
3972    ffi::dgelq_(
3973        &m,
3974        &n,
3975        a.as_mut_ptr(),
3976        &lda,
3977        t.as_mut_ptr(),
3978        tsize.as_ptr(),
3979        work.as_mut_ptr(),
3980        &lwork,
3981        info,
3982    )
3983}
3984
3985#[inline]
3986pub unsafe fn sgelq(
3987    m: i32,
3988    n: i32,
3989    a: &mut [f32],
3990    lda: i32,
3991    t: &mut [f32],
3992    tsize: &[i32],
3993    work: &mut [f32],
3994    lwork: i32,
3995    info: &mut i32,
3996) {
3997    ffi::sgelq_(
3998        &m,
3999        &n,
4000        a.as_mut_ptr(),
4001        &lda,
4002        t.as_mut_ptr(),
4003        tsize.as_ptr(),
4004        work.as_mut_ptr(),
4005        &lwork,
4006        info,
4007    )
4008}
4009
4010#[inline]
4011pub unsafe fn zgelq(
4012    m: i32,
4013    n: i32,
4014    a: &mut [c64],
4015    lda: i32,
4016    t: &mut [c64],
4017    tsize: &[i32],
4018    work: &mut [c64],
4019    lwork: i32,
4020    info: &mut i32,
4021) {
4022    ffi::zgelq_(
4023        &m,
4024        &n,
4025        a.as_mut_ptr() as *mut _,
4026        &lda,
4027        t.as_mut_ptr() as *mut _,
4028        tsize.as_ptr(),
4029        work.as_mut_ptr() as *mut _,
4030        &lwork,
4031        info,
4032    )
4033}
4034
4035#[inline]
4036pub unsafe fn cgelq2(
4037    m: i32,
4038    n: i32,
4039    a: &mut [c32],
4040    lda: i32,
4041    tau: &mut [c32],
4042    work: &mut [c32],
4043    info: &mut i32,
4044) {
4045    ffi::cgelq2_(
4046        &m,
4047        &n,
4048        a.as_mut_ptr() as *mut _,
4049        &lda,
4050        tau.as_mut_ptr() as *mut _,
4051        work.as_mut_ptr() as *mut _,
4052        info,
4053    )
4054}
4055
4056#[inline]
4057pub unsafe fn dgelq2(
4058    m: i32,
4059    n: i32,
4060    a: &mut [f64],
4061    lda: i32,
4062    tau: &mut [f64],
4063    work: &mut [f64],
4064    info: &mut i32,
4065) {
4066    ffi::dgelq2_(
4067        &m,
4068        &n,
4069        a.as_mut_ptr(),
4070        &lda,
4071        tau.as_mut_ptr(),
4072        work.as_mut_ptr(),
4073        info,
4074    )
4075}
4076
4077#[inline]
4078pub unsafe fn sgelq2(
4079    m: i32,
4080    n: i32,
4081    a: &mut [f32],
4082    lda: i32,
4083    tau: &mut [f32],
4084    work: &mut [f32],
4085    info: &mut i32,
4086) {
4087    ffi::sgelq2_(
4088        &m,
4089        &n,
4090        a.as_mut_ptr(),
4091        &lda,
4092        tau.as_mut_ptr(),
4093        work.as_mut_ptr(),
4094        info,
4095    )
4096}
4097
4098#[inline]
4099pub unsafe fn zgelq2(
4100    m: i32,
4101    n: i32,
4102    a: &mut [c64],
4103    lda: i32,
4104    tau: &mut [c64],
4105    work: &mut [c64],
4106    info: &mut i32,
4107) {
4108    ffi::zgelq2_(
4109        &m,
4110        &n,
4111        a.as_mut_ptr() as *mut _,
4112        &lda,
4113        tau.as_mut_ptr() as *mut _,
4114        work.as_mut_ptr() as *mut _,
4115        info,
4116    )
4117}
4118
4119#[inline]
4120pub unsafe fn cgelqf(
4121    m: i32,
4122    n: i32,
4123    a: &mut [c32],
4124    lda: i32,
4125    tau: &mut [c32],
4126    work: &mut [c32],
4127    lwork: i32,
4128    info: &mut i32,
4129) {
4130    ffi::cgelqf_(
4131        &m,
4132        &n,
4133        a.as_mut_ptr() as *mut _,
4134        &lda,
4135        tau.as_mut_ptr() as *mut _,
4136        work.as_mut_ptr() as *mut _,
4137        &lwork,
4138        info,
4139    )
4140}
4141
4142#[inline]
4143pub unsafe fn dgelqf(
4144    m: i32,
4145    n: i32,
4146    a: &mut [f64],
4147    lda: i32,
4148    tau: &mut [f64],
4149    work: &mut [f64],
4150    lwork: i32,
4151    info: &mut i32,
4152) {
4153    ffi::dgelqf_(
4154        &m,
4155        &n,
4156        a.as_mut_ptr(),
4157        &lda,
4158        tau.as_mut_ptr(),
4159        work.as_mut_ptr(),
4160        &lwork,
4161        info,
4162    )
4163}
4164
4165#[inline]
4166pub unsafe fn sgelqf(
4167    m: i32,
4168    n: i32,
4169    a: &mut [f32],
4170    lda: i32,
4171    tau: &mut [f32],
4172    work: &mut [f32],
4173    lwork: i32,
4174    info: &mut i32,
4175) {
4176    ffi::sgelqf_(
4177        &m,
4178        &n,
4179        a.as_mut_ptr(),
4180        &lda,
4181        tau.as_mut_ptr(),
4182        work.as_mut_ptr(),
4183        &lwork,
4184        info,
4185    )
4186}
4187
4188#[inline]
4189pub unsafe fn zgelqf(
4190    m: i32,
4191    n: i32,
4192    a: &mut [c64],
4193    lda: i32,
4194    tau: &mut [c64],
4195    work: &mut [c64],
4196    lwork: i32,
4197    info: &mut i32,
4198) {
4199    ffi::zgelqf_(
4200        &m,
4201        &n,
4202        a.as_mut_ptr() as *mut _,
4203        &lda,
4204        tau.as_mut_ptr() as *mut _,
4205        work.as_mut_ptr() as *mut _,
4206        &lwork,
4207        info,
4208    )
4209}
4210
4211#[inline]
4212pub unsafe fn cgels(
4213    trans: u8,
4214    m: i32,
4215    n: i32,
4216    nrhs: i32,
4217    a: &mut [c32],
4218    lda: i32,
4219    b: &mut [c32],
4220    ldb: i32,
4221    work: &mut [c32],
4222    lwork: i32,
4223    info: &mut i32,
4224) {
4225    ffi::cgels_(
4226        &(trans as c_char),
4227        &m,
4228        &n,
4229        &nrhs,
4230        a.as_mut_ptr() as *mut _,
4231        &lda,
4232        b.as_mut_ptr() as *mut _,
4233        &ldb,
4234        work.as_mut_ptr() as *mut _,
4235        &lwork,
4236        info,
4237    )
4238}
4239
4240#[inline]
4241pub unsafe fn dgels(
4242    trans: u8,
4243    m: i32,
4244    n: i32,
4245    nrhs: i32,
4246    a: &mut [f64],
4247    lda: i32,
4248    b: &mut [f64],
4249    ldb: i32,
4250    work: &mut [f64],
4251    lwork: i32,
4252    info: &mut i32,
4253    arg1: size_t,
4254) {
4255    ffi::dgels_(
4256        &(trans as c_char),
4257        &m,
4258        &n,
4259        &nrhs,
4260        a.as_mut_ptr(),
4261        &lda,
4262        b.as_mut_ptr(),
4263        &ldb,
4264        work.as_mut_ptr(),
4265        &lwork,
4266        info,
4267        arg1,
4268    )
4269}
4270
4271#[inline]
4272pub unsafe fn sgels(
4273    trans: u8,
4274    m: i32,
4275    n: i32,
4276    nrhs: i32,
4277    a: &mut [f32],
4278    lda: i32,
4279    b: &mut [f32],
4280    ldb: i32,
4281    work: &mut [f32],
4282    lwork: i32,
4283    info: &mut i32,
4284) {
4285    ffi::sgels_(
4286        &(trans as c_char),
4287        &m,
4288        &n,
4289        &nrhs,
4290        a.as_mut_ptr(),
4291        &lda,
4292        b.as_mut_ptr(),
4293        &ldb,
4294        work.as_mut_ptr(),
4295        &lwork,
4296        info,
4297    )
4298}
4299
4300#[inline]
4301pub unsafe fn zgels(
4302    trans: u8,
4303    m: i32,
4304    n: i32,
4305    nrhs: i32,
4306    a: &mut [c64],
4307    lda: i32,
4308    b: &mut [c64],
4309    ldb: i32,
4310    work: &mut [c64],
4311    lwork: i32,
4312    info: &mut i32,
4313) {
4314    ffi::zgels_(
4315        &(trans as c_char),
4316        &m,
4317        &n,
4318        &nrhs,
4319        a.as_mut_ptr() as *mut _,
4320        &lda,
4321        b.as_mut_ptr() as *mut _,
4322        &ldb,
4323        work.as_mut_ptr() as *mut _,
4324        &lwork,
4325        info,
4326    )
4327}
4328
4329#[inline]
4330pub unsafe fn cgelsd(
4331    m: i32,
4332    n: i32,
4333    nrhs: i32,
4334    a: &mut [c32],
4335    lda: i32,
4336    b: &mut [c32],
4337    ldb: i32,
4338    s: &mut [f32],
4339    rcond: f32,
4340    rank: &mut i32,
4341    work: &mut [c32],
4342    lwork: i32,
4343    rwork: &mut [f32],
4344    iwork: &mut [i32],
4345    info: &mut i32,
4346) {
4347    ffi::cgelsd_(
4348        &m,
4349        &n,
4350        &nrhs,
4351        a.as_mut_ptr() as *mut _,
4352        &lda,
4353        b.as_mut_ptr() as *mut _,
4354        &ldb,
4355        s.as_mut_ptr(),
4356        &rcond,
4357        rank,
4358        work.as_mut_ptr() as *mut _,
4359        &lwork,
4360        rwork.as_mut_ptr(),
4361        iwork.as_mut_ptr(),
4362        info,
4363    )
4364}
4365
4366#[inline]
4367pub unsafe fn dgelsd(
4368    m: i32,
4369    n: i32,
4370    nrhs: i32,
4371    a: &mut [f64],
4372    lda: i32,
4373    b: &mut [f64],
4374    ldb: i32,
4375    s: &mut [f64],
4376    rcond: f64,
4377    rank: &mut i32,
4378    work: &mut [f64],
4379    lwork: i32,
4380    iwork: &mut [i32],
4381    info: &mut i32,
4382) {
4383    ffi::dgelsd_(
4384        &m,
4385        &n,
4386        &nrhs,
4387        a.as_mut_ptr(),
4388        &lda,
4389        b.as_mut_ptr(),
4390        &ldb,
4391        s.as_mut_ptr(),
4392        &rcond,
4393        rank,
4394        work.as_mut_ptr(),
4395        &lwork,
4396        iwork.as_mut_ptr(),
4397        info,
4398    )
4399}
4400
4401#[inline]
4402pub unsafe fn sgelsd(
4403    m: i32,
4404    n: i32,
4405    nrhs: i32,
4406    a: &mut [f32],
4407    lda: i32,
4408    b: &mut [f32],
4409    ldb: i32,
4410    s: &mut [f32],
4411    rcond: f32,
4412    rank: &mut i32,
4413    work: &mut [f32],
4414    lwork: i32,
4415    iwork: &mut [i32],
4416    info: &mut i32,
4417) {
4418    ffi::sgelsd_(
4419        &m,
4420        &n,
4421        &nrhs,
4422        a.as_mut_ptr(),
4423        &lda,
4424        b.as_mut_ptr(),
4425        &ldb,
4426        s.as_mut_ptr(),
4427        &rcond,
4428        rank,
4429        work.as_mut_ptr(),
4430        &lwork,
4431        iwork.as_mut_ptr(),
4432        info,
4433    )
4434}
4435
4436#[inline]
4437pub unsafe fn zgelsd(
4438    m: i32,
4439    n: i32,
4440    nrhs: i32,
4441    a: &mut [c64],
4442    lda: i32,
4443    b: &mut [c64],
4444    ldb: i32,
4445    s: &mut [f64],
4446    rcond: f64,
4447    rank: &mut i32,
4448    work: &mut [c64],
4449    lwork: i32,
4450    rwork: &mut [f64],
4451    iwork: &mut [i32],
4452    info: &mut i32,
4453) {
4454    ffi::zgelsd_(
4455        &m,
4456        &n,
4457        &nrhs,
4458        a.as_mut_ptr() as *mut _,
4459        &lda,
4460        b.as_mut_ptr() as *mut _,
4461        &ldb,
4462        s.as_mut_ptr(),
4463        &rcond,
4464        rank,
4465        work.as_mut_ptr() as *mut _,
4466        &lwork,
4467        rwork.as_mut_ptr(),
4468        iwork.as_mut_ptr(),
4469        info,
4470    )
4471}
4472
4473#[inline]
4474pub unsafe fn cgelss(
4475    m: i32,
4476    n: i32,
4477    nrhs: i32,
4478    a: &mut [c32],
4479    lda: i32,
4480    b: &mut [c32],
4481    ldb: i32,
4482    s: &mut [f32],
4483    rcond: f32,
4484    rank: &mut i32,
4485    work: &mut [c32],
4486    lwork: i32,
4487    rwork: &mut [f32],
4488    info: &mut i32,
4489) {
4490    ffi::cgelss_(
4491        &m,
4492        &n,
4493        &nrhs,
4494        a.as_mut_ptr() as *mut _,
4495        &lda,
4496        b.as_mut_ptr() as *mut _,
4497        &ldb,
4498        s.as_mut_ptr(),
4499        &rcond,
4500        rank,
4501        work.as_mut_ptr() as *mut _,
4502        &lwork,
4503        rwork.as_mut_ptr(),
4504        info,
4505    )
4506}
4507
4508#[inline]
4509pub unsafe fn dgelss(
4510    m: i32,
4511    n: i32,
4512    nrhs: i32,
4513    a: &mut [f64],
4514    lda: i32,
4515    b: &mut [f64],
4516    ldb: i32,
4517    s: &mut [f64],
4518    rcond: f64,
4519    rank: &mut i32,
4520    work: &mut [f64],
4521    lwork: i32,
4522    info: &mut i32,
4523) {
4524    ffi::dgelss_(
4525        &m,
4526        &n,
4527        &nrhs,
4528        a.as_mut_ptr(),
4529        &lda,
4530        b.as_mut_ptr(),
4531        &ldb,
4532        s.as_mut_ptr(),
4533        &rcond,
4534        rank,
4535        work.as_mut_ptr(),
4536        &lwork,
4537        info,
4538    )
4539}
4540
4541#[inline]
4542pub unsafe fn sgelss(
4543    m: i32,
4544    n: i32,
4545    nrhs: i32,
4546    a: &mut [f32],
4547    lda: i32,
4548    b: &mut [f32],
4549    ldb: i32,
4550    s: &mut [f32],
4551    rcond: f32,
4552    rank: &mut i32,
4553    work: &mut [f32],
4554    lwork: i32,
4555    info: &mut i32,
4556) {
4557    ffi::sgelss_(
4558        &m,
4559        &n,
4560        &nrhs,
4561        a.as_mut_ptr(),
4562        &lda,
4563        b.as_mut_ptr(),
4564        &ldb,
4565        s.as_mut_ptr(),
4566        &rcond,
4567        rank,
4568        work.as_mut_ptr(),
4569        &lwork,
4570        info,
4571    )
4572}
4573
4574#[inline]
4575pub unsafe fn zgelss(
4576    m: i32,
4577    n: i32,
4578    nrhs: i32,
4579    a: &mut [c64],
4580    lda: i32,
4581    b: &mut [c64],
4582    ldb: i32,
4583    s: &mut [f64],
4584    rcond: f64,
4585    rank: &mut i32,
4586    work: &mut [c64],
4587    lwork: i32,
4588    rwork: &mut [f64],
4589    info: &mut i32,
4590) {
4591    ffi::zgelss_(
4592        &m,
4593        &n,
4594        &nrhs,
4595        a.as_mut_ptr() as *mut _,
4596        &lda,
4597        b.as_mut_ptr() as *mut _,
4598        &ldb,
4599        s.as_mut_ptr(),
4600        &rcond,
4601        rank,
4602        work.as_mut_ptr() as *mut _,
4603        &lwork,
4604        rwork.as_mut_ptr(),
4605        info,
4606    )
4607}
4608
4609#[inline]
4610pub unsafe fn cgelsy(
4611    m: i32,
4612    n: i32,
4613    nrhs: i32,
4614    a: &mut [c32],
4615    lda: i32,
4616    b: &mut [c32],
4617    ldb: i32,
4618    jpvt: &mut [i32],
4619    rcond: f32,
4620    rank: &mut i32,
4621    work: &mut [c32],
4622    lwork: i32,
4623    rwork: &mut [f32],
4624    info: &mut i32,
4625) {
4626    ffi::cgelsy_(
4627        &m,
4628        &n,
4629        &nrhs,
4630        a.as_mut_ptr() as *mut _,
4631        &lda,
4632        b.as_mut_ptr() as *mut _,
4633        &ldb,
4634        jpvt.as_mut_ptr(),
4635        &rcond,
4636        rank,
4637        work.as_mut_ptr() as *mut _,
4638        &lwork,
4639        rwork.as_mut_ptr(),
4640        info,
4641    )
4642}
4643
4644#[inline]
4645pub unsafe fn dgelsy(
4646    m: i32,
4647    n: i32,
4648    nrhs: i32,
4649    a: &mut [f64],
4650    lda: i32,
4651    b: &mut [f64],
4652    ldb: i32,
4653    jpvt: &mut [i32],
4654    rcond: f64,
4655    rank: &mut i32,
4656    work: &mut [f64],
4657    lwork: i32,
4658    info: &mut i32,
4659) {
4660    ffi::dgelsy_(
4661        &m,
4662        &n,
4663        &nrhs,
4664        a.as_mut_ptr(),
4665        &lda,
4666        b.as_mut_ptr(),
4667        &ldb,
4668        jpvt.as_mut_ptr(),
4669        &rcond,
4670        rank,
4671        work.as_mut_ptr(),
4672        &lwork,
4673        info,
4674    )
4675}
4676
4677#[inline]
4678pub unsafe fn sgelsy(
4679    m: i32,
4680    n: i32,
4681    nrhs: i32,
4682    a: &mut [f32],
4683    lda: i32,
4684    b: &mut [f32],
4685    ldb: i32,
4686    jpvt: &mut [i32],
4687    rcond: f32,
4688    rank: &mut i32,
4689    work: &mut [f32],
4690    lwork: i32,
4691    info: &mut i32,
4692) {
4693    ffi::sgelsy_(
4694        &m,
4695        &n,
4696        &nrhs,
4697        a.as_mut_ptr(),
4698        &lda,
4699        b.as_mut_ptr(),
4700        &ldb,
4701        jpvt.as_mut_ptr(),
4702        &rcond,
4703        rank,
4704        work.as_mut_ptr(),
4705        &lwork,
4706        info,
4707    )
4708}
4709
4710#[inline]
4711pub unsafe fn zgelsy(
4712    m: i32,
4713    n: i32,
4714    nrhs: i32,
4715    a: &mut [c64],
4716    lda: i32,
4717    b: &mut [c64],
4718    ldb: i32,
4719    jpvt: &mut [i32],
4720    rcond: f64,
4721    rank: &mut i32,
4722    work: &mut [c64],
4723    lwork: i32,
4724    rwork: &mut [f64],
4725    info: &mut i32,
4726) {
4727    ffi::zgelsy_(
4728        &m,
4729        &n,
4730        &nrhs,
4731        a.as_mut_ptr() as *mut _,
4732        &lda,
4733        b.as_mut_ptr() as *mut _,
4734        &ldb,
4735        jpvt.as_mut_ptr(),
4736        &rcond,
4737        rank,
4738        work.as_mut_ptr() as *mut _,
4739        &lwork,
4740        rwork.as_mut_ptr(),
4741        info,
4742    )
4743}
4744
4745#[inline]
4746pub unsafe fn cgemlq(
4747    side: u8,
4748    trans: u8,
4749    m: i32,
4750    n: i32,
4751    k: i32,
4752    a: &[c32],
4753    lda: i32,
4754    t: &[c32],
4755    tsize: &[i32],
4756    c: &mut [c32],
4757    ldc: i32,
4758    work: &mut [c32],
4759    lwork: i32,
4760    info: &mut i32,
4761) {
4762    ffi::cgemlq_(
4763        &(side as c_char),
4764        &(trans as c_char),
4765        &m,
4766        &n,
4767        &k,
4768        a.as_ptr() as *const _,
4769        &lda,
4770        t.as_ptr() as *const _,
4771        tsize.as_ptr(),
4772        c.as_mut_ptr() as *mut _,
4773        &ldc,
4774        work.as_mut_ptr() as *mut _,
4775        &lwork,
4776        info,
4777    )
4778}
4779
4780#[inline]
4781pub unsafe fn dgemlq(
4782    side: u8,
4783    trans: u8,
4784    m: i32,
4785    n: i32,
4786    k: i32,
4787    a: &[f64],
4788    lda: i32,
4789    t: &[f64],
4790    tsize: &[i32],
4791    c: &mut [f64],
4792    ldc: i32,
4793    work: &mut [f64],
4794    lwork: i32,
4795    info: &mut i32,
4796) {
4797    ffi::dgemlq_(
4798        &(side as c_char),
4799        &(trans as c_char),
4800        &m,
4801        &n,
4802        &k,
4803        a.as_ptr(),
4804        &lda,
4805        t.as_ptr(),
4806        tsize.as_ptr(),
4807        c.as_mut_ptr(),
4808        &ldc,
4809        work.as_mut_ptr(),
4810        &lwork,
4811        info,
4812    )
4813}
4814
4815#[inline]
4816pub unsafe fn sgemlq(
4817    side: u8,
4818    trans: u8,
4819    m: i32,
4820    n: i32,
4821    k: i32,
4822    a: &[f32],
4823    lda: i32,
4824    t: &[f32],
4825    tsize: &[i32],
4826    c: &mut [f32],
4827    ldc: i32,
4828    work: &mut [f32],
4829    lwork: i32,
4830    info: &mut i32,
4831) {
4832    ffi::sgemlq_(
4833        &(side as c_char),
4834        &(trans as c_char),
4835        &m,
4836        &n,
4837        &k,
4838        a.as_ptr(),
4839        &lda,
4840        t.as_ptr(),
4841        tsize.as_ptr(),
4842        c.as_mut_ptr(),
4843        &ldc,
4844        work.as_mut_ptr(),
4845        &lwork,
4846        info,
4847    )
4848}
4849
4850#[inline]
4851pub unsafe fn zgemlq(
4852    side: u8,
4853    trans: u8,
4854    m: i32,
4855    n: i32,
4856    k: i32,
4857    a: &[c64],
4858    lda: i32,
4859    t: &[c64],
4860    tsize: &[i32],
4861    c: &mut [c64],
4862    ldc: i32,
4863    work: &mut [c64],
4864    lwork: i32,
4865    info: &mut i32,
4866) {
4867    ffi::zgemlq_(
4868        &(side as c_char),
4869        &(trans as c_char),
4870        &m,
4871        &n,
4872        &k,
4873        a.as_ptr() as *const _,
4874        &lda,
4875        t.as_ptr() as *const _,
4876        tsize.as_ptr(),
4877        c.as_mut_ptr() as *mut _,
4878        &ldc,
4879        work.as_mut_ptr() as *mut _,
4880        &lwork,
4881        info,
4882    )
4883}
4884
4885#[inline]
4886pub unsafe fn cgemqr(
4887    side: u8,
4888    trans: u8,
4889    m: i32,
4890    n: i32,
4891    k: i32,
4892    a: &[c32],
4893    lda: i32,
4894    t: &[c32],
4895    tsize: &[i32],
4896    c: &mut [c32],
4897    ldc: i32,
4898    work: &mut [c32],
4899    lwork: i32,
4900    info: &mut i32,
4901) {
4902    ffi::cgemqr_(
4903        &(side as c_char),
4904        &(trans as c_char),
4905        &m,
4906        &n,
4907        &k,
4908        a.as_ptr() as *const _,
4909        &lda,
4910        t.as_ptr() as *const _,
4911        tsize.as_ptr(),
4912        c.as_mut_ptr() as *mut _,
4913        &ldc,
4914        work.as_mut_ptr() as *mut _,
4915        &lwork,
4916        info,
4917    )
4918}
4919
4920#[inline]
4921pub unsafe fn dgemqr(
4922    side: u8,
4923    trans: u8,
4924    m: i32,
4925    n: i32,
4926    k: i32,
4927    a: &[f64],
4928    lda: i32,
4929    t: &[f64],
4930    tsize: &[i32],
4931    c: &mut [f64],
4932    ldc: i32,
4933    work: &mut [f64],
4934    lwork: i32,
4935    info: &mut i32,
4936) {
4937    ffi::dgemqr_(
4938        &(side as c_char),
4939        &(trans as c_char),
4940        &m,
4941        &n,
4942        &k,
4943        a.as_ptr(),
4944        &lda,
4945        t.as_ptr(),
4946        tsize.as_ptr(),
4947        c.as_mut_ptr(),
4948        &ldc,
4949        work.as_mut_ptr(),
4950        &lwork,
4951        info,
4952    )
4953}
4954
4955#[inline]
4956pub unsafe fn sgemqr(
4957    side: u8,
4958    trans: u8,
4959    m: i32,
4960    n: i32,
4961    k: i32,
4962    a: &[f32],
4963    lda: i32,
4964    t: &[f32],
4965    tsize: &[i32],
4966    c: &mut [f32],
4967    ldc: i32,
4968    work: &mut [f32],
4969    lwork: i32,
4970    info: &mut i32,
4971) {
4972    ffi::sgemqr_(
4973        &(side as c_char),
4974        &(trans as c_char),
4975        &m,
4976        &n,
4977        &k,
4978        a.as_ptr(),
4979        &lda,
4980        t.as_ptr(),
4981        tsize.as_ptr(),
4982        c.as_mut_ptr(),
4983        &ldc,
4984        work.as_mut_ptr(),
4985        &lwork,
4986        info,
4987    )
4988}
4989
4990#[inline]
4991pub unsafe fn zgemqr(
4992    side: u8,
4993    trans: u8,
4994    m: i32,
4995    n: i32,
4996    k: i32,
4997    a: &[c64],
4998    lda: i32,
4999    t: &[c64],
5000    tsize: &[i32],
5001    c: &mut [c64],
5002    ldc: i32,
5003    work: &mut [c64],
5004    lwork: i32,
5005    info: &mut i32,
5006) {
5007    ffi::zgemqr_(
5008        &(side as c_char),
5009        &(trans as c_char),
5010        &m,
5011        &n,
5012        &k,
5013        a.as_ptr() as *const _,
5014        &lda,
5015        t.as_ptr() as *const _,
5016        tsize.as_ptr(),
5017        c.as_mut_ptr() as *mut _,
5018        &ldc,
5019        work.as_mut_ptr() as *mut _,
5020        &lwork,
5021        info,
5022    )
5023}
5024
5025#[inline]
5026pub unsafe fn cgemqrt(
5027    side: u8,
5028    trans: u8,
5029    m: i32,
5030    n: i32,
5031    k: i32,
5032    nb: i32,
5033    v: &[c32],
5034    ldv: i32,
5035    t: &[c32],
5036    ldt: i32,
5037    c: &mut [c32],
5038    ldc: i32,
5039    work: &mut [c32],
5040    info: &mut i32,
5041) {
5042    ffi::cgemqrt_(
5043        &(side as c_char),
5044        &(trans as c_char),
5045        &m,
5046        &n,
5047        &k,
5048        &nb,
5049        v.as_ptr() as *const _,
5050        &ldv,
5051        t.as_ptr() as *const _,
5052        &ldt,
5053        c.as_mut_ptr() as *mut _,
5054        &ldc,
5055        work.as_mut_ptr() as *mut _,
5056        info,
5057    )
5058}
5059
5060#[inline]
5061pub unsafe fn dgemqrt(
5062    side: u8,
5063    trans: u8,
5064    m: i32,
5065    n: i32,
5066    k: i32,
5067    nb: i32,
5068    v: &[f64],
5069    ldv: i32,
5070    t: &[f64],
5071    ldt: i32,
5072    c: &mut [f64],
5073    ldc: i32,
5074    work: &mut [f64],
5075    info: &mut i32,
5076) {
5077    ffi::dgemqrt_(
5078        &(side as c_char),
5079        &(trans as c_char),
5080        &m,
5081        &n,
5082        &k,
5083        &nb,
5084        v.as_ptr(),
5085        &ldv,
5086        t.as_ptr(),
5087        &ldt,
5088        c.as_mut_ptr(),
5089        &ldc,
5090        work.as_mut_ptr(),
5091        info,
5092    )
5093}
5094
5095#[inline]
5096pub unsafe fn sgemqrt(
5097    side: u8,
5098    trans: u8,
5099    m: i32,
5100    n: i32,
5101    k: i32,
5102    nb: i32,
5103    v: &[f32],
5104    ldv: i32,
5105    t: &[f32],
5106    ldt: i32,
5107    c: &mut [f32],
5108    ldc: i32,
5109    work: &mut [f32],
5110    info: &mut i32,
5111) {
5112    ffi::sgemqrt_(
5113        &(side as c_char),
5114        &(trans as c_char),
5115        &m,
5116        &n,
5117        &k,
5118        &nb,
5119        v.as_ptr(),
5120        &ldv,
5121        t.as_ptr(),
5122        &ldt,
5123        c.as_mut_ptr(),
5124        &ldc,
5125        work.as_mut_ptr(),
5126        info,
5127    )
5128}
5129
5130#[inline]
5131pub unsafe fn zgemqrt(
5132    side: u8,
5133    trans: u8,
5134    m: i32,
5135    n: i32,
5136    k: i32,
5137    nb: i32,
5138    v: &[c64],
5139    ldv: i32,
5140    t: &[c64],
5141    ldt: i32,
5142    c: &mut [c64],
5143    ldc: i32,
5144    work: &mut [c64],
5145    info: &mut i32,
5146) {
5147    ffi::zgemqrt_(
5148        &(side as c_char),
5149        &(trans as c_char),
5150        &m,
5151        &n,
5152        &k,
5153        &nb,
5154        v.as_ptr() as *const _,
5155        &ldv,
5156        t.as_ptr() as *const _,
5157        &ldt,
5158        c.as_mut_ptr() as *mut _,
5159        &ldc,
5160        work.as_mut_ptr() as *mut _,
5161        info,
5162    )
5163}
5164
5165#[inline]
5166pub unsafe fn cgeql2(
5167    m: i32,
5168    n: i32,
5169    a: &mut [c32],
5170    lda: i32,
5171    tau: &mut [c32],
5172    work: &mut [c32],
5173    info: &mut i32,
5174) {
5175    ffi::cgeql2_(
5176        &m,
5177        &n,
5178        a.as_mut_ptr() as *mut _,
5179        &lda,
5180        tau.as_mut_ptr() as *mut _,
5181        work.as_mut_ptr() as *mut _,
5182        info,
5183    )
5184}
5185
5186#[inline]
5187pub unsafe fn dgeql2(
5188    m: i32,
5189    n: i32,
5190    a: &mut [f64],
5191    lda: i32,
5192    tau: &mut [f64],
5193    work: &mut [f64],
5194    info: &mut i32,
5195) {
5196    ffi::dgeql2_(
5197        &m,
5198        &n,
5199        a.as_mut_ptr(),
5200        &lda,
5201        tau.as_mut_ptr(),
5202        work.as_mut_ptr(),
5203        info,
5204    )
5205}
5206
5207#[inline]
5208pub unsafe fn sgeql2(
5209    m: i32,
5210    n: i32,
5211    a: &mut [f32],
5212    lda: i32,
5213    tau: &mut [f32],
5214    work: &mut [f32],
5215    info: &mut i32,
5216) {
5217    ffi::sgeql2_(
5218        &m,
5219        &n,
5220        a.as_mut_ptr(),
5221        &lda,
5222        tau.as_mut_ptr(),
5223        work.as_mut_ptr(),
5224        info,
5225    )
5226}
5227
5228#[inline]
5229pub unsafe fn zgeql2(
5230    m: i32,
5231    n: i32,
5232    a: &mut [c64],
5233    lda: i32,
5234    tau: &mut [c64],
5235    work: &mut [c64],
5236    info: &mut i32,
5237) {
5238    ffi::zgeql2_(
5239        &m,
5240        &n,
5241        a.as_mut_ptr() as *mut _,
5242        &lda,
5243        tau.as_mut_ptr() as *mut _,
5244        work.as_mut_ptr() as *mut _,
5245        info,
5246    )
5247}
5248
5249#[inline]
5250pub unsafe fn cgeqlf(
5251    m: i32,
5252    n: i32,
5253    a: &mut [c32],
5254    lda: i32,
5255    tau: &mut [c32],
5256    work: &mut [c32],
5257    lwork: i32,
5258    info: &mut i32,
5259) {
5260    ffi::cgeqlf_(
5261        &m,
5262        &n,
5263        a.as_mut_ptr() as *mut _,
5264        &lda,
5265        tau.as_mut_ptr() as *mut _,
5266        work.as_mut_ptr() as *mut _,
5267        &lwork,
5268        info,
5269    )
5270}
5271
5272#[inline]
5273pub unsafe fn dgeqlf(
5274    m: i32,
5275    n: i32,
5276    a: &mut [f64],
5277    lda: i32,
5278    tau: &mut [f64],
5279    work: &mut [f64],
5280    lwork: i32,
5281    info: &mut i32,
5282) {
5283    ffi::dgeqlf_(
5284        &m,
5285        &n,
5286        a.as_mut_ptr(),
5287        &lda,
5288        tau.as_mut_ptr(),
5289        work.as_mut_ptr(),
5290        &lwork,
5291        info,
5292    )
5293}
5294
5295#[inline]
5296pub unsafe fn sgeqlf(
5297    m: i32,
5298    n: i32,
5299    a: &mut [f32],
5300    lda: i32,
5301    tau: &mut [f32],
5302    work: &mut [f32],
5303    lwork: i32,
5304    info: &mut i32,
5305) {
5306    ffi::sgeqlf_(
5307        &m,
5308        &n,
5309        a.as_mut_ptr(),
5310        &lda,
5311        tau.as_mut_ptr(),
5312        work.as_mut_ptr(),
5313        &lwork,
5314        info,
5315    )
5316}
5317
5318#[inline]
5319pub unsafe fn zgeqlf(
5320    m: i32,
5321    n: i32,
5322    a: &mut [c64],
5323    lda: i32,
5324    tau: &mut [c64],
5325    work: &mut [c64],
5326    lwork: i32,
5327    info: &mut i32,
5328) {
5329    ffi::zgeqlf_(
5330        &m,
5331        &n,
5332        a.as_mut_ptr() as *mut _,
5333        &lda,
5334        tau.as_mut_ptr() as *mut _,
5335        work.as_mut_ptr() as *mut _,
5336        &lwork,
5337        info,
5338    )
5339}
5340
5341#[inline]
5342pub unsafe fn sgeqpf(
5343    m: &mut i32,
5344    n: &mut i32,
5345    a: &mut [f32],
5346    lda: &mut i32,
5347    jpvt: &mut [i32],
5348    tau: &mut [f32],
5349    work: &mut [f32],
5350    info: &mut i32,
5351) {
5352    ffi::sgeqpf_(
5353        m,
5354        n,
5355        a.as_mut_ptr(),
5356        lda,
5357        jpvt.as_mut_ptr(),
5358        tau.as_mut_ptr(),
5359        work.as_mut_ptr(),
5360        info,
5361    )
5362}
5363
5364#[inline]
5365pub unsafe fn dgeqpf(
5366    m: &mut i32,
5367    n: &mut i32,
5368    a: &mut [f64],
5369    lda: &mut i32,
5370    jpvt: &mut [i32],
5371    tau: &mut [f64],
5372    work: &mut [f64],
5373    info: &mut i32,
5374) {
5375    ffi::dgeqpf_(
5376        m,
5377        n,
5378        a.as_mut_ptr(),
5379        lda,
5380        jpvt.as_mut_ptr(),
5381        tau.as_mut_ptr(),
5382        work.as_mut_ptr(),
5383        info,
5384    )
5385}
5386
5387#[inline]
5388pub unsafe fn cgeqpf(
5389    m: &mut i32,
5390    n: &mut i32,
5391    a: &mut [c32],
5392    lda: &mut i32,
5393    jpvt: &mut [i32],
5394    tau: &mut [c32],
5395    work: &mut [c32],
5396    rwork: &mut [f32],
5397    info: &mut i32,
5398) {
5399    ffi::cgeqpf_(
5400        m,
5401        n,
5402        a.as_mut_ptr() as *mut _,
5403        lda,
5404        jpvt.as_mut_ptr(),
5405        tau.as_mut_ptr() as *mut _,
5406        work.as_mut_ptr() as *mut _,
5407        rwork.as_mut_ptr(),
5408        info,
5409    )
5410}
5411
5412#[inline]
5413pub unsafe fn zgeqpf(
5414    m: &mut i32,
5415    n: &mut i32,
5416    a: &mut [c64],
5417    lda: &mut i32,
5418    jpvt: &mut [i32],
5419    tau: &mut [c64],
5420    work: &mut [c64],
5421    rwork: &mut [f64],
5422    info: &mut i32,
5423) {
5424    ffi::zgeqpf_(
5425        m,
5426        n,
5427        a.as_mut_ptr() as *mut _,
5428        lda,
5429        jpvt.as_mut_ptr(),
5430        tau.as_mut_ptr() as *mut _,
5431        work.as_mut_ptr() as *mut _,
5432        rwork.as_mut_ptr(),
5433        info,
5434    )
5435}
5436
5437#[inline]
5438pub unsafe fn cgeqp3(
5439    m: i32,
5440    n: i32,
5441    a: &mut [c32],
5442    lda: i32,
5443    jpvt: &mut [i32],
5444    tau: &mut [c32],
5445    work: &mut [c32],
5446    lwork: i32,
5447    rwork: &mut [f32],
5448    info: &mut i32,
5449) {
5450    ffi::cgeqp3_(
5451        &m,
5452        &n,
5453        a.as_mut_ptr() as *mut _,
5454        &lda,
5455        jpvt.as_mut_ptr(),
5456        tau.as_mut_ptr() as *mut _,
5457        work.as_mut_ptr() as *mut _,
5458        &lwork,
5459        rwork.as_mut_ptr(),
5460        info,
5461    )
5462}
5463
5464#[inline]
5465pub unsafe fn dgeqp3(
5466    m: i32,
5467    n: i32,
5468    a: &mut [f64],
5469    lda: i32,
5470    jpvt: &mut [i32],
5471    tau: &mut [f64],
5472    work: &mut [f64],
5473    lwork: i32,
5474    info: &mut i32,
5475) {
5476    ffi::dgeqp3_(
5477        &m,
5478        &n,
5479        a.as_mut_ptr(),
5480        &lda,
5481        jpvt.as_mut_ptr(),
5482        tau.as_mut_ptr(),
5483        work.as_mut_ptr(),
5484        &lwork,
5485        info,
5486    )
5487}
5488
5489#[inline]
5490pub unsafe fn sgeqp3(
5491    m: i32,
5492    n: i32,
5493    a: &mut [f32],
5494    lda: i32,
5495    jpvt: &mut [i32],
5496    tau: &mut [f32],
5497    work: &mut [f32],
5498    lwork: i32,
5499    info: &mut i32,
5500) {
5501    ffi::sgeqp3_(
5502        &m,
5503        &n,
5504        a.as_mut_ptr(),
5505        &lda,
5506        jpvt.as_mut_ptr(),
5507        tau.as_mut_ptr(),
5508        work.as_mut_ptr(),
5509        &lwork,
5510        info,
5511    )
5512}
5513
5514#[inline]
5515pub unsafe fn zgeqp3(
5516    m: i32,
5517    n: i32,
5518    a: &mut [c64],
5519    lda: i32,
5520    jpvt: &mut [i32],
5521    tau: &mut [c64],
5522    work: &mut [c64],
5523    lwork: i32,
5524    rwork: &mut [f64],
5525    info: &mut i32,
5526) {
5527    ffi::zgeqp3_(
5528        &m,
5529        &n,
5530        a.as_mut_ptr() as *mut _,
5531        &lda,
5532        jpvt.as_mut_ptr(),
5533        tau.as_mut_ptr() as *mut _,
5534        work.as_mut_ptr() as *mut _,
5535        &lwork,
5536        rwork.as_mut_ptr(),
5537        info,
5538    )
5539}
5540
5541#[inline]
5542pub unsafe fn cgeqr(
5543    m: i32,
5544    n: i32,
5545    a: &mut [c32],
5546    lda: i32,
5547    t: &mut [c32],
5548    tsize: &[i32],
5549    work: &mut [c32],
5550    lwork: i32,
5551    info: &mut i32,
5552) {
5553    ffi::cgeqr_(
5554        &m,
5555        &n,
5556        a.as_mut_ptr() as *mut _,
5557        &lda,
5558        t.as_mut_ptr() as *mut _,
5559        tsize.as_ptr(),
5560        work.as_mut_ptr() as *mut _,
5561        &lwork,
5562        info,
5563    )
5564}
5565
5566#[inline]
5567pub unsafe fn dgeqr(
5568    m: i32,
5569    n: i32,
5570    a: &mut [f64],
5571    lda: i32,
5572    t: &mut [f64],
5573    tsize: &[i32],
5574    work: &mut [f64],
5575    lwork: i32,
5576    info: &mut i32,
5577) {
5578    ffi::dgeqr_(
5579        &m,
5580        &n,
5581        a.as_mut_ptr(),
5582        &lda,
5583        t.as_mut_ptr(),
5584        tsize.as_ptr(),
5585        work.as_mut_ptr(),
5586        &lwork,
5587        info,
5588    )
5589}
5590
5591#[inline]
5592pub unsafe fn sgeqr(
5593    m: i32,
5594    n: i32,
5595    a: &mut [f32],
5596    lda: i32,
5597    t: &mut [f32],
5598    tsize: &[i32],
5599    work: &mut [f32],
5600    lwork: i32,
5601    info: &mut i32,
5602) {
5603    ffi::sgeqr_(
5604        &m,
5605        &n,
5606        a.as_mut_ptr(),
5607        &lda,
5608        t.as_mut_ptr(),
5609        tsize.as_ptr(),
5610        work.as_mut_ptr(),
5611        &lwork,
5612        info,
5613    )
5614}
5615
5616#[inline]
5617pub unsafe fn zgeqr(
5618    m: i32,
5619    n: i32,
5620    a: &mut [c64],
5621    lda: i32,
5622    t: &mut [c64],
5623    tsize: &[i32],
5624    work: &mut [c64],
5625    lwork: i32,
5626    info: &mut i32,
5627) {
5628    ffi::zgeqr_(
5629        &m,
5630        &n,
5631        a.as_mut_ptr() as *mut _,
5632        &lda,
5633        t.as_mut_ptr() as *mut _,
5634        tsize.as_ptr(),
5635        work.as_mut_ptr() as *mut _,
5636        &lwork,
5637        info,
5638    )
5639}
5640
5641#[inline]
5642pub unsafe fn cgeqr2(
5643    m: i32,
5644    n: i32,
5645    a: &mut [c32],
5646    lda: i32,
5647    tau: &mut [c32],
5648    work: &mut [c32],
5649    info: &mut i32,
5650) {
5651    ffi::cgeqr2_(
5652        &m,
5653        &n,
5654        a.as_mut_ptr() as *mut _,
5655        &lda,
5656        tau.as_mut_ptr() as *mut _,
5657        work.as_mut_ptr() as *mut _,
5658        info,
5659    )
5660}
5661
5662#[inline]
5663pub unsafe fn dgeqr2(
5664    m: i32,
5665    n: i32,
5666    a: &mut [f64],
5667    lda: i32,
5668    tau: &mut [f64],
5669    work: &mut [f64],
5670    info: &mut i32,
5671) {
5672    ffi::dgeqr2_(
5673        &m,
5674        &n,
5675        a.as_mut_ptr(),
5676        &lda,
5677        tau.as_mut_ptr(),
5678        work.as_mut_ptr(),
5679        info,
5680    )
5681}
5682
5683#[inline]
5684pub unsafe fn sgeqr2(
5685    m: i32,
5686    n: i32,
5687    a: &mut [f32],
5688    lda: i32,
5689    tau: &mut [f32],
5690    work: &mut [f32],
5691    info: &mut i32,
5692) {
5693    ffi::sgeqr2_(
5694        &m,
5695        &n,
5696        a.as_mut_ptr(),
5697        &lda,
5698        tau.as_mut_ptr(),
5699        work.as_mut_ptr(),
5700        info,
5701    )
5702}
5703
5704#[inline]
5705pub unsafe fn zgeqr2(
5706    m: i32,
5707    n: i32,
5708    a: &mut [c64],
5709    lda: i32,
5710    tau: &mut [c64],
5711    work: &mut [c64],
5712    info: &mut i32,
5713) {
5714    ffi::zgeqr2_(
5715        &m,
5716        &n,
5717        a.as_mut_ptr() as *mut _,
5718        &lda,
5719        tau.as_mut_ptr() as *mut _,
5720        work.as_mut_ptr() as *mut _,
5721        info,
5722    )
5723}
5724
5725#[inline]
5726pub unsafe fn cgeqrf(
5727    m: i32,
5728    n: i32,
5729    a: &mut [c32],
5730    lda: i32,
5731    tau: &mut [c32],
5732    work: &mut [c32],
5733    lwork: i32,
5734    info: &mut i32,
5735) {
5736    ffi::cgeqrf_(
5737        &m,
5738        &n,
5739        a.as_mut_ptr() as *mut _,
5740        &lda,
5741        tau.as_mut_ptr() as *mut _,
5742        work.as_mut_ptr() as *mut _,
5743        &lwork,
5744        info,
5745    )
5746}
5747
5748#[inline]
5749pub unsafe fn dgeqrf(
5750    m: i32,
5751    n: i32,
5752    a: &mut [f64],
5753    lda: i32,
5754    tau: &mut [f64],
5755    work: &mut [f64],
5756    lwork: i32,
5757    info: &mut i32,
5758) {
5759    ffi::dgeqrf_(
5760        &m,
5761        &n,
5762        a.as_mut_ptr(),
5763        &lda,
5764        tau.as_mut_ptr(),
5765        work.as_mut_ptr(),
5766        &lwork,
5767        info,
5768    )
5769}
5770
5771#[inline]
5772pub unsafe fn sgeqrf(
5773    m: i32,
5774    n: i32,
5775    a: &mut [f32],
5776    lda: i32,
5777    tau: &mut [f32],
5778    work: &mut [f32],
5779    lwork: i32,
5780    info: &mut i32,
5781) {
5782    ffi::sgeqrf_(
5783        &m,
5784        &n,
5785        a.as_mut_ptr(),
5786        &lda,
5787        tau.as_mut_ptr(),
5788        work.as_mut_ptr(),
5789        &lwork,
5790        info,
5791    )
5792}
5793
5794#[inline]
5795pub unsafe fn zgeqrf(
5796    m: i32,
5797    n: i32,
5798    a: &mut [c64],
5799    lda: i32,
5800    tau: &mut [c64],
5801    work: &mut [c64],
5802    lwork: i32,
5803    info: &mut i32,
5804) {
5805    ffi::zgeqrf_(
5806        &m,
5807        &n,
5808        a.as_mut_ptr() as *mut _,
5809        &lda,
5810        tau.as_mut_ptr() as *mut _,
5811        work.as_mut_ptr() as *mut _,
5812        &lwork,
5813        info,
5814    )
5815}
5816
5817#[inline]
5818pub unsafe fn cgeqrfp(
5819    m: i32,
5820    n: i32,
5821    a: &mut [c32],
5822    lda: i32,
5823    tau: &mut [c32],
5824    work: &mut [c32],
5825    lwork: i32,
5826    info: &mut i32,
5827) {
5828    ffi::cgeqrfp_(
5829        &m,
5830        &n,
5831        a.as_mut_ptr() as *mut _,
5832        &lda,
5833        tau.as_mut_ptr() as *mut _,
5834        work.as_mut_ptr() as *mut _,
5835        &lwork,
5836        info,
5837    )
5838}
5839
5840#[inline]
5841pub unsafe fn dgeqrfp(
5842    m: i32,
5843    n: i32,
5844    a: &mut [f64],
5845    lda: i32,
5846    tau: &mut [f64],
5847    work: &mut [f64],
5848    lwork: i32,
5849    info: &mut i32,
5850) {
5851    ffi::dgeqrfp_(
5852        &m,
5853        &n,
5854        a.as_mut_ptr(),
5855        &lda,
5856        tau.as_mut_ptr(),
5857        work.as_mut_ptr(),
5858        &lwork,
5859        info,
5860    )
5861}
5862
5863#[inline]
5864pub unsafe fn sgeqrfp(
5865    m: i32,
5866    n: i32,
5867    a: &mut [f32],
5868    lda: i32,
5869    tau: &mut [f32],
5870    work: &mut [f32],
5871    lwork: i32,
5872    info: &mut i32,
5873) {
5874    ffi::sgeqrfp_(
5875        &m,
5876        &n,
5877        a.as_mut_ptr(),
5878        &lda,
5879        tau.as_mut_ptr(),
5880        work.as_mut_ptr(),
5881        &lwork,
5882        info,
5883    )
5884}
5885
5886#[inline]
5887pub unsafe fn zgeqrfp(
5888    m: i32,
5889    n: i32,
5890    a: &mut [c64],
5891    lda: i32,
5892    tau: &mut [c64],
5893    work: &mut [c64],
5894    lwork: i32,
5895    info: &mut i32,
5896) {
5897    ffi::zgeqrfp_(
5898        &m,
5899        &n,
5900        a.as_mut_ptr() as *mut _,
5901        &lda,
5902        tau.as_mut_ptr() as *mut _,
5903        work.as_mut_ptr() as *mut _,
5904        &lwork,
5905        info,
5906    )
5907}
5908
5909#[inline]
5910pub unsafe fn cgeqrt(
5911    m: i32,
5912    n: i32,
5913    nb: i32,
5914    a: &mut [c32],
5915    lda: i32,
5916    t: &mut [c32],
5917    ldt: i32,
5918    work: &mut [c32],
5919    info: &mut i32,
5920) {
5921    ffi::cgeqrt_(
5922        &m,
5923        &n,
5924        &nb,
5925        a.as_mut_ptr() as *mut _,
5926        &lda,
5927        t.as_mut_ptr() as *mut _,
5928        &ldt,
5929        work.as_mut_ptr() as *mut _,
5930        info,
5931    )
5932}
5933
5934#[inline]
5935pub unsafe fn dgeqrt(
5936    m: i32,
5937    n: i32,
5938    nb: i32,
5939    a: &mut [f64],
5940    lda: i32,
5941    t: &mut [f64],
5942    ldt: i32,
5943    work: &mut [f64],
5944    info: &mut i32,
5945) {
5946    ffi::dgeqrt_(
5947        &m,
5948        &n,
5949        &nb,
5950        a.as_mut_ptr(),
5951        &lda,
5952        t.as_mut_ptr(),
5953        &ldt,
5954        work.as_mut_ptr(),
5955        info,
5956    )
5957}
5958
5959#[inline]
5960pub unsafe fn sgeqrt(
5961    m: i32,
5962    n: i32,
5963    nb: i32,
5964    a: &mut [f32],
5965    lda: i32,
5966    t: &mut [f32],
5967    ldt: i32,
5968    work: &mut [f32],
5969    info: &mut i32,
5970) {
5971    ffi::sgeqrt_(
5972        &m,
5973        &n,
5974        &nb,
5975        a.as_mut_ptr(),
5976        &lda,
5977        t.as_mut_ptr(),
5978        &ldt,
5979        work.as_mut_ptr(),
5980        info,
5981    )
5982}
5983
5984#[inline]
5985pub unsafe fn zgeqrt(
5986    m: i32,
5987    n: i32,
5988    nb: i32,
5989    a: &mut [c64],
5990    lda: i32,
5991    t: &mut [c64],
5992    ldt: i32,
5993    work: &mut [c64],
5994    info: &mut i32,
5995) {
5996    ffi::zgeqrt_(
5997        &m,
5998        &n,
5999        &nb,
6000        a.as_mut_ptr() as *mut _,
6001        &lda,
6002        t.as_mut_ptr() as *mut _,
6003        &ldt,
6004        work.as_mut_ptr() as *mut _,
6005        info,
6006    )
6007}
6008
6009#[inline]
6010pub unsafe fn cgeqrt2(
6011    m: i32,
6012    n: i32,
6013    a: &mut [c32],
6014    lda: i32,
6015    t: &mut [c32],
6016    ldt: i32,
6017    info: &mut i32,
6018) {
6019    ffi::cgeqrt2_(
6020        &m,
6021        &n,
6022        a.as_mut_ptr() as *mut _,
6023        &lda,
6024        t.as_mut_ptr() as *mut _,
6025        &ldt,
6026        info,
6027    )
6028}
6029
6030#[inline]
6031pub unsafe fn dgeqrt2(
6032    m: i32,
6033    n: i32,
6034    a: &mut [f64],
6035    lda: i32,
6036    t: &mut [f64],
6037    ldt: i32,
6038    info: &mut i32,
6039) {
6040    ffi::dgeqrt2_(&m, &n, a.as_mut_ptr(), &lda, t.as_mut_ptr(), &ldt, info)
6041}
6042
6043#[inline]
6044pub unsafe fn sgeqrt2(
6045    m: i32,
6046    n: i32,
6047    a: &mut [f32],
6048    lda: i32,
6049    t: &mut [f32],
6050    ldt: i32,
6051    info: &mut i32,
6052) {
6053    ffi::sgeqrt2_(&m, &n, a.as_mut_ptr(), &lda, t.as_mut_ptr(), &ldt, info)
6054}
6055
6056#[inline]
6057pub unsafe fn zgeqrt2(
6058    m: i32,
6059    n: i32,
6060    a: &mut [c64],
6061    lda: i32,
6062    t: &mut [c64],
6063    ldt: i32,
6064    info: &mut i32,
6065) {
6066    ffi::zgeqrt2_(
6067        &m,
6068        &n,
6069        a.as_mut_ptr() as *mut _,
6070        &lda,
6071        t.as_mut_ptr() as *mut _,
6072        &ldt,
6073        info,
6074    )
6075}
6076
6077#[inline]
6078pub unsafe fn cgeqrt3(
6079    m: i32,
6080    n: i32,
6081    a: &mut [c32],
6082    lda: i32,
6083    t: &mut [c32],
6084    ldt: i32,
6085    info: &mut i32,
6086) {
6087    ffi::cgeqrt3_(
6088        &m,
6089        &n,
6090        a.as_mut_ptr() as *mut _,
6091        &lda,
6092        t.as_mut_ptr() as *mut _,
6093        &ldt,
6094        info,
6095    )
6096}
6097
6098#[inline]
6099pub unsafe fn dgeqrt3(
6100    m: i32,
6101    n: i32,
6102    a: &mut [f64],
6103    lda: i32,
6104    t: &mut [f64],
6105    ldt: i32,
6106    info: &mut i32,
6107) {
6108    ffi::dgeqrt3_(&m, &n, a.as_mut_ptr(), &lda, t.as_mut_ptr(), &ldt, info)
6109}
6110
6111#[inline]
6112pub unsafe fn sgeqrt3(
6113    m: i32,
6114    n: i32,
6115    a: &mut [f32],
6116    lda: i32,
6117    t: &mut [f32],
6118    ldt: i32,
6119    info: &mut i32,
6120) {
6121    ffi::sgeqrt3_(&m, &n, a.as_mut_ptr(), &lda, t.as_mut_ptr(), &ldt, info)
6122}
6123
6124#[inline]
6125pub unsafe fn zgeqrt3(
6126    m: i32,
6127    n: i32,
6128    a: &mut [c64],
6129    lda: i32,
6130    t: &mut [c64],
6131    ldt: i32,
6132    info: &mut i32,
6133) {
6134    ffi::zgeqrt3_(
6135        &m,
6136        &n,
6137        a.as_mut_ptr() as *mut _,
6138        &lda,
6139        t.as_mut_ptr() as *mut _,
6140        &ldt,
6141        info,
6142    )
6143}
6144
6145#[inline]
6146pub unsafe fn cgerfs(
6147    trans: u8,
6148    n: i32,
6149    nrhs: i32,
6150    a: &[c32],
6151    lda: i32,
6152    af: &[c32],
6153    ldaf: i32,
6154    ipiv: &[i32],
6155    b: &[c32],
6156    ldb: i32,
6157    x: &mut [c32],
6158    ldx: i32,
6159    ferr: &mut [f32],
6160    berr: &mut [f32],
6161    work: &mut [c32],
6162    rwork: &mut [f32],
6163    info: &mut i32,
6164) {
6165    ffi::cgerfs_(
6166        &(trans as c_char),
6167        &n,
6168        &nrhs,
6169        a.as_ptr() as *const _,
6170        &lda,
6171        af.as_ptr() as *const _,
6172        &ldaf,
6173        ipiv.as_ptr(),
6174        b.as_ptr() as *const _,
6175        &ldb,
6176        x.as_mut_ptr() as *mut _,
6177        &ldx,
6178        ferr.as_mut_ptr(),
6179        berr.as_mut_ptr(),
6180        work.as_mut_ptr() as *mut _,
6181        rwork.as_mut_ptr(),
6182        info,
6183    )
6184}
6185
6186#[inline]
6187pub unsafe fn dgerfs(
6188    trans: u8,
6189    n: i32,
6190    nrhs: i32,
6191    a: &[f64],
6192    lda: i32,
6193    af: &[f64],
6194    ldaf: i32,
6195    ipiv: &[i32],
6196    b: &[f64],
6197    ldb: i32,
6198    x: &mut [f64],
6199    ldx: i32,
6200    ferr: &mut [f64],
6201    berr: &mut [f64],
6202    work: &mut [f64],
6203    iwork: &mut [i32],
6204    info: &mut i32,
6205) {
6206    ffi::dgerfs_(
6207        &(trans as c_char),
6208        &n,
6209        &nrhs,
6210        a.as_ptr(),
6211        &lda,
6212        af.as_ptr(),
6213        &ldaf,
6214        ipiv.as_ptr(),
6215        b.as_ptr(),
6216        &ldb,
6217        x.as_mut_ptr(),
6218        &ldx,
6219        ferr.as_mut_ptr(),
6220        berr.as_mut_ptr(),
6221        work.as_mut_ptr(),
6222        iwork.as_mut_ptr(),
6223        info,
6224    )
6225}
6226
6227#[inline]
6228pub unsafe fn sgerfs(
6229    trans: u8,
6230    n: i32,
6231    nrhs: i32,
6232    a: &[f32],
6233    lda: i32,
6234    af: &[f32],
6235    ldaf: i32,
6236    ipiv: &[i32],
6237    b: &[f32],
6238    ldb: i32,
6239    x: &mut [f32],
6240    ldx: i32,
6241    ferr: &mut [f32],
6242    berr: &mut [f32],
6243    work: &mut [f32],
6244    iwork: &mut [i32],
6245    info: &mut i32,
6246) {
6247    ffi::sgerfs_(
6248        &(trans as c_char),
6249        &n,
6250        &nrhs,
6251        a.as_ptr(),
6252        &lda,
6253        af.as_ptr(),
6254        &ldaf,
6255        ipiv.as_ptr(),
6256        b.as_ptr(),
6257        &ldb,
6258        x.as_mut_ptr(),
6259        &ldx,
6260        ferr.as_mut_ptr(),
6261        berr.as_mut_ptr(),
6262        work.as_mut_ptr(),
6263        iwork.as_mut_ptr(),
6264        info,
6265    )
6266}
6267
6268#[inline]
6269pub unsafe fn zgerfs(
6270    trans: u8,
6271    n: i32,
6272    nrhs: i32,
6273    a: &[c64],
6274    lda: i32,
6275    af: &[c64],
6276    ldaf: i32,
6277    ipiv: &[i32],
6278    b: &[c64],
6279    ldb: i32,
6280    x: &mut [c64],
6281    ldx: i32,
6282    ferr: &mut [f64],
6283    berr: &mut [f64],
6284    work: &mut [c64],
6285    rwork: &mut [f64],
6286    info: &mut i32,
6287) {
6288    ffi::zgerfs_(
6289        &(trans as c_char),
6290        &n,
6291        &nrhs,
6292        a.as_ptr() as *const _,
6293        &lda,
6294        af.as_ptr() as *const _,
6295        &ldaf,
6296        ipiv.as_ptr(),
6297        b.as_ptr() as *const _,
6298        &ldb,
6299        x.as_mut_ptr() as *mut _,
6300        &ldx,
6301        ferr.as_mut_ptr(),
6302        berr.as_mut_ptr(),
6303        work.as_mut_ptr() as *mut _,
6304        rwork.as_mut_ptr(),
6305        info,
6306    )
6307}
6308
6309#[inline]
6310pub unsafe fn cgerfsx(
6311    trans: u8,
6312    equed: u8,
6313    n: i32,
6314    nrhs: i32,
6315    a: &[c32],
6316    lda: i32,
6317    af: &[c32],
6318    ldaf: i32,
6319    ipiv: &[i32],
6320    r: &[f32],
6321    c: &[f32],
6322    b: &[c32],
6323    ldb: i32,
6324    x: &mut [c32],
6325    ldx: i32,
6326    rcond: &mut f32,
6327    berr: &mut [f32],
6328    n_err_bnds: i32,
6329    err_bnds_norm: &mut [f32],
6330    err_bnds_comp: &mut [f32],
6331    nparams: &[i32],
6332    params: &mut [f32],
6333    work: &mut [c32],
6334    rwork: &mut [f32],
6335    info: &mut i32,
6336) {
6337    ffi::cgerfsx_(
6338        &(trans as c_char),
6339        &(equed as c_char),
6340        &n,
6341        &nrhs,
6342        a.as_ptr() as *const _,
6343        &lda,
6344        af.as_ptr() as *const _,
6345        &ldaf,
6346        ipiv.as_ptr(),
6347        r.as_ptr(),
6348        c.as_ptr(),
6349        b.as_ptr() as *const _,
6350        &ldb,
6351        x.as_mut_ptr() as *mut _,
6352        &ldx,
6353        rcond,
6354        berr.as_mut_ptr(),
6355        &n_err_bnds,
6356        err_bnds_norm.as_mut_ptr(),
6357        err_bnds_comp.as_mut_ptr(),
6358        nparams.as_ptr(),
6359        params.as_mut_ptr(),
6360        work.as_mut_ptr() as *mut _,
6361        rwork.as_mut_ptr(),
6362        info,
6363    )
6364}
6365
6366#[inline]
6367pub unsafe fn dgerfsx(
6368    trans: u8,
6369    equed: u8,
6370    n: i32,
6371    nrhs: i32,
6372    a: &[f64],
6373    lda: i32,
6374    af: &[f64],
6375    ldaf: i32,
6376    ipiv: &[i32],
6377    r: &[f64],
6378    c: &[f64],
6379    b: &[f64],
6380    ldb: i32,
6381    x: &mut [f64],
6382    ldx: i32,
6383    rcond: &mut f64,
6384    berr: &mut [f64],
6385    n_err_bnds: i32,
6386    err_bnds_norm: &mut [f64],
6387    err_bnds_comp: &mut [f64],
6388    nparams: &[i32],
6389    params: &mut [f64],
6390    work: &mut [f64],
6391    iwork: &mut [i32],
6392    info: &mut i32,
6393) {
6394    ffi::dgerfsx_(
6395        &(trans as c_char),
6396        &(equed as c_char),
6397        &n,
6398        &nrhs,
6399        a.as_ptr(),
6400        &lda,
6401        af.as_ptr(),
6402        &ldaf,
6403        ipiv.as_ptr(),
6404        r.as_ptr(),
6405        c.as_ptr(),
6406        b.as_ptr(),
6407        &ldb,
6408        x.as_mut_ptr(),
6409        &ldx,
6410        rcond,
6411        berr.as_mut_ptr(),
6412        &n_err_bnds,
6413        err_bnds_norm.as_mut_ptr(),
6414        err_bnds_comp.as_mut_ptr(),
6415        nparams.as_ptr(),
6416        params.as_mut_ptr(),
6417        work.as_mut_ptr(),
6418        iwork.as_mut_ptr(),
6419        info,
6420    )
6421}
6422
6423#[inline]
6424pub unsafe fn sgerfsx(
6425    trans: u8,
6426    equed: u8,
6427    n: i32,
6428    nrhs: i32,
6429    a: &[f32],
6430    lda: i32,
6431    af: &[f32],
6432    ldaf: i32,
6433    ipiv: &[i32],
6434    r: &[f32],
6435    c: &[f32],
6436    b: &[f32],
6437    ldb: i32,
6438    x: &mut [f32],
6439    ldx: i32,
6440    rcond: &mut f32,
6441    berr: &mut [f32],
6442    n_err_bnds: i32,
6443    err_bnds_norm: &mut [f32],
6444    err_bnds_comp: &mut [f32],
6445    nparams: &[i32],
6446    params: &mut [f32],
6447    work: &mut [f32],
6448    iwork: &mut [i32],
6449    info: &mut i32,
6450) {
6451    ffi::sgerfsx_(
6452        &(trans as c_char),
6453        &(equed as c_char),
6454        &n,
6455        &nrhs,
6456        a.as_ptr(),
6457        &lda,
6458        af.as_ptr(),
6459        &ldaf,
6460        ipiv.as_ptr(),
6461        r.as_ptr(),
6462        c.as_ptr(),
6463        b.as_ptr(),
6464        &ldb,
6465        x.as_mut_ptr(),
6466        &ldx,
6467        rcond,
6468        berr.as_mut_ptr(),
6469        &n_err_bnds,
6470        err_bnds_norm.as_mut_ptr(),
6471        err_bnds_comp.as_mut_ptr(),
6472        nparams.as_ptr(),
6473        params.as_mut_ptr(),
6474        work.as_mut_ptr(),
6475        iwork.as_mut_ptr(),
6476        info,
6477    )
6478}
6479
6480#[inline]
6481pub unsafe fn zgerfsx(
6482    trans: u8,
6483    equed: u8,
6484    n: i32,
6485    nrhs: i32,
6486    a: &[c64],
6487    lda: i32,
6488    af: &[c64],
6489    ldaf: i32,
6490    ipiv: &[i32],
6491    r: &[f64],
6492    c: &[f64],
6493    b: &[c64],
6494    ldb: i32,
6495    x: &mut [c64],
6496    ldx: i32,
6497    rcond: &mut f64,
6498    berr: &mut [f64],
6499    n_err_bnds: i32,
6500    err_bnds_norm: &mut [f64],
6501    err_bnds_comp: &mut [f64],
6502    nparams: &[i32],
6503    params: &mut [f64],
6504    work: &mut [c64],
6505    rwork: &mut [f64],
6506    info: &mut i32,
6507) {
6508    ffi::zgerfsx_(
6509        &(trans as c_char),
6510        &(equed as c_char),
6511        &n,
6512        &nrhs,
6513        a.as_ptr() as *const _,
6514        &lda,
6515        af.as_ptr() as *const _,
6516        &ldaf,
6517        ipiv.as_ptr(),
6518        r.as_ptr(),
6519        c.as_ptr(),
6520        b.as_ptr() as *const _,
6521        &ldb,
6522        x.as_mut_ptr() as *mut _,
6523        &ldx,
6524        rcond,
6525        berr.as_mut_ptr(),
6526        &n_err_bnds,
6527        err_bnds_norm.as_mut_ptr(),
6528        err_bnds_comp.as_mut_ptr(),
6529        nparams.as_ptr(),
6530        params.as_mut_ptr(),
6531        work.as_mut_ptr() as *mut _,
6532        rwork.as_mut_ptr(),
6533        info,
6534    )
6535}
6536
6537#[inline]
6538pub unsafe fn cgerq2(
6539    m: i32,
6540    n: i32,
6541    a: &mut [c32],
6542    lda: i32,
6543    tau: &mut [c32],
6544    work: &mut [c32],
6545    info: &mut i32,
6546) {
6547    ffi::cgerq2_(
6548        &m,
6549        &n,
6550        a.as_mut_ptr() as *mut _,
6551        &lda,
6552        tau.as_mut_ptr() as *mut _,
6553        work.as_mut_ptr() as *mut _,
6554        info,
6555    )
6556}
6557
6558#[inline]
6559pub unsafe fn dgerq2(
6560    m: i32,
6561    n: i32,
6562    a: &mut [f64],
6563    lda: i32,
6564    tau: &mut [f64],
6565    work: &mut [f64],
6566    info: &mut i32,
6567) {
6568    ffi::dgerq2_(
6569        &m,
6570        &n,
6571        a.as_mut_ptr(),
6572        &lda,
6573        tau.as_mut_ptr(),
6574        work.as_mut_ptr(),
6575        info,
6576    )
6577}
6578
6579#[inline]
6580pub unsafe fn sgerq2(
6581    m: i32,
6582    n: i32,
6583    a: &mut [f32],
6584    lda: i32,
6585    tau: &mut [f32],
6586    work: &mut [f32],
6587    info: &mut i32,
6588) {
6589    ffi::sgerq2_(
6590        &m,
6591        &n,
6592        a.as_mut_ptr(),
6593        &lda,
6594        tau.as_mut_ptr(),
6595        work.as_mut_ptr(),
6596        info,
6597    )
6598}
6599
6600#[inline]
6601pub unsafe fn zgerq2(
6602    m: i32,
6603    n: i32,
6604    a: &mut [c64],
6605    lda: i32,
6606    tau: &mut [c64],
6607    work: &mut [c64],
6608    info: &mut i32,
6609) {
6610    ffi::zgerq2_(
6611        &m,
6612        &n,
6613        a.as_mut_ptr() as *mut _,
6614        &lda,
6615        tau.as_mut_ptr() as *mut _,
6616        work.as_mut_ptr() as *mut _,
6617        info,
6618    )
6619}
6620
6621#[inline]
6622pub unsafe fn cgerqf(
6623    m: i32,
6624    n: i32,
6625    a: &mut [c32],
6626    lda: i32,
6627    tau: &mut [c32],
6628    work: &mut [c32],
6629    lwork: i32,
6630    info: &mut i32,
6631) {
6632    ffi::cgerqf_(
6633        &m,
6634        &n,
6635        a.as_mut_ptr() as *mut _,
6636        &lda,
6637        tau.as_mut_ptr() as *mut _,
6638        work.as_mut_ptr() as *mut _,
6639        &lwork,
6640        info,
6641    )
6642}
6643
6644#[inline]
6645pub unsafe fn dgerqf(
6646    m: i32,
6647    n: i32,
6648    a: &mut [f64],
6649    lda: i32,
6650    tau: &mut [f64],
6651    work: &mut [f64],
6652    lwork: i32,
6653    info: &mut i32,
6654) {
6655    ffi::dgerqf_(
6656        &m,
6657        &n,
6658        a.as_mut_ptr(),
6659        &lda,
6660        tau.as_mut_ptr(),
6661        work.as_mut_ptr(),
6662        &lwork,
6663        info,
6664    )
6665}
6666
6667#[inline]
6668pub unsafe fn sgerqf(
6669    m: i32,
6670    n: i32,
6671    a: &mut [f32],
6672    lda: i32,
6673    tau: &mut [f32],
6674    work: &mut [f32],
6675    lwork: i32,
6676    info: &mut i32,
6677) {
6678    ffi::sgerqf_(
6679        &m,
6680        &n,
6681        a.as_mut_ptr(),
6682        &lda,
6683        tau.as_mut_ptr(),
6684        work.as_mut_ptr(),
6685        &lwork,
6686        info,
6687    )
6688}
6689
6690#[inline]
6691pub unsafe fn zgerqf(
6692    m: i32,
6693    n: i32,
6694    a: &mut [c64],
6695    lda: i32,
6696    tau: &mut [c64],
6697    work: &mut [c64],
6698    lwork: i32,
6699    info: &mut i32,
6700) {
6701    ffi::zgerqf_(
6702        &m,
6703        &n,
6704        a.as_mut_ptr() as *mut _,
6705        &lda,
6706        tau.as_mut_ptr() as *mut _,
6707        work.as_mut_ptr() as *mut _,
6708        &lwork,
6709        info,
6710    )
6711}
6712
6713#[inline]
6714pub unsafe fn cgesdd(
6715    jobz: u8,
6716    m: i32,
6717    n: i32,
6718    a: &mut [c32],
6719    lda: i32,
6720    s: &mut [f32],
6721    u: &mut [c32],
6722    ldu: i32,
6723    vt: &mut [c32],
6724    ldvt: i32,
6725    work: &mut [c32],
6726    lwork: i32,
6727    rwork: &mut [f32],
6728    iwork: &mut [i32],
6729    info: &mut i32,
6730) {
6731    ffi::cgesdd_(
6732        &(jobz as c_char),
6733        &m,
6734        &n,
6735        a.as_mut_ptr() as *mut _,
6736        &lda,
6737        s.as_mut_ptr(),
6738        u.as_mut_ptr() as *mut _,
6739        &ldu,
6740        vt.as_mut_ptr() as *mut _,
6741        &ldvt,
6742        work.as_mut_ptr() as *mut _,
6743        &lwork,
6744        rwork.as_mut_ptr(),
6745        iwork.as_mut_ptr(),
6746        info,
6747    )
6748}
6749
6750#[inline]
6751pub unsafe fn dgesdd(
6752    jobz: u8,
6753    m: i32,
6754    n: i32,
6755    a: &mut [f64],
6756    lda: i32,
6757    s: &mut [f64],
6758    u: &mut [f64],
6759    ldu: i32,
6760    vt: &mut [f64],
6761    ldvt: i32,
6762    work: &mut [f64],
6763    lwork: i32,
6764    iwork: &mut [i32],
6765    info: &mut i32,
6766) {
6767    ffi::dgesdd_(
6768        &(jobz as c_char),
6769        &m,
6770        &n,
6771        a.as_mut_ptr(),
6772        &lda,
6773        s.as_mut_ptr(),
6774        u.as_mut_ptr(),
6775        &ldu,
6776        vt.as_mut_ptr(),
6777        &ldvt,
6778        work.as_mut_ptr(),
6779        &lwork,
6780        iwork.as_mut_ptr(),
6781        info,
6782    )
6783}
6784
6785#[inline]
6786pub unsafe fn sgesdd(
6787    jobz: u8,
6788    m: i32,
6789    n: i32,
6790    a: &mut [f32],
6791    lda: i32,
6792    s: &mut [f32],
6793    u: &mut [f32],
6794    ldu: i32,
6795    vt: &mut [f32],
6796    ldvt: i32,
6797    work: &mut [f32],
6798    lwork: i32,
6799    iwork: &mut [i32],
6800    info: &mut i32,
6801) {
6802    ffi::sgesdd_(
6803        &(jobz as c_char),
6804        &m,
6805        &n,
6806        a.as_mut_ptr(),
6807        &lda,
6808        s.as_mut_ptr(),
6809        u.as_mut_ptr(),
6810        &ldu,
6811        vt.as_mut_ptr(),
6812        &ldvt,
6813        work.as_mut_ptr(),
6814        &lwork,
6815        iwork.as_mut_ptr(),
6816        info,
6817    )
6818}
6819
6820#[inline]
6821pub unsafe fn zgesdd(
6822    jobz: u8,
6823    m: i32,
6824    n: i32,
6825    a: &mut [c64],
6826    lda: i32,
6827    s: &mut [f64],
6828    u: &mut [c64],
6829    ldu: i32,
6830    vt: &mut [c64],
6831    ldvt: i32,
6832    work: &mut [c64],
6833    lwork: i32,
6834    rwork: &mut [f64],
6835    iwork: &mut [i32],
6836    info: &mut i32,
6837) {
6838    ffi::zgesdd_(
6839        &(jobz as c_char),
6840        &m,
6841        &n,
6842        a.as_mut_ptr() as *mut _,
6843        &lda,
6844        s.as_mut_ptr(),
6845        u.as_mut_ptr() as *mut _,
6846        &ldu,
6847        vt.as_mut_ptr() as *mut _,
6848        &ldvt,
6849        work.as_mut_ptr() as *mut _,
6850        &lwork,
6851        rwork.as_mut_ptr(),
6852        iwork.as_mut_ptr(),
6853        info,
6854    )
6855}
6856
6857#[inline]
6858pub unsafe fn cgesv(
6859    n: i32,
6860    nrhs: i32,
6861    a: &mut [c32],
6862    lda: i32,
6863    ipiv: &mut [i32],
6864    b: &mut [c32],
6865    ldb: i32,
6866    info: &mut i32,
6867) {
6868    ffi::cgesv_(
6869        &n,
6870        &nrhs,
6871        a.as_mut_ptr() as *mut _,
6872        &lda,
6873        ipiv.as_mut_ptr(),
6874        b.as_mut_ptr() as *mut _,
6875        &ldb,
6876        info,
6877    )
6878}
6879
6880#[inline]
6881pub unsafe fn dgesv(
6882    n: i32,
6883    nrhs: i32,
6884    a: &mut [f64],
6885    lda: i32,
6886    ipiv: &mut [i32],
6887    b: &mut [f64],
6888    ldb: i32,
6889    info: &mut i32,
6890) {
6891    ffi::dgesv_(
6892        &n,
6893        &nrhs,
6894        a.as_mut_ptr(),
6895        &lda,
6896        ipiv.as_mut_ptr(),
6897        b.as_mut_ptr(),
6898        &ldb,
6899        info,
6900    )
6901}
6902
6903#[inline]
6904pub unsafe fn sgesv(
6905    n: i32,
6906    nrhs: i32,
6907    a: &mut [f32],
6908    lda: i32,
6909    ipiv: &mut [i32],
6910    b: &mut [f32],
6911    ldb: i32,
6912    info: &mut i32,
6913) {
6914    ffi::sgesv_(
6915        &n,
6916        &nrhs,
6917        a.as_mut_ptr(),
6918        &lda,
6919        ipiv.as_mut_ptr(),
6920        b.as_mut_ptr(),
6921        &ldb,
6922        info,
6923    )
6924}
6925
6926#[inline]
6927pub unsafe fn zgesv(
6928    n: i32,
6929    nrhs: i32,
6930    a: &mut [c64],
6931    lda: i32,
6932    ipiv: &mut [i32],
6933    b: &mut [c64],
6934    ldb: i32,
6935    info: &mut i32,
6936) {
6937    ffi::zgesv_(
6938        &n,
6939        &nrhs,
6940        a.as_mut_ptr() as *mut _,
6941        &lda,
6942        ipiv.as_mut_ptr(),
6943        b.as_mut_ptr() as *mut _,
6944        &ldb,
6945        info,
6946    )
6947}
6948
6949#[inline]
6950pub unsafe fn dsgesv(
6951    n: i32,
6952    nrhs: i32,
6953    a: &mut [f64],
6954    lda: i32,
6955    ipiv: &mut [i32],
6956    b: &[f64],
6957    ldb: i32,
6958    x: &mut [f64],
6959    ldx: i32,
6960    work: &mut [f64],
6961    swork: &mut [f32],
6962    iter: &mut i32,
6963    info: &mut i32,
6964) {
6965    ffi::dsgesv_(
6966        &n,
6967        &nrhs,
6968        a.as_mut_ptr(),
6969        &lda,
6970        ipiv.as_mut_ptr(),
6971        b.as_ptr(),
6972        &ldb,
6973        x.as_mut_ptr(),
6974        &ldx,
6975        work.as_mut_ptr(),
6976        swork.as_mut_ptr(),
6977        iter,
6978        info,
6979    )
6980}
6981
6982#[inline]
6983pub unsafe fn zcgesv(
6984    n: i32,
6985    nrhs: i32,
6986    a: &mut [c64],
6987    lda: i32,
6988    ipiv: &mut [i32],
6989    b: &[c64],
6990    ldb: i32,
6991    x: &mut [c64],
6992    ldx: i32,
6993    work: &mut [c64],
6994    swork: &mut [c32],
6995    rwork: &mut [f64],
6996    iter: &mut i32,
6997    info: &mut i32,
6998) {
6999    ffi::zcgesv_(
7000        &n,
7001        &nrhs,
7002        a.as_mut_ptr() as *mut _,
7003        &lda,
7004        ipiv.as_mut_ptr(),
7005        b.as_ptr() as *const _,
7006        &ldb,
7007        x.as_mut_ptr() as *mut _,
7008        &ldx,
7009        work.as_mut_ptr() as *mut _,
7010        swork.as_mut_ptr() as *mut _,
7011        rwork.as_mut_ptr(),
7012        iter,
7013        info,
7014    )
7015}
7016
7017#[inline]
7018pub unsafe fn cgesvd(
7019    jobu: u8,
7020    jobvt: u8,
7021    m: i32,
7022    n: i32,
7023    a: &mut [c32],
7024    lda: i32,
7025    s: &mut [f32],
7026    u: &mut [c32],
7027    ldu: i32,
7028    vt: &mut [c32],
7029    ldvt: i32,
7030    work: &mut [c32],
7031    lwork: i32,
7032    rwork: &mut [f32],
7033    info: &mut i32,
7034) {
7035    ffi::cgesvd_(
7036        &(jobu as c_char),
7037        &(jobvt as c_char),
7038        &m,
7039        &n,
7040        a.as_mut_ptr() as *mut _,
7041        &lda,
7042        s.as_mut_ptr(),
7043        u.as_mut_ptr() as *mut _,
7044        &ldu,
7045        vt.as_mut_ptr() as *mut _,
7046        &ldvt,
7047        work.as_mut_ptr() as *mut _,
7048        &lwork,
7049        rwork.as_mut_ptr(),
7050        info,
7051    )
7052}
7053
7054#[inline]
7055pub unsafe fn dgesvd(
7056    jobu: u8,
7057    jobvt: u8,
7058    m: i32,
7059    n: i32,
7060    a: &mut [f64],
7061    lda: i32,
7062    s: &mut [f64],
7063    u: &mut [f64],
7064    ldu: i32,
7065    vt: &mut [f64],
7066    ldvt: i32,
7067    work: &mut [f64],
7068    lwork: i32,
7069    info: &mut i32,
7070) {
7071    ffi::dgesvd_(
7072        &(jobu as c_char),
7073        &(jobvt as c_char),
7074        &m,
7075        &n,
7076        a.as_mut_ptr(),
7077        &lda,
7078        s.as_mut_ptr(),
7079        u.as_mut_ptr(),
7080        &ldu,
7081        vt.as_mut_ptr(),
7082        &ldvt,
7083        work.as_mut_ptr(),
7084        &lwork,
7085        info,
7086    )
7087}
7088
7089#[inline]
7090pub unsafe fn sgesvd(
7091    jobu: u8,
7092    jobvt: u8,
7093    m: i32,
7094    n: i32,
7095    a: &mut [f32],
7096    lda: i32,
7097    s: &mut [f32],
7098    u: &mut [f32],
7099    ldu: i32,
7100    vt: &mut [f32],
7101    ldvt: i32,
7102    work: &mut [f32],
7103    lwork: i32,
7104    info: &mut i32,
7105) {
7106    ffi::sgesvd_(
7107        &(jobu as c_char),
7108        &(jobvt as c_char),
7109        &m,
7110        &n,
7111        a.as_mut_ptr(),
7112        &lda,
7113        s.as_mut_ptr(),
7114        u.as_mut_ptr(),
7115        &ldu,
7116        vt.as_mut_ptr(),
7117        &ldvt,
7118        work.as_mut_ptr(),
7119        &lwork,
7120        info,
7121    )
7122}
7123
7124#[inline]
7125pub unsafe fn zgesvd(
7126    jobu: u8,
7127    jobvt: u8,
7128    m: i32,
7129    n: i32,
7130    a: &mut [c64],
7131    lda: i32,
7132    s: &mut [f64],
7133    u: &mut [c64],
7134    ldu: i32,
7135    vt: &mut [c64],
7136    ldvt: i32,
7137    work: &mut [c64],
7138    lwork: i32,
7139    rwork: &mut [f64],
7140    info: &mut i32,
7141) {
7142    ffi::zgesvd_(
7143        &(jobu as c_char),
7144        &(jobvt as c_char),
7145        &m,
7146        &n,
7147        a.as_mut_ptr() as *mut _,
7148        &lda,
7149        s.as_mut_ptr(),
7150        u.as_mut_ptr() as *mut _,
7151        &ldu,
7152        vt.as_mut_ptr() as *mut _,
7153        &ldvt,
7154        work.as_mut_ptr() as *mut _,
7155        &lwork,
7156        rwork.as_mut_ptr(),
7157        info,
7158    )
7159}
7160
7161#[inline]
7162pub unsafe fn cgesvdq(
7163    joba: u8,
7164    jobp: u8,
7165    jobr: u8,
7166    jobu: u8,
7167    jobv: u8,
7168    m: i32,
7169    n: i32,
7170    a: &mut [c32],
7171    lda: i32,
7172    s: &mut [f32],
7173    u: &mut [c32],
7174    ldu: i32,
7175    v: &mut [c32],
7176    ldv: i32,
7177    numrank: &mut [i32],
7178    iwork: &mut [i32],
7179    liwork: i32,
7180    cwork: &mut [c32],
7181    lcwork: &mut [i32],
7182    rwork: &mut [f32],
7183    lrwork: i32,
7184    info: &mut i32,
7185) {
7186    ffi::cgesvdq_(
7187        &(joba as c_char),
7188        &(jobp as c_char),
7189        &(jobr as c_char),
7190        &(jobu as c_char),
7191        &(jobv as c_char),
7192        &m,
7193        &n,
7194        a.as_mut_ptr() as *mut _,
7195        &lda,
7196        s.as_mut_ptr(),
7197        u.as_mut_ptr() as *mut _,
7198        &ldu,
7199        v.as_mut_ptr() as *mut _,
7200        &ldv,
7201        numrank.as_mut_ptr(),
7202        iwork.as_mut_ptr(),
7203        &liwork,
7204        cwork.as_mut_ptr() as *mut _,
7205        lcwork.as_mut_ptr(),
7206        rwork.as_mut_ptr(),
7207        &lrwork,
7208        info,
7209    )
7210}
7211
7212#[inline]
7213pub unsafe fn dgesvdq(
7214    joba: u8,
7215    jobp: u8,
7216    jobr: u8,
7217    jobu: u8,
7218    jobv: u8,
7219    m: i32,
7220    n: i32,
7221    a: &mut [f64],
7222    lda: i32,
7223    s: &mut [f64],
7224    u: &mut [f64],
7225    ldu: i32,
7226    v: &mut [f64],
7227    ldv: i32,
7228    numrank: &mut [i32],
7229    iwork: &mut [i32],
7230    liwork: i32,
7231    work: &mut [f64],
7232    lwork: &mut i32,
7233    rwork: &mut [f64],
7234    lrwork: i32,
7235    info: &mut i32,
7236) {
7237    ffi::dgesvdq_(
7238        &(joba as c_char),
7239        &(jobp as c_char),
7240        &(jobr as c_char),
7241        &(jobu as c_char),
7242        &(jobv as c_char),
7243        &m,
7244        &n,
7245        a.as_mut_ptr(),
7246        &lda,
7247        s.as_mut_ptr(),
7248        u.as_mut_ptr(),
7249        &ldu,
7250        v.as_mut_ptr(),
7251        &ldv,
7252        numrank.as_mut_ptr(),
7253        iwork.as_mut_ptr(),
7254        &liwork,
7255        work.as_mut_ptr(),
7256        lwork,
7257        rwork.as_mut_ptr(),
7258        &lrwork,
7259        info,
7260    )
7261}
7262
7263#[inline]
7264pub unsafe fn sgesvdq(
7265    joba: u8,
7266    jobp: u8,
7267    jobr: u8,
7268    jobu: u8,
7269    jobv: u8,
7270    m: i32,
7271    n: i32,
7272    a: &mut [f32],
7273    lda: i32,
7274    s: &mut [f32],
7275    u: &mut [f32],
7276    ldu: i32,
7277    v: &mut [f32],
7278    ldv: i32,
7279    numrank: &mut [i32],
7280    iwork: &mut [i32],
7281    liwork: i32,
7282    work: &mut [f32],
7283    lwork: &mut i32,
7284    rwork: &mut [f32],
7285    lrwork: i32,
7286    info: &mut i32,
7287) {
7288    ffi::sgesvdq_(
7289        &(joba as c_char),
7290        &(jobp as c_char),
7291        &(jobr as c_char),
7292        &(jobu as c_char),
7293        &(jobv as c_char),
7294        &m,
7295        &n,
7296        a.as_mut_ptr(),
7297        &lda,
7298        s.as_mut_ptr(),
7299        u.as_mut_ptr(),
7300        &ldu,
7301        v.as_mut_ptr(),
7302        &ldv,
7303        numrank.as_mut_ptr(),
7304        iwork.as_mut_ptr(),
7305        &liwork,
7306        work.as_mut_ptr(),
7307        lwork,
7308        rwork.as_mut_ptr(),
7309        &lrwork,
7310        info,
7311    )
7312}
7313
7314#[inline]
7315pub unsafe fn zgesvdq(
7316    joba: u8,
7317    jobp: u8,
7318    jobr: u8,
7319    jobu: u8,
7320    jobv: u8,
7321    m: i32,
7322    n: i32,
7323    a: &mut [c64],
7324    lda: i32,
7325    s: &mut [f64],
7326    u: &mut [c64],
7327    ldu: i32,
7328    v: &mut [c64],
7329    ldv: i32,
7330    numrank: &mut [i32],
7331    iwork: &mut [i32],
7332    liwork: i32,
7333    cwork: &mut [c64],
7334    lcwork: &mut [i32],
7335    rwork: &mut [f64],
7336    lrwork: i32,
7337    info: &mut i32,
7338) {
7339    ffi::zgesvdq_(
7340        &(joba as c_char),
7341        &(jobp as c_char),
7342        &(jobr as c_char),
7343        &(jobu as c_char),
7344        &(jobv as c_char),
7345        &m,
7346        &n,
7347        a.as_mut_ptr() as *mut _,
7348        &lda,
7349        s.as_mut_ptr(),
7350        u.as_mut_ptr() as *mut _,
7351        &ldu,
7352        v.as_mut_ptr() as *mut _,
7353        &ldv,
7354        numrank.as_mut_ptr(),
7355        iwork.as_mut_ptr(),
7356        &liwork,
7357        cwork.as_mut_ptr() as *mut _,
7358        lcwork.as_mut_ptr(),
7359        rwork.as_mut_ptr(),
7360        &lrwork,
7361        info,
7362    )
7363}
7364
7365#[inline]
7366pub unsafe fn cgesvdx(
7367    jobu: u8,
7368    jobvt: u8,
7369    range: u8,
7370    m: i32,
7371    n: i32,
7372    a: &mut [c32],
7373    lda: i32,
7374    vl: f32,
7375    vu: f32,
7376    il: i32,
7377    iu: i32,
7378    ns: &mut [i32],
7379    s: &mut [f32],
7380    u: &mut [c32],
7381    ldu: i32,
7382    vt: &mut [c32],
7383    ldvt: i32,
7384    work: &mut [c32],
7385    lwork: i32,
7386    rwork: &mut [f32],
7387    iwork: &mut [i32],
7388    info: &mut i32,
7389) {
7390    ffi::cgesvdx_(
7391        &(jobu as c_char),
7392        &(jobvt as c_char),
7393        &(range as c_char),
7394        &m,
7395        &n,
7396        a.as_mut_ptr() as *mut _,
7397        &lda,
7398        &vl,
7399        &vu,
7400        &il,
7401        &iu,
7402        ns.as_mut_ptr(),
7403        s.as_mut_ptr(),
7404        u.as_mut_ptr() as *mut _,
7405        &ldu,
7406        vt.as_mut_ptr() as *mut _,
7407        &ldvt,
7408        work.as_mut_ptr() as *mut _,
7409        &lwork,
7410        rwork.as_mut_ptr(),
7411        iwork.as_mut_ptr(),
7412        info,
7413    )
7414}
7415
7416#[inline]
7417pub unsafe fn dgesvdx(
7418    jobu: u8,
7419    jobvt: u8,
7420    range: u8,
7421    m: i32,
7422    n: i32,
7423    a: &mut [f64],
7424    lda: i32,
7425    vl: f64,
7426    vu: f64,
7427    il: i32,
7428    iu: i32,
7429    ns: &mut [i32],
7430    s: &mut [f64],
7431    u: &mut [f64],
7432    ldu: i32,
7433    vt: &mut [f64],
7434    ldvt: i32,
7435    work: &mut [f64],
7436    lwork: i32,
7437    iwork: &mut [i32],
7438    info: &mut i32,
7439) {
7440    ffi::dgesvdx_(
7441        &(jobu as c_char),
7442        &(jobvt as c_char),
7443        &(range as c_char),
7444        &m,
7445        &n,
7446        a.as_mut_ptr(),
7447        &lda,
7448        &vl,
7449        &vu,
7450        &il,
7451        &iu,
7452        ns.as_mut_ptr(),
7453        s.as_mut_ptr(),
7454        u.as_mut_ptr(),
7455        &ldu,
7456        vt.as_mut_ptr(),
7457        &ldvt,
7458        work.as_mut_ptr(),
7459        &lwork,
7460        iwork.as_mut_ptr(),
7461        info,
7462    )
7463}
7464
7465#[inline]
7466pub unsafe fn sgesvdx(
7467    jobu: u8,
7468    jobvt: u8,
7469    range: u8,
7470    m: i32,
7471    n: i32,
7472    a: &mut [f32],
7473    lda: i32,
7474    vl: f32,
7475    vu: f32,
7476    il: i32,
7477    iu: i32,
7478    ns: &mut [i32],
7479    s: &mut [f32],
7480    u: &mut [f32],
7481    ldu: i32,
7482    vt: &mut [f32],
7483    ldvt: i32,
7484    work: &mut [f32],
7485    lwork: i32,
7486    iwork: &mut [i32],
7487    info: &mut i32,
7488) {
7489    ffi::sgesvdx_(
7490        &(jobu as c_char),
7491        &(jobvt as c_char),
7492        &(range as c_char),
7493        &m,
7494        &n,
7495        a.as_mut_ptr(),
7496        &lda,
7497        &vl,
7498        &vu,
7499        &il,
7500        &iu,
7501        ns.as_mut_ptr(),
7502        s.as_mut_ptr(),
7503        u.as_mut_ptr(),
7504        &ldu,
7505        vt.as_mut_ptr(),
7506        &ldvt,
7507        work.as_mut_ptr(),
7508        &lwork,
7509        iwork.as_mut_ptr(),
7510        info,
7511    )
7512}
7513
7514#[inline]
7515pub unsafe fn zgesvdx(
7516    jobu: u8,
7517    jobvt: u8,
7518    range: u8,
7519    m: i32,
7520    n: i32,
7521    a: &mut [c64],
7522    lda: i32,
7523    vl: f64,
7524    vu: f64,
7525    il: i32,
7526    iu: i32,
7527    ns: &mut [i32],
7528    s: &mut [f64],
7529    u: &mut [c64],
7530    ldu: i32,
7531    vt: &mut [c64],
7532    ldvt: i32,
7533    work: &mut [c64],
7534    lwork: i32,
7535    rwork: &mut [f64],
7536    iwork: &mut [i32],
7537    info: &mut i32,
7538) {
7539    ffi::zgesvdx_(
7540        &(jobu as c_char),
7541        &(jobvt as c_char),
7542        &(range as c_char),
7543        &m,
7544        &n,
7545        a.as_mut_ptr() as *mut _,
7546        &lda,
7547        &vl,
7548        &vu,
7549        &il,
7550        &iu,
7551        ns.as_mut_ptr(),
7552        s.as_mut_ptr(),
7553        u.as_mut_ptr() as *mut _,
7554        &ldu,
7555        vt.as_mut_ptr() as *mut _,
7556        &ldvt,
7557        work.as_mut_ptr() as *mut _,
7558        &lwork,
7559        rwork.as_mut_ptr(),
7560        iwork.as_mut_ptr(),
7561        info,
7562    )
7563}
7564
7565#[inline]
7566pub unsafe fn cgesvj(
7567    joba: u8,
7568    jobu: u8,
7569    jobv: u8,
7570    m: i32,
7571    n: i32,
7572    a: &mut [c32],
7573    lda: i32,
7574    sva: &mut [f32],
7575    mv: &[i32],
7576    v: &mut [c32],
7577    ldv: i32,
7578    cwork: &mut [c32],
7579    lwork: i32,
7580    rwork: &mut [f32],
7581    lrwork: i32,
7582    info: &mut i32,
7583) {
7584    ffi::cgesvj_(
7585        &(joba as c_char),
7586        &(jobu as c_char),
7587        &(jobv as c_char),
7588        &m,
7589        &n,
7590        a.as_mut_ptr() as *mut _,
7591        &lda,
7592        sva.as_mut_ptr(),
7593        mv.as_ptr(),
7594        v.as_mut_ptr() as *mut _,
7595        &ldv,
7596        cwork.as_mut_ptr() as *mut _,
7597        &lwork,
7598        rwork.as_mut_ptr(),
7599        &lrwork,
7600        info,
7601    )
7602}
7603
7604#[inline]
7605pub unsafe fn dgesvj(
7606    joba: u8,
7607    jobu: u8,
7608    jobv: u8,
7609    m: i32,
7610    n: i32,
7611    a: &mut [f64],
7612    lda: i32,
7613    sva: &mut [f64],
7614    mv: &[i32],
7615    v: &mut [f64],
7616    ldv: i32,
7617    work: &mut [f64],
7618    lwork: i32,
7619    info: &mut i32,
7620) {
7621    ffi::dgesvj_(
7622        &(joba as c_char),
7623        &(jobu as c_char),
7624        &(jobv as c_char),
7625        &m,
7626        &n,
7627        a.as_mut_ptr(),
7628        &lda,
7629        sva.as_mut_ptr(),
7630        mv.as_ptr(),
7631        v.as_mut_ptr(),
7632        &ldv,
7633        work.as_mut_ptr(),
7634        &lwork,
7635        info,
7636    )
7637}
7638
7639#[inline]
7640pub unsafe fn sgesvj(
7641    joba: u8,
7642    jobu: u8,
7643    jobv: u8,
7644    m: i32,
7645    n: i32,
7646    a: &mut [f32],
7647    lda: i32,
7648    sva: &mut [f32],
7649    mv: &[i32],
7650    v: &mut [f32],
7651    ldv: i32,
7652    work: &mut [f32],
7653    lwork: i32,
7654    info: &mut i32,
7655) {
7656    ffi::sgesvj_(
7657        &(joba as c_char),
7658        &(jobu as c_char),
7659        &(jobv as c_char),
7660        &m,
7661        &n,
7662        a.as_mut_ptr(),
7663        &lda,
7664        sva.as_mut_ptr(),
7665        mv.as_ptr(),
7666        v.as_mut_ptr(),
7667        &ldv,
7668        work.as_mut_ptr(),
7669        &lwork,
7670        info,
7671    )
7672}
7673
7674#[inline]
7675pub unsafe fn zgesvj(
7676    joba: u8,
7677    jobu: u8,
7678    jobv: u8,
7679    m: i32,
7680    n: i32,
7681    a: &mut [c64],
7682    lda: i32,
7683    sva: &mut [f64],
7684    mv: &[i32],
7685    v: &mut [c64],
7686    ldv: i32,
7687    cwork: &mut [c64],
7688    lwork: i32,
7689    rwork: &mut [f64],
7690    lrwork: i32,
7691    info: &mut i32,
7692) {
7693    ffi::zgesvj_(
7694        &(joba as c_char),
7695        &(jobu as c_char),
7696        &(jobv as c_char),
7697        &m,
7698        &n,
7699        a.as_mut_ptr() as *mut _,
7700        &lda,
7701        sva.as_mut_ptr(),
7702        mv.as_ptr(),
7703        v.as_mut_ptr() as *mut _,
7704        &ldv,
7705        cwork.as_mut_ptr() as *mut _,
7706        &lwork,
7707        rwork.as_mut_ptr(),
7708        &lrwork,
7709        info,
7710    )
7711}
7712
7713#[inline]
7714pub unsafe fn cgesvx(
7715    fact: u8,
7716    trans: u8,
7717    n: i32,
7718    nrhs: i32,
7719    a: &mut [c32],
7720    lda: i32,
7721    af: &mut [c32],
7722    ldaf: i32,
7723    ipiv: &mut [i32],
7724    equed: &mut u8,
7725    r: &mut [f32],
7726    c: &mut [f32],
7727    b: &mut [c32],
7728    ldb: i32,
7729    x: &mut [c32],
7730    ldx: i32,
7731    rcond: &mut f32,
7732    ferr: &mut [f32],
7733    berr: &mut [f32],
7734    work: &mut [c32],
7735    rwork: &mut [f32],
7736    info: &mut i32,
7737) {
7738    ffi::cgesvx_(
7739        &(fact as c_char),
7740        &(trans as c_char),
7741        &n,
7742        &nrhs,
7743        a.as_mut_ptr() as *mut _,
7744        &lda,
7745        af.as_mut_ptr() as *mut _,
7746        &ldaf,
7747        ipiv.as_mut_ptr(),
7748        equed as *mut _ as *mut _,
7749        r.as_mut_ptr(),
7750        c.as_mut_ptr(),
7751        b.as_mut_ptr() as *mut _,
7752        &ldb,
7753        x.as_mut_ptr() as *mut _,
7754        &ldx,
7755        rcond,
7756        ferr.as_mut_ptr(),
7757        berr.as_mut_ptr(),
7758        work.as_mut_ptr() as *mut _,
7759        rwork.as_mut_ptr(),
7760        info,
7761    )
7762}
7763
7764#[inline]
7765pub unsafe fn dgesvx(
7766    fact: u8,
7767    trans: u8,
7768    n: i32,
7769    nrhs: i32,
7770    a: &mut [f64],
7771    lda: i32,
7772    af: &mut [f64],
7773    ldaf: i32,
7774    ipiv: &mut [i32],
7775    equed: &mut u8,
7776    r: &mut [f64],
7777    c: &mut [f64],
7778    b: &mut [f64],
7779    ldb: i32,
7780    x: &mut [f64],
7781    ldx: i32,
7782    rcond: &mut f64,
7783    ferr: &mut [f64],
7784    berr: &mut [f64],
7785    work: &mut [f64],
7786    iwork: &mut [i32],
7787    info: &mut i32,
7788) {
7789    ffi::dgesvx_(
7790        &(fact as c_char),
7791        &(trans as c_char),
7792        &n,
7793        &nrhs,
7794        a.as_mut_ptr(),
7795        &lda,
7796        af.as_mut_ptr(),
7797        &ldaf,
7798        ipiv.as_mut_ptr(),
7799        equed as *mut _ as *mut _,
7800        r.as_mut_ptr(),
7801        c.as_mut_ptr(),
7802        b.as_mut_ptr(),
7803        &ldb,
7804        x.as_mut_ptr(),
7805        &ldx,
7806        rcond,
7807        ferr.as_mut_ptr(),
7808        berr.as_mut_ptr(),
7809        work.as_mut_ptr(),
7810        iwork.as_mut_ptr(),
7811        info,
7812    )
7813}
7814
7815#[inline]
7816pub unsafe fn sgesvx(
7817    fact: u8,
7818    trans: u8,
7819    n: i32,
7820    nrhs: i32,
7821    a: &mut [f32],
7822    lda: i32,
7823    af: &mut [f32],
7824    ldaf: i32,
7825    ipiv: &mut [i32],
7826    equed: &mut u8,
7827    r: &mut [f32],
7828    c: &mut [f32],
7829    b: &mut [f32],
7830    ldb: i32,
7831    x: &mut [f32],
7832    ldx: i32,
7833    rcond: &mut f32,
7834    ferr: &mut [f32],
7835    berr: &mut [f32],
7836    work: &mut [f32],
7837    iwork: &mut [i32],
7838    info: &mut i32,
7839) {
7840    ffi::sgesvx_(
7841        &(fact as c_char),
7842        &(trans as c_char),
7843        &n,
7844        &nrhs,
7845        a.as_mut_ptr(),
7846        &lda,
7847        af.as_mut_ptr(),
7848        &ldaf,
7849        ipiv.as_mut_ptr(),
7850        equed as *mut _ as *mut _,
7851        r.as_mut_ptr(),
7852        c.as_mut_ptr(),
7853        b.as_mut_ptr(),
7854        &ldb,
7855        x.as_mut_ptr(),
7856        &ldx,
7857        rcond,
7858        ferr.as_mut_ptr(),
7859        berr.as_mut_ptr(),
7860        work.as_mut_ptr(),
7861        iwork.as_mut_ptr(),
7862        info,
7863    )
7864}
7865
7866#[inline]
7867pub unsafe fn zgesvx(
7868    fact: u8,
7869    trans: u8,
7870    n: i32,
7871    nrhs: i32,
7872    a: &mut [c64],
7873    lda: i32,
7874    af: &mut [c64],
7875    ldaf: i32,
7876    ipiv: &mut [i32],
7877    equed: &mut u8,
7878    r: &mut [f64],
7879    c: &mut [f64],
7880    b: &mut [c64],
7881    ldb: i32,
7882    x: &mut [c64],
7883    ldx: i32,
7884    rcond: &mut f64,
7885    ferr: &mut [f64],
7886    berr: &mut [f64],
7887    work: &mut [c64],
7888    rwork: &mut [f64],
7889    info: &mut i32,
7890) {
7891    ffi::zgesvx_(
7892        &(fact as c_char),
7893        &(trans as c_char),
7894        &n,
7895        &nrhs,
7896        a.as_mut_ptr() as *mut _,
7897        &lda,
7898        af.as_mut_ptr() as *mut _,
7899        &ldaf,
7900        ipiv.as_mut_ptr(),
7901        equed as *mut _ as *mut _,
7902        r.as_mut_ptr(),
7903        c.as_mut_ptr(),
7904        b.as_mut_ptr() as *mut _,
7905        &ldb,
7906        x.as_mut_ptr() as *mut _,
7907        &ldx,
7908        rcond,
7909        ferr.as_mut_ptr(),
7910        berr.as_mut_ptr(),
7911        work.as_mut_ptr() as *mut _,
7912        rwork.as_mut_ptr(),
7913        info,
7914    )
7915}
7916
7917#[inline]
7918pub unsafe fn cgesvxx(
7919    fact: u8,
7920    trans: u8,
7921    n: i32,
7922    nrhs: i32,
7923    a: &mut [c32],
7924    lda: i32,
7925    af: &mut [c32],
7926    ldaf: i32,
7927    ipiv: &mut [i32],
7928    equed: &mut u8,
7929    r: &mut [f32],
7930    c: &mut [f32],
7931    b: &mut [c32],
7932    ldb: i32,
7933    x: &mut [c32],
7934    ldx: i32,
7935    rcond: &mut f32,
7936    rpvgrw: &mut f32,
7937    berr: &mut [f32],
7938    n_err_bnds: i32,
7939    err_bnds_norm: &mut [f32],
7940    err_bnds_comp: &mut [f32],
7941    nparams: &[i32],
7942    params: &mut [f32],
7943    work: &mut [c32],
7944    rwork: &mut [f32],
7945    info: &mut i32,
7946) {
7947    ffi::cgesvxx_(
7948        &(fact as c_char),
7949        &(trans as c_char),
7950        &n,
7951        &nrhs,
7952        a.as_mut_ptr() as *mut _,
7953        &lda,
7954        af.as_mut_ptr() as *mut _,
7955        &ldaf,
7956        ipiv.as_mut_ptr(),
7957        equed as *mut _ as *mut _,
7958        r.as_mut_ptr(),
7959        c.as_mut_ptr(),
7960        b.as_mut_ptr() as *mut _,
7961        &ldb,
7962        x.as_mut_ptr() as *mut _,
7963        &ldx,
7964        rcond,
7965        rpvgrw,
7966        berr.as_mut_ptr(),
7967        &n_err_bnds,
7968        err_bnds_norm.as_mut_ptr(),
7969        err_bnds_comp.as_mut_ptr(),
7970        nparams.as_ptr(),
7971        params.as_mut_ptr(),
7972        work.as_mut_ptr() as *mut _,
7973        rwork.as_mut_ptr(),
7974        info,
7975    )
7976}
7977
7978#[inline]
7979pub unsafe fn dgesvxx(
7980    fact: u8,
7981    trans: u8,
7982    n: i32,
7983    nrhs: i32,
7984    a: &mut [f64],
7985    lda: i32,
7986    af: &mut [f64],
7987    ldaf: i32,
7988    ipiv: &mut [i32],
7989    equed: &mut u8,
7990    r: &mut [f64],
7991    c: &mut [f64],
7992    b: &mut [f64],
7993    ldb: i32,
7994    x: &mut [f64],
7995    ldx: i32,
7996    rcond: &mut f64,
7997    rpvgrw: &mut f64,
7998    berr: &mut [f64],
7999    n_err_bnds: i32,
8000    err_bnds_norm: &mut [f64],
8001    err_bnds_comp: &mut [f64],
8002    nparams: &[i32],
8003    params: &mut [f64],
8004    work: &mut [f64],
8005    iwork: &mut [i32],
8006    info: &mut i32,
8007) {
8008    ffi::dgesvxx_(
8009        &(fact as c_char),
8010        &(trans as c_char),
8011        &n,
8012        &nrhs,
8013        a.as_mut_ptr(),
8014        &lda,
8015        af.as_mut_ptr(),
8016        &ldaf,
8017        ipiv.as_mut_ptr(),
8018        equed as *mut _ as *mut _,
8019        r.as_mut_ptr(),
8020        c.as_mut_ptr(),
8021        b.as_mut_ptr(),
8022        &ldb,
8023        x.as_mut_ptr(),
8024        &ldx,
8025        rcond,
8026        rpvgrw,
8027        berr.as_mut_ptr(),
8028        &n_err_bnds,
8029        err_bnds_norm.as_mut_ptr(),
8030        err_bnds_comp.as_mut_ptr(),
8031        nparams.as_ptr(),
8032        params.as_mut_ptr(),
8033        work.as_mut_ptr(),
8034        iwork.as_mut_ptr(),
8035        info,
8036    )
8037}
8038
8039#[inline]
8040pub unsafe fn sgesvxx(
8041    fact: u8,
8042    trans: u8,
8043    n: i32,
8044    nrhs: i32,
8045    a: &mut [f32],
8046    lda: i32,
8047    af: &mut [f32],
8048    ldaf: i32,
8049    ipiv: &mut [i32],
8050    equed: &mut u8,
8051    r: &mut [f32],
8052    c: &mut [f32],
8053    b: &mut [f32],
8054    ldb: i32,
8055    x: &mut [f32],
8056    ldx: i32,
8057    rcond: &mut f32,
8058    rpvgrw: &mut f32,
8059    berr: &mut [f32],
8060    n_err_bnds: i32,
8061    err_bnds_norm: &mut [f32],
8062    err_bnds_comp: &mut [f32],
8063    nparams: &[i32],
8064    params: &mut [f32],
8065    work: &mut [f32],
8066    iwork: &mut [i32],
8067    info: &mut i32,
8068) {
8069    ffi::sgesvxx_(
8070        &(fact as c_char),
8071        &(trans as c_char),
8072        &n,
8073        &nrhs,
8074        a.as_mut_ptr(),
8075        &lda,
8076        af.as_mut_ptr(),
8077        &ldaf,
8078        ipiv.as_mut_ptr(),
8079        equed as *mut _ as *mut _,
8080        r.as_mut_ptr(),
8081        c.as_mut_ptr(),
8082        b.as_mut_ptr(),
8083        &ldb,
8084        x.as_mut_ptr(),
8085        &ldx,
8086        rcond,
8087        rpvgrw,
8088        berr.as_mut_ptr(),
8089        &n_err_bnds,
8090        err_bnds_norm.as_mut_ptr(),
8091        err_bnds_comp.as_mut_ptr(),
8092        nparams.as_ptr(),
8093        params.as_mut_ptr(),
8094        work.as_mut_ptr(),
8095        iwork.as_mut_ptr(),
8096        info,
8097    )
8098}
8099
8100#[inline]
8101pub unsafe fn zgesvxx(
8102    fact: u8,
8103    trans: u8,
8104    n: i32,
8105    nrhs: i32,
8106    a: &mut [c64],
8107    lda: i32,
8108    af: &mut [c64],
8109    ldaf: i32,
8110    ipiv: &mut [i32],
8111    equed: &mut u8,
8112    r: &mut [f64],
8113    c: &mut [f64],
8114    b: &mut [c64],
8115    ldb: i32,
8116    x: &mut [c64],
8117    ldx: i32,
8118    rcond: &mut f64,
8119    rpvgrw: &mut f64,
8120    berr: &mut [f64],
8121    n_err_bnds: i32,
8122    err_bnds_norm: &mut [f64],
8123    err_bnds_comp: &mut [f64],
8124    nparams: &[i32],
8125    params: &mut [f64],
8126    work: &mut [c64],
8127    rwork: &mut [f64],
8128    info: &mut i32,
8129) {
8130    ffi::zgesvxx_(
8131        &(fact as c_char),
8132        &(trans as c_char),
8133        &n,
8134        &nrhs,
8135        a.as_mut_ptr() as *mut _,
8136        &lda,
8137        af.as_mut_ptr() as *mut _,
8138        &ldaf,
8139        ipiv.as_mut_ptr(),
8140        equed as *mut _ as *mut _,
8141        r.as_mut_ptr(),
8142        c.as_mut_ptr(),
8143        b.as_mut_ptr() as *mut _,
8144        &ldb,
8145        x.as_mut_ptr() as *mut _,
8146        &ldx,
8147        rcond,
8148        rpvgrw,
8149        berr.as_mut_ptr(),
8150        &n_err_bnds,
8151        err_bnds_norm.as_mut_ptr(),
8152        err_bnds_comp.as_mut_ptr(),
8153        nparams.as_ptr(),
8154        params.as_mut_ptr(),
8155        work.as_mut_ptr() as *mut _,
8156        rwork.as_mut_ptr(),
8157        info,
8158    )
8159}
8160
8161#[inline]
8162pub unsafe fn cgetf2(m: i32, n: i32, a: &mut [c32], lda: i32, ipiv: &mut [i32], info: &mut i32) {
8163    ffi::cgetf2_(
8164        &m,
8165        &n,
8166        a.as_mut_ptr() as *mut _,
8167        &lda,
8168        ipiv.as_mut_ptr(),
8169        info,
8170    )
8171}
8172
8173#[inline]
8174pub unsafe fn dgetf2(m: i32, n: i32, a: &mut [f64], lda: i32, ipiv: &mut [i32], info: &mut i32) {
8175    ffi::dgetf2_(&m, &n, a.as_mut_ptr(), &lda, ipiv.as_mut_ptr(), info)
8176}
8177
8178#[inline]
8179pub unsafe fn sgetf2(m: i32, n: i32, a: &mut [f32], lda: i32, ipiv: &mut [i32], info: &mut i32) {
8180    ffi::sgetf2_(&m, &n, a.as_mut_ptr(), &lda, ipiv.as_mut_ptr(), info)
8181}
8182
8183#[inline]
8184pub unsafe fn zgetf2(m: i32, n: i32, a: &mut [c64], lda: i32, ipiv: &mut [i32], info: &mut i32) {
8185    ffi::zgetf2_(
8186        &m,
8187        &n,
8188        a.as_mut_ptr() as *mut _,
8189        &lda,
8190        ipiv.as_mut_ptr(),
8191        info,
8192    )
8193}
8194
8195#[inline]
8196pub unsafe fn cgetrf(m: i32, n: i32, a: &mut [c32], lda: i32, ipiv: &mut [i32], info: &mut i32) {
8197    ffi::cgetrf_(
8198        &m,
8199        &n,
8200        a.as_mut_ptr() as *mut _,
8201        &lda,
8202        ipiv.as_mut_ptr(),
8203        info,
8204    )
8205}
8206
8207#[inline]
8208pub unsafe fn dgetrf(m: i32, n: i32, a: &mut [f64], lda: i32, ipiv: &mut [i32], info: &mut i32) {
8209    ffi::dgetrf_(&m, &n, a.as_mut_ptr(), &lda, ipiv.as_mut_ptr(), info)
8210}
8211
8212#[inline]
8213pub unsafe fn sgetrf(m: i32, n: i32, a: &mut [f32], lda: i32, ipiv: &mut [i32], info: &mut i32) {
8214    ffi::sgetrf_(&m, &n, a.as_mut_ptr(), &lda, ipiv.as_mut_ptr(), info)
8215}
8216
8217#[inline]
8218pub unsafe fn zgetrf(m: i32, n: i32, a: &mut [c64], lda: i32, ipiv: &mut [i32], info: &mut i32) {
8219    ffi::zgetrf_(
8220        &m,
8221        &n,
8222        a.as_mut_ptr() as *mut _,
8223        &lda,
8224        ipiv.as_mut_ptr(),
8225        info,
8226    )
8227}
8228
8229#[inline]
8230pub unsafe fn cgetrf2(m: i32, n: i32, a: &mut [c32], lda: i32, ipiv: &mut [i32], info: &mut i32) {
8231    ffi::cgetrf2_(
8232        &m,
8233        &n,
8234        a.as_mut_ptr() as *mut _,
8235        &lda,
8236        ipiv.as_mut_ptr(),
8237        info,
8238    )
8239}
8240
8241#[inline]
8242pub unsafe fn dgetrf2(m: i32, n: i32, a: &mut [f64], lda: i32, ipiv: &mut [i32], info: &mut i32) {
8243    ffi::dgetrf2_(&m, &n, a.as_mut_ptr(), &lda, ipiv.as_mut_ptr(), info)
8244}
8245
8246#[inline]
8247pub unsafe fn sgetrf2(m: i32, n: i32, a: &mut [f32], lda: i32, ipiv: &mut [i32], info: &mut i32) {
8248    ffi::sgetrf2_(&m, &n, a.as_mut_ptr(), &lda, ipiv.as_mut_ptr(), info)
8249}
8250
8251#[inline]
8252pub unsafe fn zgetrf2(m: i32, n: i32, a: &mut [c64], lda: i32, ipiv: &mut [i32], info: &mut i32) {
8253    ffi::zgetrf2_(
8254        &m,
8255        &n,
8256        a.as_mut_ptr() as *mut _,
8257        &lda,
8258        ipiv.as_mut_ptr(),
8259        info,
8260    )
8261}
8262
8263#[inline]
8264pub unsafe fn cgetri(
8265    n: i32,
8266    a: &mut [c32],
8267    lda: i32,
8268    ipiv: &[i32],
8269    work: &mut [c32],
8270    lwork: i32,
8271    info: &mut i32,
8272) {
8273    ffi::cgetri_(
8274        &n,
8275        a.as_mut_ptr() as *mut _,
8276        &lda,
8277        ipiv.as_ptr(),
8278        work.as_mut_ptr() as *mut _,
8279        &lwork,
8280        info,
8281    )
8282}
8283
8284#[inline]
8285pub unsafe fn dgetri(
8286    n: i32,
8287    a: &mut [f64],
8288    lda: i32,
8289    ipiv: &[i32],
8290    work: &mut [f64],
8291    lwork: i32,
8292    info: &mut i32,
8293) {
8294    ffi::dgetri_(
8295        &n,
8296        a.as_mut_ptr(),
8297        &lda,
8298        ipiv.as_ptr(),
8299        work.as_mut_ptr(),
8300        &lwork,
8301        info,
8302    )
8303}
8304
8305#[inline]
8306pub unsafe fn sgetri(
8307    n: i32,
8308    a: &mut [f32],
8309    lda: i32,
8310    ipiv: &[i32],
8311    work: &mut [f32],
8312    lwork: i32,
8313    info: &mut i32,
8314) {
8315    ffi::sgetri_(
8316        &n,
8317        a.as_mut_ptr(),
8318        &lda,
8319        ipiv.as_ptr(),
8320        work.as_mut_ptr(),
8321        &lwork,
8322        info,
8323    )
8324}
8325
8326#[inline]
8327pub unsafe fn zgetri(
8328    n: i32,
8329    a: &mut [c64],
8330    lda: i32,
8331    ipiv: &[i32],
8332    work: &mut [c64],
8333    lwork: i32,
8334    info: &mut i32,
8335) {
8336    ffi::zgetri_(
8337        &n,
8338        a.as_mut_ptr() as *mut _,
8339        &lda,
8340        ipiv.as_ptr(),
8341        work.as_mut_ptr() as *mut _,
8342        &lwork,
8343        info,
8344    )
8345}
8346
8347#[inline]
8348pub unsafe fn cgetrs(
8349    trans: u8,
8350    n: i32,
8351    nrhs: i32,
8352    a: &[c32],
8353    lda: i32,
8354    ipiv: &[i32],
8355    b: &mut [c32],
8356    ldb: i32,
8357    info: &mut i32,
8358) {
8359    ffi::cgetrs_(
8360        &(trans as c_char),
8361        &n,
8362        &nrhs,
8363        a.as_ptr() as *const _,
8364        &lda,
8365        ipiv.as_ptr(),
8366        b.as_mut_ptr() as *mut _,
8367        &ldb,
8368        info,
8369    )
8370}
8371
8372#[inline]
8373pub unsafe fn dgetrs(
8374    trans: u8,
8375    n: i32,
8376    nrhs: i32,
8377    a: &[f64],
8378    lda: i32,
8379    ipiv: &[i32],
8380    b: &mut [f64],
8381    ldb: i32,
8382    info: &mut i32,
8383) {
8384    ffi::dgetrs_(
8385        &(trans as c_char),
8386        &n,
8387        &nrhs,
8388        a.as_ptr(),
8389        &lda,
8390        ipiv.as_ptr(),
8391        b.as_mut_ptr(),
8392        &ldb,
8393        info,
8394    )
8395}
8396
8397#[inline]
8398pub unsafe fn sgetrs(
8399    trans: u8,
8400    n: i32,
8401    nrhs: i32,
8402    a: &[f32],
8403    lda: i32,
8404    ipiv: &[i32],
8405    b: &mut [f32],
8406    ldb: i32,
8407    info: &mut i32,
8408) {
8409    ffi::sgetrs_(
8410        &(trans as c_char),
8411        &n,
8412        &nrhs,
8413        a.as_ptr(),
8414        &lda,
8415        ipiv.as_ptr(),
8416        b.as_mut_ptr(),
8417        &ldb,
8418        info,
8419    )
8420}
8421
8422#[inline]
8423pub unsafe fn zgetrs(
8424    trans: u8,
8425    n: i32,
8426    nrhs: i32,
8427    a: &[c64],
8428    lda: i32,
8429    ipiv: &[i32],
8430    b: &mut [c64],
8431    ldb: i32,
8432    info: &mut i32,
8433) {
8434    ffi::zgetrs_(
8435        &(trans as c_char),
8436        &n,
8437        &nrhs,
8438        a.as_ptr() as *const _,
8439        &lda,
8440        ipiv.as_ptr(),
8441        b.as_mut_ptr() as *mut _,
8442        &ldb,
8443        info,
8444    )
8445}
8446
8447#[inline]
8448pub unsafe fn cgetsls(
8449    trans: u8,
8450    m: i32,
8451    n: i32,
8452    nrhs: i32,
8453    a: &mut [c32],
8454    lda: i32,
8455    b: &mut [c32],
8456    ldb: i32,
8457    work: &mut [c32],
8458    lwork: i32,
8459    info: &mut i32,
8460) {
8461    ffi::cgetsls_(
8462        &(trans as c_char),
8463        &m,
8464        &n,
8465        &nrhs,
8466        a.as_mut_ptr() as *mut _,
8467        &lda,
8468        b.as_mut_ptr() as *mut _,
8469        &ldb,
8470        work.as_mut_ptr() as *mut _,
8471        &lwork,
8472        info,
8473    )
8474}
8475
8476#[inline]
8477pub unsafe fn dgetsls(
8478    trans: u8,
8479    m: i32,
8480    n: i32,
8481    nrhs: i32,
8482    a: &mut [f64],
8483    lda: i32,
8484    b: &mut [f64],
8485    ldb: i32,
8486    work: &mut [f64],
8487    lwork: i32,
8488    info: &mut i32,
8489) {
8490    ffi::dgetsls_(
8491        &(trans as c_char),
8492        &m,
8493        &n,
8494        &nrhs,
8495        a.as_mut_ptr(),
8496        &lda,
8497        b.as_mut_ptr(),
8498        &ldb,
8499        work.as_mut_ptr(),
8500        &lwork,
8501        info,
8502    )
8503}
8504
8505#[inline]
8506pub unsafe fn sgetsls(
8507    trans: u8,
8508    m: i32,
8509    n: i32,
8510    nrhs: i32,
8511    a: &mut [f32],
8512    lda: i32,
8513    b: &mut [f32],
8514    ldb: i32,
8515    work: &mut [f32],
8516    lwork: i32,
8517    info: &mut i32,
8518) {
8519    ffi::sgetsls_(
8520        &(trans as c_char),
8521        &m,
8522        &n,
8523        &nrhs,
8524        a.as_mut_ptr(),
8525        &lda,
8526        b.as_mut_ptr(),
8527        &ldb,
8528        work.as_mut_ptr(),
8529        &lwork,
8530        info,
8531    )
8532}
8533
8534#[inline]
8535pub unsafe fn zgetsls(
8536    trans: u8,
8537    m: i32,
8538    n: i32,
8539    nrhs: i32,
8540    a: &mut [c64],
8541    lda: i32,
8542    b: &mut [c64],
8543    ldb: i32,
8544    work: &mut [c64],
8545    lwork: i32,
8546    info: &mut i32,
8547) {
8548    ffi::zgetsls_(
8549        &(trans as c_char),
8550        &m,
8551        &n,
8552        &nrhs,
8553        a.as_mut_ptr() as *mut _,
8554        &lda,
8555        b.as_mut_ptr() as *mut _,
8556        &ldb,
8557        work.as_mut_ptr() as *mut _,
8558        &lwork,
8559        info,
8560    )
8561}
8562
8563#[inline]
8564pub unsafe fn cgetsqrhrt(
8565    m: i32,
8566    n: i32,
8567    mb1: &[i32],
8568    nb1: &[i32],
8569    nb2: &[i32],
8570    a: &mut [c32],
8571    lda: i32,
8572    t: &mut [c32],
8573    ldt: i32,
8574    work: &mut [c32],
8575    lwork: i32,
8576    info: &mut i32,
8577) {
8578    ffi::cgetsqrhrt_(
8579        &m,
8580        &n,
8581        mb1.as_ptr(),
8582        nb1.as_ptr(),
8583        nb2.as_ptr(),
8584        a.as_mut_ptr() as *mut _,
8585        &lda,
8586        t.as_mut_ptr() as *mut _,
8587        &ldt,
8588        work.as_mut_ptr() as *mut _,
8589        &lwork,
8590        info,
8591    )
8592}
8593
8594#[inline]
8595pub unsafe fn dgetsqrhrt(
8596    m: i32,
8597    n: i32,
8598    mb1: &[i32],
8599    nb1: &[i32],
8600    nb2: &[i32],
8601    a: &mut [f64],
8602    lda: i32,
8603    t: &mut [f64],
8604    ldt: i32,
8605    work: &mut [f64],
8606    lwork: i32,
8607    info: &mut i32,
8608) {
8609    ffi::dgetsqrhrt_(
8610        &m,
8611        &n,
8612        mb1.as_ptr(),
8613        nb1.as_ptr(),
8614        nb2.as_ptr(),
8615        a.as_mut_ptr(),
8616        &lda,
8617        t.as_mut_ptr(),
8618        &ldt,
8619        work.as_mut_ptr(),
8620        &lwork,
8621        info,
8622    )
8623}
8624
8625#[inline]
8626pub unsafe fn sgetsqrhrt(
8627    m: i32,
8628    n: i32,
8629    mb1: &[i32],
8630    nb1: &[i32],
8631    nb2: &[i32],
8632    a: &mut [f32],
8633    lda: i32,
8634    t: &mut [f32],
8635    ldt: i32,
8636    work: &mut [f32],
8637    lwork: i32,
8638    info: &mut i32,
8639) {
8640    ffi::sgetsqrhrt_(
8641        &m,
8642        &n,
8643        mb1.as_ptr(),
8644        nb1.as_ptr(),
8645        nb2.as_ptr(),
8646        a.as_mut_ptr(),
8647        &lda,
8648        t.as_mut_ptr(),
8649        &ldt,
8650        work.as_mut_ptr(),
8651        &lwork,
8652        info,
8653    )
8654}
8655
8656#[inline]
8657pub unsafe fn zgetsqrhrt(
8658    m: i32,
8659    n: i32,
8660    mb1: &[i32],
8661    nb1: &[i32],
8662    nb2: &[i32],
8663    a: &mut [c64],
8664    lda: i32,
8665    t: &mut [c64],
8666    ldt: i32,
8667    work: &mut [c64],
8668    lwork: i32,
8669    info: &mut i32,
8670) {
8671    ffi::zgetsqrhrt_(
8672        &m,
8673        &n,
8674        mb1.as_ptr(),
8675        nb1.as_ptr(),
8676        nb2.as_ptr(),
8677        a.as_mut_ptr() as *mut _,
8678        &lda,
8679        t.as_mut_ptr() as *mut _,
8680        &ldt,
8681        work.as_mut_ptr() as *mut _,
8682        &lwork,
8683        info,
8684    )
8685}
8686
8687#[inline]
8688pub unsafe fn cggbak(
8689    job: u8,
8690    side: u8,
8691    n: i32,
8692    ilo: i32,
8693    ihi: i32,
8694    lscale: &[f32],
8695    rscale: &[f32],
8696    m: i32,
8697    v: &mut [c32],
8698    ldv: i32,
8699    info: &mut i32,
8700) {
8701    ffi::cggbak_(
8702        &(job as c_char),
8703        &(side as c_char),
8704        &n,
8705        &ilo,
8706        &ihi,
8707        lscale.as_ptr(),
8708        rscale.as_ptr(),
8709        &m,
8710        v.as_mut_ptr() as *mut _,
8711        &ldv,
8712        info,
8713    )
8714}
8715
8716#[inline]
8717pub unsafe fn dggbak(
8718    job: u8,
8719    side: u8,
8720    n: i32,
8721    ilo: i32,
8722    ihi: i32,
8723    lscale: &[f64],
8724    rscale: &[f64],
8725    m: i32,
8726    v: &mut [f64],
8727    ldv: i32,
8728    info: &mut i32,
8729) {
8730    ffi::dggbak_(
8731        &(job as c_char),
8732        &(side as c_char),
8733        &n,
8734        &ilo,
8735        &ihi,
8736        lscale.as_ptr(),
8737        rscale.as_ptr(),
8738        &m,
8739        v.as_mut_ptr(),
8740        &ldv,
8741        info,
8742    )
8743}
8744
8745#[inline]
8746pub unsafe fn sggbak(
8747    job: u8,
8748    side: u8,
8749    n: i32,
8750    ilo: i32,
8751    ihi: i32,
8752    lscale: &[f32],
8753    rscale: &[f32],
8754    m: i32,
8755    v: &mut [f32],
8756    ldv: i32,
8757    info: &mut i32,
8758) {
8759    ffi::sggbak_(
8760        &(job as c_char),
8761        &(side as c_char),
8762        &n,
8763        &ilo,
8764        &ihi,
8765        lscale.as_ptr(),
8766        rscale.as_ptr(),
8767        &m,
8768        v.as_mut_ptr(),
8769        &ldv,
8770        info,
8771    )
8772}
8773
8774#[inline]
8775pub unsafe fn zggbak(
8776    job: u8,
8777    side: u8,
8778    n: i32,
8779    ilo: i32,
8780    ihi: i32,
8781    lscale: &[f64],
8782    rscale: &[f64],
8783    m: i32,
8784    v: &mut [c64],
8785    ldv: i32,
8786    info: &mut i32,
8787) {
8788    ffi::zggbak_(
8789        &(job as c_char),
8790        &(side as c_char),
8791        &n,
8792        &ilo,
8793        &ihi,
8794        lscale.as_ptr(),
8795        rscale.as_ptr(),
8796        &m,
8797        v.as_mut_ptr() as *mut _,
8798        &ldv,
8799        info,
8800    )
8801}
8802
8803#[inline]
8804pub unsafe fn cggbal(
8805    job: u8,
8806    n: i32,
8807    a: &mut [c32],
8808    lda: i32,
8809    b: &mut [c32],
8810    ldb: i32,
8811    ilo: &mut i32,
8812    ihi: &mut i32,
8813    lscale: &mut [f32],
8814    rscale: &mut [f32],
8815    work: &mut [f32],
8816    info: &mut i32,
8817) {
8818    ffi::cggbal_(
8819        &(job as c_char),
8820        &n,
8821        a.as_mut_ptr() as *mut _,
8822        &lda,
8823        b.as_mut_ptr() as *mut _,
8824        &ldb,
8825        ilo,
8826        ihi,
8827        lscale.as_mut_ptr(),
8828        rscale.as_mut_ptr(),
8829        work.as_mut_ptr(),
8830        info,
8831    )
8832}
8833
8834#[inline]
8835pub unsafe fn dggbal(
8836    job: u8,
8837    n: i32,
8838    a: &mut [f64],
8839    lda: i32,
8840    b: &mut [f64],
8841    ldb: i32,
8842    ilo: &mut i32,
8843    ihi: &mut i32,
8844    lscale: &mut [f64],
8845    rscale: &mut [f64],
8846    work: &mut [f64],
8847    info: &mut i32,
8848) {
8849    ffi::dggbal_(
8850        &(job as c_char),
8851        &n,
8852        a.as_mut_ptr(),
8853        &lda,
8854        b.as_mut_ptr(),
8855        &ldb,
8856        ilo,
8857        ihi,
8858        lscale.as_mut_ptr(),
8859        rscale.as_mut_ptr(),
8860        work.as_mut_ptr(),
8861        info,
8862    )
8863}
8864
8865#[inline]
8866pub unsafe fn sggbal(
8867    job: u8,
8868    n: i32,
8869    a: &mut [f32],
8870    lda: i32,
8871    b: &mut [f32],
8872    ldb: i32,
8873    ilo: &mut i32,
8874    ihi: &mut i32,
8875    lscale: &mut [f32],
8876    rscale: &mut [f32],
8877    work: &mut [f32],
8878    info: &mut i32,
8879) {
8880    ffi::sggbal_(
8881        &(job as c_char),
8882        &n,
8883        a.as_mut_ptr(),
8884        &lda,
8885        b.as_mut_ptr(),
8886        &ldb,
8887        ilo,
8888        ihi,
8889        lscale.as_mut_ptr(),
8890        rscale.as_mut_ptr(),
8891        work.as_mut_ptr(),
8892        info,
8893    )
8894}
8895
8896#[inline]
8897pub unsafe fn zggbal(
8898    job: u8,
8899    n: i32,
8900    a: &mut [c64],
8901    lda: i32,
8902    b: &mut [c64],
8903    ldb: i32,
8904    ilo: &mut i32,
8905    ihi: &mut i32,
8906    lscale: &mut [f64],
8907    rscale: &mut [f64],
8908    work: &mut [f64],
8909    info: &mut i32,
8910) {
8911    ffi::zggbal_(
8912        &(job as c_char),
8913        &n,
8914        a.as_mut_ptr() as *mut _,
8915        &lda,
8916        b.as_mut_ptr() as *mut _,
8917        &ldb,
8918        ilo,
8919        ihi,
8920        lscale.as_mut_ptr(),
8921        rscale.as_mut_ptr(),
8922        work.as_mut_ptr(),
8923        info,
8924    )
8925}
8926
8927#[inline]
8928pub unsafe fn cgges(
8929    jobvsl: u8,
8930    jobvsr: u8,
8931    sort: u8,
8932    selctg: Select2C32,
8933    n: i32,
8934    a: &mut [c32],
8935    lda: i32,
8936    b: &mut [c32],
8937    ldb: i32,
8938    sdim: &mut i32,
8939    alpha: &mut [c32],
8940    beta: &mut [c32],
8941    vsl: &mut [c32],
8942    ldvsl: i32,
8943    vsr: &mut [c32],
8944    ldvsr: i32,
8945    work: &mut [c32],
8946    lwork: i32,
8947    rwork: &mut [f32],
8948    bwork: &mut [i32],
8949    info: &mut i32,
8950) {
8951    ffi::cgges_(
8952        &(jobvsl as c_char),
8953        &(jobvsr as c_char),
8954        &(sort as c_char),
8955        transmute(selctg),
8956        &n,
8957        a.as_mut_ptr() as *mut _,
8958        &lda,
8959        b.as_mut_ptr() as *mut _,
8960        &ldb,
8961        sdim,
8962        alpha.as_mut_ptr() as *mut _,
8963        beta.as_mut_ptr() as *mut _,
8964        vsl.as_mut_ptr() as *mut _,
8965        &ldvsl,
8966        vsr.as_mut_ptr() as *mut _,
8967        &ldvsr,
8968        work.as_mut_ptr() as *mut _,
8969        &lwork,
8970        rwork.as_mut_ptr(),
8971        bwork.as_mut_ptr(),
8972        info,
8973    )
8974}
8975
8976#[inline]
8977pub unsafe fn dgges(
8978    jobvsl: u8,
8979    jobvsr: u8,
8980    sort: u8,
8981    selctg: Select3F64,
8982    n: i32,
8983    a: &mut [f64],
8984    lda: i32,
8985    b: &mut [f64],
8986    ldb: i32,
8987    sdim: &mut i32,
8988    alphar: &mut [f64],
8989    alphai: &mut [f64],
8990    beta: &mut [f64],
8991    vsl: &mut [f64],
8992    ldvsl: i32,
8993    vsr: &mut [f64],
8994    ldvsr: i32,
8995    work: &mut [f64],
8996    lwork: i32,
8997    bwork: &mut [i32],
8998    info: &mut i32,
8999) {
9000    ffi::dgges_(
9001        &(jobvsl as c_char),
9002        &(jobvsr as c_char),
9003        &(sort as c_char),
9004        transmute(selctg),
9005        &n,
9006        a.as_mut_ptr(),
9007        &lda,
9008        b.as_mut_ptr(),
9009        &ldb,
9010        sdim,
9011        alphar.as_mut_ptr(),
9012        alphai.as_mut_ptr(),
9013        beta.as_mut_ptr(),
9014        vsl.as_mut_ptr(),
9015        &ldvsl,
9016        vsr.as_mut_ptr(),
9017        &ldvsr,
9018        work.as_mut_ptr(),
9019        &lwork,
9020        bwork.as_mut_ptr(),
9021        info,
9022    )
9023}
9024
9025#[inline]
9026pub unsafe fn sgges(
9027    jobvsl: u8,
9028    jobvsr: u8,
9029    sort: u8,
9030    selctg: Select3F32,
9031    n: i32,
9032    a: &mut [f32],
9033    lda: i32,
9034    b: &mut [f32],
9035    ldb: i32,
9036    sdim: &mut i32,
9037    alphar: &mut [f32],
9038    alphai: &mut [f32],
9039    beta: &mut [f32],
9040    vsl: &mut [f32],
9041    ldvsl: i32,
9042    vsr: &mut [f32],
9043    ldvsr: i32,
9044    work: &mut [f32],
9045    lwork: i32,
9046    bwork: &mut [i32],
9047    info: &mut i32,
9048) {
9049    ffi::sgges_(
9050        &(jobvsl as c_char),
9051        &(jobvsr as c_char),
9052        &(sort as c_char),
9053        transmute(selctg),
9054        &n,
9055        a.as_mut_ptr(),
9056        &lda,
9057        b.as_mut_ptr(),
9058        &ldb,
9059        sdim,
9060        alphar.as_mut_ptr(),
9061        alphai.as_mut_ptr(),
9062        beta.as_mut_ptr(),
9063        vsl.as_mut_ptr(),
9064        &ldvsl,
9065        vsr.as_mut_ptr(),
9066        &ldvsr,
9067        work.as_mut_ptr(),
9068        &lwork,
9069        bwork.as_mut_ptr(),
9070        info,
9071    )
9072}
9073
9074#[inline]
9075pub unsafe fn zgges(
9076    jobvsl: u8,
9077    jobvsr: u8,
9078    sort: u8,
9079    selctg: Select2C64,
9080    n: i32,
9081    a: &mut [c64],
9082    lda: i32,
9083    b: &mut [c64],
9084    ldb: i32,
9085    sdim: &mut i32,
9086    alpha: &mut [c64],
9087    beta: &mut [c64],
9088    vsl: &mut [c64],
9089    ldvsl: i32,
9090    vsr: &mut [c64],
9091    ldvsr: i32,
9092    work: &mut [c64],
9093    lwork: i32,
9094    rwork: &mut [f64],
9095    bwork: &mut [i32],
9096    info: &mut i32,
9097) {
9098    ffi::zgges_(
9099        &(jobvsl as c_char),
9100        &(jobvsr as c_char),
9101        &(sort as c_char),
9102        transmute(selctg),
9103        &n,
9104        a.as_mut_ptr() as *mut _,
9105        &lda,
9106        b.as_mut_ptr() as *mut _,
9107        &ldb,
9108        sdim,
9109        alpha.as_mut_ptr() as *mut _,
9110        beta.as_mut_ptr() as *mut _,
9111        vsl.as_mut_ptr() as *mut _,
9112        &ldvsl,
9113        vsr.as_mut_ptr() as *mut _,
9114        &ldvsr,
9115        work.as_mut_ptr() as *mut _,
9116        &lwork,
9117        rwork.as_mut_ptr(),
9118        bwork.as_mut_ptr(),
9119        info,
9120    )
9121}
9122
9123#[inline]
9124pub unsafe fn cgges3(
9125    jobvsl: u8,
9126    jobvsr: u8,
9127    sort: u8,
9128    selctg: Select2C32,
9129    n: i32,
9130    a: &mut [c32],
9131    lda: i32,
9132    b: &mut [c32],
9133    ldb: i32,
9134    sdim: &mut i32,
9135    alpha: &mut [c32],
9136    beta: &mut [c32],
9137    vsl: &mut [c32],
9138    ldvsl: i32,
9139    vsr: &mut [c32],
9140    ldvsr: i32,
9141    work: &mut [c32],
9142    lwork: i32,
9143    rwork: &mut [f32],
9144    bwork: &mut [i32],
9145    info: &mut i32,
9146) {
9147    ffi::cgges3_(
9148        &(jobvsl as c_char),
9149        &(jobvsr as c_char),
9150        &(sort as c_char),
9151        transmute(selctg),
9152        &n,
9153        a.as_mut_ptr() as *mut _,
9154        &lda,
9155        b.as_mut_ptr() as *mut _,
9156        &ldb,
9157        sdim,
9158        alpha.as_mut_ptr() as *mut _,
9159        beta.as_mut_ptr() as *mut _,
9160        vsl.as_mut_ptr() as *mut _,
9161        &ldvsl,
9162        vsr.as_mut_ptr() as *mut _,
9163        &ldvsr,
9164        work.as_mut_ptr() as *mut _,
9165        &lwork,
9166        rwork.as_mut_ptr(),
9167        bwork.as_mut_ptr(),
9168        info,
9169    )
9170}
9171
9172#[inline]
9173pub unsafe fn dgges3(
9174    jobvsl: u8,
9175    jobvsr: u8,
9176    sort: u8,
9177    selctg: Select3F64,
9178    n: i32,
9179    a: &mut [f64],
9180    lda: i32,
9181    b: &mut [f64],
9182    ldb: i32,
9183    sdim: &mut i32,
9184    alphar: &mut [f64],
9185    alphai: &mut [f64],
9186    beta: &mut [f64],
9187    vsl: &mut [f64],
9188    ldvsl: i32,
9189    vsr: &mut [f64],
9190    ldvsr: i32,
9191    work: &mut [f64],
9192    lwork: i32,
9193    bwork: &mut [i32],
9194    info: &mut i32,
9195) {
9196    ffi::dgges3_(
9197        &(jobvsl as c_char),
9198        &(jobvsr as c_char),
9199        &(sort as c_char),
9200        transmute(selctg),
9201        &n,
9202        a.as_mut_ptr(),
9203        &lda,
9204        b.as_mut_ptr(),
9205        &ldb,
9206        sdim,
9207        alphar.as_mut_ptr(),
9208        alphai.as_mut_ptr(),
9209        beta.as_mut_ptr(),
9210        vsl.as_mut_ptr(),
9211        &ldvsl,
9212        vsr.as_mut_ptr(),
9213        &ldvsr,
9214        work.as_mut_ptr(),
9215        &lwork,
9216        bwork.as_mut_ptr(),
9217        info,
9218    )
9219}
9220
9221#[inline]
9222pub unsafe fn sgges3(
9223    jobvsl: u8,
9224    jobvsr: u8,
9225    sort: u8,
9226    selctg: Select3F32,
9227    n: i32,
9228    a: &mut [f32],
9229    lda: i32,
9230    b: &mut [f32],
9231    ldb: i32,
9232    sdim: &mut i32,
9233    alphar: &mut [f32],
9234    alphai: &mut [f32],
9235    beta: &mut [f32],
9236    vsl: &mut [f32],
9237    ldvsl: i32,
9238    vsr: &mut [f32],
9239    ldvsr: i32,
9240    work: &mut [f32],
9241    lwork: i32,
9242    bwork: &mut [i32],
9243    info: &mut i32,
9244) {
9245    ffi::sgges3_(
9246        &(jobvsl as c_char),
9247        &(jobvsr as c_char),
9248        &(sort as c_char),
9249        transmute(selctg),
9250        &n,
9251        a.as_mut_ptr(),
9252        &lda,
9253        b.as_mut_ptr(),
9254        &ldb,
9255        sdim,
9256        alphar.as_mut_ptr(),
9257        alphai.as_mut_ptr(),
9258        beta.as_mut_ptr(),
9259        vsl.as_mut_ptr(),
9260        &ldvsl,
9261        vsr.as_mut_ptr(),
9262        &ldvsr,
9263        work.as_mut_ptr(),
9264        &lwork,
9265        bwork.as_mut_ptr(),
9266        info,
9267    )
9268}
9269
9270#[inline]
9271pub unsafe fn zgges3(
9272    jobvsl: u8,
9273    jobvsr: u8,
9274    sort: u8,
9275    selctg: Select2C64,
9276    n: i32,
9277    a: &mut [c64],
9278    lda: i32,
9279    b: &mut [c64],
9280    ldb: i32,
9281    sdim: &mut i32,
9282    alpha: &mut [c64],
9283    beta: &mut [c64],
9284    vsl: &mut [c64],
9285    ldvsl: i32,
9286    vsr: &mut [c64],
9287    ldvsr: i32,
9288    work: &mut [c64],
9289    lwork: i32,
9290    rwork: &mut [f64],
9291    bwork: &mut [i32],
9292    info: &mut i32,
9293) {
9294    ffi::zgges3_(
9295        &(jobvsl as c_char),
9296        &(jobvsr as c_char),
9297        &(sort as c_char),
9298        transmute(selctg),
9299        &n,
9300        a.as_mut_ptr() as *mut _,
9301        &lda,
9302        b.as_mut_ptr() as *mut _,
9303        &ldb,
9304        sdim,
9305        alpha.as_mut_ptr() as *mut _,
9306        beta.as_mut_ptr() as *mut _,
9307        vsl.as_mut_ptr() as *mut _,
9308        &ldvsl,
9309        vsr.as_mut_ptr() as *mut _,
9310        &ldvsr,
9311        work.as_mut_ptr() as *mut _,
9312        &lwork,
9313        rwork.as_mut_ptr(),
9314        bwork.as_mut_ptr(),
9315        info,
9316    )
9317}
9318
9319#[inline]
9320pub unsafe fn cggesx(
9321    jobvsl: u8,
9322    jobvsr: u8,
9323    sort: u8,
9324    selctg: Select2C32,
9325    sense: u8,
9326    n: i32,
9327    a: &mut [c32],
9328    lda: i32,
9329    b: &mut [c32],
9330    ldb: i32,
9331    sdim: &mut i32,
9332    alpha: &mut [c32],
9333    beta: &mut [c32],
9334    vsl: &mut [c32],
9335    ldvsl: i32,
9336    vsr: &mut [c32],
9337    ldvsr: i32,
9338    rconde: &mut [f32],
9339    rcondv: &mut [f32],
9340    work: &mut [c32],
9341    lwork: i32,
9342    rwork: &mut [f32],
9343    iwork: &mut [i32],
9344    liwork: i32,
9345    bwork: &mut [i32],
9346    info: &mut i32,
9347) {
9348    ffi::cggesx_(
9349        &(jobvsl as c_char),
9350        &(jobvsr as c_char),
9351        &(sort as c_char),
9352        transmute(selctg),
9353        &(sense as c_char),
9354        &n,
9355        a.as_mut_ptr() as *mut _,
9356        &lda,
9357        b.as_mut_ptr() as *mut _,
9358        &ldb,
9359        sdim,
9360        alpha.as_mut_ptr() as *mut _,
9361        beta.as_mut_ptr() as *mut _,
9362        vsl.as_mut_ptr() as *mut _,
9363        &ldvsl,
9364        vsr.as_mut_ptr() as *mut _,
9365        &ldvsr,
9366        rconde.as_mut_ptr(),
9367        rcondv.as_mut_ptr(),
9368        work.as_mut_ptr() as *mut _,
9369        &lwork,
9370        rwork.as_mut_ptr(),
9371        iwork.as_mut_ptr(),
9372        &liwork,
9373        bwork.as_mut_ptr(),
9374        info,
9375    )
9376}
9377
9378#[inline]
9379pub unsafe fn dggesx(
9380    jobvsl: u8,
9381    jobvsr: u8,
9382    sort: u8,
9383    selctg: Select3F64,
9384    sense: u8,
9385    n: i32,
9386    a: &mut [f64],
9387    lda: i32,
9388    b: &mut [f64],
9389    ldb: i32,
9390    sdim: &mut i32,
9391    alphar: &mut [f64],
9392    alphai: &mut [f64],
9393    beta: &mut [f64],
9394    vsl: &mut [f64],
9395    ldvsl: i32,
9396    vsr: &mut [f64],
9397    ldvsr: i32,
9398    rconde: &mut [f64],
9399    rcondv: &mut [f64],
9400    work: &mut [f64],
9401    lwork: i32,
9402    iwork: &mut [i32],
9403    liwork: i32,
9404    bwork: &mut [i32],
9405    info: &mut i32,
9406) {
9407    ffi::dggesx_(
9408        &(jobvsl as c_char),
9409        &(jobvsr as c_char),
9410        &(sort as c_char),
9411        transmute(selctg),
9412        &(sense as c_char),
9413        &n,
9414        a.as_mut_ptr(),
9415        &lda,
9416        b.as_mut_ptr(),
9417        &ldb,
9418        sdim,
9419        alphar.as_mut_ptr(),
9420        alphai.as_mut_ptr(),
9421        beta.as_mut_ptr(),
9422        vsl.as_mut_ptr(),
9423        &ldvsl,
9424        vsr.as_mut_ptr(),
9425        &ldvsr,
9426        rconde.as_mut_ptr(),
9427        rcondv.as_mut_ptr(),
9428        work.as_mut_ptr(),
9429        &lwork,
9430        iwork.as_mut_ptr(),
9431        &liwork,
9432        bwork.as_mut_ptr(),
9433        info,
9434    )
9435}
9436
9437#[inline]
9438pub unsafe fn sggesx(
9439    jobvsl: u8,
9440    jobvsr: u8,
9441    sort: u8,
9442    selctg: Select3F32,
9443    sense: u8,
9444    n: i32,
9445    a: &mut [f32],
9446    lda: i32,
9447    b: &mut [f32],
9448    ldb: i32,
9449    sdim: &mut i32,
9450    alphar: &mut [f32],
9451    alphai: &mut [f32],
9452    beta: &mut [f32],
9453    vsl: &mut [f32],
9454    ldvsl: i32,
9455    vsr: &mut [f32],
9456    ldvsr: i32,
9457    rconde: &mut [f32],
9458    rcondv: &mut [f32],
9459    work: &mut [f32],
9460    lwork: i32,
9461    iwork: &mut [i32],
9462    liwork: i32,
9463    bwork: &mut [i32],
9464    info: &mut i32,
9465) {
9466    ffi::sggesx_(
9467        &(jobvsl as c_char),
9468        &(jobvsr as c_char),
9469        &(sort as c_char),
9470        transmute(selctg),
9471        &(sense as c_char),
9472        &n,
9473        a.as_mut_ptr(),
9474        &lda,
9475        b.as_mut_ptr(),
9476        &ldb,
9477        sdim,
9478        alphar.as_mut_ptr(),
9479        alphai.as_mut_ptr(),
9480        beta.as_mut_ptr(),
9481        vsl.as_mut_ptr(),
9482        &ldvsl,
9483        vsr.as_mut_ptr(),
9484        &ldvsr,
9485        rconde.as_mut_ptr(),
9486        rcondv.as_mut_ptr(),
9487        work.as_mut_ptr(),
9488        &lwork,
9489        iwork.as_mut_ptr(),
9490        &liwork,
9491        bwork.as_mut_ptr(),
9492        info,
9493    )
9494}
9495
9496#[inline]
9497pub unsafe fn zggesx(
9498    jobvsl: u8,
9499    jobvsr: u8,
9500    sort: u8,
9501    selctg: Select2C64,
9502    sense: u8,
9503    n: i32,
9504    a: &mut [c64],
9505    lda: i32,
9506    b: &mut [c64],
9507    ldb: i32,
9508    sdim: &mut i32,
9509    alpha: &mut [c64],
9510    beta: &mut [c64],
9511    vsl: &mut [c64],
9512    ldvsl: i32,
9513    vsr: &mut [c64],
9514    ldvsr: i32,
9515    rconde: &mut [f64],
9516    rcondv: &mut [f64],
9517    work: &mut [c64],
9518    lwork: i32,
9519    rwork: &mut [f64],
9520    iwork: &mut [i32],
9521    liwork: i32,
9522    bwork: &mut [i32],
9523    info: &mut i32,
9524) {
9525    ffi::zggesx_(
9526        &(jobvsl as c_char),
9527        &(jobvsr as c_char),
9528        &(sort as c_char),
9529        transmute(selctg),
9530        &(sense as c_char),
9531        &n,
9532        a.as_mut_ptr() as *mut _,
9533        &lda,
9534        b.as_mut_ptr() as *mut _,
9535        &ldb,
9536        sdim,
9537        alpha.as_mut_ptr() as *mut _,
9538        beta.as_mut_ptr() as *mut _,
9539        vsl.as_mut_ptr() as *mut _,
9540        &ldvsl,
9541        vsr.as_mut_ptr() as *mut _,
9542        &ldvsr,
9543        rconde.as_mut_ptr(),
9544        rcondv.as_mut_ptr(),
9545        work.as_mut_ptr() as *mut _,
9546        &lwork,
9547        rwork.as_mut_ptr(),
9548        iwork.as_mut_ptr(),
9549        &liwork,
9550        bwork.as_mut_ptr(),
9551        info,
9552    )
9553}
9554
9555#[inline]
9556pub unsafe fn cggev(
9557    jobvl: u8,
9558    jobvr: u8,
9559    n: i32,
9560    a: &mut [c32],
9561    lda: i32,
9562    b: &mut [c32],
9563    ldb: i32,
9564    alpha: &mut [c32],
9565    beta: &mut [c32],
9566    vl: &mut [c32],
9567    ldvl: i32,
9568    vr: &mut [c32],
9569    ldvr: i32,
9570    work: &mut [c32],
9571    lwork: i32,
9572    rwork: &mut [f32],
9573    info: &mut i32,
9574) {
9575    ffi::cggev_(
9576        &(jobvl as c_char),
9577        &(jobvr as c_char),
9578        &n,
9579        a.as_mut_ptr() as *mut _,
9580        &lda,
9581        b.as_mut_ptr() as *mut _,
9582        &ldb,
9583        alpha.as_mut_ptr() as *mut _,
9584        beta.as_mut_ptr() as *mut _,
9585        vl.as_mut_ptr() as *mut _,
9586        &ldvl,
9587        vr.as_mut_ptr() as *mut _,
9588        &ldvr,
9589        work.as_mut_ptr() as *mut _,
9590        &lwork,
9591        rwork.as_mut_ptr(),
9592        info,
9593    )
9594}
9595
9596#[inline]
9597pub unsafe fn dggev(
9598    jobvl: u8,
9599    jobvr: u8,
9600    n: i32,
9601    a: &mut [f64],
9602    lda: i32,
9603    b: &mut [f64],
9604    ldb: i32,
9605    alphar: &mut [f64],
9606    alphai: &mut [f64],
9607    beta: &mut [f64],
9608    vl: &mut [f64],
9609    ldvl: i32,
9610    vr: &mut [f64],
9611    ldvr: i32,
9612    work: &mut [f64],
9613    lwork: i32,
9614    info: &mut i32,
9615) {
9616    ffi::dggev_(
9617        &(jobvl as c_char),
9618        &(jobvr as c_char),
9619        &n,
9620        a.as_mut_ptr(),
9621        &lda,
9622        b.as_mut_ptr(),
9623        &ldb,
9624        alphar.as_mut_ptr(),
9625        alphai.as_mut_ptr(),
9626        beta.as_mut_ptr(),
9627        vl.as_mut_ptr(),
9628        &ldvl,
9629        vr.as_mut_ptr(),
9630        &ldvr,
9631        work.as_mut_ptr(),
9632        &lwork,
9633        info,
9634    )
9635}
9636
9637#[inline]
9638pub unsafe fn sggev(
9639    jobvl: u8,
9640    jobvr: u8,
9641    n: i32,
9642    a: &mut [f32],
9643    lda: i32,
9644    b: &mut [f32],
9645    ldb: i32,
9646    alphar: &mut [f32],
9647    alphai: &mut [f32],
9648    beta: &mut [f32],
9649    vl: &mut [f32],
9650    ldvl: i32,
9651    vr: &mut [f32],
9652    ldvr: i32,
9653    work: &mut [f32],
9654    lwork: i32,
9655    info: &mut i32,
9656) {
9657    ffi::sggev_(
9658        &(jobvl as c_char),
9659        &(jobvr as c_char),
9660        &n,
9661        a.as_mut_ptr(),
9662        &lda,
9663        b.as_mut_ptr(),
9664        &ldb,
9665        alphar.as_mut_ptr(),
9666        alphai.as_mut_ptr(),
9667        beta.as_mut_ptr(),
9668        vl.as_mut_ptr(),
9669        &ldvl,
9670        vr.as_mut_ptr(),
9671        &ldvr,
9672        work.as_mut_ptr(),
9673        &lwork,
9674        info,
9675    )
9676}
9677
9678#[inline]
9679pub unsafe fn zggev(
9680    jobvl: u8,
9681    jobvr: u8,
9682    n: i32,
9683    a: &mut [c64],
9684    lda: i32,
9685    b: &mut [c64],
9686    ldb: i32,
9687    alpha: &mut [c64],
9688    beta: &mut [c64],
9689    vl: &mut [c64],
9690    ldvl: i32,
9691    vr: &mut [c64],
9692    ldvr: i32,
9693    work: &mut [c64],
9694    lwork: i32,
9695    rwork: &mut [f64],
9696    info: &mut i32,
9697) {
9698    ffi::zggev_(
9699        &(jobvl as c_char),
9700        &(jobvr as c_char),
9701        &n,
9702        a.as_mut_ptr() as *mut _,
9703        &lda,
9704        b.as_mut_ptr() as *mut _,
9705        &ldb,
9706        alpha.as_mut_ptr() as *mut _,
9707        beta.as_mut_ptr() as *mut _,
9708        vl.as_mut_ptr() as *mut _,
9709        &ldvl,
9710        vr.as_mut_ptr() as *mut _,
9711        &ldvr,
9712        work.as_mut_ptr() as *mut _,
9713        &lwork,
9714        rwork.as_mut_ptr(),
9715        info,
9716    )
9717}
9718
9719#[inline]
9720pub unsafe fn cggev3(
9721    jobvl: u8,
9722    jobvr: u8,
9723    n: i32,
9724    a: &mut [c32],
9725    lda: i32,
9726    b: &mut [c32],
9727    ldb: i32,
9728    alpha: &mut [c32],
9729    beta: &mut [c32],
9730    vl: &mut [c32],
9731    ldvl: i32,
9732    vr: &mut [c32],
9733    ldvr: i32,
9734    work: &mut [c32],
9735    lwork: i32,
9736    rwork: &mut [f32],
9737    info: &mut i32,
9738) {
9739    ffi::cggev3_(
9740        &(jobvl as c_char),
9741        &(jobvr as c_char),
9742        &n,
9743        a.as_mut_ptr() as *mut _,
9744        &lda,
9745        b.as_mut_ptr() as *mut _,
9746        &ldb,
9747        alpha.as_mut_ptr() as *mut _,
9748        beta.as_mut_ptr() as *mut _,
9749        vl.as_mut_ptr() as *mut _,
9750        &ldvl,
9751        vr.as_mut_ptr() as *mut _,
9752        &ldvr,
9753        work.as_mut_ptr() as *mut _,
9754        &lwork,
9755        rwork.as_mut_ptr(),
9756        info,
9757    )
9758}
9759
9760#[inline]
9761pub unsafe fn dggev3(
9762    jobvl: u8,
9763    jobvr: u8,
9764    n: i32,
9765    a: &mut [f64],
9766    lda: i32,
9767    b: &mut [f64],
9768    ldb: i32,
9769    alphar: &mut [f64],
9770    alphai: &mut [f64],
9771    beta: &mut [f64],
9772    vl: &mut [f64],
9773    ldvl: i32,
9774    vr: &mut [f64],
9775    ldvr: i32,
9776    work: &mut [f64],
9777    lwork: i32,
9778    info: &mut i32,
9779) {
9780    ffi::dggev3_(
9781        &(jobvl as c_char),
9782        &(jobvr as c_char),
9783        &n,
9784        a.as_mut_ptr(),
9785        &lda,
9786        b.as_mut_ptr(),
9787        &ldb,
9788        alphar.as_mut_ptr(),
9789        alphai.as_mut_ptr(),
9790        beta.as_mut_ptr(),
9791        vl.as_mut_ptr(),
9792        &ldvl,
9793        vr.as_mut_ptr(),
9794        &ldvr,
9795        work.as_mut_ptr(),
9796        &lwork,
9797        info,
9798    )
9799}
9800
9801#[inline]
9802pub unsafe fn sggev3(
9803    jobvl: u8,
9804    jobvr: u8,
9805    n: i32,
9806    a: &mut [f32],
9807    lda: i32,
9808    b: &mut [f32],
9809    ldb: i32,
9810    alphar: &mut [f32],
9811    alphai: &mut [f32],
9812    beta: &mut [f32],
9813    vl: &mut [f32],
9814    ldvl: i32,
9815    vr: &mut [f32],
9816    ldvr: i32,
9817    work: &mut [f32],
9818    lwork: i32,
9819    info: &mut i32,
9820) {
9821    ffi::sggev3_(
9822        &(jobvl as c_char),
9823        &(jobvr as c_char),
9824        &n,
9825        a.as_mut_ptr(),
9826        &lda,
9827        b.as_mut_ptr(),
9828        &ldb,
9829        alphar.as_mut_ptr(),
9830        alphai.as_mut_ptr(),
9831        beta.as_mut_ptr(),
9832        vl.as_mut_ptr(),
9833        &ldvl,
9834        vr.as_mut_ptr(),
9835        &ldvr,
9836        work.as_mut_ptr(),
9837        &lwork,
9838        info,
9839    )
9840}
9841
9842#[inline]
9843pub unsafe fn zggev3(
9844    jobvl: u8,
9845    jobvr: u8,
9846    n: i32,
9847    a: &mut [c64],
9848    lda: i32,
9849    b: &mut [c64],
9850    ldb: i32,
9851    alpha: &mut [c64],
9852    beta: &mut [c64],
9853    vl: &mut [c64],
9854    ldvl: i32,
9855    vr: &mut [c64],
9856    ldvr: i32,
9857    work: &mut [c64],
9858    lwork: i32,
9859    rwork: &mut [f64],
9860    info: &mut i32,
9861) {
9862    ffi::zggev3_(
9863        &(jobvl as c_char),
9864        &(jobvr as c_char),
9865        &n,
9866        a.as_mut_ptr() as *mut _,
9867        &lda,
9868        b.as_mut_ptr() as *mut _,
9869        &ldb,
9870        alpha.as_mut_ptr() as *mut _,
9871        beta.as_mut_ptr() as *mut _,
9872        vl.as_mut_ptr() as *mut _,
9873        &ldvl,
9874        vr.as_mut_ptr() as *mut _,
9875        &ldvr,
9876        work.as_mut_ptr() as *mut _,
9877        &lwork,
9878        rwork.as_mut_ptr(),
9879        info,
9880    )
9881}
9882
9883#[inline]
9884pub unsafe fn cggevx(
9885    balanc: u8,
9886    jobvl: u8,
9887    jobvr: u8,
9888    sense: u8,
9889    n: i32,
9890    a: &mut [c32],
9891    lda: i32,
9892    b: &mut [c32],
9893    ldb: i32,
9894    alpha: &mut [c32],
9895    beta: &mut [c32],
9896    vl: &mut [c32],
9897    ldvl: i32,
9898    vr: &mut [c32],
9899    ldvr: i32,
9900    ilo: &mut i32,
9901    ihi: &mut i32,
9902    lscale: &mut [f32],
9903    rscale: &mut [f32],
9904    abnrm: &mut f32,
9905    bbnrm: &mut f32,
9906    rconde: &mut [f32],
9907    rcondv: &mut [f32],
9908    work: &mut [c32],
9909    lwork: i32,
9910    rwork: &mut [f32],
9911    iwork: &mut [i32],
9912    bwork: &mut [i32],
9913    info: &mut i32,
9914) {
9915    ffi::cggevx_(
9916        &(balanc as c_char),
9917        &(jobvl as c_char),
9918        &(jobvr as c_char),
9919        &(sense as c_char),
9920        &n,
9921        a.as_mut_ptr() as *mut _,
9922        &lda,
9923        b.as_mut_ptr() as *mut _,
9924        &ldb,
9925        alpha.as_mut_ptr() as *mut _,
9926        beta.as_mut_ptr() as *mut _,
9927        vl.as_mut_ptr() as *mut _,
9928        &ldvl,
9929        vr.as_mut_ptr() as *mut _,
9930        &ldvr,
9931        ilo,
9932        ihi,
9933        lscale.as_mut_ptr(),
9934        rscale.as_mut_ptr(),
9935        abnrm,
9936        bbnrm,
9937        rconde.as_mut_ptr(),
9938        rcondv.as_mut_ptr(),
9939        work.as_mut_ptr() as *mut _,
9940        &lwork,
9941        rwork.as_mut_ptr(),
9942        iwork.as_mut_ptr(),
9943        bwork.as_mut_ptr(),
9944        info,
9945    )
9946}
9947
9948#[inline]
9949pub unsafe fn dggevx(
9950    balanc: u8,
9951    jobvl: u8,
9952    jobvr: u8,
9953    sense: u8,
9954    n: i32,
9955    a: &mut [f64],
9956    lda: i32,
9957    b: &mut [f64],
9958    ldb: i32,
9959    alphar: &mut [f64],
9960    alphai: &mut [f64],
9961    beta: &mut [f64],
9962    vl: &mut [f64],
9963    ldvl: i32,
9964    vr: &mut [f64],
9965    ldvr: i32,
9966    ilo: &mut i32,
9967    ihi: &mut i32,
9968    lscale: &mut [f64],
9969    rscale: &mut [f64],
9970    abnrm: &mut f64,
9971    bbnrm: &mut f64,
9972    rconde: &mut [f64],
9973    rcondv: &mut [f64],
9974    work: &mut [f64],
9975    lwork: i32,
9976    iwork: &mut [i32],
9977    bwork: &mut [i32],
9978    info: &mut i32,
9979) {
9980    ffi::dggevx_(
9981        &(balanc as c_char),
9982        &(jobvl as c_char),
9983        &(jobvr as c_char),
9984        &(sense as c_char),
9985        &n,
9986        a.as_mut_ptr(),
9987        &lda,
9988        b.as_mut_ptr(),
9989        &ldb,
9990        alphar.as_mut_ptr(),
9991        alphai.as_mut_ptr(),
9992        beta.as_mut_ptr(),
9993        vl.as_mut_ptr(),
9994        &ldvl,
9995        vr.as_mut_ptr(),
9996        &ldvr,
9997        ilo,
9998        ihi,
9999        lscale.as_mut_ptr(),
10000        rscale.as_mut_ptr(),
10001        abnrm,
10002        bbnrm,
10003        rconde.as_mut_ptr(),
10004        rcondv.as_mut_ptr(),
10005        work.as_mut_ptr(),
10006        &lwork,
10007        iwork.as_mut_ptr(),
10008        bwork.as_mut_ptr(),
10009        info,
10010    )
10011}
10012
10013#[inline]
10014pub unsafe fn sggevx(
10015    balanc: u8,
10016    jobvl: u8,
10017    jobvr: u8,
10018    sense: u8,
10019    n: i32,
10020    a: &mut [f32],
10021    lda: i32,
10022    b: &mut [f32],
10023    ldb: i32,
10024    alphar: &mut [f32],
10025    alphai: &mut [f32],
10026    beta: &mut [f32],
10027    vl: &mut [f32],
10028    ldvl: i32,
10029    vr: &mut [f32],
10030    ldvr: i32,
10031    ilo: &mut i32,
10032    ihi: &mut i32,
10033    lscale: &mut [f32],
10034    rscale: &mut [f32],
10035    abnrm: &mut f32,
10036    bbnrm: &mut f32,
10037    rconde: &mut [f32],
10038    rcondv: &mut [f32],
10039    work: &mut [f32],
10040    lwork: i32,
10041    iwork: &mut [i32],
10042    bwork: &mut [i32],
10043    info: &mut i32,
10044) {
10045    ffi::sggevx_(
10046        &(balanc as c_char),
10047        &(jobvl as c_char),
10048        &(jobvr as c_char),
10049        &(sense as c_char),
10050        &n,
10051        a.as_mut_ptr(),
10052        &lda,
10053        b.as_mut_ptr(),
10054        &ldb,
10055        alphar.as_mut_ptr(),
10056        alphai.as_mut_ptr(),
10057        beta.as_mut_ptr(),
10058        vl.as_mut_ptr(),
10059        &ldvl,
10060        vr.as_mut_ptr(),
10061        &ldvr,
10062        ilo,
10063        ihi,
10064        lscale.as_mut_ptr(),
10065        rscale.as_mut_ptr(),
10066        abnrm,
10067        bbnrm,
10068        rconde.as_mut_ptr(),
10069        rcondv.as_mut_ptr(),
10070        work.as_mut_ptr(),
10071        &lwork,
10072        iwork.as_mut_ptr(),
10073        bwork.as_mut_ptr(),
10074        info,
10075    )
10076}
10077
10078#[inline]
10079pub unsafe fn zggevx(
10080    balanc: u8,
10081    jobvl: u8,
10082    jobvr: u8,
10083    sense: u8,
10084    n: i32,
10085    a: &mut [c64],
10086    lda: i32,
10087    b: &mut [c64],
10088    ldb: i32,
10089    alpha: &mut [c64],
10090    beta: &mut [c64],
10091    vl: &mut [c64],
10092    ldvl: i32,
10093    vr: &mut [c64],
10094    ldvr: i32,
10095    ilo: &mut i32,
10096    ihi: &mut i32,
10097    lscale: &mut [f64],
10098    rscale: &mut [f64],
10099    abnrm: &mut f64,
10100    bbnrm: &mut f64,
10101    rconde: &mut [f64],
10102    rcondv: &mut [f64],
10103    work: &mut [c64],
10104    lwork: i32,
10105    rwork: &mut [f64],
10106    iwork: &mut [i32],
10107    bwork: &mut [i32],
10108    info: &mut i32,
10109) {
10110    ffi::zggevx_(
10111        &(balanc as c_char),
10112        &(jobvl as c_char),
10113        &(jobvr as c_char),
10114        &(sense as c_char),
10115        &n,
10116        a.as_mut_ptr() as *mut _,
10117        &lda,
10118        b.as_mut_ptr() as *mut _,
10119        &ldb,
10120        alpha.as_mut_ptr() as *mut _,
10121        beta.as_mut_ptr() as *mut _,
10122        vl.as_mut_ptr() as *mut _,
10123        &ldvl,
10124        vr.as_mut_ptr() as *mut _,
10125        &ldvr,
10126        ilo,
10127        ihi,
10128        lscale.as_mut_ptr(),
10129        rscale.as_mut_ptr(),
10130        abnrm,
10131        bbnrm,
10132        rconde.as_mut_ptr(),
10133        rcondv.as_mut_ptr(),
10134        work.as_mut_ptr() as *mut _,
10135        &lwork,
10136        rwork.as_mut_ptr(),
10137        iwork.as_mut_ptr(),
10138        bwork.as_mut_ptr(),
10139        info,
10140    )
10141}
10142
10143#[inline]
10144pub unsafe fn cggglm(
10145    n: i32,
10146    m: i32,
10147    p: i32,
10148    a: &mut [c32],
10149    lda: i32,
10150    b: &mut [c32],
10151    ldb: i32,
10152    d: &mut [c32],
10153    x: &mut [c32],
10154    y: &mut [c32],
10155    work: &mut [c32],
10156    lwork: i32,
10157    info: &mut i32,
10158) {
10159    ffi::cggglm_(
10160        &n,
10161        &m,
10162        &p,
10163        a.as_mut_ptr() as *mut _,
10164        &lda,
10165        b.as_mut_ptr() as *mut _,
10166        &ldb,
10167        d.as_mut_ptr() as *mut _,
10168        x.as_mut_ptr() as *mut _,
10169        y.as_mut_ptr() as *mut _,
10170        work.as_mut_ptr() as *mut _,
10171        &lwork,
10172        info,
10173    )
10174}
10175
10176#[inline]
10177pub unsafe fn dggglm(
10178    n: i32,
10179    m: i32,
10180    p: i32,
10181    a: &mut [f64],
10182    lda: i32,
10183    b: &mut [f64],
10184    ldb: i32,
10185    d: &mut [f64],
10186    x: &mut [f64],
10187    y: &mut [f64],
10188    work: &mut [f64],
10189    lwork: i32,
10190    info: &mut i32,
10191) {
10192    ffi::dggglm_(
10193        &n,
10194        &m,
10195        &p,
10196        a.as_mut_ptr(),
10197        &lda,
10198        b.as_mut_ptr(),
10199        &ldb,
10200        d.as_mut_ptr(),
10201        x.as_mut_ptr(),
10202        y.as_mut_ptr(),
10203        work.as_mut_ptr(),
10204        &lwork,
10205        info,
10206    )
10207}
10208
10209#[inline]
10210pub unsafe fn sggglm(
10211    n: i32,
10212    m: i32,
10213    p: i32,
10214    a: &mut [f32],
10215    lda: i32,
10216    b: &mut [f32],
10217    ldb: i32,
10218    d: &mut [f32],
10219    x: &mut [f32],
10220    y: &mut [f32],
10221    work: &mut [f32],
10222    lwork: i32,
10223    info: &mut i32,
10224) {
10225    ffi::sggglm_(
10226        &n,
10227        &m,
10228        &p,
10229        a.as_mut_ptr(),
10230        &lda,
10231        b.as_mut_ptr(),
10232        &ldb,
10233        d.as_mut_ptr(),
10234        x.as_mut_ptr(),
10235        y.as_mut_ptr(),
10236        work.as_mut_ptr(),
10237        &lwork,
10238        info,
10239    )
10240}
10241
10242#[inline]
10243pub unsafe fn zggglm(
10244    n: i32,
10245    m: i32,
10246    p: i32,
10247    a: &mut [c64],
10248    lda: i32,
10249    b: &mut [c64],
10250    ldb: i32,
10251    d: &mut [c64],
10252    x: &mut [c64],
10253    y: &mut [c64],
10254    work: &mut [c64],
10255    lwork: i32,
10256    info: &mut i32,
10257) {
10258    ffi::zggglm_(
10259        &n,
10260        &m,
10261        &p,
10262        a.as_mut_ptr() as *mut _,
10263        &lda,
10264        b.as_mut_ptr() as *mut _,
10265        &ldb,
10266        d.as_mut_ptr() as *mut _,
10267        x.as_mut_ptr() as *mut _,
10268        y.as_mut_ptr() as *mut _,
10269        work.as_mut_ptr() as *mut _,
10270        &lwork,
10271        info,
10272    )
10273}
10274
10275#[inline]
10276pub unsafe fn cgghd3(
10277    compq: u8,
10278    compz: u8,
10279    n: i32,
10280    ilo: i32,
10281    ihi: i32,
10282    a: &mut [c32],
10283    lda: i32,
10284    b: &mut [c32],
10285    ldb: i32,
10286    q: &mut [c32],
10287    ldq: i32,
10288    z: &mut [c32],
10289    ldz: i32,
10290    work: &mut [c32],
10291    lwork: i32,
10292    info: &mut i32,
10293) {
10294    ffi::cgghd3_(
10295        &(compq as c_char),
10296        &(compz as c_char),
10297        &n,
10298        &ilo,
10299        &ihi,
10300        a.as_mut_ptr() as *mut _,
10301        &lda,
10302        b.as_mut_ptr() as *mut _,
10303        &ldb,
10304        q.as_mut_ptr() as *mut _,
10305        &ldq,
10306        z.as_mut_ptr() as *mut _,
10307        &ldz,
10308        work.as_mut_ptr() as *mut _,
10309        &lwork,
10310        info,
10311    )
10312}
10313
10314#[inline]
10315pub unsafe fn dgghd3(
10316    compq: u8,
10317    compz: u8,
10318    n: i32,
10319    ilo: i32,
10320    ihi: i32,
10321    a: &mut [f64],
10322    lda: i32,
10323    b: &mut [f64],
10324    ldb: i32,
10325    q: &mut [f64],
10326    ldq: i32,
10327    z: &mut [f64],
10328    ldz: i32,
10329    work: &mut [f64],
10330    lwork: i32,
10331    info: &mut i32,
10332) {
10333    ffi::dgghd3_(
10334        &(compq as c_char),
10335        &(compz as c_char),
10336        &n,
10337        &ilo,
10338        &ihi,
10339        a.as_mut_ptr(),
10340        &lda,
10341        b.as_mut_ptr(),
10342        &ldb,
10343        q.as_mut_ptr(),
10344        &ldq,
10345        z.as_mut_ptr(),
10346        &ldz,
10347        work.as_mut_ptr(),
10348        &lwork,
10349        info,
10350    )
10351}
10352
10353#[inline]
10354pub unsafe fn sgghd3(
10355    compq: u8,
10356    compz: u8,
10357    n: i32,
10358    ilo: i32,
10359    ihi: i32,
10360    a: &mut [f32],
10361    lda: i32,
10362    b: &mut [f32],
10363    ldb: i32,
10364    q: &mut [f32],
10365    ldq: i32,
10366    z: &mut [f32],
10367    ldz: i32,
10368    work: &mut [f32],
10369    lwork: i32,
10370    info: &mut i32,
10371) {
10372    ffi::sgghd3_(
10373        &(compq as c_char),
10374        &(compz as c_char),
10375        &n,
10376        &ilo,
10377        &ihi,
10378        a.as_mut_ptr(),
10379        &lda,
10380        b.as_mut_ptr(),
10381        &ldb,
10382        q.as_mut_ptr(),
10383        &ldq,
10384        z.as_mut_ptr(),
10385        &ldz,
10386        work.as_mut_ptr(),
10387        &lwork,
10388        info,
10389    )
10390}
10391
10392#[inline]
10393pub unsafe fn zgghd3(
10394    compq: u8,
10395    compz: u8,
10396    n: i32,
10397    ilo: i32,
10398    ihi: i32,
10399    a: &mut [c64],
10400    lda: i32,
10401    b: &mut [c64],
10402    ldb: i32,
10403    q: &mut [c64],
10404    ldq: i32,
10405    z: &mut [c64],
10406    ldz: i32,
10407    work: &mut [c64],
10408    lwork: i32,
10409    info: &mut i32,
10410) {
10411    ffi::zgghd3_(
10412        &(compq as c_char),
10413        &(compz as c_char),
10414        &n,
10415        &ilo,
10416        &ihi,
10417        a.as_mut_ptr() as *mut _,
10418        &lda,
10419        b.as_mut_ptr() as *mut _,
10420        &ldb,
10421        q.as_mut_ptr() as *mut _,
10422        &ldq,
10423        z.as_mut_ptr() as *mut _,
10424        &ldz,
10425        work.as_mut_ptr() as *mut _,
10426        &lwork,
10427        info,
10428    )
10429}
10430
10431#[inline]
10432pub unsafe fn cgghrd(
10433    compq: u8,
10434    compz: u8,
10435    n: i32,
10436    ilo: i32,
10437    ihi: i32,
10438    a: &mut [c32],
10439    lda: i32,
10440    b: &mut [c32],
10441    ldb: i32,
10442    q: &mut [c32],
10443    ldq: i32,
10444    z: &mut [c32],
10445    ldz: i32,
10446    info: &mut i32,
10447) {
10448    ffi::cgghrd_(
10449        &(compq as c_char),
10450        &(compz as c_char),
10451        &n,
10452        &ilo,
10453        &ihi,
10454        a.as_mut_ptr() as *mut _,
10455        &lda,
10456        b.as_mut_ptr() as *mut _,
10457        &ldb,
10458        q.as_mut_ptr() as *mut _,
10459        &ldq,
10460        z.as_mut_ptr() as *mut _,
10461        &ldz,
10462        info,
10463    )
10464}
10465
10466#[inline]
10467pub unsafe fn dgghrd(
10468    compq: u8,
10469    compz: u8,
10470    n: i32,
10471    ilo: i32,
10472    ihi: i32,
10473    a: &mut [f64],
10474    lda: i32,
10475    b: &mut [f64],
10476    ldb: i32,
10477    q: &mut [f64],
10478    ldq: i32,
10479    z: &mut [f64],
10480    ldz: i32,
10481    info: &mut i32,
10482) {
10483    ffi::dgghrd_(
10484        &(compq as c_char),
10485        &(compz as c_char),
10486        &n,
10487        &ilo,
10488        &ihi,
10489        a.as_mut_ptr(),
10490        &lda,
10491        b.as_mut_ptr(),
10492        &ldb,
10493        q.as_mut_ptr(),
10494        &ldq,
10495        z.as_mut_ptr(),
10496        &ldz,
10497        info,
10498    )
10499}
10500
10501#[inline]
10502pub unsafe fn sgghrd(
10503    compq: u8,
10504    compz: u8,
10505    n: i32,
10506    ilo: i32,
10507    ihi: i32,
10508    a: &mut [f32],
10509    lda: i32,
10510    b: &mut [f32],
10511    ldb: i32,
10512    q: &mut [f32],
10513    ldq: i32,
10514    z: &mut [f32],
10515    ldz: i32,
10516    info: &mut i32,
10517) {
10518    ffi::sgghrd_(
10519        &(compq as c_char),
10520        &(compz as c_char),
10521        &n,
10522        &ilo,
10523        &ihi,
10524        a.as_mut_ptr(),
10525        &lda,
10526        b.as_mut_ptr(),
10527        &ldb,
10528        q.as_mut_ptr(),
10529        &ldq,
10530        z.as_mut_ptr(),
10531        &ldz,
10532        info,
10533    )
10534}
10535
10536#[inline]
10537pub unsafe fn zgghrd(
10538    compq: u8,
10539    compz: u8,
10540    n: i32,
10541    ilo: i32,
10542    ihi: i32,
10543    a: &mut [c64],
10544    lda: i32,
10545    b: &mut [c64],
10546    ldb: i32,
10547    q: &mut [c64],
10548    ldq: i32,
10549    z: &mut [c64],
10550    ldz: i32,
10551    info: &mut i32,
10552) {
10553    ffi::zgghrd_(
10554        &(compq as c_char),
10555        &(compz as c_char),
10556        &n,
10557        &ilo,
10558        &ihi,
10559        a.as_mut_ptr() as *mut _,
10560        &lda,
10561        b.as_mut_ptr() as *mut _,
10562        &ldb,
10563        q.as_mut_ptr() as *mut _,
10564        &ldq,
10565        z.as_mut_ptr() as *mut _,
10566        &ldz,
10567        info,
10568    )
10569}
10570
10571#[inline]
10572pub unsafe fn cgglse(
10573    m: i32,
10574    n: i32,
10575    p: i32,
10576    a: &mut [c32],
10577    lda: i32,
10578    b: &mut [c32],
10579    ldb: i32,
10580    c: &mut [c32],
10581    d: &mut [c32],
10582    x: &mut [c32],
10583    work: &mut [c32],
10584    lwork: i32,
10585    info: &mut i32,
10586) {
10587    ffi::cgglse_(
10588        &m,
10589        &n,
10590        &p,
10591        a.as_mut_ptr() as *mut _,
10592        &lda,
10593        b.as_mut_ptr() as *mut _,
10594        &ldb,
10595        c.as_mut_ptr() as *mut _,
10596        d.as_mut_ptr() as *mut _,
10597        x.as_mut_ptr() as *mut _,
10598        work.as_mut_ptr() as *mut _,
10599        &lwork,
10600        info,
10601    )
10602}
10603
10604#[inline]
10605pub unsafe fn dgglse(
10606    m: i32,
10607    n: i32,
10608    p: i32,
10609    a: &mut [f64],
10610    lda: i32,
10611    b: &mut [f64],
10612    ldb: i32,
10613    c: &mut [f64],
10614    d: &mut [f64],
10615    x: &mut [f64],
10616    work: &mut [f64],
10617    lwork: i32,
10618    info: &mut i32,
10619) {
10620    ffi::dgglse_(
10621        &m,
10622        &n,
10623        &p,
10624        a.as_mut_ptr(),
10625        &lda,
10626        b.as_mut_ptr(),
10627        &ldb,
10628        c.as_mut_ptr(),
10629        d.as_mut_ptr(),
10630        x.as_mut_ptr(),
10631        work.as_mut_ptr(),
10632        &lwork,
10633        info,
10634    )
10635}
10636
10637#[inline]
10638pub unsafe fn sgglse(
10639    m: i32,
10640    n: i32,
10641    p: i32,
10642    a: &mut [f32],
10643    lda: i32,
10644    b: &mut [f32],
10645    ldb: i32,
10646    c: &mut [f32],
10647    d: &mut [f32],
10648    x: &mut [f32],
10649    work: &mut [f32],
10650    lwork: i32,
10651    info: &mut i32,
10652) {
10653    ffi::sgglse_(
10654        &m,
10655        &n,
10656        &p,
10657        a.as_mut_ptr(),
10658        &lda,
10659        b.as_mut_ptr(),
10660        &ldb,
10661        c.as_mut_ptr(),
10662        d.as_mut_ptr(),
10663        x.as_mut_ptr(),
10664        work.as_mut_ptr(),
10665        &lwork,
10666        info,
10667    )
10668}
10669
10670#[inline]
10671pub unsafe fn zgglse(
10672    m: i32,
10673    n: i32,
10674    p: i32,
10675    a: &mut [c64],
10676    lda: i32,
10677    b: &mut [c64],
10678    ldb: i32,
10679    c: &mut [c64],
10680    d: &mut [c64],
10681    x: &mut [c64],
10682    work: &mut [c64],
10683    lwork: i32,
10684    info: &mut i32,
10685) {
10686    ffi::zgglse_(
10687        &m,
10688        &n,
10689        &p,
10690        a.as_mut_ptr() as *mut _,
10691        &lda,
10692        b.as_mut_ptr() as *mut _,
10693        &ldb,
10694        c.as_mut_ptr() as *mut _,
10695        d.as_mut_ptr() as *mut _,
10696        x.as_mut_ptr() as *mut _,
10697        work.as_mut_ptr() as *mut _,
10698        &lwork,
10699        info,
10700    )
10701}
10702
10703#[inline]
10704pub unsafe fn cggqrf(
10705    n: i32,
10706    m: i32,
10707    p: i32,
10708    a: &mut [c32],
10709    lda: i32,
10710    taua: &mut [c32],
10711    b: &mut [c32],
10712    ldb: i32,
10713    taub: &mut [c32],
10714    work: &mut [c32],
10715    lwork: i32,
10716    info: &mut i32,
10717) {
10718    ffi::cggqrf_(
10719        &n,
10720        &m,
10721        &p,
10722        a.as_mut_ptr() as *mut _,
10723        &lda,
10724        taua.as_mut_ptr() as *mut _,
10725        b.as_mut_ptr() as *mut _,
10726        &ldb,
10727        taub.as_mut_ptr() as *mut _,
10728        work.as_mut_ptr() as *mut _,
10729        &lwork,
10730        info,
10731    )
10732}
10733
10734#[inline]
10735pub unsafe fn dggqrf(
10736    n: i32,
10737    m: i32,
10738    p: i32,
10739    a: &mut [f64],
10740    lda: i32,
10741    taua: &mut [f64],
10742    b: &mut [f64],
10743    ldb: i32,
10744    taub: &mut [f64],
10745    work: &mut [f64],
10746    lwork: i32,
10747    info: &mut i32,
10748) {
10749    ffi::dggqrf_(
10750        &n,
10751        &m,
10752        &p,
10753        a.as_mut_ptr(),
10754        &lda,
10755        taua.as_mut_ptr(),
10756        b.as_mut_ptr(),
10757        &ldb,
10758        taub.as_mut_ptr(),
10759        work.as_mut_ptr(),
10760        &lwork,
10761        info,
10762    )
10763}
10764
10765#[inline]
10766pub unsafe fn sggqrf(
10767    n: i32,
10768    m: i32,
10769    p: i32,
10770    a: &mut [f32],
10771    lda: i32,
10772    taua: &mut [f32],
10773    b: &mut [f32],
10774    ldb: i32,
10775    taub: &mut [f32],
10776    work: &mut [f32],
10777    lwork: i32,
10778    info: &mut i32,
10779) {
10780    ffi::sggqrf_(
10781        &n,
10782        &m,
10783        &p,
10784        a.as_mut_ptr(),
10785        &lda,
10786        taua.as_mut_ptr(),
10787        b.as_mut_ptr(),
10788        &ldb,
10789        taub.as_mut_ptr(),
10790        work.as_mut_ptr(),
10791        &lwork,
10792        info,
10793    )
10794}
10795
10796#[inline]
10797pub unsafe fn zggqrf(
10798    n: i32,
10799    m: i32,
10800    p: i32,
10801    a: &mut [c64],
10802    lda: i32,
10803    taua: &mut [c64],
10804    b: &mut [c64],
10805    ldb: i32,
10806    taub: &mut [c64],
10807    work: &mut [c64],
10808    lwork: i32,
10809    info: &mut i32,
10810) {
10811    ffi::zggqrf_(
10812        &n,
10813        &m,
10814        &p,
10815        a.as_mut_ptr() as *mut _,
10816        &lda,
10817        taua.as_mut_ptr() as *mut _,
10818        b.as_mut_ptr() as *mut _,
10819        &ldb,
10820        taub.as_mut_ptr() as *mut _,
10821        work.as_mut_ptr() as *mut _,
10822        &lwork,
10823        info,
10824    )
10825}
10826
10827#[inline]
10828pub unsafe fn cggrqf(
10829    m: i32,
10830    p: i32,
10831    n: i32,
10832    a: &mut [c32],
10833    lda: i32,
10834    taua: &mut [c32],
10835    b: &mut [c32],
10836    ldb: i32,
10837    taub: &mut [c32],
10838    work: &mut [c32],
10839    lwork: i32,
10840    info: &mut i32,
10841) {
10842    ffi::cggrqf_(
10843        &m,
10844        &p,
10845        &n,
10846        a.as_mut_ptr() as *mut _,
10847        &lda,
10848        taua.as_mut_ptr() as *mut _,
10849        b.as_mut_ptr() as *mut _,
10850        &ldb,
10851        taub.as_mut_ptr() as *mut _,
10852        work.as_mut_ptr() as *mut _,
10853        &lwork,
10854        info,
10855    )
10856}
10857
10858#[inline]
10859pub unsafe fn dggrqf(
10860    m: i32,
10861    p: i32,
10862    n: i32,
10863    a: &mut [f64],
10864    lda: i32,
10865    taua: &mut [f64],
10866    b: &mut [f64],
10867    ldb: i32,
10868    taub: &mut [f64],
10869    work: &mut [f64],
10870    lwork: i32,
10871    info: &mut i32,
10872) {
10873    ffi::dggrqf_(
10874        &m,
10875        &p,
10876        &n,
10877        a.as_mut_ptr(),
10878        &lda,
10879        taua.as_mut_ptr(),
10880        b.as_mut_ptr(),
10881        &ldb,
10882        taub.as_mut_ptr(),
10883        work.as_mut_ptr(),
10884        &lwork,
10885        info,
10886    )
10887}
10888
10889#[inline]
10890pub unsafe fn sggrqf(
10891    m: i32,
10892    p: i32,
10893    n: i32,
10894    a: &mut [f32],
10895    lda: i32,
10896    taua: &mut [f32],
10897    b: &mut [f32],
10898    ldb: i32,
10899    taub: &mut [f32],
10900    work: &mut [f32],
10901    lwork: i32,
10902    info: &mut i32,
10903) {
10904    ffi::sggrqf_(
10905        &m,
10906        &p,
10907        &n,
10908        a.as_mut_ptr(),
10909        &lda,
10910        taua.as_mut_ptr(),
10911        b.as_mut_ptr(),
10912        &ldb,
10913        taub.as_mut_ptr(),
10914        work.as_mut_ptr(),
10915        &lwork,
10916        info,
10917    )
10918}
10919
10920#[inline]
10921pub unsafe fn zggrqf(
10922    m: i32,
10923    p: i32,
10924    n: i32,
10925    a: &mut [c64],
10926    lda: i32,
10927    taua: &mut [c64],
10928    b: &mut [c64],
10929    ldb: i32,
10930    taub: &mut [c64],
10931    work: &mut [c64],
10932    lwork: i32,
10933    info: &mut i32,
10934) {
10935    ffi::zggrqf_(
10936        &m,
10937        &p,
10938        &n,
10939        a.as_mut_ptr() as *mut _,
10940        &lda,
10941        taua.as_mut_ptr() as *mut _,
10942        b.as_mut_ptr() as *mut _,
10943        &ldb,
10944        taub.as_mut_ptr() as *mut _,
10945        work.as_mut_ptr() as *mut _,
10946        &lwork,
10947        info,
10948    )
10949}
10950
10951#[inline]
10952pub unsafe fn sggsvd(
10953    jobu: u8,
10954    jobv: u8,
10955    jobq: u8,
10956    m: i32,
10957    n: i32,
10958    p: i32,
10959    k: &mut i32,
10960    l: &mut i32,
10961    a: &mut [f32],
10962    lda: i32,
10963    b: &mut [f32],
10964    ldb: i32,
10965    alpha: &mut [f32],
10966    beta: &mut [f32],
10967    u: &mut [f32],
10968    ldu: i32,
10969    v: &mut [f32],
10970    ldv: i32,
10971    q: &mut [f32],
10972    ldq: i32,
10973    work: &mut [f32],
10974    iwork: &mut [i32],
10975    info: &mut i32,
10976) -> i32 {
10977    ffi::sggsvd_(
10978        &(jobu as c_char),
10979        &(jobv as c_char),
10980        &(jobq as c_char),
10981        &m,
10982        &n,
10983        &p,
10984        k,
10985        l,
10986        a.as_mut_ptr(),
10987        &lda,
10988        b.as_mut_ptr(),
10989        &ldb,
10990        alpha.as_mut_ptr(),
10991        beta.as_mut_ptr(),
10992        u.as_mut_ptr(),
10993        &ldu,
10994        v.as_mut_ptr(),
10995        &ldv,
10996        q.as_mut_ptr(),
10997        &ldq,
10998        work.as_mut_ptr(),
10999        iwork.as_mut_ptr(),
11000        info,
11001    )
11002}
11003
11004#[inline]
11005pub unsafe fn dggsvd(
11006    jobu: u8,
11007    jobv: u8,
11008    jobq: u8,
11009    m: i32,
11010    n: i32,
11011    p: i32,
11012    k: &mut i32,
11013    l: &mut i32,
11014    a: &mut [f64],
11015    lda: i32,
11016    b: &mut [f64],
11017    ldb: i32,
11018    alpha: &mut [f64],
11019    beta: &mut [f64],
11020    u: &mut [f64],
11021    ldu: i32,
11022    v: &mut [f64],
11023    ldv: i32,
11024    q: &mut [f64],
11025    ldq: i32,
11026    work: &mut [f64],
11027    iwork: &mut [i32],
11028    info: &mut i32,
11029) -> i32 {
11030    ffi::dggsvd_(
11031        &(jobu as c_char),
11032        &(jobv as c_char),
11033        &(jobq as c_char),
11034        &m,
11035        &n,
11036        &p,
11037        k,
11038        l,
11039        a.as_mut_ptr(),
11040        &lda,
11041        b.as_mut_ptr(),
11042        &ldb,
11043        alpha.as_mut_ptr(),
11044        beta.as_mut_ptr(),
11045        u.as_mut_ptr(),
11046        &ldu,
11047        v.as_mut_ptr(),
11048        &ldv,
11049        q.as_mut_ptr(),
11050        &ldq,
11051        work.as_mut_ptr(),
11052        iwork.as_mut_ptr(),
11053        info,
11054    )
11055}
11056
11057#[inline]
11058pub unsafe fn cggsvd(
11059    jobu: u8,
11060    jobv: u8,
11061    jobq: u8,
11062    m: i32,
11063    n: i32,
11064    p: i32,
11065    k: &mut i32,
11066    l: &mut i32,
11067    a: &mut [c32],
11068    lda: i32,
11069    b: &mut [c32],
11070    ldb: i32,
11071    alpha: &mut [f32],
11072    beta: &mut [f32],
11073    u: &mut [c32],
11074    ldu: i32,
11075    v: &mut [c32],
11076    ldv: i32,
11077    q: &mut [c32],
11078    ldq: i32,
11079    work: &mut [c32],
11080    rwork: &mut [f32],
11081    iwork: &mut [i32],
11082    info: &mut i32,
11083) -> i32 {
11084    ffi::cggsvd_(
11085        &(jobu as c_char),
11086        &(jobv as c_char),
11087        &(jobq as c_char),
11088        &m,
11089        &n,
11090        &p,
11091        k,
11092        l,
11093        a.as_mut_ptr() as *mut _,
11094        &lda,
11095        b.as_mut_ptr() as *mut _,
11096        &ldb,
11097        alpha.as_mut_ptr(),
11098        beta.as_mut_ptr(),
11099        u.as_mut_ptr() as *mut _,
11100        &ldu,
11101        v.as_mut_ptr() as *mut _,
11102        &ldv,
11103        q.as_mut_ptr() as *mut _,
11104        &ldq,
11105        work.as_mut_ptr() as *mut _,
11106        rwork.as_mut_ptr(),
11107        iwork.as_mut_ptr(),
11108        info,
11109    )
11110}
11111
11112#[inline]
11113pub unsafe fn zggsvd(
11114    jobu: u8,
11115    jobv: u8,
11116    jobq: u8,
11117    m: i32,
11118    n: i32,
11119    p: i32,
11120    k: &mut i32,
11121    l: &mut i32,
11122    a: &mut [c64],
11123    lda: i32,
11124    b: &mut [c64],
11125    ldb: i32,
11126    alpha: &mut [f64],
11127    beta: &mut [f64],
11128    u: &mut [c64],
11129    ldu: i32,
11130    v: &mut [c64],
11131    ldv: i32,
11132    q: &mut [c64],
11133    ldq: i32,
11134    work: &mut [c64],
11135    rwork: &mut [f64],
11136    iwork: &mut [i32],
11137    info: &mut i32,
11138) -> i32 {
11139    ffi::zggsvd_(
11140        &(jobu as c_char),
11141        &(jobv as c_char),
11142        &(jobq as c_char),
11143        &m,
11144        &n,
11145        &p,
11146        k,
11147        l,
11148        a.as_mut_ptr() as *mut _,
11149        &lda,
11150        b.as_mut_ptr() as *mut _,
11151        &ldb,
11152        alpha.as_mut_ptr(),
11153        beta.as_mut_ptr(),
11154        u.as_mut_ptr() as *mut _,
11155        &ldu,
11156        v.as_mut_ptr() as *mut _,
11157        &ldv,
11158        q.as_mut_ptr() as *mut _,
11159        &ldq,
11160        work.as_mut_ptr() as *mut _,
11161        rwork.as_mut_ptr(),
11162        iwork.as_mut_ptr(),
11163        info,
11164    )
11165}
11166
11167#[inline]
11168pub unsafe fn cggsvd3(
11169    jobu: u8,
11170    jobv: u8,
11171    jobq: u8,
11172    m: i32,
11173    n: i32,
11174    p: i32,
11175    k: &mut i32,
11176    l: &mut i32,
11177    a: &mut [c32],
11178    lda: i32,
11179    b: &mut [c32],
11180    ldb: i32,
11181    alpha: &mut [f32],
11182    beta: &mut [f32],
11183    u: &mut [c32],
11184    ldu: i32,
11185    v: &mut [c32],
11186    ldv: i32,
11187    q: &mut [c32],
11188    ldq: i32,
11189    work: &mut [c32],
11190    lwork: i32,
11191    rwork: &mut [f32],
11192    iwork: &mut [i32],
11193    info: &mut i32,
11194) {
11195    ffi::cggsvd3_(
11196        &(jobu as c_char),
11197        &(jobv as c_char),
11198        &(jobq as c_char),
11199        &m,
11200        &n,
11201        &p,
11202        k,
11203        l,
11204        a.as_mut_ptr() as *mut _,
11205        &lda,
11206        b.as_mut_ptr() as *mut _,
11207        &ldb,
11208        alpha.as_mut_ptr(),
11209        beta.as_mut_ptr(),
11210        u.as_mut_ptr() as *mut _,
11211        &ldu,
11212        v.as_mut_ptr() as *mut _,
11213        &ldv,
11214        q.as_mut_ptr() as *mut _,
11215        &ldq,
11216        work.as_mut_ptr() as *mut _,
11217        &lwork,
11218        rwork.as_mut_ptr(),
11219        iwork.as_mut_ptr(),
11220        info,
11221    )
11222}
11223
11224#[inline]
11225pub unsafe fn dggsvd3(
11226    jobu: u8,
11227    jobv: u8,
11228    jobq: u8,
11229    m: i32,
11230    n: i32,
11231    p: i32,
11232    k: &mut i32,
11233    l: &mut i32,
11234    a: &mut [f64],
11235    lda: i32,
11236    b: &mut [f64],
11237    ldb: i32,
11238    alpha: &mut [f64],
11239    beta: &mut [f64],
11240    u: &mut [f64],
11241    ldu: i32,
11242    v: &mut [f64],
11243    ldv: i32,
11244    q: &mut [f64],
11245    ldq: i32,
11246    work: &mut [f64],
11247    lwork: i32,
11248    iwork: &mut [i32],
11249    info: &mut i32,
11250) {
11251    ffi::dggsvd3_(
11252        &(jobu as c_char),
11253        &(jobv as c_char),
11254        &(jobq as c_char),
11255        &m,
11256        &n,
11257        &p,
11258        k,
11259        l,
11260        a.as_mut_ptr(),
11261        &lda,
11262        b.as_mut_ptr(),
11263        &ldb,
11264        alpha.as_mut_ptr(),
11265        beta.as_mut_ptr(),
11266        u.as_mut_ptr(),
11267        &ldu,
11268        v.as_mut_ptr(),
11269        &ldv,
11270        q.as_mut_ptr(),
11271        &ldq,
11272        work.as_mut_ptr(),
11273        &lwork,
11274        iwork.as_mut_ptr(),
11275        info,
11276    )
11277}
11278
11279#[inline]
11280pub unsafe fn sggsvd3(
11281    jobu: u8,
11282    jobv: u8,
11283    jobq: u8,
11284    m: i32,
11285    n: i32,
11286    p: i32,
11287    k: &mut i32,
11288    l: &mut i32,
11289    a: &mut [f32],
11290    lda: i32,
11291    b: &mut [f32],
11292    ldb: i32,
11293    alpha: &mut [f32],
11294    beta: &mut [f32],
11295    u: &mut [f32],
11296    ldu: i32,
11297    v: &mut [f32],
11298    ldv: i32,
11299    q: &mut [f32],
11300    ldq: i32,
11301    work: &mut [f32],
11302    lwork: i32,
11303    iwork: &mut [i32],
11304    info: &mut i32,
11305) {
11306    ffi::sggsvd3_(
11307        &(jobu as c_char),
11308        &(jobv as c_char),
11309        &(jobq as c_char),
11310        &m,
11311        &n,
11312        &p,
11313        k,
11314        l,
11315        a.as_mut_ptr(),
11316        &lda,
11317        b.as_mut_ptr(),
11318        &ldb,
11319        alpha.as_mut_ptr(),
11320        beta.as_mut_ptr(),
11321        u.as_mut_ptr(),
11322        &ldu,
11323        v.as_mut_ptr(),
11324        &ldv,
11325        q.as_mut_ptr(),
11326        &ldq,
11327        work.as_mut_ptr(),
11328        &lwork,
11329        iwork.as_mut_ptr(),
11330        info,
11331    )
11332}
11333
11334#[inline]
11335pub unsafe fn zggsvd3(
11336    jobu: u8,
11337    jobv: u8,
11338    jobq: u8,
11339    m: i32,
11340    n: i32,
11341    p: i32,
11342    k: &mut i32,
11343    l: &mut i32,
11344    a: &mut [c64],
11345    lda: i32,
11346    b: &mut [c64],
11347    ldb: i32,
11348    alpha: &mut [f64],
11349    beta: &mut [f64],
11350    u: &mut [c64],
11351    ldu: i32,
11352    v: &mut [c64],
11353    ldv: i32,
11354    q: &mut [c64],
11355    ldq: i32,
11356    work: &mut [c64],
11357    lwork: i32,
11358    rwork: &mut [f64],
11359    iwork: &mut [i32],
11360    info: &mut i32,
11361) {
11362    ffi::zggsvd3_(
11363        &(jobu as c_char),
11364        &(jobv as c_char),
11365        &(jobq as c_char),
11366        &m,
11367        &n,
11368        &p,
11369        k,
11370        l,
11371        a.as_mut_ptr() as *mut _,
11372        &lda,
11373        b.as_mut_ptr() as *mut _,
11374        &ldb,
11375        alpha.as_mut_ptr(),
11376        beta.as_mut_ptr(),
11377        u.as_mut_ptr() as *mut _,
11378        &ldu,
11379        v.as_mut_ptr() as *mut _,
11380        &ldv,
11381        q.as_mut_ptr() as *mut _,
11382        &ldq,
11383        work.as_mut_ptr() as *mut _,
11384        &lwork,
11385        rwork.as_mut_ptr(),
11386        iwork.as_mut_ptr(),
11387        info,
11388    )
11389}
11390
11391#[inline]
11392pub unsafe fn sggsvp(
11393    jobu: u8,
11394    jobv: u8,
11395    jobq: u8,
11396    m: i32,
11397    p: i32,
11398    n: i32,
11399    a: &mut [f32],
11400    lda: i32,
11401    b: &mut [f32],
11402    ldb: i32,
11403    tola: &mut f32,
11404    tolb: &mut f32,
11405    k: &mut i32,
11406    l: &mut i32,
11407    u: &mut [f32],
11408    ldu: i32,
11409    v: &mut [f32],
11410    ldv: i32,
11411    q: &mut [f32],
11412    ldq: i32,
11413    iwork: &mut [i32],
11414    tau: &mut [f32],
11415    work: &mut [f32],
11416    info: &mut i32,
11417) -> i32 {
11418    ffi::sggsvp_(
11419        &(jobu as c_char),
11420        &(jobv as c_char),
11421        &(jobq as c_char),
11422        &m,
11423        &p,
11424        &n,
11425        a.as_mut_ptr(),
11426        &lda,
11427        b.as_mut_ptr(),
11428        &ldb,
11429        tola,
11430        tolb,
11431        k,
11432        l,
11433        u.as_mut_ptr(),
11434        &ldu,
11435        v.as_mut_ptr(),
11436        &ldv,
11437        q.as_mut_ptr(),
11438        &ldq,
11439        iwork.as_mut_ptr(),
11440        tau.as_mut_ptr(),
11441        work.as_mut_ptr(),
11442        info,
11443    )
11444}
11445
11446#[inline]
11447pub unsafe fn dggsvp(
11448    jobu: u8,
11449    jobv: u8,
11450    jobq: u8,
11451    m: i32,
11452    p: i32,
11453    n: i32,
11454    a: &mut [f64],
11455    lda: i32,
11456    b: &mut [f64],
11457    ldb: i32,
11458    tola: &mut f64,
11459    tolb: &mut f64,
11460    k: &mut i32,
11461    l: &mut i32,
11462    u: &mut [f64],
11463    ldu: i32,
11464    v: &mut [f64],
11465    ldv: i32,
11466    q: &mut [f64],
11467    ldq: i32,
11468    iwork: &mut [i32],
11469    tau: &mut [f64],
11470    work: &mut [f64],
11471    info: &mut i32,
11472) -> i32 {
11473    ffi::dggsvp_(
11474        &(jobu as c_char),
11475        &(jobv as c_char),
11476        &(jobq as c_char),
11477        &m,
11478        &p,
11479        &n,
11480        a.as_mut_ptr(),
11481        &lda,
11482        b.as_mut_ptr(),
11483        &ldb,
11484        tola,
11485        tolb,
11486        k,
11487        l,
11488        u.as_mut_ptr(),
11489        &ldu,
11490        v.as_mut_ptr(),
11491        &ldv,
11492        q.as_mut_ptr(),
11493        &ldq,
11494        iwork.as_mut_ptr(),
11495        tau.as_mut_ptr(),
11496        work.as_mut_ptr(),
11497        info,
11498    )
11499}
11500
11501#[inline]
11502pub unsafe fn cggsvp(
11503    jobu: u8,
11504    jobv: u8,
11505    jobq: u8,
11506    m: i32,
11507    p: i32,
11508    n: i32,
11509    a: &mut [c32],
11510    lda: i32,
11511    b: &mut [c32],
11512    ldb: i32,
11513    tola: &mut f32,
11514    tolb: &mut f32,
11515    k: &mut i32,
11516    l: &mut i32,
11517    u: &mut [c32],
11518    ldu: i32,
11519    v: &mut [c32],
11520    ldv: i32,
11521    q: &mut [c32],
11522    ldq: i32,
11523    iwork: &mut [i32],
11524    rwork: &mut [f32],
11525    tau: &mut [c32],
11526    work: &mut [c32],
11527    info: &mut i32,
11528) -> i32 {
11529    ffi::cggsvp_(
11530        &(jobu as c_char),
11531        &(jobv as c_char),
11532        &(jobq as c_char),
11533        &m,
11534        &p,
11535        &n,
11536        a.as_mut_ptr() as *mut _,
11537        &lda,
11538        b.as_mut_ptr() as *mut _,
11539        &ldb,
11540        tola,
11541        tolb,
11542        k,
11543        l,
11544        u.as_mut_ptr() as *mut _,
11545        &ldu,
11546        v.as_mut_ptr() as *mut _,
11547        &ldv,
11548        q.as_mut_ptr() as *mut _,
11549        &ldq,
11550        iwork.as_mut_ptr(),
11551        rwork.as_mut_ptr(),
11552        tau.as_mut_ptr() as *mut _,
11553        work.as_mut_ptr() as *mut _,
11554        info,
11555    )
11556}
11557
11558#[inline]
11559pub unsafe fn zggsvp(
11560    jobu: u8,
11561    jobv: u8,
11562    jobq: u8,
11563    m: i32,
11564    p: i32,
11565    n: i32,
11566    a: &mut [c64],
11567    lda: i32,
11568    b: &mut [c64],
11569    ldb: i32,
11570    tola: &mut f64,
11571    tolb: &mut f64,
11572    k: &mut i32,
11573    l: &mut i32,
11574    u: &mut [c64],
11575    ldu: i32,
11576    v: &mut [c64],
11577    ldv: i32,
11578    q: &mut [c64],
11579    ldq: i32,
11580    iwork: &mut [i32],
11581    rwork: &mut [f64],
11582    tau: &mut [c64],
11583    work: &mut [c64],
11584    info: &mut i32,
11585) -> i32 {
11586    ffi::zggsvp_(
11587        &(jobu as c_char),
11588        &(jobv as c_char),
11589        &(jobq as c_char),
11590        &m,
11591        &p,
11592        &n,
11593        a.as_mut_ptr() as *mut _,
11594        &lda,
11595        b.as_mut_ptr() as *mut _,
11596        &ldb,
11597        tola,
11598        tolb,
11599        k,
11600        l,
11601        u.as_mut_ptr() as *mut _,
11602        &ldu,
11603        v.as_mut_ptr() as *mut _,
11604        &ldv,
11605        q.as_mut_ptr() as *mut _,
11606        &ldq,
11607        iwork.as_mut_ptr(),
11608        rwork.as_mut_ptr(),
11609        tau.as_mut_ptr() as *mut _,
11610        work.as_mut_ptr() as *mut _,
11611        info,
11612    )
11613}
11614
11615#[inline]
11616pub unsafe fn cggsvp3(
11617    jobu: u8,
11618    jobv: u8,
11619    jobq: u8,
11620    m: i32,
11621    p: i32,
11622    n: i32,
11623    a: &mut [c32],
11624    lda: i32,
11625    b: &mut [c32],
11626    ldb: i32,
11627    tola: f32,
11628    tolb: f32,
11629    k: &mut i32,
11630    l: &mut i32,
11631    u: &mut [c32],
11632    ldu: i32,
11633    v: &mut [c32],
11634    ldv: i32,
11635    q: &mut [c32],
11636    ldq: i32,
11637    iwork: &mut [i32],
11638    rwork: &mut [f32],
11639    tau: &mut [c32],
11640    work: &mut [c32],
11641    lwork: i32,
11642    info: &mut i32,
11643) {
11644    ffi::cggsvp3_(
11645        &(jobu as c_char),
11646        &(jobv as c_char),
11647        &(jobq as c_char),
11648        &m,
11649        &p,
11650        &n,
11651        a.as_mut_ptr() as *mut _,
11652        &lda,
11653        b.as_mut_ptr() as *mut _,
11654        &ldb,
11655        &tola,
11656        &tolb,
11657        k,
11658        l,
11659        u.as_mut_ptr() as *mut _,
11660        &ldu,
11661        v.as_mut_ptr() as *mut _,
11662        &ldv,
11663        q.as_mut_ptr() as *mut _,
11664        &ldq,
11665        iwork.as_mut_ptr(),
11666        rwork.as_mut_ptr(),
11667        tau.as_mut_ptr() as *mut _,
11668        work.as_mut_ptr() as *mut _,
11669        &lwork,
11670        info,
11671    )
11672}
11673
11674#[inline]
11675pub unsafe fn dggsvp3(
11676    jobu: u8,
11677    jobv: u8,
11678    jobq: u8,
11679    m: i32,
11680    p: i32,
11681    n: i32,
11682    a: &mut [f64],
11683    lda: i32,
11684    b: &mut [f64],
11685    ldb: i32,
11686    tola: f64,
11687    tolb: f64,
11688    k: &mut i32,
11689    l: &mut i32,
11690    u: &mut [f64],
11691    ldu: i32,
11692    v: &mut [f64],
11693    ldv: i32,
11694    q: &mut [f64],
11695    ldq: i32,
11696    iwork: &mut [i32],
11697    tau: &mut [f64],
11698    work: &mut [f64],
11699    lwork: i32,
11700    info: &mut i32,
11701) {
11702    ffi::dggsvp3_(
11703        &(jobu as c_char),
11704        &(jobv as c_char),
11705        &(jobq as c_char),
11706        &m,
11707        &p,
11708        &n,
11709        a.as_mut_ptr(),
11710        &lda,
11711        b.as_mut_ptr(),
11712        &ldb,
11713        &tola,
11714        &tolb,
11715        k,
11716        l,
11717        u.as_mut_ptr(),
11718        &ldu,
11719        v.as_mut_ptr(),
11720        &ldv,
11721        q.as_mut_ptr(),
11722        &ldq,
11723        iwork.as_mut_ptr(),
11724        tau.as_mut_ptr(),
11725        work.as_mut_ptr(),
11726        &lwork,
11727        info,
11728    )
11729}
11730
11731#[inline]
11732pub unsafe fn sggsvp3(
11733    jobu: u8,
11734    jobv: u8,
11735    jobq: u8,
11736    m: i32,
11737    p: i32,
11738    n: i32,
11739    a: &mut [f32],
11740    lda: i32,
11741    b: &mut [f32],
11742    ldb: i32,
11743    tola: f32,
11744    tolb: f32,
11745    k: &mut i32,
11746    l: &mut i32,
11747    u: &mut [f32],
11748    ldu: i32,
11749    v: &mut [f32],
11750    ldv: i32,
11751    q: &mut [f32],
11752    ldq: i32,
11753    iwork: &mut [i32],
11754    tau: &mut [f32],
11755    work: &mut [f32],
11756    lwork: i32,
11757    info: &mut i32,
11758) {
11759    ffi::sggsvp3_(
11760        &(jobu as c_char),
11761        &(jobv as c_char),
11762        &(jobq as c_char),
11763        &m,
11764        &p,
11765        &n,
11766        a.as_mut_ptr(),
11767        &lda,
11768        b.as_mut_ptr(),
11769        &ldb,
11770        &tola,
11771        &tolb,
11772        k,
11773        l,
11774        u.as_mut_ptr(),
11775        &ldu,
11776        v.as_mut_ptr(),
11777        &ldv,
11778        q.as_mut_ptr(),
11779        &ldq,
11780        iwork.as_mut_ptr(),
11781        tau.as_mut_ptr(),
11782        work.as_mut_ptr(),
11783        &lwork,
11784        info,
11785    )
11786}
11787
11788#[inline]
11789pub unsafe fn zggsvp3(
11790    jobu: u8,
11791    jobv: u8,
11792    jobq: u8,
11793    m: i32,
11794    p: i32,
11795    n: i32,
11796    a: &mut [c64],
11797    lda: i32,
11798    b: &mut [c64],
11799    ldb: i32,
11800    tola: f64,
11801    tolb: f64,
11802    k: &mut i32,
11803    l: &mut i32,
11804    u: &mut [c64],
11805    ldu: i32,
11806    v: &mut [c64],
11807    ldv: i32,
11808    q: &mut [c64],
11809    ldq: i32,
11810    iwork: &mut [i32],
11811    rwork: &mut [f64],
11812    tau: &mut [c64],
11813    work: &mut [c64],
11814    lwork: i32,
11815    info: &mut i32,
11816) {
11817    ffi::zggsvp3_(
11818        &(jobu as c_char),
11819        &(jobv as c_char),
11820        &(jobq as c_char),
11821        &m,
11822        &p,
11823        &n,
11824        a.as_mut_ptr() as *mut _,
11825        &lda,
11826        b.as_mut_ptr() as *mut _,
11827        &ldb,
11828        &tola,
11829        &tolb,
11830        k,
11831        l,
11832        u.as_mut_ptr() as *mut _,
11833        &ldu,
11834        v.as_mut_ptr() as *mut _,
11835        &ldv,
11836        q.as_mut_ptr() as *mut _,
11837        &ldq,
11838        iwork.as_mut_ptr(),
11839        rwork.as_mut_ptr(),
11840        tau.as_mut_ptr() as *mut _,
11841        work.as_mut_ptr() as *mut _,
11842        &lwork,
11843        info,
11844    )
11845}
11846
11847#[inline]
11848pub unsafe fn cgtcon(
11849    norm: u8,
11850    n: i32,
11851    dl: &[c32],
11852    d: &[c32],
11853    du: &[c32],
11854    du2: &[c32],
11855    ipiv: &[i32],
11856    anorm: f32,
11857    rcond: &mut f32,
11858    work: &mut [c32],
11859    info: &mut i32,
11860) {
11861    ffi::cgtcon_(
11862        &(norm as c_char),
11863        &n,
11864        dl.as_ptr() as *const _,
11865        d.as_ptr() as *const _,
11866        du.as_ptr() as *const _,
11867        du2.as_ptr() as *const _,
11868        ipiv.as_ptr(),
11869        &anorm,
11870        rcond,
11871        work.as_mut_ptr() as *mut _,
11872        info,
11873    )
11874}
11875
11876#[inline]
11877pub unsafe fn dgtcon(
11878    norm: u8,
11879    n: i32,
11880    dl: &[f64],
11881    d: &[f64],
11882    du: &[f64],
11883    du2: &[f64],
11884    ipiv: &[i32],
11885    anorm: f64,
11886    rcond: &mut f64,
11887    work: &mut [f64],
11888    iwork: &mut [i32],
11889    info: &mut i32,
11890) {
11891    ffi::dgtcon_(
11892        &(norm as c_char),
11893        &n,
11894        dl.as_ptr(),
11895        d.as_ptr(),
11896        du.as_ptr(),
11897        du2.as_ptr(),
11898        ipiv.as_ptr(),
11899        &anorm,
11900        rcond,
11901        work.as_mut_ptr(),
11902        iwork.as_mut_ptr(),
11903        info,
11904    )
11905}
11906
11907#[inline]
11908pub unsafe fn sgtcon(
11909    norm: u8,
11910    n: i32,
11911    dl: &[f32],
11912    d: &[f32],
11913    du: &[f32],
11914    du2: &[f32],
11915    ipiv: &[i32],
11916    anorm: f32,
11917    rcond: &mut f32,
11918    work: &mut [f32],
11919    iwork: &mut [i32],
11920    info: &mut i32,
11921) {
11922    ffi::sgtcon_(
11923        &(norm as c_char),
11924        &n,
11925        dl.as_ptr(),
11926        d.as_ptr(),
11927        du.as_ptr(),
11928        du2.as_ptr(),
11929        ipiv.as_ptr(),
11930        &anorm,
11931        rcond,
11932        work.as_mut_ptr(),
11933        iwork.as_mut_ptr(),
11934        info,
11935    )
11936}
11937
11938#[inline]
11939pub unsafe fn zgtcon(
11940    norm: u8,
11941    n: i32,
11942    dl: &[c64],
11943    d: &[c64],
11944    du: &[c64],
11945    du2: &[c64],
11946    ipiv: &[i32],
11947    anorm: f64,
11948    rcond: &mut f64,
11949    work: &mut [c64],
11950    info: &mut i32,
11951) {
11952    ffi::zgtcon_(
11953        &(norm as c_char),
11954        &n,
11955        dl.as_ptr() as *const _,
11956        d.as_ptr() as *const _,
11957        du.as_ptr() as *const _,
11958        du2.as_ptr() as *const _,
11959        ipiv.as_ptr(),
11960        &anorm,
11961        rcond,
11962        work.as_mut_ptr() as *mut _,
11963        info,
11964    )
11965}
11966
11967#[inline]
11968pub unsafe fn cgtrfs(
11969    trans: u8,
11970    n: i32,
11971    nrhs: i32,
11972    dl: &[c32],
11973    d: &[c32],
11974    du: &[c32],
11975    dlf: &[c32],
11976    df: &[c32],
11977    duf: &[c32],
11978    du2: &[c32],
11979    ipiv: &[i32],
11980    b: &[c32],
11981    ldb: i32,
11982    x: &mut [c32],
11983    ldx: i32,
11984    ferr: &mut [f32],
11985    berr: &mut [f32],
11986    work: &mut [c32],
11987    rwork: &mut [f32],
11988    info: &mut i32,
11989) {
11990    ffi::cgtrfs_(
11991        &(trans as c_char),
11992        &n,
11993        &nrhs,
11994        dl.as_ptr() as *const _,
11995        d.as_ptr() as *const _,
11996        du.as_ptr() as *const _,
11997        dlf.as_ptr() as *const _,
11998        df.as_ptr() as *const _,
11999        duf.as_ptr() as *const _,
12000        du2.as_ptr() as *const _,
12001        ipiv.as_ptr(),
12002        b.as_ptr() as *const _,
12003        &ldb,
12004        x.as_mut_ptr() as *mut _,
12005        &ldx,
12006        ferr.as_mut_ptr(),
12007        berr.as_mut_ptr(),
12008        work.as_mut_ptr() as *mut _,
12009        rwork.as_mut_ptr(),
12010        info,
12011    )
12012}
12013
12014#[inline]
12015pub unsafe fn dgtrfs(
12016    trans: u8,
12017    n: i32,
12018    nrhs: i32,
12019    dl: &[f64],
12020    d: &[f64],
12021    du: &[f64],
12022    dlf: &[f64],
12023    df: &[f64],
12024    duf: &[f64],
12025    du2: &[f64],
12026    ipiv: &[i32],
12027    b: &[f64],
12028    ldb: i32,
12029    x: &mut [f64],
12030    ldx: i32,
12031    ferr: &mut [f64],
12032    berr: &mut [f64],
12033    work: &mut [f64],
12034    iwork: &mut [i32],
12035    info: &mut i32,
12036) {
12037    ffi::dgtrfs_(
12038        &(trans as c_char),
12039        &n,
12040        &nrhs,
12041        dl.as_ptr(),
12042        d.as_ptr(),
12043        du.as_ptr(),
12044        dlf.as_ptr(),
12045        df.as_ptr(),
12046        duf.as_ptr(),
12047        du2.as_ptr(),
12048        ipiv.as_ptr(),
12049        b.as_ptr(),
12050        &ldb,
12051        x.as_mut_ptr(),
12052        &ldx,
12053        ferr.as_mut_ptr(),
12054        berr.as_mut_ptr(),
12055        work.as_mut_ptr(),
12056        iwork.as_mut_ptr(),
12057        info,
12058    )
12059}
12060
12061#[inline]
12062pub unsafe fn sgtrfs(
12063    trans: u8,
12064    n: i32,
12065    nrhs: i32,
12066    dl: &[f32],
12067    d: &[f32],
12068    du: &[f32],
12069    dlf: &[f32],
12070    df: &[f32],
12071    duf: &[f32],
12072    du2: &[f32],
12073    ipiv: &[i32],
12074    b: &[f32],
12075    ldb: i32,
12076    x: &mut [f32],
12077    ldx: i32,
12078    ferr: &mut [f32],
12079    berr: &mut [f32],
12080    work: &mut [f32],
12081    iwork: &mut [i32],
12082    info: &mut i32,
12083) {
12084    ffi::sgtrfs_(
12085        &(trans as c_char),
12086        &n,
12087        &nrhs,
12088        dl.as_ptr(),
12089        d.as_ptr(),
12090        du.as_ptr(),
12091        dlf.as_ptr(),
12092        df.as_ptr(),
12093        duf.as_ptr(),
12094        du2.as_ptr(),
12095        ipiv.as_ptr(),
12096        b.as_ptr(),
12097        &ldb,
12098        x.as_mut_ptr(),
12099        &ldx,
12100        ferr.as_mut_ptr(),
12101        berr.as_mut_ptr(),
12102        work.as_mut_ptr(),
12103        iwork.as_mut_ptr(),
12104        info,
12105    )
12106}
12107
12108#[inline]
12109pub unsafe fn zgtrfs(
12110    trans: u8,
12111    n: i32,
12112    nrhs: i32,
12113    dl: &[c64],
12114    d: &[c64],
12115    du: &[c64],
12116    dlf: &[c64],
12117    df: &[c64],
12118    duf: &[c64],
12119    du2: &[c64],
12120    ipiv: &[i32],
12121    b: &[c64],
12122    ldb: i32,
12123    x: &mut [c64],
12124    ldx: i32,
12125    ferr: &mut [f64],
12126    berr: &mut [f64],
12127    work: &mut [c64],
12128    rwork: &mut [f64],
12129    info: &mut i32,
12130) {
12131    ffi::zgtrfs_(
12132        &(trans as c_char),
12133        &n,
12134        &nrhs,
12135        dl.as_ptr() as *const _,
12136        d.as_ptr() as *const _,
12137        du.as_ptr() as *const _,
12138        dlf.as_ptr() as *const _,
12139        df.as_ptr() as *const _,
12140        duf.as_ptr() as *const _,
12141        du2.as_ptr() as *const _,
12142        ipiv.as_ptr(),
12143        b.as_ptr() as *const _,
12144        &ldb,
12145        x.as_mut_ptr() as *mut _,
12146        &ldx,
12147        ferr.as_mut_ptr(),
12148        berr.as_mut_ptr(),
12149        work.as_mut_ptr() as *mut _,
12150        rwork.as_mut_ptr(),
12151        info,
12152    )
12153}
12154
12155#[inline]
12156pub unsafe fn cgtsv(
12157    n: i32,
12158    nrhs: i32,
12159    dl: &mut [c32],
12160    d: &mut [c32],
12161    du: &mut [c32],
12162    b: &mut [c32],
12163    ldb: i32,
12164    info: &mut i32,
12165) {
12166    ffi::cgtsv_(
12167        &n,
12168        &nrhs,
12169        dl.as_mut_ptr() as *mut _,
12170        d.as_mut_ptr() as *mut _,
12171        du.as_mut_ptr() as *mut _,
12172        b.as_mut_ptr() as *mut _,
12173        &ldb,
12174        info,
12175    )
12176}
12177
12178#[inline]
12179pub unsafe fn dgtsv(
12180    n: i32,
12181    nrhs: i32,
12182    dl: &mut [f64],
12183    d: &mut [f64],
12184    du: &mut [f64],
12185    b: &mut [f64],
12186    ldb: i32,
12187    info: &mut i32,
12188) {
12189    ffi::dgtsv_(
12190        &n,
12191        &nrhs,
12192        dl.as_mut_ptr(),
12193        d.as_mut_ptr(),
12194        du.as_mut_ptr(),
12195        b.as_mut_ptr(),
12196        &ldb,
12197        info,
12198    )
12199}
12200
12201#[inline]
12202pub unsafe fn sgtsv(
12203    n: i32,
12204    nrhs: i32,
12205    dl: &mut [f32],
12206    d: &mut [f32],
12207    du: &mut [f32],
12208    b: &mut [f32],
12209    ldb: i32,
12210    info: &mut i32,
12211) {
12212    ffi::sgtsv_(
12213        &n,
12214        &nrhs,
12215        dl.as_mut_ptr(),
12216        d.as_mut_ptr(),
12217        du.as_mut_ptr(),
12218        b.as_mut_ptr(),
12219        &ldb,
12220        info,
12221    )
12222}
12223
12224#[inline]
12225pub unsafe fn zgtsv(
12226    n: i32,
12227    nrhs: i32,
12228    dl: &mut [c64],
12229    d: &mut [c64],
12230    du: &mut [c64],
12231    b: &mut [c64],
12232    ldb: i32,
12233    info: &mut i32,
12234) {
12235    ffi::zgtsv_(
12236        &n,
12237        &nrhs,
12238        dl.as_mut_ptr() as *mut _,
12239        d.as_mut_ptr() as *mut _,
12240        du.as_mut_ptr() as *mut _,
12241        b.as_mut_ptr() as *mut _,
12242        &ldb,
12243        info,
12244    )
12245}
12246
12247#[inline]
12248pub unsafe fn cgtsvx(
12249    fact: u8,
12250    trans: u8,
12251    n: i32,
12252    nrhs: i32,
12253    dl: &[c32],
12254    d: &[c32],
12255    du: &[c32],
12256    dlf: &mut [c32],
12257    df: &mut [c32],
12258    duf: &mut [c32],
12259    du2: &mut [c32],
12260    ipiv: &mut [i32],
12261    b: &[c32],
12262    ldb: i32,
12263    x: &mut [c32],
12264    ldx: i32,
12265    rcond: &mut f32,
12266    ferr: &mut [f32],
12267    berr: &mut [f32],
12268    work: &mut [c32],
12269    rwork: &mut [f32],
12270    info: &mut i32,
12271) {
12272    ffi::cgtsvx_(
12273        &(fact as c_char),
12274        &(trans as c_char),
12275        &n,
12276        &nrhs,
12277        dl.as_ptr() as *const _,
12278        d.as_ptr() as *const _,
12279        du.as_ptr() as *const _,
12280        dlf.as_mut_ptr() as *mut _,
12281        df.as_mut_ptr() as *mut _,
12282        duf.as_mut_ptr() as *mut _,
12283        du2.as_mut_ptr() as *mut _,
12284        ipiv.as_mut_ptr(),
12285        b.as_ptr() as *const _,
12286        &ldb,
12287        x.as_mut_ptr() as *mut _,
12288        &ldx,
12289        rcond,
12290        ferr.as_mut_ptr(),
12291        berr.as_mut_ptr(),
12292        work.as_mut_ptr() as *mut _,
12293        rwork.as_mut_ptr(),
12294        info,
12295    )
12296}
12297
12298#[inline]
12299pub unsafe fn dgtsvx(
12300    fact: u8,
12301    trans: u8,
12302    n: i32,
12303    nrhs: i32,
12304    dl: &[f64],
12305    d: &[f64],
12306    du: &[f64],
12307    dlf: &mut [f64],
12308    df: &mut [f64],
12309    duf: &mut [f64],
12310    du2: &mut [f64],
12311    ipiv: &mut [i32],
12312    b: &[f64],
12313    ldb: i32,
12314    x: &mut [f64],
12315    ldx: i32,
12316    rcond: &mut f64,
12317    ferr: &mut [f64],
12318    berr: &mut [f64],
12319    work: &mut [f64],
12320    iwork: &mut [i32],
12321    info: &mut i32,
12322) {
12323    ffi::dgtsvx_(
12324        &(fact as c_char),
12325        &(trans as c_char),
12326        &n,
12327        &nrhs,
12328        dl.as_ptr(),
12329        d.as_ptr(),
12330        du.as_ptr(),
12331        dlf.as_mut_ptr(),
12332        df.as_mut_ptr(),
12333        duf.as_mut_ptr(),
12334        du2.as_mut_ptr(),
12335        ipiv.as_mut_ptr(),
12336        b.as_ptr(),
12337        &ldb,
12338        x.as_mut_ptr(),
12339        &ldx,
12340        rcond,
12341        ferr.as_mut_ptr(),
12342        berr.as_mut_ptr(),
12343        work.as_mut_ptr(),
12344        iwork.as_mut_ptr(),
12345        info,
12346    )
12347}
12348
12349#[inline]
12350pub unsafe fn sgtsvx(
12351    fact: u8,
12352    trans: u8,
12353    n: i32,
12354    nrhs: i32,
12355    dl: &[f32],
12356    d: &[f32],
12357    du: &[f32],
12358    dlf: &mut [f32],
12359    df: &mut [f32],
12360    duf: &mut [f32],
12361    du2: &mut [f32],
12362    ipiv: &mut [i32],
12363    b: &[f32],
12364    ldb: i32,
12365    x: &mut [f32],
12366    ldx: i32,
12367    rcond: &mut f32,
12368    ferr: &mut [f32],
12369    berr: &mut [f32],
12370    work: &mut [f32],
12371    iwork: &mut [i32],
12372    info: &mut i32,
12373) {
12374    ffi::sgtsvx_(
12375        &(fact as c_char),
12376        &(trans as c_char),
12377        &n,
12378        &nrhs,
12379        dl.as_ptr(),
12380        d.as_ptr(),
12381        du.as_ptr(),
12382        dlf.as_mut_ptr(),
12383        df.as_mut_ptr(),
12384        duf.as_mut_ptr(),
12385        du2.as_mut_ptr(),
12386        ipiv.as_mut_ptr(),
12387        b.as_ptr(),
12388        &ldb,
12389        x.as_mut_ptr(),
12390        &ldx,
12391        rcond,
12392        ferr.as_mut_ptr(),
12393        berr.as_mut_ptr(),
12394        work.as_mut_ptr(),
12395        iwork.as_mut_ptr(),
12396        info,
12397    )
12398}
12399
12400#[inline]
12401pub unsafe fn zgtsvx(
12402    fact: u8,
12403    trans: u8,
12404    n: i32,
12405    nrhs: i32,
12406    dl: &[c64],
12407    d: &[c64],
12408    du: &[c64],
12409    dlf: &mut [c64],
12410    df: &mut [c64],
12411    duf: &mut [c64],
12412    du2: &mut [c64],
12413    ipiv: &mut [i32],
12414    b: &[c64],
12415    ldb: i32,
12416    x: &mut [c64],
12417    ldx: i32,
12418    rcond: &mut f64,
12419    ferr: &mut [f64],
12420    berr: &mut [f64],
12421    work: &mut [c64],
12422    rwork: &mut [f64],
12423    info: &mut i32,
12424) {
12425    ffi::zgtsvx_(
12426        &(fact as c_char),
12427        &(trans as c_char),
12428        &n,
12429        &nrhs,
12430        dl.as_ptr() as *const _,
12431        d.as_ptr() as *const _,
12432        du.as_ptr() as *const _,
12433        dlf.as_mut_ptr() as *mut _,
12434        df.as_mut_ptr() as *mut _,
12435        duf.as_mut_ptr() as *mut _,
12436        du2.as_mut_ptr() as *mut _,
12437        ipiv.as_mut_ptr(),
12438        b.as_ptr() as *const _,
12439        &ldb,
12440        x.as_mut_ptr() as *mut _,
12441        &ldx,
12442        rcond,
12443        ferr.as_mut_ptr(),
12444        berr.as_mut_ptr(),
12445        work.as_mut_ptr() as *mut _,
12446        rwork.as_mut_ptr(),
12447        info,
12448    )
12449}
12450
12451#[inline]
12452pub unsafe fn cgttrf(
12453    n: i32,
12454    dl: &mut [c32],
12455    d: &mut [c32],
12456    du: &mut [c32],
12457    du2: &mut [c32],
12458    ipiv: &mut [i32],
12459    info: &mut i32,
12460) {
12461    ffi::cgttrf_(
12462        &n,
12463        dl.as_mut_ptr() as *mut _,
12464        d.as_mut_ptr() as *mut _,
12465        du.as_mut_ptr() as *mut _,
12466        du2.as_mut_ptr() as *mut _,
12467        ipiv.as_mut_ptr(),
12468        info,
12469    )
12470}
12471
12472#[inline]
12473pub unsafe fn dgttrf(
12474    n: i32,
12475    dl: &mut [f64],
12476    d: &mut [f64],
12477    du: &mut [f64],
12478    du2: &mut [f64],
12479    ipiv: &mut [i32],
12480    info: &mut i32,
12481) {
12482    ffi::dgttrf_(
12483        &n,
12484        dl.as_mut_ptr(),
12485        d.as_mut_ptr(),
12486        du.as_mut_ptr(),
12487        du2.as_mut_ptr(),
12488        ipiv.as_mut_ptr(),
12489        info,
12490    )
12491}
12492
12493#[inline]
12494pub unsafe fn sgttrf(
12495    n: i32,
12496    dl: &mut [f32],
12497    d: &mut [f32],
12498    du: &mut [f32],
12499    du2: &mut [f32],
12500    ipiv: &mut [i32],
12501    info: &mut i32,
12502) {
12503    ffi::sgttrf_(
12504        &n,
12505        dl.as_mut_ptr(),
12506        d.as_mut_ptr(),
12507        du.as_mut_ptr(),
12508        du2.as_mut_ptr(),
12509        ipiv.as_mut_ptr(),
12510        info,
12511    )
12512}
12513
12514#[inline]
12515pub unsafe fn zgttrf(
12516    n: i32,
12517    dl: &mut [c64],
12518    d: &mut [c64],
12519    du: &mut [c64],
12520    du2: &mut [c64],
12521    ipiv: &mut [i32],
12522    info: &mut i32,
12523) {
12524    ffi::zgttrf_(
12525        &n,
12526        dl.as_mut_ptr() as *mut _,
12527        d.as_mut_ptr() as *mut _,
12528        du.as_mut_ptr() as *mut _,
12529        du2.as_mut_ptr() as *mut _,
12530        ipiv.as_mut_ptr(),
12531        info,
12532    )
12533}
12534
12535#[inline]
12536pub unsafe fn cgttrs(
12537    trans: u8,
12538    n: i32,
12539    nrhs: i32,
12540    dl: &[c32],
12541    d: &[c32],
12542    du: &[c32],
12543    du2: &[c32],
12544    ipiv: &[i32],
12545    b: &mut [c32],
12546    ldb: i32,
12547    info: &mut i32,
12548) {
12549    ffi::cgttrs_(
12550        &(trans as c_char),
12551        &n,
12552        &nrhs,
12553        dl.as_ptr() as *const _,
12554        d.as_ptr() as *const _,
12555        du.as_ptr() as *const _,
12556        du2.as_ptr() as *const _,
12557        ipiv.as_ptr(),
12558        b.as_mut_ptr() as *mut _,
12559        &ldb,
12560        info,
12561    )
12562}
12563
12564#[inline]
12565pub unsafe fn dgttrs(
12566    trans: u8,
12567    n: i32,
12568    nrhs: i32,
12569    dl: &[f64],
12570    d: &[f64],
12571    du: &[f64],
12572    du2: &[f64],
12573    ipiv: &[i32],
12574    b: &mut [f64],
12575    ldb: i32,
12576    info: &mut i32,
12577) {
12578    ffi::dgttrs_(
12579        &(trans as c_char),
12580        &n,
12581        &nrhs,
12582        dl.as_ptr(),
12583        d.as_ptr(),
12584        du.as_ptr(),
12585        du2.as_ptr(),
12586        ipiv.as_ptr(),
12587        b.as_mut_ptr(),
12588        &ldb,
12589        info,
12590    )
12591}
12592
12593#[inline]
12594pub unsafe fn sgttrs(
12595    trans: u8,
12596    n: i32,
12597    nrhs: i32,
12598    dl: &[f32],
12599    d: &[f32],
12600    du: &[f32],
12601    du2: &[f32],
12602    ipiv: &[i32],
12603    b: &mut [f32],
12604    ldb: i32,
12605    info: &mut i32,
12606) {
12607    ffi::sgttrs_(
12608        &(trans as c_char),
12609        &n,
12610        &nrhs,
12611        dl.as_ptr(),
12612        d.as_ptr(),
12613        du.as_ptr(),
12614        du2.as_ptr(),
12615        ipiv.as_ptr(),
12616        b.as_mut_ptr(),
12617        &ldb,
12618        info,
12619    )
12620}
12621
12622#[inline]
12623pub unsafe fn zgttrs(
12624    trans: u8,
12625    n: i32,
12626    nrhs: i32,
12627    dl: &[c64],
12628    d: &[c64],
12629    du: &[c64],
12630    du2: &[c64],
12631    ipiv: &[i32],
12632    b: &mut [c64],
12633    ldb: i32,
12634    info: &mut i32,
12635) {
12636    ffi::zgttrs_(
12637        &(trans as c_char),
12638        &n,
12639        &nrhs,
12640        dl.as_ptr() as *const _,
12641        d.as_ptr() as *const _,
12642        du.as_ptr() as *const _,
12643        du2.as_ptr() as *const _,
12644        ipiv.as_ptr(),
12645        b.as_mut_ptr() as *mut _,
12646        &ldb,
12647        info,
12648    )
12649}
12650
12651#[inline]
12652pub unsafe fn chbev(
12653    jobz: u8,
12654    uplo: u8,
12655    n: i32,
12656    kd: i32,
12657    ab: &mut [c32],
12658    ldab: i32,
12659    w: &mut [f32],
12660    z: &mut [c32],
12661    ldz: i32,
12662    work: &mut [c32],
12663    rwork: &mut [f32],
12664    info: &mut i32,
12665) {
12666    ffi::chbev_(
12667        &(jobz as c_char),
12668        &(uplo as c_char),
12669        &n,
12670        &kd,
12671        ab.as_mut_ptr() as *mut _,
12672        &ldab,
12673        w.as_mut_ptr(),
12674        z.as_mut_ptr() as *mut _,
12675        &ldz,
12676        work.as_mut_ptr() as *mut _,
12677        rwork.as_mut_ptr(),
12678        info,
12679    )
12680}
12681
12682#[inline]
12683pub unsafe fn zhbev(
12684    jobz: u8,
12685    uplo: u8,
12686    n: i32,
12687    kd: i32,
12688    ab: &mut [c64],
12689    ldab: i32,
12690    w: &mut [f64],
12691    z: &mut [c64],
12692    ldz: i32,
12693    work: &mut [c64],
12694    rwork: &mut [f64],
12695    info: &mut i32,
12696) {
12697    ffi::zhbev_(
12698        &(jobz as c_char),
12699        &(uplo as c_char),
12700        &n,
12701        &kd,
12702        ab.as_mut_ptr() as *mut _,
12703        &ldab,
12704        w.as_mut_ptr(),
12705        z.as_mut_ptr() as *mut _,
12706        &ldz,
12707        work.as_mut_ptr() as *mut _,
12708        rwork.as_mut_ptr(),
12709        info,
12710    )
12711}
12712
12713#[inline]
12714pub unsafe fn chbev_2stage(
12715    jobz: u8,
12716    uplo: u8,
12717    n: i32,
12718    kd: i32,
12719    ab: &mut [c32],
12720    ldab: i32,
12721    w: &mut [f32],
12722    z: &mut [c32],
12723    ldz: i32,
12724    work: &mut [c32],
12725    lwork: i32,
12726    rwork: &mut [f32],
12727    info: &mut i32,
12728) {
12729    ffi::chbev_2stage_(
12730        &(jobz as c_char),
12731        &(uplo as c_char),
12732        &n,
12733        &kd,
12734        ab.as_mut_ptr() as *mut _,
12735        &ldab,
12736        w.as_mut_ptr(),
12737        z.as_mut_ptr() as *mut _,
12738        &ldz,
12739        work.as_mut_ptr() as *mut _,
12740        &lwork,
12741        rwork.as_mut_ptr(),
12742        info,
12743    )
12744}
12745
12746#[inline]
12747pub unsafe fn zhbev_2stage(
12748    jobz: u8,
12749    uplo: u8,
12750    n: i32,
12751    kd: i32,
12752    ab: &mut [c64],
12753    ldab: i32,
12754    w: &mut [f64],
12755    z: &mut [c64],
12756    ldz: i32,
12757    work: &mut [c64],
12758    lwork: i32,
12759    rwork: &mut [f64],
12760    info: &mut i32,
12761) {
12762    ffi::zhbev_2stage_(
12763        &(jobz as c_char),
12764        &(uplo as c_char),
12765        &n,
12766        &kd,
12767        ab.as_mut_ptr() as *mut _,
12768        &ldab,
12769        w.as_mut_ptr(),
12770        z.as_mut_ptr() as *mut _,
12771        &ldz,
12772        work.as_mut_ptr() as *mut _,
12773        &lwork,
12774        rwork.as_mut_ptr(),
12775        info,
12776    )
12777}
12778
12779#[inline]
12780pub unsafe fn chbevd(
12781    jobz: u8,
12782    uplo: u8,
12783    n: i32,
12784    kd: i32,
12785    ab: &mut [c32],
12786    ldab: i32,
12787    w: &mut [f32],
12788    z: &mut [c32],
12789    ldz: i32,
12790    work: &mut [c32],
12791    lwork: i32,
12792    rwork: &mut [f32],
12793    lrwork: i32,
12794    iwork: &mut [i32],
12795    liwork: i32,
12796    info: &mut i32,
12797) {
12798    ffi::chbevd_(
12799        &(jobz as c_char),
12800        &(uplo as c_char),
12801        &n,
12802        &kd,
12803        ab.as_mut_ptr() as *mut _,
12804        &ldab,
12805        w.as_mut_ptr(),
12806        z.as_mut_ptr() as *mut _,
12807        &ldz,
12808        work.as_mut_ptr() as *mut _,
12809        &lwork,
12810        rwork.as_mut_ptr(),
12811        &lrwork,
12812        iwork.as_mut_ptr(),
12813        &liwork,
12814        info,
12815    )
12816}
12817
12818#[inline]
12819pub unsafe fn zhbevd(
12820    jobz: u8,
12821    uplo: u8,
12822    n: i32,
12823    kd: i32,
12824    ab: &mut [c64],
12825    ldab: i32,
12826    w: &mut [f64],
12827    z: &mut [c64],
12828    ldz: i32,
12829    work: &mut [c64],
12830    lwork: i32,
12831    rwork: &mut [f64],
12832    lrwork: i32,
12833    iwork: &mut [i32],
12834    liwork: i32,
12835    info: &mut i32,
12836) {
12837    ffi::zhbevd_(
12838        &(jobz as c_char),
12839        &(uplo as c_char),
12840        &n,
12841        &kd,
12842        ab.as_mut_ptr() as *mut _,
12843        &ldab,
12844        w.as_mut_ptr(),
12845        z.as_mut_ptr() as *mut _,
12846        &ldz,
12847        work.as_mut_ptr() as *mut _,
12848        &lwork,
12849        rwork.as_mut_ptr(),
12850        &lrwork,
12851        iwork.as_mut_ptr(),
12852        &liwork,
12853        info,
12854    )
12855}
12856
12857#[inline]
12858pub unsafe fn chbevd_2stage(
12859    jobz: u8,
12860    uplo: u8,
12861    n: i32,
12862    kd: i32,
12863    ab: &mut [c32],
12864    ldab: i32,
12865    w: &mut [f32],
12866    z: &mut [c32],
12867    ldz: i32,
12868    work: &mut [c32],
12869    lwork: i32,
12870    rwork: &mut [f32],
12871    lrwork: i32,
12872    iwork: &mut [i32],
12873    liwork: i32,
12874    info: &mut i32,
12875) {
12876    ffi::chbevd_2stage_(
12877        &(jobz as c_char),
12878        &(uplo as c_char),
12879        &n,
12880        &kd,
12881        ab.as_mut_ptr() as *mut _,
12882        &ldab,
12883        w.as_mut_ptr(),
12884        z.as_mut_ptr() as *mut _,
12885        &ldz,
12886        work.as_mut_ptr() as *mut _,
12887        &lwork,
12888        rwork.as_mut_ptr(),
12889        &lrwork,
12890        iwork.as_mut_ptr(),
12891        &liwork,
12892        info,
12893    )
12894}
12895
12896#[inline]
12897pub unsafe fn zhbevd_2stage(
12898    jobz: u8,
12899    uplo: u8,
12900    n: i32,
12901    kd: i32,
12902    ab: &mut [c64],
12903    ldab: i32,
12904    w: &mut [f64],
12905    z: &mut [c64],
12906    ldz: i32,
12907    work: &mut [c64],
12908    lwork: i32,
12909    rwork: &mut [f64],
12910    lrwork: i32,
12911    iwork: &mut [i32],
12912    liwork: i32,
12913    info: &mut i32,
12914) {
12915    ffi::zhbevd_2stage_(
12916        &(jobz as c_char),
12917        &(uplo as c_char),
12918        &n,
12919        &kd,
12920        ab.as_mut_ptr() as *mut _,
12921        &ldab,
12922        w.as_mut_ptr(),
12923        z.as_mut_ptr() as *mut _,
12924        &ldz,
12925        work.as_mut_ptr() as *mut _,
12926        &lwork,
12927        rwork.as_mut_ptr(),
12928        &lrwork,
12929        iwork.as_mut_ptr(),
12930        &liwork,
12931        info,
12932    )
12933}
12934
12935#[inline]
12936pub unsafe fn chbevx(
12937    jobz: u8,
12938    range: u8,
12939    uplo: u8,
12940    n: i32,
12941    kd: i32,
12942    ab: &mut [c32],
12943    ldab: i32,
12944    q: &mut [c32],
12945    ldq: i32,
12946    vl: f32,
12947    vu: f32,
12948    il: i32,
12949    iu: i32,
12950    abstol: f32,
12951    m: &mut i32,
12952    w: &mut [f32],
12953    z: &mut [c32],
12954    ldz: i32,
12955    work: &mut [c32],
12956    rwork: &mut [f32],
12957    iwork: &mut [i32],
12958    ifail: &mut [i32],
12959    info: &mut i32,
12960) {
12961    ffi::chbevx_(
12962        &(jobz as c_char),
12963        &(range as c_char),
12964        &(uplo as c_char),
12965        &n,
12966        &kd,
12967        ab.as_mut_ptr() as *mut _,
12968        &ldab,
12969        q.as_mut_ptr() as *mut _,
12970        &ldq,
12971        &vl,
12972        &vu,
12973        &il,
12974        &iu,
12975        &abstol,
12976        m,
12977        w.as_mut_ptr(),
12978        z.as_mut_ptr() as *mut _,
12979        &ldz,
12980        work.as_mut_ptr() as *mut _,
12981        rwork.as_mut_ptr(),
12982        iwork.as_mut_ptr(),
12983        ifail.as_mut_ptr(),
12984        info,
12985    )
12986}
12987
12988#[inline]
12989pub unsafe fn zhbevx(
12990    jobz: u8,
12991    range: u8,
12992    uplo: u8,
12993    n: i32,
12994    kd: i32,
12995    ab: &mut [c64],
12996    ldab: i32,
12997    q: &mut [c64],
12998    ldq: i32,
12999    vl: f64,
13000    vu: f64,
13001    il: i32,
13002    iu: i32,
13003    abstol: f64,
13004    m: &mut i32,
13005    w: &mut [f64],
13006    z: &mut [c64],
13007    ldz: i32,
13008    work: &mut [c64],
13009    rwork: &mut [f64],
13010    iwork: &mut [i32],
13011    ifail: &mut [i32],
13012    info: &mut i32,
13013) {
13014    ffi::zhbevx_(
13015        &(jobz as c_char),
13016        &(range as c_char),
13017        &(uplo as c_char),
13018        &n,
13019        &kd,
13020        ab.as_mut_ptr() as *mut _,
13021        &ldab,
13022        q.as_mut_ptr() as *mut _,
13023        &ldq,
13024        &vl,
13025        &vu,
13026        &il,
13027        &iu,
13028        &abstol,
13029        m,
13030        w.as_mut_ptr(),
13031        z.as_mut_ptr() as *mut _,
13032        &ldz,
13033        work.as_mut_ptr() as *mut _,
13034        rwork.as_mut_ptr(),
13035        iwork.as_mut_ptr(),
13036        ifail.as_mut_ptr(),
13037        info,
13038    )
13039}
13040
13041#[inline]
13042pub unsafe fn chbevx_2stage(
13043    jobz: u8,
13044    range: u8,
13045    uplo: u8,
13046    n: i32,
13047    kd: i32,
13048    ab: &mut [c32],
13049    ldab: i32,
13050    q: &mut [c32],
13051    ldq: i32,
13052    vl: f32,
13053    vu: f32,
13054    il: i32,
13055    iu: i32,
13056    abstol: f32,
13057    m: &mut i32,
13058    w: &mut [f32],
13059    z: &mut [c32],
13060    ldz: i32,
13061    work: &mut [c32],
13062    lwork: i32,
13063    rwork: &mut [f32],
13064    iwork: &mut [i32],
13065    ifail: &mut [i32],
13066    info: &mut i32,
13067) {
13068    ffi::chbevx_2stage_(
13069        &(jobz as c_char),
13070        &(range as c_char),
13071        &(uplo as c_char),
13072        &n,
13073        &kd,
13074        ab.as_mut_ptr() as *mut _,
13075        &ldab,
13076        q.as_mut_ptr() as *mut _,
13077        &ldq,
13078        &vl,
13079        &vu,
13080        &il,
13081        &iu,
13082        &abstol,
13083        m,
13084        w.as_mut_ptr(),
13085        z.as_mut_ptr() as *mut _,
13086        &ldz,
13087        work.as_mut_ptr() as *mut _,
13088        &lwork,
13089        rwork.as_mut_ptr(),
13090        iwork.as_mut_ptr(),
13091        ifail.as_mut_ptr(),
13092        info,
13093    )
13094}
13095
13096#[inline]
13097pub unsafe fn zhbevx_2stage(
13098    jobz: u8,
13099    range: u8,
13100    uplo: u8,
13101    n: i32,
13102    kd: i32,
13103    ab: &mut [c64],
13104    ldab: i32,
13105    q: &mut [c64],
13106    ldq: i32,
13107    vl: f64,
13108    vu: f64,
13109    il: i32,
13110    iu: i32,
13111    abstol: f64,
13112    m: &mut i32,
13113    w: &mut [f64],
13114    z: &mut [c64],
13115    ldz: i32,
13116    work: &mut [c64],
13117    lwork: i32,
13118    rwork: &mut [f64],
13119    iwork: &mut [i32],
13120    ifail: &mut [i32],
13121    info: &mut i32,
13122) {
13123    ffi::zhbevx_2stage_(
13124        &(jobz as c_char),
13125        &(range as c_char),
13126        &(uplo as c_char),
13127        &n,
13128        &kd,
13129        ab.as_mut_ptr() as *mut _,
13130        &ldab,
13131        q.as_mut_ptr() as *mut _,
13132        &ldq,
13133        &vl,
13134        &vu,
13135        &il,
13136        &iu,
13137        &abstol,
13138        m,
13139        w.as_mut_ptr(),
13140        z.as_mut_ptr() as *mut _,
13141        &ldz,
13142        work.as_mut_ptr() as *mut _,
13143        &lwork,
13144        rwork.as_mut_ptr(),
13145        iwork.as_mut_ptr(),
13146        ifail.as_mut_ptr(),
13147        info,
13148    )
13149}
13150
13151#[inline]
13152pub unsafe fn chbgst(
13153    vect: u8,
13154    uplo: u8,
13155    n: i32,
13156    ka: i32,
13157    kb: i32,
13158    ab: &mut [c32],
13159    ldab: i32,
13160    bb: &[c32],
13161    ldbb: i32,
13162    x: &mut [c32],
13163    ldx: i32,
13164    work: &mut [c32],
13165    rwork: &mut [f32],
13166    info: &mut i32,
13167) {
13168    ffi::chbgst_(
13169        &(vect as c_char),
13170        &(uplo as c_char),
13171        &n,
13172        &ka,
13173        &kb,
13174        ab.as_mut_ptr() as *mut _,
13175        &ldab,
13176        bb.as_ptr() as *const _,
13177        &ldbb,
13178        x.as_mut_ptr() as *mut _,
13179        &ldx,
13180        work.as_mut_ptr() as *mut _,
13181        rwork.as_mut_ptr(),
13182        info,
13183    )
13184}
13185
13186#[inline]
13187pub unsafe fn zhbgst(
13188    vect: u8,
13189    uplo: u8,
13190    n: i32,
13191    ka: i32,
13192    kb: i32,
13193    ab: &mut [c64],
13194    ldab: i32,
13195    bb: &[c64],
13196    ldbb: i32,
13197    x: &mut [c64],
13198    ldx: i32,
13199    work: &mut [c64],
13200    rwork: &mut [f64],
13201    info: &mut i32,
13202) {
13203    ffi::zhbgst_(
13204        &(vect as c_char),
13205        &(uplo as c_char),
13206        &n,
13207        &ka,
13208        &kb,
13209        ab.as_mut_ptr() as *mut _,
13210        &ldab,
13211        bb.as_ptr() as *const _,
13212        &ldbb,
13213        x.as_mut_ptr() as *mut _,
13214        &ldx,
13215        work.as_mut_ptr() as *mut _,
13216        rwork.as_mut_ptr(),
13217        info,
13218    )
13219}
13220
13221#[inline]
13222pub unsafe fn chbgv(
13223    jobz: u8,
13224    uplo: u8,
13225    n: i32,
13226    ka: i32,
13227    kb: i32,
13228    ab: &mut [c32],
13229    ldab: i32,
13230    bb: &mut [c32],
13231    ldbb: i32,
13232    w: &mut [f32],
13233    z: &mut [c32],
13234    ldz: i32,
13235    work: &mut [c32],
13236    rwork: &mut [f32],
13237    info: &mut i32,
13238) {
13239    ffi::chbgv_(
13240        &(jobz as c_char),
13241        &(uplo as c_char),
13242        &n,
13243        &ka,
13244        &kb,
13245        ab.as_mut_ptr() as *mut _,
13246        &ldab,
13247        bb.as_mut_ptr() as *mut _,
13248        &ldbb,
13249        w.as_mut_ptr(),
13250        z.as_mut_ptr() as *mut _,
13251        &ldz,
13252        work.as_mut_ptr() as *mut _,
13253        rwork.as_mut_ptr(),
13254        info,
13255    )
13256}
13257
13258#[inline]
13259pub unsafe fn zhbgv(
13260    jobz: u8,
13261    uplo: u8,
13262    n: i32,
13263    ka: i32,
13264    kb: i32,
13265    ab: &mut [c64],
13266    ldab: i32,
13267    bb: &mut [c64],
13268    ldbb: i32,
13269    w: &mut [f64],
13270    z: &mut [c64],
13271    ldz: i32,
13272    work: &mut [c64],
13273    rwork: &mut [f64],
13274    info: &mut i32,
13275) {
13276    ffi::zhbgv_(
13277        &(jobz as c_char),
13278        &(uplo as c_char),
13279        &n,
13280        &ka,
13281        &kb,
13282        ab.as_mut_ptr() as *mut _,
13283        &ldab,
13284        bb.as_mut_ptr() as *mut _,
13285        &ldbb,
13286        w.as_mut_ptr(),
13287        z.as_mut_ptr() as *mut _,
13288        &ldz,
13289        work.as_mut_ptr() as *mut _,
13290        rwork.as_mut_ptr(),
13291        info,
13292    )
13293}
13294
13295#[inline]
13296pub unsafe fn chbgvd(
13297    jobz: u8,
13298    uplo: u8,
13299    n: i32,
13300    ka: i32,
13301    kb: i32,
13302    ab: &mut [c32],
13303    ldab: i32,
13304    bb: &mut [c32],
13305    ldbb: i32,
13306    w: &mut [f32],
13307    z: &mut [c32],
13308    ldz: i32,
13309    work: &mut [c32],
13310    lwork: i32,
13311    rwork: &mut [f32],
13312    lrwork: i32,
13313    iwork: &mut [i32],
13314    liwork: i32,
13315    info: &mut i32,
13316) {
13317    ffi::chbgvd_(
13318        &(jobz as c_char),
13319        &(uplo as c_char),
13320        &n,
13321        &ka,
13322        &kb,
13323        ab.as_mut_ptr() as *mut _,
13324        &ldab,
13325        bb.as_mut_ptr() as *mut _,
13326        &ldbb,
13327        w.as_mut_ptr(),
13328        z.as_mut_ptr() as *mut _,
13329        &ldz,
13330        work.as_mut_ptr() as *mut _,
13331        &lwork,
13332        rwork.as_mut_ptr(),
13333        &lrwork,
13334        iwork.as_mut_ptr(),
13335        &liwork,
13336        info,
13337    )
13338}
13339
13340#[inline]
13341pub unsafe fn zhbgvd(
13342    jobz: u8,
13343    uplo: u8,
13344    n: i32,
13345    ka: i32,
13346    kb: i32,
13347    ab: &mut [c64],
13348    ldab: i32,
13349    bb: &mut [c64],
13350    ldbb: i32,
13351    w: &mut [f64],
13352    z: &mut [c64],
13353    ldz: i32,
13354    work: &mut [c64],
13355    lwork: i32,
13356    rwork: &mut [f64],
13357    lrwork: i32,
13358    iwork: &mut [i32],
13359    liwork: i32,
13360    info: &mut i32,
13361) {
13362    ffi::zhbgvd_(
13363        &(jobz as c_char),
13364        &(uplo as c_char),
13365        &n,
13366        &ka,
13367        &kb,
13368        ab.as_mut_ptr() as *mut _,
13369        &ldab,
13370        bb.as_mut_ptr() as *mut _,
13371        &ldbb,
13372        w.as_mut_ptr(),
13373        z.as_mut_ptr() as *mut _,
13374        &ldz,
13375        work.as_mut_ptr() as *mut _,
13376        &lwork,
13377        rwork.as_mut_ptr(),
13378        &lrwork,
13379        iwork.as_mut_ptr(),
13380        &liwork,
13381        info,
13382    )
13383}
13384
13385#[inline]
13386pub unsafe fn chbgvx(
13387    jobz: u8,
13388    range: u8,
13389    uplo: u8,
13390    n: i32,
13391    ka: i32,
13392    kb: i32,
13393    ab: &mut [c32],
13394    ldab: i32,
13395    bb: &mut [c32],
13396    ldbb: i32,
13397    q: &mut [c32],
13398    ldq: i32,
13399    vl: f32,
13400    vu: f32,
13401    il: i32,
13402    iu: i32,
13403    abstol: f32,
13404    m: &mut i32,
13405    w: &mut [f32],
13406    z: &mut [c32],
13407    ldz: i32,
13408    work: &mut [c32],
13409    rwork: &mut [f32],
13410    iwork: &mut [i32],
13411    ifail: &mut [i32],
13412    info: &mut i32,
13413) {
13414    ffi::chbgvx_(
13415        &(jobz as c_char),
13416        &(range as c_char),
13417        &(uplo as c_char),
13418        &n,
13419        &ka,
13420        &kb,
13421        ab.as_mut_ptr() as *mut _,
13422        &ldab,
13423        bb.as_mut_ptr() as *mut _,
13424        &ldbb,
13425        q.as_mut_ptr() as *mut _,
13426        &ldq,
13427        &vl,
13428        &vu,
13429        &il,
13430        &iu,
13431        &abstol,
13432        m,
13433        w.as_mut_ptr(),
13434        z.as_mut_ptr() as *mut _,
13435        &ldz,
13436        work.as_mut_ptr() as *mut _,
13437        rwork.as_mut_ptr(),
13438        iwork.as_mut_ptr(),
13439        ifail.as_mut_ptr(),
13440        info,
13441    )
13442}
13443
13444#[inline]
13445pub unsafe fn zhbgvx(
13446    jobz: u8,
13447    range: u8,
13448    uplo: u8,
13449    n: i32,
13450    ka: i32,
13451    kb: i32,
13452    ab: &mut [c64],
13453    ldab: i32,
13454    bb: &mut [c64],
13455    ldbb: i32,
13456    q: &mut [c64],
13457    ldq: i32,
13458    vl: f64,
13459    vu: f64,
13460    il: i32,
13461    iu: i32,
13462    abstol: f64,
13463    m: &mut i32,
13464    w: &mut [f64],
13465    z: &mut [c64],
13466    ldz: i32,
13467    work: &mut [c64],
13468    rwork: &mut [f64],
13469    iwork: &mut [i32],
13470    ifail: &mut [i32],
13471    info: &mut i32,
13472) {
13473    ffi::zhbgvx_(
13474        &(jobz as c_char),
13475        &(range as c_char),
13476        &(uplo as c_char),
13477        &n,
13478        &ka,
13479        &kb,
13480        ab.as_mut_ptr() as *mut _,
13481        &ldab,
13482        bb.as_mut_ptr() as *mut _,
13483        &ldbb,
13484        q.as_mut_ptr() as *mut _,
13485        &ldq,
13486        &vl,
13487        &vu,
13488        &il,
13489        &iu,
13490        &abstol,
13491        m,
13492        w.as_mut_ptr(),
13493        z.as_mut_ptr() as *mut _,
13494        &ldz,
13495        work.as_mut_ptr() as *mut _,
13496        rwork.as_mut_ptr(),
13497        iwork.as_mut_ptr(),
13498        ifail.as_mut_ptr(),
13499        info,
13500    )
13501}
13502
13503#[inline]
13504pub unsafe fn chbtrd(
13505    vect: u8,
13506    uplo: u8,
13507    n: i32,
13508    kd: i32,
13509    ab: &mut [c32],
13510    ldab: i32,
13511    d: &mut [f32],
13512    e: &mut [f32],
13513    q: &mut [c32],
13514    ldq: i32,
13515    work: &mut [c32],
13516    info: &mut i32,
13517) {
13518    ffi::chbtrd_(
13519        &(vect as c_char),
13520        &(uplo as c_char),
13521        &n,
13522        &kd,
13523        ab.as_mut_ptr() as *mut _,
13524        &ldab,
13525        d.as_mut_ptr(),
13526        e.as_mut_ptr(),
13527        q.as_mut_ptr() as *mut _,
13528        &ldq,
13529        work.as_mut_ptr() as *mut _,
13530        info,
13531    )
13532}
13533
13534#[inline]
13535pub unsafe fn zhbtrd(
13536    vect: u8,
13537    uplo: u8,
13538    n: i32,
13539    kd: i32,
13540    ab: &mut [c64],
13541    ldab: i32,
13542    d: &mut [f64],
13543    e: &mut [f64],
13544    q: &mut [c64],
13545    ldq: i32,
13546    work: &mut [c64],
13547    info: &mut i32,
13548) {
13549    ffi::zhbtrd_(
13550        &(vect as c_char),
13551        &(uplo as c_char),
13552        &n,
13553        &kd,
13554        ab.as_mut_ptr() as *mut _,
13555        &ldab,
13556        d.as_mut_ptr(),
13557        e.as_mut_ptr(),
13558        q.as_mut_ptr() as *mut _,
13559        &ldq,
13560        work.as_mut_ptr() as *mut _,
13561        info,
13562    )
13563}
13564
13565#[inline]
13566pub unsafe fn checon(
13567    uplo: u8,
13568    n: i32,
13569    a: &[c32],
13570    lda: i32,
13571    ipiv: &[i32],
13572    anorm: f32,
13573    rcond: &mut f32,
13574    work: &mut [c32],
13575    info: &mut i32,
13576) {
13577    ffi::checon_(
13578        &(uplo as c_char),
13579        &n,
13580        a.as_ptr() as *const _,
13581        &lda,
13582        ipiv.as_ptr(),
13583        &anorm,
13584        rcond,
13585        work.as_mut_ptr() as *mut _,
13586        info,
13587    )
13588}
13589
13590#[inline]
13591pub unsafe fn zhecon(
13592    uplo: u8,
13593    n: i32,
13594    a: &[c64],
13595    lda: i32,
13596    ipiv: &[i32],
13597    anorm: f64,
13598    rcond: &mut f64,
13599    work: &mut [c64],
13600    info: &mut i32,
13601) {
13602    ffi::zhecon_(
13603        &(uplo as c_char),
13604        &n,
13605        a.as_ptr() as *const _,
13606        &lda,
13607        ipiv.as_ptr(),
13608        &anorm,
13609        rcond,
13610        work.as_mut_ptr() as *mut _,
13611        info,
13612    )
13613}
13614
13615#[inline]
13616pub unsafe fn checon_3(
13617    uplo: u8,
13618    n: i32,
13619    a: &[c32],
13620    lda: i32,
13621    e: &[c32],
13622    ipiv: &[i32],
13623    anorm: f32,
13624    rcond: &mut f32,
13625    work: &mut [c32],
13626    info: &mut i32,
13627) {
13628    ffi::checon_3_(
13629        &(uplo as c_char),
13630        &n,
13631        a.as_ptr() as *const _,
13632        &lda,
13633        e.as_ptr() as *const _,
13634        ipiv.as_ptr(),
13635        &anorm,
13636        rcond,
13637        work.as_mut_ptr() as *mut _,
13638        info,
13639    )
13640}
13641
13642#[inline]
13643pub unsafe fn zhecon_3(
13644    uplo: u8,
13645    n: i32,
13646    a: &[c64],
13647    lda: i32,
13648    e: &[c64],
13649    ipiv: &[i32],
13650    anorm: f64,
13651    rcond: &mut f64,
13652    work: &mut [c64],
13653    info: &mut i32,
13654) {
13655    ffi::zhecon_3_(
13656        &(uplo as c_char),
13657        &n,
13658        a.as_ptr() as *const _,
13659        &lda,
13660        e.as_ptr() as *const _,
13661        ipiv.as_ptr(),
13662        &anorm,
13663        rcond,
13664        work.as_mut_ptr() as *mut _,
13665        info,
13666    )
13667}
13668
13669#[inline]
13670pub unsafe fn cheequb(
13671    uplo: u8,
13672    n: i32,
13673    a: &[c32],
13674    lda: i32,
13675    s: &mut [f32],
13676    scond: &mut [f32],
13677    amax: &mut f32,
13678    work: &mut [c32],
13679    info: &mut i32,
13680) {
13681    ffi::cheequb_(
13682        &(uplo as c_char),
13683        &n,
13684        a.as_ptr() as *const _,
13685        &lda,
13686        s.as_mut_ptr(),
13687        scond.as_mut_ptr(),
13688        amax,
13689        work.as_mut_ptr() as *mut _,
13690        info,
13691    )
13692}
13693
13694#[inline]
13695pub unsafe fn zheequb(
13696    uplo: u8,
13697    n: i32,
13698    a: &[c64],
13699    lda: i32,
13700    s: &mut [f64],
13701    scond: &mut [f64],
13702    amax: &mut f64,
13703    work: &mut [c64],
13704    info: &mut i32,
13705) {
13706    ffi::zheequb_(
13707        &(uplo as c_char),
13708        &n,
13709        a.as_ptr() as *const _,
13710        &lda,
13711        s.as_mut_ptr(),
13712        scond.as_mut_ptr(),
13713        amax,
13714        work.as_mut_ptr() as *mut _,
13715        info,
13716    )
13717}
13718
13719#[inline]
13720pub unsafe fn cheev(
13721    jobz: u8,
13722    uplo: u8,
13723    n: i32,
13724    a: &mut [c32],
13725    lda: i32,
13726    w: &mut [f32],
13727    work: &mut [c32],
13728    lwork: i32,
13729    rwork: &mut [f32],
13730    info: &mut i32,
13731) {
13732    ffi::cheev_(
13733        &(jobz as c_char),
13734        &(uplo as c_char),
13735        &n,
13736        a.as_mut_ptr() as *mut _,
13737        &lda,
13738        w.as_mut_ptr(),
13739        work.as_mut_ptr() as *mut _,
13740        &lwork,
13741        rwork.as_mut_ptr(),
13742        info,
13743    )
13744}
13745
13746#[inline]
13747pub unsafe fn zheev(
13748    jobz: u8,
13749    uplo: u8,
13750    n: i32,
13751    a: &mut [c64],
13752    lda: i32,
13753    w: &mut [f64],
13754    work: &mut [c64],
13755    lwork: i32,
13756    rwork: &mut [f64],
13757    info: &mut i32,
13758) {
13759    ffi::zheev_(
13760        &(jobz as c_char),
13761        &(uplo as c_char),
13762        &n,
13763        a.as_mut_ptr() as *mut _,
13764        &lda,
13765        w.as_mut_ptr(),
13766        work.as_mut_ptr() as *mut _,
13767        &lwork,
13768        rwork.as_mut_ptr(),
13769        info,
13770    )
13771}
13772
13773#[inline]
13774pub unsafe fn cheev_2stage(
13775    jobz: u8,
13776    uplo: u8,
13777    n: i32,
13778    a: &mut [c32],
13779    lda: i32,
13780    w: &mut [f32],
13781    work: &mut [c32],
13782    lwork: i32,
13783    rwork: &mut [f32],
13784    info: &mut i32,
13785) {
13786    ffi::cheev_2stage_(
13787        &(jobz as c_char),
13788        &(uplo as c_char),
13789        &n,
13790        a.as_mut_ptr() as *mut _,
13791        &lda,
13792        w.as_mut_ptr(),
13793        work.as_mut_ptr() as *mut _,
13794        &lwork,
13795        rwork.as_mut_ptr(),
13796        info,
13797    )
13798}
13799
13800#[inline]
13801pub unsafe fn zheev_2stage(
13802    jobz: u8,
13803    uplo: u8,
13804    n: i32,
13805    a: &mut [c64],
13806    lda: i32,
13807    w: &mut [f64],
13808    work: &mut [c64],
13809    lwork: i32,
13810    rwork: &mut [f64],
13811    info: &mut i32,
13812) {
13813    ffi::zheev_2stage_(
13814        &(jobz as c_char),
13815        &(uplo as c_char),
13816        &n,
13817        a.as_mut_ptr() as *mut _,
13818        &lda,
13819        w.as_mut_ptr(),
13820        work.as_mut_ptr() as *mut _,
13821        &lwork,
13822        rwork.as_mut_ptr(),
13823        info,
13824    )
13825}
13826
13827#[inline]
13828pub unsafe fn cheevd(
13829    jobz: u8,
13830    uplo: u8,
13831    n: i32,
13832    a: &mut [c32],
13833    lda: i32,
13834    w: &mut [f32],
13835    work: &mut [c32],
13836    lwork: i32,
13837    rwork: &mut [f32],
13838    lrwork: i32,
13839    iwork: &mut [i32],
13840    liwork: i32,
13841    info: &mut i32,
13842) {
13843    ffi::cheevd_(
13844        &(jobz as c_char),
13845        &(uplo as c_char),
13846        &n,
13847        a.as_mut_ptr() as *mut _,
13848        &lda,
13849        w.as_mut_ptr(),
13850        work.as_mut_ptr() as *mut _,
13851        &lwork,
13852        rwork.as_mut_ptr(),
13853        &lrwork,
13854        iwork.as_mut_ptr(),
13855        &liwork,
13856        info,
13857    )
13858}
13859
13860#[inline]
13861pub unsafe fn zheevd(
13862    jobz: u8,
13863    uplo: u8,
13864    n: i32,
13865    a: &mut [c64],
13866    lda: i32,
13867    w: &mut [f64],
13868    work: &mut [c64],
13869    lwork: i32,
13870    rwork: &mut [f64],
13871    lrwork: i32,
13872    iwork: &mut [i32],
13873    liwork: i32,
13874    info: &mut i32,
13875) {
13876    ffi::zheevd_(
13877        &(jobz as c_char),
13878        &(uplo as c_char),
13879        &n,
13880        a.as_mut_ptr() as *mut _,
13881        &lda,
13882        w.as_mut_ptr(),
13883        work.as_mut_ptr() as *mut _,
13884        &lwork,
13885        rwork.as_mut_ptr(),
13886        &lrwork,
13887        iwork.as_mut_ptr(),
13888        &liwork,
13889        info,
13890    )
13891}
13892
13893#[inline]
13894pub unsafe fn cheevd_2stage(
13895    jobz: u8,
13896    uplo: u8,
13897    n: i32,
13898    a: &mut [c32],
13899    lda: i32,
13900    w: &mut [f32],
13901    work: &mut [c32],
13902    lwork: i32,
13903    rwork: &mut [f32],
13904    lrwork: i32,
13905    iwork: &mut [i32],
13906    liwork: i32,
13907    info: &mut i32,
13908) {
13909    ffi::cheevd_2stage_(
13910        &(jobz as c_char),
13911        &(uplo as c_char),
13912        &n,
13913        a.as_mut_ptr() as *mut _,
13914        &lda,
13915        w.as_mut_ptr(),
13916        work.as_mut_ptr() as *mut _,
13917        &lwork,
13918        rwork.as_mut_ptr(),
13919        &lrwork,
13920        iwork.as_mut_ptr(),
13921        &liwork,
13922        info,
13923    )
13924}
13925
13926#[inline]
13927pub unsafe fn zheevd_2stage(
13928    jobz: u8,
13929    uplo: u8,
13930    n: i32,
13931    a: &mut [c64],
13932    lda: i32,
13933    w: &mut [f64],
13934    work: &mut [c64],
13935    lwork: i32,
13936    rwork: &mut [f64],
13937    lrwork: i32,
13938    iwork: &mut [i32],
13939    liwork: i32,
13940    info: &mut i32,
13941) {
13942    ffi::zheevd_2stage_(
13943        &(jobz as c_char),
13944        &(uplo as c_char),
13945        &n,
13946        a.as_mut_ptr() as *mut _,
13947        &lda,
13948        w.as_mut_ptr(),
13949        work.as_mut_ptr() as *mut _,
13950        &lwork,
13951        rwork.as_mut_ptr(),
13952        &lrwork,
13953        iwork.as_mut_ptr(),
13954        &liwork,
13955        info,
13956    )
13957}
13958
13959#[inline]
13960pub unsafe fn cheevr(
13961    jobz: u8,
13962    range: u8,
13963    uplo: u8,
13964    n: i32,
13965    a: &mut [c32],
13966    lda: i32,
13967    vl: f32,
13968    vu: f32,
13969    il: i32,
13970    iu: i32,
13971    abstol: f32,
13972    m: &mut i32,
13973    w: &mut [f32],
13974    z: &mut [c32],
13975    ldz: i32,
13976    isuppz: &mut [i32],
13977    work: &mut [c32],
13978    lwork: i32,
13979    rwork: &mut [f32],
13980    lrwork: i32,
13981    iwork: &mut [i32],
13982    liwork: i32,
13983    info: &mut i32,
13984) {
13985    ffi::cheevr_(
13986        &(jobz as c_char),
13987        &(range as c_char),
13988        &(uplo as c_char),
13989        &n,
13990        a.as_mut_ptr() as *mut _,
13991        &lda,
13992        &vl,
13993        &vu,
13994        &il,
13995        &iu,
13996        &abstol,
13997        m,
13998        w.as_mut_ptr(),
13999        z.as_mut_ptr() as *mut _,
14000        &ldz,
14001        isuppz.as_mut_ptr(),
14002        work.as_mut_ptr() as *mut _,
14003        &lwork,
14004        rwork.as_mut_ptr(),
14005        &lrwork,
14006        iwork.as_mut_ptr(),
14007        &liwork,
14008        info,
14009    )
14010}
14011
14012#[inline]
14013pub unsafe fn zheevr(
14014    jobz: u8,
14015    range: u8,
14016    uplo: u8,
14017    n: i32,
14018    a: &mut [c64],
14019    lda: i32,
14020    vl: f64,
14021    vu: f64,
14022    il: i32,
14023    iu: i32,
14024    abstol: f64,
14025    m: &mut i32,
14026    w: &mut [f64],
14027    z: &mut [c64],
14028    ldz: i32,
14029    isuppz: &mut [i32],
14030    work: &mut [c64],
14031    lwork: i32,
14032    rwork: &mut [f64],
14033    lrwork: i32,
14034    iwork: &mut [i32],
14035    liwork: i32,
14036    info: &mut i32,
14037) {
14038    ffi::zheevr_(
14039        &(jobz as c_char),
14040        &(range as c_char),
14041        &(uplo as c_char),
14042        &n,
14043        a.as_mut_ptr() as *mut _,
14044        &lda,
14045        &vl,
14046        &vu,
14047        &il,
14048        &iu,
14049        &abstol,
14050        m,
14051        w.as_mut_ptr(),
14052        z.as_mut_ptr() as *mut _,
14053        &ldz,
14054        isuppz.as_mut_ptr(),
14055        work.as_mut_ptr() as *mut _,
14056        &lwork,
14057        rwork.as_mut_ptr(),
14058        &lrwork,
14059        iwork.as_mut_ptr(),
14060        &liwork,
14061        info,
14062    )
14063}
14064
14065#[inline]
14066pub unsafe fn cheevr_2stage(
14067    jobz: u8,
14068    range: u8,
14069    uplo: u8,
14070    n: i32,
14071    a: &mut [c32],
14072    lda: i32,
14073    vl: f32,
14074    vu: f32,
14075    il: i32,
14076    iu: i32,
14077    abstol: f32,
14078    m: &mut i32,
14079    w: &mut [f32],
14080    z: &mut [c32],
14081    ldz: i32,
14082    isuppz: &mut [i32],
14083    work: &mut [c32],
14084    lwork: i32,
14085    rwork: &mut [f32],
14086    lrwork: i32,
14087    iwork: &mut [i32],
14088    liwork: i32,
14089    info: &mut i32,
14090) {
14091    ffi::cheevr_2stage_(
14092        &(jobz as c_char),
14093        &(range as c_char),
14094        &(uplo as c_char),
14095        &n,
14096        a.as_mut_ptr() as *mut _,
14097        &lda,
14098        &vl,
14099        &vu,
14100        &il,
14101        &iu,
14102        &abstol,
14103        m,
14104        w.as_mut_ptr(),
14105        z.as_mut_ptr() as *mut _,
14106        &ldz,
14107        isuppz.as_mut_ptr(),
14108        work.as_mut_ptr() as *mut _,
14109        &lwork,
14110        rwork.as_mut_ptr(),
14111        &lrwork,
14112        iwork.as_mut_ptr(),
14113        &liwork,
14114        info,
14115    )
14116}
14117
14118#[inline]
14119pub unsafe fn zheevr_2stage(
14120    jobz: u8,
14121    range: u8,
14122    uplo: u8,
14123    n: i32,
14124    a: &mut [c64],
14125    lda: i32,
14126    vl: f64,
14127    vu: f64,
14128    il: i32,
14129    iu: i32,
14130    abstol: f64,
14131    m: &mut i32,
14132    w: &mut [f64],
14133    z: &mut [c64],
14134    ldz: i32,
14135    isuppz: &mut [i32],
14136    work: &mut [c64],
14137    lwork: i32,
14138    rwork: &mut [f64],
14139    lrwork: i32,
14140    iwork: &mut [i32],
14141    liwork: i32,
14142    info: &mut i32,
14143) {
14144    ffi::zheevr_2stage_(
14145        &(jobz as c_char),
14146        &(range as c_char),
14147        &(uplo as c_char),
14148        &n,
14149        a.as_mut_ptr() as *mut _,
14150        &lda,
14151        &vl,
14152        &vu,
14153        &il,
14154        &iu,
14155        &abstol,
14156        m,
14157        w.as_mut_ptr(),
14158        z.as_mut_ptr() as *mut _,
14159        &ldz,
14160        isuppz.as_mut_ptr(),
14161        work.as_mut_ptr() as *mut _,
14162        &lwork,
14163        rwork.as_mut_ptr(),
14164        &lrwork,
14165        iwork.as_mut_ptr(),
14166        &liwork,
14167        info,
14168    )
14169}
14170
14171#[inline]
14172pub unsafe fn cheevx(
14173    jobz: u8,
14174    range: u8,
14175    uplo: u8,
14176    n: i32,
14177    a: &mut [c32],
14178    lda: i32,
14179    vl: f32,
14180    vu: f32,
14181    il: i32,
14182    iu: i32,
14183    abstol: f32,
14184    m: &mut i32,
14185    w: &mut [f32],
14186    z: &mut [c32],
14187    ldz: i32,
14188    work: &mut [c32],
14189    lwork: i32,
14190    rwork: &mut [f32],
14191    iwork: &mut [i32],
14192    ifail: &mut [i32],
14193    info: &mut i32,
14194) {
14195    ffi::cheevx_(
14196        &(jobz as c_char),
14197        &(range as c_char),
14198        &(uplo as c_char),
14199        &n,
14200        a.as_mut_ptr() as *mut _,
14201        &lda,
14202        &vl,
14203        &vu,
14204        &il,
14205        &iu,
14206        &abstol,
14207        m,
14208        w.as_mut_ptr(),
14209        z.as_mut_ptr() as *mut _,
14210        &ldz,
14211        work.as_mut_ptr() as *mut _,
14212        &lwork,
14213        rwork.as_mut_ptr(),
14214        iwork.as_mut_ptr(),
14215        ifail.as_mut_ptr(),
14216        info,
14217    )
14218}
14219
14220#[inline]
14221pub unsafe fn zheevx(
14222    jobz: u8,
14223    range: u8,
14224    uplo: u8,
14225    n: i32,
14226    a: &mut [c64],
14227    lda: i32,
14228    vl: f64,
14229    vu: f64,
14230    il: i32,
14231    iu: i32,
14232    abstol: f64,
14233    m: &mut i32,
14234    w: &mut [f64],
14235    z: &mut [c64],
14236    ldz: i32,
14237    work: &mut [c64],
14238    lwork: i32,
14239    rwork: &mut [f64],
14240    iwork: &mut [i32],
14241    ifail: &mut [i32],
14242    info: &mut i32,
14243) {
14244    ffi::zheevx_(
14245        &(jobz as c_char),
14246        &(range as c_char),
14247        &(uplo as c_char),
14248        &n,
14249        a.as_mut_ptr() as *mut _,
14250        &lda,
14251        &vl,
14252        &vu,
14253        &il,
14254        &iu,
14255        &abstol,
14256        m,
14257        w.as_mut_ptr(),
14258        z.as_mut_ptr() as *mut _,
14259        &ldz,
14260        work.as_mut_ptr() as *mut _,
14261        &lwork,
14262        rwork.as_mut_ptr(),
14263        iwork.as_mut_ptr(),
14264        ifail.as_mut_ptr(),
14265        info,
14266    )
14267}
14268
14269#[inline]
14270pub unsafe fn cheevx_2stage(
14271    jobz: u8,
14272    range: u8,
14273    uplo: u8,
14274    n: i32,
14275    a: &mut [c32],
14276    lda: i32,
14277    vl: f32,
14278    vu: f32,
14279    il: i32,
14280    iu: i32,
14281    abstol: f32,
14282    m: &mut i32,
14283    w: &mut [f32],
14284    z: &mut [c32],
14285    ldz: i32,
14286    work: &mut [c32],
14287    lwork: i32,
14288    rwork: &mut [f32],
14289    iwork: &mut [i32],
14290    ifail: &mut [i32],
14291    info: &mut i32,
14292) {
14293    ffi::cheevx_2stage_(
14294        &(jobz as c_char),
14295        &(range as c_char),
14296        &(uplo as c_char),
14297        &n,
14298        a.as_mut_ptr() as *mut _,
14299        &lda,
14300        &vl,
14301        &vu,
14302        &il,
14303        &iu,
14304        &abstol,
14305        m,
14306        w.as_mut_ptr(),
14307        z.as_mut_ptr() as *mut _,
14308        &ldz,
14309        work.as_mut_ptr() as *mut _,
14310        &lwork,
14311        rwork.as_mut_ptr(),
14312        iwork.as_mut_ptr(),
14313        ifail.as_mut_ptr(),
14314        info,
14315    )
14316}
14317
14318#[inline]
14319pub unsafe fn zheevx_2stage(
14320    jobz: u8,
14321    range: u8,
14322    uplo: u8,
14323    n: i32,
14324    a: &mut [c64],
14325    lda: i32,
14326    vl: f64,
14327    vu: f64,
14328    il: i32,
14329    iu: i32,
14330    abstol: f64,
14331    m: &mut i32,
14332    w: &mut [f64],
14333    z: &mut [c64],
14334    ldz: i32,
14335    work: &mut [c64],
14336    lwork: i32,
14337    rwork: &mut [f64],
14338    iwork: &mut [i32],
14339    ifail: &mut [i32],
14340    info: &mut i32,
14341) {
14342    ffi::zheevx_2stage_(
14343        &(jobz as c_char),
14344        &(range as c_char),
14345        &(uplo as c_char),
14346        &n,
14347        a.as_mut_ptr() as *mut _,
14348        &lda,
14349        &vl,
14350        &vu,
14351        &il,
14352        &iu,
14353        &abstol,
14354        m,
14355        w.as_mut_ptr(),
14356        z.as_mut_ptr() as *mut _,
14357        &ldz,
14358        work.as_mut_ptr() as *mut _,
14359        &lwork,
14360        rwork.as_mut_ptr(),
14361        iwork.as_mut_ptr(),
14362        ifail.as_mut_ptr(),
14363        info,
14364    )
14365}
14366
14367#[inline]
14368pub unsafe fn chegst(
14369    itype: &[i32],
14370    uplo: u8,
14371    n: i32,
14372    a: &mut [c32],
14373    lda: i32,
14374    b: &mut [c32],
14375    ldb: i32,
14376    info: &mut i32,
14377) {
14378    ffi::chegst_(
14379        itype.as_ptr(),
14380        &(uplo as c_char),
14381        &n,
14382        a.as_mut_ptr() as *mut _,
14383        &lda,
14384        b.as_mut_ptr() as *mut _,
14385        &ldb,
14386        info,
14387    )
14388}
14389
14390#[inline]
14391pub unsafe fn zhegst(
14392    itype: &[i32],
14393    uplo: u8,
14394    n: i32,
14395    a: &mut [c64],
14396    lda: i32,
14397    b: &mut [c64],
14398    ldb: i32,
14399    info: &mut i32,
14400) {
14401    ffi::zhegst_(
14402        itype.as_ptr(),
14403        &(uplo as c_char),
14404        &n,
14405        a.as_mut_ptr() as *mut _,
14406        &lda,
14407        b.as_mut_ptr() as *mut _,
14408        &ldb,
14409        info,
14410    )
14411}
14412
14413#[inline]
14414pub unsafe fn chegv(
14415    itype: &[i32],
14416    jobz: u8,
14417    uplo: u8,
14418    n: i32,
14419    a: &mut [c32],
14420    lda: i32,
14421    b: &mut [c32],
14422    ldb: i32,
14423    w: &mut [f32],
14424    work: &mut [c32],
14425    lwork: i32,
14426    rwork: &mut [f32],
14427    info: &mut i32,
14428) {
14429    ffi::chegv_(
14430        itype.as_ptr(),
14431        &(jobz as c_char),
14432        &(uplo as c_char),
14433        &n,
14434        a.as_mut_ptr() as *mut _,
14435        &lda,
14436        b.as_mut_ptr() as *mut _,
14437        &ldb,
14438        w.as_mut_ptr(),
14439        work.as_mut_ptr() as *mut _,
14440        &lwork,
14441        rwork.as_mut_ptr(),
14442        info,
14443    )
14444}
14445
14446#[inline]
14447pub unsafe fn zhegv(
14448    itype: &[i32],
14449    jobz: u8,
14450    uplo: u8,
14451    n: i32,
14452    a: &mut [c64],
14453    lda: i32,
14454    b: &mut [c64],
14455    ldb: i32,
14456    w: &mut [f64],
14457    work: &mut [c64],
14458    lwork: i32,
14459    rwork: &mut [f64],
14460    info: &mut i32,
14461) {
14462    ffi::zhegv_(
14463        itype.as_ptr(),
14464        &(jobz as c_char),
14465        &(uplo as c_char),
14466        &n,
14467        a.as_mut_ptr() as *mut _,
14468        &lda,
14469        b.as_mut_ptr() as *mut _,
14470        &ldb,
14471        w.as_mut_ptr(),
14472        work.as_mut_ptr() as *mut _,
14473        &lwork,
14474        rwork.as_mut_ptr(),
14475        info,
14476    )
14477}
14478
14479#[inline]
14480pub unsafe fn chegv_2stage(
14481    itype: &[i32],
14482    jobz: u8,
14483    uplo: u8,
14484    n: i32,
14485    a: &mut [c32],
14486    lda: i32,
14487    b: &mut [c32],
14488    ldb: i32,
14489    w: &mut [f32],
14490    work: &mut [c32],
14491    lwork: i32,
14492    rwork: &mut [f32],
14493    info: &mut i32,
14494) {
14495    ffi::chegv_2stage_(
14496        itype.as_ptr(),
14497        &(jobz as c_char),
14498        &(uplo as c_char),
14499        &n,
14500        a.as_mut_ptr() as *mut _,
14501        &lda,
14502        b.as_mut_ptr() as *mut _,
14503        &ldb,
14504        w.as_mut_ptr(),
14505        work.as_mut_ptr() as *mut _,
14506        &lwork,
14507        rwork.as_mut_ptr(),
14508        info,
14509    )
14510}
14511
14512#[inline]
14513pub unsafe fn zhegv_2stage(
14514    itype: &[i32],
14515    jobz: u8,
14516    uplo: u8,
14517    n: i32,
14518    a: &mut [c64],
14519    lda: i32,
14520    b: &mut [c64],
14521    ldb: i32,
14522    w: &mut [f64],
14523    work: &mut [c64],
14524    lwork: i32,
14525    rwork: &mut [f64],
14526    info: &mut i32,
14527) {
14528    ffi::zhegv_2stage_(
14529        itype.as_ptr(),
14530        &(jobz as c_char),
14531        &(uplo as c_char),
14532        &n,
14533        a.as_mut_ptr() as *mut _,
14534        &lda,
14535        b.as_mut_ptr() as *mut _,
14536        &ldb,
14537        w.as_mut_ptr(),
14538        work.as_mut_ptr() as *mut _,
14539        &lwork,
14540        rwork.as_mut_ptr(),
14541        info,
14542    )
14543}
14544
14545#[inline]
14546pub unsafe fn chegvd(
14547    itype: &[i32],
14548    jobz: u8,
14549    uplo: u8,
14550    n: i32,
14551    a: &mut [c32],
14552    lda: i32,
14553    b: &mut [c32],
14554    ldb: i32,
14555    w: &mut [f32],
14556    work: &mut [c32],
14557    lwork: i32,
14558    rwork: &mut [f32],
14559    lrwork: i32,
14560    iwork: &mut [i32],
14561    liwork: i32,
14562    info: &mut i32,
14563) {
14564    ffi::chegvd_(
14565        itype.as_ptr(),
14566        &(jobz as c_char),
14567        &(uplo as c_char),
14568        &n,
14569        a.as_mut_ptr() as *mut _,
14570        &lda,
14571        b.as_mut_ptr() as *mut _,
14572        &ldb,
14573        w.as_mut_ptr(),
14574        work.as_mut_ptr() as *mut _,
14575        &lwork,
14576        rwork.as_mut_ptr(),
14577        &lrwork,
14578        iwork.as_mut_ptr(),
14579        &liwork,
14580        info,
14581    )
14582}
14583
14584#[inline]
14585pub unsafe fn zhegvd(
14586    itype: &[i32],
14587    jobz: u8,
14588    uplo: u8,
14589    n: i32,
14590    a: &mut [c64],
14591    lda: i32,
14592    b: &mut [c64],
14593    ldb: i32,
14594    w: &mut [f64],
14595    work: &mut [c64],
14596    lwork: i32,
14597    rwork: &mut [f64],
14598    lrwork: i32,
14599    iwork: &mut [i32],
14600    liwork: i32,
14601    info: &mut i32,
14602) {
14603    ffi::zhegvd_(
14604        itype.as_ptr(),
14605        &(jobz as c_char),
14606        &(uplo as c_char),
14607        &n,
14608        a.as_mut_ptr() as *mut _,
14609        &lda,
14610        b.as_mut_ptr() as *mut _,
14611        &ldb,
14612        w.as_mut_ptr(),
14613        work.as_mut_ptr() as *mut _,
14614        &lwork,
14615        rwork.as_mut_ptr(),
14616        &lrwork,
14617        iwork.as_mut_ptr(),
14618        &liwork,
14619        info,
14620    )
14621}
14622
14623#[inline]
14624pub unsafe fn chegvx(
14625    itype: &[i32],
14626    jobz: u8,
14627    range: u8,
14628    uplo: u8,
14629    n: i32,
14630    a: &mut [c32],
14631    lda: i32,
14632    b: &mut [c32],
14633    ldb: i32,
14634    vl: f32,
14635    vu: f32,
14636    il: i32,
14637    iu: i32,
14638    abstol: f32,
14639    m: &mut i32,
14640    w: &mut [f32],
14641    z: &mut [c32],
14642    ldz: i32,
14643    work: &mut [c32],
14644    lwork: i32,
14645    rwork: &mut [f32],
14646    iwork: &mut [i32],
14647    ifail: &mut [i32],
14648    info: &mut i32,
14649) {
14650    ffi::chegvx_(
14651        itype.as_ptr(),
14652        &(jobz as c_char),
14653        &(range as c_char),
14654        &(uplo as c_char),
14655        &n,
14656        a.as_mut_ptr() as *mut _,
14657        &lda,
14658        b.as_mut_ptr() as *mut _,
14659        &ldb,
14660        &vl,
14661        &vu,
14662        &il,
14663        &iu,
14664        &abstol,
14665        m,
14666        w.as_mut_ptr(),
14667        z.as_mut_ptr() as *mut _,
14668        &ldz,
14669        work.as_mut_ptr() as *mut _,
14670        &lwork,
14671        rwork.as_mut_ptr(),
14672        iwork.as_mut_ptr(),
14673        ifail.as_mut_ptr(),
14674        info,
14675    )
14676}
14677
14678#[inline]
14679pub unsafe fn zhegvx(
14680    itype: &[i32],
14681    jobz: u8,
14682    range: u8,
14683    uplo: u8,
14684    n: i32,
14685    a: &mut [c64],
14686    lda: i32,
14687    b: &mut [c64],
14688    ldb: i32,
14689    vl: f64,
14690    vu: f64,
14691    il: i32,
14692    iu: i32,
14693    abstol: f64,
14694    m: &mut i32,
14695    w: &mut [f64],
14696    z: &mut [c64],
14697    ldz: i32,
14698    work: &mut [c64],
14699    lwork: i32,
14700    rwork: &mut [f64],
14701    iwork: &mut [i32],
14702    ifail: &mut [i32],
14703    info: &mut i32,
14704) {
14705    ffi::zhegvx_(
14706        itype.as_ptr(),
14707        &(jobz as c_char),
14708        &(range as c_char),
14709        &(uplo as c_char),
14710        &n,
14711        a.as_mut_ptr() as *mut _,
14712        &lda,
14713        b.as_mut_ptr() as *mut _,
14714        &ldb,
14715        &vl,
14716        &vu,
14717        &il,
14718        &iu,
14719        &abstol,
14720        m,
14721        w.as_mut_ptr(),
14722        z.as_mut_ptr() as *mut _,
14723        &ldz,
14724        work.as_mut_ptr() as *mut _,
14725        &lwork,
14726        rwork.as_mut_ptr(),
14727        iwork.as_mut_ptr(),
14728        ifail.as_mut_ptr(),
14729        info,
14730    )
14731}
14732
14733#[inline]
14734pub unsafe fn cherfs(
14735    uplo: u8,
14736    n: i32,
14737    nrhs: i32,
14738    a: &[c32],
14739    lda: i32,
14740    af: &[c32],
14741    ldaf: i32,
14742    ipiv: &[i32],
14743    b: &[c32],
14744    ldb: i32,
14745    x: &mut [c32],
14746    ldx: i32,
14747    ferr: &mut [f32],
14748    berr: &mut [f32],
14749    work: &mut [c32],
14750    rwork: &mut [f32],
14751    info: &mut i32,
14752) {
14753    ffi::cherfs_(
14754        &(uplo as c_char),
14755        &n,
14756        &nrhs,
14757        a.as_ptr() as *const _,
14758        &lda,
14759        af.as_ptr() as *const _,
14760        &ldaf,
14761        ipiv.as_ptr(),
14762        b.as_ptr() as *const _,
14763        &ldb,
14764        x.as_mut_ptr() as *mut _,
14765        &ldx,
14766        ferr.as_mut_ptr(),
14767        berr.as_mut_ptr(),
14768        work.as_mut_ptr() as *mut _,
14769        rwork.as_mut_ptr(),
14770        info,
14771    )
14772}
14773
14774#[inline]
14775pub unsafe fn zherfs(
14776    uplo: u8,
14777    n: i32,
14778    nrhs: i32,
14779    a: &[c64],
14780    lda: i32,
14781    af: &[c64],
14782    ldaf: i32,
14783    ipiv: &[i32],
14784    b: &[c64],
14785    ldb: i32,
14786    x: &mut [c64],
14787    ldx: i32,
14788    ferr: &mut [f64],
14789    berr: &mut [f64],
14790    work: &mut [c64],
14791    rwork: &mut [f64],
14792    info: &mut i32,
14793) {
14794    ffi::zherfs_(
14795        &(uplo as c_char),
14796        &n,
14797        &nrhs,
14798        a.as_ptr() as *const _,
14799        &lda,
14800        af.as_ptr() as *const _,
14801        &ldaf,
14802        ipiv.as_ptr(),
14803        b.as_ptr() as *const _,
14804        &ldb,
14805        x.as_mut_ptr() as *mut _,
14806        &ldx,
14807        ferr.as_mut_ptr(),
14808        berr.as_mut_ptr(),
14809        work.as_mut_ptr() as *mut _,
14810        rwork.as_mut_ptr(),
14811        info,
14812    )
14813}
14814
14815#[inline]
14816pub unsafe fn cherfsx(
14817    uplo: u8,
14818    equed: u8,
14819    n: i32,
14820    nrhs: i32,
14821    a: &[c32],
14822    lda: i32,
14823    af: &[c32],
14824    ldaf: i32,
14825    ipiv: &[i32],
14826    s: &mut [f32],
14827    b: &[c32],
14828    ldb: i32,
14829    x: &mut [c32],
14830    ldx: i32,
14831    rcond: &mut f32,
14832    berr: &mut [f32],
14833    n_err_bnds: i32,
14834    err_bnds_norm: &mut [f32],
14835    err_bnds_comp: &mut [f32],
14836    nparams: &[i32],
14837    params: &mut [f32],
14838    work: &mut [c32],
14839    rwork: &mut [f32],
14840    info: &mut i32,
14841) {
14842    ffi::cherfsx_(
14843        &(uplo as c_char),
14844        &(equed as c_char),
14845        &n,
14846        &nrhs,
14847        a.as_ptr() as *const _,
14848        &lda,
14849        af.as_ptr() as *const _,
14850        &ldaf,
14851        ipiv.as_ptr(),
14852        s.as_mut_ptr(),
14853        b.as_ptr() as *const _,
14854        &ldb,
14855        x.as_mut_ptr() as *mut _,
14856        &ldx,
14857        rcond,
14858        berr.as_mut_ptr(),
14859        &n_err_bnds,
14860        err_bnds_norm.as_mut_ptr(),
14861        err_bnds_comp.as_mut_ptr(),
14862        nparams.as_ptr(),
14863        params.as_mut_ptr(),
14864        work.as_mut_ptr() as *mut _,
14865        rwork.as_mut_ptr(),
14866        info,
14867    )
14868}
14869
14870#[inline]
14871pub unsafe fn zherfsx(
14872    uplo: u8,
14873    equed: u8,
14874    n: i32,
14875    nrhs: i32,
14876    a: &[c64],
14877    lda: i32,
14878    af: &[c64],
14879    ldaf: i32,
14880    ipiv: &[i32],
14881    s: &mut [f64],
14882    b: &[c64],
14883    ldb: i32,
14884    x: &mut [c64],
14885    ldx: i32,
14886    rcond: &mut f64,
14887    berr: &mut [f64],
14888    n_err_bnds: i32,
14889    err_bnds_norm: &mut [f64],
14890    err_bnds_comp: &mut [f64],
14891    nparams: &[i32],
14892    params: &mut [f64],
14893    work: &mut [c64],
14894    rwork: &mut [f64],
14895    info: &mut i32,
14896) {
14897    ffi::zherfsx_(
14898        &(uplo as c_char),
14899        &(equed as c_char),
14900        &n,
14901        &nrhs,
14902        a.as_ptr() as *const _,
14903        &lda,
14904        af.as_ptr() as *const _,
14905        &ldaf,
14906        ipiv.as_ptr(),
14907        s.as_mut_ptr(),
14908        b.as_ptr() as *const _,
14909        &ldb,
14910        x.as_mut_ptr() as *mut _,
14911        &ldx,
14912        rcond,
14913        berr.as_mut_ptr(),
14914        &n_err_bnds,
14915        err_bnds_norm.as_mut_ptr(),
14916        err_bnds_comp.as_mut_ptr(),
14917        nparams.as_ptr(),
14918        params.as_mut_ptr(),
14919        work.as_mut_ptr() as *mut _,
14920        rwork.as_mut_ptr(),
14921        info,
14922    )
14923}
14924
14925#[inline]
14926pub unsafe fn chesv(
14927    uplo: u8,
14928    n: i32,
14929    nrhs: i32,
14930    a: &mut [c32],
14931    lda: i32,
14932    ipiv: &mut [i32],
14933    b: &mut [c32],
14934    ldb: i32,
14935    work: &mut [c32],
14936    lwork: i32,
14937    info: &mut i32,
14938) {
14939    ffi::chesv_(
14940        &(uplo as c_char),
14941        &n,
14942        &nrhs,
14943        a.as_mut_ptr() as *mut _,
14944        &lda,
14945        ipiv.as_mut_ptr(),
14946        b.as_mut_ptr() as *mut _,
14947        &ldb,
14948        work.as_mut_ptr() as *mut _,
14949        &lwork,
14950        info,
14951    )
14952}
14953
14954#[inline]
14955pub unsafe fn zhesv(
14956    uplo: u8,
14957    n: i32,
14958    nrhs: i32,
14959    a: &mut [c64],
14960    lda: i32,
14961    ipiv: &mut [i32],
14962    b: &mut [c64],
14963    ldb: i32,
14964    work: &mut [c64],
14965    lwork: i32,
14966    info: &mut i32,
14967) {
14968    ffi::zhesv_(
14969        &(uplo as c_char),
14970        &n,
14971        &nrhs,
14972        a.as_mut_ptr() as *mut _,
14973        &lda,
14974        ipiv.as_mut_ptr(),
14975        b.as_mut_ptr() as *mut _,
14976        &ldb,
14977        work.as_mut_ptr() as *mut _,
14978        &lwork,
14979        info,
14980    )
14981}
14982
14983#[inline]
14984pub unsafe fn chesv_aa(
14985    uplo: u8,
14986    n: i32,
14987    nrhs: i32,
14988    a: &mut [c32],
14989    lda: i32,
14990    ipiv: &mut [i32],
14991    b: &mut [c32],
14992    ldb: i32,
14993    work: &mut [c32],
14994    lwork: i32,
14995    info: &mut i32,
14996) {
14997    ffi::chesv_aa_(
14998        &(uplo as c_char),
14999        &n,
15000        &nrhs,
15001        a.as_mut_ptr() as *mut _,
15002        &lda,
15003        ipiv.as_mut_ptr(),
15004        b.as_mut_ptr() as *mut _,
15005        &ldb,
15006        work.as_mut_ptr() as *mut _,
15007        &lwork,
15008        info,
15009    )
15010}
15011
15012#[inline]
15013pub unsafe fn zhesv_aa(
15014    uplo: u8,
15015    n: i32,
15016    nrhs: i32,
15017    a: &mut [c64],
15018    lda: i32,
15019    ipiv: &mut [i32],
15020    b: &mut [c64],
15021    ldb: i32,
15022    work: &mut [c64],
15023    lwork: i32,
15024    info: &mut i32,
15025) {
15026    ffi::zhesv_aa_(
15027        &(uplo as c_char),
15028        &n,
15029        &nrhs,
15030        a.as_mut_ptr() as *mut _,
15031        &lda,
15032        ipiv.as_mut_ptr(),
15033        b.as_mut_ptr() as *mut _,
15034        &ldb,
15035        work.as_mut_ptr() as *mut _,
15036        &lwork,
15037        info,
15038    )
15039}
15040
15041#[inline]
15042pub unsafe fn chesv_aa_2stage(
15043    uplo: u8,
15044    n: i32,
15045    nrhs: i32,
15046    a: &mut [c32],
15047    lda: i32,
15048    tb: &mut [c32],
15049    ltb: &[i32],
15050    ipiv: &mut [i32],
15051    ipiv2: &mut [i32],
15052    b: &mut [c32],
15053    ldb: i32,
15054    work: &mut [c32],
15055    lwork: i32,
15056    info: &mut i32,
15057) {
15058    ffi::chesv_aa_2stage_(
15059        &(uplo as c_char),
15060        &n,
15061        &nrhs,
15062        a.as_mut_ptr() as *mut _,
15063        &lda,
15064        tb.as_mut_ptr() as *mut _,
15065        ltb.as_ptr(),
15066        ipiv.as_mut_ptr(),
15067        ipiv2.as_mut_ptr(),
15068        b.as_mut_ptr() as *mut _,
15069        &ldb,
15070        work.as_mut_ptr() as *mut _,
15071        &lwork,
15072        info,
15073    )
15074}
15075
15076#[inline]
15077pub unsafe fn zhesv_aa_2stage(
15078    uplo: u8,
15079    n: i32,
15080    nrhs: i32,
15081    a: &mut [c64],
15082    lda: i32,
15083    tb: &mut [c64],
15084    ltb: &[i32],
15085    ipiv: &mut [i32],
15086    ipiv2: &mut [i32],
15087    b: &mut [c64],
15088    ldb: i32,
15089    work: &mut [c64],
15090    lwork: i32,
15091    info: &mut i32,
15092) {
15093    ffi::zhesv_aa_2stage_(
15094        &(uplo as c_char),
15095        &n,
15096        &nrhs,
15097        a.as_mut_ptr() as *mut _,
15098        &lda,
15099        tb.as_mut_ptr() as *mut _,
15100        ltb.as_ptr(),
15101        ipiv.as_mut_ptr(),
15102        ipiv2.as_mut_ptr(),
15103        b.as_mut_ptr() as *mut _,
15104        &ldb,
15105        work.as_mut_ptr() as *mut _,
15106        &lwork,
15107        info,
15108    )
15109}
15110
15111#[inline]
15112pub unsafe fn chesv_rk(
15113    uplo: u8,
15114    n: i32,
15115    nrhs: i32,
15116    a: &mut [c32],
15117    lda: i32,
15118    e: &mut [c32],
15119    ipiv: &mut [i32],
15120    b: &mut [c32],
15121    ldb: i32,
15122    work: &mut [c32],
15123    lwork: i32,
15124    info: &mut i32,
15125) {
15126    ffi::chesv_rk_(
15127        &(uplo as c_char),
15128        &n,
15129        &nrhs,
15130        a.as_mut_ptr() as *mut _,
15131        &lda,
15132        e.as_mut_ptr() as *mut _,
15133        ipiv.as_mut_ptr(),
15134        b.as_mut_ptr() as *mut _,
15135        &ldb,
15136        work.as_mut_ptr() as *mut _,
15137        &lwork,
15138        info,
15139    )
15140}
15141
15142#[inline]
15143pub unsafe fn zhesv_rk(
15144    uplo: u8,
15145    n: i32,
15146    nrhs: i32,
15147    a: &mut [c64],
15148    lda: i32,
15149    e: &mut [c64],
15150    ipiv: &mut [i32],
15151    b: &mut [c64],
15152    ldb: i32,
15153    work: &mut [c64],
15154    lwork: i32,
15155    info: &mut i32,
15156) {
15157    ffi::zhesv_rk_(
15158        &(uplo as c_char),
15159        &n,
15160        &nrhs,
15161        a.as_mut_ptr() as *mut _,
15162        &lda,
15163        e.as_mut_ptr() as *mut _,
15164        ipiv.as_mut_ptr(),
15165        b.as_mut_ptr() as *mut _,
15166        &ldb,
15167        work.as_mut_ptr() as *mut _,
15168        &lwork,
15169        info,
15170    )
15171}
15172
15173#[inline]
15174pub unsafe fn chesv_rook(
15175    uplo: u8,
15176    n: i32,
15177    nrhs: i32,
15178    a: &mut [c32],
15179    lda: i32,
15180    ipiv: &mut [i32],
15181    b: &mut [c32],
15182    ldb: i32,
15183    work: &mut [c32],
15184    lwork: i32,
15185    info: &mut i32,
15186) {
15187    ffi::chesv_rook_(
15188        &(uplo as c_char),
15189        &n,
15190        &nrhs,
15191        a.as_mut_ptr() as *mut _,
15192        &lda,
15193        ipiv.as_mut_ptr(),
15194        b.as_mut_ptr() as *mut _,
15195        &ldb,
15196        work.as_mut_ptr() as *mut _,
15197        &lwork,
15198        info,
15199    )
15200}
15201
15202#[inline]
15203pub unsafe fn zhesv_rook(
15204    uplo: u8,
15205    n: i32,
15206    nrhs: i32,
15207    a: &mut [c64],
15208    lda: i32,
15209    ipiv: &mut [i32],
15210    b: &mut [c64],
15211    ldb: i32,
15212    work: &mut [c64],
15213    lwork: i32,
15214    info: &mut i32,
15215) {
15216    ffi::zhesv_rook_(
15217        &(uplo as c_char),
15218        &n,
15219        &nrhs,
15220        a.as_mut_ptr() as *mut _,
15221        &lda,
15222        ipiv.as_mut_ptr(),
15223        b.as_mut_ptr() as *mut _,
15224        &ldb,
15225        work.as_mut_ptr() as *mut _,
15226        &lwork,
15227        info,
15228    )
15229}
15230
15231#[inline]
15232pub unsafe fn chesvx(
15233    fact: u8,
15234    uplo: u8,
15235    n: i32,
15236    nrhs: i32,
15237    a: &[c32],
15238    lda: i32,
15239    af: &mut [c32],
15240    ldaf: i32,
15241    ipiv: &mut [i32],
15242    b: &[c32],
15243    ldb: i32,
15244    x: &mut [c32],
15245    ldx: i32,
15246    rcond: &mut f32,
15247    ferr: &mut [f32],
15248    berr: &mut [f32],
15249    work: &mut [c32],
15250    lwork: i32,
15251    rwork: &mut [f32],
15252    info: &mut i32,
15253) {
15254    ffi::chesvx_(
15255        &(fact as c_char),
15256        &(uplo as c_char),
15257        &n,
15258        &nrhs,
15259        a.as_ptr() as *const _,
15260        &lda,
15261        af.as_mut_ptr() as *mut _,
15262        &ldaf,
15263        ipiv.as_mut_ptr(),
15264        b.as_ptr() as *const _,
15265        &ldb,
15266        x.as_mut_ptr() as *mut _,
15267        &ldx,
15268        rcond,
15269        ferr.as_mut_ptr(),
15270        berr.as_mut_ptr(),
15271        work.as_mut_ptr() as *mut _,
15272        &lwork,
15273        rwork.as_mut_ptr(),
15274        info,
15275    )
15276}
15277
15278#[inline]
15279pub unsafe fn zhesvx(
15280    fact: u8,
15281    uplo: u8,
15282    n: i32,
15283    nrhs: i32,
15284    a: &[c64],
15285    lda: i32,
15286    af: &mut [c64],
15287    ldaf: i32,
15288    ipiv: &mut [i32],
15289    b: &[c64],
15290    ldb: i32,
15291    x: &mut [c64],
15292    ldx: i32,
15293    rcond: &mut f64,
15294    ferr: &mut [f64],
15295    berr: &mut [f64],
15296    work: &mut [c64],
15297    lwork: i32,
15298    rwork: &mut [f64],
15299    info: &mut i32,
15300) {
15301    ffi::zhesvx_(
15302        &(fact as c_char),
15303        &(uplo as c_char),
15304        &n,
15305        &nrhs,
15306        a.as_ptr() as *const _,
15307        &lda,
15308        af.as_mut_ptr() as *mut _,
15309        &ldaf,
15310        ipiv.as_mut_ptr(),
15311        b.as_ptr() as *const _,
15312        &ldb,
15313        x.as_mut_ptr() as *mut _,
15314        &ldx,
15315        rcond,
15316        ferr.as_mut_ptr(),
15317        berr.as_mut_ptr(),
15318        work.as_mut_ptr() as *mut _,
15319        &lwork,
15320        rwork.as_mut_ptr(),
15321        info,
15322    )
15323}
15324
15325#[inline]
15326pub unsafe fn chesvxx(
15327    fact: u8,
15328    uplo: u8,
15329    n: i32,
15330    nrhs: i32,
15331    a: &mut [c32],
15332    lda: i32,
15333    af: &mut [c32],
15334    ldaf: i32,
15335    ipiv: &mut [i32],
15336    equed: &mut u8,
15337    s: &mut [f32],
15338    b: &mut [c32],
15339    ldb: i32,
15340    x: &mut [c32],
15341    ldx: i32,
15342    rcond: &mut f32,
15343    rpvgrw: &mut f32,
15344    berr: &mut [f32],
15345    n_err_bnds: i32,
15346    err_bnds_norm: &mut [f32],
15347    err_bnds_comp: &mut [f32],
15348    nparams: &[i32],
15349    params: &mut [f32],
15350    work: &mut [c32],
15351    rwork: &mut [f32],
15352    info: &mut i32,
15353) {
15354    ffi::chesvxx_(
15355        &(fact as c_char),
15356        &(uplo as c_char),
15357        &n,
15358        &nrhs,
15359        a.as_mut_ptr() as *mut _,
15360        &lda,
15361        af.as_mut_ptr() as *mut _,
15362        &ldaf,
15363        ipiv.as_mut_ptr(),
15364        equed as *mut _ as *mut _,
15365        s.as_mut_ptr(),
15366        b.as_mut_ptr() as *mut _,
15367        &ldb,
15368        x.as_mut_ptr() as *mut _,
15369        &ldx,
15370        rcond,
15371        rpvgrw,
15372        berr.as_mut_ptr(),
15373        &n_err_bnds,
15374        err_bnds_norm.as_mut_ptr(),
15375        err_bnds_comp.as_mut_ptr(),
15376        nparams.as_ptr(),
15377        params.as_mut_ptr(),
15378        work.as_mut_ptr() as *mut _,
15379        rwork.as_mut_ptr(),
15380        info,
15381    )
15382}
15383
15384#[inline]
15385pub unsafe fn zhesvxx(
15386    fact: u8,
15387    uplo: u8,
15388    n: i32,
15389    nrhs: i32,
15390    a: &mut [c64],
15391    lda: i32,
15392    af: &mut [c64],
15393    ldaf: i32,
15394    ipiv: &mut [i32],
15395    equed: &mut u8,
15396    s: &mut [f64],
15397    b: &mut [c64],
15398    ldb: i32,
15399    x: &mut [c64],
15400    ldx: i32,
15401    rcond: &mut f64,
15402    rpvgrw: &mut f64,
15403    berr: &mut [f64],
15404    n_err_bnds: i32,
15405    err_bnds_norm: &mut [f64],
15406    err_bnds_comp: &mut [f64],
15407    nparams: &[i32],
15408    params: &mut [f64],
15409    work: &mut [c64],
15410    rwork: &mut [f64],
15411    info: &mut i32,
15412) {
15413    ffi::zhesvxx_(
15414        &(fact as c_char),
15415        &(uplo as c_char),
15416        &n,
15417        &nrhs,
15418        a.as_mut_ptr() as *mut _,
15419        &lda,
15420        af.as_mut_ptr() as *mut _,
15421        &ldaf,
15422        ipiv.as_mut_ptr(),
15423        equed as *mut _ as *mut _,
15424        s.as_mut_ptr(),
15425        b.as_mut_ptr() as *mut _,
15426        &ldb,
15427        x.as_mut_ptr() as *mut _,
15428        &ldx,
15429        rcond,
15430        rpvgrw,
15431        berr.as_mut_ptr(),
15432        &n_err_bnds,
15433        err_bnds_norm.as_mut_ptr(),
15434        err_bnds_comp.as_mut_ptr(),
15435        nparams.as_ptr(),
15436        params.as_mut_ptr(),
15437        work.as_mut_ptr() as *mut _,
15438        rwork.as_mut_ptr(),
15439        info,
15440    )
15441}
15442
15443#[inline]
15444pub unsafe fn cheswapr(uplo: u8, n: i32, a: &mut [c32], lda: i32, i1: &[i32], i2: &[i32]) {
15445    ffi::cheswapr_(
15446        &(uplo as c_char),
15447        &n,
15448        a.as_mut_ptr() as *mut _,
15449        &lda,
15450        i1.as_ptr(),
15451        i2.as_ptr(),
15452    )
15453}
15454
15455#[inline]
15456pub unsafe fn zheswapr(uplo: u8, n: i32, a: &mut [c64], lda: i32, i1: &[i32], i2: &[i32]) {
15457    ffi::zheswapr_(
15458        &(uplo as c_char),
15459        &n,
15460        a.as_mut_ptr() as *mut _,
15461        &lda,
15462        i1.as_ptr(),
15463        i2.as_ptr(),
15464    )
15465}
15466
15467#[inline]
15468pub unsafe fn chetrd(
15469    uplo: u8,
15470    n: i32,
15471    a: &mut [c32],
15472    lda: i32,
15473    d: &mut [f32],
15474    e: &mut [f32],
15475    tau: &mut [c32],
15476    work: &mut [c32],
15477    lwork: i32,
15478    info: &mut i32,
15479) {
15480    ffi::chetrd_(
15481        &(uplo as c_char),
15482        &n,
15483        a.as_mut_ptr() as *mut _,
15484        &lda,
15485        d.as_mut_ptr(),
15486        e.as_mut_ptr(),
15487        tau.as_mut_ptr() as *mut _,
15488        work.as_mut_ptr() as *mut _,
15489        &lwork,
15490        info,
15491    )
15492}
15493
15494#[inline]
15495pub unsafe fn zhetrd(
15496    uplo: u8,
15497    n: i32,
15498    a: &mut [c64],
15499    lda: i32,
15500    d: &mut [f64],
15501    e: &mut [f64],
15502    tau: &mut [c64],
15503    work: &mut [c64],
15504    lwork: i32,
15505    info: &mut i32,
15506) {
15507    ffi::zhetrd_(
15508        &(uplo as c_char),
15509        &n,
15510        a.as_mut_ptr() as *mut _,
15511        &lda,
15512        d.as_mut_ptr(),
15513        e.as_mut_ptr(),
15514        tau.as_mut_ptr() as *mut _,
15515        work.as_mut_ptr() as *mut _,
15516        &lwork,
15517        info,
15518    )
15519}
15520
15521#[inline]
15522pub unsafe fn chetrd_2stage(
15523    vect: u8,
15524    uplo: u8,
15525    n: i32,
15526    a: &mut [c32],
15527    lda: i32,
15528    d: &mut [f32],
15529    e: &mut [f32],
15530    tau: &mut [c32],
15531    hous2: &mut [c32],
15532    lhous2: &[i32],
15533    work: &mut [c32],
15534    lwork: i32,
15535    info: &mut i32,
15536) {
15537    ffi::chetrd_2stage_(
15538        &(vect as c_char),
15539        &(uplo as c_char),
15540        &n,
15541        a.as_mut_ptr() as *mut _,
15542        &lda,
15543        d.as_mut_ptr(),
15544        e.as_mut_ptr(),
15545        tau.as_mut_ptr() as *mut _,
15546        hous2.as_mut_ptr() as *mut _,
15547        lhous2.as_ptr(),
15548        work.as_mut_ptr() as *mut _,
15549        &lwork,
15550        info,
15551    )
15552}
15553
15554#[inline]
15555pub unsafe fn zhetrd_2stage(
15556    vect: u8,
15557    uplo: u8,
15558    n: i32,
15559    a: &mut [c64],
15560    lda: i32,
15561    d: &mut [f64],
15562    e: &mut [f64],
15563    tau: &mut [c64],
15564    hous2: &mut [c64],
15565    lhous2: &[i32],
15566    work: &mut [c64],
15567    lwork: i32,
15568    info: &mut i32,
15569) {
15570    ffi::zhetrd_2stage_(
15571        &(vect as c_char),
15572        &(uplo as c_char),
15573        &n,
15574        a.as_mut_ptr() as *mut _,
15575        &lda,
15576        d.as_mut_ptr(),
15577        e.as_mut_ptr(),
15578        tau.as_mut_ptr() as *mut _,
15579        hous2.as_mut_ptr() as *mut _,
15580        lhous2.as_ptr(),
15581        work.as_mut_ptr() as *mut _,
15582        &lwork,
15583        info,
15584    )
15585}
15586
15587#[inline]
15588pub unsafe fn chetrf(
15589    uplo: u8,
15590    n: i32,
15591    a: &mut [c32],
15592    lda: i32,
15593    ipiv: &mut [i32],
15594    work: &mut [c32],
15595    lwork: i32,
15596    info: &mut i32,
15597) {
15598    ffi::chetrf_(
15599        &(uplo as c_char),
15600        &n,
15601        a.as_mut_ptr() as *mut _,
15602        &lda,
15603        ipiv.as_mut_ptr(),
15604        work.as_mut_ptr() as *mut _,
15605        &lwork,
15606        info,
15607    )
15608}
15609
15610#[inline]
15611pub unsafe fn zhetrf(
15612    uplo: u8,
15613    n: i32,
15614    a: &mut [c64],
15615    lda: i32,
15616    ipiv: &mut [i32],
15617    work: &mut [c64],
15618    lwork: i32,
15619    info: &mut i32,
15620) {
15621    ffi::zhetrf_(
15622        &(uplo as c_char),
15623        &n,
15624        a.as_mut_ptr() as *mut _,
15625        &lda,
15626        ipiv.as_mut_ptr(),
15627        work.as_mut_ptr() as *mut _,
15628        &lwork,
15629        info,
15630    )
15631}
15632
15633#[inline]
15634pub unsafe fn chetrf_aa(
15635    uplo: u8,
15636    n: i32,
15637    a: &mut [c32],
15638    lda: i32,
15639    ipiv: &mut [i32],
15640    work: &mut [c32],
15641    lwork: i32,
15642    info: &mut i32,
15643) {
15644    ffi::chetrf_aa_(
15645        &(uplo as c_char),
15646        &n,
15647        a.as_mut_ptr() as *mut _,
15648        &lda,
15649        ipiv.as_mut_ptr(),
15650        work.as_mut_ptr() as *mut _,
15651        &lwork,
15652        info,
15653    )
15654}
15655
15656#[inline]
15657pub unsafe fn zhetrf_aa(
15658    uplo: u8,
15659    n: i32,
15660    a: &mut [c64],
15661    lda: i32,
15662    ipiv: &mut [i32],
15663    work: &mut [c64],
15664    lwork: i32,
15665    info: &mut i32,
15666) {
15667    ffi::zhetrf_aa_(
15668        &(uplo as c_char),
15669        &n,
15670        a.as_mut_ptr() as *mut _,
15671        &lda,
15672        ipiv.as_mut_ptr(),
15673        work.as_mut_ptr() as *mut _,
15674        &lwork,
15675        info,
15676    )
15677}
15678
15679#[inline]
15680pub unsafe fn chetrf_aa_2stage(
15681    uplo: u8,
15682    n: i32,
15683    a: &mut [c32],
15684    lda: i32,
15685    tb: &mut [c32],
15686    ltb: &[i32],
15687    ipiv: &mut [i32],
15688    ipiv2: &mut [i32],
15689    work: &mut [c32],
15690    lwork: i32,
15691    info: &mut i32,
15692) {
15693    ffi::chetrf_aa_2stage_(
15694        &(uplo as c_char),
15695        &n,
15696        a.as_mut_ptr() as *mut _,
15697        &lda,
15698        tb.as_mut_ptr() as *mut _,
15699        ltb.as_ptr(),
15700        ipiv.as_mut_ptr(),
15701        ipiv2.as_mut_ptr(),
15702        work.as_mut_ptr() as *mut _,
15703        &lwork,
15704        info,
15705    )
15706}
15707
15708#[inline]
15709pub unsafe fn zhetrf_aa_2stage(
15710    uplo: u8,
15711    n: i32,
15712    a: &mut [c64],
15713    lda: i32,
15714    tb: &mut [c64],
15715    ltb: &[i32],
15716    ipiv: &mut [i32],
15717    ipiv2: &mut [i32],
15718    work: &mut [c64],
15719    lwork: i32,
15720    info: &mut i32,
15721) {
15722    ffi::zhetrf_aa_2stage_(
15723        &(uplo as c_char),
15724        &n,
15725        a.as_mut_ptr() as *mut _,
15726        &lda,
15727        tb.as_mut_ptr() as *mut _,
15728        ltb.as_ptr(),
15729        ipiv.as_mut_ptr(),
15730        ipiv2.as_mut_ptr(),
15731        work.as_mut_ptr() as *mut _,
15732        &lwork,
15733        info,
15734    )
15735}
15736
15737#[inline]
15738pub unsafe fn chetrf_rk(
15739    uplo: u8,
15740    n: i32,
15741    a: &mut [c32],
15742    lda: i32,
15743    e: &mut [c32],
15744    ipiv: &mut [i32],
15745    work: &mut [c32],
15746    lwork: i32,
15747    info: &mut i32,
15748) {
15749    ffi::chetrf_rk_(
15750        &(uplo as c_char),
15751        &n,
15752        a.as_mut_ptr() as *mut _,
15753        &lda,
15754        e.as_mut_ptr() as *mut _,
15755        ipiv.as_mut_ptr(),
15756        work.as_mut_ptr() as *mut _,
15757        &lwork,
15758        info,
15759    )
15760}
15761
15762#[inline]
15763pub unsafe fn zhetrf_rk(
15764    uplo: u8,
15765    n: i32,
15766    a: &mut [c64],
15767    lda: i32,
15768    e: &mut [c64],
15769    ipiv: &mut [i32],
15770    work: &mut [c64],
15771    lwork: i32,
15772    info: &mut i32,
15773) {
15774    ffi::zhetrf_rk_(
15775        &(uplo as c_char),
15776        &n,
15777        a.as_mut_ptr() as *mut _,
15778        &lda,
15779        e.as_mut_ptr() as *mut _,
15780        ipiv.as_mut_ptr(),
15781        work.as_mut_ptr() as *mut _,
15782        &lwork,
15783        info,
15784    )
15785}
15786
15787#[inline]
15788pub unsafe fn chetrf_rook(
15789    uplo: u8,
15790    n: i32,
15791    a: &mut [c32],
15792    lda: i32,
15793    ipiv: &mut [i32],
15794    work: &mut [c32],
15795    lwork: i32,
15796    info: &mut i32,
15797) {
15798    ffi::chetrf_rook_(
15799        &(uplo as c_char),
15800        &n,
15801        a.as_mut_ptr() as *mut _,
15802        &lda,
15803        ipiv.as_mut_ptr(),
15804        work.as_mut_ptr() as *mut _,
15805        &lwork,
15806        info,
15807    )
15808}
15809
15810#[inline]
15811pub unsafe fn zhetrf_rook(
15812    uplo: u8,
15813    n: i32,
15814    a: &mut [c64],
15815    lda: i32,
15816    ipiv: &mut [i32],
15817    work: &mut [c64],
15818    lwork: i32,
15819    info: &mut i32,
15820) {
15821    ffi::zhetrf_rook_(
15822        &(uplo as c_char),
15823        &n,
15824        a.as_mut_ptr() as *mut _,
15825        &lda,
15826        ipiv.as_mut_ptr(),
15827        work.as_mut_ptr() as *mut _,
15828        &lwork,
15829        info,
15830    )
15831}
15832
15833#[inline]
15834pub unsafe fn chetri(
15835    uplo: u8,
15836    n: i32,
15837    a: &mut [c32],
15838    lda: i32,
15839    ipiv: &[i32],
15840    work: &mut [c32],
15841    info: &mut i32,
15842) {
15843    ffi::chetri_(
15844        &(uplo as c_char),
15845        &n,
15846        a.as_mut_ptr() as *mut _,
15847        &lda,
15848        ipiv.as_ptr(),
15849        work.as_mut_ptr() as *mut _,
15850        info,
15851    )
15852}
15853
15854#[inline]
15855pub unsafe fn zhetri(
15856    uplo: u8,
15857    n: i32,
15858    a: &mut [c64],
15859    lda: i32,
15860    ipiv: &[i32],
15861    work: &mut [c64],
15862    info: &mut i32,
15863) {
15864    ffi::zhetri_(
15865        &(uplo as c_char),
15866        &n,
15867        a.as_mut_ptr() as *mut _,
15868        &lda,
15869        ipiv.as_ptr(),
15870        work.as_mut_ptr() as *mut _,
15871        info,
15872    )
15873}
15874
15875#[inline]
15876pub unsafe fn chetri2(
15877    uplo: u8,
15878    n: i32,
15879    a: &mut [c32],
15880    lda: i32,
15881    ipiv: &[i32],
15882    work: &mut [c32],
15883    lwork: i32,
15884    info: &mut i32,
15885) {
15886    ffi::chetri2_(
15887        &(uplo as c_char),
15888        &n,
15889        a.as_mut_ptr() as *mut _,
15890        &lda,
15891        ipiv.as_ptr(),
15892        work.as_mut_ptr() as *mut _,
15893        &lwork,
15894        info,
15895    )
15896}
15897
15898#[inline]
15899pub unsafe fn zhetri2(
15900    uplo: u8,
15901    n: i32,
15902    a: &mut [c64],
15903    lda: i32,
15904    ipiv: &[i32],
15905    work: &mut [c64],
15906    lwork: i32,
15907    info: &mut i32,
15908) {
15909    ffi::zhetri2_(
15910        &(uplo as c_char),
15911        &n,
15912        a.as_mut_ptr() as *mut _,
15913        &lda,
15914        ipiv.as_ptr(),
15915        work.as_mut_ptr() as *mut _,
15916        &lwork,
15917        info,
15918    )
15919}
15920
15921#[inline]
15922pub unsafe fn chetri2x(
15923    uplo: u8,
15924    n: i32,
15925    a: &mut [c32],
15926    lda: i32,
15927    ipiv: &[i32],
15928    work: &mut [c32],
15929    nb: i32,
15930    info: &mut i32,
15931) {
15932    ffi::chetri2x_(
15933        &(uplo as c_char),
15934        &n,
15935        a.as_mut_ptr() as *mut _,
15936        &lda,
15937        ipiv.as_ptr(),
15938        work.as_mut_ptr() as *mut _,
15939        &nb,
15940        info,
15941    )
15942}
15943
15944#[inline]
15945pub unsafe fn zhetri2x(
15946    uplo: u8,
15947    n: i32,
15948    a: &mut [c64],
15949    lda: i32,
15950    ipiv: &[i32],
15951    work: &mut [c64],
15952    nb: i32,
15953    info: &mut i32,
15954) {
15955    ffi::zhetri2x_(
15956        &(uplo as c_char),
15957        &n,
15958        a.as_mut_ptr() as *mut _,
15959        &lda,
15960        ipiv.as_ptr(),
15961        work.as_mut_ptr() as *mut _,
15962        &nb,
15963        info,
15964    )
15965}
15966
15967#[inline]
15968pub unsafe fn chetri_3(
15969    uplo: u8,
15970    n: i32,
15971    a: &mut [c32],
15972    lda: i32,
15973    e: &[c32],
15974    ipiv: &[i32],
15975    work: &mut [c32],
15976    lwork: i32,
15977    info: &mut i32,
15978) {
15979    ffi::chetri_3_(
15980        &(uplo as c_char),
15981        &n,
15982        a.as_mut_ptr() as *mut _,
15983        &lda,
15984        e.as_ptr() as *const _,
15985        ipiv.as_ptr(),
15986        work.as_mut_ptr() as *mut _,
15987        &lwork,
15988        info,
15989    )
15990}
15991
15992#[inline]
15993pub unsafe fn zhetri_3(
15994    uplo: u8,
15995    n: i32,
15996    a: &mut [c64],
15997    lda: i32,
15998    e: &[c64],
15999    ipiv: &[i32],
16000    work: &mut [c64],
16001    lwork: i32,
16002    info: &mut i32,
16003) {
16004    ffi::zhetri_3_(
16005        &(uplo as c_char),
16006        &n,
16007        a.as_mut_ptr() as *mut _,
16008        &lda,
16009        e.as_ptr() as *const _,
16010        ipiv.as_ptr(),
16011        work.as_mut_ptr() as *mut _,
16012        &lwork,
16013        info,
16014    )
16015}
16016
16017#[inline]
16018pub unsafe fn chetrs(
16019    uplo: u8,
16020    n: i32,
16021    nrhs: i32,
16022    a: &[c32],
16023    lda: i32,
16024    ipiv: &[i32],
16025    b: &mut [c32],
16026    ldb: i32,
16027    info: &mut i32,
16028) {
16029    ffi::chetrs_(
16030        &(uplo as c_char),
16031        &n,
16032        &nrhs,
16033        a.as_ptr() as *const _,
16034        &lda,
16035        ipiv.as_ptr(),
16036        b.as_mut_ptr() as *mut _,
16037        &ldb,
16038        info,
16039    )
16040}
16041
16042#[inline]
16043pub unsafe fn zhetrs(
16044    uplo: u8,
16045    n: i32,
16046    nrhs: i32,
16047    a: &[c64],
16048    lda: i32,
16049    ipiv: &[i32],
16050    b: &mut [c64],
16051    ldb: i32,
16052    info: &mut i32,
16053) {
16054    ffi::zhetrs_(
16055        &(uplo as c_char),
16056        &n,
16057        &nrhs,
16058        a.as_ptr() as *const _,
16059        &lda,
16060        ipiv.as_ptr(),
16061        b.as_mut_ptr() as *mut _,
16062        &ldb,
16063        info,
16064    )
16065}
16066
16067#[inline]
16068pub unsafe fn chetrs2(
16069    uplo: u8,
16070    n: i32,
16071    nrhs: i32,
16072    a: &[c32],
16073    lda: i32,
16074    ipiv: &[i32],
16075    b: &mut [c32],
16076    ldb: i32,
16077    work: &mut [c32],
16078    info: &mut i32,
16079) {
16080    ffi::chetrs2_(
16081        &(uplo as c_char),
16082        &n,
16083        &nrhs,
16084        a.as_ptr() as *const _,
16085        &lda,
16086        ipiv.as_ptr(),
16087        b.as_mut_ptr() as *mut _,
16088        &ldb,
16089        work.as_mut_ptr() as *mut _,
16090        info,
16091    )
16092}
16093
16094#[inline]
16095pub unsafe fn zhetrs2(
16096    uplo: u8,
16097    n: i32,
16098    nrhs: i32,
16099    a: &[c64],
16100    lda: i32,
16101    ipiv: &[i32],
16102    b: &mut [c64],
16103    ldb: i32,
16104    work: &mut [c64],
16105    info: &mut i32,
16106) {
16107    ffi::zhetrs2_(
16108        &(uplo as c_char),
16109        &n,
16110        &nrhs,
16111        a.as_ptr() as *const _,
16112        &lda,
16113        ipiv.as_ptr(),
16114        b.as_mut_ptr() as *mut _,
16115        &ldb,
16116        work.as_mut_ptr() as *mut _,
16117        info,
16118    )
16119}
16120
16121#[inline]
16122pub unsafe fn chetrs_3(
16123    uplo: u8,
16124    n: i32,
16125    nrhs: i32,
16126    a: &[c32],
16127    lda: i32,
16128    e: &[c32],
16129    ipiv: &[i32],
16130    b: &mut [c32],
16131    ldb: i32,
16132    info: &mut i32,
16133) {
16134    ffi::chetrs_3_(
16135        &(uplo as c_char),
16136        &n,
16137        &nrhs,
16138        a.as_ptr() as *const _,
16139        &lda,
16140        e.as_ptr() as *const _,
16141        ipiv.as_ptr(),
16142        b.as_mut_ptr() as *mut _,
16143        &ldb,
16144        info,
16145    )
16146}
16147
16148#[inline]
16149pub unsafe fn zhetrs_3(
16150    uplo: u8,
16151    n: i32,
16152    nrhs: i32,
16153    a: &[c64],
16154    lda: i32,
16155    e: &[c64],
16156    ipiv: &[i32],
16157    b: &mut [c64],
16158    ldb: i32,
16159    info: &mut i32,
16160) {
16161    ffi::zhetrs_3_(
16162        &(uplo as c_char),
16163        &n,
16164        &nrhs,
16165        a.as_ptr() as *const _,
16166        &lda,
16167        e.as_ptr() as *const _,
16168        ipiv.as_ptr(),
16169        b.as_mut_ptr() as *mut _,
16170        &ldb,
16171        info,
16172    )
16173}
16174
16175#[inline]
16176pub unsafe fn chetrs_aa(
16177    uplo: u8,
16178    n: i32,
16179    nrhs: i32,
16180    a: &[c32],
16181    lda: i32,
16182    ipiv: &[i32],
16183    b: &mut [c32],
16184    ldb: i32,
16185    work: &mut [c32],
16186    lwork: i32,
16187    info: &mut i32,
16188) {
16189    ffi::chetrs_aa_(
16190        &(uplo as c_char),
16191        &n,
16192        &nrhs,
16193        a.as_ptr() as *const _,
16194        &lda,
16195        ipiv.as_ptr(),
16196        b.as_mut_ptr() as *mut _,
16197        &ldb,
16198        work.as_mut_ptr() as *mut _,
16199        &lwork,
16200        info,
16201    )
16202}
16203
16204#[inline]
16205pub unsafe fn zhetrs_aa(
16206    uplo: u8,
16207    n: i32,
16208    nrhs: i32,
16209    a: &[c64],
16210    lda: i32,
16211    ipiv: &[i32],
16212    b: &mut [c64],
16213    ldb: i32,
16214    work: &mut [c64],
16215    lwork: i32,
16216    info: &mut i32,
16217) {
16218    ffi::zhetrs_aa_(
16219        &(uplo as c_char),
16220        &n,
16221        &nrhs,
16222        a.as_ptr() as *const _,
16223        &lda,
16224        ipiv.as_ptr(),
16225        b.as_mut_ptr() as *mut _,
16226        &ldb,
16227        work.as_mut_ptr() as *mut _,
16228        &lwork,
16229        info,
16230    )
16231}
16232
16233#[inline]
16234pub unsafe fn chetrs_aa_2stage(
16235    uplo: u8,
16236    n: i32,
16237    nrhs: i32,
16238    a: &[c32],
16239    lda: i32,
16240    tb: &mut [c32],
16241    ltb: &[i32],
16242    ipiv: &[i32],
16243    ipiv2: &[i32],
16244    b: &mut [c32],
16245    ldb: i32,
16246    info: &mut i32,
16247) {
16248    ffi::chetrs_aa_2stage_(
16249        &(uplo as c_char),
16250        &n,
16251        &nrhs,
16252        a.as_ptr() as *const _,
16253        &lda,
16254        tb.as_mut_ptr() as *mut _,
16255        ltb.as_ptr(),
16256        ipiv.as_ptr(),
16257        ipiv2.as_ptr(),
16258        b.as_mut_ptr() as *mut _,
16259        &ldb,
16260        info,
16261    )
16262}
16263
16264#[inline]
16265pub unsafe fn zhetrs_aa_2stage(
16266    uplo: u8,
16267    n: i32,
16268    nrhs: i32,
16269    a: &[c64],
16270    lda: i32,
16271    tb: &mut [c64],
16272    ltb: &[i32],
16273    ipiv: &[i32],
16274    ipiv2: &[i32],
16275    b: &mut [c64],
16276    ldb: i32,
16277    info: &mut i32,
16278) {
16279    ffi::zhetrs_aa_2stage_(
16280        &(uplo as c_char),
16281        &n,
16282        &nrhs,
16283        a.as_ptr() as *const _,
16284        &lda,
16285        tb.as_mut_ptr() as *mut _,
16286        ltb.as_ptr(),
16287        ipiv.as_ptr(),
16288        ipiv2.as_ptr(),
16289        b.as_mut_ptr() as *mut _,
16290        &ldb,
16291        info,
16292    )
16293}
16294
16295#[inline]
16296pub unsafe fn chetrs_rook(
16297    uplo: u8,
16298    n: i32,
16299    nrhs: i32,
16300    a: &[c32],
16301    lda: i32,
16302    ipiv: &[i32],
16303    b: &mut [c32],
16304    ldb: i32,
16305    info: &mut i32,
16306) {
16307    ffi::chetrs_rook_(
16308        &(uplo as c_char),
16309        &n,
16310        &nrhs,
16311        a.as_ptr() as *const _,
16312        &lda,
16313        ipiv.as_ptr(),
16314        b.as_mut_ptr() as *mut _,
16315        &ldb,
16316        info,
16317    )
16318}
16319
16320#[inline]
16321pub unsafe fn zhetrs_rook(
16322    uplo: u8,
16323    n: i32,
16324    nrhs: i32,
16325    a: &[c64],
16326    lda: i32,
16327    ipiv: &[i32],
16328    b: &mut [c64],
16329    ldb: i32,
16330    info: &mut i32,
16331) {
16332    ffi::zhetrs_rook_(
16333        &(uplo as c_char),
16334        &n,
16335        &nrhs,
16336        a.as_ptr() as *const _,
16337        &lda,
16338        ipiv.as_ptr(),
16339        b.as_mut_ptr() as *mut _,
16340        &ldb,
16341        info,
16342    )
16343}
16344
16345#[inline]
16346pub unsafe fn chfrk(
16347    transr: u8,
16348    uplo: u8,
16349    trans: u8,
16350    n: i32,
16351    k: i32,
16352    alpha: &[f32],
16353    a: &[c32],
16354    lda: i32,
16355    beta: &[f32],
16356    c: &mut [c32],
16357) {
16358    ffi::chfrk_(
16359        &(transr as c_char),
16360        &(uplo as c_char),
16361        &(trans as c_char),
16362        &n,
16363        &k,
16364        alpha.as_ptr(),
16365        a.as_ptr() as *const _,
16366        &lda,
16367        beta.as_ptr(),
16368        c.as_mut_ptr() as *mut _,
16369    )
16370}
16371
16372#[inline]
16373pub unsafe fn zhfrk(
16374    transr: u8,
16375    uplo: u8,
16376    trans: u8,
16377    n: i32,
16378    k: i32,
16379    alpha: &[f64],
16380    a: &[c64],
16381    lda: i32,
16382    beta: &[f64],
16383    c: &mut [c64],
16384) {
16385    ffi::zhfrk_(
16386        &(transr as c_char),
16387        &(uplo as c_char),
16388        &(trans as c_char),
16389        &n,
16390        &k,
16391        alpha.as_ptr(),
16392        a.as_ptr() as *const _,
16393        &lda,
16394        beta.as_ptr(),
16395        c.as_mut_ptr() as *mut _,
16396    )
16397}
16398
16399#[inline]
16400pub unsafe fn chgeqz(
16401    job: u8,
16402    compq: u8,
16403    compz: u8,
16404    n: i32,
16405    ilo: i32,
16406    ihi: i32,
16407    h: &mut [c32],
16408    ldh: i32,
16409    t: &mut [c32],
16410    ldt: i32,
16411    alpha: &mut [c32],
16412    beta: &mut [c32],
16413    q: &mut [c32],
16414    ldq: i32,
16415    z: &mut [c32],
16416    ldz: i32,
16417    work: &mut [c32],
16418    lwork: i32,
16419    rwork: &mut [f32],
16420    info: &mut i32,
16421) {
16422    ffi::chgeqz_(
16423        &(job as c_char),
16424        &(compq as c_char),
16425        &(compz as c_char),
16426        &n,
16427        &ilo,
16428        &ihi,
16429        h.as_mut_ptr() as *mut _,
16430        &ldh,
16431        t.as_mut_ptr() as *mut _,
16432        &ldt,
16433        alpha.as_mut_ptr() as *mut _,
16434        beta.as_mut_ptr() as *mut _,
16435        q.as_mut_ptr() as *mut _,
16436        &ldq,
16437        z.as_mut_ptr() as *mut _,
16438        &ldz,
16439        work.as_mut_ptr() as *mut _,
16440        &lwork,
16441        rwork.as_mut_ptr(),
16442        info,
16443    )
16444}
16445
16446#[inline]
16447pub unsafe fn dhgeqz(
16448    job: u8,
16449    compq: u8,
16450    compz: u8,
16451    n: i32,
16452    ilo: i32,
16453    ihi: i32,
16454    h: &mut [f64],
16455    ldh: i32,
16456    t: &mut [f64],
16457    ldt: i32,
16458    alphar: &mut [f64],
16459    alphai: &mut [f64],
16460    beta: &mut [f64],
16461    q: &mut [f64],
16462    ldq: i32,
16463    z: &mut [f64],
16464    ldz: i32,
16465    work: &mut [f64],
16466    lwork: i32,
16467    info: &mut i32,
16468) {
16469    ffi::dhgeqz_(
16470        &(job as c_char),
16471        &(compq as c_char),
16472        &(compz as c_char),
16473        &n,
16474        &ilo,
16475        &ihi,
16476        h.as_mut_ptr(),
16477        &ldh,
16478        t.as_mut_ptr(),
16479        &ldt,
16480        alphar.as_mut_ptr(),
16481        alphai.as_mut_ptr(),
16482        beta.as_mut_ptr(),
16483        q.as_mut_ptr(),
16484        &ldq,
16485        z.as_mut_ptr(),
16486        &ldz,
16487        work.as_mut_ptr(),
16488        &lwork,
16489        info,
16490    )
16491}
16492
16493#[inline]
16494pub unsafe fn shgeqz(
16495    job: u8,
16496    compq: u8,
16497    compz: u8,
16498    n: i32,
16499    ilo: i32,
16500    ihi: i32,
16501    h: &mut [f32],
16502    ldh: i32,
16503    t: &mut [f32],
16504    ldt: i32,
16505    alphar: &mut [f32],
16506    alphai: &mut [f32],
16507    beta: &mut [f32],
16508    q: &mut [f32],
16509    ldq: i32,
16510    z: &mut [f32],
16511    ldz: i32,
16512    work: &mut [f32],
16513    lwork: i32,
16514    info: &mut i32,
16515) {
16516    ffi::shgeqz_(
16517        &(job as c_char),
16518        &(compq as c_char),
16519        &(compz as c_char),
16520        &n,
16521        &ilo,
16522        &ihi,
16523        h.as_mut_ptr(),
16524        &ldh,
16525        t.as_mut_ptr(),
16526        &ldt,
16527        alphar.as_mut_ptr(),
16528        alphai.as_mut_ptr(),
16529        beta.as_mut_ptr(),
16530        q.as_mut_ptr(),
16531        &ldq,
16532        z.as_mut_ptr(),
16533        &ldz,
16534        work.as_mut_ptr(),
16535        &lwork,
16536        info,
16537    )
16538}
16539
16540#[inline]
16541pub unsafe fn zhgeqz(
16542    job: u8,
16543    compq: u8,
16544    compz: u8,
16545    n: i32,
16546    ilo: i32,
16547    ihi: i32,
16548    h: &mut [c64],
16549    ldh: i32,
16550    t: &mut [c64],
16551    ldt: i32,
16552    alpha: &mut [c64],
16553    beta: &mut [c64],
16554    q: &mut [c64],
16555    ldq: i32,
16556    z: &mut [c64],
16557    ldz: i32,
16558    work: &mut [c64],
16559    lwork: i32,
16560    rwork: &mut [f64],
16561    info: &mut i32,
16562) {
16563    ffi::zhgeqz_(
16564        &(job as c_char),
16565        &(compq as c_char),
16566        &(compz as c_char),
16567        &n,
16568        &ilo,
16569        &ihi,
16570        h.as_mut_ptr() as *mut _,
16571        &ldh,
16572        t.as_mut_ptr() as *mut _,
16573        &ldt,
16574        alpha.as_mut_ptr() as *mut _,
16575        beta.as_mut_ptr() as *mut _,
16576        q.as_mut_ptr() as *mut _,
16577        &ldq,
16578        z.as_mut_ptr() as *mut _,
16579        &ldz,
16580        work.as_mut_ptr() as *mut _,
16581        &lwork,
16582        rwork.as_mut_ptr(),
16583        info,
16584    )
16585}
16586
16587#[inline]
16588pub unsafe fn chpcon(
16589    uplo: u8,
16590    n: i32,
16591    ap: &[c32],
16592    ipiv: &[i32],
16593    anorm: f32,
16594    rcond: &mut f32,
16595    work: &mut [c32],
16596    info: &mut i32,
16597) {
16598    ffi::chpcon_(
16599        &(uplo as c_char),
16600        &n,
16601        ap.as_ptr() as *const _,
16602        ipiv.as_ptr(),
16603        &anorm,
16604        rcond,
16605        work.as_mut_ptr() as *mut _,
16606        info,
16607    )
16608}
16609
16610#[inline]
16611pub unsafe fn zhpcon(
16612    uplo: u8,
16613    n: i32,
16614    ap: &[c64],
16615    ipiv: &[i32],
16616    anorm: f64,
16617    rcond: &mut f64,
16618    work: &mut [c64],
16619    info: &mut i32,
16620) {
16621    ffi::zhpcon_(
16622        &(uplo as c_char),
16623        &n,
16624        ap.as_ptr() as *const _,
16625        ipiv.as_ptr(),
16626        &anorm,
16627        rcond,
16628        work.as_mut_ptr() as *mut _,
16629        info,
16630    )
16631}
16632
16633#[inline]
16634pub unsafe fn chpev(
16635    jobz: u8,
16636    uplo: u8,
16637    n: i32,
16638    ap: &mut [c32],
16639    w: &mut [f32],
16640    z: &mut [c32],
16641    ldz: i32,
16642    work: &mut [c32],
16643    rwork: &mut [f32],
16644    info: &mut i32,
16645) {
16646    ffi::chpev_(
16647        &(jobz as c_char),
16648        &(uplo as c_char),
16649        &n,
16650        ap.as_mut_ptr() as *mut _,
16651        w.as_mut_ptr(),
16652        z.as_mut_ptr() as *mut _,
16653        &ldz,
16654        work.as_mut_ptr() as *mut _,
16655        rwork.as_mut_ptr(),
16656        info,
16657    )
16658}
16659
16660#[inline]
16661pub unsafe fn zhpev(
16662    jobz: u8,
16663    uplo: u8,
16664    n: i32,
16665    ap: &mut [c64],
16666    w: &mut [f64],
16667    z: &mut [c64],
16668    ldz: i32,
16669    work: &mut [c64],
16670    rwork: &mut [f64],
16671    info: &mut i32,
16672) {
16673    ffi::zhpev_(
16674        &(jobz as c_char),
16675        &(uplo as c_char),
16676        &n,
16677        ap.as_mut_ptr() as *mut _,
16678        w.as_mut_ptr(),
16679        z.as_mut_ptr() as *mut _,
16680        &ldz,
16681        work.as_mut_ptr() as *mut _,
16682        rwork.as_mut_ptr(),
16683        info,
16684    )
16685}
16686
16687#[inline]
16688pub unsafe fn chpevd(
16689    jobz: u8,
16690    uplo: u8,
16691    n: i32,
16692    ap: &mut [c32],
16693    w: &mut [f32],
16694    z: &mut [c32],
16695    ldz: i32,
16696    work: &mut [c32],
16697    lwork: i32,
16698    rwork: &mut [f32],
16699    lrwork: i32,
16700    iwork: &mut [i32],
16701    liwork: i32,
16702    info: &mut i32,
16703) {
16704    ffi::chpevd_(
16705        &(jobz as c_char),
16706        &(uplo as c_char),
16707        &n,
16708        ap.as_mut_ptr() as *mut _,
16709        w.as_mut_ptr(),
16710        z.as_mut_ptr() as *mut _,
16711        &ldz,
16712        work.as_mut_ptr() as *mut _,
16713        &lwork,
16714        rwork.as_mut_ptr(),
16715        &lrwork,
16716        iwork.as_mut_ptr(),
16717        &liwork,
16718        info,
16719    )
16720}
16721
16722#[inline]
16723pub unsafe fn zhpevd(
16724    jobz: u8,
16725    uplo: u8,
16726    n: i32,
16727    ap: &mut [c64],
16728    w: &mut [f64],
16729    z: &mut [c64],
16730    ldz: i32,
16731    work: &mut [c64],
16732    lwork: i32,
16733    rwork: &mut [f64],
16734    lrwork: i32,
16735    iwork: &mut [i32],
16736    liwork: i32,
16737    info: &mut i32,
16738) {
16739    ffi::zhpevd_(
16740        &(jobz as c_char),
16741        &(uplo as c_char),
16742        &n,
16743        ap.as_mut_ptr() as *mut _,
16744        w.as_mut_ptr(),
16745        z.as_mut_ptr() as *mut _,
16746        &ldz,
16747        work.as_mut_ptr() as *mut _,
16748        &lwork,
16749        rwork.as_mut_ptr(),
16750        &lrwork,
16751        iwork.as_mut_ptr(),
16752        &liwork,
16753        info,
16754    )
16755}
16756
16757#[inline]
16758pub unsafe fn chpevx(
16759    jobz: u8,
16760    range: u8,
16761    uplo: u8,
16762    n: i32,
16763    ap: &mut [c32],
16764    vl: f32,
16765    vu: f32,
16766    il: i32,
16767    iu: i32,
16768    abstol: f32,
16769    m: &mut i32,
16770    w: &mut [f32],
16771    z: &mut [c32],
16772    ldz: i32,
16773    work: &mut [c32],
16774    rwork: &mut [f32],
16775    iwork: &mut [i32],
16776    ifail: &mut [i32],
16777    info: &mut i32,
16778) {
16779    ffi::chpevx_(
16780        &(jobz as c_char),
16781        &(range as c_char),
16782        &(uplo as c_char),
16783        &n,
16784        ap.as_mut_ptr() as *mut _,
16785        &vl,
16786        &vu,
16787        &il,
16788        &iu,
16789        &abstol,
16790        m,
16791        w.as_mut_ptr(),
16792        z.as_mut_ptr() as *mut _,
16793        &ldz,
16794        work.as_mut_ptr() as *mut _,
16795        rwork.as_mut_ptr(),
16796        iwork.as_mut_ptr(),
16797        ifail.as_mut_ptr(),
16798        info,
16799    )
16800}
16801
16802#[inline]
16803pub unsafe fn zhpevx(
16804    jobz: u8,
16805    range: u8,
16806    uplo: u8,
16807    n: i32,
16808    ap: &mut [c64],
16809    vl: f64,
16810    vu: f64,
16811    il: i32,
16812    iu: i32,
16813    abstol: f64,
16814    m: &mut i32,
16815    w: &mut [f64],
16816    z: &mut [c64],
16817    ldz: i32,
16818    work: &mut [c64],
16819    rwork: &mut [f64],
16820    iwork: &mut [i32],
16821    ifail: &mut [i32],
16822    info: &mut i32,
16823) {
16824    ffi::zhpevx_(
16825        &(jobz as c_char),
16826        &(range as c_char),
16827        &(uplo as c_char),
16828        &n,
16829        ap.as_mut_ptr() as *mut _,
16830        &vl,
16831        &vu,
16832        &il,
16833        &iu,
16834        &abstol,
16835        m,
16836        w.as_mut_ptr(),
16837        z.as_mut_ptr() as *mut _,
16838        &ldz,
16839        work.as_mut_ptr() as *mut _,
16840        rwork.as_mut_ptr(),
16841        iwork.as_mut_ptr(),
16842        ifail.as_mut_ptr(),
16843        info,
16844    )
16845}
16846
16847#[inline]
16848pub unsafe fn chpgst(itype: &[i32], uplo: u8, n: i32, ap: &mut [c32], bp: &[c32], info: &mut i32) {
16849    ffi::chpgst_(
16850        itype.as_ptr(),
16851        &(uplo as c_char),
16852        &n,
16853        ap.as_mut_ptr() as *mut _,
16854        bp.as_ptr() as *const _,
16855        info,
16856    )
16857}
16858
16859#[inline]
16860pub unsafe fn zhpgst(itype: &[i32], uplo: u8, n: i32, ap: &mut [c64], bp: &[c64], info: &mut i32) {
16861    ffi::zhpgst_(
16862        itype.as_ptr(),
16863        &(uplo as c_char),
16864        &n,
16865        ap.as_mut_ptr() as *mut _,
16866        bp.as_ptr() as *const _,
16867        info,
16868    )
16869}
16870
16871#[inline]
16872pub unsafe fn chpgv(
16873    itype: &[i32],
16874    jobz: u8,
16875    uplo: u8,
16876    n: i32,
16877    ap: &mut [c32],
16878    bp: &mut [c32],
16879    w: &mut [f32],
16880    z: &mut [c32],
16881    ldz: i32,
16882    work: &mut [c32],
16883    rwork: &mut [f32],
16884    info: &mut i32,
16885) {
16886    ffi::chpgv_(
16887        itype.as_ptr(),
16888        &(jobz as c_char),
16889        &(uplo as c_char),
16890        &n,
16891        ap.as_mut_ptr() as *mut _,
16892        bp.as_mut_ptr() as *mut _,
16893        w.as_mut_ptr(),
16894        z.as_mut_ptr() as *mut _,
16895        &ldz,
16896        work.as_mut_ptr() as *mut _,
16897        rwork.as_mut_ptr(),
16898        info,
16899    )
16900}
16901
16902#[inline]
16903pub unsafe fn zhpgv(
16904    itype: &[i32],
16905    jobz: u8,
16906    uplo: u8,
16907    n: i32,
16908    ap: &mut [c64],
16909    bp: &mut [c64],
16910    w: &mut [f64],
16911    z: &mut [c64],
16912    ldz: i32,
16913    work: &mut [c64],
16914    rwork: &mut [f64],
16915    info: &mut i32,
16916) {
16917    ffi::zhpgv_(
16918        itype.as_ptr(),
16919        &(jobz as c_char),
16920        &(uplo as c_char),
16921        &n,
16922        ap.as_mut_ptr() as *mut _,
16923        bp.as_mut_ptr() as *mut _,
16924        w.as_mut_ptr(),
16925        z.as_mut_ptr() as *mut _,
16926        &ldz,
16927        work.as_mut_ptr() as *mut _,
16928        rwork.as_mut_ptr(),
16929        info,
16930    )
16931}
16932
16933#[inline]
16934pub unsafe fn chpgvd(
16935    itype: &[i32],
16936    jobz: u8,
16937    uplo: u8,
16938    n: i32,
16939    ap: &mut [c32],
16940    bp: &mut [c32],
16941    w: &mut [f32],
16942    z: &mut [c32],
16943    ldz: i32,
16944    work: &mut [c32],
16945    lwork: i32,
16946    rwork: &mut [f32],
16947    lrwork: i32,
16948    iwork: &mut [i32],
16949    liwork: i32,
16950    info: &mut i32,
16951) {
16952    ffi::chpgvd_(
16953        itype.as_ptr(),
16954        &(jobz as c_char),
16955        &(uplo as c_char),
16956        &n,
16957        ap.as_mut_ptr() as *mut _,
16958        bp.as_mut_ptr() as *mut _,
16959        w.as_mut_ptr(),
16960        z.as_mut_ptr() as *mut _,
16961        &ldz,
16962        work.as_mut_ptr() as *mut _,
16963        &lwork,
16964        rwork.as_mut_ptr(),
16965        &lrwork,
16966        iwork.as_mut_ptr(),
16967        &liwork,
16968        info,
16969    )
16970}
16971
16972#[inline]
16973pub unsafe fn zhpgvd(
16974    itype: &[i32],
16975    jobz: u8,
16976    uplo: u8,
16977    n: i32,
16978    ap: &mut [c64],
16979    bp: &mut [c64],
16980    w: &mut [f64],
16981    z: &mut [c64],
16982    ldz: i32,
16983    work: &mut [c64],
16984    lwork: i32,
16985    rwork: &mut [f64],
16986    lrwork: i32,
16987    iwork: &mut [i32],
16988    liwork: i32,
16989    info: &mut i32,
16990) {
16991    ffi::zhpgvd_(
16992        itype.as_ptr(),
16993        &(jobz as c_char),
16994        &(uplo as c_char),
16995        &n,
16996        ap.as_mut_ptr() as *mut _,
16997        bp.as_mut_ptr() as *mut _,
16998        w.as_mut_ptr(),
16999        z.as_mut_ptr() as *mut _,
17000        &ldz,
17001        work.as_mut_ptr() as *mut _,
17002        &lwork,
17003        rwork.as_mut_ptr(),
17004        &lrwork,
17005        iwork.as_mut_ptr(),
17006        &liwork,
17007        info,
17008    )
17009}
17010
17011#[inline]
17012pub unsafe fn chpgvx(
17013    itype: &[i32],
17014    jobz: u8,
17015    range: u8,
17016    uplo: u8,
17017    n: i32,
17018    ap: &mut [c32],
17019    bp: &mut [c32],
17020    vl: f32,
17021    vu: f32,
17022    il: i32,
17023    iu: i32,
17024    abstol: f32,
17025    m: &mut i32,
17026    w: &mut [f32],
17027    z: &mut [c32],
17028    ldz: i32,
17029    work: &mut [c32],
17030    rwork: &mut [f32],
17031    iwork: &mut [i32],
17032    ifail: &mut [i32],
17033    info: &mut i32,
17034) {
17035    ffi::chpgvx_(
17036        itype.as_ptr(),
17037        &(jobz as c_char),
17038        &(range as c_char),
17039        &(uplo as c_char),
17040        &n,
17041        ap.as_mut_ptr() as *mut _,
17042        bp.as_mut_ptr() as *mut _,
17043        &vl,
17044        &vu,
17045        &il,
17046        &iu,
17047        &abstol,
17048        m,
17049        w.as_mut_ptr(),
17050        z.as_mut_ptr() as *mut _,
17051        &ldz,
17052        work.as_mut_ptr() as *mut _,
17053        rwork.as_mut_ptr(),
17054        iwork.as_mut_ptr(),
17055        ifail.as_mut_ptr(),
17056        info,
17057    )
17058}
17059
17060#[inline]
17061pub unsafe fn zhpgvx(
17062    itype: &[i32],
17063    jobz: u8,
17064    range: u8,
17065    uplo: u8,
17066    n: i32,
17067    ap: &mut [c64],
17068    bp: &mut [c64],
17069    vl: f64,
17070    vu: f64,
17071    il: i32,
17072    iu: i32,
17073    abstol: f64,
17074    m: &mut i32,
17075    w: &mut [f64],
17076    z: &mut [c64],
17077    ldz: i32,
17078    work: &mut [c64],
17079    rwork: &mut [f64],
17080    iwork: &mut [i32],
17081    ifail: &mut [i32],
17082    info: &mut i32,
17083) {
17084    ffi::zhpgvx_(
17085        itype.as_ptr(),
17086        &(jobz as c_char),
17087        &(range as c_char),
17088        &(uplo as c_char),
17089        &n,
17090        ap.as_mut_ptr() as *mut _,
17091        bp.as_mut_ptr() as *mut _,
17092        &vl,
17093        &vu,
17094        &il,
17095        &iu,
17096        &abstol,
17097        m,
17098        w.as_mut_ptr(),
17099        z.as_mut_ptr() as *mut _,
17100        &ldz,
17101        work.as_mut_ptr() as *mut _,
17102        rwork.as_mut_ptr(),
17103        iwork.as_mut_ptr(),
17104        ifail.as_mut_ptr(),
17105        info,
17106    )
17107}
17108
17109#[inline]
17110pub unsafe fn chprfs(
17111    uplo: u8,
17112    n: i32,
17113    nrhs: i32,
17114    ap: &[c32],
17115    afp: &[c32],
17116    ipiv: &[i32],
17117    b: &[c32],
17118    ldb: i32,
17119    x: &mut [c32],
17120    ldx: i32,
17121    ferr: &mut [f32],
17122    berr: &mut [f32],
17123    work: &mut [c32],
17124    rwork: &mut [f32],
17125    info: &mut i32,
17126) {
17127    ffi::chprfs_(
17128        &(uplo as c_char),
17129        &n,
17130        &nrhs,
17131        ap.as_ptr() as *const _,
17132        afp.as_ptr() as *const _,
17133        ipiv.as_ptr(),
17134        b.as_ptr() as *const _,
17135        &ldb,
17136        x.as_mut_ptr() as *mut _,
17137        &ldx,
17138        ferr.as_mut_ptr(),
17139        berr.as_mut_ptr(),
17140        work.as_mut_ptr() as *mut _,
17141        rwork.as_mut_ptr(),
17142        info,
17143    )
17144}
17145
17146#[inline]
17147pub unsafe fn zhprfs(
17148    uplo: u8,
17149    n: i32,
17150    nrhs: i32,
17151    ap: &[c64],
17152    afp: &[c64],
17153    ipiv: &[i32],
17154    b: &[c64],
17155    ldb: i32,
17156    x: &mut [c64],
17157    ldx: i32,
17158    ferr: &mut [f64],
17159    berr: &mut [f64],
17160    work: &mut [c64],
17161    rwork: &mut [f64],
17162    info: &mut i32,
17163) {
17164    ffi::zhprfs_(
17165        &(uplo as c_char),
17166        &n,
17167        &nrhs,
17168        ap.as_ptr() as *const _,
17169        afp.as_ptr() as *const _,
17170        ipiv.as_ptr(),
17171        b.as_ptr() as *const _,
17172        &ldb,
17173        x.as_mut_ptr() as *mut _,
17174        &ldx,
17175        ferr.as_mut_ptr(),
17176        berr.as_mut_ptr(),
17177        work.as_mut_ptr() as *mut _,
17178        rwork.as_mut_ptr(),
17179        info,
17180    )
17181}
17182
17183#[inline]
17184pub unsafe fn chpsv(
17185    uplo: u8,
17186    n: i32,
17187    nrhs: i32,
17188    ap: &mut [c32],
17189    ipiv: &mut [i32],
17190    b: &mut [c32],
17191    ldb: i32,
17192    info: &mut i32,
17193) {
17194    ffi::chpsv_(
17195        &(uplo as c_char),
17196        &n,
17197        &nrhs,
17198        ap.as_mut_ptr() as *mut _,
17199        ipiv.as_mut_ptr(),
17200        b.as_mut_ptr() as *mut _,
17201        &ldb,
17202        info,
17203    )
17204}
17205
17206#[inline]
17207pub unsafe fn zhpsv(
17208    uplo: u8,
17209    n: i32,
17210    nrhs: i32,
17211    ap: &mut [c64],
17212    ipiv: &mut [i32],
17213    b: &mut [c64],
17214    ldb: i32,
17215    info: &mut i32,
17216) {
17217    ffi::zhpsv_(
17218        &(uplo as c_char),
17219        &n,
17220        &nrhs,
17221        ap.as_mut_ptr() as *mut _,
17222        ipiv.as_mut_ptr(),
17223        b.as_mut_ptr() as *mut _,
17224        &ldb,
17225        info,
17226    )
17227}
17228
17229#[inline]
17230pub unsafe fn chpsvx(
17231    fact: u8,
17232    uplo: u8,
17233    n: i32,
17234    nrhs: i32,
17235    ap: &[c32],
17236    afp: &mut [c32],
17237    ipiv: &mut [i32],
17238    b: &[c32],
17239    ldb: i32,
17240    x: &mut [c32],
17241    ldx: i32,
17242    rcond: &mut f32,
17243    ferr: &mut [f32],
17244    berr: &mut [f32],
17245    work: &mut [c32],
17246    rwork: &mut [f32],
17247    info: &mut i32,
17248) {
17249    ffi::chpsvx_(
17250        &(fact as c_char),
17251        &(uplo as c_char),
17252        &n,
17253        &nrhs,
17254        ap.as_ptr() as *const _,
17255        afp.as_mut_ptr() as *mut _,
17256        ipiv.as_mut_ptr(),
17257        b.as_ptr() as *const _,
17258        &ldb,
17259        x.as_mut_ptr() as *mut _,
17260        &ldx,
17261        rcond,
17262        ferr.as_mut_ptr(),
17263        berr.as_mut_ptr(),
17264        work.as_mut_ptr() as *mut _,
17265        rwork.as_mut_ptr(),
17266        info,
17267    )
17268}
17269
17270#[inline]
17271pub unsafe fn zhpsvx(
17272    fact: u8,
17273    uplo: u8,
17274    n: i32,
17275    nrhs: i32,
17276    ap: &[c64],
17277    afp: &mut [c64],
17278    ipiv: &mut [i32],
17279    b: &[c64],
17280    ldb: i32,
17281    x: &mut [c64],
17282    ldx: i32,
17283    rcond: &mut f64,
17284    ferr: &mut [f64],
17285    berr: &mut [f64],
17286    work: &mut [c64],
17287    rwork: &mut [f64],
17288    info: &mut i32,
17289) {
17290    ffi::zhpsvx_(
17291        &(fact as c_char),
17292        &(uplo as c_char),
17293        &n,
17294        &nrhs,
17295        ap.as_ptr() as *const _,
17296        afp.as_mut_ptr() as *mut _,
17297        ipiv.as_mut_ptr(),
17298        b.as_ptr() as *const _,
17299        &ldb,
17300        x.as_mut_ptr() as *mut _,
17301        &ldx,
17302        rcond,
17303        ferr.as_mut_ptr(),
17304        berr.as_mut_ptr(),
17305        work.as_mut_ptr() as *mut _,
17306        rwork.as_mut_ptr(),
17307        info,
17308    )
17309}
17310
17311#[inline]
17312pub unsafe fn chptrd(
17313    uplo: u8,
17314    n: i32,
17315    ap: &mut [c32],
17316    d: &mut [f32],
17317    e: &mut [f32],
17318    tau: &mut [c32],
17319    info: &mut i32,
17320) {
17321    ffi::chptrd_(
17322        &(uplo as c_char),
17323        &n,
17324        ap.as_mut_ptr() as *mut _,
17325        d.as_mut_ptr(),
17326        e.as_mut_ptr(),
17327        tau.as_mut_ptr() as *mut _,
17328        info,
17329    )
17330}
17331
17332#[inline]
17333pub unsafe fn zhptrd(
17334    uplo: u8,
17335    n: i32,
17336    ap: &mut [c64],
17337    d: &mut [f64],
17338    e: &mut [f64],
17339    tau: &mut [c64],
17340    info: &mut i32,
17341) {
17342    ffi::zhptrd_(
17343        &(uplo as c_char),
17344        &n,
17345        ap.as_mut_ptr() as *mut _,
17346        d.as_mut_ptr(),
17347        e.as_mut_ptr(),
17348        tau.as_mut_ptr() as *mut _,
17349        info,
17350    )
17351}
17352
17353#[inline]
17354pub unsafe fn chptrf(uplo: u8, n: i32, ap: &mut [c32], ipiv: &mut [i32], info: &mut i32) {
17355    ffi::chptrf_(
17356        &(uplo as c_char),
17357        &n,
17358        ap.as_mut_ptr() as *mut _,
17359        ipiv.as_mut_ptr(),
17360        info,
17361    )
17362}
17363
17364#[inline]
17365pub unsafe fn zhptrf(uplo: u8, n: i32, ap: &mut [c64], ipiv: &mut [i32], info: &mut i32) {
17366    ffi::zhptrf_(
17367        &(uplo as c_char),
17368        &n,
17369        ap.as_mut_ptr() as *mut _,
17370        ipiv.as_mut_ptr(),
17371        info,
17372    )
17373}
17374
17375#[inline]
17376pub unsafe fn chptri(
17377    uplo: u8,
17378    n: i32,
17379    ap: &mut [c32],
17380    ipiv: &[i32],
17381    work: &mut [c32],
17382    info: &mut i32,
17383) {
17384    ffi::chptri_(
17385        &(uplo as c_char),
17386        &n,
17387        ap.as_mut_ptr() as *mut _,
17388        ipiv.as_ptr(),
17389        work.as_mut_ptr() as *mut _,
17390        info,
17391    )
17392}
17393
17394#[inline]
17395pub unsafe fn zhptri(
17396    uplo: u8,
17397    n: i32,
17398    ap: &mut [c64],
17399    ipiv: &[i32],
17400    work: &mut [c64],
17401    info: &mut i32,
17402) {
17403    ffi::zhptri_(
17404        &(uplo as c_char),
17405        &n,
17406        ap.as_mut_ptr() as *mut _,
17407        ipiv.as_ptr(),
17408        work.as_mut_ptr() as *mut _,
17409        info,
17410    )
17411}
17412
17413#[inline]
17414pub unsafe fn chptrs(
17415    uplo: u8,
17416    n: i32,
17417    nrhs: i32,
17418    ap: &[c32],
17419    ipiv: &[i32],
17420    b: &mut [c32],
17421    ldb: i32,
17422    info: &mut i32,
17423) {
17424    ffi::chptrs_(
17425        &(uplo as c_char),
17426        &n,
17427        &nrhs,
17428        ap.as_ptr() as *const _,
17429        ipiv.as_ptr(),
17430        b.as_mut_ptr() as *mut _,
17431        &ldb,
17432        info,
17433    )
17434}
17435
17436#[inline]
17437pub unsafe fn zhptrs(
17438    uplo: u8,
17439    n: i32,
17440    nrhs: i32,
17441    ap: &[c64],
17442    ipiv: &[i32],
17443    b: &mut [c64],
17444    ldb: i32,
17445    info: &mut i32,
17446) {
17447    ffi::zhptrs_(
17448        &(uplo as c_char),
17449        &n,
17450        &nrhs,
17451        ap.as_ptr() as *const _,
17452        ipiv.as_ptr(),
17453        b.as_mut_ptr() as *mut _,
17454        &ldb,
17455        info,
17456    )
17457}
17458
17459#[inline]
17460pub unsafe fn chsein(
17461    side: u8,
17462    eigsrc: u8,
17463    initv: u8,
17464    select: &[i32],
17465    n: i32,
17466    h: &[c32],
17467    ldh: i32,
17468    w: &mut [c32],
17469    vl: &mut [c32],
17470    ldvl: i32,
17471    vr: &mut [c32],
17472    ldvr: i32,
17473    mm: i32,
17474    m: &mut i32,
17475    work: &mut [c32],
17476    rwork: &mut [f32],
17477    ifaill: &mut [i32],
17478    ifailr: &mut [i32],
17479    info: &mut i32,
17480) {
17481    ffi::chsein_(
17482        &(side as c_char),
17483        &(eigsrc as c_char),
17484        &(initv as c_char),
17485        select.as_ptr(),
17486        &n,
17487        h.as_ptr() as *const _,
17488        &ldh,
17489        w.as_mut_ptr() as *mut _,
17490        vl.as_mut_ptr() as *mut _,
17491        &ldvl,
17492        vr.as_mut_ptr() as *mut _,
17493        &ldvr,
17494        &mm,
17495        m,
17496        work.as_mut_ptr() as *mut _,
17497        rwork.as_mut_ptr(),
17498        ifaill.as_mut_ptr(),
17499        ifailr.as_mut_ptr(),
17500        info,
17501    )
17502}
17503
17504#[inline]
17505pub unsafe fn dhsein(
17506    side: u8,
17507    eigsrc: u8,
17508    initv: u8,
17509    select: &mut [i32],
17510    n: i32,
17511    h: &[f64],
17512    ldh: i32,
17513    wr: &mut [f64],
17514    wi: &[f64],
17515    vl: &mut [f64],
17516    ldvl: i32,
17517    vr: &mut [f64],
17518    ldvr: i32,
17519    mm: i32,
17520    m: &mut i32,
17521    work: &mut [f64],
17522    ifaill: &mut [i32],
17523    ifailr: &mut [i32],
17524    info: &mut i32,
17525) {
17526    ffi::dhsein_(
17527        &(side as c_char),
17528        &(eigsrc as c_char),
17529        &(initv as c_char),
17530        select.as_mut_ptr(),
17531        &n,
17532        h.as_ptr(),
17533        &ldh,
17534        wr.as_mut_ptr(),
17535        wi.as_ptr(),
17536        vl.as_mut_ptr(),
17537        &ldvl,
17538        vr.as_mut_ptr(),
17539        &ldvr,
17540        &mm,
17541        m,
17542        work.as_mut_ptr(),
17543        ifaill.as_mut_ptr(),
17544        ifailr.as_mut_ptr(),
17545        info,
17546    )
17547}
17548
17549#[inline]
17550pub unsafe fn shsein(
17551    side: u8,
17552    eigsrc: u8,
17553    initv: u8,
17554    select: &mut [i32],
17555    n: i32,
17556    h: &[f32],
17557    ldh: i32,
17558    wr: &mut [f32],
17559    wi: &[f32],
17560    vl: &mut [f32],
17561    ldvl: i32,
17562    vr: &mut [f32],
17563    ldvr: i32,
17564    mm: i32,
17565    m: &mut i32,
17566    work: &mut [f32],
17567    ifaill: &mut [i32],
17568    ifailr: &mut [i32],
17569    info: &mut i32,
17570) {
17571    ffi::shsein_(
17572        &(side as c_char),
17573        &(eigsrc as c_char),
17574        &(initv as c_char),
17575        select.as_mut_ptr(),
17576        &n,
17577        h.as_ptr(),
17578        &ldh,
17579        wr.as_mut_ptr(),
17580        wi.as_ptr(),
17581        vl.as_mut_ptr(),
17582        &ldvl,
17583        vr.as_mut_ptr(),
17584        &ldvr,
17585        &mm,
17586        m,
17587        work.as_mut_ptr(),
17588        ifaill.as_mut_ptr(),
17589        ifailr.as_mut_ptr(),
17590        info,
17591    )
17592}
17593
17594#[inline]
17595pub unsafe fn zhsein(
17596    side: u8,
17597    eigsrc: u8,
17598    initv: u8,
17599    select: &[i32],
17600    n: i32,
17601    h: &[c64],
17602    ldh: i32,
17603    w: &mut [c64],
17604    vl: &mut [c64],
17605    ldvl: i32,
17606    vr: &mut [c64],
17607    ldvr: i32,
17608    mm: i32,
17609    m: &mut i32,
17610    work: &mut [c64],
17611    rwork: &mut [f64],
17612    ifaill: &mut [i32],
17613    ifailr: &mut [i32],
17614    info: &mut i32,
17615) {
17616    ffi::zhsein_(
17617        &(side as c_char),
17618        &(eigsrc as c_char),
17619        &(initv as c_char),
17620        select.as_ptr(),
17621        &n,
17622        h.as_ptr() as *const _,
17623        &ldh,
17624        w.as_mut_ptr() as *mut _,
17625        vl.as_mut_ptr() as *mut _,
17626        &ldvl,
17627        vr.as_mut_ptr() as *mut _,
17628        &ldvr,
17629        &mm,
17630        m,
17631        work.as_mut_ptr() as *mut _,
17632        rwork.as_mut_ptr(),
17633        ifaill.as_mut_ptr(),
17634        ifailr.as_mut_ptr(),
17635        info,
17636    )
17637}
17638
17639#[inline]
17640pub unsafe fn chseqr(
17641    job: u8,
17642    compz: u8,
17643    n: i32,
17644    ilo: i32,
17645    ihi: i32,
17646    h: &mut [c32],
17647    ldh: i32,
17648    w: &mut [c32],
17649    z: &mut [c32],
17650    ldz: i32,
17651    work: &mut [c32],
17652    lwork: i32,
17653    info: &mut i32,
17654) {
17655    ffi::chseqr_(
17656        &(job as c_char),
17657        &(compz as c_char),
17658        &n,
17659        &ilo,
17660        &ihi,
17661        h.as_mut_ptr() as *mut _,
17662        &ldh,
17663        w.as_mut_ptr() as *mut _,
17664        z.as_mut_ptr() as *mut _,
17665        &ldz,
17666        work.as_mut_ptr() as *mut _,
17667        &lwork,
17668        info,
17669    )
17670}
17671
17672#[inline]
17673pub unsafe fn dhseqr(
17674    job: u8,
17675    compz: u8,
17676    n: i32,
17677    ilo: i32,
17678    ihi: i32,
17679    h: &mut [f64],
17680    ldh: i32,
17681    wr: &mut [f64],
17682    wi: &mut [f64],
17683    z: &mut [f64],
17684    ldz: i32,
17685    work: &mut [f64],
17686    lwork: i32,
17687    info: &mut i32,
17688) {
17689    ffi::dhseqr_(
17690        &(job as c_char),
17691        &(compz as c_char),
17692        &n,
17693        &ilo,
17694        &ihi,
17695        h.as_mut_ptr(),
17696        &ldh,
17697        wr.as_mut_ptr(),
17698        wi.as_mut_ptr(),
17699        z.as_mut_ptr(),
17700        &ldz,
17701        work.as_mut_ptr(),
17702        &lwork,
17703        info,
17704    )
17705}
17706
17707#[inline]
17708pub unsafe fn shseqr(
17709    job: u8,
17710    compz: u8,
17711    n: i32,
17712    ilo: i32,
17713    ihi: i32,
17714    h: &mut [f32],
17715    ldh: i32,
17716    wr: &mut [f32],
17717    wi: &mut [f32],
17718    z: &mut [f32],
17719    ldz: i32,
17720    work: &mut [f32],
17721    lwork: i32,
17722    info: &mut i32,
17723) {
17724    ffi::shseqr_(
17725        &(job as c_char),
17726        &(compz as c_char),
17727        &n,
17728        &ilo,
17729        &ihi,
17730        h.as_mut_ptr(),
17731        &ldh,
17732        wr.as_mut_ptr(),
17733        wi.as_mut_ptr(),
17734        z.as_mut_ptr(),
17735        &ldz,
17736        work.as_mut_ptr(),
17737        &lwork,
17738        info,
17739    )
17740}
17741
17742#[inline]
17743pub unsafe fn zhseqr(
17744    job: u8,
17745    compz: u8,
17746    n: i32,
17747    ilo: i32,
17748    ihi: i32,
17749    h: &mut [c64],
17750    ldh: i32,
17751    w: &mut [c64],
17752    z: &mut [c64],
17753    ldz: i32,
17754    work: &mut [c64],
17755    lwork: i32,
17756    info: &mut i32,
17757) {
17758    ffi::zhseqr_(
17759        &(job as c_char),
17760        &(compz as c_char),
17761        &n,
17762        &ilo,
17763        &ihi,
17764        h.as_mut_ptr() as *mut _,
17765        &ldh,
17766        w.as_mut_ptr() as *mut _,
17767        z.as_mut_ptr() as *mut _,
17768        &ldz,
17769        work.as_mut_ptr() as *mut _,
17770        &lwork,
17771        info,
17772    )
17773}
17774
17775#[inline]
17776pub unsafe fn clacgv(n: i32, x: &mut [c32], incx: i32) {
17777    ffi::clacgv_(&n, x.as_mut_ptr() as *mut _, &incx)
17778}
17779
17780#[inline]
17781pub unsafe fn zlacgv(n: i32, x: &mut [c64], incx: i32) {
17782    ffi::zlacgv_(&n, x.as_mut_ptr() as *mut _, &incx)
17783}
17784
17785#[inline]
17786pub unsafe fn clacn2(
17787    n: i32,
17788    v: &mut [c32],
17789    x: &mut [c32],
17790    est: &mut [f32],
17791    kase: &mut i32,
17792    isave: &mut [i32],
17793) {
17794    ffi::clacn2_(
17795        &n,
17796        v.as_mut_ptr() as *mut _,
17797        x.as_mut_ptr() as *mut _,
17798        est.as_mut_ptr(),
17799        kase,
17800        isave.as_mut_ptr(),
17801    )
17802}
17803
17804#[inline]
17805pub unsafe fn dlacn2(
17806    n: i32,
17807    v: &mut [f64],
17808    x: &mut [f64],
17809    isgn: &mut [i32],
17810    est: &mut [f64],
17811    kase: &mut i32,
17812    isave: &mut [i32],
17813) {
17814    ffi::dlacn2_(
17815        &n,
17816        v.as_mut_ptr(),
17817        x.as_mut_ptr(),
17818        isgn.as_mut_ptr(),
17819        est.as_mut_ptr(),
17820        kase,
17821        isave.as_mut_ptr(),
17822    )
17823}
17824
17825#[inline]
17826pub unsafe fn slacn2(
17827    n: i32,
17828    v: &mut [f32],
17829    x: &mut [f32],
17830    isgn: &mut [i32],
17831    est: &mut [f32],
17832    kase: &mut i32,
17833    isave: &mut [i32],
17834) {
17835    ffi::slacn2_(
17836        &n,
17837        v.as_mut_ptr(),
17838        x.as_mut_ptr(),
17839        isgn.as_mut_ptr(),
17840        est.as_mut_ptr(),
17841        kase,
17842        isave.as_mut_ptr(),
17843    )
17844}
17845
17846#[inline]
17847pub unsafe fn zlacn2(
17848    n: i32,
17849    v: &mut [c64],
17850    x: &mut [c64],
17851    est: &mut [f64],
17852    kase: &mut i32,
17853    isave: &mut [i32],
17854) {
17855    ffi::zlacn2_(
17856        &n,
17857        v.as_mut_ptr() as *mut _,
17858        x.as_mut_ptr() as *mut _,
17859        est.as_mut_ptr(),
17860        kase,
17861        isave.as_mut_ptr(),
17862    )
17863}
17864
17865#[inline]
17866pub unsafe fn clacp2(uplo: u8, m: i32, n: i32, a: &[f32], lda: i32, b: &mut [c32], ldb: i32) {
17867    ffi::clacp2_(
17868        &(uplo as c_char),
17869        &m,
17870        &n,
17871        a.as_ptr(),
17872        &lda,
17873        b.as_mut_ptr() as *mut _,
17874        &ldb,
17875    )
17876}
17877
17878#[inline]
17879pub unsafe fn zlacp2(uplo: u8, m: i32, n: i32, a: &[f64], lda: i32, b: &mut [c64], ldb: i32) {
17880    ffi::zlacp2_(
17881        &(uplo as c_char),
17882        &m,
17883        &n,
17884        a.as_ptr(),
17885        &lda,
17886        b.as_mut_ptr() as *mut _,
17887        &ldb,
17888    )
17889}
17890
17891#[inline]
17892pub unsafe fn clacpy(uplo: u8, m: i32, n: i32, a: &[c32], lda: i32, b: &mut [c32], ldb: i32) {
17893    ffi::clacpy_(
17894        &(uplo as c_char),
17895        &m,
17896        &n,
17897        a.as_ptr() as *const _,
17898        &lda,
17899        b.as_mut_ptr() as *mut _,
17900        &ldb,
17901    )
17902}
17903
17904#[inline]
17905pub unsafe fn dlacpy(uplo: u8, m: i32, n: i32, a: &[f64], lda: i32, b: &mut [f64], ldb: i32) {
17906    ffi::dlacpy_(
17907        &(uplo as c_char),
17908        &m,
17909        &n,
17910        a.as_ptr(),
17911        &lda,
17912        b.as_mut_ptr(),
17913        &ldb,
17914    )
17915}
17916
17917#[inline]
17918pub unsafe fn slacpy(uplo: u8, m: i32, n: i32, a: &[f32], lda: i32, b: &mut [f32], ldb: i32) {
17919    ffi::slacpy_(
17920        &(uplo as c_char),
17921        &m,
17922        &n,
17923        a.as_ptr(),
17924        &lda,
17925        b.as_mut_ptr(),
17926        &ldb,
17927    )
17928}
17929
17930#[inline]
17931pub unsafe fn zlacpy(uplo: u8, m: i32, n: i32, a: &[c64], lda: i32, b: &mut [c64], ldb: i32) {
17932    ffi::zlacpy_(
17933        &(uplo as c_char),
17934        &m,
17935        &n,
17936        a.as_ptr() as *const _,
17937        &lda,
17938        b.as_mut_ptr() as *mut _,
17939        &ldb,
17940    )
17941}
17942
17943#[inline]
17944pub unsafe fn clacrm(
17945    m: i32,
17946    n: i32,
17947    a: &[c32],
17948    lda: i32,
17949    b: &[f32],
17950    ldb: i32,
17951    c: &mut [c32],
17952    ldc: i32,
17953    rwork: &mut [f32],
17954) {
17955    ffi::clacrm_(
17956        &m,
17957        &n,
17958        a.as_ptr() as *const _,
17959        &lda,
17960        b.as_ptr(),
17961        &ldb,
17962        c.as_mut_ptr() as *mut _,
17963        &ldc,
17964        rwork.as_mut_ptr(),
17965    )
17966}
17967
17968#[inline]
17969pub unsafe fn zlacrm(
17970    m: i32,
17971    n: i32,
17972    a: &[c64],
17973    lda: i32,
17974    b: &[f64],
17975    ldb: i32,
17976    c: &mut [c64],
17977    ldc: i32,
17978    rwork: &mut [f64],
17979) {
17980    ffi::zlacrm_(
17981        &m,
17982        &n,
17983        a.as_ptr() as *const _,
17984        &lda,
17985        b.as_ptr(),
17986        &ldb,
17987        c.as_mut_ptr() as *mut _,
17988        &ldc,
17989        rwork.as_mut_ptr(),
17990    )
17991}
17992
17993#[inline]
17994pub unsafe fn zlag2c(
17995    m: i32,
17996    n: i32,
17997    a: &[c64],
17998    lda: i32,
17999    sa: &mut [c32],
18000    ldsa: i32,
18001    info: &mut i32,
18002) {
18003    ffi::zlag2c_(
18004        &m,
18005        &n,
18006        a.as_ptr() as *const _,
18007        &lda,
18008        sa.as_mut_ptr() as *mut _,
18009        &ldsa,
18010        info,
18011    )
18012}
18013
18014#[inline]
18015pub unsafe fn slag2d(
18016    m: i32,
18017    n: i32,
18018    sa: &[f32],
18019    ldsa: i32,
18020    a: &mut [f64],
18021    lda: i32,
18022    info: &mut i32,
18023) {
18024    ffi::slag2d_(&m, &n, sa.as_ptr(), &ldsa, a.as_mut_ptr(), &lda, info)
18025}
18026
18027#[inline]
18028pub unsafe fn dlag2s(
18029    m: i32,
18030    n: i32,
18031    a: &[f64],
18032    lda: i32,
18033    sa: &mut [f32],
18034    ldsa: i32,
18035    info: &mut i32,
18036) {
18037    ffi::dlag2s_(&m, &n, a.as_ptr(), &lda, sa.as_mut_ptr(), &ldsa, info)
18038}
18039
18040#[inline]
18041pub unsafe fn clag2z(
18042    m: i32,
18043    n: i32,
18044    sa: &[c32],
18045    ldsa: i32,
18046    a: &mut [c64],
18047    lda: i32,
18048    info: &mut i32,
18049) {
18050    ffi::clag2z_(
18051        &m,
18052        &n,
18053        sa.as_ptr() as *const _,
18054        &ldsa,
18055        a.as_mut_ptr() as *mut _,
18056        &lda,
18057        info,
18058    )
18059}
18060
18061#[inline]
18062pub unsafe fn clagge(
18063    m: i32,
18064    n: i32,
18065    kl: i32,
18066    ku: i32,
18067    d: &[f32],
18068    a: &mut [c32],
18069    lda: i32,
18070    iseed: &mut [i32],
18071    work: &mut [c32],
18072    info: &mut i32,
18073) {
18074    ffi::clagge_(
18075        &m,
18076        &n,
18077        &kl,
18078        &ku,
18079        d.as_ptr(),
18080        a.as_mut_ptr() as *mut _,
18081        &lda,
18082        iseed.as_mut_ptr(),
18083        work.as_mut_ptr() as *mut _,
18084        info,
18085    )
18086}
18087
18088#[inline]
18089pub unsafe fn dlagge(
18090    m: i32,
18091    n: i32,
18092    kl: i32,
18093    ku: i32,
18094    d: &[f64],
18095    a: &mut [f64],
18096    lda: i32,
18097    iseed: &mut [i32],
18098    work: &mut [f64],
18099    info: &mut i32,
18100) {
18101    ffi::dlagge_(
18102        &m,
18103        &n,
18104        &kl,
18105        &ku,
18106        d.as_ptr(),
18107        a.as_mut_ptr(),
18108        &lda,
18109        iseed.as_mut_ptr(),
18110        work.as_mut_ptr(),
18111        info,
18112    )
18113}
18114
18115#[inline]
18116pub unsafe fn slagge(
18117    m: i32,
18118    n: i32,
18119    kl: i32,
18120    ku: i32,
18121    d: &[f32],
18122    a: &mut [f32],
18123    lda: i32,
18124    iseed: &mut [i32],
18125    work: &mut [f32],
18126    info: &mut i32,
18127) {
18128    ffi::slagge_(
18129        &m,
18130        &n,
18131        &kl,
18132        &ku,
18133        d.as_ptr(),
18134        a.as_mut_ptr(),
18135        &lda,
18136        iseed.as_mut_ptr(),
18137        work.as_mut_ptr(),
18138        info,
18139    )
18140}
18141
18142#[inline]
18143pub unsafe fn zlagge(
18144    m: i32,
18145    n: i32,
18146    kl: i32,
18147    ku: i32,
18148    d: &[f64],
18149    a: &mut [c64],
18150    lda: i32,
18151    iseed: &mut [i32],
18152    work: &mut [c64],
18153    info: &mut i32,
18154) {
18155    ffi::zlagge_(
18156        &m,
18157        &n,
18158        &kl,
18159        &ku,
18160        d.as_ptr(),
18161        a.as_mut_ptr() as *mut _,
18162        &lda,
18163        iseed.as_mut_ptr(),
18164        work.as_mut_ptr() as *mut _,
18165        info,
18166    )
18167}
18168
18169#[inline]
18170pub unsafe fn claghe(
18171    n: i32,
18172    k: i32,
18173    d: &[f32],
18174    a: &mut [c32],
18175    lda: i32,
18176    iseed: &mut [i32],
18177    work: &mut [c32],
18178    info: &mut i32,
18179) {
18180    ffi::claghe_(
18181        &n,
18182        &k,
18183        d.as_ptr(),
18184        a.as_mut_ptr() as *mut _,
18185        &lda,
18186        iseed.as_mut_ptr(),
18187        work.as_mut_ptr() as *mut _,
18188        info,
18189    )
18190}
18191
18192#[inline]
18193pub unsafe fn zlaghe(
18194    n: i32,
18195    k: i32,
18196    d: &[f64],
18197    a: &mut [c64],
18198    lda: i32,
18199    iseed: &mut [i32],
18200    work: &mut [c64],
18201    info: &mut i32,
18202) {
18203    ffi::zlaghe_(
18204        &n,
18205        &k,
18206        d.as_ptr(),
18207        a.as_mut_ptr() as *mut _,
18208        &lda,
18209        iseed.as_mut_ptr(),
18210        work.as_mut_ptr() as *mut _,
18211        info,
18212    )
18213}
18214
18215#[inline]
18216pub unsafe fn clagsy(
18217    n: i32,
18218    k: i32,
18219    d: &[f32],
18220    a: &mut [c32],
18221    lda: i32,
18222    iseed: &mut [i32],
18223    work: &mut [c32],
18224    info: &mut i32,
18225) {
18226    ffi::clagsy_(
18227        &n,
18228        &k,
18229        d.as_ptr(),
18230        a.as_mut_ptr() as *mut _,
18231        &lda,
18232        iseed.as_mut_ptr(),
18233        work.as_mut_ptr() as *mut _,
18234        info,
18235    )
18236}
18237
18238#[inline]
18239pub unsafe fn dlagsy(
18240    n: i32,
18241    k: i32,
18242    d: &[f64],
18243    a: &mut [f64],
18244    lda: i32,
18245    iseed: &mut [i32],
18246    work: &mut [f64],
18247    info: &mut i32,
18248) {
18249    ffi::dlagsy_(
18250        &n,
18251        &k,
18252        d.as_ptr(),
18253        a.as_mut_ptr(),
18254        &lda,
18255        iseed.as_mut_ptr(),
18256        work.as_mut_ptr(),
18257        info,
18258    )
18259}
18260
18261#[inline]
18262pub unsafe fn slagsy(
18263    n: i32,
18264    k: i32,
18265    d: &[f32],
18266    a: &mut [f32],
18267    lda: i32,
18268    iseed: &mut [i32],
18269    work: &mut [f32],
18270    info: &mut i32,
18271) {
18272    ffi::slagsy_(
18273        &n,
18274        &k,
18275        d.as_ptr(),
18276        a.as_mut_ptr(),
18277        &lda,
18278        iseed.as_mut_ptr(),
18279        work.as_mut_ptr(),
18280        info,
18281    )
18282}
18283
18284#[inline]
18285pub unsafe fn zlagsy(
18286    n: i32,
18287    k: i32,
18288    d: &[f64],
18289    a: &mut [c64],
18290    lda: i32,
18291    iseed: &mut [i32],
18292    work: &mut [c64],
18293    info: &mut i32,
18294) {
18295    ffi::zlagsy_(
18296        &n,
18297        &k,
18298        d.as_ptr(),
18299        a.as_mut_ptr() as *mut _,
18300        &lda,
18301        iseed.as_mut_ptr(),
18302        work.as_mut_ptr() as *mut _,
18303        info,
18304    )
18305}
18306
18307#[inline]
18308pub unsafe fn dlamch(cmach: u8) -> f64 {
18309    ffi::dlamch_(&(cmach as c_char))
18310}
18311
18312#[inline]
18313pub unsafe fn slamch(cmach: u8) -> f32 {
18314    ffi::slamch_(&(cmach as c_char))
18315}
18316
18317#[inline]
18318pub unsafe fn clangb(
18319    norm: u8,
18320    n: i32,
18321    kl: i32,
18322    ku: i32,
18323    ab: &[c32],
18324    ldab: i32,
18325    work: &mut [f32],
18326) -> f32 {
18327    ffi::clangb_(
18328        &(norm as c_char),
18329        &n,
18330        &kl,
18331        &ku,
18332        ab.as_ptr() as *const _,
18333        &ldab,
18334        work.as_mut_ptr(),
18335    )
18336}
18337
18338#[inline]
18339pub unsafe fn dlangb(
18340    norm: u8,
18341    n: i32,
18342    kl: i32,
18343    ku: i32,
18344    ab: &[f64],
18345    ldab: i32,
18346    work: &mut [f64],
18347) -> f64 {
18348    ffi::dlangb_(
18349        &(norm as c_char),
18350        &n,
18351        &kl,
18352        &ku,
18353        ab.as_ptr(),
18354        &ldab,
18355        work.as_mut_ptr(),
18356    )
18357}
18358
18359#[inline]
18360pub unsafe fn slangb(
18361    norm: u8,
18362    n: i32,
18363    kl: i32,
18364    ku: i32,
18365    ab: &[f32],
18366    ldab: i32,
18367    work: &mut [f32],
18368) -> f32 {
18369    ffi::slangb_(
18370        &(norm as c_char),
18371        &n,
18372        &kl,
18373        &ku,
18374        ab.as_ptr(),
18375        &ldab,
18376        work.as_mut_ptr(),
18377    )
18378}
18379
18380#[inline]
18381pub unsafe fn zlangb(
18382    norm: u8,
18383    n: i32,
18384    kl: i32,
18385    ku: i32,
18386    ab: &[c64],
18387    ldab: i32,
18388    work: &mut [f64],
18389) -> f64 {
18390    ffi::zlangb_(
18391        &(norm as c_char),
18392        &n,
18393        &kl,
18394        &ku,
18395        ab.as_ptr() as *const _,
18396        &ldab,
18397        work.as_mut_ptr(),
18398    )
18399}
18400
18401#[inline]
18402pub unsafe fn clange(norm: u8, m: i32, n: i32, a: &[c32], lda: i32, work: &mut [f32]) -> f32 {
18403    ffi::clange_(
18404        &(norm as c_char),
18405        &m,
18406        &n,
18407        a.as_ptr() as *const _,
18408        &lda,
18409        work.as_mut_ptr(),
18410    )
18411}
18412
18413#[inline]
18414pub unsafe fn dlange(norm: u8, m: i32, n: i32, a: &[f64], lda: i32, work: &mut [f64]) -> f64 {
18415    ffi::dlange_(
18416        &(norm as c_char),
18417        &m,
18418        &n,
18419        a.as_ptr(),
18420        &lda,
18421        work.as_mut_ptr(),
18422    )
18423}
18424
18425#[inline]
18426pub unsafe fn slange(norm: u8, m: i32, n: i32, a: &[f32], lda: i32, work: &mut [f32]) -> f32 {
18427    ffi::slange_(
18428        &(norm as c_char),
18429        &m,
18430        &n,
18431        a.as_ptr(),
18432        &lda,
18433        work.as_mut_ptr(),
18434    )
18435}
18436
18437#[inline]
18438pub unsafe fn zlange(norm: u8, m: i32, n: i32, a: &[c64], lda: i32, work: &mut [f64]) -> f64 {
18439    ffi::zlange_(
18440        &(norm as c_char),
18441        &m,
18442        &n,
18443        a.as_ptr() as *const _,
18444        &lda,
18445        work.as_mut_ptr(),
18446    )
18447}
18448
18449#[inline]
18450pub unsafe fn clangt(norm: u8, n: i32, dl: &[c32], d: &[c32], du: &[c32]) -> f32 {
18451    ffi::clangt_(
18452        &(norm as c_char),
18453        &n,
18454        dl.as_ptr() as *const _,
18455        d.as_ptr() as *const _,
18456        du.as_ptr() as *const _,
18457    )
18458}
18459
18460#[inline]
18461pub unsafe fn dlangt(norm: u8, n: i32, dl: &[f64], d: &[f64], du: &[f64]) -> f64 {
18462    ffi::dlangt_(&(norm as c_char), &n, dl.as_ptr(), d.as_ptr(), du.as_ptr())
18463}
18464
18465#[inline]
18466pub unsafe fn slangt(norm: u8, n: i32, dl: &[f32], d: &[f32], du: &[f32]) -> f32 {
18467    ffi::slangt_(&(norm as c_char), &n, dl.as_ptr(), d.as_ptr(), du.as_ptr())
18468}
18469
18470#[inline]
18471pub unsafe fn zlangt(norm: u8, n: i32, dl: &[c64], d: &[c64], du: &[c64]) -> f64 {
18472    ffi::zlangt_(
18473        &(norm as c_char),
18474        &n,
18475        dl.as_ptr() as *const _,
18476        d.as_ptr() as *const _,
18477        du.as_ptr() as *const _,
18478    )
18479}
18480
18481#[inline]
18482pub unsafe fn clanhb(
18483    norm: u8,
18484    uplo: u8,
18485    n: i32,
18486    k: i32,
18487    ab: &[c32],
18488    ldab: i32,
18489    work: &mut [f32],
18490) -> f32 {
18491    ffi::clanhb_(
18492        &(norm as c_char),
18493        &(uplo as c_char),
18494        &n,
18495        &k,
18496        ab.as_ptr() as *const _,
18497        &ldab,
18498        work.as_mut_ptr(),
18499    )
18500}
18501
18502#[inline]
18503pub unsafe fn zlanhb(
18504    norm: u8,
18505    uplo: u8,
18506    n: i32,
18507    k: i32,
18508    ab: &[c64],
18509    ldab: i32,
18510    work: &mut [f64],
18511) -> f64 {
18512    ffi::zlanhb_(
18513        &(norm as c_char),
18514        &(uplo as c_char),
18515        &n,
18516        &k,
18517        ab.as_ptr() as *const _,
18518        &ldab,
18519        work.as_mut_ptr(),
18520    )
18521}
18522
18523#[inline]
18524pub unsafe fn clanhe(norm: u8, uplo: u8, n: i32, a: &[c32], lda: i32, work: &mut [f32]) -> f32 {
18525    ffi::clanhe_(
18526        &(norm as c_char),
18527        &(uplo as c_char),
18528        &n,
18529        a.as_ptr() as *const _,
18530        &lda,
18531        work.as_mut_ptr(),
18532    )
18533}
18534
18535#[inline]
18536pub unsafe fn zlanhe(norm: u8, uplo: u8, n: i32, a: &[c64], lda: i32, work: &mut [f64]) -> f64 {
18537    ffi::zlanhe_(
18538        &(norm as c_char),
18539        &(uplo as c_char),
18540        &n,
18541        a.as_ptr() as *const _,
18542        &lda,
18543        work.as_mut_ptr(),
18544    )
18545}
18546
18547#[inline]
18548pub unsafe fn clanhp(norm: u8, uplo: u8, n: i32, ap: &[c32], work: &mut [f32]) -> f32 {
18549    ffi::clanhp_(
18550        &(norm as c_char),
18551        &(uplo as c_char),
18552        &n,
18553        ap.as_ptr() as *const _,
18554        work.as_mut_ptr(),
18555    )
18556}
18557
18558#[inline]
18559pub unsafe fn zlanhp(norm: u8, uplo: u8, n: i32, ap: &[c64], work: &mut [f64]) -> f64 {
18560    ffi::zlanhp_(
18561        &(norm as c_char),
18562        &(uplo as c_char),
18563        &n,
18564        ap.as_ptr() as *const _,
18565        work.as_mut_ptr(),
18566    )
18567}
18568
18569#[inline]
18570pub unsafe fn clanhs(norm: u8, n: i32, a: &[c32], lda: i32, work: &mut [f32]) -> f32 {
18571    ffi::clanhs_(
18572        &(norm as c_char),
18573        &n,
18574        a.as_ptr() as *const _,
18575        &lda,
18576        work.as_mut_ptr(),
18577    )
18578}
18579
18580#[inline]
18581pub unsafe fn dlanhs(norm: u8, n: i32, a: &[f64], lda: i32, work: &mut [f64]) -> f64 {
18582    ffi::dlanhs_(&(norm as c_char), &n, a.as_ptr(), &lda, work.as_mut_ptr())
18583}
18584
18585#[inline]
18586pub unsafe fn slanhs(norm: u8, n: i32, a: &[f32], lda: i32, work: &mut [f32]) -> f32 {
18587    ffi::slanhs_(&(norm as c_char), &n, a.as_ptr(), &lda, work.as_mut_ptr())
18588}
18589
18590#[inline]
18591pub unsafe fn zlanhs(norm: u8, n: i32, a: &[c64], lda: i32, work: &mut [f64]) -> f64 {
18592    ffi::zlanhs_(
18593        &(norm as c_char),
18594        &n,
18595        a.as_ptr() as *const _,
18596        &lda,
18597        work.as_mut_ptr(),
18598    )
18599}
18600
18601#[inline]
18602pub unsafe fn clanht(norm: u8, n: i32, d: &[f32], e: &[c32]) -> f32 {
18603    ffi::clanht_(&(norm as c_char), &n, d.as_ptr(), e.as_ptr() as *const _)
18604}
18605
18606#[inline]
18607pub unsafe fn zlanht(norm: u8, n: i32, d: &[f64], e: &[c64]) -> f64 {
18608    ffi::zlanht_(&(norm as c_char), &n, d.as_ptr(), e.as_ptr() as *const _)
18609}
18610
18611#[inline]
18612pub unsafe fn clansb(
18613    norm: u8,
18614    uplo: u8,
18615    n: i32,
18616    k: i32,
18617    ab: &[c32],
18618    ldab: i32,
18619    work: &mut [f32],
18620) -> f32 {
18621    ffi::clansb_(
18622        &(norm as c_char),
18623        &(uplo as c_char),
18624        &n,
18625        &k,
18626        ab.as_ptr() as *const _,
18627        &ldab,
18628        work.as_mut_ptr(),
18629    )
18630}
18631
18632#[inline]
18633pub unsafe fn dlansb(
18634    norm: u8,
18635    uplo: u8,
18636    n: i32,
18637    k: i32,
18638    ab: &[f64],
18639    ldab: i32,
18640    work: &mut [f64],
18641) -> f64 {
18642    ffi::dlansb_(
18643        &(norm as c_char),
18644        &(uplo as c_char),
18645        &n,
18646        &k,
18647        ab.as_ptr(),
18648        &ldab,
18649        work.as_mut_ptr(),
18650    )
18651}
18652
18653#[inline]
18654pub unsafe fn slansb(
18655    norm: u8,
18656    uplo: u8,
18657    n: i32,
18658    k: i32,
18659    ab: &[f32],
18660    ldab: i32,
18661    work: &mut [f32],
18662) -> f32 {
18663    ffi::slansb_(
18664        &(norm as c_char),
18665        &(uplo as c_char),
18666        &n,
18667        &k,
18668        ab.as_ptr(),
18669        &ldab,
18670        work.as_mut_ptr(),
18671    )
18672}
18673
18674#[inline]
18675pub unsafe fn zlansb(
18676    norm: u8,
18677    uplo: u8,
18678    n: i32,
18679    k: i32,
18680    ab: &[c64],
18681    ldab: i32,
18682    work: &mut [f64],
18683) -> f64 {
18684    ffi::zlansb_(
18685        &(norm as c_char),
18686        &(uplo as c_char),
18687        &n,
18688        &k,
18689        ab.as_ptr() as *const _,
18690        &ldab,
18691        work.as_mut_ptr(),
18692    )
18693}
18694
18695#[inline]
18696pub unsafe fn clansp(norm: u8, uplo: u8, n: i32, ap: &[c32], work: &mut [f32]) -> f32 {
18697    ffi::clansp_(
18698        &(norm as c_char),
18699        &(uplo as c_char),
18700        &n,
18701        ap.as_ptr() as *const _,
18702        work.as_mut_ptr(),
18703    )
18704}
18705
18706#[inline]
18707pub unsafe fn dlansp(norm: u8, uplo: u8, n: i32, ap: &[f64], work: &mut [f64]) -> f64 {
18708    ffi::dlansp_(
18709        &(norm as c_char),
18710        &(uplo as c_char),
18711        &n,
18712        ap.as_ptr(),
18713        work.as_mut_ptr(),
18714    )
18715}
18716
18717#[inline]
18718pub unsafe fn slansp(norm: u8, uplo: u8, n: i32, ap: &[f32], work: &mut [f32]) -> f32 {
18719    ffi::slansp_(
18720        &(norm as c_char),
18721        &(uplo as c_char),
18722        &n,
18723        ap.as_ptr(),
18724        work.as_mut_ptr(),
18725    )
18726}
18727
18728#[inline]
18729pub unsafe fn zlansp(norm: u8, uplo: u8, n: i32, ap: &[c64], work: &mut [f64]) -> f64 {
18730    ffi::zlansp_(
18731        &(norm as c_char),
18732        &(uplo as c_char),
18733        &n,
18734        ap.as_ptr() as *const _,
18735        work.as_mut_ptr(),
18736    )
18737}
18738
18739#[inline]
18740pub unsafe fn dlanst(norm: u8, n: i32, d: &[f64], e: &[f64]) -> f64 {
18741    ffi::dlanst_(&(norm as c_char), &n, d.as_ptr(), e.as_ptr())
18742}
18743
18744#[inline]
18745pub unsafe fn slanst(norm: u8, n: i32, d: &[f32], e: &[f32]) -> f32 {
18746    ffi::slanst_(&(norm as c_char), &n, d.as_ptr(), e.as_ptr())
18747}
18748
18749#[inline]
18750pub unsafe fn clansy(norm: u8, uplo: u8, n: i32, a: &[c32], lda: i32, work: &mut [f32]) -> f32 {
18751    ffi::clansy_(
18752        &(norm as c_char),
18753        &(uplo as c_char),
18754        &n,
18755        a.as_ptr() as *const _,
18756        &lda,
18757        work.as_mut_ptr(),
18758    )
18759}
18760
18761#[inline]
18762pub unsafe fn dlansy(norm: u8, uplo: u8, n: i32, a: &[f64], lda: i32, work: &mut [f64]) -> f64 {
18763    ffi::dlansy_(
18764        &(norm as c_char),
18765        &(uplo as c_char),
18766        &n,
18767        a.as_ptr(),
18768        &lda,
18769        work.as_mut_ptr(),
18770    )
18771}
18772
18773#[inline]
18774pub unsafe fn slansy(norm: u8, uplo: u8, n: i32, a: &[f32], lda: i32, work: &mut [f32]) -> f32 {
18775    ffi::slansy_(
18776        &(norm as c_char),
18777        &(uplo as c_char),
18778        &n,
18779        a.as_ptr(),
18780        &lda,
18781        work.as_mut_ptr(),
18782    )
18783}
18784
18785#[inline]
18786pub unsafe fn zlansy(norm: u8, uplo: u8, n: i32, a: &[c64], lda: i32, work: &mut [f64]) -> f64 {
18787    ffi::zlansy_(
18788        &(norm as c_char),
18789        &(uplo as c_char),
18790        &n,
18791        a.as_ptr() as *const _,
18792        &lda,
18793        work.as_mut_ptr(),
18794    )
18795}
18796
18797#[inline]
18798pub unsafe fn clantb(
18799    norm: u8,
18800    uplo: u8,
18801    diag: u8,
18802    n: i32,
18803    k: i32,
18804    ab: &[c32],
18805    ldab: i32,
18806    work: &mut [f32],
18807) -> f32 {
18808    ffi::clantb_(
18809        &(norm as c_char),
18810        &(uplo as c_char),
18811        &(diag as c_char),
18812        &n,
18813        &k,
18814        ab.as_ptr() as *const _,
18815        &ldab,
18816        work.as_mut_ptr(),
18817    )
18818}
18819
18820#[inline]
18821pub unsafe fn dlantb(
18822    norm: u8,
18823    uplo: u8,
18824    diag: u8,
18825    n: i32,
18826    k: i32,
18827    ab: &[f64],
18828    ldab: i32,
18829    work: &mut [f64],
18830) -> f64 {
18831    ffi::dlantb_(
18832        &(norm as c_char),
18833        &(uplo as c_char),
18834        &(diag as c_char),
18835        &n,
18836        &k,
18837        ab.as_ptr(),
18838        &ldab,
18839        work.as_mut_ptr(),
18840    )
18841}
18842
18843#[inline]
18844pub unsafe fn slantb(
18845    norm: u8,
18846    uplo: u8,
18847    diag: u8,
18848    n: i32,
18849    k: i32,
18850    ab: &[f32],
18851    ldab: i32,
18852    work: &mut [f32],
18853) -> f32 {
18854    ffi::slantb_(
18855        &(norm as c_char),
18856        &(uplo as c_char),
18857        &(diag as c_char),
18858        &n,
18859        &k,
18860        ab.as_ptr(),
18861        &ldab,
18862        work.as_mut_ptr(),
18863    )
18864}
18865
18866#[inline]
18867pub unsafe fn zlantb(
18868    norm: u8,
18869    uplo: u8,
18870    diag: u8,
18871    n: i32,
18872    k: i32,
18873    ab: &[c64],
18874    ldab: i32,
18875    work: &mut [f64],
18876) -> f64 {
18877    ffi::zlantb_(
18878        &(norm as c_char),
18879        &(uplo as c_char),
18880        &(diag as c_char),
18881        &n,
18882        &k,
18883        ab.as_ptr() as *const _,
18884        &ldab,
18885        work.as_mut_ptr(),
18886    )
18887}
18888
18889#[inline]
18890pub unsafe fn clantp(norm: u8, uplo: u8, diag: u8, n: i32, ap: &[c32], work: &mut [f32]) -> f32 {
18891    ffi::clantp_(
18892        &(norm as c_char),
18893        &(uplo as c_char),
18894        &(diag as c_char),
18895        &n,
18896        ap.as_ptr() as *const _,
18897        work.as_mut_ptr(),
18898    )
18899}
18900
18901#[inline]
18902pub unsafe fn dlantp(norm: u8, uplo: u8, diag: u8, n: i32, ap: &[f64], work: &mut [f64]) -> f64 {
18903    ffi::dlantp_(
18904        &(norm as c_char),
18905        &(uplo as c_char),
18906        &(diag as c_char),
18907        &n,
18908        ap.as_ptr(),
18909        work.as_mut_ptr(),
18910    )
18911}
18912
18913#[inline]
18914pub unsafe fn slantp(norm: u8, uplo: u8, diag: u8, n: i32, ap: &[f32], work: &mut [f32]) -> f32 {
18915    ffi::slantp_(
18916        &(norm as c_char),
18917        &(uplo as c_char),
18918        &(diag as c_char),
18919        &n,
18920        ap.as_ptr(),
18921        work.as_mut_ptr(),
18922    )
18923}
18924
18925#[inline]
18926pub unsafe fn zlantp(norm: u8, uplo: u8, diag: u8, n: i32, ap: &[c64], work: &mut [f64]) -> f64 {
18927    ffi::zlantp_(
18928        &(norm as c_char),
18929        &(uplo as c_char),
18930        &(diag as c_char),
18931        &n,
18932        ap.as_ptr() as *const _,
18933        work.as_mut_ptr(),
18934    )
18935}
18936
18937#[inline]
18938pub unsafe fn clantr(
18939    norm: u8,
18940    uplo: u8,
18941    diag: u8,
18942    m: i32,
18943    n: i32,
18944    a: &[c32],
18945    lda: i32,
18946    work: &mut [f32],
18947) -> f32 {
18948    ffi::clantr_(
18949        &(norm as c_char),
18950        &(uplo as c_char),
18951        &(diag as c_char),
18952        &m,
18953        &n,
18954        a.as_ptr() as *const _,
18955        &lda,
18956        work.as_mut_ptr(),
18957    )
18958}
18959
18960#[inline]
18961pub unsafe fn dlantr(
18962    norm: u8,
18963    uplo: u8,
18964    diag: u8,
18965    m: i32,
18966    n: i32,
18967    a: &[f64],
18968    lda: i32,
18969    work: &mut [f64],
18970) -> f64 {
18971    ffi::dlantr_(
18972        &(norm as c_char),
18973        &(uplo as c_char),
18974        &(diag as c_char),
18975        &m,
18976        &n,
18977        a.as_ptr(),
18978        &lda,
18979        work.as_mut_ptr(),
18980    )
18981}
18982
18983#[inline]
18984pub unsafe fn slantr(
18985    norm: u8,
18986    uplo: u8,
18987    diag: u8,
18988    m: i32,
18989    n: i32,
18990    a: &[f32],
18991    lda: i32,
18992    work: &mut [f32],
18993) -> f32 {
18994    ffi::slantr_(
18995        &(norm as c_char),
18996        &(uplo as c_char),
18997        &(diag as c_char),
18998        &m,
18999        &n,
19000        a.as_ptr(),
19001        &lda,
19002        work.as_mut_ptr(),
19003    )
19004}
19005
19006#[inline]
19007pub unsafe fn zlantr(
19008    norm: u8,
19009    uplo: u8,
19010    diag: u8,
19011    m: i32,
19012    n: i32,
19013    a: &[c64],
19014    lda: i32,
19015    work: &mut [f64],
19016) -> f64 {
19017    ffi::zlantr_(
19018        &(norm as c_char),
19019        &(uplo as c_char),
19020        &(diag as c_char),
19021        &m,
19022        &n,
19023        a.as_ptr() as *const _,
19024        &lda,
19025        work.as_mut_ptr(),
19026    )
19027}
19028
19029#[inline]
19030pub unsafe fn clapmr(forwrd: &[i32], m: i32, n: i32, x: &mut [c32], ldx: i32, k: &mut [i32]) {
19031    ffi::clapmr_(
19032        forwrd.as_ptr(),
19033        &m,
19034        &n,
19035        x.as_mut_ptr() as *mut _,
19036        &ldx,
19037        k.as_mut_ptr(),
19038    )
19039}
19040
19041#[inline]
19042pub unsafe fn dlapmr(forwrd: &[i32], m: i32, n: i32, x: &mut [f64], ldx: i32, k: &mut [i32]) {
19043    ffi::dlapmr_(
19044        forwrd.as_ptr(),
19045        &m,
19046        &n,
19047        x.as_mut_ptr(),
19048        &ldx,
19049        k.as_mut_ptr(),
19050    )
19051}
19052
19053#[inline]
19054pub unsafe fn slapmr(forwrd: &[i32], m: i32, n: i32, x: &mut [f32], ldx: i32, k: &mut [i32]) {
19055    ffi::slapmr_(
19056        forwrd.as_ptr(),
19057        &m,
19058        &n,
19059        x.as_mut_ptr(),
19060        &ldx,
19061        k.as_mut_ptr(),
19062    )
19063}
19064
19065#[inline]
19066pub unsafe fn zlapmr(forwrd: &[i32], m: i32, n: i32, x: &mut [c64], ldx: i32, k: &mut [i32]) {
19067    ffi::zlapmr_(
19068        forwrd.as_ptr(),
19069        &m,
19070        &n,
19071        x.as_mut_ptr() as *mut _,
19072        &ldx,
19073        k.as_mut_ptr(),
19074    )
19075}
19076
19077#[inline]
19078pub unsafe fn clapmt(forwrd: &[i32], m: i32, n: i32, x: &mut [c32], ldx: i32, k: &mut [i32]) {
19079    ffi::clapmt_(
19080        forwrd.as_ptr(),
19081        &m,
19082        &n,
19083        x.as_mut_ptr() as *mut _,
19084        &ldx,
19085        k.as_mut_ptr(),
19086    )
19087}
19088
19089#[inline]
19090pub unsafe fn dlapmt(forwrd: &[i32], m: i32, n: i32, x: &mut [f64], ldx: i32, k: &mut [i32]) {
19091    ffi::dlapmt_(
19092        forwrd.as_ptr(),
19093        &m,
19094        &n,
19095        x.as_mut_ptr(),
19096        &ldx,
19097        k.as_mut_ptr(),
19098    )
19099}
19100
19101#[inline]
19102pub unsafe fn slapmt(forwrd: &[i32], m: i32, n: i32, x: &mut [f32], ldx: i32, k: &mut [i32]) {
19103    ffi::slapmt_(
19104        forwrd.as_ptr(),
19105        &m,
19106        &n,
19107        x.as_mut_ptr(),
19108        &ldx,
19109        k.as_mut_ptr(),
19110    )
19111}
19112
19113#[inline]
19114pub unsafe fn zlapmt(forwrd: &[i32], m: i32, n: i32, x: &mut [c64], ldx: i32, k: &mut [i32]) {
19115    ffi::zlapmt_(
19116        forwrd.as_ptr(),
19117        &m,
19118        &n,
19119        x.as_mut_ptr() as *mut _,
19120        &ldx,
19121        k.as_mut_ptr(),
19122    )
19123}
19124
19125#[inline]
19126pub unsafe fn dlapy2(x: &[f64], y: &[f64]) -> f64 {
19127    ffi::dlapy2_(x.as_ptr(), y.as_ptr())
19128}
19129
19130#[inline]
19131pub unsafe fn slapy2(x: &[f32], y: &[f32]) -> f32 {
19132    ffi::slapy2_(x.as_ptr(), y.as_ptr())
19133}
19134
19135#[inline]
19136pub unsafe fn dlapy3(x: &[f64], y: &[f64], z: &[f64]) -> f64 {
19137    ffi::dlapy3_(x.as_ptr(), y.as_ptr(), z.as_ptr())
19138}
19139
19140#[inline]
19141pub unsafe fn slapy3(x: &[f32], y: &[f32], z: &[f32]) -> f32 {
19142    ffi::slapy3_(x.as_ptr(), y.as_ptr(), z.as_ptr())
19143}
19144
19145#[inline]
19146pub unsafe fn clarcm(
19147    m: i32,
19148    n: i32,
19149    a: &[f32],
19150    lda: i32,
19151    b: &[c32],
19152    ldb: i32,
19153    c: &mut [c32],
19154    ldc: i32,
19155    rwork: &mut [f32],
19156) {
19157    ffi::clarcm_(
19158        &m,
19159        &n,
19160        a.as_ptr(),
19161        &lda,
19162        b.as_ptr() as *const _,
19163        &ldb,
19164        c.as_mut_ptr() as *mut _,
19165        &ldc,
19166        rwork.as_mut_ptr(),
19167    )
19168}
19169
19170#[inline]
19171pub unsafe fn zlarcm(
19172    m: i32,
19173    n: i32,
19174    a: &[f64],
19175    lda: i32,
19176    b: &[c64],
19177    ldb: i32,
19178    c: &mut [c64],
19179    ldc: i32,
19180    rwork: &mut [f64],
19181) {
19182    ffi::zlarcm_(
19183        &m,
19184        &n,
19185        a.as_ptr(),
19186        &lda,
19187        b.as_ptr() as *const _,
19188        &ldb,
19189        c.as_mut_ptr() as *mut _,
19190        &ldc,
19191        rwork.as_mut_ptr(),
19192    )
19193}
19194
19195#[inline]
19196pub unsafe fn clarf(
19197    side: u8,
19198    m: i32,
19199    n: i32,
19200    v: &[c32],
19201    incv: i32,
19202    tau: &[c32],
19203    c: &mut [c32],
19204    ldc: i32,
19205    work: &mut [c32],
19206) {
19207    ffi::clarf_(
19208        &(side as c_char),
19209        &m,
19210        &n,
19211        v.as_ptr() as *const _,
19212        &incv,
19213        tau.as_ptr() as *const _,
19214        c.as_mut_ptr() as *mut _,
19215        &ldc,
19216        work.as_mut_ptr() as *mut _,
19217    )
19218}
19219
19220#[inline]
19221pub unsafe fn dlarf(
19222    side: u8,
19223    m: i32,
19224    n: i32,
19225    v: &[f64],
19226    incv: i32,
19227    tau: &[f64],
19228    c: &mut [f64],
19229    ldc: i32,
19230    work: &mut [f64],
19231) {
19232    ffi::dlarf_(
19233        &(side as c_char),
19234        &m,
19235        &n,
19236        v.as_ptr(),
19237        &incv,
19238        tau.as_ptr(),
19239        c.as_mut_ptr(),
19240        &ldc,
19241        work.as_mut_ptr(),
19242    )
19243}
19244
19245#[inline]
19246pub unsafe fn slarf(
19247    side: u8,
19248    m: i32,
19249    n: i32,
19250    v: &[f32],
19251    incv: i32,
19252    tau: &[f32],
19253    c: &mut [f32],
19254    ldc: i32,
19255    work: &mut [f32],
19256) {
19257    ffi::slarf_(
19258        &(side as c_char),
19259        &m,
19260        &n,
19261        v.as_ptr(),
19262        &incv,
19263        tau.as_ptr(),
19264        c.as_mut_ptr(),
19265        &ldc,
19266        work.as_mut_ptr(),
19267    )
19268}
19269
19270#[inline]
19271pub unsafe fn zlarf(
19272    side: u8,
19273    m: i32,
19274    n: i32,
19275    v: &[c64],
19276    incv: i32,
19277    tau: &[c64],
19278    c: &mut [c64],
19279    ldc: i32,
19280    work: &mut [c64],
19281) {
19282    ffi::zlarf_(
19283        &(side as c_char),
19284        &m,
19285        &n,
19286        v.as_ptr() as *const _,
19287        &incv,
19288        tau.as_ptr() as *const _,
19289        c.as_mut_ptr() as *mut _,
19290        &ldc,
19291        work.as_mut_ptr() as *mut _,
19292    )
19293}
19294
19295#[inline]
19296pub unsafe fn clarfb(
19297    side: u8,
19298    trans: u8,
19299    direct: u8,
19300    storev: u8,
19301    m: i32,
19302    n: i32,
19303    k: i32,
19304    v: &[c32],
19305    ldv: i32,
19306    t: &[c32],
19307    ldt: i32,
19308    c: &mut [c32],
19309    ldc: i32,
19310    work: &mut [c32],
19311    ldwork: i32,
19312) {
19313    ffi::clarfb_(
19314        &(side as c_char),
19315        &(trans as c_char),
19316        &(direct as c_char),
19317        &(storev as c_char),
19318        &m,
19319        &n,
19320        &k,
19321        v.as_ptr() as *const _,
19322        &ldv,
19323        t.as_ptr() as *const _,
19324        &ldt,
19325        c.as_mut_ptr() as *mut _,
19326        &ldc,
19327        work.as_mut_ptr() as *mut _,
19328        &ldwork,
19329    )
19330}
19331
19332#[inline]
19333pub unsafe fn dlarfb(
19334    side: u8,
19335    trans: u8,
19336    direct: u8,
19337    storev: u8,
19338    m: i32,
19339    n: i32,
19340    k: i32,
19341    v: &[f64],
19342    ldv: i32,
19343    t: &[f64],
19344    ldt: i32,
19345    c: &mut [f64],
19346    ldc: i32,
19347    work: &mut [f64],
19348    ldwork: i32,
19349) {
19350    ffi::dlarfb_(
19351        &(side as c_char),
19352        &(trans as c_char),
19353        &(direct as c_char),
19354        &(storev as c_char),
19355        &m,
19356        &n,
19357        &k,
19358        v.as_ptr(),
19359        &ldv,
19360        t.as_ptr(),
19361        &ldt,
19362        c.as_mut_ptr(),
19363        &ldc,
19364        work.as_mut_ptr(),
19365        &ldwork,
19366    )
19367}
19368
19369#[inline]
19370pub unsafe fn slarfb(
19371    side: u8,
19372    trans: u8,
19373    direct: u8,
19374    storev: u8,
19375    m: i32,
19376    n: i32,
19377    k: i32,
19378    v: &[f32],
19379    ldv: i32,
19380    t: &[f32],
19381    ldt: i32,
19382    c: &mut [f32],
19383    ldc: i32,
19384    work: &mut [f32],
19385    ldwork: i32,
19386) {
19387    ffi::slarfb_(
19388        &(side as c_char),
19389        &(trans as c_char),
19390        &(direct as c_char),
19391        &(storev as c_char),
19392        &m,
19393        &n,
19394        &k,
19395        v.as_ptr(),
19396        &ldv,
19397        t.as_ptr(),
19398        &ldt,
19399        c.as_mut_ptr(),
19400        &ldc,
19401        work.as_mut_ptr(),
19402        &ldwork,
19403    )
19404}
19405
19406#[inline]
19407pub unsafe fn zlarfb(
19408    side: u8,
19409    trans: u8,
19410    direct: u8,
19411    storev: u8,
19412    m: i32,
19413    n: i32,
19414    k: i32,
19415    v: &[c64],
19416    ldv: i32,
19417    t: &[c64],
19418    ldt: i32,
19419    c: &mut [c64],
19420    ldc: i32,
19421    work: &mut [c64],
19422    ldwork: i32,
19423) {
19424    ffi::zlarfb_(
19425        &(side as c_char),
19426        &(trans as c_char),
19427        &(direct as c_char),
19428        &(storev as c_char),
19429        &m,
19430        &n,
19431        &k,
19432        v.as_ptr() as *const _,
19433        &ldv,
19434        t.as_ptr() as *const _,
19435        &ldt,
19436        c.as_mut_ptr() as *mut _,
19437        &ldc,
19438        work.as_mut_ptr() as *mut _,
19439        &ldwork,
19440    )
19441}
19442
19443#[inline]
19444pub unsafe fn clarfg(n: i32, alpha: &mut c32, x: &mut [c32], incx: i32, tau: &mut [c32]) {
19445    ffi::clarfg_(
19446        &n,
19447        alpha as *mut _ as *mut _,
19448        x.as_mut_ptr() as *mut _,
19449        &incx,
19450        tau.as_mut_ptr() as *mut _,
19451    )
19452}
19453
19454#[inline]
19455pub unsafe fn dlarfg(n: i32, alpha: &mut f64, x: &mut [f64], incx: i32, tau: &mut [f64]) {
19456    ffi::dlarfg_(&n, alpha, x.as_mut_ptr(), &incx, tau.as_mut_ptr())
19457}
19458
19459#[inline]
19460pub unsafe fn slarfg(n: i32, alpha: &mut f32, x: &mut [f32], incx: i32, tau: &mut [f32]) {
19461    ffi::slarfg_(&n, alpha, x.as_mut_ptr(), &incx, tau.as_mut_ptr())
19462}
19463
19464#[inline]
19465pub unsafe fn zlarfg(n: i32, alpha: &mut c64, x: &mut [c64], incx: i32, tau: &mut [c64]) {
19466    ffi::zlarfg_(
19467        &n,
19468        alpha as *mut _ as *mut _,
19469        x.as_mut_ptr() as *mut _,
19470        &incx,
19471        tau.as_mut_ptr() as *mut _,
19472    )
19473}
19474
19475#[inline]
19476pub unsafe fn clarft(
19477    direct: u8,
19478    storev: u8,
19479    n: i32,
19480    k: i32,
19481    v: &[c32],
19482    ldv: i32,
19483    tau: &[c32],
19484    t: &mut [c32],
19485    ldt: i32,
19486) {
19487    ffi::clarft_(
19488        &(direct as c_char),
19489        &(storev as c_char),
19490        &n,
19491        &k,
19492        v.as_ptr() as *const _,
19493        &ldv,
19494        tau.as_ptr() as *const _,
19495        t.as_mut_ptr() as *mut _,
19496        &ldt,
19497    )
19498}
19499
19500#[inline]
19501pub unsafe fn dlarft(
19502    direct: u8,
19503    storev: u8,
19504    n: i32,
19505    k: i32,
19506    v: &[f64],
19507    ldv: i32,
19508    tau: &[f64],
19509    t: &mut [f64],
19510    ldt: i32,
19511) {
19512    ffi::dlarft_(
19513        &(direct as c_char),
19514        &(storev as c_char),
19515        &n,
19516        &k,
19517        v.as_ptr(),
19518        &ldv,
19519        tau.as_ptr(),
19520        t.as_mut_ptr(),
19521        &ldt,
19522    )
19523}
19524
19525#[inline]
19526pub unsafe fn slarft(
19527    direct: u8,
19528    storev: u8,
19529    n: i32,
19530    k: i32,
19531    v: &[f32],
19532    ldv: i32,
19533    tau: &[f32],
19534    t: &mut [f32],
19535    ldt: i32,
19536) {
19537    ffi::slarft_(
19538        &(direct as c_char),
19539        &(storev as c_char),
19540        &n,
19541        &k,
19542        v.as_ptr(),
19543        &ldv,
19544        tau.as_ptr(),
19545        t.as_mut_ptr(),
19546        &ldt,
19547    )
19548}
19549
19550#[inline]
19551pub unsafe fn zlarft(
19552    direct: u8,
19553    storev: u8,
19554    n: i32,
19555    k: i32,
19556    v: &[c64],
19557    ldv: i32,
19558    tau: &[c64],
19559    t: &mut [c64],
19560    ldt: i32,
19561) {
19562    ffi::zlarft_(
19563        &(direct as c_char),
19564        &(storev as c_char),
19565        &n,
19566        &k,
19567        v.as_ptr() as *const _,
19568        &ldv,
19569        tau.as_ptr() as *const _,
19570        t.as_mut_ptr() as *mut _,
19571        &ldt,
19572    )
19573}
19574
19575#[inline]
19576pub unsafe fn clarfx(
19577    side: u8,
19578    m: i32,
19579    n: i32,
19580    v: &[c32],
19581    tau: &[c32],
19582    c: &mut [c32],
19583    ldc: i32,
19584    work: &mut [c32],
19585) {
19586    ffi::clarfx_(
19587        &(side as c_char),
19588        &m,
19589        &n,
19590        v.as_ptr() as *const _,
19591        tau.as_ptr() as *const _,
19592        c.as_mut_ptr() as *mut _,
19593        &ldc,
19594        work.as_mut_ptr() as *mut _,
19595    )
19596}
19597
19598#[inline]
19599pub unsafe fn dlarfx(
19600    side: u8,
19601    m: i32,
19602    n: i32,
19603    v: &[f64],
19604    tau: &[f64],
19605    c: &mut [f64],
19606    ldc: i32,
19607    work: &mut [f64],
19608) {
19609    ffi::dlarfx_(
19610        &(side as c_char),
19611        &m,
19612        &n,
19613        v.as_ptr(),
19614        tau.as_ptr(),
19615        c.as_mut_ptr(),
19616        &ldc,
19617        work.as_mut_ptr(),
19618    )
19619}
19620
19621#[inline]
19622pub unsafe fn slarfx(
19623    side: u8,
19624    m: i32,
19625    n: i32,
19626    v: &[f32],
19627    tau: &[f32],
19628    c: &mut [f32],
19629    ldc: i32,
19630    work: &mut [f32],
19631) {
19632    ffi::slarfx_(
19633        &(side as c_char),
19634        &m,
19635        &n,
19636        v.as_ptr(),
19637        tau.as_ptr(),
19638        c.as_mut_ptr(),
19639        &ldc,
19640        work.as_mut_ptr(),
19641    )
19642}
19643
19644#[inline]
19645pub unsafe fn zlarfx(
19646    side: u8,
19647    m: i32,
19648    n: i32,
19649    v: &[c64],
19650    tau: &[c64],
19651    c: &mut [c64],
19652    ldc: i32,
19653    work: &mut [c64],
19654) {
19655    ffi::zlarfx_(
19656        &(side as c_char),
19657        &m,
19658        &n,
19659        v.as_ptr() as *const _,
19660        tau.as_ptr() as *const _,
19661        c.as_mut_ptr() as *mut _,
19662        &ldc,
19663        work.as_mut_ptr() as *mut _,
19664    )
19665}
19666
19667#[inline]
19668pub unsafe fn clarnv(idist: &[i32], iseed: &mut [i32], n: i32, x: &mut [c32]) {
19669    ffi::clarnv_(
19670        idist.as_ptr(),
19671        iseed.as_mut_ptr(),
19672        &n,
19673        x.as_mut_ptr() as *mut _,
19674    )
19675}
19676
19677#[inline]
19678pub unsafe fn dlarnv(idist: &[i32], iseed: &mut [i32], n: i32, x: &mut [f64]) {
19679    ffi::dlarnv_(idist.as_ptr(), iseed.as_mut_ptr(), &n, x.as_mut_ptr())
19680}
19681
19682#[inline]
19683pub unsafe fn slarnv(idist: &[i32], iseed: &mut [i32], n: i32, x: &mut [f32]) {
19684    ffi::slarnv_(idist.as_ptr(), iseed.as_mut_ptr(), &n, x.as_mut_ptr())
19685}
19686
19687#[inline]
19688pub unsafe fn zlarnv(idist: &[i32], iseed: &mut [i32], n: i32, x: &mut [c64]) {
19689    ffi::zlarnv_(
19690        idist.as_ptr(),
19691        iseed.as_mut_ptr(),
19692        &n,
19693        x.as_mut_ptr() as *mut _,
19694    )
19695}
19696
19697#[inline]
19698pub unsafe fn dlartgp(f: &[f64], g: &[f64], cs: &mut [f64], sn: &mut [f64], r: &mut [f64]) {
19699    ffi::dlartgp_(
19700        f.as_ptr(),
19701        g.as_ptr(),
19702        cs.as_mut_ptr(),
19703        sn.as_mut_ptr(),
19704        r.as_mut_ptr(),
19705    )
19706}
19707
19708#[inline]
19709pub unsafe fn slartgp(f: &[f32], g: &[f32], cs: &mut [f32], sn: &mut [f32], r: &mut [f32]) {
19710    ffi::slartgp_(
19711        f.as_ptr(),
19712        g.as_ptr(),
19713        cs.as_mut_ptr(),
19714        sn.as_mut_ptr(),
19715        r.as_mut_ptr(),
19716    )
19717}
19718
19719#[inline]
19720pub unsafe fn dlartgs(x: &[f64], y: &[f64], sigma: &[f64], cs: &mut [f64], sn: &mut [f64]) {
19721    ffi::dlartgs_(
19722        x.as_ptr(),
19723        y.as_ptr(),
19724        sigma.as_ptr(),
19725        cs.as_mut_ptr(),
19726        sn.as_mut_ptr(),
19727    )
19728}
19729
19730#[inline]
19731pub unsafe fn slartgs(x: &[f32], y: &[f32], sigma: &[f32], cs: &mut [f32], sn: &mut [f32]) {
19732    ffi::slartgs_(
19733        x.as_ptr(),
19734        y.as_ptr(),
19735        sigma.as_ptr(),
19736        cs.as_mut_ptr(),
19737        sn.as_mut_ptr(),
19738    )
19739}
19740
19741#[inline]
19742pub unsafe fn clascl(
19743    type_: u8,
19744    kl: i32,
19745    ku: i32,
19746    cfrom: &[f32],
19747    cto: &[f32],
19748    m: i32,
19749    n: i32,
19750    a: &mut [c32],
19751    lda: i32,
19752    info: &mut i32,
19753) {
19754    ffi::clascl_(
19755        &(type_ as c_char),
19756        &kl,
19757        &ku,
19758        cfrom.as_ptr(),
19759        cto.as_ptr(),
19760        &m,
19761        &n,
19762        a.as_mut_ptr() as *mut _,
19763        &lda,
19764        info,
19765    )
19766}
19767
19768#[inline]
19769pub unsafe fn dlascl(
19770    type_: u8,
19771    kl: i32,
19772    ku: i32,
19773    cfrom: &[f64],
19774    cto: &[f64],
19775    m: i32,
19776    n: i32,
19777    a: &mut [f64],
19778    lda: i32,
19779    info: &mut i32,
19780) {
19781    ffi::dlascl_(
19782        &(type_ as c_char),
19783        &kl,
19784        &ku,
19785        cfrom.as_ptr(),
19786        cto.as_ptr(),
19787        &m,
19788        &n,
19789        a.as_mut_ptr(),
19790        &lda,
19791        info,
19792    )
19793}
19794
19795#[inline]
19796pub unsafe fn slascl(
19797    type_: u8,
19798    kl: i32,
19799    ku: i32,
19800    cfrom: &[f32],
19801    cto: &[f32],
19802    m: i32,
19803    n: i32,
19804    a: &mut [f32],
19805    lda: i32,
19806    info: &mut i32,
19807) {
19808    ffi::slascl_(
19809        &(type_ as c_char),
19810        &kl,
19811        &ku,
19812        cfrom.as_ptr(),
19813        cto.as_ptr(),
19814        &m,
19815        &n,
19816        a.as_mut_ptr(),
19817        &lda,
19818        info,
19819    )
19820}
19821
19822#[inline]
19823pub unsafe fn zlascl(
19824    type_: u8,
19825    kl: i32,
19826    ku: i32,
19827    cfrom: &[f64],
19828    cto: &[f64],
19829    m: i32,
19830    n: i32,
19831    a: &mut [c64],
19832    lda: i32,
19833    info: &mut i32,
19834) {
19835    ffi::zlascl_(
19836        &(type_ as c_char),
19837        &kl,
19838        &ku,
19839        cfrom.as_ptr(),
19840        cto.as_ptr(),
19841        &m,
19842        &n,
19843        a.as_mut_ptr() as *mut _,
19844        &lda,
19845        info,
19846    )
19847}
19848
19849#[inline]
19850pub unsafe fn claset(
19851    uplo: u8,
19852    m: i32,
19853    n: i32,
19854    alpha: &[c32],
19855    beta: &[c32],
19856    a: &mut [c32],
19857    lda: i32,
19858) {
19859    ffi::claset_(
19860        &(uplo as c_char),
19861        &m,
19862        &n,
19863        alpha.as_ptr() as *const _,
19864        beta.as_ptr() as *const _,
19865        a.as_mut_ptr() as *mut _,
19866        &lda,
19867    )
19868}
19869
19870#[inline]
19871pub unsafe fn dlaset(
19872    uplo: u8,
19873    m: i32,
19874    n: i32,
19875    alpha: &[f64],
19876    beta: &[f64],
19877    a: &mut [f64],
19878    lda: i32,
19879) {
19880    ffi::dlaset_(
19881        &(uplo as c_char),
19882        &m,
19883        &n,
19884        alpha.as_ptr(),
19885        beta.as_ptr(),
19886        a.as_mut_ptr(),
19887        &lda,
19888    )
19889}
19890
19891#[inline]
19892pub unsafe fn slaset(
19893    uplo: u8,
19894    m: i32,
19895    n: i32,
19896    alpha: &[f32],
19897    beta: &[f32],
19898    a: &mut [f32],
19899    lda: i32,
19900) {
19901    ffi::slaset_(
19902        &(uplo as c_char),
19903        &m,
19904        &n,
19905        alpha.as_ptr(),
19906        beta.as_ptr(),
19907        a.as_mut_ptr(),
19908        &lda,
19909    )
19910}
19911
19912#[inline]
19913pub unsafe fn zlaset(
19914    uplo: u8,
19915    m: i32,
19916    n: i32,
19917    alpha: &[c64],
19918    beta: &[c64],
19919    a: &mut [c64],
19920    lda: i32,
19921) {
19922    ffi::zlaset_(
19923        &(uplo as c_char),
19924        &m,
19925        &n,
19926        alpha.as_ptr() as *const _,
19927        beta.as_ptr() as *const _,
19928        a.as_mut_ptr() as *mut _,
19929        &lda,
19930    )
19931}
19932
19933#[inline]
19934pub unsafe fn dlasrt(id: u8, n: i32, d: &mut [f64], info: &mut i32) {
19935    ffi::dlasrt_(&(id as c_char), &n, d.as_mut_ptr(), info)
19936}
19937
19938#[inline]
19939pub unsafe fn slasrt(id: u8, n: i32, d: &mut [f32], info: &mut i32) {
19940    ffi::slasrt_(&(id as c_char), &n, d.as_mut_ptr(), info)
19941}
19942
19943#[inline]
19944pub unsafe fn classq(n: i32, x: &[c32], incx: i32, scale: &mut [f32], sumsq: &mut [f32]) {
19945    ffi::classq_(
19946        &n,
19947        x.as_ptr() as *const _,
19948        &incx,
19949        scale.as_mut_ptr(),
19950        sumsq.as_mut_ptr(),
19951    )
19952}
19953
19954#[inline]
19955pub unsafe fn dlassq(n: i32, x: &[f64], incx: i32, scale: &mut [f64], sumsq: &mut [f64]) {
19956    ffi::dlassq_(
19957        &n,
19958        x.as_ptr(),
19959        &incx,
19960        scale.as_mut_ptr(),
19961        sumsq.as_mut_ptr(),
19962    )
19963}
19964
19965#[inline]
19966pub unsafe fn slassq(n: i32, x: &[f32], incx: i32, scale: &mut [f32], sumsq: &mut [f32]) {
19967    ffi::slassq_(
19968        &n,
19969        x.as_ptr(),
19970        &incx,
19971        scale.as_mut_ptr(),
19972        sumsq.as_mut_ptr(),
19973    )
19974}
19975
19976#[inline]
19977pub unsafe fn zlassq(n: i32, x: &[c64], incx: i32, scale: &mut [f64], sumsq: &mut [f64]) {
19978    ffi::zlassq_(
19979        &n,
19980        x.as_ptr() as *const _,
19981        &incx,
19982        scale.as_mut_ptr(),
19983        sumsq.as_mut_ptr(),
19984    )
19985}
19986
19987#[inline]
19988pub unsafe fn claswp(n: i32, a: &mut [c32], lda: i32, k1: i32, k2: i32, ipiv: &[i32], incx: i32) {
19989    ffi::claswp_(
19990        &n,
19991        a.as_mut_ptr() as *mut _,
19992        &lda,
19993        &k1,
19994        &k2,
19995        ipiv.as_ptr(),
19996        &incx,
19997    )
19998}
19999
20000#[inline]
20001pub unsafe fn dlaswp(n: i32, a: &mut [f64], lda: i32, k1: i32, k2: i32, ipiv: &[i32], incx: i32) {
20002    ffi::dlaswp_(&n, a.as_mut_ptr(), &lda, &k1, &k2, ipiv.as_ptr(), &incx)
20003}
20004
20005#[inline]
20006pub unsafe fn slaswp(n: i32, a: &mut [f32], lda: i32, k1: i32, k2: i32, ipiv: &[i32], incx: i32) {
20007    ffi::slaswp_(&n, a.as_mut_ptr(), &lda, &k1, &k2, ipiv.as_ptr(), &incx)
20008}
20009
20010#[inline]
20011pub unsafe fn zlaswp(n: i32, a: &mut [c64], lda: i32, k1: i32, k2: i32, ipiv: &[i32], incx: i32) {
20012    ffi::zlaswp_(
20013        &n,
20014        a.as_mut_ptr() as *mut _,
20015        &lda,
20016        &k1,
20017        &k2,
20018        ipiv.as_ptr(),
20019        &incx,
20020    )
20021}
20022
20023#[inline]
20024pub unsafe fn clatms(
20025    m: i32,
20026    n: i32,
20027    dist: u8,
20028    iseed: &mut [i32],
20029    sym: u8,
20030    d: &mut [f32],
20031    mode: &[i32],
20032    cond: &[f32],
20033    dmax: &[f32],
20034    kl: i32,
20035    ku: i32,
20036    pack: u8,
20037    a: &mut [c32],
20038    lda: i32,
20039    work: &mut [c32],
20040    info: &mut i32,
20041) {
20042    ffi::clatms_(
20043        &m,
20044        &n,
20045        &(dist as c_char),
20046        iseed.as_mut_ptr(),
20047        &(sym as c_char),
20048        d.as_mut_ptr(),
20049        mode.as_ptr(),
20050        cond.as_ptr(),
20051        dmax.as_ptr(),
20052        &kl,
20053        &ku,
20054        &(pack as c_char),
20055        a.as_mut_ptr() as *mut _,
20056        &lda,
20057        work.as_mut_ptr() as *mut _,
20058        info,
20059    )
20060}
20061
20062#[inline]
20063pub unsafe fn dlatms(
20064    m: i32,
20065    n: i32,
20066    dist: u8,
20067    iseed: &mut [i32],
20068    sym: u8,
20069    d: &mut [f64],
20070    mode: &[i32],
20071    cond: &[f64],
20072    dmax: &[f64],
20073    kl: i32,
20074    ku: i32,
20075    pack: u8,
20076    a: &mut [f64],
20077    lda: i32,
20078    work: &mut [f64],
20079    info: &mut i32,
20080) {
20081    ffi::dlatms_(
20082        &m,
20083        &n,
20084        &(dist as c_char),
20085        iseed.as_mut_ptr(),
20086        &(sym as c_char),
20087        d.as_mut_ptr(),
20088        mode.as_ptr(),
20089        cond.as_ptr(),
20090        dmax.as_ptr(),
20091        &kl,
20092        &ku,
20093        &(pack as c_char),
20094        a.as_mut_ptr(),
20095        &lda,
20096        work.as_mut_ptr(),
20097        info,
20098    )
20099}
20100
20101#[inline]
20102pub unsafe fn slatms(
20103    m: i32,
20104    n: i32,
20105    dist: u8,
20106    iseed: &mut [i32],
20107    sym: u8,
20108    d: &mut [f32],
20109    mode: &[i32],
20110    cond: &[f32],
20111    dmax: &[f32],
20112    kl: i32,
20113    ku: i32,
20114    pack: u8,
20115    a: &mut [f32],
20116    lda: i32,
20117    work: &mut [f32],
20118    info: &mut i32,
20119) {
20120    ffi::slatms_(
20121        &m,
20122        &n,
20123        &(dist as c_char),
20124        iseed.as_mut_ptr(),
20125        &(sym as c_char),
20126        d.as_mut_ptr(),
20127        mode.as_ptr(),
20128        cond.as_ptr(),
20129        dmax.as_ptr(),
20130        &kl,
20131        &ku,
20132        &(pack as c_char),
20133        a.as_mut_ptr(),
20134        &lda,
20135        work.as_mut_ptr(),
20136        info,
20137    )
20138}
20139
20140#[inline]
20141pub unsafe fn zlatms(
20142    m: i32,
20143    n: i32,
20144    dist: u8,
20145    iseed: &mut [i32],
20146    sym: u8,
20147    d: &mut [f64],
20148    mode: &[i32],
20149    cond: &[f64],
20150    dmax: &[f64],
20151    kl: i32,
20152    ku: i32,
20153    pack: u8,
20154    a: &mut [c64],
20155    lda: i32,
20156    work: &mut [c64],
20157    info: &mut i32,
20158) {
20159    ffi::zlatms_(
20160        &m,
20161        &n,
20162        &(dist as c_char),
20163        iseed.as_mut_ptr(),
20164        &(sym as c_char),
20165        d.as_mut_ptr(),
20166        mode.as_ptr(),
20167        cond.as_ptr(),
20168        dmax.as_ptr(),
20169        &kl,
20170        &ku,
20171        &(pack as c_char),
20172        a.as_mut_ptr() as *mut _,
20173        &lda,
20174        work.as_mut_ptr() as *mut _,
20175        info,
20176    )
20177}
20178
20179#[inline]
20180pub unsafe fn clauum(uplo: u8, n: i32, a: &mut [c32], lda: i32, info: &mut i32) {
20181    ffi::clauum_(&(uplo as c_char), &n, a.as_mut_ptr() as *mut _, &lda, info)
20182}
20183
20184#[inline]
20185pub unsafe fn dlauum(uplo: u8, n: i32, a: &mut [f64], lda: i32, info: &mut i32) {
20186    ffi::dlauum_(&(uplo as c_char), &n, a.as_mut_ptr(), &lda, info)
20187}
20188
20189#[inline]
20190pub unsafe fn slauum(uplo: u8, n: i32, a: &mut [f32], lda: i32, info: &mut i32) {
20191    ffi::slauum_(&(uplo as c_char), &n, a.as_mut_ptr(), &lda, info)
20192}
20193
20194#[inline]
20195pub unsafe fn zlauum(uplo: u8, n: i32, a: &mut [c64], lda: i32, info: &mut i32) {
20196    ffi::zlauum_(&(uplo as c_char), &n, a.as_mut_ptr() as *mut _, &lda, info)
20197}
20198
20199#[inline]
20200pub unsafe fn ilaver(vers_major: &mut i32, vers_minor: &mut i32, vers_patch: &mut i32) {
20201    ffi::ilaver_(vers_major, vers_minor, vers_patch)
20202}
20203
20204#[inline]
20205pub unsafe fn dopgtr(
20206    uplo: u8,
20207    n: i32,
20208    ap: &[f64],
20209    tau: &[f64],
20210    q: &mut [f64],
20211    ldq: i32,
20212    work: &mut [f64],
20213    info: &mut i32,
20214) {
20215    ffi::dopgtr_(
20216        &(uplo as c_char),
20217        &n,
20218        ap.as_ptr(),
20219        tau.as_ptr(),
20220        q.as_mut_ptr(),
20221        &ldq,
20222        work.as_mut_ptr(),
20223        info,
20224    )
20225}
20226
20227#[inline]
20228pub unsafe fn sopgtr(
20229    uplo: u8,
20230    n: i32,
20231    ap: &[f32],
20232    tau: &[f32],
20233    q: &mut [f32],
20234    ldq: i32,
20235    work: &mut [f32],
20236    info: &mut i32,
20237) {
20238    ffi::sopgtr_(
20239        &(uplo as c_char),
20240        &n,
20241        ap.as_ptr(),
20242        tau.as_ptr(),
20243        q.as_mut_ptr(),
20244        &ldq,
20245        work.as_mut_ptr(),
20246        info,
20247    )
20248}
20249
20250#[inline]
20251pub unsafe fn dopmtr(
20252    side: u8,
20253    uplo: u8,
20254    trans: u8,
20255    m: i32,
20256    n: i32,
20257    ap: &[f64],
20258    tau: &[f64],
20259    c: &mut [f64],
20260    ldc: i32,
20261    work: &mut [f64],
20262    info: &mut i32,
20263) {
20264    ffi::dopmtr_(
20265        &(side as c_char),
20266        &(uplo as c_char),
20267        &(trans as c_char),
20268        &m,
20269        &n,
20270        ap.as_ptr(),
20271        tau.as_ptr(),
20272        c.as_mut_ptr(),
20273        &ldc,
20274        work.as_mut_ptr(),
20275        info,
20276    )
20277}
20278
20279#[inline]
20280pub unsafe fn sopmtr(
20281    side: u8,
20282    uplo: u8,
20283    trans: u8,
20284    m: i32,
20285    n: i32,
20286    ap: &[f32],
20287    tau: &[f32],
20288    c: &mut [f32],
20289    ldc: i32,
20290    work: &mut [f32],
20291    info: &mut i32,
20292) {
20293    ffi::sopmtr_(
20294        &(side as c_char),
20295        &(uplo as c_char),
20296        &(trans as c_char),
20297        &m,
20298        &n,
20299        ap.as_ptr(),
20300        tau.as_ptr(),
20301        c.as_mut_ptr(),
20302        &ldc,
20303        work.as_mut_ptr(),
20304        info,
20305    )
20306}
20307
20308#[inline]
20309pub unsafe fn dorbdb(
20310    trans: u8,
20311    signs: u8,
20312    m: i32,
20313    p: i32,
20314    q: &[i32],
20315    x11: &mut [f64],
20316    ldx11: i32,
20317    x12: &mut [f64],
20318    ldx12: i32,
20319    x21: &mut [f64],
20320    ldx21: i32,
20321    x22: &mut [f64],
20322    ldx22: i32,
20323    theta: &mut [f64],
20324    phi: &mut [f64],
20325    taup1: &mut [f64],
20326    taup2: &mut [f64],
20327    tauq1: &mut [f64],
20328    tauq2: &mut [f64],
20329    work: &mut [f64],
20330    lwork: i32,
20331    info: &mut i32,
20332) {
20333    ffi::dorbdb_(
20334        &(trans as c_char),
20335        &(signs as c_char),
20336        &m,
20337        &p,
20338        q.as_ptr(),
20339        x11.as_mut_ptr(),
20340        &ldx11,
20341        x12.as_mut_ptr(),
20342        &ldx12,
20343        x21.as_mut_ptr(),
20344        &ldx21,
20345        x22.as_mut_ptr(),
20346        &ldx22,
20347        theta.as_mut_ptr(),
20348        phi.as_mut_ptr(),
20349        taup1.as_mut_ptr(),
20350        taup2.as_mut_ptr(),
20351        tauq1.as_mut_ptr(),
20352        tauq2.as_mut_ptr(),
20353        work.as_mut_ptr(),
20354        &lwork,
20355        info,
20356    )
20357}
20358
20359#[inline]
20360pub unsafe fn sorbdb(
20361    trans: u8,
20362    signs: u8,
20363    m: i32,
20364    p: i32,
20365    q: &[i32],
20366    x11: &mut [f32],
20367    ldx11: i32,
20368    x12: &mut [f32],
20369    ldx12: i32,
20370    x21: &mut [f32],
20371    ldx21: i32,
20372    x22: &mut [f32],
20373    ldx22: i32,
20374    theta: &mut [f32],
20375    phi: &mut [f32],
20376    taup1: &mut [f32],
20377    taup2: &mut [f32],
20378    tauq1: &mut [f32],
20379    tauq2: &mut [f32],
20380    work: &mut [f32],
20381    lwork: i32,
20382    info: &mut i32,
20383) {
20384    ffi::sorbdb_(
20385        &(trans as c_char),
20386        &(signs as c_char),
20387        &m,
20388        &p,
20389        q.as_ptr(),
20390        x11.as_mut_ptr(),
20391        &ldx11,
20392        x12.as_mut_ptr(),
20393        &ldx12,
20394        x21.as_mut_ptr(),
20395        &ldx21,
20396        x22.as_mut_ptr(),
20397        &ldx22,
20398        theta.as_mut_ptr(),
20399        phi.as_mut_ptr(),
20400        taup1.as_mut_ptr(),
20401        taup2.as_mut_ptr(),
20402        tauq1.as_mut_ptr(),
20403        tauq2.as_mut_ptr(),
20404        work.as_mut_ptr(),
20405        &lwork,
20406        info,
20407    )
20408}
20409
20410#[inline]
20411pub unsafe fn dorcsd(
20412    jobu1: u8,
20413    jobu2: u8,
20414    jobv1t: u8,
20415    jobv2t: u8,
20416    trans: u8,
20417    signs: u8,
20418    m: i32,
20419    p: i32,
20420    q: &[i32],
20421    x11: &mut [f64],
20422    ldx11: i32,
20423    x12: &mut [f64],
20424    ldx12: i32,
20425    x21: &mut [f64],
20426    ldx21: i32,
20427    x22: &mut [f64],
20428    ldx22: i32,
20429    theta: &mut [f64],
20430    u1: &mut [f64],
20431    ldu1: i32,
20432    u2: &mut [f64],
20433    ldu2: i32,
20434    v1t: &mut [f64],
20435    ldv1t: i32,
20436    v2t: &mut [f64],
20437    ldv2t: i32,
20438    work: &mut [f64],
20439    lwork: i32,
20440    iwork: &mut [i32],
20441    info: &mut i32,
20442) {
20443    ffi::dorcsd_(
20444        &(jobu1 as c_char),
20445        &(jobu2 as c_char),
20446        &(jobv1t as c_char),
20447        &(jobv2t as c_char),
20448        &(trans as c_char),
20449        &(signs as c_char),
20450        &m,
20451        &p,
20452        q.as_ptr(),
20453        x11.as_mut_ptr(),
20454        &ldx11,
20455        x12.as_mut_ptr(),
20456        &ldx12,
20457        x21.as_mut_ptr(),
20458        &ldx21,
20459        x22.as_mut_ptr(),
20460        &ldx22,
20461        theta.as_mut_ptr(),
20462        u1.as_mut_ptr(),
20463        &ldu1,
20464        u2.as_mut_ptr(),
20465        &ldu2,
20466        v1t.as_mut_ptr(),
20467        &ldv1t,
20468        v2t.as_mut_ptr(),
20469        &ldv2t,
20470        work.as_mut_ptr(),
20471        &lwork,
20472        iwork.as_mut_ptr(),
20473        info,
20474    )
20475}
20476
20477#[inline]
20478pub unsafe fn sorcsd(
20479    jobu1: u8,
20480    jobu2: u8,
20481    jobv1t: u8,
20482    jobv2t: u8,
20483    trans: u8,
20484    signs: u8,
20485    m: i32,
20486    p: i32,
20487    q: &[i32],
20488    x11: &mut [f32],
20489    ldx11: i32,
20490    x12: &mut [f32],
20491    ldx12: i32,
20492    x21: &mut [f32],
20493    ldx21: i32,
20494    x22: &mut [f32],
20495    ldx22: i32,
20496    theta: &mut [f32],
20497    u1: &mut [f32],
20498    ldu1: i32,
20499    u2: &mut [f32],
20500    ldu2: i32,
20501    v1t: &mut [f32],
20502    ldv1t: i32,
20503    v2t: &mut [f32],
20504    ldv2t: i32,
20505    work: &mut [f32],
20506    lwork: i32,
20507    iwork: &mut [i32],
20508    info: &mut i32,
20509) {
20510    ffi::sorcsd_(
20511        &(jobu1 as c_char),
20512        &(jobu2 as c_char),
20513        &(jobv1t as c_char),
20514        &(jobv2t as c_char),
20515        &(trans as c_char),
20516        &(signs as c_char),
20517        &m,
20518        &p,
20519        q.as_ptr(),
20520        x11.as_mut_ptr(),
20521        &ldx11,
20522        x12.as_mut_ptr(),
20523        &ldx12,
20524        x21.as_mut_ptr(),
20525        &ldx21,
20526        x22.as_mut_ptr(),
20527        &ldx22,
20528        theta.as_mut_ptr(),
20529        u1.as_mut_ptr(),
20530        &ldu1,
20531        u2.as_mut_ptr(),
20532        &ldu2,
20533        v1t.as_mut_ptr(),
20534        &ldv1t,
20535        v2t.as_mut_ptr(),
20536        &ldv2t,
20537        work.as_mut_ptr(),
20538        &lwork,
20539        iwork.as_mut_ptr(),
20540        info,
20541    )
20542}
20543
20544#[inline]
20545pub unsafe fn dorcsd2by1(
20546    jobu1: u8,
20547    jobu2: u8,
20548    jobv1t: u8,
20549    m: i32,
20550    p: i32,
20551    q: &[i32],
20552    x11: &mut [f64],
20553    ldx11: i32,
20554    x21: &mut [f64],
20555    ldx21: i32,
20556    theta: &mut [f64],
20557    u1: &mut [f64],
20558    ldu1: i32,
20559    u2: &mut [f64],
20560    ldu2: i32,
20561    v1t: &mut [f64],
20562    ldv1t: i32,
20563    work: &mut [f64],
20564    lwork: i32,
20565    iwork: &mut [i32],
20566    info: &mut i32,
20567) {
20568    ffi::dorcsd2by1_(
20569        &(jobu1 as c_char),
20570        &(jobu2 as c_char),
20571        &(jobv1t as c_char),
20572        &m,
20573        &p,
20574        q.as_ptr(),
20575        x11.as_mut_ptr(),
20576        &ldx11,
20577        x21.as_mut_ptr(),
20578        &ldx21,
20579        theta.as_mut_ptr(),
20580        u1.as_mut_ptr(),
20581        &ldu1,
20582        u2.as_mut_ptr(),
20583        &ldu2,
20584        v1t.as_mut_ptr(),
20585        &ldv1t,
20586        work.as_mut_ptr(),
20587        &lwork,
20588        iwork.as_mut_ptr(),
20589        info,
20590    )
20591}
20592
20593#[inline]
20594pub unsafe fn sorcsd2by1(
20595    jobu1: u8,
20596    jobu2: u8,
20597    jobv1t: u8,
20598    m: i32,
20599    p: i32,
20600    q: &[i32],
20601    x11: &mut [f32],
20602    ldx11: i32,
20603    x21: &mut [f32],
20604    ldx21: i32,
20605    theta: &mut [f32],
20606    u1: &mut [f32],
20607    ldu1: i32,
20608    u2: &mut [f32],
20609    ldu2: i32,
20610    v1t: &mut [f32],
20611    ldv1t: i32,
20612    work: &mut [f32],
20613    lwork: i32,
20614    iwork: &mut [i32],
20615    info: &mut i32,
20616) {
20617    ffi::sorcsd2by1_(
20618        &(jobu1 as c_char),
20619        &(jobu2 as c_char),
20620        &(jobv1t as c_char),
20621        &m,
20622        &p,
20623        q.as_ptr(),
20624        x11.as_mut_ptr(),
20625        &ldx11,
20626        x21.as_mut_ptr(),
20627        &ldx21,
20628        theta.as_mut_ptr(),
20629        u1.as_mut_ptr(),
20630        &ldu1,
20631        u2.as_mut_ptr(),
20632        &ldu2,
20633        v1t.as_mut_ptr(),
20634        &ldv1t,
20635        work.as_mut_ptr(),
20636        &lwork,
20637        iwork.as_mut_ptr(),
20638        info,
20639    )
20640}
20641
20642#[inline]
20643pub unsafe fn dorgbr(
20644    vect: u8,
20645    m: i32,
20646    n: i32,
20647    k: i32,
20648    a: &mut [f64],
20649    lda: i32,
20650    tau: &[f64],
20651    work: &mut [f64],
20652    lwork: i32,
20653    info: &mut i32,
20654) {
20655    ffi::dorgbr_(
20656        &(vect as c_char),
20657        &m,
20658        &n,
20659        &k,
20660        a.as_mut_ptr(),
20661        &lda,
20662        tau.as_ptr(),
20663        work.as_mut_ptr(),
20664        &lwork,
20665        info,
20666    )
20667}
20668
20669#[inline]
20670pub unsafe fn sorgbr(
20671    vect: u8,
20672    m: i32,
20673    n: i32,
20674    k: i32,
20675    a: &mut [f32],
20676    lda: i32,
20677    tau: &[f32],
20678    work: &mut [f32],
20679    lwork: i32,
20680    info: &mut i32,
20681) {
20682    ffi::sorgbr_(
20683        &(vect as c_char),
20684        &m,
20685        &n,
20686        &k,
20687        a.as_mut_ptr(),
20688        &lda,
20689        tau.as_ptr(),
20690        work.as_mut_ptr(),
20691        &lwork,
20692        info,
20693    )
20694}
20695
20696#[inline]
20697pub unsafe fn dorghr(
20698    n: i32,
20699    ilo: i32,
20700    ihi: i32,
20701    a: &mut [f64],
20702    lda: i32,
20703    tau: &[f64],
20704    work: &mut [f64],
20705    lwork: i32,
20706    info: &mut i32,
20707) {
20708    ffi::dorghr_(
20709        &n,
20710        &ilo,
20711        &ihi,
20712        a.as_mut_ptr(),
20713        &lda,
20714        tau.as_ptr(),
20715        work.as_mut_ptr(),
20716        &lwork,
20717        info,
20718    )
20719}
20720
20721#[inline]
20722pub unsafe fn sorghr(
20723    n: i32,
20724    ilo: i32,
20725    ihi: i32,
20726    a: &mut [f32],
20727    lda: i32,
20728    tau: &[f32],
20729    work: &mut [f32],
20730    lwork: i32,
20731    info: &mut i32,
20732) {
20733    ffi::sorghr_(
20734        &n,
20735        &ilo,
20736        &ihi,
20737        a.as_mut_ptr(),
20738        &lda,
20739        tau.as_ptr(),
20740        work.as_mut_ptr(),
20741        &lwork,
20742        info,
20743    )
20744}
20745
20746#[inline]
20747pub unsafe fn dorglq(
20748    m: i32,
20749    n: i32,
20750    k: i32,
20751    a: &mut [f64],
20752    lda: i32,
20753    tau: &[f64],
20754    work: &mut [f64],
20755    lwork: i32,
20756    info: &mut i32,
20757) {
20758    ffi::dorglq_(
20759        &m,
20760        &n,
20761        &k,
20762        a.as_mut_ptr(),
20763        &lda,
20764        tau.as_ptr(),
20765        work.as_mut_ptr(),
20766        &lwork,
20767        info,
20768    )
20769}
20770
20771#[inline]
20772pub unsafe fn sorglq(
20773    m: i32,
20774    n: i32,
20775    k: i32,
20776    a: &mut [f32],
20777    lda: i32,
20778    tau: &[f32],
20779    work: &mut [f32],
20780    lwork: i32,
20781    info: &mut i32,
20782) {
20783    ffi::sorglq_(
20784        &m,
20785        &n,
20786        &k,
20787        a.as_mut_ptr(),
20788        &lda,
20789        tau.as_ptr(),
20790        work.as_mut_ptr(),
20791        &lwork,
20792        info,
20793    )
20794}
20795
20796#[inline]
20797pub unsafe fn dorgql(
20798    m: i32,
20799    n: i32,
20800    k: i32,
20801    a: &mut [f64],
20802    lda: i32,
20803    tau: &[f64],
20804    work: &mut [f64],
20805    lwork: i32,
20806    info: &mut i32,
20807) {
20808    ffi::dorgql_(
20809        &m,
20810        &n,
20811        &k,
20812        a.as_mut_ptr(),
20813        &lda,
20814        tau.as_ptr(),
20815        work.as_mut_ptr(),
20816        &lwork,
20817        info,
20818    )
20819}
20820
20821#[inline]
20822pub unsafe fn sorgql(
20823    m: i32,
20824    n: i32,
20825    k: i32,
20826    a: &mut [f32],
20827    lda: i32,
20828    tau: &[f32],
20829    work: &mut [f32],
20830    lwork: i32,
20831    info: &mut i32,
20832) {
20833    ffi::sorgql_(
20834        &m,
20835        &n,
20836        &k,
20837        a.as_mut_ptr(),
20838        &lda,
20839        tau.as_ptr(),
20840        work.as_mut_ptr(),
20841        &lwork,
20842        info,
20843    )
20844}
20845
20846#[inline]
20847pub unsafe fn dorgqr(
20848    m: i32,
20849    n: i32,
20850    k: i32,
20851    a: &mut [f64],
20852    lda: i32,
20853    tau: &[f64],
20854    work: &mut [f64],
20855    lwork: i32,
20856    info: &mut i32,
20857) {
20858    ffi::dorgqr_(
20859        &m,
20860        &n,
20861        &k,
20862        a.as_mut_ptr(),
20863        &lda,
20864        tau.as_ptr(),
20865        work.as_mut_ptr(),
20866        &lwork,
20867        info,
20868    )
20869}
20870
20871#[inline]
20872pub unsafe fn sorgqr(
20873    m: i32,
20874    n: i32,
20875    k: i32,
20876    a: &mut [f32],
20877    lda: i32,
20878    tau: &[f32],
20879    work: &mut [f32],
20880    lwork: i32,
20881    info: &mut i32,
20882) {
20883    ffi::sorgqr_(
20884        &m,
20885        &n,
20886        &k,
20887        a.as_mut_ptr(),
20888        &lda,
20889        tau.as_ptr(),
20890        work.as_mut_ptr(),
20891        &lwork,
20892        info,
20893    )
20894}
20895
20896#[inline]
20897pub unsafe fn dorgrq(
20898    m: i32,
20899    n: i32,
20900    k: i32,
20901    a: &mut [f64],
20902    lda: i32,
20903    tau: &[f64],
20904    work: &mut [f64],
20905    lwork: i32,
20906    info: &mut i32,
20907) {
20908    ffi::dorgrq_(
20909        &m,
20910        &n,
20911        &k,
20912        a.as_mut_ptr(),
20913        &lda,
20914        tau.as_ptr(),
20915        work.as_mut_ptr(),
20916        &lwork,
20917        info,
20918    )
20919}
20920
20921#[inline]
20922pub unsafe fn sorgrq(
20923    m: i32,
20924    n: i32,
20925    k: i32,
20926    a: &mut [f32],
20927    lda: i32,
20928    tau: &[f32],
20929    work: &mut [f32],
20930    lwork: i32,
20931    info: &mut i32,
20932) {
20933    ffi::sorgrq_(
20934        &m,
20935        &n,
20936        &k,
20937        a.as_mut_ptr(),
20938        &lda,
20939        tau.as_ptr(),
20940        work.as_mut_ptr(),
20941        &lwork,
20942        info,
20943    )
20944}
20945
20946#[inline]
20947pub unsafe fn dorgtr(
20948    uplo: u8,
20949    n: i32,
20950    a: &mut [f64],
20951    lda: i32,
20952    tau: &[f64],
20953    work: &mut [f64],
20954    lwork: i32,
20955    info: &mut i32,
20956) {
20957    ffi::dorgtr_(
20958        &(uplo as c_char),
20959        &n,
20960        a.as_mut_ptr(),
20961        &lda,
20962        tau.as_ptr(),
20963        work.as_mut_ptr(),
20964        &lwork,
20965        info,
20966    )
20967}
20968
20969#[inline]
20970pub unsafe fn sorgtr(
20971    uplo: u8,
20972    n: i32,
20973    a: &mut [f32],
20974    lda: i32,
20975    tau: &[f32],
20976    work: &mut [f32],
20977    lwork: i32,
20978    info: &mut i32,
20979) {
20980    ffi::sorgtr_(
20981        &(uplo as c_char),
20982        &n,
20983        a.as_mut_ptr(),
20984        &lda,
20985        tau.as_ptr(),
20986        work.as_mut_ptr(),
20987        &lwork,
20988        info,
20989    )
20990}
20991
20992#[inline]
20993pub unsafe fn dorgtsqr_row(
20994    m: i32,
20995    n: i32,
20996    mb: &[i32],
20997    nb: i32,
20998    a: &mut [f64],
20999    lda: i32,
21000    t: &[f64],
21001    ldt: i32,
21002    work: &mut [f64],
21003    lwork: i32,
21004    info: &mut i32,
21005) {
21006    ffi::dorgtsqr_row_(
21007        &m,
21008        &n,
21009        mb.as_ptr(),
21010        &nb,
21011        a.as_mut_ptr(),
21012        &lda,
21013        t.as_ptr(),
21014        &ldt,
21015        work.as_mut_ptr(),
21016        &lwork,
21017        info,
21018    )
21019}
21020
21021#[inline]
21022pub unsafe fn sorgtsqr_row(
21023    m: i32,
21024    n: i32,
21025    mb: &[i32],
21026    nb: i32,
21027    a: &mut [f32],
21028    lda: i32,
21029    t: &[f32],
21030    ldt: i32,
21031    work: &mut [f32],
21032    lwork: i32,
21033    info: &mut i32,
21034) {
21035    ffi::sorgtsqr_row_(
21036        &m,
21037        &n,
21038        mb.as_ptr(),
21039        &nb,
21040        a.as_mut_ptr(),
21041        &lda,
21042        t.as_ptr(),
21043        &ldt,
21044        work.as_mut_ptr(),
21045        &lwork,
21046        info,
21047    )
21048}
21049
21050#[inline]
21051pub unsafe fn dormbr(
21052    vect: u8,
21053    side: u8,
21054    trans: u8,
21055    m: i32,
21056    n: i32,
21057    k: i32,
21058    a: &[f64],
21059    lda: i32,
21060    tau: &[f64],
21061    c: &mut [f64],
21062    ldc: i32,
21063    work: &mut [f64],
21064    lwork: i32,
21065    info: &mut i32,
21066) {
21067    ffi::dormbr_(
21068        &(vect as c_char),
21069        &(side as c_char),
21070        &(trans as c_char),
21071        &m,
21072        &n,
21073        &k,
21074        a.as_ptr(),
21075        &lda,
21076        tau.as_ptr(),
21077        c.as_mut_ptr(),
21078        &ldc,
21079        work.as_mut_ptr(),
21080        &lwork,
21081        info,
21082    )
21083}
21084
21085#[inline]
21086pub unsafe fn sormbr(
21087    vect: u8,
21088    side: u8,
21089    trans: u8,
21090    m: i32,
21091    n: i32,
21092    k: i32,
21093    a: &[f32],
21094    lda: i32,
21095    tau: &[f32],
21096    c: &mut [f32],
21097    ldc: i32,
21098    work: &mut [f32],
21099    lwork: i32,
21100    info: &mut i32,
21101) {
21102    ffi::sormbr_(
21103        &(vect as c_char),
21104        &(side as c_char),
21105        &(trans as c_char),
21106        &m,
21107        &n,
21108        &k,
21109        a.as_ptr(),
21110        &lda,
21111        tau.as_ptr(),
21112        c.as_mut_ptr(),
21113        &ldc,
21114        work.as_mut_ptr(),
21115        &lwork,
21116        info,
21117    )
21118}
21119
21120#[inline]
21121pub unsafe fn dormhr(
21122    side: u8,
21123    trans: u8,
21124    m: i32,
21125    n: i32,
21126    ilo: i32,
21127    ihi: i32,
21128    a: &[f64],
21129    lda: i32,
21130    tau: &[f64],
21131    c: &mut [f64],
21132    ldc: i32,
21133    work: &mut [f64],
21134    lwork: i32,
21135    info: &mut i32,
21136) {
21137    ffi::dormhr_(
21138        &(side as c_char),
21139        &(trans as c_char),
21140        &m,
21141        &n,
21142        &ilo,
21143        &ihi,
21144        a.as_ptr(),
21145        &lda,
21146        tau.as_ptr(),
21147        c.as_mut_ptr(),
21148        &ldc,
21149        work.as_mut_ptr(),
21150        &lwork,
21151        info,
21152    )
21153}
21154
21155#[inline]
21156pub unsafe fn sormhr(
21157    side: u8,
21158    trans: u8,
21159    m: i32,
21160    n: i32,
21161    ilo: i32,
21162    ihi: i32,
21163    a: &[f32],
21164    lda: i32,
21165    tau: &[f32],
21166    c: &mut [f32],
21167    ldc: i32,
21168    work: &mut [f32],
21169    lwork: i32,
21170    info: &mut i32,
21171) {
21172    ffi::sormhr_(
21173        &(side as c_char),
21174        &(trans as c_char),
21175        &m,
21176        &n,
21177        &ilo,
21178        &ihi,
21179        a.as_ptr(),
21180        &lda,
21181        tau.as_ptr(),
21182        c.as_mut_ptr(),
21183        &ldc,
21184        work.as_mut_ptr(),
21185        &lwork,
21186        info,
21187    )
21188}
21189
21190#[inline]
21191pub unsafe fn dormlq(
21192    side: u8,
21193    trans: u8,
21194    m: i32,
21195    n: i32,
21196    k: i32,
21197    a: &[f64],
21198    lda: i32,
21199    tau: &[f64],
21200    c: &mut [f64],
21201    ldc: i32,
21202    work: &mut [f64],
21203    lwork: i32,
21204    info: &mut i32,
21205) {
21206    ffi::dormlq_(
21207        &(side as c_char),
21208        &(trans as c_char),
21209        &m,
21210        &n,
21211        &k,
21212        a.as_ptr(),
21213        &lda,
21214        tau.as_ptr(),
21215        c.as_mut_ptr(),
21216        &ldc,
21217        work.as_mut_ptr(),
21218        &lwork,
21219        info,
21220    )
21221}
21222
21223#[inline]
21224pub unsafe fn sormlq(
21225    side: u8,
21226    trans: u8,
21227    m: i32,
21228    n: i32,
21229    k: i32,
21230    a: &[f32],
21231    lda: i32,
21232    tau: &[f32],
21233    c: &mut [f32],
21234    ldc: i32,
21235    work: &mut [f32],
21236    lwork: i32,
21237    info: &mut i32,
21238) {
21239    ffi::sormlq_(
21240        &(side as c_char),
21241        &(trans as c_char),
21242        &m,
21243        &n,
21244        &k,
21245        a.as_ptr(),
21246        &lda,
21247        tau.as_ptr(),
21248        c.as_mut_ptr(),
21249        &ldc,
21250        work.as_mut_ptr(),
21251        &lwork,
21252        info,
21253    )
21254}
21255
21256#[inline]
21257pub unsafe fn dormql(
21258    side: u8,
21259    trans: u8,
21260    m: i32,
21261    n: i32,
21262    k: i32,
21263    a: &[f64],
21264    lda: i32,
21265    tau: &[f64],
21266    c: &mut [f64],
21267    ldc: i32,
21268    work: &mut [f64],
21269    lwork: i32,
21270    info: &mut i32,
21271) {
21272    ffi::dormql_(
21273        &(side as c_char),
21274        &(trans as c_char),
21275        &m,
21276        &n,
21277        &k,
21278        a.as_ptr(),
21279        &lda,
21280        tau.as_ptr(),
21281        c.as_mut_ptr(),
21282        &ldc,
21283        work.as_mut_ptr(),
21284        &lwork,
21285        info,
21286    )
21287}
21288
21289#[inline]
21290pub unsafe fn sormql(
21291    side: u8,
21292    trans: u8,
21293    m: i32,
21294    n: i32,
21295    k: i32,
21296    a: &[f32],
21297    lda: i32,
21298    tau: &[f32],
21299    c: &mut [f32],
21300    ldc: i32,
21301    work: &mut [f32],
21302    lwork: i32,
21303    info: &mut i32,
21304) {
21305    ffi::sormql_(
21306        &(side as c_char),
21307        &(trans as c_char),
21308        &m,
21309        &n,
21310        &k,
21311        a.as_ptr(),
21312        &lda,
21313        tau.as_ptr(),
21314        c.as_mut_ptr(),
21315        &ldc,
21316        work.as_mut_ptr(),
21317        &lwork,
21318        info,
21319    )
21320}
21321
21322#[inline]
21323pub unsafe fn dormqr(
21324    side: u8,
21325    trans: u8,
21326    m: i32,
21327    n: i32,
21328    k: i32,
21329    a: &[f64],
21330    lda: i32,
21331    tau: &[f64],
21332    c: &mut [f64],
21333    ldc: i32,
21334    work: &mut [f64],
21335    lwork: i32,
21336    info: &mut i32,
21337) {
21338    ffi::dormqr_(
21339        &(side as c_char),
21340        &(trans as c_char),
21341        &m,
21342        &n,
21343        &k,
21344        a.as_ptr(),
21345        &lda,
21346        tau.as_ptr(),
21347        c.as_mut_ptr(),
21348        &ldc,
21349        work.as_mut_ptr(),
21350        &lwork,
21351        info,
21352    )
21353}
21354
21355#[inline]
21356pub unsafe fn sormqr(
21357    side: u8,
21358    trans: u8,
21359    m: i32,
21360    n: i32,
21361    k: i32,
21362    a: &[f32],
21363    lda: i32,
21364    tau: &[f32],
21365    c: &mut [f32],
21366    ldc: i32,
21367    work: &mut [f32],
21368    lwork: i32,
21369    info: &mut i32,
21370) {
21371    ffi::sormqr_(
21372        &(side as c_char),
21373        &(trans as c_char),
21374        &m,
21375        &n,
21376        &k,
21377        a.as_ptr(),
21378        &lda,
21379        tau.as_ptr(),
21380        c.as_mut_ptr(),
21381        &ldc,
21382        work.as_mut_ptr(),
21383        &lwork,
21384        info,
21385    )
21386}
21387
21388#[inline]
21389pub unsafe fn dormrq(
21390    side: u8,
21391    trans: u8,
21392    m: i32,
21393    n: i32,
21394    k: i32,
21395    a: &[f64],
21396    lda: i32,
21397    tau: &[f64],
21398    c: &mut [f64],
21399    ldc: i32,
21400    work: &mut [f64],
21401    lwork: i32,
21402    info: &mut i32,
21403) {
21404    ffi::dormrq_(
21405        &(side as c_char),
21406        &(trans as c_char),
21407        &m,
21408        &n,
21409        &k,
21410        a.as_ptr(),
21411        &lda,
21412        tau.as_ptr(),
21413        c.as_mut_ptr(),
21414        &ldc,
21415        work.as_mut_ptr(),
21416        &lwork,
21417        info,
21418    )
21419}
21420
21421#[inline]
21422pub unsafe fn sormrq(
21423    side: u8,
21424    trans: u8,
21425    m: i32,
21426    n: i32,
21427    k: i32,
21428    a: &[f32],
21429    lda: i32,
21430    tau: &[f32],
21431    c: &mut [f32],
21432    ldc: i32,
21433    work: &mut [f32],
21434    lwork: i32,
21435    info: &mut i32,
21436) {
21437    ffi::sormrq_(
21438        &(side as c_char),
21439        &(trans as c_char),
21440        &m,
21441        &n,
21442        &k,
21443        a.as_ptr(),
21444        &lda,
21445        tau.as_ptr(),
21446        c.as_mut_ptr(),
21447        &ldc,
21448        work.as_mut_ptr(),
21449        &lwork,
21450        info,
21451    )
21452}
21453
21454#[inline]
21455pub unsafe fn dormrz(
21456    side: u8,
21457    trans: u8,
21458    m: i32,
21459    n: i32,
21460    k: i32,
21461    l: i32,
21462    a: &[f64],
21463    lda: i32,
21464    tau: &[f64],
21465    c: &mut [f64],
21466    ldc: i32,
21467    work: &mut [f64],
21468    lwork: i32,
21469    info: &mut i32,
21470) {
21471    ffi::dormrz_(
21472        &(side as c_char),
21473        &(trans as c_char),
21474        &m,
21475        &n,
21476        &k,
21477        &l,
21478        a.as_ptr(),
21479        &lda,
21480        tau.as_ptr(),
21481        c.as_mut_ptr(),
21482        &ldc,
21483        work.as_mut_ptr(),
21484        &lwork,
21485        info,
21486    )
21487}
21488
21489#[inline]
21490pub unsafe fn sormrz(
21491    side: u8,
21492    trans: u8,
21493    m: i32,
21494    n: i32,
21495    k: i32,
21496    l: i32,
21497    a: &[f32],
21498    lda: i32,
21499    tau: &[f32],
21500    c: &mut [f32],
21501    ldc: i32,
21502    work: &mut [f32],
21503    lwork: i32,
21504    info: &mut i32,
21505) {
21506    ffi::sormrz_(
21507        &(side as c_char),
21508        &(trans as c_char),
21509        &m,
21510        &n,
21511        &k,
21512        &l,
21513        a.as_ptr(),
21514        &lda,
21515        tau.as_ptr(),
21516        c.as_mut_ptr(),
21517        &ldc,
21518        work.as_mut_ptr(),
21519        &lwork,
21520        info,
21521    )
21522}
21523
21524#[inline]
21525pub unsafe fn dormtr(
21526    side: u8,
21527    uplo: u8,
21528    trans: u8,
21529    m: i32,
21530    n: i32,
21531    a: &[f64],
21532    lda: i32,
21533    tau: &[f64],
21534    c: &mut [f64],
21535    ldc: i32,
21536    work: &mut [f64],
21537    lwork: i32,
21538    info: &mut i32,
21539) {
21540    ffi::dormtr_(
21541        &(side as c_char),
21542        &(uplo as c_char),
21543        &(trans as c_char),
21544        &m,
21545        &n,
21546        a.as_ptr(),
21547        &lda,
21548        tau.as_ptr(),
21549        c.as_mut_ptr(),
21550        &ldc,
21551        work.as_mut_ptr(),
21552        &lwork,
21553        info,
21554    )
21555}
21556
21557#[inline]
21558pub unsafe fn sormtr(
21559    side: u8,
21560    uplo: u8,
21561    trans: u8,
21562    m: i32,
21563    n: i32,
21564    a: &[f32],
21565    lda: i32,
21566    tau: &[f32],
21567    c: &mut [f32],
21568    ldc: i32,
21569    work: &mut [f32],
21570    lwork: i32,
21571    info: &mut i32,
21572) {
21573    ffi::sormtr_(
21574        &(side as c_char),
21575        &(uplo as c_char),
21576        &(trans as c_char),
21577        &m,
21578        &n,
21579        a.as_ptr(),
21580        &lda,
21581        tau.as_ptr(),
21582        c.as_mut_ptr(),
21583        &ldc,
21584        work.as_mut_ptr(),
21585        &lwork,
21586        info,
21587    )
21588}
21589
21590#[inline]
21591pub unsafe fn cpbcon(
21592    uplo: u8,
21593    n: i32,
21594    kd: i32,
21595    ab: &[c32],
21596    ldab: i32,
21597    anorm: f32,
21598    rcond: &mut f32,
21599    work: &mut [c32],
21600    rwork: &mut [f32],
21601    info: &mut i32,
21602) {
21603    ffi::cpbcon_(
21604        &(uplo as c_char),
21605        &n,
21606        &kd,
21607        ab.as_ptr() as *const _,
21608        &ldab,
21609        &anorm,
21610        rcond,
21611        work.as_mut_ptr() as *mut _,
21612        rwork.as_mut_ptr(),
21613        info,
21614    )
21615}
21616
21617#[inline]
21618pub unsafe fn dpbcon(
21619    uplo: u8,
21620    n: i32,
21621    kd: i32,
21622    ab: &[f64],
21623    ldab: i32,
21624    anorm: f64,
21625    rcond: &mut f64,
21626    work: &mut [f64],
21627    iwork: &mut [i32],
21628    info: &mut i32,
21629) {
21630    ffi::dpbcon_(
21631        &(uplo as c_char),
21632        &n,
21633        &kd,
21634        ab.as_ptr(),
21635        &ldab,
21636        &anorm,
21637        rcond,
21638        work.as_mut_ptr(),
21639        iwork.as_mut_ptr(),
21640        info,
21641    )
21642}
21643
21644#[inline]
21645pub unsafe fn spbcon(
21646    uplo: u8,
21647    n: i32,
21648    kd: i32,
21649    ab: &[f32],
21650    ldab: i32,
21651    anorm: f32,
21652    rcond: &mut f32,
21653    work: &mut [f32],
21654    iwork: &mut [i32],
21655    info: &mut i32,
21656) {
21657    ffi::spbcon_(
21658        &(uplo as c_char),
21659        &n,
21660        &kd,
21661        ab.as_ptr(),
21662        &ldab,
21663        &anorm,
21664        rcond,
21665        work.as_mut_ptr(),
21666        iwork.as_mut_ptr(),
21667        info,
21668    )
21669}
21670
21671#[inline]
21672pub unsafe fn zpbcon(
21673    uplo: u8,
21674    n: i32,
21675    kd: i32,
21676    ab: &[c64],
21677    ldab: i32,
21678    anorm: f64,
21679    rcond: &mut f64,
21680    work: &mut [c64],
21681    rwork: &mut [f64],
21682    info: &mut i32,
21683) {
21684    ffi::zpbcon_(
21685        &(uplo as c_char),
21686        &n,
21687        &kd,
21688        ab.as_ptr() as *const _,
21689        &ldab,
21690        &anorm,
21691        rcond,
21692        work.as_mut_ptr() as *mut _,
21693        rwork.as_mut_ptr(),
21694        info,
21695    )
21696}
21697
21698#[inline]
21699pub unsafe fn cpbequ(
21700    uplo: u8,
21701    n: i32,
21702    kd: i32,
21703    ab: &[c32],
21704    ldab: i32,
21705    s: &mut [f32],
21706    scond: &mut [f32],
21707    amax: &mut f32,
21708    info: &mut i32,
21709) {
21710    ffi::cpbequ_(
21711        &(uplo as c_char),
21712        &n,
21713        &kd,
21714        ab.as_ptr() as *const _,
21715        &ldab,
21716        s.as_mut_ptr(),
21717        scond.as_mut_ptr(),
21718        amax,
21719        info,
21720    )
21721}
21722
21723#[inline]
21724pub unsafe fn dpbequ(
21725    uplo: u8,
21726    n: i32,
21727    kd: i32,
21728    ab: &[f64],
21729    ldab: i32,
21730    s: &mut [f64],
21731    scond: &mut [f64],
21732    amax: &mut f64,
21733    info: &mut i32,
21734) {
21735    ffi::dpbequ_(
21736        &(uplo as c_char),
21737        &n,
21738        &kd,
21739        ab.as_ptr(),
21740        &ldab,
21741        s.as_mut_ptr(),
21742        scond.as_mut_ptr(),
21743        amax,
21744        info,
21745    )
21746}
21747
21748#[inline]
21749pub unsafe fn spbequ(
21750    uplo: u8,
21751    n: i32,
21752    kd: i32,
21753    ab: &[f32],
21754    ldab: i32,
21755    s: &mut [f32],
21756    scond: &mut [f32],
21757    amax: &mut f32,
21758    info: &mut i32,
21759) {
21760    ffi::spbequ_(
21761        &(uplo as c_char),
21762        &n,
21763        &kd,
21764        ab.as_ptr(),
21765        &ldab,
21766        s.as_mut_ptr(),
21767        scond.as_mut_ptr(),
21768        amax,
21769        info,
21770    )
21771}
21772
21773#[inline]
21774pub unsafe fn zpbequ(
21775    uplo: u8,
21776    n: i32,
21777    kd: i32,
21778    ab: &[c64],
21779    ldab: i32,
21780    s: &mut [f64],
21781    scond: &mut [f64],
21782    amax: &mut f64,
21783    info: &mut i32,
21784) {
21785    ffi::zpbequ_(
21786        &(uplo as c_char),
21787        &n,
21788        &kd,
21789        ab.as_ptr() as *const _,
21790        &ldab,
21791        s.as_mut_ptr(),
21792        scond.as_mut_ptr(),
21793        amax,
21794        info,
21795    )
21796}
21797
21798#[inline]
21799pub unsafe fn cpbrfs(
21800    uplo: u8,
21801    n: i32,
21802    kd: i32,
21803    nrhs: i32,
21804    ab: &[c32],
21805    ldab: i32,
21806    afb: &[c32],
21807    ldafb: i32,
21808    b: &[c32],
21809    ldb: i32,
21810    x: &mut [c32],
21811    ldx: i32,
21812    ferr: &mut [f32],
21813    berr: &mut [f32],
21814    work: &mut [c32],
21815    rwork: &mut [f32],
21816    info: &mut i32,
21817) {
21818    ffi::cpbrfs_(
21819        &(uplo as c_char),
21820        &n,
21821        &kd,
21822        &nrhs,
21823        ab.as_ptr() as *const _,
21824        &ldab,
21825        afb.as_ptr() as *const _,
21826        &ldafb,
21827        b.as_ptr() as *const _,
21828        &ldb,
21829        x.as_mut_ptr() as *mut _,
21830        &ldx,
21831        ferr.as_mut_ptr(),
21832        berr.as_mut_ptr(),
21833        work.as_mut_ptr() as *mut _,
21834        rwork.as_mut_ptr(),
21835        info,
21836    )
21837}
21838
21839#[inline]
21840pub unsafe fn dpbrfs(
21841    uplo: u8,
21842    n: i32,
21843    kd: i32,
21844    nrhs: i32,
21845    ab: &[f64],
21846    ldab: i32,
21847    afb: &[f64],
21848    ldafb: i32,
21849    b: &[f64],
21850    ldb: i32,
21851    x: &mut [f64],
21852    ldx: i32,
21853    ferr: &mut [f64],
21854    berr: &mut [f64],
21855    work: &mut [f64],
21856    iwork: &mut [i32],
21857    info: &mut i32,
21858) {
21859    ffi::dpbrfs_(
21860        &(uplo as c_char),
21861        &n,
21862        &kd,
21863        &nrhs,
21864        ab.as_ptr(),
21865        &ldab,
21866        afb.as_ptr(),
21867        &ldafb,
21868        b.as_ptr(),
21869        &ldb,
21870        x.as_mut_ptr(),
21871        &ldx,
21872        ferr.as_mut_ptr(),
21873        berr.as_mut_ptr(),
21874        work.as_mut_ptr(),
21875        iwork.as_mut_ptr(),
21876        info,
21877    )
21878}
21879
21880#[inline]
21881pub unsafe fn spbrfs(
21882    uplo: u8,
21883    n: i32,
21884    kd: i32,
21885    nrhs: i32,
21886    ab: &[f32],
21887    ldab: i32,
21888    afb: &[f32],
21889    ldafb: i32,
21890    b: &[f32],
21891    ldb: i32,
21892    x: &mut [f32],
21893    ldx: i32,
21894    ferr: &mut [f32],
21895    berr: &mut [f32],
21896    work: &mut [f32],
21897    iwork: &mut [i32],
21898    info: &mut i32,
21899) {
21900    ffi::spbrfs_(
21901        &(uplo as c_char),
21902        &n,
21903        &kd,
21904        &nrhs,
21905        ab.as_ptr(),
21906        &ldab,
21907        afb.as_ptr(),
21908        &ldafb,
21909        b.as_ptr(),
21910        &ldb,
21911        x.as_mut_ptr(),
21912        &ldx,
21913        ferr.as_mut_ptr(),
21914        berr.as_mut_ptr(),
21915        work.as_mut_ptr(),
21916        iwork.as_mut_ptr(),
21917        info,
21918    )
21919}
21920
21921#[inline]
21922pub unsafe fn zpbrfs(
21923    uplo: u8,
21924    n: i32,
21925    kd: i32,
21926    nrhs: i32,
21927    ab: &[c64],
21928    ldab: i32,
21929    afb: &[c64],
21930    ldafb: i32,
21931    b: &[c64],
21932    ldb: i32,
21933    x: &mut [c64],
21934    ldx: i32,
21935    ferr: &mut [f64],
21936    berr: &mut [f64],
21937    work: &mut [c64],
21938    rwork: &mut [f64],
21939    info: &mut i32,
21940) {
21941    ffi::zpbrfs_(
21942        &(uplo as c_char),
21943        &n,
21944        &kd,
21945        &nrhs,
21946        ab.as_ptr() as *const _,
21947        &ldab,
21948        afb.as_ptr() as *const _,
21949        &ldafb,
21950        b.as_ptr() as *const _,
21951        &ldb,
21952        x.as_mut_ptr() as *mut _,
21953        &ldx,
21954        ferr.as_mut_ptr(),
21955        berr.as_mut_ptr(),
21956        work.as_mut_ptr() as *mut _,
21957        rwork.as_mut_ptr(),
21958        info,
21959    )
21960}
21961
21962#[inline]
21963pub unsafe fn cpbstf(uplo: u8, n: i32, kd: i32, ab: &mut [c32], ldab: i32, info: &mut i32) {
21964    ffi::cpbstf_(
21965        &(uplo as c_char),
21966        &n,
21967        &kd,
21968        ab.as_mut_ptr() as *mut _,
21969        &ldab,
21970        info,
21971    )
21972}
21973
21974#[inline]
21975pub unsafe fn dpbstf(uplo: u8, n: i32, kd: i32, ab: &mut [f64], ldab: i32, info: &mut i32) {
21976    ffi::dpbstf_(&(uplo as c_char), &n, &kd, ab.as_mut_ptr(), &ldab, info)
21977}
21978
21979#[inline]
21980pub unsafe fn spbstf(uplo: u8, n: i32, kd: i32, ab: &mut [f32], ldab: i32, info: &mut i32) {
21981    ffi::spbstf_(&(uplo as c_char), &n, &kd, ab.as_mut_ptr(), &ldab, info)
21982}
21983
21984#[inline]
21985pub unsafe fn zpbstf(uplo: u8, n: i32, kd: i32, ab: &mut [c64], ldab: i32, info: &mut i32) {
21986    ffi::zpbstf_(
21987        &(uplo as c_char),
21988        &n,
21989        &kd,
21990        ab.as_mut_ptr() as *mut _,
21991        &ldab,
21992        info,
21993    )
21994}
21995
21996#[inline]
21997pub unsafe fn cpbsv(
21998    uplo: u8,
21999    n: i32,
22000    kd: i32,
22001    nrhs: i32,
22002    ab: &mut [c32],
22003    ldab: i32,
22004    b: &mut [c32],
22005    ldb: i32,
22006    info: &mut i32,
22007) {
22008    ffi::cpbsv_(
22009        &(uplo as c_char),
22010        &n,
22011        &kd,
22012        &nrhs,
22013        ab.as_mut_ptr() as *mut _,
22014        &ldab,
22015        b.as_mut_ptr() as *mut _,
22016        &ldb,
22017        info,
22018    )
22019}
22020
22021#[inline]
22022pub unsafe fn dpbsv(
22023    uplo: u8,
22024    n: i32,
22025    kd: i32,
22026    nrhs: i32,
22027    ab: &mut [f64],
22028    ldab: i32,
22029    b: &mut [f64],
22030    ldb: i32,
22031    info: &mut i32,
22032) {
22033    ffi::dpbsv_(
22034        &(uplo as c_char),
22035        &n,
22036        &kd,
22037        &nrhs,
22038        ab.as_mut_ptr(),
22039        &ldab,
22040        b.as_mut_ptr(),
22041        &ldb,
22042        info,
22043    )
22044}
22045
22046#[inline]
22047pub unsafe fn spbsv(
22048    uplo: u8,
22049    n: i32,
22050    kd: i32,
22051    nrhs: i32,
22052    ab: &mut [f32],
22053    ldab: i32,
22054    b: &mut [f32],
22055    ldb: i32,
22056    info: &mut i32,
22057) {
22058    ffi::spbsv_(
22059        &(uplo as c_char),
22060        &n,
22061        &kd,
22062        &nrhs,
22063        ab.as_mut_ptr(),
22064        &ldab,
22065        b.as_mut_ptr(),
22066        &ldb,
22067        info,
22068    )
22069}
22070
22071#[inline]
22072pub unsafe fn zpbsv(
22073    uplo: u8,
22074    n: i32,
22075    kd: i32,
22076    nrhs: i32,
22077    ab: &mut [c64],
22078    ldab: i32,
22079    b: &mut [c64],
22080    ldb: i32,
22081    info: &mut i32,
22082) {
22083    ffi::zpbsv_(
22084        &(uplo as c_char),
22085        &n,
22086        &kd,
22087        &nrhs,
22088        ab.as_mut_ptr() as *mut _,
22089        &ldab,
22090        b.as_mut_ptr() as *mut _,
22091        &ldb,
22092        info,
22093    )
22094}
22095
22096#[inline]
22097pub unsafe fn cpbsvx(
22098    fact: u8,
22099    uplo: u8,
22100    n: i32,
22101    kd: i32,
22102    nrhs: i32,
22103    ab: &mut [c32],
22104    ldab: i32,
22105    afb: &mut [c32],
22106    ldafb: i32,
22107    equed: &mut u8,
22108    s: &mut [f32],
22109    b: &mut [c32],
22110    ldb: i32,
22111    x: &mut [c32],
22112    ldx: i32,
22113    rcond: &mut f32,
22114    ferr: &mut [f32],
22115    berr: &mut [f32],
22116    work: &mut [c32],
22117    rwork: &mut [f32],
22118    info: &mut i32,
22119) {
22120    ffi::cpbsvx_(
22121        &(fact as c_char),
22122        &(uplo as c_char),
22123        &n,
22124        &kd,
22125        &nrhs,
22126        ab.as_mut_ptr() as *mut _,
22127        &ldab,
22128        afb.as_mut_ptr() as *mut _,
22129        &ldafb,
22130        equed as *mut _ as *mut _,
22131        s.as_mut_ptr(),
22132        b.as_mut_ptr() as *mut _,
22133        &ldb,
22134        x.as_mut_ptr() as *mut _,
22135        &ldx,
22136        rcond,
22137        ferr.as_mut_ptr(),
22138        berr.as_mut_ptr(),
22139        work.as_mut_ptr() as *mut _,
22140        rwork.as_mut_ptr(),
22141        info,
22142    )
22143}
22144
22145#[inline]
22146pub unsafe fn dpbsvx(
22147    fact: u8,
22148    uplo: u8,
22149    n: i32,
22150    kd: i32,
22151    nrhs: i32,
22152    ab: &mut [f64],
22153    ldab: i32,
22154    afb: &mut [f64],
22155    ldafb: i32,
22156    equed: &mut u8,
22157    s: &mut [f64],
22158    b: &mut [f64],
22159    ldb: i32,
22160    x: &mut [f64],
22161    ldx: i32,
22162    rcond: &mut f64,
22163    ferr: &mut [f64],
22164    berr: &mut [f64],
22165    work: &mut [f64],
22166    iwork: &mut [i32],
22167    info: &mut i32,
22168) {
22169    ffi::dpbsvx_(
22170        &(fact as c_char),
22171        &(uplo as c_char),
22172        &n,
22173        &kd,
22174        &nrhs,
22175        ab.as_mut_ptr(),
22176        &ldab,
22177        afb.as_mut_ptr(),
22178        &ldafb,
22179        equed as *mut _ as *mut _,
22180        s.as_mut_ptr(),
22181        b.as_mut_ptr(),
22182        &ldb,
22183        x.as_mut_ptr(),
22184        &ldx,
22185        rcond,
22186        ferr.as_mut_ptr(),
22187        berr.as_mut_ptr(),
22188        work.as_mut_ptr(),
22189        iwork.as_mut_ptr(),
22190        info,
22191    )
22192}
22193
22194#[inline]
22195pub unsafe fn spbsvx(
22196    fact: u8,
22197    uplo: u8,
22198    n: i32,
22199    kd: i32,
22200    nrhs: i32,
22201    ab: &mut [f32],
22202    ldab: i32,
22203    afb: &mut [f32],
22204    ldafb: i32,
22205    equed: &mut u8,
22206    s: &mut [f32],
22207    b: &mut [f32],
22208    ldb: i32,
22209    x: &mut [f32],
22210    ldx: i32,
22211    rcond: &mut f32,
22212    ferr: &mut [f32],
22213    berr: &mut [f32],
22214    work: &mut [f32],
22215    iwork: &mut [i32],
22216    info: &mut i32,
22217) {
22218    ffi::spbsvx_(
22219        &(fact as c_char),
22220        &(uplo as c_char),
22221        &n,
22222        &kd,
22223        &nrhs,
22224        ab.as_mut_ptr(),
22225        &ldab,
22226        afb.as_mut_ptr(),
22227        &ldafb,
22228        equed as *mut _ as *mut _,
22229        s.as_mut_ptr(),
22230        b.as_mut_ptr(),
22231        &ldb,
22232        x.as_mut_ptr(),
22233        &ldx,
22234        rcond,
22235        ferr.as_mut_ptr(),
22236        berr.as_mut_ptr(),
22237        work.as_mut_ptr(),
22238        iwork.as_mut_ptr(),
22239        info,
22240    )
22241}
22242
22243#[inline]
22244pub unsafe fn zpbsvx(
22245    fact: u8,
22246    uplo: u8,
22247    n: i32,
22248    kd: i32,
22249    nrhs: i32,
22250    ab: &mut [c64],
22251    ldab: i32,
22252    afb: &mut [c64],
22253    ldafb: i32,
22254    equed: &mut u8,
22255    s: &mut [f64],
22256    b: &mut [c64],
22257    ldb: i32,
22258    x: &mut [c64],
22259    ldx: i32,
22260    rcond: &mut f64,
22261    ferr: &mut [f64],
22262    berr: &mut [f64],
22263    work: &mut [c64],
22264    rwork: &mut [f64],
22265    info: &mut i32,
22266) {
22267    ffi::zpbsvx_(
22268        &(fact as c_char),
22269        &(uplo as c_char),
22270        &n,
22271        &kd,
22272        &nrhs,
22273        ab.as_mut_ptr() as *mut _,
22274        &ldab,
22275        afb.as_mut_ptr() as *mut _,
22276        &ldafb,
22277        equed as *mut _ as *mut _,
22278        s.as_mut_ptr(),
22279        b.as_mut_ptr() as *mut _,
22280        &ldb,
22281        x.as_mut_ptr() as *mut _,
22282        &ldx,
22283        rcond,
22284        ferr.as_mut_ptr(),
22285        berr.as_mut_ptr(),
22286        work.as_mut_ptr() as *mut _,
22287        rwork.as_mut_ptr(),
22288        info,
22289    )
22290}
22291
22292#[inline]
22293pub unsafe fn cpbtrf(uplo: u8, n: i32, kd: i32, ab: &mut [c32], ldab: i32, info: &mut i32) {
22294    ffi::cpbtrf_(
22295        &(uplo as c_char),
22296        &n,
22297        &kd,
22298        ab.as_mut_ptr() as *mut _,
22299        &ldab,
22300        info,
22301    )
22302}
22303
22304#[inline]
22305pub unsafe fn dpbtrf(uplo: u8, n: i32, kd: i32, ab: &mut [f64], ldab: i32, info: &mut i32) {
22306    ffi::dpbtrf_(&(uplo as c_char), &n, &kd, ab.as_mut_ptr(), &ldab, info)
22307}
22308
22309#[inline]
22310pub unsafe fn spbtrf(uplo: u8, n: i32, kd: i32, ab: &mut [f32], ldab: i32, info: &mut i32) {
22311    ffi::spbtrf_(&(uplo as c_char), &n, &kd, ab.as_mut_ptr(), &ldab, info)
22312}
22313
22314#[inline]
22315pub unsafe fn zpbtrf(uplo: u8, n: i32, kd: i32, ab: &mut [c64], ldab: i32, info: &mut i32) {
22316    ffi::zpbtrf_(
22317        &(uplo as c_char),
22318        &n,
22319        &kd,
22320        ab.as_mut_ptr() as *mut _,
22321        &ldab,
22322        info,
22323    )
22324}
22325
22326#[inline]
22327pub unsafe fn cpbtrs(
22328    uplo: u8,
22329    n: i32,
22330    kd: i32,
22331    nrhs: i32,
22332    ab: &[c32],
22333    ldab: i32,
22334    b: &mut [c32],
22335    ldb: i32,
22336    info: &mut i32,
22337) {
22338    ffi::cpbtrs_(
22339        &(uplo as c_char),
22340        &n,
22341        &kd,
22342        &nrhs,
22343        ab.as_ptr() as *const _,
22344        &ldab,
22345        b.as_mut_ptr() as *mut _,
22346        &ldb,
22347        info,
22348    )
22349}
22350
22351#[inline]
22352pub unsafe fn dpbtrs(
22353    uplo: u8,
22354    n: i32,
22355    kd: i32,
22356    nrhs: i32,
22357    ab: &[f64],
22358    ldab: i32,
22359    b: &mut [f64],
22360    ldb: i32,
22361    info: &mut i32,
22362) {
22363    ffi::dpbtrs_(
22364        &(uplo as c_char),
22365        &n,
22366        &kd,
22367        &nrhs,
22368        ab.as_ptr(),
22369        &ldab,
22370        b.as_mut_ptr(),
22371        &ldb,
22372        info,
22373    )
22374}
22375
22376#[inline]
22377pub unsafe fn spbtrs(
22378    uplo: u8,
22379    n: i32,
22380    kd: i32,
22381    nrhs: i32,
22382    ab: &[f32],
22383    ldab: i32,
22384    b: &mut [f32],
22385    ldb: i32,
22386    info: &mut i32,
22387) {
22388    ffi::spbtrs_(
22389        &(uplo as c_char),
22390        &n,
22391        &kd,
22392        &nrhs,
22393        ab.as_ptr(),
22394        &ldab,
22395        b.as_mut_ptr(),
22396        &ldb,
22397        info,
22398    )
22399}
22400
22401#[inline]
22402pub unsafe fn zpbtrs(
22403    uplo: u8,
22404    n: i32,
22405    kd: i32,
22406    nrhs: i32,
22407    ab: &[c64],
22408    ldab: i32,
22409    b: &mut [c64],
22410    ldb: i32,
22411    info: &mut i32,
22412) {
22413    ffi::zpbtrs_(
22414        &(uplo as c_char),
22415        &n,
22416        &kd,
22417        &nrhs,
22418        ab.as_ptr() as *const _,
22419        &ldab,
22420        b.as_mut_ptr() as *mut _,
22421        &ldb,
22422        info,
22423    )
22424}
22425
22426#[inline]
22427pub unsafe fn cpftrf(transr: u8, uplo: u8, n: i32, a: &mut [c32], info: &mut i32) {
22428    ffi::cpftrf_(
22429        &(transr as c_char),
22430        &(uplo as c_char),
22431        &n,
22432        a.as_mut_ptr() as *mut _,
22433        info,
22434    )
22435}
22436
22437#[inline]
22438pub unsafe fn dpftrf(transr: u8, uplo: u8, n: i32, a: &mut [f64], info: &mut i32) {
22439    ffi::dpftrf_(
22440        &(transr as c_char),
22441        &(uplo as c_char),
22442        &n,
22443        a.as_mut_ptr(),
22444        info,
22445    )
22446}
22447
22448#[inline]
22449pub unsafe fn spftrf(transr: u8, uplo: u8, n: i32, a: &mut [f32], info: &mut i32) {
22450    ffi::spftrf_(
22451        &(transr as c_char),
22452        &(uplo as c_char),
22453        &n,
22454        a.as_mut_ptr(),
22455        info,
22456    )
22457}
22458
22459#[inline]
22460pub unsafe fn zpftrf(transr: u8, uplo: u8, n: i32, a: &mut [c64], info: &mut i32) {
22461    ffi::zpftrf_(
22462        &(transr as c_char),
22463        &(uplo as c_char),
22464        &n,
22465        a.as_mut_ptr() as *mut _,
22466        info,
22467    )
22468}
22469
22470#[inline]
22471pub unsafe fn cpftri(transr: u8, uplo: u8, n: i32, a: &mut [c32], info: &mut i32) {
22472    ffi::cpftri_(
22473        &(transr as c_char),
22474        &(uplo as c_char),
22475        &n,
22476        a.as_mut_ptr() as *mut _,
22477        info,
22478    )
22479}
22480
22481#[inline]
22482pub unsafe fn dpftri(transr: u8, uplo: u8, n: i32, a: &mut [f64], info: &mut i32) {
22483    ffi::dpftri_(
22484        &(transr as c_char),
22485        &(uplo as c_char),
22486        &n,
22487        a.as_mut_ptr(),
22488        info,
22489    )
22490}
22491
22492#[inline]
22493pub unsafe fn spftri(transr: u8, uplo: u8, n: i32, a: &mut [f32], info: &mut i32) {
22494    ffi::spftri_(
22495        &(transr as c_char),
22496        &(uplo as c_char),
22497        &n,
22498        a.as_mut_ptr(),
22499        info,
22500    )
22501}
22502
22503#[inline]
22504pub unsafe fn zpftri(transr: u8, uplo: u8, n: i32, a: &mut [c64], info: &mut i32) {
22505    ffi::zpftri_(
22506        &(transr as c_char),
22507        &(uplo as c_char),
22508        &n,
22509        a.as_mut_ptr() as *mut _,
22510        info,
22511    )
22512}
22513
22514#[inline]
22515pub unsafe fn cpftrs(
22516    transr: u8,
22517    uplo: u8,
22518    n: i32,
22519    nrhs: i32,
22520    a: &[c32],
22521    b: &mut [c32],
22522    ldb: i32,
22523    info: &mut i32,
22524) {
22525    ffi::cpftrs_(
22526        &(transr as c_char),
22527        &(uplo as c_char),
22528        &n,
22529        &nrhs,
22530        a.as_ptr() as *const _,
22531        b.as_mut_ptr() as *mut _,
22532        &ldb,
22533        info,
22534    )
22535}
22536
22537#[inline]
22538pub unsafe fn dpftrs(
22539    transr: u8,
22540    uplo: u8,
22541    n: i32,
22542    nrhs: i32,
22543    a: &[f64],
22544    b: &mut [f64],
22545    ldb: i32,
22546    info: &mut i32,
22547) {
22548    ffi::dpftrs_(
22549        &(transr as c_char),
22550        &(uplo as c_char),
22551        &n,
22552        &nrhs,
22553        a.as_ptr(),
22554        b.as_mut_ptr(),
22555        &ldb,
22556        info,
22557    )
22558}
22559
22560#[inline]
22561pub unsafe fn spftrs(
22562    transr: u8,
22563    uplo: u8,
22564    n: i32,
22565    nrhs: i32,
22566    a: &[f32],
22567    b: &mut [f32],
22568    ldb: i32,
22569    info: &mut i32,
22570) {
22571    ffi::spftrs_(
22572        &(transr as c_char),
22573        &(uplo as c_char),
22574        &n,
22575        &nrhs,
22576        a.as_ptr(),
22577        b.as_mut_ptr(),
22578        &ldb,
22579        info,
22580    )
22581}
22582
22583#[inline]
22584pub unsafe fn zpftrs(
22585    transr: u8,
22586    uplo: u8,
22587    n: i32,
22588    nrhs: i32,
22589    a: &[c64],
22590    b: &mut [c64],
22591    ldb: i32,
22592    info: &mut i32,
22593) {
22594    ffi::zpftrs_(
22595        &(transr as c_char),
22596        &(uplo as c_char),
22597        &n,
22598        &nrhs,
22599        a.as_ptr() as *const _,
22600        b.as_mut_ptr() as *mut _,
22601        &ldb,
22602        info,
22603    )
22604}
22605
22606#[inline]
22607pub unsafe fn cpocon(
22608    uplo: u8,
22609    n: i32,
22610    a: &[c32],
22611    lda: i32,
22612    anorm: f32,
22613    rcond: &mut f32,
22614    work: &mut [c32],
22615    rwork: &mut [f32],
22616    info: &mut i32,
22617) {
22618    ffi::cpocon_(
22619        &(uplo as c_char),
22620        &n,
22621        a.as_ptr() as *const _,
22622        &lda,
22623        &anorm,
22624        rcond,
22625        work.as_mut_ptr() as *mut _,
22626        rwork.as_mut_ptr(),
22627        info,
22628    )
22629}
22630
22631#[inline]
22632pub unsafe fn dpocon(
22633    uplo: u8,
22634    n: i32,
22635    a: &[f64],
22636    lda: i32,
22637    anorm: f64,
22638    rcond: &mut f64,
22639    work: &mut [f64],
22640    iwork: &mut [i32],
22641    info: &mut i32,
22642) {
22643    ffi::dpocon_(
22644        &(uplo as c_char),
22645        &n,
22646        a.as_ptr(),
22647        &lda,
22648        &anorm,
22649        rcond,
22650        work.as_mut_ptr(),
22651        iwork.as_mut_ptr(),
22652        info,
22653    )
22654}
22655
22656#[inline]
22657pub unsafe fn spocon(
22658    uplo: u8,
22659    n: i32,
22660    a: &[f32],
22661    lda: i32,
22662    anorm: f32,
22663    rcond: &mut f32,
22664    work: &mut [f32],
22665    iwork: &mut [i32],
22666    info: &mut i32,
22667) {
22668    ffi::spocon_(
22669        &(uplo as c_char),
22670        &n,
22671        a.as_ptr(),
22672        &lda,
22673        &anorm,
22674        rcond,
22675        work.as_mut_ptr(),
22676        iwork.as_mut_ptr(),
22677        info,
22678    )
22679}
22680
22681#[inline]
22682pub unsafe fn zpocon(
22683    uplo: u8,
22684    n: i32,
22685    a: &[c64],
22686    lda: i32,
22687    anorm: f64,
22688    rcond: &mut f64,
22689    work: &mut [c64],
22690    rwork: &mut [f64],
22691    info: &mut i32,
22692) {
22693    ffi::zpocon_(
22694        &(uplo as c_char),
22695        &n,
22696        a.as_ptr() as *const _,
22697        &lda,
22698        &anorm,
22699        rcond,
22700        work.as_mut_ptr() as *mut _,
22701        rwork.as_mut_ptr(),
22702        info,
22703    )
22704}
22705
22706#[inline]
22707pub unsafe fn cpoequ(
22708    n: i32,
22709    a: &[c32],
22710    lda: i32,
22711    s: &mut [f32],
22712    scond: &mut [f32],
22713    amax: &mut f32,
22714    info: &mut i32,
22715) {
22716    ffi::cpoequ_(
22717        &n,
22718        a.as_ptr() as *const _,
22719        &lda,
22720        s.as_mut_ptr(),
22721        scond.as_mut_ptr(),
22722        amax,
22723        info,
22724    )
22725}
22726
22727#[inline]
22728pub unsafe fn dpoequ(
22729    n: i32,
22730    a: &[f64],
22731    lda: i32,
22732    s: &mut [f64],
22733    scond: &mut [f64],
22734    amax: &mut f64,
22735    info: &mut i32,
22736) {
22737    ffi::dpoequ_(
22738        &n,
22739        a.as_ptr(),
22740        &lda,
22741        s.as_mut_ptr(),
22742        scond.as_mut_ptr(),
22743        amax,
22744        info,
22745    )
22746}
22747
22748#[inline]
22749pub unsafe fn spoequ(
22750    n: i32,
22751    a: &[f32],
22752    lda: i32,
22753    s: &mut [f32],
22754    scond: &mut [f32],
22755    amax: &mut f32,
22756    info: &mut i32,
22757) {
22758    ffi::spoequ_(
22759        &n,
22760        a.as_ptr(),
22761        &lda,
22762        s.as_mut_ptr(),
22763        scond.as_mut_ptr(),
22764        amax,
22765        info,
22766    )
22767}
22768
22769#[inline]
22770pub unsafe fn zpoequ(
22771    n: i32,
22772    a: &[c64],
22773    lda: i32,
22774    s: &mut [f64],
22775    scond: &mut [f64],
22776    amax: &mut f64,
22777    info: &mut i32,
22778) {
22779    ffi::zpoequ_(
22780        &n,
22781        a.as_ptr() as *const _,
22782        &lda,
22783        s.as_mut_ptr(),
22784        scond.as_mut_ptr(),
22785        amax,
22786        info,
22787    )
22788}
22789
22790#[inline]
22791pub unsafe fn cpoequb(
22792    n: i32,
22793    a: &[c32],
22794    lda: i32,
22795    s: &mut [f32],
22796    scond: &mut [f32],
22797    amax: &mut f32,
22798    info: &mut i32,
22799) {
22800    ffi::cpoequb_(
22801        &n,
22802        a.as_ptr() as *const _,
22803        &lda,
22804        s.as_mut_ptr(),
22805        scond.as_mut_ptr(),
22806        amax,
22807        info,
22808    )
22809}
22810
22811#[inline]
22812pub unsafe fn dpoequb(
22813    n: i32,
22814    a: &[f64],
22815    lda: i32,
22816    s: &mut [f64],
22817    scond: &mut [f64],
22818    amax: &mut f64,
22819    info: &mut i32,
22820) {
22821    ffi::dpoequb_(
22822        &n,
22823        a.as_ptr(),
22824        &lda,
22825        s.as_mut_ptr(),
22826        scond.as_mut_ptr(),
22827        amax,
22828        info,
22829    )
22830}
22831
22832#[inline]
22833pub unsafe fn spoequb(
22834    n: i32,
22835    a: &[f32],
22836    lda: i32,
22837    s: &mut [f32],
22838    scond: &mut [f32],
22839    amax: &mut f32,
22840    info: &mut i32,
22841) {
22842    ffi::spoequb_(
22843        &n,
22844        a.as_ptr(),
22845        &lda,
22846        s.as_mut_ptr(),
22847        scond.as_mut_ptr(),
22848        amax,
22849        info,
22850    )
22851}
22852
22853#[inline]
22854pub unsafe fn zpoequb(
22855    n: i32,
22856    a: &[c64],
22857    lda: i32,
22858    s: &mut [f64],
22859    scond: &mut [f64],
22860    amax: &mut f64,
22861    info: &mut i32,
22862) {
22863    ffi::zpoequb_(
22864        &n,
22865        a.as_ptr() as *const _,
22866        &lda,
22867        s.as_mut_ptr(),
22868        scond.as_mut_ptr(),
22869        amax,
22870        info,
22871    )
22872}
22873
22874#[inline]
22875pub unsafe fn cporfs(
22876    uplo: u8,
22877    n: i32,
22878    nrhs: i32,
22879    a: &[c32],
22880    lda: i32,
22881    af: &[c32],
22882    ldaf: i32,
22883    b: &[c32],
22884    ldb: i32,
22885    x: &mut [c32],
22886    ldx: i32,
22887    ferr: &mut [f32],
22888    berr: &mut [f32],
22889    work: &mut [c32],
22890    rwork: &mut [f32],
22891    info: &mut i32,
22892) {
22893    ffi::cporfs_(
22894        &(uplo as c_char),
22895        &n,
22896        &nrhs,
22897        a.as_ptr() as *const _,
22898        &lda,
22899        af.as_ptr() as *const _,
22900        &ldaf,
22901        b.as_ptr() as *const _,
22902        &ldb,
22903        x.as_mut_ptr() as *mut _,
22904        &ldx,
22905        ferr.as_mut_ptr(),
22906        berr.as_mut_ptr(),
22907        work.as_mut_ptr() as *mut _,
22908        rwork.as_mut_ptr(),
22909        info,
22910    )
22911}
22912
22913#[inline]
22914pub unsafe fn dporfs(
22915    uplo: u8,
22916    n: i32,
22917    nrhs: i32,
22918    a: &[f64],
22919    lda: i32,
22920    af: &[f64],
22921    ldaf: i32,
22922    b: &[f64],
22923    ldb: i32,
22924    x: &mut [f64],
22925    ldx: i32,
22926    ferr: &mut [f64],
22927    berr: &mut [f64],
22928    work: &mut [f64],
22929    iwork: &mut [i32],
22930    info: &mut i32,
22931) {
22932    ffi::dporfs_(
22933        &(uplo as c_char),
22934        &n,
22935        &nrhs,
22936        a.as_ptr(),
22937        &lda,
22938        af.as_ptr(),
22939        &ldaf,
22940        b.as_ptr(),
22941        &ldb,
22942        x.as_mut_ptr(),
22943        &ldx,
22944        ferr.as_mut_ptr(),
22945        berr.as_mut_ptr(),
22946        work.as_mut_ptr(),
22947        iwork.as_mut_ptr(),
22948        info,
22949    )
22950}
22951
22952#[inline]
22953pub unsafe fn sporfs(
22954    uplo: u8,
22955    n: i32,
22956    nrhs: i32,
22957    a: &[f32],
22958    lda: i32,
22959    af: &[f32],
22960    ldaf: i32,
22961    b: &[f32],
22962    ldb: i32,
22963    x: &mut [f32],
22964    ldx: i32,
22965    ferr: &mut [f32],
22966    berr: &mut [f32],
22967    work: &mut [f32],
22968    iwork: &mut [i32],
22969    info: &mut i32,
22970) {
22971    ffi::sporfs_(
22972        &(uplo as c_char),
22973        &n,
22974        &nrhs,
22975        a.as_ptr(),
22976        &lda,
22977        af.as_ptr(),
22978        &ldaf,
22979        b.as_ptr(),
22980        &ldb,
22981        x.as_mut_ptr(),
22982        &ldx,
22983        ferr.as_mut_ptr(),
22984        berr.as_mut_ptr(),
22985        work.as_mut_ptr(),
22986        iwork.as_mut_ptr(),
22987        info,
22988    )
22989}
22990
22991#[inline]
22992pub unsafe fn zporfs(
22993    uplo: u8,
22994    n: i32,
22995    nrhs: i32,
22996    a: &[c64],
22997    lda: i32,
22998    af: &[c64],
22999    ldaf: i32,
23000    b: &[c64],
23001    ldb: i32,
23002    x: &mut [c64],
23003    ldx: i32,
23004    ferr: &mut [f64],
23005    berr: &mut [f64],
23006    work: &mut [c64],
23007    rwork: &mut [f64],
23008    info: &mut i32,
23009) {
23010    ffi::zporfs_(
23011        &(uplo as c_char),
23012        &n,
23013        &nrhs,
23014        a.as_ptr() as *const _,
23015        &lda,
23016        af.as_ptr() as *const _,
23017        &ldaf,
23018        b.as_ptr() as *const _,
23019        &ldb,
23020        x.as_mut_ptr() as *mut _,
23021        &ldx,
23022        ferr.as_mut_ptr(),
23023        berr.as_mut_ptr(),
23024        work.as_mut_ptr() as *mut _,
23025        rwork.as_mut_ptr(),
23026        info,
23027    )
23028}
23029
23030#[inline]
23031pub unsafe fn cporfsx(
23032    uplo: u8,
23033    equed: u8,
23034    n: i32,
23035    nrhs: i32,
23036    a: &[c32],
23037    lda: i32,
23038    af: &[c32],
23039    ldaf: i32,
23040    s: &mut [f32],
23041    b: &[c32],
23042    ldb: i32,
23043    x: &mut [c32],
23044    ldx: i32,
23045    rcond: &mut f32,
23046    berr: &mut [f32],
23047    n_err_bnds: i32,
23048    err_bnds_norm: &mut [f32],
23049    err_bnds_comp: &mut [f32],
23050    nparams: &[i32],
23051    params: &mut [f32],
23052    work: &mut [c32],
23053    rwork: &mut [f32],
23054    info: &mut i32,
23055) {
23056    ffi::cporfsx_(
23057        &(uplo as c_char),
23058        &(equed as c_char),
23059        &n,
23060        &nrhs,
23061        a.as_ptr() as *const _,
23062        &lda,
23063        af.as_ptr() as *const _,
23064        &ldaf,
23065        s.as_mut_ptr(),
23066        b.as_ptr() as *const _,
23067        &ldb,
23068        x.as_mut_ptr() as *mut _,
23069        &ldx,
23070        rcond,
23071        berr.as_mut_ptr(),
23072        &n_err_bnds,
23073        err_bnds_norm.as_mut_ptr(),
23074        err_bnds_comp.as_mut_ptr(),
23075        nparams.as_ptr(),
23076        params.as_mut_ptr(),
23077        work.as_mut_ptr() as *mut _,
23078        rwork.as_mut_ptr(),
23079        info,
23080    )
23081}
23082
23083#[inline]
23084pub unsafe fn dporfsx(
23085    uplo: u8,
23086    equed: u8,
23087    n: i32,
23088    nrhs: i32,
23089    a: &[f64],
23090    lda: i32,
23091    af: &[f64],
23092    ldaf: i32,
23093    s: &mut [f64],
23094    b: &[f64],
23095    ldb: i32,
23096    x: &mut [f64],
23097    ldx: i32,
23098    rcond: &mut f64,
23099    berr: &mut [f64],
23100    n_err_bnds: i32,
23101    err_bnds_norm: &mut [f64],
23102    err_bnds_comp: &mut [f64],
23103    nparams: &[i32],
23104    params: &mut [f64],
23105    work: &mut [f64],
23106    iwork: &mut [i32],
23107    info: &mut i32,
23108) {
23109    ffi::dporfsx_(
23110        &(uplo as c_char),
23111        &(equed as c_char),
23112        &n,
23113        &nrhs,
23114        a.as_ptr(),
23115        &lda,
23116        af.as_ptr(),
23117        &ldaf,
23118        s.as_mut_ptr(),
23119        b.as_ptr(),
23120        &ldb,
23121        x.as_mut_ptr(),
23122        &ldx,
23123        rcond,
23124        berr.as_mut_ptr(),
23125        &n_err_bnds,
23126        err_bnds_norm.as_mut_ptr(),
23127        err_bnds_comp.as_mut_ptr(),
23128        nparams.as_ptr(),
23129        params.as_mut_ptr(),
23130        work.as_mut_ptr(),
23131        iwork.as_mut_ptr(),
23132        info,
23133    )
23134}
23135
23136#[inline]
23137pub unsafe fn sporfsx(
23138    uplo: u8,
23139    equed: u8,
23140    n: i32,
23141    nrhs: i32,
23142    a: &[f32],
23143    lda: i32,
23144    af: &[f32],
23145    ldaf: i32,
23146    s: &mut [f32],
23147    b: &[f32],
23148    ldb: i32,
23149    x: &mut [f32],
23150    ldx: i32,
23151    rcond: &mut f32,
23152    berr: &mut [f32],
23153    n_err_bnds: i32,
23154    err_bnds_norm: &mut [f32],
23155    err_bnds_comp: &mut [f32],
23156    nparams: &[i32],
23157    params: &mut [f32],
23158    work: &mut [f32],
23159    iwork: &mut [i32],
23160    info: &mut i32,
23161) {
23162    ffi::sporfsx_(
23163        &(uplo as c_char),
23164        &(equed as c_char),
23165        &n,
23166        &nrhs,
23167        a.as_ptr(),
23168        &lda,
23169        af.as_ptr(),
23170        &ldaf,
23171        s.as_mut_ptr(),
23172        b.as_ptr(),
23173        &ldb,
23174        x.as_mut_ptr(),
23175        &ldx,
23176        rcond,
23177        berr.as_mut_ptr(),
23178        &n_err_bnds,
23179        err_bnds_norm.as_mut_ptr(),
23180        err_bnds_comp.as_mut_ptr(),
23181        nparams.as_ptr(),
23182        params.as_mut_ptr(),
23183        work.as_mut_ptr(),
23184        iwork.as_mut_ptr(),
23185        info,
23186    )
23187}
23188
23189#[inline]
23190pub unsafe fn zporfsx(
23191    uplo: u8,
23192    equed: u8,
23193    n: i32,
23194    nrhs: i32,
23195    a: &[c64],
23196    lda: i32,
23197    af: &[c64],
23198    ldaf: i32,
23199    s: &mut [f64],
23200    b: &[c64],
23201    ldb: i32,
23202    x: &mut [c64],
23203    ldx: i32,
23204    rcond: &mut f64,
23205    berr: &mut [f64],
23206    n_err_bnds: i32,
23207    err_bnds_norm: &mut [f64],
23208    err_bnds_comp: &mut [f64],
23209    nparams: &[i32],
23210    params: &mut [f64],
23211    work: &mut [c64],
23212    rwork: &mut [f64],
23213    info: &mut i32,
23214) {
23215    ffi::zporfsx_(
23216        &(uplo as c_char),
23217        &(equed as c_char),
23218        &n,
23219        &nrhs,
23220        a.as_ptr() as *const _,
23221        &lda,
23222        af.as_ptr() as *const _,
23223        &ldaf,
23224        s.as_mut_ptr(),
23225        b.as_ptr() as *const _,
23226        &ldb,
23227        x.as_mut_ptr() as *mut _,
23228        &ldx,
23229        rcond,
23230        berr.as_mut_ptr(),
23231        &n_err_bnds,
23232        err_bnds_norm.as_mut_ptr(),
23233        err_bnds_comp.as_mut_ptr(),
23234        nparams.as_ptr(),
23235        params.as_mut_ptr(),
23236        work.as_mut_ptr() as *mut _,
23237        rwork.as_mut_ptr(),
23238        info,
23239    )
23240}
23241
23242#[inline]
23243pub unsafe fn cposv(
23244    uplo: u8,
23245    n: i32,
23246    nrhs: i32,
23247    a: &mut [c32],
23248    lda: i32,
23249    b: &mut [c32],
23250    ldb: i32,
23251    info: &mut i32,
23252) {
23253    ffi::cposv_(
23254        &(uplo as c_char),
23255        &n,
23256        &nrhs,
23257        a.as_mut_ptr() as *mut _,
23258        &lda,
23259        b.as_mut_ptr() as *mut _,
23260        &ldb,
23261        info,
23262    )
23263}
23264
23265#[inline]
23266pub unsafe fn dposv(
23267    uplo: u8,
23268    n: i32,
23269    nrhs: i32,
23270    a: &mut [f64],
23271    lda: i32,
23272    b: &mut [f64],
23273    ldb: i32,
23274    info: &mut i32,
23275) {
23276    ffi::dposv_(
23277        &(uplo as c_char),
23278        &n,
23279        &nrhs,
23280        a.as_mut_ptr(),
23281        &lda,
23282        b.as_mut_ptr(),
23283        &ldb,
23284        info,
23285    )
23286}
23287
23288#[inline]
23289pub unsafe fn sposv(
23290    uplo: u8,
23291    n: i32,
23292    nrhs: i32,
23293    a: &mut [f32],
23294    lda: i32,
23295    b: &mut [f32],
23296    ldb: i32,
23297    info: &mut i32,
23298) {
23299    ffi::sposv_(
23300        &(uplo as c_char),
23301        &n,
23302        &nrhs,
23303        a.as_mut_ptr(),
23304        &lda,
23305        b.as_mut_ptr(),
23306        &ldb,
23307        info,
23308    )
23309}
23310
23311#[inline]
23312pub unsafe fn zposv(
23313    uplo: u8,
23314    n: i32,
23315    nrhs: i32,
23316    a: &mut [c64],
23317    lda: i32,
23318    b: &mut [c64],
23319    ldb: i32,
23320    info: &mut i32,
23321) {
23322    ffi::zposv_(
23323        &(uplo as c_char),
23324        &n,
23325        &nrhs,
23326        a.as_mut_ptr() as *mut _,
23327        &lda,
23328        b.as_mut_ptr() as *mut _,
23329        &ldb,
23330        info,
23331    )
23332}
23333
23334#[inline]
23335pub unsafe fn dsposv(
23336    uplo: u8,
23337    n: i32,
23338    nrhs: i32,
23339    a: &mut [f64],
23340    lda: i32,
23341    b: &[f64],
23342    ldb: i32,
23343    x: &mut [f64],
23344    ldx: i32,
23345    work: &mut [f64],
23346    swork: &mut [f32],
23347    iter: &mut i32,
23348    info: &mut i32,
23349) {
23350    ffi::dsposv_(
23351        &(uplo as c_char),
23352        &n,
23353        &nrhs,
23354        a.as_mut_ptr(),
23355        &lda,
23356        b.as_ptr(),
23357        &ldb,
23358        x.as_mut_ptr(),
23359        &ldx,
23360        work.as_mut_ptr(),
23361        swork.as_mut_ptr(),
23362        iter,
23363        info,
23364    )
23365}
23366
23367#[inline]
23368pub unsafe fn zcposv(
23369    uplo: u8,
23370    n: i32,
23371    nrhs: i32,
23372    a: &mut [c64],
23373    lda: i32,
23374    b: &[c64],
23375    ldb: i32,
23376    x: &mut [c64],
23377    ldx: i32,
23378    work: &mut [c64],
23379    swork: &mut [c32],
23380    rwork: &mut [f64],
23381    iter: &mut i32,
23382    info: &mut i32,
23383) {
23384    ffi::zcposv_(
23385        &(uplo as c_char),
23386        &n,
23387        &nrhs,
23388        a.as_mut_ptr() as *mut _,
23389        &lda,
23390        b.as_ptr() as *const _,
23391        &ldb,
23392        x.as_mut_ptr() as *mut _,
23393        &ldx,
23394        work.as_mut_ptr() as *mut _,
23395        swork.as_mut_ptr() as *mut _,
23396        rwork.as_mut_ptr(),
23397        iter,
23398        info,
23399    )
23400}
23401
23402#[inline]
23403pub unsafe fn cposvx(
23404    fact: u8,
23405    uplo: u8,
23406    n: i32,
23407    nrhs: i32,
23408    a: &mut [c32],
23409    lda: i32,
23410    af: &mut [c32],
23411    ldaf: i32,
23412    equed: &mut u8,
23413    s: &mut [f32],
23414    b: &mut [c32],
23415    ldb: i32,
23416    x: &mut [c32],
23417    ldx: i32,
23418    rcond: &mut f32,
23419    ferr: &mut [f32],
23420    berr: &mut [f32],
23421    work: &mut [c32],
23422    rwork: &mut [f32],
23423    info: &mut i32,
23424) {
23425    ffi::cposvx_(
23426        &(fact as c_char),
23427        &(uplo as c_char),
23428        &n,
23429        &nrhs,
23430        a.as_mut_ptr() as *mut _,
23431        &lda,
23432        af.as_mut_ptr() as *mut _,
23433        &ldaf,
23434        equed as *mut _ as *mut _,
23435        s.as_mut_ptr(),
23436        b.as_mut_ptr() as *mut _,
23437        &ldb,
23438        x.as_mut_ptr() as *mut _,
23439        &ldx,
23440        rcond,
23441        ferr.as_mut_ptr(),
23442        berr.as_mut_ptr(),
23443        work.as_mut_ptr() as *mut _,
23444        rwork.as_mut_ptr(),
23445        info,
23446    )
23447}
23448
23449#[inline]
23450pub unsafe fn dposvx(
23451    fact: u8,
23452    uplo: u8,
23453    n: i32,
23454    nrhs: i32,
23455    a: &mut [f64],
23456    lda: i32,
23457    af: &mut [f64],
23458    ldaf: i32,
23459    equed: &mut u8,
23460    s: &mut [f64],
23461    b: &mut [f64],
23462    ldb: i32,
23463    x: &mut [f64],
23464    ldx: i32,
23465    rcond: &mut f64,
23466    ferr: &mut [f64],
23467    berr: &mut [f64],
23468    work: &mut [f64],
23469    iwork: &mut [i32],
23470    info: &mut i32,
23471) {
23472    ffi::dposvx_(
23473        &(fact as c_char),
23474        &(uplo as c_char),
23475        &n,
23476        &nrhs,
23477        a.as_mut_ptr(),
23478        &lda,
23479        af.as_mut_ptr(),
23480        &ldaf,
23481        equed as *mut _ as *mut _,
23482        s.as_mut_ptr(),
23483        b.as_mut_ptr(),
23484        &ldb,
23485        x.as_mut_ptr(),
23486        &ldx,
23487        rcond,
23488        ferr.as_mut_ptr(),
23489        berr.as_mut_ptr(),
23490        work.as_mut_ptr(),
23491        iwork.as_mut_ptr(),
23492        info,
23493    )
23494}
23495
23496#[inline]
23497pub unsafe fn sposvx(
23498    fact: u8,
23499    uplo: u8,
23500    n: i32,
23501    nrhs: i32,
23502    a: &mut [f32],
23503    lda: i32,
23504    af: &mut [f32],
23505    ldaf: i32,
23506    equed: &mut u8,
23507    s: &mut [f32],
23508    b: &mut [f32],
23509    ldb: i32,
23510    x: &mut [f32],
23511    ldx: i32,
23512    rcond: &mut f32,
23513    ferr: &mut [f32],
23514    berr: &mut [f32],
23515    work: &mut [f32],
23516    iwork: &mut [i32],
23517    info: &mut i32,
23518) {
23519    ffi::sposvx_(
23520        &(fact as c_char),
23521        &(uplo as c_char),
23522        &n,
23523        &nrhs,
23524        a.as_mut_ptr(),
23525        &lda,
23526        af.as_mut_ptr(),
23527        &ldaf,
23528        equed as *mut _ as *mut _,
23529        s.as_mut_ptr(),
23530        b.as_mut_ptr(),
23531        &ldb,
23532        x.as_mut_ptr(),
23533        &ldx,
23534        rcond,
23535        ferr.as_mut_ptr(),
23536        berr.as_mut_ptr(),
23537        work.as_mut_ptr(),
23538        iwork.as_mut_ptr(),
23539        info,
23540    )
23541}
23542
23543#[inline]
23544pub unsafe fn zposvx(
23545    fact: u8,
23546    uplo: u8,
23547    n: i32,
23548    nrhs: i32,
23549    a: &mut [c64],
23550    lda: i32,
23551    af: &mut [c64],
23552    ldaf: i32,
23553    equed: &mut u8,
23554    s: &mut [f64],
23555    b: &mut [c64],
23556    ldb: i32,
23557    x: &mut [c64],
23558    ldx: i32,
23559    rcond: &mut f64,
23560    ferr: &mut [f64],
23561    berr: &mut [f64],
23562    work: &mut [c64],
23563    rwork: &mut [f64],
23564    info: &mut i32,
23565) {
23566    ffi::zposvx_(
23567        &(fact as c_char),
23568        &(uplo as c_char),
23569        &n,
23570        &nrhs,
23571        a.as_mut_ptr() as *mut _,
23572        &lda,
23573        af.as_mut_ptr() as *mut _,
23574        &ldaf,
23575        equed as *mut _ as *mut _,
23576        s.as_mut_ptr(),
23577        b.as_mut_ptr() as *mut _,
23578        &ldb,
23579        x.as_mut_ptr() as *mut _,
23580        &ldx,
23581        rcond,
23582        ferr.as_mut_ptr(),
23583        berr.as_mut_ptr(),
23584        work.as_mut_ptr() as *mut _,
23585        rwork.as_mut_ptr(),
23586        info,
23587    )
23588}
23589
23590#[inline]
23591pub unsafe fn cposvxx(
23592    fact: u8,
23593    uplo: u8,
23594    n: i32,
23595    nrhs: i32,
23596    a: &mut [c32],
23597    lda: i32,
23598    af: &mut [c32],
23599    ldaf: i32,
23600    equed: &mut u8,
23601    s: &mut [f32],
23602    b: &mut [c32],
23603    ldb: i32,
23604    x: &mut [c32],
23605    ldx: i32,
23606    rcond: &mut f32,
23607    rpvgrw: &mut f32,
23608    berr: &mut [f32],
23609    n_err_bnds: i32,
23610    err_bnds_norm: &mut [f32],
23611    err_bnds_comp: &mut [f32],
23612    nparams: &[i32],
23613    params: &mut [f32],
23614    work: &mut [c32],
23615    rwork: &mut [f32],
23616    info: &mut i32,
23617) {
23618    ffi::cposvxx_(
23619        &(fact as c_char),
23620        &(uplo as c_char),
23621        &n,
23622        &nrhs,
23623        a.as_mut_ptr() as *mut _,
23624        &lda,
23625        af.as_mut_ptr() as *mut _,
23626        &ldaf,
23627        equed as *mut _ as *mut _,
23628        s.as_mut_ptr(),
23629        b.as_mut_ptr() as *mut _,
23630        &ldb,
23631        x.as_mut_ptr() as *mut _,
23632        &ldx,
23633        rcond,
23634        rpvgrw,
23635        berr.as_mut_ptr(),
23636        &n_err_bnds,
23637        err_bnds_norm.as_mut_ptr(),
23638        err_bnds_comp.as_mut_ptr(),
23639        nparams.as_ptr(),
23640        params.as_mut_ptr(),
23641        work.as_mut_ptr() as *mut _,
23642        rwork.as_mut_ptr(),
23643        info,
23644    )
23645}
23646
23647#[inline]
23648pub unsafe fn dposvxx(
23649    fact: u8,
23650    uplo: u8,
23651    n: i32,
23652    nrhs: i32,
23653    a: &mut [f64],
23654    lda: i32,
23655    af: &mut [f64],
23656    ldaf: i32,
23657    equed: &mut u8,
23658    s: &mut [f64],
23659    b: &mut [f64],
23660    ldb: i32,
23661    x: &mut [f64],
23662    ldx: i32,
23663    rcond: &mut f64,
23664    rpvgrw: &mut f64,
23665    berr: &mut [f64],
23666    n_err_bnds: i32,
23667    err_bnds_norm: &mut [f64],
23668    err_bnds_comp: &mut [f64],
23669    nparams: &[i32],
23670    params: &mut [f64],
23671    work: &mut [f64],
23672    iwork: &mut [i32],
23673    info: &mut i32,
23674) {
23675    ffi::dposvxx_(
23676        &(fact as c_char),
23677        &(uplo as c_char),
23678        &n,
23679        &nrhs,
23680        a.as_mut_ptr(),
23681        &lda,
23682        af.as_mut_ptr(),
23683        &ldaf,
23684        equed as *mut _ as *mut _,
23685        s.as_mut_ptr(),
23686        b.as_mut_ptr(),
23687        &ldb,
23688        x.as_mut_ptr(),
23689        &ldx,
23690        rcond,
23691        rpvgrw,
23692        berr.as_mut_ptr(),
23693        &n_err_bnds,
23694        err_bnds_norm.as_mut_ptr(),
23695        err_bnds_comp.as_mut_ptr(),
23696        nparams.as_ptr(),
23697        params.as_mut_ptr(),
23698        work.as_mut_ptr(),
23699        iwork.as_mut_ptr(),
23700        info,
23701    )
23702}
23703
23704#[inline]
23705pub unsafe fn sposvxx(
23706    fact: u8,
23707    uplo: u8,
23708    n: i32,
23709    nrhs: i32,
23710    a: &mut [f32],
23711    lda: i32,
23712    af: &mut [f32],
23713    ldaf: i32,
23714    equed: &mut u8,
23715    s: &mut [f32],
23716    b: &mut [f32],
23717    ldb: i32,
23718    x: &mut [f32],
23719    ldx: i32,
23720    rcond: &mut f32,
23721    rpvgrw: &mut f32,
23722    berr: &mut [f32],
23723    n_err_bnds: i32,
23724    err_bnds_norm: &mut [f32],
23725    err_bnds_comp: &mut [f32],
23726    nparams: &[i32],
23727    params: &mut [f32],
23728    work: &mut [f32],
23729    iwork: &mut [i32],
23730    info: &mut i32,
23731) {
23732    ffi::sposvxx_(
23733        &(fact as c_char),
23734        &(uplo as c_char),
23735        &n,
23736        &nrhs,
23737        a.as_mut_ptr(),
23738        &lda,
23739        af.as_mut_ptr(),
23740        &ldaf,
23741        equed as *mut _ as *mut _,
23742        s.as_mut_ptr(),
23743        b.as_mut_ptr(),
23744        &ldb,
23745        x.as_mut_ptr(),
23746        &ldx,
23747        rcond,
23748        rpvgrw,
23749        berr.as_mut_ptr(),
23750        &n_err_bnds,
23751        err_bnds_norm.as_mut_ptr(),
23752        err_bnds_comp.as_mut_ptr(),
23753        nparams.as_ptr(),
23754        params.as_mut_ptr(),
23755        work.as_mut_ptr(),
23756        iwork.as_mut_ptr(),
23757        info,
23758    )
23759}
23760
23761#[inline]
23762pub unsafe fn zposvxx(
23763    fact: u8,
23764    uplo: u8,
23765    n: i32,
23766    nrhs: i32,
23767    a: &mut [c64],
23768    lda: i32,
23769    af: &mut [c64],
23770    ldaf: i32,
23771    equed: &mut u8,
23772    s: &mut [f64],
23773    b: &mut [c64],
23774    ldb: i32,
23775    x: &mut [c64],
23776    ldx: i32,
23777    rcond: &mut f64,
23778    rpvgrw: &mut f64,
23779    berr: &mut [f64],
23780    n_err_bnds: i32,
23781    err_bnds_norm: &mut [f64],
23782    err_bnds_comp: &mut [f64],
23783    nparams: &[i32],
23784    params: &mut [f64],
23785    work: &mut [c64],
23786    rwork: &mut [f64],
23787    info: &mut i32,
23788) {
23789    ffi::zposvxx_(
23790        &(fact as c_char),
23791        &(uplo as c_char),
23792        &n,
23793        &nrhs,
23794        a.as_mut_ptr() as *mut _,
23795        &lda,
23796        af.as_mut_ptr() as *mut _,
23797        &ldaf,
23798        equed as *mut _ as *mut _,
23799        s.as_mut_ptr(),
23800        b.as_mut_ptr() as *mut _,
23801        &ldb,
23802        x.as_mut_ptr() as *mut _,
23803        &ldx,
23804        rcond,
23805        rpvgrw,
23806        berr.as_mut_ptr(),
23807        &n_err_bnds,
23808        err_bnds_norm.as_mut_ptr(),
23809        err_bnds_comp.as_mut_ptr(),
23810        nparams.as_ptr(),
23811        params.as_mut_ptr(),
23812        work.as_mut_ptr() as *mut _,
23813        rwork.as_mut_ptr(),
23814        info,
23815    )
23816}
23817
23818#[inline]
23819pub unsafe fn cpotf2(uplo: u8, n: i32, a: &mut [c32], lda: i32, info: &mut i32) {
23820    ffi::cpotf2_(&(uplo as c_char), &n, a.as_mut_ptr() as *mut _, &lda, info)
23821}
23822
23823#[inline]
23824pub unsafe fn dpotf2(uplo: u8, n: i32, a: &mut [f64], lda: i32, info: &mut i32) {
23825    ffi::dpotf2_(&(uplo as c_char), &n, a.as_mut_ptr(), &lda, info)
23826}
23827
23828#[inline]
23829pub unsafe fn spotf2(uplo: u8, n: i32, a: &mut [f32], lda: i32, info: &mut i32) {
23830    ffi::spotf2_(&(uplo as c_char), &n, a.as_mut_ptr(), &lda, info)
23831}
23832
23833#[inline]
23834pub unsafe fn zpotf2(uplo: u8, n: i32, a: &mut [c64], lda: i32, info: &mut i32) {
23835    ffi::zpotf2_(&(uplo as c_char), &n, a.as_mut_ptr() as *mut _, &lda, info)
23836}
23837
23838#[inline]
23839pub unsafe fn cpotrf(uplo: u8, n: i32, a: &mut [c32], lda: i32, info: &mut i32) {
23840    ffi::cpotrf_(&(uplo as c_char), &n, a.as_mut_ptr() as *mut _, &lda, info)
23841}
23842
23843#[inline]
23844pub unsafe fn dpotrf(uplo: u8, n: i32, a: &mut [f64], lda: i32, info: &mut i32) {
23845    ffi::dpotrf_(&(uplo as c_char), &n, a.as_mut_ptr(), &lda, info)
23846}
23847
23848#[inline]
23849pub unsafe fn spotrf(uplo: u8, n: i32, a: &mut [f32], lda: i32, info: &mut i32) {
23850    ffi::spotrf_(&(uplo as c_char), &n, a.as_mut_ptr(), &lda, info)
23851}
23852
23853#[inline]
23854pub unsafe fn zpotrf(uplo: u8, n: i32, a: &mut [c64], lda: i32, info: &mut i32) {
23855    ffi::zpotrf_(&(uplo as c_char), &n, a.as_mut_ptr() as *mut _, &lda, info)
23856}
23857
23858#[inline]
23859pub unsafe fn cpotrf2(uplo: u8, n: i32, a: &mut [c32], lda: i32, info: &mut i32) {
23860    ffi::cpotrf2_(&(uplo as c_char), &n, a.as_mut_ptr() as *mut _, &lda, info)
23861}
23862
23863#[inline]
23864pub unsafe fn dpotrf2(uplo: u8, n: i32, a: &mut [f64], lda: i32, info: &mut i32) {
23865    ffi::dpotrf2_(&(uplo as c_char), &n, a.as_mut_ptr(), &lda, info)
23866}
23867
23868#[inline]
23869pub unsafe fn spotrf2(uplo: u8, n: i32, a: &mut [f32], lda: i32, info: &mut i32) {
23870    ffi::spotrf2_(&(uplo as c_char), &n, a.as_mut_ptr(), &lda, info)
23871}
23872
23873#[inline]
23874pub unsafe fn zpotrf2(uplo: u8, n: i32, a: &mut [c64], lda: i32, info: &mut i32) {
23875    ffi::zpotrf2_(&(uplo as c_char), &n, a.as_mut_ptr() as *mut _, &lda, info)
23876}
23877
23878#[inline]
23879pub unsafe fn cpotri(uplo: u8, n: i32, a: &mut [c32], lda: i32, info: &mut i32) {
23880    ffi::cpotri_(&(uplo as c_char), &n, a.as_mut_ptr() as *mut _, &lda, info)
23881}
23882
23883#[inline]
23884pub unsafe fn dpotri(uplo: u8, n: i32, a: &mut [f64], lda: i32, info: &mut i32) {
23885    ffi::dpotri_(&(uplo as c_char), &n, a.as_mut_ptr(), &lda, info)
23886}
23887
23888#[inline]
23889pub unsafe fn spotri(uplo: u8, n: i32, a: &mut [f32], lda: i32, info: &mut i32) {
23890    ffi::spotri_(&(uplo as c_char), &n, a.as_mut_ptr(), &lda, info)
23891}
23892
23893#[inline]
23894pub unsafe fn zpotri(uplo: u8, n: i32, a: &mut [c64], lda: i32, info: &mut i32) {
23895    ffi::zpotri_(&(uplo as c_char), &n, a.as_mut_ptr() as *mut _, &lda, info)
23896}
23897
23898#[inline]
23899pub unsafe fn cpotrs(
23900    uplo: u8,
23901    n: i32,
23902    nrhs: i32,
23903    a: &[c32],
23904    lda: i32,
23905    b: &mut [c32],
23906    ldb: i32,
23907    info: &mut i32,
23908) {
23909    ffi::cpotrs_(
23910        &(uplo as c_char),
23911        &n,
23912        &nrhs,
23913        a.as_ptr() as *const _,
23914        &lda,
23915        b.as_mut_ptr() as *mut _,
23916        &ldb,
23917        info,
23918    )
23919}
23920
23921#[inline]
23922pub unsafe fn dpotrs(
23923    uplo: u8,
23924    n: i32,
23925    nrhs: i32,
23926    a: &[f64],
23927    lda: i32,
23928    b: &mut [f64],
23929    ldb: i32,
23930    info: &mut i32,
23931) {
23932    ffi::dpotrs_(
23933        &(uplo as c_char),
23934        &n,
23935        &nrhs,
23936        a.as_ptr(),
23937        &lda,
23938        b.as_mut_ptr(),
23939        &ldb,
23940        info,
23941    )
23942}
23943
23944#[inline]
23945pub unsafe fn spotrs(
23946    uplo: u8,
23947    n: i32,
23948    nrhs: i32,
23949    a: &[f32],
23950    lda: i32,
23951    b: &mut [f32],
23952    ldb: i32,
23953    info: &mut i32,
23954) {
23955    ffi::spotrs_(
23956        &(uplo as c_char),
23957        &n,
23958        &nrhs,
23959        a.as_ptr(),
23960        &lda,
23961        b.as_mut_ptr(),
23962        &ldb,
23963        info,
23964    )
23965}
23966
23967#[inline]
23968pub unsafe fn zpotrs(
23969    uplo: u8,
23970    n: i32,
23971    nrhs: i32,
23972    a: &[c64],
23973    lda: i32,
23974    b: &mut [c64],
23975    ldb: i32,
23976    info: &mut i32,
23977) {
23978    ffi::zpotrs_(
23979        &(uplo as c_char),
23980        &n,
23981        &nrhs,
23982        a.as_ptr() as *const _,
23983        &lda,
23984        b.as_mut_ptr() as *mut _,
23985        &ldb,
23986        info,
23987    )
23988}
23989
23990#[inline]
23991pub unsafe fn cppcon(
23992    uplo: u8,
23993    n: i32,
23994    ap: &[c32],
23995    anorm: f32,
23996    rcond: &mut f32,
23997    work: &mut [c32],
23998    rwork: &mut [f32],
23999    info: &mut i32,
24000) {
24001    ffi::cppcon_(
24002        &(uplo as c_char),
24003        &n,
24004        ap.as_ptr() as *const _,
24005        &anorm,
24006        rcond,
24007        work.as_mut_ptr() as *mut _,
24008        rwork.as_mut_ptr(),
24009        info,
24010    )
24011}
24012
24013#[inline]
24014pub unsafe fn dppcon(
24015    uplo: u8,
24016    n: i32,
24017    ap: &[f64],
24018    anorm: f64,
24019    rcond: &mut f64,
24020    work: &mut [f64],
24021    iwork: &mut [i32],
24022    info: &mut i32,
24023) {
24024    ffi::dppcon_(
24025        &(uplo as c_char),
24026        &n,
24027        ap.as_ptr(),
24028        &anorm,
24029        rcond,
24030        work.as_mut_ptr(),
24031        iwork.as_mut_ptr(),
24032        info,
24033    )
24034}
24035
24036#[inline]
24037pub unsafe fn sppcon(
24038    uplo: u8,
24039    n: i32,
24040    ap: &[f32],
24041    anorm: f32,
24042    rcond: &mut f32,
24043    work: &mut [f32],
24044    iwork: &mut [i32],
24045    info: &mut i32,
24046) {
24047    ffi::sppcon_(
24048        &(uplo as c_char),
24049        &n,
24050        ap.as_ptr(),
24051        &anorm,
24052        rcond,
24053        work.as_mut_ptr(),
24054        iwork.as_mut_ptr(),
24055        info,
24056    )
24057}
24058
24059#[inline]
24060pub unsafe fn zppcon(
24061    uplo: u8,
24062    n: i32,
24063    ap: &[c64],
24064    anorm: f64,
24065    rcond: &mut f64,
24066    work: &mut [c64],
24067    rwork: &mut [f64],
24068    info: &mut i32,
24069) {
24070    ffi::zppcon_(
24071        &(uplo as c_char),
24072        &n,
24073        ap.as_ptr() as *const _,
24074        &anorm,
24075        rcond,
24076        work.as_mut_ptr() as *mut _,
24077        rwork.as_mut_ptr(),
24078        info,
24079    )
24080}
24081
24082#[inline]
24083pub unsafe fn cppequ(
24084    uplo: u8,
24085    n: i32,
24086    ap: &[c32],
24087    s: &mut [f32],
24088    scond: &mut [f32],
24089    amax: &mut f32,
24090    info: &mut i32,
24091) {
24092    ffi::cppequ_(
24093        &(uplo as c_char),
24094        &n,
24095        ap.as_ptr() as *const _,
24096        s.as_mut_ptr(),
24097        scond.as_mut_ptr(),
24098        amax,
24099        info,
24100    )
24101}
24102
24103#[inline]
24104pub unsafe fn dppequ(
24105    uplo: u8,
24106    n: i32,
24107    ap: &[f64],
24108    s: &mut [f64],
24109    scond: &mut [f64],
24110    amax: &mut f64,
24111    info: &mut i32,
24112) {
24113    ffi::dppequ_(
24114        &(uplo as c_char),
24115        &n,
24116        ap.as_ptr(),
24117        s.as_mut_ptr(),
24118        scond.as_mut_ptr(),
24119        amax,
24120        info,
24121    )
24122}
24123
24124#[inline]
24125pub unsafe fn sppequ(
24126    uplo: u8,
24127    n: i32,
24128    ap: &[f32],
24129    s: &mut [f32],
24130    scond: &mut [f32],
24131    amax: &mut f32,
24132    info: &mut i32,
24133) {
24134    ffi::sppequ_(
24135        &(uplo as c_char),
24136        &n,
24137        ap.as_ptr(),
24138        s.as_mut_ptr(),
24139        scond.as_mut_ptr(),
24140        amax,
24141        info,
24142    )
24143}
24144
24145#[inline]
24146pub unsafe fn zppequ(
24147    uplo: u8,
24148    n: i32,
24149    ap: &[c64],
24150    s: &mut [f64],
24151    scond: &mut [f64],
24152    amax: &mut f64,
24153    info: &mut i32,
24154) {
24155    ffi::zppequ_(
24156        &(uplo as c_char),
24157        &n,
24158        ap.as_ptr() as *const _,
24159        s.as_mut_ptr(),
24160        scond.as_mut_ptr(),
24161        amax,
24162        info,
24163    )
24164}
24165
24166#[inline]
24167pub unsafe fn cpprfs(
24168    uplo: u8,
24169    n: i32,
24170    nrhs: i32,
24171    ap: &[c32],
24172    afp: &[c32],
24173    b: &[c32],
24174    ldb: i32,
24175    x: &mut [c32],
24176    ldx: i32,
24177    ferr: &mut [f32],
24178    berr: &mut [f32],
24179    work: &mut [c32],
24180    rwork: &mut [f32],
24181    info: &mut i32,
24182) {
24183    ffi::cpprfs_(
24184        &(uplo as c_char),
24185        &n,
24186        &nrhs,
24187        ap.as_ptr() as *const _,
24188        afp.as_ptr() as *const _,
24189        b.as_ptr() as *const _,
24190        &ldb,
24191        x.as_mut_ptr() as *mut _,
24192        &ldx,
24193        ferr.as_mut_ptr(),
24194        berr.as_mut_ptr(),
24195        work.as_mut_ptr() as *mut _,
24196        rwork.as_mut_ptr(),
24197        info,
24198    )
24199}
24200
24201#[inline]
24202pub unsafe fn dpprfs(
24203    uplo: u8,
24204    n: i32,
24205    nrhs: i32,
24206    ap: &[f64],
24207    afp: &[f64],
24208    b: &[f64],
24209    ldb: i32,
24210    x: &mut [f64],
24211    ldx: i32,
24212    ferr: &mut [f64],
24213    berr: &mut [f64],
24214    work: &mut [f64],
24215    iwork: &mut [i32],
24216    info: &mut i32,
24217) {
24218    ffi::dpprfs_(
24219        &(uplo as c_char),
24220        &n,
24221        &nrhs,
24222        ap.as_ptr(),
24223        afp.as_ptr(),
24224        b.as_ptr(),
24225        &ldb,
24226        x.as_mut_ptr(),
24227        &ldx,
24228        ferr.as_mut_ptr(),
24229        berr.as_mut_ptr(),
24230        work.as_mut_ptr(),
24231        iwork.as_mut_ptr(),
24232        info,
24233    )
24234}
24235
24236#[inline]
24237pub unsafe fn spprfs(
24238    uplo: u8,
24239    n: i32,
24240    nrhs: i32,
24241    ap: &[f32],
24242    afp: &[f32],
24243    b: &[f32],
24244    ldb: i32,
24245    x: &mut [f32],
24246    ldx: i32,
24247    ferr: &mut [f32],
24248    berr: &mut [f32],
24249    work: &mut [f32],
24250    iwork: &mut [i32],
24251    info: &mut i32,
24252) {
24253    ffi::spprfs_(
24254        &(uplo as c_char),
24255        &n,
24256        &nrhs,
24257        ap.as_ptr(),
24258        afp.as_ptr(),
24259        b.as_ptr(),
24260        &ldb,
24261        x.as_mut_ptr(),
24262        &ldx,
24263        ferr.as_mut_ptr(),
24264        berr.as_mut_ptr(),
24265        work.as_mut_ptr(),
24266        iwork.as_mut_ptr(),
24267        info,
24268    )
24269}
24270
24271#[inline]
24272pub unsafe fn zpprfs(
24273    uplo: u8,
24274    n: i32,
24275    nrhs: i32,
24276    ap: &[c64],
24277    afp: &[c64],
24278    b: &[c64],
24279    ldb: i32,
24280    x: &mut [c64],
24281    ldx: i32,
24282    ferr: &mut [f64],
24283    berr: &mut [f64],
24284    work: &mut [c64],
24285    rwork: &mut [f64],
24286    info: &mut i32,
24287) {
24288    ffi::zpprfs_(
24289        &(uplo as c_char),
24290        &n,
24291        &nrhs,
24292        ap.as_ptr() as *const _,
24293        afp.as_ptr() as *const _,
24294        b.as_ptr() as *const _,
24295        &ldb,
24296        x.as_mut_ptr() as *mut _,
24297        &ldx,
24298        ferr.as_mut_ptr(),
24299        berr.as_mut_ptr(),
24300        work.as_mut_ptr() as *mut _,
24301        rwork.as_mut_ptr(),
24302        info,
24303    )
24304}
24305
24306#[inline]
24307pub unsafe fn cppsv(
24308    uplo: u8,
24309    n: i32,
24310    nrhs: i32,
24311    ap: &mut [c32],
24312    b: &mut [c32],
24313    ldb: i32,
24314    info: &mut i32,
24315) {
24316    ffi::cppsv_(
24317        &(uplo as c_char),
24318        &n,
24319        &nrhs,
24320        ap.as_mut_ptr() as *mut _,
24321        b.as_mut_ptr() as *mut _,
24322        &ldb,
24323        info,
24324    )
24325}
24326
24327#[inline]
24328pub unsafe fn dppsv(
24329    uplo: u8,
24330    n: i32,
24331    nrhs: i32,
24332    ap: &mut [f64],
24333    b: &mut [f64],
24334    ldb: i32,
24335    info: &mut i32,
24336) {
24337    ffi::dppsv_(
24338        &(uplo as c_char),
24339        &n,
24340        &nrhs,
24341        ap.as_mut_ptr(),
24342        b.as_mut_ptr(),
24343        &ldb,
24344        info,
24345    )
24346}
24347
24348#[inline]
24349pub unsafe fn sppsv(
24350    uplo: u8,
24351    n: i32,
24352    nrhs: i32,
24353    ap: &mut [f32],
24354    b: &mut [f32],
24355    ldb: i32,
24356    info: &mut i32,
24357) {
24358    ffi::sppsv_(
24359        &(uplo as c_char),
24360        &n,
24361        &nrhs,
24362        ap.as_mut_ptr(),
24363        b.as_mut_ptr(),
24364        &ldb,
24365        info,
24366    )
24367}
24368
24369#[inline]
24370pub unsafe fn zppsv(
24371    uplo: u8,
24372    n: i32,
24373    nrhs: i32,
24374    ap: &mut [c64],
24375    b: &mut [c64],
24376    ldb: i32,
24377    info: &mut i32,
24378) {
24379    ffi::zppsv_(
24380        &(uplo as c_char),
24381        &n,
24382        &nrhs,
24383        ap.as_mut_ptr() as *mut _,
24384        b.as_mut_ptr() as *mut _,
24385        &ldb,
24386        info,
24387    )
24388}
24389
24390#[inline]
24391pub unsafe fn cppsvx(
24392    fact: u8,
24393    uplo: u8,
24394    n: i32,
24395    nrhs: i32,
24396    ap: &mut [c32],
24397    afp: &mut [c32],
24398    equed: &mut u8,
24399    s: &mut [f32],
24400    b: &mut [c32],
24401    ldb: i32,
24402    x: &mut [c32],
24403    ldx: i32,
24404    rcond: &mut f32,
24405    ferr: &mut [f32],
24406    berr: &mut [f32],
24407    work: &mut [c32],
24408    rwork: &mut [f32],
24409    info: &mut i32,
24410) {
24411    ffi::cppsvx_(
24412        &(fact as c_char),
24413        &(uplo as c_char),
24414        &n,
24415        &nrhs,
24416        ap.as_mut_ptr() as *mut _,
24417        afp.as_mut_ptr() as *mut _,
24418        equed as *mut _ as *mut _,
24419        s.as_mut_ptr(),
24420        b.as_mut_ptr() as *mut _,
24421        &ldb,
24422        x.as_mut_ptr() as *mut _,
24423        &ldx,
24424        rcond,
24425        ferr.as_mut_ptr(),
24426        berr.as_mut_ptr(),
24427        work.as_mut_ptr() as *mut _,
24428        rwork.as_mut_ptr(),
24429        info,
24430    )
24431}
24432
24433#[inline]
24434pub unsafe fn dppsvx(
24435    fact: u8,
24436    uplo: u8,
24437    n: i32,
24438    nrhs: i32,
24439    ap: &mut [f64],
24440    afp: &mut [f64],
24441    equed: &mut u8,
24442    s: &mut [f64],
24443    b: &mut [f64],
24444    ldb: i32,
24445    x: &mut [f64],
24446    ldx: i32,
24447    rcond: &mut f64,
24448    ferr: &mut [f64],
24449    berr: &mut [f64],
24450    work: &mut [f64],
24451    iwork: &mut [i32],
24452    info: &mut i32,
24453) {
24454    ffi::dppsvx_(
24455        &(fact as c_char),
24456        &(uplo as c_char),
24457        &n,
24458        &nrhs,
24459        ap.as_mut_ptr(),
24460        afp.as_mut_ptr(),
24461        equed as *mut _ as *mut _,
24462        s.as_mut_ptr(),
24463        b.as_mut_ptr(),
24464        &ldb,
24465        x.as_mut_ptr(),
24466        &ldx,
24467        rcond,
24468        ferr.as_mut_ptr(),
24469        berr.as_mut_ptr(),
24470        work.as_mut_ptr(),
24471        iwork.as_mut_ptr(),
24472        info,
24473    )
24474}
24475
24476#[inline]
24477pub unsafe fn sppsvx(
24478    fact: u8,
24479    uplo: u8,
24480    n: i32,
24481    nrhs: i32,
24482    ap: &mut [f32],
24483    afp: &mut [f32],
24484    equed: &mut u8,
24485    s: &mut [f32],
24486    b: &mut [f32],
24487    ldb: i32,
24488    x: &mut [f32],
24489    ldx: i32,
24490    rcond: &mut f32,
24491    ferr: &mut [f32],
24492    berr: &mut [f32],
24493    work: &mut [f32],
24494    iwork: &mut [i32],
24495    info: &mut i32,
24496) {
24497    ffi::sppsvx_(
24498        &(fact as c_char),
24499        &(uplo as c_char),
24500        &n,
24501        &nrhs,
24502        ap.as_mut_ptr(),
24503        afp.as_mut_ptr(),
24504        equed as *mut _ as *mut _,
24505        s.as_mut_ptr(),
24506        b.as_mut_ptr(),
24507        &ldb,
24508        x.as_mut_ptr(),
24509        &ldx,
24510        rcond,
24511        ferr.as_mut_ptr(),
24512        berr.as_mut_ptr(),
24513        work.as_mut_ptr(),
24514        iwork.as_mut_ptr(),
24515        info,
24516    )
24517}
24518
24519#[inline]
24520pub unsafe fn zppsvx(
24521    fact: u8,
24522    uplo: u8,
24523    n: i32,
24524    nrhs: i32,
24525    ap: &mut [c64],
24526    afp: &mut [c64],
24527    equed: &mut u8,
24528    s: &mut [f64],
24529    b: &mut [c64],
24530    ldb: i32,
24531    x: &mut [c64],
24532    ldx: i32,
24533    rcond: &mut f64,
24534    ferr: &mut [f64],
24535    berr: &mut [f64],
24536    work: &mut [c64],
24537    rwork: &mut [f64],
24538    info: &mut i32,
24539) {
24540    ffi::zppsvx_(
24541        &(fact as c_char),
24542        &(uplo as c_char),
24543        &n,
24544        &nrhs,
24545        ap.as_mut_ptr() as *mut _,
24546        afp.as_mut_ptr() as *mut _,
24547        equed as *mut _ as *mut _,
24548        s.as_mut_ptr(),
24549        b.as_mut_ptr() as *mut _,
24550        &ldb,
24551        x.as_mut_ptr() as *mut _,
24552        &ldx,
24553        rcond,
24554        ferr.as_mut_ptr(),
24555        berr.as_mut_ptr(),
24556        work.as_mut_ptr() as *mut _,
24557        rwork.as_mut_ptr(),
24558        info,
24559    )
24560}
24561
24562#[inline]
24563pub unsafe fn cpptrf(uplo: u8, n: i32, ap: &mut [c32], info: &mut i32) {
24564    ffi::cpptrf_(&(uplo as c_char), &n, ap.as_mut_ptr() as *mut _, info)
24565}
24566
24567#[inline]
24568pub unsafe fn dpptrf(uplo: u8, n: i32, ap: &mut [f64], info: &mut i32) {
24569    ffi::dpptrf_(&(uplo as c_char), &n, ap.as_mut_ptr(), info)
24570}
24571
24572#[inline]
24573pub unsafe fn spptrf(uplo: u8, n: i32, ap: &mut [f32], info: &mut i32) {
24574    ffi::spptrf_(&(uplo as c_char), &n, ap.as_mut_ptr(), info)
24575}
24576
24577#[inline]
24578pub unsafe fn zpptrf(uplo: u8, n: i32, ap: &mut [c64], info: &mut i32) {
24579    ffi::zpptrf_(&(uplo as c_char), &n, ap.as_mut_ptr() as *mut _, info)
24580}
24581
24582#[inline]
24583pub unsafe fn cpptri(uplo: u8, n: i32, ap: &mut [c32], info: &mut i32) {
24584    ffi::cpptri_(&(uplo as c_char), &n, ap.as_mut_ptr() as *mut _, info)
24585}
24586
24587#[inline]
24588pub unsafe fn dpptri(uplo: u8, n: i32, ap: &mut [f64], info: &mut i32) {
24589    ffi::dpptri_(&(uplo as c_char), &n, ap.as_mut_ptr(), info)
24590}
24591
24592#[inline]
24593pub unsafe fn spptri(uplo: u8, n: i32, ap: &mut [f32], info: &mut i32) {
24594    ffi::spptri_(&(uplo as c_char), &n, ap.as_mut_ptr(), info)
24595}
24596
24597#[inline]
24598pub unsafe fn zpptri(uplo: u8, n: i32, ap: &mut [c64], info: &mut i32) {
24599    ffi::zpptri_(&(uplo as c_char), &n, ap.as_mut_ptr() as *mut _, info)
24600}
24601
24602#[inline]
24603pub unsafe fn cpptrs(
24604    uplo: u8,
24605    n: i32,
24606    nrhs: i32,
24607    ap: &[c32],
24608    b: &mut [c32],
24609    ldb: i32,
24610    info: &mut i32,
24611) {
24612    ffi::cpptrs_(
24613        &(uplo as c_char),
24614        &n,
24615        &nrhs,
24616        ap.as_ptr() as *const _,
24617        b.as_mut_ptr() as *mut _,
24618        &ldb,
24619        info,
24620    )
24621}
24622
24623#[inline]
24624pub unsafe fn dpptrs(
24625    uplo: u8,
24626    n: i32,
24627    nrhs: i32,
24628    ap: &[f64],
24629    b: &mut [f64],
24630    ldb: i32,
24631    info: &mut i32,
24632) {
24633    ffi::dpptrs_(
24634        &(uplo as c_char),
24635        &n,
24636        &nrhs,
24637        ap.as_ptr(),
24638        b.as_mut_ptr(),
24639        &ldb,
24640        info,
24641    )
24642}
24643
24644#[inline]
24645pub unsafe fn spptrs(
24646    uplo: u8,
24647    n: i32,
24648    nrhs: i32,
24649    ap: &[f32],
24650    b: &mut [f32],
24651    ldb: i32,
24652    info: &mut i32,
24653) {
24654    ffi::spptrs_(
24655        &(uplo as c_char),
24656        &n,
24657        &nrhs,
24658        ap.as_ptr(),
24659        b.as_mut_ptr(),
24660        &ldb,
24661        info,
24662    )
24663}
24664
24665#[inline]
24666pub unsafe fn zpptrs(
24667    uplo: u8,
24668    n: i32,
24669    nrhs: i32,
24670    ap: &[c64],
24671    b: &mut [c64],
24672    ldb: i32,
24673    info: &mut i32,
24674) {
24675    ffi::zpptrs_(
24676        &(uplo as c_char),
24677        &n,
24678        &nrhs,
24679        ap.as_ptr() as *const _,
24680        b.as_mut_ptr() as *mut _,
24681        &ldb,
24682        info,
24683    )
24684}
24685
24686#[inline]
24687pub unsafe fn cpstrf(
24688    uplo: u8,
24689    n: i32,
24690    a: &mut [c32],
24691    lda: i32,
24692    piv: &mut [i32],
24693    rank: &mut i32,
24694    tol: f32,
24695    work: &mut [f32],
24696    info: &mut i32,
24697) {
24698    ffi::cpstrf_(
24699        &(uplo as c_char),
24700        &n,
24701        a.as_mut_ptr() as *mut _,
24702        &lda,
24703        piv.as_mut_ptr(),
24704        rank,
24705        &tol,
24706        work.as_mut_ptr(),
24707        info,
24708    )
24709}
24710
24711#[inline]
24712pub unsafe fn dpstrf(
24713    uplo: u8,
24714    n: i32,
24715    a: &mut [f64],
24716    lda: i32,
24717    piv: &mut [i32],
24718    rank: &mut i32,
24719    tol: f64,
24720    work: &mut [f64],
24721    info: &mut i32,
24722) {
24723    ffi::dpstrf_(
24724        &(uplo as c_char),
24725        &n,
24726        a.as_mut_ptr(),
24727        &lda,
24728        piv.as_mut_ptr(),
24729        rank,
24730        &tol,
24731        work.as_mut_ptr(),
24732        info,
24733    )
24734}
24735
24736#[inline]
24737pub unsafe fn spstrf(
24738    uplo: u8,
24739    n: i32,
24740    a: &mut [f32],
24741    lda: i32,
24742    piv: &mut [i32],
24743    rank: &mut i32,
24744    tol: f32,
24745    work: &mut [f32],
24746    info: &mut i32,
24747) {
24748    ffi::spstrf_(
24749        &(uplo as c_char),
24750        &n,
24751        a.as_mut_ptr(),
24752        &lda,
24753        piv.as_mut_ptr(),
24754        rank,
24755        &tol,
24756        work.as_mut_ptr(),
24757        info,
24758    )
24759}
24760
24761#[inline]
24762pub unsafe fn zpstrf(
24763    uplo: u8,
24764    n: i32,
24765    a: &mut [c64],
24766    lda: i32,
24767    piv: &mut [i32],
24768    rank: &mut i32,
24769    tol: f64,
24770    work: &mut [f64],
24771    info: &mut i32,
24772) {
24773    ffi::zpstrf_(
24774        &(uplo as c_char),
24775        &n,
24776        a.as_mut_ptr() as *mut _,
24777        &lda,
24778        piv.as_mut_ptr(),
24779        rank,
24780        &tol,
24781        work.as_mut_ptr(),
24782        info,
24783    )
24784}
24785
24786#[inline]
24787pub unsafe fn cptcon(
24788    n: i32,
24789    d: &[f32],
24790    e: &[c32],
24791    anorm: f32,
24792    rcond: &mut f32,
24793    rwork: &mut [f32],
24794    info: &mut i32,
24795) {
24796    ffi::cptcon_(
24797        &n,
24798        d.as_ptr(),
24799        e.as_ptr() as *const _,
24800        &anorm,
24801        rcond,
24802        rwork.as_mut_ptr(),
24803        info,
24804    )
24805}
24806
24807#[inline]
24808pub unsafe fn dptcon(
24809    n: i32,
24810    d: &[f64],
24811    e: &[f64],
24812    anorm: f64,
24813    rcond: &mut f64,
24814    work: &mut [f64],
24815    info: &mut i32,
24816) {
24817    ffi::dptcon_(
24818        &n,
24819        d.as_ptr(),
24820        e.as_ptr(),
24821        &anorm,
24822        rcond,
24823        work.as_mut_ptr(),
24824        info,
24825    )
24826}
24827
24828#[inline]
24829pub unsafe fn sptcon(
24830    n: i32,
24831    d: &[f32],
24832    e: &[f32],
24833    anorm: f32,
24834    rcond: &mut f32,
24835    work: &mut [f32],
24836    info: &mut i32,
24837) {
24838    ffi::sptcon_(
24839        &n,
24840        d.as_ptr(),
24841        e.as_ptr(),
24842        &anorm,
24843        rcond,
24844        work.as_mut_ptr(),
24845        info,
24846    )
24847}
24848
24849#[inline]
24850pub unsafe fn zptcon(
24851    n: i32,
24852    d: &[f64],
24853    e: &[c64],
24854    anorm: f64,
24855    rcond: &mut f64,
24856    rwork: &mut [f64],
24857    info: &mut i32,
24858) {
24859    ffi::zptcon_(
24860        &n,
24861        d.as_ptr(),
24862        e.as_ptr() as *const _,
24863        &anorm,
24864        rcond,
24865        rwork.as_mut_ptr(),
24866        info,
24867    )
24868}
24869
24870#[inline]
24871pub unsafe fn cpteqr(
24872    compz: u8,
24873    n: i32,
24874    d: &mut [f32],
24875    e: &mut [f32],
24876    z: &mut [c32],
24877    ldz: i32,
24878    work: &mut [f32],
24879    info: &mut i32,
24880) {
24881    ffi::cpteqr_(
24882        &(compz as c_char),
24883        &n,
24884        d.as_mut_ptr(),
24885        e.as_mut_ptr(),
24886        z.as_mut_ptr() as *mut _,
24887        &ldz,
24888        work.as_mut_ptr(),
24889        info,
24890    )
24891}
24892
24893#[inline]
24894pub unsafe fn dpteqr(
24895    compz: u8,
24896    n: i32,
24897    d: &mut [f64],
24898    e: &mut [f64],
24899    z: &mut [f64],
24900    ldz: i32,
24901    work: &mut [f64],
24902    info: &mut i32,
24903) {
24904    ffi::dpteqr_(
24905        &(compz as c_char),
24906        &n,
24907        d.as_mut_ptr(),
24908        e.as_mut_ptr(),
24909        z.as_mut_ptr(),
24910        &ldz,
24911        work.as_mut_ptr(),
24912        info,
24913    )
24914}
24915
24916#[inline]
24917pub unsafe fn spteqr(
24918    compz: u8,
24919    n: i32,
24920    d: &mut [f32],
24921    e: &mut [f32],
24922    z: &mut [f32],
24923    ldz: i32,
24924    work: &mut [f32],
24925    info: &mut i32,
24926) {
24927    ffi::spteqr_(
24928        &(compz as c_char),
24929        &n,
24930        d.as_mut_ptr(),
24931        e.as_mut_ptr(),
24932        z.as_mut_ptr(),
24933        &ldz,
24934        work.as_mut_ptr(),
24935        info,
24936    )
24937}
24938
24939#[inline]
24940pub unsafe fn zpteqr(
24941    compz: u8,
24942    n: i32,
24943    d: &mut [f64],
24944    e: &mut [f64],
24945    z: &mut [c64],
24946    ldz: i32,
24947    work: &mut [f64],
24948    info: &mut i32,
24949) {
24950    ffi::zpteqr_(
24951        &(compz as c_char),
24952        &n,
24953        d.as_mut_ptr(),
24954        e.as_mut_ptr(),
24955        z.as_mut_ptr() as *mut _,
24956        &ldz,
24957        work.as_mut_ptr(),
24958        info,
24959    )
24960}
24961
24962#[inline]
24963pub unsafe fn cptrfs(
24964    uplo: u8,
24965    n: i32,
24966    nrhs: i32,
24967    d: &[f32],
24968    e: &[c32],
24969    df: &[f32],
24970    ef: &[c32],
24971    b: &[c32],
24972    ldb: i32,
24973    x: &mut [c32],
24974    ldx: i32,
24975    ferr: &mut [f32],
24976    berr: &mut [f32],
24977    work: &mut [c32],
24978    rwork: &mut [f32],
24979    info: &mut i32,
24980) {
24981    ffi::cptrfs_(
24982        &(uplo as c_char),
24983        &n,
24984        &nrhs,
24985        d.as_ptr(),
24986        e.as_ptr() as *const _,
24987        df.as_ptr(),
24988        ef.as_ptr() as *const _,
24989        b.as_ptr() as *const _,
24990        &ldb,
24991        x.as_mut_ptr() as *mut _,
24992        &ldx,
24993        ferr.as_mut_ptr(),
24994        berr.as_mut_ptr(),
24995        work.as_mut_ptr() as *mut _,
24996        rwork.as_mut_ptr(),
24997        info,
24998    )
24999}
25000
25001#[inline]
25002pub unsafe fn dptrfs(
25003    n: i32,
25004    nrhs: i32,
25005    d: &[f64],
25006    e: &[f64],
25007    df: &[f64],
25008    ef: &[f64],
25009    b: &[f64],
25010    ldb: i32,
25011    x: &mut [f64],
25012    ldx: i32,
25013    ferr: &mut [f64],
25014    berr: &mut [f64],
25015    work: &mut [f64],
25016    info: &mut i32,
25017) {
25018    ffi::dptrfs_(
25019        &n,
25020        &nrhs,
25021        d.as_ptr(),
25022        e.as_ptr(),
25023        df.as_ptr(),
25024        ef.as_ptr(),
25025        b.as_ptr(),
25026        &ldb,
25027        x.as_mut_ptr(),
25028        &ldx,
25029        ferr.as_mut_ptr(),
25030        berr.as_mut_ptr(),
25031        work.as_mut_ptr(),
25032        info,
25033    )
25034}
25035
25036#[inline]
25037pub unsafe fn sptrfs(
25038    n: i32,
25039    nrhs: i32,
25040    d: &[f32],
25041    e: &[f32],
25042    df: &[f32],
25043    ef: &[f32],
25044    b: &[f32],
25045    ldb: i32,
25046    x: &mut [f32],
25047    ldx: i32,
25048    ferr: &mut [f32],
25049    berr: &mut [f32],
25050    work: &mut [f32],
25051    info: &mut i32,
25052) {
25053    ffi::sptrfs_(
25054        &n,
25055        &nrhs,
25056        d.as_ptr(),
25057        e.as_ptr(),
25058        df.as_ptr(),
25059        ef.as_ptr(),
25060        b.as_ptr(),
25061        &ldb,
25062        x.as_mut_ptr(),
25063        &ldx,
25064        ferr.as_mut_ptr(),
25065        berr.as_mut_ptr(),
25066        work.as_mut_ptr(),
25067        info,
25068    )
25069}
25070
25071#[inline]
25072pub unsafe fn zptrfs(
25073    uplo: u8,
25074    n: i32,
25075    nrhs: i32,
25076    d: &[f64],
25077    e: &[c64],
25078    df: &[f64],
25079    ef: &[c64],
25080    b: &[c64],
25081    ldb: i32,
25082    x: &mut [c64],
25083    ldx: i32,
25084    ferr: &mut [f64],
25085    berr: &mut [f64],
25086    work: &mut [c64],
25087    rwork: &mut [f64],
25088    info: &mut i32,
25089) {
25090    ffi::zptrfs_(
25091        &(uplo as c_char),
25092        &n,
25093        &nrhs,
25094        d.as_ptr(),
25095        e.as_ptr() as *const _,
25096        df.as_ptr(),
25097        ef.as_ptr() as *const _,
25098        b.as_ptr() as *const _,
25099        &ldb,
25100        x.as_mut_ptr() as *mut _,
25101        &ldx,
25102        ferr.as_mut_ptr(),
25103        berr.as_mut_ptr(),
25104        work.as_mut_ptr() as *mut _,
25105        rwork.as_mut_ptr(),
25106        info,
25107    )
25108}
25109
25110#[inline]
25111pub unsafe fn cptsv(
25112    n: i32,
25113    nrhs: i32,
25114    d: &mut [f32],
25115    e: &mut [c32],
25116    b: &mut [c32],
25117    ldb: i32,
25118    info: &mut i32,
25119) {
25120    ffi::cptsv_(
25121        &n,
25122        &nrhs,
25123        d.as_mut_ptr(),
25124        e.as_mut_ptr() as *mut _,
25125        b.as_mut_ptr() as *mut _,
25126        &ldb,
25127        info,
25128    )
25129}
25130
25131#[inline]
25132pub unsafe fn dptsv(
25133    n: i32,
25134    nrhs: i32,
25135    d: &mut [f64],
25136    e: &mut [f64],
25137    b: &mut [f64],
25138    ldb: i32,
25139    info: &mut i32,
25140) {
25141    ffi::dptsv_(
25142        &n,
25143        &nrhs,
25144        d.as_mut_ptr(),
25145        e.as_mut_ptr(),
25146        b.as_mut_ptr(),
25147        &ldb,
25148        info,
25149    )
25150}
25151
25152#[inline]
25153pub unsafe fn sptsv(
25154    n: i32,
25155    nrhs: i32,
25156    d: &mut [f32],
25157    e: &mut [f32],
25158    b: &mut [f32],
25159    ldb: i32,
25160    info: &mut i32,
25161) {
25162    ffi::sptsv_(
25163        &n,
25164        &nrhs,
25165        d.as_mut_ptr(),
25166        e.as_mut_ptr(),
25167        b.as_mut_ptr(),
25168        &ldb,
25169        info,
25170    )
25171}
25172
25173#[inline]
25174pub unsafe fn zptsv(
25175    n: i32,
25176    nrhs: i32,
25177    d: &mut [f64],
25178    e: &mut [c64],
25179    b: &mut [c64],
25180    ldb: i32,
25181    info: &mut i32,
25182) {
25183    ffi::zptsv_(
25184        &n,
25185        &nrhs,
25186        d.as_mut_ptr(),
25187        e.as_mut_ptr() as *mut _,
25188        b.as_mut_ptr() as *mut _,
25189        &ldb,
25190        info,
25191    )
25192}
25193
25194#[inline]
25195pub unsafe fn cptsvx(
25196    fact: u8,
25197    n: i32,
25198    nrhs: i32,
25199    d: &[f32],
25200    e: &[c32],
25201    df: &mut [f32],
25202    ef: &mut [c32],
25203    b: &[c32],
25204    ldb: i32,
25205    x: &mut [c32],
25206    ldx: i32,
25207    rcond: &mut f32,
25208    ferr: &mut [f32],
25209    berr: &mut [f32],
25210    work: &mut [c32],
25211    rwork: &mut [f32],
25212    info: &mut i32,
25213) {
25214    ffi::cptsvx_(
25215        &(fact as c_char),
25216        &n,
25217        &nrhs,
25218        d.as_ptr(),
25219        e.as_ptr() as *const _,
25220        df.as_mut_ptr(),
25221        ef.as_mut_ptr() as *mut _,
25222        b.as_ptr() as *const _,
25223        &ldb,
25224        x.as_mut_ptr() as *mut _,
25225        &ldx,
25226        rcond,
25227        ferr.as_mut_ptr(),
25228        berr.as_mut_ptr(),
25229        work.as_mut_ptr() as *mut _,
25230        rwork.as_mut_ptr(),
25231        info,
25232    )
25233}
25234
25235#[inline]
25236pub unsafe fn dptsvx(
25237    fact: u8,
25238    n: i32,
25239    nrhs: i32,
25240    d: &[f64],
25241    e: &[f64],
25242    df: &mut [f64],
25243    ef: &mut [f64],
25244    b: &[f64],
25245    ldb: i32,
25246    x: &mut [f64],
25247    ldx: i32,
25248    rcond: &mut f64,
25249    ferr: &mut [f64],
25250    berr: &mut [f64],
25251    work: &mut [f64],
25252    info: &mut i32,
25253) {
25254    ffi::dptsvx_(
25255        &(fact as c_char),
25256        &n,
25257        &nrhs,
25258        d.as_ptr(),
25259        e.as_ptr(),
25260        df.as_mut_ptr(),
25261        ef.as_mut_ptr(),
25262        b.as_ptr(),
25263        &ldb,
25264        x.as_mut_ptr(),
25265        &ldx,
25266        rcond,
25267        ferr.as_mut_ptr(),
25268        berr.as_mut_ptr(),
25269        work.as_mut_ptr(),
25270        info,
25271    )
25272}
25273
25274#[inline]
25275pub unsafe fn sptsvx(
25276    fact: u8,
25277    n: i32,
25278    nrhs: i32,
25279    d: &[f32],
25280    e: &[f32],
25281    df: &mut [f32],
25282    ef: &mut [f32],
25283    b: &[f32],
25284    ldb: i32,
25285    x: &mut [f32],
25286    ldx: i32,
25287    rcond: &mut f32,
25288    ferr: &mut [f32],
25289    berr: &mut [f32],
25290    work: &mut [f32],
25291    info: &mut i32,
25292) {
25293    ffi::sptsvx_(
25294        &(fact as c_char),
25295        &n,
25296        &nrhs,
25297        d.as_ptr(),
25298        e.as_ptr(),
25299        df.as_mut_ptr(),
25300        ef.as_mut_ptr(),
25301        b.as_ptr(),
25302        &ldb,
25303        x.as_mut_ptr(),
25304        &ldx,
25305        rcond,
25306        ferr.as_mut_ptr(),
25307        berr.as_mut_ptr(),
25308        work.as_mut_ptr(),
25309        info,
25310    )
25311}
25312
25313#[inline]
25314pub unsafe fn zptsvx(
25315    fact: u8,
25316    n: i32,
25317    nrhs: i32,
25318    d: &[f64],
25319    e: &[c64],
25320    df: &mut [f64],
25321    ef: &mut [c64],
25322    b: &[c64],
25323    ldb: i32,
25324    x: &mut [c64],
25325    ldx: i32,
25326    rcond: &mut f64,
25327    ferr: &mut [f64],
25328    berr: &mut [f64],
25329    work: &mut [c64],
25330    rwork: &mut [f64],
25331    info: &mut i32,
25332) {
25333    ffi::zptsvx_(
25334        &(fact as c_char),
25335        &n,
25336        &nrhs,
25337        d.as_ptr(),
25338        e.as_ptr() as *const _,
25339        df.as_mut_ptr(),
25340        ef.as_mut_ptr() as *mut _,
25341        b.as_ptr() as *const _,
25342        &ldb,
25343        x.as_mut_ptr() as *mut _,
25344        &ldx,
25345        rcond,
25346        ferr.as_mut_ptr(),
25347        berr.as_mut_ptr(),
25348        work.as_mut_ptr() as *mut _,
25349        rwork.as_mut_ptr(),
25350        info,
25351    )
25352}
25353
25354#[inline]
25355pub unsafe fn cpttrf(n: i32, d: &mut [f32], e: &mut [c32], info: &mut i32) {
25356    ffi::cpttrf_(&n, d.as_mut_ptr(), e.as_mut_ptr() as *mut _, info)
25357}
25358
25359#[inline]
25360pub unsafe fn dpttrf(n: i32, d: &mut [f64], e: &mut [f64], info: &mut i32) {
25361    ffi::dpttrf_(&n, d.as_mut_ptr(), e.as_mut_ptr(), info)
25362}
25363
25364#[inline]
25365pub unsafe fn spttrf(n: i32, d: &mut [f32], e: &mut [f32], info: &mut i32) {
25366    ffi::spttrf_(&n, d.as_mut_ptr(), e.as_mut_ptr(), info)
25367}
25368
25369#[inline]
25370pub unsafe fn zpttrf(n: i32, d: &mut [f64], e: &mut [c64], info: &mut i32) {
25371    ffi::zpttrf_(&n, d.as_mut_ptr(), e.as_mut_ptr() as *mut _, info)
25372}
25373
25374#[inline]
25375pub unsafe fn cpttrs(
25376    uplo: u8,
25377    n: i32,
25378    nrhs: i32,
25379    d: &[f32],
25380    e: &[c32],
25381    b: &mut [c32],
25382    ldb: i32,
25383    info: &mut i32,
25384) {
25385    ffi::cpttrs_(
25386        &(uplo as c_char),
25387        &n,
25388        &nrhs,
25389        d.as_ptr(),
25390        e.as_ptr() as *const _,
25391        b.as_mut_ptr() as *mut _,
25392        &ldb,
25393        info,
25394    )
25395}
25396
25397#[inline]
25398pub unsafe fn dpttrs(
25399    n: i32,
25400    nrhs: i32,
25401    d: &[f64],
25402    e: &[f64],
25403    b: &mut [f64],
25404    ldb: i32,
25405    info: &mut i32,
25406) {
25407    ffi::dpttrs_(
25408        &n,
25409        &nrhs,
25410        d.as_ptr(),
25411        e.as_ptr(),
25412        b.as_mut_ptr(),
25413        &ldb,
25414        info,
25415    )
25416}
25417
25418#[inline]
25419pub unsafe fn spttrs(
25420    n: i32,
25421    nrhs: i32,
25422    d: &[f32],
25423    e: &[f32],
25424    b: &mut [f32],
25425    ldb: i32,
25426    info: &mut i32,
25427) {
25428    ffi::spttrs_(
25429        &n,
25430        &nrhs,
25431        d.as_ptr(),
25432        e.as_ptr(),
25433        b.as_mut_ptr(),
25434        &ldb,
25435        info,
25436    )
25437}
25438
25439#[inline]
25440pub unsafe fn zpttrs(
25441    uplo: u8,
25442    n: i32,
25443    nrhs: i32,
25444    d: &[f64],
25445    e: &[c64],
25446    b: &mut [c64],
25447    ldb: i32,
25448    info: &mut i32,
25449) {
25450    ffi::zpttrs_(
25451        &(uplo as c_char),
25452        &n,
25453        &nrhs,
25454        d.as_ptr(),
25455        e.as_ptr() as *const _,
25456        b.as_mut_ptr() as *mut _,
25457        &ldb,
25458        info,
25459    )
25460}
25461
25462#[inline]
25463pub unsafe fn dsbev(
25464    jobz: u8,
25465    uplo: u8,
25466    n: i32,
25467    kd: i32,
25468    ab: &mut [f64],
25469    ldab: i32,
25470    w: &mut [f64],
25471    z: &mut [f64],
25472    ldz: i32,
25473    work: &mut [f64],
25474    info: &mut i32,
25475) {
25476    ffi::dsbev_(
25477        &(jobz as c_char),
25478        &(uplo as c_char),
25479        &n,
25480        &kd,
25481        ab.as_mut_ptr(),
25482        &ldab,
25483        w.as_mut_ptr(),
25484        z.as_mut_ptr(),
25485        &ldz,
25486        work.as_mut_ptr(),
25487        info,
25488    )
25489}
25490
25491#[inline]
25492pub unsafe fn ssbev(
25493    jobz: u8,
25494    uplo: u8,
25495    n: i32,
25496    kd: i32,
25497    ab: &mut [f32],
25498    ldab: i32,
25499    w: &mut [f32],
25500    z: &mut [f32],
25501    ldz: i32,
25502    work: &mut [f32],
25503    info: &mut i32,
25504) {
25505    ffi::ssbev_(
25506        &(jobz as c_char),
25507        &(uplo as c_char),
25508        &n,
25509        &kd,
25510        ab.as_mut_ptr(),
25511        &ldab,
25512        w.as_mut_ptr(),
25513        z.as_mut_ptr(),
25514        &ldz,
25515        work.as_mut_ptr(),
25516        info,
25517    )
25518}
25519
25520#[inline]
25521pub unsafe fn dsbev_2stage(
25522    jobz: u8,
25523    uplo: u8,
25524    n: i32,
25525    kd: i32,
25526    ab: &mut [f64],
25527    ldab: i32,
25528    w: &mut [f64],
25529    z: &mut [f64],
25530    ldz: i32,
25531    work: &mut [f64],
25532    lwork: i32,
25533    info: &mut i32,
25534) {
25535    ffi::dsbev_2stage_(
25536        &(jobz as c_char),
25537        &(uplo as c_char),
25538        &n,
25539        &kd,
25540        ab.as_mut_ptr(),
25541        &ldab,
25542        w.as_mut_ptr(),
25543        z.as_mut_ptr(),
25544        &ldz,
25545        work.as_mut_ptr(),
25546        &lwork,
25547        info,
25548    )
25549}
25550
25551#[inline]
25552pub unsafe fn ssbev_2stage(
25553    jobz: u8,
25554    uplo: u8,
25555    n: i32,
25556    kd: i32,
25557    ab: &mut [f32],
25558    ldab: i32,
25559    w: &mut [f32],
25560    z: &mut [f32],
25561    ldz: i32,
25562    work: &mut [f32],
25563    lwork: i32,
25564    info: &mut i32,
25565) {
25566    ffi::ssbev_2stage_(
25567        &(jobz as c_char),
25568        &(uplo as c_char),
25569        &n,
25570        &kd,
25571        ab.as_mut_ptr(),
25572        &ldab,
25573        w.as_mut_ptr(),
25574        z.as_mut_ptr(),
25575        &ldz,
25576        work.as_mut_ptr(),
25577        &lwork,
25578        info,
25579    )
25580}
25581
25582#[inline]
25583pub unsafe fn dsbevd(
25584    jobz: u8,
25585    uplo: u8,
25586    n: i32,
25587    kd: i32,
25588    ab: &mut [f64],
25589    ldab: i32,
25590    w: &mut [f64],
25591    z: &mut [f64],
25592    ldz: i32,
25593    work: &mut [f64],
25594    lwork: i32,
25595    iwork: &mut [i32],
25596    liwork: i32,
25597    info: &mut i32,
25598) {
25599    ffi::dsbevd_(
25600        &(jobz as c_char),
25601        &(uplo as c_char),
25602        &n,
25603        &kd,
25604        ab.as_mut_ptr(),
25605        &ldab,
25606        w.as_mut_ptr(),
25607        z.as_mut_ptr(),
25608        &ldz,
25609        work.as_mut_ptr(),
25610        &lwork,
25611        iwork.as_mut_ptr(),
25612        &liwork,
25613        info,
25614    )
25615}
25616
25617#[inline]
25618pub unsafe fn ssbevd(
25619    jobz: u8,
25620    uplo: u8,
25621    n: i32,
25622    kd: i32,
25623    ab: &mut [f32],
25624    ldab: i32,
25625    w: &mut [f32],
25626    z: &mut [f32],
25627    ldz: i32,
25628    work: &mut [f32],
25629    lwork: i32,
25630    iwork: &mut [i32],
25631    liwork: i32,
25632    info: &mut i32,
25633) {
25634    ffi::ssbevd_(
25635        &(jobz as c_char),
25636        &(uplo as c_char),
25637        &n,
25638        &kd,
25639        ab.as_mut_ptr(),
25640        &ldab,
25641        w.as_mut_ptr(),
25642        z.as_mut_ptr(),
25643        &ldz,
25644        work.as_mut_ptr(),
25645        &lwork,
25646        iwork.as_mut_ptr(),
25647        &liwork,
25648        info,
25649    )
25650}
25651
25652#[inline]
25653pub unsafe fn dsbevd_2stage(
25654    jobz: u8,
25655    uplo: u8,
25656    n: i32,
25657    kd: i32,
25658    ab: &mut [f64],
25659    ldab: i32,
25660    w: &mut [f64],
25661    z: &mut [f64],
25662    ldz: i32,
25663    work: &mut [f64],
25664    lwork: i32,
25665    iwork: &mut [i32],
25666    liwork: i32,
25667    info: &mut i32,
25668) {
25669    ffi::dsbevd_2stage_(
25670        &(jobz as c_char),
25671        &(uplo as c_char),
25672        &n,
25673        &kd,
25674        ab.as_mut_ptr(),
25675        &ldab,
25676        w.as_mut_ptr(),
25677        z.as_mut_ptr(),
25678        &ldz,
25679        work.as_mut_ptr(),
25680        &lwork,
25681        iwork.as_mut_ptr(),
25682        &liwork,
25683        info,
25684    )
25685}
25686
25687#[inline]
25688pub unsafe fn ssbevd_2stage(
25689    jobz: u8,
25690    uplo: u8,
25691    n: i32,
25692    kd: i32,
25693    ab: &mut [f32],
25694    ldab: i32,
25695    w: &mut [f32],
25696    z: &mut [f32],
25697    ldz: i32,
25698    work: &mut [f32],
25699    lwork: i32,
25700    iwork: &mut [i32],
25701    liwork: i32,
25702    info: &mut i32,
25703) {
25704    ffi::ssbevd_2stage_(
25705        &(jobz as c_char),
25706        &(uplo as c_char),
25707        &n,
25708        &kd,
25709        ab.as_mut_ptr(),
25710        &ldab,
25711        w.as_mut_ptr(),
25712        z.as_mut_ptr(),
25713        &ldz,
25714        work.as_mut_ptr(),
25715        &lwork,
25716        iwork.as_mut_ptr(),
25717        &liwork,
25718        info,
25719    )
25720}
25721
25722#[inline]
25723pub unsafe fn dsbevx(
25724    jobz: u8,
25725    range: u8,
25726    uplo: u8,
25727    n: i32,
25728    kd: i32,
25729    ab: &mut [f64],
25730    ldab: i32,
25731    q: &mut [f64],
25732    ldq: i32,
25733    vl: f64,
25734    vu: f64,
25735    il: i32,
25736    iu: i32,
25737    abstol: f64,
25738    m: &mut i32,
25739    w: &mut [f64],
25740    z: &mut [f64],
25741    ldz: i32,
25742    work: &mut [f64],
25743    iwork: &mut [i32],
25744    ifail: &mut [i32],
25745    info: &mut i32,
25746) {
25747    ffi::dsbevx_(
25748        &(jobz as c_char),
25749        &(range as c_char),
25750        &(uplo as c_char),
25751        &n,
25752        &kd,
25753        ab.as_mut_ptr(),
25754        &ldab,
25755        q.as_mut_ptr(),
25756        &ldq,
25757        &vl,
25758        &vu,
25759        &il,
25760        &iu,
25761        &abstol,
25762        m,
25763        w.as_mut_ptr(),
25764        z.as_mut_ptr(),
25765        &ldz,
25766        work.as_mut_ptr(),
25767        iwork.as_mut_ptr(),
25768        ifail.as_mut_ptr(),
25769        info,
25770    )
25771}
25772
25773#[inline]
25774pub unsafe fn ssbevx(
25775    jobz: u8,
25776    range: u8,
25777    uplo: u8,
25778    n: i32,
25779    kd: i32,
25780    ab: &mut [f32],
25781    ldab: i32,
25782    q: &mut [f32],
25783    ldq: i32,
25784    vl: f32,
25785    vu: f32,
25786    il: i32,
25787    iu: i32,
25788    abstol: f32,
25789    m: &mut i32,
25790    w: &mut [f32],
25791    z: &mut [f32],
25792    ldz: i32,
25793    work: &mut [f32],
25794    iwork: &mut [i32],
25795    ifail: &mut [i32],
25796    info: &mut i32,
25797) {
25798    ffi::ssbevx_(
25799        &(jobz as c_char),
25800        &(range as c_char),
25801        &(uplo as c_char),
25802        &n,
25803        &kd,
25804        ab.as_mut_ptr(),
25805        &ldab,
25806        q.as_mut_ptr(),
25807        &ldq,
25808        &vl,
25809        &vu,
25810        &il,
25811        &iu,
25812        &abstol,
25813        m,
25814        w.as_mut_ptr(),
25815        z.as_mut_ptr(),
25816        &ldz,
25817        work.as_mut_ptr(),
25818        iwork.as_mut_ptr(),
25819        ifail.as_mut_ptr(),
25820        info,
25821    )
25822}
25823
25824#[inline]
25825pub unsafe fn dsbevx_2stage(
25826    jobz: u8,
25827    range: u8,
25828    uplo: u8,
25829    n: i32,
25830    kd: i32,
25831    ab: &mut [f64],
25832    ldab: i32,
25833    q: &mut [f64],
25834    ldq: i32,
25835    vl: f64,
25836    vu: f64,
25837    il: i32,
25838    iu: i32,
25839    abstol: f64,
25840    m: &mut i32,
25841    w: &mut [f64],
25842    z: &mut [f64],
25843    ldz: i32,
25844    work: &mut [f64],
25845    lwork: i32,
25846    iwork: &mut [i32],
25847    ifail: &mut [i32],
25848    info: &mut i32,
25849) {
25850    ffi::dsbevx_2stage_(
25851        &(jobz as c_char),
25852        &(range as c_char),
25853        &(uplo as c_char),
25854        &n,
25855        &kd,
25856        ab.as_mut_ptr(),
25857        &ldab,
25858        q.as_mut_ptr(),
25859        &ldq,
25860        &vl,
25861        &vu,
25862        &il,
25863        &iu,
25864        &abstol,
25865        m,
25866        w.as_mut_ptr(),
25867        z.as_mut_ptr(),
25868        &ldz,
25869        work.as_mut_ptr(),
25870        &lwork,
25871        iwork.as_mut_ptr(),
25872        ifail.as_mut_ptr(),
25873        info,
25874    )
25875}
25876
25877#[inline]
25878pub unsafe fn ssbevx_2stage(
25879    jobz: u8,
25880    range: u8,
25881    uplo: u8,
25882    n: i32,
25883    kd: i32,
25884    ab: &mut [f32],
25885    ldab: i32,
25886    q: &mut [f32],
25887    ldq: i32,
25888    vl: f32,
25889    vu: f32,
25890    il: i32,
25891    iu: i32,
25892    abstol: f32,
25893    m: &mut i32,
25894    w: &mut [f32],
25895    z: &mut [f32],
25896    ldz: i32,
25897    work: &mut [f32],
25898    lwork: i32,
25899    iwork: &mut [i32],
25900    ifail: &mut [i32],
25901    info: &mut i32,
25902) {
25903    ffi::ssbevx_2stage_(
25904        &(jobz as c_char),
25905        &(range as c_char),
25906        &(uplo as c_char),
25907        &n,
25908        &kd,
25909        ab.as_mut_ptr(),
25910        &ldab,
25911        q.as_mut_ptr(),
25912        &ldq,
25913        &vl,
25914        &vu,
25915        &il,
25916        &iu,
25917        &abstol,
25918        m,
25919        w.as_mut_ptr(),
25920        z.as_mut_ptr(),
25921        &ldz,
25922        work.as_mut_ptr(),
25923        &lwork,
25924        iwork.as_mut_ptr(),
25925        ifail.as_mut_ptr(),
25926        info,
25927    )
25928}
25929
25930#[inline]
25931pub unsafe fn dsbgst(
25932    vect: u8,
25933    uplo: u8,
25934    n: i32,
25935    ka: i32,
25936    kb: i32,
25937    ab: &mut [f64],
25938    ldab: i32,
25939    bb: &[f64],
25940    ldbb: i32,
25941    x: &mut [f64],
25942    ldx: i32,
25943    work: &mut [f64],
25944    info: &mut i32,
25945) {
25946    ffi::dsbgst_(
25947        &(vect as c_char),
25948        &(uplo as c_char),
25949        &n,
25950        &ka,
25951        &kb,
25952        ab.as_mut_ptr(),
25953        &ldab,
25954        bb.as_ptr(),
25955        &ldbb,
25956        x.as_mut_ptr(),
25957        &ldx,
25958        work.as_mut_ptr(),
25959        info,
25960    )
25961}
25962
25963#[inline]
25964pub unsafe fn ssbgst(
25965    vect: u8,
25966    uplo: u8,
25967    n: i32,
25968    ka: i32,
25969    kb: i32,
25970    ab: &mut [f32],
25971    ldab: i32,
25972    bb: &[f32],
25973    ldbb: i32,
25974    x: &mut [f32],
25975    ldx: i32,
25976    work: &mut [f32],
25977    info: &mut i32,
25978) {
25979    ffi::ssbgst_(
25980        &(vect as c_char),
25981        &(uplo as c_char),
25982        &n,
25983        &ka,
25984        &kb,
25985        ab.as_mut_ptr(),
25986        &ldab,
25987        bb.as_ptr(),
25988        &ldbb,
25989        x.as_mut_ptr(),
25990        &ldx,
25991        work.as_mut_ptr(),
25992        info,
25993    )
25994}
25995
25996#[inline]
25997pub unsafe fn dsbgv(
25998    jobz: u8,
25999    uplo: u8,
26000    n: i32,
26001    ka: i32,
26002    kb: i32,
26003    ab: &mut [f64],
26004    ldab: i32,
26005    bb: &mut [f64],
26006    ldbb: i32,
26007    w: &mut [f64],
26008    z: &mut [f64],
26009    ldz: i32,
26010    work: &mut [f64],
26011    info: &mut i32,
26012) {
26013    ffi::dsbgv_(
26014        &(jobz as c_char),
26015        &(uplo as c_char),
26016        &n,
26017        &ka,
26018        &kb,
26019        ab.as_mut_ptr(),
26020        &ldab,
26021        bb.as_mut_ptr(),
26022        &ldbb,
26023        w.as_mut_ptr(),
26024        z.as_mut_ptr(),
26025        &ldz,
26026        work.as_mut_ptr(),
26027        info,
26028    )
26029}
26030
26031#[inline]
26032pub unsafe fn ssbgv(
26033    jobz: u8,
26034    uplo: u8,
26035    n: i32,
26036    ka: i32,
26037    kb: i32,
26038    ab: &mut [f32],
26039    ldab: i32,
26040    bb: &mut [f32],
26041    ldbb: i32,
26042    w: &mut [f32],
26043    z: &mut [f32],
26044    ldz: i32,
26045    work: &mut [f32],
26046    info: &mut i32,
26047) {
26048    ffi::ssbgv_(
26049        &(jobz as c_char),
26050        &(uplo as c_char),
26051        &n,
26052        &ka,
26053        &kb,
26054        ab.as_mut_ptr(),
26055        &ldab,
26056        bb.as_mut_ptr(),
26057        &ldbb,
26058        w.as_mut_ptr(),
26059        z.as_mut_ptr(),
26060        &ldz,
26061        work.as_mut_ptr(),
26062        info,
26063    )
26064}
26065
26066#[inline]
26067pub unsafe fn dsbgvd(
26068    jobz: u8,
26069    uplo: u8,
26070    n: i32,
26071    ka: i32,
26072    kb: i32,
26073    ab: &mut [f64],
26074    ldab: i32,
26075    bb: &mut [f64],
26076    ldbb: i32,
26077    w: &mut [f64],
26078    z: &mut [f64],
26079    ldz: i32,
26080    work: &mut [f64],
26081    lwork: i32,
26082    iwork: &mut [i32],
26083    liwork: i32,
26084    info: &mut i32,
26085) {
26086    ffi::dsbgvd_(
26087        &(jobz as c_char),
26088        &(uplo as c_char),
26089        &n,
26090        &ka,
26091        &kb,
26092        ab.as_mut_ptr(),
26093        &ldab,
26094        bb.as_mut_ptr(),
26095        &ldbb,
26096        w.as_mut_ptr(),
26097        z.as_mut_ptr(),
26098        &ldz,
26099        work.as_mut_ptr(),
26100        &lwork,
26101        iwork.as_mut_ptr(),
26102        &liwork,
26103        info,
26104    )
26105}
26106
26107#[inline]
26108pub unsafe fn ssbgvd(
26109    jobz: u8,
26110    uplo: u8,
26111    n: i32,
26112    ka: i32,
26113    kb: i32,
26114    ab: &mut [f32],
26115    ldab: i32,
26116    bb: &mut [f32],
26117    ldbb: i32,
26118    w: &mut [f32],
26119    z: &mut [f32],
26120    ldz: i32,
26121    work: &mut [f32],
26122    lwork: i32,
26123    iwork: &mut [i32],
26124    liwork: i32,
26125    info: &mut i32,
26126) {
26127    ffi::ssbgvd_(
26128        &(jobz as c_char),
26129        &(uplo as c_char),
26130        &n,
26131        &ka,
26132        &kb,
26133        ab.as_mut_ptr(),
26134        &ldab,
26135        bb.as_mut_ptr(),
26136        &ldbb,
26137        w.as_mut_ptr(),
26138        z.as_mut_ptr(),
26139        &ldz,
26140        work.as_mut_ptr(),
26141        &lwork,
26142        iwork.as_mut_ptr(),
26143        &liwork,
26144        info,
26145    )
26146}
26147
26148#[inline]
26149pub unsafe fn dsbgvx(
26150    jobz: u8,
26151    range: u8,
26152    uplo: u8,
26153    n: i32,
26154    ka: i32,
26155    kb: i32,
26156    ab: &mut [f64],
26157    ldab: i32,
26158    bb: &mut [f64],
26159    ldbb: i32,
26160    q: &mut [f64],
26161    ldq: i32,
26162    vl: f64,
26163    vu: f64,
26164    il: i32,
26165    iu: i32,
26166    abstol: f64,
26167    m: &mut i32,
26168    w: &mut [f64],
26169    z: &mut [f64],
26170    ldz: i32,
26171    work: &mut [f64],
26172    iwork: &mut [i32],
26173    ifail: &mut [i32],
26174    info: &mut i32,
26175) {
26176    ffi::dsbgvx_(
26177        &(jobz as c_char),
26178        &(range as c_char),
26179        &(uplo as c_char),
26180        &n,
26181        &ka,
26182        &kb,
26183        ab.as_mut_ptr(),
26184        &ldab,
26185        bb.as_mut_ptr(),
26186        &ldbb,
26187        q.as_mut_ptr(),
26188        &ldq,
26189        &vl,
26190        &vu,
26191        &il,
26192        &iu,
26193        &abstol,
26194        m,
26195        w.as_mut_ptr(),
26196        z.as_mut_ptr(),
26197        &ldz,
26198        work.as_mut_ptr(),
26199        iwork.as_mut_ptr(),
26200        ifail.as_mut_ptr(),
26201        info,
26202    )
26203}
26204
26205#[inline]
26206pub unsafe fn ssbgvx(
26207    jobz: u8,
26208    range: u8,
26209    uplo: u8,
26210    n: i32,
26211    ka: i32,
26212    kb: i32,
26213    ab: &mut [f32],
26214    ldab: i32,
26215    bb: &mut [f32],
26216    ldbb: i32,
26217    q: &mut [f32],
26218    ldq: i32,
26219    vl: f32,
26220    vu: f32,
26221    il: i32,
26222    iu: i32,
26223    abstol: f32,
26224    m: &mut i32,
26225    w: &mut [f32],
26226    z: &mut [f32],
26227    ldz: i32,
26228    work: &mut [f32],
26229    iwork: &mut [i32],
26230    ifail: &mut [i32],
26231    info: &mut i32,
26232) {
26233    ffi::ssbgvx_(
26234        &(jobz as c_char),
26235        &(range as c_char),
26236        &(uplo as c_char),
26237        &n,
26238        &ka,
26239        &kb,
26240        ab.as_mut_ptr(),
26241        &ldab,
26242        bb.as_mut_ptr(),
26243        &ldbb,
26244        q.as_mut_ptr(),
26245        &ldq,
26246        &vl,
26247        &vu,
26248        &il,
26249        &iu,
26250        &abstol,
26251        m,
26252        w.as_mut_ptr(),
26253        z.as_mut_ptr(),
26254        &ldz,
26255        work.as_mut_ptr(),
26256        iwork.as_mut_ptr(),
26257        ifail.as_mut_ptr(),
26258        info,
26259    )
26260}
26261
26262#[inline]
26263pub unsafe fn dsbtrd(
26264    vect: u8,
26265    uplo: u8,
26266    n: i32,
26267    kd: i32,
26268    ab: &mut [f64],
26269    ldab: i32,
26270    d: &mut [f64],
26271    e: &mut [f64],
26272    q: &mut [f64],
26273    ldq: i32,
26274    work: &mut [f64],
26275    info: &mut i32,
26276) {
26277    ffi::dsbtrd_(
26278        &(vect as c_char),
26279        &(uplo as c_char),
26280        &n,
26281        &kd,
26282        ab.as_mut_ptr(),
26283        &ldab,
26284        d.as_mut_ptr(),
26285        e.as_mut_ptr(),
26286        q.as_mut_ptr(),
26287        &ldq,
26288        work.as_mut_ptr(),
26289        info,
26290    )
26291}
26292
26293#[inline]
26294pub unsafe fn ssbtrd(
26295    vect: u8,
26296    uplo: u8,
26297    n: i32,
26298    kd: i32,
26299    ab: &mut [f32],
26300    ldab: i32,
26301    d: &mut [f32],
26302    e: &mut [f32],
26303    q: &mut [f32],
26304    ldq: i32,
26305    work: &mut [f32],
26306    info: &mut i32,
26307) {
26308    ffi::ssbtrd_(
26309        &(vect as c_char),
26310        &(uplo as c_char),
26311        &n,
26312        &kd,
26313        ab.as_mut_ptr(),
26314        &ldab,
26315        d.as_mut_ptr(),
26316        e.as_mut_ptr(),
26317        q.as_mut_ptr(),
26318        &ldq,
26319        work.as_mut_ptr(),
26320        info,
26321    )
26322}
26323
26324#[inline]
26325pub unsafe fn dsfrk(
26326    transr: u8,
26327    uplo: u8,
26328    trans: u8,
26329    n: i32,
26330    k: i32,
26331    alpha: &[f64],
26332    a: &[f64],
26333    lda: i32,
26334    beta: &[f64],
26335    c: &mut [f64],
26336) {
26337    ffi::dsfrk_(
26338        &(transr as c_char),
26339        &(uplo as c_char),
26340        &(trans as c_char),
26341        &n,
26342        &k,
26343        alpha.as_ptr(),
26344        a.as_ptr(),
26345        &lda,
26346        beta.as_ptr(),
26347        c.as_mut_ptr(),
26348    )
26349}
26350
26351#[inline]
26352pub unsafe fn ssfrk(
26353    transr: u8,
26354    uplo: u8,
26355    trans: u8,
26356    n: i32,
26357    k: i32,
26358    alpha: &[f32],
26359    a: &[f32],
26360    lda: i32,
26361    beta: &[f32],
26362    c: &mut [f32],
26363) {
26364    ffi::ssfrk_(
26365        &(transr as c_char),
26366        &(uplo as c_char),
26367        &(trans as c_char),
26368        &n,
26369        &k,
26370        alpha.as_ptr(),
26371        a.as_ptr(),
26372        &lda,
26373        beta.as_ptr(),
26374        c.as_mut_ptr(),
26375    )
26376}
26377
26378#[inline]
26379pub unsafe fn cspcon(
26380    uplo: u8,
26381    n: i32,
26382    ap: &[c32],
26383    ipiv: &[i32],
26384    anorm: f32,
26385    rcond: &mut f32,
26386    work: &mut [c32],
26387    info: &mut i32,
26388) {
26389    ffi::cspcon_(
26390        &(uplo as c_char),
26391        &n,
26392        ap.as_ptr() as *const _,
26393        ipiv.as_ptr(),
26394        &anorm,
26395        rcond,
26396        work.as_mut_ptr() as *mut _,
26397        info,
26398    )
26399}
26400
26401#[inline]
26402pub unsafe fn dspcon(
26403    uplo: u8,
26404    n: i32,
26405    ap: &[f64],
26406    ipiv: &[i32],
26407    anorm: f64,
26408    rcond: &mut f64,
26409    work: &mut [f64],
26410    iwork: &mut [i32],
26411    info: &mut i32,
26412) {
26413    ffi::dspcon_(
26414        &(uplo as c_char),
26415        &n,
26416        ap.as_ptr(),
26417        ipiv.as_ptr(),
26418        &anorm,
26419        rcond,
26420        work.as_mut_ptr(),
26421        iwork.as_mut_ptr(),
26422        info,
26423    )
26424}
26425
26426#[inline]
26427pub unsafe fn sspcon(
26428    uplo: u8,
26429    n: i32,
26430    ap: &[f32],
26431    ipiv: &[i32],
26432    anorm: f32,
26433    rcond: &mut f32,
26434    work: &mut [f32],
26435    iwork: &mut [i32],
26436    info: &mut i32,
26437) {
26438    ffi::sspcon_(
26439        &(uplo as c_char),
26440        &n,
26441        ap.as_ptr(),
26442        ipiv.as_ptr(),
26443        &anorm,
26444        rcond,
26445        work.as_mut_ptr(),
26446        iwork.as_mut_ptr(),
26447        info,
26448    )
26449}
26450
26451#[inline]
26452pub unsafe fn zspcon(
26453    uplo: u8,
26454    n: i32,
26455    ap: &[c64],
26456    ipiv: &[i32],
26457    anorm: f64,
26458    rcond: &mut f64,
26459    work: &mut [c64],
26460    info: &mut i32,
26461) {
26462    ffi::zspcon_(
26463        &(uplo as c_char),
26464        &n,
26465        ap.as_ptr() as *const _,
26466        ipiv.as_ptr(),
26467        &anorm,
26468        rcond,
26469        work.as_mut_ptr() as *mut _,
26470        info,
26471    )
26472}
26473
26474#[inline]
26475pub unsafe fn dspev(
26476    jobz: u8,
26477    uplo: u8,
26478    n: i32,
26479    ap: &mut [f64],
26480    w: &mut [f64],
26481    z: &mut [f64],
26482    ldz: i32,
26483    work: &mut [f64],
26484    info: &mut i32,
26485) {
26486    ffi::dspev_(
26487        &(jobz as c_char),
26488        &(uplo as c_char),
26489        &n,
26490        ap.as_mut_ptr(),
26491        w.as_mut_ptr(),
26492        z.as_mut_ptr(),
26493        &ldz,
26494        work.as_mut_ptr(),
26495        info,
26496    )
26497}
26498
26499#[inline]
26500pub unsafe fn sspev(
26501    jobz: u8,
26502    uplo: u8,
26503    n: i32,
26504    ap: &mut [f32],
26505    w: &mut [f32],
26506    z: &mut [f32],
26507    ldz: i32,
26508    work: &mut [f32],
26509    info: &mut i32,
26510) {
26511    ffi::sspev_(
26512        &(jobz as c_char),
26513        &(uplo as c_char),
26514        &n,
26515        ap.as_mut_ptr(),
26516        w.as_mut_ptr(),
26517        z.as_mut_ptr(),
26518        &ldz,
26519        work.as_mut_ptr(),
26520        info,
26521    )
26522}
26523
26524#[inline]
26525pub unsafe fn dspevd(
26526    jobz: u8,
26527    uplo: u8,
26528    n: i32,
26529    ap: &mut [f64],
26530    w: &mut [f64],
26531    z: &mut [f64],
26532    ldz: i32,
26533    work: &mut [f64],
26534    lwork: i32,
26535    iwork: &mut [i32],
26536    liwork: i32,
26537    info: &mut i32,
26538) {
26539    ffi::dspevd_(
26540        &(jobz as c_char),
26541        &(uplo as c_char),
26542        &n,
26543        ap.as_mut_ptr(),
26544        w.as_mut_ptr(),
26545        z.as_mut_ptr(),
26546        &ldz,
26547        work.as_mut_ptr(),
26548        &lwork,
26549        iwork.as_mut_ptr(),
26550        &liwork,
26551        info,
26552    )
26553}
26554
26555#[inline]
26556pub unsafe fn sspevd(
26557    jobz: u8,
26558    uplo: u8,
26559    n: i32,
26560    ap: &mut [f32],
26561    w: &mut [f32],
26562    z: &mut [f32],
26563    ldz: i32,
26564    work: &mut [f32],
26565    lwork: i32,
26566    iwork: &mut [i32],
26567    liwork: i32,
26568    info: &mut i32,
26569) {
26570    ffi::sspevd_(
26571        &(jobz as c_char),
26572        &(uplo as c_char),
26573        &n,
26574        ap.as_mut_ptr(),
26575        w.as_mut_ptr(),
26576        z.as_mut_ptr(),
26577        &ldz,
26578        work.as_mut_ptr(),
26579        &lwork,
26580        iwork.as_mut_ptr(),
26581        &liwork,
26582        info,
26583    )
26584}
26585
26586#[inline]
26587pub unsafe fn dspevx(
26588    jobz: u8,
26589    range: u8,
26590    uplo: u8,
26591    n: i32,
26592    ap: &mut [f64],
26593    vl: f64,
26594    vu: f64,
26595    il: i32,
26596    iu: i32,
26597    abstol: f64,
26598    m: &mut i32,
26599    w: &mut [f64],
26600    z: &mut [f64],
26601    ldz: i32,
26602    work: &mut [f64],
26603    iwork: &mut [i32],
26604    ifail: &mut [i32],
26605    info: &mut i32,
26606) {
26607    ffi::dspevx_(
26608        &(jobz as c_char),
26609        &(range as c_char),
26610        &(uplo as c_char),
26611        &n,
26612        ap.as_mut_ptr(),
26613        &vl,
26614        &vu,
26615        &il,
26616        &iu,
26617        &abstol,
26618        m,
26619        w.as_mut_ptr(),
26620        z.as_mut_ptr(),
26621        &ldz,
26622        work.as_mut_ptr(),
26623        iwork.as_mut_ptr(),
26624        ifail.as_mut_ptr(),
26625        info,
26626    )
26627}
26628
26629#[inline]
26630pub unsafe fn sspevx(
26631    jobz: u8,
26632    range: u8,
26633    uplo: u8,
26634    n: i32,
26635    ap: &mut [f32],
26636    vl: f32,
26637    vu: f32,
26638    il: i32,
26639    iu: i32,
26640    abstol: f32,
26641    m: &mut i32,
26642    w: &mut [f32],
26643    z: &mut [f32],
26644    ldz: i32,
26645    work: &mut [f32],
26646    iwork: &mut [i32],
26647    ifail: &mut [i32],
26648    info: &mut i32,
26649) {
26650    ffi::sspevx_(
26651        &(jobz as c_char),
26652        &(range as c_char),
26653        &(uplo as c_char),
26654        &n,
26655        ap.as_mut_ptr(),
26656        &vl,
26657        &vu,
26658        &il,
26659        &iu,
26660        &abstol,
26661        m,
26662        w.as_mut_ptr(),
26663        z.as_mut_ptr(),
26664        &ldz,
26665        work.as_mut_ptr(),
26666        iwork.as_mut_ptr(),
26667        ifail.as_mut_ptr(),
26668        info,
26669    )
26670}
26671
26672#[inline]
26673pub unsafe fn dspgst(itype: &[i32], uplo: u8, n: i32, ap: &mut [f64], bp: &[f64], info: &mut i32) {
26674    ffi::dspgst_(
26675        itype.as_ptr(),
26676        &(uplo as c_char),
26677        &n,
26678        ap.as_mut_ptr(),
26679        bp.as_ptr(),
26680        info,
26681    )
26682}
26683
26684#[inline]
26685pub unsafe fn sspgst(itype: &[i32], uplo: u8, n: i32, ap: &mut [f32], bp: &[f32], info: &mut i32) {
26686    ffi::sspgst_(
26687        itype.as_ptr(),
26688        &(uplo as c_char),
26689        &n,
26690        ap.as_mut_ptr(),
26691        bp.as_ptr(),
26692        info,
26693    )
26694}
26695
26696#[inline]
26697pub unsafe fn dspgv(
26698    itype: &[i32],
26699    jobz: u8,
26700    uplo: u8,
26701    n: i32,
26702    ap: &mut [f64],
26703    bp: &mut [f64],
26704    w: &mut [f64],
26705    z: &mut [f64],
26706    ldz: i32,
26707    work: &mut [f64],
26708    info: &mut i32,
26709) {
26710    ffi::dspgv_(
26711        itype.as_ptr(),
26712        &(jobz as c_char),
26713        &(uplo as c_char),
26714        &n,
26715        ap.as_mut_ptr(),
26716        bp.as_mut_ptr(),
26717        w.as_mut_ptr(),
26718        z.as_mut_ptr(),
26719        &ldz,
26720        work.as_mut_ptr(),
26721        info,
26722    )
26723}
26724
26725#[inline]
26726pub unsafe fn sspgv(
26727    itype: &[i32],
26728    jobz: u8,
26729    uplo: u8,
26730    n: i32,
26731    ap: &mut [f32],
26732    bp: &mut [f32],
26733    w: &mut [f32],
26734    z: &mut [f32],
26735    ldz: i32,
26736    work: &mut [f32],
26737    info: &mut i32,
26738) {
26739    ffi::sspgv_(
26740        itype.as_ptr(),
26741        &(jobz as c_char),
26742        &(uplo as c_char),
26743        &n,
26744        ap.as_mut_ptr(),
26745        bp.as_mut_ptr(),
26746        w.as_mut_ptr(),
26747        z.as_mut_ptr(),
26748        &ldz,
26749        work.as_mut_ptr(),
26750        info,
26751    )
26752}
26753
26754#[inline]
26755pub unsafe fn dspgvd(
26756    itype: &[i32],
26757    jobz: u8,
26758    uplo: u8,
26759    n: i32,
26760    ap: &mut [f64],
26761    bp: &mut [f64],
26762    w: &mut [f64],
26763    z: &mut [f64],
26764    ldz: i32,
26765    work: &mut [f64],
26766    lwork: i32,
26767    iwork: &mut [i32],
26768    liwork: i32,
26769    info: &mut i32,
26770) {
26771    ffi::dspgvd_(
26772        itype.as_ptr(),
26773        &(jobz as c_char),
26774        &(uplo as c_char),
26775        &n,
26776        ap.as_mut_ptr(),
26777        bp.as_mut_ptr(),
26778        w.as_mut_ptr(),
26779        z.as_mut_ptr(),
26780        &ldz,
26781        work.as_mut_ptr(),
26782        &lwork,
26783        iwork.as_mut_ptr(),
26784        &liwork,
26785        info,
26786    )
26787}
26788
26789#[inline]
26790pub unsafe fn sspgvd(
26791    itype: &[i32],
26792    jobz: u8,
26793    uplo: u8,
26794    n: i32,
26795    ap: &mut [f32],
26796    bp: &mut [f32],
26797    w: &mut [f32],
26798    z: &mut [f32],
26799    ldz: i32,
26800    work: &mut [f32],
26801    lwork: i32,
26802    iwork: &mut [i32],
26803    liwork: i32,
26804    info: &mut i32,
26805) {
26806    ffi::sspgvd_(
26807        itype.as_ptr(),
26808        &(jobz as c_char),
26809        &(uplo as c_char),
26810        &n,
26811        ap.as_mut_ptr(),
26812        bp.as_mut_ptr(),
26813        w.as_mut_ptr(),
26814        z.as_mut_ptr(),
26815        &ldz,
26816        work.as_mut_ptr(),
26817        &lwork,
26818        iwork.as_mut_ptr(),
26819        &liwork,
26820        info,
26821    )
26822}
26823
26824#[inline]
26825pub unsafe fn dspgvx(
26826    itype: &[i32],
26827    jobz: u8,
26828    range: u8,
26829    uplo: u8,
26830    n: i32,
26831    ap: &mut [f64],
26832    bp: &mut [f64],
26833    vl: f64,
26834    vu: f64,
26835    il: i32,
26836    iu: i32,
26837    abstol: f64,
26838    m: &mut i32,
26839    w: &mut [f64],
26840    z: &mut [f64],
26841    ldz: i32,
26842    work: &mut [f64],
26843    iwork: &mut [i32],
26844    ifail: &mut [i32],
26845    info: &mut i32,
26846) {
26847    ffi::dspgvx_(
26848        itype.as_ptr(),
26849        &(jobz as c_char),
26850        &(range as c_char),
26851        &(uplo as c_char),
26852        &n,
26853        ap.as_mut_ptr(),
26854        bp.as_mut_ptr(),
26855        &vl,
26856        &vu,
26857        &il,
26858        &iu,
26859        &abstol,
26860        m,
26861        w.as_mut_ptr(),
26862        z.as_mut_ptr(),
26863        &ldz,
26864        work.as_mut_ptr(),
26865        iwork.as_mut_ptr(),
26866        ifail.as_mut_ptr(),
26867        info,
26868    )
26869}
26870
26871#[inline]
26872pub unsafe fn sspgvx(
26873    itype: &[i32],
26874    jobz: u8,
26875    range: u8,
26876    uplo: u8,
26877    n: i32,
26878    ap: &mut [f32],
26879    bp: &mut [f32],
26880    vl: f32,
26881    vu: f32,
26882    il: i32,
26883    iu: i32,
26884    abstol: f32,
26885    m: &mut i32,
26886    w: &mut [f32],
26887    z: &mut [f32],
26888    ldz: i32,
26889    work: &mut [f32],
26890    iwork: &mut [i32],
26891    ifail: &mut [i32],
26892    info: &mut i32,
26893) {
26894    ffi::sspgvx_(
26895        itype.as_ptr(),
26896        &(jobz as c_char),
26897        &(range as c_char),
26898        &(uplo as c_char),
26899        &n,
26900        ap.as_mut_ptr(),
26901        bp.as_mut_ptr(),
26902        &vl,
26903        &vu,
26904        &il,
26905        &iu,
26906        &abstol,
26907        m,
26908        w.as_mut_ptr(),
26909        z.as_mut_ptr(),
26910        &ldz,
26911        work.as_mut_ptr(),
26912        iwork.as_mut_ptr(),
26913        ifail.as_mut_ptr(),
26914        info,
26915    )
26916}
26917
26918#[inline]
26919pub unsafe fn csprfs(
26920    uplo: u8,
26921    n: i32,
26922    nrhs: i32,
26923    ap: &[c32],
26924    afp: &[c32],
26925    ipiv: &[i32],
26926    b: &[c32],
26927    ldb: i32,
26928    x: &mut [c32],
26929    ldx: i32,
26930    ferr: &mut [f32],
26931    berr: &mut [f32],
26932    work: &mut [c32],
26933    rwork: &mut [f32],
26934    info: &mut i32,
26935) {
26936    ffi::csprfs_(
26937        &(uplo as c_char),
26938        &n,
26939        &nrhs,
26940        ap.as_ptr() as *const _,
26941        afp.as_ptr() as *const _,
26942        ipiv.as_ptr(),
26943        b.as_ptr() as *const _,
26944        &ldb,
26945        x.as_mut_ptr() as *mut _,
26946        &ldx,
26947        ferr.as_mut_ptr(),
26948        berr.as_mut_ptr(),
26949        work.as_mut_ptr() as *mut _,
26950        rwork.as_mut_ptr(),
26951        info,
26952    )
26953}
26954
26955#[inline]
26956pub unsafe fn dsprfs(
26957    uplo: u8,
26958    n: i32,
26959    nrhs: i32,
26960    ap: &[f64],
26961    afp: &[f64],
26962    ipiv: &[i32],
26963    b: &[f64],
26964    ldb: i32,
26965    x: &mut [f64],
26966    ldx: i32,
26967    ferr: &mut [f64],
26968    berr: &mut [f64],
26969    work: &mut [f64],
26970    iwork: &mut [i32],
26971    info: &mut i32,
26972) {
26973    ffi::dsprfs_(
26974        &(uplo as c_char),
26975        &n,
26976        &nrhs,
26977        ap.as_ptr(),
26978        afp.as_ptr(),
26979        ipiv.as_ptr(),
26980        b.as_ptr(),
26981        &ldb,
26982        x.as_mut_ptr(),
26983        &ldx,
26984        ferr.as_mut_ptr(),
26985        berr.as_mut_ptr(),
26986        work.as_mut_ptr(),
26987        iwork.as_mut_ptr(),
26988        info,
26989    )
26990}
26991
26992#[inline]
26993pub unsafe fn ssprfs(
26994    uplo: u8,
26995    n: i32,
26996    nrhs: i32,
26997    ap: &[f32],
26998    afp: &[f32],
26999    ipiv: &[i32],
27000    b: &[f32],
27001    ldb: i32,
27002    x: &mut [f32],
27003    ldx: i32,
27004    ferr: &mut [f32],
27005    berr: &mut [f32],
27006    work: &mut [f32],
27007    iwork: &mut [i32],
27008    info: &mut i32,
27009) {
27010    ffi::ssprfs_(
27011        &(uplo as c_char),
27012        &n,
27013        &nrhs,
27014        ap.as_ptr(),
27015        afp.as_ptr(),
27016        ipiv.as_ptr(),
27017        b.as_ptr(),
27018        &ldb,
27019        x.as_mut_ptr(),
27020        &ldx,
27021        ferr.as_mut_ptr(),
27022        berr.as_mut_ptr(),
27023        work.as_mut_ptr(),
27024        iwork.as_mut_ptr(),
27025        info,
27026    )
27027}
27028
27029#[inline]
27030pub unsafe fn zsprfs(
27031    uplo: u8,
27032    n: i32,
27033    nrhs: i32,
27034    ap: &[c64],
27035    afp: &[c64],
27036    ipiv: &[i32],
27037    b: &[c64],
27038    ldb: i32,
27039    x: &mut [c64],
27040    ldx: i32,
27041    ferr: &mut [f64],
27042    berr: &mut [f64],
27043    work: &mut [c64],
27044    rwork: &mut [f64],
27045    info: &mut i32,
27046) {
27047    ffi::zsprfs_(
27048        &(uplo as c_char),
27049        &n,
27050        &nrhs,
27051        ap.as_ptr() as *const _,
27052        afp.as_ptr() as *const _,
27053        ipiv.as_ptr(),
27054        b.as_ptr() as *const _,
27055        &ldb,
27056        x.as_mut_ptr() as *mut _,
27057        &ldx,
27058        ferr.as_mut_ptr(),
27059        berr.as_mut_ptr(),
27060        work.as_mut_ptr() as *mut _,
27061        rwork.as_mut_ptr(),
27062        info,
27063    )
27064}
27065
27066#[inline]
27067pub unsafe fn cspsv(
27068    uplo: u8,
27069    n: i32,
27070    nrhs: i32,
27071    ap: &mut [c32],
27072    ipiv: &mut [i32],
27073    b: &mut [c32],
27074    ldb: i32,
27075    info: &mut i32,
27076) {
27077    ffi::cspsv_(
27078        &(uplo as c_char),
27079        &n,
27080        &nrhs,
27081        ap.as_mut_ptr() as *mut _,
27082        ipiv.as_mut_ptr(),
27083        b.as_mut_ptr() as *mut _,
27084        &ldb,
27085        info,
27086    )
27087}
27088
27089#[inline]
27090pub unsafe fn dspsv(
27091    uplo: u8,
27092    n: i32,
27093    nrhs: i32,
27094    ap: &mut [f64],
27095    ipiv: &mut [i32],
27096    b: &mut [f64],
27097    ldb: i32,
27098    info: &mut i32,
27099) {
27100    ffi::dspsv_(
27101        &(uplo as c_char),
27102        &n,
27103        &nrhs,
27104        ap.as_mut_ptr(),
27105        ipiv.as_mut_ptr(),
27106        b.as_mut_ptr(),
27107        &ldb,
27108        info,
27109    )
27110}
27111
27112#[inline]
27113pub unsafe fn sspsv(
27114    uplo: u8,
27115    n: i32,
27116    nrhs: i32,
27117    ap: &mut [f32],
27118    ipiv: &mut [i32],
27119    b: &mut [f32],
27120    ldb: i32,
27121    info: &mut i32,
27122) {
27123    ffi::sspsv_(
27124        &(uplo as c_char),
27125        &n,
27126        &nrhs,
27127        ap.as_mut_ptr(),
27128        ipiv.as_mut_ptr(),
27129        b.as_mut_ptr(),
27130        &ldb,
27131        info,
27132    )
27133}
27134
27135#[inline]
27136pub unsafe fn zspsv(
27137    uplo: u8,
27138    n: i32,
27139    nrhs: i32,
27140    ap: &mut [c64],
27141    ipiv: &mut [i32],
27142    b: &mut [c64],
27143    ldb: i32,
27144    info: &mut i32,
27145) {
27146    ffi::zspsv_(
27147        &(uplo as c_char),
27148        &n,
27149        &nrhs,
27150        ap.as_mut_ptr() as *mut _,
27151        ipiv.as_mut_ptr(),
27152        b.as_mut_ptr() as *mut _,
27153        &ldb,
27154        info,
27155    )
27156}
27157
27158#[inline]
27159pub unsafe fn cspsvx(
27160    fact: u8,
27161    uplo: u8,
27162    n: i32,
27163    nrhs: i32,
27164    ap: &[c32],
27165    afp: &mut [c32],
27166    ipiv: &mut [i32],
27167    b: &[c32],
27168    ldb: i32,
27169    x: &mut [c32],
27170    ldx: i32,
27171    rcond: &mut f32,
27172    ferr: &mut [f32],
27173    berr: &mut [f32],
27174    work: &mut [c32],
27175    rwork: &mut [f32],
27176    info: &mut i32,
27177) {
27178    ffi::cspsvx_(
27179        &(fact as c_char),
27180        &(uplo as c_char),
27181        &n,
27182        &nrhs,
27183        ap.as_ptr() as *const _,
27184        afp.as_mut_ptr() as *mut _,
27185        ipiv.as_mut_ptr(),
27186        b.as_ptr() as *const _,
27187        &ldb,
27188        x.as_mut_ptr() as *mut _,
27189        &ldx,
27190        rcond,
27191        ferr.as_mut_ptr(),
27192        berr.as_mut_ptr(),
27193        work.as_mut_ptr() as *mut _,
27194        rwork.as_mut_ptr(),
27195        info,
27196    )
27197}
27198
27199#[inline]
27200pub unsafe fn dspsvx(
27201    fact: u8,
27202    uplo: u8,
27203    n: i32,
27204    nrhs: i32,
27205    ap: &[f64],
27206    afp: &mut [f64],
27207    ipiv: &mut [i32],
27208    b: &[f64],
27209    ldb: i32,
27210    x: &mut [f64],
27211    ldx: i32,
27212    rcond: &mut f64,
27213    ferr: &mut [f64],
27214    berr: &mut [f64],
27215    work: &mut [f64],
27216    iwork: &mut [i32],
27217    info: &mut i32,
27218) {
27219    ffi::dspsvx_(
27220        &(fact as c_char),
27221        &(uplo as c_char),
27222        &n,
27223        &nrhs,
27224        ap.as_ptr(),
27225        afp.as_mut_ptr(),
27226        ipiv.as_mut_ptr(),
27227        b.as_ptr(),
27228        &ldb,
27229        x.as_mut_ptr(),
27230        &ldx,
27231        rcond,
27232        ferr.as_mut_ptr(),
27233        berr.as_mut_ptr(),
27234        work.as_mut_ptr(),
27235        iwork.as_mut_ptr(),
27236        info,
27237    )
27238}
27239
27240#[inline]
27241pub unsafe fn sspsvx(
27242    fact: u8,
27243    uplo: u8,
27244    n: i32,
27245    nrhs: i32,
27246    ap: &[f32],
27247    afp: &mut [f32],
27248    ipiv: &mut [i32],
27249    b: &[f32],
27250    ldb: i32,
27251    x: &mut [f32],
27252    ldx: i32,
27253    rcond: &mut f32,
27254    ferr: &mut [f32],
27255    berr: &mut [f32],
27256    work: &mut [f32],
27257    iwork: &mut [i32],
27258    info: &mut i32,
27259) {
27260    ffi::sspsvx_(
27261        &(fact as c_char),
27262        &(uplo as c_char),
27263        &n,
27264        &nrhs,
27265        ap.as_ptr(),
27266        afp.as_mut_ptr(),
27267        ipiv.as_mut_ptr(),
27268        b.as_ptr(),
27269        &ldb,
27270        x.as_mut_ptr(),
27271        &ldx,
27272        rcond,
27273        ferr.as_mut_ptr(),
27274        berr.as_mut_ptr(),
27275        work.as_mut_ptr(),
27276        iwork.as_mut_ptr(),
27277        info,
27278    )
27279}
27280
27281#[inline]
27282pub unsafe fn zspsvx(
27283    fact: u8,
27284    uplo: u8,
27285    n: i32,
27286    nrhs: i32,
27287    ap: &[c64],
27288    afp: &mut [c64],
27289    ipiv: &mut [i32],
27290    b: &[c64],
27291    ldb: i32,
27292    x: &mut [c64],
27293    ldx: i32,
27294    rcond: &mut f64,
27295    ferr: &mut [f64],
27296    berr: &mut [f64],
27297    work: &mut [c64],
27298    rwork: &mut [f64],
27299    info: &mut i32,
27300) {
27301    ffi::zspsvx_(
27302        &(fact as c_char),
27303        &(uplo as c_char),
27304        &n,
27305        &nrhs,
27306        ap.as_ptr() as *const _,
27307        afp.as_mut_ptr() as *mut _,
27308        ipiv.as_mut_ptr(),
27309        b.as_ptr() as *const _,
27310        &ldb,
27311        x.as_mut_ptr() as *mut _,
27312        &ldx,
27313        rcond,
27314        ferr.as_mut_ptr(),
27315        berr.as_mut_ptr(),
27316        work.as_mut_ptr() as *mut _,
27317        rwork.as_mut_ptr(),
27318        info,
27319    )
27320}
27321
27322#[inline]
27323pub unsafe fn dsptrd(
27324    uplo: u8,
27325    n: i32,
27326    ap: &mut [f64],
27327    d: &mut [f64],
27328    e: &mut [f64],
27329    tau: &mut [f64],
27330    info: &mut i32,
27331) {
27332    ffi::dsptrd_(
27333        &(uplo as c_char),
27334        &n,
27335        ap.as_mut_ptr(),
27336        d.as_mut_ptr(),
27337        e.as_mut_ptr(),
27338        tau.as_mut_ptr(),
27339        info,
27340    )
27341}
27342
27343#[inline]
27344pub unsafe fn ssptrd(
27345    uplo: u8,
27346    n: i32,
27347    ap: &mut [f32],
27348    d: &mut [f32],
27349    e: &mut [f32],
27350    tau: &mut [f32],
27351    info: &mut i32,
27352) {
27353    ffi::ssptrd_(
27354        &(uplo as c_char),
27355        &n,
27356        ap.as_mut_ptr(),
27357        d.as_mut_ptr(),
27358        e.as_mut_ptr(),
27359        tau.as_mut_ptr(),
27360        info,
27361    )
27362}
27363
27364#[inline]
27365pub unsafe fn csptrf(uplo: u8, n: i32, ap: &mut [c32], ipiv: &mut [i32], info: &mut i32) {
27366    ffi::csptrf_(
27367        &(uplo as c_char),
27368        &n,
27369        ap.as_mut_ptr() as *mut _,
27370        ipiv.as_mut_ptr(),
27371        info,
27372    )
27373}
27374
27375#[inline]
27376pub unsafe fn dsptrf(uplo: u8, n: i32, ap: &mut [f64], ipiv: &mut [i32], info: &mut i32) {
27377    ffi::dsptrf_(
27378        &(uplo as c_char),
27379        &n,
27380        ap.as_mut_ptr(),
27381        ipiv.as_mut_ptr(),
27382        info,
27383    )
27384}
27385
27386#[inline]
27387pub unsafe fn ssptrf(uplo: u8, n: i32, ap: &mut [f32], ipiv: &mut [i32], info: &mut i32) {
27388    ffi::ssptrf_(
27389        &(uplo as c_char),
27390        &n,
27391        ap.as_mut_ptr(),
27392        ipiv.as_mut_ptr(),
27393        info,
27394    )
27395}
27396
27397#[inline]
27398pub unsafe fn zsptrf(uplo: u8, n: i32, ap: &mut [c64], ipiv: &mut [i32], info: &mut i32) {
27399    ffi::zsptrf_(
27400        &(uplo as c_char),
27401        &n,
27402        ap.as_mut_ptr() as *mut _,
27403        ipiv.as_mut_ptr(),
27404        info,
27405    )
27406}
27407
27408#[inline]
27409pub unsafe fn csptri(
27410    uplo: u8,
27411    n: i32,
27412    ap: &mut [c32],
27413    ipiv: &[i32],
27414    work: &mut [c32],
27415    info: &mut i32,
27416) {
27417    ffi::csptri_(
27418        &(uplo as c_char),
27419        &n,
27420        ap.as_mut_ptr() as *mut _,
27421        ipiv.as_ptr(),
27422        work.as_mut_ptr() as *mut _,
27423        info,
27424    )
27425}
27426
27427#[inline]
27428pub unsafe fn dsptri(
27429    uplo: u8,
27430    n: i32,
27431    ap: &mut [f64],
27432    ipiv: &[i32],
27433    work: &mut [f64],
27434    info: &mut i32,
27435) {
27436    ffi::dsptri_(
27437        &(uplo as c_char),
27438        &n,
27439        ap.as_mut_ptr(),
27440        ipiv.as_ptr(),
27441        work.as_mut_ptr(),
27442        info,
27443    )
27444}
27445
27446#[inline]
27447pub unsafe fn ssptri(
27448    uplo: u8,
27449    n: i32,
27450    ap: &mut [f32],
27451    ipiv: &[i32],
27452    work: &mut [f32],
27453    info: &mut i32,
27454) {
27455    ffi::ssptri_(
27456        &(uplo as c_char),
27457        &n,
27458        ap.as_mut_ptr(),
27459        ipiv.as_ptr(),
27460        work.as_mut_ptr(),
27461        info,
27462    )
27463}
27464
27465#[inline]
27466pub unsafe fn zsptri(
27467    uplo: u8,
27468    n: i32,
27469    ap: &mut [c64],
27470    ipiv: &[i32],
27471    work: &mut [c64],
27472    info: &mut i32,
27473) {
27474    ffi::zsptri_(
27475        &(uplo as c_char),
27476        &n,
27477        ap.as_mut_ptr() as *mut _,
27478        ipiv.as_ptr(),
27479        work.as_mut_ptr() as *mut _,
27480        info,
27481    )
27482}
27483
27484#[inline]
27485pub unsafe fn csptrs(
27486    uplo: u8,
27487    n: i32,
27488    nrhs: i32,
27489    ap: &[c32],
27490    ipiv: &[i32],
27491    b: &mut [c32],
27492    ldb: i32,
27493    info: &mut i32,
27494) {
27495    ffi::csptrs_(
27496        &(uplo as c_char),
27497        &n,
27498        &nrhs,
27499        ap.as_ptr() as *const _,
27500        ipiv.as_ptr(),
27501        b.as_mut_ptr() as *mut _,
27502        &ldb,
27503        info,
27504    )
27505}
27506
27507#[inline]
27508pub unsafe fn dsptrs(
27509    uplo: u8,
27510    n: i32,
27511    nrhs: i32,
27512    ap: &[f64],
27513    ipiv: &[i32],
27514    b: &mut [f64],
27515    ldb: i32,
27516    info: &mut i32,
27517) {
27518    ffi::dsptrs_(
27519        &(uplo as c_char),
27520        &n,
27521        &nrhs,
27522        ap.as_ptr(),
27523        ipiv.as_ptr(),
27524        b.as_mut_ptr(),
27525        &ldb,
27526        info,
27527    )
27528}
27529
27530#[inline]
27531pub unsafe fn ssptrs(
27532    uplo: u8,
27533    n: i32,
27534    nrhs: i32,
27535    ap: &[f32],
27536    ipiv: &[i32],
27537    b: &mut [f32],
27538    ldb: i32,
27539    info: &mut i32,
27540) {
27541    ffi::ssptrs_(
27542        &(uplo as c_char),
27543        &n,
27544        &nrhs,
27545        ap.as_ptr(),
27546        ipiv.as_ptr(),
27547        b.as_mut_ptr(),
27548        &ldb,
27549        info,
27550    )
27551}
27552
27553#[inline]
27554pub unsafe fn zsptrs(
27555    uplo: u8,
27556    n: i32,
27557    nrhs: i32,
27558    ap: &[c64],
27559    ipiv: &[i32],
27560    b: &mut [c64],
27561    ldb: i32,
27562    info: &mut i32,
27563) {
27564    ffi::zsptrs_(
27565        &(uplo as c_char),
27566        &n,
27567        &nrhs,
27568        ap.as_ptr() as *const _,
27569        ipiv.as_ptr(),
27570        b.as_mut_ptr() as *mut _,
27571        &ldb,
27572        info,
27573    )
27574}
27575
27576#[inline]
27577pub unsafe fn dstebz(
27578    range: u8,
27579    order: u8,
27580    n: i32,
27581    vl: f64,
27582    vu: f64,
27583    il: i32,
27584    iu: i32,
27585    abstol: f64,
27586    d: &[f64],
27587    e: &[f64],
27588    m: &mut i32,
27589    nsplit: &mut [i32],
27590    w: &mut [f64],
27591    iblock: &mut [i32],
27592    isplit: &mut [i32],
27593    work: &mut [f64],
27594    iwork: &mut [i32],
27595    info: &mut i32,
27596) {
27597    ffi::dstebz_(
27598        &(range as c_char),
27599        &(order as c_char),
27600        &n,
27601        &vl,
27602        &vu,
27603        &il,
27604        &iu,
27605        &abstol,
27606        d.as_ptr(),
27607        e.as_ptr(),
27608        m,
27609        nsplit.as_mut_ptr(),
27610        w.as_mut_ptr(),
27611        iblock.as_mut_ptr(),
27612        isplit.as_mut_ptr(),
27613        work.as_mut_ptr(),
27614        iwork.as_mut_ptr(),
27615        info,
27616    )
27617}
27618
27619#[inline]
27620pub unsafe fn sstebz(
27621    range: u8,
27622    order: u8,
27623    n: i32,
27624    vl: f32,
27625    vu: f32,
27626    il: i32,
27627    iu: i32,
27628    abstol: f32,
27629    d: &[f32],
27630    e: &[f32],
27631    m: &mut i32,
27632    nsplit: &mut [i32],
27633    w: &mut [f32],
27634    iblock: &mut [i32],
27635    isplit: &mut [i32],
27636    work: &mut [f32],
27637    iwork: &mut [i32],
27638    info: &mut i32,
27639) {
27640    ffi::sstebz_(
27641        &(range as c_char),
27642        &(order as c_char),
27643        &n,
27644        &vl,
27645        &vu,
27646        &il,
27647        &iu,
27648        &abstol,
27649        d.as_ptr(),
27650        e.as_ptr(),
27651        m,
27652        nsplit.as_mut_ptr(),
27653        w.as_mut_ptr(),
27654        iblock.as_mut_ptr(),
27655        isplit.as_mut_ptr(),
27656        work.as_mut_ptr(),
27657        iwork.as_mut_ptr(),
27658        info,
27659    )
27660}
27661
27662#[inline]
27663pub unsafe fn cstedc(
27664    compz: u8,
27665    n: i32,
27666    d: &mut [f32],
27667    e: &mut [f32],
27668    z: &mut [c32],
27669    ldz: i32,
27670    work: &mut [c32],
27671    lwork: i32,
27672    rwork: &mut [f32],
27673    lrwork: i32,
27674    iwork: &mut [i32],
27675    liwork: i32,
27676    info: &mut i32,
27677) {
27678    ffi::cstedc_(
27679        &(compz as c_char),
27680        &n,
27681        d.as_mut_ptr(),
27682        e.as_mut_ptr(),
27683        z.as_mut_ptr() as *mut _,
27684        &ldz,
27685        work.as_mut_ptr() as *mut _,
27686        &lwork,
27687        rwork.as_mut_ptr(),
27688        &lrwork,
27689        iwork.as_mut_ptr(),
27690        &liwork,
27691        info,
27692    )
27693}
27694
27695#[inline]
27696pub unsafe fn dstedc(
27697    compz: u8,
27698    n: i32,
27699    d: &mut [f64],
27700    e: &mut [f64],
27701    z: &mut [f64],
27702    ldz: i32,
27703    work: &mut [f64],
27704    lwork: i32,
27705    iwork: &mut [i32],
27706    liwork: i32,
27707    info: &mut i32,
27708) {
27709    ffi::dstedc_(
27710        &(compz as c_char),
27711        &n,
27712        d.as_mut_ptr(),
27713        e.as_mut_ptr(),
27714        z.as_mut_ptr(),
27715        &ldz,
27716        work.as_mut_ptr(),
27717        &lwork,
27718        iwork.as_mut_ptr(),
27719        &liwork,
27720        info,
27721    )
27722}
27723
27724#[inline]
27725pub unsafe fn sstedc(
27726    compz: u8,
27727    n: i32,
27728    d: &mut [f32],
27729    e: &mut [f32],
27730    z: &mut [f32],
27731    ldz: i32,
27732    work: &mut [f32],
27733    lwork: i32,
27734    iwork: &mut [i32],
27735    liwork: i32,
27736    info: &mut i32,
27737) {
27738    ffi::sstedc_(
27739        &(compz as c_char),
27740        &n,
27741        d.as_mut_ptr(),
27742        e.as_mut_ptr(),
27743        z.as_mut_ptr(),
27744        &ldz,
27745        work.as_mut_ptr(),
27746        &lwork,
27747        iwork.as_mut_ptr(),
27748        &liwork,
27749        info,
27750    )
27751}
27752
27753#[inline]
27754pub unsafe fn zstedc(
27755    compz: u8,
27756    n: i32,
27757    d: &mut [f64],
27758    e: &mut [f64],
27759    z: &mut [c64],
27760    ldz: i32,
27761    work: &mut [c64],
27762    lwork: i32,
27763    rwork: &mut [f64],
27764    lrwork: i32,
27765    iwork: &mut [i32],
27766    liwork: i32,
27767    info: &mut i32,
27768) {
27769    ffi::zstedc_(
27770        &(compz as c_char),
27771        &n,
27772        d.as_mut_ptr(),
27773        e.as_mut_ptr(),
27774        z.as_mut_ptr() as *mut _,
27775        &ldz,
27776        work.as_mut_ptr() as *mut _,
27777        &lwork,
27778        rwork.as_mut_ptr(),
27779        &lrwork,
27780        iwork.as_mut_ptr(),
27781        &liwork,
27782        info,
27783    )
27784}
27785
27786#[inline]
27787pub unsafe fn cstegr(
27788    jobz: u8,
27789    range: u8,
27790    n: i32,
27791    d: &mut [f32],
27792    e: &mut [f32],
27793    vl: f32,
27794    vu: f32,
27795    il: i32,
27796    iu: i32,
27797    abstol: f32,
27798    m: &mut i32,
27799    w: &mut [f32],
27800    z: &mut [c32],
27801    ldz: i32,
27802    isuppz: &mut [i32],
27803    work: &mut [f32],
27804    lwork: i32,
27805    iwork: &mut [i32],
27806    liwork: i32,
27807    info: &mut i32,
27808) {
27809    ffi::cstegr_(
27810        &(jobz as c_char),
27811        &(range as c_char),
27812        &n,
27813        d.as_mut_ptr(),
27814        e.as_mut_ptr(),
27815        &vl,
27816        &vu,
27817        &il,
27818        &iu,
27819        &abstol,
27820        m,
27821        w.as_mut_ptr(),
27822        z.as_mut_ptr() as *mut _,
27823        &ldz,
27824        isuppz.as_mut_ptr(),
27825        work.as_mut_ptr(),
27826        &lwork,
27827        iwork.as_mut_ptr(),
27828        &liwork,
27829        info,
27830    )
27831}
27832
27833#[inline]
27834pub unsafe fn dstegr(
27835    jobz: u8,
27836    range: u8,
27837    n: i32,
27838    d: &mut [f64],
27839    e: &mut [f64],
27840    vl: f64,
27841    vu: f64,
27842    il: i32,
27843    iu: i32,
27844    abstol: f64,
27845    m: &mut i32,
27846    w: &mut [f64],
27847    z: &mut [f64],
27848    ldz: i32,
27849    isuppz: &mut [i32],
27850    work: &mut [f64],
27851    lwork: i32,
27852    iwork: &mut [i32],
27853    liwork: i32,
27854    info: &mut i32,
27855) {
27856    ffi::dstegr_(
27857        &(jobz as c_char),
27858        &(range as c_char),
27859        &n,
27860        d.as_mut_ptr(),
27861        e.as_mut_ptr(),
27862        &vl,
27863        &vu,
27864        &il,
27865        &iu,
27866        &abstol,
27867        m,
27868        w.as_mut_ptr(),
27869        z.as_mut_ptr(),
27870        &ldz,
27871        isuppz.as_mut_ptr(),
27872        work.as_mut_ptr(),
27873        &lwork,
27874        iwork.as_mut_ptr(),
27875        &liwork,
27876        info,
27877    )
27878}
27879
27880#[inline]
27881pub unsafe fn sstegr(
27882    jobz: u8,
27883    range: u8,
27884    n: i32,
27885    d: &mut [f32],
27886    e: &mut [f32],
27887    vl: f32,
27888    vu: f32,
27889    il: i32,
27890    iu: i32,
27891    abstol: f32,
27892    m: &mut i32,
27893    w: &mut [f32],
27894    z: &mut [f32],
27895    ldz: i32,
27896    isuppz: &mut [i32],
27897    work: &mut [f32],
27898    lwork: i32,
27899    iwork: &mut [i32],
27900    liwork: i32,
27901    info: &mut i32,
27902) {
27903    ffi::sstegr_(
27904        &(jobz as c_char),
27905        &(range as c_char),
27906        &n,
27907        d.as_mut_ptr(),
27908        e.as_mut_ptr(),
27909        &vl,
27910        &vu,
27911        &il,
27912        &iu,
27913        &abstol,
27914        m,
27915        w.as_mut_ptr(),
27916        z.as_mut_ptr(),
27917        &ldz,
27918        isuppz.as_mut_ptr(),
27919        work.as_mut_ptr(),
27920        &lwork,
27921        iwork.as_mut_ptr(),
27922        &liwork,
27923        info,
27924    )
27925}
27926
27927#[inline]
27928pub unsafe fn zstegr(
27929    jobz: u8,
27930    range: u8,
27931    n: i32,
27932    d: &mut [f64],
27933    e: &mut [f64],
27934    vl: f64,
27935    vu: f64,
27936    il: i32,
27937    iu: i32,
27938    abstol: f64,
27939    m: &mut i32,
27940    w: &mut [f64],
27941    z: &mut [c64],
27942    ldz: i32,
27943    isuppz: &mut [i32],
27944    work: &mut [f64],
27945    lwork: i32,
27946    iwork: &mut [i32],
27947    liwork: i32,
27948    info: &mut i32,
27949) {
27950    ffi::zstegr_(
27951        &(jobz as c_char),
27952        &(range as c_char),
27953        &n,
27954        d.as_mut_ptr(),
27955        e.as_mut_ptr(),
27956        &vl,
27957        &vu,
27958        &il,
27959        &iu,
27960        &abstol,
27961        m,
27962        w.as_mut_ptr(),
27963        z.as_mut_ptr() as *mut _,
27964        &ldz,
27965        isuppz.as_mut_ptr(),
27966        work.as_mut_ptr(),
27967        &lwork,
27968        iwork.as_mut_ptr(),
27969        &liwork,
27970        info,
27971    )
27972}
27973
27974#[inline]
27975pub unsafe fn cstein(
27976    n: i32,
27977    d: &[f32],
27978    e: &[f32],
27979    m: i32,
27980    w: &[f32],
27981    iblock: &[i32],
27982    isplit: &[i32],
27983    z: &mut [c32],
27984    ldz: i32,
27985    work: &mut [f32],
27986    iwork: &mut [i32],
27987    ifail: &mut [i32],
27988    info: &mut i32,
27989) {
27990    ffi::cstein_(
27991        &n,
27992        d.as_ptr(),
27993        e.as_ptr(),
27994        &m,
27995        w.as_ptr(),
27996        iblock.as_ptr(),
27997        isplit.as_ptr(),
27998        z.as_mut_ptr() as *mut _,
27999        &ldz,
28000        work.as_mut_ptr(),
28001        iwork.as_mut_ptr(),
28002        ifail.as_mut_ptr(),
28003        info,
28004    )
28005}
28006
28007#[inline]
28008pub unsafe fn dstein(
28009    n: i32,
28010    d: &[f64],
28011    e: &[f64],
28012    m: i32,
28013    w: &[f64],
28014    iblock: &[i32],
28015    isplit: &[i32],
28016    z: &mut [f64],
28017    ldz: i32,
28018    work: &mut [f64],
28019    iwork: &mut [i32],
28020    ifail: &mut [i32],
28021    info: &mut i32,
28022) {
28023    ffi::dstein_(
28024        &n,
28025        d.as_ptr(),
28026        e.as_ptr(),
28027        &m,
28028        w.as_ptr(),
28029        iblock.as_ptr(),
28030        isplit.as_ptr(),
28031        z.as_mut_ptr(),
28032        &ldz,
28033        work.as_mut_ptr(),
28034        iwork.as_mut_ptr(),
28035        ifail.as_mut_ptr(),
28036        info,
28037    )
28038}
28039
28040#[inline]
28041pub unsafe fn sstein(
28042    n: i32,
28043    d: &[f32],
28044    e: &[f32],
28045    m: i32,
28046    w: &[f32],
28047    iblock: &[i32],
28048    isplit: &[i32],
28049    z: &mut [f32],
28050    ldz: i32,
28051    work: &mut [f32],
28052    iwork: &mut [i32],
28053    ifail: &mut [i32],
28054    info: &mut i32,
28055) {
28056    ffi::sstein_(
28057        &n,
28058        d.as_ptr(),
28059        e.as_ptr(),
28060        &m,
28061        w.as_ptr(),
28062        iblock.as_ptr(),
28063        isplit.as_ptr(),
28064        z.as_mut_ptr(),
28065        &ldz,
28066        work.as_mut_ptr(),
28067        iwork.as_mut_ptr(),
28068        ifail.as_mut_ptr(),
28069        info,
28070    )
28071}
28072
28073#[inline]
28074pub unsafe fn zstein(
28075    n: i32,
28076    d: &[f64],
28077    e: &[f64],
28078    m: i32,
28079    w: &[f64],
28080    iblock: &[i32],
28081    isplit: &[i32],
28082    z: &mut [c64],
28083    ldz: i32,
28084    work: &mut [f64],
28085    iwork: &mut [i32],
28086    ifail: &mut [i32],
28087    info: &mut i32,
28088) {
28089    ffi::zstein_(
28090        &n,
28091        d.as_ptr(),
28092        e.as_ptr(),
28093        &m,
28094        w.as_ptr(),
28095        iblock.as_ptr(),
28096        isplit.as_ptr(),
28097        z.as_mut_ptr() as *mut _,
28098        &ldz,
28099        work.as_mut_ptr(),
28100        iwork.as_mut_ptr(),
28101        ifail.as_mut_ptr(),
28102        info,
28103    )
28104}
28105
28106#[inline]
28107pub unsafe fn cstemr(
28108    jobz: u8,
28109    range: u8,
28110    n: i32,
28111    d: &mut [f32],
28112    e: &mut [f32],
28113    vl: f32,
28114    vu: f32,
28115    il: i32,
28116    iu: i32,
28117    m: &mut i32,
28118    w: &mut [f32],
28119    z: &mut [c32],
28120    ldz: i32,
28121    nzc: &[i32],
28122    isuppz: &mut [i32],
28123    tryrac: &mut i32,
28124    work: &mut [f32],
28125    lwork: i32,
28126    iwork: &mut [i32],
28127    liwork: i32,
28128    info: &mut i32,
28129) {
28130    ffi::cstemr_(
28131        &(jobz as c_char),
28132        &(range as c_char),
28133        &n,
28134        d.as_mut_ptr(),
28135        e.as_mut_ptr(),
28136        &vl,
28137        &vu,
28138        &il,
28139        &iu,
28140        m,
28141        w.as_mut_ptr(),
28142        z.as_mut_ptr() as *mut _,
28143        &ldz,
28144        nzc.as_ptr(),
28145        isuppz.as_mut_ptr(),
28146        tryrac,
28147        work.as_mut_ptr(),
28148        &lwork,
28149        iwork.as_mut_ptr(),
28150        &liwork,
28151        info,
28152    )
28153}
28154
28155#[inline]
28156pub unsafe fn dstemr(
28157    jobz: u8,
28158    range: u8,
28159    n: i32,
28160    d: &mut [f64],
28161    e: &mut [f64],
28162    vl: f64,
28163    vu: f64,
28164    il: i32,
28165    iu: i32,
28166    m: &mut i32,
28167    w: &mut [f64],
28168    z: &mut [f64],
28169    ldz: i32,
28170    nzc: &[i32],
28171    isuppz: &mut [i32],
28172    tryrac: &mut i32,
28173    work: &mut [f64],
28174    lwork: i32,
28175    iwork: &mut [i32],
28176    liwork: i32,
28177    info: &mut i32,
28178) {
28179    ffi::dstemr_(
28180        &(jobz as c_char),
28181        &(range as c_char),
28182        &n,
28183        d.as_mut_ptr(),
28184        e.as_mut_ptr(),
28185        &vl,
28186        &vu,
28187        &il,
28188        &iu,
28189        m,
28190        w.as_mut_ptr(),
28191        z.as_mut_ptr(),
28192        &ldz,
28193        nzc.as_ptr(),
28194        isuppz.as_mut_ptr(),
28195        tryrac,
28196        work.as_mut_ptr(),
28197        &lwork,
28198        iwork.as_mut_ptr(),
28199        &liwork,
28200        info,
28201    )
28202}
28203
28204#[inline]
28205pub unsafe fn sstemr(
28206    jobz: u8,
28207    range: u8,
28208    n: i32,
28209    d: &mut [f32],
28210    e: &mut [f32],
28211    vl: f32,
28212    vu: f32,
28213    il: i32,
28214    iu: i32,
28215    m: &mut i32,
28216    w: &mut [f32],
28217    z: &mut [f32],
28218    ldz: i32,
28219    nzc: &[i32],
28220    isuppz: &mut [i32],
28221    tryrac: &mut i32,
28222    work: &mut [f32],
28223    lwork: i32,
28224    iwork: &mut [i32],
28225    liwork: i32,
28226    info: &mut i32,
28227) {
28228    ffi::sstemr_(
28229        &(jobz as c_char),
28230        &(range as c_char),
28231        &n,
28232        d.as_mut_ptr(),
28233        e.as_mut_ptr(),
28234        &vl,
28235        &vu,
28236        &il,
28237        &iu,
28238        m,
28239        w.as_mut_ptr(),
28240        z.as_mut_ptr(),
28241        &ldz,
28242        nzc.as_ptr(),
28243        isuppz.as_mut_ptr(),
28244        tryrac,
28245        work.as_mut_ptr(),
28246        &lwork,
28247        iwork.as_mut_ptr(),
28248        &liwork,
28249        info,
28250    )
28251}
28252
28253#[inline]
28254pub unsafe fn zstemr(
28255    jobz: u8,
28256    range: u8,
28257    n: i32,
28258    d: &mut [f64],
28259    e: &mut [f64],
28260    vl: f64,
28261    vu: f64,
28262    il: i32,
28263    iu: i32,
28264    m: &mut i32,
28265    w: &mut [f64],
28266    z: &mut [c64],
28267    ldz: i32,
28268    nzc: &[i32],
28269    isuppz: &mut [i32],
28270    tryrac: &mut i32,
28271    work: &mut [f64],
28272    lwork: i32,
28273    iwork: &mut [i32],
28274    liwork: i32,
28275    info: &mut i32,
28276) {
28277    ffi::zstemr_(
28278        &(jobz as c_char),
28279        &(range as c_char),
28280        &n,
28281        d.as_mut_ptr(),
28282        e.as_mut_ptr(),
28283        &vl,
28284        &vu,
28285        &il,
28286        &iu,
28287        m,
28288        w.as_mut_ptr(),
28289        z.as_mut_ptr() as *mut _,
28290        &ldz,
28291        nzc.as_ptr(),
28292        isuppz.as_mut_ptr(),
28293        tryrac,
28294        work.as_mut_ptr(),
28295        &lwork,
28296        iwork.as_mut_ptr(),
28297        &liwork,
28298        info,
28299    )
28300}
28301
28302#[inline]
28303pub unsafe fn csteqr(
28304    compz: u8,
28305    n: i32,
28306    d: &mut [f32],
28307    e: &mut [f32],
28308    z: &mut [c32],
28309    ldz: i32,
28310    work: &mut [f32],
28311    info: &mut i32,
28312) {
28313    ffi::csteqr_(
28314        &(compz as c_char),
28315        &n,
28316        d.as_mut_ptr(),
28317        e.as_mut_ptr(),
28318        z.as_mut_ptr() as *mut _,
28319        &ldz,
28320        work.as_mut_ptr(),
28321        info,
28322    )
28323}
28324
28325#[inline]
28326pub unsafe fn dsteqr(
28327    compz: u8,
28328    n: i32,
28329    d: &mut [f64],
28330    e: &mut [f64],
28331    z: &mut [f64],
28332    ldz: i32,
28333    work: &mut [f64],
28334    info: &mut i32,
28335) {
28336    ffi::dsteqr_(
28337        &(compz as c_char),
28338        &n,
28339        d.as_mut_ptr(),
28340        e.as_mut_ptr(),
28341        z.as_mut_ptr(),
28342        &ldz,
28343        work.as_mut_ptr(),
28344        info,
28345    )
28346}
28347
28348#[inline]
28349pub unsafe fn ssteqr(
28350    compz: u8,
28351    n: i32,
28352    d: &mut [f32],
28353    e: &mut [f32],
28354    z: &mut [f32],
28355    ldz: i32,
28356    work: &mut [f32],
28357    info: &mut i32,
28358) {
28359    ffi::ssteqr_(
28360        &(compz as c_char),
28361        &n,
28362        d.as_mut_ptr(),
28363        e.as_mut_ptr(),
28364        z.as_mut_ptr(),
28365        &ldz,
28366        work.as_mut_ptr(),
28367        info,
28368    )
28369}
28370
28371#[inline]
28372pub unsafe fn zsteqr(
28373    compz: u8,
28374    n: i32,
28375    d: &mut [f64],
28376    e: &mut [f64],
28377    z: &mut [c64],
28378    ldz: i32,
28379    work: &mut [f64],
28380    info: &mut i32,
28381) {
28382    ffi::zsteqr_(
28383        &(compz as c_char),
28384        &n,
28385        d.as_mut_ptr(),
28386        e.as_mut_ptr(),
28387        z.as_mut_ptr() as *mut _,
28388        &ldz,
28389        work.as_mut_ptr(),
28390        info,
28391    )
28392}
28393
28394#[inline]
28395pub unsafe fn dsterf(n: i32, d: &mut [f64], e: &mut [f64], info: &mut i32) {
28396    ffi::dsterf_(&n, d.as_mut_ptr(), e.as_mut_ptr(), info)
28397}
28398
28399#[inline]
28400pub unsafe fn ssterf(n: i32, d: &mut [f32], e: &mut [f32], info: &mut i32) {
28401    ffi::ssterf_(&n, d.as_mut_ptr(), e.as_mut_ptr(), info)
28402}
28403
28404#[inline]
28405pub unsafe fn dstev(
28406    jobz: u8,
28407    n: i32,
28408    d: &mut [f64],
28409    e: &mut [f64],
28410    z: &mut [f64],
28411    ldz: i32,
28412    work: &mut [f64],
28413    info: &mut i32,
28414) {
28415    ffi::dstev_(
28416        &(jobz as c_char),
28417        &n,
28418        d.as_mut_ptr(),
28419        e.as_mut_ptr(),
28420        z.as_mut_ptr(),
28421        &ldz,
28422        work.as_mut_ptr(),
28423        info,
28424    )
28425}
28426
28427#[inline]
28428pub unsafe fn sstev(
28429    jobz: u8,
28430    n: i32,
28431    d: &mut [f32],
28432    e: &mut [f32],
28433    z: &mut [f32],
28434    ldz: i32,
28435    work: &mut [f32],
28436    info: &mut i32,
28437) {
28438    ffi::sstev_(
28439        &(jobz as c_char),
28440        &n,
28441        d.as_mut_ptr(),
28442        e.as_mut_ptr(),
28443        z.as_mut_ptr(),
28444        &ldz,
28445        work.as_mut_ptr(),
28446        info,
28447    )
28448}
28449
28450#[inline]
28451pub unsafe fn dstevd(
28452    jobz: u8,
28453    n: i32,
28454    d: &mut [f64],
28455    e: &mut [f64],
28456    z: &mut [f64],
28457    ldz: i32,
28458    work: &mut [f64],
28459    lwork: i32,
28460    iwork: &mut [i32],
28461    liwork: i32,
28462    info: &mut i32,
28463) {
28464    ffi::dstevd_(
28465        &(jobz as c_char),
28466        &n,
28467        d.as_mut_ptr(),
28468        e.as_mut_ptr(),
28469        z.as_mut_ptr(),
28470        &ldz,
28471        work.as_mut_ptr(),
28472        &lwork,
28473        iwork.as_mut_ptr(),
28474        &liwork,
28475        info,
28476    )
28477}
28478
28479#[inline]
28480pub unsafe fn sstevd(
28481    jobz: u8,
28482    n: i32,
28483    d: &mut [f32],
28484    e: &mut [f32],
28485    z: &mut [f32],
28486    ldz: i32,
28487    work: &mut [f32],
28488    lwork: i32,
28489    iwork: &mut [i32],
28490    liwork: i32,
28491    info: &mut i32,
28492) {
28493    ffi::sstevd_(
28494        &(jobz as c_char),
28495        &n,
28496        d.as_mut_ptr(),
28497        e.as_mut_ptr(),
28498        z.as_mut_ptr(),
28499        &ldz,
28500        work.as_mut_ptr(),
28501        &lwork,
28502        iwork.as_mut_ptr(),
28503        &liwork,
28504        info,
28505    )
28506}
28507
28508#[inline]
28509pub unsafe fn dstevr(
28510    jobz: u8,
28511    range: u8,
28512    n: i32,
28513    d: &mut [f64],
28514    e: &mut [f64],
28515    vl: f64,
28516    vu: f64,
28517    il: i32,
28518    iu: i32,
28519    abstol: f64,
28520    m: &mut i32,
28521    w: &mut [f64],
28522    z: &mut [f64],
28523    ldz: i32,
28524    isuppz: &mut [i32],
28525    work: &mut [f64],
28526    lwork: i32,
28527    iwork: &mut [i32],
28528    liwork: i32,
28529    info: &mut i32,
28530) {
28531    ffi::dstevr_(
28532        &(jobz as c_char),
28533        &(range as c_char),
28534        &n,
28535        d.as_mut_ptr(),
28536        e.as_mut_ptr(),
28537        &vl,
28538        &vu,
28539        &il,
28540        &iu,
28541        &abstol,
28542        m,
28543        w.as_mut_ptr(),
28544        z.as_mut_ptr(),
28545        &ldz,
28546        isuppz.as_mut_ptr(),
28547        work.as_mut_ptr(),
28548        &lwork,
28549        iwork.as_mut_ptr(),
28550        &liwork,
28551        info,
28552    )
28553}
28554
28555#[inline]
28556pub unsafe fn sstevr(
28557    jobz: u8,
28558    range: u8,
28559    n: i32,
28560    d: &mut [f32],
28561    e: &mut [f32],
28562    vl: f32,
28563    vu: f32,
28564    il: i32,
28565    iu: i32,
28566    abstol: f32,
28567    m: &mut i32,
28568    w: &mut [f32],
28569    z: &mut [f32],
28570    ldz: i32,
28571    isuppz: &mut [i32],
28572    work: &mut [f32],
28573    lwork: i32,
28574    iwork: &mut [i32],
28575    liwork: i32,
28576    info: &mut i32,
28577) {
28578    ffi::sstevr_(
28579        &(jobz as c_char),
28580        &(range as c_char),
28581        &n,
28582        d.as_mut_ptr(),
28583        e.as_mut_ptr(),
28584        &vl,
28585        &vu,
28586        &il,
28587        &iu,
28588        &abstol,
28589        m,
28590        w.as_mut_ptr(),
28591        z.as_mut_ptr(),
28592        &ldz,
28593        isuppz.as_mut_ptr(),
28594        work.as_mut_ptr(),
28595        &lwork,
28596        iwork.as_mut_ptr(),
28597        &liwork,
28598        info,
28599    )
28600}
28601
28602#[inline]
28603pub unsafe fn dstevx(
28604    jobz: u8,
28605    range: u8,
28606    n: i32,
28607    d: &mut [f64],
28608    e: &mut [f64],
28609    vl: f64,
28610    vu: f64,
28611    il: i32,
28612    iu: i32,
28613    abstol: f64,
28614    m: &mut i32,
28615    w: &mut [f64],
28616    z: &mut [f64],
28617    ldz: i32,
28618    work: &mut [f64],
28619    iwork: &mut [i32],
28620    ifail: &mut [i32],
28621    info: &mut i32,
28622) {
28623    ffi::dstevx_(
28624        &(jobz as c_char),
28625        &(range as c_char),
28626        &n,
28627        d.as_mut_ptr(),
28628        e.as_mut_ptr(),
28629        &vl,
28630        &vu,
28631        &il,
28632        &iu,
28633        &abstol,
28634        m,
28635        w.as_mut_ptr(),
28636        z.as_mut_ptr(),
28637        &ldz,
28638        work.as_mut_ptr(),
28639        iwork.as_mut_ptr(),
28640        ifail.as_mut_ptr(),
28641        info,
28642    )
28643}
28644
28645#[inline]
28646pub unsafe fn sstevx(
28647    jobz: u8,
28648    range: u8,
28649    n: i32,
28650    d: &mut [f32],
28651    e: &mut [f32],
28652    vl: f32,
28653    vu: f32,
28654    il: i32,
28655    iu: i32,
28656    abstol: f32,
28657    m: &mut i32,
28658    w: &mut [f32],
28659    z: &mut [f32],
28660    ldz: i32,
28661    work: &mut [f32],
28662    iwork: &mut [i32],
28663    ifail: &mut [i32],
28664    info: &mut i32,
28665) {
28666    ffi::sstevx_(
28667        &(jobz as c_char),
28668        &(range as c_char),
28669        &n,
28670        d.as_mut_ptr(),
28671        e.as_mut_ptr(),
28672        &vl,
28673        &vu,
28674        &il,
28675        &iu,
28676        &abstol,
28677        m,
28678        w.as_mut_ptr(),
28679        z.as_mut_ptr(),
28680        &ldz,
28681        work.as_mut_ptr(),
28682        iwork.as_mut_ptr(),
28683        ifail.as_mut_ptr(),
28684        info,
28685    )
28686}
28687
28688#[inline]
28689pub unsafe fn csycon(
28690    uplo: u8,
28691    n: i32,
28692    a: &[c32],
28693    lda: i32,
28694    ipiv: &[i32],
28695    anorm: f32,
28696    rcond: &mut f32,
28697    work: &mut [c32],
28698    info: &mut i32,
28699) {
28700    ffi::csycon_(
28701        &(uplo as c_char),
28702        &n,
28703        a.as_ptr() as *const _,
28704        &lda,
28705        ipiv.as_ptr(),
28706        &anorm,
28707        rcond,
28708        work.as_mut_ptr() as *mut _,
28709        info,
28710    )
28711}
28712
28713#[inline]
28714pub unsafe fn dsycon(
28715    uplo: u8,
28716    n: i32,
28717    a: &[f64],
28718    lda: i32,
28719    ipiv: &[i32],
28720    anorm: f64,
28721    rcond: &mut f64,
28722    work: &mut [f64],
28723    iwork: &mut [i32],
28724    info: &mut i32,
28725) {
28726    ffi::dsycon_(
28727        &(uplo as c_char),
28728        &n,
28729        a.as_ptr(),
28730        &lda,
28731        ipiv.as_ptr(),
28732        &anorm,
28733        rcond,
28734        work.as_mut_ptr(),
28735        iwork.as_mut_ptr(),
28736        info,
28737    )
28738}
28739
28740#[inline]
28741pub unsafe fn ssycon(
28742    uplo: u8,
28743    n: i32,
28744    a: &[f32],
28745    lda: i32,
28746    ipiv: &[i32],
28747    anorm: f32,
28748    rcond: &mut f32,
28749    work: &mut [f32],
28750    iwork: &mut [i32],
28751    info: &mut i32,
28752) {
28753    ffi::ssycon_(
28754        &(uplo as c_char),
28755        &n,
28756        a.as_ptr(),
28757        &lda,
28758        ipiv.as_ptr(),
28759        &anorm,
28760        rcond,
28761        work.as_mut_ptr(),
28762        iwork.as_mut_ptr(),
28763        info,
28764    )
28765}
28766
28767#[inline]
28768pub unsafe fn zsycon(
28769    uplo: u8,
28770    n: i32,
28771    a: &[c64],
28772    lda: i32,
28773    ipiv: &[i32],
28774    anorm: f64,
28775    rcond: &mut f64,
28776    work: &mut [c64],
28777    info: &mut i32,
28778) {
28779    ffi::zsycon_(
28780        &(uplo as c_char),
28781        &n,
28782        a.as_ptr() as *const _,
28783        &lda,
28784        ipiv.as_ptr(),
28785        &anorm,
28786        rcond,
28787        work.as_mut_ptr() as *mut _,
28788        info,
28789    )
28790}
28791
28792#[inline]
28793pub unsafe fn csycon_3(
28794    uplo: u8,
28795    n: i32,
28796    a: &[c32],
28797    lda: i32,
28798    e: &[c32],
28799    ipiv: &[i32],
28800    anorm: f32,
28801    rcond: &mut f32,
28802    work: &mut [c32],
28803    info: &mut i32,
28804) {
28805    ffi::csycon_3_(
28806        &(uplo as c_char),
28807        &n,
28808        a.as_ptr() as *const _,
28809        &lda,
28810        e.as_ptr() as *const _,
28811        ipiv.as_ptr(),
28812        &anorm,
28813        rcond,
28814        work.as_mut_ptr() as *mut _,
28815        info,
28816    )
28817}
28818
28819#[inline]
28820pub unsafe fn dsycon_3(
28821    uplo: u8,
28822    n: i32,
28823    a: &[f64],
28824    lda: i32,
28825    e: &[f64],
28826    ipiv: &[i32],
28827    anorm: f64,
28828    rcond: &mut f64,
28829    work: &mut [f64],
28830    iwork: &mut [i32],
28831    info: &mut i32,
28832) {
28833    ffi::dsycon_3_(
28834        &(uplo as c_char),
28835        &n,
28836        a.as_ptr(),
28837        &lda,
28838        e.as_ptr(),
28839        ipiv.as_ptr(),
28840        &anorm,
28841        rcond,
28842        work.as_mut_ptr(),
28843        iwork.as_mut_ptr(),
28844        info,
28845    )
28846}
28847
28848#[inline]
28849pub unsafe fn ssycon_3(
28850    uplo: u8,
28851    n: i32,
28852    a: &[f32],
28853    lda: i32,
28854    e: &[f32],
28855    ipiv: &[i32],
28856    anorm: f32,
28857    rcond: &mut f32,
28858    work: &mut [f32],
28859    iwork: &mut [i32],
28860    info: &mut i32,
28861) {
28862    ffi::ssycon_3_(
28863        &(uplo as c_char),
28864        &n,
28865        a.as_ptr(),
28866        &lda,
28867        e.as_ptr(),
28868        ipiv.as_ptr(),
28869        &anorm,
28870        rcond,
28871        work.as_mut_ptr(),
28872        iwork.as_mut_ptr(),
28873        info,
28874    )
28875}
28876
28877#[inline]
28878pub unsafe fn zsycon_3(
28879    uplo: u8,
28880    n: i32,
28881    a: &[c64],
28882    lda: i32,
28883    e: &[c64],
28884    ipiv: &[i32],
28885    anorm: f64,
28886    rcond: &mut f64,
28887    work: &mut [c64],
28888    info: &mut i32,
28889) {
28890    ffi::zsycon_3_(
28891        &(uplo as c_char),
28892        &n,
28893        a.as_ptr() as *const _,
28894        &lda,
28895        e.as_ptr() as *const _,
28896        ipiv.as_ptr(),
28897        &anorm,
28898        rcond,
28899        work.as_mut_ptr() as *mut _,
28900        info,
28901    )
28902}
28903
28904#[inline]
28905pub unsafe fn csyconv(
28906    uplo: u8,
28907    way: u8,
28908    n: i32,
28909    a: &mut [c32],
28910    lda: i32,
28911    ipiv: &[i32],
28912    e: &mut [c32],
28913    info: &mut i32,
28914) {
28915    ffi::csyconv_(
28916        &(uplo as c_char),
28917        &(way as c_char),
28918        &n,
28919        a.as_mut_ptr() as *mut _,
28920        &lda,
28921        ipiv.as_ptr(),
28922        e.as_mut_ptr() as *mut _,
28923        info,
28924    )
28925}
28926
28927#[inline]
28928pub unsafe fn dsyconv(
28929    uplo: u8,
28930    way: u8,
28931    n: i32,
28932    a: &mut [f64],
28933    lda: i32,
28934    ipiv: &[i32],
28935    e: &mut [f64],
28936    info: &mut i32,
28937) {
28938    ffi::dsyconv_(
28939        &(uplo as c_char),
28940        &(way as c_char),
28941        &n,
28942        a.as_mut_ptr(),
28943        &lda,
28944        ipiv.as_ptr(),
28945        e.as_mut_ptr(),
28946        info,
28947    )
28948}
28949
28950#[inline]
28951pub unsafe fn ssyconv(
28952    uplo: u8,
28953    way: u8,
28954    n: i32,
28955    a: &mut [f32],
28956    lda: i32,
28957    ipiv: &[i32],
28958    e: &mut [f32],
28959    info: &mut i32,
28960) {
28961    ffi::ssyconv_(
28962        &(uplo as c_char),
28963        &(way as c_char),
28964        &n,
28965        a.as_mut_ptr(),
28966        &lda,
28967        ipiv.as_ptr(),
28968        e.as_mut_ptr(),
28969        info,
28970    )
28971}
28972
28973#[inline]
28974pub unsafe fn zsyconv(
28975    uplo: u8,
28976    way: u8,
28977    n: i32,
28978    a: &mut [c64],
28979    lda: i32,
28980    ipiv: &[i32],
28981    e: &mut [c64],
28982    info: &mut i32,
28983) {
28984    ffi::zsyconv_(
28985        &(uplo as c_char),
28986        &(way as c_char),
28987        &n,
28988        a.as_mut_ptr() as *mut _,
28989        &lda,
28990        ipiv.as_ptr(),
28991        e.as_mut_ptr() as *mut _,
28992        info,
28993    )
28994}
28995
28996#[inline]
28997pub unsafe fn csyequb(
28998    uplo: u8,
28999    n: i32,
29000    a: &[c32],
29001    lda: i32,
29002    s: &mut [f32],
29003    scond: &mut [f32],
29004    amax: &mut f32,
29005    work: &mut [c32],
29006    info: &mut i32,
29007) {
29008    ffi::csyequb_(
29009        &(uplo as c_char),
29010        &n,
29011        a.as_ptr() as *const _,
29012        &lda,
29013        s.as_mut_ptr(),
29014        scond.as_mut_ptr(),
29015        amax,
29016        work.as_mut_ptr() as *mut _,
29017        info,
29018    )
29019}
29020
29021#[inline]
29022pub unsafe fn dsyequb(
29023    uplo: u8,
29024    n: i32,
29025    a: &[f64],
29026    lda: i32,
29027    s: &mut [f64],
29028    scond: &mut [f64],
29029    amax: &mut f64,
29030    work: &mut [f64],
29031    info: &mut i32,
29032) {
29033    ffi::dsyequb_(
29034        &(uplo as c_char),
29035        &n,
29036        a.as_ptr(),
29037        &lda,
29038        s.as_mut_ptr(),
29039        scond.as_mut_ptr(),
29040        amax,
29041        work.as_mut_ptr(),
29042        info,
29043    )
29044}
29045
29046#[inline]
29047pub unsafe fn ssyequb(
29048    uplo: u8,
29049    n: i32,
29050    a: &[f32],
29051    lda: i32,
29052    s: &mut [f32],
29053    scond: &mut [f32],
29054    amax: &mut f32,
29055    work: &mut [f32],
29056    info: &mut i32,
29057) {
29058    ffi::ssyequb_(
29059        &(uplo as c_char),
29060        &n,
29061        a.as_ptr(),
29062        &lda,
29063        s.as_mut_ptr(),
29064        scond.as_mut_ptr(),
29065        amax,
29066        work.as_mut_ptr(),
29067        info,
29068    )
29069}
29070
29071#[inline]
29072pub unsafe fn zsyequb(
29073    uplo: u8,
29074    n: i32,
29075    a: &[c64],
29076    lda: i32,
29077    s: &mut [f64],
29078    scond: &mut [f64],
29079    amax: &mut f64,
29080    work: &mut [c64],
29081    info: &mut i32,
29082) {
29083    ffi::zsyequb_(
29084        &(uplo as c_char),
29085        &n,
29086        a.as_ptr() as *const _,
29087        &lda,
29088        s.as_mut_ptr(),
29089        scond.as_mut_ptr(),
29090        amax,
29091        work.as_mut_ptr() as *mut _,
29092        info,
29093    )
29094}
29095
29096#[inline]
29097pub unsafe fn dsyev(
29098    jobz: u8,
29099    uplo: u8,
29100    n: i32,
29101    a: &mut [f64],
29102    lda: i32,
29103    w: &mut [f64],
29104    work: &mut [f64],
29105    lwork: i32,
29106    info: &mut i32,
29107) {
29108    ffi::dsyev_(
29109        &(jobz as c_char),
29110        &(uplo as c_char),
29111        &n,
29112        a.as_mut_ptr(),
29113        &lda,
29114        w.as_mut_ptr(),
29115        work.as_mut_ptr(),
29116        &lwork,
29117        info,
29118    )
29119}
29120
29121#[inline]
29122pub unsafe fn ssyev(
29123    jobz: u8,
29124    uplo: u8,
29125    n: i32,
29126    a: &mut [f32],
29127    lda: i32,
29128    w: &mut [f32],
29129    work: &mut [f32],
29130    lwork: i32,
29131    info: &mut i32,
29132) {
29133    ffi::ssyev_(
29134        &(jobz as c_char),
29135        &(uplo as c_char),
29136        &n,
29137        a.as_mut_ptr(),
29138        &lda,
29139        w.as_mut_ptr(),
29140        work.as_mut_ptr(),
29141        &lwork,
29142        info,
29143    )
29144}
29145
29146#[inline]
29147pub unsafe fn dsyev_2stage(
29148    jobz: u8,
29149    uplo: u8,
29150    n: i32,
29151    a: &mut [f64],
29152    lda: i32,
29153    w: &mut [f64],
29154    work: &mut [f64],
29155    lwork: i32,
29156    info: &mut i32,
29157) {
29158    ffi::dsyev_2stage_(
29159        &(jobz as c_char),
29160        &(uplo as c_char),
29161        &n,
29162        a.as_mut_ptr(),
29163        &lda,
29164        w.as_mut_ptr(),
29165        work.as_mut_ptr(),
29166        &lwork,
29167        info,
29168    )
29169}
29170
29171#[inline]
29172pub unsafe fn ssyev_2stage(
29173    jobz: u8,
29174    uplo: u8,
29175    n: i32,
29176    a: &mut [f32],
29177    lda: i32,
29178    w: &mut [f32],
29179    work: &mut [f32],
29180    lwork: i32,
29181    info: &mut i32,
29182) {
29183    ffi::ssyev_2stage_(
29184        &(jobz as c_char),
29185        &(uplo as c_char),
29186        &n,
29187        a.as_mut_ptr(),
29188        &lda,
29189        w.as_mut_ptr(),
29190        work.as_mut_ptr(),
29191        &lwork,
29192        info,
29193    )
29194}
29195
29196#[inline]
29197pub unsafe fn dsyevd(
29198    jobz: u8,
29199    uplo: u8,
29200    n: i32,
29201    a: &mut [f64],
29202    lda: i32,
29203    w: &mut [f64],
29204    work: &mut [f64],
29205    lwork: i32,
29206    iwork: &mut [i32],
29207    liwork: i32,
29208    info: &mut i32,
29209) {
29210    ffi::dsyevd_(
29211        &(jobz as c_char),
29212        &(uplo as c_char),
29213        &n,
29214        a.as_mut_ptr(),
29215        &lda,
29216        w.as_mut_ptr(),
29217        work.as_mut_ptr(),
29218        &lwork,
29219        iwork.as_mut_ptr(),
29220        &liwork,
29221        info,
29222    )
29223}
29224
29225#[inline]
29226pub unsafe fn ssyevd(
29227    jobz: u8,
29228    uplo: u8,
29229    n: i32,
29230    a: &mut [f32],
29231    lda: i32,
29232    w: &mut [f32],
29233    work: &mut [f32],
29234    lwork: i32,
29235    iwork: &mut [i32],
29236    liwork: i32,
29237    info: &mut i32,
29238) {
29239    ffi::ssyevd_(
29240        &(jobz as c_char),
29241        &(uplo as c_char),
29242        &n,
29243        a.as_mut_ptr(),
29244        &lda,
29245        w.as_mut_ptr(),
29246        work.as_mut_ptr(),
29247        &lwork,
29248        iwork.as_mut_ptr(),
29249        &liwork,
29250        info,
29251    )
29252}
29253
29254#[inline]
29255pub unsafe fn dsyevd_2stage(
29256    jobz: u8,
29257    uplo: u8,
29258    n: i32,
29259    a: &mut [f64],
29260    lda: i32,
29261    w: &mut [f64],
29262    work: &mut [f64],
29263    lwork: i32,
29264    iwork: &mut [i32],
29265    liwork: i32,
29266    info: &mut i32,
29267) {
29268    ffi::dsyevd_2stage_(
29269        &(jobz as c_char),
29270        &(uplo as c_char),
29271        &n,
29272        a.as_mut_ptr(),
29273        &lda,
29274        w.as_mut_ptr(),
29275        work.as_mut_ptr(),
29276        &lwork,
29277        iwork.as_mut_ptr(),
29278        &liwork,
29279        info,
29280    )
29281}
29282
29283#[inline]
29284pub unsafe fn ssyevd_2stage(
29285    jobz: u8,
29286    uplo: u8,
29287    n: i32,
29288    a: &mut [f32],
29289    lda: i32,
29290    w: &mut [f32],
29291    work: &mut [f32],
29292    lwork: i32,
29293    iwork: &mut [i32],
29294    liwork: i32,
29295    info: &mut i32,
29296) {
29297    ffi::ssyevd_2stage_(
29298        &(jobz as c_char),
29299        &(uplo as c_char),
29300        &n,
29301        a.as_mut_ptr(),
29302        &lda,
29303        w.as_mut_ptr(),
29304        work.as_mut_ptr(),
29305        &lwork,
29306        iwork.as_mut_ptr(),
29307        &liwork,
29308        info,
29309    )
29310}
29311
29312#[inline]
29313pub unsafe fn dsyevr(
29314    jobz: u8,
29315    range: u8,
29316    uplo: u8,
29317    n: i32,
29318    a: &mut [f64],
29319    lda: i32,
29320    vl: f64,
29321    vu: f64,
29322    il: i32,
29323    iu: i32,
29324    abstol: f64,
29325    m: &mut i32,
29326    w: &mut [f64],
29327    z: &mut [f64],
29328    ldz: i32,
29329    isuppz: &mut [i32],
29330    work: &mut [f64],
29331    lwork: i32,
29332    iwork: &mut [i32],
29333    liwork: i32,
29334    info: &mut i32,
29335) {
29336    ffi::dsyevr_(
29337        &(jobz as c_char),
29338        &(range as c_char),
29339        &(uplo as c_char),
29340        &n,
29341        a.as_mut_ptr(),
29342        &lda,
29343        &vl,
29344        &vu,
29345        &il,
29346        &iu,
29347        &abstol,
29348        m,
29349        w.as_mut_ptr(),
29350        z.as_mut_ptr(),
29351        &ldz,
29352        isuppz.as_mut_ptr(),
29353        work.as_mut_ptr(),
29354        &lwork,
29355        iwork.as_mut_ptr(),
29356        &liwork,
29357        info,
29358    )
29359}
29360
29361#[inline]
29362pub unsafe fn ssyevr(
29363    jobz: u8,
29364    range: u8,
29365    uplo: u8,
29366    n: i32,
29367    a: &mut [f32],
29368    lda: i32,
29369    vl: f32,
29370    vu: f32,
29371    il: i32,
29372    iu: i32,
29373    abstol: f32,
29374    m: &mut i32,
29375    w: &mut [f32],
29376    z: &mut [f32],
29377    ldz: i32,
29378    isuppz: &mut [i32],
29379    work: &mut [f32],
29380    lwork: i32,
29381    iwork: &mut [i32],
29382    liwork: i32,
29383    info: &mut i32,
29384) {
29385    ffi::ssyevr_(
29386        &(jobz as c_char),
29387        &(range as c_char),
29388        &(uplo as c_char),
29389        &n,
29390        a.as_mut_ptr(),
29391        &lda,
29392        &vl,
29393        &vu,
29394        &il,
29395        &iu,
29396        &abstol,
29397        m,
29398        w.as_mut_ptr(),
29399        z.as_mut_ptr(),
29400        &ldz,
29401        isuppz.as_mut_ptr(),
29402        work.as_mut_ptr(),
29403        &lwork,
29404        iwork.as_mut_ptr(),
29405        &liwork,
29406        info,
29407    )
29408}
29409
29410#[inline]
29411pub unsafe fn dsyevr_2stage(
29412    jobz: u8,
29413    range: u8,
29414    uplo: u8,
29415    n: i32,
29416    a: &mut [f64],
29417    lda: i32,
29418    vl: f64,
29419    vu: f64,
29420    il: i32,
29421    iu: i32,
29422    abstol: f64,
29423    m: &mut i32,
29424    w: &mut [f64],
29425    z: &mut [f64],
29426    ldz: i32,
29427    isuppz: &mut [i32],
29428    work: &mut [f64],
29429    lwork: i32,
29430    iwork: &mut [i32],
29431    liwork: i32,
29432    info: &mut i32,
29433) {
29434    ffi::dsyevr_2stage_(
29435        &(jobz as c_char),
29436        &(range as c_char),
29437        &(uplo as c_char),
29438        &n,
29439        a.as_mut_ptr(),
29440        &lda,
29441        &vl,
29442        &vu,
29443        &il,
29444        &iu,
29445        &abstol,
29446        m,
29447        w.as_mut_ptr(),
29448        z.as_mut_ptr(),
29449        &ldz,
29450        isuppz.as_mut_ptr(),
29451        work.as_mut_ptr(),
29452        &lwork,
29453        iwork.as_mut_ptr(),
29454        &liwork,
29455        info,
29456    )
29457}
29458
29459#[inline]
29460pub unsafe fn ssyevr_2stage(
29461    jobz: u8,
29462    range: u8,
29463    uplo: u8,
29464    n: i32,
29465    a: &mut [f32],
29466    lda: i32,
29467    vl: f32,
29468    vu: f32,
29469    il: i32,
29470    iu: i32,
29471    abstol: f32,
29472    m: &mut i32,
29473    w: &mut [f32],
29474    z: &mut [f32],
29475    ldz: i32,
29476    isuppz: &mut [i32],
29477    work: &mut [f32],
29478    lwork: i32,
29479    iwork: &mut [i32],
29480    liwork: i32,
29481    info: &mut i32,
29482) {
29483    ffi::ssyevr_2stage_(
29484        &(jobz as c_char),
29485        &(range as c_char),
29486        &(uplo as c_char),
29487        &n,
29488        a.as_mut_ptr(),
29489        &lda,
29490        &vl,
29491        &vu,
29492        &il,
29493        &iu,
29494        &abstol,
29495        m,
29496        w.as_mut_ptr(),
29497        z.as_mut_ptr(),
29498        &ldz,
29499        isuppz.as_mut_ptr(),
29500        work.as_mut_ptr(),
29501        &lwork,
29502        iwork.as_mut_ptr(),
29503        &liwork,
29504        info,
29505    )
29506}
29507
29508#[inline]
29509pub unsafe fn dsyevx(
29510    jobz: u8,
29511    range: u8,
29512    uplo: u8,
29513    n: i32,
29514    a: &mut [f64],
29515    lda: i32,
29516    vl: f64,
29517    vu: f64,
29518    il: i32,
29519    iu: i32,
29520    abstol: f64,
29521    m: &mut i32,
29522    w: &mut [f64],
29523    z: &mut [f64],
29524    ldz: i32,
29525    work: &mut [f64],
29526    lwork: i32,
29527    iwork: &mut [i32],
29528    ifail: &mut [i32],
29529    info: &mut i32,
29530) {
29531    ffi::dsyevx_(
29532        &(jobz as c_char),
29533        &(range as c_char),
29534        &(uplo as c_char),
29535        &n,
29536        a.as_mut_ptr(),
29537        &lda,
29538        &vl,
29539        &vu,
29540        &il,
29541        &iu,
29542        &abstol,
29543        m,
29544        w.as_mut_ptr(),
29545        z.as_mut_ptr(),
29546        &ldz,
29547        work.as_mut_ptr(),
29548        &lwork,
29549        iwork.as_mut_ptr(),
29550        ifail.as_mut_ptr(),
29551        info,
29552    )
29553}
29554
29555#[inline]
29556pub unsafe fn ssyevx(
29557    jobz: u8,
29558    range: u8,
29559    uplo: u8,
29560    n: i32,
29561    a: &mut [f32],
29562    lda: i32,
29563    vl: f32,
29564    vu: f32,
29565    il: i32,
29566    iu: i32,
29567    abstol: f32,
29568    m: &mut i32,
29569    w: &mut [f32],
29570    z: &mut [f32],
29571    ldz: i32,
29572    work: &mut [f32],
29573    lwork: i32,
29574    iwork: &mut [i32],
29575    ifail: &mut [i32],
29576    info: &mut i32,
29577) {
29578    ffi::ssyevx_(
29579        &(jobz as c_char),
29580        &(range as c_char),
29581        &(uplo as c_char),
29582        &n,
29583        a.as_mut_ptr(),
29584        &lda,
29585        &vl,
29586        &vu,
29587        &il,
29588        &iu,
29589        &abstol,
29590        m,
29591        w.as_mut_ptr(),
29592        z.as_mut_ptr(),
29593        &ldz,
29594        work.as_mut_ptr(),
29595        &lwork,
29596        iwork.as_mut_ptr(),
29597        ifail.as_mut_ptr(),
29598        info,
29599    )
29600}
29601
29602#[inline]
29603pub unsafe fn dsyevx_2stage(
29604    jobz: u8,
29605    range: u8,
29606    uplo: u8,
29607    n: i32,
29608    a: &mut [f64],
29609    lda: i32,
29610    vl: f64,
29611    vu: f64,
29612    il: i32,
29613    iu: i32,
29614    abstol: f64,
29615    m: &mut i32,
29616    w: &mut [f64],
29617    z: &mut [f64],
29618    ldz: i32,
29619    work: &mut [f64],
29620    lwork: i32,
29621    iwork: &mut [i32],
29622    ifail: &mut [i32],
29623    info: &mut i32,
29624) {
29625    ffi::dsyevx_2stage_(
29626        &(jobz as c_char),
29627        &(range as c_char),
29628        &(uplo as c_char),
29629        &n,
29630        a.as_mut_ptr(),
29631        &lda,
29632        &vl,
29633        &vu,
29634        &il,
29635        &iu,
29636        &abstol,
29637        m,
29638        w.as_mut_ptr(),
29639        z.as_mut_ptr(),
29640        &ldz,
29641        work.as_mut_ptr(),
29642        &lwork,
29643        iwork.as_mut_ptr(),
29644        ifail.as_mut_ptr(),
29645        info,
29646    )
29647}
29648
29649#[inline]
29650pub unsafe fn ssyevx_2stage(
29651    jobz: u8,
29652    range: u8,
29653    uplo: u8,
29654    n: i32,
29655    a: &mut [f32],
29656    lda: i32,
29657    vl: f32,
29658    vu: f32,
29659    il: i32,
29660    iu: i32,
29661    abstol: f32,
29662    m: &mut i32,
29663    w: &mut [f32],
29664    z: &mut [f32],
29665    ldz: i32,
29666    work: &mut [f32],
29667    lwork: i32,
29668    iwork: &mut [i32],
29669    ifail: &mut [i32],
29670    info: &mut i32,
29671) {
29672    ffi::ssyevx_2stage_(
29673        &(jobz as c_char),
29674        &(range as c_char),
29675        &(uplo as c_char),
29676        &n,
29677        a.as_mut_ptr(),
29678        &lda,
29679        &vl,
29680        &vu,
29681        &il,
29682        &iu,
29683        &abstol,
29684        m,
29685        w.as_mut_ptr(),
29686        z.as_mut_ptr(),
29687        &ldz,
29688        work.as_mut_ptr(),
29689        &lwork,
29690        iwork.as_mut_ptr(),
29691        ifail.as_mut_ptr(),
29692        info,
29693    )
29694}
29695
29696#[inline]
29697pub unsafe fn dsygst(
29698    itype: &[i32],
29699    uplo: u8,
29700    n: i32,
29701    a: &mut [f64],
29702    lda: i32,
29703    b: &[f64],
29704    ldb: i32,
29705    info: &mut i32,
29706) {
29707    ffi::dsygst_(
29708        itype.as_ptr(),
29709        &(uplo as c_char),
29710        &n,
29711        a.as_mut_ptr(),
29712        &lda,
29713        b.as_ptr(),
29714        &ldb,
29715        info,
29716    )
29717}
29718
29719#[inline]
29720pub unsafe fn ssygst(
29721    itype: &[i32],
29722    uplo: u8,
29723    n: i32,
29724    a: &mut [f32],
29725    lda: i32,
29726    b: &[f32],
29727    ldb: i32,
29728    info: &mut i32,
29729) {
29730    ffi::ssygst_(
29731        itype.as_ptr(),
29732        &(uplo as c_char),
29733        &n,
29734        a.as_mut_ptr(),
29735        &lda,
29736        b.as_ptr(),
29737        &ldb,
29738        info,
29739    )
29740}
29741
29742#[inline]
29743pub unsafe fn dsygv(
29744    itype: &[i32],
29745    jobz: u8,
29746    uplo: u8,
29747    n: i32,
29748    a: &mut [f64],
29749    lda: i32,
29750    b: &mut [f64],
29751    ldb: i32,
29752    w: &mut [f64],
29753    work: &mut [f64],
29754    lwork: i32,
29755    info: &mut i32,
29756) {
29757    ffi::dsygv_(
29758        itype.as_ptr(),
29759        &(jobz as c_char),
29760        &(uplo as c_char),
29761        &n,
29762        a.as_mut_ptr(),
29763        &lda,
29764        b.as_mut_ptr(),
29765        &ldb,
29766        w.as_mut_ptr(),
29767        work.as_mut_ptr(),
29768        &lwork,
29769        info,
29770    )
29771}
29772
29773#[inline]
29774pub unsafe fn ssygv(
29775    itype: &[i32],
29776    jobz: u8,
29777    uplo: u8,
29778    n: i32,
29779    a: &mut [f32],
29780    lda: i32,
29781    b: &mut [f32],
29782    ldb: i32,
29783    w: &mut [f32],
29784    work: &mut [f32],
29785    lwork: i32,
29786    info: &mut i32,
29787) {
29788    ffi::ssygv_(
29789        itype.as_ptr(),
29790        &(jobz as c_char),
29791        &(uplo as c_char),
29792        &n,
29793        a.as_mut_ptr(),
29794        &lda,
29795        b.as_mut_ptr(),
29796        &ldb,
29797        w.as_mut_ptr(),
29798        work.as_mut_ptr(),
29799        &lwork,
29800        info,
29801    )
29802}
29803
29804#[inline]
29805pub unsafe fn dsygv_2stage(
29806    itype: &[i32],
29807    jobz: u8,
29808    uplo: u8,
29809    n: i32,
29810    a: &mut [f64],
29811    lda: i32,
29812    b: &mut [f64],
29813    ldb: i32,
29814    w: &mut [f64],
29815    work: &mut [f64],
29816    lwork: i32,
29817    info: &mut i32,
29818) {
29819    ffi::dsygv_2stage_(
29820        itype.as_ptr(),
29821        &(jobz as c_char),
29822        &(uplo as c_char),
29823        &n,
29824        a.as_mut_ptr(),
29825        &lda,
29826        b.as_mut_ptr(),
29827        &ldb,
29828        w.as_mut_ptr(),
29829        work.as_mut_ptr(),
29830        &lwork,
29831        info,
29832    )
29833}
29834
29835#[inline]
29836pub unsafe fn ssygv_2stage(
29837    itype: &[i32],
29838    jobz: u8,
29839    uplo: u8,
29840    n: i32,
29841    a: &mut [f32],
29842    lda: i32,
29843    b: &mut [f32],
29844    ldb: i32,
29845    w: &mut [f32],
29846    work: &mut [f32],
29847    lwork: i32,
29848    info: &mut i32,
29849) {
29850    ffi::ssygv_2stage_(
29851        itype.as_ptr(),
29852        &(jobz as c_char),
29853        &(uplo as c_char),
29854        &n,
29855        a.as_mut_ptr(),
29856        &lda,
29857        b.as_mut_ptr(),
29858        &ldb,
29859        w.as_mut_ptr(),
29860        work.as_mut_ptr(),
29861        &lwork,
29862        info,
29863    )
29864}
29865
29866#[inline]
29867pub unsafe fn dsygvd(
29868    itype: &[i32],
29869    jobz: u8,
29870    uplo: u8,
29871    n: i32,
29872    a: &mut [f64],
29873    lda: i32,
29874    b: &mut [f64],
29875    ldb: i32,
29876    w: &mut [f64],
29877    work: &mut [f64],
29878    lwork: i32,
29879    iwork: &mut [i32],
29880    liwork: i32,
29881    info: &mut i32,
29882) {
29883    ffi::dsygvd_(
29884        itype.as_ptr(),
29885        &(jobz as c_char),
29886        &(uplo as c_char),
29887        &n,
29888        a.as_mut_ptr(),
29889        &lda,
29890        b.as_mut_ptr(),
29891        &ldb,
29892        w.as_mut_ptr(),
29893        work.as_mut_ptr(),
29894        &lwork,
29895        iwork.as_mut_ptr(),
29896        &liwork,
29897        info,
29898    )
29899}
29900
29901#[inline]
29902pub unsafe fn ssygvd(
29903    itype: &[i32],
29904    jobz: u8,
29905    uplo: u8,
29906    n: i32,
29907    a: &mut [f32],
29908    lda: i32,
29909    b: &mut [f32],
29910    ldb: i32,
29911    w: &mut [f32],
29912    work: &mut [f32],
29913    lwork: i32,
29914    iwork: &mut [i32],
29915    liwork: i32,
29916    info: &mut i32,
29917) {
29918    ffi::ssygvd_(
29919        itype.as_ptr(),
29920        &(jobz as c_char),
29921        &(uplo as c_char),
29922        &n,
29923        a.as_mut_ptr(),
29924        &lda,
29925        b.as_mut_ptr(),
29926        &ldb,
29927        w.as_mut_ptr(),
29928        work.as_mut_ptr(),
29929        &lwork,
29930        iwork.as_mut_ptr(),
29931        &liwork,
29932        info,
29933    )
29934}
29935
29936#[inline]
29937pub unsafe fn dsygvx(
29938    itype: &[i32],
29939    jobz: u8,
29940    range: u8,
29941    uplo: u8,
29942    n: i32,
29943    a: &mut [f64],
29944    lda: i32,
29945    b: &mut [f64],
29946    ldb: i32,
29947    vl: f64,
29948    vu: f64,
29949    il: i32,
29950    iu: i32,
29951    abstol: f64,
29952    m: &mut i32,
29953    w: &mut [f64],
29954    z: &mut [f64],
29955    ldz: i32,
29956    work: &mut [f64],
29957    lwork: i32,
29958    iwork: &mut [i32],
29959    ifail: &mut [i32],
29960    info: &mut i32,
29961) {
29962    ffi::dsygvx_(
29963        itype.as_ptr(),
29964        &(jobz as c_char),
29965        &(range as c_char),
29966        &(uplo as c_char),
29967        &n,
29968        a.as_mut_ptr(),
29969        &lda,
29970        b.as_mut_ptr(),
29971        &ldb,
29972        &vl,
29973        &vu,
29974        &il,
29975        &iu,
29976        &abstol,
29977        m,
29978        w.as_mut_ptr(),
29979        z.as_mut_ptr(),
29980        &ldz,
29981        work.as_mut_ptr(),
29982        &lwork,
29983        iwork.as_mut_ptr(),
29984        ifail.as_mut_ptr(),
29985        info,
29986    )
29987}
29988
29989#[inline]
29990pub unsafe fn ssygvx(
29991    itype: &[i32],
29992    jobz: u8,
29993    range: u8,
29994    uplo: u8,
29995    n: i32,
29996    a: &mut [f32],
29997    lda: i32,
29998    b: &mut [f32],
29999    ldb: i32,
30000    vl: f32,
30001    vu: f32,
30002    il: i32,
30003    iu: i32,
30004    abstol: f32,
30005    m: &mut i32,
30006    w: &mut [f32],
30007    z: &mut [f32],
30008    ldz: i32,
30009    work: &mut [f32],
30010    lwork: i32,
30011    iwork: &mut [i32],
30012    ifail: &mut [i32],
30013    info: &mut i32,
30014) {
30015    ffi::ssygvx_(
30016        itype.as_ptr(),
30017        &(jobz as c_char),
30018        &(range as c_char),
30019        &(uplo as c_char),
30020        &n,
30021        a.as_mut_ptr(),
30022        &lda,
30023        b.as_mut_ptr(),
30024        &ldb,
30025        &vl,
30026        &vu,
30027        &il,
30028        &iu,
30029        &abstol,
30030        m,
30031        w.as_mut_ptr(),
30032        z.as_mut_ptr(),
30033        &ldz,
30034        work.as_mut_ptr(),
30035        &lwork,
30036        iwork.as_mut_ptr(),
30037        ifail.as_mut_ptr(),
30038        info,
30039    )
30040}
30041
30042#[inline]
30043pub unsafe fn csyr(uplo: u8, n: i32, alpha: &[c32], x: &[c32], incx: i32, a: &mut [c32], lda: i32) {
30044    ffi::csyr_(
30045        &(uplo as c_char),
30046        &n,
30047        alpha.as_ptr() as *const _,
30048        x.as_ptr() as *const _,
30049        &incx,
30050        a.as_mut_ptr() as *mut _,
30051        &lda,
30052    )
30053}
30054
30055#[inline]
30056pub unsafe fn zsyr(uplo: u8, n: i32, alpha: &[c64], x: &[c64], incx: i32, a: &mut [c64], lda: i32) {
30057    ffi::zsyr_(
30058        &(uplo as c_char),
30059        &n,
30060        alpha.as_ptr() as *const _,
30061        x.as_ptr() as *const _,
30062        &incx,
30063        a.as_mut_ptr() as *mut _,
30064        &lda,
30065    )
30066}
30067
30068#[inline]
30069pub unsafe fn csyrfs(
30070    uplo: u8,
30071    n: i32,
30072    nrhs: i32,
30073    a: &[c32],
30074    lda: i32,
30075    af: &[c32],
30076    ldaf: i32,
30077    ipiv: &[i32],
30078    b: &[c32],
30079    ldb: i32,
30080    x: &mut [c32],
30081    ldx: i32,
30082    ferr: &mut [f32],
30083    berr: &mut [f32],
30084    work: &mut [c32],
30085    rwork: &mut [f32],
30086    info: &mut i32,
30087) {
30088    ffi::csyrfs_(
30089        &(uplo as c_char),
30090        &n,
30091        &nrhs,
30092        a.as_ptr() as *const _,
30093        &lda,
30094        af.as_ptr() as *const _,
30095        &ldaf,
30096        ipiv.as_ptr(),
30097        b.as_ptr() as *const _,
30098        &ldb,
30099        x.as_mut_ptr() as *mut _,
30100        &ldx,
30101        ferr.as_mut_ptr(),
30102        berr.as_mut_ptr(),
30103        work.as_mut_ptr() as *mut _,
30104        rwork.as_mut_ptr(),
30105        info,
30106    )
30107}
30108
30109#[inline]
30110pub unsafe fn dsyrfs(
30111    uplo: u8,
30112    n: i32,
30113    nrhs: i32,
30114    a: &[f64],
30115    lda: i32,
30116    af: &[f64],
30117    ldaf: i32,
30118    ipiv: &[i32],
30119    b: &[f64],
30120    ldb: i32,
30121    x: &mut [f64],
30122    ldx: i32,
30123    ferr: &mut [f64],
30124    berr: &mut [f64],
30125    work: &mut [f64],
30126    iwork: &mut [i32],
30127    info: &mut i32,
30128) {
30129    ffi::dsyrfs_(
30130        &(uplo as c_char),
30131        &n,
30132        &nrhs,
30133        a.as_ptr(),
30134        &lda,
30135        af.as_ptr(),
30136        &ldaf,
30137        ipiv.as_ptr(),
30138        b.as_ptr(),
30139        &ldb,
30140        x.as_mut_ptr(),
30141        &ldx,
30142        ferr.as_mut_ptr(),
30143        berr.as_mut_ptr(),
30144        work.as_mut_ptr(),
30145        iwork.as_mut_ptr(),
30146        info,
30147    )
30148}
30149
30150#[inline]
30151pub unsafe fn ssyrfs(
30152    uplo: u8,
30153    n: i32,
30154    nrhs: i32,
30155    a: &[f32],
30156    lda: i32,
30157    af: &[f32],
30158    ldaf: i32,
30159    ipiv: &[i32],
30160    b: &[f32],
30161    ldb: i32,
30162    x: &mut [f32],
30163    ldx: i32,
30164    ferr: &mut [f32],
30165    berr: &mut [f32],
30166    work: &mut [f32],
30167    iwork: &mut [i32],
30168    info: &mut i32,
30169) {
30170    ffi::ssyrfs_(
30171        &(uplo as c_char),
30172        &n,
30173        &nrhs,
30174        a.as_ptr(),
30175        &lda,
30176        af.as_ptr(),
30177        &ldaf,
30178        ipiv.as_ptr(),
30179        b.as_ptr(),
30180        &ldb,
30181        x.as_mut_ptr(),
30182        &ldx,
30183        ferr.as_mut_ptr(),
30184        berr.as_mut_ptr(),
30185        work.as_mut_ptr(),
30186        iwork.as_mut_ptr(),
30187        info,
30188    )
30189}
30190
30191#[inline]
30192pub unsafe fn zsyrfs(
30193    uplo: u8,
30194    n: i32,
30195    nrhs: i32,
30196    a: &[c64],
30197    lda: i32,
30198    af: &[c64],
30199    ldaf: i32,
30200    ipiv: &[i32],
30201    b: &[c64],
30202    ldb: i32,
30203    x: &mut [c64],
30204    ldx: i32,
30205    ferr: &mut [f64],
30206    berr: &mut [f64],
30207    work: &mut [c64],
30208    rwork: &mut [f64],
30209    info: &mut i32,
30210) {
30211    ffi::zsyrfs_(
30212        &(uplo as c_char),
30213        &n,
30214        &nrhs,
30215        a.as_ptr() as *const _,
30216        &lda,
30217        af.as_ptr() as *const _,
30218        &ldaf,
30219        ipiv.as_ptr(),
30220        b.as_ptr() as *const _,
30221        &ldb,
30222        x.as_mut_ptr() as *mut _,
30223        &ldx,
30224        ferr.as_mut_ptr(),
30225        berr.as_mut_ptr(),
30226        work.as_mut_ptr() as *mut _,
30227        rwork.as_mut_ptr(),
30228        info,
30229    )
30230}
30231
30232#[inline]
30233pub unsafe fn csyrfsx(
30234    uplo: u8,
30235    equed: u8,
30236    n: i32,
30237    nrhs: i32,
30238    a: &[c32],
30239    lda: i32,
30240    af: &[c32],
30241    ldaf: i32,
30242    ipiv: &[i32],
30243    s: &mut [f32],
30244    b: &[c32],
30245    ldb: i32,
30246    x: &mut [c32],
30247    ldx: i32,
30248    rcond: &mut f32,
30249    berr: &mut [f32],
30250    n_err_bnds: i32,
30251    err_bnds_norm: &mut [f32],
30252    err_bnds_comp: &mut [f32],
30253    nparams: &[i32],
30254    params: &mut [f32],
30255    work: &mut [c32],
30256    rwork: &mut [f32],
30257    info: &mut i32,
30258) {
30259    ffi::csyrfsx_(
30260        &(uplo as c_char),
30261        &(equed as c_char),
30262        &n,
30263        &nrhs,
30264        a.as_ptr() as *const _,
30265        &lda,
30266        af.as_ptr() as *const _,
30267        &ldaf,
30268        ipiv.as_ptr(),
30269        s.as_mut_ptr(),
30270        b.as_ptr() as *const _,
30271        &ldb,
30272        x.as_mut_ptr() as *mut _,
30273        &ldx,
30274        rcond,
30275        berr.as_mut_ptr(),
30276        &n_err_bnds,
30277        err_bnds_norm.as_mut_ptr(),
30278        err_bnds_comp.as_mut_ptr(),
30279        nparams.as_ptr(),
30280        params.as_mut_ptr(),
30281        work.as_mut_ptr() as *mut _,
30282        rwork.as_mut_ptr(),
30283        info,
30284    )
30285}
30286
30287#[inline]
30288pub unsafe fn dsyrfsx(
30289    uplo: u8,
30290    equed: u8,
30291    n: i32,
30292    nrhs: i32,
30293    a: &[f64],
30294    lda: i32,
30295    af: &[f64],
30296    ldaf: i32,
30297    ipiv: &[i32],
30298    s: &mut [f64],
30299    b: &[f64],
30300    ldb: i32,
30301    x: &mut [f64],
30302    ldx: i32,
30303    rcond: &mut f64,
30304    berr: &mut [f64],
30305    n_err_bnds: i32,
30306    err_bnds_norm: &mut [f64],
30307    err_bnds_comp: &mut [f64],
30308    nparams: &[i32],
30309    params: &mut [f64],
30310    work: &mut [f64],
30311    iwork: &mut [i32],
30312    info: &mut i32,
30313) {
30314    ffi::dsyrfsx_(
30315        &(uplo as c_char),
30316        &(equed as c_char),
30317        &n,
30318        &nrhs,
30319        a.as_ptr(),
30320        &lda,
30321        af.as_ptr(),
30322        &ldaf,
30323        ipiv.as_ptr(),
30324        s.as_mut_ptr(),
30325        b.as_ptr(),
30326        &ldb,
30327        x.as_mut_ptr(),
30328        &ldx,
30329        rcond,
30330        berr.as_mut_ptr(),
30331        &n_err_bnds,
30332        err_bnds_norm.as_mut_ptr(),
30333        err_bnds_comp.as_mut_ptr(),
30334        nparams.as_ptr(),
30335        params.as_mut_ptr(),
30336        work.as_mut_ptr(),
30337        iwork.as_mut_ptr(),
30338        info,
30339    )
30340}
30341
30342#[inline]
30343pub unsafe fn ssyrfsx(
30344    uplo: u8,
30345    equed: u8,
30346    n: i32,
30347    nrhs: i32,
30348    a: &[f32],
30349    lda: i32,
30350    af: &[f32],
30351    ldaf: i32,
30352    ipiv: &[i32],
30353    s: &mut [f32],
30354    b: &[f32],
30355    ldb: i32,
30356    x: &mut [f32],
30357    ldx: i32,
30358    rcond: &mut f32,
30359    berr: &mut [f32],
30360    n_err_bnds: i32,
30361    err_bnds_norm: &mut [f32],
30362    err_bnds_comp: &mut [f32],
30363    nparams: &[i32],
30364    params: &mut [f32],
30365    work: &mut [f32],
30366    iwork: &mut [i32],
30367    info: &mut i32,
30368) {
30369    ffi::ssyrfsx_(
30370        &(uplo as c_char),
30371        &(equed as c_char),
30372        &n,
30373        &nrhs,
30374        a.as_ptr(),
30375        &lda,
30376        af.as_ptr(),
30377        &ldaf,
30378        ipiv.as_ptr(),
30379        s.as_mut_ptr(),
30380        b.as_ptr(),
30381        &ldb,
30382        x.as_mut_ptr(),
30383        &ldx,
30384        rcond,
30385        berr.as_mut_ptr(),
30386        &n_err_bnds,
30387        err_bnds_norm.as_mut_ptr(),
30388        err_bnds_comp.as_mut_ptr(),
30389        nparams.as_ptr(),
30390        params.as_mut_ptr(),
30391        work.as_mut_ptr(),
30392        iwork.as_mut_ptr(),
30393        info,
30394    )
30395}
30396
30397#[inline]
30398pub unsafe fn zsyrfsx(
30399    uplo: u8,
30400    equed: u8,
30401    n: i32,
30402    nrhs: i32,
30403    a: &[c64],
30404    lda: i32,
30405    af: &[c64],
30406    ldaf: i32,
30407    ipiv: &[i32],
30408    s: &mut [f64],
30409    b: &[c64],
30410    ldb: i32,
30411    x: &mut [c64],
30412    ldx: i32,
30413    rcond: &mut f64,
30414    berr: &mut [f64],
30415    n_err_bnds: i32,
30416    err_bnds_norm: &mut [f64],
30417    err_bnds_comp: &mut [f64],
30418    nparams: &[i32],
30419    params: &mut [f64],
30420    work: &mut [c64],
30421    rwork: &mut [f64],
30422    info: &mut i32,
30423) {
30424    ffi::zsyrfsx_(
30425        &(uplo as c_char),
30426        &(equed as c_char),
30427        &n,
30428        &nrhs,
30429        a.as_ptr() as *const _,
30430        &lda,
30431        af.as_ptr() as *const _,
30432        &ldaf,
30433        ipiv.as_ptr(),
30434        s.as_mut_ptr(),
30435        b.as_ptr() as *const _,
30436        &ldb,
30437        x.as_mut_ptr() as *mut _,
30438        &ldx,
30439        rcond,
30440        berr.as_mut_ptr(),
30441        &n_err_bnds,
30442        err_bnds_norm.as_mut_ptr(),
30443        err_bnds_comp.as_mut_ptr(),
30444        nparams.as_ptr(),
30445        params.as_mut_ptr(),
30446        work.as_mut_ptr() as *mut _,
30447        rwork.as_mut_ptr(),
30448        info,
30449    )
30450}
30451
30452#[inline]
30453pub unsafe fn csysv(
30454    uplo: u8,
30455    n: i32,
30456    nrhs: i32,
30457    a: &mut [c32],
30458    lda: i32,
30459    ipiv: &mut [i32],
30460    b: &mut [c32],
30461    ldb: i32,
30462    work: &mut [c32],
30463    lwork: i32,
30464    info: &mut i32,
30465) {
30466    ffi::csysv_(
30467        &(uplo as c_char),
30468        &n,
30469        &nrhs,
30470        a.as_mut_ptr() as *mut _,
30471        &lda,
30472        ipiv.as_mut_ptr(),
30473        b.as_mut_ptr() as *mut _,
30474        &ldb,
30475        work.as_mut_ptr() as *mut _,
30476        &lwork,
30477        info,
30478    )
30479}
30480
30481#[inline]
30482pub unsafe fn dsysv(
30483    uplo: u8,
30484    n: i32,
30485    nrhs: i32,
30486    a: &mut [f64],
30487    lda: i32,
30488    ipiv: &mut [i32],
30489    b: &mut [f64],
30490    ldb: i32,
30491    work: &mut [f64],
30492    lwork: i32,
30493    info: &mut i32,
30494) {
30495    ffi::dsysv_(
30496        &(uplo as c_char),
30497        &n,
30498        &nrhs,
30499        a.as_mut_ptr(),
30500        &lda,
30501        ipiv.as_mut_ptr(),
30502        b.as_mut_ptr(),
30503        &ldb,
30504        work.as_mut_ptr(),
30505        &lwork,
30506        info,
30507    )
30508}
30509
30510#[inline]
30511pub unsafe fn ssysv(
30512    uplo: u8,
30513    n: i32,
30514    nrhs: i32,
30515    a: &mut [f32],
30516    lda: i32,
30517    ipiv: &mut [i32],
30518    b: &mut [f32],
30519    ldb: i32,
30520    work: &mut [f32],
30521    lwork: i32,
30522    info: &mut i32,
30523) {
30524    ffi::ssysv_(
30525        &(uplo as c_char),
30526        &n,
30527        &nrhs,
30528        a.as_mut_ptr(),
30529        &lda,
30530        ipiv.as_mut_ptr(),
30531        b.as_mut_ptr(),
30532        &ldb,
30533        work.as_mut_ptr(),
30534        &lwork,
30535        info,
30536    )
30537}
30538
30539#[inline]
30540pub unsafe fn zsysv(
30541    uplo: u8,
30542    n: i32,
30543    nrhs: i32,
30544    a: &mut [c64],
30545    lda: i32,
30546    ipiv: &mut [i32],
30547    b: &mut [c64],
30548    ldb: i32,
30549    work: &mut [c64],
30550    lwork: i32,
30551    info: &mut i32,
30552) {
30553    ffi::zsysv_(
30554        &(uplo as c_char),
30555        &n,
30556        &nrhs,
30557        a.as_mut_ptr() as *mut _,
30558        &lda,
30559        ipiv.as_mut_ptr(),
30560        b.as_mut_ptr() as *mut _,
30561        &ldb,
30562        work.as_mut_ptr() as *mut _,
30563        &lwork,
30564        info,
30565    )
30566}
30567
30568#[inline]
30569pub unsafe fn csysv_aa(
30570    uplo: u8,
30571    n: i32,
30572    nrhs: i32,
30573    a: &mut [c32],
30574    lda: i32,
30575    ipiv: &mut [i32],
30576    b: &mut [c32],
30577    ldb: i32,
30578    work: &mut [c32],
30579    lwork: i32,
30580    info: &mut i32,
30581) {
30582    ffi::csysv_aa_(
30583        &(uplo as c_char),
30584        &n,
30585        &nrhs,
30586        a.as_mut_ptr() as *mut _,
30587        &lda,
30588        ipiv.as_mut_ptr(),
30589        b.as_mut_ptr() as *mut _,
30590        &ldb,
30591        work.as_mut_ptr() as *mut _,
30592        &lwork,
30593        info,
30594    )
30595}
30596
30597#[inline]
30598pub unsafe fn dsysv_aa(
30599    uplo: u8,
30600    n: i32,
30601    nrhs: i32,
30602    a: &mut [f64],
30603    lda: i32,
30604    ipiv: &mut [i32],
30605    b: &mut [f64],
30606    ldb: i32,
30607    work: &mut [f64],
30608    lwork: i32,
30609    info: &mut i32,
30610) {
30611    ffi::dsysv_aa_(
30612        &(uplo as c_char),
30613        &n,
30614        &nrhs,
30615        a.as_mut_ptr(),
30616        &lda,
30617        ipiv.as_mut_ptr(),
30618        b.as_mut_ptr(),
30619        &ldb,
30620        work.as_mut_ptr(),
30621        &lwork,
30622        info,
30623    )
30624}
30625
30626#[inline]
30627pub unsafe fn ssysv_aa(
30628    uplo: u8,
30629    n: i32,
30630    nrhs: i32,
30631    a: &mut [f32],
30632    lda: i32,
30633    ipiv: &mut [i32],
30634    b: &mut [f32],
30635    ldb: i32,
30636    work: &mut [f32],
30637    lwork: i32,
30638    info: &mut i32,
30639) {
30640    ffi::ssysv_aa_(
30641        &(uplo as c_char),
30642        &n,
30643        &nrhs,
30644        a.as_mut_ptr(),
30645        &lda,
30646        ipiv.as_mut_ptr(),
30647        b.as_mut_ptr(),
30648        &ldb,
30649        work.as_mut_ptr(),
30650        &lwork,
30651        info,
30652    )
30653}
30654
30655#[inline]
30656pub unsafe fn zsysv_aa(
30657    uplo: u8,
30658    n: i32,
30659    nrhs: i32,
30660    a: &mut [c64],
30661    lda: i32,
30662    ipiv: &mut [i32],
30663    b: &mut [c64],
30664    ldb: i32,
30665    work: &mut [c64],
30666    lwork: i32,
30667    info: &mut i32,
30668) {
30669    ffi::zsysv_aa_(
30670        &(uplo as c_char),
30671        &n,
30672        &nrhs,
30673        a.as_mut_ptr() as *mut _,
30674        &lda,
30675        ipiv.as_mut_ptr(),
30676        b.as_mut_ptr() as *mut _,
30677        &ldb,
30678        work.as_mut_ptr() as *mut _,
30679        &lwork,
30680        info,
30681    )
30682}
30683
30684#[inline]
30685pub unsafe fn csysv_aa_2stage(
30686    uplo: u8,
30687    n: i32,
30688    nrhs: i32,
30689    a: &mut [c32],
30690    lda: i32,
30691    tb: &mut [c32],
30692    ltb: &[i32],
30693    ipiv: &mut [i32],
30694    ipiv2: &mut [i32],
30695    b: &mut [c32],
30696    ldb: i32,
30697    work: &mut [c32],
30698    lwork: i32,
30699    info: &mut i32,
30700) {
30701    ffi::csysv_aa_2stage_(
30702        &(uplo as c_char),
30703        &n,
30704        &nrhs,
30705        a.as_mut_ptr() as *mut _,
30706        &lda,
30707        tb.as_mut_ptr() as *mut _,
30708        ltb.as_ptr(),
30709        ipiv.as_mut_ptr(),
30710        ipiv2.as_mut_ptr(),
30711        b.as_mut_ptr() as *mut _,
30712        &ldb,
30713        work.as_mut_ptr() as *mut _,
30714        &lwork,
30715        info,
30716    )
30717}
30718
30719#[inline]
30720pub unsafe fn dsysv_aa_2stage(
30721    uplo: u8,
30722    n: i32,
30723    nrhs: i32,
30724    a: &mut [f64],
30725    lda: i32,
30726    tb: &mut [f64],
30727    ltb: &[i32],
30728    ipiv: &mut [i32],
30729    ipiv2: &mut [i32],
30730    b: &mut [f64],
30731    ldb: i32,
30732    work: &mut [f64],
30733    lwork: i32,
30734    info: &mut i32,
30735) {
30736    ffi::dsysv_aa_2stage_(
30737        &(uplo as c_char),
30738        &n,
30739        &nrhs,
30740        a.as_mut_ptr(),
30741        &lda,
30742        tb.as_mut_ptr(),
30743        ltb.as_ptr(),
30744        ipiv.as_mut_ptr(),
30745        ipiv2.as_mut_ptr(),
30746        b.as_mut_ptr(),
30747        &ldb,
30748        work.as_mut_ptr(),
30749        &lwork,
30750        info,
30751    )
30752}
30753
30754#[inline]
30755pub unsafe fn ssysv_aa_2stage(
30756    uplo: u8,
30757    n: i32,
30758    nrhs: i32,
30759    a: &mut [f32],
30760    lda: i32,
30761    tb: &mut [f32],
30762    ltb: &[i32],
30763    ipiv: &mut [i32],
30764    ipiv2: &mut [i32],
30765    b: &mut [f32],
30766    ldb: i32,
30767    work: &mut [f32],
30768    lwork: i32,
30769    info: &mut i32,
30770) {
30771    ffi::ssysv_aa_2stage_(
30772        &(uplo as c_char),
30773        &n,
30774        &nrhs,
30775        a.as_mut_ptr(),
30776        &lda,
30777        tb.as_mut_ptr(),
30778        ltb.as_ptr(),
30779        ipiv.as_mut_ptr(),
30780        ipiv2.as_mut_ptr(),
30781        b.as_mut_ptr(),
30782        &ldb,
30783        work.as_mut_ptr(),
30784        &lwork,
30785        info,
30786    )
30787}
30788
30789#[inline]
30790pub unsafe fn zsysv_aa_2stage(
30791    uplo: u8,
30792    n: i32,
30793    nrhs: i32,
30794    a: &mut [c64],
30795    lda: i32,
30796    tb: &mut [c64],
30797    ltb: &[i32],
30798    ipiv: &mut [i32],
30799    ipiv2: &mut [i32],
30800    b: &mut [c64],
30801    ldb: i32,
30802    work: &mut [c64],
30803    lwork: i32,
30804    info: &mut i32,
30805) {
30806    ffi::zsysv_aa_2stage_(
30807        &(uplo as c_char),
30808        &n,
30809        &nrhs,
30810        a.as_mut_ptr() as *mut _,
30811        &lda,
30812        tb.as_mut_ptr() as *mut _,
30813        ltb.as_ptr(),
30814        ipiv.as_mut_ptr(),
30815        ipiv2.as_mut_ptr(),
30816        b.as_mut_ptr() as *mut _,
30817        &ldb,
30818        work.as_mut_ptr() as *mut _,
30819        &lwork,
30820        info,
30821    )
30822}
30823
30824#[inline]
30825pub unsafe fn csysv_rk(
30826    uplo: u8,
30827    n: i32,
30828    nrhs: i32,
30829    a: &mut [c32],
30830    lda: i32,
30831    e: &mut [c32],
30832    ipiv: &mut [i32],
30833    b: &mut [c32],
30834    ldb: i32,
30835    work: &mut [c32],
30836    lwork: i32,
30837    info: &mut i32,
30838) {
30839    ffi::csysv_rk_(
30840        &(uplo as c_char),
30841        &n,
30842        &nrhs,
30843        a.as_mut_ptr() as *mut _,
30844        &lda,
30845        e.as_mut_ptr() as *mut _,
30846        ipiv.as_mut_ptr(),
30847        b.as_mut_ptr() as *mut _,
30848        &ldb,
30849        work.as_mut_ptr() as *mut _,
30850        &lwork,
30851        info,
30852    )
30853}
30854
30855#[inline]
30856pub unsafe fn dsysv_rk(
30857    uplo: u8,
30858    n: i32,
30859    nrhs: i32,
30860    a: &mut [f64],
30861    lda: i32,
30862    e: &mut [f64],
30863    ipiv: &mut [i32],
30864    b: &mut [f64],
30865    ldb: i32,
30866    work: &mut [f64],
30867    lwork: i32,
30868    info: &mut i32,
30869) {
30870    ffi::dsysv_rk_(
30871        &(uplo as c_char),
30872        &n,
30873        &nrhs,
30874        a.as_mut_ptr(),
30875        &lda,
30876        e.as_mut_ptr(),
30877        ipiv.as_mut_ptr(),
30878        b.as_mut_ptr(),
30879        &ldb,
30880        work.as_mut_ptr(),
30881        &lwork,
30882        info,
30883    )
30884}
30885
30886#[inline]
30887pub unsafe fn ssysv_rk(
30888    uplo: u8,
30889    n: i32,
30890    nrhs: i32,
30891    a: &mut [f32],
30892    lda: i32,
30893    e: &mut [f32],
30894    ipiv: &mut [i32],
30895    b: &mut [f32],
30896    ldb: i32,
30897    work: &mut [f32],
30898    lwork: i32,
30899    info: &mut i32,
30900) {
30901    ffi::ssysv_rk_(
30902        &(uplo as c_char),
30903        &n,
30904        &nrhs,
30905        a.as_mut_ptr(),
30906        &lda,
30907        e.as_mut_ptr(),
30908        ipiv.as_mut_ptr(),
30909        b.as_mut_ptr(),
30910        &ldb,
30911        work.as_mut_ptr(),
30912        &lwork,
30913        info,
30914    )
30915}
30916
30917#[inline]
30918pub unsafe fn zsysv_rk(
30919    uplo: u8,
30920    n: i32,
30921    nrhs: i32,
30922    a: &mut [c64],
30923    lda: i32,
30924    e: &mut [c64],
30925    ipiv: &mut [i32],
30926    b: &mut [c64],
30927    ldb: i32,
30928    work: &mut [c64],
30929    lwork: i32,
30930    info: &mut i32,
30931) {
30932    ffi::zsysv_rk_(
30933        &(uplo as c_char),
30934        &n,
30935        &nrhs,
30936        a.as_mut_ptr() as *mut _,
30937        &lda,
30938        e.as_mut_ptr() as *mut _,
30939        ipiv.as_mut_ptr(),
30940        b.as_mut_ptr() as *mut _,
30941        &ldb,
30942        work.as_mut_ptr() as *mut _,
30943        &lwork,
30944        info,
30945    )
30946}
30947
30948#[inline]
30949pub unsafe fn csysv_rook(
30950    uplo: u8,
30951    n: i32,
30952    nrhs: i32,
30953    a: &mut [c32],
30954    lda: i32,
30955    ipiv: &mut [i32],
30956    b: &mut [c32],
30957    ldb: i32,
30958    work: &mut [c32],
30959    lwork: i32,
30960    info: &mut i32,
30961) {
30962    ffi::csysv_rook_(
30963        &(uplo as c_char),
30964        &n,
30965        &nrhs,
30966        a.as_mut_ptr() as *mut _,
30967        &lda,
30968        ipiv.as_mut_ptr(),
30969        b.as_mut_ptr() as *mut _,
30970        &ldb,
30971        work.as_mut_ptr() as *mut _,
30972        &lwork,
30973        info,
30974    )
30975}
30976
30977#[inline]
30978pub unsafe fn dsysv_rook(
30979    uplo: u8,
30980    n: i32,
30981    nrhs: i32,
30982    a: &mut [f64],
30983    lda: i32,
30984    ipiv: &mut [i32],
30985    b: &mut [f64],
30986    ldb: i32,
30987    work: &mut [f64],
30988    lwork: i32,
30989    info: &mut i32,
30990) {
30991    ffi::dsysv_rook_(
30992        &(uplo as c_char),
30993        &n,
30994        &nrhs,
30995        a.as_mut_ptr(),
30996        &lda,
30997        ipiv.as_mut_ptr(),
30998        b.as_mut_ptr(),
30999        &ldb,
31000        work.as_mut_ptr(),
31001        &lwork,
31002        info,
31003    )
31004}
31005
31006#[inline]
31007pub unsafe fn ssysv_rook(
31008    uplo: u8,
31009    n: i32,
31010    nrhs: i32,
31011    a: &mut [f32],
31012    lda: i32,
31013    ipiv: &mut [i32],
31014    b: &mut [f32],
31015    ldb: i32,
31016    work: &mut [f32],
31017    lwork: i32,
31018    info: &mut i32,
31019) {
31020    ffi::ssysv_rook_(
31021        &(uplo as c_char),
31022        &n,
31023        &nrhs,
31024        a.as_mut_ptr(),
31025        &lda,
31026        ipiv.as_mut_ptr(),
31027        b.as_mut_ptr(),
31028        &ldb,
31029        work.as_mut_ptr(),
31030        &lwork,
31031        info,
31032    )
31033}
31034
31035#[inline]
31036pub unsafe fn zsysv_rook(
31037    uplo: u8,
31038    n: i32,
31039    nrhs: i32,
31040    a: &mut [c64],
31041    lda: i32,
31042    ipiv: &mut [i32],
31043    b: &mut [c64],
31044    ldb: i32,
31045    work: &mut [c64],
31046    lwork: i32,
31047    info: &mut i32,
31048) {
31049    ffi::zsysv_rook_(
31050        &(uplo as c_char),
31051        &n,
31052        &nrhs,
31053        a.as_mut_ptr() as *mut _,
31054        &lda,
31055        ipiv.as_mut_ptr(),
31056        b.as_mut_ptr() as *mut _,
31057        &ldb,
31058        work.as_mut_ptr() as *mut _,
31059        &lwork,
31060        info,
31061    )
31062}
31063
31064#[inline]
31065pub unsafe fn csysvx(
31066    fact: u8,
31067    uplo: u8,
31068    n: i32,
31069    nrhs: i32,
31070    a: &[c32],
31071    lda: i32,
31072    af: &mut [c32],
31073    ldaf: i32,
31074    ipiv: &mut [i32],
31075    b: &[c32],
31076    ldb: i32,
31077    x: &mut [c32],
31078    ldx: i32,
31079    rcond: &mut f32,
31080    ferr: &mut [f32],
31081    berr: &mut [f32],
31082    work: &mut [c32],
31083    lwork: i32,
31084    rwork: &mut [f32],
31085    info: &mut i32,
31086) {
31087    ffi::csysvx_(
31088        &(fact as c_char),
31089        &(uplo as c_char),
31090        &n,
31091        &nrhs,
31092        a.as_ptr() as *const _,
31093        &lda,
31094        af.as_mut_ptr() as *mut _,
31095        &ldaf,
31096        ipiv.as_mut_ptr(),
31097        b.as_ptr() as *const _,
31098        &ldb,
31099        x.as_mut_ptr() as *mut _,
31100        &ldx,
31101        rcond,
31102        ferr.as_mut_ptr(),
31103        berr.as_mut_ptr(),
31104        work.as_mut_ptr() as *mut _,
31105        &lwork,
31106        rwork.as_mut_ptr(),
31107        info,
31108    )
31109}
31110
31111#[inline]
31112pub unsafe fn dsysvx(
31113    fact: u8,
31114    uplo: u8,
31115    n: i32,
31116    nrhs: i32,
31117    a: &[f64],
31118    lda: i32,
31119    af: &mut [f64],
31120    ldaf: i32,
31121    ipiv: &mut [i32],
31122    b: &[f64],
31123    ldb: i32,
31124    x: &mut [f64],
31125    ldx: i32,
31126    rcond: &mut f64,
31127    ferr: &mut [f64],
31128    berr: &mut [f64],
31129    work: &mut [f64],
31130    lwork: i32,
31131    iwork: &mut [i32],
31132    info: &mut i32,
31133) {
31134    ffi::dsysvx_(
31135        &(fact as c_char),
31136        &(uplo as c_char),
31137        &n,
31138        &nrhs,
31139        a.as_ptr(),
31140        &lda,
31141        af.as_mut_ptr(),
31142        &ldaf,
31143        ipiv.as_mut_ptr(),
31144        b.as_ptr(),
31145        &ldb,
31146        x.as_mut_ptr(),
31147        &ldx,
31148        rcond,
31149        ferr.as_mut_ptr(),
31150        berr.as_mut_ptr(),
31151        work.as_mut_ptr(),
31152        &lwork,
31153        iwork.as_mut_ptr(),
31154        info,
31155    )
31156}
31157
31158#[inline]
31159pub unsafe fn ssysvx(
31160    fact: u8,
31161    uplo: u8,
31162    n: i32,
31163    nrhs: i32,
31164    a: &[f32],
31165    lda: i32,
31166    af: &mut [f32],
31167    ldaf: i32,
31168    ipiv: &mut [i32],
31169    b: &[f32],
31170    ldb: i32,
31171    x: &mut [f32],
31172    ldx: i32,
31173    rcond: &mut f32,
31174    ferr: &mut [f32],
31175    berr: &mut [f32],
31176    work: &mut [f32],
31177    lwork: i32,
31178    iwork: &mut [i32],
31179    info: &mut i32,
31180) {
31181    ffi::ssysvx_(
31182        &(fact as c_char),
31183        &(uplo as c_char),
31184        &n,
31185        &nrhs,
31186        a.as_ptr(),
31187        &lda,
31188        af.as_mut_ptr(),
31189        &ldaf,
31190        ipiv.as_mut_ptr(),
31191        b.as_ptr(),
31192        &ldb,
31193        x.as_mut_ptr(),
31194        &ldx,
31195        rcond,
31196        ferr.as_mut_ptr(),
31197        berr.as_mut_ptr(),
31198        work.as_mut_ptr(),
31199        &lwork,
31200        iwork.as_mut_ptr(),
31201        info,
31202    )
31203}
31204
31205#[inline]
31206pub unsafe fn zsysvx(
31207    fact: u8,
31208    uplo: u8,
31209    n: i32,
31210    nrhs: i32,
31211    a: &[c64],
31212    lda: i32,
31213    af: &mut [c64],
31214    ldaf: i32,
31215    ipiv: &mut [i32],
31216    b: &[c64],
31217    ldb: i32,
31218    x: &mut [c64],
31219    ldx: i32,
31220    rcond: &mut f64,
31221    ferr: &mut [f64],
31222    berr: &mut [f64],
31223    work: &mut [c64],
31224    lwork: i32,
31225    rwork: &mut [f64],
31226    info: &mut i32,
31227) {
31228    ffi::zsysvx_(
31229        &(fact as c_char),
31230        &(uplo as c_char),
31231        &n,
31232        &nrhs,
31233        a.as_ptr() as *const _,
31234        &lda,
31235        af.as_mut_ptr() as *mut _,
31236        &ldaf,
31237        ipiv.as_mut_ptr(),
31238        b.as_ptr() as *const _,
31239        &ldb,
31240        x.as_mut_ptr() as *mut _,
31241        &ldx,
31242        rcond,
31243        ferr.as_mut_ptr(),
31244        berr.as_mut_ptr(),
31245        work.as_mut_ptr() as *mut _,
31246        &lwork,
31247        rwork.as_mut_ptr(),
31248        info,
31249    )
31250}
31251
31252#[inline]
31253pub unsafe fn csysvxx(
31254    fact: u8,
31255    uplo: u8,
31256    n: i32,
31257    nrhs: i32,
31258    a: &mut [c32],
31259    lda: i32,
31260    af: &mut [c32],
31261    ldaf: i32,
31262    ipiv: &mut [i32],
31263    equed: &mut u8,
31264    s: &mut [f32],
31265    b: &mut [c32],
31266    ldb: i32,
31267    x: &mut [c32],
31268    ldx: i32,
31269    rcond: &mut f32,
31270    rpvgrw: &mut f32,
31271    berr: &mut [f32],
31272    n_err_bnds: i32,
31273    err_bnds_norm: &mut [f32],
31274    err_bnds_comp: &mut [f32],
31275    nparams: &[i32],
31276    params: &mut [f32],
31277    work: &mut [c32],
31278    rwork: &mut [f32],
31279    info: &mut i32,
31280) {
31281    ffi::csysvxx_(
31282        &(fact as c_char),
31283        &(uplo as c_char),
31284        &n,
31285        &nrhs,
31286        a.as_mut_ptr() as *mut _,
31287        &lda,
31288        af.as_mut_ptr() as *mut _,
31289        &ldaf,
31290        ipiv.as_mut_ptr(),
31291        equed as *mut _ as *mut _,
31292        s.as_mut_ptr(),
31293        b.as_mut_ptr() as *mut _,
31294        &ldb,
31295        x.as_mut_ptr() as *mut _,
31296        &ldx,
31297        rcond,
31298        rpvgrw,
31299        berr.as_mut_ptr(),
31300        &n_err_bnds,
31301        err_bnds_norm.as_mut_ptr(),
31302        err_bnds_comp.as_mut_ptr(),
31303        nparams.as_ptr(),
31304        params.as_mut_ptr(),
31305        work.as_mut_ptr() as *mut _,
31306        rwork.as_mut_ptr(),
31307        info,
31308    )
31309}
31310
31311#[inline]
31312pub unsafe fn dsysvxx(
31313    fact: u8,
31314    uplo: u8,
31315    n: i32,
31316    nrhs: i32,
31317    a: &mut [f64],
31318    lda: i32,
31319    af: &mut [f64],
31320    ldaf: i32,
31321    ipiv: &mut [i32],
31322    equed: &mut u8,
31323    s: &mut [f64],
31324    b: &mut [f64],
31325    ldb: i32,
31326    x: &mut [f64],
31327    ldx: i32,
31328    rcond: &mut f64,
31329    rpvgrw: &mut f64,
31330    berr: &mut [f64],
31331    n_err_bnds: i32,
31332    err_bnds_norm: &mut [f64],
31333    err_bnds_comp: &mut [f64],
31334    nparams: &[i32],
31335    params: &mut [f64],
31336    work: &mut [f64],
31337    iwork: &mut [i32],
31338    info: &mut i32,
31339) {
31340    ffi::dsysvxx_(
31341        &(fact as c_char),
31342        &(uplo as c_char),
31343        &n,
31344        &nrhs,
31345        a.as_mut_ptr(),
31346        &lda,
31347        af.as_mut_ptr(),
31348        &ldaf,
31349        ipiv.as_mut_ptr(),
31350        equed as *mut _ as *mut _,
31351        s.as_mut_ptr(),
31352        b.as_mut_ptr(),
31353        &ldb,
31354        x.as_mut_ptr(),
31355        &ldx,
31356        rcond,
31357        rpvgrw,
31358        berr.as_mut_ptr(),
31359        &n_err_bnds,
31360        err_bnds_norm.as_mut_ptr(),
31361        err_bnds_comp.as_mut_ptr(),
31362        nparams.as_ptr(),
31363        params.as_mut_ptr(),
31364        work.as_mut_ptr(),
31365        iwork.as_mut_ptr(),
31366        info,
31367    )
31368}
31369
31370#[inline]
31371pub unsafe fn ssysvxx(
31372    fact: u8,
31373    uplo: u8,
31374    n: i32,
31375    nrhs: i32,
31376    a: &mut [f32],
31377    lda: i32,
31378    af: &mut [f32],
31379    ldaf: i32,
31380    ipiv: &mut [i32],
31381    equed: &mut u8,
31382    s: &mut [f32],
31383    b: &mut [f32],
31384    ldb: i32,
31385    x: &mut [f32],
31386    ldx: i32,
31387    rcond: &mut f32,
31388    rpvgrw: &mut f32,
31389    berr: &mut [f32],
31390    n_err_bnds: i32,
31391    err_bnds_norm: &mut [f32],
31392    err_bnds_comp: &mut [f32],
31393    nparams: &[i32],
31394    params: &mut [f32],
31395    work: &mut [f32],
31396    iwork: &mut [i32],
31397    info: &mut i32,
31398) {
31399    ffi::ssysvxx_(
31400        &(fact as c_char),
31401        &(uplo as c_char),
31402        &n,
31403        &nrhs,
31404        a.as_mut_ptr(),
31405        &lda,
31406        af.as_mut_ptr(),
31407        &ldaf,
31408        ipiv.as_mut_ptr(),
31409        equed as *mut _ as *mut _,
31410        s.as_mut_ptr(),
31411        b.as_mut_ptr(),
31412        &ldb,
31413        x.as_mut_ptr(),
31414        &ldx,
31415        rcond,
31416        rpvgrw,
31417        berr.as_mut_ptr(),
31418        &n_err_bnds,
31419        err_bnds_norm.as_mut_ptr(),
31420        err_bnds_comp.as_mut_ptr(),
31421        nparams.as_ptr(),
31422        params.as_mut_ptr(),
31423        work.as_mut_ptr(),
31424        iwork.as_mut_ptr(),
31425        info,
31426    )
31427}
31428
31429#[inline]
31430pub unsafe fn zsysvxx(
31431    fact: u8,
31432    uplo: u8,
31433    n: i32,
31434    nrhs: i32,
31435    a: &mut [c64],
31436    lda: i32,
31437    af: &mut [c64],
31438    ldaf: i32,
31439    ipiv: &mut [i32],
31440    equed: &mut u8,
31441    s: &mut [f64],
31442    b: &mut [c64],
31443    ldb: i32,
31444    x: &mut [c64],
31445    ldx: i32,
31446    rcond: &mut f64,
31447    rpvgrw: &mut f64,
31448    berr: &mut [f64],
31449    n_err_bnds: i32,
31450    err_bnds_norm: &mut [f64],
31451    err_bnds_comp: &mut [f64],
31452    nparams: &[i32],
31453    params: &mut [f64],
31454    work: &mut [c64],
31455    rwork: &mut [f64],
31456    info: &mut i32,
31457) {
31458    ffi::zsysvxx_(
31459        &(fact as c_char),
31460        &(uplo as c_char),
31461        &n,
31462        &nrhs,
31463        a.as_mut_ptr() as *mut _,
31464        &lda,
31465        af.as_mut_ptr() as *mut _,
31466        &ldaf,
31467        ipiv.as_mut_ptr(),
31468        equed as *mut _ as *mut _,
31469        s.as_mut_ptr(),
31470        b.as_mut_ptr() as *mut _,
31471        &ldb,
31472        x.as_mut_ptr() as *mut _,
31473        &ldx,
31474        rcond,
31475        rpvgrw,
31476        berr.as_mut_ptr(),
31477        &n_err_bnds,
31478        err_bnds_norm.as_mut_ptr(),
31479        err_bnds_comp.as_mut_ptr(),
31480        nparams.as_ptr(),
31481        params.as_mut_ptr(),
31482        work.as_mut_ptr() as *mut _,
31483        rwork.as_mut_ptr(),
31484        info,
31485    )
31486}
31487
31488#[inline]
31489pub unsafe fn csyswapr(uplo: u8, n: i32, a: &mut [c32], lda: i32, i1: &[i32], i2: &[i32]) {
31490    ffi::csyswapr_(
31491        &(uplo as c_char),
31492        &n,
31493        a.as_mut_ptr() as *mut _,
31494        &lda,
31495        i1.as_ptr(),
31496        i2.as_ptr(),
31497    )
31498}
31499
31500#[inline]
31501pub unsafe fn dsyswapr(uplo: u8, n: i32, a: &mut [f64], lda: i32, i1: &[i32], i2: &[i32]) {
31502    ffi::dsyswapr_(
31503        &(uplo as c_char),
31504        &n,
31505        a.as_mut_ptr(),
31506        &lda,
31507        i1.as_ptr(),
31508        i2.as_ptr(),
31509    )
31510}
31511
31512#[inline]
31513pub unsafe fn ssyswapr(uplo: u8, n: i32, a: &mut [f32], lda: i32, i1: &[i32], i2: &[i32]) {
31514    ffi::ssyswapr_(
31515        &(uplo as c_char),
31516        &n,
31517        a.as_mut_ptr(),
31518        &lda,
31519        i1.as_ptr(),
31520        i2.as_ptr(),
31521    )
31522}
31523
31524#[inline]
31525pub unsafe fn zsyswapr(uplo: u8, n: i32, a: &mut [c64], lda: i32, i1: &[i32], i2: &[i32]) {
31526    ffi::zsyswapr_(
31527        &(uplo as c_char),
31528        &n,
31529        a.as_mut_ptr() as *mut _,
31530        &lda,
31531        i1.as_ptr(),
31532        i2.as_ptr(),
31533    )
31534}
31535
31536#[inline]
31537pub unsafe fn dsytrd(
31538    uplo: u8,
31539    n: i32,
31540    a: &mut [f64],
31541    lda: i32,
31542    d: &mut [f64],
31543    e: &mut [f64],
31544    tau: &mut [f64],
31545    work: &mut [f64],
31546    lwork: i32,
31547    info: &mut i32,
31548) {
31549    ffi::dsytrd_(
31550        &(uplo as c_char),
31551        &n,
31552        a.as_mut_ptr(),
31553        &lda,
31554        d.as_mut_ptr(),
31555        e.as_mut_ptr(),
31556        tau.as_mut_ptr(),
31557        work.as_mut_ptr(),
31558        &lwork,
31559        info,
31560    )
31561}
31562
31563#[inline]
31564pub unsafe fn ssytrd(
31565    uplo: u8,
31566    n: i32,
31567    a: &mut [f32],
31568    lda: i32,
31569    d: &mut [f32],
31570    e: &mut [f32],
31571    tau: &mut [f32],
31572    work: &mut [f32],
31573    lwork: i32,
31574    info: &mut i32,
31575) {
31576    ffi::ssytrd_(
31577        &(uplo as c_char),
31578        &n,
31579        a.as_mut_ptr(),
31580        &lda,
31581        d.as_mut_ptr(),
31582        e.as_mut_ptr(),
31583        tau.as_mut_ptr(),
31584        work.as_mut_ptr(),
31585        &lwork,
31586        info,
31587    )
31588}
31589
31590#[inline]
31591pub unsafe fn dsytrd_2stage(
31592    vect: u8,
31593    uplo: u8,
31594    n: i32,
31595    a: &mut [f64],
31596    lda: i32,
31597    d: &mut [f64],
31598    e: &mut [f64],
31599    tau: &mut [f64],
31600    hous2: &mut [f64],
31601    lhous2: &[i32],
31602    work: &mut [f64],
31603    lwork: i32,
31604    info: &mut i32,
31605) {
31606    ffi::dsytrd_2stage_(
31607        &(vect as c_char),
31608        &(uplo as c_char),
31609        &n,
31610        a.as_mut_ptr(),
31611        &lda,
31612        d.as_mut_ptr(),
31613        e.as_mut_ptr(),
31614        tau.as_mut_ptr(),
31615        hous2.as_mut_ptr(),
31616        lhous2.as_ptr(),
31617        work.as_mut_ptr(),
31618        &lwork,
31619        info,
31620    )
31621}
31622
31623#[inline]
31624pub unsafe fn ssytrd_2stage(
31625    vect: u8,
31626    uplo: u8,
31627    n: i32,
31628    a: &mut [f32],
31629    lda: i32,
31630    d: &mut [f32],
31631    e: &mut [f32],
31632    tau: &mut [f32],
31633    hous2: &mut [f32],
31634    lhous2: &[i32],
31635    work: &mut [f32],
31636    lwork: i32,
31637    info: &mut i32,
31638) {
31639    ffi::ssytrd_2stage_(
31640        &(vect as c_char),
31641        &(uplo as c_char),
31642        &n,
31643        a.as_mut_ptr(),
31644        &lda,
31645        d.as_mut_ptr(),
31646        e.as_mut_ptr(),
31647        tau.as_mut_ptr(),
31648        hous2.as_mut_ptr(),
31649        lhous2.as_ptr(),
31650        work.as_mut_ptr(),
31651        &lwork,
31652        info,
31653    )
31654}
31655
31656#[inline]
31657pub unsafe fn csytrf(
31658    uplo: u8,
31659    n: i32,
31660    a: &mut [c32],
31661    lda: i32,
31662    ipiv: &mut [i32],
31663    work: &mut [c32],
31664    lwork: i32,
31665    info: &mut i32,
31666) {
31667    ffi::csytrf_(
31668        &(uplo as c_char),
31669        &n,
31670        a.as_mut_ptr() as *mut _,
31671        &lda,
31672        ipiv.as_mut_ptr(),
31673        work.as_mut_ptr() as *mut _,
31674        &lwork,
31675        info,
31676    )
31677}
31678
31679#[inline]
31680pub unsafe fn dsytrf(
31681    uplo: u8,
31682    n: i32,
31683    a: &mut [f64],
31684    lda: i32,
31685    ipiv: &mut [i32],
31686    work: &mut [f64],
31687    lwork: i32,
31688    info: &mut i32,
31689) {
31690    ffi::dsytrf_(
31691        &(uplo as c_char),
31692        &n,
31693        a.as_mut_ptr(),
31694        &lda,
31695        ipiv.as_mut_ptr(),
31696        work.as_mut_ptr(),
31697        &lwork,
31698        info,
31699    )
31700}
31701
31702#[inline]
31703pub unsafe fn ssytrf(
31704    uplo: u8,
31705    n: i32,
31706    a: &mut [f32],
31707    lda: i32,
31708    ipiv: &mut [i32],
31709    work: &mut [f32],
31710    lwork: i32,
31711    info: &mut i32,
31712) {
31713    ffi::ssytrf_(
31714        &(uplo as c_char),
31715        &n,
31716        a.as_mut_ptr(),
31717        &lda,
31718        ipiv.as_mut_ptr(),
31719        work.as_mut_ptr(),
31720        &lwork,
31721        info,
31722    )
31723}
31724
31725#[inline]
31726pub unsafe fn zsytrf(
31727    uplo: u8,
31728    n: i32,
31729    a: &mut [c64],
31730    lda: i32,
31731    ipiv: &mut [i32],
31732    work: &mut [c64],
31733    lwork: i32,
31734    info: &mut i32,
31735) {
31736    ffi::zsytrf_(
31737        &(uplo as c_char),
31738        &n,
31739        a.as_mut_ptr() as *mut _,
31740        &lda,
31741        ipiv.as_mut_ptr(),
31742        work.as_mut_ptr() as *mut _,
31743        &lwork,
31744        info,
31745    )
31746}
31747
31748#[inline]
31749pub unsafe fn csytrf_aa(
31750    uplo: u8,
31751    n: i32,
31752    a: &mut [c32],
31753    lda: i32,
31754    ipiv: &mut [i32],
31755    work: &mut [c32],
31756    lwork: i32,
31757    info: &mut i32,
31758) {
31759    ffi::csytrf_aa_(
31760        &(uplo as c_char),
31761        &n,
31762        a.as_mut_ptr() as *mut _,
31763        &lda,
31764        ipiv.as_mut_ptr(),
31765        work.as_mut_ptr() as *mut _,
31766        &lwork,
31767        info,
31768    )
31769}
31770
31771#[inline]
31772pub unsafe fn dsytrf_aa(
31773    uplo: u8,
31774    n: i32,
31775    a: &mut [f64],
31776    lda: i32,
31777    ipiv: &mut [i32],
31778    work: &mut [f64],
31779    lwork: i32,
31780    info: &mut i32,
31781) {
31782    ffi::dsytrf_aa_(
31783        &(uplo as c_char),
31784        &n,
31785        a.as_mut_ptr(),
31786        &lda,
31787        ipiv.as_mut_ptr(),
31788        work.as_mut_ptr(),
31789        &lwork,
31790        info,
31791    )
31792}
31793
31794#[inline]
31795pub unsafe fn ssytrf_aa(
31796    uplo: u8,
31797    n: i32,
31798    a: &mut [f32],
31799    lda: i32,
31800    ipiv: &mut [i32],
31801    work: &mut [f32],
31802    lwork: i32,
31803    info: &mut i32,
31804) {
31805    ffi::ssytrf_aa_(
31806        &(uplo as c_char),
31807        &n,
31808        a.as_mut_ptr(),
31809        &lda,
31810        ipiv.as_mut_ptr(),
31811        work.as_mut_ptr(),
31812        &lwork,
31813        info,
31814    )
31815}
31816
31817#[inline]
31818pub unsafe fn zsytrf_aa(
31819    uplo: u8,
31820    n: i32,
31821    a: &mut [c64],
31822    lda: i32,
31823    ipiv: &mut [i32],
31824    work: &mut [c64],
31825    lwork: i32,
31826    info: &mut i32,
31827) {
31828    ffi::zsytrf_aa_(
31829        &(uplo as c_char),
31830        &n,
31831        a.as_mut_ptr() as *mut _,
31832        &lda,
31833        ipiv.as_mut_ptr(),
31834        work.as_mut_ptr() as *mut _,
31835        &lwork,
31836        info,
31837    )
31838}
31839
31840#[inline]
31841pub unsafe fn csytrf_aa_2stage(
31842    uplo: u8,
31843    n: i32,
31844    a: &mut [c32],
31845    lda: i32,
31846    tb: &mut [c32],
31847    ltb: &[i32],
31848    ipiv: &mut [i32],
31849    ipiv2: &mut [i32],
31850    work: &mut [c32],
31851    lwork: i32,
31852    info: &mut i32,
31853) {
31854    ffi::csytrf_aa_2stage_(
31855        &(uplo as c_char),
31856        &n,
31857        a.as_mut_ptr() as *mut _,
31858        &lda,
31859        tb.as_mut_ptr() as *mut _,
31860        ltb.as_ptr(),
31861        ipiv.as_mut_ptr(),
31862        ipiv2.as_mut_ptr(),
31863        work.as_mut_ptr() as *mut _,
31864        &lwork,
31865        info,
31866    )
31867}
31868
31869#[inline]
31870pub unsafe fn dsytrf_aa_2stage(
31871    uplo: u8,
31872    n: i32,
31873    a: &mut [f64],
31874    lda: i32,
31875    tb: &mut [f64],
31876    ltb: &[i32],
31877    ipiv: &mut [i32],
31878    ipiv2: &mut [i32],
31879    work: &mut [f64],
31880    lwork: i32,
31881    info: &mut i32,
31882) {
31883    ffi::dsytrf_aa_2stage_(
31884        &(uplo as c_char),
31885        &n,
31886        a.as_mut_ptr(),
31887        &lda,
31888        tb.as_mut_ptr(),
31889        ltb.as_ptr(),
31890        ipiv.as_mut_ptr(),
31891        ipiv2.as_mut_ptr(),
31892        work.as_mut_ptr(),
31893        &lwork,
31894        info,
31895    )
31896}
31897
31898#[inline]
31899pub unsafe fn ssytrf_aa_2stage(
31900    uplo: u8,
31901    n: i32,
31902    a: &mut [f32],
31903    lda: i32,
31904    tb: &mut [f32],
31905    ltb: &[i32],
31906    ipiv: &mut [i32],
31907    ipiv2: &mut [i32],
31908    work: &mut [f32],
31909    lwork: i32,
31910    info: &mut i32,
31911) {
31912    ffi::ssytrf_aa_2stage_(
31913        &(uplo as c_char),
31914        &n,
31915        a.as_mut_ptr(),
31916        &lda,
31917        tb.as_mut_ptr(),
31918        ltb.as_ptr(),
31919        ipiv.as_mut_ptr(),
31920        ipiv2.as_mut_ptr(),
31921        work.as_mut_ptr(),
31922        &lwork,
31923        info,
31924    )
31925}
31926
31927#[inline]
31928pub unsafe fn zsytrf_aa_2stage(
31929    uplo: u8,
31930    n: i32,
31931    a: &mut [c64],
31932    lda: i32,
31933    tb: &mut [c64],
31934    ltb: &[i32],
31935    ipiv: &mut [i32],
31936    ipiv2: &mut [i32],
31937    work: &mut [c64],
31938    lwork: i32,
31939    info: &mut i32,
31940) {
31941    ffi::zsytrf_aa_2stage_(
31942        &(uplo as c_char),
31943        &n,
31944        a.as_mut_ptr() as *mut _,
31945        &lda,
31946        tb.as_mut_ptr() as *mut _,
31947        ltb.as_ptr(),
31948        ipiv.as_mut_ptr(),
31949        ipiv2.as_mut_ptr(),
31950        work.as_mut_ptr() as *mut _,
31951        &lwork,
31952        info,
31953    )
31954}
31955
31956#[inline]
31957pub unsafe fn csytrf_rk(
31958    uplo: u8,
31959    n: i32,
31960    a: &mut [c32],
31961    lda: i32,
31962    e: &mut [c32],
31963    ipiv: &mut [i32],
31964    work: &mut [c32],
31965    lwork: i32,
31966    info: &mut i32,
31967) {
31968    ffi::csytrf_rk_(
31969        &(uplo as c_char),
31970        &n,
31971        a.as_mut_ptr() as *mut _,
31972        &lda,
31973        e.as_mut_ptr() as *mut _,
31974        ipiv.as_mut_ptr(),
31975        work.as_mut_ptr() as *mut _,
31976        &lwork,
31977        info,
31978    )
31979}
31980
31981#[inline]
31982pub unsafe fn dsytrf_rk(
31983    uplo: u8,
31984    n: i32,
31985    a: &mut [f64],
31986    lda: i32,
31987    e: &mut [f64],
31988    ipiv: &mut [i32],
31989    work: &mut [f64],
31990    lwork: i32,
31991    info: &mut i32,
31992) {
31993    ffi::dsytrf_rk_(
31994        &(uplo as c_char),
31995        &n,
31996        a.as_mut_ptr(),
31997        &lda,
31998        e.as_mut_ptr(),
31999        ipiv.as_mut_ptr(),
32000        work.as_mut_ptr(),
32001        &lwork,
32002        info,
32003    )
32004}
32005
32006#[inline]
32007pub unsafe fn ssytrf_rk(
32008    uplo: u8,
32009    n: i32,
32010    a: &mut [f32],
32011    lda: i32,
32012    e: &mut [f32],
32013    ipiv: &mut [i32],
32014    work: &mut [f32],
32015    lwork: i32,
32016    info: &mut i32,
32017) {
32018    ffi::ssytrf_rk_(
32019        &(uplo as c_char),
32020        &n,
32021        a.as_mut_ptr(),
32022        &lda,
32023        e.as_mut_ptr(),
32024        ipiv.as_mut_ptr(),
32025        work.as_mut_ptr(),
32026        &lwork,
32027        info,
32028    )
32029}
32030
32031#[inline]
32032pub unsafe fn zsytrf_rk(
32033    uplo: u8,
32034    n: i32,
32035    a: &mut [c64],
32036    lda: i32,
32037    e: &mut [c64],
32038    ipiv: &mut [i32],
32039    work: &mut [c64],
32040    lwork: i32,
32041    info: &mut i32,
32042) {
32043    ffi::zsytrf_rk_(
32044        &(uplo as c_char),
32045        &n,
32046        a.as_mut_ptr() as *mut _,
32047        &lda,
32048        e.as_mut_ptr() as *mut _,
32049        ipiv.as_mut_ptr(),
32050        work.as_mut_ptr() as *mut _,
32051        &lwork,
32052        info,
32053    )
32054}
32055
32056#[inline]
32057pub unsafe fn csytrf_rook(
32058    uplo: u8,
32059    n: i32,
32060    a: &mut [c32],
32061    lda: i32,
32062    ipiv: &mut [i32],
32063    work: &mut [c32],
32064    lwork: i32,
32065    info: &mut i32,
32066) {
32067    ffi::csytrf_rook_(
32068        &(uplo as c_char),
32069        &n,
32070        a.as_mut_ptr() as *mut _,
32071        &lda,
32072        ipiv.as_mut_ptr(),
32073        work.as_mut_ptr() as *mut _,
32074        &lwork,
32075        info,
32076    )
32077}
32078
32079#[inline]
32080pub unsafe fn dsytrf_rook(
32081    uplo: u8,
32082    n: i32,
32083    a: &mut [f64],
32084    lda: i32,
32085    ipiv: &mut [i32],
32086    work: &mut [f64],
32087    lwork: i32,
32088    info: &mut i32,
32089) {
32090    ffi::dsytrf_rook_(
32091        &(uplo as c_char),
32092        &n,
32093        a.as_mut_ptr(),
32094        &lda,
32095        ipiv.as_mut_ptr(),
32096        work.as_mut_ptr(),
32097        &lwork,
32098        info,
32099    )
32100}
32101
32102#[inline]
32103pub unsafe fn ssytrf_rook(
32104    uplo: u8,
32105    n: i32,
32106    a: &mut [f32],
32107    lda: i32,
32108    ipiv: &mut [i32],
32109    work: &mut [f32],
32110    lwork: i32,
32111    info: &mut i32,
32112) {
32113    ffi::ssytrf_rook_(
32114        &(uplo as c_char),
32115        &n,
32116        a.as_mut_ptr(),
32117        &lda,
32118        ipiv.as_mut_ptr(),
32119        work.as_mut_ptr(),
32120        &lwork,
32121        info,
32122    )
32123}
32124
32125#[inline]
32126pub unsafe fn zsytrf_rook(
32127    uplo: u8,
32128    n: i32,
32129    a: &mut [c64],
32130    lda: i32,
32131    ipiv: &mut [i32],
32132    work: &mut [c64],
32133    lwork: i32,
32134    info: &mut i32,
32135) {
32136    ffi::zsytrf_rook_(
32137        &(uplo as c_char),
32138        &n,
32139        a.as_mut_ptr() as *mut _,
32140        &lda,
32141        ipiv.as_mut_ptr(),
32142        work.as_mut_ptr() as *mut _,
32143        &lwork,
32144        info,
32145    )
32146}
32147
32148#[inline]
32149pub unsafe fn csytri(
32150    uplo: u8,
32151    n: i32,
32152    a: &mut [c32],
32153    lda: i32,
32154    ipiv: &[i32],
32155    work: &mut [c32],
32156    info: &mut i32,
32157) {
32158    ffi::csytri_(
32159        &(uplo as c_char),
32160        &n,
32161        a.as_mut_ptr() as *mut _,
32162        &lda,
32163        ipiv.as_ptr(),
32164        work.as_mut_ptr() as *mut _,
32165        info,
32166    )
32167}
32168
32169#[inline]
32170pub unsafe fn dsytri(
32171    uplo: u8,
32172    n: i32,
32173    a: &mut [f64],
32174    lda: i32,
32175    ipiv: &[i32],
32176    work: &mut [f64],
32177    info: &mut i32,
32178) {
32179    ffi::dsytri_(
32180        &(uplo as c_char),
32181        &n,
32182        a.as_mut_ptr(),
32183        &lda,
32184        ipiv.as_ptr(),
32185        work.as_mut_ptr(),
32186        info,
32187    )
32188}
32189
32190#[inline]
32191pub unsafe fn ssytri(
32192    uplo: u8,
32193    n: i32,
32194    a: &mut [f32],
32195    lda: i32,
32196    ipiv: &[i32],
32197    work: &mut [f32],
32198    info: &mut i32,
32199) {
32200    ffi::ssytri_(
32201        &(uplo as c_char),
32202        &n,
32203        a.as_mut_ptr(),
32204        &lda,
32205        ipiv.as_ptr(),
32206        work.as_mut_ptr(),
32207        info,
32208    )
32209}
32210
32211#[inline]
32212pub unsafe fn zsytri(
32213    uplo: u8,
32214    n: i32,
32215    a: &mut [c64],
32216    lda: i32,
32217    ipiv: &[i32],
32218    work: &mut [c64],
32219    info: &mut i32,
32220) {
32221    ffi::zsytri_(
32222        &(uplo as c_char),
32223        &n,
32224        a.as_mut_ptr() as *mut _,
32225        &lda,
32226        ipiv.as_ptr(),
32227        work.as_mut_ptr() as *mut _,
32228        info,
32229    )
32230}
32231
32232#[inline]
32233pub unsafe fn csytri2(
32234    uplo: u8,
32235    n: i32,
32236    a: &mut [c32],
32237    lda: i32,
32238    ipiv: &[i32],
32239    work: &mut [c32],
32240    lwork: i32,
32241    info: &mut i32,
32242) {
32243    ffi::csytri2_(
32244        &(uplo as c_char),
32245        &n,
32246        a.as_mut_ptr() as *mut _,
32247        &lda,
32248        ipiv.as_ptr(),
32249        work.as_mut_ptr() as *mut _,
32250        &lwork,
32251        info,
32252    )
32253}
32254
32255#[inline]
32256pub unsafe fn dsytri2(
32257    uplo: u8,
32258    n: i32,
32259    a: &mut [f64],
32260    lda: i32,
32261    ipiv: &[i32],
32262    work: &mut [f64],
32263    lwork: i32,
32264    info: &mut i32,
32265) {
32266    ffi::dsytri2_(
32267        &(uplo as c_char),
32268        &n,
32269        a.as_mut_ptr(),
32270        &lda,
32271        ipiv.as_ptr(),
32272        work.as_mut_ptr(),
32273        &lwork,
32274        info,
32275    )
32276}
32277
32278#[inline]
32279pub unsafe fn ssytri2(
32280    uplo: u8,
32281    n: i32,
32282    a: &mut [f32],
32283    lda: i32,
32284    ipiv: &[i32],
32285    work: &mut [f32],
32286    lwork: i32,
32287    info: &mut i32,
32288) {
32289    ffi::ssytri2_(
32290        &(uplo as c_char),
32291        &n,
32292        a.as_mut_ptr(),
32293        &lda,
32294        ipiv.as_ptr(),
32295        work.as_mut_ptr(),
32296        &lwork,
32297        info,
32298    )
32299}
32300
32301#[inline]
32302pub unsafe fn zsytri2(
32303    uplo: u8,
32304    n: i32,
32305    a: &mut [c64],
32306    lda: i32,
32307    ipiv: &[i32],
32308    work: &mut [c64],
32309    lwork: i32,
32310    info: &mut i32,
32311) {
32312    ffi::zsytri2_(
32313        &(uplo as c_char),
32314        &n,
32315        a.as_mut_ptr() as *mut _,
32316        &lda,
32317        ipiv.as_ptr(),
32318        work.as_mut_ptr() as *mut _,
32319        &lwork,
32320        info,
32321    )
32322}
32323
32324#[inline]
32325pub unsafe fn csytri2x(
32326    uplo: u8,
32327    n: i32,
32328    a: &mut [c32],
32329    lda: i32,
32330    ipiv: &[i32],
32331    work: &mut [c32],
32332    nb: i32,
32333    info: &mut i32,
32334) {
32335    ffi::csytri2x_(
32336        &(uplo as c_char),
32337        &n,
32338        a.as_mut_ptr() as *mut _,
32339        &lda,
32340        ipiv.as_ptr(),
32341        work.as_mut_ptr() as *mut _,
32342        &nb,
32343        info,
32344    )
32345}
32346
32347#[inline]
32348pub unsafe fn dsytri2x(
32349    uplo: u8,
32350    n: i32,
32351    a: &mut [f64],
32352    lda: i32,
32353    ipiv: &[i32],
32354    work: &mut [f64],
32355    nb: i32,
32356    info: &mut i32,
32357) {
32358    ffi::dsytri2x_(
32359        &(uplo as c_char),
32360        &n,
32361        a.as_mut_ptr(),
32362        &lda,
32363        ipiv.as_ptr(),
32364        work.as_mut_ptr(),
32365        &nb,
32366        info,
32367    )
32368}
32369
32370#[inline]
32371pub unsafe fn ssytri2x(
32372    uplo: u8,
32373    n: i32,
32374    a: &mut [f32],
32375    lda: i32,
32376    ipiv: &[i32],
32377    work: &mut [f32],
32378    nb: i32,
32379    info: &mut i32,
32380) {
32381    ffi::ssytri2x_(
32382        &(uplo as c_char),
32383        &n,
32384        a.as_mut_ptr(),
32385        &lda,
32386        ipiv.as_ptr(),
32387        work.as_mut_ptr(),
32388        &nb,
32389        info,
32390    )
32391}
32392
32393#[inline]
32394pub unsafe fn zsytri2x(
32395    uplo: u8,
32396    n: i32,
32397    a: &mut [c64],
32398    lda: i32,
32399    ipiv: &[i32],
32400    work: &mut [c64],
32401    nb: i32,
32402    info: &mut i32,
32403) {
32404    ffi::zsytri2x_(
32405        &(uplo as c_char),
32406        &n,
32407        a.as_mut_ptr() as *mut _,
32408        &lda,
32409        ipiv.as_ptr(),
32410        work.as_mut_ptr() as *mut _,
32411        &nb,
32412        info,
32413    )
32414}
32415
32416#[inline]
32417pub unsafe fn csytri_3(
32418    uplo: u8,
32419    n: i32,
32420    a: &mut [c32],
32421    lda: i32,
32422    e: &[c32],
32423    ipiv: &[i32],
32424    work: &mut [c32],
32425    lwork: i32,
32426    info: &mut i32,
32427) {
32428    ffi::csytri_3_(
32429        &(uplo as c_char),
32430        &n,
32431        a.as_mut_ptr() as *mut _,
32432        &lda,
32433        e.as_ptr() as *const _,
32434        ipiv.as_ptr(),
32435        work.as_mut_ptr() as *mut _,
32436        &lwork,
32437        info,
32438    )
32439}
32440
32441#[inline]
32442pub unsafe fn dsytri_3(
32443    uplo: u8,
32444    n: i32,
32445    a: &mut [f64],
32446    lda: i32,
32447    e: &[f64],
32448    ipiv: &[i32],
32449    work: &mut [f64],
32450    lwork: i32,
32451    info: &mut i32,
32452) {
32453    ffi::dsytri_3_(
32454        &(uplo as c_char),
32455        &n,
32456        a.as_mut_ptr(),
32457        &lda,
32458        e.as_ptr(),
32459        ipiv.as_ptr(),
32460        work.as_mut_ptr(),
32461        &lwork,
32462        info,
32463    )
32464}
32465
32466#[inline]
32467pub unsafe fn ssytri_3(
32468    uplo: u8,
32469    n: i32,
32470    a: &mut [f32],
32471    lda: i32,
32472    e: &[f32],
32473    ipiv: &[i32],
32474    work: &mut [f32],
32475    lwork: i32,
32476    info: &mut i32,
32477) {
32478    ffi::ssytri_3_(
32479        &(uplo as c_char),
32480        &n,
32481        a.as_mut_ptr(),
32482        &lda,
32483        e.as_ptr(),
32484        ipiv.as_ptr(),
32485        work.as_mut_ptr(),
32486        &lwork,
32487        info,
32488    )
32489}
32490
32491#[inline]
32492pub unsafe fn zsytri_3(
32493    uplo: u8,
32494    n: i32,
32495    a: &mut [c64],
32496    lda: i32,
32497    e: &[c64],
32498    ipiv: &[i32],
32499    work: &mut [c64],
32500    lwork: i32,
32501    info: &mut i32,
32502) {
32503    ffi::zsytri_3_(
32504        &(uplo as c_char),
32505        &n,
32506        a.as_mut_ptr() as *mut _,
32507        &lda,
32508        e.as_ptr() as *const _,
32509        ipiv.as_ptr(),
32510        work.as_mut_ptr() as *mut _,
32511        &lwork,
32512        info,
32513    )
32514}
32515
32516#[inline]
32517pub unsafe fn csytrs(
32518    uplo: u8,
32519    n: i32,
32520    nrhs: i32,
32521    a: &[c32],
32522    lda: i32,
32523    ipiv: &[i32],
32524    b: &mut [c32],
32525    ldb: i32,
32526    info: &mut i32,
32527) {
32528    ffi::csytrs_(
32529        &(uplo as c_char),
32530        &n,
32531        &nrhs,
32532        a.as_ptr() as *const _,
32533        &lda,
32534        ipiv.as_ptr(),
32535        b.as_mut_ptr() as *mut _,
32536        &ldb,
32537        info,
32538    )
32539}
32540
32541#[inline]
32542pub unsafe fn dsytrs(
32543    uplo: u8,
32544    n: i32,
32545    nrhs: i32,
32546    a: &[f64],
32547    lda: i32,
32548    ipiv: &[i32],
32549    b: &mut [f64],
32550    ldb: i32,
32551    info: &mut i32,
32552) {
32553    ffi::dsytrs_(
32554        &(uplo as c_char),
32555        &n,
32556        &nrhs,
32557        a.as_ptr(),
32558        &lda,
32559        ipiv.as_ptr(),
32560        b.as_mut_ptr(),
32561        &ldb,
32562        info,
32563    )
32564}
32565
32566#[inline]
32567pub unsafe fn ssytrs(
32568    uplo: u8,
32569    n: i32,
32570    nrhs: i32,
32571    a: &[f32],
32572    lda: i32,
32573    ipiv: &[i32],
32574    b: &mut [f32],
32575    ldb: i32,
32576    info: &mut i32,
32577) {
32578    ffi::ssytrs_(
32579        &(uplo as c_char),
32580        &n,
32581        &nrhs,
32582        a.as_ptr(),
32583        &lda,
32584        ipiv.as_ptr(),
32585        b.as_mut_ptr(),
32586        &ldb,
32587        info,
32588    )
32589}
32590
32591#[inline]
32592pub unsafe fn zsytrs(
32593    uplo: u8,
32594    n: i32,
32595    nrhs: i32,
32596    a: &[c64],
32597    lda: i32,
32598    ipiv: &[i32],
32599    b: &mut [c64],
32600    ldb: i32,
32601    info: &mut i32,
32602) {
32603    ffi::zsytrs_(
32604        &(uplo as c_char),
32605        &n,
32606        &nrhs,
32607        a.as_ptr() as *const _,
32608        &lda,
32609        ipiv.as_ptr(),
32610        b.as_mut_ptr() as *mut _,
32611        &ldb,
32612        info,
32613    )
32614}
32615
32616#[inline]
32617pub unsafe fn csytrs2(
32618    uplo: u8,
32619    n: i32,
32620    nrhs: i32,
32621    a: &mut [c32],
32622    lda: i32,
32623    ipiv: &[i32],
32624    b: &mut [c32],
32625    ldb: i32,
32626    work: &mut [c32],
32627    info: &mut i32,
32628) {
32629    ffi::csytrs2_(
32630        &(uplo as c_char),
32631        &n,
32632        &nrhs,
32633        a.as_mut_ptr() as *mut _,
32634        &lda,
32635        ipiv.as_ptr(),
32636        b.as_mut_ptr() as *mut _,
32637        &ldb,
32638        work.as_mut_ptr() as *mut _,
32639        info,
32640    )
32641}
32642
32643#[inline]
32644pub unsafe fn dsytrs2(
32645    uplo: u8,
32646    n: i32,
32647    nrhs: i32,
32648    a: &mut [f64],
32649    lda: i32,
32650    ipiv: &[i32],
32651    b: &mut [f64],
32652    ldb: i32,
32653    work: &mut [f64],
32654    info: &mut i32,
32655) {
32656    ffi::dsytrs2_(
32657        &(uplo as c_char),
32658        &n,
32659        &nrhs,
32660        a.as_mut_ptr(),
32661        &lda,
32662        ipiv.as_ptr(),
32663        b.as_mut_ptr(),
32664        &ldb,
32665        work.as_mut_ptr(),
32666        info,
32667    )
32668}
32669
32670#[inline]
32671pub unsafe fn ssytrs2(
32672    uplo: u8,
32673    n: i32,
32674    nrhs: i32,
32675    a: &mut [f32],
32676    lda: i32,
32677    ipiv: &[i32],
32678    b: &mut [f32],
32679    ldb: i32,
32680    work: &mut [f32],
32681    info: &mut i32,
32682) {
32683    ffi::ssytrs2_(
32684        &(uplo as c_char),
32685        &n,
32686        &nrhs,
32687        a.as_mut_ptr(),
32688        &lda,
32689        ipiv.as_ptr(),
32690        b.as_mut_ptr(),
32691        &ldb,
32692        work.as_mut_ptr(),
32693        info,
32694    )
32695}
32696
32697#[inline]
32698pub unsafe fn zsytrs2(
32699    uplo: u8,
32700    n: i32,
32701    nrhs: i32,
32702    a: &mut [c64],
32703    lda: i32,
32704    ipiv: &[i32],
32705    b: &mut [c64],
32706    ldb: i32,
32707    work: &mut [c64],
32708    info: &mut i32,
32709) {
32710    ffi::zsytrs2_(
32711        &(uplo as c_char),
32712        &n,
32713        &nrhs,
32714        a.as_mut_ptr() as *mut _,
32715        &lda,
32716        ipiv.as_ptr(),
32717        b.as_mut_ptr() as *mut _,
32718        &ldb,
32719        work.as_mut_ptr() as *mut _,
32720        info,
32721    )
32722}
32723
32724#[inline]
32725pub unsafe fn csytrs_3(
32726    uplo: u8,
32727    n: i32,
32728    nrhs: i32,
32729    a: &[c32],
32730    lda: i32,
32731    e: &[c32],
32732    ipiv: &[i32],
32733    b: &mut [c32],
32734    ldb: i32,
32735    info: &mut i32,
32736) {
32737    ffi::csytrs_3_(
32738        &(uplo as c_char),
32739        &n,
32740        &nrhs,
32741        a.as_ptr() as *const _,
32742        &lda,
32743        e.as_ptr() as *const _,
32744        ipiv.as_ptr(),
32745        b.as_mut_ptr() as *mut _,
32746        &ldb,
32747        info,
32748    )
32749}
32750
32751#[inline]
32752pub unsafe fn dsytrs_3(
32753    uplo: u8,
32754    n: i32,
32755    nrhs: i32,
32756    a: &[f64],
32757    lda: i32,
32758    e: &[f64],
32759    ipiv: &[i32],
32760    b: &mut [f64],
32761    ldb: i32,
32762    info: &mut i32,
32763) {
32764    ffi::dsytrs_3_(
32765        &(uplo as c_char),
32766        &n,
32767        &nrhs,
32768        a.as_ptr(),
32769        &lda,
32770        e.as_ptr(),
32771        ipiv.as_ptr(),
32772        b.as_mut_ptr(),
32773        &ldb,
32774        info,
32775    )
32776}
32777
32778#[inline]
32779pub unsafe fn ssytrs_3(
32780    uplo: u8,
32781    n: i32,
32782    nrhs: i32,
32783    a: &[f32],
32784    lda: i32,
32785    e: &[f32],
32786    ipiv: &[i32],
32787    b: &mut [f32],
32788    ldb: i32,
32789    info: &mut i32,
32790) {
32791    ffi::ssytrs_3_(
32792        &(uplo as c_char),
32793        &n,
32794        &nrhs,
32795        a.as_ptr(),
32796        &lda,
32797        e.as_ptr(),
32798        ipiv.as_ptr(),
32799        b.as_mut_ptr(),
32800        &ldb,
32801        info,
32802    )
32803}
32804
32805#[inline]
32806pub unsafe fn zsytrs_3(
32807    uplo: u8,
32808    n: i32,
32809    nrhs: i32,
32810    a: &[c64],
32811    lda: i32,
32812    e: &[c64],
32813    ipiv: &[i32],
32814    b: &mut [c64],
32815    ldb: i32,
32816    info: &mut i32,
32817) {
32818    ffi::zsytrs_3_(
32819        &(uplo as c_char),
32820        &n,
32821        &nrhs,
32822        a.as_ptr() as *const _,
32823        &lda,
32824        e.as_ptr() as *const _,
32825        ipiv.as_ptr(),
32826        b.as_mut_ptr() as *mut _,
32827        &ldb,
32828        info,
32829    )
32830}
32831
32832#[inline]
32833pub unsafe fn csytrs_aa(
32834    uplo: u8,
32835    n: i32,
32836    nrhs: i32,
32837    a: &[c32],
32838    lda: i32,
32839    ipiv: &[i32],
32840    b: &mut [c32],
32841    ldb: i32,
32842    work: &mut [c32],
32843    lwork: i32,
32844    info: &mut i32,
32845) {
32846    ffi::csytrs_aa_(
32847        &(uplo as c_char),
32848        &n,
32849        &nrhs,
32850        a.as_ptr() as *const _,
32851        &lda,
32852        ipiv.as_ptr(),
32853        b.as_mut_ptr() as *mut _,
32854        &ldb,
32855        work.as_mut_ptr() as *mut _,
32856        &lwork,
32857        info,
32858    )
32859}
32860
32861#[inline]
32862pub unsafe fn dsytrs_aa(
32863    uplo: u8,
32864    n: i32,
32865    nrhs: i32,
32866    a: &[f64],
32867    lda: i32,
32868    ipiv: &[i32],
32869    b: &mut [f64],
32870    ldb: i32,
32871    work: &mut [f64],
32872    lwork: i32,
32873    info: &mut i32,
32874) {
32875    ffi::dsytrs_aa_(
32876        &(uplo as c_char),
32877        &n,
32878        &nrhs,
32879        a.as_ptr(),
32880        &lda,
32881        ipiv.as_ptr(),
32882        b.as_mut_ptr(),
32883        &ldb,
32884        work.as_mut_ptr(),
32885        &lwork,
32886        info,
32887    )
32888}
32889
32890#[inline]
32891pub unsafe fn ssytrs_aa(
32892    uplo: u8,
32893    n: i32,
32894    nrhs: i32,
32895    a: &[f32],
32896    lda: i32,
32897    ipiv: &[i32],
32898    b: &mut [f32],
32899    ldb: i32,
32900    work: &mut [f32],
32901    lwork: i32,
32902    info: &mut i32,
32903) {
32904    ffi::ssytrs_aa_(
32905        &(uplo as c_char),
32906        &n,
32907        &nrhs,
32908        a.as_ptr(),
32909        &lda,
32910        ipiv.as_ptr(),
32911        b.as_mut_ptr(),
32912        &ldb,
32913        work.as_mut_ptr(),
32914        &lwork,
32915        info,
32916    )
32917}
32918
32919#[inline]
32920pub unsafe fn zsytrs_aa(
32921    uplo: u8,
32922    n: i32,
32923    nrhs: i32,
32924    a: &[c64],
32925    lda: i32,
32926    ipiv: &[i32],
32927    b: &mut [c64],
32928    ldb: i32,
32929    work: &mut [c64],
32930    lwork: i32,
32931    info: &mut i32,
32932) {
32933    ffi::zsytrs_aa_(
32934        &(uplo as c_char),
32935        &n,
32936        &nrhs,
32937        a.as_ptr() as *const _,
32938        &lda,
32939        ipiv.as_ptr(),
32940        b.as_mut_ptr() as *mut _,
32941        &ldb,
32942        work.as_mut_ptr() as *mut _,
32943        &lwork,
32944        info,
32945    )
32946}
32947
32948#[inline]
32949pub unsafe fn csytrs_aa_2stage(
32950    uplo: u8,
32951    n: i32,
32952    nrhs: i32,
32953    a: &[c32],
32954    lda: i32,
32955    tb: &mut [c32],
32956    ltb: &[i32],
32957    ipiv: &[i32],
32958    ipiv2: &[i32],
32959    b: &mut [c32],
32960    ldb: i32,
32961    info: &mut i32,
32962) {
32963    ffi::csytrs_aa_2stage_(
32964        &(uplo as c_char),
32965        &n,
32966        &nrhs,
32967        a.as_ptr() as *const _,
32968        &lda,
32969        tb.as_mut_ptr() as *mut _,
32970        ltb.as_ptr(),
32971        ipiv.as_ptr(),
32972        ipiv2.as_ptr(),
32973        b.as_mut_ptr() as *mut _,
32974        &ldb,
32975        info,
32976    )
32977}
32978
32979#[inline]
32980pub unsafe fn dsytrs_aa_2stage(
32981    uplo: u8,
32982    n: i32,
32983    nrhs: i32,
32984    a: &[f64],
32985    lda: i32,
32986    tb: &mut [f64],
32987    ltb: &[i32],
32988    ipiv: &[i32],
32989    ipiv2: &[i32],
32990    b: &mut [f64],
32991    ldb: i32,
32992    info: &mut i32,
32993) {
32994    ffi::dsytrs_aa_2stage_(
32995        &(uplo as c_char),
32996        &n,
32997        &nrhs,
32998        a.as_ptr(),
32999        &lda,
33000        tb.as_mut_ptr(),
33001        ltb.as_ptr(),
33002        ipiv.as_ptr(),
33003        ipiv2.as_ptr(),
33004        b.as_mut_ptr(),
33005        &ldb,
33006        info,
33007    )
33008}
33009
33010#[inline]
33011pub unsafe fn ssytrs_aa_2stage(
33012    uplo: u8,
33013    n: i32,
33014    nrhs: i32,
33015    a: &[f32],
33016    lda: i32,
33017    tb: &mut [f32],
33018    ltb: &[i32],
33019    ipiv: &[i32],
33020    ipiv2: &[i32],
33021    b: &mut [f32],
33022    ldb: i32,
33023    info: &mut i32,
33024) {
33025    ffi::ssytrs_aa_2stage_(
33026        &(uplo as c_char),
33027        &n,
33028        &nrhs,
33029        a.as_ptr(),
33030        &lda,
33031        tb.as_mut_ptr(),
33032        ltb.as_ptr(),
33033        ipiv.as_ptr(),
33034        ipiv2.as_ptr(),
33035        b.as_mut_ptr(),
33036        &ldb,
33037        info,
33038    )
33039}
33040
33041#[inline]
33042pub unsafe fn zsytrs_aa_2stage(
33043    uplo: u8,
33044    n: i32,
33045    nrhs: i32,
33046    a: &[c64],
33047    lda: i32,
33048    tb: &mut [c64],
33049    ltb: &[i32],
33050    ipiv: &[i32],
33051    ipiv2: &[i32],
33052    b: &mut [c64],
33053    ldb: i32,
33054    info: &mut i32,
33055) {
33056    ffi::zsytrs_aa_2stage_(
33057        &(uplo as c_char),
33058        &n,
33059        &nrhs,
33060        a.as_ptr() as *const _,
33061        &lda,
33062        tb.as_mut_ptr() as *mut _,
33063        ltb.as_ptr(),
33064        ipiv.as_ptr(),
33065        ipiv2.as_ptr(),
33066        b.as_mut_ptr() as *mut _,
33067        &ldb,
33068        info,
33069    )
33070}
33071
33072#[inline]
33073pub unsafe fn csytrs_rook(
33074    uplo: u8,
33075    n: i32,
33076    nrhs: i32,
33077    a: &[c32],
33078    lda: i32,
33079    ipiv: &[i32],
33080    b: &mut [c32],
33081    ldb: i32,
33082    info: &mut i32,
33083) {
33084    ffi::csytrs_rook_(
33085        &(uplo as c_char),
33086        &n,
33087        &nrhs,
33088        a.as_ptr() as *const _,
33089        &lda,
33090        ipiv.as_ptr(),
33091        b.as_mut_ptr() as *mut _,
33092        &ldb,
33093        info,
33094    )
33095}
33096
33097#[inline]
33098pub unsafe fn dsytrs_rook(
33099    uplo: u8,
33100    n: i32,
33101    nrhs: i32,
33102    a: &[f64],
33103    lda: i32,
33104    ipiv: &[i32],
33105    b: &mut [f64],
33106    ldb: i32,
33107    info: &mut i32,
33108) {
33109    ffi::dsytrs_rook_(
33110        &(uplo as c_char),
33111        &n,
33112        &nrhs,
33113        a.as_ptr(),
33114        &lda,
33115        ipiv.as_ptr(),
33116        b.as_mut_ptr(),
33117        &ldb,
33118        info,
33119    )
33120}
33121
33122#[inline]
33123pub unsafe fn ssytrs_rook(
33124    uplo: u8,
33125    n: i32,
33126    nrhs: i32,
33127    a: &[f32],
33128    lda: i32,
33129    ipiv: &[i32],
33130    b: &mut [f32],
33131    ldb: i32,
33132    info: &mut i32,
33133) {
33134    ffi::ssytrs_rook_(
33135        &(uplo as c_char),
33136        &n,
33137        &nrhs,
33138        a.as_ptr(),
33139        &lda,
33140        ipiv.as_ptr(),
33141        b.as_mut_ptr(),
33142        &ldb,
33143        info,
33144    )
33145}
33146
33147#[inline]
33148pub unsafe fn zsytrs_rook(
33149    uplo: u8,
33150    n: i32,
33151    nrhs: i32,
33152    a: &[c64],
33153    lda: i32,
33154    ipiv: &[i32],
33155    b: &mut [c64],
33156    ldb: i32,
33157    info: &mut i32,
33158) {
33159    ffi::zsytrs_rook_(
33160        &(uplo as c_char),
33161        &n,
33162        &nrhs,
33163        a.as_ptr() as *const _,
33164        &lda,
33165        ipiv.as_ptr(),
33166        b.as_mut_ptr() as *mut _,
33167        &ldb,
33168        info,
33169    )
33170}
33171
33172#[inline]
33173pub unsafe fn ctbcon(
33174    norm: u8,
33175    uplo: u8,
33176    diag: u8,
33177    n: i32,
33178    kd: i32,
33179    ab: &[c32],
33180    ldab: i32,
33181    rcond: &mut f32,
33182    work: &mut [c32],
33183    rwork: &mut [f32],
33184    info: &mut i32,
33185) {
33186    ffi::ctbcon_(
33187        &(norm as c_char),
33188        &(uplo as c_char),
33189        &(diag as c_char),
33190        &n,
33191        &kd,
33192        ab.as_ptr() as *const _,
33193        &ldab,
33194        rcond,
33195        work.as_mut_ptr() as *mut _,
33196        rwork.as_mut_ptr(),
33197        info,
33198    )
33199}
33200
33201#[inline]
33202pub unsafe fn dtbcon(
33203    norm: u8,
33204    uplo: u8,
33205    diag: u8,
33206    n: i32,
33207    kd: i32,
33208    ab: &[f64],
33209    ldab: i32,
33210    rcond: &mut f64,
33211    work: &mut [f64],
33212    iwork: &mut [i32],
33213    info: &mut i32,
33214) {
33215    ffi::dtbcon_(
33216        &(norm as c_char),
33217        &(uplo as c_char),
33218        &(diag as c_char),
33219        &n,
33220        &kd,
33221        ab.as_ptr(),
33222        &ldab,
33223        rcond,
33224        work.as_mut_ptr(),
33225        iwork.as_mut_ptr(),
33226        info,
33227    )
33228}
33229
33230#[inline]
33231pub unsafe fn stbcon(
33232    norm: u8,
33233    uplo: u8,
33234    diag: u8,
33235    n: i32,
33236    kd: i32,
33237    ab: &[f32],
33238    ldab: i32,
33239    rcond: &mut f32,
33240    work: &mut [f32],
33241    iwork: &mut [i32],
33242    info: &mut i32,
33243) {
33244    ffi::stbcon_(
33245        &(norm as c_char),
33246        &(uplo as c_char),
33247        &(diag as c_char),
33248        &n,
33249        &kd,
33250        ab.as_ptr(),
33251        &ldab,
33252        rcond,
33253        work.as_mut_ptr(),
33254        iwork.as_mut_ptr(),
33255        info,
33256    )
33257}
33258
33259#[inline]
33260pub unsafe fn ztbcon(
33261    norm: u8,
33262    uplo: u8,
33263    diag: u8,
33264    n: i32,
33265    kd: i32,
33266    ab: &[c64],
33267    ldab: i32,
33268    rcond: &mut f64,
33269    work: &mut [c64],
33270    rwork: &mut [f64],
33271    info: &mut i32,
33272) {
33273    ffi::ztbcon_(
33274        &(norm as c_char),
33275        &(uplo as c_char),
33276        &(diag as c_char),
33277        &n,
33278        &kd,
33279        ab.as_ptr() as *const _,
33280        &ldab,
33281        rcond,
33282        work.as_mut_ptr() as *mut _,
33283        rwork.as_mut_ptr(),
33284        info,
33285    )
33286}
33287
33288#[inline]
33289pub unsafe fn ctbrfs(
33290    uplo: u8,
33291    trans: u8,
33292    diag: u8,
33293    n: i32,
33294    kd: i32,
33295    nrhs: i32,
33296    ab: &[c32],
33297    ldab: i32,
33298    b: &[c32],
33299    ldb: i32,
33300    x: &[c32],
33301    ldx: i32,
33302    ferr: &mut [f32],
33303    berr: &mut [f32],
33304    work: &mut [c32],
33305    rwork: &mut [f32],
33306    info: &mut i32,
33307) {
33308    ffi::ctbrfs_(
33309        &(uplo as c_char),
33310        &(trans as c_char),
33311        &(diag as c_char),
33312        &n,
33313        &kd,
33314        &nrhs,
33315        ab.as_ptr() as *const _,
33316        &ldab,
33317        b.as_ptr() as *const _,
33318        &ldb,
33319        x.as_ptr() as *const _,
33320        &ldx,
33321        ferr.as_mut_ptr(),
33322        berr.as_mut_ptr(),
33323        work.as_mut_ptr() as *mut _,
33324        rwork.as_mut_ptr(),
33325        info,
33326    )
33327}
33328
33329#[inline]
33330pub unsafe fn dtbrfs(
33331    uplo: u8,
33332    trans: u8,
33333    diag: u8,
33334    n: i32,
33335    kd: i32,
33336    nrhs: i32,
33337    ab: &[f64],
33338    ldab: i32,
33339    b: &[f64],
33340    ldb: i32,
33341    x: &[f64],
33342    ldx: i32,
33343    ferr: &mut [f64],
33344    berr: &mut [f64],
33345    work: &mut [f64],
33346    iwork: &mut [i32],
33347    info: &mut i32,
33348) {
33349    ffi::dtbrfs_(
33350        &(uplo as c_char),
33351        &(trans as c_char),
33352        &(diag as c_char),
33353        &n,
33354        &kd,
33355        &nrhs,
33356        ab.as_ptr(),
33357        &ldab,
33358        b.as_ptr(),
33359        &ldb,
33360        x.as_ptr(),
33361        &ldx,
33362        ferr.as_mut_ptr(),
33363        berr.as_mut_ptr(),
33364        work.as_mut_ptr(),
33365        iwork.as_mut_ptr(),
33366        info,
33367    )
33368}
33369
33370#[inline]
33371pub unsafe fn stbrfs(
33372    uplo: u8,
33373    trans: u8,
33374    diag: u8,
33375    n: i32,
33376    kd: i32,
33377    nrhs: i32,
33378    ab: &[f32],
33379    ldab: i32,
33380    b: &[f32],
33381    ldb: i32,
33382    x: &[f32],
33383    ldx: i32,
33384    ferr: &mut [f32],
33385    berr: &mut [f32],
33386    work: &mut [f32],
33387    iwork: &mut [i32],
33388    info: &mut i32,
33389) {
33390    ffi::stbrfs_(
33391        &(uplo as c_char),
33392        &(trans as c_char),
33393        &(diag as c_char),
33394        &n,
33395        &kd,
33396        &nrhs,
33397        ab.as_ptr(),
33398        &ldab,
33399        b.as_ptr(),
33400        &ldb,
33401        x.as_ptr(),
33402        &ldx,
33403        ferr.as_mut_ptr(),
33404        berr.as_mut_ptr(),
33405        work.as_mut_ptr(),
33406        iwork.as_mut_ptr(),
33407        info,
33408    )
33409}
33410
33411#[inline]
33412pub unsafe fn ztbrfs(
33413    uplo: u8,
33414    trans: u8,
33415    diag: u8,
33416    n: i32,
33417    kd: i32,
33418    nrhs: i32,
33419    ab: &[c64],
33420    ldab: i32,
33421    b: &[c64],
33422    ldb: i32,
33423    x: &[c64],
33424    ldx: i32,
33425    ferr: &mut [f64],
33426    berr: &mut [f64],
33427    work: &mut [c64],
33428    rwork: &mut [f64],
33429    info: &mut i32,
33430) {
33431    ffi::ztbrfs_(
33432        &(uplo as c_char),
33433        &(trans as c_char),
33434        &(diag as c_char),
33435        &n,
33436        &kd,
33437        &nrhs,
33438        ab.as_ptr() as *const _,
33439        &ldab,
33440        b.as_ptr() as *const _,
33441        &ldb,
33442        x.as_ptr() as *const _,
33443        &ldx,
33444        ferr.as_mut_ptr(),
33445        berr.as_mut_ptr(),
33446        work.as_mut_ptr() as *mut _,
33447        rwork.as_mut_ptr(),
33448        info,
33449    )
33450}
33451
33452#[inline]
33453pub unsafe fn ctbtrs(
33454    uplo: u8,
33455    trans: u8,
33456    diag: u8,
33457    n: i32,
33458    kd: i32,
33459    nrhs: i32,
33460    ab: &[c32],
33461    ldab: i32,
33462    b: &mut [c32],
33463    ldb: i32,
33464    info: &mut i32,
33465) {
33466    ffi::ctbtrs_(
33467        &(uplo as c_char),
33468        &(trans as c_char),
33469        &(diag as c_char),
33470        &n,
33471        &kd,
33472        &nrhs,
33473        ab.as_ptr() as *const _,
33474        &ldab,
33475        b.as_mut_ptr() as *mut _,
33476        &ldb,
33477        info,
33478    )
33479}
33480
33481#[inline]
33482pub unsafe fn dtbtrs(
33483    uplo: u8,
33484    trans: u8,
33485    diag: u8,
33486    n: i32,
33487    kd: i32,
33488    nrhs: i32,
33489    ab: &[f64],
33490    ldab: i32,
33491    b: &mut [f64],
33492    ldb: i32,
33493    info: &mut i32,
33494) {
33495    ffi::dtbtrs_(
33496        &(uplo as c_char),
33497        &(trans as c_char),
33498        &(diag as c_char),
33499        &n,
33500        &kd,
33501        &nrhs,
33502        ab.as_ptr(),
33503        &ldab,
33504        b.as_mut_ptr(),
33505        &ldb,
33506        info,
33507    )
33508}
33509
33510#[inline]
33511pub unsafe fn stbtrs(
33512    uplo: u8,
33513    trans: u8,
33514    diag: u8,
33515    n: i32,
33516    kd: i32,
33517    nrhs: i32,
33518    ab: &[f32],
33519    ldab: i32,
33520    b: &mut [f32],
33521    ldb: i32,
33522    info: &mut i32,
33523) {
33524    ffi::stbtrs_(
33525        &(uplo as c_char),
33526        &(trans as c_char),
33527        &(diag as c_char),
33528        &n,
33529        &kd,
33530        &nrhs,
33531        ab.as_ptr(),
33532        &ldab,
33533        b.as_mut_ptr(),
33534        &ldb,
33535        info,
33536    )
33537}
33538
33539#[inline]
33540pub unsafe fn ztbtrs(
33541    uplo: u8,
33542    trans: u8,
33543    diag: u8,
33544    n: i32,
33545    kd: i32,
33546    nrhs: i32,
33547    ab: &[c64],
33548    ldab: i32,
33549    b: &mut [c64],
33550    ldb: i32,
33551    info: &mut i32,
33552) {
33553    ffi::ztbtrs_(
33554        &(uplo as c_char),
33555        &(trans as c_char),
33556        &(diag as c_char),
33557        &n,
33558        &kd,
33559        &nrhs,
33560        ab.as_ptr() as *const _,
33561        &ldab,
33562        b.as_mut_ptr() as *mut _,
33563        &ldb,
33564        info,
33565    )
33566}
33567
33568#[inline]
33569pub unsafe fn ctfsm(
33570    transr: u8,
33571    side: u8,
33572    uplo: u8,
33573    trans: u8,
33574    diag: u8,
33575    m: i32,
33576    n: i32,
33577    alpha: &[c32],
33578    a: &[c32],
33579    b: &mut [c32],
33580    ldb: i32,
33581) {
33582    ffi::ctfsm_(
33583        &(transr as c_char),
33584        &(side as c_char),
33585        &(uplo as c_char),
33586        &(trans as c_char),
33587        &(diag as c_char),
33588        &m,
33589        &n,
33590        alpha.as_ptr() as *const _,
33591        a.as_ptr() as *const _,
33592        b.as_mut_ptr() as *mut _,
33593        &ldb,
33594    )
33595}
33596
33597#[inline]
33598pub unsafe fn dtfsm(
33599    transr: u8,
33600    side: u8,
33601    uplo: u8,
33602    trans: u8,
33603    diag: u8,
33604    m: i32,
33605    n: i32,
33606    alpha: &[f64],
33607    a: &[f64],
33608    b: &mut [f64],
33609    ldb: i32,
33610) {
33611    ffi::dtfsm_(
33612        &(transr as c_char),
33613        &(side as c_char),
33614        &(uplo as c_char),
33615        &(trans as c_char),
33616        &(diag as c_char),
33617        &m,
33618        &n,
33619        alpha.as_ptr(),
33620        a.as_ptr(),
33621        b.as_mut_ptr(),
33622        &ldb,
33623    )
33624}
33625
33626#[inline]
33627pub unsafe fn stfsm(
33628    transr: u8,
33629    side: u8,
33630    uplo: u8,
33631    trans: u8,
33632    diag: u8,
33633    m: i32,
33634    n: i32,
33635    alpha: &[f32],
33636    a: &[f32],
33637    b: &mut [f32],
33638    ldb: i32,
33639) {
33640    ffi::stfsm_(
33641        &(transr as c_char),
33642        &(side as c_char),
33643        &(uplo as c_char),
33644        &(trans as c_char),
33645        &(diag as c_char),
33646        &m,
33647        &n,
33648        alpha.as_ptr(),
33649        a.as_ptr(),
33650        b.as_mut_ptr(),
33651        &ldb,
33652    )
33653}
33654
33655#[inline]
33656pub unsafe fn ztfsm(
33657    transr: u8,
33658    side: u8,
33659    uplo: u8,
33660    trans: u8,
33661    diag: u8,
33662    m: i32,
33663    n: i32,
33664    alpha: &[c64],
33665    a: &[c64],
33666    b: &mut [c64],
33667    ldb: i32,
33668) {
33669    ffi::ztfsm_(
33670        &(transr as c_char),
33671        &(side as c_char),
33672        &(uplo as c_char),
33673        &(trans as c_char),
33674        &(diag as c_char),
33675        &m,
33676        &n,
33677        alpha.as_ptr() as *const _,
33678        a.as_ptr() as *const _,
33679        b.as_mut_ptr() as *mut _,
33680        &ldb,
33681    )
33682}
33683
33684#[inline]
33685pub unsafe fn ctftri(transr: u8, uplo: u8, diag: u8, n: i32, a: &mut [c32], info: &mut i32) {
33686    ffi::ctftri_(
33687        &(transr as c_char),
33688        &(uplo as c_char),
33689        &(diag as c_char),
33690        &n,
33691        a.as_mut_ptr() as *mut _,
33692        info,
33693    )
33694}
33695
33696#[inline]
33697pub unsafe fn dtftri(transr: u8, uplo: u8, diag: u8, n: i32, a: &mut [f64], info: &mut i32) {
33698    ffi::dtftri_(
33699        &(transr as c_char),
33700        &(uplo as c_char),
33701        &(diag as c_char),
33702        &n,
33703        a.as_mut_ptr(),
33704        info,
33705    )
33706}
33707
33708#[inline]
33709pub unsafe fn stftri(transr: u8, uplo: u8, diag: u8, n: i32, a: &mut [f32], info: &mut i32) {
33710    ffi::stftri_(
33711        &(transr as c_char),
33712        &(uplo as c_char),
33713        &(diag as c_char),
33714        &n,
33715        a.as_mut_ptr(),
33716        info,
33717    )
33718}
33719
33720#[inline]
33721pub unsafe fn ztftri(transr: u8, uplo: u8, diag: u8, n: i32, a: &mut [c64], info: &mut i32) {
33722    ffi::ztftri_(
33723        &(transr as c_char),
33724        &(uplo as c_char),
33725        &(diag as c_char),
33726        &n,
33727        a.as_mut_ptr() as *mut _,
33728        info,
33729    )
33730}
33731
33732#[inline]
33733pub unsafe fn ctfttp(transr: u8, uplo: u8, n: i32, arf: &[c32], ap: &mut [c32], info: &mut i32) {
33734    ffi::ctfttp_(
33735        &(transr as c_char),
33736        &(uplo as c_char),
33737        &n,
33738        arf.as_ptr() as *const _,
33739        ap.as_mut_ptr() as *mut _,
33740        info,
33741    )
33742}
33743
33744#[inline]
33745pub unsafe fn dtfttp(transr: u8, uplo: u8, n: i32, arf: &[f64], ap: &mut [f64], info: &mut i32) {
33746    ffi::dtfttp_(
33747        &(transr as c_char),
33748        &(uplo as c_char),
33749        &n,
33750        arf.as_ptr(),
33751        ap.as_mut_ptr(),
33752        info,
33753    )
33754}
33755
33756#[inline]
33757pub unsafe fn stfttp(transr: u8, uplo: u8, n: i32, arf: &[f32], ap: &mut [f32], info: &mut i32) {
33758    ffi::stfttp_(
33759        &(transr as c_char),
33760        &(uplo as c_char),
33761        &n,
33762        arf.as_ptr(),
33763        ap.as_mut_ptr(),
33764        info,
33765    )
33766}
33767
33768#[inline]
33769pub unsafe fn ztfttp(transr: u8, uplo: u8, n: i32, arf: &[c64], ap: &mut [c64], info: &mut i32) {
33770    ffi::ztfttp_(
33771        &(transr as c_char),
33772        &(uplo as c_char),
33773        &n,
33774        arf.as_ptr() as *const _,
33775        ap.as_mut_ptr() as *mut _,
33776        info,
33777    )
33778}
33779
33780#[inline]
33781pub unsafe fn ctfttr(
33782    transr: u8,
33783    uplo: u8,
33784    n: i32,
33785    arf: &[c32],
33786    a: &mut [c32],
33787    lda: i32,
33788    info: &mut i32,
33789) {
33790    ffi::ctfttr_(
33791        &(transr as c_char),
33792        &(uplo as c_char),
33793        &n,
33794        arf.as_ptr() as *const _,
33795        a.as_mut_ptr() as *mut _,
33796        &lda,
33797        info,
33798    )
33799}
33800
33801#[inline]
33802pub unsafe fn dtfttr(
33803    transr: u8,
33804    uplo: u8,
33805    n: i32,
33806    arf: &[f64],
33807    a: &mut [f64],
33808    lda: i32,
33809    info: &mut i32,
33810) {
33811    ffi::dtfttr_(
33812        &(transr as c_char),
33813        &(uplo as c_char),
33814        &n,
33815        arf.as_ptr(),
33816        a.as_mut_ptr(),
33817        &lda,
33818        info,
33819    )
33820}
33821
33822#[inline]
33823pub unsafe fn stfttr(
33824    transr: u8,
33825    uplo: u8,
33826    n: i32,
33827    arf: &[f32],
33828    a: &mut [f32],
33829    lda: i32,
33830    info: &mut i32,
33831) {
33832    ffi::stfttr_(
33833        &(transr as c_char),
33834        &(uplo as c_char),
33835        &n,
33836        arf.as_ptr(),
33837        a.as_mut_ptr(),
33838        &lda,
33839        info,
33840    )
33841}
33842
33843#[inline]
33844pub unsafe fn ztfttr(
33845    transr: u8,
33846    uplo: u8,
33847    n: i32,
33848    arf: &[c64],
33849    a: &mut [c64],
33850    lda: i32,
33851    info: &mut i32,
33852) {
33853    ffi::ztfttr_(
33854        &(transr as c_char),
33855        &(uplo as c_char),
33856        &n,
33857        arf.as_ptr() as *const _,
33858        a.as_mut_ptr() as *mut _,
33859        &lda,
33860        info,
33861    )
33862}
33863
33864#[inline]
33865pub unsafe fn ctgevc(
33866    side: u8,
33867    howmny: u8,
33868    select: &[i32],
33869    n: i32,
33870    s: &[c32],
33871    lds: i32,
33872    p: &[c32],
33873    ldp: i32,
33874    vl: &mut [c32],
33875    ldvl: i32,
33876    vr: &mut [c32],
33877    ldvr: i32,
33878    mm: i32,
33879    m: &mut i32,
33880    work: &mut [c32],
33881    rwork: &mut [f32],
33882    info: &mut i32,
33883) {
33884    ffi::ctgevc_(
33885        &(side as c_char),
33886        &(howmny as c_char),
33887        select.as_ptr(),
33888        &n,
33889        s.as_ptr() as *const _,
33890        &lds,
33891        p.as_ptr() as *const _,
33892        &ldp,
33893        vl.as_mut_ptr() as *mut _,
33894        &ldvl,
33895        vr.as_mut_ptr() as *mut _,
33896        &ldvr,
33897        &mm,
33898        m,
33899        work.as_mut_ptr() as *mut _,
33900        rwork.as_mut_ptr(),
33901        info,
33902    )
33903}
33904
33905#[inline]
33906pub unsafe fn dtgevc(
33907    side: u8,
33908    howmny: u8,
33909    select: &[i32],
33910    n: i32,
33911    s: &[f64],
33912    lds: i32,
33913    p: &[f64],
33914    ldp: i32,
33915    vl: &mut [f64],
33916    ldvl: i32,
33917    vr: &mut [f64],
33918    ldvr: i32,
33919    mm: i32,
33920    m: &mut i32,
33921    work: &mut [f64],
33922    info: &mut i32,
33923) {
33924    ffi::dtgevc_(
33925        &(side as c_char),
33926        &(howmny as c_char),
33927        select.as_ptr(),
33928        &n,
33929        s.as_ptr(),
33930        &lds,
33931        p.as_ptr(),
33932        &ldp,
33933        vl.as_mut_ptr(),
33934        &ldvl,
33935        vr.as_mut_ptr(),
33936        &ldvr,
33937        &mm,
33938        m,
33939        work.as_mut_ptr(),
33940        info,
33941    )
33942}
33943
33944#[inline]
33945pub unsafe fn stgevc(
33946    side: u8,
33947    howmny: u8,
33948    select: &[i32],
33949    n: i32,
33950    s: &[f32],
33951    lds: i32,
33952    p: &[f32],
33953    ldp: i32,
33954    vl: &mut [f32],
33955    ldvl: i32,
33956    vr: &mut [f32],
33957    ldvr: i32,
33958    mm: i32,
33959    m: &mut i32,
33960    work: &mut [f32],
33961    info: &mut i32,
33962) {
33963    ffi::stgevc_(
33964        &(side as c_char),
33965        &(howmny as c_char),
33966        select.as_ptr(),
33967        &n,
33968        s.as_ptr(),
33969        &lds,
33970        p.as_ptr(),
33971        &ldp,
33972        vl.as_mut_ptr(),
33973        &ldvl,
33974        vr.as_mut_ptr(),
33975        &ldvr,
33976        &mm,
33977        m,
33978        work.as_mut_ptr(),
33979        info,
33980    )
33981}
33982
33983#[inline]
33984pub unsafe fn ztgevc(
33985    side: u8,
33986    howmny: u8,
33987    select: &[i32],
33988    n: i32,
33989    s: &[c64],
33990    lds: i32,
33991    p: &[c64],
33992    ldp: i32,
33993    vl: &mut [c64],
33994    ldvl: i32,
33995    vr: &mut [c64],
33996    ldvr: i32,
33997    mm: i32,
33998    m: &mut i32,
33999    work: &mut [c64],
34000    rwork: &mut [f64],
34001    info: &mut i32,
34002) {
34003    ffi::ztgevc_(
34004        &(side as c_char),
34005        &(howmny as c_char),
34006        select.as_ptr(),
34007        &n,
34008        s.as_ptr() as *const _,
34009        &lds,
34010        p.as_ptr() as *const _,
34011        &ldp,
34012        vl.as_mut_ptr() as *mut _,
34013        &ldvl,
34014        vr.as_mut_ptr() as *mut _,
34015        &ldvr,
34016        &mm,
34017        m,
34018        work.as_mut_ptr() as *mut _,
34019        rwork.as_mut_ptr(),
34020        info,
34021    )
34022}
34023
34024#[inline]
34025pub unsafe fn ctgexc(
34026    wantq: &[i32],
34027    wantz: &[i32],
34028    n: i32,
34029    a: &mut [c32],
34030    lda: i32,
34031    b: &mut [c32],
34032    ldb: i32,
34033    q: &mut [c32],
34034    ldq: i32,
34035    z: &mut [c32],
34036    ldz: i32,
34037    ifst: &[i32],
34038    ilst: &mut [i32],
34039    info: &mut i32,
34040) {
34041    ffi::ctgexc_(
34042        wantq.as_ptr(),
34043        wantz.as_ptr(),
34044        &n,
34045        a.as_mut_ptr() as *mut _,
34046        &lda,
34047        b.as_mut_ptr() as *mut _,
34048        &ldb,
34049        q.as_mut_ptr() as *mut _,
34050        &ldq,
34051        z.as_mut_ptr() as *mut _,
34052        &ldz,
34053        ifst.as_ptr(),
34054        ilst.as_mut_ptr(),
34055        info,
34056    )
34057}
34058
34059#[inline]
34060pub unsafe fn dtgexc(
34061    wantq: &[i32],
34062    wantz: &[i32],
34063    n: i32,
34064    a: &mut [f64],
34065    lda: i32,
34066    b: &mut [f64],
34067    ldb: i32,
34068    q: &mut [f64],
34069    ldq: i32,
34070    z: &mut [f64],
34071    ldz: i32,
34072    ifst: &mut [i32],
34073    ilst: &mut [i32],
34074    work: &mut [f64],
34075    lwork: i32,
34076    info: &mut i32,
34077) {
34078    ffi::dtgexc_(
34079        wantq.as_ptr(),
34080        wantz.as_ptr(),
34081        &n,
34082        a.as_mut_ptr(),
34083        &lda,
34084        b.as_mut_ptr(),
34085        &ldb,
34086        q.as_mut_ptr(),
34087        &ldq,
34088        z.as_mut_ptr(),
34089        &ldz,
34090        ifst.as_mut_ptr(),
34091        ilst.as_mut_ptr(),
34092        work.as_mut_ptr(),
34093        &lwork,
34094        info,
34095    )
34096}
34097
34098#[inline]
34099pub unsafe fn stgexc(
34100    wantq: &[i32],
34101    wantz: &[i32],
34102    n: i32,
34103    a: &mut [f32],
34104    lda: i32,
34105    b: &mut [f32],
34106    ldb: i32,
34107    q: &mut [f32],
34108    ldq: i32,
34109    z: &mut [f32],
34110    ldz: i32,
34111    ifst: &mut [i32],
34112    ilst: &mut [i32],
34113    work: &mut [f32],
34114    lwork: i32,
34115    info: &mut i32,
34116) {
34117    ffi::stgexc_(
34118        wantq.as_ptr(),
34119        wantz.as_ptr(),
34120        &n,
34121        a.as_mut_ptr(),
34122        &lda,
34123        b.as_mut_ptr(),
34124        &ldb,
34125        q.as_mut_ptr(),
34126        &ldq,
34127        z.as_mut_ptr(),
34128        &ldz,
34129        ifst.as_mut_ptr(),
34130        ilst.as_mut_ptr(),
34131        work.as_mut_ptr(),
34132        &lwork,
34133        info,
34134    )
34135}
34136
34137#[inline]
34138pub unsafe fn ztgexc(
34139    wantq: &[i32],
34140    wantz: &[i32],
34141    n: i32,
34142    a: &mut [c64],
34143    lda: i32,
34144    b: &mut [c64],
34145    ldb: i32,
34146    q: &mut [c64],
34147    ldq: i32,
34148    z: &mut [c64],
34149    ldz: i32,
34150    ifst: &[i32],
34151    ilst: &mut [i32],
34152    info: &mut i32,
34153) {
34154    ffi::ztgexc_(
34155        wantq.as_ptr(),
34156        wantz.as_ptr(),
34157        &n,
34158        a.as_mut_ptr() as *mut _,
34159        &lda,
34160        b.as_mut_ptr() as *mut _,
34161        &ldb,
34162        q.as_mut_ptr() as *mut _,
34163        &ldq,
34164        z.as_mut_ptr() as *mut _,
34165        &ldz,
34166        ifst.as_ptr(),
34167        ilst.as_mut_ptr(),
34168        info,
34169    )
34170}
34171
34172#[inline]
34173pub unsafe fn ctgsen(
34174    ijob: &[i32],
34175    wantq: &[i32],
34176    wantz: &[i32],
34177    select: &[i32],
34178    n: i32,
34179    a: &mut [c32],
34180    lda: i32,
34181    b: &mut [c32],
34182    ldb: i32,
34183    alpha: &mut [c32],
34184    beta: &mut [c32],
34185    q: &mut [c32],
34186    ldq: i32,
34187    z: &mut [c32],
34188    ldz: i32,
34189    m: &mut i32,
34190    pl: &mut [f32],
34191    pr: &mut [f32],
34192    dif: &mut [f32],
34193    work: &mut [c32],
34194    lwork: i32,
34195    iwork: &mut [i32],
34196    liwork: i32,
34197    info: &mut i32,
34198) {
34199    ffi::ctgsen_(
34200        ijob.as_ptr(),
34201        wantq.as_ptr(),
34202        wantz.as_ptr(),
34203        select.as_ptr(),
34204        &n,
34205        a.as_mut_ptr() as *mut _,
34206        &lda,
34207        b.as_mut_ptr() as *mut _,
34208        &ldb,
34209        alpha.as_mut_ptr() as *mut _,
34210        beta.as_mut_ptr() as *mut _,
34211        q.as_mut_ptr() as *mut _,
34212        &ldq,
34213        z.as_mut_ptr() as *mut _,
34214        &ldz,
34215        m,
34216        pl.as_mut_ptr(),
34217        pr.as_mut_ptr(),
34218        dif.as_mut_ptr(),
34219        work.as_mut_ptr() as *mut _,
34220        &lwork,
34221        iwork.as_mut_ptr(),
34222        &liwork,
34223        info,
34224    )
34225}
34226
34227#[inline]
34228pub unsafe fn dtgsen(
34229    ijob: &[i32],
34230    wantq: &[i32],
34231    wantz: &[i32],
34232    select: &[i32],
34233    n: i32,
34234    a: &mut [f64],
34235    lda: i32,
34236    b: &mut [f64],
34237    ldb: i32,
34238    alphar: &mut [f64],
34239    alphai: &mut [f64],
34240    beta: &mut [f64],
34241    q: &mut [f64],
34242    ldq: i32,
34243    z: &mut [f64],
34244    ldz: i32,
34245    m: &mut i32,
34246    pl: &mut [f64],
34247    pr: &mut [f64],
34248    dif: &mut [f64],
34249    work: &mut [f64],
34250    lwork: i32,
34251    iwork: &mut [i32],
34252    liwork: i32,
34253    info: &mut i32,
34254) {
34255    ffi::dtgsen_(
34256        ijob.as_ptr(),
34257        wantq.as_ptr(),
34258        wantz.as_ptr(),
34259        select.as_ptr(),
34260        &n,
34261        a.as_mut_ptr(),
34262        &lda,
34263        b.as_mut_ptr(),
34264        &ldb,
34265        alphar.as_mut_ptr(),
34266        alphai.as_mut_ptr(),
34267        beta.as_mut_ptr(),
34268        q.as_mut_ptr(),
34269        &ldq,
34270        z.as_mut_ptr(),
34271        &ldz,
34272        m,
34273        pl.as_mut_ptr(),
34274        pr.as_mut_ptr(),
34275        dif.as_mut_ptr(),
34276        work.as_mut_ptr(),
34277        &lwork,
34278        iwork.as_mut_ptr(),
34279        &liwork,
34280        info,
34281    )
34282}
34283
34284#[inline]
34285pub unsafe fn stgsen(
34286    ijob: &[i32],
34287    wantq: &[i32],
34288    wantz: &[i32],
34289    select: &[i32],
34290    n: i32,
34291    a: &mut [f32],
34292    lda: i32,
34293    b: &mut [f32],
34294    ldb: i32,
34295    alphar: &mut [f32],
34296    alphai: &mut [f32],
34297    beta: &mut [f32],
34298    q: &mut [f32],
34299    ldq: i32,
34300    z: &mut [f32],
34301    ldz: i32,
34302    m: &mut i32,
34303    pl: &mut [f32],
34304    pr: &mut [f32],
34305    dif: &mut [f32],
34306    work: &mut [f32],
34307    lwork: i32,
34308    iwork: &mut [i32],
34309    liwork: i32,
34310    info: &mut i32,
34311) {
34312    ffi::stgsen_(
34313        ijob.as_ptr(),
34314        wantq.as_ptr(),
34315        wantz.as_ptr(),
34316        select.as_ptr(),
34317        &n,
34318        a.as_mut_ptr(),
34319        &lda,
34320        b.as_mut_ptr(),
34321        &ldb,
34322        alphar.as_mut_ptr(),
34323        alphai.as_mut_ptr(),
34324        beta.as_mut_ptr(),
34325        q.as_mut_ptr(),
34326        &ldq,
34327        z.as_mut_ptr(),
34328        &ldz,
34329        m,
34330        pl.as_mut_ptr(),
34331        pr.as_mut_ptr(),
34332        dif.as_mut_ptr(),
34333        work.as_mut_ptr(),
34334        &lwork,
34335        iwork.as_mut_ptr(),
34336        &liwork,
34337        info,
34338    )
34339}
34340
34341#[inline]
34342pub unsafe fn ztgsen(
34343    ijob: &[i32],
34344    wantq: &[i32],
34345    wantz: &[i32],
34346    select: &[i32],
34347    n: i32,
34348    a: &mut [c64],
34349    lda: i32,
34350    b: &mut [c64],
34351    ldb: i32,
34352    alpha: &mut [c64],
34353    beta: &mut [c64],
34354    q: &mut [c64],
34355    ldq: i32,
34356    z: &mut [c64],
34357    ldz: i32,
34358    m: &mut i32,
34359    pl: &mut [f64],
34360    pr: &mut [f64],
34361    dif: &mut [f64],
34362    work: &mut [c64],
34363    lwork: i32,
34364    iwork: &mut [i32],
34365    liwork: i32,
34366    info: &mut i32,
34367) {
34368    ffi::ztgsen_(
34369        ijob.as_ptr(),
34370        wantq.as_ptr(),
34371        wantz.as_ptr(),
34372        select.as_ptr(),
34373        &n,
34374        a.as_mut_ptr() as *mut _,
34375        &lda,
34376        b.as_mut_ptr() as *mut _,
34377        &ldb,
34378        alpha.as_mut_ptr() as *mut _,
34379        beta.as_mut_ptr() as *mut _,
34380        q.as_mut_ptr() as *mut _,
34381        &ldq,
34382        z.as_mut_ptr() as *mut _,
34383        &ldz,
34384        m,
34385        pl.as_mut_ptr(),
34386        pr.as_mut_ptr(),
34387        dif.as_mut_ptr(),
34388        work.as_mut_ptr() as *mut _,
34389        &lwork,
34390        iwork.as_mut_ptr(),
34391        &liwork,
34392        info,
34393    )
34394}
34395
34396#[inline]
34397pub unsafe fn ctgsja(
34398    jobu: u8,
34399    jobv: u8,
34400    jobq: u8,
34401    m: i32,
34402    p: i32,
34403    n: i32,
34404    k: i32,
34405    l: i32,
34406    a: &mut [c32],
34407    lda: i32,
34408    b: &mut [c32],
34409    ldb: i32,
34410    tola: f32,
34411    tolb: f32,
34412    alpha: &mut [f32],
34413    beta: &mut [f32],
34414    u: &mut [c32],
34415    ldu: i32,
34416    v: &mut [c32],
34417    ldv: i32,
34418    q: &mut [c32],
34419    ldq: i32,
34420    work: &mut [c32],
34421    ncycle: &mut [i32],
34422    info: &mut i32,
34423) {
34424    ffi::ctgsja_(
34425        &(jobu as c_char),
34426        &(jobv as c_char),
34427        &(jobq as c_char),
34428        &m,
34429        &p,
34430        &n,
34431        &k,
34432        &l,
34433        a.as_mut_ptr() as *mut _,
34434        &lda,
34435        b.as_mut_ptr() as *mut _,
34436        &ldb,
34437        &tola,
34438        &tolb,
34439        alpha.as_mut_ptr(),
34440        beta.as_mut_ptr(),
34441        u.as_mut_ptr() as *mut _,
34442        &ldu,
34443        v.as_mut_ptr() as *mut _,
34444        &ldv,
34445        q.as_mut_ptr() as *mut _,
34446        &ldq,
34447        work.as_mut_ptr() as *mut _,
34448        ncycle.as_mut_ptr(),
34449        info,
34450    )
34451}
34452
34453#[inline]
34454pub unsafe fn dtgsja(
34455    jobu: u8,
34456    jobv: u8,
34457    jobq: u8,
34458    m: i32,
34459    p: i32,
34460    n: i32,
34461    k: i32,
34462    l: i32,
34463    a: &mut [f64],
34464    lda: i32,
34465    b: &mut [f64],
34466    ldb: i32,
34467    tola: f64,
34468    tolb: f64,
34469    alpha: &mut [f64],
34470    beta: &mut [f64],
34471    u: &mut [f64],
34472    ldu: i32,
34473    v: &mut [f64],
34474    ldv: i32,
34475    q: &mut [f64],
34476    ldq: i32,
34477    work: &mut [f64],
34478    ncycle: &mut [i32],
34479    info: &mut i32,
34480) {
34481    ffi::dtgsja_(
34482        &(jobu as c_char),
34483        &(jobv as c_char),
34484        &(jobq as c_char),
34485        &m,
34486        &p,
34487        &n,
34488        &k,
34489        &l,
34490        a.as_mut_ptr(),
34491        &lda,
34492        b.as_mut_ptr(),
34493        &ldb,
34494        &tola,
34495        &tolb,
34496        alpha.as_mut_ptr(),
34497        beta.as_mut_ptr(),
34498        u.as_mut_ptr(),
34499        &ldu,
34500        v.as_mut_ptr(),
34501        &ldv,
34502        q.as_mut_ptr(),
34503        &ldq,
34504        work.as_mut_ptr(),
34505        ncycle.as_mut_ptr(),
34506        info,
34507    )
34508}
34509
34510#[inline]
34511pub unsafe fn stgsja(
34512    jobu: u8,
34513    jobv: u8,
34514    jobq: u8,
34515    m: i32,
34516    p: i32,
34517    n: i32,
34518    k: i32,
34519    l: i32,
34520    a: &mut [f32],
34521    lda: i32,
34522    b: &mut [f32],
34523    ldb: i32,
34524    tola: f32,
34525    tolb: f32,
34526    alpha: &mut [f32],
34527    beta: &mut [f32],
34528    u: &mut [f32],
34529    ldu: i32,
34530    v: &mut [f32],
34531    ldv: i32,
34532    q: &mut [f32],
34533    ldq: i32,
34534    work: &mut [f32],
34535    ncycle: &mut [i32],
34536    info: &mut i32,
34537) {
34538    ffi::stgsja_(
34539        &(jobu as c_char),
34540        &(jobv as c_char),
34541        &(jobq as c_char),
34542        &m,
34543        &p,
34544        &n,
34545        &k,
34546        &l,
34547        a.as_mut_ptr(),
34548        &lda,
34549        b.as_mut_ptr(),
34550        &ldb,
34551        &tola,
34552        &tolb,
34553        alpha.as_mut_ptr(),
34554        beta.as_mut_ptr(),
34555        u.as_mut_ptr(),
34556        &ldu,
34557        v.as_mut_ptr(),
34558        &ldv,
34559        q.as_mut_ptr(),
34560        &ldq,
34561        work.as_mut_ptr(),
34562        ncycle.as_mut_ptr(),
34563        info,
34564    )
34565}
34566
34567#[inline]
34568pub unsafe fn ztgsja(
34569    jobu: u8,
34570    jobv: u8,
34571    jobq: u8,
34572    m: i32,
34573    p: i32,
34574    n: i32,
34575    k: i32,
34576    l: i32,
34577    a: &mut [c64],
34578    lda: i32,
34579    b: &mut [c64],
34580    ldb: i32,
34581    tola: f64,
34582    tolb: f64,
34583    alpha: &mut [f64],
34584    beta: &mut [f64],
34585    u: &mut [c64],
34586    ldu: i32,
34587    v: &mut [c64],
34588    ldv: i32,
34589    q: &mut [c64],
34590    ldq: i32,
34591    work: &mut [c64],
34592    ncycle: &mut [i32],
34593    info: &mut i32,
34594) {
34595    ffi::ztgsja_(
34596        &(jobu as c_char),
34597        &(jobv as c_char),
34598        &(jobq as c_char),
34599        &m,
34600        &p,
34601        &n,
34602        &k,
34603        &l,
34604        a.as_mut_ptr() as *mut _,
34605        &lda,
34606        b.as_mut_ptr() as *mut _,
34607        &ldb,
34608        &tola,
34609        &tolb,
34610        alpha.as_mut_ptr(),
34611        beta.as_mut_ptr(),
34612        u.as_mut_ptr() as *mut _,
34613        &ldu,
34614        v.as_mut_ptr() as *mut _,
34615        &ldv,
34616        q.as_mut_ptr() as *mut _,
34617        &ldq,
34618        work.as_mut_ptr() as *mut _,
34619        ncycle.as_mut_ptr(),
34620        info,
34621    )
34622}
34623
34624#[inline]
34625pub unsafe fn ctgsna(
34626    job: u8,
34627    howmny: u8,
34628    select: &[i32],
34629    n: i32,
34630    a: &[c32],
34631    lda: i32,
34632    b: &[c32],
34633    ldb: i32,
34634    vl: &[c32],
34635    ldvl: i32,
34636    vr: &[c32],
34637    ldvr: i32,
34638    s: &mut [f32],
34639    dif: &mut [f32],
34640    mm: i32,
34641    m: &mut i32,
34642    work: &mut [c32],
34643    lwork: i32,
34644    iwork: &mut [i32],
34645    info: &mut i32,
34646) {
34647    ffi::ctgsna_(
34648        &(job as c_char),
34649        &(howmny as c_char),
34650        select.as_ptr(),
34651        &n,
34652        a.as_ptr() as *const _,
34653        &lda,
34654        b.as_ptr() as *const _,
34655        &ldb,
34656        vl.as_ptr() as *const _,
34657        &ldvl,
34658        vr.as_ptr() as *const _,
34659        &ldvr,
34660        s.as_mut_ptr(),
34661        dif.as_mut_ptr(),
34662        &mm,
34663        m,
34664        work.as_mut_ptr() as *mut _,
34665        &lwork,
34666        iwork.as_mut_ptr(),
34667        info,
34668    )
34669}
34670
34671#[inline]
34672pub unsafe fn dtgsna(
34673    job: u8,
34674    howmny: u8,
34675    select: &[i32],
34676    n: i32,
34677    a: &[f64],
34678    lda: i32,
34679    b: &[f64],
34680    ldb: i32,
34681    vl: &[f64],
34682    ldvl: i32,
34683    vr: &[f64],
34684    ldvr: i32,
34685    s: &mut [f64],
34686    dif: &mut [f64],
34687    mm: i32,
34688    m: &mut i32,
34689    work: &mut [f64],
34690    lwork: i32,
34691    iwork: &mut [i32],
34692    info: &mut i32,
34693) {
34694    ffi::dtgsna_(
34695        &(job as c_char),
34696        &(howmny as c_char),
34697        select.as_ptr(),
34698        &n,
34699        a.as_ptr(),
34700        &lda,
34701        b.as_ptr(),
34702        &ldb,
34703        vl.as_ptr(),
34704        &ldvl,
34705        vr.as_ptr(),
34706        &ldvr,
34707        s.as_mut_ptr(),
34708        dif.as_mut_ptr(),
34709        &mm,
34710        m,
34711        work.as_mut_ptr(),
34712        &lwork,
34713        iwork.as_mut_ptr(),
34714        info,
34715    )
34716}
34717
34718#[inline]
34719pub unsafe fn stgsna(
34720    job: u8,
34721    howmny: u8,
34722    select: &[i32],
34723    n: i32,
34724    a: &[f32],
34725    lda: i32,
34726    b: &[f32],
34727    ldb: i32,
34728    vl: &[f32],
34729    ldvl: i32,
34730    vr: &[f32],
34731    ldvr: i32,
34732    s: &mut [f32],
34733    dif: &mut [f32],
34734    mm: i32,
34735    m: &mut i32,
34736    work: &mut [f32],
34737    lwork: i32,
34738    iwork: &mut [i32],
34739    info: &mut i32,
34740) {
34741    ffi::stgsna_(
34742        &(job as c_char),
34743        &(howmny as c_char),
34744        select.as_ptr(),
34745        &n,
34746        a.as_ptr(),
34747        &lda,
34748        b.as_ptr(),
34749        &ldb,
34750        vl.as_ptr(),
34751        &ldvl,
34752        vr.as_ptr(),
34753        &ldvr,
34754        s.as_mut_ptr(),
34755        dif.as_mut_ptr(),
34756        &mm,
34757        m,
34758        work.as_mut_ptr(),
34759        &lwork,
34760        iwork.as_mut_ptr(),
34761        info,
34762    )
34763}
34764
34765#[inline]
34766pub unsafe fn ztgsna(
34767    job: u8,
34768    howmny: u8,
34769    select: &[i32],
34770    n: i32,
34771    a: &[c64],
34772    lda: i32,
34773    b: &[c64],
34774    ldb: i32,
34775    vl: &[c64],
34776    ldvl: i32,
34777    vr: &[c64],
34778    ldvr: i32,
34779    s: &mut [f64],
34780    dif: &mut [f64],
34781    mm: i32,
34782    m: &mut i32,
34783    work: &mut [c64],
34784    lwork: i32,
34785    iwork: &mut [i32],
34786    info: &mut i32,
34787) {
34788    ffi::ztgsna_(
34789        &(job as c_char),
34790        &(howmny as c_char),
34791        select.as_ptr(),
34792        &n,
34793        a.as_ptr() as *const _,
34794        &lda,
34795        b.as_ptr() as *const _,
34796        &ldb,
34797        vl.as_ptr() as *const _,
34798        &ldvl,
34799        vr.as_ptr() as *const _,
34800        &ldvr,
34801        s.as_mut_ptr(),
34802        dif.as_mut_ptr(),
34803        &mm,
34804        m,
34805        work.as_mut_ptr() as *mut _,
34806        &lwork,
34807        iwork.as_mut_ptr(),
34808        info,
34809    )
34810}
34811
34812#[inline]
34813pub unsafe fn ctgsyl(
34814    trans: u8,
34815    ijob: &[i32],
34816    m: i32,
34817    n: i32,
34818    a: &[c32],
34819    lda: i32,
34820    b: &[c32],
34821    ldb: i32,
34822    c: &mut [c32],
34823    ldc: i32,
34824    d: &[c32],
34825    ldd: i32,
34826    e: &[c32],
34827    lde: i32,
34828    f: &mut [c32],
34829    ldf: i32,
34830    dif: &mut f32,
34831    scale: &mut [f32],
34832    work: &mut [c32],
34833    lwork: i32,
34834    iwork: &mut [i32],
34835    info: &mut i32,
34836) {
34837    ffi::ctgsyl_(
34838        &(trans as c_char),
34839        ijob.as_ptr(),
34840        &m,
34841        &n,
34842        a.as_ptr() as *const _,
34843        &lda,
34844        b.as_ptr() as *const _,
34845        &ldb,
34846        c.as_mut_ptr() as *mut _,
34847        &ldc,
34848        d.as_ptr() as *const _,
34849        &ldd,
34850        e.as_ptr() as *const _,
34851        &lde,
34852        f.as_mut_ptr() as *mut _,
34853        &ldf,
34854        dif,
34855        scale.as_mut_ptr(),
34856        work.as_mut_ptr() as *mut _,
34857        &lwork,
34858        iwork.as_mut_ptr(),
34859        info,
34860    )
34861}
34862
34863#[inline]
34864pub unsafe fn dtgsyl(
34865    trans: u8,
34866    ijob: &[i32],
34867    m: i32,
34868    n: i32,
34869    a: &[f64],
34870    lda: i32,
34871    b: &[f64],
34872    ldb: i32,
34873    c: &mut [f64],
34874    ldc: i32,
34875    d: &[f64],
34876    ldd: i32,
34877    e: &[f64],
34878    lde: i32,
34879    f: &mut [f64],
34880    ldf: i32,
34881    dif: &mut f64,
34882    scale: &mut [f64],
34883    work: &mut [f64],
34884    lwork: i32,
34885    iwork: &mut [i32],
34886    info: &mut i32,
34887) {
34888    ffi::dtgsyl_(
34889        &(trans as c_char),
34890        ijob.as_ptr(),
34891        &m,
34892        &n,
34893        a.as_ptr(),
34894        &lda,
34895        b.as_ptr(),
34896        &ldb,
34897        c.as_mut_ptr(),
34898        &ldc,
34899        d.as_ptr(),
34900        &ldd,
34901        e.as_ptr(),
34902        &lde,
34903        f.as_mut_ptr(),
34904        &ldf,
34905        dif,
34906        scale.as_mut_ptr(),
34907        work.as_mut_ptr(),
34908        &lwork,
34909        iwork.as_mut_ptr(),
34910        info,
34911    )
34912}
34913
34914#[inline]
34915pub unsafe fn stgsyl(
34916    trans: u8,
34917    ijob: &[i32],
34918    m: i32,
34919    n: i32,
34920    a: &[f32],
34921    lda: i32,
34922    b: &[f32],
34923    ldb: i32,
34924    c: &mut [f32],
34925    ldc: i32,
34926    d: &[f32],
34927    ldd: i32,
34928    e: &[f32],
34929    lde: i32,
34930    f: &mut [f32],
34931    ldf: i32,
34932    dif: &mut f32,
34933    scale: &mut [f32],
34934    work: &mut [f32],
34935    lwork: i32,
34936    iwork: &mut [i32],
34937    info: &mut i32,
34938) {
34939    ffi::stgsyl_(
34940        &(trans as c_char),
34941        ijob.as_ptr(),
34942        &m,
34943        &n,
34944        a.as_ptr(),
34945        &lda,
34946        b.as_ptr(),
34947        &ldb,
34948        c.as_mut_ptr(),
34949        &ldc,
34950        d.as_ptr(),
34951        &ldd,
34952        e.as_ptr(),
34953        &lde,
34954        f.as_mut_ptr(),
34955        &ldf,
34956        dif,
34957        scale.as_mut_ptr(),
34958        work.as_mut_ptr(),
34959        &lwork,
34960        iwork.as_mut_ptr(),
34961        info,
34962    )
34963}
34964
34965#[inline]
34966pub unsafe fn ztgsyl(
34967    trans: u8,
34968    ijob: &[i32],
34969    m: i32,
34970    n: i32,
34971    a: &[c64],
34972    lda: i32,
34973    b: &[c64],
34974    ldb: i32,
34975    c: &mut [c64],
34976    ldc: i32,
34977    d: &[c64],
34978    ldd: i32,
34979    e: &[c64],
34980    lde: i32,
34981    f: &mut [c64],
34982    ldf: i32,
34983    dif: &mut f64,
34984    scale: &mut [f64],
34985    work: &mut [c64],
34986    lwork: i32,
34987    iwork: &mut [i32],
34988    info: &mut i32,
34989) {
34990    ffi::ztgsyl_(
34991        &(trans as c_char),
34992        ijob.as_ptr(),
34993        &m,
34994        &n,
34995        a.as_ptr() as *const _,
34996        &lda,
34997        b.as_ptr() as *const _,
34998        &ldb,
34999        c.as_mut_ptr() as *mut _,
35000        &ldc,
35001        d.as_ptr() as *const _,
35002        &ldd,
35003        e.as_ptr() as *const _,
35004        &lde,
35005        f.as_mut_ptr() as *mut _,
35006        &ldf,
35007        dif,
35008        scale.as_mut_ptr(),
35009        work.as_mut_ptr() as *mut _,
35010        &lwork,
35011        iwork.as_mut_ptr(),
35012        info,
35013    )
35014}
35015
35016#[inline]
35017pub unsafe fn ctpcon(
35018    norm: u8,
35019    uplo: u8,
35020    diag: u8,
35021    n: i32,
35022    ap: &[c32],
35023    rcond: &mut f32,
35024    work: &mut [c32],
35025    rwork: &mut [f32],
35026    info: &mut i32,
35027) {
35028    ffi::ctpcon_(
35029        &(norm as c_char),
35030        &(uplo as c_char),
35031        &(diag as c_char),
35032        &n,
35033        ap.as_ptr() as *const _,
35034        rcond,
35035        work.as_mut_ptr() as *mut _,
35036        rwork.as_mut_ptr(),
35037        info,
35038    )
35039}
35040
35041#[inline]
35042pub unsafe fn dtpcon(
35043    norm: u8,
35044    uplo: u8,
35045    diag: u8,
35046    n: i32,
35047    ap: &[f64],
35048    rcond: &mut f64,
35049    work: &mut [f64],
35050    iwork: &mut [i32],
35051    info: &mut i32,
35052) {
35053    ffi::dtpcon_(
35054        &(norm as c_char),
35055        &(uplo as c_char),
35056        &(diag as c_char),
35057        &n,
35058        ap.as_ptr(),
35059        rcond,
35060        work.as_mut_ptr(),
35061        iwork.as_mut_ptr(),
35062        info,
35063    )
35064}
35065
35066#[inline]
35067pub unsafe fn stpcon(
35068    norm: u8,
35069    uplo: u8,
35070    diag: u8,
35071    n: i32,
35072    ap: &[f32],
35073    rcond: &mut f32,
35074    work: &mut [f32],
35075    iwork: &mut [i32],
35076    info: &mut i32,
35077) {
35078    ffi::stpcon_(
35079        &(norm as c_char),
35080        &(uplo as c_char),
35081        &(diag as c_char),
35082        &n,
35083        ap.as_ptr(),
35084        rcond,
35085        work.as_mut_ptr(),
35086        iwork.as_mut_ptr(),
35087        info,
35088    )
35089}
35090
35091#[inline]
35092pub unsafe fn ztpcon(
35093    norm: u8,
35094    uplo: u8,
35095    diag: u8,
35096    n: i32,
35097    ap: &[c64],
35098    rcond: &mut f64,
35099    work: &mut [c64],
35100    rwork: &mut [f64],
35101    info: &mut i32,
35102) {
35103    ffi::ztpcon_(
35104        &(norm as c_char),
35105        &(uplo as c_char),
35106        &(diag as c_char),
35107        &n,
35108        ap.as_ptr() as *const _,
35109        rcond,
35110        work.as_mut_ptr() as *mut _,
35111        rwork.as_mut_ptr(),
35112        info,
35113    )
35114}
35115
35116#[inline]
35117pub unsafe fn ctplqt(
35118    m: i32,
35119    n: i32,
35120    l: i32,
35121    mb: &[i32],
35122    a: &mut [c32],
35123    lda: i32,
35124    b: &mut [c32],
35125    ldb: i32,
35126    t: &mut [c32],
35127    ldt: i32,
35128    work: &mut [c32],
35129    info: &mut i32,
35130) {
35131    ffi::ctplqt_(
35132        &m,
35133        &n,
35134        &l,
35135        mb.as_ptr(),
35136        a.as_mut_ptr() as *mut _,
35137        &lda,
35138        b.as_mut_ptr() as *mut _,
35139        &ldb,
35140        t.as_mut_ptr() as *mut _,
35141        &ldt,
35142        work.as_mut_ptr() as *mut _,
35143        info,
35144    )
35145}
35146
35147#[inline]
35148pub unsafe fn dtplqt(
35149    m: i32,
35150    n: i32,
35151    l: i32,
35152    mb: &[i32],
35153    a: &mut [f64],
35154    lda: i32,
35155    b: &mut [f64],
35156    ldb: i32,
35157    t: &mut [f64],
35158    ldt: i32,
35159    work: &mut [f64],
35160    info: &mut i32,
35161) {
35162    ffi::dtplqt_(
35163        &m,
35164        &n,
35165        &l,
35166        mb.as_ptr(),
35167        a.as_mut_ptr(),
35168        &lda,
35169        b.as_mut_ptr(),
35170        &ldb,
35171        t.as_mut_ptr(),
35172        &ldt,
35173        work.as_mut_ptr(),
35174        info,
35175    )
35176}
35177
35178#[inline]
35179pub unsafe fn stplqt(
35180    m: i32,
35181    n: i32,
35182    l: i32,
35183    mb: &[i32],
35184    a: &mut [f32],
35185    lda: i32,
35186    b: &mut [f32],
35187    ldb: i32,
35188    t: &mut [f32],
35189    ldt: i32,
35190    work: &mut [f32],
35191    info: &mut i32,
35192) {
35193    ffi::stplqt_(
35194        &m,
35195        &n,
35196        &l,
35197        mb.as_ptr(),
35198        a.as_mut_ptr(),
35199        &lda,
35200        b.as_mut_ptr(),
35201        &ldb,
35202        t.as_mut_ptr(),
35203        &ldt,
35204        work.as_mut_ptr(),
35205        info,
35206    )
35207}
35208
35209#[inline]
35210pub unsafe fn ztplqt(
35211    m: i32,
35212    n: i32,
35213    l: i32,
35214    mb: &[i32],
35215    a: &mut [c64],
35216    lda: i32,
35217    b: &mut [c64],
35218    ldb: i32,
35219    t: &mut [c64],
35220    ldt: i32,
35221    work: &mut [c64],
35222    info: &mut i32,
35223) {
35224    ffi::ztplqt_(
35225        &m,
35226        &n,
35227        &l,
35228        mb.as_ptr(),
35229        a.as_mut_ptr() as *mut _,
35230        &lda,
35231        b.as_mut_ptr() as *mut _,
35232        &ldb,
35233        t.as_mut_ptr() as *mut _,
35234        &ldt,
35235        work.as_mut_ptr() as *mut _,
35236        info,
35237    )
35238}
35239
35240#[inline]
35241pub unsafe fn ctplqt2(
35242    m: i32,
35243    n: i32,
35244    l: i32,
35245    a: &mut [c32],
35246    lda: i32,
35247    b: &mut [c32],
35248    ldb: i32,
35249    t: &mut [c32],
35250    ldt: i32,
35251    info: &mut i32,
35252) {
35253    ffi::ctplqt2_(
35254        &m,
35255        &n,
35256        &l,
35257        a.as_mut_ptr() as *mut _,
35258        &lda,
35259        b.as_mut_ptr() as *mut _,
35260        &ldb,
35261        t.as_mut_ptr() as *mut _,
35262        &ldt,
35263        info,
35264    )
35265}
35266
35267#[inline]
35268pub unsafe fn dtplqt2(
35269    m: i32,
35270    n: i32,
35271    l: i32,
35272    a: &mut [f64],
35273    lda: i32,
35274    b: &mut [f64],
35275    ldb: i32,
35276    t: &mut [f64],
35277    ldt: i32,
35278    info: &mut i32,
35279) {
35280    ffi::dtplqt2_(
35281        &m,
35282        &n,
35283        &l,
35284        a.as_mut_ptr(),
35285        &lda,
35286        b.as_mut_ptr(),
35287        &ldb,
35288        t.as_mut_ptr(),
35289        &ldt,
35290        info,
35291    )
35292}
35293
35294#[inline]
35295pub unsafe fn stplqt2(
35296    m: i32,
35297    n: i32,
35298    l: i32,
35299    a: &mut [f32],
35300    lda: i32,
35301    b: &mut [f32],
35302    ldb: i32,
35303    t: &mut [f32],
35304    ldt: i32,
35305    info: &mut i32,
35306) {
35307    ffi::stplqt2_(
35308        &m,
35309        &n,
35310        &l,
35311        a.as_mut_ptr(),
35312        &lda,
35313        b.as_mut_ptr(),
35314        &ldb,
35315        t.as_mut_ptr(),
35316        &ldt,
35317        info,
35318    )
35319}
35320
35321#[inline]
35322pub unsafe fn ztplqt2(
35323    m: i32,
35324    n: i32,
35325    l: i32,
35326    a: &mut [c64],
35327    lda: i32,
35328    b: &mut [c64],
35329    ldb: i32,
35330    t: &mut [c64],
35331    ldt: i32,
35332    info: &mut i32,
35333) {
35334    ffi::ztplqt2_(
35335        &m,
35336        &n,
35337        &l,
35338        a.as_mut_ptr() as *mut _,
35339        &lda,
35340        b.as_mut_ptr() as *mut _,
35341        &ldb,
35342        t.as_mut_ptr() as *mut _,
35343        &ldt,
35344        info,
35345    )
35346}
35347
35348#[inline]
35349pub unsafe fn ctpmlqt(
35350    side: u8,
35351    trans: u8,
35352    m: i32,
35353    n: i32,
35354    k: i32,
35355    l: i32,
35356    mb: &[i32],
35357    v: &[c32],
35358    ldv: i32,
35359    t: &[c32],
35360    ldt: i32,
35361    a: &mut [c32],
35362    lda: i32,
35363    b: &mut [c32],
35364    ldb: i32,
35365    work: &mut [c32],
35366    info: &mut i32,
35367) {
35368    ffi::ctpmlqt_(
35369        &(side as c_char),
35370        &(trans as c_char),
35371        &m,
35372        &n,
35373        &k,
35374        &l,
35375        mb.as_ptr(),
35376        v.as_ptr() as *const _,
35377        &ldv,
35378        t.as_ptr() as *const _,
35379        &ldt,
35380        a.as_mut_ptr() as *mut _,
35381        &lda,
35382        b.as_mut_ptr() as *mut _,
35383        &ldb,
35384        work.as_mut_ptr() as *mut _,
35385        info,
35386    )
35387}
35388
35389#[inline]
35390pub unsafe fn dtpmlqt(
35391    side: u8,
35392    trans: u8,
35393    m: i32,
35394    n: i32,
35395    k: i32,
35396    l: i32,
35397    mb: &[i32],
35398    v: &[f64],
35399    ldv: i32,
35400    t: &[f64],
35401    ldt: i32,
35402    a: &mut [f64],
35403    lda: i32,
35404    b: &mut [f64],
35405    ldb: i32,
35406    work: &mut [f64],
35407    info: &mut i32,
35408) {
35409    ffi::dtpmlqt_(
35410        &(side as c_char),
35411        &(trans as c_char),
35412        &m,
35413        &n,
35414        &k,
35415        &l,
35416        mb.as_ptr(),
35417        v.as_ptr(),
35418        &ldv,
35419        t.as_ptr(),
35420        &ldt,
35421        a.as_mut_ptr(),
35422        &lda,
35423        b.as_mut_ptr(),
35424        &ldb,
35425        work.as_mut_ptr(),
35426        info,
35427    )
35428}
35429
35430#[inline]
35431pub unsafe fn stpmlqt(
35432    side: u8,
35433    trans: u8,
35434    m: i32,
35435    n: i32,
35436    k: i32,
35437    l: i32,
35438    mb: &[i32],
35439    v: &[f32],
35440    ldv: i32,
35441    t: &[f32],
35442    ldt: i32,
35443    a: &mut [f32],
35444    lda: i32,
35445    b: &mut [f32],
35446    ldb: i32,
35447    work: &mut [f32],
35448    info: &mut i32,
35449) {
35450    ffi::stpmlqt_(
35451        &(side as c_char),
35452        &(trans as c_char),
35453        &m,
35454        &n,
35455        &k,
35456        &l,
35457        mb.as_ptr(),
35458        v.as_ptr(),
35459        &ldv,
35460        t.as_ptr(),
35461        &ldt,
35462        a.as_mut_ptr(),
35463        &lda,
35464        b.as_mut_ptr(),
35465        &ldb,
35466        work.as_mut_ptr(),
35467        info,
35468    )
35469}
35470
35471#[inline]
35472pub unsafe fn ztpmlqt(
35473    side: u8,
35474    trans: u8,
35475    m: i32,
35476    n: i32,
35477    k: i32,
35478    l: i32,
35479    mb: &[i32],
35480    v: &[c64],
35481    ldv: i32,
35482    t: &[c64],
35483    ldt: i32,
35484    a: &mut [c64],
35485    lda: i32,
35486    b: &mut [c64],
35487    ldb: i32,
35488    work: &mut [c64],
35489    info: &mut i32,
35490) {
35491    ffi::ztpmlqt_(
35492        &(side as c_char),
35493        &(trans as c_char),
35494        &m,
35495        &n,
35496        &k,
35497        &l,
35498        mb.as_ptr(),
35499        v.as_ptr() as *const _,
35500        &ldv,
35501        t.as_ptr() as *const _,
35502        &ldt,
35503        a.as_mut_ptr() as *mut _,
35504        &lda,
35505        b.as_mut_ptr() as *mut _,
35506        &ldb,
35507        work.as_mut_ptr() as *mut _,
35508        info,
35509    )
35510}
35511
35512#[inline]
35513pub unsafe fn ctpmqrt(
35514    side: u8,
35515    trans: u8,
35516    m: i32,
35517    n: i32,
35518    k: i32,
35519    l: i32,
35520    nb: i32,
35521    v: &[c32],
35522    ldv: i32,
35523    t: &[c32],
35524    ldt: i32,
35525    a: &mut [c32],
35526    lda: i32,
35527    b: &mut [c32],
35528    ldb: i32,
35529    work: &mut [c32],
35530    info: &mut i32,
35531) {
35532    ffi::ctpmqrt_(
35533        &(side as c_char),
35534        &(trans as c_char),
35535        &m,
35536        &n,
35537        &k,
35538        &l,
35539        &nb,
35540        v.as_ptr() as *const _,
35541        &ldv,
35542        t.as_ptr() as *const _,
35543        &ldt,
35544        a.as_mut_ptr() as *mut _,
35545        &lda,
35546        b.as_mut_ptr() as *mut _,
35547        &ldb,
35548        work.as_mut_ptr() as *mut _,
35549        info,
35550    )
35551}
35552
35553#[inline]
35554pub unsafe fn dtpmqrt(
35555    side: u8,
35556    trans: u8,
35557    m: i32,
35558    n: i32,
35559    k: i32,
35560    l: i32,
35561    nb: i32,
35562    v: &[f64],
35563    ldv: i32,
35564    t: &[f64],
35565    ldt: i32,
35566    a: &mut [f64],
35567    lda: i32,
35568    b: &mut [f64],
35569    ldb: i32,
35570    work: &mut [f64],
35571    info: &mut i32,
35572) {
35573    ffi::dtpmqrt_(
35574        &(side as c_char),
35575        &(trans as c_char),
35576        &m,
35577        &n,
35578        &k,
35579        &l,
35580        &nb,
35581        v.as_ptr(),
35582        &ldv,
35583        t.as_ptr(),
35584        &ldt,
35585        a.as_mut_ptr(),
35586        &lda,
35587        b.as_mut_ptr(),
35588        &ldb,
35589        work.as_mut_ptr(),
35590        info,
35591    )
35592}
35593
35594#[inline]
35595pub unsafe fn stpmqrt(
35596    side: u8,
35597    trans: u8,
35598    m: i32,
35599    n: i32,
35600    k: i32,
35601    l: i32,
35602    nb: i32,
35603    v: &[f32],
35604    ldv: i32,
35605    t: &[f32],
35606    ldt: i32,
35607    a: &mut [f32],
35608    lda: i32,
35609    b: &mut [f32],
35610    ldb: i32,
35611    work: &mut [f32],
35612    info: &mut i32,
35613) {
35614    ffi::stpmqrt_(
35615        &(side as c_char),
35616        &(trans as c_char),
35617        &m,
35618        &n,
35619        &k,
35620        &l,
35621        &nb,
35622        v.as_ptr(),
35623        &ldv,
35624        t.as_ptr(),
35625        &ldt,
35626        a.as_mut_ptr(),
35627        &lda,
35628        b.as_mut_ptr(),
35629        &ldb,
35630        work.as_mut_ptr(),
35631        info,
35632    )
35633}
35634
35635#[inline]
35636pub unsafe fn ztpmqrt(
35637    side: u8,
35638    trans: u8,
35639    m: i32,
35640    n: i32,
35641    k: i32,
35642    l: i32,
35643    nb: i32,
35644    v: &[c64],
35645    ldv: i32,
35646    t: &[c64],
35647    ldt: i32,
35648    a: &mut [c64],
35649    lda: i32,
35650    b: &mut [c64],
35651    ldb: i32,
35652    work: &mut [c64],
35653    info: &mut i32,
35654) {
35655    ffi::ztpmqrt_(
35656        &(side as c_char),
35657        &(trans as c_char),
35658        &m,
35659        &n,
35660        &k,
35661        &l,
35662        &nb,
35663        v.as_ptr() as *const _,
35664        &ldv,
35665        t.as_ptr() as *const _,
35666        &ldt,
35667        a.as_mut_ptr() as *mut _,
35668        &lda,
35669        b.as_mut_ptr() as *mut _,
35670        &ldb,
35671        work.as_mut_ptr() as *mut _,
35672        info,
35673    )
35674}
35675
35676#[inline]
35677pub unsafe fn ctpqrt(
35678    m: i32,
35679    n: i32,
35680    l: i32,
35681    nb: i32,
35682    a: &mut [c32],
35683    lda: i32,
35684    b: &mut [c32],
35685    ldb: i32,
35686    t: &mut [c32],
35687    ldt: i32,
35688    work: &mut [c32],
35689    info: &mut i32,
35690) {
35691    ffi::ctpqrt_(
35692        &m,
35693        &n,
35694        &l,
35695        &nb,
35696        a.as_mut_ptr() as *mut _,
35697        &lda,
35698        b.as_mut_ptr() as *mut _,
35699        &ldb,
35700        t.as_mut_ptr() as *mut _,
35701        &ldt,
35702        work.as_mut_ptr() as *mut _,
35703        info,
35704    )
35705}
35706
35707#[inline]
35708pub unsafe fn dtpqrt(
35709    m: i32,
35710    n: i32,
35711    l: i32,
35712    nb: i32,
35713    a: &mut [f64],
35714    lda: i32,
35715    b: &mut [f64],
35716    ldb: i32,
35717    t: &mut [f64],
35718    ldt: i32,
35719    work: &mut [f64],
35720    info: &mut i32,
35721) {
35722    ffi::dtpqrt_(
35723        &m,
35724        &n,
35725        &l,
35726        &nb,
35727        a.as_mut_ptr(),
35728        &lda,
35729        b.as_mut_ptr(),
35730        &ldb,
35731        t.as_mut_ptr(),
35732        &ldt,
35733        work.as_mut_ptr(),
35734        info,
35735    )
35736}
35737
35738#[inline]
35739pub unsafe fn stpqrt(
35740    m: i32,
35741    n: i32,
35742    l: i32,
35743    nb: i32,
35744    a: &mut [f32],
35745    lda: i32,
35746    b: &mut [f32],
35747    ldb: i32,
35748    t: &mut [f32],
35749    ldt: i32,
35750    work: &mut [f32],
35751    info: &mut i32,
35752) {
35753    ffi::stpqrt_(
35754        &m,
35755        &n,
35756        &l,
35757        &nb,
35758        a.as_mut_ptr(),
35759        &lda,
35760        b.as_mut_ptr(),
35761        &ldb,
35762        t.as_mut_ptr(),
35763        &ldt,
35764        work.as_mut_ptr(),
35765        info,
35766    )
35767}
35768
35769#[inline]
35770pub unsafe fn ztpqrt(
35771    m: i32,
35772    n: i32,
35773    l: i32,
35774    nb: i32,
35775    a: &mut [c64],
35776    lda: i32,
35777    b: &mut [c64],
35778    ldb: i32,
35779    t: &mut [c64],
35780    ldt: i32,
35781    work: &mut [c64],
35782    info: &mut i32,
35783) {
35784    ffi::ztpqrt_(
35785        &m,
35786        &n,
35787        &l,
35788        &nb,
35789        a.as_mut_ptr() as *mut _,
35790        &lda,
35791        b.as_mut_ptr() as *mut _,
35792        &ldb,
35793        t.as_mut_ptr() as *mut _,
35794        &ldt,
35795        work.as_mut_ptr() as *mut _,
35796        info,
35797    )
35798}
35799
35800#[inline]
35801pub unsafe fn ctpqrt2(
35802    m: i32,
35803    n: i32,
35804    l: i32,
35805    a: &mut [c32],
35806    lda: i32,
35807    b: &mut [c32],
35808    ldb: i32,
35809    t: &mut [c32],
35810    ldt: i32,
35811    info: &mut i32,
35812) {
35813    ffi::ctpqrt2_(
35814        &m,
35815        &n,
35816        &l,
35817        a.as_mut_ptr() as *mut _,
35818        &lda,
35819        b.as_mut_ptr() as *mut _,
35820        &ldb,
35821        t.as_mut_ptr() as *mut _,
35822        &ldt,
35823        info,
35824    )
35825}
35826
35827#[inline]
35828pub unsafe fn dtpqrt2(
35829    m: i32,
35830    n: i32,
35831    l: i32,
35832    a: &mut [f64],
35833    lda: i32,
35834    b: &mut [f64],
35835    ldb: i32,
35836    t: &mut [f64],
35837    ldt: i32,
35838    info: &mut i32,
35839) {
35840    ffi::dtpqrt2_(
35841        &m,
35842        &n,
35843        &l,
35844        a.as_mut_ptr(),
35845        &lda,
35846        b.as_mut_ptr(),
35847        &ldb,
35848        t.as_mut_ptr(),
35849        &ldt,
35850        info,
35851    )
35852}
35853
35854#[inline]
35855pub unsafe fn stpqrt2(
35856    m: i32,
35857    n: i32,
35858    l: i32,
35859    a: &mut [f32],
35860    lda: i32,
35861    b: &mut [f32],
35862    ldb: i32,
35863    t: &mut [f32],
35864    ldt: i32,
35865    info: &mut i32,
35866) {
35867    ffi::stpqrt2_(
35868        &m,
35869        &n,
35870        &l,
35871        a.as_mut_ptr(),
35872        &lda,
35873        b.as_mut_ptr(),
35874        &ldb,
35875        t.as_mut_ptr(),
35876        &ldt,
35877        info,
35878    )
35879}
35880
35881#[inline]
35882pub unsafe fn ztpqrt2(
35883    m: i32,
35884    n: i32,
35885    l: i32,
35886    a: &mut [c64],
35887    lda: i32,
35888    b: &mut [c64],
35889    ldb: i32,
35890    t: &mut [c64],
35891    ldt: i32,
35892    info: &mut i32,
35893) {
35894    ffi::ztpqrt2_(
35895        &m,
35896        &n,
35897        &l,
35898        a.as_mut_ptr() as *mut _,
35899        &lda,
35900        b.as_mut_ptr() as *mut _,
35901        &ldb,
35902        t.as_mut_ptr() as *mut _,
35903        &ldt,
35904        info,
35905    )
35906}
35907
35908#[inline]
35909pub unsafe fn ctprfb(
35910    side: u8,
35911    trans: u8,
35912    direct: u8,
35913    storev: u8,
35914    m: i32,
35915    n: i32,
35916    k: i32,
35917    l: i32,
35918    v: &[c32],
35919    ldv: i32,
35920    t: &[c32],
35921    ldt: i32,
35922    a: &mut [c32],
35923    lda: i32,
35924    b: &mut [c32],
35925    ldb: i32,
35926    work: &mut [c32],
35927    ldwork: i32,
35928) {
35929    ffi::ctprfb_(
35930        &(side as c_char),
35931        &(trans as c_char),
35932        &(direct as c_char),
35933        &(storev as c_char),
35934        &m,
35935        &n,
35936        &k,
35937        &l,
35938        v.as_ptr() as *const _,
35939        &ldv,
35940        t.as_ptr() as *const _,
35941        &ldt,
35942        a.as_mut_ptr() as *mut _,
35943        &lda,
35944        b.as_mut_ptr() as *mut _,
35945        &ldb,
35946        work.as_mut_ptr() as *mut _,
35947        &ldwork,
35948    )
35949}
35950
35951#[inline]
35952pub unsafe fn dtprfb(
35953    side: u8,
35954    trans: u8,
35955    direct: u8,
35956    storev: u8,
35957    m: i32,
35958    n: i32,
35959    k: i32,
35960    l: i32,
35961    v: &[f64],
35962    ldv: i32,
35963    t: &[f64],
35964    ldt: i32,
35965    a: &mut [f64],
35966    lda: i32,
35967    b: &mut [f64],
35968    ldb: i32,
35969    work: &mut [f64],
35970    ldwork: i32,
35971) {
35972    ffi::dtprfb_(
35973        &(side as c_char),
35974        &(trans as c_char),
35975        &(direct as c_char),
35976        &(storev as c_char),
35977        &m,
35978        &n,
35979        &k,
35980        &l,
35981        v.as_ptr(),
35982        &ldv,
35983        t.as_ptr(),
35984        &ldt,
35985        a.as_mut_ptr(),
35986        &lda,
35987        b.as_mut_ptr(),
35988        &ldb,
35989        work.as_mut_ptr(),
35990        &ldwork,
35991    )
35992}
35993
35994#[inline]
35995pub unsafe fn stprfb(
35996    side: u8,
35997    trans: u8,
35998    direct: u8,
35999    storev: u8,
36000    m: i32,
36001    n: i32,
36002    k: i32,
36003    l: i32,
36004    v: &[f32],
36005    ldv: i32,
36006    t: &[f32],
36007    ldt: i32,
36008    a: &mut [f32],
36009    lda: i32,
36010    b: &mut [f32],
36011    ldb: i32,
36012    work: &mut [f32],
36013    ldwork: i32,
36014) {
36015    ffi::stprfb_(
36016        &(side as c_char),
36017        &(trans as c_char),
36018        &(direct as c_char),
36019        &(storev as c_char),
36020        &m,
36021        &n,
36022        &k,
36023        &l,
36024        v.as_ptr(),
36025        &ldv,
36026        t.as_ptr(),
36027        &ldt,
36028        a.as_mut_ptr(),
36029        &lda,
36030        b.as_mut_ptr(),
36031        &ldb,
36032        work.as_mut_ptr(),
36033        &ldwork,
36034    )
36035}
36036
36037#[inline]
36038pub unsafe fn ztprfb(
36039    side: u8,
36040    trans: u8,
36041    direct: u8,
36042    storev: u8,
36043    m: i32,
36044    n: i32,
36045    k: i32,
36046    l: i32,
36047    v: &[c64],
36048    ldv: i32,
36049    t: &[c64],
36050    ldt: i32,
36051    a: &mut [c64],
36052    lda: i32,
36053    b: &mut [c64],
36054    ldb: i32,
36055    work: &mut [c64],
36056    ldwork: i32,
36057) {
36058    ffi::ztprfb_(
36059        &(side as c_char),
36060        &(trans as c_char),
36061        &(direct as c_char),
36062        &(storev as c_char),
36063        &m,
36064        &n,
36065        &k,
36066        &l,
36067        v.as_ptr() as *const _,
36068        &ldv,
36069        t.as_ptr() as *const _,
36070        &ldt,
36071        a.as_mut_ptr() as *mut _,
36072        &lda,
36073        b.as_mut_ptr() as *mut _,
36074        &ldb,
36075        work.as_mut_ptr() as *mut _,
36076        &ldwork,
36077    )
36078}
36079
36080#[inline]
36081pub unsafe fn ctprfs(
36082    uplo: u8,
36083    trans: u8,
36084    diag: u8,
36085    n: i32,
36086    nrhs: i32,
36087    ap: &[c32],
36088    b: &[c32],
36089    ldb: i32,
36090    x: &[c32],
36091    ldx: i32,
36092    ferr: &mut [f32],
36093    berr: &mut [f32],
36094    work: &mut [c32],
36095    rwork: &mut [f32],
36096    info: &mut i32,
36097) {
36098    ffi::ctprfs_(
36099        &(uplo as c_char),
36100        &(trans as c_char),
36101        &(diag as c_char),
36102        &n,
36103        &nrhs,
36104        ap.as_ptr() as *const _,
36105        b.as_ptr() as *const _,
36106        &ldb,
36107        x.as_ptr() as *const _,
36108        &ldx,
36109        ferr.as_mut_ptr(),
36110        berr.as_mut_ptr(),
36111        work.as_mut_ptr() as *mut _,
36112        rwork.as_mut_ptr(),
36113        info,
36114    )
36115}
36116
36117#[inline]
36118pub unsafe fn dtprfs(
36119    uplo: u8,
36120    trans: u8,
36121    diag: u8,
36122    n: i32,
36123    nrhs: i32,
36124    ap: &[f64],
36125    b: &[f64],
36126    ldb: i32,
36127    x: &[f64],
36128    ldx: i32,
36129    ferr: &mut [f64],
36130    berr: &mut [f64],
36131    work: &mut [f64],
36132    iwork: &mut [i32],
36133    info: &mut i32,
36134) {
36135    ffi::dtprfs_(
36136        &(uplo as c_char),
36137        &(trans as c_char),
36138        &(diag as c_char),
36139        &n,
36140        &nrhs,
36141        ap.as_ptr(),
36142        b.as_ptr(),
36143        &ldb,
36144        x.as_ptr(),
36145        &ldx,
36146        ferr.as_mut_ptr(),
36147        berr.as_mut_ptr(),
36148        work.as_mut_ptr(),
36149        iwork.as_mut_ptr(),
36150        info,
36151    )
36152}
36153
36154#[inline]
36155pub unsafe fn stprfs(
36156    uplo: u8,
36157    trans: u8,
36158    diag: u8,
36159    n: i32,
36160    nrhs: i32,
36161    ap: &[f32],
36162    b: &[f32],
36163    ldb: i32,
36164    x: &[f32],
36165    ldx: i32,
36166    ferr: &mut [f32],
36167    berr: &mut [f32],
36168    work: &mut [f32],
36169    iwork: &mut [i32],
36170    info: &mut i32,
36171) {
36172    ffi::stprfs_(
36173        &(uplo as c_char),
36174        &(trans as c_char),
36175        &(diag as c_char),
36176        &n,
36177        &nrhs,
36178        ap.as_ptr(),
36179        b.as_ptr(),
36180        &ldb,
36181        x.as_ptr(),
36182        &ldx,
36183        ferr.as_mut_ptr(),
36184        berr.as_mut_ptr(),
36185        work.as_mut_ptr(),
36186        iwork.as_mut_ptr(),
36187        info,
36188    )
36189}
36190
36191#[inline]
36192pub unsafe fn ztprfs(
36193    uplo: u8,
36194    trans: u8,
36195    diag: u8,
36196    n: i32,
36197    nrhs: i32,
36198    ap: &[c64],
36199    b: &[c64],
36200    ldb: i32,
36201    x: &[c64],
36202    ldx: i32,
36203    ferr: &mut [f64],
36204    berr: &mut [f64],
36205    work: &mut [c64],
36206    rwork: &mut [f64],
36207    info: &mut i32,
36208) {
36209    ffi::ztprfs_(
36210        &(uplo as c_char),
36211        &(trans as c_char),
36212        &(diag as c_char),
36213        &n,
36214        &nrhs,
36215        ap.as_ptr() as *const _,
36216        b.as_ptr() as *const _,
36217        &ldb,
36218        x.as_ptr() as *const _,
36219        &ldx,
36220        ferr.as_mut_ptr(),
36221        berr.as_mut_ptr(),
36222        work.as_mut_ptr() as *mut _,
36223        rwork.as_mut_ptr(),
36224        info,
36225    )
36226}
36227
36228#[inline]
36229pub unsafe fn ctptri(uplo: u8, diag: u8, n: i32, ap: &mut [c32], info: &mut i32) {
36230    ffi::ctptri_(
36231        &(uplo as c_char),
36232        &(diag as c_char),
36233        &n,
36234        ap.as_mut_ptr() as *mut _,
36235        info,
36236    )
36237}
36238
36239#[inline]
36240pub unsafe fn dtptri(uplo: u8, diag: u8, n: i32, ap: &mut [f64], info: &mut i32) {
36241    ffi::dtptri_(
36242        &(uplo as c_char),
36243        &(diag as c_char),
36244        &n,
36245        ap.as_mut_ptr(),
36246        info,
36247    )
36248}
36249
36250#[inline]
36251pub unsafe fn stptri(uplo: u8, diag: u8, n: i32, ap: &mut [f32], info: &mut i32) {
36252    ffi::stptri_(
36253        &(uplo as c_char),
36254        &(diag as c_char),
36255        &n,
36256        ap.as_mut_ptr(),
36257        info,
36258    )
36259}
36260
36261#[inline]
36262pub unsafe fn ztptri(uplo: u8, diag: u8, n: i32, ap: &mut [c64], info: &mut i32) {
36263    ffi::ztptri_(
36264        &(uplo as c_char),
36265        &(diag as c_char),
36266        &n,
36267        ap.as_mut_ptr() as *mut _,
36268        info,
36269    )
36270}
36271
36272#[inline]
36273pub unsafe fn ctptrs(
36274    uplo: u8,
36275    trans: u8,
36276    diag: u8,
36277    n: i32,
36278    nrhs: i32,
36279    ap: &[c32],
36280    b: &mut [c32],
36281    ldb: i32,
36282    info: &mut i32,
36283) {
36284    ffi::ctptrs_(
36285        &(uplo as c_char),
36286        &(trans as c_char),
36287        &(diag as c_char),
36288        &n,
36289        &nrhs,
36290        ap.as_ptr() as *const _,
36291        b.as_mut_ptr() as *mut _,
36292        &ldb,
36293        info,
36294    )
36295}
36296
36297#[inline]
36298pub unsafe fn dtptrs(
36299    uplo: u8,
36300    trans: u8,
36301    diag: u8,
36302    n: i32,
36303    nrhs: i32,
36304    ap: &[f64],
36305    b: &mut [f64],
36306    ldb: i32,
36307    info: &mut i32,
36308) {
36309    ffi::dtptrs_(
36310        &(uplo as c_char),
36311        &(trans as c_char),
36312        &(diag as c_char),
36313        &n,
36314        &nrhs,
36315        ap.as_ptr(),
36316        b.as_mut_ptr(),
36317        &ldb,
36318        info,
36319    )
36320}
36321
36322#[inline]
36323pub unsafe fn stptrs(
36324    uplo: u8,
36325    trans: u8,
36326    diag: u8,
36327    n: i32,
36328    nrhs: i32,
36329    ap: &[f32],
36330    b: &mut [f32],
36331    ldb: i32,
36332    info: &mut i32,
36333) {
36334    ffi::stptrs_(
36335        &(uplo as c_char),
36336        &(trans as c_char),
36337        &(diag as c_char),
36338        &n,
36339        &nrhs,
36340        ap.as_ptr(),
36341        b.as_mut_ptr(),
36342        &ldb,
36343        info,
36344    )
36345}
36346
36347#[inline]
36348pub unsafe fn ztptrs(
36349    uplo: u8,
36350    trans: u8,
36351    diag: u8,
36352    n: i32,
36353    nrhs: i32,
36354    ap: &[c64],
36355    b: &mut [c64],
36356    ldb: i32,
36357    info: &mut i32,
36358) {
36359    ffi::ztptrs_(
36360        &(uplo as c_char),
36361        &(trans as c_char),
36362        &(diag as c_char),
36363        &n,
36364        &nrhs,
36365        ap.as_ptr() as *const _,
36366        b.as_mut_ptr() as *mut _,
36367        &ldb,
36368        info,
36369    )
36370}
36371
36372#[inline]
36373pub unsafe fn ctpttf(transr: u8, uplo: u8, n: i32, ap: &[c32], arf: &mut [c32], info: &mut i32) {
36374    ffi::ctpttf_(
36375        &(transr as c_char),
36376        &(uplo as c_char),
36377        &n,
36378        ap.as_ptr() as *const _,
36379        arf.as_mut_ptr() as *mut _,
36380        info,
36381    )
36382}
36383
36384#[inline]
36385pub unsafe fn dtpttf(transr: u8, uplo: u8, n: i32, ap: &[f64], arf: &mut [f64], info: &mut i32) {
36386    ffi::dtpttf_(
36387        &(transr as c_char),
36388        &(uplo as c_char),
36389        &n,
36390        ap.as_ptr(),
36391        arf.as_mut_ptr(),
36392        info,
36393    )
36394}
36395
36396#[inline]
36397pub unsafe fn stpttf(transr: u8, uplo: u8, n: i32, ap: &[f32], arf: &mut [f32], info: &mut i32) {
36398    ffi::stpttf_(
36399        &(transr as c_char),
36400        &(uplo as c_char),
36401        &n,
36402        ap.as_ptr(),
36403        arf.as_mut_ptr(),
36404        info,
36405    )
36406}
36407
36408#[inline]
36409pub unsafe fn ztpttf(transr: u8, uplo: u8, n: i32, ap: &[c64], arf: &mut [c64], info: &mut i32) {
36410    ffi::ztpttf_(
36411        &(transr as c_char),
36412        &(uplo as c_char),
36413        &n,
36414        ap.as_ptr() as *const _,
36415        arf.as_mut_ptr() as *mut _,
36416        info,
36417    )
36418}
36419
36420#[inline]
36421pub unsafe fn ctpttr(uplo: u8, n: i32, ap: &[c32], a: &mut [c32], lda: i32, info: &mut i32) {
36422    ffi::ctpttr_(
36423        &(uplo as c_char),
36424        &n,
36425        ap.as_ptr() as *const _,
36426        a.as_mut_ptr() as *mut _,
36427        &lda,
36428        info,
36429    )
36430}
36431
36432#[inline]
36433pub unsafe fn dtpttr(uplo: u8, n: i32, ap: &[f64], a: &mut [f64], lda: i32, info: &mut i32) {
36434    ffi::dtpttr_(
36435        &(uplo as c_char),
36436        &n,
36437        ap.as_ptr(),
36438        a.as_mut_ptr(),
36439        &lda,
36440        info,
36441    )
36442}
36443
36444#[inline]
36445pub unsafe fn stpttr(uplo: u8, n: i32, ap: &[f32], a: &mut [f32], lda: i32, info: &mut i32) {
36446    ffi::stpttr_(
36447        &(uplo as c_char),
36448        &n,
36449        ap.as_ptr(),
36450        a.as_mut_ptr(),
36451        &lda,
36452        info,
36453    )
36454}
36455
36456#[inline]
36457pub unsafe fn ztpttr(uplo: u8, n: i32, ap: &[c64], a: &mut [c64], lda: i32, info: &mut i32) {
36458    ffi::ztpttr_(
36459        &(uplo as c_char),
36460        &n,
36461        ap.as_ptr() as *const _,
36462        a.as_mut_ptr() as *mut _,
36463        &lda,
36464        info,
36465    )
36466}
36467
36468#[inline]
36469pub unsafe fn ctrcon(
36470    norm: u8,
36471    uplo: u8,
36472    diag: u8,
36473    n: i32,
36474    a: &[c32],
36475    lda: i32,
36476    rcond: &mut f32,
36477    work: &mut [c32],
36478    rwork: &mut [f32],
36479    info: &mut i32,
36480) {
36481    ffi::ctrcon_(
36482        &(norm as c_char),
36483        &(uplo as c_char),
36484        &(diag as c_char),
36485        &n,
36486        a.as_ptr() as *const _,
36487        &lda,
36488        rcond,
36489        work.as_mut_ptr() as *mut _,
36490        rwork.as_mut_ptr(),
36491        info,
36492    )
36493}
36494
36495#[inline]
36496pub unsafe fn dtrcon(
36497    norm: u8,
36498    uplo: u8,
36499    diag: u8,
36500    n: i32,
36501    a: &[f64],
36502    lda: i32,
36503    rcond: &mut f64,
36504    work: &mut [f64],
36505    iwork: &mut [i32],
36506    info: &mut i32,
36507) {
36508    ffi::dtrcon_(
36509        &(norm as c_char),
36510        &(uplo as c_char),
36511        &(diag as c_char),
36512        &n,
36513        a.as_ptr(),
36514        &lda,
36515        rcond,
36516        work.as_mut_ptr(),
36517        iwork.as_mut_ptr(),
36518        info,
36519    )
36520}
36521
36522#[inline]
36523pub unsafe fn strcon(
36524    norm: u8,
36525    uplo: u8,
36526    diag: u8,
36527    n: i32,
36528    a: &[f32],
36529    lda: i32,
36530    rcond: &mut f32,
36531    work: &mut [f32],
36532    iwork: &mut [i32],
36533    info: &mut i32,
36534) {
36535    ffi::strcon_(
36536        &(norm as c_char),
36537        &(uplo as c_char),
36538        &(diag as c_char),
36539        &n,
36540        a.as_ptr(),
36541        &lda,
36542        rcond,
36543        work.as_mut_ptr(),
36544        iwork.as_mut_ptr(),
36545        info,
36546    )
36547}
36548
36549#[inline]
36550pub unsafe fn ztrcon(
36551    norm: u8,
36552    uplo: u8,
36553    diag: u8,
36554    n: i32,
36555    a: &[c64],
36556    lda: i32,
36557    rcond: &mut f64,
36558    work: &mut [c64],
36559    rwork: &mut [f64],
36560    info: &mut i32,
36561) {
36562    ffi::ztrcon_(
36563        &(norm as c_char),
36564        &(uplo as c_char),
36565        &(diag as c_char),
36566        &n,
36567        a.as_ptr() as *const _,
36568        &lda,
36569        rcond,
36570        work.as_mut_ptr() as *mut _,
36571        rwork.as_mut_ptr(),
36572        info,
36573    )
36574}
36575
36576#[inline]
36577pub unsafe fn ctrevc(
36578    side: u8,
36579    howmny: u8,
36580    select: &[i32],
36581    n: i32,
36582    t: &mut [c32],
36583    ldt: i32,
36584    vl: &mut [c32],
36585    ldvl: i32,
36586    vr: &mut [c32],
36587    ldvr: i32,
36588    mm: i32,
36589    m: &mut i32,
36590    work: &mut [c32],
36591    rwork: &mut [f32],
36592    info: &mut i32,
36593) {
36594    ffi::ctrevc_(
36595        &(side as c_char),
36596        &(howmny as c_char),
36597        select.as_ptr(),
36598        &n,
36599        t.as_mut_ptr() as *mut _,
36600        &ldt,
36601        vl.as_mut_ptr() as *mut _,
36602        &ldvl,
36603        vr.as_mut_ptr() as *mut _,
36604        &ldvr,
36605        &mm,
36606        m,
36607        work.as_mut_ptr() as *mut _,
36608        rwork.as_mut_ptr(),
36609        info,
36610    )
36611}
36612
36613#[inline]
36614pub unsafe fn dtrevc(
36615    side: u8,
36616    howmny: u8,
36617    select: &mut [i32],
36618    n: i32,
36619    t: &[f64],
36620    ldt: i32,
36621    vl: &mut [f64],
36622    ldvl: i32,
36623    vr: &mut [f64],
36624    ldvr: i32,
36625    mm: i32,
36626    m: &mut i32,
36627    work: &mut [f64],
36628    info: &mut i32,
36629) {
36630    ffi::dtrevc_(
36631        &(side as c_char),
36632        &(howmny as c_char),
36633        select.as_mut_ptr(),
36634        &n,
36635        t.as_ptr(),
36636        &ldt,
36637        vl.as_mut_ptr(),
36638        &ldvl,
36639        vr.as_mut_ptr(),
36640        &ldvr,
36641        &mm,
36642        m,
36643        work.as_mut_ptr(),
36644        info,
36645    )
36646}
36647
36648#[inline]
36649pub unsafe fn strevc(
36650    side: u8,
36651    howmny: u8,
36652    select: &mut [i32],
36653    n: i32,
36654    t: &[f32],
36655    ldt: i32,
36656    vl: &mut [f32],
36657    ldvl: i32,
36658    vr: &mut [f32],
36659    ldvr: i32,
36660    mm: i32,
36661    m: &mut i32,
36662    work: &mut [f32],
36663    info: &mut i32,
36664) {
36665    ffi::strevc_(
36666        &(side as c_char),
36667        &(howmny as c_char),
36668        select.as_mut_ptr(),
36669        &n,
36670        t.as_ptr(),
36671        &ldt,
36672        vl.as_mut_ptr(),
36673        &ldvl,
36674        vr.as_mut_ptr(),
36675        &ldvr,
36676        &mm,
36677        m,
36678        work.as_mut_ptr(),
36679        info,
36680    )
36681}
36682
36683#[inline]
36684pub unsafe fn ztrevc(
36685    side: u8,
36686    howmny: u8,
36687    select: &[i32],
36688    n: i32,
36689    t: &mut [c64],
36690    ldt: i32,
36691    vl: &mut [c64],
36692    ldvl: i32,
36693    vr: &mut [c64],
36694    ldvr: i32,
36695    mm: i32,
36696    m: &mut i32,
36697    work: &mut [c64],
36698    rwork: &mut [f64],
36699    info: &mut i32,
36700) {
36701    ffi::ztrevc_(
36702        &(side as c_char),
36703        &(howmny as c_char),
36704        select.as_ptr(),
36705        &n,
36706        t.as_mut_ptr() as *mut _,
36707        &ldt,
36708        vl.as_mut_ptr() as *mut _,
36709        &ldvl,
36710        vr.as_mut_ptr() as *mut _,
36711        &ldvr,
36712        &mm,
36713        m,
36714        work.as_mut_ptr() as *mut _,
36715        rwork.as_mut_ptr(),
36716        info,
36717    )
36718}
36719
36720#[inline]
36721pub unsafe fn ctrevc3(
36722    side: u8,
36723    howmny: u8,
36724    select: &[i32],
36725    n: i32,
36726    t: &mut [c32],
36727    ldt: i32,
36728    vl: &mut [c32],
36729    ldvl: i32,
36730    vr: &mut [c32],
36731    ldvr: i32,
36732    mm: i32,
36733    m: &mut i32,
36734    work: &mut [c32],
36735    lwork: i32,
36736    rwork: &mut [f32],
36737    lrwork: i32,
36738    info: &mut i32,
36739) {
36740    ffi::ctrevc3_(
36741        &(side as c_char),
36742        &(howmny as c_char),
36743        select.as_ptr(),
36744        &n,
36745        t.as_mut_ptr() as *mut _,
36746        &ldt,
36747        vl.as_mut_ptr() as *mut _,
36748        &ldvl,
36749        vr.as_mut_ptr() as *mut _,
36750        &ldvr,
36751        &mm,
36752        m,
36753        work.as_mut_ptr() as *mut _,
36754        &lwork,
36755        rwork.as_mut_ptr(),
36756        &lrwork,
36757        info,
36758    )
36759}
36760
36761#[inline]
36762pub unsafe fn dtrevc3(
36763    side: u8,
36764    howmny: u8,
36765    select: &mut [i32],
36766    n: i32,
36767    t: &[f64],
36768    ldt: i32,
36769    vl: &mut [f64],
36770    ldvl: i32,
36771    vr: &mut [f64],
36772    ldvr: i32,
36773    mm: i32,
36774    m: &mut i32,
36775    work: &mut [f64],
36776    lwork: i32,
36777    info: &mut i32,
36778) {
36779    ffi::dtrevc3_(
36780        &(side as c_char),
36781        &(howmny as c_char),
36782        select.as_mut_ptr(),
36783        &n,
36784        t.as_ptr(),
36785        &ldt,
36786        vl.as_mut_ptr(),
36787        &ldvl,
36788        vr.as_mut_ptr(),
36789        &ldvr,
36790        &mm,
36791        m,
36792        work.as_mut_ptr(),
36793        &lwork,
36794        info,
36795    )
36796}
36797
36798#[inline]
36799pub unsafe fn strevc3(
36800    side: u8,
36801    howmny: u8,
36802    select: &mut [i32],
36803    n: i32,
36804    t: &[f32],
36805    ldt: i32,
36806    vl: &mut [f32],
36807    ldvl: i32,
36808    vr: &mut [f32],
36809    ldvr: i32,
36810    mm: i32,
36811    m: &mut i32,
36812    work: &mut [f32],
36813    lwork: i32,
36814    info: &mut i32,
36815) {
36816    ffi::strevc3_(
36817        &(side as c_char),
36818        &(howmny as c_char),
36819        select.as_mut_ptr(),
36820        &n,
36821        t.as_ptr(),
36822        &ldt,
36823        vl.as_mut_ptr(),
36824        &ldvl,
36825        vr.as_mut_ptr(),
36826        &ldvr,
36827        &mm,
36828        m,
36829        work.as_mut_ptr(),
36830        &lwork,
36831        info,
36832    )
36833}
36834
36835#[inline]
36836pub unsafe fn ztrevc3(
36837    side: u8,
36838    howmny: u8,
36839    select: &[i32],
36840    n: i32,
36841    t: &mut [c64],
36842    ldt: i32,
36843    vl: &mut [c64],
36844    ldvl: i32,
36845    vr: &mut [c64],
36846    ldvr: i32,
36847    mm: i32,
36848    m: &mut i32,
36849    work: &mut [c64],
36850    lwork: i32,
36851    rwork: &mut [f64],
36852    lrwork: i32,
36853    info: &mut i32,
36854) {
36855    ffi::ztrevc3_(
36856        &(side as c_char),
36857        &(howmny as c_char),
36858        select.as_ptr(),
36859        &n,
36860        t.as_mut_ptr() as *mut _,
36861        &ldt,
36862        vl.as_mut_ptr() as *mut _,
36863        &ldvl,
36864        vr.as_mut_ptr() as *mut _,
36865        &ldvr,
36866        &mm,
36867        m,
36868        work.as_mut_ptr() as *mut _,
36869        &lwork,
36870        rwork.as_mut_ptr(),
36871        &lrwork,
36872        info,
36873    )
36874}
36875
36876#[inline]
36877pub unsafe fn ctrexc(
36878    compq: u8,
36879    n: i32,
36880    t: &mut [c32],
36881    ldt: i32,
36882    q: &mut [c32],
36883    ldq: i32,
36884    ifst: &[i32],
36885    ilst: &[i32],
36886    info: &mut i32,
36887) {
36888    ffi::ctrexc_(
36889        &(compq as c_char),
36890        &n,
36891        t.as_mut_ptr() as *mut _,
36892        &ldt,
36893        q.as_mut_ptr() as *mut _,
36894        &ldq,
36895        ifst.as_ptr(),
36896        ilst.as_ptr(),
36897        info,
36898    )
36899}
36900
36901#[inline]
36902pub unsafe fn dtrexc(
36903    compq: u8,
36904    n: i32,
36905    t: &mut [f64],
36906    ldt: i32,
36907    q: &mut [f64],
36908    ldq: i32,
36909    ifst: &mut [i32],
36910    ilst: &mut [i32],
36911    work: &mut [f64],
36912    info: &mut i32,
36913) {
36914    ffi::dtrexc_(
36915        &(compq as c_char),
36916        &n,
36917        t.as_mut_ptr(),
36918        &ldt,
36919        q.as_mut_ptr(),
36920        &ldq,
36921        ifst.as_mut_ptr(),
36922        ilst.as_mut_ptr(),
36923        work.as_mut_ptr(),
36924        info,
36925    )
36926}
36927
36928#[inline]
36929pub unsafe fn strexc(
36930    compq: u8,
36931    n: i32,
36932    t: &mut [f32],
36933    ldt: i32,
36934    q: &mut [f32],
36935    ldq: i32,
36936    ifst: &mut [i32],
36937    ilst: &mut [i32],
36938    work: &mut [f32],
36939    info: &mut i32,
36940) {
36941    ffi::strexc_(
36942        &(compq as c_char),
36943        &n,
36944        t.as_mut_ptr(),
36945        &ldt,
36946        q.as_mut_ptr(),
36947        &ldq,
36948        ifst.as_mut_ptr(),
36949        ilst.as_mut_ptr(),
36950        work.as_mut_ptr(),
36951        info,
36952    )
36953}
36954
36955#[inline]
36956pub unsafe fn ztrexc(
36957    compq: u8,
36958    n: i32,
36959    t: &mut [c64],
36960    ldt: i32,
36961    q: &mut [c64],
36962    ldq: i32,
36963    ifst: &[i32],
36964    ilst: &[i32],
36965    info: &mut i32,
36966) {
36967    ffi::ztrexc_(
36968        &(compq as c_char),
36969        &n,
36970        t.as_mut_ptr() as *mut _,
36971        &ldt,
36972        q.as_mut_ptr() as *mut _,
36973        &ldq,
36974        ifst.as_ptr(),
36975        ilst.as_ptr(),
36976        info,
36977    )
36978}
36979
36980#[inline]
36981pub unsafe fn ctrrfs(
36982    uplo: u8,
36983    trans: u8,
36984    diag: u8,
36985    n: i32,
36986    nrhs: i32,
36987    a: &[c32],
36988    lda: i32,
36989    b: &[c32],
36990    ldb: i32,
36991    x: &[c32],
36992    ldx: i32,
36993    ferr: &mut [f32],
36994    berr: &mut [f32],
36995    work: &mut [c32],
36996    rwork: &mut [f32],
36997    info: &mut i32,
36998) {
36999    ffi::ctrrfs_(
37000        &(uplo as c_char),
37001        &(trans as c_char),
37002        &(diag as c_char),
37003        &n,
37004        &nrhs,
37005        a.as_ptr() as *const _,
37006        &lda,
37007        b.as_ptr() as *const _,
37008        &ldb,
37009        x.as_ptr() as *const _,
37010        &ldx,
37011        ferr.as_mut_ptr(),
37012        berr.as_mut_ptr(),
37013        work.as_mut_ptr() as *mut _,
37014        rwork.as_mut_ptr(),
37015        info,
37016    )
37017}
37018
37019#[inline]
37020pub unsafe fn dtrrfs(
37021    uplo: u8,
37022    trans: u8,
37023    diag: u8,
37024    n: i32,
37025    nrhs: i32,
37026    a: &[f64],
37027    lda: i32,
37028    b: &[f64],
37029    ldb: i32,
37030    x: &[f64],
37031    ldx: i32,
37032    ferr: &mut [f64],
37033    berr: &mut [f64],
37034    work: &mut [f64],
37035    iwork: &mut [i32],
37036    info: &mut i32,
37037) {
37038    ffi::dtrrfs_(
37039        &(uplo as c_char),
37040        &(trans as c_char),
37041        &(diag as c_char),
37042        &n,
37043        &nrhs,
37044        a.as_ptr(),
37045        &lda,
37046        b.as_ptr(),
37047        &ldb,
37048        x.as_ptr(),
37049        &ldx,
37050        ferr.as_mut_ptr(),
37051        berr.as_mut_ptr(),
37052        work.as_mut_ptr(),
37053        iwork.as_mut_ptr(),
37054        info,
37055    )
37056}
37057
37058#[inline]
37059pub unsafe fn strrfs(
37060    uplo: u8,
37061    trans: u8,
37062    diag: u8,
37063    n: i32,
37064    nrhs: i32,
37065    a: &[f32],
37066    lda: i32,
37067    b: &[f32],
37068    ldb: i32,
37069    x: &[f32],
37070    ldx: i32,
37071    ferr: &mut [f32],
37072    berr: &mut [f32],
37073    work: &mut [f32],
37074    iwork: &mut [i32],
37075    info: &mut i32,
37076) {
37077    ffi::strrfs_(
37078        &(uplo as c_char),
37079        &(trans as c_char),
37080        &(diag as c_char),
37081        &n,
37082        &nrhs,
37083        a.as_ptr(),
37084        &lda,
37085        b.as_ptr(),
37086        &ldb,
37087        x.as_ptr(),
37088        &ldx,
37089        ferr.as_mut_ptr(),
37090        berr.as_mut_ptr(),
37091        work.as_mut_ptr(),
37092        iwork.as_mut_ptr(),
37093        info,
37094    )
37095}
37096
37097#[inline]
37098pub unsafe fn ztrrfs(
37099    uplo: u8,
37100    trans: u8,
37101    diag: u8,
37102    n: i32,
37103    nrhs: i32,
37104    a: &[c64],
37105    lda: i32,
37106    b: &[c64],
37107    ldb: i32,
37108    x: &[c64],
37109    ldx: i32,
37110    ferr: &mut [f64],
37111    berr: &mut [f64],
37112    work: &mut [c64],
37113    rwork: &mut [f64],
37114    info: &mut i32,
37115) {
37116    ffi::ztrrfs_(
37117        &(uplo as c_char),
37118        &(trans as c_char),
37119        &(diag as c_char),
37120        &n,
37121        &nrhs,
37122        a.as_ptr() as *const _,
37123        &lda,
37124        b.as_ptr() as *const _,
37125        &ldb,
37126        x.as_ptr() as *const _,
37127        &ldx,
37128        ferr.as_mut_ptr(),
37129        berr.as_mut_ptr(),
37130        work.as_mut_ptr() as *mut _,
37131        rwork.as_mut_ptr(),
37132        info,
37133    )
37134}
37135
37136#[inline]
37137pub unsafe fn ctrsen(
37138    job: u8,
37139    compq: u8,
37140    select: &[i32],
37141    n: i32,
37142    t: &mut [c32],
37143    ldt: i32,
37144    q: &mut [c32],
37145    ldq: i32,
37146    w: &mut [c32],
37147    m: &mut i32,
37148    s: &mut [f32],
37149    sep: &mut [f32],
37150    work: &mut [c32],
37151    lwork: i32,
37152    info: &mut i32,
37153) {
37154    ffi::ctrsen_(
37155        &(job as c_char),
37156        &(compq as c_char),
37157        select.as_ptr(),
37158        &n,
37159        t.as_mut_ptr() as *mut _,
37160        &ldt,
37161        q.as_mut_ptr() as *mut _,
37162        &ldq,
37163        w.as_mut_ptr() as *mut _,
37164        m,
37165        s.as_mut_ptr(),
37166        sep.as_mut_ptr(),
37167        work.as_mut_ptr() as *mut _,
37168        &lwork,
37169        info,
37170    )
37171}
37172
37173#[inline]
37174pub unsafe fn dtrsen(
37175    job: u8,
37176    compq: u8,
37177    select: &[i32],
37178    n: i32,
37179    t: &mut [f64],
37180    ldt: i32,
37181    q: &mut [f64],
37182    ldq: i32,
37183    wr: &mut [f64],
37184    wi: &mut [f64],
37185    m: &mut i32,
37186    s: &mut [f64],
37187    sep: &mut [f64],
37188    work: &mut [f64],
37189    lwork: i32,
37190    iwork: &mut [i32],
37191    liwork: i32,
37192    info: &mut i32,
37193) {
37194    ffi::dtrsen_(
37195        &(job as c_char),
37196        &(compq as c_char),
37197        select.as_ptr(),
37198        &n,
37199        t.as_mut_ptr(),
37200        &ldt,
37201        q.as_mut_ptr(),
37202        &ldq,
37203        wr.as_mut_ptr(),
37204        wi.as_mut_ptr(),
37205        m,
37206        s.as_mut_ptr(),
37207        sep.as_mut_ptr(),
37208        work.as_mut_ptr(),
37209        &lwork,
37210        iwork.as_mut_ptr(),
37211        &liwork,
37212        info,
37213    )
37214}
37215
37216#[inline]
37217pub unsafe fn strsen(
37218    job: u8,
37219    compq: u8,
37220    select: &[i32],
37221    n: i32,
37222    t: &mut [f32],
37223    ldt: i32,
37224    q: &mut [f32],
37225    ldq: i32,
37226    wr: &mut [f32],
37227    wi: &mut [f32],
37228    m: &mut i32,
37229    s: &mut [f32],
37230    sep: &mut [f32],
37231    work: &mut [f32],
37232    lwork: i32,
37233    iwork: &mut [i32],
37234    liwork: i32,
37235    info: &mut i32,
37236) {
37237    ffi::strsen_(
37238        &(job as c_char),
37239        &(compq as c_char),
37240        select.as_ptr(),
37241        &n,
37242        t.as_mut_ptr(),
37243        &ldt,
37244        q.as_mut_ptr(),
37245        &ldq,
37246        wr.as_mut_ptr(),
37247        wi.as_mut_ptr(),
37248        m,
37249        s.as_mut_ptr(),
37250        sep.as_mut_ptr(),
37251        work.as_mut_ptr(),
37252        &lwork,
37253        iwork.as_mut_ptr(),
37254        &liwork,
37255        info,
37256    )
37257}
37258
37259#[inline]
37260pub unsafe fn ztrsen(
37261    job: u8,
37262    compq: u8,
37263    select: &[i32],
37264    n: i32,
37265    t: &mut [c64],
37266    ldt: i32,
37267    q: &mut [c64],
37268    ldq: i32,
37269    w: &mut [c64],
37270    m: &mut i32,
37271    s: &mut [f64],
37272    sep: &mut [f64],
37273    work: &mut [c64],
37274    lwork: i32,
37275    info: &mut i32,
37276) {
37277    ffi::ztrsen_(
37278        &(job as c_char),
37279        &(compq as c_char),
37280        select.as_ptr(),
37281        &n,
37282        t.as_mut_ptr() as *mut _,
37283        &ldt,
37284        q.as_mut_ptr() as *mut _,
37285        &ldq,
37286        w.as_mut_ptr() as *mut _,
37287        m,
37288        s.as_mut_ptr(),
37289        sep.as_mut_ptr(),
37290        work.as_mut_ptr() as *mut _,
37291        &lwork,
37292        info,
37293    )
37294}
37295
37296#[inline]
37297pub unsafe fn ctrsna(
37298    job: u8,
37299    howmny: u8,
37300    select: &[i32],
37301    n: i32,
37302    t: &[c32],
37303    ldt: i32,
37304    vl: &[c32],
37305    ldvl: i32,
37306    vr: &[c32],
37307    ldvr: i32,
37308    s: &mut [f32],
37309    sep: &mut [f32],
37310    mm: i32,
37311    m: &mut i32,
37312    work: &mut [c32],
37313    ldwork: i32,
37314    rwork: &mut [f32],
37315    info: &mut i32,
37316) {
37317    ffi::ctrsna_(
37318        &(job as c_char),
37319        &(howmny as c_char),
37320        select.as_ptr(),
37321        &n,
37322        t.as_ptr() as *const _,
37323        &ldt,
37324        vl.as_ptr() as *const _,
37325        &ldvl,
37326        vr.as_ptr() as *const _,
37327        &ldvr,
37328        s.as_mut_ptr(),
37329        sep.as_mut_ptr(),
37330        &mm,
37331        m,
37332        work.as_mut_ptr() as *mut _,
37333        &ldwork,
37334        rwork.as_mut_ptr(),
37335        info,
37336    )
37337}
37338
37339#[inline]
37340pub unsafe fn dtrsna(
37341    job: u8,
37342    howmny: u8,
37343    select: &[i32],
37344    n: i32,
37345    t: &[f64],
37346    ldt: i32,
37347    vl: &[f64],
37348    ldvl: i32,
37349    vr: &[f64],
37350    ldvr: i32,
37351    s: &mut [f64],
37352    sep: &mut [f64],
37353    mm: i32,
37354    m: &mut i32,
37355    work: &mut [f64],
37356    ldwork: i32,
37357    iwork: &mut [i32],
37358    info: &mut i32,
37359) {
37360    ffi::dtrsna_(
37361        &(job as c_char),
37362        &(howmny as c_char),
37363        select.as_ptr(),
37364        &n,
37365        t.as_ptr(),
37366        &ldt,
37367        vl.as_ptr(),
37368        &ldvl,
37369        vr.as_ptr(),
37370        &ldvr,
37371        s.as_mut_ptr(),
37372        sep.as_mut_ptr(),
37373        &mm,
37374        m,
37375        work.as_mut_ptr(),
37376        &ldwork,
37377        iwork.as_mut_ptr(),
37378        info,
37379    )
37380}
37381
37382#[inline]
37383pub unsafe fn strsna(
37384    job: u8,
37385    howmny: u8,
37386    select: &[i32],
37387    n: i32,
37388    t: &[f32],
37389    ldt: i32,
37390    vl: &[f32],
37391    ldvl: i32,
37392    vr: &[f32],
37393    ldvr: i32,
37394    s: &mut [f32],
37395    sep: &mut [f32],
37396    mm: i32,
37397    m: &mut i32,
37398    work: &mut [f32],
37399    ldwork: i32,
37400    iwork: &mut [i32],
37401    info: &mut i32,
37402) {
37403    ffi::strsna_(
37404        &(job as c_char),
37405        &(howmny as c_char),
37406        select.as_ptr(),
37407        &n,
37408        t.as_ptr(),
37409        &ldt,
37410        vl.as_ptr(),
37411        &ldvl,
37412        vr.as_ptr(),
37413        &ldvr,
37414        s.as_mut_ptr(),
37415        sep.as_mut_ptr(),
37416        &mm,
37417        m,
37418        work.as_mut_ptr(),
37419        &ldwork,
37420        iwork.as_mut_ptr(),
37421        info,
37422    )
37423}
37424
37425#[inline]
37426pub unsafe fn ztrsna(
37427    job: u8,
37428    howmny: u8,
37429    select: &[i32],
37430    n: i32,
37431    t: &[c64],
37432    ldt: i32,
37433    vl: &[c64],
37434    ldvl: i32,
37435    vr: &[c64],
37436    ldvr: i32,
37437    s: &mut [f64],
37438    sep: &mut [f64],
37439    mm: i32,
37440    m: &mut i32,
37441    work: &mut [c64],
37442    ldwork: i32,
37443    rwork: &mut [f64],
37444    info: &mut i32,
37445) {
37446    ffi::ztrsna_(
37447        &(job as c_char),
37448        &(howmny as c_char),
37449        select.as_ptr(),
37450        &n,
37451        t.as_ptr() as *const _,
37452        &ldt,
37453        vl.as_ptr() as *const _,
37454        &ldvl,
37455        vr.as_ptr() as *const _,
37456        &ldvr,
37457        s.as_mut_ptr(),
37458        sep.as_mut_ptr(),
37459        &mm,
37460        m,
37461        work.as_mut_ptr() as *mut _,
37462        &ldwork,
37463        rwork.as_mut_ptr(),
37464        info,
37465    )
37466}
37467
37468#[inline]
37469pub unsafe fn ctrsyl(
37470    trana: u8,
37471    tranb: u8,
37472    isgn: &[i32],
37473    m: i32,
37474    n: i32,
37475    a: &[c32],
37476    lda: i32,
37477    b: &[c32],
37478    ldb: i32,
37479    c: &mut [c32],
37480    ldc: i32,
37481    scale: &mut [f32],
37482    info: &mut i32,
37483) {
37484    ffi::ctrsyl_(
37485        &(trana as c_char),
37486        &(tranb as c_char),
37487        isgn.as_ptr(),
37488        &m,
37489        &n,
37490        a.as_ptr() as *const _,
37491        &lda,
37492        b.as_ptr() as *const _,
37493        &ldb,
37494        c.as_mut_ptr() as *mut _,
37495        &ldc,
37496        scale.as_mut_ptr(),
37497        info,
37498    )
37499}
37500
37501#[inline]
37502pub unsafe fn dtrsyl(
37503    trana: u8,
37504    tranb: u8,
37505    isgn: &[i32],
37506    m: i32,
37507    n: i32,
37508    a: &[f64],
37509    lda: i32,
37510    b: &[f64],
37511    ldb: i32,
37512    c: &mut [f64],
37513    ldc: i32,
37514    scale: &mut [f64],
37515    info: &mut i32,
37516) {
37517    ffi::dtrsyl_(
37518        &(trana as c_char),
37519        &(tranb as c_char),
37520        isgn.as_ptr(),
37521        &m,
37522        &n,
37523        a.as_ptr(),
37524        &lda,
37525        b.as_ptr(),
37526        &ldb,
37527        c.as_mut_ptr(),
37528        &ldc,
37529        scale.as_mut_ptr(),
37530        info,
37531    )
37532}
37533
37534#[inline]
37535pub unsafe fn strsyl(
37536    trana: u8,
37537    tranb: u8,
37538    isgn: &[i32],
37539    m: i32,
37540    n: i32,
37541    a: &[f32],
37542    lda: i32,
37543    b: &[f32],
37544    ldb: i32,
37545    c: &mut [f32],
37546    ldc: i32,
37547    scale: &mut [f32],
37548    info: &mut i32,
37549) {
37550    ffi::strsyl_(
37551        &(trana as c_char),
37552        &(tranb as c_char),
37553        isgn.as_ptr(),
37554        &m,
37555        &n,
37556        a.as_ptr(),
37557        &lda,
37558        b.as_ptr(),
37559        &ldb,
37560        c.as_mut_ptr(),
37561        &ldc,
37562        scale.as_mut_ptr(),
37563        info,
37564    )
37565}
37566
37567#[inline]
37568pub unsafe fn ztrsyl(
37569    trana: u8,
37570    tranb: u8,
37571    isgn: &[i32],
37572    m: i32,
37573    n: i32,
37574    a: &[c64],
37575    lda: i32,
37576    b: &[c64],
37577    ldb: i32,
37578    c: &mut [c64],
37579    ldc: i32,
37580    scale: &mut [f64],
37581    info: &mut i32,
37582) {
37583    ffi::ztrsyl_(
37584        &(trana as c_char),
37585        &(tranb as c_char),
37586        isgn.as_ptr(),
37587        &m,
37588        &n,
37589        a.as_ptr() as *const _,
37590        &lda,
37591        b.as_ptr() as *const _,
37592        &ldb,
37593        c.as_mut_ptr() as *mut _,
37594        &ldc,
37595        scale.as_mut_ptr(),
37596        info,
37597    )
37598}
37599
37600#[inline]
37601pub unsafe fn ctrtri(uplo: u8, diag: u8, n: i32, a: &mut [c32], lda: i32, info: &mut i32) {
37602    ffi::ctrtri_(
37603        &(uplo as c_char),
37604        &(diag as c_char),
37605        &n,
37606        a.as_mut_ptr() as *mut _,
37607        &lda,
37608        info,
37609    )
37610}
37611
37612#[inline]
37613pub unsafe fn dtrtri(uplo: u8, diag: u8, n: i32, a: &mut [f64], lda: i32, info: &mut i32) {
37614    ffi::dtrtri_(
37615        &(uplo as c_char),
37616        &(diag as c_char),
37617        &n,
37618        a.as_mut_ptr(),
37619        &lda,
37620        info,
37621    )
37622}
37623
37624#[inline]
37625pub unsafe fn strtri(uplo: u8, diag: u8, n: i32, a: &mut [f32], lda: i32, info: &mut i32) {
37626    ffi::strtri_(
37627        &(uplo as c_char),
37628        &(diag as c_char),
37629        &n,
37630        a.as_mut_ptr(),
37631        &lda,
37632        info,
37633    )
37634}
37635
37636#[inline]
37637pub unsafe fn ztrtri(uplo: u8, diag: u8, n: i32, a: &mut [c64], lda: i32, info: &mut i32) {
37638    ffi::ztrtri_(
37639        &(uplo as c_char),
37640        &(diag as c_char),
37641        &n,
37642        a.as_mut_ptr() as *mut _,
37643        &lda,
37644        info,
37645    )
37646}
37647
37648#[inline]
37649pub unsafe fn ctrtrs(
37650    uplo: u8,
37651    trans: u8,
37652    diag: u8,
37653    n: i32,
37654    nrhs: i32,
37655    a: &[c32],
37656    lda: i32,
37657    b: &mut [c32],
37658    ldb: i32,
37659    info: &mut i32,
37660) {
37661    ffi::ctrtrs_(
37662        &(uplo as c_char),
37663        &(trans as c_char),
37664        &(diag as c_char),
37665        &n,
37666        &nrhs,
37667        a.as_ptr() as *const _,
37668        &lda,
37669        b.as_mut_ptr() as *mut _,
37670        &ldb,
37671        info,
37672    )
37673}
37674
37675#[inline]
37676pub unsafe fn dtrtrs(
37677    uplo: u8,
37678    trans: u8,
37679    diag: u8,
37680    n: i32,
37681    nrhs: i32,
37682    a: &[f64],
37683    lda: i32,
37684    b: &mut [f64],
37685    ldb: i32,
37686    info: &mut i32,
37687) {
37688    ffi::dtrtrs_(
37689        &(uplo as c_char),
37690        &(trans as c_char),
37691        &(diag as c_char),
37692        &n,
37693        &nrhs,
37694        a.as_ptr(),
37695        &lda,
37696        b.as_mut_ptr(),
37697        &ldb,
37698        info,
37699    )
37700}
37701
37702#[inline]
37703pub unsafe fn strtrs(
37704    uplo: u8,
37705    trans: u8,
37706    diag: u8,
37707    n: i32,
37708    nrhs: i32,
37709    a: &[f32],
37710    lda: i32,
37711    b: &mut [f32],
37712    ldb: i32,
37713    info: &mut i32,
37714) {
37715    ffi::strtrs_(
37716        &(uplo as c_char),
37717        &(trans as c_char),
37718        &(diag as c_char),
37719        &n,
37720        &nrhs,
37721        a.as_ptr(),
37722        &lda,
37723        b.as_mut_ptr(),
37724        &ldb,
37725        info,
37726    )
37727}
37728
37729#[inline]
37730pub unsafe fn ztrtrs(
37731    uplo: u8,
37732    trans: u8,
37733    diag: u8,
37734    n: i32,
37735    nrhs: i32,
37736    a: &[c64],
37737    lda: i32,
37738    b: &mut [c64],
37739    ldb: i32,
37740    info: &mut i32,
37741) {
37742    ffi::ztrtrs_(
37743        &(uplo as c_char),
37744        &(trans as c_char),
37745        &(diag as c_char),
37746        &n,
37747        &nrhs,
37748        a.as_ptr() as *const _,
37749        &lda,
37750        b.as_mut_ptr() as *mut _,
37751        &ldb,
37752        info,
37753    )
37754}
37755
37756#[inline]
37757pub unsafe fn ctrttf(
37758    transr: u8,
37759    uplo: u8,
37760    n: i32,
37761    a: &[c32],
37762    lda: i32,
37763    arf: &mut [c32],
37764    info: &mut i32,
37765) {
37766    ffi::ctrttf_(
37767        &(transr as c_char),
37768        &(uplo as c_char),
37769        &n,
37770        a.as_ptr() as *const _,
37771        &lda,
37772        arf.as_mut_ptr() as *mut _,
37773        info,
37774    )
37775}
37776
37777#[inline]
37778pub unsafe fn dtrttf(
37779    transr: u8,
37780    uplo: u8,
37781    n: i32,
37782    a: &[f64],
37783    lda: i32,
37784    arf: &mut [f64],
37785    info: &mut i32,
37786) {
37787    ffi::dtrttf_(
37788        &(transr as c_char),
37789        &(uplo as c_char),
37790        &n,
37791        a.as_ptr(),
37792        &lda,
37793        arf.as_mut_ptr(),
37794        info,
37795    )
37796}
37797
37798#[inline]
37799pub unsafe fn strttf(
37800    transr: u8,
37801    uplo: u8,
37802    n: i32,
37803    a: &[f32],
37804    lda: i32,
37805    arf: &mut [f32],
37806    info: &mut i32,
37807) {
37808    ffi::strttf_(
37809        &(transr as c_char),
37810        &(uplo as c_char),
37811        &n,
37812        a.as_ptr(),
37813        &lda,
37814        arf.as_mut_ptr(),
37815        info,
37816    )
37817}
37818
37819#[inline]
37820pub unsafe fn ztrttf(
37821    transr: u8,
37822    uplo: u8,
37823    n: i32,
37824    a: &[c64],
37825    lda: i32,
37826    arf: &mut [c64],
37827    info: &mut i32,
37828) {
37829    ffi::ztrttf_(
37830        &(transr as c_char),
37831        &(uplo as c_char),
37832        &n,
37833        a.as_ptr() as *const _,
37834        &lda,
37835        arf.as_mut_ptr() as *mut _,
37836        info,
37837    )
37838}
37839
37840#[inline]
37841pub unsafe fn ctrttp(uplo: u8, n: i32, a: &[c32], lda: i32, ap: &mut [c32], info: &mut i32) {
37842    ffi::ctrttp_(
37843        &(uplo as c_char),
37844        &n,
37845        a.as_ptr() as *const _,
37846        &lda,
37847        ap.as_mut_ptr() as *mut _,
37848        info,
37849    )
37850}
37851
37852#[inline]
37853pub unsafe fn dtrttp(uplo: u8, n: i32, a: &[f64], lda: i32, ap: &mut [f64], info: &mut i32) {
37854    ffi::dtrttp_(
37855        &(uplo as c_char),
37856        &n,
37857        a.as_ptr(),
37858        &lda,
37859        ap.as_mut_ptr(),
37860        info,
37861    )
37862}
37863
37864#[inline]
37865pub unsafe fn strttp(uplo: u8, n: i32, a: &[f32], lda: i32, ap: &mut [f32], info: &mut i32) {
37866    ffi::strttp_(
37867        &(uplo as c_char),
37868        &n,
37869        a.as_ptr(),
37870        &lda,
37871        ap.as_mut_ptr(),
37872        info,
37873    )
37874}
37875
37876#[inline]
37877pub unsafe fn ztrttp(uplo: u8, n: i32, a: &[c64], lda: i32, ap: &mut [c64], info: &mut i32) {
37878    ffi::ztrttp_(
37879        &(uplo as c_char),
37880        &n,
37881        a.as_ptr() as *const _,
37882        &lda,
37883        ap.as_mut_ptr() as *mut _,
37884        info,
37885    )
37886}
37887
37888#[inline]
37889pub unsafe fn ctzrzf(
37890    m: i32,
37891    n: i32,
37892    a: &mut [c32],
37893    lda: i32,
37894    tau: &mut [c32],
37895    work: &mut [c32],
37896    lwork: i32,
37897    info: &mut i32,
37898) {
37899    ffi::ctzrzf_(
37900        &m,
37901        &n,
37902        a.as_mut_ptr() as *mut _,
37903        &lda,
37904        tau.as_mut_ptr() as *mut _,
37905        work.as_mut_ptr() as *mut _,
37906        &lwork,
37907        info,
37908    )
37909}
37910
37911#[inline]
37912pub unsafe fn dtzrzf(
37913    m: i32,
37914    n: i32,
37915    a: &mut [f64],
37916    lda: i32,
37917    tau: &mut [f64],
37918    work: &mut [f64],
37919    lwork: i32,
37920    info: &mut i32,
37921) {
37922    ffi::dtzrzf_(
37923        &m,
37924        &n,
37925        a.as_mut_ptr(),
37926        &lda,
37927        tau.as_mut_ptr(),
37928        work.as_mut_ptr(),
37929        &lwork,
37930        info,
37931    )
37932}
37933
37934#[inline]
37935pub unsafe fn stzrzf(
37936    m: i32,
37937    n: i32,
37938    a: &mut [f32],
37939    lda: i32,
37940    tau: &mut [f32],
37941    work: &mut [f32],
37942    lwork: i32,
37943    info: &mut i32,
37944) {
37945    ffi::stzrzf_(
37946        &m,
37947        &n,
37948        a.as_mut_ptr(),
37949        &lda,
37950        tau.as_mut_ptr(),
37951        work.as_mut_ptr(),
37952        &lwork,
37953        info,
37954    )
37955}
37956
37957#[inline]
37958pub unsafe fn ztzrzf(
37959    m: i32,
37960    n: i32,
37961    a: &mut [c64],
37962    lda: i32,
37963    tau: &mut [c64],
37964    work: &mut [c64],
37965    lwork: i32,
37966    info: &mut i32,
37967) {
37968    ffi::ztzrzf_(
37969        &m,
37970        &n,
37971        a.as_mut_ptr() as *mut _,
37972        &lda,
37973        tau.as_mut_ptr() as *mut _,
37974        work.as_mut_ptr() as *mut _,
37975        &lwork,
37976        info,
37977    )
37978}
37979
37980#[inline]
37981pub unsafe fn cunbdb(
37982    trans: u8,
37983    signs: u8,
37984    m: i32,
37985    p: i32,
37986    q: &[i32],
37987    x11: &mut [c32],
37988    ldx11: i32,
37989    x12: &mut [c32],
37990    ldx12: i32,
37991    x21: &mut [c32],
37992    ldx21: i32,
37993    x22: &mut [c32],
37994    ldx22: i32,
37995    theta: &mut [f32],
37996    phi: &mut [f32],
37997    taup1: &mut [c32],
37998    taup2: &mut [c32],
37999    tauq1: &mut [c32],
38000    tauq2: &mut [c32],
38001    work: &mut [c32],
38002    lwork: i32,
38003    info: &mut i32,
38004) {
38005    ffi::cunbdb_(
38006        &(trans as c_char),
38007        &(signs as c_char),
38008        &m,
38009        &p,
38010        q.as_ptr(),
38011        x11.as_mut_ptr() as *mut _,
38012        &ldx11,
38013        x12.as_mut_ptr() as *mut _,
38014        &ldx12,
38015        x21.as_mut_ptr() as *mut _,
38016        &ldx21,
38017        x22.as_mut_ptr() as *mut _,
38018        &ldx22,
38019        theta.as_mut_ptr(),
38020        phi.as_mut_ptr(),
38021        taup1.as_mut_ptr() as *mut _,
38022        taup2.as_mut_ptr() as *mut _,
38023        tauq1.as_mut_ptr() as *mut _,
38024        tauq2.as_mut_ptr() as *mut _,
38025        work.as_mut_ptr() as *mut _,
38026        &lwork,
38027        info,
38028    )
38029}
38030
38031#[inline]
38032pub unsafe fn zunbdb(
38033    trans: u8,
38034    signs: u8,
38035    m: i32,
38036    p: i32,
38037    q: &[i32],
38038    x11: &mut [c64],
38039    ldx11: i32,
38040    x12: &mut [c64],
38041    ldx12: i32,
38042    x21: &mut [c64],
38043    ldx21: i32,
38044    x22: &mut [c64],
38045    ldx22: i32,
38046    theta: &mut [f64],
38047    phi: &mut [f64],
38048    taup1: &mut [c64],
38049    taup2: &mut [c64],
38050    tauq1: &mut [c64],
38051    tauq2: &mut [c64],
38052    work: &mut [c64],
38053    lwork: i32,
38054    info: &mut i32,
38055) {
38056    ffi::zunbdb_(
38057        &(trans as c_char),
38058        &(signs as c_char),
38059        &m,
38060        &p,
38061        q.as_ptr(),
38062        x11.as_mut_ptr() as *mut _,
38063        &ldx11,
38064        x12.as_mut_ptr() as *mut _,
38065        &ldx12,
38066        x21.as_mut_ptr() as *mut _,
38067        &ldx21,
38068        x22.as_mut_ptr() as *mut _,
38069        &ldx22,
38070        theta.as_mut_ptr(),
38071        phi.as_mut_ptr(),
38072        taup1.as_mut_ptr() as *mut _,
38073        taup2.as_mut_ptr() as *mut _,
38074        tauq1.as_mut_ptr() as *mut _,
38075        tauq2.as_mut_ptr() as *mut _,
38076        work.as_mut_ptr() as *mut _,
38077        &lwork,
38078        info,
38079    )
38080}
38081
38082#[inline]
38083pub unsafe fn cuncsd(
38084    jobu1: u8,
38085    jobu2: u8,
38086    jobv1t: u8,
38087    jobv2t: u8,
38088    trans: u8,
38089    signs: u8,
38090    m: i32,
38091    p: i32,
38092    q: &[i32],
38093    x11: &mut [c32],
38094    ldx11: i32,
38095    x12: &mut [c32],
38096    ldx12: i32,
38097    x21: &mut [c32],
38098    ldx21: i32,
38099    x22: &mut [c32],
38100    ldx22: i32,
38101    theta: &mut [f32],
38102    u1: &mut [c32],
38103    ldu1: i32,
38104    u2: &mut [c32],
38105    ldu2: i32,
38106    v1t: &mut [c32],
38107    ldv1t: i32,
38108    v2t: &mut [c32],
38109    ldv2t: i32,
38110    work: &mut [c32],
38111    lwork: i32,
38112    rwork: &mut [f32],
38113    lrwork: i32,
38114    iwork: &mut [i32],
38115    info: &mut i32,
38116) {
38117    ffi::cuncsd_(
38118        &(jobu1 as c_char),
38119        &(jobu2 as c_char),
38120        &(jobv1t as c_char),
38121        &(jobv2t as c_char),
38122        &(trans as c_char),
38123        &(signs as c_char),
38124        &m,
38125        &p,
38126        q.as_ptr(),
38127        x11.as_mut_ptr() as *mut _,
38128        &ldx11,
38129        x12.as_mut_ptr() as *mut _,
38130        &ldx12,
38131        x21.as_mut_ptr() as *mut _,
38132        &ldx21,
38133        x22.as_mut_ptr() as *mut _,
38134        &ldx22,
38135        theta.as_mut_ptr(),
38136        u1.as_mut_ptr() as *mut _,
38137        &ldu1,
38138        u2.as_mut_ptr() as *mut _,
38139        &ldu2,
38140        v1t.as_mut_ptr() as *mut _,
38141        &ldv1t,
38142        v2t.as_mut_ptr() as *mut _,
38143        &ldv2t,
38144        work.as_mut_ptr() as *mut _,
38145        &lwork,
38146        rwork.as_mut_ptr(),
38147        &lrwork,
38148        iwork.as_mut_ptr(),
38149        info,
38150    )
38151}
38152
38153#[inline]
38154pub unsafe fn zuncsd(
38155    jobu1: u8,
38156    jobu2: u8,
38157    jobv1t: u8,
38158    jobv2t: u8,
38159    trans: u8,
38160    signs: u8,
38161    m: i32,
38162    p: i32,
38163    q: &[i32],
38164    x11: &mut [c64],
38165    ldx11: i32,
38166    x12: &mut [c64],
38167    ldx12: i32,
38168    x21: &mut [c64],
38169    ldx21: i32,
38170    x22: &mut [c64],
38171    ldx22: i32,
38172    theta: &mut [f64],
38173    u1: &mut [c64],
38174    ldu1: i32,
38175    u2: &mut [c64],
38176    ldu2: i32,
38177    v1t: &mut [c64],
38178    ldv1t: i32,
38179    v2t: &mut [c64],
38180    ldv2t: i32,
38181    work: &mut [c64],
38182    lwork: i32,
38183    rwork: &mut [f64],
38184    lrwork: i32,
38185    iwork: &mut [i32],
38186    info: &mut i32,
38187) {
38188    ffi::zuncsd_(
38189        &(jobu1 as c_char),
38190        &(jobu2 as c_char),
38191        &(jobv1t as c_char),
38192        &(jobv2t as c_char),
38193        &(trans as c_char),
38194        &(signs as c_char),
38195        &m,
38196        &p,
38197        q.as_ptr(),
38198        x11.as_mut_ptr() as *mut _,
38199        &ldx11,
38200        x12.as_mut_ptr() as *mut _,
38201        &ldx12,
38202        x21.as_mut_ptr() as *mut _,
38203        &ldx21,
38204        x22.as_mut_ptr() as *mut _,
38205        &ldx22,
38206        theta.as_mut_ptr(),
38207        u1.as_mut_ptr() as *mut _,
38208        &ldu1,
38209        u2.as_mut_ptr() as *mut _,
38210        &ldu2,
38211        v1t.as_mut_ptr() as *mut _,
38212        &ldv1t,
38213        v2t.as_mut_ptr() as *mut _,
38214        &ldv2t,
38215        work.as_mut_ptr() as *mut _,
38216        &lwork,
38217        rwork.as_mut_ptr(),
38218        &lrwork,
38219        iwork.as_mut_ptr(),
38220        info,
38221    )
38222}
38223
38224#[inline]
38225pub unsafe fn cuncsd2by1(
38226    jobu1: u8,
38227    jobu2: u8,
38228    jobv1t: u8,
38229    m: i32,
38230    p: i32,
38231    q: &[i32],
38232    x11: &mut [c32],
38233    ldx11: i32,
38234    x21: &mut [c32],
38235    ldx21: i32,
38236    theta: &mut [f32],
38237    u1: &mut [c32],
38238    ldu1: i32,
38239    u2: &mut [c32],
38240    ldu2: i32,
38241    v1t: &mut [c32],
38242    ldv1t: i32,
38243    work: &mut [c32],
38244    lwork: i32,
38245    rwork: &mut [f32],
38246    lrwork: i32,
38247    iwork: &mut [i32],
38248    info: &mut i32,
38249) {
38250    ffi::cuncsd2by1_(
38251        &(jobu1 as c_char),
38252        &(jobu2 as c_char),
38253        &(jobv1t as c_char),
38254        &m,
38255        &p,
38256        q.as_ptr(),
38257        x11.as_mut_ptr() as *mut _,
38258        &ldx11,
38259        x21.as_mut_ptr() as *mut _,
38260        &ldx21,
38261        theta.as_mut_ptr(),
38262        u1.as_mut_ptr() as *mut _,
38263        &ldu1,
38264        u2.as_mut_ptr() as *mut _,
38265        &ldu2,
38266        v1t.as_mut_ptr() as *mut _,
38267        &ldv1t,
38268        work.as_mut_ptr() as *mut _,
38269        &lwork,
38270        rwork.as_mut_ptr(),
38271        &lrwork,
38272        iwork.as_mut_ptr(),
38273        info,
38274    )
38275}
38276
38277#[inline]
38278pub unsafe fn zuncsd2by1(
38279    jobu1: u8,
38280    jobu2: u8,
38281    jobv1t: u8,
38282    m: i32,
38283    p: i32,
38284    q: &[i32],
38285    x11: &mut [c64],
38286    ldx11: i32,
38287    x21: &mut [c64],
38288    ldx21: i32,
38289    theta: &mut [f64],
38290    u1: &mut [c64],
38291    ldu1: i32,
38292    u2: &mut [c64],
38293    ldu2: i32,
38294    v1t: &mut [c64],
38295    ldv1t: i32,
38296    work: &mut [c64],
38297    lwork: i32,
38298    rwork: &mut [f64],
38299    lrwork: i32,
38300    iwork: &mut [i32],
38301    info: &mut i32,
38302) {
38303    ffi::zuncsd2by1_(
38304        &(jobu1 as c_char),
38305        &(jobu2 as c_char),
38306        &(jobv1t as c_char),
38307        &m,
38308        &p,
38309        q.as_ptr(),
38310        x11.as_mut_ptr() as *mut _,
38311        &ldx11,
38312        x21.as_mut_ptr() as *mut _,
38313        &ldx21,
38314        theta.as_mut_ptr(),
38315        u1.as_mut_ptr() as *mut _,
38316        &ldu1,
38317        u2.as_mut_ptr() as *mut _,
38318        &ldu2,
38319        v1t.as_mut_ptr() as *mut _,
38320        &ldv1t,
38321        work.as_mut_ptr() as *mut _,
38322        &lwork,
38323        rwork.as_mut_ptr(),
38324        &lrwork,
38325        iwork.as_mut_ptr(),
38326        info,
38327    )
38328}
38329
38330#[inline]
38331pub unsafe fn cungbr(
38332    vect: u8,
38333    m: i32,
38334    n: i32,
38335    k: i32,
38336    a: &mut [c32],
38337    lda: i32,
38338    tau: &[c32],
38339    work: &mut [c32],
38340    lwork: i32,
38341    info: &mut i32,
38342) {
38343    ffi::cungbr_(
38344        &(vect as c_char),
38345        &m,
38346        &n,
38347        &k,
38348        a.as_mut_ptr() as *mut _,
38349        &lda,
38350        tau.as_ptr() as *const _,
38351        work.as_mut_ptr() as *mut _,
38352        &lwork,
38353        info,
38354    )
38355}
38356
38357#[inline]
38358pub unsafe fn zungbr(
38359    vect: u8,
38360    m: i32,
38361    n: i32,
38362    k: i32,
38363    a: &mut [c64],
38364    lda: i32,
38365    tau: &[c64],
38366    work: &mut [c64],
38367    lwork: i32,
38368    info: &mut i32,
38369) {
38370    ffi::zungbr_(
38371        &(vect as c_char),
38372        &m,
38373        &n,
38374        &k,
38375        a.as_mut_ptr() as *mut _,
38376        &lda,
38377        tau.as_ptr() as *const _,
38378        work.as_mut_ptr() as *mut _,
38379        &lwork,
38380        info,
38381    )
38382}
38383
38384#[inline]
38385pub unsafe fn cunghr(
38386    n: i32,
38387    ilo: i32,
38388    ihi: i32,
38389    a: &mut [c32],
38390    lda: i32,
38391    tau: &[c32],
38392    work: &mut [c32],
38393    lwork: i32,
38394    info: &mut i32,
38395) {
38396    ffi::cunghr_(
38397        &n,
38398        &ilo,
38399        &ihi,
38400        a.as_mut_ptr() as *mut _,
38401        &lda,
38402        tau.as_ptr() as *const _,
38403        work.as_mut_ptr() as *mut _,
38404        &lwork,
38405        info,
38406    )
38407}
38408
38409#[inline]
38410pub unsafe fn zunghr(
38411    n: i32,
38412    ilo: i32,
38413    ihi: i32,
38414    a: &mut [c64],
38415    lda: i32,
38416    tau: &[c64],
38417    work: &mut [c64],
38418    lwork: i32,
38419    info: &mut i32,
38420) {
38421    ffi::zunghr_(
38422        &n,
38423        &ilo,
38424        &ihi,
38425        a.as_mut_ptr() as *mut _,
38426        &lda,
38427        tau.as_ptr() as *const _,
38428        work.as_mut_ptr() as *mut _,
38429        &lwork,
38430        info,
38431    )
38432}
38433
38434#[inline]
38435pub unsafe fn cunglq(
38436    m: i32,
38437    n: i32,
38438    k: i32,
38439    a: &mut [c32],
38440    lda: i32,
38441    tau: &[c32],
38442    work: &mut [c32],
38443    lwork: i32,
38444    info: &mut i32,
38445) {
38446    ffi::cunglq_(
38447        &m,
38448        &n,
38449        &k,
38450        a.as_mut_ptr() as *mut _,
38451        &lda,
38452        tau.as_ptr() as *const _,
38453        work.as_mut_ptr() as *mut _,
38454        &lwork,
38455        info,
38456    )
38457}
38458
38459#[inline]
38460pub unsafe fn zunglq(
38461    m: i32,
38462    n: i32,
38463    k: i32,
38464    a: &mut [c64],
38465    lda: i32,
38466    tau: &[c64],
38467    work: &mut [c64],
38468    lwork: i32,
38469    info: &mut i32,
38470) {
38471    ffi::zunglq_(
38472        &m,
38473        &n,
38474        &k,
38475        a.as_mut_ptr() as *mut _,
38476        &lda,
38477        tau.as_ptr() as *const _,
38478        work.as_mut_ptr() as *mut _,
38479        &lwork,
38480        info,
38481    )
38482}
38483
38484#[inline]
38485pub unsafe fn cungql(
38486    m: i32,
38487    n: i32,
38488    k: i32,
38489    a: &mut [c32],
38490    lda: i32,
38491    tau: &[c32],
38492    work: &mut [c32],
38493    lwork: i32,
38494    info: &mut i32,
38495) {
38496    ffi::cungql_(
38497        &m,
38498        &n,
38499        &k,
38500        a.as_mut_ptr() as *mut _,
38501        &lda,
38502        tau.as_ptr() as *const _,
38503        work.as_mut_ptr() as *mut _,
38504        &lwork,
38505        info,
38506    )
38507}
38508
38509#[inline]
38510pub unsafe fn zungql(
38511    m: i32,
38512    n: i32,
38513    k: i32,
38514    a: &mut [c64],
38515    lda: i32,
38516    tau: &[c64],
38517    work: &mut [c64],
38518    lwork: i32,
38519    info: &mut i32,
38520) {
38521    ffi::zungql_(
38522        &m,
38523        &n,
38524        &k,
38525        a.as_mut_ptr() as *mut _,
38526        &lda,
38527        tau.as_ptr() as *const _,
38528        work.as_mut_ptr() as *mut _,
38529        &lwork,
38530        info,
38531    )
38532}
38533
38534#[inline]
38535pub unsafe fn cungqr(
38536    m: i32,
38537    n: i32,
38538    k: i32,
38539    a: &mut [c32],
38540    lda: i32,
38541    tau: &[c32],
38542    work: &mut [c32],
38543    lwork: i32,
38544    info: &mut i32,
38545) {
38546    ffi::cungqr_(
38547        &m,
38548        &n,
38549        &k,
38550        a.as_mut_ptr() as *mut _,
38551        &lda,
38552        tau.as_ptr() as *const _,
38553        work.as_mut_ptr() as *mut _,
38554        &lwork,
38555        info,
38556    )
38557}
38558
38559#[inline]
38560pub unsafe fn zungqr(
38561    m: i32,
38562    n: i32,
38563    k: i32,
38564    a: &mut [c64],
38565    lda: i32,
38566    tau: &[c64],
38567    work: &mut [c64],
38568    lwork: i32,
38569    info: &mut i32,
38570) {
38571    ffi::zungqr_(
38572        &m,
38573        &n,
38574        &k,
38575        a.as_mut_ptr() as *mut _,
38576        &lda,
38577        tau.as_ptr() as *const _,
38578        work.as_mut_ptr() as *mut _,
38579        &lwork,
38580        info,
38581    )
38582}
38583
38584#[inline]
38585pub unsafe fn cungrq(
38586    m: i32,
38587    n: i32,
38588    k: i32,
38589    a: &mut [c32],
38590    lda: i32,
38591    tau: &[c32],
38592    work: &mut [c32],
38593    lwork: i32,
38594    info: &mut i32,
38595) {
38596    ffi::cungrq_(
38597        &m,
38598        &n,
38599        &k,
38600        a.as_mut_ptr() as *mut _,
38601        &lda,
38602        tau.as_ptr() as *const _,
38603        work.as_mut_ptr() as *mut _,
38604        &lwork,
38605        info,
38606    )
38607}
38608
38609#[inline]
38610pub unsafe fn zungrq(
38611    m: i32,
38612    n: i32,
38613    k: i32,
38614    a: &mut [c64],
38615    lda: i32,
38616    tau: &[c64],
38617    work: &mut [c64],
38618    lwork: i32,
38619    info: &mut i32,
38620) {
38621    ffi::zungrq_(
38622        &m,
38623        &n,
38624        &k,
38625        a.as_mut_ptr() as *mut _,
38626        &lda,
38627        tau.as_ptr() as *const _,
38628        work.as_mut_ptr() as *mut _,
38629        &lwork,
38630        info,
38631    )
38632}
38633
38634#[inline]
38635pub unsafe fn cungtr(
38636    uplo: u8,
38637    n: i32,
38638    a: &mut [c32],
38639    lda: i32,
38640    tau: &[c32],
38641    work: &mut [c32],
38642    lwork: i32,
38643    info: &mut i32,
38644) {
38645    ffi::cungtr_(
38646        &(uplo as c_char),
38647        &n,
38648        a.as_mut_ptr() as *mut _,
38649        &lda,
38650        tau.as_ptr() as *const _,
38651        work.as_mut_ptr() as *mut _,
38652        &lwork,
38653        info,
38654    )
38655}
38656
38657#[inline]
38658pub unsafe fn zungtr(
38659    uplo: u8,
38660    n: i32,
38661    a: &mut [c64],
38662    lda: i32,
38663    tau: &[c64],
38664    work: &mut [c64],
38665    lwork: i32,
38666    info: &mut i32,
38667) {
38668    ffi::zungtr_(
38669        &(uplo as c_char),
38670        &n,
38671        a.as_mut_ptr() as *mut _,
38672        &lda,
38673        tau.as_ptr() as *const _,
38674        work.as_mut_ptr() as *mut _,
38675        &lwork,
38676        info,
38677    )
38678}
38679
38680#[inline]
38681pub unsafe fn cungtsqr_row(
38682    m: i32,
38683    n: i32,
38684    mb: &[i32],
38685    nb: i32,
38686    a: &mut [c32],
38687    lda: i32,
38688    t: &[c32],
38689    ldt: i32,
38690    work: &mut [c32],
38691    lwork: i32,
38692    info: &mut i32,
38693) {
38694    ffi::cungtsqr_row_(
38695        &m,
38696        &n,
38697        mb.as_ptr(),
38698        &nb,
38699        a.as_mut_ptr() as *mut _,
38700        &lda,
38701        t.as_ptr() as *const _,
38702        &ldt,
38703        work.as_mut_ptr() as *mut _,
38704        &lwork,
38705        info,
38706    )
38707}
38708
38709#[inline]
38710pub unsafe fn zungtsqr_row(
38711    m: i32,
38712    n: i32,
38713    mb: &[i32],
38714    nb: i32,
38715    a: &mut [c64],
38716    lda: i32,
38717    t: &[c64],
38718    ldt: i32,
38719    work: &mut [c64],
38720    lwork: i32,
38721    info: &mut i32,
38722) {
38723    ffi::zungtsqr_row_(
38724        &m,
38725        &n,
38726        mb.as_ptr(),
38727        &nb,
38728        a.as_mut_ptr() as *mut _,
38729        &lda,
38730        t.as_ptr() as *const _,
38731        &ldt,
38732        work.as_mut_ptr() as *mut _,
38733        &lwork,
38734        info,
38735    )
38736}
38737
38738#[inline]
38739pub unsafe fn cunmbr(
38740    vect: u8,
38741    side: u8,
38742    trans: u8,
38743    m: i32,
38744    n: i32,
38745    k: i32,
38746    a: &[c32],
38747    lda: i32,
38748    tau: &[c32],
38749    c: &mut [c32],
38750    ldc: i32,
38751    work: &mut [c32],
38752    lwork: i32,
38753    info: &mut i32,
38754) {
38755    ffi::cunmbr_(
38756        &(vect as c_char),
38757        &(side as c_char),
38758        &(trans as c_char),
38759        &m,
38760        &n,
38761        &k,
38762        a.as_ptr() as *const _,
38763        &lda,
38764        tau.as_ptr() as *const _,
38765        c.as_mut_ptr() as *mut _,
38766        &ldc,
38767        work.as_mut_ptr() as *mut _,
38768        &lwork,
38769        info,
38770    )
38771}
38772
38773#[inline]
38774pub unsafe fn zunmbr(
38775    vect: u8,
38776    side: u8,
38777    trans: u8,
38778    m: i32,
38779    n: i32,
38780    k: i32,
38781    a: &[c64],
38782    lda: i32,
38783    tau: &[c64],
38784    c: &mut [c64],
38785    ldc: i32,
38786    work: &mut [c64],
38787    lwork: i32,
38788    info: &mut i32,
38789) {
38790    ffi::zunmbr_(
38791        &(vect as c_char),
38792        &(side as c_char),
38793        &(trans as c_char),
38794        &m,
38795        &n,
38796        &k,
38797        a.as_ptr() as *const _,
38798        &lda,
38799        tau.as_ptr() as *const _,
38800        c.as_mut_ptr() as *mut _,
38801        &ldc,
38802        work.as_mut_ptr() as *mut _,
38803        &lwork,
38804        info,
38805    )
38806}
38807
38808#[inline]
38809pub unsafe fn cunmhr(
38810    side: u8,
38811    trans: u8,
38812    m: i32,
38813    n: i32,
38814    ilo: i32,
38815    ihi: i32,
38816    a: &[c32],
38817    lda: i32,
38818    tau: &[c32],
38819    c: &mut [c32],
38820    ldc: i32,
38821    work: &mut [c32],
38822    lwork: i32,
38823    info: &mut i32,
38824) {
38825    ffi::cunmhr_(
38826        &(side as c_char),
38827        &(trans as c_char),
38828        &m,
38829        &n,
38830        &ilo,
38831        &ihi,
38832        a.as_ptr() as *const _,
38833        &lda,
38834        tau.as_ptr() as *const _,
38835        c.as_mut_ptr() as *mut _,
38836        &ldc,
38837        work.as_mut_ptr() as *mut _,
38838        &lwork,
38839        info,
38840    )
38841}
38842
38843#[inline]
38844pub unsafe fn zunmhr(
38845    side: u8,
38846    trans: u8,
38847    m: i32,
38848    n: i32,
38849    ilo: i32,
38850    ihi: i32,
38851    a: &[c64],
38852    lda: i32,
38853    tau: &[c64],
38854    c: &mut [c64],
38855    ldc: i32,
38856    work: &mut [c64],
38857    lwork: i32,
38858    info: &mut i32,
38859) {
38860    ffi::zunmhr_(
38861        &(side as c_char),
38862        &(trans as c_char),
38863        &m,
38864        &n,
38865        &ilo,
38866        &ihi,
38867        a.as_ptr() as *const _,
38868        &lda,
38869        tau.as_ptr() as *const _,
38870        c.as_mut_ptr() as *mut _,
38871        &ldc,
38872        work.as_mut_ptr() as *mut _,
38873        &lwork,
38874        info,
38875    )
38876}
38877
38878#[inline]
38879pub unsafe fn cunmlq(
38880    side: u8,
38881    trans: u8,
38882    m: i32,
38883    n: i32,
38884    k: i32,
38885    a: &[c32],
38886    lda: i32,
38887    tau: &[c32],
38888    c: &mut [c32],
38889    ldc: i32,
38890    work: &mut [c32],
38891    lwork: i32,
38892    info: &mut i32,
38893) {
38894    ffi::cunmlq_(
38895        &(side as c_char),
38896        &(trans as c_char),
38897        &m,
38898        &n,
38899        &k,
38900        a.as_ptr() as *const _,
38901        &lda,
38902        tau.as_ptr() as *const _,
38903        c.as_mut_ptr() as *mut _,
38904        &ldc,
38905        work.as_mut_ptr() as *mut _,
38906        &lwork,
38907        info,
38908    )
38909}
38910
38911#[inline]
38912pub unsafe fn zunmlq(
38913    side: u8,
38914    trans: u8,
38915    m: i32,
38916    n: i32,
38917    k: i32,
38918    a: &[c64],
38919    lda: i32,
38920    tau: &[c64],
38921    c: &mut [c64],
38922    ldc: i32,
38923    work: &mut [c64],
38924    lwork: i32,
38925    info: &mut i32,
38926) {
38927    ffi::zunmlq_(
38928        &(side as c_char),
38929        &(trans as c_char),
38930        &m,
38931        &n,
38932        &k,
38933        a.as_ptr() as *const _,
38934        &lda,
38935        tau.as_ptr() as *const _,
38936        c.as_mut_ptr() as *mut _,
38937        &ldc,
38938        work.as_mut_ptr() as *mut _,
38939        &lwork,
38940        info,
38941    )
38942}
38943
38944#[inline]
38945pub unsafe fn cunmql(
38946    side: u8,
38947    trans: u8,
38948    m: i32,
38949    n: i32,
38950    k: i32,
38951    a: &[c32],
38952    lda: i32,
38953    tau: &[c32],
38954    c: &mut [c32],
38955    ldc: i32,
38956    work: &mut [c32],
38957    lwork: i32,
38958    info: &mut i32,
38959) {
38960    ffi::cunmql_(
38961        &(side as c_char),
38962        &(trans as c_char),
38963        &m,
38964        &n,
38965        &k,
38966        a.as_ptr() as *const _,
38967        &lda,
38968        tau.as_ptr() as *const _,
38969        c.as_mut_ptr() as *mut _,
38970        &ldc,
38971        work.as_mut_ptr() as *mut _,
38972        &lwork,
38973        info,
38974    )
38975}
38976
38977#[inline]
38978pub unsafe fn zunmql(
38979    side: u8,
38980    trans: u8,
38981    m: i32,
38982    n: i32,
38983    k: i32,
38984    a: &[c64],
38985    lda: i32,
38986    tau: &[c64],
38987    c: &mut [c64],
38988    ldc: i32,
38989    work: &mut [c64],
38990    lwork: i32,
38991    info: &mut i32,
38992) {
38993    ffi::zunmql_(
38994        &(side as c_char),
38995        &(trans as c_char),
38996        &m,
38997        &n,
38998        &k,
38999        a.as_ptr() as *const _,
39000        &lda,
39001        tau.as_ptr() as *const _,
39002        c.as_mut_ptr() as *mut _,
39003        &ldc,
39004        work.as_mut_ptr() as *mut _,
39005        &lwork,
39006        info,
39007    )
39008}
39009
39010#[inline]
39011pub unsafe fn cunmqr(
39012    side: u8,
39013    trans: u8,
39014    m: i32,
39015    n: i32,
39016    k: i32,
39017    a: &[c32],
39018    lda: i32,
39019    tau: &[c32],
39020    c: &mut [c32],
39021    ldc: i32,
39022    work: &mut [c32],
39023    lwork: i32,
39024    info: &mut i32,
39025) {
39026    ffi::cunmqr_(
39027        &(side as c_char),
39028        &(trans as c_char),
39029        &m,
39030        &n,
39031        &k,
39032        a.as_ptr() as *const _,
39033        &lda,
39034        tau.as_ptr() as *const _,
39035        c.as_mut_ptr() as *mut _,
39036        &ldc,
39037        work.as_mut_ptr() as *mut _,
39038        &lwork,
39039        info,
39040    )
39041}
39042
39043#[inline]
39044pub unsafe fn zunmqr(
39045    side: u8,
39046    trans: u8,
39047    m: i32,
39048    n: i32,
39049    k: i32,
39050    a: &[c64],
39051    lda: i32,
39052    tau: &[c64],
39053    c: &mut [c64],
39054    ldc: i32,
39055    work: &mut [c64],
39056    lwork: i32,
39057    info: &mut i32,
39058) {
39059    ffi::zunmqr_(
39060        &(side as c_char),
39061        &(trans as c_char),
39062        &m,
39063        &n,
39064        &k,
39065        a.as_ptr() as *const _,
39066        &lda,
39067        tau.as_ptr() as *const _,
39068        c.as_mut_ptr() as *mut _,
39069        &ldc,
39070        work.as_mut_ptr() as *mut _,
39071        &lwork,
39072        info,
39073    )
39074}
39075
39076#[inline]
39077pub unsafe fn cunmrq(
39078    side: u8,
39079    trans: u8,
39080    m: i32,
39081    n: i32,
39082    k: i32,
39083    a: &[c32],
39084    lda: i32,
39085    tau: &[c32],
39086    c: &mut [c32],
39087    ldc: i32,
39088    work: &mut [c32],
39089    lwork: i32,
39090    info: &mut i32,
39091) {
39092    ffi::cunmrq_(
39093        &(side as c_char),
39094        &(trans as c_char),
39095        &m,
39096        &n,
39097        &k,
39098        a.as_ptr() as *const _,
39099        &lda,
39100        tau.as_ptr() as *const _,
39101        c.as_mut_ptr() as *mut _,
39102        &ldc,
39103        work.as_mut_ptr() as *mut _,
39104        &lwork,
39105        info,
39106    )
39107}
39108
39109#[inline]
39110pub unsafe fn zunmrq(
39111    side: u8,
39112    trans: u8,
39113    m: i32,
39114    n: i32,
39115    k: i32,
39116    a: &[c64],
39117    lda: i32,
39118    tau: &[c64],
39119    c: &mut [c64],
39120    ldc: i32,
39121    work: &mut [c64],
39122    lwork: i32,
39123    info: &mut i32,
39124) {
39125    ffi::zunmrq_(
39126        &(side as c_char),
39127        &(trans as c_char),
39128        &m,
39129        &n,
39130        &k,
39131        a.as_ptr() as *const _,
39132        &lda,
39133        tau.as_ptr() as *const _,
39134        c.as_mut_ptr() as *mut _,
39135        &ldc,
39136        work.as_mut_ptr() as *mut _,
39137        &lwork,
39138        info,
39139    )
39140}
39141
39142#[inline]
39143pub unsafe fn cunmrz(
39144    side: u8,
39145    trans: u8,
39146    m: i32,
39147    n: i32,
39148    k: i32,
39149    l: i32,
39150    a: &[c32],
39151    lda: i32,
39152    tau: &[c32],
39153    c: &mut [c32],
39154    ldc: i32,
39155    work: &mut [c32],
39156    lwork: i32,
39157    info: &mut i32,
39158) {
39159    ffi::cunmrz_(
39160        &(side as c_char),
39161        &(trans as c_char),
39162        &m,
39163        &n,
39164        &k,
39165        &l,
39166        a.as_ptr() as *const _,
39167        &lda,
39168        tau.as_ptr() as *const _,
39169        c.as_mut_ptr() as *mut _,
39170        &ldc,
39171        work.as_mut_ptr() as *mut _,
39172        &lwork,
39173        info,
39174    )
39175}
39176
39177#[inline]
39178pub unsafe fn zunmrz(
39179    side: u8,
39180    trans: u8,
39181    m: i32,
39182    n: i32,
39183    k: i32,
39184    l: i32,
39185    a: &[c64],
39186    lda: i32,
39187    tau: &[c64],
39188    c: &mut [c64],
39189    ldc: i32,
39190    work: &mut [c64],
39191    lwork: i32,
39192    info: &mut i32,
39193) {
39194    ffi::zunmrz_(
39195        &(side as c_char),
39196        &(trans as c_char),
39197        &m,
39198        &n,
39199        &k,
39200        &l,
39201        a.as_ptr() as *const _,
39202        &lda,
39203        tau.as_ptr() as *const _,
39204        c.as_mut_ptr() as *mut _,
39205        &ldc,
39206        work.as_mut_ptr() as *mut _,
39207        &lwork,
39208        info,
39209    )
39210}
39211
39212#[inline]
39213pub unsafe fn cunmtr(
39214    side: u8,
39215    uplo: u8,
39216    trans: u8,
39217    m: i32,
39218    n: i32,
39219    a: &[c32],
39220    lda: i32,
39221    tau: &[c32],
39222    c: &mut [c32],
39223    ldc: i32,
39224    work: &mut [c32],
39225    lwork: i32,
39226    info: &mut i32,
39227) {
39228    ffi::cunmtr_(
39229        &(side as c_char),
39230        &(uplo as c_char),
39231        &(trans as c_char),
39232        &m,
39233        &n,
39234        a.as_ptr() as *const _,
39235        &lda,
39236        tau.as_ptr() as *const _,
39237        c.as_mut_ptr() as *mut _,
39238        &ldc,
39239        work.as_mut_ptr() as *mut _,
39240        &lwork,
39241        info,
39242    )
39243}
39244
39245#[inline]
39246pub unsafe fn zunmtr(
39247    side: u8,
39248    uplo: u8,
39249    trans: u8,
39250    m: i32,
39251    n: i32,
39252    a: &[c64],
39253    lda: i32,
39254    tau: &[c64],
39255    c: &mut [c64],
39256    ldc: i32,
39257    work: &mut [c64],
39258    lwork: i32,
39259    info: &mut i32,
39260) {
39261    ffi::zunmtr_(
39262        &(side as c_char),
39263        &(uplo as c_char),
39264        &(trans as c_char),
39265        &m,
39266        &n,
39267        a.as_ptr() as *const _,
39268        &lda,
39269        tau.as_ptr() as *const _,
39270        c.as_mut_ptr() as *mut _,
39271        &ldc,
39272        work.as_mut_ptr() as *mut _,
39273        &lwork,
39274        info,
39275    )
39276}
39277
39278#[inline]
39279pub unsafe fn cupgtr(
39280    uplo: u8,
39281    n: i32,
39282    ap: &[c32],
39283    tau: &[c32],
39284    q: &mut [c32],
39285    ldq: i32,
39286    work: &mut [c32],
39287    info: &mut i32,
39288) {
39289    ffi::cupgtr_(
39290        &(uplo as c_char),
39291        &n,
39292        ap.as_ptr() as *const _,
39293        tau.as_ptr() as *const _,
39294        q.as_mut_ptr() as *mut _,
39295        &ldq,
39296        work.as_mut_ptr() as *mut _,
39297        info,
39298    )
39299}
39300
39301#[inline]
39302pub unsafe fn zupgtr(
39303    uplo: u8,
39304    n: i32,
39305    ap: &[c64],
39306    tau: &[c64],
39307    q: &mut [c64],
39308    ldq: i32,
39309    work: &mut [c64],
39310    info: &mut i32,
39311) {
39312    ffi::zupgtr_(
39313        &(uplo as c_char),
39314        &n,
39315        ap.as_ptr() as *const _,
39316        tau.as_ptr() as *const _,
39317        q.as_mut_ptr() as *mut _,
39318        &ldq,
39319        work.as_mut_ptr() as *mut _,
39320        info,
39321    )
39322}
39323
39324#[inline]
39325pub unsafe fn cupmtr(
39326    side: u8,
39327    uplo: u8,
39328    trans: u8,
39329    m: i32,
39330    n: i32,
39331    ap: &[c32],
39332    tau: &[c32],
39333    c: &mut [c32],
39334    ldc: i32,
39335    work: &mut [c32],
39336    info: &mut i32,
39337) {
39338    ffi::cupmtr_(
39339        &(side as c_char),
39340        &(uplo as c_char),
39341        &(trans as c_char),
39342        &m,
39343        &n,
39344        ap.as_ptr() as *const _,
39345        tau.as_ptr() as *const _,
39346        c.as_mut_ptr() as *mut _,
39347        &ldc,
39348        work.as_mut_ptr() as *mut _,
39349        info,
39350    )
39351}
39352
39353#[inline]
39354pub unsafe fn zupmtr(
39355    side: u8,
39356    uplo: u8,
39357    trans: u8,
39358    m: i32,
39359    n: i32,
39360    ap: &[c64],
39361    tau: &[c64],
39362    c: &mut [c64],
39363    ldc: i32,
39364    work: &mut [c64],
39365    info: &mut i32,
39366) {
39367    ffi::zupmtr_(
39368        &(side as c_char),
39369        &(uplo as c_char),
39370        &(trans as c_char),
39371        &m,
39372        &n,
39373        ap.as_ptr() as *const _,
39374        tau.as_ptr() as *const _,
39375        c.as_mut_ptr() as *mut _,
39376        &ldc,
39377        work.as_mut_ptr() as *mut _,
39378        info,
39379    )
39380}