lapack/
lib.rs

1//! Wrappers for [LAPACK] \(Fortran).
2//!
3//! ## [Architecture]
4//!
5//! ## Example
6//!
7//! ```no_run
8//! use lapack::*;
9//!
10//! let n = 3;
11//! let mut a = vec![3.0, 1.0, 1.0, 1.0, 3.0, 1.0, 1.0, 1.0, 3.0];
12//! let mut w = vec![0.0; n as usize];
13//! let mut work = vec![0.0; 4 * n as usize];
14//! let lwork = 4 * n;
15//! let mut info = 0;
16//!
17//! unsafe {
18//!     dsyev(b'V', b'U', n, &mut a, n, &mut w, &mut work, lwork, &mut info);
19//! }
20//!
21//! assert!(info == 0);
22//! for (one, another) in w.iter().zip(&[2.0, 2.0, 5.0]) {
23//!     assert!((one - another).abs() < 1e-14);
24//! }
25//! ```
26//!
27//! [architecture]: https://blas-lapack-rs.github.io/architecture
28//! [lapack]: https://en.wikipedia.org/wiki/LAPACK
29
30extern crate lapack_sys as ffi;
31extern crate libc;
32extern crate num_complex as num;
33
34use libc::c_char;
35use std::mem::transmute;
36
37/// A complex number with 32-bit parts
38#[allow(non_camel_case_types)]
39pub type c32 = num::Complex<f32>;
40
41/// A complex number with 64-bit parts
42#[allow(non_camel_case_types)]
43pub type c64 = num::Complex<f64>;
44
45pub type Select2F32 = Option<extern "C" fn(*const f32, *const f32) -> i32>;
46pub type Select3F32 = Option<extern "C" fn(*const f32, *const f32, *const f32) -> i32>;
47
48pub type Select2F64 = Option<extern "C" fn(*const f64, *const f64) -> i32>;
49pub type Select3F64 = Option<extern "C" fn(*const f64, *const f64, *const f64) -> i32>;
50
51pub type Select1C32 = Option<extern "C" fn(*const c32) -> i32>;
52pub type Select2C32 = Option<extern "C" fn(*const c32, *const c32) -> i32>;
53
54pub type Select1C64 = Option<extern "C" fn(*const c64) -> i32>;
55pub type Select2C64 = Option<extern "C" fn(*const c64, *const c64) -> i32>;
56
57// The rest is generated using `bin/generate.py` and formatted using `rustfmt`.
58// Therefore, all the changes should be made in `bin/generate.py`.
59
60#[inline]
61pub unsafe fn sgetrf(m: i32, n: i32, a: &mut [f32], lda: i32, ipiv: &mut [i32], info: &mut i32) {
62    ffi::sgetrf_(&m, &n, a.as_mut_ptr(), &lda, ipiv.as_mut_ptr(), info)
63}
64
65#[inline]
66pub unsafe fn dgetrf(m: i32, n: i32, a: &mut [f64], lda: i32, ipiv: &mut [i32], info: &mut i32) {
67    ffi::dgetrf_(&m, &n, a.as_mut_ptr(), &lda, ipiv.as_mut_ptr(), info)
68}
69
70#[inline]
71pub unsafe fn cgetrf(m: i32, n: i32, a: &mut [c32], lda: i32, ipiv: &mut [i32], info: &mut i32) {
72    ffi::cgetrf_(
73        &m,
74        &n,
75        a.as_mut_ptr() as *mut _,
76        &lda,
77        ipiv.as_mut_ptr(),
78        info,
79    )
80}
81
82#[inline]
83pub unsafe fn zgetrf(m: i32, n: i32, a: &mut [c64], lda: i32, ipiv: &mut [i32], info: &mut i32) {
84    ffi::zgetrf_(
85        &m,
86        &n,
87        a.as_mut_ptr() as *mut _,
88        &lda,
89        ipiv.as_mut_ptr(),
90        info,
91    )
92}
93
94#[inline]
95pub unsafe fn sgetrf2(m: i32, n: i32, a: &mut [f32], lda: i32, ipiv: &mut [i32], info: &mut i32) {
96    ffi::sgetrf2_(&m, &n, a.as_mut_ptr(), &lda, ipiv.as_mut_ptr(), info)
97}
98
99#[inline]
100pub unsafe fn dgetrf2(m: i32, n: i32, a: &mut [f64], lda: i32, ipiv: &mut [i32], info: &mut i32) {
101    ffi::dgetrf2_(&m, &n, a.as_mut_ptr(), &lda, ipiv.as_mut_ptr(), info)
102}
103
104#[inline]
105pub unsafe fn cgetrf2(m: i32, n: i32, a: &mut [c32], lda: i32, ipiv: &mut [i32], info: &mut i32) {
106    ffi::cgetrf2_(
107        &m,
108        &n,
109        a.as_mut_ptr() as *mut _,
110        &lda,
111        ipiv.as_mut_ptr(),
112        info,
113    )
114}
115
116#[inline]
117pub unsafe fn zgetrf2(m: i32, n: i32, a: &mut [c64], lda: i32, ipiv: &mut [i32], info: &mut i32) {
118    ffi::zgetrf2_(
119        &m,
120        &n,
121        a.as_mut_ptr() as *mut _,
122        &lda,
123        ipiv.as_mut_ptr(),
124        info,
125    )
126}
127
128#[inline]
129pub unsafe fn sgbtrf(
130    m: i32,
131    n: i32,
132    kl: i32,
133    ku: i32,
134    ab: &mut [f32],
135    ldab: i32,
136    ipiv: &mut [i32],
137    info: &mut i32,
138) {
139    ffi::sgbtrf_(
140        &m,
141        &n,
142        &kl,
143        &ku,
144        ab.as_mut_ptr(),
145        &ldab,
146        ipiv.as_mut_ptr(),
147        info,
148    )
149}
150
151#[inline]
152pub unsafe fn dgbtrf(
153    m: i32,
154    n: i32,
155    kl: i32,
156    ku: i32,
157    ab: &mut [f64],
158    ldab: i32,
159    ipiv: &mut [i32],
160    info: &mut i32,
161) {
162    ffi::dgbtrf_(
163        &m,
164        &n,
165        &kl,
166        &ku,
167        ab.as_mut_ptr(),
168        &ldab,
169        ipiv.as_mut_ptr(),
170        info,
171    )
172}
173
174#[inline]
175pub unsafe fn cgbtrf(
176    m: i32,
177    n: i32,
178    kl: i32,
179    ku: i32,
180    ab: &mut [c32],
181    ldab: i32,
182    ipiv: &mut [i32],
183    info: &mut i32,
184) {
185    ffi::cgbtrf_(
186        &m,
187        &n,
188        &kl,
189        &ku,
190        ab.as_mut_ptr() as *mut _,
191        &ldab,
192        ipiv.as_mut_ptr(),
193        info,
194    )
195}
196
197#[inline]
198pub unsafe fn zgbtrf(
199    m: i32,
200    n: i32,
201    kl: i32,
202    ku: i32,
203    ab: &mut [c64],
204    ldab: i32,
205    ipiv: &mut [i32],
206    info: &mut i32,
207) {
208    ffi::zgbtrf_(
209        &m,
210        &n,
211        &kl,
212        &ku,
213        ab.as_mut_ptr() as *mut _,
214        &ldab,
215        ipiv.as_mut_ptr(),
216        info,
217    )
218}
219
220#[inline]
221pub unsafe fn sgttrf(
222    n: i32,
223    dl: &mut [f32],
224    d: &mut [f32],
225    du: &mut [f32],
226    du2: &mut [f32],
227    ipiv: &mut [i32],
228    info: &mut i32,
229) {
230    ffi::sgttrf_(
231        &n,
232        dl.as_mut_ptr(),
233        d.as_mut_ptr(),
234        du.as_mut_ptr(),
235        du2.as_mut_ptr(),
236        ipiv.as_mut_ptr(),
237        info,
238    )
239}
240
241#[inline]
242pub unsafe fn dgttrf(
243    n: i32,
244    dl: &mut [f64],
245    d: &mut [f64],
246    du: &mut [f64],
247    du2: &mut [f64],
248    ipiv: &mut [i32],
249    info: &mut i32,
250) {
251    ffi::dgttrf_(
252        &n,
253        dl.as_mut_ptr(),
254        d.as_mut_ptr(),
255        du.as_mut_ptr(),
256        du2.as_mut_ptr(),
257        ipiv.as_mut_ptr(),
258        info,
259    )
260}
261
262#[inline]
263pub unsafe fn cgttrf(
264    n: i32,
265    dl: &mut [c32],
266    d: &mut [c32],
267    du: &mut [c32],
268    du2: &mut [c32],
269    ipiv: &mut [i32],
270    info: &mut i32,
271) {
272    ffi::cgttrf_(
273        &n,
274        dl.as_mut_ptr() as *mut _,
275        d.as_mut_ptr() as *mut _,
276        du.as_mut_ptr() as *mut _,
277        du2.as_mut_ptr() as *mut _,
278        ipiv.as_mut_ptr(),
279        info,
280    )
281}
282
283#[inline]
284pub unsafe fn zgttrf(
285    n: i32,
286    dl: &mut [c64],
287    d: &mut [c64],
288    du: &mut [c64],
289    du2: &mut [c64],
290    ipiv: &mut [i32],
291    info: &mut i32,
292) {
293    ffi::zgttrf_(
294        &n,
295        dl.as_mut_ptr() as *mut _,
296        d.as_mut_ptr() as *mut _,
297        du.as_mut_ptr() as *mut _,
298        du2.as_mut_ptr() as *mut _,
299        ipiv.as_mut_ptr(),
300        info,
301    )
302}
303
304#[inline]
305pub unsafe fn spotrf2(uplo: u8, n: i32, a: &mut [f32], lda: i32, info: &mut i32) {
306    ffi::spotrf2_(&(uplo as c_char), &n, a.as_mut_ptr(), &lda, info)
307}
308
309#[inline]
310pub unsafe fn dpotrf2(uplo: u8, n: i32, a: &mut [f64], lda: i32, info: &mut i32) {
311    ffi::dpotrf2_(&(uplo as c_char), &n, a.as_mut_ptr(), &lda, info)
312}
313
314#[inline]
315pub unsafe fn cpotrf2(uplo: u8, n: i32, a: &mut [c32], lda: i32, info: &mut i32) {
316    ffi::cpotrf2_(&(uplo as c_char), &n, a.as_mut_ptr() as *mut _, &lda, info)
317}
318
319#[inline]
320pub unsafe fn zpotrf2(uplo: u8, n: i32, a: &mut [c64], lda: i32, info: &mut i32) {
321    ffi::zpotrf2_(&(uplo as c_char), &n, a.as_mut_ptr() as *mut _, &lda, info)
322}
323
324#[inline]
325pub unsafe fn spotrf(uplo: u8, n: i32, a: &mut [f32], lda: i32, info: &mut i32) {
326    ffi::spotrf_(&(uplo as c_char), &n, a.as_mut_ptr(), &lda, info)
327}
328
329#[inline]
330pub unsafe fn dpotrf(uplo: u8, n: i32, a: &mut [f64], lda: i32, info: &mut i32) {
331    ffi::dpotrf_(&(uplo as c_char), &n, a.as_mut_ptr(), &lda, info)
332}
333
334#[inline]
335pub unsafe fn cpotrf(uplo: u8, n: i32, a: &mut [c32], lda: i32, info: &mut i32) {
336    ffi::cpotrf_(&(uplo as c_char), &n, a.as_mut_ptr() as *mut _, &lda, info)
337}
338
339#[inline]
340pub unsafe fn zpotrf(uplo: u8, n: i32, a: &mut [c64], lda: i32, info: &mut i32) {
341    ffi::zpotrf_(&(uplo as c_char), &n, a.as_mut_ptr() as *mut _, &lda, info)
342}
343
344#[inline]
345pub unsafe fn dpstrf(
346    uplo: u8,
347    n: i32,
348    a: &mut [f64],
349    lda: i32,
350    piv: &mut [i32],
351    rank: &mut i32,
352    tol: f64,
353    work: &mut [f64],
354    info: &mut i32,
355) {
356    ffi::dpstrf_(
357        &(uplo as c_char),
358        &n,
359        a.as_mut_ptr(),
360        &lda,
361        piv.as_mut_ptr(),
362        rank,
363        &tol,
364        work.as_mut_ptr(),
365        info,
366    )
367}
368
369#[inline]
370pub unsafe fn spstrf(
371    uplo: u8,
372    n: i32,
373    a: &mut [f32],
374    lda: i32,
375    piv: &mut [i32],
376    rank: &mut i32,
377    tol: f32,
378    work: &mut [f32],
379    info: &mut i32,
380) {
381    ffi::spstrf_(
382        &(uplo as c_char),
383        &n,
384        a.as_mut_ptr(),
385        &lda,
386        piv.as_mut_ptr(),
387        rank,
388        &tol,
389        work.as_mut_ptr(),
390        info,
391    )
392}
393
394#[inline]
395pub unsafe fn zpstrf(
396    uplo: u8,
397    n: i32,
398    a: &mut [c64],
399    lda: i32,
400    piv: &mut [i32],
401    rank: &mut i32,
402    tol: f64,
403    work: &mut [f64],
404    info: &mut i32,
405) {
406    ffi::zpstrf_(
407        &(uplo as c_char),
408        &n,
409        a.as_mut_ptr() as *mut _,
410        &lda,
411        piv.as_mut_ptr(),
412        rank,
413        &tol,
414        work.as_mut_ptr(),
415        info,
416    )
417}
418
419#[inline]
420pub unsafe fn cpstrf(
421    uplo: u8,
422    n: i32,
423    a: &mut [c32],
424    lda: i32,
425    piv: &mut [i32],
426    rank: &mut i32,
427    tol: f32,
428    work: &mut [f32],
429    info: &mut i32,
430) {
431    ffi::cpstrf_(
432        &(uplo as c_char),
433        &n,
434        a.as_mut_ptr() as *mut _,
435        &lda,
436        piv.as_mut_ptr(),
437        rank,
438        &tol,
439        work.as_mut_ptr(),
440        info,
441    )
442}
443
444#[inline]
445pub unsafe fn dpftrf(transr: u8, uplo: u8, n: i32, a: &mut [f64], info: &mut i32) {
446    ffi::dpftrf_(
447        &(transr as c_char),
448        &(uplo as c_char),
449        &n,
450        a.as_mut_ptr(),
451        info,
452    )
453}
454
455#[inline]
456pub unsafe fn spftrf(transr: u8, uplo: u8, n: i32, a: &mut [f32], info: &mut i32) {
457    ffi::spftrf_(
458        &(transr as c_char),
459        &(uplo as c_char),
460        &n,
461        a.as_mut_ptr(),
462        info,
463    )
464}
465
466#[inline]
467pub unsafe fn zpftrf(transr: u8, uplo: u8, n: i32, a: &mut [c64], info: &mut i32) {
468    ffi::zpftrf_(
469        &(transr as c_char),
470        &(uplo as c_char),
471        &n,
472        a.as_mut_ptr() as *mut _,
473        info,
474    )
475}
476
477#[inline]
478pub unsafe fn cpftrf(transr: u8, uplo: u8, n: i32, a: &mut [c32], info: &mut i32) {
479    ffi::cpftrf_(
480        &(transr as c_char),
481        &(uplo as c_char),
482        &n,
483        a.as_mut_ptr() as *mut _,
484        info,
485    )
486}
487
488#[inline]
489pub unsafe fn spptrf(uplo: u8, n: i32, ap: &mut [f32], info: &mut i32) {
490    ffi::spptrf_(&(uplo as c_char), &n, ap.as_mut_ptr(), info)
491}
492
493#[inline]
494pub unsafe fn dpptrf(uplo: u8, n: i32, ap: &mut [f64], info: &mut i32) {
495    ffi::dpptrf_(&(uplo as c_char), &n, ap.as_mut_ptr(), info)
496}
497
498#[inline]
499pub unsafe fn cpptrf(uplo: u8, n: i32, ap: &mut [c32], info: &mut i32) {
500    ffi::cpptrf_(&(uplo as c_char), &n, ap.as_mut_ptr() as *mut _, info)
501}
502
503#[inline]
504pub unsafe fn zpptrf(uplo: u8, n: i32, ap: &mut [c64], info: &mut i32) {
505    ffi::zpptrf_(&(uplo as c_char), &n, ap.as_mut_ptr() as *mut _, info)
506}
507
508#[inline]
509pub unsafe fn spbtrf(uplo: u8, n: i32, kd: i32, ab: &mut [f32], ldab: i32, info: &mut i32) {
510    ffi::spbtrf_(&(uplo as c_char), &n, &kd, ab.as_mut_ptr(), &ldab, info)
511}
512
513#[inline]
514pub unsafe fn dpbtrf(uplo: u8, n: i32, kd: i32, ab: &mut [f64], ldab: i32, info: &mut i32) {
515    ffi::dpbtrf_(&(uplo as c_char), &n, &kd, ab.as_mut_ptr(), &ldab, info)
516}
517
518#[inline]
519pub unsafe fn cpbtrf(uplo: u8, n: i32, kd: i32, ab: &mut [c32], ldab: i32, info: &mut i32) {
520    ffi::cpbtrf_(
521        &(uplo as c_char),
522        &n,
523        &kd,
524        ab.as_mut_ptr() as *mut _,
525        &ldab,
526        info,
527    )
528}
529
530#[inline]
531pub unsafe fn zpbtrf(uplo: u8, n: i32, kd: i32, ab: &mut [c64], ldab: i32, info: &mut i32) {
532    ffi::zpbtrf_(
533        &(uplo as c_char),
534        &n,
535        &kd,
536        ab.as_mut_ptr() as *mut _,
537        &ldab,
538        info,
539    )
540}
541
542#[inline]
543pub unsafe fn spttrf(n: i32, d: &mut [f32], e: &mut [f32], info: &mut i32) {
544    ffi::spttrf_(&n, d.as_mut_ptr(), e.as_mut_ptr(), info)
545}
546
547#[inline]
548pub unsafe fn dpttrf(n: i32, d: &mut [f64], e: &mut [f64], info: &mut i32) {
549    ffi::dpttrf_(&n, d.as_mut_ptr(), e.as_mut_ptr(), info)
550}
551
552#[inline]
553pub unsafe fn cpttrf(n: i32, d: &mut [f32], e: &mut [c32], info: &mut i32) {
554    ffi::cpttrf_(&n, d.as_mut_ptr(), e.as_mut_ptr() as *mut _, info)
555}
556
557#[inline]
558pub unsafe fn zpttrf(n: i32, d: &mut [f64], e: &mut [c64], info: &mut i32) {
559    ffi::zpttrf_(&n, d.as_mut_ptr(), e.as_mut_ptr() as *mut _, info)
560}
561
562#[inline]
563pub unsafe fn ssytrf(
564    uplo: u8,
565    n: i32,
566    a: &mut [f32],
567    lda: i32,
568    ipiv: &mut [i32],
569    work: &mut [f32],
570    lwork: i32,
571    info: &mut i32,
572) {
573    ffi::ssytrf_(
574        &(uplo as c_char),
575        &n,
576        a.as_mut_ptr(),
577        &lda,
578        ipiv.as_mut_ptr(),
579        work.as_mut_ptr(),
580        &lwork,
581        info,
582    )
583}
584
585#[inline]
586pub unsafe fn dsytrf(
587    uplo: u8,
588    n: i32,
589    a: &mut [f64],
590    lda: i32,
591    ipiv: &mut [i32],
592    work: &mut [f64],
593    lwork: i32,
594    info: &mut i32,
595) {
596    ffi::dsytrf_(
597        &(uplo as c_char),
598        &n,
599        a.as_mut_ptr(),
600        &lda,
601        ipiv.as_mut_ptr(),
602        work.as_mut_ptr(),
603        &lwork,
604        info,
605    )
606}
607
608#[inline]
609pub unsafe fn csytrf(
610    uplo: u8,
611    n: i32,
612    a: &mut [c32],
613    lda: i32,
614    ipiv: &mut [i32],
615    work: &mut [c32],
616    lwork: i32,
617    info: &mut i32,
618) {
619    ffi::csytrf_(
620        &(uplo as c_char),
621        &n,
622        a.as_mut_ptr() as *mut _,
623        &lda,
624        ipiv.as_mut_ptr(),
625        work.as_mut_ptr() as *mut _,
626        &lwork,
627        info,
628    )
629}
630
631#[inline]
632pub unsafe fn zsytrf(
633    uplo: u8,
634    n: i32,
635    a: &mut [c64],
636    lda: i32,
637    ipiv: &mut [i32],
638    work: &mut [c64],
639    lwork: i32,
640    info: &mut i32,
641) {
642    ffi::zsytrf_(
643        &(uplo as c_char),
644        &n,
645        a.as_mut_ptr() as *mut _,
646        &lda,
647        ipiv.as_mut_ptr(),
648        work.as_mut_ptr() as *mut _,
649        &lwork,
650        info,
651    )
652}
653
654#[inline]
655pub unsafe fn chetrf(
656    uplo: u8,
657    n: i32,
658    a: &mut [c32],
659    lda: i32,
660    ipiv: &mut [i32],
661    work: &mut [c32],
662    lwork: i32,
663    info: &mut i32,
664) {
665    ffi::chetrf_(
666        &(uplo as c_char),
667        &n,
668        a.as_mut_ptr() as *mut _,
669        &lda,
670        ipiv.as_mut_ptr(),
671        work.as_mut_ptr() as *mut _,
672        &lwork,
673        info,
674    )
675}
676
677#[inline]
678pub unsafe fn zhetrf(
679    uplo: u8,
680    n: i32,
681    a: &mut [c64],
682    lda: i32,
683    ipiv: &mut [i32],
684    work: &mut [c64],
685    lwork: i32,
686    info: &mut i32,
687) {
688    ffi::zhetrf_(
689        &(uplo as c_char),
690        &n,
691        a.as_mut_ptr() as *mut _,
692        &lda,
693        ipiv.as_mut_ptr(),
694        work.as_mut_ptr() as *mut _,
695        &lwork,
696        info,
697    )
698}
699
700#[inline]
701pub unsafe fn ssptrf(uplo: u8, n: i32, ap: &mut [f32], ipiv: &mut [i32], info: &mut i32) {
702    ffi::ssptrf_(
703        &(uplo as c_char),
704        &n,
705        ap.as_mut_ptr(),
706        ipiv.as_mut_ptr(),
707        info,
708    )
709}
710
711#[inline]
712pub unsafe fn dsptrf(uplo: u8, n: i32, ap: &mut [f64], ipiv: &mut [i32], info: &mut i32) {
713    ffi::dsptrf_(
714        &(uplo as c_char),
715        &n,
716        ap.as_mut_ptr(),
717        ipiv.as_mut_ptr(),
718        info,
719    )
720}
721
722#[inline]
723pub unsafe fn csptrf(uplo: u8, n: i32, ap: &mut [c32], ipiv: &mut [i32], info: &mut i32) {
724    ffi::csptrf_(
725        &(uplo as c_char),
726        &n,
727        ap.as_mut_ptr() as *mut _,
728        ipiv.as_mut_ptr(),
729        info,
730    )
731}
732
733#[inline]
734pub unsafe fn zsptrf(uplo: u8, n: i32, ap: &mut [c64], ipiv: &mut [i32], info: &mut i32) {
735    ffi::zsptrf_(
736        &(uplo as c_char),
737        &n,
738        ap.as_mut_ptr() as *mut _,
739        ipiv.as_mut_ptr(),
740        info,
741    )
742}
743
744#[inline]
745pub unsafe fn chptrf(uplo: u8, n: i32, ap: &mut [c32], ipiv: &mut [i32], info: &mut i32) {
746    ffi::chptrf_(
747        &(uplo as c_char),
748        &n,
749        ap.as_mut_ptr() as *mut _,
750        ipiv.as_mut_ptr(),
751        info,
752    )
753}
754
755#[inline]
756pub unsafe fn zhptrf(uplo: u8, n: i32, ap: &mut [c64], ipiv: &mut [i32], info: &mut i32) {
757    ffi::zhptrf_(
758        &(uplo as c_char),
759        &n,
760        ap.as_mut_ptr() as *mut _,
761        ipiv.as_mut_ptr(),
762        info,
763    )
764}
765
766#[inline]
767pub unsafe fn sgetrs(
768    trans: u8,
769    n: i32,
770    nrhs: i32,
771    a: &[f32],
772    lda: i32,
773    ipiv: &[i32],
774    b: &mut [f32],
775    ldb: i32,
776    info: &mut i32,
777) {
778    ffi::sgetrs_(
779        &(trans as c_char),
780        &n,
781        &nrhs,
782        a.as_ptr(),
783        &lda,
784        ipiv.as_ptr(),
785        b.as_mut_ptr(),
786        &ldb,
787        info,
788    )
789}
790
791#[inline]
792pub unsafe fn dgetrs(
793    trans: u8,
794    n: i32,
795    nrhs: i32,
796    a: &[f64],
797    lda: i32,
798    ipiv: &[i32],
799    b: &mut [f64],
800    ldb: i32,
801    info: &mut i32,
802) {
803    ffi::dgetrs_(
804        &(trans as c_char),
805        &n,
806        &nrhs,
807        a.as_ptr(),
808        &lda,
809        ipiv.as_ptr(),
810        b.as_mut_ptr(),
811        &ldb,
812        info,
813    )
814}
815
816#[inline]
817pub unsafe fn cgetrs(
818    trans: u8,
819    n: i32,
820    nrhs: i32,
821    a: &[c32],
822    lda: i32,
823    ipiv: &[i32],
824    b: &mut [c32],
825    ldb: i32,
826    info: &mut i32,
827) {
828    ffi::cgetrs_(
829        &(trans as c_char),
830        &n,
831        &nrhs,
832        a.as_ptr() as *const _,
833        &lda,
834        ipiv.as_ptr(),
835        b.as_mut_ptr() as *mut _,
836        &ldb,
837        info,
838    )
839}
840
841#[inline]
842pub unsafe fn zgetrs(
843    trans: u8,
844    n: i32,
845    nrhs: i32,
846    a: &[c64],
847    lda: i32,
848    ipiv: &[i32],
849    b: &mut [c64],
850    ldb: i32,
851    info: &mut i32,
852) {
853    ffi::zgetrs_(
854        &(trans as c_char),
855        &n,
856        &nrhs,
857        a.as_ptr() as *const _,
858        &lda,
859        ipiv.as_ptr(),
860        b.as_mut_ptr() as *mut _,
861        &ldb,
862        info,
863    )
864}
865
866#[inline]
867pub unsafe fn sgbtrs(
868    trans: u8,
869    n: i32,
870    kl: i32,
871    ku: i32,
872    nrhs: i32,
873    ab: &[f32],
874    ldab: i32,
875    ipiv: &[i32],
876    b: &mut [f32],
877    ldb: i32,
878    info: &mut i32,
879) {
880    ffi::sgbtrs_(
881        &(trans as c_char),
882        &n,
883        &kl,
884        &ku,
885        &nrhs,
886        ab.as_ptr(),
887        &ldab,
888        ipiv.as_ptr(),
889        b.as_mut_ptr(),
890        &ldb,
891        info,
892    )
893}
894
895#[inline]
896pub unsafe fn dgbtrs(
897    trans: u8,
898    n: i32,
899    kl: i32,
900    ku: i32,
901    nrhs: i32,
902    ab: &[f64],
903    ldab: i32,
904    ipiv: &[i32],
905    b: &mut [f64],
906    ldb: i32,
907    info: &mut i32,
908) {
909    ffi::dgbtrs_(
910        &(trans as c_char),
911        &n,
912        &kl,
913        &ku,
914        &nrhs,
915        ab.as_ptr(),
916        &ldab,
917        ipiv.as_ptr(),
918        b.as_mut_ptr(),
919        &ldb,
920        info,
921    )
922}
923
924#[inline]
925pub unsafe fn cgbtrs(
926    trans: u8,
927    n: i32,
928    kl: i32,
929    ku: i32,
930    nrhs: i32,
931    ab: &[c32],
932    ldab: i32,
933    ipiv: &[i32],
934    b: &mut [c32],
935    ldb: i32,
936    info: &mut i32,
937) {
938    ffi::cgbtrs_(
939        &(trans as c_char),
940        &n,
941        &kl,
942        &ku,
943        &nrhs,
944        ab.as_ptr() as *const _,
945        &ldab,
946        ipiv.as_ptr(),
947        b.as_mut_ptr() as *mut _,
948        &ldb,
949        info,
950    )
951}
952
953#[inline]
954pub unsafe fn zgbtrs(
955    trans: u8,
956    n: i32,
957    kl: i32,
958    ku: i32,
959    nrhs: i32,
960    ab: &[c64],
961    ldab: i32,
962    ipiv: &[i32],
963    b: &mut [c64],
964    ldb: i32,
965    info: &mut i32,
966) {
967    ffi::zgbtrs_(
968        &(trans as c_char),
969        &n,
970        &kl,
971        &ku,
972        &nrhs,
973        ab.as_ptr() as *const _,
974        &ldab,
975        ipiv.as_ptr(),
976        b.as_mut_ptr() as *mut _,
977        &ldb,
978        info,
979    )
980}
981
982#[inline]
983pub unsafe fn sgttrs(
984    trans: u8,
985    n: i32,
986    nrhs: i32,
987    dl: &[f32],
988    d: &[f32],
989    du: &[f32],
990    du2: &[f32],
991    ipiv: &[i32],
992    b: &mut [f32],
993    ldb: i32,
994    info: &mut i32,
995) {
996    ffi::sgttrs_(
997        &(trans as c_char),
998        &n,
999        &nrhs,
1000        dl.as_ptr(),
1001        d.as_ptr(),
1002        du.as_ptr(),
1003        du2.as_ptr(),
1004        ipiv.as_ptr(),
1005        b.as_mut_ptr(),
1006        &ldb,
1007        info,
1008    )
1009}
1010
1011#[inline]
1012pub unsafe fn dgttrs(
1013    trans: u8,
1014    n: i32,
1015    nrhs: i32,
1016    dl: &[f64],
1017    d: &[f64],
1018    du: &[f64],
1019    du2: &[f64],
1020    ipiv: &[i32],
1021    b: &mut [f64],
1022    ldb: i32,
1023    info: &mut i32,
1024) {
1025    ffi::dgttrs_(
1026        &(trans as c_char),
1027        &n,
1028        &nrhs,
1029        dl.as_ptr(),
1030        d.as_ptr(),
1031        du.as_ptr(),
1032        du2.as_ptr(),
1033        ipiv.as_ptr(),
1034        b.as_mut_ptr(),
1035        &ldb,
1036        info,
1037    )
1038}
1039
1040#[inline]
1041pub unsafe fn cgttrs(
1042    trans: u8,
1043    n: i32,
1044    nrhs: i32,
1045    dl: &[c32],
1046    d: &[c32],
1047    du: &[c32],
1048    du2: &[c32],
1049    ipiv: &[i32],
1050    b: &mut [c32],
1051    ldb: i32,
1052    info: &mut i32,
1053) {
1054    ffi::cgttrs_(
1055        &(trans as c_char),
1056        &n,
1057        &nrhs,
1058        dl.as_ptr() as *const _,
1059        d.as_ptr() as *const _,
1060        du.as_ptr() as *const _,
1061        du2.as_ptr() as *const _,
1062        ipiv.as_ptr(),
1063        b.as_mut_ptr() as *mut _,
1064        &ldb,
1065        info,
1066    )
1067}
1068
1069#[inline]
1070pub unsafe fn zgttrs(
1071    trans: u8,
1072    n: i32,
1073    nrhs: i32,
1074    dl: &[c64],
1075    d: &[c64],
1076    du: &[c64],
1077    du2: &[c64],
1078    ipiv: &[i32],
1079    b: &mut [c64],
1080    ldb: i32,
1081    info: &mut i32,
1082) {
1083    ffi::zgttrs_(
1084        &(trans as c_char),
1085        &n,
1086        &nrhs,
1087        dl.as_ptr() as *const _,
1088        d.as_ptr() as *const _,
1089        du.as_ptr() as *const _,
1090        du2.as_ptr() as *const _,
1091        ipiv.as_ptr(),
1092        b.as_mut_ptr() as *mut _,
1093        &ldb,
1094        info,
1095    )
1096}
1097
1098#[inline]
1099pub unsafe fn spotrs(
1100    uplo: u8,
1101    n: i32,
1102    nrhs: i32,
1103    a: &[f32],
1104    lda: i32,
1105    b: &mut [f32],
1106    ldb: i32,
1107    info: &mut i32,
1108) {
1109    ffi::spotrs_(
1110        &(uplo as c_char),
1111        &n,
1112        &nrhs,
1113        a.as_ptr(),
1114        &lda,
1115        b.as_mut_ptr(),
1116        &ldb,
1117        info,
1118    )
1119}
1120
1121#[inline]
1122pub unsafe fn dpotrs(
1123    uplo: u8,
1124    n: i32,
1125    nrhs: i32,
1126    a: &[f64],
1127    lda: i32,
1128    b: &mut [f64],
1129    ldb: i32,
1130    info: &mut i32,
1131) {
1132    ffi::dpotrs_(
1133        &(uplo as c_char),
1134        &n,
1135        &nrhs,
1136        a.as_ptr(),
1137        &lda,
1138        b.as_mut_ptr(),
1139        &ldb,
1140        info,
1141    )
1142}
1143
1144#[inline]
1145pub unsafe fn cpotrs(
1146    uplo: u8,
1147    n: i32,
1148    nrhs: i32,
1149    a: &[c32],
1150    lda: i32,
1151    b: &mut [c32],
1152    ldb: i32,
1153    info: &mut i32,
1154) {
1155    ffi::cpotrs_(
1156        &(uplo as c_char),
1157        &n,
1158        &nrhs,
1159        a.as_ptr() as *const _,
1160        &lda,
1161        b.as_mut_ptr() as *mut _,
1162        &ldb,
1163        info,
1164    )
1165}
1166
1167#[inline]
1168pub unsafe fn zpotrs(
1169    uplo: u8,
1170    n: i32,
1171    nrhs: i32,
1172    a: &[c64],
1173    lda: i32,
1174    b: &mut [c64],
1175    ldb: i32,
1176    info: &mut i32,
1177) {
1178    ffi::zpotrs_(
1179        &(uplo as c_char),
1180        &n,
1181        &nrhs,
1182        a.as_ptr() as *const _,
1183        &lda,
1184        b.as_mut_ptr() as *mut _,
1185        &ldb,
1186        info,
1187    )
1188}
1189
1190#[inline]
1191pub unsafe fn dpftrs(
1192    transr: u8,
1193    uplo: u8,
1194    n: i32,
1195    nrhs: i32,
1196    a: &[f64],
1197    b: &mut [f64],
1198    ldb: i32,
1199    info: &mut i32,
1200) {
1201    ffi::dpftrs_(
1202        &(transr as c_char),
1203        &(uplo as c_char),
1204        &n,
1205        &nrhs,
1206        a.as_ptr(),
1207        b.as_mut_ptr(),
1208        &ldb,
1209        info,
1210    )
1211}
1212
1213#[inline]
1214pub unsafe fn spftrs(
1215    transr: u8,
1216    uplo: u8,
1217    n: i32,
1218    nrhs: i32,
1219    a: &[f32],
1220    b: &mut [f32],
1221    ldb: i32,
1222    info: &mut i32,
1223) {
1224    ffi::spftrs_(
1225        &(transr as c_char),
1226        &(uplo as c_char),
1227        &n,
1228        &nrhs,
1229        a.as_ptr(),
1230        b.as_mut_ptr(),
1231        &ldb,
1232        info,
1233    )
1234}
1235
1236#[inline]
1237pub unsafe fn zpftrs(
1238    transr: u8,
1239    uplo: u8,
1240    n: i32,
1241    nrhs: i32,
1242    a: &[c64],
1243    b: &mut [c64],
1244    ldb: i32,
1245    info: &mut i32,
1246) {
1247    ffi::zpftrs_(
1248        &(transr as c_char),
1249        &(uplo as c_char),
1250        &n,
1251        &nrhs,
1252        a.as_ptr() as *const _,
1253        b.as_mut_ptr() as *mut _,
1254        &ldb,
1255        info,
1256    )
1257}
1258
1259#[inline]
1260pub unsafe fn cpftrs(
1261    transr: u8,
1262    uplo: u8,
1263    n: i32,
1264    nrhs: i32,
1265    a: &[c32],
1266    b: &mut [c32],
1267    ldb: i32,
1268    info: &mut i32,
1269) {
1270    ffi::cpftrs_(
1271        &(transr as c_char),
1272        &(uplo as c_char),
1273        &n,
1274        &nrhs,
1275        a.as_ptr() as *const _,
1276        b.as_mut_ptr() as *mut _,
1277        &ldb,
1278        info,
1279    )
1280}
1281
1282#[inline]
1283pub unsafe fn spptrs(
1284    uplo: u8,
1285    n: i32,
1286    nrhs: i32,
1287    ap: &[f32],
1288    b: &mut [f32],
1289    ldb: i32,
1290    info: &mut i32,
1291) {
1292    ffi::spptrs_(
1293        &(uplo as c_char),
1294        &n,
1295        &nrhs,
1296        ap.as_ptr(),
1297        b.as_mut_ptr(),
1298        &ldb,
1299        info,
1300    )
1301}
1302
1303#[inline]
1304pub unsafe fn dpptrs(
1305    uplo: u8,
1306    n: i32,
1307    nrhs: i32,
1308    ap: &[f64],
1309    b: &mut [f64],
1310    ldb: i32,
1311    info: &mut i32,
1312) {
1313    ffi::dpptrs_(
1314        &(uplo as c_char),
1315        &n,
1316        &nrhs,
1317        ap.as_ptr(),
1318        b.as_mut_ptr(),
1319        &ldb,
1320        info,
1321    )
1322}
1323
1324#[inline]
1325pub unsafe fn cpptrs(
1326    uplo: u8,
1327    n: i32,
1328    nrhs: i32,
1329    ap: &[c32],
1330    b: &mut [c32],
1331    ldb: i32,
1332    info: &mut i32,
1333) {
1334    ffi::cpptrs_(
1335        &(uplo as c_char),
1336        &n,
1337        &nrhs,
1338        ap.as_ptr() as *const _,
1339        b.as_mut_ptr() as *mut _,
1340        &ldb,
1341        info,
1342    )
1343}
1344
1345#[inline]
1346pub unsafe fn zpptrs(
1347    uplo: u8,
1348    n: i32,
1349    nrhs: i32,
1350    ap: &[c64],
1351    b: &mut [c64],
1352    ldb: i32,
1353    info: &mut i32,
1354) {
1355    ffi::zpptrs_(
1356        &(uplo as c_char),
1357        &n,
1358        &nrhs,
1359        ap.as_ptr() as *const _,
1360        b.as_mut_ptr() as *mut _,
1361        &ldb,
1362        info,
1363    )
1364}
1365
1366#[inline]
1367pub unsafe fn spbtrs(
1368    uplo: u8,
1369    n: i32,
1370    kd: i32,
1371    nrhs: i32,
1372    ab: &[f32],
1373    ldab: i32,
1374    b: &mut [f32],
1375    ldb: i32,
1376    info: &mut i32,
1377) {
1378    ffi::spbtrs_(
1379        &(uplo as c_char),
1380        &n,
1381        &kd,
1382        &nrhs,
1383        ab.as_ptr(),
1384        &ldab,
1385        b.as_mut_ptr(),
1386        &ldb,
1387        info,
1388    )
1389}
1390
1391#[inline]
1392pub unsafe fn dpbtrs(
1393    uplo: u8,
1394    n: i32,
1395    kd: i32,
1396    nrhs: i32,
1397    ab: &[f64],
1398    ldab: i32,
1399    b: &mut [f64],
1400    ldb: i32,
1401    info: &mut i32,
1402) {
1403    ffi::dpbtrs_(
1404        &(uplo as c_char),
1405        &n,
1406        &kd,
1407        &nrhs,
1408        ab.as_ptr(),
1409        &ldab,
1410        b.as_mut_ptr(),
1411        &ldb,
1412        info,
1413    )
1414}
1415
1416#[inline]
1417pub unsafe fn cpbtrs(
1418    uplo: u8,
1419    n: i32,
1420    kd: i32,
1421    nrhs: i32,
1422    ab: &[c32],
1423    ldab: i32,
1424    b: &mut [c32],
1425    ldb: i32,
1426    info: &mut i32,
1427) {
1428    ffi::cpbtrs_(
1429        &(uplo as c_char),
1430        &n,
1431        &kd,
1432        &nrhs,
1433        ab.as_ptr() as *const _,
1434        &ldab,
1435        b.as_mut_ptr() as *mut _,
1436        &ldb,
1437        info,
1438    )
1439}
1440
1441#[inline]
1442pub unsafe fn zpbtrs(
1443    uplo: u8,
1444    n: i32,
1445    kd: i32,
1446    nrhs: i32,
1447    ab: &[c64],
1448    ldab: i32,
1449    b: &mut [c64],
1450    ldb: i32,
1451    info: &mut i32,
1452) {
1453    ffi::zpbtrs_(
1454        &(uplo as c_char),
1455        &n,
1456        &kd,
1457        &nrhs,
1458        ab.as_ptr() as *const _,
1459        &ldab,
1460        b.as_mut_ptr() as *mut _,
1461        &ldb,
1462        info,
1463    )
1464}
1465
1466#[inline]
1467pub unsafe fn spttrs(
1468    n: i32,
1469    nrhs: i32,
1470    d: &[f32],
1471    e: &[f32],
1472    b: &mut [f32],
1473    ldb: i32,
1474    info: &mut i32,
1475) {
1476    ffi::spttrs_(
1477        &n,
1478        &nrhs,
1479        d.as_ptr(),
1480        e.as_ptr(),
1481        b.as_mut_ptr(),
1482        &ldb,
1483        info,
1484    )
1485}
1486
1487#[inline]
1488pub unsafe fn dpttrs(
1489    n: i32,
1490    nrhs: i32,
1491    d: &[f64],
1492    e: &[f64],
1493    b: &mut [f64],
1494    ldb: i32,
1495    info: &mut i32,
1496) {
1497    ffi::dpttrs_(
1498        &n,
1499        &nrhs,
1500        d.as_ptr(),
1501        e.as_ptr(),
1502        b.as_mut_ptr(),
1503        &ldb,
1504        info,
1505    )
1506}
1507
1508#[inline]
1509pub unsafe fn cpttrs(
1510    uplo: u8,
1511    n: i32,
1512    nrhs: i32,
1513    d: &[f32],
1514    e: &[c32],
1515    b: &mut [c32],
1516    ldb: i32,
1517    info: &mut i32,
1518) {
1519    ffi::cpttrs_(
1520        &(uplo as c_char),
1521        &n,
1522        &nrhs,
1523        d.as_ptr(),
1524        e.as_ptr() as *const _,
1525        b.as_mut_ptr() as *mut _,
1526        &ldb,
1527        info,
1528    )
1529}
1530
1531#[inline]
1532pub unsafe fn zpttrs(
1533    uplo: u8,
1534    n: i32,
1535    nrhs: i32,
1536    d: &[f64],
1537    e: &[c64],
1538    b: &mut [c64],
1539    ldb: i32,
1540    info: &mut i32,
1541) {
1542    ffi::zpttrs_(
1543        &(uplo as c_char),
1544        &n,
1545        &nrhs,
1546        d.as_ptr(),
1547        e.as_ptr() as *const _,
1548        b.as_mut_ptr() as *mut _,
1549        &ldb,
1550        info,
1551    )
1552}
1553
1554#[inline]
1555pub unsafe fn ssytrs(
1556    uplo: u8,
1557    n: i32,
1558    nrhs: i32,
1559    a: &[f32],
1560    lda: i32,
1561    ipiv: &[i32],
1562    b: &mut [f32],
1563    ldb: i32,
1564    info: &mut i32,
1565) {
1566    ffi::ssytrs_(
1567        &(uplo as c_char),
1568        &n,
1569        &nrhs,
1570        a.as_ptr(),
1571        &lda,
1572        ipiv.as_ptr(),
1573        b.as_mut_ptr(),
1574        &ldb,
1575        info,
1576    )
1577}
1578
1579#[inline]
1580pub unsafe fn dsytrs(
1581    uplo: u8,
1582    n: i32,
1583    nrhs: i32,
1584    a: &[f64],
1585    lda: i32,
1586    ipiv: &[i32],
1587    b: &mut [f64],
1588    ldb: i32,
1589    info: &mut i32,
1590) {
1591    ffi::dsytrs_(
1592        &(uplo as c_char),
1593        &n,
1594        &nrhs,
1595        a.as_ptr(),
1596        &lda,
1597        ipiv.as_ptr(),
1598        b.as_mut_ptr(),
1599        &ldb,
1600        info,
1601    )
1602}
1603
1604#[inline]
1605pub unsafe fn csytrs(
1606    uplo: u8,
1607    n: i32,
1608    nrhs: i32,
1609    a: &[c32],
1610    lda: i32,
1611    ipiv: &[i32],
1612    b: &mut [c32],
1613    ldb: i32,
1614    info: &mut i32,
1615) {
1616    ffi::csytrs_(
1617        &(uplo as c_char),
1618        &n,
1619        &nrhs,
1620        a.as_ptr() as *const _,
1621        &lda,
1622        ipiv.as_ptr(),
1623        b.as_mut_ptr() as *mut _,
1624        &ldb,
1625        info,
1626    )
1627}
1628
1629#[inline]
1630pub unsafe fn zsytrs(
1631    uplo: u8,
1632    n: i32,
1633    nrhs: i32,
1634    a: &[c64],
1635    lda: i32,
1636    ipiv: &[i32],
1637    b: &mut [c64],
1638    ldb: i32,
1639    info: &mut i32,
1640) {
1641    ffi::zsytrs_(
1642        &(uplo as c_char),
1643        &n,
1644        &nrhs,
1645        a.as_ptr() as *const _,
1646        &lda,
1647        ipiv.as_ptr(),
1648        b.as_mut_ptr() as *mut _,
1649        &ldb,
1650        info,
1651    )
1652}
1653
1654#[inline]
1655pub unsafe fn chetrs(
1656    uplo: u8,
1657    n: i32,
1658    nrhs: i32,
1659    a: &[c32],
1660    lda: i32,
1661    ipiv: &[i32],
1662    b: &mut [c32],
1663    ldb: i32,
1664    info: &mut i32,
1665) {
1666    ffi::chetrs_(
1667        &(uplo as c_char),
1668        &n,
1669        &nrhs,
1670        a.as_ptr() as *const _,
1671        &lda,
1672        ipiv.as_ptr(),
1673        b.as_mut_ptr() as *mut _,
1674        &ldb,
1675        info,
1676    )
1677}
1678
1679#[inline]
1680pub unsafe fn zhetrs(
1681    uplo: u8,
1682    n: i32,
1683    nrhs: i32,
1684    a: &[c64],
1685    lda: i32,
1686    ipiv: &[i32],
1687    b: &mut [c64],
1688    ldb: i32,
1689    info: &mut i32,
1690) {
1691    ffi::zhetrs_(
1692        &(uplo as c_char),
1693        &n,
1694        &nrhs,
1695        a.as_ptr() as *const _,
1696        &lda,
1697        ipiv.as_ptr(),
1698        b.as_mut_ptr() as *mut _,
1699        &ldb,
1700        info,
1701    )
1702}
1703
1704#[inline]
1705pub unsafe fn ssptrs(
1706    uplo: u8,
1707    n: i32,
1708    nrhs: i32,
1709    ap: &[f32],
1710    ipiv: &[i32],
1711    b: &mut [f32],
1712    ldb: i32,
1713    info: &mut i32,
1714) {
1715    ffi::ssptrs_(
1716        &(uplo as c_char),
1717        &n,
1718        &nrhs,
1719        ap.as_ptr(),
1720        ipiv.as_ptr(),
1721        b.as_mut_ptr(),
1722        &ldb,
1723        info,
1724    )
1725}
1726
1727#[inline]
1728pub unsafe fn dsptrs(
1729    uplo: u8,
1730    n: i32,
1731    nrhs: i32,
1732    ap: &[f64],
1733    ipiv: &[i32],
1734    b: &mut [f64],
1735    ldb: i32,
1736    info: &mut i32,
1737) {
1738    ffi::dsptrs_(
1739        &(uplo as c_char),
1740        &n,
1741        &nrhs,
1742        ap.as_ptr(),
1743        ipiv.as_ptr(),
1744        b.as_mut_ptr(),
1745        &ldb,
1746        info,
1747    )
1748}
1749
1750#[inline]
1751pub unsafe fn csptrs(
1752    uplo: u8,
1753    n: i32,
1754    nrhs: i32,
1755    ap: &[c32],
1756    ipiv: &[i32],
1757    b: &mut [c32],
1758    ldb: i32,
1759    info: &mut i32,
1760) {
1761    ffi::csptrs_(
1762        &(uplo as c_char),
1763        &n,
1764        &nrhs,
1765        ap.as_ptr() as *const _,
1766        ipiv.as_ptr(),
1767        b.as_mut_ptr() as *mut _,
1768        &ldb,
1769        info,
1770    )
1771}
1772
1773#[inline]
1774pub unsafe fn zsptrs(
1775    uplo: u8,
1776    n: i32,
1777    nrhs: i32,
1778    ap: &[c64],
1779    ipiv: &[i32],
1780    b: &mut [c64],
1781    ldb: i32,
1782    info: &mut i32,
1783) {
1784    ffi::zsptrs_(
1785        &(uplo as c_char),
1786        &n,
1787        &nrhs,
1788        ap.as_ptr() as *const _,
1789        ipiv.as_ptr(),
1790        b.as_mut_ptr() as *mut _,
1791        &ldb,
1792        info,
1793    )
1794}
1795
1796#[inline]
1797pub unsafe fn chptrs(
1798    uplo: u8,
1799    n: i32,
1800    nrhs: i32,
1801    ap: &[c32],
1802    ipiv: &[i32],
1803    b: &mut [c32],
1804    ldb: i32,
1805    info: &mut i32,
1806) {
1807    ffi::chptrs_(
1808        &(uplo as c_char),
1809        &n,
1810        &nrhs,
1811        ap.as_ptr() as *const _,
1812        ipiv.as_ptr(),
1813        b.as_mut_ptr() as *mut _,
1814        &ldb,
1815        info,
1816    )
1817}
1818
1819#[inline]
1820pub unsafe fn zhptrs(
1821    uplo: u8,
1822    n: i32,
1823    nrhs: i32,
1824    ap: &[c64],
1825    ipiv: &[i32],
1826    b: &mut [c64],
1827    ldb: i32,
1828    info: &mut i32,
1829) {
1830    ffi::zhptrs_(
1831        &(uplo as c_char),
1832        &n,
1833        &nrhs,
1834        ap.as_ptr() as *const _,
1835        ipiv.as_ptr(),
1836        b.as_mut_ptr() as *mut _,
1837        &ldb,
1838        info,
1839    )
1840}
1841
1842#[inline]
1843pub unsafe fn strtrs(
1844    uplo: u8,
1845    trans: u8,
1846    diag: u8,
1847    n: i32,
1848    nrhs: i32,
1849    a: &[f32],
1850    lda: i32,
1851    b: &mut [f32],
1852    ldb: i32,
1853    info: &mut i32,
1854) {
1855    ffi::strtrs_(
1856        &(uplo as c_char),
1857        &(trans as c_char),
1858        &(diag as c_char),
1859        &n,
1860        &nrhs,
1861        a.as_ptr(),
1862        &lda,
1863        b.as_mut_ptr(),
1864        &ldb,
1865        info,
1866    )
1867}
1868
1869#[inline]
1870pub unsafe fn dtrtrs(
1871    uplo: u8,
1872    trans: u8,
1873    diag: u8,
1874    n: i32,
1875    nrhs: i32,
1876    a: &[f64],
1877    lda: i32,
1878    b: &mut [f64],
1879    ldb: i32,
1880    info: &mut i32,
1881) {
1882    ffi::dtrtrs_(
1883        &(uplo as c_char),
1884        &(trans as c_char),
1885        &(diag as c_char),
1886        &n,
1887        &nrhs,
1888        a.as_ptr(),
1889        &lda,
1890        b.as_mut_ptr(),
1891        &ldb,
1892        info,
1893    )
1894}
1895
1896#[inline]
1897pub unsafe fn ctrtrs(
1898    uplo: u8,
1899    trans: u8,
1900    diag: u8,
1901    n: i32,
1902    nrhs: i32,
1903    a: &[c32],
1904    lda: i32,
1905    b: &mut [c32],
1906    ldb: i32,
1907    info: &mut i32,
1908) {
1909    ffi::ctrtrs_(
1910        &(uplo as c_char),
1911        &(trans as c_char),
1912        &(diag as c_char),
1913        &n,
1914        &nrhs,
1915        a.as_ptr() as *const _,
1916        &lda,
1917        b.as_mut_ptr() as *mut _,
1918        &ldb,
1919        info,
1920    )
1921}
1922
1923#[inline]
1924pub unsafe fn ztrtrs(
1925    uplo: u8,
1926    trans: u8,
1927    diag: u8,
1928    n: i32,
1929    nrhs: i32,
1930    a: &[c64],
1931    lda: i32,
1932    b: &mut [c64],
1933    ldb: i32,
1934    info: &mut i32,
1935) {
1936    ffi::ztrtrs_(
1937        &(uplo as c_char),
1938        &(trans as c_char),
1939        &(diag as c_char),
1940        &n,
1941        &nrhs,
1942        a.as_ptr() as *const _,
1943        &lda,
1944        b.as_mut_ptr() as *mut _,
1945        &ldb,
1946        info,
1947    )
1948}
1949
1950#[inline]
1951pub unsafe fn stptrs(
1952    uplo: u8,
1953    trans: u8,
1954    diag: u8,
1955    n: i32,
1956    nrhs: i32,
1957    ap: &[f32],
1958    b: &mut [f32],
1959    ldb: i32,
1960    info: &mut i32,
1961) {
1962    ffi::stptrs_(
1963        &(uplo as c_char),
1964        &(trans as c_char),
1965        &(diag as c_char),
1966        &n,
1967        &nrhs,
1968        ap.as_ptr(),
1969        b.as_mut_ptr(),
1970        &ldb,
1971        info,
1972    )
1973}
1974
1975#[inline]
1976pub unsafe fn dtptrs(
1977    uplo: u8,
1978    trans: u8,
1979    diag: u8,
1980    n: i32,
1981    nrhs: i32,
1982    ap: &[f64],
1983    b: &mut [f64],
1984    ldb: i32,
1985    info: &mut i32,
1986) {
1987    ffi::dtptrs_(
1988        &(uplo as c_char),
1989        &(trans as c_char),
1990        &(diag as c_char),
1991        &n,
1992        &nrhs,
1993        ap.as_ptr(),
1994        b.as_mut_ptr(),
1995        &ldb,
1996        info,
1997    )
1998}
1999
2000#[inline]
2001pub unsafe fn ctptrs(
2002    uplo: u8,
2003    trans: u8,
2004    diag: u8,
2005    n: i32,
2006    nrhs: i32,
2007    ap: &[c32],
2008    b: &mut [c32],
2009    ldb: i32,
2010    info: &mut i32,
2011) {
2012    ffi::ctptrs_(
2013        &(uplo as c_char),
2014        &(trans as c_char),
2015        &(diag as c_char),
2016        &n,
2017        &nrhs,
2018        ap.as_ptr() as *const _,
2019        b.as_mut_ptr() as *mut _,
2020        &ldb,
2021        info,
2022    )
2023}
2024
2025#[inline]
2026pub unsafe fn ztptrs(
2027    uplo: u8,
2028    trans: u8,
2029    diag: u8,
2030    n: i32,
2031    nrhs: i32,
2032    ap: &[c64],
2033    b: &mut [c64],
2034    ldb: i32,
2035    info: &mut i32,
2036) {
2037    ffi::ztptrs_(
2038        &(uplo as c_char),
2039        &(trans as c_char),
2040        &(diag as c_char),
2041        &n,
2042        &nrhs,
2043        ap.as_ptr() as *const _,
2044        b.as_mut_ptr() as *mut _,
2045        &ldb,
2046        info,
2047    )
2048}
2049
2050#[inline]
2051pub unsafe fn stbtrs(
2052    uplo: u8,
2053    trans: u8,
2054    diag: u8,
2055    n: i32,
2056    kd: i32,
2057    nrhs: i32,
2058    ab: &[f32],
2059    ldab: i32,
2060    b: &mut [f32],
2061    ldb: i32,
2062    info: &mut i32,
2063) {
2064    ffi::stbtrs_(
2065        &(uplo as c_char),
2066        &(trans as c_char),
2067        &(diag as c_char),
2068        &n,
2069        &kd,
2070        &nrhs,
2071        ab.as_ptr(),
2072        &ldab,
2073        b.as_mut_ptr(),
2074        &ldb,
2075        info,
2076    )
2077}
2078
2079#[inline]
2080pub unsafe fn dtbtrs(
2081    uplo: u8,
2082    trans: u8,
2083    diag: u8,
2084    n: i32,
2085    kd: i32,
2086    nrhs: i32,
2087    ab: &[f64],
2088    ldab: i32,
2089    b: &mut [f64],
2090    ldb: i32,
2091    info: &mut i32,
2092) {
2093    ffi::dtbtrs_(
2094        &(uplo as c_char),
2095        &(trans as c_char),
2096        &(diag as c_char),
2097        &n,
2098        &kd,
2099        &nrhs,
2100        ab.as_ptr(),
2101        &ldab,
2102        b.as_mut_ptr(),
2103        &ldb,
2104        info,
2105    )
2106}
2107
2108#[inline]
2109pub unsafe fn ctbtrs(
2110    uplo: u8,
2111    trans: u8,
2112    diag: u8,
2113    n: i32,
2114    kd: i32,
2115    nrhs: i32,
2116    ab: &[c32],
2117    ldab: i32,
2118    b: &mut [c32],
2119    ldb: i32,
2120    info: &mut i32,
2121) {
2122    ffi::ctbtrs_(
2123        &(uplo as c_char),
2124        &(trans as c_char),
2125        &(diag as c_char),
2126        &n,
2127        &kd,
2128        &nrhs,
2129        ab.as_ptr() as *const _,
2130        &ldab,
2131        b.as_mut_ptr() as *mut _,
2132        &ldb,
2133        info,
2134    )
2135}
2136
2137#[inline]
2138pub unsafe fn ztbtrs(
2139    uplo: u8,
2140    trans: u8,
2141    diag: u8,
2142    n: i32,
2143    kd: i32,
2144    nrhs: i32,
2145    ab: &[c64],
2146    ldab: i32,
2147    b: &mut [c64],
2148    ldb: i32,
2149    info: &mut i32,
2150) {
2151    ffi::ztbtrs_(
2152        &(uplo as c_char),
2153        &(trans as c_char),
2154        &(diag as c_char),
2155        &n,
2156        &kd,
2157        &nrhs,
2158        ab.as_ptr() as *const _,
2159        &ldab,
2160        b.as_mut_ptr() as *mut _,
2161        &ldb,
2162        info,
2163    )
2164}
2165
2166#[inline]
2167pub unsafe fn sgecon(
2168    norm: u8,
2169    n: i32,
2170    a: &[f32],
2171    lda: i32,
2172    anorm: f32,
2173    rcond: &mut f32,
2174    work: &mut [f32],
2175    iwork: &mut [i32],
2176    info: &mut i32,
2177) {
2178    ffi::sgecon_(
2179        &(norm as c_char),
2180        &n,
2181        a.as_ptr(),
2182        &lda,
2183        &anorm,
2184        rcond,
2185        work.as_mut_ptr(),
2186        iwork.as_mut_ptr(),
2187        info,
2188    )
2189}
2190
2191#[inline]
2192pub unsafe fn dgecon(
2193    norm: u8,
2194    n: i32,
2195    a: &[f64],
2196    lda: i32,
2197    anorm: f64,
2198    rcond: &mut f64,
2199    work: &mut [f64],
2200    iwork: &mut [i32],
2201    info: &mut i32,
2202) {
2203    ffi::dgecon_(
2204        &(norm as c_char),
2205        &n,
2206        a.as_ptr(),
2207        &lda,
2208        &anorm,
2209        rcond,
2210        work.as_mut_ptr(),
2211        iwork.as_mut_ptr(),
2212        info,
2213    )
2214}
2215
2216#[inline]
2217pub unsafe fn cgecon(
2218    norm: u8,
2219    n: i32,
2220    a: &[c32],
2221    lda: i32,
2222    anorm: f32,
2223    rcond: &mut f32,
2224    work: &mut [c32],
2225    rwork: &mut [f32],
2226    info: &mut i32,
2227) {
2228    ffi::cgecon_(
2229        &(norm as c_char),
2230        &n,
2231        a.as_ptr() as *const _,
2232        &lda,
2233        &anorm,
2234        rcond,
2235        work.as_mut_ptr() as *mut _,
2236        rwork.as_mut_ptr(),
2237        info,
2238    )
2239}
2240
2241#[inline]
2242pub unsafe fn zgecon(
2243    norm: u8,
2244    n: i32,
2245    a: &[c64],
2246    lda: i32,
2247    anorm: f64,
2248    rcond: &mut f64,
2249    work: &mut [c64],
2250    rwork: &mut [f64],
2251    info: &mut i32,
2252) {
2253    ffi::zgecon_(
2254        &(norm as c_char),
2255        &n,
2256        a.as_ptr() as *const _,
2257        &lda,
2258        &anorm,
2259        rcond,
2260        work.as_mut_ptr() as *mut _,
2261        rwork.as_mut_ptr(),
2262        info,
2263    )
2264}
2265
2266#[inline]
2267pub unsafe fn sgbcon(
2268    norm: u8,
2269    n: i32,
2270    kl: i32,
2271    ku: i32,
2272    ab: &[f32],
2273    ldab: i32,
2274    ipiv: &[i32],
2275    anorm: f32,
2276    rcond: &mut f32,
2277    work: &mut [f32],
2278    iwork: &mut [i32],
2279    info: &mut i32,
2280) {
2281    ffi::sgbcon_(
2282        &(norm as c_char),
2283        &n,
2284        &kl,
2285        &ku,
2286        ab.as_ptr(),
2287        &ldab,
2288        ipiv.as_ptr(),
2289        &anorm,
2290        rcond,
2291        work.as_mut_ptr(),
2292        iwork.as_mut_ptr(),
2293        info,
2294    )
2295}
2296
2297#[inline]
2298pub unsafe fn dgbcon(
2299    norm: u8,
2300    n: i32,
2301    kl: i32,
2302    ku: i32,
2303    ab: &[f64],
2304    ldab: i32,
2305    ipiv: &[i32],
2306    anorm: f64,
2307    rcond: &mut f64,
2308    work: &mut [f64],
2309    iwork: &mut [i32],
2310    info: &mut i32,
2311) {
2312    ffi::dgbcon_(
2313        &(norm as c_char),
2314        &n,
2315        &kl,
2316        &ku,
2317        ab.as_ptr(),
2318        &ldab,
2319        ipiv.as_ptr(),
2320        &anorm,
2321        rcond,
2322        work.as_mut_ptr(),
2323        iwork.as_mut_ptr(),
2324        info,
2325    )
2326}
2327
2328#[inline]
2329pub unsafe fn cgbcon(
2330    norm: u8,
2331    n: i32,
2332    kl: i32,
2333    ku: i32,
2334    ab: &[c32],
2335    ldab: i32,
2336    ipiv: &[i32],
2337    anorm: f32,
2338    rcond: &mut f32,
2339    work: &mut [c32],
2340    rwork: &mut [f32],
2341    info: &mut i32,
2342) {
2343    ffi::cgbcon_(
2344        &(norm as c_char),
2345        &n,
2346        &kl,
2347        &ku,
2348        ab.as_ptr() as *const _,
2349        &ldab,
2350        ipiv.as_ptr(),
2351        &anorm,
2352        rcond,
2353        work.as_mut_ptr() as *mut _,
2354        rwork.as_mut_ptr(),
2355        info,
2356    )
2357}
2358
2359#[inline]
2360pub unsafe fn zgbcon(
2361    norm: u8,
2362    n: i32,
2363    kl: i32,
2364    ku: i32,
2365    ab: &[c64],
2366    ldab: i32,
2367    ipiv: &[i32],
2368    anorm: f64,
2369    rcond: &mut f64,
2370    work: &mut [c64],
2371    rwork: &mut [f64],
2372    info: &mut i32,
2373) {
2374    ffi::zgbcon_(
2375        &(norm as c_char),
2376        &n,
2377        &kl,
2378        &ku,
2379        ab.as_ptr() as *const _,
2380        &ldab,
2381        ipiv.as_ptr(),
2382        &anorm,
2383        rcond,
2384        work.as_mut_ptr() as *mut _,
2385        rwork.as_mut_ptr(),
2386        info,
2387    )
2388}
2389
2390#[inline]
2391pub unsafe fn sgtcon(
2392    norm: u8,
2393    n: i32,
2394    dl: &[f32],
2395    d: &[f32],
2396    du: &[f32],
2397    du2: &[f32],
2398    ipiv: &[i32],
2399    anorm: f32,
2400    rcond: &mut f32,
2401    work: &mut [f32],
2402    iwork: &mut [i32],
2403    info: &mut i32,
2404) {
2405    ffi::sgtcon_(
2406        &(norm as c_char),
2407        &n,
2408        dl.as_ptr(),
2409        d.as_ptr(),
2410        du.as_ptr(),
2411        du2.as_ptr(),
2412        ipiv.as_ptr(),
2413        &anorm,
2414        rcond,
2415        work.as_mut_ptr(),
2416        iwork.as_mut_ptr(),
2417        info,
2418    )
2419}
2420
2421#[inline]
2422pub unsafe fn dgtcon(
2423    norm: u8,
2424    n: i32,
2425    dl: &[f64],
2426    d: &[f64],
2427    du: &[f64],
2428    du2: &[f64],
2429    ipiv: &[i32],
2430    anorm: f64,
2431    rcond: &mut f64,
2432    work: &mut [f64],
2433    iwork: &mut [i32],
2434    info: &mut i32,
2435) {
2436    ffi::dgtcon_(
2437        &(norm as c_char),
2438        &n,
2439        dl.as_ptr(),
2440        d.as_ptr(),
2441        du.as_ptr(),
2442        du2.as_ptr(),
2443        ipiv.as_ptr(),
2444        &anorm,
2445        rcond,
2446        work.as_mut_ptr(),
2447        iwork.as_mut_ptr(),
2448        info,
2449    )
2450}
2451
2452#[inline]
2453pub unsafe fn cgtcon(
2454    norm: u8,
2455    n: i32,
2456    dl: &[c32],
2457    d: &[c32],
2458    du: &[c32],
2459    du2: &[c32],
2460    ipiv: &[i32],
2461    anorm: f32,
2462    rcond: &mut f32,
2463    work: &mut [c32],
2464    info: &mut i32,
2465) {
2466    ffi::cgtcon_(
2467        &(norm as c_char),
2468        &n,
2469        dl.as_ptr() as *const _,
2470        d.as_ptr() as *const _,
2471        du.as_ptr() as *const _,
2472        du2.as_ptr() as *const _,
2473        ipiv.as_ptr(),
2474        &anorm,
2475        rcond,
2476        work.as_mut_ptr() as *mut _,
2477        info,
2478    )
2479}
2480
2481#[inline]
2482pub unsafe fn zgtcon(
2483    norm: u8,
2484    n: i32,
2485    dl: &[c64],
2486    d: &[c64],
2487    du: &[c64],
2488    du2: &[c64],
2489    ipiv: &[i32],
2490    anorm: f64,
2491    rcond: &mut f64,
2492    work: &mut [c64],
2493    info: &mut i32,
2494) {
2495    ffi::zgtcon_(
2496        &(norm as c_char),
2497        &n,
2498        dl.as_ptr() as *const _,
2499        d.as_ptr() as *const _,
2500        du.as_ptr() as *const _,
2501        du2.as_ptr() as *const _,
2502        ipiv.as_ptr(),
2503        &anorm,
2504        rcond,
2505        work.as_mut_ptr() as *mut _,
2506        info,
2507    )
2508}
2509
2510#[inline]
2511pub unsafe fn spocon(
2512    uplo: u8,
2513    n: i32,
2514    a: &[f32],
2515    lda: i32,
2516    anorm: f32,
2517    rcond: &mut f32,
2518    work: &mut [f32],
2519    iwork: &mut [i32],
2520    info: &mut i32,
2521) {
2522    ffi::spocon_(
2523        &(uplo as c_char),
2524        &n,
2525        a.as_ptr(),
2526        &lda,
2527        &anorm,
2528        rcond,
2529        work.as_mut_ptr(),
2530        iwork.as_mut_ptr(),
2531        info,
2532    )
2533}
2534
2535#[inline]
2536pub unsafe fn dpocon(
2537    uplo: u8,
2538    n: i32,
2539    a: &[f64],
2540    lda: i32,
2541    anorm: f64,
2542    rcond: &mut f64,
2543    work: &mut [f64],
2544    iwork: &mut [i32],
2545    info: &mut i32,
2546) {
2547    ffi::dpocon_(
2548        &(uplo as c_char),
2549        &n,
2550        a.as_ptr(),
2551        &lda,
2552        &anorm,
2553        rcond,
2554        work.as_mut_ptr(),
2555        iwork.as_mut_ptr(),
2556        info,
2557    )
2558}
2559
2560#[inline]
2561pub unsafe fn cpocon(
2562    uplo: u8,
2563    n: i32,
2564    a: &[c32],
2565    lda: i32,
2566    anorm: f32,
2567    rcond: &mut f32,
2568    work: &mut [c32],
2569    rwork: &mut [f32],
2570    info: &mut i32,
2571) {
2572    ffi::cpocon_(
2573        &(uplo as c_char),
2574        &n,
2575        a.as_ptr() as *const _,
2576        &lda,
2577        &anorm,
2578        rcond,
2579        work.as_mut_ptr() as *mut _,
2580        rwork.as_mut_ptr(),
2581        info,
2582    )
2583}
2584
2585#[inline]
2586pub unsafe fn zpocon(
2587    uplo: u8,
2588    n: i32,
2589    a: &[c64],
2590    lda: i32,
2591    anorm: f64,
2592    rcond: &mut f64,
2593    work: &mut [c64],
2594    rwork: &mut [f64],
2595    info: &mut i32,
2596) {
2597    ffi::zpocon_(
2598        &(uplo as c_char),
2599        &n,
2600        a.as_ptr() as *const _,
2601        &lda,
2602        &anorm,
2603        rcond,
2604        work.as_mut_ptr() as *mut _,
2605        rwork.as_mut_ptr(),
2606        info,
2607    )
2608}
2609
2610#[inline]
2611pub unsafe fn sppcon(
2612    uplo: u8,
2613    n: i32,
2614    ap: &[f32],
2615    anorm: f32,
2616    rcond: &mut f32,
2617    work: &mut [f32],
2618    iwork: &mut [i32],
2619    info: &mut i32,
2620) {
2621    ffi::sppcon_(
2622        &(uplo as c_char),
2623        &n,
2624        ap.as_ptr(),
2625        &anorm,
2626        rcond,
2627        work.as_mut_ptr(),
2628        iwork.as_mut_ptr(),
2629        info,
2630    )
2631}
2632
2633#[inline]
2634pub unsafe fn dppcon(
2635    uplo: u8,
2636    n: i32,
2637    ap: &[f64],
2638    anorm: f64,
2639    rcond: &mut f64,
2640    work: &mut [f64],
2641    iwork: &mut [i32],
2642    info: &mut i32,
2643) {
2644    ffi::dppcon_(
2645        &(uplo as c_char),
2646        &n,
2647        ap.as_ptr(),
2648        &anorm,
2649        rcond,
2650        work.as_mut_ptr(),
2651        iwork.as_mut_ptr(),
2652        info,
2653    )
2654}
2655
2656#[inline]
2657pub unsafe fn cppcon(
2658    uplo: u8,
2659    n: i32,
2660    ap: &[c32],
2661    anorm: f32,
2662    rcond: &mut f32,
2663    work: &mut [c32],
2664    rwork: &mut [f32],
2665    info: &mut i32,
2666) {
2667    ffi::cppcon_(
2668        &(uplo as c_char),
2669        &n,
2670        ap.as_ptr() as *const _,
2671        &anorm,
2672        rcond,
2673        work.as_mut_ptr() as *mut _,
2674        rwork.as_mut_ptr(),
2675        info,
2676    )
2677}
2678
2679#[inline]
2680pub unsafe fn zppcon(
2681    uplo: u8,
2682    n: i32,
2683    ap: &[c64],
2684    anorm: f64,
2685    rcond: &mut f64,
2686    work: &mut [c64],
2687    rwork: &mut [f64],
2688    info: &mut i32,
2689) {
2690    ffi::zppcon_(
2691        &(uplo as c_char),
2692        &n,
2693        ap.as_ptr() as *const _,
2694        &anorm,
2695        rcond,
2696        work.as_mut_ptr() as *mut _,
2697        rwork.as_mut_ptr(),
2698        info,
2699    )
2700}
2701
2702#[inline]
2703pub unsafe fn spbcon(
2704    uplo: u8,
2705    n: i32,
2706    kd: i32,
2707    ab: &[f32],
2708    ldab: i32,
2709    anorm: f32,
2710    rcond: &mut f32,
2711    work: &mut [f32],
2712    iwork: &mut [i32],
2713    info: &mut i32,
2714) {
2715    ffi::spbcon_(
2716        &(uplo as c_char),
2717        &n,
2718        &kd,
2719        ab.as_ptr(),
2720        &ldab,
2721        &anorm,
2722        rcond,
2723        work.as_mut_ptr(),
2724        iwork.as_mut_ptr(),
2725        info,
2726    )
2727}
2728
2729#[inline]
2730pub unsafe fn dpbcon(
2731    uplo: u8,
2732    n: i32,
2733    kd: i32,
2734    ab: &[f64],
2735    ldab: i32,
2736    anorm: f64,
2737    rcond: &mut f64,
2738    work: &mut [f64],
2739    iwork: &mut [i32],
2740    info: &mut i32,
2741) {
2742    ffi::dpbcon_(
2743        &(uplo as c_char),
2744        &n,
2745        &kd,
2746        ab.as_ptr(),
2747        &ldab,
2748        &anorm,
2749        rcond,
2750        work.as_mut_ptr(),
2751        iwork.as_mut_ptr(),
2752        info,
2753    )
2754}
2755
2756#[inline]
2757pub unsafe fn cpbcon(
2758    uplo: u8,
2759    n: i32,
2760    kd: i32,
2761    ab: &[c32],
2762    ldab: i32,
2763    anorm: f32,
2764    rcond: &mut f32,
2765    work: &mut [c32],
2766    rwork: &mut [f32],
2767    info: &mut i32,
2768) {
2769    ffi::cpbcon_(
2770        &(uplo as c_char),
2771        &n,
2772        &kd,
2773        ab.as_ptr() as *const _,
2774        &ldab,
2775        &anorm,
2776        rcond,
2777        work.as_mut_ptr() as *mut _,
2778        rwork.as_mut_ptr(),
2779        info,
2780    )
2781}
2782
2783#[inline]
2784pub unsafe fn zpbcon(
2785    uplo: u8,
2786    n: i32,
2787    kd: i32,
2788    ab: &[c64],
2789    ldab: i32,
2790    anorm: f64,
2791    rcond: &mut f64,
2792    work: &mut [c64],
2793    rwork: &mut [f64],
2794    info: &mut i32,
2795) {
2796    ffi::zpbcon_(
2797        &(uplo as c_char),
2798        &n,
2799        &kd,
2800        ab.as_ptr() as *const _,
2801        &ldab,
2802        &anorm,
2803        rcond,
2804        work.as_mut_ptr() as *mut _,
2805        rwork.as_mut_ptr(),
2806        info,
2807    )
2808}
2809
2810#[inline]
2811pub unsafe fn sptcon(
2812    n: i32,
2813    d: &[f32],
2814    e: &[f32],
2815    anorm: f32,
2816    rcond: &mut f32,
2817    work: &mut [f32],
2818    info: &mut i32,
2819) {
2820    ffi::sptcon_(
2821        &n,
2822        d.as_ptr(),
2823        e.as_ptr(),
2824        &anorm,
2825        rcond,
2826        work.as_mut_ptr(),
2827        info,
2828    )
2829}
2830
2831#[inline]
2832pub unsafe fn dptcon(
2833    n: i32,
2834    d: &[f64],
2835    e: &[f64],
2836    anorm: f64,
2837    rcond: &mut f64,
2838    work: &mut [f64],
2839    info: &mut i32,
2840) {
2841    ffi::dptcon_(
2842        &n,
2843        d.as_ptr(),
2844        e.as_ptr(),
2845        &anorm,
2846        rcond,
2847        work.as_mut_ptr(),
2848        info,
2849    )
2850}
2851
2852#[inline]
2853pub unsafe fn cptcon(
2854    n: i32,
2855    d: &[f32],
2856    e: &[c32],
2857    anorm: f32,
2858    rcond: &mut f32,
2859    work: &mut [f32],
2860    info: &mut i32,
2861) {
2862    ffi::cptcon_(
2863        &n,
2864        d.as_ptr(),
2865        e.as_ptr() as *const _,
2866        &anorm,
2867        rcond,
2868        work.as_mut_ptr(),
2869        info,
2870    )
2871}
2872
2873#[inline]
2874pub unsafe fn zptcon(
2875    n: i32,
2876    d: &[f64],
2877    e: &[c64],
2878    anorm: f64,
2879    rcond: &mut f64,
2880    work: &mut [f64],
2881    info: &mut i32,
2882) {
2883    ffi::zptcon_(
2884        &n,
2885        d.as_ptr(),
2886        e.as_ptr() as *const _,
2887        &anorm,
2888        rcond,
2889        work.as_mut_ptr(),
2890        info,
2891    )
2892}
2893
2894#[inline]
2895pub unsafe fn ssycon(
2896    uplo: u8,
2897    n: i32,
2898    a: &[f32],
2899    lda: i32,
2900    ipiv: &[i32],
2901    anorm: f32,
2902    rcond: &mut f32,
2903    work: &mut [f32],
2904    iwork: &mut [i32],
2905    info: &mut i32,
2906) {
2907    ffi::ssycon_(
2908        &(uplo as c_char),
2909        &n,
2910        a.as_ptr(),
2911        &lda,
2912        ipiv.as_ptr(),
2913        &anorm,
2914        rcond,
2915        work.as_mut_ptr(),
2916        iwork.as_mut_ptr(),
2917        info,
2918    )
2919}
2920
2921#[inline]
2922pub unsafe fn dsycon(
2923    uplo: u8,
2924    n: i32,
2925    a: &[f64],
2926    lda: i32,
2927    ipiv: &[i32],
2928    anorm: f64,
2929    rcond: &mut f64,
2930    work: &mut [f64],
2931    iwork: &mut [i32],
2932    info: &mut i32,
2933) {
2934    ffi::dsycon_(
2935        &(uplo as c_char),
2936        &n,
2937        a.as_ptr(),
2938        &lda,
2939        ipiv.as_ptr(),
2940        &anorm,
2941        rcond,
2942        work.as_mut_ptr(),
2943        iwork.as_mut_ptr(),
2944        info,
2945    )
2946}
2947
2948#[inline]
2949pub unsafe fn csycon(
2950    uplo: u8,
2951    n: i32,
2952    a: &[c32],
2953    lda: i32,
2954    ipiv: &[i32],
2955    anorm: f32,
2956    rcond: &mut f32,
2957    work: &mut [c32],
2958    info: &mut i32,
2959) {
2960    ffi::csycon_(
2961        &(uplo as c_char),
2962        &n,
2963        a.as_ptr() as *const _,
2964        &lda,
2965        ipiv.as_ptr(),
2966        &anorm,
2967        rcond,
2968        work.as_mut_ptr() as *mut _,
2969        info,
2970    )
2971}
2972
2973#[inline]
2974pub unsafe fn zsycon(
2975    uplo: u8,
2976    n: i32,
2977    a: &[c64],
2978    lda: i32,
2979    ipiv: &[i32],
2980    anorm: f64,
2981    rcond: &mut f64,
2982    work: &mut [c64],
2983    info: &mut i32,
2984) {
2985    ffi::zsycon_(
2986        &(uplo as c_char),
2987        &n,
2988        a.as_ptr() as *const _,
2989        &lda,
2990        ipiv.as_ptr(),
2991        &anorm,
2992        rcond,
2993        work.as_mut_ptr() as *mut _,
2994        info,
2995    )
2996}
2997
2998#[inline]
2999pub unsafe fn checon(
3000    uplo: u8,
3001    n: i32,
3002    a: &[c32],
3003    lda: i32,
3004    ipiv: &[i32],
3005    anorm: f32,
3006    rcond: &mut f32,
3007    work: &mut [c32],
3008    info: &mut i32,
3009) {
3010    ffi::checon_(
3011        &(uplo as c_char),
3012        &n,
3013        a.as_ptr() as *const _,
3014        &lda,
3015        ipiv.as_ptr(),
3016        &anorm,
3017        rcond,
3018        work.as_mut_ptr() as *mut _,
3019        info,
3020    )
3021}
3022
3023#[inline]
3024pub unsafe fn zhecon(
3025    uplo: u8,
3026    n: i32,
3027    a: &[c64],
3028    lda: i32,
3029    ipiv: &[i32],
3030    anorm: f64,
3031    rcond: &mut f64,
3032    work: &mut [c64],
3033    info: &mut i32,
3034) {
3035    ffi::zhecon_(
3036        &(uplo as c_char),
3037        &n,
3038        a.as_ptr() as *const _,
3039        &lda,
3040        ipiv.as_ptr(),
3041        &anorm,
3042        rcond,
3043        work.as_mut_ptr() as *mut _,
3044        info,
3045    )
3046}
3047
3048#[inline]
3049pub unsafe fn sspcon(
3050    uplo: u8,
3051    n: i32,
3052    ap: &[f32],
3053    ipiv: &[i32],
3054    anorm: f32,
3055    rcond: &mut f32,
3056    work: &mut [f32],
3057    iwork: &mut [i32],
3058    info: &mut i32,
3059) {
3060    ffi::sspcon_(
3061        &(uplo as c_char),
3062        &n,
3063        ap.as_ptr(),
3064        ipiv.as_ptr(),
3065        &anorm,
3066        rcond,
3067        work.as_mut_ptr(),
3068        iwork.as_mut_ptr(),
3069        info,
3070    )
3071}
3072
3073#[inline]
3074pub unsafe fn dspcon(
3075    uplo: u8,
3076    n: i32,
3077    ap: &[f64],
3078    ipiv: &[i32],
3079    anorm: f64,
3080    rcond: &mut f64,
3081    work: &mut [f64],
3082    iwork: &mut [i32],
3083    info: &mut i32,
3084) {
3085    ffi::dspcon_(
3086        &(uplo as c_char),
3087        &n,
3088        ap.as_ptr(),
3089        ipiv.as_ptr(),
3090        &anorm,
3091        rcond,
3092        work.as_mut_ptr(),
3093        iwork.as_mut_ptr(),
3094        info,
3095    )
3096}
3097
3098#[inline]
3099pub unsafe fn cspcon(
3100    uplo: u8,
3101    n: i32,
3102    ap: &[c32],
3103    ipiv: &[i32],
3104    anorm: f32,
3105    rcond: &mut f32,
3106    work: &mut [c32],
3107    info: &mut i32,
3108) {
3109    ffi::cspcon_(
3110        &(uplo as c_char),
3111        &n,
3112        ap.as_ptr() as *const _,
3113        ipiv.as_ptr(),
3114        &anorm,
3115        rcond,
3116        work.as_mut_ptr() as *mut _,
3117        info,
3118    )
3119}
3120
3121#[inline]
3122pub unsafe fn zspcon(
3123    uplo: u8,
3124    n: i32,
3125    ap: &[c64],
3126    ipiv: &[i32],
3127    anorm: f64,
3128    rcond: &mut f64,
3129    work: &mut [c64],
3130    info: &mut i32,
3131) {
3132    ffi::zspcon_(
3133        &(uplo as c_char),
3134        &n,
3135        ap.as_ptr() as *const _,
3136        ipiv.as_ptr(),
3137        &anorm,
3138        rcond,
3139        work.as_mut_ptr() as *mut _,
3140        info,
3141    )
3142}
3143
3144#[inline]
3145pub unsafe fn chpcon(
3146    uplo: u8,
3147    n: i32,
3148    ap: &[c32],
3149    ipiv: &[i32],
3150    anorm: f32,
3151    rcond: &mut f32,
3152    work: &mut [c32],
3153    info: &mut i32,
3154) {
3155    ffi::chpcon_(
3156        &(uplo as c_char),
3157        &n,
3158        ap.as_ptr() as *const _,
3159        ipiv.as_ptr(),
3160        &anorm,
3161        rcond,
3162        work.as_mut_ptr() as *mut _,
3163        info,
3164    )
3165}
3166
3167#[inline]
3168pub unsafe fn zhpcon(
3169    uplo: u8,
3170    n: i32,
3171    ap: &[c64],
3172    ipiv: &[i32],
3173    anorm: f64,
3174    rcond: &mut f64,
3175    work: &mut [c64],
3176    info: &mut i32,
3177) {
3178    ffi::zhpcon_(
3179        &(uplo as c_char),
3180        &n,
3181        ap.as_ptr() as *const _,
3182        ipiv.as_ptr(),
3183        &anorm,
3184        rcond,
3185        work.as_mut_ptr() as *mut _,
3186        info,
3187    )
3188}
3189
3190#[inline]
3191pub unsafe fn strcon(
3192    norm: u8,
3193    uplo: u8,
3194    diag: u8,
3195    n: i32,
3196    a: &[f32],
3197    lda: i32,
3198    rcond: &mut f32,
3199    work: &mut [f32],
3200    iwork: &mut [i32],
3201    info: &mut i32,
3202) {
3203    ffi::strcon_(
3204        &(norm as c_char),
3205        &(uplo as c_char),
3206        &(diag as c_char),
3207        &n,
3208        a.as_ptr(),
3209        &lda,
3210        rcond,
3211        work.as_mut_ptr(),
3212        iwork.as_mut_ptr(),
3213        info,
3214    )
3215}
3216
3217#[inline]
3218pub unsafe fn dtrcon(
3219    norm: u8,
3220    uplo: u8,
3221    diag: u8,
3222    n: i32,
3223    a: &[f64],
3224    lda: i32,
3225    rcond: &mut f64,
3226    work: &mut [f64],
3227    iwork: &mut [i32],
3228    info: &mut i32,
3229) {
3230    ffi::dtrcon_(
3231        &(norm as c_char),
3232        &(uplo as c_char),
3233        &(diag as c_char),
3234        &n,
3235        a.as_ptr(),
3236        &lda,
3237        rcond,
3238        work.as_mut_ptr(),
3239        iwork.as_mut_ptr(),
3240        info,
3241    )
3242}
3243
3244#[inline]
3245pub unsafe fn ctrcon(
3246    norm: u8,
3247    uplo: u8,
3248    diag: u8,
3249    n: i32,
3250    a: &[c32],
3251    lda: i32,
3252    rcond: &mut f32,
3253    work: &mut [c32],
3254    rwork: &mut [f32],
3255    info: &mut i32,
3256) {
3257    ffi::ctrcon_(
3258        &(norm as c_char),
3259        &(uplo as c_char),
3260        &(diag as c_char),
3261        &n,
3262        a.as_ptr() as *const _,
3263        &lda,
3264        rcond,
3265        work.as_mut_ptr() as *mut _,
3266        rwork.as_mut_ptr(),
3267        info,
3268    )
3269}
3270
3271#[inline]
3272pub unsafe fn ztrcon(
3273    norm: u8,
3274    uplo: u8,
3275    diag: u8,
3276    n: i32,
3277    a: &[c64],
3278    lda: i32,
3279    rcond: &mut f64,
3280    work: &mut [c64],
3281    rwork: &mut [f64],
3282    info: &mut i32,
3283) {
3284    ffi::ztrcon_(
3285        &(norm as c_char),
3286        &(uplo as c_char),
3287        &(diag as c_char),
3288        &n,
3289        a.as_ptr() as *const _,
3290        &lda,
3291        rcond,
3292        work.as_mut_ptr() as *mut _,
3293        rwork.as_mut_ptr(),
3294        info,
3295    )
3296}
3297
3298#[inline]
3299pub unsafe fn stpcon(
3300    norm: u8,
3301    uplo: u8,
3302    diag: u8,
3303    n: i32,
3304    ap: &[f32],
3305    rcond: &mut f32,
3306    work: &mut [f32],
3307    iwork: &mut [i32],
3308    info: &mut i32,
3309) {
3310    ffi::stpcon_(
3311        &(norm as c_char),
3312        &(uplo as c_char),
3313        &(diag as c_char),
3314        &n,
3315        ap.as_ptr(),
3316        rcond,
3317        work.as_mut_ptr(),
3318        iwork.as_mut_ptr(),
3319        info,
3320    )
3321}
3322
3323#[inline]
3324pub unsafe fn dtpcon(
3325    norm: u8,
3326    uplo: u8,
3327    diag: u8,
3328    n: i32,
3329    ap: &[f64],
3330    rcond: &mut f64,
3331    work: &mut [f64],
3332    iwork: &mut [i32],
3333    info: &mut i32,
3334) {
3335    ffi::dtpcon_(
3336        &(norm as c_char),
3337        &(uplo as c_char),
3338        &(diag as c_char),
3339        &n,
3340        ap.as_ptr(),
3341        rcond,
3342        work.as_mut_ptr(),
3343        iwork.as_mut_ptr(),
3344        info,
3345    )
3346}
3347
3348#[inline]
3349pub unsafe fn ctpcon(
3350    norm: u8,
3351    uplo: u8,
3352    diag: u8,
3353    n: i32,
3354    ap: &[c32],
3355    rcond: &mut f32,
3356    work: &mut [c32],
3357    rwork: &mut [f32],
3358    info: &mut i32,
3359) {
3360    ffi::ctpcon_(
3361        &(norm as c_char),
3362        &(uplo as c_char),
3363        &(diag as c_char),
3364        &n,
3365        ap.as_ptr() as *const _,
3366        rcond,
3367        work.as_mut_ptr() as *mut _,
3368        rwork.as_mut_ptr(),
3369        info,
3370    )
3371}
3372
3373#[inline]
3374pub unsafe fn ztpcon(
3375    norm: u8,
3376    uplo: u8,
3377    diag: u8,
3378    n: i32,
3379    ap: &[c64],
3380    rcond: &mut f64,
3381    work: &mut [c64],
3382    rwork: &mut [f64],
3383    info: &mut i32,
3384) {
3385    ffi::ztpcon_(
3386        &(norm as c_char),
3387        &(uplo as c_char),
3388        &(diag as c_char),
3389        &n,
3390        ap.as_ptr() as *const _,
3391        rcond,
3392        work.as_mut_ptr() as *mut _,
3393        rwork.as_mut_ptr(),
3394        info,
3395    )
3396}
3397
3398#[inline]
3399pub unsafe fn stbcon(
3400    norm: u8,
3401    uplo: u8,
3402    diag: u8,
3403    n: i32,
3404    kd: i32,
3405    ab: &[f32],
3406    ldab: i32,
3407    rcond: &mut f32,
3408    work: &mut [f32],
3409    iwork: &mut [i32],
3410    info: &mut i32,
3411) {
3412    ffi::stbcon_(
3413        &(norm as c_char),
3414        &(uplo as c_char),
3415        &(diag as c_char),
3416        &n,
3417        &kd,
3418        ab.as_ptr(),
3419        &ldab,
3420        rcond,
3421        work.as_mut_ptr(),
3422        iwork.as_mut_ptr(),
3423        info,
3424    )
3425}
3426
3427#[inline]
3428pub unsafe fn dtbcon(
3429    norm: u8,
3430    uplo: u8,
3431    diag: u8,
3432    n: i32,
3433    kd: i32,
3434    ab: &[f64],
3435    ldab: i32,
3436    rcond: &mut f64,
3437    work: &mut [f64],
3438    iwork: &mut [i32],
3439    info: &mut i32,
3440) {
3441    ffi::dtbcon_(
3442        &(norm as c_char),
3443        &(uplo as c_char),
3444        &(diag as c_char),
3445        &n,
3446        &kd,
3447        ab.as_ptr(),
3448        &ldab,
3449        rcond,
3450        work.as_mut_ptr(),
3451        iwork.as_mut_ptr(),
3452        info,
3453    )
3454}
3455
3456#[inline]
3457pub unsafe fn ctbcon(
3458    norm: u8,
3459    uplo: u8,
3460    diag: u8,
3461    n: i32,
3462    kd: i32,
3463    ab: &[c32],
3464    ldab: i32,
3465    rcond: &mut f32,
3466    work: &mut [c32],
3467    rwork: &mut [f32],
3468    info: &mut i32,
3469) {
3470    ffi::ctbcon_(
3471        &(norm as c_char),
3472        &(uplo as c_char),
3473        &(diag as c_char),
3474        &n,
3475        &kd,
3476        ab.as_ptr() as *const _,
3477        &ldab,
3478        rcond,
3479        work.as_mut_ptr() as *mut _,
3480        rwork.as_mut_ptr(),
3481        info,
3482    )
3483}
3484
3485#[inline]
3486pub unsafe fn ztbcon(
3487    norm: u8,
3488    uplo: u8,
3489    diag: u8,
3490    n: i32,
3491    kd: i32,
3492    ab: &[c64],
3493    ldab: i32,
3494    rcond: &mut f64,
3495    work: &mut [c64],
3496    rwork: &mut [f64],
3497    info: &mut i32,
3498) {
3499    ffi::ztbcon_(
3500        &(norm as c_char),
3501        &(uplo as c_char),
3502        &(diag as c_char),
3503        &n,
3504        &kd,
3505        ab.as_ptr() as *const _,
3506        &ldab,
3507        rcond,
3508        work.as_mut_ptr() as *mut _,
3509        rwork.as_mut_ptr(),
3510        info,
3511    )
3512}
3513
3514#[inline]
3515pub unsafe fn sgerfs(
3516    trans: u8,
3517    n: i32,
3518    nrhs: i32,
3519    a: &[f32],
3520    lda: i32,
3521    af: &[f32],
3522    ldaf: i32,
3523    ipiv: &[i32],
3524    b: &[f32],
3525    ldb: i32,
3526    x: &mut [f32],
3527    ldx: i32,
3528    ferr: &mut [f32],
3529    berr: &mut [f32],
3530    work: &mut [f32],
3531    iwork: &mut [i32],
3532    info: &mut i32,
3533) {
3534    ffi::sgerfs_(
3535        &(trans as c_char),
3536        &n,
3537        &nrhs,
3538        a.as_ptr(),
3539        &lda,
3540        af.as_ptr(),
3541        &ldaf,
3542        ipiv.as_ptr(),
3543        b.as_ptr(),
3544        &ldb,
3545        x.as_mut_ptr(),
3546        &ldx,
3547        ferr.as_mut_ptr(),
3548        berr.as_mut_ptr(),
3549        work.as_mut_ptr(),
3550        iwork.as_mut_ptr(),
3551        info,
3552    )
3553}
3554
3555#[inline]
3556pub unsafe fn dgerfs(
3557    trans: u8,
3558    n: i32,
3559    nrhs: i32,
3560    a: &[f64],
3561    lda: i32,
3562    af: &[f64],
3563    ldaf: i32,
3564    ipiv: &[i32],
3565    b: &[f64],
3566    ldb: i32,
3567    x: &mut [f64],
3568    ldx: i32,
3569    ferr: &mut [f64],
3570    berr: &mut [f64],
3571    work: &mut [f64],
3572    iwork: &mut [i32],
3573    info: &mut i32,
3574) {
3575    ffi::dgerfs_(
3576        &(trans as c_char),
3577        &n,
3578        &nrhs,
3579        a.as_ptr(),
3580        &lda,
3581        af.as_ptr(),
3582        &ldaf,
3583        ipiv.as_ptr(),
3584        b.as_ptr(),
3585        &ldb,
3586        x.as_mut_ptr(),
3587        &ldx,
3588        ferr.as_mut_ptr(),
3589        berr.as_mut_ptr(),
3590        work.as_mut_ptr(),
3591        iwork.as_mut_ptr(),
3592        info,
3593    )
3594}
3595
3596#[inline]
3597pub unsafe fn cgerfs(
3598    trans: u8,
3599    n: i32,
3600    nrhs: i32,
3601    a: &[c32],
3602    lda: i32,
3603    af: &[c32],
3604    ldaf: i32,
3605    ipiv: &[i32],
3606    b: &[c32],
3607    ldb: i32,
3608    x: &mut [c32],
3609    ldx: i32,
3610    ferr: &mut [f32],
3611    berr: &mut [f32],
3612    work: &mut [c32],
3613    rwork: &mut [f32],
3614    info: &mut i32,
3615) {
3616    ffi::cgerfs_(
3617        &(trans as c_char),
3618        &n,
3619        &nrhs,
3620        a.as_ptr() as *const _,
3621        &lda,
3622        af.as_ptr() as *const _,
3623        &ldaf,
3624        ipiv.as_ptr(),
3625        b.as_ptr() as *const _,
3626        &ldb,
3627        x.as_mut_ptr() as *mut _,
3628        &ldx,
3629        ferr.as_mut_ptr(),
3630        berr.as_mut_ptr(),
3631        work.as_mut_ptr() as *mut _,
3632        rwork.as_mut_ptr(),
3633        info,
3634    )
3635}
3636
3637#[inline]
3638pub unsafe fn zgerfs(
3639    trans: u8,
3640    n: i32,
3641    nrhs: i32,
3642    a: &[c64],
3643    lda: i32,
3644    af: &[c64],
3645    ldaf: i32,
3646    ipiv: &[i32],
3647    b: &[c64],
3648    ldb: i32,
3649    x: &mut [c64],
3650    ldx: i32,
3651    ferr: &mut [f64],
3652    berr: &mut [f64],
3653    work: &mut [c64],
3654    rwork: &mut [f64],
3655    info: &mut i32,
3656) {
3657    ffi::zgerfs_(
3658        &(trans as c_char),
3659        &n,
3660        &nrhs,
3661        a.as_ptr() as *const _,
3662        &lda,
3663        af.as_ptr() as *const _,
3664        &ldaf,
3665        ipiv.as_ptr(),
3666        b.as_ptr() as *const _,
3667        &ldb,
3668        x.as_mut_ptr() as *mut _,
3669        &ldx,
3670        ferr.as_mut_ptr(),
3671        berr.as_mut_ptr(),
3672        work.as_mut_ptr() as *mut _,
3673        rwork.as_mut_ptr(),
3674        info,
3675    )
3676}
3677
3678#[inline]
3679pub unsafe fn dgerfsx(
3680    trans: u8,
3681    equed: u8,
3682    n: i32,
3683    nrhs: i32,
3684    a: &[f64],
3685    lda: i32,
3686    af: &[f64],
3687    ldaf: i32,
3688    ipiv: &[i32],
3689    r: &[f64],
3690    c: &[f64],
3691    b: &[f64],
3692    ldb: i32,
3693    x: &mut [f64],
3694    ldx: i32,
3695    rcond: &mut f64,
3696    berr: &mut [f64],
3697    n_err_bnds: i32,
3698    err_bnds_norm: &mut [f64],
3699    err_bnds_comp: &mut [f64],
3700    nparams: &[i32],
3701    params: &mut [f64],
3702    work: &mut [f64],
3703    iwork: &mut [i32],
3704    info: &mut i32,
3705) {
3706    ffi::dgerfsx_(
3707        &(trans as c_char),
3708        &(equed as c_char),
3709        &n,
3710        &nrhs,
3711        a.as_ptr(),
3712        &lda,
3713        af.as_ptr(),
3714        &ldaf,
3715        ipiv.as_ptr(),
3716        r.as_ptr(),
3717        c.as_ptr(),
3718        b.as_ptr(),
3719        &ldb,
3720        x.as_mut_ptr(),
3721        &ldx,
3722        rcond,
3723        berr.as_mut_ptr(),
3724        &n_err_bnds,
3725        err_bnds_norm.as_mut_ptr(),
3726        err_bnds_comp.as_mut_ptr(),
3727        nparams.as_ptr(),
3728        params.as_mut_ptr(),
3729        work.as_mut_ptr(),
3730        iwork.as_mut_ptr(),
3731        info,
3732    )
3733}
3734
3735#[inline]
3736pub unsafe fn sgerfsx(
3737    trans: u8,
3738    equed: u8,
3739    n: i32,
3740    nrhs: i32,
3741    a: &[f32],
3742    lda: i32,
3743    af: &[f32],
3744    ldaf: i32,
3745    ipiv: &[i32],
3746    r: &[f32],
3747    c: &[f32],
3748    b: &[f32],
3749    ldb: i32,
3750    x: &mut [f32],
3751    ldx: i32,
3752    rcond: &mut f32,
3753    berr: &mut [f32],
3754    n_err_bnds: i32,
3755    err_bnds_norm: &mut [f32],
3756    err_bnds_comp: &mut [f32],
3757    nparams: &[i32],
3758    params: &mut [f32],
3759    work: &mut [f32],
3760    iwork: &mut [i32],
3761    info: &mut i32,
3762) {
3763    ffi::sgerfsx_(
3764        &(trans as c_char),
3765        &(equed as c_char),
3766        &n,
3767        &nrhs,
3768        a.as_ptr(),
3769        &lda,
3770        af.as_ptr(),
3771        &ldaf,
3772        ipiv.as_ptr(),
3773        r.as_ptr(),
3774        c.as_ptr(),
3775        b.as_ptr(),
3776        &ldb,
3777        x.as_mut_ptr(),
3778        &ldx,
3779        rcond,
3780        berr.as_mut_ptr(),
3781        &n_err_bnds,
3782        err_bnds_norm.as_mut_ptr(),
3783        err_bnds_comp.as_mut_ptr(),
3784        nparams.as_ptr(),
3785        params.as_mut_ptr(),
3786        work.as_mut_ptr(),
3787        iwork.as_mut_ptr(),
3788        info,
3789    )
3790}
3791
3792#[inline]
3793pub unsafe fn zgerfsx(
3794    trans: u8,
3795    equed: u8,
3796    n: i32,
3797    nrhs: i32,
3798    a: &[c64],
3799    lda: i32,
3800    af: &[c64],
3801    ldaf: i32,
3802    ipiv: &[i32],
3803    r: &[f64],
3804    c: &[f64],
3805    b: &[c64],
3806    ldb: i32,
3807    x: &mut [c64],
3808    ldx: i32,
3809    rcond: &mut f64,
3810    berr: &mut [f64],
3811    n_err_bnds: i32,
3812    err_bnds_norm: &mut [f64],
3813    err_bnds_comp: &mut [f64],
3814    nparams: &[i32],
3815    params: &mut [f64],
3816    work: &mut [c64],
3817    rwork: &mut [f64],
3818    info: &mut i32,
3819) {
3820    ffi::zgerfsx_(
3821        &(trans as c_char),
3822        &(equed as c_char),
3823        &n,
3824        &nrhs,
3825        a.as_ptr() as *const _,
3826        &lda,
3827        af.as_ptr() as *const _,
3828        &ldaf,
3829        ipiv.as_ptr(),
3830        r.as_ptr(),
3831        c.as_ptr(),
3832        b.as_ptr() as *const _,
3833        &ldb,
3834        x.as_mut_ptr() as *mut _,
3835        &ldx,
3836        rcond,
3837        berr.as_mut_ptr(),
3838        &n_err_bnds,
3839        err_bnds_norm.as_mut_ptr(),
3840        err_bnds_comp.as_mut_ptr(),
3841        nparams.as_ptr(),
3842        params.as_mut_ptr(),
3843        work.as_mut_ptr() as *mut _,
3844        rwork.as_mut_ptr(),
3845        info,
3846    )
3847}
3848
3849#[inline]
3850pub unsafe fn cgerfsx(
3851    trans: u8,
3852    equed: u8,
3853    n: i32,
3854    nrhs: i32,
3855    a: &[c32],
3856    lda: i32,
3857    af: &[c32],
3858    ldaf: i32,
3859    ipiv: &[i32],
3860    r: &[f32],
3861    c: &[f32],
3862    b: &[c32],
3863    ldb: i32,
3864    x: &mut [c32],
3865    ldx: i32,
3866    rcond: &mut f32,
3867    berr: &mut [f32],
3868    n_err_bnds: i32,
3869    err_bnds_norm: &mut [f32],
3870    err_bnds_comp: &mut [f32],
3871    nparams: &[i32],
3872    params: &mut [f32],
3873    work: &mut [c32],
3874    rwork: &mut [f32],
3875    info: &mut i32,
3876) {
3877    ffi::cgerfsx_(
3878        &(trans as c_char),
3879        &(equed as c_char),
3880        &n,
3881        &nrhs,
3882        a.as_ptr() as *const _,
3883        &lda,
3884        af.as_ptr() as *const _,
3885        &ldaf,
3886        ipiv.as_ptr(),
3887        r.as_ptr(),
3888        c.as_ptr(),
3889        b.as_ptr() as *const _,
3890        &ldb,
3891        x.as_mut_ptr() as *mut _,
3892        &ldx,
3893        rcond,
3894        berr.as_mut_ptr(),
3895        &n_err_bnds,
3896        err_bnds_norm.as_mut_ptr(),
3897        err_bnds_comp.as_mut_ptr(),
3898        nparams.as_ptr(),
3899        params.as_mut_ptr(),
3900        work.as_mut_ptr() as *mut _,
3901        rwork.as_mut_ptr(),
3902        info,
3903    )
3904}
3905
3906#[inline]
3907pub unsafe fn sgbrfs(
3908    trans: u8,
3909    n: i32,
3910    kl: i32,
3911    ku: i32,
3912    nrhs: i32,
3913    ab: &[f32],
3914    ldab: i32,
3915    afb: &[f32],
3916    ldafb: i32,
3917    ipiv: &[i32],
3918    b: &[f32],
3919    ldb: i32,
3920    x: &mut [f32],
3921    ldx: i32,
3922    ferr: &mut [f32],
3923    berr: &mut [f32],
3924    work: &mut [f32],
3925    iwork: &mut [i32],
3926    info: &mut i32,
3927) {
3928    ffi::sgbrfs_(
3929        &(trans as c_char),
3930        &n,
3931        &kl,
3932        &ku,
3933        &nrhs,
3934        ab.as_ptr(),
3935        &ldab,
3936        afb.as_ptr(),
3937        &ldafb,
3938        ipiv.as_ptr(),
3939        b.as_ptr(),
3940        &ldb,
3941        x.as_mut_ptr(),
3942        &ldx,
3943        ferr.as_mut_ptr(),
3944        berr.as_mut_ptr(),
3945        work.as_mut_ptr(),
3946        iwork.as_mut_ptr(),
3947        info,
3948    )
3949}
3950
3951#[inline]
3952pub unsafe fn dgbrfs(
3953    trans: u8,
3954    n: i32,
3955    kl: i32,
3956    ku: i32,
3957    nrhs: i32,
3958    ab: &[f64],
3959    ldab: i32,
3960    afb: &[f64],
3961    ldafb: i32,
3962    ipiv: &[i32],
3963    b: &[f64],
3964    ldb: i32,
3965    x: &mut [f64],
3966    ldx: i32,
3967    ferr: &mut [f64],
3968    berr: &mut [f64],
3969    work: &mut [f64],
3970    iwork: &mut [i32],
3971    info: &mut i32,
3972) {
3973    ffi::dgbrfs_(
3974        &(trans as c_char),
3975        &n,
3976        &kl,
3977        &ku,
3978        &nrhs,
3979        ab.as_ptr(),
3980        &ldab,
3981        afb.as_ptr(),
3982        &ldafb,
3983        ipiv.as_ptr(),
3984        b.as_ptr(),
3985        &ldb,
3986        x.as_mut_ptr(),
3987        &ldx,
3988        ferr.as_mut_ptr(),
3989        berr.as_mut_ptr(),
3990        work.as_mut_ptr(),
3991        iwork.as_mut_ptr(),
3992        info,
3993    )
3994}
3995
3996#[inline]
3997pub unsafe fn cgbrfs(
3998    trans: u8,
3999    n: i32,
4000    kl: i32,
4001    ku: i32,
4002    nrhs: i32,
4003    ab: &[c32],
4004    ldab: i32,
4005    afb: &[c32],
4006    ldafb: i32,
4007    ipiv: &[i32],
4008    b: &[c32],
4009    ldb: i32,
4010    x: &mut [c32],
4011    ldx: i32,
4012    ferr: &mut [f32],
4013    berr: &mut [f32],
4014    work: &mut [c32],
4015    rwork: &mut [f32],
4016    info: &mut i32,
4017) {
4018    ffi::cgbrfs_(
4019        &(trans as c_char),
4020        &n,
4021        &kl,
4022        &ku,
4023        &nrhs,
4024        ab.as_ptr() as *const _,
4025        &ldab,
4026        afb.as_ptr() as *const _,
4027        &ldafb,
4028        ipiv.as_ptr(),
4029        b.as_ptr() as *const _,
4030        &ldb,
4031        x.as_mut_ptr() as *mut _,
4032        &ldx,
4033        ferr.as_mut_ptr(),
4034        berr.as_mut_ptr(),
4035        work.as_mut_ptr() as *mut _,
4036        rwork.as_mut_ptr(),
4037        info,
4038    )
4039}
4040
4041#[inline]
4042pub unsafe fn zgbrfs(
4043    trans: u8,
4044    n: i32,
4045    kl: i32,
4046    ku: i32,
4047    nrhs: i32,
4048    ab: &[c64],
4049    ldab: i32,
4050    afb: &[c64],
4051    ldafb: i32,
4052    ipiv: &[i32],
4053    b: &[c64],
4054    ldb: i32,
4055    x: &mut [c64],
4056    ldx: i32,
4057    ferr: &mut [f64],
4058    berr: &mut [f64],
4059    work: &mut [c64],
4060    rwork: &mut [f64],
4061    info: &mut i32,
4062) {
4063    ffi::zgbrfs_(
4064        &(trans as c_char),
4065        &n,
4066        &kl,
4067        &ku,
4068        &nrhs,
4069        ab.as_ptr() as *const _,
4070        &ldab,
4071        afb.as_ptr() as *const _,
4072        &ldafb,
4073        ipiv.as_ptr(),
4074        b.as_ptr() as *const _,
4075        &ldb,
4076        x.as_mut_ptr() as *mut _,
4077        &ldx,
4078        ferr.as_mut_ptr(),
4079        berr.as_mut_ptr(),
4080        work.as_mut_ptr() as *mut _,
4081        rwork.as_mut_ptr(),
4082        info,
4083    )
4084}
4085
4086#[inline]
4087pub unsafe fn dgbrfsx(
4088    trans: u8,
4089    equed: u8,
4090    n: i32,
4091    kl: i32,
4092    ku: i32,
4093    nrhs: i32,
4094    ab: &[f64],
4095    ldab: i32,
4096    afb: &[f64],
4097    ldafb: i32,
4098    ipiv: &[i32],
4099    r: &[f64],
4100    c: &[f64],
4101    b: &[f64],
4102    ldb: i32,
4103    x: &mut [f64],
4104    ldx: i32,
4105    rcond: &mut f64,
4106    berr: &mut [f64],
4107    n_err_bnds: i32,
4108    err_bnds_norm: &mut [f64],
4109    err_bnds_comp: &mut [f64],
4110    nparams: &[i32],
4111    params: &mut [f64],
4112    work: &mut [f64],
4113    iwork: &mut [i32],
4114    info: &mut i32,
4115) {
4116    ffi::dgbrfsx_(
4117        &(trans as c_char),
4118        &(equed as c_char),
4119        &n,
4120        &kl,
4121        &ku,
4122        &nrhs,
4123        ab.as_ptr(),
4124        &ldab,
4125        afb.as_ptr(),
4126        &ldafb,
4127        ipiv.as_ptr(),
4128        r.as_ptr(),
4129        c.as_ptr(),
4130        b.as_ptr(),
4131        &ldb,
4132        x.as_mut_ptr(),
4133        &ldx,
4134        rcond,
4135        berr.as_mut_ptr(),
4136        &n_err_bnds,
4137        err_bnds_norm.as_mut_ptr(),
4138        err_bnds_comp.as_mut_ptr(),
4139        nparams.as_ptr(),
4140        params.as_mut_ptr(),
4141        work.as_mut_ptr(),
4142        iwork.as_mut_ptr(),
4143        info,
4144    )
4145}
4146
4147#[inline]
4148pub unsafe fn sgbrfsx(
4149    trans: u8,
4150    equed: u8,
4151    n: i32,
4152    kl: i32,
4153    ku: i32,
4154    nrhs: i32,
4155    ab: &[f32],
4156    ldab: i32,
4157    afb: &[f32],
4158    ldafb: i32,
4159    ipiv: &[i32],
4160    r: &[f32],
4161    c: &[f32],
4162    b: &[f32],
4163    ldb: i32,
4164    x: &mut [f32],
4165    ldx: i32,
4166    rcond: &mut f32,
4167    berr: &mut [f32],
4168    n_err_bnds: i32,
4169    err_bnds_norm: &mut [f32],
4170    err_bnds_comp: &mut [f32],
4171    nparams: &[i32],
4172    params: &mut [f32],
4173    work: &mut [f32],
4174    iwork: &mut [i32],
4175    info: &mut i32,
4176) {
4177    ffi::sgbrfsx_(
4178        &(trans as c_char),
4179        &(equed as c_char),
4180        &n,
4181        &kl,
4182        &ku,
4183        &nrhs,
4184        ab.as_ptr(),
4185        &ldab,
4186        afb.as_ptr(),
4187        &ldafb,
4188        ipiv.as_ptr(),
4189        r.as_ptr(),
4190        c.as_ptr(),
4191        b.as_ptr(),
4192        &ldb,
4193        x.as_mut_ptr(),
4194        &ldx,
4195        rcond,
4196        berr.as_mut_ptr(),
4197        &n_err_bnds,
4198        err_bnds_norm.as_mut_ptr(),
4199        err_bnds_comp.as_mut_ptr(),
4200        nparams.as_ptr(),
4201        params.as_mut_ptr(),
4202        work.as_mut_ptr(),
4203        iwork.as_mut_ptr(),
4204        info,
4205    )
4206}
4207
4208#[inline]
4209pub unsafe fn zgbrfsx(
4210    trans: u8,
4211    equed: u8,
4212    n: i32,
4213    kl: i32,
4214    ku: i32,
4215    nrhs: i32,
4216    ab: &[c64],
4217    ldab: i32,
4218    afb: &[c64],
4219    ldafb: i32,
4220    ipiv: &[i32],
4221    r: &[f64],
4222    c: &[f64],
4223    b: &[c64],
4224    ldb: i32,
4225    x: &mut [c64],
4226    ldx: i32,
4227    rcond: &mut f64,
4228    berr: &mut [f64],
4229    n_err_bnds: i32,
4230    err_bnds_norm: &mut [f64],
4231    err_bnds_comp: &mut [f64],
4232    nparams: &[i32],
4233    params: &mut [f64],
4234    work: &mut [c64],
4235    rwork: &mut [f64],
4236    info: &mut i32,
4237) {
4238    ffi::zgbrfsx_(
4239        &(trans as c_char),
4240        &(equed as c_char),
4241        &n,
4242        &kl,
4243        &ku,
4244        &nrhs,
4245        ab.as_ptr() as *const _,
4246        &ldab,
4247        afb.as_ptr() as *const _,
4248        &ldafb,
4249        ipiv.as_ptr(),
4250        r.as_ptr(),
4251        c.as_ptr(),
4252        b.as_ptr() as *const _,
4253        &ldb,
4254        x.as_mut_ptr() as *mut _,
4255        &ldx,
4256        rcond,
4257        berr.as_mut_ptr(),
4258        &n_err_bnds,
4259        err_bnds_norm.as_mut_ptr(),
4260        err_bnds_comp.as_mut_ptr(),
4261        nparams.as_ptr(),
4262        params.as_mut_ptr(),
4263        work.as_mut_ptr() as *mut _,
4264        rwork.as_mut_ptr(),
4265        info,
4266    )
4267}
4268
4269#[inline]
4270pub unsafe fn cgbrfsx(
4271    trans: u8,
4272    equed: u8,
4273    n: i32,
4274    kl: i32,
4275    ku: i32,
4276    nrhs: i32,
4277    ab: &[c32],
4278    ldab: i32,
4279    afb: &[c32],
4280    ldafb: i32,
4281    ipiv: &[i32],
4282    r: &[f32],
4283    c: &[f32],
4284    b: &[c32],
4285    ldb: i32,
4286    x: &mut [c32],
4287    ldx: i32,
4288    rcond: &mut f32,
4289    berr: &mut [f32],
4290    n_err_bnds: i32,
4291    err_bnds_norm: &mut [f32],
4292    err_bnds_comp: &mut [f32],
4293    nparams: &[i32],
4294    params: &mut [f32],
4295    work: &mut [c32],
4296    rwork: &mut [f32],
4297    info: &mut i32,
4298) {
4299    ffi::cgbrfsx_(
4300        &(trans as c_char),
4301        &(equed as c_char),
4302        &n,
4303        &kl,
4304        &ku,
4305        &nrhs,
4306        ab.as_ptr() as *const _,
4307        &ldab,
4308        afb.as_ptr() as *const _,
4309        &ldafb,
4310        ipiv.as_ptr(),
4311        r.as_ptr(),
4312        c.as_ptr(),
4313        b.as_ptr() as *const _,
4314        &ldb,
4315        x.as_mut_ptr() as *mut _,
4316        &ldx,
4317        rcond,
4318        berr.as_mut_ptr(),
4319        &n_err_bnds,
4320        err_bnds_norm.as_mut_ptr(),
4321        err_bnds_comp.as_mut_ptr(),
4322        nparams.as_ptr(),
4323        params.as_mut_ptr(),
4324        work.as_mut_ptr() as *mut _,
4325        rwork.as_mut_ptr(),
4326        info,
4327    )
4328}
4329
4330#[inline]
4331pub unsafe fn sgtrfs(
4332    trans: u8,
4333    n: i32,
4334    nrhs: i32,
4335    dl: &[f32],
4336    d: &[f32],
4337    du: &[f32],
4338    dlf: &[f32],
4339    df: &[f32],
4340    duf: &[f32],
4341    du2: &[f32],
4342    ipiv: &[i32],
4343    b: &[f32],
4344    ldb: i32,
4345    x: &mut [f32],
4346    ldx: i32,
4347    ferr: &mut [f32],
4348    berr: &mut [f32],
4349    work: &mut [f32],
4350    iwork: &mut [i32],
4351    info: &mut i32,
4352) {
4353    ffi::sgtrfs_(
4354        &(trans as c_char),
4355        &n,
4356        &nrhs,
4357        dl.as_ptr(),
4358        d.as_ptr(),
4359        du.as_ptr(),
4360        dlf.as_ptr(),
4361        df.as_ptr(),
4362        duf.as_ptr(),
4363        du2.as_ptr(),
4364        ipiv.as_ptr(),
4365        b.as_ptr(),
4366        &ldb,
4367        x.as_mut_ptr(),
4368        &ldx,
4369        ferr.as_mut_ptr(),
4370        berr.as_mut_ptr(),
4371        work.as_mut_ptr(),
4372        iwork.as_mut_ptr(),
4373        info,
4374    )
4375}
4376
4377#[inline]
4378pub unsafe fn dgtrfs(
4379    trans: u8,
4380    n: i32,
4381    nrhs: i32,
4382    dl: &[f64],
4383    d: &[f64],
4384    du: &[f64],
4385    dlf: &[f64],
4386    df: &[f64],
4387    duf: &[f64],
4388    du2: &[f64],
4389    ipiv: &[i32],
4390    b: &[f64],
4391    ldb: i32,
4392    x: &mut [f64],
4393    ldx: i32,
4394    ferr: &mut [f64],
4395    berr: &mut [f64],
4396    work: &mut [f64],
4397    iwork: &mut [i32],
4398    info: &mut i32,
4399) {
4400    ffi::dgtrfs_(
4401        &(trans as c_char),
4402        &n,
4403        &nrhs,
4404        dl.as_ptr(),
4405        d.as_ptr(),
4406        du.as_ptr(),
4407        dlf.as_ptr(),
4408        df.as_ptr(),
4409        duf.as_ptr(),
4410        du2.as_ptr(),
4411        ipiv.as_ptr(),
4412        b.as_ptr(),
4413        &ldb,
4414        x.as_mut_ptr(),
4415        &ldx,
4416        ferr.as_mut_ptr(),
4417        berr.as_mut_ptr(),
4418        work.as_mut_ptr(),
4419        iwork.as_mut_ptr(),
4420        info,
4421    )
4422}
4423
4424#[inline]
4425pub unsafe fn cgtrfs(
4426    trans: u8,
4427    n: i32,
4428    nrhs: i32,
4429    dl: &[c32],
4430    d: &[c32],
4431    du: &[c32],
4432    dlf: &[c32],
4433    df: &[c32],
4434    duf: &[c32],
4435    du2: &[c32],
4436    ipiv: &[i32],
4437    b: &[c32],
4438    ldb: i32,
4439    x: &mut [c32],
4440    ldx: i32,
4441    ferr: &mut [f32],
4442    berr: &mut [f32],
4443    work: &mut [c32],
4444    rwork: &mut [f32],
4445    info: &mut i32,
4446) {
4447    ffi::cgtrfs_(
4448        &(trans as c_char),
4449        &n,
4450        &nrhs,
4451        dl.as_ptr() as *const _,
4452        d.as_ptr() as *const _,
4453        du.as_ptr() as *const _,
4454        dlf.as_ptr() as *const _,
4455        df.as_ptr() as *const _,
4456        duf.as_ptr() as *const _,
4457        du2.as_ptr() as *const _,
4458        ipiv.as_ptr(),
4459        b.as_ptr() as *const _,
4460        &ldb,
4461        x.as_mut_ptr() as *mut _,
4462        &ldx,
4463        ferr.as_mut_ptr(),
4464        berr.as_mut_ptr(),
4465        work.as_mut_ptr() as *mut _,
4466        rwork.as_mut_ptr(),
4467        info,
4468    )
4469}
4470
4471#[inline]
4472pub unsafe fn zgtrfs(
4473    trans: u8,
4474    n: i32,
4475    nrhs: i32,
4476    dl: &[c64],
4477    d: &[c64],
4478    du: &[c64],
4479    dlf: &[c64],
4480    df: &[c64],
4481    duf: &[c64],
4482    du2: &[c64],
4483    ipiv: &[i32],
4484    b: &[c64],
4485    ldb: i32,
4486    x: &mut [c64],
4487    ldx: i32,
4488    ferr: &mut [f64],
4489    berr: &mut [f64],
4490    work: &mut [c64],
4491    rwork: &mut [f64],
4492    info: &mut i32,
4493) {
4494    ffi::zgtrfs_(
4495        &(trans as c_char),
4496        &n,
4497        &nrhs,
4498        dl.as_ptr() as *const _,
4499        d.as_ptr() as *const _,
4500        du.as_ptr() as *const _,
4501        dlf.as_ptr() as *const _,
4502        df.as_ptr() as *const _,
4503        duf.as_ptr() as *const _,
4504        du2.as_ptr() as *const _,
4505        ipiv.as_ptr(),
4506        b.as_ptr() as *const _,
4507        &ldb,
4508        x.as_mut_ptr() as *mut _,
4509        &ldx,
4510        ferr.as_mut_ptr(),
4511        berr.as_mut_ptr(),
4512        work.as_mut_ptr() as *mut _,
4513        rwork.as_mut_ptr(),
4514        info,
4515    )
4516}
4517
4518#[inline]
4519pub unsafe fn sporfs(
4520    uplo: u8,
4521    n: i32,
4522    nrhs: i32,
4523    a: &[f32],
4524    lda: i32,
4525    af: &[f32],
4526    ldaf: i32,
4527    b: &[f32],
4528    ldb: i32,
4529    x: &mut [f32],
4530    ldx: i32,
4531    ferr: &mut [f32],
4532    berr: &mut [f32],
4533    work: &mut [f32],
4534    iwork: &mut [i32],
4535    info: &mut i32,
4536) {
4537    ffi::sporfs_(
4538        &(uplo as c_char),
4539        &n,
4540        &nrhs,
4541        a.as_ptr(),
4542        &lda,
4543        af.as_ptr(),
4544        &ldaf,
4545        b.as_ptr(),
4546        &ldb,
4547        x.as_mut_ptr(),
4548        &ldx,
4549        ferr.as_mut_ptr(),
4550        berr.as_mut_ptr(),
4551        work.as_mut_ptr(),
4552        iwork.as_mut_ptr(),
4553        info,
4554    )
4555}
4556
4557#[inline]
4558pub unsafe fn dporfs(
4559    uplo: u8,
4560    n: i32,
4561    nrhs: i32,
4562    a: &[f64],
4563    lda: i32,
4564    af: &[f64],
4565    ldaf: i32,
4566    b: &[f64],
4567    ldb: i32,
4568    x: &mut [f64],
4569    ldx: i32,
4570    ferr: &mut [f64],
4571    berr: &mut [f64],
4572    work: &mut [f64],
4573    iwork: &mut [i32],
4574    info: &mut i32,
4575) {
4576    ffi::dporfs_(
4577        &(uplo as c_char),
4578        &n,
4579        &nrhs,
4580        a.as_ptr(),
4581        &lda,
4582        af.as_ptr(),
4583        &ldaf,
4584        b.as_ptr(),
4585        &ldb,
4586        x.as_mut_ptr(),
4587        &ldx,
4588        ferr.as_mut_ptr(),
4589        berr.as_mut_ptr(),
4590        work.as_mut_ptr(),
4591        iwork.as_mut_ptr(),
4592        info,
4593    )
4594}
4595
4596#[inline]
4597pub unsafe fn cporfs(
4598    uplo: u8,
4599    n: i32,
4600    nrhs: i32,
4601    a: &[c32],
4602    lda: i32,
4603    af: &[c32],
4604    ldaf: i32,
4605    b: &[c32],
4606    ldb: i32,
4607    x: &mut [c32],
4608    ldx: i32,
4609    ferr: &mut [f32],
4610    berr: &mut [f32],
4611    work: &mut [c32],
4612    rwork: &mut [f32],
4613    info: &mut i32,
4614) {
4615    ffi::cporfs_(
4616        &(uplo as c_char),
4617        &n,
4618        &nrhs,
4619        a.as_ptr() as *const _,
4620        &lda,
4621        af.as_ptr() as *const _,
4622        &ldaf,
4623        b.as_ptr() as *const _,
4624        &ldb,
4625        x.as_mut_ptr() as *mut _,
4626        &ldx,
4627        ferr.as_mut_ptr(),
4628        berr.as_mut_ptr(),
4629        work.as_mut_ptr() as *mut _,
4630        rwork.as_mut_ptr(),
4631        info,
4632    )
4633}
4634
4635#[inline]
4636pub unsafe fn zporfs(
4637    uplo: u8,
4638    n: i32,
4639    nrhs: i32,
4640    a: &[c64],
4641    lda: i32,
4642    af: &[c64],
4643    ldaf: i32,
4644    b: &[c64],
4645    ldb: i32,
4646    x: &mut [c64],
4647    ldx: i32,
4648    ferr: &mut [f64],
4649    berr: &mut [f64],
4650    work: &mut [c64],
4651    rwork: &mut [f64],
4652    info: &mut i32,
4653) {
4654    ffi::zporfs_(
4655        &(uplo as c_char),
4656        &n,
4657        &nrhs,
4658        a.as_ptr() as *const _,
4659        &lda,
4660        af.as_ptr() as *const _,
4661        &ldaf,
4662        b.as_ptr() as *const _,
4663        &ldb,
4664        x.as_mut_ptr() as *mut _,
4665        &ldx,
4666        ferr.as_mut_ptr(),
4667        berr.as_mut_ptr(),
4668        work.as_mut_ptr() as *mut _,
4669        rwork.as_mut_ptr(),
4670        info,
4671    )
4672}
4673
4674#[inline]
4675pub unsafe fn dporfsx(
4676    uplo: u8,
4677    equed: u8,
4678    n: i32,
4679    nrhs: i32,
4680    a: &[f64],
4681    lda: i32,
4682    af: &[f64],
4683    ldaf: i32,
4684    s: &[f64],
4685    b: &[f64],
4686    ldb: i32,
4687    x: &mut [f64],
4688    ldx: i32,
4689    rcond: &mut f64,
4690    berr: &mut [f64],
4691    n_err_bnds: i32,
4692    err_bnds_norm: &mut [f64],
4693    err_bnds_comp: &mut [f64],
4694    nparams: &[i32],
4695    params: &mut [f64],
4696    work: &mut [f64],
4697    iwork: &mut [i32],
4698    info: &mut i32,
4699) {
4700    ffi::dporfsx_(
4701        &(uplo as c_char),
4702        &(equed as c_char),
4703        &n,
4704        &nrhs,
4705        a.as_ptr(),
4706        &lda,
4707        af.as_ptr(),
4708        &ldaf,
4709        s.as_ptr(),
4710        b.as_ptr(),
4711        &ldb,
4712        x.as_mut_ptr(),
4713        &ldx,
4714        rcond,
4715        berr.as_mut_ptr(),
4716        &n_err_bnds,
4717        err_bnds_norm.as_mut_ptr(),
4718        err_bnds_comp.as_mut_ptr(),
4719        nparams.as_ptr(),
4720        params.as_mut_ptr(),
4721        work.as_mut_ptr(),
4722        iwork.as_mut_ptr(),
4723        info,
4724    )
4725}
4726
4727#[inline]
4728pub unsafe fn sporfsx(
4729    uplo: u8,
4730    equed: u8,
4731    n: i32,
4732    nrhs: i32,
4733    a: &[f32],
4734    lda: i32,
4735    af: &[f32],
4736    ldaf: i32,
4737    s: &[f32],
4738    b: &[f32],
4739    ldb: i32,
4740    x: &mut [f32],
4741    ldx: i32,
4742    rcond: &mut f32,
4743    berr: &mut [f32],
4744    n_err_bnds: i32,
4745    err_bnds_norm: &mut [f32],
4746    err_bnds_comp: &mut [f32],
4747    nparams: &[i32],
4748    params: &mut [f32],
4749    work: &mut [f32],
4750    iwork: &mut [i32],
4751    info: &mut i32,
4752) {
4753    ffi::sporfsx_(
4754        &(uplo as c_char),
4755        &(equed as c_char),
4756        &n,
4757        &nrhs,
4758        a.as_ptr(),
4759        &lda,
4760        af.as_ptr(),
4761        &ldaf,
4762        s.as_ptr(),
4763        b.as_ptr(),
4764        &ldb,
4765        x.as_mut_ptr(),
4766        &ldx,
4767        rcond,
4768        berr.as_mut_ptr(),
4769        &n_err_bnds,
4770        err_bnds_norm.as_mut_ptr(),
4771        err_bnds_comp.as_mut_ptr(),
4772        nparams.as_ptr(),
4773        params.as_mut_ptr(),
4774        work.as_mut_ptr(),
4775        iwork.as_mut_ptr(),
4776        info,
4777    )
4778}
4779
4780#[inline]
4781pub unsafe fn zporfsx(
4782    uplo: u8,
4783    equed: u8,
4784    n: i32,
4785    nrhs: i32,
4786    a: &[c64],
4787    lda: i32,
4788    af: &[c64],
4789    ldaf: i32,
4790    s: &[f64],
4791    b: &[c64],
4792    ldb: i32,
4793    x: &mut [c64],
4794    ldx: i32,
4795    rcond: &mut f64,
4796    berr: &mut [f64],
4797    n_err_bnds: i32,
4798    err_bnds_norm: &mut [f64],
4799    err_bnds_comp: &mut [f64],
4800    nparams: &[i32],
4801    params: &mut [f64],
4802    work: &mut [c64],
4803    rwork: &mut [f64],
4804    info: &mut i32,
4805) {
4806    ffi::zporfsx_(
4807        &(uplo as c_char),
4808        &(equed as c_char),
4809        &n,
4810        &nrhs,
4811        a.as_ptr() as *const _,
4812        &lda,
4813        af.as_ptr() as *const _,
4814        &ldaf,
4815        s.as_ptr(),
4816        b.as_ptr() as *const _,
4817        &ldb,
4818        x.as_mut_ptr() as *mut _,
4819        &ldx,
4820        rcond,
4821        berr.as_mut_ptr(),
4822        &n_err_bnds,
4823        err_bnds_norm.as_mut_ptr(),
4824        err_bnds_comp.as_mut_ptr(),
4825        nparams.as_ptr(),
4826        params.as_mut_ptr(),
4827        work.as_mut_ptr() as *mut _,
4828        rwork.as_mut_ptr(),
4829        info,
4830    )
4831}
4832
4833#[inline]
4834pub unsafe fn cporfsx(
4835    uplo: u8,
4836    equed: u8,
4837    n: i32,
4838    nrhs: i32,
4839    a: &[c32],
4840    lda: i32,
4841    af: &[c32],
4842    ldaf: i32,
4843    s: &[f32],
4844    b: &[c32],
4845    ldb: i32,
4846    x: &mut [c32],
4847    ldx: i32,
4848    rcond: &mut f32,
4849    berr: &mut [f32],
4850    n_err_bnds: i32,
4851    err_bnds_norm: &mut [f32],
4852    err_bnds_comp: &mut [f32],
4853    nparams: &[i32],
4854    params: &mut [f32],
4855    work: &mut [c32],
4856    rwork: &mut [f32],
4857    info: &mut i32,
4858) {
4859    ffi::cporfsx_(
4860        &(uplo as c_char),
4861        &(equed as c_char),
4862        &n,
4863        &nrhs,
4864        a.as_ptr() as *const _,
4865        &lda,
4866        af.as_ptr() as *const _,
4867        &ldaf,
4868        s.as_ptr(),
4869        b.as_ptr() as *const _,
4870        &ldb,
4871        x.as_mut_ptr() as *mut _,
4872        &ldx,
4873        rcond,
4874        berr.as_mut_ptr(),
4875        &n_err_bnds,
4876        err_bnds_norm.as_mut_ptr(),
4877        err_bnds_comp.as_mut_ptr(),
4878        nparams.as_ptr(),
4879        params.as_mut_ptr(),
4880        work.as_mut_ptr() as *mut _,
4881        rwork.as_mut_ptr(),
4882        info,
4883    )
4884}
4885
4886#[inline]
4887pub unsafe fn spprfs(
4888    uplo: u8,
4889    n: i32,
4890    nrhs: i32,
4891    ap: &[f32],
4892    afp: &[f32],
4893    b: &[f32],
4894    ldb: i32,
4895    x: &mut [f32],
4896    ldx: i32,
4897    ferr: &mut [f32],
4898    berr: &mut [f32],
4899    work: &mut [f32],
4900    iwork: &mut [i32],
4901    info: &mut i32,
4902) {
4903    ffi::spprfs_(
4904        &(uplo as c_char),
4905        &n,
4906        &nrhs,
4907        ap.as_ptr(),
4908        afp.as_ptr(),
4909        b.as_ptr(),
4910        &ldb,
4911        x.as_mut_ptr(),
4912        &ldx,
4913        ferr.as_mut_ptr(),
4914        berr.as_mut_ptr(),
4915        work.as_mut_ptr(),
4916        iwork.as_mut_ptr(),
4917        info,
4918    )
4919}
4920
4921#[inline]
4922pub unsafe fn dpprfs(
4923    uplo: u8,
4924    n: i32,
4925    nrhs: i32,
4926    ap: &[f64],
4927    afp: &[f64],
4928    b: &[f64],
4929    ldb: i32,
4930    x: &mut [f64],
4931    ldx: i32,
4932    ferr: &mut [f64],
4933    berr: &mut [f64],
4934    work: &mut [f64],
4935    iwork: &mut [i32],
4936    info: &mut i32,
4937) {
4938    ffi::dpprfs_(
4939        &(uplo as c_char),
4940        &n,
4941        &nrhs,
4942        ap.as_ptr(),
4943        afp.as_ptr(),
4944        b.as_ptr(),
4945        &ldb,
4946        x.as_mut_ptr(),
4947        &ldx,
4948        ferr.as_mut_ptr(),
4949        berr.as_mut_ptr(),
4950        work.as_mut_ptr(),
4951        iwork.as_mut_ptr(),
4952        info,
4953    )
4954}
4955
4956#[inline]
4957pub unsafe fn cpprfs(
4958    uplo: u8,
4959    n: i32,
4960    nrhs: i32,
4961    ap: &[c32],
4962    afp: &[c32],
4963    b: &[c32],
4964    ldb: i32,
4965    x: &mut [c32],
4966    ldx: i32,
4967    ferr: &mut [f32],
4968    berr: &mut [f32],
4969    work: &mut [c32],
4970    rwork: &mut [f32],
4971    info: &mut i32,
4972) {
4973    ffi::cpprfs_(
4974        &(uplo as c_char),
4975        &n,
4976        &nrhs,
4977        ap.as_ptr() as *const _,
4978        afp.as_ptr() as *const _,
4979        b.as_ptr() as *const _,
4980        &ldb,
4981        x.as_mut_ptr() as *mut _,
4982        &ldx,
4983        ferr.as_mut_ptr(),
4984        berr.as_mut_ptr(),
4985        work.as_mut_ptr() as *mut _,
4986        rwork.as_mut_ptr(),
4987        info,
4988    )
4989}
4990
4991#[inline]
4992pub unsafe fn zpprfs(
4993    uplo: u8,
4994    n: i32,
4995    nrhs: i32,
4996    ap: &[c64],
4997    afp: &[c64],
4998    b: &[c64],
4999    ldb: i32,
5000    x: &mut [c64],
5001    ldx: i32,
5002    ferr: &mut [f64],
5003    berr: &mut [f64],
5004    work: &mut [c64],
5005    rwork: &mut [f64],
5006    info: &mut i32,
5007) {
5008    ffi::zpprfs_(
5009        &(uplo as c_char),
5010        &n,
5011        &nrhs,
5012        ap.as_ptr() as *const _,
5013        afp.as_ptr() as *const _,
5014        b.as_ptr() as *const _,
5015        &ldb,
5016        x.as_mut_ptr() as *mut _,
5017        &ldx,
5018        ferr.as_mut_ptr(),
5019        berr.as_mut_ptr(),
5020        work.as_mut_ptr() as *mut _,
5021        rwork.as_mut_ptr(),
5022        info,
5023    )
5024}
5025
5026#[inline]
5027pub unsafe fn spbrfs(
5028    uplo: u8,
5029    n: i32,
5030    kd: i32,
5031    nrhs: i32,
5032    ab: &[f32],
5033    ldab: i32,
5034    afb: &[f32],
5035    ldafb: i32,
5036    b: &[f32],
5037    ldb: i32,
5038    x: &mut [f32],
5039    ldx: i32,
5040    ferr: &mut [f32],
5041    berr: &mut [f32],
5042    work: &mut [f32],
5043    iwork: &mut [i32],
5044    info: &mut i32,
5045) {
5046    ffi::spbrfs_(
5047        &(uplo as c_char),
5048        &n,
5049        &kd,
5050        &nrhs,
5051        ab.as_ptr(),
5052        &ldab,
5053        afb.as_ptr(),
5054        &ldafb,
5055        b.as_ptr(),
5056        &ldb,
5057        x.as_mut_ptr(),
5058        &ldx,
5059        ferr.as_mut_ptr(),
5060        berr.as_mut_ptr(),
5061        work.as_mut_ptr(),
5062        iwork.as_mut_ptr(),
5063        info,
5064    )
5065}
5066
5067#[inline]
5068pub unsafe fn dpbrfs(
5069    uplo: u8,
5070    n: i32,
5071    kd: i32,
5072    nrhs: i32,
5073    ab: &[f64],
5074    ldab: i32,
5075    afb: &[f64],
5076    ldafb: i32,
5077    b: &[f64],
5078    ldb: i32,
5079    x: &mut [f64],
5080    ldx: i32,
5081    ferr: &mut [f64],
5082    berr: &mut [f64],
5083    work: &mut [f64],
5084    iwork: &mut [i32],
5085    info: &mut i32,
5086) {
5087    ffi::dpbrfs_(
5088        &(uplo as c_char),
5089        &n,
5090        &kd,
5091        &nrhs,
5092        ab.as_ptr(),
5093        &ldab,
5094        afb.as_ptr(),
5095        &ldafb,
5096        b.as_ptr(),
5097        &ldb,
5098        x.as_mut_ptr(),
5099        &ldx,
5100        ferr.as_mut_ptr(),
5101        berr.as_mut_ptr(),
5102        work.as_mut_ptr(),
5103        iwork.as_mut_ptr(),
5104        info,
5105    )
5106}
5107
5108#[inline]
5109pub unsafe fn cpbrfs(
5110    uplo: u8,
5111    n: i32,
5112    kd: i32,
5113    nrhs: i32,
5114    ab: &[c32],
5115    ldab: i32,
5116    afb: &[c32],
5117    ldafb: i32,
5118    b: &[c32],
5119    ldb: i32,
5120    x: &mut [c32],
5121    ldx: i32,
5122    ferr: &mut [f32],
5123    berr: &mut [f32],
5124    work: &mut [c32],
5125    rwork: &mut [f32],
5126    info: &mut i32,
5127) {
5128    ffi::cpbrfs_(
5129        &(uplo as c_char),
5130        &n,
5131        &kd,
5132        &nrhs,
5133        ab.as_ptr() as *const _,
5134        &ldab,
5135        afb.as_ptr() as *const _,
5136        &ldafb,
5137        b.as_ptr() as *const _,
5138        &ldb,
5139        x.as_mut_ptr() as *mut _,
5140        &ldx,
5141        ferr.as_mut_ptr(),
5142        berr.as_mut_ptr(),
5143        work.as_mut_ptr() as *mut _,
5144        rwork.as_mut_ptr(),
5145        info,
5146    )
5147}
5148
5149#[inline]
5150pub unsafe fn zpbrfs(
5151    uplo: u8,
5152    n: i32,
5153    kd: i32,
5154    nrhs: i32,
5155    ab: &[c64],
5156    ldab: i32,
5157    afb: &[c64],
5158    ldafb: i32,
5159    b: &[c64],
5160    ldb: i32,
5161    x: &mut [c64],
5162    ldx: i32,
5163    ferr: &mut [f64],
5164    berr: &mut [f64],
5165    work: &mut [c64],
5166    rwork: &mut [f64],
5167    info: &mut i32,
5168) {
5169    ffi::zpbrfs_(
5170        &(uplo as c_char),
5171        &n,
5172        &kd,
5173        &nrhs,
5174        ab.as_ptr() as *const _,
5175        &ldab,
5176        afb.as_ptr() as *const _,
5177        &ldafb,
5178        b.as_ptr() as *const _,
5179        &ldb,
5180        x.as_mut_ptr() as *mut _,
5181        &ldx,
5182        ferr.as_mut_ptr(),
5183        berr.as_mut_ptr(),
5184        work.as_mut_ptr() as *mut _,
5185        rwork.as_mut_ptr(),
5186        info,
5187    )
5188}
5189
5190#[inline]
5191pub unsafe fn sptrfs(
5192    n: i32,
5193    nrhs: i32,
5194    d: &[f32],
5195    e: &[f32],
5196    df: &[f32],
5197    ef: &[f32],
5198    b: &[f32],
5199    ldb: i32,
5200    x: &mut [f32],
5201    ldx: i32,
5202    ferr: &mut [f32],
5203    berr: &mut [f32],
5204    work: &mut [f32],
5205    info: &mut i32,
5206) {
5207    ffi::sptrfs_(
5208        &n,
5209        &nrhs,
5210        d.as_ptr(),
5211        e.as_ptr(),
5212        df.as_ptr(),
5213        ef.as_ptr(),
5214        b.as_ptr(),
5215        &ldb,
5216        x.as_mut_ptr(),
5217        &ldx,
5218        ferr.as_mut_ptr(),
5219        berr.as_mut_ptr(),
5220        work.as_mut_ptr(),
5221        info,
5222    )
5223}
5224
5225#[inline]
5226pub unsafe fn dptrfs(
5227    n: i32,
5228    nrhs: i32,
5229    d: &[f64],
5230    e: &[f64],
5231    df: &[f64],
5232    ef: &[f64],
5233    b: &[f64],
5234    ldb: i32,
5235    x: &mut [f64],
5236    ldx: i32,
5237    ferr: &mut [f64],
5238    berr: &mut [f64],
5239    work: &mut [f64],
5240    info: &mut i32,
5241) {
5242    ffi::dptrfs_(
5243        &n,
5244        &nrhs,
5245        d.as_ptr(),
5246        e.as_ptr(),
5247        df.as_ptr(),
5248        ef.as_ptr(),
5249        b.as_ptr(),
5250        &ldb,
5251        x.as_mut_ptr(),
5252        &ldx,
5253        ferr.as_mut_ptr(),
5254        berr.as_mut_ptr(),
5255        work.as_mut_ptr(),
5256        info,
5257    )
5258}
5259
5260#[inline]
5261pub unsafe fn cptrfs(
5262    uplo: u8,
5263    n: i32,
5264    nrhs: i32,
5265    d: &[f32],
5266    e: &[c32],
5267    df: &[f32],
5268    ef: &[c32],
5269    b: &[c32],
5270    ldb: i32,
5271    x: &mut [c32],
5272    ldx: i32,
5273    ferr: &mut [f32],
5274    berr: &mut [f32],
5275    work: &mut [c32],
5276    rwork: &mut [f32],
5277    info: &mut i32,
5278) {
5279    ffi::cptrfs_(
5280        &(uplo as c_char),
5281        &n,
5282        &nrhs,
5283        d.as_ptr(),
5284        e.as_ptr() as *const _,
5285        df.as_ptr(),
5286        ef.as_ptr() as *const _,
5287        b.as_ptr() as *const _,
5288        &ldb,
5289        x.as_mut_ptr() as *mut _,
5290        &ldx,
5291        ferr.as_mut_ptr(),
5292        berr.as_mut_ptr(),
5293        work.as_mut_ptr() as *mut _,
5294        rwork.as_mut_ptr(),
5295        info,
5296    )
5297}
5298
5299#[inline]
5300pub unsafe fn zptrfs(
5301    uplo: u8,
5302    n: i32,
5303    nrhs: i32,
5304    d: &[f64],
5305    e: &[c64],
5306    df: &[f64],
5307    ef: &[c64],
5308    b: &[c64],
5309    ldb: i32,
5310    x: &mut [c64],
5311    ldx: i32,
5312    ferr: &mut [f64],
5313    berr: &mut [f64],
5314    work: &mut [c64],
5315    rwork: &mut [f64],
5316    info: &mut i32,
5317) {
5318    ffi::zptrfs_(
5319        &(uplo as c_char),
5320        &n,
5321        &nrhs,
5322        d.as_ptr(),
5323        e.as_ptr() as *const _,
5324        df.as_ptr(),
5325        ef.as_ptr() as *const _,
5326        b.as_ptr() as *const _,
5327        &ldb,
5328        x.as_mut_ptr() as *mut _,
5329        &ldx,
5330        ferr.as_mut_ptr(),
5331        berr.as_mut_ptr(),
5332        work.as_mut_ptr() as *mut _,
5333        rwork.as_mut_ptr(),
5334        info,
5335    )
5336}
5337
5338#[inline]
5339pub unsafe fn ssyrfs(
5340    uplo: u8,
5341    n: i32,
5342    nrhs: i32,
5343    a: &[f32],
5344    lda: i32,
5345    af: &[f32],
5346    ldaf: i32,
5347    ipiv: &[i32],
5348    b: &[f32],
5349    ldb: i32,
5350    x: &mut [f32],
5351    ldx: i32,
5352    ferr: &mut [f32],
5353    berr: &mut [f32],
5354    work: &mut [f32],
5355    iwork: &mut [i32],
5356    info: &mut i32,
5357) {
5358    ffi::ssyrfs_(
5359        &(uplo as c_char),
5360        &n,
5361        &nrhs,
5362        a.as_ptr(),
5363        &lda,
5364        af.as_ptr(),
5365        &ldaf,
5366        ipiv.as_ptr(),
5367        b.as_ptr(),
5368        &ldb,
5369        x.as_mut_ptr(),
5370        &ldx,
5371        ferr.as_mut_ptr(),
5372        berr.as_mut_ptr(),
5373        work.as_mut_ptr(),
5374        iwork.as_mut_ptr(),
5375        info,
5376    )
5377}
5378
5379#[inline]
5380pub unsafe fn dsyrfs(
5381    uplo: u8,
5382    n: i32,
5383    nrhs: i32,
5384    a: &[f64],
5385    lda: i32,
5386    af: &[f64],
5387    ldaf: i32,
5388    ipiv: &[i32],
5389    b: &[f64],
5390    ldb: i32,
5391    x: &mut [f64],
5392    ldx: i32,
5393    ferr: &mut [f64],
5394    berr: &mut [f64],
5395    work: &mut [f64],
5396    iwork: &mut [i32],
5397    info: &mut i32,
5398) {
5399    ffi::dsyrfs_(
5400        &(uplo as c_char),
5401        &n,
5402        &nrhs,
5403        a.as_ptr(),
5404        &lda,
5405        af.as_ptr(),
5406        &ldaf,
5407        ipiv.as_ptr(),
5408        b.as_ptr(),
5409        &ldb,
5410        x.as_mut_ptr(),
5411        &ldx,
5412        ferr.as_mut_ptr(),
5413        berr.as_mut_ptr(),
5414        work.as_mut_ptr(),
5415        iwork.as_mut_ptr(),
5416        info,
5417    )
5418}
5419
5420#[inline]
5421pub unsafe fn csyrfs(
5422    uplo: u8,
5423    n: i32,
5424    nrhs: i32,
5425    a: &[c32],
5426    lda: i32,
5427    af: &[c32],
5428    ldaf: i32,
5429    ipiv: &[i32],
5430    b: &[c32],
5431    ldb: i32,
5432    x: &mut [c32],
5433    ldx: i32,
5434    ferr: &mut [f32],
5435    berr: &mut [f32],
5436    work: &mut [c32],
5437    rwork: &mut [f32],
5438    info: &mut i32,
5439) {
5440    ffi::csyrfs_(
5441        &(uplo as c_char),
5442        &n,
5443        &nrhs,
5444        a.as_ptr() as *const _,
5445        &lda,
5446        af.as_ptr() as *const _,
5447        &ldaf,
5448        ipiv.as_ptr(),
5449        b.as_ptr() as *const _,
5450        &ldb,
5451        x.as_mut_ptr() as *mut _,
5452        &ldx,
5453        ferr.as_mut_ptr(),
5454        berr.as_mut_ptr(),
5455        work.as_mut_ptr() as *mut _,
5456        rwork.as_mut_ptr(),
5457        info,
5458    )
5459}
5460
5461#[inline]
5462pub unsafe fn zsyrfs(
5463    uplo: u8,
5464    n: i32,
5465    nrhs: i32,
5466    a: &[c64],
5467    lda: i32,
5468    af: &[c64],
5469    ldaf: i32,
5470    ipiv: &[i32],
5471    b: &[c64],
5472    ldb: i32,
5473    x: &mut [c64],
5474    ldx: i32,
5475    ferr: &mut [f64],
5476    berr: &mut [f64],
5477    work: &mut [c64],
5478    rwork: &mut [f64],
5479    info: &mut i32,
5480) {
5481    ffi::zsyrfs_(
5482        &(uplo as c_char),
5483        &n,
5484        &nrhs,
5485        a.as_ptr() as *const _,
5486        &lda,
5487        af.as_ptr() as *const _,
5488        &ldaf,
5489        ipiv.as_ptr(),
5490        b.as_ptr() as *const _,
5491        &ldb,
5492        x.as_mut_ptr() as *mut _,
5493        &ldx,
5494        ferr.as_mut_ptr(),
5495        berr.as_mut_ptr(),
5496        work.as_mut_ptr() as *mut _,
5497        rwork.as_mut_ptr(),
5498        info,
5499    )
5500}
5501
5502#[inline]
5503pub unsafe fn dsyrfsx(
5504    uplo: u8,
5505    equed: u8,
5506    n: i32,
5507    nrhs: i32,
5508    a: &[f64],
5509    lda: i32,
5510    af: &[f64],
5511    ldaf: i32,
5512    ipiv: &[i32],
5513    s: &[f64],
5514    b: &[f64],
5515    ldb: i32,
5516    x: &mut [f64],
5517    ldx: i32,
5518    rcond: &mut f64,
5519    berr: &mut [f64],
5520    n_err_bnds: i32,
5521    err_bnds_norm: &mut [f64],
5522    err_bnds_comp: &mut [f64],
5523    nparams: &[i32],
5524    params: &mut [f64],
5525    work: &mut [f64],
5526    iwork: &mut [i32],
5527    info: &mut i32,
5528) {
5529    ffi::dsyrfsx_(
5530        &(uplo as c_char),
5531        &(equed as c_char),
5532        &n,
5533        &nrhs,
5534        a.as_ptr(),
5535        &lda,
5536        af.as_ptr(),
5537        &ldaf,
5538        ipiv.as_ptr(),
5539        s.as_ptr(),
5540        b.as_ptr(),
5541        &ldb,
5542        x.as_mut_ptr(),
5543        &ldx,
5544        rcond,
5545        berr.as_mut_ptr(),
5546        &n_err_bnds,
5547        err_bnds_norm.as_mut_ptr(),
5548        err_bnds_comp.as_mut_ptr(),
5549        nparams.as_ptr(),
5550        params.as_mut_ptr(),
5551        work.as_mut_ptr(),
5552        iwork.as_mut_ptr(),
5553        info,
5554    )
5555}
5556
5557#[inline]
5558pub unsafe fn ssyrfsx(
5559    uplo: u8,
5560    equed: u8,
5561    n: i32,
5562    nrhs: i32,
5563    a: &[f32],
5564    lda: i32,
5565    af: &[f32],
5566    ldaf: i32,
5567    ipiv: &[i32],
5568    s: &[f32],
5569    b: &[f32],
5570    ldb: i32,
5571    x: &mut [f32],
5572    ldx: i32,
5573    rcond: &mut f32,
5574    berr: &mut [f32],
5575    n_err_bnds: i32,
5576    err_bnds_norm: &mut [f32],
5577    err_bnds_comp: &mut [f32],
5578    nparams: &[i32],
5579    params: &mut [f32],
5580    work: &mut [f32],
5581    iwork: &mut [i32],
5582    info: &mut i32,
5583) {
5584    ffi::ssyrfsx_(
5585        &(uplo as c_char),
5586        &(equed as c_char),
5587        &n,
5588        &nrhs,
5589        a.as_ptr(),
5590        &lda,
5591        af.as_ptr(),
5592        &ldaf,
5593        ipiv.as_ptr(),
5594        s.as_ptr(),
5595        b.as_ptr(),
5596        &ldb,
5597        x.as_mut_ptr(),
5598        &ldx,
5599        rcond,
5600        berr.as_mut_ptr(),
5601        &n_err_bnds,
5602        err_bnds_norm.as_mut_ptr(),
5603        err_bnds_comp.as_mut_ptr(),
5604        nparams.as_ptr(),
5605        params.as_mut_ptr(),
5606        work.as_mut_ptr(),
5607        iwork.as_mut_ptr(),
5608        info,
5609    )
5610}
5611
5612#[inline]
5613pub unsafe fn zsyrfsx(
5614    uplo: u8,
5615    equed: u8,
5616    n: i32,
5617    nrhs: i32,
5618    a: &[c64],
5619    lda: i32,
5620    af: &[c64],
5621    ldaf: i32,
5622    ipiv: &[i32],
5623    s: &[f64],
5624    b: &[c64],
5625    ldb: i32,
5626    x: &mut [c64],
5627    ldx: i32,
5628    rcond: &mut f64,
5629    berr: &mut [f64],
5630    n_err_bnds: i32,
5631    err_bnds_norm: &mut [f64],
5632    err_bnds_comp: &mut [f64],
5633    nparams: &[i32],
5634    params: &mut [f64],
5635    work: &mut [c64],
5636    rwork: &mut [f64],
5637    info: &mut i32,
5638) {
5639    ffi::zsyrfsx_(
5640        &(uplo as c_char),
5641        &(equed as c_char),
5642        &n,
5643        &nrhs,
5644        a.as_ptr() as *const _,
5645        &lda,
5646        af.as_ptr() as *const _,
5647        &ldaf,
5648        ipiv.as_ptr(),
5649        s.as_ptr(),
5650        b.as_ptr() as *const _,
5651        &ldb,
5652        x.as_mut_ptr() as *mut _,
5653        &ldx,
5654        rcond,
5655        berr.as_mut_ptr(),
5656        &n_err_bnds,
5657        err_bnds_norm.as_mut_ptr(),
5658        err_bnds_comp.as_mut_ptr(),
5659        nparams.as_ptr(),
5660        params.as_mut_ptr(),
5661        work.as_mut_ptr() as *mut _,
5662        rwork.as_mut_ptr(),
5663        info,
5664    )
5665}
5666
5667#[inline]
5668pub unsafe fn csyrfsx(
5669    uplo: u8,
5670    equed: u8,
5671    n: i32,
5672    nrhs: i32,
5673    a: &[c32],
5674    lda: i32,
5675    af: &[c32],
5676    ldaf: i32,
5677    ipiv: &[i32],
5678    s: &[f32],
5679    b: &[c32],
5680    ldb: i32,
5681    x: &mut [c32],
5682    ldx: i32,
5683    rcond: &mut f32,
5684    berr: &mut [f32],
5685    n_err_bnds: i32,
5686    err_bnds_norm: &mut [f32],
5687    err_bnds_comp: &mut [f32],
5688    nparams: &[i32],
5689    params: &mut [f32],
5690    work: &mut [c32],
5691    rwork: &mut [f32],
5692    info: &mut i32,
5693) {
5694    ffi::csyrfsx_(
5695        &(uplo as c_char),
5696        &(equed as c_char),
5697        &n,
5698        &nrhs,
5699        a.as_ptr() as *const _,
5700        &lda,
5701        af.as_ptr() as *const _,
5702        &ldaf,
5703        ipiv.as_ptr(),
5704        s.as_ptr(),
5705        b.as_ptr() as *const _,
5706        &ldb,
5707        x.as_mut_ptr() as *mut _,
5708        &ldx,
5709        rcond,
5710        berr.as_mut_ptr(),
5711        &n_err_bnds,
5712        err_bnds_norm.as_mut_ptr(),
5713        err_bnds_comp.as_mut_ptr(),
5714        nparams.as_ptr(),
5715        params.as_mut_ptr(),
5716        work.as_mut_ptr() as *mut _,
5717        rwork.as_mut_ptr(),
5718        info,
5719    )
5720}
5721
5722#[inline]
5723pub unsafe fn cherfs(
5724    uplo: u8,
5725    n: i32,
5726    nrhs: i32,
5727    a: &[c32],
5728    lda: i32,
5729    af: &[c32],
5730    ldaf: i32,
5731    ipiv: &[i32],
5732    b: &[c32],
5733    ldb: i32,
5734    x: &mut [c32],
5735    ldx: i32,
5736    ferr: &mut [f32],
5737    berr: &mut [f32],
5738    work: &mut [c32],
5739    rwork: &mut [f32],
5740    info: &mut i32,
5741) {
5742    ffi::cherfs_(
5743        &(uplo as c_char),
5744        &n,
5745        &nrhs,
5746        a.as_ptr() as *const _,
5747        &lda,
5748        af.as_ptr() as *const _,
5749        &ldaf,
5750        ipiv.as_ptr(),
5751        b.as_ptr() as *const _,
5752        &ldb,
5753        x.as_mut_ptr() as *mut _,
5754        &ldx,
5755        ferr.as_mut_ptr(),
5756        berr.as_mut_ptr(),
5757        work.as_mut_ptr() as *mut _,
5758        rwork.as_mut_ptr(),
5759        info,
5760    )
5761}
5762
5763#[inline]
5764pub unsafe fn zherfs(
5765    uplo: u8,
5766    n: i32,
5767    nrhs: i32,
5768    a: &[c64],
5769    lda: i32,
5770    af: &[c64],
5771    ldaf: i32,
5772    ipiv: &[i32],
5773    b: &[c64],
5774    ldb: i32,
5775    x: &mut [c64],
5776    ldx: i32,
5777    ferr: &mut [f64],
5778    berr: &mut [f64],
5779    work: &mut [c64],
5780    rwork: &mut [f64],
5781    info: &mut i32,
5782) {
5783    ffi::zherfs_(
5784        &(uplo as c_char),
5785        &n,
5786        &nrhs,
5787        a.as_ptr() as *const _,
5788        &lda,
5789        af.as_ptr() as *const _,
5790        &ldaf,
5791        ipiv.as_ptr(),
5792        b.as_ptr() as *const _,
5793        &ldb,
5794        x.as_mut_ptr() as *mut _,
5795        &ldx,
5796        ferr.as_mut_ptr(),
5797        berr.as_mut_ptr(),
5798        work.as_mut_ptr() as *mut _,
5799        rwork.as_mut_ptr(),
5800        info,
5801    )
5802}
5803
5804#[inline]
5805pub unsafe fn zherfsx(
5806    uplo: u8,
5807    equed: u8,
5808    n: i32,
5809    nrhs: i32,
5810    a: &[c64],
5811    lda: i32,
5812    af: &[c64],
5813    ldaf: i32,
5814    ipiv: &[i32],
5815    s: &[f64],
5816    b: &[c64],
5817    ldb: i32,
5818    x: &mut [c64],
5819    ldx: i32,
5820    rcond: &mut f64,
5821    berr: &mut [f64],
5822    n_err_bnds: i32,
5823    err_bnds_norm: &mut [f64],
5824    err_bnds_comp: &mut [f64],
5825    nparams: &[i32],
5826    params: &mut [f64],
5827    work: &mut [c64],
5828    rwork: &mut [f64],
5829    info: &mut i32,
5830) {
5831    ffi::zherfsx_(
5832        &(uplo as c_char),
5833        &(equed as c_char),
5834        &n,
5835        &nrhs,
5836        a.as_ptr() as *const _,
5837        &lda,
5838        af.as_ptr() as *const _,
5839        &ldaf,
5840        ipiv.as_ptr(),
5841        s.as_ptr(),
5842        b.as_ptr() as *const _,
5843        &ldb,
5844        x.as_mut_ptr() as *mut _,
5845        &ldx,
5846        rcond,
5847        berr.as_mut_ptr(),
5848        &n_err_bnds,
5849        err_bnds_norm.as_mut_ptr(),
5850        err_bnds_comp.as_mut_ptr(),
5851        nparams.as_ptr(),
5852        params.as_mut_ptr(),
5853        work.as_mut_ptr() as *mut _,
5854        rwork.as_mut_ptr(),
5855        info,
5856    )
5857}
5858
5859#[inline]
5860pub unsafe fn cherfsx(
5861    uplo: u8,
5862    equed: u8,
5863    n: i32,
5864    nrhs: i32,
5865    a: &[c32],
5866    lda: i32,
5867    af: &[c32],
5868    ldaf: i32,
5869    ipiv: &[i32],
5870    s: &[f32],
5871    b: &[c32],
5872    ldb: i32,
5873    x: &mut [c32],
5874    ldx: i32,
5875    rcond: &mut f32,
5876    berr: &mut [f32],
5877    n_err_bnds: i32,
5878    err_bnds_norm: &mut [f32],
5879    err_bnds_comp: &mut [f32],
5880    nparams: &[i32],
5881    params: &mut [f32],
5882    work: &mut [c32],
5883    rwork: &mut [f32],
5884    info: &mut i32,
5885) {
5886    ffi::cherfsx_(
5887        &(uplo as c_char),
5888        &(equed as c_char),
5889        &n,
5890        &nrhs,
5891        a.as_ptr() as *const _,
5892        &lda,
5893        af.as_ptr() as *const _,
5894        &ldaf,
5895        ipiv.as_ptr(),
5896        s.as_ptr(),
5897        b.as_ptr() as *const _,
5898        &ldb,
5899        x.as_mut_ptr() as *mut _,
5900        &ldx,
5901        rcond,
5902        berr.as_mut_ptr(),
5903        &n_err_bnds,
5904        err_bnds_norm.as_mut_ptr(),
5905        err_bnds_comp.as_mut_ptr(),
5906        nparams.as_ptr(),
5907        params.as_mut_ptr(),
5908        work.as_mut_ptr() as *mut _,
5909        rwork.as_mut_ptr(),
5910        info,
5911    )
5912}
5913
5914#[inline]
5915pub unsafe fn ssprfs(
5916    uplo: u8,
5917    n: i32,
5918    nrhs: i32,
5919    ap: &[f32],
5920    afp: &[f32],
5921    ipiv: &[i32],
5922    b: &[f32],
5923    ldb: i32,
5924    x: &mut [f32],
5925    ldx: i32,
5926    ferr: &mut [f32],
5927    berr: &mut [f32],
5928    work: &mut [f32],
5929    iwork: &mut [i32],
5930    info: &mut i32,
5931) {
5932    ffi::ssprfs_(
5933        &(uplo as c_char),
5934        &n,
5935        &nrhs,
5936        ap.as_ptr(),
5937        afp.as_ptr(),
5938        ipiv.as_ptr(),
5939        b.as_ptr(),
5940        &ldb,
5941        x.as_mut_ptr(),
5942        &ldx,
5943        ferr.as_mut_ptr(),
5944        berr.as_mut_ptr(),
5945        work.as_mut_ptr(),
5946        iwork.as_mut_ptr(),
5947        info,
5948    )
5949}
5950
5951#[inline]
5952pub unsafe fn dsprfs(
5953    uplo: u8,
5954    n: i32,
5955    nrhs: i32,
5956    ap: &[f64],
5957    afp: &[f64],
5958    ipiv: &[i32],
5959    b: &[f64],
5960    ldb: i32,
5961    x: &mut [f64],
5962    ldx: i32,
5963    ferr: &mut [f64],
5964    berr: &mut [f64],
5965    work: &mut [f64],
5966    iwork: &mut [i32],
5967    info: &mut i32,
5968) {
5969    ffi::dsprfs_(
5970        &(uplo as c_char),
5971        &n,
5972        &nrhs,
5973        ap.as_ptr(),
5974        afp.as_ptr(),
5975        ipiv.as_ptr(),
5976        b.as_ptr(),
5977        &ldb,
5978        x.as_mut_ptr(),
5979        &ldx,
5980        ferr.as_mut_ptr(),
5981        berr.as_mut_ptr(),
5982        work.as_mut_ptr(),
5983        iwork.as_mut_ptr(),
5984        info,
5985    )
5986}
5987
5988#[inline]
5989pub unsafe fn csprfs(
5990    uplo: u8,
5991    n: i32,
5992    nrhs: i32,
5993    ap: &[c32],
5994    afp: &[c32],
5995    ipiv: &[i32],
5996    b: &[c32],
5997    ldb: i32,
5998    x: &mut [c32],
5999    ldx: i32,
6000    ferr: &mut [f32],
6001    berr: &mut [f32],
6002    work: &mut [c32],
6003    rwork: &mut [f32],
6004    info: &mut i32,
6005) {
6006    ffi::csprfs_(
6007        &(uplo as c_char),
6008        &n,
6009        &nrhs,
6010        ap.as_ptr() as *const _,
6011        afp.as_ptr() as *const _,
6012        ipiv.as_ptr(),
6013        b.as_ptr() as *const _,
6014        &ldb,
6015        x.as_mut_ptr() as *mut _,
6016        &ldx,
6017        ferr.as_mut_ptr(),
6018        berr.as_mut_ptr(),
6019        work.as_mut_ptr() as *mut _,
6020        rwork.as_mut_ptr(),
6021        info,
6022    )
6023}
6024
6025#[inline]
6026pub unsafe fn zsprfs(
6027    uplo: u8,
6028    n: i32,
6029    nrhs: i32,
6030    ap: &[c64],
6031    afp: &[c64],
6032    ipiv: &[i32],
6033    b: &[c64],
6034    ldb: i32,
6035    x: &mut [c64],
6036    ldx: i32,
6037    ferr: &mut [f64],
6038    berr: &mut [f64],
6039    work: &mut [c64],
6040    rwork: &mut [f64],
6041    info: &mut i32,
6042) {
6043    ffi::zsprfs_(
6044        &(uplo as c_char),
6045        &n,
6046        &nrhs,
6047        ap.as_ptr() as *const _,
6048        afp.as_ptr() as *const _,
6049        ipiv.as_ptr(),
6050        b.as_ptr() as *const _,
6051        &ldb,
6052        x.as_mut_ptr() as *mut _,
6053        &ldx,
6054        ferr.as_mut_ptr(),
6055        berr.as_mut_ptr(),
6056        work.as_mut_ptr() as *mut _,
6057        rwork.as_mut_ptr(),
6058        info,
6059    )
6060}
6061
6062#[inline]
6063pub unsafe fn chprfs(
6064    uplo: u8,
6065    n: i32,
6066    nrhs: i32,
6067    ap: &[c32],
6068    afp: &[c32],
6069    ipiv: &[i32],
6070    b: &[c32],
6071    ldb: i32,
6072    x: &mut [c32],
6073    ldx: i32,
6074    ferr: &mut [f32],
6075    berr: &mut [f32],
6076    work: &mut [c32],
6077    rwork: &mut [f32],
6078    info: &mut i32,
6079) {
6080    ffi::chprfs_(
6081        &(uplo as c_char),
6082        &n,
6083        &nrhs,
6084        ap.as_ptr() as *const _,
6085        afp.as_ptr() as *const _,
6086        ipiv.as_ptr(),
6087        b.as_ptr() as *const _,
6088        &ldb,
6089        x.as_mut_ptr() as *mut _,
6090        &ldx,
6091        ferr.as_mut_ptr(),
6092        berr.as_mut_ptr(),
6093        work.as_mut_ptr() as *mut _,
6094        rwork.as_mut_ptr(),
6095        info,
6096    )
6097}
6098
6099#[inline]
6100pub unsafe fn zhprfs(
6101    uplo: u8,
6102    n: i32,
6103    nrhs: i32,
6104    ap: &[c64],
6105    afp: &[c64],
6106    ipiv: &[i32],
6107    b: &[c64],
6108    ldb: i32,
6109    x: &mut [c64],
6110    ldx: i32,
6111    ferr: &mut [f64],
6112    berr: &mut [f64],
6113    work: &mut [c64],
6114    rwork: &mut [f64],
6115    info: &mut i32,
6116) {
6117    ffi::zhprfs_(
6118        &(uplo as c_char),
6119        &n,
6120        &nrhs,
6121        ap.as_ptr() as *const _,
6122        afp.as_ptr() as *const _,
6123        ipiv.as_ptr(),
6124        b.as_ptr() as *const _,
6125        &ldb,
6126        x.as_mut_ptr() as *mut _,
6127        &ldx,
6128        ferr.as_mut_ptr(),
6129        berr.as_mut_ptr(),
6130        work.as_mut_ptr() as *mut _,
6131        rwork.as_mut_ptr(),
6132        info,
6133    )
6134}
6135
6136#[inline]
6137pub unsafe fn strrfs(
6138    uplo: u8,
6139    trans: u8,
6140    diag: u8,
6141    n: i32,
6142    nrhs: i32,
6143    a: &[f32],
6144    lda: i32,
6145    b: &[f32],
6146    ldb: i32,
6147    x: &[f32],
6148    ldx: i32,
6149    ferr: &mut [f32],
6150    berr: &mut [f32],
6151    work: &mut [f32],
6152    iwork: &mut [i32],
6153    info: &mut i32,
6154) {
6155    ffi::strrfs_(
6156        &(uplo as c_char),
6157        &(trans as c_char),
6158        &(diag as c_char),
6159        &n,
6160        &nrhs,
6161        a.as_ptr(),
6162        &lda,
6163        b.as_ptr(),
6164        &ldb,
6165        x.as_ptr(),
6166        &ldx,
6167        ferr.as_mut_ptr(),
6168        berr.as_mut_ptr(),
6169        work.as_mut_ptr(),
6170        iwork.as_mut_ptr(),
6171        info,
6172    )
6173}
6174
6175#[inline]
6176pub unsafe fn dtrrfs(
6177    uplo: u8,
6178    trans: u8,
6179    diag: u8,
6180    n: i32,
6181    nrhs: i32,
6182    a: &[f64],
6183    lda: i32,
6184    b: &[f64],
6185    ldb: i32,
6186    x: &[f64],
6187    ldx: i32,
6188    ferr: &mut [f64],
6189    berr: &mut [f64],
6190    work: &mut [f64],
6191    iwork: &mut [i32],
6192    info: &mut i32,
6193) {
6194    ffi::dtrrfs_(
6195        &(uplo as c_char),
6196        &(trans as c_char),
6197        &(diag as c_char),
6198        &n,
6199        &nrhs,
6200        a.as_ptr(),
6201        &lda,
6202        b.as_ptr(),
6203        &ldb,
6204        x.as_ptr(),
6205        &ldx,
6206        ferr.as_mut_ptr(),
6207        berr.as_mut_ptr(),
6208        work.as_mut_ptr(),
6209        iwork.as_mut_ptr(),
6210        info,
6211    )
6212}
6213
6214#[inline]
6215pub unsafe fn ctrrfs(
6216    uplo: u8,
6217    trans: u8,
6218    diag: u8,
6219    n: i32,
6220    nrhs: i32,
6221    a: &[c32],
6222    lda: i32,
6223    b: &[c32],
6224    ldb: i32,
6225    x: &[c32],
6226    ldx: i32,
6227    ferr: &mut [f32],
6228    berr: &mut [f32],
6229    work: &mut [c32],
6230    rwork: &mut [f32],
6231    info: &mut i32,
6232) {
6233    ffi::ctrrfs_(
6234        &(uplo as c_char),
6235        &(trans as c_char),
6236        &(diag as c_char),
6237        &n,
6238        &nrhs,
6239        a.as_ptr() as *const _,
6240        &lda,
6241        b.as_ptr() as *const _,
6242        &ldb,
6243        x.as_ptr() as *const _,
6244        &ldx,
6245        ferr.as_mut_ptr(),
6246        berr.as_mut_ptr(),
6247        work.as_mut_ptr() as *mut _,
6248        rwork.as_mut_ptr(),
6249        info,
6250    )
6251}
6252
6253#[inline]
6254pub unsafe fn ztrrfs(
6255    uplo: u8,
6256    trans: u8,
6257    diag: u8,
6258    n: i32,
6259    nrhs: i32,
6260    a: &[c64],
6261    lda: i32,
6262    b: &[c64],
6263    ldb: i32,
6264    x: &[c64],
6265    ldx: i32,
6266    ferr: &mut [f64],
6267    berr: &mut [f64],
6268    work: &mut [c64],
6269    rwork: &mut [f64],
6270    info: &mut i32,
6271) {
6272    ffi::ztrrfs_(
6273        &(uplo as c_char),
6274        &(trans as c_char),
6275        &(diag as c_char),
6276        &n,
6277        &nrhs,
6278        a.as_ptr() as *const _,
6279        &lda,
6280        b.as_ptr() as *const _,
6281        &ldb,
6282        x.as_ptr() as *const _,
6283        &ldx,
6284        ferr.as_mut_ptr(),
6285        berr.as_mut_ptr(),
6286        work.as_mut_ptr() as *mut _,
6287        rwork.as_mut_ptr(),
6288        info,
6289    )
6290}
6291
6292#[inline]
6293pub unsafe fn stprfs(
6294    uplo: u8,
6295    trans: u8,
6296    diag: u8,
6297    n: i32,
6298    nrhs: i32,
6299    ap: &[f32],
6300    b: &[f32],
6301    ldb: i32,
6302    x: &[f32],
6303    ldx: i32,
6304    ferr: &mut [f32],
6305    berr: &mut [f32],
6306    work: &mut [f32],
6307    iwork: &mut [i32],
6308    info: &mut i32,
6309) {
6310    ffi::stprfs_(
6311        &(uplo as c_char),
6312        &(trans as c_char),
6313        &(diag as c_char),
6314        &n,
6315        &nrhs,
6316        ap.as_ptr(),
6317        b.as_ptr(),
6318        &ldb,
6319        x.as_ptr(),
6320        &ldx,
6321        ferr.as_mut_ptr(),
6322        berr.as_mut_ptr(),
6323        work.as_mut_ptr(),
6324        iwork.as_mut_ptr(),
6325        info,
6326    )
6327}
6328
6329#[inline]
6330pub unsafe fn dtprfs(
6331    uplo: u8,
6332    trans: u8,
6333    diag: u8,
6334    n: i32,
6335    nrhs: i32,
6336    ap: &[f64],
6337    b: &[f64],
6338    ldb: i32,
6339    x: &[f64],
6340    ldx: i32,
6341    ferr: &mut [f64],
6342    berr: &mut [f64],
6343    work: &mut [f64],
6344    iwork: &mut [i32],
6345    info: &mut i32,
6346) {
6347    ffi::dtprfs_(
6348        &(uplo as c_char),
6349        &(trans as c_char),
6350        &(diag as c_char),
6351        &n,
6352        &nrhs,
6353        ap.as_ptr(),
6354        b.as_ptr(),
6355        &ldb,
6356        x.as_ptr(),
6357        &ldx,
6358        ferr.as_mut_ptr(),
6359        berr.as_mut_ptr(),
6360        work.as_mut_ptr(),
6361        iwork.as_mut_ptr(),
6362        info,
6363    )
6364}
6365
6366#[inline]
6367pub unsafe fn ctprfs(
6368    uplo: u8,
6369    trans: u8,
6370    diag: u8,
6371    n: i32,
6372    nrhs: i32,
6373    ap: &[c32],
6374    b: &[c32],
6375    ldb: i32,
6376    x: &[c32],
6377    ldx: i32,
6378    ferr: &mut [f32],
6379    berr: &mut [f32],
6380    work: &mut [c32],
6381    rwork: &mut [f32],
6382    info: &mut i32,
6383) {
6384    ffi::ctprfs_(
6385        &(uplo as c_char),
6386        &(trans as c_char),
6387        &(diag as c_char),
6388        &n,
6389        &nrhs,
6390        ap.as_ptr() as *const _,
6391        b.as_ptr() as *const _,
6392        &ldb,
6393        x.as_ptr() as *const _,
6394        &ldx,
6395        ferr.as_mut_ptr(),
6396        berr.as_mut_ptr(),
6397        work.as_mut_ptr() as *mut _,
6398        rwork.as_mut_ptr(),
6399        info,
6400    )
6401}
6402
6403#[inline]
6404pub unsafe fn ztprfs(
6405    uplo: u8,
6406    trans: u8,
6407    diag: u8,
6408    n: i32,
6409    nrhs: i32,
6410    ap: &[c64],
6411    b: &[c64],
6412    ldb: i32,
6413    x: &[c64],
6414    ldx: i32,
6415    ferr: &mut [f64],
6416    berr: &mut [f64],
6417    work: &mut [c64],
6418    rwork: &mut [f64],
6419    info: &mut i32,
6420) {
6421    ffi::ztprfs_(
6422        &(uplo as c_char),
6423        &(trans as c_char),
6424        &(diag as c_char),
6425        &n,
6426        &nrhs,
6427        ap.as_ptr() as *const _,
6428        b.as_ptr() as *const _,
6429        &ldb,
6430        x.as_ptr() as *const _,
6431        &ldx,
6432        ferr.as_mut_ptr(),
6433        berr.as_mut_ptr(),
6434        work.as_mut_ptr() as *mut _,
6435        rwork.as_mut_ptr(),
6436        info,
6437    )
6438}
6439
6440#[inline]
6441pub unsafe fn stbrfs(
6442    uplo: u8,
6443    trans: u8,
6444    diag: u8,
6445    n: i32,
6446    kd: i32,
6447    nrhs: i32,
6448    ab: &[f32],
6449    ldab: i32,
6450    b: &[f32],
6451    ldb: i32,
6452    x: &[f32],
6453    ldx: i32,
6454    ferr: &mut [f32],
6455    berr: &mut [f32],
6456    work: &mut [f32],
6457    iwork: &mut [i32],
6458    info: &mut i32,
6459) {
6460    ffi::stbrfs_(
6461        &(uplo as c_char),
6462        &(trans as c_char),
6463        &(diag as c_char),
6464        &n,
6465        &kd,
6466        &nrhs,
6467        ab.as_ptr(),
6468        &ldab,
6469        b.as_ptr(),
6470        &ldb,
6471        x.as_ptr(),
6472        &ldx,
6473        ferr.as_mut_ptr(),
6474        berr.as_mut_ptr(),
6475        work.as_mut_ptr(),
6476        iwork.as_mut_ptr(),
6477        info,
6478    )
6479}
6480
6481#[inline]
6482pub unsafe fn dtbrfs(
6483    uplo: u8,
6484    trans: u8,
6485    diag: u8,
6486    n: i32,
6487    kd: i32,
6488    nrhs: i32,
6489    ab: &[f64],
6490    ldab: i32,
6491    b: &[f64],
6492    ldb: i32,
6493    x: &[f64],
6494    ldx: i32,
6495    ferr: &mut [f64],
6496    berr: &mut [f64],
6497    work: &mut [f64],
6498    iwork: &mut [i32],
6499    info: &mut i32,
6500) {
6501    ffi::dtbrfs_(
6502        &(uplo as c_char),
6503        &(trans as c_char),
6504        &(diag as c_char),
6505        &n,
6506        &kd,
6507        &nrhs,
6508        ab.as_ptr(),
6509        &ldab,
6510        b.as_ptr(),
6511        &ldb,
6512        x.as_ptr(),
6513        &ldx,
6514        ferr.as_mut_ptr(),
6515        berr.as_mut_ptr(),
6516        work.as_mut_ptr(),
6517        iwork.as_mut_ptr(),
6518        info,
6519    )
6520}
6521
6522#[inline]
6523pub unsafe fn ctbrfs(
6524    uplo: u8,
6525    trans: u8,
6526    diag: u8,
6527    n: i32,
6528    kd: i32,
6529    nrhs: i32,
6530    ab: &[c32],
6531    ldab: i32,
6532    b: &[c32],
6533    ldb: i32,
6534    x: &[c32],
6535    ldx: i32,
6536    ferr: &mut [f32],
6537    berr: &mut [f32],
6538    work: &mut [c32],
6539    rwork: &mut [f32],
6540    info: &mut i32,
6541) {
6542    ffi::ctbrfs_(
6543        &(uplo as c_char),
6544        &(trans as c_char),
6545        &(diag as c_char),
6546        &n,
6547        &kd,
6548        &nrhs,
6549        ab.as_ptr() as *const _,
6550        &ldab,
6551        b.as_ptr() as *const _,
6552        &ldb,
6553        x.as_ptr() as *const _,
6554        &ldx,
6555        ferr.as_mut_ptr(),
6556        berr.as_mut_ptr(),
6557        work.as_mut_ptr() as *mut _,
6558        rwork.as_mut_ptr(),
6559        info,
6560    )
6561}
6562
6563#[inline]
6564pub unsafe fn ztbrfs(
6565    uplo: u8,
6566    trans: u8,
6567    diag: u8,
6568    n: i32,
6569    kd: i32,
6570    nrhs: i32,
6571    ab: &[c64],
6572    ldab: i32,
6573    b: &[c64],
6574    ldb: i32,
6575    x: &[c64],
6576    ldx: i32,
6577    ferr: &mut [f64],
6578    berr: &mut [f64],
6579    work: &mut [c64],
6580    rwork: &mut [f64],
6581    info: &mut i32,
6582) {
6583    ffi::ztbrfs_(
6584        &(uplo as c_char),
6585        &(trans as c_char),
6586        &(diag as c_char),
6587        &n,
6588        &kd,
6589        &nrhs,
6590        ab.as_ptr() as *const _,
6591        &ldab,
6592        b.as_ptr() as *const _,
6593        &ldb,
6594        x.as_ptr() as *const _,
6595        &ldx,
6596        ferr.as_mut_ptr(),
6597        berr.as_mut_ptr(),
6598        work.as_mut_ptr() as *mut _,
6599        rwork.as_mut_ptr(),
6600        info,
6601    )
6602}
6603
6604#[inline]
6605pub unsafe fn sgetri(
6606    n: i32,
6607    a: &mut [f32],
6608    lda: i32,
6609    ipiv: &[i32],
6610    work: &mut [f32],
6611    lwork: i32,
6612    info: &mut i32,
6613) {
6614    ffi::sgetri_(
6615        &n,
6616        a.as_mut_ptr(),
6617        &lda,
6618        ipiv.as_ptr(),
6619        work.as_mut_ptr(),
6620        &lwork,
6621        info,
6622    )
6623}
6624
6625#[inline]
6626pub unsafe fn dgetri(
6627    n: i32,
6628    a: &mut [f64],
6629    lda: i32,
6630    ipiv: &[i32],
6631    work: &mut [f64],
6632    lwork: i32,
6633    info: &mut i32,
6634) {
6635    ffi::dgetri_(
6636        &n,
6637        a.as_mut_ptr(),
6638        &lda,
6639        ipiv.as_ptr(),
6640        work.as_mut_ptr(),
6641        &lwork,
6642        info,
6643    )
6644}
6645
6646#[inline]
6647pub unsafe fn cgetri(
6648    n: i32,
6649    a: &mut [c32],
6650    lda: i32,
6651    ipiv: &[i32],
6652    work: &mut [c32],
6653    lwork: i32,
6654    info: &mut i32,
6655) {
6656    ffi::cgetri_(
6657        &n,
6658        a.as_mut_ptr() as *mut _,
6659        &lda,
6660        ipiv.as_ptr(),
6661        work.as_mut_ptr() as *mut _,
6662        &lwork,
6663        info,
6664    )
6665}
6666
6667#[inline]
6668pub unsafe fn zgetri(
6669    n: i32,
6670    a: &mut [c64],
6671    lda: i32,
6672    ipiv: &[i32],
6673    work: &mut [c64],
6674    lwork: i32,
6675    info: &mut i32,
6676) {
6677    ffi::zgetri_(
6678        &n,
6679        a.as_mut_ptr() as *mut _,
6680        &lda,
6681        ipiv.as_ptr(),
6682        work.as_mut_ptr() as *mut _,
6683        &lwork,
6684        info,
6685    )
6686}
6687
6688#[inline]
6689pub unsafe fn spotri(uplo: u8, n: i32, a: &mut [f32], lda: i32, info: &mut i32) {
6690    ffi::spotri_(&(uplo as c_char), &n, a.as_mut_ptr(), &lda, info)
6691}
6692
6693#[inline]
6694pub unsafe fn dpotri(uplo: u8, n: i32, a: &mut [f64], lda: i32, info: &mut i32) {
6695    ffi::dpotri_(&(uplo as c_char), &n, a.as_mut_ptr(), &lda, info)
6696}
6697
6698#[inline]
6699pub unsafe fn cpotri(uplo: u8, n: i32, a: &mut [c32], lda: i32, info: &mut i32) {
6700    ffi::cpotri_(&(uplo as c_char), &n, a.as_mut_ptr() as *mut _, &lda, info)
6701}
6702
6703#[inline]
6704pub unsafe fn zpotri(uplo: u8, n: i32, a: &mut [c64], lda: i32, info: &mut i32) {
6705    ffi::zpotri_(&(uplo as c_char), &n, a.as_mut_ptr() as *mut _, &lda, info)
6706}
6707
6708#[inline]
6709pub unsafe fn dpftri(transr: u8, uplo: u8, n: i32, a: &mut [f64], info: &mut i32) {
6710    ffi::dpftri_(
6711        &(transr as c_char),
6712        &(uplo as c_char),
6713        &n,
6714        a.as_mut_ptr(),
6715        info,
6716    )
6717}
6718
6719#[inline]
6720pub unsafe fn spftri(transr: u8, uplo: u8, n: i32, a: &mut [f32], info: &mut i32) {
6721    ffi::spftri_(
6722        &(transr as c_char),
6723        &(uplo as c_char),
6724        &n,
6725        a.as_mut_ptr(),
6726        info,
6727    )
6728}
6729
6730#[inline]
6731pub unsafe fn zpftri(transr: u8, uplo: u8, n: i32, a: &mut [c64], info: &mut i32) {
6732    ffi::zpftri_(
6733        &(transr as c_char),
6734        &(uplo as c_char),
6735        &n,
6736        a.as_mut_ptr() as *mut _,
6737        info,
6738    )
6739}
6740
6741#[inline]
6742pub unsafe fn cpftri(transr: u8, uplo: u8, n: i32, a: &mut [c32], info: &mut i32) {
6743    ffi::cpftri_(
6744        &(transr as c_char),
6745        &(uplo as c_char),
6746        &n,
6747        a.as_mut_ptr() as *mut _,
6748        info,
6749    )
6750}
6751
6752#[inline]
6753pub unsafe fn spptri(uplo: u8, n: i32, ap: &mut [f32], info: &mut i32) {
6754    ffi::spptri_(&(uplo as c_char), &n, ap.as_mut_ptr(), info)
6755}
6756
6757#[inline]
6758pub unsafe fn dpptri(uplo: u8, n: i32, ap: &mut [f64], info: &mut i32) {
6759    ffi::dpptri_(&(uplo as c_char), &n, ap.as_mut_ptr(), info)
6760}
6761
6762#[inline]
6763pub unsafe fn cpptri(uplo: u8, n: i32, ap: &mut [c32], info: &mut i32) {
6764    ffi::cpptri_(&(uplo as c_char), &n, ap.as_mut_ptr() as *mut _, info)
6765}
6766
6767#[inline]
6768pub unsafe fn zpptri(uplo: u8, n: i32, ap: &mut [c64], info: &mut i32) {
6769    ffi::zpptri_(&(uplo as c_char), &n, ap.as_mut_ptr() as *mut _, info)
6770}
6771
6772#[inline]
6773pub unsafe fn ssytri(
6774    uplo: u8,
6775    n: i32,
6776    a: &mut [f32],
6777    lda: i32,
6778    ipiv: &[i32],
6779    work: &mut [f32],
6780    info: &mut i32,
6781) {
6782    ffi::ssytri_(
6783        &(uplo as c_char),
6784        &n,
6785        a.as_mut_ptr(),
6786        &lda,
6787        ipiv.as_ptr(),
6788        work.as_mut_ptr(),
6789        info,
6790    )
6791}
6792
6793#[inline]
6794pub unsafe fn dsytri(
6795    uplo: u8,
6796    n: i32,
6797    a: &mut [f64],
6798    lda: i32,
6799    ipiv: &[i32],
6800    work: &mut [f64],
6801    info: &mut i32,
6802) {
6803    ffi::dsytri_(
6804        &(uplo as c_char),
6805        &n,
6806        a.as_mut_ptr(),
6807        &lda,
6808        ipiv.as_ptr(),
6809        work.as_mut_ptr(),
6810        info,
6811    )
6812}
6813
6814#[inline]
6815pub unsafe fn csytri(
6816    uplo: u8,
6817    n: i32,
6818    a: &mut [c32],
6819    lda: i32,
6820    ipiv: &[i32],
6821    work: &mut [c32],
6822    info: &mut i32,
6823) {
6824    ffi::csytri_(
6825        &(uplo as c_char),
6826        &n,
6827        a.as_mut_ptr() as *mut _,
6828        &lda,
6829        ipiv.as_ptr(),
6830        work.as_mut_ptr() as *mut _,
6831        info,
6832    )
6833}
6834
6835#[inline]
6836pub unsafe fn zsytri(
6837    uplo: u8,
6838    n: i32,
6839    a: &mut [c64],
6840    lda: i32,
6841    ipiv: &[i32],
6842    work: &mut [c64],
6843    info: &mut i32,
6844) {
6845    ffi::zsytri_(
6846        &(uplo as c_char),
6847        &n,
6848        a.as_mut_ptr() as *mut _,
6849        &lda,
6850        ipiv.as_ptr(),
6851        work.as_mut_ptr() as *mut _,
6852        info,
6853    )
6854}
6855
6856#[inline]
6857pub unsafe fn chetri(
6858    uplo: u8,
6859    n: i32,
6860    a: &mut [c32],
6861    lda: i32,
6862    ipiv: &[i32],
6863    work: &mut [c32],
6864    info: &mut i32,
6865) {
6866    ffi::chetri_(
6867        &(uplo as c_char),
6868        &n,
6869        a.as_mut_ptr() as *mut _,
6870        &lda,
6871        ipiv.as_ptr(),
6872        work.as_mut_ptr() as *mut _,
6873        info,
6874    )
6875}
6876
6877#[inline]
6878pub unsafe fn zhetri(
6879    uplo: u8,
6880    n: i32,
6881    a: &mut [c64],
6882    lda: i32,
6883    ipiv: &[i32],
6884    work: &mut [c64],
6885    info: &mut i32,
6886) {
6887    ffi::zhetri_(
6888        &(uplo as c_char),
6889        &n,
6890        a.as_mut_ptr() as *mut _,
6891        &lda,
6892        ipiv.as_ptr(),
6893        work.as_mut_ptr() as *mut _,
6894        info,
6895    )
6896}
6897
6898#[inline]
6899pub unsafe fn ssptri(
6900    uplo: u8,
6901    n: i32,
6902    ap: &mut [f32],
6903    ipiv: &[i32],
6904    work: &mut [f32],
6905    info: &mut i32,
6906) {
6907    ffi::ssptri_(
6908        &(uplo as c_char),
6909        &n,
6910        ap.as_mut_ptr(),
6911        ipiv.as_ptr(),
6912        work.as_mut_ptr(),
6913        info,
6914    )
6915}
6916
6917#[inline]
6918pub unsafe fn dsptri(
6919    uplo: u8,
6920    n: i32,
6921    ap: &mut [f64],
6922    ipiv: &[i32],
6923    work: &mut [f64],
6924    info: &mut i32,
6925) {
6926    ffi::dsptri_(
6927        &(uplo as c_char),
6928        &n,
6929        ap.as_mut_ptr(),
6930        ipiv.as_ptr(),
6931        work.as_mut_ptr(),
6932        info,
6933    )
6934}
6935
6936#[inline]
6937pub unsafe fn csptri(
6938    uplo: u8,
6939    n: i32,
6940    ap: &mut [c32],
6941    ipiv: &[i32],
6942    work: &mut [c32],
6943    info: &mut i32,
6944) {
6945    ffi::csptri_(
6946        &(uplo as c_char),
6947        &n,
6948        ap.as_mut_ptr() as *mut _,
6949        ipiv.as_ptr(),
6950        work.as_mut_ptr() as *mut _,
6951        info,
6952    )
6953}
6954
6955#[inline]
6956pub unsafe fn zsptri(
6957    uplo: u8,
6958    n: i32,
6959    ap: &mut [c64],
6960    ipiv: &[i32],
6961    work: &mut [c64],
6962    info: &mut i32,
6963) {
6964    ffi::zsptri_(
6965        &(uplo as c_char),
6966        &n,
6967        ap.as_mut_ptr() as *mut _,
6968        ipiv.as_ptr(),
6969        work.as_mut_ptr() as *mut _,
6970        info,
6971    )
6972}
6973
6974#[inline]
6975pub unsafe fn chptri(
6976    uplo: u8,
6977    n: i32,
6978    ap: &mut [c32],
6979    ipiv: &[i32],
6980    work: &mut [c32],
6981    info: &mut i32,
6982) {
6983    ffi::chptri_(
6984        &(uplo as c_char),
6985        &n,
6986        ap.as_mut_ptr() as *mut _,
6987        ipiv.as_ptr(),
6988        work.as_mut_ptr() as *mut _,
6989        info,
6990    )
6991}
6992
6993#[inline]
6994pub unsafe fn zhptri(
6995    uplo: u8,
6996    n: i32,
6997    ap: &mut [c64],
6998    ipiv: &[i32],
6999    work: &mut [c64],
7000    info: &mut i32,
7001) {
7002    ffi::zhptri_(
7003        &(uplo as c_char),
7004        &n,
7005        ap.as_mut_ptr() as *mut _,
7006        ipiv.as_ptr(),
7007        work.as_mut_ptr() as *mut _,
7008        info,
7009    )
7010}
7011
7012#[inline]
7013pub unsafe fn strtri(uplo: u8, diag: u8, n: i32, a: &mut [f32], lda: i32, info: &mut i32) {
7014    ffi::strtri_(
7015        &(uplo as c_char),
7016        &(diag as c_char),
7017        &n,
7018        a.as_mut_ptr(),
7019        &lda,
7020        info,
7021    )
7022}
7023
7024#[inline]
7025pub unsafe fn dtrtri(uplo: u8, diag: u8, n: i32, a: &mut [f64], lda: i32, info: &mut i32) {
7026    ffi::dtrtri_(
7027        &(uplo as c_char),
7028        &(diag as c_char),
7029        &n,
7030        a.as_mut_ptr(),
7031        &lda,
7032        info,
7033    )
7034}
7035
7036#[inline]
7037pub unsafe fn ctrtri(uplo: u8, diag: u8, n: i32, a: &mut [c32], lda: i32, info: &mut i32) {
7038    ffi::ctrtri_(
7039        &(uplo as c_char),
7040        &(diag as c_char),
7041        &n,
7042        a.as_mut_ptr() as *mut _,
7043        &lda,
7044        info,
7045    )
7046}
7047
7048#[inline]
7049pub unsafe fn ztrtri(uplo: u8, diag: u8, n: i32, a: &mut [c64], lda: i32, info: &mut i32) {
7050    ffi::ztrtri_(
7051        &(uplo as c_char),
7052        &(diag as c_char),
7053        &n,
7054        a.as_mut_ptr() as *mut _,
7055        &lda,
7056        info,
7057    )
7058}
7059
7060#[inline]
7061pub unsafe fn dtftri(transr: u8, uplo: u8, diag: u8, n: i32, a: &mut [f64], info: &mut i32) {
7062    ffi::dtftri_(
7063        &(transr as c_char),
7064        &(uplo as c_char),
7065        &(diag as c_char),
7066        &n,
7067        a.as_mut_ptr(),
7068        info,
7069    )
7070}
7071
7072#[inline]
7073pub unsafe fn stftri(transr: u8, uplo: u8, diag: u8, n: i32, a: &mut [f32], info: &mut i32) {
7074    ffi::stftri_(
7075        &(transr as c_char),
7076        &(uplo as c_char),
7077        &(diag as c_char),
7078        &n,
7079        a.as_mut_ptr(),
7080        info,
7081    )
7082}
7083
7084#[inline]
7085pub unsafe fn ztftri(transr: u8, uplo: u8, diag: u8, n: i32, a: &mut [c64], info: &mut i32) {
7086    ffi::ztftri_(
7087        &(transr as c_char),
7088        &(uplo as c_char),
7089        &(diag as c_char),
7090        &n,
7091        a.as_mut_ptr() as *mut _,
7092        info,
7093    )
7094}
7095
7096#[inline]
7097pub unsafe fn ctftri(transr: u8, uplo: u8, diag: u8, n: i32, a: &mut [c32], info: &mut i32) {
7098    ffi::ctftri_(
7099        &(transr as c_char),
7100        &(uplo as c_char),
7101        &(diag as c_char),
7102        &n,
7103        a.as_mut_ptr() as *mut _,
7104        info,
7105    )
7106}
7107
7108#[inline]
7109pub unsafe fn stptri(uplo: u8, diag: u8, n: i32, ap: &mut [f32], info: &mut i32) {
7110    ffi::stptri_(
7111        &(uplo as c_char),
7112        &(diag as c_char),
7113        &n,
7114        ap.as_mut_ptr(),
7115        info,
7116    )
7117}
7118
7119#[inline]
7120pub unsafe fn dtptri(uplo: u8, diag: u8, n: i32, ap: &mut [f64], info: &mut i32) {
7121    ffi::dtptri_(
7122        &(uplo as c_char),
7123        &(diag as c_char),
7124        &n,
7125        ap.as_mut_ptr(),
7126        info,
7127    )
7128}
7129
7130#[inline]
7131pub unsafe fn ctptri(uplo: u8, diag: u8, n: i32, ap: &mut [c32], info: &mut i32) {
7132    ffi::ctptri_(
7133        &(uplo as c_char),
7134        &(diag as c_char),
7135        &n,
7136        ap.as_mut_ptr() as *mut _,
7137        info,
7138    )
7139}
7140
7141#[inline]
7142pub unsafe fn ztptri(uplo: u8, diag: u8, n: i32, ap: &mut [c64], info: &mut i32) {
7143    ffi::ztptri_(
7144        &(uplo as c_char),
7145        &(diag as c_char),
7146        &n,
7147        ap.as_mut_ptr() as *mut _,
7148        info,
7149    )
7150}
7151
7152#[inline]
7153pub unsafe fn sgeequ(
7154    m: i32,
7155    n: i32,
7156    a: &[f32],
7157    lda: i32,
7158    r: &mut [f32],
7159    c: &mut [f32],
7160    rowcnd: &mut f32,
7161    colcnd: &mut f32,
7162    amax: &mut f32,
7163    info: &mut i32,
7164) {
7165    ffi::sgeequ_(
7166        &m,
7167        &n,
7168        a.as_ptr(),
7169        &lda,
7170        r.as_mut_ptr(),
7171        c.as_mut_ptr(),
7172        rowcnd,
7173        colcnd,
7174        amax,
7175        info,
7176    )
7177}
7178
7179#[inline]
7180pub unsafe fn dgeequ(
7181    m: i32,
7182    n: i32,
7183    a: &[f64],
7184    lda: i32,
7185    r: &mut [f64],
7186    c: &mut [f64],
7187    rowcnd: &mut f64,
7188    colcnd: &mut f64,
7189    amax: &mut f64,
7190    info: &mut i32,
7191) {
7192    ffi::dgeequ_(
7193        &m,
7194        &n,
7195        a.as_ptr(),
7196        &lda,
7197        r.as_mut_ptr(),
7198        c.as_mut_ptr(),
7199        rowcnd,
7200        colcnd,
7201        amax,
7202        info,
7203    )
7204}
7205
7206#[inline]
7207pub unsafe fn cgeequ(
7208    m: i32,
7209    n: i32,
7210    a: &[c32],
7211    lda: i32,
7212    r: &mut [f32],
7213    c: &mut [f32],
7214    rowcnd: &mut f32,
7215    colcnd: &mut f32,
7216    amax: &mut f32,
7217    info: &mut i32,
7218) {
7219    ffi::cgeequ_(
7220        &m,
7221        &n,
7222        a.as_ptr() as *const _,
7223        &lda,
7224        r.as_mut_ptr(),
7225        c.as_mut_ptr(),
7226        rowcnd,
7227        colcnd,
7228        amax,
7229        info,
7230    )
7231}
7232
7233#[inline]
7234pub unsafe fn zgeequ(
7235    m: i32,
7236    n: i32,
7237    a: &[c64],
7238    lda: i32,
7239    r: &mut [f64],
7240    c: &mut [f64],
7241    rowcnd: &mut f64,
7242    colcnd: &mut f64,
7243    amax: &mut f64,
7244    info: &mut i32,
7245) {
7246    ffi::zgeequ_(
7247        &m,
7248        &n,
7249        a.as_ptr() as *const _,
7250        &lda,
7251        r.as_mut_ptr(),
7252        c.as_mut_ptr(),
7253        rowcnd,
7254        colcnd,
7255        amax,
7256        info,
7257    )
7258}
7259
7260#[inline]
7261pub unsafe fn dgeequb(
7262    m: i32,
7263    n: i32,
7264    a: &[f64],
7265    lda: i32,
7266    r: &mut [f64],
7267    c: &mut [f64],
7268    rowcnd: &mut f64,
7269    colcnd: &mut f64,
7270    amax: &mut f64,
7271    info: &mut i32,
7272) {
7273    ffi::dgeequb_(
7274        &m,
7275        &n,
7276        a.as_ptr(),
7277        &lda,
7278        r.as_mut_ptr(),
7279        c.as_mut_ptr(),
7280        rowcnd,
7281        colcnd,
7282        amax,
7283        info,
7284    )
7285}
7286
7287#[inline]
7288pub unsafe fn sgeequb(
7289    m: i32,
7290    n: i32,
7291    a: &[f32],
7292    lda: i32,
7293    r: &mut [f32],
7294    c: &mut [f32],
7295    rowcnd: &mut f32,
7296    colcnd: &mut f32,
7297    amax: &mut f32,
7298    info: &mut i32,
7299) {
7300    ffi::sgeequb_(
7301        &m,
7302        &n,
7303        a.as_ptr(),
7304        &lda,
7305        r.as_mut_ptr(),
7306        c.as_mut_ptr(),
7307        rowcnd,
7308        colcnd,
7309        amax,
7310        info,
7311    )
7312}
7313
7314#[inline]
7315pub unsafe fn zgeequb(
7316    m: i32,
7317    n: i32,
7318    a: &[c64],
7319    lda: i32,
7320    r: &mut [f64],
7321    c: &mut [f64],
7322    rowcnd: &mut f64,
7323    colcnd: &mut f64,
7324    amax: &mut f64,
7325    info: &mut i32,
7326) {
7327    ffi::zgeequb_(
7328        &m,
7329        &n,
7330        a.as_ptr() as *const _,
7331        &lda,
7332        r.as_mut_ptr(),
7333        c.as_mut_ptr(),
7334        rowcnd,
7335        colcnd,
7336        amax,
7337        info,
7338    )
7339}
7340
7341#[inline]
7342pub unsafe fn cgeequb(
7343    m: i32,
7344    n: i32,
7345    a: &[c32],
7346    lda: i32,
7347    r: &mut [f32],
7348    c: &mut [f32],
7349    rowcnd: &mut f32,
7350    colcnd: &mut f32,
7351    amax: &mut f32,
7352    info: &mut i32,
7353) {
7354    ffi::cgeequb_(
7355        &m,
7356        &n,
7357        a.as_ptr() as *const _,
7358        &lda,
7359        r.as_mut_ptr(),
7360        c.as_mut_ptr(),
7361        rowcnd,
7362        colcnd,
7363        amax,
7364        info,
7365    )
7366}
7367
7368#[inline]
7369pub unsafe fn sgbequ(
7370    m: i32,
7371    n: i32,
7372    kl: i32,
7373    ku: i32,
7374    ab: &[f32],
7375    ldab: i32,
7376    r: &mut [f32],
7377    c: &mut [f32],
7378    rowcnd: &mut f32,
7379    colcnd: &mut f32,
7380    amax: &mut f32,
7381    info: &mut i32,
7382) {
7383    ffi::sgbequ_(
7384        &m,
7385        &n,
7386        &kl,
7387        &ku,
7388        ab.as_ptr(),
7389        &ldab,
7390        r.as_mut_ptr(),
7391        c.as_mut_ptr(),
7392        rowcnd,
7393        colcnd,
7394        amax,
7395        info,
7396    )
7397}
7398
7399#[inline]
7400pub unsafe fn dgbequ(
7401    m: i32,
7402    n: i32,
7403    kl: i32,
7404    ku: i32,
7405    ab: &[f64],
7406    ldab: i32,
7407    r: &mut [f64],
7408    c: &mut [f64],
7409    rowcnd: &mut f64,
7410    colcnd: &mut f64,
7411    amax: &mut f64,
7412    info: &mut i32,
7413) {
7414    ffi::dgbequ_(
7415        &m,
7416        &n,
7417        &kl,
7418        &ku,
7419        ab.as_ptr(),
7420        &ldab,
7421        r.as_mut_ptr(),
7422        c.as_mut_ptr(),
7423        rowcnd,
7424        colcnd,
7425        amax,
7426        info,
7427    )
7428}
7429
7430#[inline]
7431pub unsafe fn cgbequ(
7432    m: i32,
7433    n: i32,
7434    kl: i32,
7435    ku: i32,
7436    ab: &[c32],
7437    ldab: i32,
7438    r: &mut [f32],
7439    c: &mut [f32],
7440    rowcnd: &mut f32,
7441    colcnd: &mut f32,
7442    amax: &mut f32,
7443    info: &mut i32,
7444) {
7445    ffi::cgbequ_(
7446        &m,
7447        &n,
7448        &kl,
7449        &ku,
7450        ab.as_ptr() as *const _,
7451        &ldab,
7452        r.as_mut_ptr(),
7453        c.as_mut_ptr(),
7454        rowcnd,
7455        colcnd,
7456        amax,
7457        info,
7458    )
7459}
7460
7461#[inline]
7462pub unsafe fn zgbequ(
7463    m: i32,
7464    n: i32,
7465    kl: i32,
7466    ku: i32,
7467    ab: &[c64],
7468    ldab: i32,
7469    r: &mut [f64],
7470    c: &mut [f64],
7471    rowcnd: &mut f64,
7472    colcnd: &mut f64,
7473    amax: &mut f64,
7474    info: &mut i32,
7475) {
7476    ffi::zgbequ_(
7477        &m,
7478        &n,
7479        &kl,
7480        &ku,
7481        ab.as_ptr() as *const _,
7482        &ldab,
7483        r.as_mut_ptr(),
7484        c.as_mut_ptr(),
7485        rowcnd,
7486        colcnd,
7487        amax,
7488        info,
7489    )
7490}
7491
7492#[inline]
7493pub unsafe fn dgbequb(
7494    m: i32,
7495    n: i32,
7496    kl: i32,
7497    ku: i32,
7498    ab: &[f64],
7499    ldab: i32,
7500    r: &mut [f64],
7501    c: &mut [f64],
7502    rowcnd: &mut f64,
7503    colcnd: &mut f64,
7504    amax: &mut f64,
7505    info: &mut i32,
7506) {
7507    ffi::dgbequb_(
7508        &m,
7509        &n,
7510        &kl,
7511        &ku,
7512        ab.as_ptr(),
7513        &ldab,
7514        r.as_mut_ptr(),
7515        c.as_mut_ptr(),
7516        rowcnd,
7517        colcnd,
7518        amax,
7519        info,
7520    )
7521}
7522
7523#[inline]
7524pub unsafe fn sgbequb(
7525    m: i32,
7526    n: i32,
7527    kl: i32,
7528    ku: i32,
7529    ab: &[f32],
7530    ldab: i32,
7531    r: &mut [f32],
7532    c: &mut [f32],
7533    rowcnd: &mut f32,
7534    colcnd: &mut f32,
7535    amax: &mut f32,
7536    info: &mut i32,
7537) {
7538    ffi::sgbequb_(
7539        &m,
7540        &n,
7541        &kl,
7542        &ku,
7543        ab.as_ptr(),
7544        &ldab,
7545        r.as_mut_ptr(),
7546        c.as_mut_ptr(),
7547        rowcnd,
7548        colcnd,
7549        amax,
7550        info,
7551    )
7552}
7553
7554#[inline]
7555pub unsafe fn zgbequb(
7556    m: i32,
7557    n: i32,
7558    kl: i32,
7559    ku: i32,
7560    ab: &[c64],
7561    ldab: i32,
7562    r: &mut [f64],
7563    c: &mut [f64],
7564    rowcnd: &mut f64,
7565    colcnd: &mut f64,
7566    amax: &mut f64,
7567    info: &mut i32,
7568) {
7569    ffi::zgbequb_(
7570        &m,
7571        &n,
7572        &kl,
7573        &ku,
7574        ab.as_ptr() as *const _,
7575        &ldab,
7576        r.as_mut_ptr(),
7577        c.as_mut_ptr(),
7578        rowcnd,
7579        colcnd,
7580        amax,
7581        info,
7582    )
7583}
7584
7585#[inline]
7586pub unsafe fn cgbequb(
7587    m: i32,
7588    n: i32,
7589    kl: i32,
7590    ku: i32,
7591    ab: &[c32],
7592    ldab: i32,
7593    r: &mut [f32],
7594    c: &mut [f32],
7595    rowcnd: &mut f32,
7596    colcnd: &mut f32,
7597    amax: &mut f32,
7598    info: &mut i32,
7599) {
7600    ffi::cgbequb_(
7601        &m,
7602        &n,
7603        &kl,
7604        &ku,
7605        ab.as_ptr() as *const _,
7606        &ldab,
7607        r.as_mut_ptr(),
7608        c.as_mut_ptr(),
7609        rowcnd,
7610        colcnd,
7611        amax,
7612        info,
7613    )
7614}
7615
7616#[inline]
7617pub unsafe fn spoequ(
7618    n: i32,
7619    a: &[f32],
7620    lda: i32,
7621    s: &mut [f32],
7622    scond: &mut [f32],
7623    amax: &mut f32,
7624    info: &mut i32,
7625) {
7626    ffi::spoequ_(
7627        &n,
7628        a.as_ptr(),
7629        &lda,
7630        s.as_mut_ptr(),
7631        scond.as_mut_ptr(),
7632        amax,
7633        info,
7634    )
7635}
7636
7637#[inline]
7638pub unsafe fn dpoequ(
7639    n: i32,
7640    a: &[f64],
7641    lda: i32,
7642    s: &mut [f64],
7643    scond: &mut [f64],
7644    amax: &mut f64,
7645    info: &mut i32,
7646) {
7647    ffi::dpoequ_(
7648        &n,
7649        a.as_ptr(),
7650        &lda,
7651        s.as_mut_ptr(),
7652        scond.as_mut_ptr(),
7653        amax,
7654        info,
7655    )
7656}
7657
7658#[inline]
7659pub unsafe fn cpoequ(
7660    n: i32,
7661    a: &[c32],
7662    lda: i32,
7663    s: &mut [f32],
7664    scond: &mut [f32],
7665    amax: &mut f32,
7666    info: &mut i32,
7667) {
7668    ffi::cpoequ_(
7669        &n,
7670        a.as_ptr() as *const _,
7671        &lda,
7672        s.as_mut_ptr(),
7673        scond.as_mut_ptr(),
7674        amax,
7675        info,
7676    )
7677}
7678
7679#[inline]
7680pub unsafe fn zpoequ(
7681    n: i32,
7682    a: &[c64],
7683    lda: i32,
7684    s: &mut [f64],
7685    scond: &mut [f64],
7686    amax: &mut f64,
7687    info: &mut i32,
7688) {
7689    ffi::zpoequ_(
7690        &n,
7691        a.as_ptr() as *const _,
7692        &lda,
7693        s.as_mut_ptr(),
7694        scond.as_mut_ptr(),
7695        amax,
7696        info,
7697    )
7698}
7699
7700#[inline]
7701pub unsafe fn dpoequb(
7702    n: i32,
7703    a: &[f64],
7704    lda: i32,
7705    s: &mut [f64],
7706    scond: &mut [f64],
7707    amax: &mut f64,
7708    info: &mut i32,
7709) {
7710    ffi::dpoequb_(
7711        &n,
7712        a.as_ptr(),
7713        &lda,
7714        s.as_mut_ptr(),
7715        scond.as_mut_ptr(),
7716        amax,
7717        info,
7718    )
7719}
7720
7721#[inline]
7722pub unsafe fn spoequb(
7723    n: i32,
7724    a: &[f32],
7725    lda: i32,
7726    s: &mut [f32],
7727    scond: &mut [f32],
7728    amax: &mut f32,
7729    info: &mut i32,
7730) {
7731    ffi::spoequb_(
7732        &n,
7733        a.as_ptr(),
7734        &lda,
7735        s.as_mut_ptr(),
7736        scond.as_mut_ptr(),
7737        amax,
7738        info,
7739    )
7740}
7741
7742#[inline]
7743pub unsafe fn zpoequb(
7744    n: i32,
7745    a: &[c64],
7746    lda: i32,
7747    s: &mut [f64],
7748    scond: &mut [f64],
7749    amax: &mut f64,
7750    info: &mut i32,
7751) {
7752    ffi::zpoequb_(
7753        &n,
7754        a.as_ptr() as *const _,
7755        &lda,
7756        s.as_mut_ptr(),
7757        scond.as_mut_ptr(),
7758        amax,
7759        info,
7760    )
7761}
7762
7763#[inline]
7764pub unsafe fn cpoequb(
7765    n: i32,
7766    a: &[c32],
7767    lda: i32,
7768    s: &mut [f32],
7769    scond: &mut [f32],
7770    amax: &mut f32,
7771    info: &mut i32,
7772) {
7773    ffi::cpoequb_(
7774        &n,
7775        a.as_ptr() as *const _,
7776        &lda,
7777        s.as_mut_ptr(),
7778        scond.as_mut_ptr(),
7779        amax,
7780        info,
7781    )
7782}
7783
7784#[inline]
7785pub unsafe fn sppequ(
7786    uplo: u8,
7787    n: i32,
7788    ap: &[f32],
7789    s: &mut [f32],
7790    scond: &mut [f32],
7791    amax: &mut f32,
7792    info: &mut i32,
7793) {
7794    ffi::sppequ_(
7795        &(uplo as c_char),
7796        &n,
7797        ap.as_ptr(),
7798        s.as_mut_ptr(),
7799        scond.as_mut_ptr(),
7800        amax,
7801        info,
7802    )
7803}
7804
7805#[inline]
7806pub unsafe fn dppequ(
7807    uplo: u8,
7808    n: i32,
7809    ap: &[f64],
7810    s: &mut [f64],
7811    scond: &mut [f64],
7812    amax: &mut f64,
7813    info: &mut i32,
7814) {
7815    ffi::dppequ_(
7816        &(uplo as c_char),
7817        &n,
7818        ap.as_ptr(),
7819        s.as_mut_ptr(),
7820        scond.as_mut_ptr(),
7821        amax,
7822        info,
7823    )
7824}
7825
7826#[inline]
7827pub unsafe fn cppequ(
7828    uplo: u8,
7829    n: i32,
7830    ap: &[c32],
7831    s: &mut [f32],
7832    scond: &mut [f32],
7833    amax: &mut f32,
7834    info: &mut i32,
7835) {
7836    ffi::cppequ_(
7837        &(uplo as c_char),
7838        &n,
7839        ap.as_ptr() as *const _,
7840        s.as_mut_ptr(),
7841        scond.as_mut_ptr(),
7842        amax,
7843        info,
7844    )
7845}
7846
7847#[inline]
7848pub unsafe fn zppequ(
7849    uplo: u8,
7850    n: i32,
7851    ap: &[c64],
7852    s: &mut [f64],
7853    scond: &mut [f64],
7854    amax: &mut f64,
7855    info: &mut i32,
7856) {
7857    ffi::zppequ_(
7858        &(uplo as c_char),
7859        &n,
7860        ap.as_ptr() as *const _,
7861        s.as_mut_ptr(),
7862        scond.as_mut_ptr(),
7863        amax,
7864        info,
7865    )
7866}
7867
7868#[inline]
7869pub unsafe fn spbequ(
7870    uplo: u8,
7871    n: i32,
7872    kd: i32,
7873    ab: &[f32],
7874    ldab: i32,
7875    s: &mut [f32],
7876    scond: &mut [f32],
7877    amax: &mut f32,
7878    info: &mut i32,
7879) {
7880    ffi::spbequ_(
7881        &(uplo as c_char),
7882        &n,
7883        &kd,
7884        ab.as_ptr(),
7885        &ldab,
7886        s.as_mut_ptr(),
7887        scond.as_mut_ptr(),
7888        amax,
7889        info,
7890    )
7891}
7892
7893#[inline]
7894pub unsafe fn dpbequ(
7895    uplo: u8,
7896    n: i32,
7897    kd: i32,
7898    ab: &[f64],
7899    ldab: i32,
7900    s: &mut [f64],
7901    scond: &mut [f64],
7902    amax: &mut f64,
7903    info: &mut i32,
7904) {
7905    ffi::dpbequ_(
7906        &(uplo as c_char),
7907        &n,
7908        &kd,
7909        ab.as_ptr(),
7910        &ldab,
7911        s.as_mut_ptr(),
7912        scond.as_mut_ptr(),
7913        amax,
7914        info,
7915    )
7916}
7917
7918#[inline]
7919pub unsafe fn cpbequ(
7920    uplo: u8,
7921    n: i32,
7922    kd: i32,
7923    ab: &[c32],
7924    ldab: i32,
7925    s: &mut [f32],
7926    scond: &mut [f32],
7927    amax: &mut f32,
7928    info: &mut i32,
7929) {
7930    ffi::cpbequ_(
7931        &(uplo as c_char),
7932        &n,
7933        &kd,
7934        ab.as_ptr() as *const _,
7935        &ldab,
7936        s.as_mut_ptr(),
7937        scond.as_mut_ptr(),
7938        amax,
7939        info,
7940    )
7941}
7942
7943#[inline]
7944pub unsafe fn zpbequ(
7945    uplo: u8,
7946    n: i32,
7947    kd: i32,
7948    ab: &[c64],
7949    ldab: i32,
7950    s: &mut [f64],
7951    scond: &mut [f64],
7952    amax: &mut f64,
7953    info: &mut i32,
7954) {
7955    ffi::zpbequ_(
7956        &(uplo as c_char),
7957        &n,
7958        &kd,
7959        ab.as_ptr() as *const _,
7960        &ldab,
7961        s.as_mut_ptr(),
7962        scond.as_mut_ptr(),
7963        amax,
7964        info,
7965    )
7966}
7967
7968#[inline]
7969pub unsafe fn dsyequb(
7970    uplo: u8,
7971    n: i32,
7972    a: &[f64],
7973    lda: i32,
7974    s: &mut [f64],
7975    scond: &mut [f64],
7976    amax: &mut f64,
7977    work: &mut [f64],
7978    info: &mut i32,
7979) {
7980    ffi::dsyequb_(
7981        &(uplo as c_char),
7982        &n,
7983        a.as_ptr(),
7984        &lda,
7985        s.as_mut_ptr(),
7986        scond.as_mut_ptr(),
7987        amax,
7988        work.as_mut_ptr(),
7989        info,
7990    )
7991}
7992
7993#[inline]
7994pub unsafe fn ssyequb(
7995    uplo: u8,
7996    n: i32,
7997    a: &[f32],
7998    lda: i32,
7999    s: &mut [f32],
8000    scond: &mut [f32],
8001    amax: &mut f32,
8002    work: &mut [f32],
8003    info: &mut i32,
8004) {
8005    ffi::ssyequb_(
8006        &(uplo as c_char),
8007        &n,
8008        a.as_ptr(),
8009        &lda,
8010        s.as_mut_ptr(),
8011        scond.as_mut_ptr(),
8012        amax,
8013        work.as_mut_ptr(),
8014        info,
8015    )
8016}
8017
8018#[inline]
8019pub unsafe fn zsyequb(
8020    uplo: u8,
8021    n: i32,
8022    a: &[c64],
8023    lda: i32,
8024    s: &mut [f64],
8025    scond: &mut [f64],
8026    amax: &mut f64,
8027    work: &mut [c64],
8028    info: &mut i32,
8029) {
8030    ffi::zsyequb_(
8031        &(uplo as c_char),
8032        &n,
8033        a.as_ptr() as *const _,
8034        &lda,
8035        s.as_mut_ptr(),
8036        scond.as_mut_ptr(),
8037        amax,
8038        work.as_mut_ptr() as *mut _,
8039        info,
8040    )
8041}
8042
8043#[inline]
8044pub unsafe fn csyequb(
8045    uplo: u8,
8046    n: i32,
8047    a: &[c32],
8048    lda: i32,
8049    s: &mut [f32],
8050    scond: &mut [f32],
8051    amax: &mut f32,
8052    work: &mut [c32],
8053    info: &mut i32,
8054) {
8055    ffi::csyequb_(
8056        &(uplo as c_char),
8057        &n,
8058        a.as_ptr() as *const _,
8059        &lda,
8060        s.as_mut_ptr(),
8061        scond.as_mut_ptr(),
8062        amax,
8063        work.as_mut_ptr() as *mut _,
8064        info,
8065    )
8066}
8067
8068#[inline]
8069pub unsafe fn zheequb(
8070    uplo: u8,
8071    n: i32,
8072    a: &[c64],
8073    lda: i32,
8074    s: &mut [f64],
8075    scond: &mut [f64],
8076    amax: &mut f64,
8077    work: &mut [c64],
8078    info: &mut i32,
8079) {
8080    ffi::zheequb_(
8081        &(uplo as c_char),
8082        &n,
8083        a.as_ptr() as *const _,
8084        &lda,
8085        s.as_mut_ptr(),
8086        scond.as_mut_ptr(),
8087        amax,
8088        work.as_mut_ptr() as *mut _,
8089        info,
8090    )
8091}
8092
8093#[inline]
8094pub unsafe fn cheequb(
8095    uplo: u8,
8096    n: i32,
8097    a: &[c32],
8098    lda: i32,
8099    s: &mut [f32],
8100    scond: &mut [f32],
8101    amax: &mut f32,
8102    work: &mut [c32],
8103    info: &mut i32,
8104) {
8105    ffi::cheequb_(
8106        &(uplo as c_char),
8107        &n,
8108        a.as_ptr() as *const _,
8109        &lda,
8110        s.as_mut_ptr(),
8111        scond.as_mut_ptr(),
8112        amax,
8113        work.as_mut_ptr() as *mut _,
8114        info,
8115    )
8116}
8117
8118#[inline]
8119pub unsafe fn sgesv(
8120    n: i32,
8121    nrhs: i32,
8122    a: &mut [f32],
8123    lda: i32,
8124    ipiv: &mut [i32],
8125    b: &mut [f32],
8126    ldb: i32,
8127    info: &mut i32,
8128) {
8129    ffi::sgesv_(
8130        &n,
8131        &nrhs,
8132        a.as_mut_ptr(),
8133        &lda,
8134        ipiv.as_mut_ptr(),
8135        b.as_mut_ptr(),
8136        &ldb,
8137        info,
8138    )
8139}
8140
8141#[inline]
8142pub unsafe fn dgesv(
8143    n: i32,
8144    nrhs: i32,
8145    a: &mut [f64],
8146    lda: i32,
8147    ipiv: &mut [i32],
8148    b: &mut [f64],
8149    ldb: i32,
8150    info: &mut i32,
8151) {
8152    ffi::dgesv_(
8153        &n,
8154        &nrhs,
8155        a.as_mut_ptr(),
8156        &lda,
8157        ipiv.as_mut_ptr(),
8158        b.as_mut_ptr(),
8159        &ldb,
8160        info,
8161    )
8162}
8163
8164#[inline]
8165pub unsafe fn cgesv(
8166    n: i32,
8167    nrhs: i32,
8168    a: &mut [c32],
8169    lda: i32,
8170    ipiv: &mut [i32],
8171    b: &mut [c32],
8172    ldb: i32,
8173    info: &mut i32,
8174) {
8175    ffi::cgesv_(
8176        &n,
8177        &nrhs,
8178        a.as_mut_ptr() as *mut _,
8179        &lda,
8180        ipiv.as_mut_ptr(),
8181        b.as_mut_ptr() as *mut _,
8182        &ldb,
8183        info,
8184    )
8185}
8186
8187#[inline]
8188pub unsafe fn zgesv(
8189    n: i32,
8190    nrhs: i32,
8191    a: &mut [c64],
8192    lda: i32,
8193    ipiv: &mut [i32],
8194    b: &mut [c64],
8195    ldb: i32,
8196    info: &mut i32,
8197) {
8198    ffi::zgesv_(
8199        &n,
8200        &nrhs,
8201        a.as_mut_ptr() as *mut _,
8202        &lda,
8203        ipiv.as_mut_ptr(),
8204        b.as_mut_ptr() as *mut _,
8205        &ldb,
8206        info,
8207    )
8208}
8209
8210#[inline]
8211pub unsafe fn dsgesv(
8212    n: i32,
8213    nrhs: i32,
8214    a: &mut [f64],
8215    lda: i32,
8216    ipiv: &mut [i32],
8217    b: &[f64],
8218    ldb: i32,
8219    x: &mut [f64],
8220    ldx: i32,
8221    work: &mut [f64],
8222    swork: &mut [f32],
8223    iter: &mut i32,
8224    info: &mut i32,
8225) {
8226    ffi::dsgesv_(
8227        &n,
8228        &nrhs,
8229        a.as_mut_ptr(),
8230        &lda,
8231        ipiv.as_mut_ptr(),
8232        b.as_ptr(),
8233        &ldb,
8234        x.as_mut_ptr(),
8235        &ldx,
8236        work.as_mut_ptr(),
8237        swork.as_mut_ptr(),
8238        iter,
8239        info,
8240    )
8241}
8242
8243#[inline]
8244pub unsafe fn zcgesv(
8245    n: i32,
8246    nrhs: i32,
8247    a: &mut [c64],
8248    lda: i32,
8249    ipiv: &mut [i32],
8250    b: &[c64],
8251    ldb: i32,
8252    x: &mut [c64],
8253    ldx: i32,
8254    work: &mut [c64],
8255    swork: &mut [c32],
8256    rwork: &mut [f64],
8257    iter: &mut i32,
8258    info: &mut i32,
8259) {
8260    ffi::zcgesv_(
8261        &n,
8262        &nrhs,
8263        a.as_mut_ptr() as *mut _,
8264        &lda,
8265        ipiv.as_mut_ptr(),
8266        b.as_ptr() as *const _,
8267        &ldb,
8268        x.as_mut_ptr() as *mut _,
8269        &ldx,
8270        work.as_mut_ptr() as *mut _,
8271        swork.as_mut_ptr() as *mut _,
8272        rwork.as_mut_ptr(),
8273        iter,
8274        info,
8275    )
8276}
8277
8278#[inline]
8279pub unsafe fn sgesvx(
8280    fact: u8,
8281    trans: u8,
8282    n: i32,
8283    nrhs: i32,
8284    a: &mut [f32],
8285    lda: i32,
8286    af: &mut [f32],
8287    ldaf: i32,
8288    ipiv: &mut [i32],
8289    equed: &mut u8,
8290    r: &mut [f32],
8291    c: &mut [f32],
8292    b: &mut [f32],
8293    ldb: i32,
8294    x: &mut [f32],
8295    ldx: i32,
8296    rcond: &mut f32,
8297    ferr: &mut [f32],
8298    berr: &mut [f32],
8299    work: &mut [f32],
8300    iwork: &mut [i32],
8301    info: &mut i32,
8302) {
8303    ffi::sgesvx_(
8304        &(fact as c_char),
8305        &(trans as c_char),
8306        &n,
8307        &nrhs,
8308        a.as_mut_ptr(),
8309        &lda,
8310        af.as_mut_ptr(),
8311        &ldaf,
8312        ipiv.as_mut_ptr(),
8313        equed as *mut _ as *mut _,
8314        r.as_mut_ptr(),
8315        c.as_mut_ptr(),
8316        b.as_mut_ptr(),
8317        &ldb,
8318        x.as_mut_ptr(),
8319        &ldx,
8320        rcond,
8321        ferr.as_mut_ptr(),
8322        berr.as_mut_ptr(),
8323        work.as_mut_ptr(),
8324        iwork.as_mut_ptr(),
8325        info,
8326    )
8327}
8328
8329#[inline]
8330pub unsafe fn dgesvx(
8331    fact: u8,
8332    trans: u8,
8333    n: i32,
8334    nrhs: i32,
8335    a: &mut [f64],
8336    lda: i32,
8337    af: &mut [f64],
8338    ldaf: i32,
8339    ipiv: &mut [i32],
8340    equed: &mut u8,
8341    r: &mut [f64],
8342    c: &mut [f64],
8343    b: &mut [f64],
8344    ldb: i32,
8345    x: &mut [f64],
8346    ldx: i32,
8347    rcond: &mut f64,
8348    ferr: &mut [f64],
8349    berr: &mut [f64],
8350    work: &mut [f64],
8351    iwork: &mut [i32],
8352    info: &mut i32,
8353) {
8354    ffi::dgesvx_(
8355        &(fact as c_char),
8356        &(trans as c_char),
8357        &n,
8358        &nrhs,
8359        a.as_mut_ptr(),
8360        &lda,
8361        af.as_mut_ptr(),
8362        &ldaf,
8363        ipiv.as_mut_ptr(),
8364        equed as *mut _ as *mut _,
8365        r.as_mut_ptr(),
8366        c.as_mut_ptr(),
8367        b.as_mut_ptr(),
8368        &ldb,
8369        x.as_mut_ptr(),
8370        &ldx,
8371        rcond,
8372        ferr.as_mut_ptr(),
8373        berr.as_mut_ptr(),
8374        work.as_mut_ptr(),
8375        iwork.as_mut_ptr(),
8376        info,
8377    )
8378}
8379
8380#[inline]
8381pub unsafe fn cgesvx(
8382    fact: u8,
8383    trans: u8,
8384    n: i32,
8385    nrhs: i32,
8386    a: &mut [c32],
8387    lda: i32,
8388    af: &mut [c32],
8389    ldaf: i32,
8390    ipiv: &mut [i32],
8391    equed: &mut u8,
8392    r: &mut [f32],
8393    c: &mut [f32],
8394    b: &mut [c32],
8395    ldb: i32,
8396    x: &mut [c32],
8397    ldx: i32,
8398    rcond: &mut f32,
8399    ferr: &mut [f32],
8400    berr: &mut [f32],
8401    work: &mut [c32],
8402    rwork: &mut [f32],
8403    info: &mut i32,
8404) {
8405    ffi::cgesvx_(
8406        &(fact as c_char),
8407        &(trans as c_char),
8408        &n,
8409        &nrhs,
8410        a.as_mut_ptr() as *mut _,
8411        &lda,
8412        af.as_mut_ptr() as *mut _,
8413        &ldaf,
8414        ipiv.as_mut_ptr(),
8415        equed as *mut _ as *mut _,
8416        r.as_mut_ptr(),
8417        c.as_mut_ptr(),
8418        b.as_mut_ptr() as *mut _,
8419        &ldb,
8420        x.as_mut_ptr() as *mut _,
8421        &ldx,
8422        rcond,
8423        ferr.as_mut_ptr(),
8424        berr.as_mut_ptr(),
8425        work.as_mut_ptr() as *mut _,
8426        rwork.as_mut_ptr(),
8427        info,
8428    )
8429}
8430
8431#[inline]
8432pub unsafe fn zgesvx(
8433    fact: u8,
8434    trans: u8,
8435    n: i32,
8436    nrhs: i32,
8437    a: &mut [c64],
8438    lda: i32,
8439    af: &mut [c64],
8440    ldaf: i32,
8441    ipiv: &mut [i32],
8442    equed: &mut u8,
8443    r: &mut [f64],
8444    c: &mut [f64],
8445    b: &mut [c64],
8446    ldb: i32,
8447    x: &mut [c64],
8448    ldx: i32,
8449    rcond: &mut f64,
8450    ferr: &mut [f64],
8451    berr: &mut [f64],
8452    work: &mut [c64],
8453    rwork: &mut [f64],
8454    info: &mut i32,
8455) {
8456    ffi::zgesvx_(
8457        &(fact as c_char),
8458        &(trans as c_char),
8459        &n,
8460        &nrhs,
8461        a.as_mut_ptr() as *mut _,
8462        &lda,
8463        af.as_mut_ptr() as *mut _,
8464        &ldaf,
8465        ipiv.as_mut_ptr(),
8466        equed as *mut _ as *mut _,
8467        r.as_mut_ptr(),
8468        c.as_mut_ptr(),
8469        b.as_mut_ptr() as *mut _,
8470        &ldb,
8471        x.as_mut_ptr() as *mut _,
8472        &ldx,
8473        rcond,
8474        ferr.as_mut_ptr(),
8475        berr.as_mut_ptr(),
8476        work.as_mut_ptr() as *mut _,
8477        rwork.as_mut_ptr(),
8478        info,
8479    )
8480}
8481
8482#[inline]
8483pub unsafe fn dgesvxx(
8484    fact: u8,
8485    trans: u8,
8486    n: i32,
8487    nrhs: i32,
8488    a: &mut [f64],
8489    lda: i32,
8490    af: &mut [f64],
8491    ldaf: i32,
8492    ipiv: &mut [i32],
8493    equed: &mut u8,
8494    r: &mut [f64],
8495    c: &mut [f64],
8496    b: &mut [f64],
8497    ldb: i32,
8498    x: &mut [f64],
8499    ldx: i32,
8500    rcond: &mut f64,
8501    rpvgrw: &mut f64,
8502    berr: &mut [f64],
8503    n_err_bnds: i32,
8504    err_bnds_norm: &mut [f64],
8505    err_bnds_comp: &mut [f64],
8506    nparams: &[i32],
8507    params: &mut [f64],
8508    work: &mut [f64],
8509    iwork: &mut [i32],
8510    info: &mut i32,
8511) {
8512    ffi::dgesvxx_(
8513        &(fact as c_char),
8514        &(trans as c_char),
8515        &n,
8516        &nrhs,
8517        a.as_mut_ptr(),
8518        &lda,
8519        af.as_mut_ptr(),
8520        &ldaf,
8521        ipiv.as_mut_ptr(),
8522        equed as *mut _ as *mut _,
8523        r.as_mut_ptr(),
8524        c.as_mut_ptr(),
8525        b.as_mut_ptr(),
8526        &ldb,
8527        x.as_mut_ptr(),
8528        &ldx,
8529        rcond,
8530        rpvgrw,
8531        berr.as_mut_ptr(),
8532        &n_err_bnds,
8533        err_bnds_norm.as_mut_ptr(),
8534        err_bnds_comp.as_mut_ptr(),
8535        nparams.as_ptr(),
8536        params.as_mut_ptr(),
8537        work.as_mut_ptr(),
8538        iwork.as_mut_ptr(),
8539        info,
8540    )
8541}
8542
8543#[inline]
8544pub unsafe fn sgesvxx(
8545    fact: u8,
8546    trans: u8,
8547    n: i32,
8548    nrhs: i32,
8549    a: &mut [f32],
8550    lda: i32,
8551    af: &mut [f32],
8552    ldaf: i32,
8553    ipiv: &mut [i32],
8554    equed: &mut u8,
8555    r: &mut [f32],
8556    c: &mut [f32],
8557    b: &mut [f32],
8558    ldb: i32,
8559    x: &mut [f32],
8560    ldx: i32,
8561    rcond: &mut f32,
8562    rpvgrw: &mut f32,
8563    berr: &mut [f32],
8564    n_err_bnds: i32,
8565    err_bnds_norm: &mut [f32],
8566    err_bnds_comp: &mut [f32],
8567    nparams: &[i32],
8568    params: &mut [f32],
8569    work: &mut [f32],
8570    iwork: &mut [i32],
8571    info: &mut i32,
8572) {
8573    ffi::sgesvxx_(
8574        &(fact as c_char),
8575        &(trans as c_char),
8576        &n,
8577        &nrhs,
8578        a.as_mut_ptr(),
8579        &lda,
8580        af.as_mut_ptr(),
8581        &ldaf,
8582        ipiv.as_mut_ptr(),
8583        equed as *mut _ as *mut _,
8584        r.as_mut_ptr(),
8585        c.as_mut_ptr(),
8586        b.as_mut_ptr(),
8587        &ldb,
8588        x.as_mut_ptr(),
8589        &ldx,
8590        rcond,
8591        rpvgrw,
8592        berr.as_mut_ptr(),
8593        &n_err_bnds,
8594        err_bnds_norm.as_mut_ptr(),
8595        err_bnds_comp.as_mut_ptr(),
8596        nparams.as_ptr(),
8597        params.as_mut_ptr(),
8598        work.as_mut_ptr(),
8599        iwork.as_mut_ptr(),
8600        info,
8601    )
8602}
8603
8604#[inline]
8605pub unsafe fn zgesvxx(
8606    fact: u8,
8607    trans: u8,
8608    n: i32,
8609    nrhs: i32,
8610    a: &mut [c64],
8611    lda: i32,
8612    af: &mut [c64],
8613    ldaf: i32,
8614    ipiv: &mut [i32],
8615    equed: &mut u8,
8616    r: &mut [f64],
8617    c: &mut [f64],
8618    b: &mut [c64],
8619    ldb: i32,
8620    x: &mut [c64],
8621    ldx: i32,
8622    rcond: &mut f64,
8623    rpvgrw: &mut f64,
8624    berr: &mut [f64],
8625    n_err_bnds: i32,
8626    err_bnds_norm: &mut [f64],
8627    err_bnds_comp: &mut [f64],
8628    nparams: &[i32],
8629    params: &mut [f64],
8630    work: &mut [c64],
8631    rwork: &mut [f64],
8632    info: &mut i32,
8633) {
8634    ffi::zgesvxx_(
8635        &(fact as c_char),
8636        &(trans as c_char),
8637        &n,
8638        &nrhs,
8639        a.as_mut_ptr() as *mut _,
8640        &lda,
8641        af.as_mut_ptr() as *mut _,
8642        &ldaf,
8643        ipiv.as_mut_ptr(),
8644        equed as *mut _ as *mut _,
8645        r.as_mut_ptr(),
8646        c.as_mut_ptr(),
8647        b.as_mut_ptr() as *mut _,
8648        &ldb,
8649        x.as_mut_ptr() as *mut _,
8650        &ldx,
8651        rcond,
8652        rpvgrw,
8653        berr.as_mut_ptr(),
8654        &n_err_bnds,
8655        err_bnds_norm.as_mut_ptr(),
8656        err_bnds_comp.as_mut_ptr(),
8657        nparams.as_ptr(),
8658        params.as_mut_ptr(),
8659        work.as_mut_ptr() as *mut _,
8660        rwork.as_mut_ptr(),
8661        info,
8662    )
8663}
8664
8665#[inline]
8666pub unsafe fn cgesvxx(
8667    fact: u8,
8668    trans: u8,
8669    n: i32,
8670    nrhs: i32,
8671    a: &mut [c32],
8672    lda: i32,
8673    af: &mut [c32],
8674    ldaf: i32,
8675    ipiv: &mut [i32],
8676    equed: &mut u8,
8677    r: &mut [f32],
8678    c: &mut [f32],
8679    b: &mut [c32],
8680    ldb: i32,
8681    x: &mut [c32],
8682    ldx: i32,
8683    rcond: &mut f32,
8684    rpvgrw: &mut f32,
8685    berr: &mut [f32],
8686    n_err_bnds: i32,
8687    err_bnds_norm: &mut [f32],
8688    err_bnds_comp: &mut [f32],
8689    nparams: &[i32],
8690    params: &mut [f32],
8691    work: &mut [c32],
8692    rwork: &mut [f32],
8693    info: &mut i32,
8694) {
8695    ffi::cgesvxx_(
8696        &(fact as c_char),
8697        &(trans as c_char),
8698        &n,
8699        &nrhs,
8700        a.as_mut_ptr() as *mut _,
8701        &lda,
8702        af.as_mut_ptr() as *mut _,
8703        &ldaf,
8704        ipiv.as_mut_ptr(),
8705        equed as *mut _ as *mut _,
8706        r.as_mut_ptr(),
8707        c.as_mut_ptr(),
8708        b.as_mut_ptr() as *mut _,
8709        &ldb,
8710        x.as_mut_ptr() as *mut _,
8711        &ldx,
8712        rcond,
8713        rpvgrw,
8714        berr.as_mut_ptr(),
8715        &n_err_bnds,
8716        err_bnds_norm.as_mut_ptr(),
8717        err_bnds_comp.as_mut_ptr(),
8718        nparams.as_ptr(),
8719        params.as_mut_ptr(),
8720        work.as_mut_ptr() as *mut _,
8721        rwork.as_mut_ptr(),
8722        info,
8723    )
8724}
8725
8726#[inline]
8727pub unsafe fn sgbsv(
8728    n: i32,
8729    kl: i32,
8730    ku: i32,
8731    nrhs: i32,
8732    ab: &mut [f32],
8733    ldab: i32,
8734    ipiv: &mut [i32],
8735    b: &mut [f32],
8736    ldb: i32,
8737    info: &mut i32,
8738) {
8739    ffi::sgbsv_(
8740        &n,
8741        &kl,
8742        &ku,
8743        &nrhs,
8744        ab.as_mut_ptr(),
8745        &ldab,
8746        ipiv.as_mut_ptr(),
8747        b.as_mut_ptr(),
8748        &ldb,
8749        info,
8750    )
8751}
8752
8753#[inline]
8754pub unsafe fn dgbsv(
8755    n: i32,
8756    kl: i32,
8757    ku: i32,
8758    nrhs: i32,
8759    ab: &mut [f64],
8760    ldab: i32,
8761    ipiv: &mut [i32],
8762    b: &mut [f64],
8763    ldb: i32,
8764    info: &mut i32,
8765) {
8766    ffi::dgbsv_(
8767        &n,
8768        &kl,
8769        &ku,
8770        &nrhs,
8771        ab.as_mut_ptr(),
8772        &ldab,
8773        ipiv.as_mut_ptr(),
8774        b.as_mut_ptr(),
8775        &ldb,
8776        info,
8777    )
8778}
8779
8780#[inline]
8781pub unsafe fn cgbsv(
8782    n: i32,
8783    kl: i32,
8784    ku: i32,
8785    nrhs: i32,
8786    ab: &mut [c32],
8787    ldab: i32,
8788    ipiv: &mut [i32],
8789    b: &mut [c32],
8790    ldb: i32,
8791    info: &mut i32,
8792) {
8793    ffi::cgbsv_(
8794        &n,
8795        &kl,
8796        &ku,
8797        &nrhs,
8798        ab.as_mut_ptr() as *mut _,
8799        &ldab,
8800        ipiv.as_mut_ptr(),
8801        b.as_mut_ptr() as *mut _,
8802        &ldb,
8803        info,
8804    )
8805}
8806
8807#[inline]
8808pub unsafe fn zgbsv(
8809    n: i32,
8810    kl: i32,
8811    ku: i32,
8812    nrhs: i32,
8813    ab: &mut [c64],
8814    ldab: i32,
8815    ipiv: &mut [i32],
8816    b: &mut [c64],
8817    ldb: i32,
8818    info: &mut i32,
8819) {
8820    ffi::zgbsv_(
8821        &n,
8822        &kl,
8823        &ku,
8824        &nrhs,
8825        ab.as_mut_ptr() as *mut _,
8826        &ldab,
8827        ipiv.as_mut_ptr(),
8828        b.as_mut_ptr() as *mut _,
8829        &ldb,
8830        info,
8831    )
8832}
8833
8834#[inline]
8835pub unsafe fn sgbsvx(
8836    fact: u8,
8837    trans: u8,
8838    n: i32,
8839    kl: i32,
8840    ku: i32,
8841    nrhs: i32,
8842    ab: &mut [f32],
8843    ldab: i32,
8844    afb: &mut [f32],
8845    ldafb: i32,
8846    ipiv: &mut [i32],
8847    equed: &mut u8,
8848    r: &mut [f32],
8849    c: &mut [f32],
8850    b: &mut [f32],
8851    ldb: i32,
8852    x: &mut [f32],
8853    ldx: i32,
8854    rcond: &mut f32,
8855    ferr: &mut [f32],
8856    berr: &mut [f32],
8857    work: &mut [f32],
8858    iwork: &mut [i32],
8859    info: &mut i32,
8860) {
8861    ffi::sgbsvx_(
8862        &(fact as c_char),
8863        &(trans as c_char),
8864        &n,
8865        &kl,
8866        &ku,
8867        &nrhs,
8868        ab.as_mut_ptr(),
8869        &ldab,
8870        afb.as_mut_ptr(),
8871        &ldafb,
8872        ipiv.as_mut_ptr(),
8873        equed as *mut _ as *mut _,
8874        r.as_mut_ptr(),
8875        c.as_mut_ptr(),
8876        b.as_mut_ptr(),
8877        &ldb,
8878        x.as_mut_ptr(),
8879        &ldx,
8880        rcond,
8881        ferr.as_mut_ptr(),
8882        berr.as_mut_ptr(),
8883        work.as_mut_ptr(),
8884        iwork.as_mut_ptr(),
8885        info,
8886    )
8887}
8888
8889#[inline]
8890pub unsafe fn dgbsvx(
8891    fact: u8,
8892    trans: u8,
8893    n: i32,
8894    kl: i32,
8895    ku: i32,
8896    nrhs: i32,
8897    ab: &mut [f64],
8898    ldab: i32,
8899    afb: &mut [f64],
8900    ldafb: i32,
8901    ipiv: &mut [i32],
8902    equed: &mut u8,
8903    r: &mut [f64],
8904    c: &mut [f64],
8905    b: &mut [f64],
8906    ldb: i32,
8907    x: &mut [f64],
8908    ldx: i32,
8909    rcond: &mut f64,
8910    ferr: &mut [f64],
8911    berr: &mut [f64],
8912    work: &mut [f64],
8913    iwork: &mut [i32],
8914    info: &mut i32,
8915) {
8916    ffi::dgbsvx_(
8917        &(fact as c_char),
8918        &(trans as c_char),
8919        &n,
8920        &kl,
8921        &ku,
8922        &nrhs,
8923        ab.as_mut_ptr(),
8924        &ldab,
8925        afb.as_mut_ptr(),
8926        &ldafb,
8927        ipiv.as_mut_ptr(),
8928        equed as *mut _ as *mut _,
8929        r.as_mut_ptr(),
8930        c.as_mut_ptr(),
8931        b.as_mut_ptr(),
8932        &ldb,
8933        x.as_mut_ptr(),
8934        &ldx,
8935        rcond,
8936        ferr.as_mut_ptr(),
8937        berr.as_mut_ptr(),
8938        work.as_mut_ptr(),
8939        iwork.as_mut_ptr(),
8940        info,
8941    )
8942}
8943
8944#[inline]
8945pub unsafe fn cgbsvx(
8946    fact: u8,
8947    trans: u8,
8948    n: i32,
8949    kl: i32,
8950    ku: i32,
8951    nrhs: i32,
8952    ab: &mut [c32],
8953    ldab: i32,
8954    afb: &mut [c32],
8955    ldafb: i32,
8956    ipiv: &mut [i32],
8957    equed: &mut u8,
8958    r: &mut [f32],
8959    c: &mut [f32],
8960    b: &mut [c32],
8961    ldb: i32,
8962    x: &mut [c32],
8963    ldx: i32,
8964    rcond: &mut f32,
8965    ferr: &mut [f32],
8966    berr: &mut [f32],
8967    work: &mut [c32],
8968    rwork: &mut [f32],
8969    info: &mut i32,
8970) {
8971    ffi::cgbsvx_(
8972        &(fact as c_char),
8973        &(trans as c_char),
8974        &n,
8975        &kl,
8976        &ku,
8977        &nrhs,
8978        ab.as_mut_ptr() as *mut _,
8979        &ldab,
8980        afb.as_mut_ptr() as *mut _,
8981        &ldafb,
8982        ipiv.as_mut_ptr(),
8983        equed as *mut _ as *mut _,
8984        r.as_mut_ptr(),
8985        c.as_mut_ptr(),
8986        b.as_mut_ptr() as *mut _,
8987        &ldb,
8988        x.as_mut_ptr() as *mut _,
8989        &ldx,
8990        rcond,
8991        ferr.as_mut_ptr(),
8992        berr.as_mut_ptr(),
8993        work.as_mut_ptr() as *mut _,
8994        rwork.as_mut_ptr(),
8995        info,
8996    )
8997}
8998
8999#[inline]
9000pub unsafe fn zgbsvx(
9001    fact: u8,
9002    trans: u8,
9003    n: i32,
9004    kl: i32,
9005    ku: i32,
9006    nrhs: i32,
9007    ab: &mut [c64],
9008    ldab: i32,
9009    afb: &mut [c64],
9010    ldafb: i32,
9011    ipiv: &mut [i32],
9012    equed: &mut u8,
9013    r: &mut [f64],
9014    c: &mut [f64],
9015    b: &mut [c64],
9016    ldb: i32,
9017    x: &mut [c64],
9018    ldx: i32,
9019    rcond: &mut f64,
9020    ferr: &mut [f64],
9021    berr: &mut [f64],
9022    work: &mut [c64],
9023    rwork: &mut [f64],
9024    info: &mut i32,
9025) {
9026    ffi::zgbsvx_(
9027        &(fact as c_char),
9028        &(trans as c_char),
9029        &n,
9030        &kl,
9031        &ku,
9032        &nrhs,
9033        ab.as_mut_ptr() as *mut _,
9034        &ldab,
9035        afb.as_mut_ptr() as *mut _,
9036        &ldafb,
9037        ipiv.as_mut_ptr(),
9038        equed as *mut _ as *mut _,
9039        r.as_mut_ptr(),
9040        c.as_mut_ptr(),
9041        b.as_mut_ptr() as *mut _,
9042        &ldb,
9043        x.as_mut_ptr() as *mut _,
9044        &ldx,
9045        rcond,
9046        ferr.as_mut_ptr(),
9047        berr.as_mut_ptr(),
9048        work.as_mut_ptr() as *mut _,
9049        rwork.as_mut_ptr(),
9050        info,
9051    )
9052}
9053
9054#[inline]
9055pub unsafe fn dgbsvxx(
9056    fact: u8,
9057    trans: u8,
9058    n: i32,
9059    kl: i32,
9060    ku: i32,
9061    nrhs: i32,
9062    ab: &mut [f64],
9063    ldab: i32,
9064    afb: &mut [f64],
9065    ldafb: i32,
9066    ipiv: &mut [i32],
9067    equed: &mut u8,
9068    r: &mut [f64],
9069    c: &mut [f64],
9070    b: &mut [f64],
9071    ldb: i32,
9072    x: &mut [f64],
9073    ldx: i32,
9074    rcond: &mut f64,
9075    rpvgrw: &mut f64,
9076    berr: &mut [f64],
9077    n_err_bnds: i32,
9078    err_bnds_norm: &mut [f64],
9079    err_bnds_comp: &mut [f64],
9080    nparams: &[i32],
9081    params: &mut [f64],
9082    work: &mut [f64],
9083    iwork: &mut [i32],
9084    info: &mut i32,
9085) {
9086    ffi::dgbsvxx_(
9087        &(fact as c_char),
9088        &(trans as c_char),
9089        &n,
9090        &kl,
9091        &ku,
9092        &nrhs,
9093        ab.as_mut_ptr(),
9094        &ldab,
9095        afb.as_mut_ptr(),
9096        &ldafb,
9097        ipiv.as_mut_ptr(),
9098        equed as *mut _ as *mut _,
9099        r.as_mut_ptr(),
9100        c.as_mut_ptr(),
9101        b.as_mut_ptr(),
9102        &ldb,
9103        x.as_mut_ptr(),
9104        &ldx,
9105        rcond,
9106        rpvgrw,
9107        berr.as_mut_ptr(),
9108        &n_err_bnds,
9109        err_bnds_norm.as_mut_ptr(),
9110        err_bnds_comp.as_mut_ptr(),
9111        nparams.as_ptr(),
9112        params.as_mut_ptr(),
9113        work.as_mut_ptr(),
9114        iwork.as_mut_ptr(),
9115        info,
9116    )
9117}
9118
9119#[inline]
9120pub unsafe fn sgbsvxx(
9121    fact: u8,
9122    trans: u8,
9123    n: i32,
9124    kl: i32,
9125    ku: i32,
9126    nrhs: i32,
9127    ab: &mut [f32],
9128    ldab: i32,
9129    afb: &mut [f32],
9130    ldafb: i32,
9131    ipiv: &mut [i32],
9132    equed: &mut u8,
9133    r: &mut [f32],
9134    c: &mut [f32],
9135    b: &mut [f32],
9136    ldb: i32,
9137    x: &mut [f32],
9138    ldx: i32,
9139    rcond: &mut f32,
9140    rpvgrw: &mut f32,
9141    berr: &mut [f32],
9142    n_err_bnds: i32,
9143    err_bnds_norm: &mut [f32],
9144    err_bnds_comp: &mut [f32],
9145    nparams: &[i32],
9146    params: &mut [f32],
9147    work: &mut [f32],
9148    iwork: &mut [i32],
9149    info: &mut i32,
9150) {
9151    ffi::sgbsvxx_(
9152        &(fact as c_char),
9153        &(trans as c_char),
9154        &n,
9155        &kl,
9156        &ku,
9157        &nrhs,
9158        ab.as_mut_ptr(),
9159        &ldab,
9160        afb.as_mut_ptr(),
9161        &ldafb,
9162        ipiv.as_mut_ptr(),
9163        equed as *mut _ as *mut _,
9164        r.as_mut_ptr(),
9165        c.as_mut_ptr(),
9166        b.as_mut_ptr(),
9167        &ldb,
9168        x.as_mut_ptr(),
9169        &ldx,
9170        rcond,
9171        rpvgrw,
9172        berr.as_mut_ptr(),
9173        &n_err_bnds,
9174        err_bnds_norm.as_mut_ptr(),
9175        err_bnds_comp.as_mut_ptr(),
9176        nparams.as_ptr(),
9177        params.as_mut_ptr(),
9178        work.as_mut_ptr(),
9179        iwork.as_mut_ptr(),
9180        info,
9181    )
9182}
9183
9184#[inline]
9185pub unsafe fn zgbsvxx(
9186    fact: u8,
9187    trans: u8,
9188    n: i32,
9189    kl: i32,
9190    ku: i32,
9191    nrhs: i32,
9192    ab: &mut [c64],
9193    ldab: i32,
9194    afb: &mut [c64],
9195    ldafb: i32,
9196    ipiv: &mut [i32],
9197    equed: &mut u8,
9198    r: &mut [f64],
9199    c: &mut [f64],
9200    b: &mut [c64],
9201    ldb: i32,
9202    x: &mut [c64],
9203    ldx: i32,
9204    rcond: &mut f64,
9205    rpvgrw: &mut f64,
9206    berr: &mut [f64],
9207    n_err_bnds: i32,
9208    err_bnds_norm: &mut [f64],
9209    err_bnds_comp: &mut [f64],
9210    nparams: &[i32],
9211    params: &mut [f64],
9212    work: &mut [c64],
9213    rwork: &mut [f64],
9214    info: &mut i32,
9215) {
9216    ffi::zgbsvxx_(
9217        &(fact as c_char),
9218        &(trans as c_char),
9219        &n,
9220        &kl,
9221        &ku,
9222        &nrhs,
9223        ab.as_mut_ptr() as *mut _,
9224        &ldab,
9225        afb.as_mut_ptr() as *mut _,
9226        &ldafb,
9227        ipiv.as_mut_ptr(),
9228        equed as *mut _ as *mut _,
9229        r.as_mut_ptr(),
9230        c.as_mut_ptr(),
9231        b.as_mut_ptr() as *mut _,
9232        &ldb,
9233        x.as_mut_ptr() as *mut _,
9234        &ldx,
9235        rcond,
9236        rpvgrw,
9237        berr.as_mut_ptr(),
9238        &n_err_bnds,
9239        err_bnds_norm.as_mut_ptr(),
9240        err_bnds_comp.as_mut_ptr(),
9241        nparams.as_ptr(),
9242        params.as_mut_ptr(),
9243        work.as_mut_ptr() as *mut _,
9244        rwork.as_mut_ptr(),
9245        info,
9246    )
9247}
9248
9249#[inline]
9250pub unsafe fn cgbsvxx(
9251    fact: u8,
9252    trans: u8,
9253    n: i32,
9254    kl: i32,
9255    ku: i32,
9256    nrhs: i32,
9257    ab: &mut [c32],
9258    ldab: i32,
9259    afb: &mut [c32],
9260    ldafb: i32,
9261    ipiv: &mut [i32],
9262    equed: &mut u8,
9263    r: &mut [f32],
9264    c: &mut [f32],
9265    b: &mut [c32],
9266    ldb: i32,
9267    x: &mut [c32],
9268    ldx: i32,
9269    rcond: &mut f32,
9270    rpvgrw: &mut f32,
9271    berr: &mut [f32],
9272    n_err_bnds: i32,
9273    err_bnds_norm: &mut [f32],
9274    err_bnds_comp: &mut [f32],
9275    nparams: &[i32],
9276    params: &mut [f32],
9277    work: &mut [c32],
9278    rwork: &mut [f32],
9279    info: &mut i32,
9280) {
9281    ffi::cgbsvxx_(
9282        &(fact as c_char),
9283        &(trans as c_char),
9284        &n,
9285        &kl,
9286        &ku,
9287        &nrhs,
9288        ab.as_mut_ptr() as *mut _,
9289        &ldab,
9290        afb.as_mut_ptr() as *mut _,
9291        &ldafb,
9292        ipiv.as_mut_ptr(),
9293        equed as *mut _ as *mut _,
9294        r.as_mut_ptr(),
9295        c.as_mut_ptr(),
9296        b.as_mut_ptr() as *mut _,
9297        &ldb,
9298        x.as_mut_ptr() as *mut _,
9299        &ldx,
9300        rcond,
9301        rpvgrw,
9302        berr.as_mut_ptr(),
9303        &n_err_bnds,
9304        err_bnds_norm.as_mut_ptr(),
9305        err_bnds_comp.as_mut_ptr(),
9306        nparams.as_ptr(),
9307        params.as_mut_ptr(),
9308        work.as_mut_ptr() as *mut _,
9309        rwork.as_mut_ptr(),
9310        info,
9311    )
9312}
9313
9314#[inline]
9315pub unsafe fn sgtsv(
9316    n: i32,
9317    nrhs: i32,
9318    dl: &mut [f32],
9319    d: &mut [f32],
9320    du: &mut [f32],
9321    b: &mut [f32],
9322    ldb: i32,
9323    info: &mut i32,
9324) {
9325    ffi::sgtsv_(
9326        &n,
9327        &nrhs,
9328        dl.as_mut_ptr(),
9329        d.as_mut_ptr(),
9330        du.as_mut_ptr(),
9331        b.as_mut_ptr(),
9332        &ldb,
9333        info,
9334    )
9335}
9336
9337#[inline]
9338pub unsafe fn dgtsv(
9339    n: i32,
9340    nrhs: i32,
9341    dl: &mut [f64],
9342    d: &mut [f64],
9343    du: &mut [f64],
9344    b: &mut [f64],
9345    ldb: i32,
9346    info: &mut i32,
9347) {
9348    ffi::dgtsv_(
9349        &n,
9350        &nrhs,
9351        dl.as_mut_ptr(),
9352        d.as_mut_ptr(),
9353        du.as_mut_ptr(),
9354        b.as_mut_ptr(),
9355        &ldb,
9356        info,
9357    )
9358}
9359
9360#[inline]
9361pub unsafe fn cgtsv(
9362    n: i32,
9363    nrhs: i32,
9364    dl: &mut [c32],
9365    d: &mut [c32],
9366    du: &mut [c32],
9367    b: &mut [c32],
9368    ldb: i32,
9369    info: &mut i32,
9370) {
9371    ffi::cgtsv_(
9372        &n,
9373        &nrhs,
9374        dl.as_mut_ptr() as *mut _,
9375        d.as_mut_ptr() as *mut _,
9376        du.as_mut_ptr() as *mut _,
9377        b.as_mut_ptr() as *mut _,
9378        &ldb,
9379        info,
9380    )
9381}
9382
9383#[inline]
9384pub unsafe fn zgtsv(
9385    n: i32,
9386    nrhs: i32,
9387    dl: &mut [c64],
9388    d: &mut [c64],
9389    du: &mut [c64],
9390    b: &mut [c64],
9391    ldb: i32,
9392    info: &mut i32,
9393) {
9394    ffi::zgtsv_(
9395        &n,
9396        &nrhs,
9397        dl.as_mut_ptr() as *mut _,
9398        d.as_mut_ptr() as *mut _,
9399        du.as_mut_ptr() as *mut _,
9400        b.as_mut_ptr() as *mut _,
9401        &ldb,
9402        info,
9403    )
9404}
9405
9406#[inline]
9407pub unsafe fn sgtsvx(
9408    fact: u8,
9409    trans: u8,
9410    n: i32,
9411    nrhs: i32,
9412    dl: &[f32],
9413    d: &[f32],
9414    du: &[f32],
9415    dlf: &mut [f32],
9416    df: &mut [f32],
9417    duf: &mut [f32],
9418    du2: &mut [f32],
9419    ipiv: &mut [i32],
9420    b: &[f32],
9421    ldb: i32,
9422    x: &mut [f32],
9423    ldx: i32,
9424    rcond: &mut f32,
9425    ferr: &mut [f32],
9426    berr: &mut [f32],
9427    work: &mut [f32],
9428    iwork: &mut [i32],
9429    info: &mut i32,
9430) {
9431    ffi::sgtsvx_(
9432        &(fact as c_char),
9433        &(trans as c_char),
9434        &n,
9435        &nrhs,
9436        dl.as_ptr(),
9437        d.as_ptr(),
9438        du.as_ptr(),
9439        dlf.as_mut_ptr(),
9440        df.as_mut_ptr(),
9441        duf.as_mut_ptr(),
9442        du2.as_mut_ptr(),
9443        ipiv.as_mut_ptr(),
9444        b.as_ptr(),
9445        &ldb,
9446        x.as_mut_ptr(),
9447        &ldx,
9448        rcond,
9449        ferr.as_mut_ptr(),
9450        berr.as_mut_ptr(),
9451        work.as_mut_ptr(),
9452        iwork.as_mut_ptr(),
9453        info,
9454    )
9455}
9456
9457#[inline]
9458pub unsafe fn dgtsvx(
9459    fact: u8,
9460    trans: u8,
9461    n: i32,
9462    nrhs: i32,
9463    dl: &[f64],
9464    d: &[f64],
9465    du: &[f64],
9466    dlf: &mut [f64],
9467    df: &mut [f64],
9468    duf: &mut [f64],
9469    du2: &mut [f64],
9470    ipiv: &mut [i32],
9471    b: &[f64],
9472    ldb: i32,
9473    x: &mut [f64],
9474    ldx: i32,
9475    rcond: &mut f64,
9476    ferr: &mut [f64],
9477    berr: &mut [f64],
9478    work: &mut [f64],
9479    iwork: &mut [i32],
9480    info: &mut i32,
9481) {
9482    ffi::dgtsvx_(
9483        &(fact as c_char),
9484        &(trans as c_char),
9485        &n,
9486        &nrhs,
9487        dl.as_ptr(),
9488        d.as_ptr(),
9489        du.as_ptr(),
9490        dlf.as_mut_ptr(),
9491        df.as_mut_ptr(),
9492        duf.as_mut_ptr(),
9493        du2.as_mut_ptr(),
9494        ipiv.as_mut_ptr(),
9495        b.as_ptr(),
9496        &ldb,
9497        x.as_mut_ptr(),
9498        &ldx,
9499        rcond,
9500        ferr.as_mut_ptr(),
9501        berr.as_mut_ptr(),
9502        work.as_mut_ptr(),
9503        iwork.as_mut_ptr(),
9504        info,
9505    )
9506}
9507
9508#[inline]
9509pub unsafe fn cgtsvx(
9510    fact: u8,
9511    trans: u8,
9512    n: i32,
9513    nrhs: i32,
9514    dl: &[c32],
9515    d: &[c32],
9516    du: &[c32],
9517    dlf: &mut [c32],
9518    df: &mut [c32],
9519    duf: &mut [c32],
9520    du2: &mut [c32],
9521    ipiv: &mut [i32],
9522    b: &[c32],
9523    ldb: i32,
9524    x: &mut [c32],
9525    ldx: i32,
9526    rcond: &mut f32,
9527    ferr: &mut [f32],
9528    berr: &mut [f32],
9529    work: &mut [c32],
9530    rwork: &mut [f32],
9531    info: &mut i32,
9532) {
9533    ffi::cgtsvx_(
9534        &(fact as c_char),
9535        &(trans as c_char),
9536        &n,
9537        &nrhs,
9538        dl.as_ptr() as *const _,
9539        d.as_ptr() as *const _,
9540        du.as_ptr() as *const _,
9541        dlf.as_mut_ptr() as *mut _,
9542        df.as_mut_ptr() as *mut _,
9543        duf.as_mut_ptr() as *mut _,
9544        du2.as_mut_ptr() as *mut _,
9545        ipiv.as_mut_ptr(),
9546        b.as_ptr() as *const _,
9547        &ldb,
9548        x.as_mut_ptr() as *mut _,
9549        &ldx,
9550        rcond,
9551        ferr.as_mut_ptr(),
9552        berr.as_mut_ptr(),
9553        work.as_mut_ptr() as *mut _,
9554        rwork.as_mut_ptr(),
9555        info,
9556    )
9557}
9558
9559#[inline]
9560pub unsafe fn zgtsvx(
9561    fact: u8,
9562    trans: u8,
9563    n: i32,
9564    nrhs: i32,
9565    dl: &[c64],
9566    d: &[c64],
9567    du: &[c64],
9568    dlf: &mut [c64],
9569    df: &mut [c64],
9570    duf: &mut [c64],
9571    du2: &mut [c64],
9572    ipiv: &mut [i32],
9573    b: &[c64],
9574    ldb: i32,
9575    x: &mut [c64],
9576    ldx: i32,
9577    rcond: &mut f64,
9578    ferr: &mut [f64],
9579    berr: &mut [f64],
9580    work: &mut [c64],
9581    rwork: &mut [f64],
9582    info: &mut i32,
9583) {
9584    ffi::zgtsvx_(
9585        &(fact as c_char),
9586        &(trans as c_char),
9587        &n,
9588        &nrhs,
9589        dl.as_ptr() as *const _,
9590        d.as_ptr() as *const _,
9591        du.as_ptr() as *const _,
9592        dlf.as_mut_ptr() as *mut _,
9593        df.as_mut_ptr() as *mut _,
9594        duf.as_mut_ptr() as *mut _,
9595        du2.as_mut_ptr() as *mut _,
9596        ipiv.as_mut_ptr(),
9597        b.as_ptr() as *const _,
9598        &ldb,
9599        x.as_mut_ptr() as *mut _,
9600        &ldx,
9601        rcond,
9602        ferr.as_mut_ptr(),
9603        berr.as_mut_ptr(),
9604        work.as_mut_ptr() as *mut _,
9605        rwork.as_mut_ptr(),
9606        info,
9607    )
9608}
9609
9610#[inline]
9611pub unsafe fn sposv(
9612    uplo: u8,
9613    n: i32,
9614    nrhs: i32,
9615    a: &mut [f32],
9616    lda: i32,
9617    b: &mut [f32],
9618    ldb: i32,
9619    info: &mut i32,
9620) {
9621    ffi::sposv_(
9622        &(uplo as c_char),
9623        &n,
9624        &nrhs,
9625        a.as_mut_ptr(),
9626        &lda,
9627        b.as_mut_ptr(),
9628        &ldb,
9629        info,
9630    )
9631}
9632
9633#[inline]
9634pub unsafe fn dposv(
9635    uplo: u8,
9636    n: i32,
9637    nrhs: i32,
9638    a: &mut [f64],
9639    lda: i32,
9640    b: &mut [f64],
9641    ldb: i32,
9642    info: &mut i32,
9643) {
9644    ffi::dposv_(
9645        &(uplo as c_char),
9646        &n,
9647        &nrhs,
9648        a.as_mut_ptr(),
9649        &lda,
9650        b.as_mut_ptr(),
9651        &ldb,
9652        info,
9653    )
9654}
9655
9656#[inline]
9657pub unsafe fn cposv(
9658    uplo: u8,
9659    n: i32,
9660    nrhs: i32,
9661    a: &mut [c32],
9662    lda: i32,
9663    b: &mut [c32],
9664    ldb: i32,
9665    info: &mut i32,
9666) {
9667    ffi::cposv_(
9668        &(uplo as c_char),
9669        &n,
9670        &nrhs,
9671        a.as_mut_ptr() as *mut _,
9672        &lda,
9673        b.as_mut_ptr() as *mut _,
9674        &ldb,
9675        info,
9676    )
9677}
9678
9679#[inline]
9680pub unsafe fn zposv(
9681    uplo: u8,
9682    n: i32,
9683    nrhs: i32,
9684    a: &mut [c64],
9685    lda: i32,
9686    b: &mut [c64],
9687    ldb: i32,
9688    info: &mut i32,
9689) {
9690    ffi::zposv_(
9691        &(uplo as c_char),
9692        &n,
9693        &nrhs,
9694        a.as_mut_ptr() as *mut _,
9695        &lda,
9696        b.as_mut_ptr() as *mut _,
9697        &ldb,
9698        info,
9699    )
9700}
9701
9702#[inline]
9703pub unsafe fn dsposv(
9704    uplo: u8,
9705    n: i32,
9706    nrhs: i32,
9707    a: &mut [f64],
9708    lda: i32,
9709    b: &[f64],
9710    ldb: i32,
9711    x: &mut [f64],
9712    ldx: i32,
9713    work: &mut [f64],
9714    swork: &mut [f32],
9715    iter: &mut i32,
9716    info: &mut i32,
9717) {
9718    ffi::dsposv_(
9719        &(uplo as c_char),
9720        &n,
9721        &nrhs,
9722        a.as_mut_ptr(),
9723        &lda,
9724        b.as_ptr(),
9725        &ldb,
9726        x.as_mut_ptr(),
9727        &ldx,
9728        work.as_mut_ptr(),
9729        swork.as_mut_ptr(),
9730        iter,
9731        info,
9732    )
9733}
9734
9735#[inline]
9736pub unsafe fn zcposv(
9737    uplo: u8,
9738    n: i32,
9739    nrhs: i32,
9740    a: &mut [c64],
9741    lda: i32,
9742    b: &[c64],
9743    ldb: i32,
9744    x: &mut [c64],
9745    ldx: i32,
9746    work: &mut [c64],
9747    swork: &mut [c32],
9748    rwork: &mut [f64],
9749    iter: &mut i32,
9750    info: &mut i32,
9751) {
9752    ffi::zcposv_(
9753        &(uplo as c_char),
9754        &n,
9755        &nrhs,
9756        a.as_mut_ptr() as *mut _,
9757        &lda,
9758        b.as_ptr() as *const _,
9759        &ldb,
9760        x.as_mut_ptr() as *mut _,
9761        &ldx,
9762        work.as_mut_ptr() as *mut _,
9763        swork.as_mut_ptr() as *mut _,
9764        rwork.as_mut_ptr(),
9765        iter,
9766        info,
9767    )
9768}
9769
9770#[inline]
9771pub unsafe fn sposvx(
9772    fact: u8,
9773    uplo: u8,
9774    n: i32,
9775    nrhs: i32,
9776    a: &mut [f32],
9777    lda: i32,
9778    af: &mut [f32],
9779    ldaf: i32,
9780    equed: &mut u8,
9781    s: &mut [f32],
9782    b: &mut [f32],
9783    ldb: i32,
9784    x: &mut [f32],
9785    ldx: i32,
9786    rcond: &mut f32,
9787    ferr: &mut [f32],
9788    berr: &mut [f32],
9789    work: &mut [f32],
9790    iwork: &mut [i32],
9791    info: &mut i32,
9792) {
9793    ffi::sposvx_(
9794        &(fact as c_char),
9795        &(uplo as c_char),
9796        &n,
9797        &nrhs,
9798        a.as_mut_ptr(),
9799        &lda,
9800        af.as_mut_ptr(),
9801        &ldaf,
9802        equed as *mut _ as *mut _,
9803        s.as_mut_ptr(),
9804        b.as_mut_ptr(),
9805        &ldb,
9806        x.as_mut_ptr(),
9807        &ldx,
9808        rcond,
9809        ferr.as_mut_ptr(),
9810        berr.as_mut_ptr(),
9811        work.as_mut_ptr(),
9812        iwork.as_mut_ptr(),
9813        info,
9814    )
9815}
9816
9817#[inline]
9818pub unsafe fn dposvx(
9819    fact: u8,
9820    uplo: u8,
9821    n: i32,
9822    nrhs: i32,
9823    a: &mut [f64],
9824    lda: i32,
9825    af: &mut [f64],
9826    ldaf: i32,
9827    equed: &mut u8,
9828    s: &mut [f64],
9829    b: &mut [f64],
9830    ldb: i32,
9831    x: &mut [f64],
9832    ldx: i32,
9833    rcond: &mut f64,
9834    ferr: &mut [f64],
9835    berr: &mut [f64],
9836    work: &mut [f64],
9837    iwork: &mut [i32],
9838    info: &mut i32,
9839) {
9840    ffi::dposvx_(
9841        &(fact as c_char),
9842        &(uplo as c_char),
9843        &n,
9844        &nrhs,
9845        a.as_mut_ptr(),
9846        &lda,
9847        af.as_mut_ptr(),
9848        &ldaf,
9849        equed as *mut _ as *mut _,
9850        s.as_mut_ptr(),
9851        b.as_mut_ptr(),
9852        &ldb,
9853        x.as_mut_ptr(),
9854        &ldx,
9855        rcond,
9856        ferr.as_mut_ptr(),
9857        berr.as_mut_ptr(),
9858        work.as_mut_ptr(),
9859        iwork.as_mut_ptr(),
9860        info,
9861    )
9862}
9863
9864#[inline]
9865pub unsafe fn cposvx(
9866    fact: u8,
9867    uplo: u8,
9868    n: i32,
9869    nrhs: i32,
9870    a: &mut [c32],
9871    lda: i32,
9872    af: &mut [c32],
9873    ldaf: i32,
9874    equed: &mut u8,
9875    s: &mut [f32],
9876    b: &mut [c32],
9877    ldb: i32,
9878    x: &mut [c32],
9879    ldx: i32,
9880    rcond: &mut f32,
9881    ferr: &mut [f32],
9882    berr: &mut [f32],
9883    work: &mut [c32],
9884    rwork: &mut [f32],
9885    info: &mut i32,
9886) {
9887    ffi::cposvx_(
9888        &(fact as c_char),
9889        &(uplo as c_char),
9890        &n,
9891        &nrhs,
9892        a.as_mut_ptr() as *mut _,
9893        &lda,
9894        af.as_mut_ptr() as *mut _,
9895        &ldaf,
9896        equed as *mut _ as *mut _,
9897        s.as_mut_ptr(),
9898        b.as_mut_ptr() as *mut _,
9899        &ldb,
9900        x.as_mut_ptr() as *mut _,
9901        &ldx,
9902        rcond,
9903        ferr.as_mut_ptr(),
9904        berr.as_mut_ptr(),
9905        work.as_mut_ptr() as *mut _,
9906        rwork.as_mut_ptr(),
9907        info,
9908    )
9909}
9910
9911#[inline]
9912pub unsafe fn zposvx(
9913    fact: u8,
9914    uplo: u8,
9915    n: i32,
9916    nrhs: i32,
9917    a: &mut [c64],
9918    lda: i32,
9919    af: &mut [c64],
9920    ldaf: i32,
9921    equed: &mut u8,
9922    s: &mut [f64],
9923    b: &mut [c64],
9924    ldb: i32,
9925    x: &mut [c64],
9926    ldx: i32,
9927    rcond: &mut f64,
9928    ferr: &mut [f64],
9929    berr: &mut [f64],
9930    work: &mut [c64],
9931    rwork: &mut [f64],
9932    info: &mut i32,
9933) {
9934    ffi::zposvx_(
9935        &(fact as c_char),
9936        &(uplo as c_char),
9937        &n,
9938        &nrhs,
9939        a.as_mut_ptr() as *mut _,
9940        &lda,
9941        af.as_mut_ptr() as *mut _,
9942        &ldaf,
9943        equed as *mut _ as *mut _,
9944        s.as_mut_ptr(),
9945        b.as_mut_ptr() as *mut _,
9946        &ldb,
9947        x.as_mut_ptr() as *mut _,
9948        &ldx,
9949        rcond,
9950        ferr.as_mut_ptr(),
9951        berr.as_mut_ptr(),
9952        work.as_mut_ptr() as *mut _,
9953        rwork.as_mut_ptr(),
9954        info,
9955    )
9956}
9957
9958#[inline]
9959pub unsafe fn dposvxx(
9960    fact: u8,
9961    uplo: u8,
9962    n: i32,
9963    nrhs: i32,
9964    a: &mut [f64],
9965    lda: i32,
9966    af: &mut [f64],
9967    ldaf: i32,
9968    equed: &mut u8,
9969    s: &mut [f64],
9970    b: &mut [f64],
9971    ldb: i32,
9972    x: &mut [f64],
9973    ldx: i32,
9974    rcond: &mut f64,
9975    rpvgrw: &mut f64,
9976    berr: &mut [f64],
9977    n_err_bnds: i32,
9978    err_bnds_norm: &mut [f64],
9979    err_bnds_comp: &mut [f64],
9980    nparams: &[i32],
9981    params: &mut [f64],
9982    work: &mut [f64],
9983    iwork: &mut [i32],
9984    info: &mut i32,
9985) {
9986    ffi::dposvxx_(
9987        &(fact as c_char),
9988        &(uplo as c_char),
9989        &n,
9990        &nrhs,
9991        a.as_mut_ptr(),
9992        &lda,
9993        af.as_mut_ptr(),
9994        &ldaf,
9995        equed as *mut _ as *mut _,
9996        s.as_mut_ptr(),
9997        b.as_mut_ptr(),
9998        &ldb,
9999        x.as_mut_ptr(),
10000        &ldx,
10001        rcond,
10002        rpvgrw,
10003        berr.as_mut_ptr(),
10004        &n_err_bnds,
10005        err_bnds_norm.as_mut_ptr(),
10006        err_bnds_comp.as_mut_ptr(),
10007        nparams.as_ptr(),
10008        params.as_mut_ptr(),
10009        work.as_mut_ptr(),
10010        iwork.as_mut_ptr(),
10011        info,
10012    )
10013}
10014
10015#[inline]
10016pub unsafe fn sposvxx(
10017    fact: u8,
10018    uplo: u8,
10019    n: i32,
10020    nrhs: i32,
10021    a: &mut [f32],
10022    lda: i32,
10023    af: &mut [f32],
10024    ldaf: i32,
10025    equed: &mut u8,
10026    s: &mut [f32],
10027    b: &mut [f32],
10028    ldb: i32,
10029    x: &mut [f32],
10030    ldx: i32,
10031    rcond: &mut f32,
10032    rpvgrw: &mut f32,
10033    berr: &mut [f32],
10034    n_err_bnds: i32,
10035    err_bnds_norm: &mut [f32],
10036    err_bnds_comp: &mut [f32],
10037    nparams: &[i32],
10038    params: &mut [f32],
10039    work: &mut [f32],
10040    iwork: &mut [i32],
10041    info: &mut i32,
10042) {
10043    ffi::sposvxx_(
10044        &(fact as c_char),
10045        &(uplo as c_char),
10046        &n,
10047        &nrhs,
10048        a.as_mut_ptr(),
10049        &lda,
10050        af.as_mut_ptr(),
10051        &ldaf,
10052        equed as *mut _ as *mut _,
10053        s.as_mut_ptr(),
10054        b.as_mut_ptr(),
10055        &ldb,
10056        x.as_mut_ptr(),
10057        &ldx,
10058        rcond,
10059        rpvgrw,
10060        berr.as_mut_ptr(),
10061        &n_err_bnds,
10062        err_bnds_norm.as_mut_ptr(),
10063        err_bnds_comp.as_mut_ptr(),
10064        nparams.as_ptr(),
10065        params.as_mut_ptr(),
10066        work.as_mut_ptr(),
10067        iwork.as_mut_ptr(),
10068        info,
10069    )
10070}
10071
10072#[inline]
10073pub unsafe fn zposvxx(
10074    fact: u8,
10075    uplo: u8,
10076    n: i32,
10077    nrhs: i32,
10078    a: &mut [c64],
10079    lda: i32,
10080    af: &mut [c64],
10081    ldaf: i32,
10082    equed: &mut u8,
10083    s: &mut [f64],
10084    b: &mut [c64],
10085    ldb: i32,
10086    x: &mut [c64],
10087    ldx: i32,
10088    rcond: &mut f64,
10089    rpvgrw: &mut f64,
10090    berr: &mut [f64],
10091    n_err_bnds: i32,
10092    err_bnds_norm: &mut [f64],
10093    err_bnds_comp: &mut [f64],
10094    nparams: &[i32],
10095    params: &mut [f64],
10096    work: &mut [c64],
10097    rwork: &mut [f64],
10098    info: &mut i32,
10099) {
10100    ffi::zposvxx_(
10101        &(fact as c_char),
10102        &(uplo as c_char),
10103        &n,
10104        &nrhs,
10105        a.as_mut_ptr() as *mut _,
10106        &lda,
10107        af.as_mut_ptr() as *mut _,
10108        &ldaf,
10109        equed as *mut _ as *mut _,
10110        s.as_mut_ptr(),
10111        b.as_mut_ptr() as *mut _,
10112        &ldb,
10113        x.as_mut_ptr() as *mut _,
10114        &ldx,
10115        rcond,
10116        rpvgrw,
10117        berr.as_mut_ptr(),
10118        &n_err_bnds,
10119        err_bnds_norm.as_mut_ptr(),
10120        err_bnds_comp.as_mut_ptr(),
10121        nparams.as_ptr(),
10122        params.as_mut_ptr(),
10123        work.as_mut_ptr() as *mut _,
10124        rwork.as_mut_ptr(),
10125        info,
10126    )
10127}
10128
10129#[inline]
10130pub unsafe fn cposvxx(
10131    fact: u8,
10132    uplo: u8,
10133    n: i32,
10134    nrhs: i32,
10135    a: &mut [c32],
10136    lda: i32,
10137    af: &mut [c32],
10138    ldaf: i32,
10139    equed: &mut u8,
10140    s: &mut [f32],
10141    b: &mut [c32],
10142    ldb: i32,
10143    x: &mut [c32],
10144    ldx: i32,
10145    rcond: &mut f32,
10146    rpvgrw: &mut f32,
10147    berr: &mut [f32],
10148    n_err_bnds: i32,
10149    err_bnds_norm: &mut [f32],
10150    err_bnds_comp: &mut [f32],
10151    nparams: &[i32],
10152    params: &mut [f32],
10153    work: &mut [c32],
10154    rwork: &mut [f32],
10155    info: &mut i32,
10156) {
10157    ffi::cposvxx_(
10158        &(fact as c_char),
10159        &(uplo as c_char),
10160        &n,
10161        &nrhs,
10162        a.as_mut_ptr() as *mut _,
10163        &lda,
10164        af.as_mut_ptr() as *mut _,
10165        &ldaf,
10166        equed as *mut _ as *mut _,
10167        s.as_mut_ptr(),
10168        b.as_mut_ptr() as *mut _,
10169        &ldb,
10170        x.as_mut_ptr() as *mut _,
10171        &ldx,
10172        rcond,
10173        rpvgrw,
10174        berr.as_mut_ptr(),
10175        &n_err_bnds,
10176        err_bnds_norm.as_mut_ptr(),
10177        err_bnds_comp.as_mut_ptr(),
10178        nparams.as_ptr(),
10179        params.as_mut_ptr(),
10180        work.as_mut_ptr() as *mut _,
10181        rwork.as_mut_ptr(),
10182        info,
10183    )
10184}
10185
10186#[inline]
10187pub unsafe fn sppsv(
10188    uplo: u8,
10189    n: i32,
10190    nrhs: i32,
10191    ap: &mut [f32],
10192    b: &mut [f32],
10193    ldb: i32,
10194    info: &mut i32,
10195) {
10196    ffi::sppsv_(
10197        &(uplo as c_char),
10198        &n,
10199        &nrhs,
10200        ap.as_mut_ptr(),
10201        b.as_mut_ptr(),
10202        &ldb,
10203        info,
10204    )
10205}
10206
10207#[inline]
10208pub unsafe fn dppsv(
10209    uplo: u8,
10210    n: i32,
10211    nrhs: i32,
10212    ap: &mut [f64],
10213    b: &mut [f64],
10214    ldb: i32,
10215    info: &mut i32,
10216) {
10217    ffi::dppsv_(
10218        &(uplo as c_char),
10219        &n,
10220        &nrhs,
10221        ap.as_mut_ptr(),
10222        b.as_mut_ptr(),
10223        &ldb,
10224        info,
10225    )
10226}
10227
10228#[inline]
10229pub unsafe fn cppsv(
10230    uplo: u8,
10231    n: i32,
10232    nrhs: i32,
10233    ap: &mut [c32],
10234    b: &mut [c32],
10235    ldb: i32,
10236    info: &mut i32,
10237) {
10238    ffi::cppsv_(
10239        &(uplo as c_char),
10240        &n,
10241        &nrhs,
10242        ap.as_mut_ptr() as *mut _,
10243        b.as_mut_ptr() as *mut _,
10244        &ldb,
10245        info,
10246    )
10247}
10248
10249#[inline]
10250pub unsafe fn zppsv(
10251    uplo: u8,
10252    n: i32,
10253    nrhs: i32,
10254    ap: &mut [c64],
10255    b: &mut [c64],
10256    ldb: i32,
10257    info: &mut i32,
10258) {
10259    ffi::zppsv_(
10260        &(uplo as c_char),
10261        &n,
10262        &nrhs,
10263        ap.as_mut_ptr() as *mut _,
10264        b.as_mut_ptr() as *mut _,
10265        &ldb,
10266        info,
10267    )
10268}
10269
10270#[inline]
10271pub unsafe fn sppsvx(
10272    fact: u8,
10273    uplo: u8,
10274    n: i32,
10275    nrhs: i32,
10276    ap: &mut [f32],
10277    afp: &mut [f32],
10278    equed: &mut u8,
10279    s: &mut [f32],
10280    b: &mut [f32],
10281    ldb: i32,
10282    x: &mut [f32],
10283    ldx: i32,
10284    rcond: &mut f32,
10285    ferr: &mut [f32],
10286    berr: &mut [f32],
10287    work: &mut [f32],
10288    iwork: &mut [i32],
10289    info: &mut i32,
10290) {
10291    ffi::sppsvx_(
10292        &(fact as c_char),
10293        &(uplo as c_char),
10294        &n,
10295        &nrhs,
10296        ap.as_mut_ptr(),
10297        afp.as_mut_ptr(),
10298        equed as *mut _ as *mut _,
10299        s.as_mut_ptr(),
10300        b.as_mut_ptr(),
10301        &ldb,
10302        x.as_mut_ptr(),
10303        &ldx,
10304        rcond,
10305        ferr.as_mut_ptr(),
10306        berr.as_mut_ptr(),
10307        work.as_mut_ptr(),
10308        iwork.as_mut_ptr(),
10309        info,
10310    )
10311}
10312
10313#[inline]
10314pub unsafe fn dppsvx(
10315    fact: u8,
10316    uplo: u8,
10317    n: i32,
10318    nrhs: i32,
10319    ap: &mut [f64],
10320    afp: &mut [f64],
10321    equed: &mut u8,
10322    s: &mut [f64],
10323    b: &mut [f64],
10324    ldb: i32,
10325    x: &mut [f64],
10326    ldx: i32,
10327    rcond: &mut f64,
10328    ferr: &mut [f64],
10329    berr: &mut [f64],
10330    work: &mut [f64],
10331    iwork: &mut [i32],
10332    info: &mut i32,
10333) {
10334    ffi::dppsvx_(
10335        &(fact as c_char),
10336        &(uplo as c_char),
10337        &n,
10338        &nrhs,
10339        ap.as_mut_ptr(),
10340        afp.as_mut_ptr(),
10341        equed as *mut _ as *mut _,
10342        s.as_mut_ptr(),
10343        b.as_mut_ptr(),
10344        &ldb,
10345        x.as_mut_ptr(),
10346        &ldx,
10347        rcond,
10348        ferr.as_mut_ptr(),
10349        berr.as_mut_ptr(),
10350        work.as_mut_ptr(),
10351        iwork.as_mut_ptr(),
10352        info,
10353    )
10354}
10355
10356#[inline]
10357pub unsafe fn cppsvx(
10358    fact: u8,
10359    uplo: u8,
10360    n: i32,
10361    nrhs: i32,
10362    ap: &mut [c32],
10363    afp: &mut [c32],
10364    equed: &mut u8,
10365    s: &mut [f32],
10366    b: &mut [c32],
10367    ldb: i32,
10368    x: &mut [c32],
10369    ldx: i32,
10370    rcond: &mut f32,
10371    ferr: &mut [f32],
10372    berr: &mut [f32],
10373    work: &mut [c32],
10374    rwork: &mut [f32],
10375    info: &mut i32,
10376) {
10377    ffi::cppsvx_(
10378        &(fact as c_char),
10379        &(uplo as c_char),
10380        &n,
10381        &nrhs,
10382        ap.as_mut_ptr() as *mut _,
10383        afp.as_mut_ptr() as *mut _,
10384        equed as *mut _ as *mut _,
10385        s.as_mut_ptr(),
10386        b.as_mut_ptr() as *mut _,
10387        &ldb,
10388        x.as_mut_ptr() as *mut _,
10389        &ldx,
10390        rcond,
10391        ferr.as_mut_ptr(),
10392        berr.as_mut_ptr(),
10393        work.as_mut_ptr() as *mut _,
10394        rwork.as_mut_ptr(),
10395        info,
10396    )
10397}
10398
10399#[inline]
10400pub unsafe fn zppsvx(
10401    fact: u8,
10402    uplo: u8,
10403    n: i32,
10404    nrhs: i32,
10405    ap: &mut [c64],
10406    afp: &mut [c64],
10407    equed: &mut u8,
10408    s: &mut [f64],
10409    b: &mut [c64],
10410    ldb: i32,
10411    x: &mut [c64],
10412    ldx: i32,
10413    rcond: &mut f64,
10414    ferr: &mut [f64],
10415    berr: &mut [f64],
10416    work: &mut [c64],
10417    rwork: &mut [f64],
10418    info: &mut i32,
10419) {
10420    ffi::zppsvx_(
10421        &(fact as c_char),
10422        &(uplo as c_char),
10423        &n,
10424        &nrhs,
10425        ap.as_mut_ptr() as *mut _,
10426        afp.as_mut_ptr() as *mut _,
10427        equed as *mut _ as *mut _,
10428        s.as_mut_ptr(),
10429        b.as_mut_ptr() as *mut _,
10430        &ldb,
10431        x.as_mut_ptr() as *mut _,
10432        &ldx,
10433        rcond,
10434        ferr.as_mut_ptr(),
10435        berr.as_mut_ptr(),
10436        work.as_mut_ptr() as *mut _,
10437        rwork.as_mut_ptr(),
10438        info,
10439    )
10440}
10441
10442#[inline]
10443pub unsafe fn spbsv(
10444    uplo: u8,
10445    n: i32,
10446    kd: i32,
10447    nrhs: i32,
10448    ab: &mut [f32],
10449    ldab: i32,
10450    b: &mut [f32],
10451    ldb: i32,
10452    info: &mut i32,
10453) {
10454    ffi::spbsv_(
10455        &(uplo as c_char),
10456        &n,
10457        &kd,
10458        &nrhs,
10459        ab.as_mut_ptr(),
10460        &ldab,
10461        b.as_mut_ptr(),
10462        &ldb,
10463        info,
10464    )
10465}
10466
10467#[inline]
10468pub unsafe fn dpbsv(
10469    uplo: u8,
10470    n: i32,
10471    kd: i32,
10472    nrhs: i32,
10473    ab: &mut [f64],
10474    ldab: i32,
10475    b: &mut [f64],
10476    ldb: i32,
10477    info: &mut i32,
10478) {
10479    ffi::dpbsv_(
10480        &(uplo as c_char),
10481        &n,
10482        &kd,
10483        &nrhs,
10484        ab.as_mut_ptr(),
10485        &ldab,
10486        b.as_mut_ptr(),
10487        &ldb,
10488        info,
10489    )
10490}
10491
10492#[inline]
10493pub unsafe fn cpbsv(
10494    uplo: u8,
10495    n: i32,
10496    kd: i32,
10497    nrhs: i32,
10498    ab: &mut [c32],
10499    ldab: i32,
10500    b: &mut [c32],
10501    ldb: i32,
10502    info: &mut i32,
10503) {
10504    ffi::cpbsv_(
10505        &(uplo as c_char),
10506        &n,
10507        &kd,
10508        &nrhs,
10509        ab.as_mut_ptr() as *mut _,
10510        &ldab,
10511        b.as_mut_ptr() as *mut _,
10512        &ldb,
10513        info,
10514    )
10515}
10516
10517#[inline]
10518pub unsafe fn zpbsv(
10519    uplo: u8,
10520    n: i32,
10521    kd: i32,
10522    nrhs: i32,
10523    ab: &mut [c64],
10524    ldab: i32,
10525    b: &mut [c64],
10526    ldb: i32,
10527    info: &mut i32,
10528) {
10529    ffi::zpbsv_(
10530        &(uplo as c_char),
10531        &n,
10532        &kd,
10533        &nrhs,
10534        ab.as_mut_ptr() as *mut _,
10535        &ldab,
10536        b.as_mut_ptr() as *mut _,
10537        &ldb,
10538        info,
10539    )
10540}
10541
10542#[inline]
10543pub unsafe fn spbsvx(
10544    fact: u8,
10545    uplo: u8,
10546    n: i32,
10547    kd: i32,
10548    nrhs: i32,
10549    ab: &mut [f32],
10550    ldab: i32,
10551    afb: &mut [f32],
10552    ldafb: i32,
10553    equed: &mut u8,
10554    s: &mut [f32],
10555    b: &mut [f32],
10556    ldb: i32,
10557    x: &mut [f32],
10558    ldx: i32,
10559    rcond: &mut f32,
10560    ferr: &mut [f32],
10561    berr: &mut [f32],
10562    work: &mut [f32],
10563    iwork: &mut [i32],
10564    info: &mut i32,
10565) {
10566    ffi::spbsvx_(
10567        &(fact as c_char),
10568        &(uplo as c_char),
10569        &n,
10570        &kd,
10571        &nrhs,
10572        ab.as_mut_ptr(),
10573        &ldab,
10574        afb.as_mut_ptr(),
10575        &ldafb,
10576        equed as *mut _ as *mut _,
10577        s.as_mut_ptr(),
10578        b.as_mut_ptr(),
10579        &ldb,
10580        x.as_mut_ptr(),
10581        &ldx,
10582        rcond,
10583        ferr.as_mut_ptr(),
10584        berr.as_mut_ptr(),
10585        work.as_mut_ptr(),
10586        iwork.as_mut_ptr(),
10587        info,
10588    )
10589}
10590
10591#[inline]
10592pub unsafe fn dpbsvx(
10593    fact: u8,
10594    uplo: u8,
10595    n: i32,
10596    kd: i32,
10597    nrhs: i32,
10598    ab: &mut [f64],
10599    ldab: i32,
10600    afb: &mut [f64],
10601    ldafb: i32,
10602    equed: &mut u8,
10603    s: &mut [f64],
10604    b: &mut [f64],
10605    ldb: i32,
10606    x: &mut [f64],
10607    ldx: i32,
10608    rcond: &mut f64,
10609    ferr: &mut [f64],
10610    berr: &mut [f64],
10611    work: &mut [f64],
10612    iwork: &mut [i32],
10613    info: &mut i32,
10614) {
10615    ffi::dpbsvx_(
10616        &(fact as c_char),
10617        &(uplo as c_char),
10618        &n,
10619        &kd,
10620        &nrhs,
10621        ab.as_mut_ptr(),
10622        &ldab,
10623        afb.as_mut_ptr(),
10624        &ldafb,
10625        equed as *mut _ as *mut _,
10626        s.as_mut_ptr(),
10627        b.as_mut_ptr(),
10628        &ldb,
10629        x.as_mut_ptr(),
10630        &ldx,
10631        rcond,
10632        ferr.as_mut_ptr(),
10633        berr.as_mut_ptr(),
10634        work.as_mut_ptr(),
10635        iwork.as_mut_ptr(),
10636        info,
10637    )
10638}
10639
10640#[inline]
10641pub unsafe fn cpbsvx(
10642    fact: u8,
10643    uplo: u8,
10644    n: i32,
10645    kd: i32,
10646    nrhs: i32,
10647    ab: &mut [c32],
10648    ldab: i32,
10649    afb: &mut [c32],
10650    ldafb: i32,
10651    equed: &mut u8,
10652    s: &mut [f32],
10653    b: &mut [c32],
10654    ldb: i32,
10655    x: &mut [c32],
10656    ldx: i32,
10657    rcond: &mut f32,
10658    ferr: &mut [f32],
10659    berr: &mut [f32],
10660    work: &mut [c32],
10661    rwork: &mut [f32],
10662    info: &mut i32,
10663) {
10664    ffi::cpbsvx_(
10665        &(fact as c_char),
10666        &(uplo as c_char),
10667        &n,
10668        &kd,
10669        &nrhs,
10670        ab.as_mut_ptr() as *mut _,
10671        &ldab,
10672        afb.as_mut_ptr() as *mut _,
10673        &ldafb,
10674        equed as *mut _ as *mut _,
10675        s.as_mut_ptr(),
10676        b.as_mut_ptr() as *mut _,
10677        &ldb,
10678        x.as_mut_ptr() as *mut _,
10679        &ldx,
10680        rcond,
10681        ferr.as_mut_ptr(),
10682        berr.as_mut_ptr(),
10683        work.as_mut_ptr() as *mut _,
10684        rwork.as_mut_ptr(),
10685        info,
10686    )
10687}
10688
10689#[inline]
10690pub unsafe fn zpbsvx(
10691    fact: u8,
10692    uplo: u8,
10693    n: i32,
10694    kd: i32,
10695    nrhs: i32,
10696    ab: &mut [c64],
10697    ldab: i32,
10698    afb: &mut [c64],
10699    ldafb: i32,
10700    equed: &mut u8,
10701    s: &mut [f64],
10702    b: &mut [c64],
10703    ldb: i32,
10704    x: &mut [c64],
10705    ldx: i32,
10706    rcond: &mut f64,
10707    ferr: &mut [f64],
10708    berr: &mut [f64],
10709    work: &mut [c64],
10710    rwork: &mut [f64],
10711    info: &mut i32,
10712) {
10713    ffi::zpbsvx_(
10714        &(fact as c_char),
10715        &(uplo as c_char),
10716        &n,
10717        &kd,
10718        &nrhs,
10719        ab.as_mut_ptr() as *mut _,
10720        &ldab,
10721        afb.as_mut_ptr() as *mut _,
10722        &ldafb,
10723        equed as *mut _ as *mut _,
10724        s.as_mut_ptr(),
10725        b.as_mut_ptr() as *mut _,
10726        &ldb,
10727        x.as_mut_ptr() as *mut _,
10728        &ldx,
10729        rcond,
10730        ferr.as_mut_ptr(),
10731        berr.as_mut_ptr(),
10732        work.as_mut_ptr() as *mut _,
10733        rwork.as_mut_ptr(),
10734        info,
10735    )
10736}
10737
10738#[inline]
10739pub unsafe fn sptsv(
10740    n: i32,
10741    nrhs: i32,
10742    d: &mut [f32],
10743    e: &mut [f32],
10744    b: &mut [f32],
10745    ldb: i32,
10746    info: &mut i32,
10747) {
10748    ffi::sptsv_(
10749        &n,
10750        &nrhs,
10751        d.as_mut_ptr(),
10752        e.as_mut_ptr(),
10753        b.as_mut_ptr(),
10754        &ldb,
10755        info,
10756    )
10757}
10758
10759#[inline]
10760pub unsafe fn dptsv(
10761    n: i32,
10762    nrhs: i32,
10763    d: &mut [f64],
10764    e: &mut [f64],
10765    b: &mut [f64],
10766    ldb: i32,
10767    info: &mut i32,
10768) {
10769    ffi::dptsv_(
10770        &n,
10771        &nrhs,
10772        d.as_mut_ptr(),
10773        e.as_mut_ptr(),
10774        b.as_mut_ptr(),
10775        &ldb,
10776        info,
10777    )
10778}
10779
10780#[inline]
10781pub unsafe fn cptsv(
10782    n: i32,
10783    nrhs: i32,
10784    d: &mut [f32],
10785    e: &mut [c32],
10786    b: &mut [c32],
10787    ldb: i32,
10788    info: &mut i32,
10789) {
10790    ffi::cptsv_(
10791        &n,
10792        &nrhs,
10793        d.as_mut_ptr(),
10794        e.as_mut_ptr() as *mut _,
10795        b.as_mut_ptr() as *mut _,
10796        &ldb,
10797        info,
10798    )
10799}
10800
10801#[inline]
10802pub unsafe fn zptsv(
10803    n: i32,
10804    nrhs: i32,
10805    d: &mut [f64],
10806    e: &mut [c64],
10807    b: &mut [c64],
10808    ldb: i32,
10809    info: &mut i32,
10810) {
10811    ffi::zptsv_(
10812        &n,
10813        &nrhs,
10814        d.as_mut_ptr(),
10815        e.as_mut_ptr() as *mut _,
10816        b.as_mut_ptr() as *mut _,
10817        &ldb,
10818        info,
10819    )
10820}
10821
10822#[inline]
10823pub unsafe fn sptsvx(
10824    fact: u8,
10825    n: i32,
10826    nrhs: i32,
10827    d: &[f32],
10828    e: &[f32],
10829    df: &mut [f32],
10830    ef: &mut [f32],
10831    b: &[f32],
10832    ldb: i32,
10833    x: &mut [f32],
10834    ldx: i32,
10835    rcond: &mut f32,
10836    ferr: &mut [f32],
10837    berr: &mut [f32],
10838    work: &mut [f32],
10839    info: &mut i32,
10840) {
10841    ffi::sptsvx_(
10842        &(fact as c_char),
10843        &n,
10844        &nrhs,
10845        d.as_ptr(),
10846        e.as_ptr(),
10847        df.as_mut_ptr(),
10848        ef.as_mut_ptr(),
10849        b.as_ptr(),
10850        &ldb,
10851        x.as_mut_ptr(),
10852        &ldx,
10853        rcond,
10854        ferr.as_mut_ptr(),
10855        berr.as_mut_ptr(),
10856        work.as_mut_ptr(),
10857        info,
10858    )
10859}
10860
10861#[inline]
10862pub unsafe fn dptsvx(
10863    fact: u8,
10864    n: i32,
10865    nrhs: i32,
10866    d: &[f64],
10867    e: &[f64],
10868    df: &mut [f64],
10869    ef: &mut [f64],
10870    b: &[f64],
10871    ldb: i32,
10872    x: &mut [f64],
10873    ldx: i32,
10874    rcond: &mut f64,
10875    ferr: &mut [f64],
10876    berr: &mut [f64],
10877    work: &mut [f64],
10878    info: &mut i32,
10879) {
10880    ffi::dptsvx_(
10881        &(fact as c_char),
10882        &n,
10883        &nrhs,
10884        d.as_ptr(),
10885        e.as_ptr(),
10886        df.as_mut_ptr(),
10887        ef.as_mut_ptr(),
10888        b.as_ptr(),
10889        &ldb,
10890        x.as_mut_ptr(),
10891        &ldx,
10892        rcond,
10893        ferr.as_mut_ptr(),
10894        berr.as_mut_ptr(),
10895        work.as_mut_ptr(),
10896        info,
10897    )
10898}
10899
10900#[inline]
10901pub unsafe fn cptsvx(
10902    fact: u8,
10903    n: i32,
10904    nrhs: i32,
10905    d: &[f32],
10906    e: &[c32],
10907    df: &mut [f32],
10908    ef: &mut [c32],
10909    b: &[c32],
10910    ldb: i32,
10911    x: &mut [c32],
10912    ldx: i32,
10913    rcond: &mut f32,
10914    ferr: &mut [f32],
10915    berr: &mut [f32],
10916    work: &mut [c32],
10917    rwork: &mut [f32],
10918    info: &mut i32,
10919) {
10920    ffi::cptsvx_(
10921        &(fact as c_char),
10922        &n,
10923        &nrhs,
10924        d.as_ptr(),
10925        e.as_ptr() as *const _,
10926        df.as_mut_ptr(),
10927        ef.as_mut_ptr() as *mut _,
10928        b.as_ptr() as *const _,
10929        &ldb,
10930        x.as_mut_ptr() as *mut _,
10931        &ldx,
10932        rcond,
10933        ferr.as_mut_ptr(),
10934        berr.as_mut_ptr(),
10935        work.as_mut_ptr() as *mut _,
10936        rwork.as_mut_ptr(),
10937        info,
10938    )
10939}
10940
10941#[inline]
10942pub unsafe fn zptsvx(
10943    fact: u8,
10944    n: i32,
10945    nrhs: i32,
10946    d: &[f64],
10947    e: &[c64],
10948    df: &mut [f64],
10949    ef: &mut [c64],
10950    b: &[c64],
10951    ldb: i32,
10952    x: &mut [c64],
10953    ldx: i32,
10954    rcond: &mut f64,
10955    ferr: &mut [f64],
10956    berr: &mut [f64],
10957    work: &mut [c64],
10958    rwork: &mut [f64],
10959    info: &mut i32,
10960) {
10961    ffi::zptsvx_(
10962        &(fact as c_char),
10963        &n,
10964        &nrhs,
10965        d.as_ptr(),
10966        e.as_ptr() as *const _,
10967        df.as_mut_ptr(),
10968        ef.as_mut_ptr() as *mut _,
10969        b.as_ptr() as *const _,
10970        &ldb,
10971        x.as_mut_ptr() as *mut _,
10972        &ldx,
10973        rcond,
10974        ferr.as_mut_ptr(),
10975        berr.as_mut_ptr(),
10976        work.as_mut_ptr() as *mut _,
10977        rwork.as_mut_ptr(),
10978        info,
10979    )
10980}
10981
10982#[inline]
10983pub unsafe fn ssysv(
10984    uplo: u8,
10985    n: i32,
10986    nrhs: i32,
10987    a: &mut [f32],
10988    lda: i32,
10989    ipiv: &mut [i32],
10990    b: &mut [f32],
10991    ldb: i32,
10992    work: &mut [f32],
10993    lwork: i32,
10994    info: &mut i32,
10995) {
10996    ffi::ssysv_(
10997        &(uplo as c_char),
10998        &n,
10999        &nrhs,
11000        a.as_mut_ptr(),
11001        &lda,
11002        ipiv.as_mut_ptr(),
11003        b.as_mut_ptr(),
11004        &ldb,
11005        work.as_mut_ptr(),
11006        &lwork,
11007        info,
11008    )
11009}
11010
11011#[inline]
11012pub unsafe fn dsysv(
11013    uplo: u8,
11014    n: i32,
11015    nrhs: i32,
11016    a: &mut [f64],
11017    lda: i32,
11018    ipiv: &mut [i32],
11019    b: &mut [f64],
11020    ldb: i32,
11021    work: &mut [f64],
11022    lwork: i32,
11023    info: &mut i32,
11024) {
11025    ffi::dsysv_(
11026        &(uplo as c_char),
11027        &n,
11028        &nrhs,
11029        a.as_mut_ptr(),
11030        &lda,
11031        ipiv.as_mut_ptr(),
11032        b.as_mut_ptr(),
11033        &ldb,
11034        work.as_mut_ptr(),
11035        &lwork,
11036        info,
11037    )
11038}
11039
11040#[inline]
11041pub unsafe fn csysv(
11042    uplo: u8,
11043    n: i32,
11044    nrhs: i32,
11045    a: &mut [c32],
11046    lda: i32,
11047    ipiv: &mut [i32],
11048    b: &mut [c32],
11049    ldb: i32,
11050    work: &mut [c32],
11051    lwork: i32,
11052    info: &mut i32,
11053) {
11054    ffi::csysv_(
11055        &(uplo as c_char),
11056        &n,
11057        &nrhs,
11058        a.as_mut_ptr() as *mut _,
11059        &lda,
11060        ipiv.as_mut_ptr(),
11061        b.as_mut_ptr() as *mut _,
11062        &ldb,
11063        work.as_mut_ptr() as *mut _,
11064        &lwork,
11065        info,
11066    )
11067}
11068
11069#[inline]
11070pub unsafe fn zsysv(
11071    uplo: u8,
11072    n: i32,
11073    nrhs: i32,
11074    a: &mut [c64],
11075    lda: i32,
11076    ipiv: &mut [i32],
11077    b: &mut [c64],
11078    ldb: i32,
11079    work: &mut [c64],
11080    lwork: i32,
11081    info: &mut i32,
11082) {
11083    ffi::zsysv_(
11084        &(uplo as c_char),
11085        &n,
11086        &nrhs,
11087        a.as_mut_ptr() as *mut _,
11088        &lda,
11089        ipiv.as_mut_ptr(),
11090        b.as_mut_ptr() as *mut _,
11091        &ldb,
11092        work.as_mut_ptr() as *mut _,
11093        &lwork,
11094        info,
11095    )
11096}
11097
11098#[inline]
11099pub unsafe fn ssysvx(
11100    fact: u8,
11101    uplo: u8,
11102    n: i32,
11103    nrhs: i32,
11104    a: &[f32],
11105    lda: i32,
11106    af: &mut [f32],
11107    ldaf: i32,
11108    ipiv: &mut [i32],
11109    b: &[f32],
11110    ldb: i32,
11111    x: &mut [f32],
11112    ldx: i32,
11113    rcond: &mut f32,
11114    ferr: &mut [f32],
11115    berr: &mut [f32],
11116    work: &mut [f32],
11117    lwork: i32,
11118    iwork: &mut [i32],
11119    info: &mut i32,
11120) {
11121    ffi::ssysvx_(
11122        &(fact as c_char),
11123        &(uplo as c_char),
11124        &n,
11125        &nrhs,
11126        a.as_ptr(),
11127        &lda,
11128        af.as_mut_ptr(),
11129        &ldaf,
11130        ipiv.as_mut_ptr(),
11131        b.as_ptr(),
11132        &ldb,
11133        x.as_mut_ptr(),
11134        &ldx,
11135        rcond,
11136        ferr.as_mut_ptr(),
11137        berr.as_mut_ptr(),
11138        work.as_mut_ptr(),
11139        &lwork,
11140        iwork.as_mut_ptr(),
11141        info,
11142    )
11143}
11144
11145#[inline]
11146pub unsafe fn dsysvx(
11147    fact: u8,
11148    uplo: u8,
11149    n: i32,
11150    nrhs: i32,
11151    a: &[f64],
11152    lda: i32,
11153    af: &mut [f64],
11154    ldaf: i32,
11155    ipiv: &mut [i32],
11156    b: &[f64],
11157    ldb: i32,
11158    x: &mut [f64],
11159    ldx: i32,
11160    rcond: &mut f64,
11161    ferr: &mut [f64],
11162    berr: &mut [f64],
11163    work: &mut [f64],
11164    lwork: i32,
11165    iwork: &mut [i32],
11166    info: &mut i32,
11167) {
11168    ffi::dsysvx_(
11169        &(fact as c_char),
11170        &(uplo as c_char),
11171        &n,
11172        &nrhs,
11173        a.as_ptr(),
11174        &lda,
11175        af.as_mut_ptr(),
11176        &ldaf,
11177        ipiv.as_mut_ptr(),
11178        b.as_ptr(),
11179        &ldb,
11180        x.as_mut_ptr(),
11181        &ldx,
11182        rcond,
11183        ferr.as_mut_ptr(),
11184        berr.as_mut_ptr(),
11185        work.as_mut_ptr(),
11186        &lwork,
11187        iwork.as_mut_ptr(),
11188        info,
11189    )
11190}
11191
11192#[inline]
11193pub unsafe fn csysvx(
11194    fact: u8,
11195    uplo: u8,
11196    n: i32,
11197    nrhs: i32,
11198    a: &[c32],
11199    lda: i32,
11200    af: &mut [c32],
11201    ldaf: i32,
11202    ipiv: &mut [i32],
11203    b: &[c32],
11204    ldb: i32,
11205    x: &mut [c32],
11206    ldx: i32,
11207    rcond: &mut f32,
11208    ferr: &mut [f32],
11209    berr: &mut [f32],
11210    work: &mut [c32],
11211    lwork: i32,
11212    rwork: &mut [f32],
11213    info: &mut i32,
11214) {
11215    ffi::csysvx_(
11216        &(fact as c_char),
11217        &(uplo as c_char),
11218        &n,
11219        &nrhs,
11220        a.as_ptr() as *const _,
11221        &lda,
11222        af.as_mut_ptr() as *mut _,
11223        &ldaf,
11224        ipiv.as_mut_ptr(),
11225        b.as_ptr() as *const _,
11226        &ldb,
11227        x.as_mut_ptr() as *mut _,
11228        &ldx,
11229        rcond,
11230        ferr.as_mut_ptr(),
11231        berr.as_mut_ptr(),
11232        work.as_mut_ptr() as *mut _,
11233        &lwork,
11234        rwork.as_mut_ptr(),
11235        info,
11236    )
11237}
11238
11239#[inline]
11240pub unsafe fn zsysvx(
11241    fact: u8,
11242    uplo: u8,
11243    n: i32,
11244    nrhs: i32,
11245    a: &[c64],
11246    lda: i32,
11247    af: &mut [c64],
11248    ldaf: i32,
11249    ipiv: &mut [i32],
11250    b: &[c64],
11251    ldb: i32,
11252    x: &mut [c64],
11253    ldx: i32,
11254    rcond: &mut f64,
11255    ferr: &mut [f64],
11256    berr: &mut [f64],
11257    work: &mut [c64],
11258    lwork: i32,
11259    rwork: &mut [f64],
11260    info: &mut i32,
11261) {
11262    ffi::zsysvx_(
11263        &(fact as c_char),
11264        &(uplo as c_char),
11265        &n,
11266        &nrhs,
11267        a.as_ptr() as *const _,
11268        &lda,
11269        af.as_mut_ptr() as *mut _,
11270        &ldaf,
11271        ipiv.as_mut_ptr(),
11272        b.as_ptr() as *const _,
11273        &ldb,
11274        x.as_mut_ptr() as *mut _,
11275        &ldx,
11276        rcond,
11277        ferr.as_mut_ptr(),
11278        berr.as_mut_ptr(),
11279        work.as_mut_ptr() as *mut _,
11280        &lwork,
11281        rwork.as_mut_ptr(),
11282        info,
11283    )
11284}
11285
11286#[inline]
11287pub unsafe fn dsysvxx(
11288    fact: u8,
11289    uplo: u8,
11290    n: i32,
11291    nrhs: i32,
11292    a: &mut [f64],
11293    lda: i32,
11294    af: &mut [f64],
11295    ldaf: i32,
11296    ipiv: &mut [i32],
11297    equed: &mut u8,
11298    s: &mut [f64],
11299    b: &mut [f64],
11300    ldb: i32,
11301    x: &mut [f64],
11302    ldx: i32,
11303    rcond: &mut f64,
11304    rpvgrw: &mut f64,
11305    berr: &mut [f64],
11306    n_err_bnds: i32,
11307    err_bnds_norm: &mut [f64],
11308    err_bnds_comp: &mut [f64],
11309    nparams: &[i32],
11310    params: &mut [f64],
11311    work: &mut [f64],
11312    iwork: &mut [i32],
11313    info: &mut i32,
11314) {
11315    ffi::dsysvxx_(
11316        &(fact as c_char),
11317        &(uplo as c_char),
11318        &n,
11319        &nrhs,
11320        a.as_mut_ptr(),
11321        &lda,
11322        af.as_mut_ptr(),
11323        &ldaf,
11324        ipiv.as_mut_ptr(),
11325        equed as *mut _ as *mut _,
11326        s.as_mut_ptr(),
11327        b.as_mut_ptr(),
11328        &ldb,
11329        x.as_mut_ptr(),
11330        &ldx,
11331        rcond,
11332        rpvgrw,
11333        berr.as_mut_ptr(),
11334        &n_err_bnds,
11335        err_bnds_norm.as_mut_ptr(),
11336        err_bnds_comp.as_mut_ptr(),
11337        nparams.as_ptr(),
11338        params.as_mut_ptr(),
11339        work.as_mut_ptr(),
11340        iwork.as_mut_ptr(),
11341        info,
11342    )
11343}
11344
11345#[inline]
11346pub unsafe fn ssysvxx(
11347    fact: u8,
11348    uplo: u8,
11349    n: i32,
11350    nrhs: i32,
11351    a: &mut [f32],
11352    lda: i32,
11353    af: &mut [f32],
11354    ldaf: i32,
11355    ipiv: &mut [i32],
11356    equed: &mut u8,
11357    s: &mut [f32],
11358    b: &mut [f32],
11359    ldb: i32,
11360    x: &mut [f32],
11361    ldx: i32,
11362    rcond: &mut f32,
11363    rpvgrw: &mut f32,
11364    berr: &mut [f32],
11365    n_err_bnds: i32,
11366    err_bnds_norm: &mut [f32],
11367    err_bnds_comp: &mut [f32],
11368    nparams: &[i32],
11369    params: &mut [f32],
11370    work: &mut [f32],
11371    iwork: &mut [i32],
11372    info: &mut i32,
11373) {
11374    ffi::ssysvxx_(
11375        &(fact as c_char),
11376        &(uplo as c_char),
11377        &n,
11378        &nrhs,
11379        a.as_mut_ptr(),
11380        &lda,
11381        af.as_mut_ptr(),
11382        &ldaf,
11383        ipiv.as_mut_ptr(),
11384        equed as *mut _ as *mut _,
11385        s.as_mut_ptr(),
11386        b.as_mut_ptr(),
11387        &ldb,
11388        x.as_mut_ptr(),
11389        &ldx,
11390        rcond,
11391        rpvgrw,
11392        berr.as_mut_ptr(),
11393        &n_err_bnds,
11394        err_bnds_norm.as_mut_ptr(),
11395        err_bnds_comp.as_mut_ptr(),
11396        nparams.as_ptr(),
11397        params.as_mut_ptr(),
11398        work.as_mut_ptr(),
11399        iwork.as_mut_ptr(),
11400        info,
11401    )
11402}
11403
11404#[inline]
11405pub unsafe fn zsysvxx(
11406    fact: u8,
11407    uplo: u8,
11408    n: i32,
11409    nrhs: i32,
11410    a: &mut [c64],
11411    lda: i32,
11412    af: &mut [c64],
11413    ldaf: i32,
11414    ipiv: &mut [i32],
11415    equed: &mut u8,
11416    s: &mut [f64],
11417    b: &mut [c64],
11418    ldb: i32,
11419    x: &mut [c64],
11420    ldx: i32,
11421    rcond: &mut f64,
11422    rpvgrw: &mut f64,
11423    berr: &mut [f64],
11424    n_err_bnds: i32,
11425    err_bnds_norm: &mut [f64],
11426    err_bnds_comp: &mut [f64],
11427    nparams: &[i32],
11428    params: &mut [f64],
11429    work: &mut [c64],
11430    rwork: &mut [f64],
11431    info: &mut i32,
11432) {
11433    ffi::zsysvxx_(
11434        &(fact as c_char),
11435        &(uplo as c_char),
11436        &n,
11437        &nrhs,
11438        a.as_mut_ptr() as *mut _,
11439        &lda,
11440        af.as_mut_ptr() as *mut _,
11441        &ldaf,
11442        ipiv.as_mut_ptr(),
11443        equed as *mut _ as *mut _,
11444        s.as_mut_ptr(),
11445        b.as_mut_ptr() as *mut _,
11446        &ldb,
11447        x.as_mut_ptr() as *mut _,
11448        &ldx,
11449        rcond,
11450        rpvgrw,
11451        berr.as_mut_ptr(),
11452        &n_err_bnds,
11453        err_bnds_norm.as_mut_ptr(),
11454        err_bnds_comp.as_mut_ptr(),
11455        nparams.as_ptr(),
11456        params.as_mut_ptr(),
11457        work.as_mut_ptr() as *mut _,
11458        rwork.as_mut_ptr(),
11459        info,
11460    )
11461}
11462
11463#[inline]
11464pub unsafe fn csysvxx(
11465    fact: u8,
11466    uplo: u8,
11467    n: i32,
11468    nrhs: i32,
11469    a: &mut [c32],
11470    lda: i32,
11471    af: &mut [c32],
11472    ldaf: i32,
11473    ipiv: &mut [i32],
11474    equed: &mut u8,
11475    s: &mut [f32],
11476    b: &mut [c32],
11477    ldb: i32,
11478    x: &mut [c32],
11479    ldx: i32,
11480    rcond: &mut f32,
11481    rpvgrw: &mut f32,
11482    berr: &mut [f32],
11483    n_err_bnds: i32,
11484    err_bnds_norm: &mut [f32],
11485    err_bnds_comp: &mut [f32],
11486    nparams: &[i32],
11487    params: &mut [f32],
11488    work: &mut [c32],
11489    rwork: &mut [f32],
11490    info: &mut i32,
11491) {
11492    ffi::csysvxx_(
11493        &(fact as c_char),
11494        &(uplo as c_char),
11495        &n,
11496        &nrhs,
11497        a.as_mut_ptr() as *mut _,
11498        &lda,
11499        af.as_mut_ptr() as *mut _,
11500        &ldaf,
11501        ipiv.as_mut_ptr(),
11502        equed as *mut _ as *mut _,
11503        s.as_mut_ptr(),
11504        b.as_mut_ptr() as *mut _,
11505        &ldb,
11506        x.as_mut_ptr() as *mut _,
11507        &ldx,
11508        rcond,
11509        rpvgrw,
11510        berr.as_mut_ptr(),
11511        &n_err_bnds,
11512        err_bnds_norm.as_mut_ptr(),
11513        err_bnds_comp.as_mut_ptr(),
11514        nparams.as_ptr(),
11515        params.as_mut_ptr(),
11516        work.as_mut_ptr() as *mut _,
11517        rwork.as_mut_ptr(),
11518        info,
11519    )
11520}
11521
11522#[inline]
11523pub unsafe fn chesv(
11524    uplo: u8,
11525    n: i32,
11526    nrhs: i32,
11527    a: &mut [c32],
11528    lda: i32,
11529    ipiv: &mut [i32],
11530    b: &mut [c32],
11531    ldb: i32,
11532    work: &mut [c32],
11533    lwork: i32,
11534    info: &mut i32,
11535) {
11536    ffi::chesv_(
11537        &(uplo as c_char),
11538        &n,
11539        &nrhs,
11540        a.as_mut_ptr() as *mut _,
11541        &lda,
11542        ipiv.as_mut_ptr(),
11543        b.as_mut_ptr() as *mut _,
11544        &ldb,
11545        work.as_mut_ptr() as *mut _,
11546        &lwork,
11547        info,
11548    )
11549}
11550
11551#[inline]
11552pub unsafe fn zhesv(
11553    uplo: u8,
11554    n: i32,
11555    nrhs: i32,
11556    a: &mut [c64],
11557    lda: i32,
11558    ipiv: &mut [i32],
11559    b: &mut [c64],
11560    ldb: i32,
11561    work: &mut [c64],
11562    lwork: i32,
11563    info: &mut i32,
11564) {
11565    ffi::zhesv_(
11566        &(uplo as c_char),
11567        &n,
11568        &nrhs,
11569        a.as_mut_ptr() as *mut _,
11570        &lda,
11571        ipiv.as_mut_ptr(),
11572        b.as_mut_ptr() as *mut _,
11573        &ldb,
11574        work.as_mut_ptr() as *mut _,
11575        &lwork,
11576        info,
11577    )
11578}
11579
11580#[inline]
11581pub unsafe fn chesvx(
11582    fact: u8,
11583    uplo: u8,
11584    n: i32,
11585    nrhs: i32,
11586    a: &[c32],
11587    lda: i32,
11588    af: &mut [c32],
11589    ldaf: i32,
11590    ipiv: &mut [i32],
11591    b: &[c32],
11592    ldb: i32,
11593    x: &mut [c32],
11594    ldx: i32,
11595    rcond: &mut f32,
11596    ferr: &mut [f32],
11597    berr: &mut [f32],
11598    work: &mut [c32],
11599    lwork: i32,
11600    rwork: &mut [f32],
11601    info: &mut i32,
11602) {
11603    ffi::chesvx_(
11604        &(fact as c_char),
11605        &(uplo as c_char),
11606        &n,
11607        &nrhs,
11608        a.as_ptr() as *const _,
11609        &lda,
11610        af.as_mut_ptr() as *mut _,
11611        &ldaf,
11612        ipiv.as_mut_ptr(),
11613        b.as_ptr() as *const _,
11614        &ldb,
11615        x.as_mut_ptr() as *mut _,
11616        &ldx,
11617        rcond,
11618        ferr.as_mut_ptr(),
11619        berr.as_mut_ptr(),
11620        work.as_mut_ptr() as *mut _,
11621        &lwork,
11622        rwork.as_mut_ptr(),
11623        info,
11624    )
11625}
11626
11627#[inline]
11628pub unsafe fn zhesvx(
11629    fact: u8,
11630    uplo: u8,
11631    n: i32,
11632    nrhs: i32,
11633    a: &[c64],
11634    lda: i32,
11635    af: &mut [c64],
11636    ldaf: i32,
11637    ipiv: &mut [i32],
11638    b: &[c64],
11639    ldb: i32,
11640    x: &mut [c64],
11641    ldx: i32,
11642    rcond: &mut f64,
11643    ferr: &mut [f64],
11644    berr: &mut [f64],
11645    work: &mut [c64],
11646    lwork: i32,
11647    rwork: &mut [f64],
11648    info: &mut i32,
11649) {
11650    ffi::zhesvx_(
11651        &(fact as c_char),
11652        &(uplo as c_char),
11653        &n,
11654        &nrhs,
11655        a.as_ptr() as *const _,
11656        &lda,
11657        af.as_mut_ptr() as *mut _,
11658        &ldaf,
11659        ipiv.as_mut_ptr(),
11660        b.as_ptr() as *const _,
11661        &ldb,
11662        x.as_mut_ptr() as *mut _,
11663        &ldx,
11664        rcond,
11665        ferr.as_mut_ptr(),
11666        berr.as_mut_ptr(),
11667        work.as_mut_ptr() as *mut _,
11668        &lwork,
11669        rwork.as_mut_ptr(),
11670        info,
11671    )
11672}
11673
11674#[inline]
11675pub unsafe fn zhesvxx(
11676    fact: u8,
11677    uplo: u8,
11678    n: i32,
11679    nrhs: i32,
11680    a: &mut [c64],
11681    lda: i32,
11682    af: &mut [c64],
11683    ldaf: i32,
11684    ipiv: &mut [i32],
11685    equed: &mut u8,
11686    s: &mut [f64],
11687    b: &mut [c64],
11688    ldb: i32,
11689    x: &mut [c64],
11690    ldx: i32,
11691    rcond: &mut f64,
11692    rpvgrw: &mut f64,
11693    berr: &mut [f64],
11694    n_err_bnds: i32,
11695    err_bnds_norm: &mut [f64],
11696    err_bnds_comp: &mut [f64],
11697    nparams: &[i32],
11698    params: &mut [f64],
11699    work: &mut [c64],
11700    rwork: &mut [f64],
11701    info: &mut i32,
11702) {
11703    ffi::zhesvxx_(
11704        &(fact as c_char),
11705        &(uplo as c_char),
11706        &n,
11707        &nrhs,
11708        a.as_mut_ptr() as *mut _,
11709        &lda,
11710        af.as_mut_ptr() as *mut _,
11711        &ldaf,
11712        ipiv.as_mut_ptr(),
11713        equed as *mut _ as *mut _,
11714        s.as_mut_ptr(),
11715        b.as_mut_ptr() as *mut _,
11716        &ldb,
11717        x.as_mut_ptr() as *mut _,
11718        &ldx,
11719        rcond,
11720        rpvgrw,
11721        berr.as_mut_ptr(),
11722        &n_err_bnds,
11723        err_bnds_norm.as_mut_ptr(),
11724        err_bnds_comp.as_mut_ptr(),
11725        nparams.as_ptr(),
11726        params.as_mut_ptr(),
11727        work.as_mut_ptr() as *mut _,
11728        rwork.as_mut_ptr(),
11729        info,
11730    )
11731}
11732
11733#[inline]
11734pub unsafe fn chesvxx(
11735    fact: u8,
11736    uplo: u8,
11737    n: i32,
11738    nrhs: i32,
11739    a: &mut [c32],
11740    lda: i32,
11741    af: &mut [c32],
11742    ldaf: i32,
11743    ipiv: &mut [i32],
11744    equed: &mut u8,
11745    s: &mut [f32],
11746    b: &mut [c32],
11747    ldb: i32,
11748    x: &mut [c32],
11749    ldx: i32,
11750    rcond: &mut f32,
11751    rpvgrw: &mut f32,
11752    berr: &mut [f32],
11753    n_err_bnds: i32,
11754    err_bnds_norm: &mut [f32],
11755    err_bnds_comp: &mut [f32],
11756    nparams: &[i32],
11757    params: &mut [f32],
11758    work: &mut [c32],
11759    rwork: &mut [f32],
11760    info: &mut i32,
11761) {
11762    ffi::chesvxx_(
11763        &(fact as c_char),
11764        &(uplo as c_char),
11765        &n,
11766        &nrhs,
11767        a.as_mut_ptr() as *mut _,
11768        &lda,
11769        af.as_mut_ptr() as *mut _,
11770        &ldaf,
11771        ipiv.as_mut_ptr(),
11772        equed as *mut _ as *mut _,
11773        s.as_mut_ptr(),
11774        b.as_mut_ptr() as *mut _,
11775        &ldb,
11776        x.as_mut_ptr() as *mut _,
11777        &ldx,
11778        rcond,
11779        rpvgrw,
11780        berr.as_mut_ptr(),
11781        &n_err_bnds,
11782        err_bnds_norm.as_mut_ptr(),
11783        err_bnds_comp.as_mut_ptr(),
11784        nparams.as_ptr(),
11785        params.as_mut_ptr(),
11786        work.as_mut_ptr() as *mut _,
11787        rwork.as_mut_ptr(),
11788        info,
11789    )
11790}
11791
11792#[inline]
11793pub unsafe fn sspsv(
11794    uplo: u8,
11795    n: i32,
11796    nrhs: i32,
11797    ap: &mut [f32],
11798    ipiv: &mut [i32],
11799    b: &mut [f32],
11800    ldb: i32,
11801    info: &mut i32,
11802) {
11803    ffi::sspsv_(
11804        &(uplo as c_char),
11805        &n,
11806        &nrhs,
11807        ap.as_mut_ptr(),
11808        ipiv.as_mut_ptr(),
11809        b.as_mut_ptr(),
11810        &ldb,
11811        info,
11812    )
11813}
11814
11815#[inline]
11816pub unsafe fn dspsv(
11817    uplo: u8,
11818    n: i32,
11819    nrhs: i32,
11820    ap: &mut [f64],
11821    ipiv: &mut [i32],
11822    b: &mut [f64],
11823    ldb: i32,
11824    info: &mut i32,
11825) {
11826    ffi::dspsv_(
11827        &(uplo as c_char),
11828        &n,
11829        &nrhs,
11830        ap.as_mut_ptr(),
11831        ipiv.as_mut_ptr(),
11832        b.as_mut_ptr(),
11833        &ldb,
11834        info,
11835    )
11836}
11837
11838#[inline]
11839pub unsafe fn cspsv(
11840    uplo: u8,
11841    n: i32,
11842    nrhs: i32,
11843    ap: &mut [c32],
11844    ipiv: &mut [i32],
11845    b: &mut [c32],
11846    ldb: i32,
11847    info: &mut i32,
11848) {
11849    ffi::cspsv_(
11850        &(uplo as c_char),
11851        &n,
11852        &nrhs,
11853        ap.as_mut_ptr() as *mut _,
11854        ipiv.as_mut_ptr(),
11855        b.as_mut_ptr() as *mut _,
11856        &ldb,
11857        info,
11858    )
11859}
11860
11861#[inline]
11862pub unsafe fn zspsv(
11863    uplo: u8,
11864    n: i32,
11865    nrhs: i32,
11866    ap: &mut [c64],
11867    ipiv: &mut [i32],
11868    b: &mut [c64],
11869    ldb: i32,
11870    info: &mut i32,
11871) {
11872    ffi::zspsv_(
11873        &(uplo as c_char),
11874        &n,
11875        &nrhs,
11876        ap.as_mut_ptr() as *mut _,
11877        ipiv.as_mut_ptr(),
11878        b.as_mut_ptr() as *mut _,
11879        &ldb,
11880        info,
11881    )
11882}
11883
11884#[inline]
11885pub unsafe fn sspsvx(
11886    fact: u8,
11887    uplo: u8,
11888    n: i32,
11889    nrhs: i32,
11890    ap: &[f32],
11891    afp: &mut [f32],
11892    ipiv: &mut [i32],
11893    b: &[f32],
11894    ldb: i32,
11895    x: &mut [f32],
11896    ldx: i32,
11897    rcond: &mut f32,
11898    ferr: &mut [f32],
11899    berr: &mut [f32],
11900    work: &mut [f32],
11901    iwork: &mut [i32],
11902    info: &mut i32,
11903) {
11904    ffi::sspsvx_(
11905        &(fact as c_char),
11906        &(uplo as c_char),
11907        &n,
11908        &nrhs,
11909        ap.as_ptr(),
11910        afp.as_mut_ptr(),
11911        ipiv.as_mut_ptr(),
11912        b.as_ptr(),
11913        &ldb,
11914        x.as_mut_ptr(),
11915        &ldx,
11916        rcond,
11917        ferr.as_mut_ptr(),
11918        berr.as_mut_ptr(),
11919        work.as_mut_ptr(),
11920        iwork.as_mut_ptr(),
11921        info,
11922    )
11923}
11924
11925#[inline]
11926pub unsafe fn dspsvx(
11927    fact: u8,
11928    uplo: u8,
11929    n: i32,
11930    nrhs: i32,
11931    ap: &[f64],
11932    afp: &mut [f64],
11933    ipiv: &mut [i32],
11934    b: &[f64],
11935    ldb: i32,
11936    x: &mut [f64],
11937    ldx: i32,
11938    rcond: &mut f64,
11939    ferr: &mut [f64],
11940    berr: &mut [f64],
11941    work: &mut [f64],
11942    iwork: &mut [i32],
11943    info: &mut i32,
11944) {
11945    ffi::dspsvx_(
11946        &(fact as c_char),
11947        &(uplo as c_char),
11948        &n,
11949        &nrhs,
11950        ap.as_ptr(),
11951        afp.as_mut_ptr(),
11952        ipiv.as_mut_ptr(),
11953        b.as_ptr(),
11954        &ldb,
11955        x.as_mut_ptr(),
11956        &ldx,
11957        rcond,
11958        ferr.as_mut_ptr(),
11959        berr.as_mut_ptr(),
11960        work.as_mut_ptr(),
11961        iwork.as_mut_ptr(),
11962        info,
11963    )
11964}
11965
11966#[inline]
11967pub unsafe fn cspsvx(
11968    fact: u8,
11969    uplo: u8,
11970    n: i32,
11971    nrhs: i32,
11972    ap: &[c32],
11973    afp: &mut [c32],
11974    ipiv: &mut [i32],
11975    b: &[c32],
11976    ldb: i32,
11977    x: &mut [c32],
11978    ldx: i32,
11979    rcond: &mut f32,
11980    ferr: &mut [f32],
11981    berr: &mut [f32],
11982    work: &mut [c32],
11983    rwork: &mut [f32],
11984    info: &mut i32,
11985) {
11986    ffi::cspsvx_(
11987        &(fact as c_char),
11988        &(uplo as c_char),
11989        &n,
11990        &nrhs,
11991        ap.as_ptr() as *const _,
11992        afp.as_mut_ptr() as *mut _,
11993        ipiv.as_mut_ptr(),
11994        b.as_ptr() as *const _,
11995        &ldb,
11996        x.as_mut_ptr() as *mut _,
11997        &ldx,
11998        rcond,
11999        ferr.as_mut_ptr(),
12000        berr.as_mut_ptr(),
12001        work.as_mut_ptr() as *mut _,
12002        rwork.as_mut_ptr(),
12003        info,
12004    )
12005}
12006
12007#[inline]
12008pub unsafe fn zspsvx(
12009    fact: u8,
12010    uplo: u8,
12011    n: i32,
12012    nrhs: i32,
12013    ap: &[c64],
12014    afp: &mut [c64],
12015    ipiv: &mut [i32],
12016    b: &[c64],
12017    ldb: i32,
12018    x: &mut [c64],
12019    ldx: i32,
12020    rcond: &mut f64,
12021    ferr: &mut [f64],
12022    berr: &mut [f64],
12023    work: &mut [c64],
12024    rwork: &mut [f64],
12025    info: &mut i32,
12026) {
12027    ffi::zspsvx_(
12028        &(fact as c_char),
12029        &(uplo as c_char),
12030        &n,
12031        &nrhs,
12032        ap.as_ptr() as *const _,
12033        afp.as_mut_ptr() as *mut _,
12034        ipiv.as_mut_ptr(),
12035        b.as_ptr() as *const _,
12036        &ldb,
12037        x.as_mut_ptr() as *mut _,
12038        &ldx,
12039        rcond,
12040        ferr.as_mut_ptr(),
12041        berr.as_mut_ptr(),
12042        work.as_mut_ptr() as *mut _,
12043        rwork.as_mut_ptr(),
12044        info,
12045    )
12046}
12047
12048#[inline]
12049pub unsafe fn chpsv(
12050    uplo: u8,
12051    n: i32,
12052    nrhs: i32,
12053    ap: &mut [c32],
12054    ipiv: &mut [i32],
12055    b: &mut [c32],
12056    ldb: i32,
12057    info: &mut i32,
12058) {
12059    ffi::chpsv_(
12060        &(uplo as c_char),
12061        &n,
12062        &nrhs,
12063        ap.as_mut_ptr() as *mut _,
12064        ipiv.as_mut_ptr(),
12065        b.as_mut_ptr() as *mut _,
12066        &ldb,
12067        info,
12068    )
12069}
12070
12071#[inline]
12072pub unsafe fn zhpsv(
12073    uplo: u8,
12074    n: i32,
12075    nrhs: i32,
12076    ap: &mut [c64],
12077    ipiv: &mut [i32],
12078    b: &mut [c64],
12079    ldb: i32,
12080    info: &mut i32,
12081) {
12082    ffi::zhpsv_(
12083        &(uplo as c_char),
12084        &n,
12085        &nrhs,
12086        ap.as_mut_ptr() as *mut _,
12087        ipiv.as_mut_ptr(),
12088        b.as_mut_ptr() as *mut _,
12089        &ldb,
12090        info,
12091    )
12092}
12093
12094#[inline]
12095pub unsafe fn chpsvx(
12096    fact: u8,
12097    uplo: u8,
12098    n: i32,
12099    nrhs: i32,
12100    ap: &[c32],
12101    afp: &mut [c32],
12102    ipiv: &mut [i32],
12103    b: &[c32],
12104    ldb: i32,
12105    x: &mut [c32],
12106    ldx: i32,
12107    rcond: &mut f32,
12108    ferr: &mut [f32],
12109    berr: &mut [f32],
12110    work: &mut [c32],
12111    rwork: &mut [f32],
12112    info: &mut i32,
12113) {
12114    ffi::chpsvx_(
12115        &(fact as c_char),
12116        &(uplo as c_char),
12117        &n,
12118        &nrhs,
12119        ap.as_ptr() as *const _,
12120        afp.as_mut_ptr() as *mut _,
12121        ipiv.as_mut_ptr(),
12122        b.as_ptr() as *const _,
12123        &ldb,
12124        x.as_mut_ptr() as *mut _,
12125        &ldx,
12126        rcond,
12127        ferr.as_mut_ptr(),
12128        berr.as_mut_ptr(),
12129        work.as_mut_ptr() as *mut _,
12130        rwork.as_mut_ptr(),
12131        info,
12132    )
12133}
12134
12135#[inline]
12136pub unsafe fn zhpsvx(
12137    fact: u8,
12138    uplo: u8,
12139    n: i32,
12140    nrhs: i32,
12141    ap: &[c64],
12142    afp: &mut [c64],
12143    ipiv: &mut [i32],
12144    b: &[c64],
12145    ldb: i32,
12146    x: &mut [c64],
12147    ldx: i32,
12148    rcond: &mut f64,
12149    ferr: &mut [f64],
12150    berr: &mut [f64],
12151    work: &mut [c64],
12152    rwork: &mut [f64],
12153    info: &mut i32,
12154) {
12155    ffi::zhpsvx_(
12156        &(fact as c_char),
12157        &(uplo as c_char),
12158        &n,
12159        &nrhs,
12160        ap.as_ptr() as *const _,
12161        afp.as_mut_ptr() as *mut _,
12162        ipiv.as_mut_ptr(),
12163        b.as_ptr() as *const _,
12164        &ldb,
12165        x.as_mut_ptr() as *mut _,
12166        &ldx,
12167        rcond,
12168        ferr.as_mut_ptr(),
12169        berr.as_mut_ptr(),
12170        work.as_mut_ptr() as *mut _,
12171        rwork.as_mut_ptr(),
12172        info,
12173    )
12174}
12175
12176#[inline]
12177pub unsafe fn sgeqrf(
12178    m: i32,
12179    n: i32,
12180    a: &mut [f32],
12181    lda: i32,
12182    tau: &mut [f32],
12183    work: &mut [f32],
12184    lwork: i32,
12185    info: &mut i32,
12186) {
12187    ffi::sgeqrf_(
12188        &m,
12189        &n,
12190        a.as_mut_ptr(),
12191        &lda,
12192        tau.as_mut_ptr(),
12193        work.as_mut_ptr(),
12194        &lwork,
12195        info,
12196    )
12197}
12198
12199#[inline]
12200pub unsafe fn dgeqrf(
12201    m: i32,
12202    n: i32,
12203    a: &mut [f64],
12204    lda: i32,
12205    tau: &mut [f64],
12206    work: &mut [f64],
12207    lwork: i32,
12208    info: &mut i32,
12209) {
12210    ffi::dgeqrf_(
12211        &m,
12212        &n,
12213        a.as_mut_ptr(),
12214        &lda,
12215        tau.as_mut_ptr(),
12216        work.as_mut_ptr(),
12217        &lwork,
12218        info,
12219    )
12220}
12221
12222#[inline]
12223pub unsafe fn cgeqrf(
12224    m: i32,
12225    n: i32,
12226    a: &mut [c32],
12227    lda: i32,
12228    tau: &mut [c32],
12229    work: &mut [c32],
12230    lwork: i32,
12231    info: &mut i32,
12232) {
12233    ffi::cgeqrf_(
12234        &m,
12235        &n,
12236        a.as_mut_ptr() as *mut _,
12237        &lda,
12238        tau.as_mut_ptr() as *mut _,
12239        work.as_mut_ptr() as *mut _,
12240        &lwork,
12241        info,
12242    )
12243}
12244
12245#[inline]
12246pub unsafe fn zgeqrf(
12247    m: i32,
12248    n: i32,
12249    a: &mut [c64],
12250    lda: i32,
12251    tau: &mut [c64],
12252    work: &mut [c64],
12253    lwork: i32,
12254    info: &mut i32,
12255) {
12256    ffi::zgeqrf_(
12257        &m,
12258        &n,
12259        a.as_mut_ptr() as *mut _,
12260        &lda,
12261        tau.as_mut_ptr() as *mut _,
12262        work.as_mut_ptr() as *mut _,
12263        &lwork,
12264        info,
12265    )
12266}
12267
12268#[inline]
12269pub unsafe fn sgeqpf(
12270    m: i32,
12271    n: i32,
12272    a: &mut [f32],
12273    lda: i32,
12274    jpvt: &mut [i32],
12275    tau: &mut [f32],
12276    work: &mut [f32],
12277    info: &mut i32,
12278) {
12279    ffi::sgeqpf_(
12280        &m,
12281        &n,
12282        a.as_mut_ptr(),
12283        &lda,
12284        jpvt.as_mut_ptr(),
12285        tau.as_mut_ptr(),
12286        work.as_mut_ptr(),
12287        info,
12288    )
12289}
12290
12291#[inline]
12292pub unsafe fn dgeqpf(
12293    m: i32,
12294    n: i32,
12295    a: &mut [f64],
12296    lda: i32,
12297    jpvt: &mut [i32],
12298    tau: &mut [f64],
12299    work: &mut [f64],
12300    info: &mut i32,
12301) {
12302    ffi::dgeqpf_(
12303        &m,
12304        &n,
12305        a.as_mut_ptr(),
12306        &lda,
12307        jpvt.as_mut_ptr(),
12308        tau.as_mut_ptr(),
12309        work.as_mut_ptr(),
12310        info,
12311    )
12312}
12313
12314#[inline]
12315pub unsafe fn cgeqpf(
12316    m: i32,
12317    n: i32,
12318    a: &mut [c32],
12319    lda: i32,
12320    jpvt: &mut [i32],
12321    tau: &mut [c32],
12322    work: &mut [c32],
12323    rwork: &mut [f32],
12324    info: &mut i32,
12325) {
12326    ffi::cgeqpf_(
12327        &m,
12328        &n,
12329        a.as_mut_ptr() as *mut _,
12330        &lda,
12331        jpvt.as_mut_ptr(),
12332        tau.as_mut_ptr() as *mut _,
12333        work.as_mut_ptr() as *mut _,
12334        rwork.as_mut_ptr(),
12335        info,
12336    )
12337}
12338
12339#[inline]
12340pub unsafe fn zgeqpf(
12341    m: i32,
12342    n: i32,
12343    a: &mut [c64],
12344    lda: i32,
12345    jpvt: &mut [i32],
12346    tau: &mut [c64],
12347    work: &mut [c64],
12348    rwork: &mut [f64],
12349    info: &mut i32,
12350) {
12351    ffi::zgeqpf_(
12352        &m,
12353        &n,
12354        a.as_mut_ptr() as *mut _,
12355        &lda,
12356        jpvt.as_mut_ptr(),
12357        tau.as_mut_ptr() as *mut _,
12358        work.as_mut_ptr() as *mut _,
12359        rwork.as_mut_ptr(),
12360        info,
12361    )
12362}
12363
12364#[inline]
12365pub unsafe fn sgeqp3(
12366    m: i32,
12367    n: i32,
12368    a: &mut [f32],
12369    lda: i32,
12370    jpvt: &mut [i32],
12371    tau: &mut [f32],
12372    work: &mut [f32],
12373    lwork: i32,
12374    info: &mut i32,
12375) {
12376    ffi::sgeqp3_(
12377        &m,
12378        &n,
12379        a.as_mut_ptr(),
12380        &lda,
12381        jpvt.as_mut_ptr(),
12382        tau.as_mut_ptr(),
12383        work.as_mut_ptr(),
12384        &lwork,
12385        info,
12386    )
12387}
12388
12389#[inline]
12390pub unsafe fn dgeqp3(
12391    m: i32,
12392    n: i32,
12393    a: &mut [f64],
12394    lda: i32,
12395    jpvt: &mut [i32],
12396    tau: &mut [f64],
12397    work: &mut [f64],
12398    lwork: i32,
12399    info: &mut i32,
12400) {
12401    ffi::dgeqp3_(
12402        &m,
12403        &n,
12404        a.as_mut_ptr(),
12405        &lda,
12406        jpvt.as_mut_ptr(),
12407        tau.as_mut_ptr(),
12408        work.as_mut_ptr(),
12409        &lwork,
12410        info,
12411    )
12412}
12413
12414#[inline]
12415pub unsafe fn cgeqp3(
12416    m: i32,
12417    n: i32,
12418    a: &mut [c32],
12419    lda: i32,
12420    jpvt: &mut [i32],
12421    tau: &mut [c32],
12422    work: &mut [c32],
12423    lwork: i32,
12424    rwork: &mut [f32],
12425    info: &mut i32,
12426) {
12427    ffi::cgeqp3_(
12428        &m,
12429        &n,
12430        a.as_mut_ptr() as *mut _,
12431        &lda,
12432        jpvt.as_mut_ptr(),
12433        tau.as_mut_ptr() as *mut _,
12434        work.as_mut_ptr() as *mut _,
12435        &lwork,
12436        rwork.as_mut_ptr(),
12437        info,
12438    )
12439}
12440
12441#[inline]
12442pub unsafe fn zgeqp3(
12443    m: i32,
12444    n: i32,
12445    a: &mut [c64],
12446    lda: i32,
12447    jpvt: &mut [i32],
12448    tau: &mut [c64],
12449    work: &mut [c64],
12450    lwork: i32,
12451    rwork: &mut [f64],
12452    info: &mut i32,
12453) {
12454    ffi::zgeqp3_(
12455        &m,
12456        &n,
12457        a.as_mut_ptr() as *mut _,
12458        &lda,
12459        jpvt.as_mut_ptr(),
12460        tau.as_mut_ptr() as *mut _,
12461        work.as_mut_ptr() as *mut _,
12462        &lwork,
12463        rwork.as_mut_ptr(),
12464        info,
12465    )
12466}
12467
12468#[inline]
12469pub unsafe fn sorgqr(
12470    m: i32,
12471    n: i32,
12472    k: i32,
12473    a: &mut [f32],
12474    lda: i32,
12475    tau: &[f32],
12476    work: &mut [f32],
12477    lwork: i32,
12478    info: &mut i32,
12479) {
12480    ffi::sorgqr_(
12481        &m,
12482        &n,
12483        &k,
12484        a.as_mut_ptr(),
12485        &lda,
12486        tau.as_ptr(),
12487        work.as_mut_ptr(),
12488        &lwork,
12489        info,
12490    )
12491}
12492
12493#[inline]
12494pub unsafe fn dorgqr(
12495    m: i32,
12496    n: i32,
12497    k: i32,
12498    a: &mut [f64],
12499    lda: i32,
12500    tau: &[f64],
12501    work: &mut [f64],
12502    lwork: i32,
12503    info: &mut i32,
12504) {
12505    ffi::dorgqr_(
12506        &m,
12507        &n,
12508        &k,
12509        a.as_mut_ptr(),
12510        &lda,
12511        tau.as_ptr(),
12512        work.as_mut_ptr(),
12513        &lwork,
12514        info,
12515    )
12516}
12517
12518#[inline]
12519pub unsafe fn sormqr(
12520    side: u8,
12521    trans: u8,
12522    m: i32,
12523    n: i32,
12524    k: i32,
12525    a: &[f32],
12526    lda: i32,
12527    tau: &[f32],
12528    c: &mut [f32],
12529    ldc: i32,
12530    work: &mut [f32],
12531    lwork: i32,
12532    info: &mut i32,
12533) {
12534    ffi::sormqr_(
12535        &(side as c_char),
12536        &(trans as c_char),
12537        &m,
12538        &n,
12539        &k,
12540        a.as_ptr(),
12541        &lda,
12542        tau.as_ptr(),
12543        c.as_mut_ptr(),
12544        &ldc,
12545        work.as_mut_ptr(),
12546        &lwork,
12547        info,
12548    )
12549}
12550
12551#[inline]
12552pub unsafe fn dormqr(
12553    side: u8,
12554    trans: u8,
12555    m: i32,
12556    n: i32,
12557    k: i32,
12558    a: &[f64],
12559    lda: i32,
12560    tau: &[f64],
12561    c: &mut [f64],
12562    ldc: i32,
12563    work: &mut [f64],
12564    lwork: i32,
12565    info: &mut i32,
12566) {
12567    ffi::dormqr_(
12568        &(side as c_char),
12569        &(trans as c_char),
12570        &m,
12571        &n,
12572        &k,
12573        a.as_ptr(),
12574        &lda,
12575        tau.as_ptr(),
12576        c.as_mut_ptr(),
12577        &ldc,
12578        work.as_mut_ptr(),
12579        &lwork,
12580        info,
12581    )
12582}
12583
12584#[inline]
12585pub unsafe fn cungqr(
12586    m: i32,
12587    n: i32,
12588    k: i32,
12589    a: &mut [c32],
12590    lda: i32,
12591    tau: &[c32],
12592    work: &mut [c32],
12593    lwork: i32,
12594    info: &mut i32,
12595) {
12596    ffi::cungqr_(
12597        &m,
12598        &n,
12599        &k,
12600        a.as_mut_ptr() as *mut _,
12601        &lda,
12602        tau.as_ptr() as *const _,
12603        work.as_mut_ptr() as *mut _,
12604        &lwork,
12605        info,
12606    )
12607}
12608
12609#[inline]
12610pub unsafe fn zungqr(
12611    m: i32,
12612    n: i32,
12613    k: i32,
12614    a: &mut [c64],
12615    lda: i32,
12616    tau: &[c64],
12617    work: &mut [c64],
12618    lwork: i32,
12619    info: &mut i32,
12620) {
12621    ffi::zungqr_(
12622        &m,
12623        &n,
12624        &k,
12625        a.as_mut_ptr() as *mut _,
12626        &lda,
12627        tau.as_ptr() as *const _,
12628        work.as_mut_ptr() as *mut _,
12629        &lwork,
12630        info,
12631    )
12632}
12633
12634#[inline]
12635pub unsafe fn cunmqr(
12636    side: u8,
12637    trans: u8,
12638    m: i32,
12639    n: i32,
12640    k: i32,
12641    a: &[c32],
12642    lda: i32,
12643    tau: &[c32],
12644    c: &mut [c32],
12645    ldc: i32,
12646    work: &mut [c32],
12647    lwork: i32,
12648    info: &mut i32,
12649) {
12650    ffi::cunmqr_(
12651        &(side as c_char),
12652        &(trans as c_char),
12653        &m,
12654        &n,
12655        &k,
12656        a.as_ptr() as *const _,
12657        &lda,
12658        tau.as_ptr() as *const _,
12659        c.as_mut_ptr() as *mut _,
12660        &ldc,
12661        work.as_mut_ptr() as *mut _,
12662        &lwork,
12663        info,
12664    )
12665}
12666
12667#[inline]
12668pub unsafe fn zunmqr(
12669    side: u8,
12670    trans: u8,
12671    m: i32,
12672    n: i32,
12673    k: i32,
12674    a: &[c64],
12675    lda: i32,
12676    tau: &[c64],
12677    c: &mut [c64],
12678    ldc: i32,
12679    work: &mut [c64],
12680    lwork: i32,
12681    info: &mut i32,
12682) {
12683    ffi::zunmqr_(
12684        &(side as c_char),
12685        &(trans as c_char),
12686        &m,
12687        &n,
12688        &k,
12689        a.as_ptr() as *const _,
12690        &lda,
12691        tau.as_ptr() as *const _,
12692        c.as_mut_ptr() as *mut _,
12693        &ldc,
12694        work.as_mut_ptr() as *mut _,
12695        &lwork,
12696        info,
12697    )
12698}
12699
12700#[inline]
12701pub unsafe fn sgelqf(
12702    m: i32,
12703    n: i32,
12704    a: &mut [f32],
12705    lda: i32,
12706    tau: &mut [f32],
12707    work: &mut [f32],
12708    lwork: i32,
12709    info: &mut i32,
12710) {
12711    ffi::sgelqf_(
12712        &m,
12713        &n,
12714        a.as_mut_ptr(),
12715        &lda,
12716        tau.as_mut_ptr(),
12717        work.as_mut_ptr(),
12718        &lwork,
12719        info,
12720    )
12721}
12722
12723#[inline]
12724pub unsafe fn dgelqf(
12725    m: i32,
12726    n: i32,
12727    a: &mut [f64],
12728    lda: i32,
12729    tau: &mut [f64],
12730    work: &mut [f64],
12731    lwork: i32,
12732    info: &mut i32,
12733) {
12734    ffi::dgelqf_(
12735        &m,
12736        &n,
12737        a.as_mut_ptr(),
12738        &lda,
12739        tau.as_mut_ptr(),
12740        work.as_mut_ptr(),
12741        &lwork,
12742        info,
12743    )
12744}
12745
12746#[inline]
12747pub unsafe fn cgelqf(
12748    m: i32,
12749    n: i32,
12750    a: &mut [c32],
12751    lda: i32,
12752    tau: &mut [c32],
12753    work: &mut [c32],
12754    lwork: i32,
12755    info: &mut i32,
12756) {
12757    ffi::cgelqf_(
12758        &m,
12759        &n,
12760        a.as_mut_ptr() as *mut _,
12761        &lda,
12762        tau.as_mut_ptr() as *mut _,
12763        work.as_mut_ptr() as *mut _,
12764        &lwork,
12765        info,
12766    )
12767}
12768
12769#[inline]
12770pub unsafe fn zgelqf(
12771    m: i32,
12772    n: i32,
12773    a: &mut [c64],
12774    lda: i32,
12775    tau: &mut [c64],
12776    work: &mut [c64],
12777    lwork: i32,
12778    info: &mut i32,
12779) {
12780    ffi::zgelqf_(
12781        &m,
12782        &n,
12783        a.as_mut_ptr() as *mut _,
12784        &lda,
12785        tau.as_mut_ptr() as *mut _,
12786        work.as_mut_ptr() as *mut _,
12787        &lwork,
12788        info,
12789    )
12790}
12791
12792#[inline]
12793pub unsafe fn sorglq(
12794    m: i32,
12795    n: i32,
12796    k: i32,
12797    a: &mut [f32],
12798    lda: i32,
12799    tau: &[f32],
12800    work: &mut [f32],
12801    lwork: i32,
12802    info: &mut i32,
12803) {
12804    ffi::sorglq_(
12805        &m,
12806        &n,
12807        &k,
12808        a.as_mut_ptr(),
12809        &lda,
12810        tau.as_ptr(),
12811        work.as_mut_ptr(),
12812        &lwork,
12813        info,
12814    )
12815}
12816
12817#[inline]
12818pub unsafe fn dorglq(
12819    m: i32,
12820    n: i32,
12821    k: i32,
12822    a: &mut [f64],
12823    lda: i32,
12824    tau: &[f64],
12825    work: &mut [f64],
12826    lwork: i32,
12827    info: &mut i32,
12828) {
12829    ffi::dorglq_(
12830        &m,
12831        &n,
12832        &k,
12833        a.as_mut_ptr(),
12834        &lda,
12835        tau.as_ptr(),
12836        work.as_mut_ptr(),
12837        &lwork,
12838        info,
12839    )
12840}
12841
12842#[inline]
12843pub unsafe fn sormlq(
12844    side: u8,
12845    trans: u8,
12846    m: i32,
12847    n: i32,
12848    k: i32,
12849    a: &[f32],
12850    lda: i32,
12851    tau: &[f32],
12852    c: &mut [f32],
12853    ldc: i32,
12854    work: &mut [f32],
12855    lwork: i32,
12856    info: &mut i32,
12857) {
12858    ffi::sormlq_(
12859        &(side as c_char),
12860        &(trans as c_char),
12861        &m,
12862        &n,
12863        &k,
12864        a.as_ptr(),
12865        &lda,
12866        tau.as_ptr(),
12867        c.as_mut_ptr(),
12868        &ldc,
12869        work.as_mut_ptr(),
12870        &lwork,
12871        info,
12872    )
12873}
12874
12875#[inline]
12876pub unsafe fn dormlq(
12877    side: u8,
12878    trans: u8,
12879    m: i32,
12880    n: i32,
12881    k: i32,
12882    a: &[f64],
12883    lda: i32,
12884    tau: &[f64],
12885    c: &mut [f64],
12886    ldc: i32,
12887    work: &mut [f64],
12888    lwork: i32,
12889    info: &mut i32,
12890) {
12891    ffi::dormlq_(
12892        &(side as c_char),
12893        &(trans as c_char),
12894        &m,
12895        &n,
12896        &k,
12897        a.as_ptr(),
12898        &lda,
12899        tau.as_ptr(),
12900        c.as_mut_ptr(),
12901        &ldc,
12902        work.as_mut_ptr(),
12903        &lwork,
12904        info,
12905    )
12906}
12907
12908#[inline]
12909pub unsafe fn cunglq(
12910    m: i32,
12911    n: i32,
12912    k: i32,
12913    a: &mut [c32],
12914    lda: i32,
12915    tau: &[c32],
12916    work: &mut [c32],
12917    lwork: i32,
12918    info: &mut i32,
12919) {
12920    ffi::cunglq_(
12921        &m,
12922        &n,
12923        &k,
12924        a.as_mut_ptr() as *mut _,
12925        &lda,
12926        tau.as_ptr() as *const _,
12927        work.as_mut_ptr() as *mut _,
12928        &lwork,
12929        info,
12930    )
12931}
12932
12933#[inline]
12934pub unsafe fn zunglq(
12935    m: i32,
12936    n: i32,
12937    k: i32,
12938    a: &mut [c64],
12939    lda: i32,
12940    tau: &[c64],
12941    work: &mut [c64],
12942    lwork: i32,
12943    info: &mut i32,
12944) {
12945    ffi::zunglq_(
12946        &m,
12947        &n,
12948        &k,
12949        a.as_mut_ptr() as *mut _,
12950        &lda,
12951        tau.as_ptr() as *const _,
12952        work.as_mut_ptr() as *mut _,
12953        &lwork,
12954        info,
12955    )
12956}
12957
12958#[inline]
12959pub unsafe fn cunmlq(
12960    side: u8,
12961    trans: u8,
12962    m: i32,
12963    n: i32,
12964    k: i32,
12965    a: &[c32],
12966    lda: i32,
12967    tau: &[c32],
12968    c: &mut [c32],
12969    ldc: i32,
12970    work: &mut [c32],
12971    lwork: i32,
12972    info: &mut i32,
12973) {
12974    ffi::cunmlq_(
12975        &(side as c_char),
12976        &(trans as c_char),
12977        &m,
12978        &n,
12979        &k,
12980        a.as_ptr() as *const _,
12981        &lda,
12982        tau.as_ptr() as *const _,
12983        c.as_mut_ptr() as *mut _,
12984        &ldc,
12985        work.as_mut_ptr() as *mut _,
12986        &lwork,
12987        info,
12988    )
12989}
12990
12991#[inline]
12992pub unsafe fn zunmlq(
12993    side: u8,
12994    trans: u8,
12995    m: i32,
12996    n: i32,
12997    k: i32,
12998    a: &[c64],
12999    lda: i32,
13000    tau: &[c64],
13001    c: &mut [c64],
13002    ldc: i32,
13003    work: &mut [c64],
13004    lwork: i32,
13005    info: &mut i32,
13006) {
13007    ffi::zunmlq_(
13008        &(side as c_char),
13009        &(trans as c_char),
13010        &m,
13011        &n,
13012        &k,
13013        a.as_ptr() as *const _,
13014        &lda,
13015        tau.as_ptr() as *const _,
13016        c.as_mut_ptr() as *mut _,
13017        &ldc,
13018        work.as_mut_ptr() as *mut _,
13019        &lwork,
13020        info,
13021    )
13022}
13023
13024#[inline]
13025pub unsafe fn sgeqlf(
13026    m: i32,
13027    n: i32,
13028    a: &mut [f32],
13029    lda: i32,
13030    tau: &mut [f32],
13031    work: &mut [f32],
13032    lwork: i32,
13033    info: &mut i32,
13034) {
13035    ffi::sgeqlf_(
13036        &m,
13037        &n,
13038        a.as_mut_ptr(),
13039        &lda,
13040        tau.as_mut_ptr(),
13041        work.as_mut_ptr(),
13042        &lwork,
13043        info,
13044    )
13045}
13046
13047#[inline]
13048pub unsafe fn dgeqlf(
13049    m: i32,
13050    n: i32,
13051    a: &mut [f64],
13052    lda: i32,
13053    tau: &mut [f64],
13054    work: &mut [f64],
13055    lwork: i32,
13056    info: &mut i32,
13057) {
13058    ffi::dgeqlf_(
13059        &m,
13060        &n,
13061        a.as_mut_ptr(),
13062        &lda,
13063        tau.as_mut_ptr(),
13064        work.as_mut_ptr(),
13065        &lwork,
13066        info,
13067    )
13068}
13069
13070#[inline]
13071pub unsafe fn cgeqlf(
13072    m: i32,
13073    n: i32,
13074    a: &mut [c32],
13075    lda: i32,
13076    tau: &mut [c32],
13077    work: &mut [c32],
13078    lwork: i32,
13079    info: &mut i32,
13080) {
13081    ffi::cgeqlf_(
13082        &m,
13083        &n,
13084        a.as_mut_ptr() as *mut _,
13085        &lda,
13086        tau.as_mut_ptr() as *mut _,
13087        work.as_mut_ptr() as *mut _,
13088        &lwork,
13089        info,
13090    )
13091}
13092
13093#[inline]
13094pub unsafe fn zgeqlf(
13095    m: i32,
13096    n: i32,
13097    a: &mut [c64],
13098    lda: i32,
13099    tau: &mut [c64],
13100    work: &mut [c64],
13101    lwork: i32,
13102    info: &mut i32,
13103) {
13104    ffi::zgeqlf_(
13105        &m,
13106        &n,
13107        a.as_mut_ptr() as *mut _,
13108        &lda,
13109        tau.as_mut_ptr() as *mut _,
13110        work.as_mut_ptr() as *mut _,
13111        &lwork,
13112        info,
13113    )
13114}
13115
13116#[inline]
13117pub unsafe fn sorgql(
13118    m: i32,
13119    n: i32,
13120    k: i32,
13121    a: &mut [f32],
13122    lda: i32,
13123    tau: &[f32],
13124    work: &mut [f32],
13125    lwork: i32,
13126    info: &mut i32,
13127) {
13128    ffi::sorgql_(
13129        &m,
13130        &n,
13131        &k,
13132        a.as_mut_ptr(),
13133        &lda,
13134        tau.as_ptr(),
13135        work.as_mut_ptr(),
13136        &lwork,
13137        info,
13138    )
13139}
13140
13141#[inline]
13142pub unsafe fn dorgql(
13143    m: i32,
13144    n: i32,
13145    k: i32,
13146    a: &mut [f64],
13147    lda: i32,
13148    tau: &[f64],
13149    work: &mut [f64],
13150    lwork: i32,
13151    info: &mut i32,
13152) {
13153    ffi::dorgql_(
13154        &m,
13155        &n,
13156        &k,
13157        a.as_mut_ptr(),
13158        &lda,
13159        tau.as_ptr(),
13160        work.as_mut_ptr(),
13161        &lwork,
13162        info,
13163    )
13164}
13165
13166#[inline]
13167pub unsafe fn cungql(
13168    m: i32,
13169    n: i32,
13170    k: i32,
13171    a: &mut [c32],
13172    lda: i32,
13173    tau: &[c32],
13174    work: &mut [c32],
13175    lwork: i32,
13176    info: &mut i32,
13177) {
13178    ffi::cungql_(
13179        &m,
13180        &n,
13181        &k,
13182        a.as_mut_ptr() as *mut _,
13183        &lda,
13184        tau.as_ptr() as *const _,
13185        work.as_mut_ptr() as *mut _,
13186        &lwork,
13187        info,
13188    )
13189}
13190
13191#[inline]
13192pub unsafe fn zungql(
13193    m: i32,
13194    n: i32,
13195    k: i32,
13196    a: &mut [c64],
13197    lda: i32,
13198    tau: &[c64],
13199    work: &mut [c64],
13200    lwork: i32,
13201    info: &mut i32,
13202) {
13203    ffi::zungql_(
13204        &m,
13205        &n,
13206        &k,
13207        a.as_mut_ptr() as *mut _,
13208        &lda,
13209        tau.as_ptr() as *const _,
13210        work.as_mut_ptr() as *mut _,
13211        &lwork,
13212        info,
13213    )
13214}
13215
13216#[inline]
13217pub unsafe fn sormql(
13218    side: u8,
13219    trans: u8,
13220    m: i32,
13221    n: i32,
13222    k: i32,
13223    a: &[f32],
13224    lda: i32,
13225    tau: &[f32],
13226    c: &mut [f32],
13227    ldc: i32,
13228    work: &mut [f32],
13229    lwork: i32,
13230    info: &mut i32,
13231) {
13232    ffi::sormql_(
13233        &(side as c_char),
13234        &(trans as c_char),
13235        &m,
13236        &n,
13237        &k,
13238        a.as_ptr(),
13239        &lda,
13240        tau.as_ptr(),
13241        c.as_mut_ptr(),
13242        &ldc,
13243        work.as_mut_ptr(),
13244        &lwork,
13245        info,
13246    )
13247}
13248
13249#[inline]
13250pub unsafe fn dormql(
13251    side: u8,
13252    trans: u8,
13253    m: i32,
13254    n: i32,
13255    k: i32,
13256    a: &[f64],
13257    lda: i32,
13258    tau: &[f64],
13259    c: &mut [f64],
13260    ldc: i32,
13261    work: &mut [f64],
13262    lwork: i32,
13263    info: &mut i32,
13264) {
13265    ffi::dormql_(
13266        &(side as c_char),
13267        &(trans as c_char),
13268        &m,
13269        &n,
13270        &k,
13271        a.as_ptr(),
13272        &lda,
13273        tau.as_ptr(),
13274        c.as_mut_ptr(),
13275        &ldc,
13276        work.as_mut_ptr(),
13277        &lwork,
13278        info,
13279    )
13280}
13281
13282#[inline]
13283pub unsafe fn cunmql(
13284    side: u8,
13285    trans: u8,
13286    m: i32,
13287    n: i32,
13288    k: i32,
13289    a: &[c32],
13290    lda: i32,
13291    tau: &[c32],
13292    c: &mut [c32],
13293    ldc: i32,
13294    work: &mut [c32],
13295    lwork: i32,
13296    info: &mut i32,
13297) {
13298    ffi::cunmql_(
13299        &(side as c_char),
13300        &(trans as c_char),
13301        &m,
13302        &n,
13303        &k,
13304        a.as_ptr() as *const _,
13305        &lda,
13306        tau.as_ptr() as *const _,
13307        c.as_mut_ptr() as *mut _,
13308        &ldc,
13309        work.as_mut_ptr() as *mut _,
13310        &lwork,
13311        info,
13312    )
13313}
13314
13315#[inline]
13316pub unsafe fn zunmql(
13317    side: u8,
13318    trans: u8,
13319    m: i32,
13320    n: i32,
13321    k: i32,
13322    a: &[c64],
13323    lda: i32,
13324    tau: &[c64],
13325    c: &mut [c64],
13326    ldc: i32,
13327    work: &mut [c64],
13328    lwork: i32,
13329    info: &mut i32,
13330) {
13331    ffi::zunmql_(
13332        &(side as c_char),
13333        &(trans as c_char),
13334        &m,
13335        &n,
13336        &k,
13337        a.as_ptr() as *const _,
13338        &lda,
13339        tau.as_ptr() as *const _,
13340        c.as_mut_ptr() as *mut _,
13341        &ldc,
13342        work.as_mut_ptr() as *mut _,
13343        &lwork,
13344        info,
13345    )
13346}
13347
13348#[inline]
13349pub unsafe fn sgerqf(
13350    m: i32,
13351    n: i32,
13352    a: &mut [f32],
13353    lda: i32,
13354    tau: &mut [f32],
13355    work: &mut [f32],
13356    lwork: i32,
13357    info: &mut i32,
13358) {
13359    ffi::sgerqf_(
13360        &m,
13361        &n,
13362        a.as_mut_ptr(),
13363        &lda,
13364        tau.as_mut_ptr(),
13365        work.as_mut_ptr(),
13366        &lwork,
13367        info,
13368    )
13369}
13370
13371#[inline]
13372pub unsafe fn dgerqf(
13373    m: i32,
13374    n: i32,
13375    a: &mut [f64],
13376    lda: i32,
13377    tau: &mut [f64],
13378    work: &mut [f64],
13379    lwork: i32,
13380    info: &mut i32,
13381) {
13382    ffi::dgerqf_(
13383        &m,
13384        &n,
13385        a.as_mut_ptr(),
13386        &lda,
13387        tau.as_mut_ptr(),
13388        work.as_mut_ptr(),
13389        &lwork,
13390        info,
13391    )
13392}
13393
13394#[inline]
13395pub unsafe fn cgerqf(
13396    m: i32,
13397    n: i32,
13398    a: &mut [c32],
13399    lda: i32,
13400    tau: &mut [c32],
13401    work: &mut [c32],
13402    lwork: i32,
13403    info: &mut i32,
13404) {
13405    ffi::cgerqf_(
13406        &m,
13407        &n,
13408        a.as_mut_ptr() as *mut _,
13409        &lda,
13410        tau.as_mut_ptr() as *mut _,
13411        work.as_mut_ptr() as *mut _,
13412        &lwork,
13413        info,
13414    )
13415}
13416
13417#[inline]
13418pub unsafe fn zgerqf(
13419    m: i32,
13420    n: i32,
13421    a: &mut [c64],
13422    lda: i32,
13423    tau: &mut [c64],
13424    work: &mut [c64],
13425    lwork: i32,
13426    info: &mut i32,
13427) {
13428    ffi::zgerqf_(
13429        &m,
13430        &n,
13431        a.as_mut_ptr() as *mut _,
13432        &lda,
13433        tau.as_mut_ptr() as *mut _,
13434        work.as_mut_ptr() as *mut _,
13435        &lwork,
13436        info,
13437    )
13438}
13439
13440#[inline]
13441pub unsafe fn sorgrq(
13442    m: i32,
13443    n: i32,
13444    k: i32,
13445    a: &mut [f32],
13446    lda: i32,
13447    tau: &[f32],
13448    work: &mut [f32],
13449    lwork: i32,
13450    info: &mut i32,
13451) {
13452    ffi::sorgrq_(
13453        &m,
13454        &n,
13455        &k,
13456        a.as_mut_ptr(),
13457        &lda,
13458        tau.as_ptr(),
13459        work.as_mut_ptr(),
13460        &lwork,
13461        info,
13462    )
13463}
13464
13465#[inline]
13466pub unsafe fn dorgrq(
13467    m: i32,
13468    n: i32,
13469    k: i32,
13470    a: &mut [f64],
13471    lda: i32,
13472    tau: &[f64],
13473    work: &mut [f64],
13474    lwork: i32,
13475    info: &mut i32,
13476) {
13477    ffi::dorgrq_(
13478        &m,
13479        &n,
13480        &k,
13481        a.as_mut_ptr(),
13482        &lda,
13483        tau.as_ptr(),
13484        work.as_mut_ptr(),
13485        &lwork,
13486        info,
13487    )
13488}
13489
13490#[inline]
13491pub unsafe fn cungrq(
13492    m: i32,
13493    n: i32,
13494    k: i32,
13495    a: &mut [c32],
13496    lda: i32,
13497    tau: &[c32],
13498    work: &mut [c32],
13499    lwork: i32,
13500    info: &mut i32,
13501) {
13502    ffi::cungrq_(
13503        &m,
13504        &n,
13505        &k,
13506        a.as_mut_ptr() as *mut _,
13507        &lda,
13508        tau.as_ptr() as *const _,
13509        work.as_mut_ptr() as *mut _,
13510        &lwork,
13511        info,
13512    )
13513}
13514
13515#[inline]
13516pub unsafe fn zungrq(
13517    m: i32,
13518    n: i32,
13519    k: i32,
13520    a: &mut [c64],
13521    lda: i32,
13522    tau: &[c64],
13523    work: &mut [c64],
13524    lwork: i32,
13525    info: &mut i32,
13526) {
13527    ffi::zungrq_(
13528        &m,
13529        &n,
13530        &k,
13531        a.as_mut_ptr() as *mut _,
13532        &lda,
13533        tau.as_ptr() as *const _,
13534        work.as_mut_ptr() as *mut _,
13535        &lwork,
13536        info,
13537    )
13538}
13539
13540#[inline]
13541pub unsafe fn sormrq(
13542    side: u8,
13543    trans: u8,
13544    m: i32,
13545    n: i32,
13546    k: i32,
13547    a: &[f32],
13548    lda: i32,
13549    tau: &[f32],
13550    c: &mut [f32],
13551    ldc: i32,
13552    work: &mut [f32],
13553    lwork: i32,
13554    info: &mut i32,
13555) {
13556    ffi::sormrq_(
13557        &(side as c_char),
13558        &(trans as c_char),
13559        &m,
13560        &n,
13561        &k,
13562        a.as_ptr(),
13563        &lda,
13564        tau.as_ptr(),
13565        c.as_mut_ptr(),
13566        &ldc,
13567        work.as_mut_ptr(),
13568        &lwork,
13569        info,
13570    )
13571}
13572
13573#[inline]
13574pub unsafe fn dormrq(
13575    side: u8,
13576    trans: u8,
13577    m: i32,
13578    n: i32,
13579    k: i32,
13580    a: &[f64],
13581    lda: i32,
13582    tau: &[f64],
13583    c: &mut [f64],
13584    ldc: i32,
13585    work: &mut [f64],
13586    lwork: i32,
13587    info: &mut i32,
13588) {
13589    ffi::dormrq_(
13590        &(side as c_char),
13591        &(trans as c_char),
13592        &m,
13593        &n,
13594        &k,
13595        a.as_ptr(),
13596        &lda,
13597        tau.as_ptr(),
13598        c.as_mut_ptr(),
13599        &ldc,
13600        work.as_mut_ptr(),
13601        &lwork,
13602        info,
13603    )
13604}
13605
13606#[inline]
13607pub unsafe fn cunmrq(
13608    side: u8,
13609    trans: u8,
13610    m: i32,
13611    n: i32,
13612    k: i32,
13613    a: &[c32],
13614    lda: i32,
13615    tau: &[c32],
13616    c: &mut [c32],
13617    ldc: i32,
13618    work: &mut [c32],
13619    lwork: i32,
13620    info: &mut i32,
13621) {
13622    ffi::cunmrq_(
13623        &(side as c_char),
13624        &(trans as c_char),
13625        &m,
13626        &n,
13627        &k,
13628        a.as_ptr() as *const _,
13629        &lda,
13630        tau.as_ptr() as *const _,
13631        c.as_mut_ptr() as *mut _,
13632        &ldc,
13633        work.as_mut_ptr() as *mut _,
13634        &lwork,
13635        info,
13636    )
13637}
13638
13639#[inline]
13640pub unsafe fn zunmrq(
13641    side: u8,
13642    trans: u8,
13643    m: i32,
13644    n: i32,
13645    k: i32,
13646    a: &[c64],
13647    lda: i32,
13648    tau: &[c64],
13649    c: &mut [c64],
13650    ldc: i32,
13651    work: &mut [c64],
13652    lwork: i32,
13653    info: &mut i32,
13654) {
13655    ffi::zunmrq_(
13656        &(side as c_char),
13657        &(trans as c_char),
13658        &m,
13659        &n,
13660        &k,
13661        a.as_ptr() as *const _,
13662        &lda,
13663        tau.as_ptr() as *const _,
13664        c.as_mut_ptr() as *mut _,
13665        &ldc,
13666        work.as_mut_ptr() as *mut _,
13667        &lwork,
13668        info,
13669    )
13670}
13671
13672#[inline]
13673pub unsafe fn stzrzf(
13674    m: i32,
13675    n: i32,
13676    a: &mut [f32],
13677    lda: i32,
13678    tau: &mut [f32],
13679    work: &mut [f32],
13680    lwork: i32,
13681    info: &mut i32,
13682) {
13683    ffi::stzrzf_(
13684        &m,
13685        &n,
13686        a.as_mut_ptr(),
13687        &lda,
13688        tau.as_mut_ptr(),
13689        work.as_mut_ptr(),
13690        &lwork,
13691        info,
13692    )
13693}
13694
13695#[inline]
13696pub unsafe fn dtzrzf(
13697    m: i32,
13698    n: i32,
13699    a: &mut [f64],
13700    lda: i32,
13701    tau: &mut [f64],
13702    work: &mut [f64],
13703    lwork: i32,
13704    info: &mut i32,
13705) {
13706    ffi::dtzrzf_(
13707        &m,
13708        &n,
13709        a.as_mut_ptr(),
13710        &lda,
13711        tau.as_mut_ptr(),
13712        work.as_mut_ptr(),
13713        &lwork,
13714        info,
13715    )
13716}
13717
13718#[inline]
13719pub unsafe fn ctzrzf(
13720    m: i32,
13721    n: i32,
13722    a: &mut [c32],
13723    lda: i32,
13724    tau: &mut [c32],
13725    work: &mut [c32],
13726    lwork: i32,
13727    info: &mut i32,
13728) {
13729    ffi::ctzrzf_(
13730        &m,
13731        &n,
13732        a.as_mut_ptr() as *mut _,
13733        &lda,
13734        tau.as_mut_ptr() as *mut _,
13735        work.as_mut_ptr() as *mut _,
13736        &lwork,
13737        info,
13738    )
13739}
13740
13741#[inline]
13742pub unsafe fn ztzrzf(
13743    m: i32,
13744    n: i32,
13745    a: &mut [c64],
13746    lda: i32,
13747    tau: &mut [c64],
13748    work: &mut [c64],
13749    lwork: i32,
13750    info: &mut i32,
13751) {
13752    ffi::ztzrzf_(
13753        &m,
13754        &n,
13755        a.as_mut_ptr() as *mut _,
13756        &lda,
13757        tau.as_mut_ptr() as *mut _,
13758        work.as_mut_ptr() as *mut _,
13759        &lwork,
13760        info,
13761    )
13762}
13763
13764#[inline]
13765pub unsafe fn sormrz(
13766    side: u8,
13767    trans: u8,
13768    m: i32,
13769    n: i32,
13770    k: i32,
13771    l: i32,
13772    a: &[f32],
13773    lda: i32,
13774    tau: &[f32],
13775    c: &mut [f32],
13776    ldc: i32,
13777    work: &mut [f32],
13778    lwork: i32,
13779    info: &mut i32,
13780) {
13781    ffi::sormrz_(
13782        &(side as c_char),
13783        &(trans as c_char),
13784        &m,
13785        &n,
13786        &k,
13787        &l,
13788        a.as_ptr(),
13789        &lda,
13790        tau.as_ptr(),
13791        c.as_mut_ptr(),
13792        &ldc,
13793        work.as_mut_ptr(),
13794        &lwork,
13795        info,
13796    )
13797}
13798
13799#[inline]
13800pub unsafe fn dormrz(
13801    side: u8,
13802    trans: u8,
13803    m: i32,
13804    n: i32,
13805    k: i32,
13806    l: i32,
13807    a: &[f64],
13808    lda: i32,
13809    tau: &[f64],
13810    c: &mut [f64],
13811    ldc: i32,
13812    work: &mut [f64],
13813    lwork: i32,
13814    info: &mut i32,
13815) {
13816    ffi::dormrz_(
13817        &(side as c_char),
13818        &(trans as c_char),
13819        &m,
13820        &n,
13821        &k,
13822        &l,
13823        a.as_ptr(),
13824        &lda,
13825        tau.as_ptr(),
13826        c.as_mut_ptr(),
13827        &ldc,
13828        work.as_mut_ptr(),
13829        &lwork,
13830        info,
13831    )
13832}
13833
13834#[inline]
13835pub unsafe fn cunmrz(
13836    side: u8,
13837    trans: u8,
13838    m: i32,
13839    n: i32,
13840    k: i32,
13841    l: i32,
13842    a: &[c32],
13843    lda: i32,
13844    tau: &[c32],
13845    c: &mut [c32],
13846    ldc: i32,
13847    work: &mut [c32],
13848    lwork: i32,
13849    info: &mut i32,
13850) {
13851    ffi::cunmrz_(
13852        &(side as c_char),
13853        &(trans as c_char),
13854        &m,
13855        &n,
13856        &k,
13857        &l,
13858        a.as_ptr() as *const _,
13859        &lda,
13860        tau.as_ptr() as *const _,
13861        c.as_mut_ptr() as *mut _,
13862        &ldc,
13863        work.as_mut_ptr() as *mut _,
13864        &lwork,
13865        info,
13866    )
13867}
13868
13869#[inline]
13870pub unsafe fn zunmrz(
13871    side: u8,
13872    trans: u8,
13873    m: i32,
13874    n: i32,
13875    k: i32,
13876    l: i32,
13877    a: &[c64],
13878    lda: i32,
13879    tau: &[c64],
13880    c: &mut [c64],
13881    ldc: i32,
13882    work: &mut [c64],
13883    lwork: i32,
13884    info: &mut i32,
13885) {
13886    ffi::zunmrz_(
13887        &(side as c_char),
13888        &(trans as c_char),
13889        &m,
13890        &n,
13891        &k,
13892        &l,
13893        a.as_ptr() as *const _,
13894        &lda,
13895        tau.as_ptr() as *const _,
13896        c.as_mut_ptr() as *mut _,
13897        &ldc,
13898        work.as_mut_ptr() as *mut _,
13899        &lwork,
13900        info,
13901    )
13902}
13903
13904#[inline]
13905pub unsafe fn sggqrf(
13906    n: i32,
13907    m: i32,
13908    p: i32,
13909    a: &mut [f32],
13910    lda: i32,
13911    taua: &mut [f32],
13912    b: &mut [f32],
13913    ldb: i32,
13914    taub: &mut [f32],
13915    work: &mut [f32],
13916    lwork: i32,
13917    info: &mut i32,
13918) {
13919    ffi::sggqrf_(
13920        &n,
13921        &m,
13922        &p,
13923        a.as_mut_ptr(),
13924        &lda,
13925        taua.as_mut_ptr(),
13926        b.as_mut_ptr(),
13927        &ldb,
13928        taub.as_mut_ptr(),
13929        work.as_mut_ptr(),
13930        &lwork,
13931        info,
13932    )
13933}
13934
13935#[inline]
13936pub unsafe fn dggqrf(
13937    n: i32,
13938    m: i32,
13939    p: i32,
13940    a: &mut [f64],
13941    lda: i32,
13942    taua: &mut [f64],
13943    b: &mut [f64],
13944    ldb: i32,
13945    taub: &mut [f64],
13946    work: &mut [f64],
13947    lwork: i32,
13948    info: &mut i32,
13949) {
13950    ffi::dggqrf_(
13951        &n,
13952        &m,
13953        &p,
13954        a.as_mut_ptr(),
13955        &lda,
13956        taua.as_mut_ptr(),
13957        b.as_mut_ptr(),
13958        &ldb,
13959        taub.as_mut_ptr(),
13960        work.as_mut_ptr(),
13961        &lwork,
13962        info,
13963    )
13964}
13965
13966#[inline]
13967pub unsafe fn cggqrf(
13968    n: i32,
13969    m: i32,
13970    p: i32,
13971    a: &mut [c32],
13972    lda: i32,
13973    taua: &mut [c32],
13974    b: &mut [c32],
13975    ldb: i32,
13976    taub: &mut [c32],
13977    work: &mut [c32],
13978    lwork: i32,
13979    info: &mut i32,
13980) {
13981    ffi::cggqrf_(
13982        &n,
13983        &m,
13984        &p,
13985        a.as_mut_ptr() as *mut _,
13986        &lda,
13987        taua.as_mut_ptr() as *mut _,
13988        b.as_mut_ptr() as *mut _,
13989        &ldb,
13990        taub.as_mut_ptr() as *mut _,
13991        work.as_mut_ptr() as *mut _,
13992        &lwork,
13993        info,
13994    )
13995}
13996
13997#[inline]
13998pub unsafe fn zggqrf(
13999    n: i32,
14000    m: i32,
14001    p: i32,
14002    a: &mut [c64],
14003    lda: i32,
14004    taua: &mut [c64],
14005    b: &mut [c64],
14006    ldb: i32,
14007    taub: &mut [c64],
14008    work: &mut [c64],
14009    lwork: i32,
14010    info: &mut i32,
14011) {
14012    ffi::zggqrf_(
14013        &n,
14014        &m,
14015        &p,
14016        a.as_mut_ptr() as *mut _,
14017        &lda,
14018        taua.as_mut_ptr() as *mut _,
14019        b.as_mut_ptr() as *mut _,
14020        &ldb,
14021        taub.as_mut_ptr() as *mut _,
14022        work.as_mut_ptr() as *mut _,
14023        &lwork,
14024        info,
14025    )
14026}
14027
14028#[inline]
14029pub unsafe fn sggrqf(
14030    m: i32,
14031    p: i32,
14032    n: i32,
14033    a: &mut [f32],
14034    lda: i32,
14035    taua: &mut [f32],
14036    b: &mut [f32],
14037    ldb: i32,
14038    taub: &mut [f32],
14039    work: &mut [f32],
14040    lwork: i32,
14041    info: &mut i32,
14042) {
14043    ffi::sggrqf_(
14044        &m,
14045        &p,
14046        &n,
14047        a.as_mut_ptr(),
14048        &lda,
14049        taua.as_mut_ptr(),
14050        b.as_mut_ptr(),
14051        &ldb,
14052        taub.as_mut_ptr(),
14053        work.as_mut_ptr(),
14054        &lwork,
14055        info,
14056    )
14057}
14058
14059#[inline]
14060pub unsafe fn dggrqf(
14061    m: i32,
14062    p: i32,
14063    n: i32,
14064    a: &mut [f64],
14065    lda: i32,
14066    taua: &mut [f64],
14067    b: &mut [f64],
14068    ldb: i32,
14069    taub: &mut [f64],
14070    work: &mut [f64],
14071    lwork: i32,
14072    info: &mut i32,
14073) {
14074    ffi::dggrqf_(
14075        &m,
14076        &p,
14077        &n,
14078        a.as_mut_ptr(),
14079        &lda,
14080        taua.as_mut_ptr(),
14081        b.as_mut_ptr(),
14082        &ldb,
14083        taub.as_mut_ptr(),
14084        work.as_mut_ptr(),
14085        &lwork,
14086        info,
14087    )
14088}
14089
14090#[inline]
14091pub unsafe fn cggrqf(
14092    m: i32,
14093    p: i32,
14094    n: i32,
14095    a: &mut [c32],
14096    lda: i32,
14097    taua: &mut [c32],
14098    b: &mut [c32],
14099    ldb: i32,
14100    taub: &mut [c32],
14101    work: &mut [c32],
14102    lwork: i32,
14103    info: &mut i32,
14104) {
14105    ffi::cggrqf_(
14106        &m,
14107        &p,
14108        &n,
14109        a.as_mut_ptr() as *mut _,
14110        &lda,
14111        taua.as_mut_ptr() as *mut _,
14112        b.as_mut_ptr() as *mut _,
14113        &ldb,
14114        taub.as_mut_ptr() as *mut _,
14115        work.as_mut_ptr() as *mut _,
14116        &lwork,
14117        info,
14118    )
14119}
14120
14121#[inline]
14122pub unsafe fn zggrqf(
14123    m: i32,
14124    p: i32,
14125    n: i32,
14126    a: &mut [c64],
14127    lda: i32,
14128    taua: &mut [c64],
14129    b: &mut [c64],
14130    ldb: i32,
14131    taub: &mut [c64],
14132    work: &mut [c64],
14133    lwork: i32,
14134    info: &mut i32,
14135) {
14136    ffi::zggrqf_(
14137        &m,
14138        &p,
14139        &n,
14140        a.as_mut_ptr() as *mut _,
14141        &lda,
14142        taua.as_mut_ptr() as *mut _,
14143        b.as_mut_ptr() as *mut _,
14144        &ldb,
14145        taub.as_mut_ptr() as *mut _,
14146        work.as_mut_ptr() as *mut _,
14147        &lwork,
14148        info,
14149    )
14150}
14151
14152#[inline]
14153pub unsafe fn sgebrd(
14154    m: i32,
14155    n: i32,
14156    a: &mut [f32],
14157    lda: i32,
14158    d: &mut [f32],
14159    e: &mut [f32],
14160    tauq: &mut [f32],
14161    taup: &mut [f32],
14162    work: &mut [f32],
14163    lwork: i32,
14164    info: &mut i32,
14165) {
14166    ffi::sgebrd_(
14167        &m,
14168        &n,
14169        a.as_mut_ptr(),
14170        &lda,
14171        d.as_mut_ptr(),
14172        e.as_mut_ptr(),
14173        tauq.as_mut_ptr(),
14174        taup.as_mut_ptr(),
14175        work.as_mut_ptr(),
14176        &lwork,
14177        info,
14178    )
14179}
14180
14181#[inline]
14182pub unsafe fn dgebrd(
14183    m: i32,
14184    n: i32,
14185    a: &mut [f64],
14186    lda: i32,
14187    d: &mut [f64],
14188    e: &mut [f64],
14189    tauq: &mut [f64],
14190    taup: &mut [f64],
14191    work: &mut [f64],
14192    lwork: i32,
14193    info: &mut i32,
14194) {
14195    ffi::dgebrd_(
14196        &m,
14197        &n,
14198        a.as_mut_ptr(),
14199        &lda,
14200        d.as_mut_ptr(),
14201        e.as_mut_ptr(),
14202        tauq.as_mut_ptr(),
14203        taup.as_mut_ptr(),
14204        work.as_mut_ptr(),
14205        &lwork,
14206        info,
14207    )
14208}
14209
14210#[inline]
14211pub unsafe fn cgebrd(
14212    m: i32,
14213    n: i32,
14214    a: &mut [c32],
14215    lda: i32,
14216    d: &mut [f32],
14217    e: &mut [f32],
14218    tauq: &mut [c32],
14219    taup: &mut [c32],
14220    work: &mut [c32],
14221    lwork: i32,
14222    info: &mut i32,
14223) {
14224    ffi::cgebrd_(
14225        &m,
14226        &n,
14227        a.as_mut_ptr() as *mut _,
14228        &lda,
14229        d.as_mut_ptr(),
14230        e.as_mut_ptr(),
14231        tauq.as_mut_ptr() as *mut _,
14232        taup.as_mut_ptr() as *mut _,
14233        work.as_mut_ptr() as *mut _,
14234        &lwork,
14235        info,
14236    )
14237}
14238
14239#[inline]
14240pub unsafe fn zgebrd(
14241    m: i32,
14242    n: i32,
14243    a: &mut [c64],
14244    lda: i32,
14245    d: &mut [f64],
14246    e: &mut [f64],
14247    tauq: &mut [c64],
14248    taup: &mut [c64],
14249    work: &mut [c64],
14250    lwork: i32,
14251    info: &mut i32,
14252) {
14253    ffi::zgebrd_(
14254        &m,
14255        &n,
14256        a.as_mut_ptr() as *mut _,
14257        &lda,
14258        d.as_mut_ptr(),
14259        e.as_mut_ptr(),
14260        tauq.as_mut_ptr() as *mut _,
14261        taup.as_mut_ptr() as *mut _,
14262        work.as_mut_ptr() as *mut _,
14263        &lwork,
14264        info,
14265    )
14266}
14267
14268#[inline]
14269pub unsafe fn sgbbrd(
14270    vect: u8,
14271    m: i32,
14272    n: i32,
14273    ncc: &[i32],
14274    kl: i32,
14275    ku: i32,
14276    ab: &mut [f32],
14277    ldab: i32,
14278    d: &mut [f32],
14279    e: &mut [f32],
14280    q: &mut [f32],
14281    ldq: i32,
14282    pt: &mut [f32],
14283    ldpt: i32,
14284    c: &mut [f32],
14285    ldc: i32,
14286    work: &mut [f32],
14287    info: &mut i32,
14288) {
14289    ffi::sgbbrd_(
14290        &(vect as c_char),
14291        &m,
14292        &n,
14293        ncc.as_ptr(),
14294        &kl,
14295        &ku,
14296        ab.as_mut_ptr(),
14297        &ldab,
14298        d.as_mut_ptr(),
14299        e.as_mut_ptr(),
14300        q.as_mut_ptr(),
14301        &ldq,
14302        pt.as_mut_ptr(),
14303        &ldpt,
14304        c.as_mut_ptr(),
14305        &ldc,
14306        work.as_mut_ptr(),
14307        info,
14308    )
14309}
14310
14311#[inline]
14312pub unsafe fn dgbbrd(
14313    vect: u8,
14314    m: i32,
14315    n: i32,
14316    ncc: &[i32],
14317    kl: i32,
14318    ku: i32,
14319    ab: &mut [f64],
14320    ldab: i32,
14321    d: &mut [f64],
14322    e: &mut [f64],
14323    q: &mut [f64],
14324    ldq: i32,
14325    pt: &mut [f64],
14326    ldpt: i32,
14327    c: &mut [f64],
14328    ldc: i32,
14329    work: &mut [f64],
14330    info: &mut i32,
14331) {
14332    ffi::dgbbrd_(
14333        &(vect as c_char),
14334        &m,
14335        &n,
14336        ncc.as_ptr(),
14337        &kl,
14338        &ku,
14339        ab.as_mut_ptr(),
14340        &ldab,
14341        d.as_mut_ptr(),
14342        e.as_mut_ptr(),
14343        q.as_mut_ptr(),
14344        &ldq,
14345        pt.as_mut_ptr(),
14346        &ldpt,
14347        c.as_mut_ptr(),
14348        &ldc,
14349        work.as_mut_ptr(),
14350        info,
14351    )
14352}
14353
14354#[inline]
14355pub unsafe fn cgbbrd(
14356    vect: u8,
14357    m: i32,
14358    n: i32,
14359    ncc: &[i32],
14360    kl: i32,
14361    ku: i32,
14362    ab: &mut [c32],
14363    ldab: i32,
14364    d: &mut [f32],
14365    e: &mut [f32],
14366    q: &mut [c32],
14367    ldq: i32,
14368    pt: &mut [c32],
14369    ldpt: i32,
14370    c: &mut [c32],
14371    ldc: i32,
14372    work: &mut [c32],
14373    rwork: &mut [f32],
14374    info: &mut i32,
14375) {
14376    ffi::cgbbrd_(
14377        &(vect as c_char),
14378        &m,
14379        &n,
14380        ncc.as_ptr(),
14381        &kl,
14382        &ku,
14383        ab.as_mut_ptr() as *mut _,
14384        &ldab,
14385        d.as_mut_ptr(),
14386        e.as_mut_ptr(),
14387        q.as_mut_ptr() as *mut _,
14388        &ldq,
14389        pt.as_mut_ptr() as *mut _,
14390        &ldpt,
14391        c.as_mut_ptr() as *mut _,
14392        &ldc,
14393        work.as_mut_ptr() as *mut _,
14394        rwork.as_mut_ptr(),
14395        info,
14396    )
14397}
14398
14399#[inline]
14400pub unsafe fn zgbbrd(
14401    vect: u8,
14402    m: i32,
14403    n: i32,
14404    ncc: &[i32],
14405    kl: i32,
14406    ku: i32,
14407    ab: &mut [c64],
14408    ldab: i32,
14409    d: &mut [f64],
14410    e: &mut [f64],
14411    q: &mut [c64],
14412    ldq: i32,
14413    pt: &mut [c64],
14414    ldpt: i32,
14415    c: &mut [c64],
14416    ldc: i32,
14417    work: &mut [c64],
14418    rwork: &mut [f64],
14419    info: &mut i32,
14420) {
14421    ffi::zgbbrd_(
14422        &(vect as c_char),
14423        &m,
14424        &n,
14425        ncc.as_ptr(),
14426        &kl,
14427        &ku,
14428        ab.as_mut_ptr() as *mut _,
14429        &ldab,
14430        d.as_mut_ptr(),
14431        e.as_mut_ptr(),
14432        q.as_mut_ptr() as *mut _,
14433        &ldq,
14434        pt.as_mut_ptr() as *mut _,
14435        &ldpt,
14436        c.as_mut_ptr() as *mut _,
14437        &ldc,
14438        work.as_mut_ptr() as *mut _,
14439        rwork.as_mut_ptr(),
14440        info,
14441    )
14442}
14443
14444#[inline]
14445pub unsafe fn sorgbr(
14446    vect: u8,
14447    m: i32,
14448    n: i32,
14449    k: i32,
14450    a: &mut [f32],
14451    lda: i32,
14452    tau: &[f32],
14453    work: &mut [f32],
14454    lwork: i32,
14455    info: &mut i32,
14456) {
14457    ffi::sorgbr_(
14458        &(vect as c_char),
14459        &m,
14460        &n,
14461        &k,
14462        a.as_mut_ptr(),
14463        &lda,
14464        tau.as_ptr(),
14465        work.as_mut_ptr(),
14466        &lwork,
14467        info,
14468    )
14469}
14470
14471#[inline]
14472pub unsafe fn dorgbr(
14473    vect: u8,
14474    m: i32,
14475    n: i32,
14476    k: i32,
14477    a: &mut [f64],
14478    lda: i32,
14479    tau: &[f64],
14480    work: &mut [f64],
14481    lwork: i32,
14482    info: &mut i32,
14483) {
14484    ffi::dorgbr_(
14485        &(vect as c_char),
14486        &m,
14487        &n,
14488        &k,
14489        a.as_mut_ptr(),
14490        &lda,
14491        tau.as_ptr(),
14492        work.as_mut_ptr(),
14493        &lwork,
14494        info,
14495    )
14496}
14497
14498#[inline]
14499pub unsafe fn sormbr(
14500    vect: u8,
14501    side: u8,
14502    trans: u8,
14503    m: i32,
14504    n: i32,
14505    k: i32,
14506    a: &[f32],
14507    lda: i32,
14508    tau: &[f32],
14509    c: &mut [f32],
14510    ldc: i32,
14511    work: &mut [f32],
14512    lwork: i32,
14513    info: &mut i32,
14514) {
14515    ffi::sormbr_(
14516        &(vect as c_char),
14517        &(side as c_char),
14518        &(trans as c_char),
14519        &m,
14520        &n,
14521        &k,
14522        a.as_ptr(),
14523        &lda,
14524        tau.as_ptr(),
14525        c.as_mut_ptr(),
14526        &ldc,
14527        work.as_mut_ptr(),
14528        &lwork,
14529        info,
14530    )
14531}
14532
14533#[inline]
14534pub unsafe fn dormbr(
14535    vect: u8,
14536    side: u8,
14537    trans: u8,
14538    m: i32,
14539    n: i32,
14540    k: i32,
14541    a: &[f64],
14542    lda: i32,
14543    tau: &[f64],
14544    c: &mut [f64],
14545    ldc: i32,
14546    work: &mut [f64],
14547    lwork: i32,
14548    info: &mut i32,
14549) {
14550    ffi::dormbr_(
14551        &(vect as c_char),
14552        &(side as c_char),
14553        &(trans as c_char),
14554        &m,
14555        &n,
14556        &k,
14557        a.as_ptr(),
14558        &lda,
14559        tau.as_ptr(),
14560        c.as_mut_ptr(),
14561        &ldc,
14562        work.as_mut_ptr(),
14563        &lwork,
14564        info,
14565    )
14566}
14567
14568#[inline]
14569pub unsafe fn cungbr(
14570    vect: u8,
14571    m: i32,
14572    n: i32,
14573    k: i32,
14574    a: &mut [c32],
14575    lda: i32,
14576    tau: &[c32],
14577    work: &mut [c32],
14578    lwork: i32,
14579    info: &mut i32,
14580) {
14581    ffi::cungbr_(
14582        &(vect as c_char),
14583        &m,
14584        &n,
14585        &k,
14586        a.as_mut_ptr() as *mut _,
14587        &lda,
14588        tau.as_ptr() as *const _,
14589        work.as_mut_ptr() as *mut _,
14590        &lwork,
14591        info,
14592    )
14593}
14594
14595#[inline]
14596pub unsafe fn zungbr(
14597    vect: u8,
14598    m: i32,
14599    n: i32,
14600    k: i32,
14601    a: &mut [c64],
14602    lda: i32,
14603    tau: &[c64],
14604    work: &mut [c64],
14605    lwork: i32,
14606    info: &mut i32,
14607) {
14608    ffi::zungbr_(
14609        &(vect as c_char),
14610        &m,
14611        &n,
14612        &k,
14613        a.as_mut_ptr() as *mut _,
14614        &lda,
14615        tau.as_ptr() as *const _,
14616        work.as_mut_ptr() as *mut _,
14617        &lwork,
14618        info,
14619    )
14620}
14621
14622#[inline]
14623pub unsafe fn cunmbr(
14624    vect: u8,
14625    side: u8,
14626    trans: u8,
14627    m: i32,
14628    n: i32,
14629    k: i32,
14630    a: &[c32],
14631    lda: i32,
14632    tau: &[c32],
14633    c: &mut [c32],
14634    ldc: i32,
14635    work: &mut [c32],
14636    lwork: i32,
14637    info: &mut i32,
14638) {
14639    ffi::cunmbr_(
14640        &(vect as c_char),
14641        &(side as c_char),
14642        &(trans as c_char),
14643        &m,
14644        &n,
14645        &k,
14646        a.as_ptr() as *const _,
14647        &lda,
14648        tau.as_ptr() as *const _,
14649        c.as_mut_ptr() as *mut _,
14650        &ldc,
14651        work.as_mut_ptr() as *mut _,
14652        &lwork,
14653        info,
14654    )
14655}
14656
14657#[inline]
14658pub unsafe fn zunmbr(
14659    vect: u8,
14660    side: u8,
14661    trans: u8,
14662    m: i32,
14663    n: i32,
14664    k: i32,
14665    a: &[c64],
14666    lda: i32,
14667    tau: &[c64],
14668    c: &mut [c64],
14669    ldc: i32,
14670    work: &mut [c64],
14671    lwork: i32,
14672    info: &mut i32,
14673) {
14674    ffi::zunmbr_(
14675        &(vect as c_char),
14676        &(side as c_char),
14677        &(trans as c_char),
14678        &m,
14679        &n,
14680        &k,
14681        a.as_ptr() as *const _,
14682        &lda,
14683        tau.as_ptr() as *const _,
14684        c.as_mut_ptr() as *mut _,
14685        &ldc,
14686        work.as_mut_ptr() as *mut _,
14687        &lwork,
14688        info,
14689    )
14690}
14691
14692#[inline]
14693pub unsafe fn sbdsqr(
14694    uplo: u8,
14695    n: i32,
14696    ncvt: &[i32],
14697    nru: &[i32],
14698    ncc: &[i32],
14699    d: &mut [f32],
14700    e: &mut [f32],
14701    vt: &mut [f32],
14702    ldvt: i32,
14703    u: &mut [f32],
14704    ldu: i32,
14705    c: &mut [f32],
14706    ldc: i32,
14707    work: &mut [f32],
14708    info: &mut i32,
14709) {
14710    ffi::sbdsqr_(
14711        &(uplo as c_char),
14712        &n,
14713        ncvt.as_ptr(),
14714        nru.as_ptr(),
14715        ncc.as_ptr(),
14716        d.as_mut_ptr(),
14717        e.as_mut_ptr(),
14718        vt.as_mut_ptr(),
14719        &ldvt,
14720        u.as_mut_ptr(),
14721        &ldu,
14722        c.as_mut_ptr(),
14723        &ldc,
14724        work.as_mut_ptr(),
14725        info,
14726    )
14727}
14728
14729#[inline]
14730pub unsafe fn dbdsqr(
14731    uplo: u8,
14732    n: i32,
14733    ncvt: &[i32],
14734    nru: &[i32],
14735    ncc: &[i32],
14736    d: &mut [f64],
14737    e: &mut [f64],
14738    vt: &mut [f64],
14739    ldvt: i32,
14740    u: &mut [f64],
14741    ldu: i32,
14742    c: &mut [f64],
14743    ldc: i32,
14744    work: &mut [f64],
14745    info: &mut i32,
14746) {
14747    ffi::dbdsqr_(
14748        &(uplo as c_char),
14749        &n,
14750        ncvt.as_ptr(),
14751        nru.as_ptr(),
14752        ncc.as_ptr(),
14753        d.as_mut_ptr(),
14754        e.as_mut_ptr(),
14755        vt.as_mut_ptr(),
14756        &ldvt,
14757        u.as_mut_ptr(),
14758        &ldu,
14759        c.as_mut_ptr(),
14760        &ldc,
14761        work.as_mut_ptr(),
14762        info,
14763    )
14764}
14765
14766#[inline]
14767pub unsafe fn cbdsqr(
14768    uplo: u8,
14769    n: i32,
14770    ncvt: &[i32],
14771    nru: &[i32],
14772    ncc: &[i32],
14773    d: &mut [f32],
14774    e: &mut [f32],
14775    vt: &mut [c32],
14776    ldvt: i32,
14777    u: &mut [c32],
14778    ldu: i32,
14779    c: &mut [c32],
14780    ldc: i32,
14781    work: &mut [f32],
14782    info: &mut i32,
14783) {
14784    ffi::cbdsqr_(
14785        &(uplo as c_char),
14786        &n,
14787        ncvt.as_ptr(),
14788        nru.as_ptr(),
14789        ncc.as_ptr(),
14790        d.as_mut_ptr(),
14791        e.as_mut_ptr(),
14792        vt.as_mut_ptr() as *mut _,
14793        &ldvt,
14794        u.as_mut_ptr() as *mut _,
14795        &ldu,
14796        c.as_mut_ptr() as *mut _,
14797        &ldc,
14798        work.as_mut_ptr(),
14799        info,
14800    )
14801}
14802
14803#[inline]
14804pub unsafe fn zbdsqr(
14805    uplo: u8,
14806    n: i32,
14807    ncvt: &[i32],
14808    nru: &[i32],
14809    ncc: &[i32],
14810    d: &mut [f64],
14811    e: &mut [f64],
14812    vt: &mut [c64],
14813    ldvt: i32,
14814    u: &mut [c64],
14815    ldu: i32,
14816    c: &mut [c64],
14817    ldc: i32,
14818    work: &mut [f64],
14819    info: &mut i32,
14820) {
14821    ffi::zbdsqr_(
14822        &(uplo as c_char),
14823        &n,
14824        ncvt.as_ptr(),
14825        nru.as_ptr(),
14826        ncc.as_ptr(),
14827        d.as_mut_ptr(),
14828        e.as_mut_ptr(),
14829        vt.as_mut_ptr() as *mut _,
14830        &ldvt,
14831        u.as_mut_ptr() as *mut _,
14832        &ldu,
14833        c.as_mut_ptr() as *mut _,
14834        &ldc,
14835        work.as_mut_ptr(),
14836        info,
14837    )
14838}
14839
14840#[inline]
14841pub unsafe fn sbdsdc(
14842    uplo: u8,
14843    compq: u8,
14844    n: i32,
14845    d: &mut [f32],
14846    e: &mut [f32],
14847    u: &mut [f32],
14848    ldu: i32,
14849    vt: &mut [f32],
14850    ldvt: i32,
14851    q: &mut [f32],
14852    iq: &mut [i32],
14853    work: &mut [f32],
14854    iwork: &mut [i32],
14855    info: &mut i32,
14856) {
14857    ffi::sbdsdc_(
14858        &(uplo as c_char),
14859        &(compq as c_char),
14860        &n,
14861        d.as_mut_ptr(),
14862        e.as_mut_ptr(),
14863        u.as_mut_ptr(),
14864        &ldu,
14865        vt.as_mut_ptr(),
14866        &ldvt,
14867        q.as_mut_ptr(),
14868        iq.as_mut_ptr(),
14869        work.as_mut_ptr(),
14870        iwork.as_mut_ptr(),
14871        info,
14872    )
14873}
14874
14875#[inline]
14876pub unsafe fn dbdsdc(
14877    uplo: u8,
14878    compq: u8,
14879    n: i32,
14880    d: &mut [f64],
14881    e: &mut [f64],
14882    u: &mut [f64],
14883    ldu: i32,
14884    vt: &mut [f64],
14885    ldvt: i32,
14886    q: &mut [f64],
14887    iq: &mut [i32],
14888    work: &mut [f64],
14889    iwork: &mut [i32],
14890    info: &mut i32,
14891) {
14892    ffi::dbdsdc_(
14893        &(uplo as c_char),
14894        &(compq as c_char),
14895        &n,
14896        d.as_mut_ptr(),
14897        e.as_mut_ptr(),
14898        u.as_mut_ptr(),
14899        &ldu,
14900        vt.as_mut_ptr(),
14901        &ldvt,
14902        q.as_mut_ptr(),
14903        iq.as_mut_ptr(),
14904        work.as_mut_ptr(),
14905        iwork.as_mut_ptr(),
14906        info,
14907    )
14908}
14909
14910#[inline]
14911pub unsafe fn sbdsvdx(
14912    uplo: u8,
14913    jobz: u8,
14914    range: u8,
14915    n: i32,
14916    d: &[f32],
14917    e: &[f32],
14918    vl: f32,
14919    vu: f32,
14920    il: i32,
14921    iu: i32,
14922    ns: &mut [i32],
14923    s: &mut [f32],
14924    z: &mut [f32],
14925    ldz: i32,
14926    work: &mut [f32],
14927    iwork: &mut [i32],
14928    info: &mut i32,
14929) {
14930    ffi::sbdsvdx_(
14931        &(uplo as c_char),
14932        &(jobz as c_char),
14933        &(range as c_char),
14934        &n,
14935        d.as_ptr(),
14936        e.as_ptr(),
14937        &vl,
14938        &vu,
14939        &il,
14940        &iu,
14941        ns.as_mut_ptr(),
14942        s.as_mut_ptr(),
14943        z.as_mut_ptr(),
14944        &ldz,
14945        work.as_mut_ptr(),
14946        iwork.as_mut_ptr(),
14947        info,
14948    )
14949}
14950
14951#[inline]
14952pub unsafe fn dbdsvdx(
14953    uplo: u8,
14954    jobz: u8,
14955    range: u8,
14956    n: i32,
14957    d: &[f64],
14958    e: &[f64],
14959    vl: f64,
14960    vu: f64,
14961    il: i32,
14962    iu: i32,
14963    ns: &mut [i32],
14964    s: &mut [f64],
14965    z: &mut [f64],
14966    ldz: i32,
14967    work: &mut [f64],
14968    iwork: &mut [i32],
14969    info: &mut i32,
14970) {
14971    ffi::dbdsvdx_(
14972        &(uplo as c_char),
14973        &(jobz as c_char),
14974        &(range as c_char),
14975        &n,
14976        d.as_ptr(),
14977        e.as_ptr(),
14978        &vl,
14979        &vu,
14980        &il,
14981        &iu,
14982        ns.as_mut_ptr(),
14983        s.as_mut_ptr(),
14984        z.as_mut_ptr(),
14985        &ldz,
14986        work.as_mut_ptr(),
14987        iwork.as_mut_ptr(),
14988        info,
14989    )
14990}
14991
14992#[inline]
14993pub unsafe fn ssytrd(
14994    uplo: u8,
14995    n: i32,
14996    a: &mut [f32],
14997    lda: i32,
14998    d: &mut [f32],
14999    e: &mut [f32],
15000    tau: &mut [f32],
15001    work: &mut [f32],
15002    lwork: i32,
15003    info: &mut i32,
15004) {
15005    ffi::ssytrd_(
15006        &(uplo as c_char),
15007        &n,
15008        a.as_mut_ptr(),
15009        &lda,
15010        d.as_mut_ptr(),
15011        e.as_mut_ptr(),
15012        tau.as_mut_ptr(),
15013        work.as_mut_ptr(),
15014        &lwork,
15015        info,
15016    )
15017}
15018
15019#[inline]
15020pub unsafe fn dsytrd(
15021    uplo: u8,
15022    n: i32,
15023    a: &mut [f64],
15024    lda: i32,
15025    d: &mut [f64],
15026    e: &mut [f64],
15027    tau: &mut [f64],
15028    work: &mut [f64],
15029    lwork: i32,
15030    info: &mut i32,
15031) {
15032    ffi::dsytrd_(
15033        &(uplo as c_char),
15034        &n,
15035        a.as_mut_ptr(),
15036        &lda,
15037        d.as_mut_ptr(),
15038        e.as_mut_ptr(),
15039        tau.as_mut_ptr(),
15040        work.as_mut_ptr(),
15041        &lwork,
15042        info,
15043    )
15044}
15045
15046#[inline]
15047pub unsafe fn sorgtr(
15048    uplo: u8,
15049    n: i32,
15050    a: &mut [f32],
15051    lda: i32,
15052    tau: &[f32],
15053    work: &mut [f32],
15054    lwork: i32,
15055    info: &mut i32,
15056) {
15057    ffi::sorgtr_(
15058        &(uplo as c_char),
15059        &n,
15060        a.as_mut_ptr(),
15061        &lda,
15062        tau.as_ptr(),
15063        work.as_mut_ptr(),
15064        &lwork,
15065        info,
15066    )
15067}
15068
15069#[inline]
15070pub unsafe fn dorgtr(
15071    uplo: u8,
15072    n: i32,
15073    a: &mut [f64],
15074    lda: i32,
15075    tau: &[f64],
15076    work: &mut [f64],
15077    lwork: i32,
15078    info: &mut i32,
15079) {
15080    ffi::dorgtr_(
15081        &(uplo as c_char),
15082        &n,
15083        a.as_mut_ptr(),
15084        &lda,
15085        tau.as_ptr(),
15086        work.as_mut_ptr(),
15087        &lwork,
15088        info,
15089    )
15090}
15091
15092#[inline]
15093pub unsafe fn sormtr(
15094    side: u8,
15095    uplo: u8,
15096    trans: u8,
15097    m: i32,
15098    n: i32,
15099    a: &[f32],
15100    lda: i32,
15101    tau: &[f32],
15102    c: &mut [f32],
15103    ldc: i32,
15104    work: &mut [f32],
15105    lwork: i32,
15106    info: &mut i32,
15107) {
15108    ffi::sormtr_(
15109        &(side as c_char),
15110        &(uplo as c_char),
15111        &(trans as c_char),
15112        &m,
15113        &n,
15114        a.as_ptr(),
15115        &lda,
15116        tau.as_ptr(),
15117        c.as_mut_ptr(),
15118        &ldc,
15119        work.as_mut_ptr(),
15120        &lwork,
15121        info,
15122    )
15123}
15124
15125#[inline]
15126pub unsafe fn dormtr(
15127    side: u8,
15128    uplo: u8,
15129    trans: u8,
15130    m: i32,
15131    n: i32,
15132    a: &[f64],
15133    lda: i32,
15134    tau: &[f64],
15135    c: &mut [f64],
15136    ldc: i32,
15137    work: &mut [f64],
15138    lwork: i32,
15139    info: &mut i32,
15140) {
15141    ffi::dormtr_(
15142        &(side as c_char),
15143        &(uplo as c_char),
15144        &(trans as c_char),
15145        &m,
15146        &n,
15147        a.as_ptr(),
15148        &lda,
15149        tau.as_ptr(),
15150        c.as_mut_ptr(),
15151        &ldc,
15152        work.as_mut_ptr(),
15153        &lwork,
15154        info,
15155    )
15156}
15157
15158#[inline]
15159pub unsafe fn chetrd(
15160    uplo: u8,
15161    n: i32,
15162    a: &mut [c32],
15163    lda: i32,
15164    d: &mut [f32],
15165    e: &mut [f32],
15166    tau: &mut [c32],
15167    work: &mut [c32],
15168    lwork: i32,
15169    info: &mut i32,
15170) {
15171    ffi::chetrd_(
15172        &(uplo as c_char),
15173        &n,
15174        a.as_mut_ptr() as *mut _,
15175        &lda,
15176        d.as_mut_ptr(),
15177        e.as_mut_ptr(),
15178        tau.as_mut_ptr() as *mut _,
15179        work.as_mut_ptr() as *mut _,
15180        &lwork,
15181        info,
15182    )
15183}
15184
15185#[inline]
15186pub unsafe fn zhetrd(
15187    uplo: u8,
15188    n: i32,
15189    a: &mut [c64],
15190    lda: i32,
15191    d: &mut [f64],
15192    e: &mut [f64],
15193    tau: &mut [c64],
15194    work: &mut [c64],
15195    lwork: i32,
15196    info: &mut i32,
15197) {
15198    ffi::zhetrd_(
15199        &(uplo as c_char),
15200        &n,
15201        a.as_mut_ptr() as *mut _,
15202        &lda,
15203        d.as_mut_ptr(),
15204        e.as_mut_ptr(),
15205        tau.as_mut_ptr() as *mut _,
15206        work.as_mut_ptr() as *mut _,
15207        &lwork,
15208        info,
15209    )
15210}
15211
15212#[inline]
15213pub unsafe fn cungtr(
15214    uplo: u8,
15215    n: i32,
15216    a: &mut [c32],
15217    lda: i32,
15218    tau: &[c32],
15219    work: &mut [c32],
15220    lwork: i32,
15221    info: &mut i32,
15222) {
15223    ffi::cungtr_(
15224        &(uplo as c_char),
15225        &n,
15226        a.as_mut_ptr() as *mut _,
15227        &lda,
15228        tau.as_ptr() as *const _,
15229        work.as_mut_ptr() as *mut _,
15230        &lwork,
15231        info,
15232    )
15233}
15234
15235#[inline]
15236pub unsafe fn zungtr(
15237    uplo: u8,
15238    n: i32,
15239    a: &mut [c64],
15240    lda: i32,
15241    tau: &[c64],
15242    work: &mut [c64],
15243    lwork: i32,
15244    info: &mut i32,
15245) {
15246    ffi::zungtr_(
15247        &(uplo as c_char),
15248        &n,
15249        a.as_mut_ptr() as *mut _,
15250        &lda,
15251        tau.as_ptr() as *const _,
15252        work.as_mut_ptr() as *mut _,
15253        &lwork,
15254        info,
15255    )
15256}
15257
15258#[inline]
15259pub unsafe fn cunmtr(
15260    side: u8,
15261    uplo: u8,
15262    trans: u8,
15263    m: i32,
15264    n: i32,
15265    a: &[c32],
15266    lda: i32,
15267    tau: &[c32],
15268    c: &mut [c32],
15269    ldc: i32,
15270    work: &mut [c32],
15271    lwork: i32,
15272    info: &mut i32,
15273) {
15274    ffi::cunmtr_(
15275        &(side as c_char),
15276        &(uplo as c_char),
15277        &(trans as c_char),
15278        &m,
15279        &n,
15280        a.as_ptr() as *const _,
15281        &lda,
15282        tau.as_ptr() as *const _,
15283        c.as_mut_ptr() as *mut _,
15284        &ldc,
15285        work.as_mut_ptr() as *mut _,
15286        &lwork,
15287        info,
15288    )
15289}
15290
15291#[inline]
15292pub unsafe fn zunmtr(
15293    side: u8,
15294    uplo: u8,
15295    trans: u8,
15296    m: i32,
15297    n: i32,
15298    a: &[c64],
15299    lda: i32,
15300    tau: &[c64],
15301    c: &mut [c64],
15302    ldc: i32,
15303    work: &mut [c64],
15304    lwork: i32,
15305    info: &mut i32,
15306) {
15307    ffi::zunmtr_(
15308        &(side as c_char),
15309        &(uplo as c_char),
15310        &(trans as c_char),
15311        &m,
15312        &n,
15313        a.as_ptr() as *const _,
15314        &lda,
15315        tau.as_ptr() as *const _,
15316        c.as_mut_ptr() as *mut _,
15317        &ldc,
15318        work.as_mut_ptr() as *mut _,
15319        &lwork,
15320        info,
15321    )
15322}
15323
15324#[inline]
15325pub unsafe fn ssptrd(
15326    uplo: u8,
15327    n: i32,
15328    ap: &mut [f32],
15329    d: &mut [f32],
15330    e: &mut [f32],
15331    tau: &mut [f32],
15332    info: &mut i32,
15333) {
15334    ffi::ssptrd_(
15335        &(uplo as c_char),
15336        &n,
15337        ap.as_mut_ptr(),
15338        d.as_mut_ptr(),
15339        e.as_mut_ptr(),
15340        tau.as_mut_ptr(),
15341        info,
15342    )
15343}
15344
15345#[inline]
15346pub unsafe fn dsptrd(
15347    uplo: u8,
15348    n: i32,
15349    ap: &mut [f64],
15350    d: &mut [f64],
15351    e: &mut [f64],
15352    tau: &mut [f64],
15353    info: &mut i32,
15354) {
15355    ffi::dsptrd_(
15356        &(uplo as c_char),
15357        &n,
15358        ap.as_mut_ptr(),
15359        d.as_mut_ptr(),
15360        e.as_mut_ptr(),
15361        tau.as_mut_ptr(),
15362        info,
15363    )
15364}
15365
15366#[inline]
15367pub unsafe fn sopgtr(
15368    uplo: u8,
15369    n: i32,
15370    ap: &[f32],
15371    tau: &[f32],
15372    q: &mut [f32],
15373    ldq: i32,
15374    work: &mut [f32],
15375    info: &mut i32,
15376) {
15377    ffi::sopgtr_(
15378        &(uplo as c_char),
15379        &n,
15380        ap.as_ptr(),
15381        tau.as_ptr(),
15382        q.as_mut_ptr(),
15383        &ldq,
15384        work.as_mut_ptr(),
15385        info,
15386    )
15387}
15388
15389#[inline]
15390pub unsafe fn dopgtr(
15391    uplo: u8,
15392    n: i32,
15393    ap: &[f64],
15394    tau: &[f64],
15395    q: &mut [f64],
15396    ldq: i32,
15397    work: &mut [f64],
15398    info: &mut i32,
15399) {
15400    ffi::dopgtr_(
15401        &(uplo as c_char),
15402        &n,
15403        ap.as_ptr(),
15404        tau.as_ptr(),
15405        q.as_mut_ptr(),
15406        &ldq,
15407        work.as_mut_ptr(),
15408        info,
15409    )
15410}
15411
15412#[inline]
15413pub unsafe fn sopmtr(
15414    side: u8,
15415    uplo: u8,
15416    trans: u8,
15417    m: i32,
15418    n: i32,
15419    ap: &[f32],
15420    tau: &[f32],
15421    c: &mut [f32],
15422    ldc: i32,
15423    work: &mut [f32],
15424    info: &mut i32,
15425) {
15426    ffi::sopmtr_(
15427        &(side as c_char),
15428        &(uplo as c_char),
15429        &(trans as c_char),
15430        &m,
15431        &n,
15432        ap.as_ptr(),
15433        tau.as_ptr(),
15434        c.as_mut_ptr(),
15435        &ldc,
15436        work.as_mut_ptr(),
15437        info,
15438    )
15439}
15440
15441#[inline]
15442pub unsafe fn dopmtr(
15443    side: u8,
15444    uplo: u8,
15445    trans: u8,
15446    m: i32,
15447    n: i32,
15448    ap: &[f64],
15449    tau: &[f64],
15450    c: &mut [f64],
15451    ldc: i32,
15452    work: &mut [f64],
15453    info: &mut i32,
15454) {
15455    ffi::dopmtr_(
15456        &(side as c_char),
15457        &(uplo as c_char),
15458        &(trans as c_char),
15459        &m,
15460        &n,
15461        ap.as_ptr(),
15462        tau.as_ptr(),
15463        c.as_mut_ptr(),
15464        &ldc,
15465        work.as_mut_ptr(),
15466        info,
15467    )
15468}
15469
15470#[inline]
15471pub unsafe fn chptrd(
15472    uplo: u8,
15473    n: i32,
15474    ap: &mut [c32],
15475    d: &mut [f32],
15476    e: &mut [f32],
15477    tau: &mut [c32],
15478    info: &mut i32,
15479) {
15480    ffi::chptrd_(
15481        &(uplo as c_char),
15482        &n,
15483        ap.as_mut_ptr() as *mut _,
15484        d.as_mut_ptr(),
15485        e.as_mut_ptr(),
15486        tau.as_mut_ptr() as *mut _,
15487        info,
15488    )
15489}
15490
15491#[inline]
15492pub unsafe fn zhptrd(
15493    uplo: u8,
15494    n: i32,
15495    ap: &mut [c64],
15496    d: &mut [f64],
15497    e: &mut [f64],
15498    tau: &mut [c64],
15499    info: &mut i32,
15500) {
15501    ffi::zhptrd_(
15502        &(uplo as c_char),
15503        &n,
15504        ap.as_mut_ptr() as *mut _,
15505        d.as_mut_ptr(),
15506        e.as_mut_ptr(),
15507        tau.as_mut_ptr() as *mut _,
15508        info,
15509    )
15510}
15511
15512#[inline]
15513pub unsafe fn cupgtr(
15514    uplo: u8,
15515    n: i32,
15516    ap: &[c32],
15517    tau: &[c32],
15518    q: &mut [c32],
15519    ldq: i32,
15520    work: &mut [c32],
15521    info: &mut i32,
15522) {
15523    ffi::cupgtr_(
15524        &(uplo as c_char),
15525        &n,
15526        ap.as_ptr() as *const _,
15527        tau.as_ptr() as *const _,
15528        q.as_mut_ptr() as *mut _,
15529        &ldq,
15530        work.as_mut_ptr() as *mut _,
15531        info,
15532    )
15533}
15534
15535#[inline]
15536pub unsafe fn zupgtr(
15537    uplo: u8,
15538    n: i32,
15539    ap: &[c64],
15540    tau: &[c64],
15541    q: &mut [c64],
15542    ldq: i32,
15543    work: &mut [c64],
15544    info: &mut i32,
15545) {
15546    ffi::zupgtr_(
15547        &(uplo as c_char),
15548        &n,
15549        ap.as_ptr() as *const _,
15550        tau.as_ptr() as *const _,
15551        q.as_mut_ptr() as *mut _,
15552        &ldq,
15553        work.as_mut_ptr() as *mut _,
15554        info,
15555    )
15556}
15557
15558#[inline]
15559pub unsafe fn cupmtr(
15560    side: u8,
15561    uplo: u8,
15562    trans: u8,
15563    m: i32,
15564    n: i32,
15565    ap: &[c32],
15566    tau: &[c32],
15567    c: &mut [c32],
15568    ldc: i32,
15569    work: &mut [c32],
15570    info: &mut i32,
15571) {
15572    ffi::cupmtr_(
15573        &(side as c_char),
15574        &(uplo as c_char),
15575        &(trans as c_char),
15576        &m,
15577        &n,
15578        ap.as_ptr() as *const _,
15579        tau.as_ptr() as *const _,
15580        c.as_mut_ptr() as *mut _,
15581        &ldc,
15582        work.as_mut_ptr() as *mut _,
15583        info,
15584    )
15585}
15586
15587#[inline]
15588pub unsafe fn zupmtr(
15589    side: u8,
15590    uplo: u8,
15591    trans: u8,
15592    m: i32,
15593    n: i32,
15594    ap: &[c64],
15595    tau: &[c64],
15596    c: &mut [c64],
15597    ldc: i32,
15598    work: &mut [c64],
15599    info: &mut i32,
15600) {
15601    ffi::zupmtr_(
15602        &(side as c_char),
15603        &(uplo as c_char),
15604        &(trans as c_char),
15605        &m,
15606        &n,
15607        ap.as_ptr() as *const _,
15608        tau.as_ptr() as *const _,
15609        c.as_mut_ptr() as *mut _,
15610        &ldc,
15611        work.as_mut_ptr() as *mut _,
15612        info,
15613    )
15614}
15615
15616#[inline]
15617pub unsafe fn ssbtrd(
15618    vect: u8,
15619    uplo: u8,
15620    n: i32,
15621    kd: i32,
15622    ab: &mut [f32],
15623    ldab: i32,
15624    d: &mut [f32],
15625    e: &mut [f32],
15626    q: &mut [f32],
15627    ldq: i32,
15628    work: &mut [f32],
15629    info: &mut i32,
15630) {
15631    ffi::ssbtrd_(
15632        &(vect as c_char),
15633        &(uplo as c_char),
15634        &n,
15635        &kd,
15636        ab.as_mut_ptr(),
15637        &ldab,
15638        d.as_mut_ptr(),
15639        e.as_mut_ptr(),
15640        q.as_mut_ptr(),
15641        &ldq,
15642        work.as_mut_ptr(),
15643        info,
15644    )
15645}
15646
15647#[inline]
15648pub unsafe fn dsbtrd(
15649    vect: u8,
15650    uplo: u8,
15651    n: i32,
15652    kd: i32,
15653    ab: &mut [f64],
15654    ldab: i32,
15655    d: &mut [f64],
15656    e: &mut [f64],
15657    q: &mut [f64],
15658    ldq: i32,
15659    work: &mut [f64],
15660    info: &mut i32,
15661) {
15662    ffi::dsbtrd_(
15663        &(vect as c_char),
15664        &(uplo as c_char),
15665        &n,
15666        &kd,
15667        ab.as_mut_ptr(),
15668        &ldab,
15669        d.as_mut_ptr(),
15670        e.as_mut_ptr(),
15671        q.as_mut_ptr(),
15672        &ldq,
15673        work.as_mut_ptr(),
15674        info,
15675    )
15676}
15677
15678#[inline]
15679pub unsafe fn chbtrd(
15680    vect: u8,
15681    uplo: u8,
15682    n: i32,
15683    kd: i32,
15684    ab: &mut [c32],
15685    ldab: i32,
15686    d: &mut [f32],
15687    e: &mut [f32],
15688    q: &mut [c32],
15689    ldq: i32,
15690    work: &mut [c32],
15691    info: &mut i32,
15692) {
15693    ffi::chbtrd_(
15694        &(vect as c_char),
15695        &(uplo as c_char),
15696        &n,
15697        &kd,
15698        ab.as_mut_ptr() as *mut _,
15699        &ldab,
15700        d.as_mut_ptr(),
15701        e.as_mut_ptr(),
15702        q.as_mut_ptr() as *mut _,
15703        &ldq,
15704        work.as_mut_ptr() as *mut _,
15705        info,
15706    )
15707}
15708
15709#[inline]
15710pub unsafe fn zhbtrd(
15711    vect: u8,
15712    uplo: u8,
15713    n: i32,
15714    kd: i32,
15715    ab: &mut [c64],
15716    ldab: i32,
15717    d: &mut [f64],
15718    e: &mut [f64],
15719    q: &mut [c64],
15720    ldq: i32,
15721    work: &mut [c64],
15722    info: &mut i32,
15723) {
15724    ffi::zhbtrd_(
15725        &(vect as c_char),
15726        &(uplo as c_char),
15727        &n,
15728        &kd,
15729        ab.as_mut_ptr() as *mut _,
15730        &ldab,
15731        d.as_mut_ptr(),
15732        e.as_mut_ptr(),
15733        q.as_mut_ptr() as *mut _,
15734        &ldq,
15735        work.as_mut_ptr() as *mut _,
15736        info,
15737    )
15738}
15739
15740#[inline]
15741pub unsafe fn ssterf(n: i32, d: &mut [f32], e: &mut [f32], info: &mut i32) {
15742    ffi::ssterf_(&n, d.as_mut_ptr(), e.as_mut_ptr(), info)
15743}
15744
15745#[inline]
15746pub unsafe fn dsterf(n: i32, d: &mut [f64], e: &mut [f64], info: &mut i32) {
15747    ffi::dsterf_(&n, d.as_mut_ptr(), e.as_mut_ptr(), info)
15748}
15749
15750#[inline]
15751pub unsafe fn ssteqr(
15752    compz: u8,
15753    n: i32,
15754    d: &mut [f32],
15755    e: &mut [f32],
15756    z: &mut [f32],
15757    ldz: i32,
15758    work: &mut [f32],
15759    info: &mut i32,
15760) {
15761    ffi::ssteqr_(
15762        &(compz as c_char),
15763        &n,
15764        d.as_mut_ptr(),
15765        e.as_mut_ptr(),
15766        z.as_mut_ptr(),
15767        &ldz,
15768        work.as_mut_ptr(),
15769        info,
15770    )
15771}
15772
15773#[inline]
15774pub unsafe fn dsteqr(
15775    compz: u8,
15776    n: i32,
15777    d: &mut [f64],
15778    e: &mut [f64],
15779    z: &mut [f64],
15780    ldz: i32,
15781    work: &mut [f64],
15782    info: &mut i32,
15783) {
15784    ffi::dsteqr_(
15785        &(compz as c_char),
15786        &n,
15787        d.as_mut_ptr(),
15788        e.as_mut_ptr(),
15789        z.as_mut_ptr(),
15790        &ldz,
15791        work.as_mut_ptr(),
15792        info,
15793    )
15794}
15795
15796#[inline]
15797pub unsafe fn csteqr(
15798    compz: u8,
15799    n: i32,
15800    d: &mut [f32],
15801    e: &mut [f32],
15802    z: &mut [c32],
15803    ldz: i32,
15804    work: &mut [f32],
15805    info: &mut i32,
15806) {
15807    ffi::csteqr_(
15808        &(compz as c_char),
15809        &n,
15810        d.as_mut_ptr(),
15811        e.as_mut_ptr(),
15812        z.as_mut_ptr() as *mut _,
15813        &ldz,
15814        work.as_mut_ptr(),
15815        info,
15816    )
15817}
15818
15819#[inline]
15820pub unsafe fn zsteqr(
15821    compz: u8,
15822    n: i32,
15823    d: &mut [f64],
15824    e: &mut [f64],
15825    z: &mut [c64],
15826    ldz: i32,
15827    work: &mut [f64],
15828    info: &mut i32,
15829) {
15830    ffi::zsteqr_(
15831        &(compz as c_char),
15832        &n,
15833        d.as_mut_ptr(),
15834        e.as_mut_ptr(),
15835        z.as_mut_ptr() as *mut _,
15836        &ldz,
15837        work.as_mut_ptr(),
15838        info,
15839    )
15840}
15841
15842#[inline]
15843pub unsafe fn sstemr(
15844    jobz: u8,
15845    range: u8,
15846    n: i32,
15847    d: &mut [f32],
15848    e: &mut [f32],
15849    vl: f32,
15850    vu: f32,
15851    il: i32,
15852    iu: i32,
15853    m: &mut i32,
15854    w: &mut [f32],
15855    z: &mut [f32],
15856    ldz: i32,
15857    nzc: &[i32],
15858    isuppz: &mut [i32],
15859    tryrac: &mut i32,
15860    work: &mut [f32],
15861    lwork: i32,
15862    iwork: &mut [i32],
15863    liwork: i32,
15864    info: &mut i32,
15865) {
15866    ffi::sstemr_(
15867        &(jobz as c_char),
15868        &(range as c_char),
15869        &n,
15870        d.as_mut_ptr(),
15871        e.as_mut_ptr(),
15872        &vl,
15873        &vu,
15874        &il,
15875        &iu,
15876        m,
15877        w.as_mut_ptr(),
15878        z.as_mut_ptr(),
15879        &ldz,
15880        nzc.as_ptr(),
15881        isuppz.as_mut_ptr(),
15882        tryrac,
15883        work.as_mut_ptr(),
15884        &lwork,
15885        iwork.as_mut_ptr(),
15886        &liwork,
15887        info,
15888    )
15889}
15890
15891#[inline]
15892pub unsafe fn dstemr(
15893    jobz: u8,
15894    range: u8,
15895    n: i32,
15896    d: &mut [f64],
15897    e: &mut [f64],
15898    vl: f64,
15899    vu: f64,
15900    il: i32,
15901    iu: i32,
15902    m: &mut i32,
15903    w: &mut [f64],
15904    z: &mut [f64],
15905    ldz: i32,
15906    nzc: &[i32],
15907    isuppz: &mut [i32],
15908    tryrac: &mut i32,
15909    work: &mut [f64],
15910    lwork: i32,
15911    iwork: &mut [i32],
15912    liwork: i32,
15913    info: &mut i32,
15914) {
15915    ffi::dstemr_(
15916        &(jobz as c_char),
15917        &(range as c_char),
15918        &n,
15919        d.as_mut_ptr(),
15920        e.as_mut_ptr(),
15921        &vl,
15922        &vu,
15923        &il,
15924        &iu,
15925        m,
15926        w.as_mut_ptr(),
15927        z.as_mut_ptr(),
15928        &ldz,
15929        nzc.as_ptr(),
15930        isuppz.as_mut_ptr(),
15931        tryrac,
15932        work.as_mut_ptr(),
15933        &lwork,
15934        iwork.as_mut_ptr(),
15935        &liwork,
15936        info,
15937    )
15938}
15939
15940#[inline]
15941pub unsafe fn cstemr(
15942    jobz: u8,
15943    range: u8,
15944    n: i32,
15945    d: &mut [f32],
15946    e: &mut [f32],
15947    vl: f32,
15948    vu: f32,
15949    il: i32,
15950    iu: i32,
15951    m: &mut i32,
15952    w: &mut [f32],
15953    z: &mut [c32],
15954    ldz: i32,
15955    nzc: &[i32],
15956    isuppz: &mut [i32],
15957    tryrac: &mut i32,
15958    work: &mut [f32],
15959    lwork: i32,
15960    iwork: &mut [i32],
15961    liwork: i32,
15962    info: &mut i32,
15963) {
15964    ffi::cstemr_(
15965        &(jobz as c_char),
15966        &(range as c_char),
15967        &n,
15968        d.as_mut_ptr(),
15969        e.as_mut_ptr(),
15970        &vl,
15971        &vu,
15972        &il,
15973        &iu,
15974        m,
15975        w.as_mut_ptr(),
15976        z.as_mut_ptr() as *mut _,
15977        &ldz,
15978        nzc.as_ptr(),
15979        isuppz.as_mut_ptr(),
15980        tryrac,
15981        work.as_mut_ptr(),
15982        &lwork,
15983        iwork.as_mut_ptr(),
15984        &liwork,
15985        info,
15986    )
15987}
15988
15989#[inline]
15990pub unsafe fn zstemr(
15991    jobz: u8,
15992    range: u8,
15993    n: i32,
15994    d: &mut [f64],
15995    e: &mut [f64],
15996    vl: f64,
15997    vu: f64,
15998    il: i32,
15999    iu: i32,
16000    m: &mut i32,
16001    w: &mut [f64],
16002    z: &mut [c64],
16003    ldz: i32,
16004    nzc: &[i32],
16005    isuppz: &mut [i32],
16006    tryrac: &mut i32,
16007    work: &mut [f64],
16008    lwork: i32,
16009    iwork: &mut [i32],
16010    liwork: i32,
16011    info: &mut i32,
16012) {
16013    ffi::zstemr_(
16014        &(jobz as c_char),
16015        &(range as c_char),
16016        &n,
16017        d.as_mut_ptr(),
16018        e.as_mut_ptr(),
16019        &vl,
16020        &vu,
16021        &il,
16022        &iu,
16023        m,
16024        w.as_mut_ptr(),
16025        z.as_mut_ptr() as *mut _,
16026        &ldz,
16027        nzc.as_ptr(),
16028        isuppz.as_mut_ptr(),
16029        tryrac,
16030        work.as_mut_ptr(),
16031        &lwork,
16032        iwork.as_mut_ptr(),
16033        &liwork,
16034        info,
16035    )
16036}
16037
16038#[inline]
16039pub unsafe fn sstedc(
16040    compz: u8,
16041    n: i32,
16042    d: &mut [f32],
16043    e: &mut [f32],
16044    z: &mut [f32],
16045    ldz: i32,
16046    work: &mut [f32],
16047    lwork: i32,
16048    iwork: &mut [i32],
16049    liwork: i32,
16050    info: &mut i32,
16051) {
16052    ffi::sstedc_(
16053        &(compz as c_char),
16054        &n,
16055        d.as_mut_ptr(),
16056        e.as_mut_ptr(),
16057        z.as_mut_ptr(),
16058        &ldz,
16059        work.as_mut_ptr(),
16060        &lwork,
16061        iwork.as_mut_ptr(),
16062        &liwork,
16063        info,
16064    )
16065}
16066
16067#[inline]
16068pub unsafe fn dstedc(
16069    compz: u8,
16070    n: i32,
16071    d: &mut [f64],
16072    e: &mut [f64],
16073    z: &mut [f64],
16074    ldz: i32,
16075    work: &mut [f64],
16076    lwork: i32,
16077    iwork: &mut [i32],
16078    liwork: i32,
16079    info: &mut i32,
16080) {
16081    ffi::dstedc_(
16082        &(compz as c_char),
16083        &n,
16084        d.as_mut_ptr(),
16085        e.as_mut_ptr(),
16086        z.as_mut_ptr(),
16087        &ldz,
16088        work.as_mut_ptr(),
16089        &lwork,
16090        iwork.as_mut_ptr(),
16091        &liwork,
16092        info,
16093    )
16094}
16095
16096#[inline]
16097pub unsafe fn cstedc(
16098    compz: u8,
16099    n: i32,
16100    d: &mut [f32],
16101    e: &mut [f32],
16102    z: &mut [c32],
16103    ldz: i32,
16104    work: &mut [c32],
16105    lwork: i32,
16106    rwork: &mut [f32],
16107    lrwork: i32,
16108    iwork: &mut [i32],
16109    liwork: i32,
16110    info: &mut i32,
16111) {
16112    ffi::cstedc_(
16113        &(compz as c_char),
16114        &n,
16115        d.as_mut_ptr(),
16116        e.as_mut_ptr(),
16117        z.as_mut_ptr() as *mut _,
16118        &ldz,
16119        work.as_mut_ptr() as *mut _,
16120        &lwork,
16121        rwork.as_mut_ptr(),
16122        &lrwork,
16123        iwork.as_mut_ptr(),
16124        &liwork,
16125        info,
16126    )
16127}
16128
16129#[inline]
16130pub unsafe fn zstedc(
16131    compz: u8,
16132    n: i32,
16133    d: &mut [f64],
16134    e: &mut [f64],
16135    z: &mut [c64],
16136    ldz: i32,
16137    work: &mut [c64],
16138    lwork: i32,
16139    rwork: &mut [f64],
16140    lrwork: i32,
16141    iwork: &mut [i32],
16142    liwork: i32,
16143    info: &mut i32,
16144) {
16145    ffi::zstedc_(
16146        &(compz as c_char),
16147        &n,
16148        d.as_mut_ptr(),
16149        e.as_mut_ptr(),
16150        z.as_mut_ptr() as *mut _,
16151        &ldz,
16152        work.as_mut_ptr() as *mut _,
16153        &lwork,
16154        rwork.as_mut_ptr(),
16155        &lrwork,
16156        iwork.as_mut_ptr(),
16157        &liwork,
16158        info,
16159    )
16160}
16161
16162#[inline]
16163pub unsafe fn sstegr(
16164    jobz: u8,
16165    range: u8,
16166    n: i32,
16167    d: &mut [f32],
16168    e: &mut [f32],
16169    vl: f32,
16170    vu: f32,
16171    il: i32,
16172    iu: i32,
16173    abstol: f32,
16174    m: &mut i32,
16175    w: &mut [f32],
16176    z: &mut [f32],
16177    ldz: i32,
16178    isuppz: &mut [i32],
16179    work: &mut [f32],
16180    lwork: i32,
16181    iwork: &mut [i32],
16182    liwork: i32,
16183    info: &mut i32,
16184) {
16185    ffi::sstegr_(
16186        &(jobz as c_char),
16187        &(range as c_char),
16188        &n,
16189        d.as_mut_ptr(),
16190        e.as_mut_ptr(),
16191        &vl,
16192        &vu,
16193        &il,
16194        &iu,
16195        &abstol,
16196        m,
16197        w.as_mut_ptr(),
16198        z.as_mut_ptr(),
16199        &ldz,
16200        isuppz.as_mut_ptr(),
16201        work.as_mut_ptr(),
16202        &lwork,
16203        iwork.as_mut_ptr(),
16204        &liwork,
16205        info,
16206    )
16207}
16208
16209#[inline]
16210pub unsafe fn dstegr(
16211    jobz: u8,
16212    range: u8,
16213    n: i32,
16214    d: &mut [f64],
16215    e: &mut [f64],
16216    vl: f64,
16217    vu: f64,
16218    il: i32,
16219    iu: i32,
16220    abstol: f64,
16221    m: &mut i32,
16222    w: &mut [f64],
16223    z: &mut [f64],
16224    ldz: i32,
16225    isuppz: &mut [i32],
16226    work: &mut [f64],
16227    lwork: i32,
16228    iwork: &mut [i32],
16229    liwork: i32,
16230    info: &mut i32,
16231) {
16232    ffi::dstegr_(
16233        &(jobz as c_char),
16234        &(range as c_char),
16235        &n,
16236        d.as_mut_ptr(),
16237        e.as_mut_ptr(),
16238        &vl,
16239        &vu,
16240        &il,
16241        &iu,
16242        &abstol,
16243        m,
16244        w.as_mut_ptr(),
16245        z.as_mut_ptr(),
16246        &ldz,
16247        isuppz.as_mut_ptr(),
16248        work.as_mut_ptr(),
16249        &lwork,
16250        iwork.as_mut_ptr(),
16251        &liwork,
16252        info,
16253    )
16254}
16255
16256#[inline]
16257pub unsafe fn cstegr(
16258    jobz: u8,
16259    range: u8,
16260    n: i32,
16261    d: &mut [f32],
16262    e: &mut [f32],
16263    vl: f32,
16264    vu: f32,
16265    il: i32,
16266    iu: i32,
16267    abstol: f32,
16268    m: &mut i32,
16269    w: &mut [f32],
16270    z: &mut [c32],
16271    ldz: i32,
16272    isuppz: &mut [i32],
16273    work: &mut [f32],
16274    lwork: i32,
16275    iwork: &mut [i32],
16276    liwork: i32,
16277    info: &mut i32,
16278) {
16279    ffi::cstegr_(
16280        &(jobz as c_char),
16281        &(range as c_char),
16282        &n,
16283        d.as_mut_ptr(),
16284        e.as_mut_ptr(),
16285        &vl,
16286        &vu,
16287        &il,
16288        &iu,
16289        &abstol,
16290        m,
16291        w.as_mut_ptr(),
16292        z.as_mut_ptr() as *mut _,
16293        &ldz,
16294        isuppz.as_mut_ptr(),
16295        work.as_mut_ptr(),
16296        &lwork,
16297        iwork.as_mut_ptr(),
16298        &liwork,
16299        info,
16300    )
16301}
16302
16303#[inline]
16304pub unsafe fn zstegr(
16305    jobz: u8,
16306    range: u8,
16307    n: i32,
16308    d: &mut [f64],
16309    e: &mut [f64],
16310    vl: f64,
16311    vu: f64,
16312    il: i32,
16313    iu: i32,
16314    abstol: f64,
16315    m: &mut i32,
16316    w: &mut [f64],
16317    z: &mut [c64],
16318    ldz: i32,
16319    isuppz: &mut [i32],
16320    work: &mut [f64],
16321    lwork: i32,
16322    iwork: &mut [i32],
16323    liwork: i32,
16324    info: &mut i32,
16325) {
16326    ffi::zstegr_(
16327        &(jobz as c_char),
16328        &(range as c_char),
16329        &n,
16330        d.as_mut_ptr(),
16331        e.as_mut_ptr(),
16332        &vl,
16333        &vu,
16334        &il,
16335        &iu,
16336        &abstol,
16337        m,
16338        w.as_mut_ptr(),
16339        z.as_mut_ptr() as *mut _,
16340        &ldz,
16341        isuppz.as_mut_ptr(),
16342        work.as_mut_ptr(),
16343        &lwork,
16344        iwork.as_mut_ptr(),
16345        &liwork,
16346        info,
16347    )
16348}
16349
16350#[inline]
16351pub unsafe fn spteqr(
16352    compz: u8,
16353    n: i32,
16354    d: &mut [f32],
16355    e: &mut [f32],
16356    z: &mut [f32],
16357    ldz: i32,
16358    work: &mut [f32],
16359    info: &mut i32,
16360) {
16361    ffi::spteqr_(
16362        &(compz as c_char),
16363        &n,
16364        d.as_mut_ptr(),
16365        e.as_mut_ptr(),
16366        z.as_mut_ptr(),
16367        &ldz,
16368        work.as_mut_ptr(),
16369        info,
16370    )
16371}
16372
16373#[inline]
16374pub unsafe fn dpteqr(
16375    compz: u8,
16376    n: i32,
16377    d: &mut [f64],
16378    e: &mut [f64],
16379    z: &mut [f64],
16380    ldz: i32,
16381    work: &mut [f64],
16382    info: &mut i32,
16383) {
16384    ffi::dpteqr_(
16385        &(compz as c_char),
16386        &n,
16387        d.as_mut_ptr(),
16388        e.as_mut_ptr(),
16389        z.as_mut_ptr(),
16390        &ldz,
16391        work.as_mut_ptr(),
16392        info,
16393    )
16394}
16395
16396#[inline]
16397pub unsafe fn cpteqr(
16398    compz: u8,
16399    n: i32,
16400    d: &mut [f32],
16401    e: &mut [f32],
16402    z: &mut [c32],
16403    ldz: i32,
16404    work: &mut [f32],
16405    info: &mut i32,
16406) {
16407    ffi::cpteqr_(
16408        &(compz as c_char),
16409        &n,
16410        d.as_mut_ptr(),
16411        e.as_mut_ptr(),
16412        z.as_mut_ptr() as *mut _,
16413        &ldz,
16414        work.as_mut_ptr(),
16415        info,
16416    )
16417}
16418
16419#[inline]
16420pub unsafe fn zpteqr(
16421    compz: u8,
16422    n: i32,
16423    d: &mut [f64],
16424    e: &mut [f64],
16425    z: &mut [c64],
16426    ldz: i32,
16427    work: &mut [f64],
16428    info: &mut i32,
16429) {
16430    ffi::zpteqr_(
16431        &(compz as c_char),
16432        &n,
16433        d.as_mut_ptr(),
16434        e.as_mut_ptr(),
16435        z.as_mut_ptr() as *mut _,
16436        &ldz,
16437        work.as_mut_ptr(),
16438        info,
16439    )
16440}
16441
16442#[inline]
16443pub unsafe fn sstebz(
16444    range: u8,
16445    order: u8,
16446    n: i32,
16447    vl: f32,
16448    vu: f32,
16449    il: i32,
16450    iu: i32,
16451    abstol: f32,
16452    d: &[f32],
16453    e: &[f32],
16454    m: &mut i32,
16455    nsplit: &mut [i32],
16456    w: &mut [f32],
16457    iblock: &mut [i32],
16458    isplit: &mut [i32],
16459    work: &mut [f32],
16460    iwork: &mut [i32],
16461    info: &mut i32,
16462) {
16463    ffi::sstebz_(
16464        &(range as c_char),
16465        &(order as c_char),
16466        &n,
16467        &vl,
16468        &vu,
16469        &il,
16470        &iu,
16471        &abstol,
16472        d.as_ptr(),
16473        e.as_ptr(),
16474        m,
16475        nsplit.as_mut_ptr(),
16476        w.as_mut_ptr(),
16477        iblock.as_mut_ptr(),
16478        isplit.as_mut_ptr(),
16479        work.as_mut_ptr(),
16480        iwork.as_mut_ptr(),
16481        info,
16482    )
16483}
16484
16485#[inline]
16486pub unsafe fn dstebz(
16487    range: u8,
16488    order: u8,
16489    n: i32,
16490    vl: f64,
16491    vu: f64,
16492    il: i32,
16493    iu: i32,
16494    abstol: f64,
16495    d: &[f64],
16496    e: &[f64],
16497    m: &mut i32,
16498    nsplit: &mut [i32],
16499    w: &mut [f64],
16500    iblock: &mut [i32],
16501    isplit: &mut [i32],
16502    work: &mut [f64],
16503    iwork: &mut [i32],
16504    info: &mut i32,
16505) {
16506    ffi::dstebz_(
16507        &(range as c_char),
16508        &(order as c_char),
16509        &n,
16510        &vl,
16511        &vu,
16512        &il,
16513        &iu,
16514        &abstol,
16515        d.as_ptr(),
16516        e.as_ptr(),
16517        m,
16518        nsplit.as_mut_ptr(),
16519        w.as_mut_ptr(),
16520        iblock.as_mut_ptr(),
16521        isplit.as_mut_ptr(),
16522        work.as_mut_ptr(),
16523        iwork.as_mut_ptr(),
16524        info,
16525    )
16526}
16527
16528#[inline]
16529pub unsafe fn sstein(
16530    n: i32,
16531    d: &[f32],
16532    e: &[f32],
16533    m: i32,
16534    w: &[f32],
16535    iblock: &[i32],
16536    isplit: &[i32],
16537    z: &mut [f32],
16538    ldz: i32,
16539    work: &mut [f32],
16540    iwork: &mut [i32],
16541    ifail: &mut [i32],
16542    info: &mut i32,
16543) {
16544    ffi::sstein_(
16545        &n,
16546        d.as_ptr(),
16547        e.as_ptr(),
16548        &m,
16549        w.as_ptr(),
16550        iblock.as_ptr(),
16551        isplit.as_ptr(),
16552        z.as_mut_ptr(),
16553        &ldz,
16554        work.as_mut_ptr(),
16555        iwork.as_mut_ptr(),
16556        ifail.as_mut_ptr(),
16557        info,
16558    )
16559}
16560
16561#[inline]
16562pub unsafe fn dstein(
16563    n: i32,
16564    d: &[f64],
16565    e: &[f64],
16566    m: i32,
16567    w: &[f64],
16568    iblock: &[i32],
16569    isplit: &[i32],
16570    z: &mut [f64],
16571    ldz: i32,
16572    work: &mut [f64],
16573    iwork: &mut [i32],
16574    ifail: &mut [i32],
16575    info: &mut i32,
16576) {
16577    ffi::dstein_(
16578        &n,
16579        d.as_ptr(),
16580        e.as_ptr(),
16581        &m,
16582        w.as_ptr(),
16583        iblock.as_ptr(),
16584        isplit.as_ptr(),
16585        z.as_mut_ptr(),
16586        &ldz,
16587        work.as_mut_ptr(),
16588        iwork.as_mut_ptr(),
16589        ifail.as_mut_ptr(),
16590        info,
16591    )
16592}
16593
16594#[inline]
16595pub unsafe fn cstein(
16596    n: i32,
16597    d: &[f32],
16598    e: &[f32],
16599    m: i32,
16600    w: &[f32],
16601    iblock: &[i32],
16602    isplit: &[i32],
16603    z: &mut [c32],
16604    ldz: i32,
16605    work: &mut [f32],
16606    iwork: &mut [i32],
16607    ifail: &mut [i32],
16608    info: &mut i32,
16609) {
16610    ffi::cstein_(
16611        &n,
16612        d.as_ptr(),
16613        e.as_ptr(),
16614        &m,
16615        w.as_ptr(),
16616        iblock.as_ptr(),
16617        isplit.as_ptr(),
16618        z.as_mut_ptr() as *mut _,
16619        &ldz,
16620        work.as_mut_ptr(),
16621        iwork.as_mut_ptr(),
16622        ifail.as_mut_ptr(),
16623        info,
16624    )
16625}
16626
16627#[inline]
16628pub unsafe fn zstein(
16629    n: i32,
16630    d: &[f64],
16631    e: &[f64],
16632    m: i32,
16633    w: &[f64],
16634    iblock: &[i32],
16635    isplit: &[i32],
16636    z: &mut [c64],
16637    ldz: i32,
16638    work: &mut [f64],
16639    iwork: &mut [i32],
16640    ifail: &mut [i32],
16641    info: &mut i32,
16642) {
16643    ffi::zstein_(
16644        &n,
16645        d.as_ptr(),
16646        e.as_ptr(),
16647        &m,
16648        w.as_ptr(),
16649        iblock.as_ptr(),
16650        isplit.as_ptr(),
16651        z.as_mut_ptr() as *mut _,
16652        &ldz,
16653        work.as_mut_ptr(),
16654        iwork.as_mut_ptr(),
16655        ifail.as_mut_ptr(),
16656        info,
16657    )
16658}
16659
16660#[inline]
16661pub unsafe fn sdisna(job: u8, m: i32, n: i32, d: &[f32], sep: &mut [f32], info: &mut i32) {
16662    ffi::sdisna_(&(job as c_char), &m, &n, d.as_ptr(), sep.as_mut_ptr(), info)
16663}
16664
16665#[inline]
16666pub unsafe fn ddisna(job: u8, m: i32, n: i32, d: &[f64], sep: &mut [f64], info: &mut i32) {
16667    ffi::ddisna_(&(job as c_char), &m, &n, d.as_ptr(), sep.as_mut_ptr(), info)
16668}
16669
16670#[inline]
16671pub unsafe fn ssygst(
16672    itype: &[i32],
16673    uplo: u8,
16674    n: i32,
16675    a: &mut [f32],
16676    lda: i32,
16677    b: &[f32],
16678    ldb: i32,
16679    info: &mut i32,
16680) {
16681    ffi::ssygst_(
16682        itype.as_ptr(),
16683        &(uplo as c_char),
16684        &n,
16685        a.as_mut_ptr(),
16686        &lda,
16687        b.as_ptr(),
16688        &ldb,
16689        info,
16690    )
16691}
16692
16693#[inline]
16694pub unsafe fn dsygst(
16695    itype: &[i32],
16696    uplo: u8,
16697    n: i32,
16698    a: &mut [f64],
16699    lda: i32,
16700    b: &[f64],
16701    ldb: i32,
16702    info: &mut i32,
16703) {
16704    ffi::dsygst_(
16705        itype.as_ptr(),
16706        &(uplo as c_char),
16707        &n,
16708        a.as_mut_ptr(),
16709        &lda,
16710        b.as_ptr(),
16711        &ldb,
16712        info,
16713    )
16714}
16715
16716#[inline]
16717pub unsafe fn chegst(
16718    itype: &[i32],
16719    uplo: u8,
16720    n: i32,
16721    a: &mut [c32],
16722    lda: i32,
16723    b: &[c32],
16724    ldb: i32,
16725    info: &mut i32,
16726) {
16727    ffi::chegst_(
16728        itype.as_ptr(),
16729        &(uplo as c_char),
16730        &n,
16731        a.as_mut_ptr() as *mut _,
16732        &lda,
16733        b.as_ptr() as *const _,
16734        &ldb,
16735        info,
16736    )
16737}
16738
16739#[inline]
16740pub unsafe fn zhegst(
16741    itype: &[i32],
16742    uplo: u8,
16743    n: i32,
16744    a: &mut [c64],
16745    lda: i32,
16746    b: &[c64],
16747    ldb: i32,
16748    info: &mut i32,
16749) {
16750    ffi::zhegst_(
16751        itype.as_ptr(),
16752        &(uplo as c_char),
16753        &n,
16754        a.as_mut_ptr() as *mut _,
16755        &lda,
16756        b.as_ptr() as *const _,
16757        &ldb,
16758        info,
16759    )
16760}
16761
16762#[inline]
16763pub unsafe fn sspgst(itype: &[i32], uplo: u8, n: i32, ap: &mut [f32], bp: &[f32], info: &mut i32) {
16764    ffi::sspgst_(
16765        itype.as_ptr(),
16766        &(uplo as c_char),
16767        &n,
16768        ap.as_mut_ptr(),
16769        bp.as_ptr(),
16770        info,
16771    )
16772}
16773
16774#[inline]
16775pub unsafe fn dspgst(itype: &[i32], uplo: u8, n: i32, ap: &mut [f64], bp: &[f64], info: &mut i32) {
16776    ffi::dspgst_(
16777        itype.as_ptr(),
16778        &(uplo as c_char),
16779        &n,
16780        ap.as_mut_ptr(),
16781        bp.as_ptr(),
16782        info,
16783    )
16784}
16785
16786#[inline]
16787pub unsafe fn chpgst(itype: &[i32], uplo: u8, n: i32, ap: &mut [c32], bp: &[c32], info: &mut i32) {
16788    ffi::chpgst_(
16789        itype.as_ptr(),
16790        &(uplo as c_char),
16791        &n,
16792        ap.as_mut_ptr() as *mut _,
16793        bp.as_ptr() as *const _,
16794        info,
16795    )
16796}
16797
16798#[inline]
16799pub unsafe fn zhpgst(itype: &[i32], uplo: u8, n: i32, ap: &mut [c64], bp: &[c64], info: &mut i32) {
16800    ffi::zhpgst_(
16801        itype.as_ptr(),
16802        &(uplo as c_char),
16803        &n,
16804        ap.as_mut_ptr() as *mut _,
16805        bp.as_ptr() as *const _,
16806        info,
16807    )
16808}
16809
16810#[inline]
16811pub unsafe fn ssbgst(
16812    vect: u8,
16813    uplo: u8,
16814    n: i32,
16815    ka: i32,
16816    kb: i32,
16817    ab: &mut [f32],
16818    ldab: i32,
16819    bb: &[f32],
16820    ldbb: i32,
16821    x: &mut [f32],
16822    ldx: i32,
16823    work: &mut [f32],
16824    info: &mut i32,
16825) {
16826    ffi::ssbgst_(
16827        &(vect as c_char),
16828        &(uplo as c_char),
16829        &n,
16830        &ka,
16831        &kb,
16832        ab.as_mut_ptr(),
16833        &ldab,
16834        bb.as_ptr(),
16835        &ldbb,
16836        x.as_mut_ptr(),
16837        &ldx,
16838        work.as_mut_ptr(),
16839        info,
16840    )
16841}
16842
16843#[inline]
16844pub unsafe fn dsbgst(
16845    vect: u8,
16846    uplo: u8,
16847    n: i32,
16848    ka: i32,
16849    kb: i32,
16850    ab: &mut [f64],
16851    ldab: i32,
16852    bb: &[f64],
16853    ldbb: i32,
16854    x: &mut [f64],
16855    ldx: i32,
16856    work: &mut [f64],
16857    info: &mut i32,
16858) {
16859    ffi::dsbgst_(
16860        &(vect as c_char),
16861        &(uplo as c_char),
16862        &n,
16863        &ka,
16864        &kb,
16865        ab.as_mut_ptr(),
16866        &ldab,
16867        bb.as_ptr(),
16868        &ldbb,
16869        x.as_mut_ptr(),
16870        &ldx,
16871        work.as_mut_ptr(),
16872        info,
16873    )
16874}
16875
16876#[inline]
16877pub unsafe fn chbgst(
16878    vect: u8,
16879    uplo: u8,
16880    n: i32,
16881    ka: i32,
16882    kb: i32,
16883    ab: &mut [c32],
16884    ldab: i32,
16885    bb: &[c32],
16886    ldbb: i32,
16887    x: &mut [c32],
16888    ldx: i32,
16889    work: &mut [c32],
16890    rwork: &mut [f32],
16891    info: &mut i32,
16892) {
16893    ffi::chbgst_(
16894        &(vect as c_char),
16895        &(uplo as c_char),
16896        &n,
16897        &ka,
16898        &kb,
16899        ab.as_mut_ptr() as *mut _,
16900        &ldab,
16901        bb.as_ptr() as *const _,
16902        &ldbb,
16903        x.as_mut_ptr() as *mut _,
16904        &ldx,
16905        work.as_mut_ptr() as *mut _,
16906        rwork.as_mut_ptr(),
16907        info,
16908    )
16909}
16910
16911#[inline]
16912pub unsafe fn zhbgst(
16913    vect: u8,
16914    uplo: u8,
16915    n: i32,
16916    ka: i32,
16917    kb: i32,
16918    ab: &mut [c64],
16919    ldab: i32,
16920    bb: &[c64],
16921    ldbb: i32,
16922    x: &mut [c64],
16923    ldx: i32,
16924    work: &mut [c64],
16925    rwork: &mut [f64],
16926    info: &mut i32,
16927) {
16928    ffi::zhbgst_(
16929        &(vect as c_char),
16930        &(uplo as c_char),
16931        &n,
16932        &ka,
16933        &kb,
16934        ab.as_mut_ptr() as *mut _,
16935        &ldab,
16936        bb.as_ptr() as *const _,
16937        &ldbb,
16938        x.as_mut_ptr() as *mut _,
16939        &ldx,
16940        work.as_mut_ptr() as *mut _,
16941        rwork.as_mut_ptr(),
16942        info,
16943    )
16944}
16945
16946#[inline]
16947pub unsafe fn spbstf(uplo: u8, n: i32, kd: i32, ab: &mut [f32], ldab: i32, info: &mut i32) {
16948    ffi::spbstf_(&(uplo as c_char), &n, &kd, ab.as_mut_ptr(), &ldab, info)
16949}
16950
16951#[inline]
16952pub unsafe fn dpbstf(uplo: u8, n: i32, kd: i32, ab: &mut [f64], ldab: i32, info: &mut i32) {
16953    ffi::dpbstf_(&(uplo as c_char), &n, &kd, ab.as_mut_ptr(), &ldab, info)
16954}
16955
16956#[inline]
16957pub unsafe fn cpbstf(uplo: u8, n: i32, kd: i32, ab: &mut [c32], ldab: i32, info: &mut i32) {
16958    ffi::cpbstf_(
16959        &(uplo as c_char),
16960        &n,
16961        &kd,
16962        ab.as_mut_ptr() as *mut _,
16963        &ldab,
16964        info,
16965    )
16966}
16967
16968#[inline]
16969pub unsafe fn zpbstf(uplo: u8, n: i32, kd: i32, ab: &mut [c64], ldab: i32, info: &mut i32) {
16970    ffi::zpbstf_(
16971        &(uplo as c_char),
16972        &n,
16973        &kd,
16974        ab.as_mut_ptr() as *mut _,
16975        &ldab,
16976        info,
16977    )
16978}
16979
16980#[inline]
16981pub unsafe fn sgehrd(
16982    n: i32,
16983    ilo: i32,
16984    ihi: i32,
16985    a: &mut [f32],
16986    lda: i32,
16987    tau: &mut [f32],
16988    work: &mut [f32],
16989    lwork: i32,
16990    info: &mut i32,
16991) {
16992    ffi::sgehrd_(
16993        &n,
16994        &ilo,
16995        &ihi,
16996        a.as_mut_ptr(),
16997        &lda,
16998        tau.as_mut_ptr(),
16999        work.as_mut_ptr(),
17000        &lwork,
17001        info,
17002    )
17003}
17004
17005#[inline]
17006pub unsafe fn dgehrd(
17007    n: i32,
17008    ilo: i32,
17009    ihi: i32,
17010    a: &mut [f64],
17011    lda: i32,
17012    tau: &mut [f64],
17013    work: &mut [f64],
17014    lwork: i32,
17015    info: &mut i32,
17016) {
17017    ffi::dgehrd_(
17018        &n,
17019        &ilo,
17020        &ihi,
17021        a.as_mut_ptr(),
17022        &lda,
17023        tau.as_mut_ptr(),
17024        work.as_mut_ptr(),
17025        &lwork,
17026        info,
17027    )
17028}
17029
17030#[inline]
17031pub unsafe fn cgehrd(
17032    n: i32,
17033    ilo: i32,
17034    ihi: i32,
17035    a: &mut [c32],
17036    lda: i32,
17037    tau: &mut [c32],
17038    work: &mut [c32],
17039    lwork: i32,
17040    info: &mut i32,
17041) {
17042    ffi::cgehrd_(
17043        &n,
17044        &ilo,
17045        &ihi,
17046        a.as_mut_ptr() as *mut _,
17047        &lda,
17048        tau.as_mut_ptr() as *mut _,
17049        work.as_mut_ptr() as *mut _,
17050        &lwork,
17051        info,
17052    )
17053}
17054
17055#[inline]
17056pub unsafe fn zgehrd(
17057    n: i32,
17058    ilo: i32,
17059    ihi: i32,
17060    a: &mut [c64],
17061    lda: i32,
17062    tau: &mut [c64],
17063    work: &mut [c64],
17064    lwork: i32,
17065    info: &mut i32,
17066) {
17067    ffi::zgehrd_(
17068        &n,
17069        &ilo,
17070        &ihi,
17071        a.as_mut_ptr() as *mut _,
17072        &lda,
17073        tau.as_mut_ptr() as *mut _,
17074        work.as_mut_ptr() as *mut _,
17075        &lwork,
17076        info,
17077    )
17078}
17079
17080#[inline]
17081pub unsafe fn sorghr(
17082    n: i32,
17083    ilo: i32,
17084    ihi: i32,
17085    a: &mut [f32],
17086    lda: i32,
17087    tau: &[f32],
17088    work: &mut [f32],
17089    lwork: i32,
17090    info: &mut i32,
17091) {
17092    ffi::sorghr_(
17093        &n,
17094        &ilo,
17095        &ihi,
17096        a.as_mut_ptr(),
17097        &lda,
17098        tau.as_ptr(),
17099        work.as_mut_ptr(),
17100        &lwork,
17101        info,
17102    )
17103}
17104
17105#[inline]
17106pub unsafe fn dorghr(
17107    n: i32,
17108    ilo: i32,
17109    ihi: i32,
17110    a: &mut [f64],
17111    lda: i32,
17112    tau: &[f64],
17113    work: &mut [f64],
17114    lwork: i32,
17115    info: &mut i32,
17116) {
17117    ffi::dorghr_(
17118        &n,
17119        &ilo,
17120        &ihi,
17121        a.as_mut_ptr(),
17122        &lda,
17123        tau.as_ptr(),
17124        work.as_mut_ptr(),
17125        &lwork,
17126        info,
17127    )
17128}
17129
17130#[inline]
17131pub unsafe fn sormhr(
17132    side: u8,
17133    trans: u8,
17134    m: i32,
17135    n: i32,
17136    ilo: i32,
17137    ihi: i32,
17138    a: &[f32],
17139    lda: i32,
17140    tau: &[f32],
17141    c: &mut [f32],
17142    ldc: i32,
17143    work: &mut [f32],
17144    lwork: i32,
17145    info: &mut i32,
17146) {
17147    ffi::sormhr_(
17148        &(side as c_char),
17149        &(trans as c_char),
17150        &m,
17151        &n,
17152        &ilo,
17153        &ihi,
17154        a.as_ptr(),
17155        &lda,
17156        tau.as_ptr(),
17157        c.as_mut_ptr(),
17158        &ldc,
17159        work.as_mut_ptr(),
17160        &lwork,
17161        info,
17162    )
17163}
17164
17165#[inline]
17166pub unsafe fn dormhr(
17167    side: u8,
17168    trans: u8,
17169    m: i32,
17170    n: i32,
17171    ilo: i32,
17172    ihi: i32,
17173    a: &[f64],
17174    lda: i32,
17175    tau: &[f64],
17176    c: &mut [f64],
17177    ldc: i32,
17178    work: &mut [f64],
17179    lwork: i32,
17180    info: &mut i32,
17181) {
17182    ffi::dormhr_(
17183        &(side as c_char),
17184        &(trans as c_char),
17185        &m,
17186        &n,
17187        &ilo,
17188        &ihi,
17189        a.as_ptr(),
17190        &lda,
17191        tau.as_ptr(),
17192        c.as_mut_ptr(),
17193        &ldc,
17194        work.as_mut_ptr(),
17195        &lwork,
17196        info,
17197    )
17198}
17199
17200#[inline]
17201pub unsafe fn cunghr(
17202    n: i32,
17203    ilo: i32,
17204    ihi: i32,
17205    a: &mut [c32],
17206    lda: i32,
17207    tau: &[c32],
17208    work: &mut [c32],
17209    lwork: i32,
17210    info: &mut i32,
17211) {
17212    ffi::cunghr_(
17213        &n,
17214        &ilo,
17215        &ihi,
17216        a.as_mut_ptr() as *mut _,
17217        &lda,
17218        tau.as_ptr() as *const _,
17219        work.as_mut_ptr() as *mut _,
17220        &lwork,
17221        info,
17222    )
17223}
17224
17225#[inline]
17226pub unsafe fn zunghr(
17227    n: i32,
17228    ilo: i32,
17229    ihi: i32,
17230    a: &mut [c64],
17231    lda: i32,
17232    tau: &[c64],
17233    work: &mut [c64],
17234    lwork: i32,
17235    info: &mut i32,
17236) {
17237    ffi::zunghr_(
17238        &n,
17239        &ilo,
17240        &ihi,
17241        a.as_mut_ptr() as *mut _,
17242        &lda,
17243        tau.as_ptr() as *const _,
17244        work.as_mut_ptr() as *mut _,
17245        &lwork,
17246        info,
17247    )
17248}
17249
17250#[inline]
17251pub unsafe fn cunmhr(
17252    side: u8,
17253    trans: u8,
17254    m: i32,
17255    n: i32,
17256    ilo: i32,
17257    ihi: i32,
17258    a: &[c32],
17259    lda: i32,
17260    tau: &[c32],
17261    c: &mut [c32],
17262    ldc: i32,
17263    work: &mut [c32],
17264    lwork: i32,
17265    info: &mut i32,
17266) {
17267    ffi::cunmhr_(
17268        &(side as c_char),
17269        &(trans as c_char),
17270        &m,
17271        &n,
17272        &ilo,
17273        &ihi,
17274        a.as_ptr() as *const _,
17275        &lda,
17276        tau.as_ptr() as *const _,
17277        c.as_mut_ptr() as *mut _,
17278        &ldc,
17279        work.as_mut_ptr() as *mut _,
17280        &lwork,
17281        info,
17282    )
17283}
17284
17285#[inline]
17286pub unsafe fn zunmhr(
17287    side: u8,
17288    trans: u8,
17289    m: i32,
17290    n: i32,
17291    ilo: i32,
17292    ihi: i32,
17293    a: &[c64],
17294    lda: i32,
17295    tau: &[c64],
17296    c: &mut [c64],
17297    ldc: i32,
17298    work: &mut [c64],
17299    lwork: i32,
17300    info: &mut i32,
17301) {
17302    ffi::zunmhr_(
17303        &(side as c_char),
17304        &(trans as c_char),
17305        &m,
17306        &n,
17307        &ilo,
17308        &ihi,
17309        a.as_ptr() as *const _,
17310        &lda,
17311        tau.as_ptr() as *const _,
17312        c.as_mut_ptr() as *mut _,
17313        &ldc,
17314        work.as_mut_ptr() as *mut _,
17315        &lwork,
17316        info,
17317    )
17318}
17319
17320#[inline]
17321pub unsafe fn sgebal(
17322    job: u8,
17323    n: i32,
17324    a: &mut [f32],
17325    lda: i32,
17326    ilo: &mut i32,
17327    ihi: &mut i32,
17328    scale: &mut [f32],
17329    info: &mut i32,
17330) {
17331    ffi::sgebal_(
17332        &(job as c_char),
17333        &n,
17334        a.as_mut_ptr(),
17335        &lda,
17336        ilo,
17337        ihi,
17338        scale.as_mut_ptr(),
17339        info,
17340    )
17341}
17342
17343#[inline]
17344pub unsafe fn dgebal(
17345    job: u8,
17346    n: i32,
17347    a: &mut [f64],
17348    lda: i32,
17349    ilo: &mut i32,
17350    ihi: &mut i32,
17351    scale: &mut [f64],
17352    info: &mut i32,
17353) {
17354    ffi::dgebal_(
17355        &(job as c_char),
17356        &n,
17357        a.as_mut_ptr(),
17358        &lda,
17359        ilo,
17360        ihi,
17361        scale.as_mut_ptr(),
17362        info,
17363    )
17364}
17365
17366#[inline]
17367pub unsafe fn cgebal(
17368    job: u8,
17369    n: i32,
17370    a: &mut [c32],
17371    lda: i32,
17372    ilo: &mut i32,
17373    ihi: &mut i32,
17374    scale: &mut [f32],
17375    info: &mut i32,
17376) {
17377    ffi::cgebal_(
17378        &(job as c_char),
17379        &n,
17380        a.as_mut_ptr() as *mut _,
17381        &lda,
17382        ilo,
17383        ihi,
17384        scale.as_mut_ptr(),
17385        info,
17386    )
17387}
17388
17389#[inline]
17390pub unsafe fn zgebal(
17391    job: u8,
17392    n: i32,
17393    a: &mut [c64],
17394    lda: i32,
17395    ilo: &mut i32,
17396    ihi: &mut i32,
17397    scale: &mut [f64],
17398    info: &mut i32,
17399) {
17400    ffi::zgebal_(
17401        &(job as c_char),
17402        &n,
17403        a.as_mut_ptr() as *mut _,
17404        &lda,
17405        ilo,
17406        ihi,
17407        scale.as_mut_ptr(),
17408        info,
17409    )
17410}
17411
17412#[inline]
17413pub unsafe fn sgebak(
17414    job: u8,
17415    side: u8,
17416    n: i32,
17417    ilo: i32,
17418    ihi: i32,
17419    scale: &[f32],
17420    m: i32,
17421    v: &mut [f32],
17422    ldv: i32,
17423    info: &mut i32,
17424) {
17425    ffi::sgebak_(
17426        &(job as c_char),
17427        &(side as c_char),
17428        &n,
17429        &ilo,
17430        &ihi,
17431        scale.as_ptr(),
17432        &m,
17433        v.as_mut_ptr(),
17434        &ldv,
17435        info,
17436    )
17437}
17438
17439#[inline]
17440pub unsafe fn dgebak(
17441    job: u8,
17442    side: u8,
17443    n: i32,
17444    ilo: i32,
17445    ihi: i32,
17446    scale: &[f64],
17447    m: i32,
17448    v: &mut [f64],
17449    ldv: i32,
17450    info: &mut i32,
17451) {
17452    ffi::dgebak_(
17453        &(job as c_char),
17454        &(side as c_char),
17455        &n,
17456        &ilo,
17457        &ihi,
17458        scale.as_ptr(),
17459        &m,
17460        v.as_mut_ptr(),
17461        &ldv,
17462        info,
17463    )
17464}
17465
17466#[inline]
17467pub unsafe fn cgebak(
17468    job: u8,
17469    side: u8,
17470    n: i32,
17471    ilo: i32,
17472    ihi: i32,
17473    scale: &[f32],
17474    m: i32,
17475    v: &mut [c32],
17476    ldv: i32,
17477    info: &mut i32,
17478) {
17479    ffi::cgebak_(
17480        &(job as c_char),
17481        &(side as c_char),
17482        &n,
17483        &ilo,
17484        &ihi,
17485        scale.as_ptr(),
17486        &m,
17487        v.as_mut_ptr() as *mut _,
17488        &ldv,
17489        info,
17490    )
17491}
17492
17493#[inline]
17494pub unsafe fn zgebak(
17495    job: u8,
17496    side: u8,
17497    n: i32,
17498    ilo: i32,
17499    ihi: i32,
17500    scale: &[f64],
17501    m: i32,
17502    v: &mut [c64],
17503    ldv: i32,
17504    info: &mut i32,
17505) {
17506    ffi::zgebak_(
17507        &(job as c_char),
17508        &(side as c_char),
17509        &n,
17510        &ilo,
17511        &ihi,
17512        scale.as_ptr(),
17513        &m,
17514        v.as_mut_ptr() as *mut _,
17515        &ldv,
17516        info,
17517    )
17518}
17519
17520#[inline]
17521pub unsafe fn shseqr(
17522    job: u8,
17523    compz: u8,
17524    n: i32,
17525    ilo: i32,
17526    ihi: i32,
17527    h: &mut [f32],
17528    ldh: i32,
17529    wr: &mut [f32],
17530    wi: &mut [f32],
17531    z: &mut [f32],
17532    ldz: i32,
17533    work: &mut [f32],
17534    lwork: i32,
17535    info: &mut i32,
17536) {
17537    ffi::shseqr_(
17538        &(job as c_char),
17539        &(compz as c_char),
17540        &n,
17541        &ilo,
17542        &ihi,
17543        h.as_mut_ptr(),
17544        &ldh,
17545        wr.as_mut_ptr(),
17546        wi.as_mut_ptr(),
17547        z.as_mut_ptr(),
17548        &ldz,
17549        work.as_mut_ptr(),
17550        &lwork,
17551        info,
17552    )
17553}
17554
17555#[inline]
17556pub unsafe fn dhseqr(
17557    job: u8,
17558    compz: u8,
17559    n: i32,
17560    ilo: i32,
17561    ihi: i32,
17562    h: &mut [f64],
17563    ldh: i32,
17564    wr: &mut [f64],
17565    wi: &mut [f64],
17566    z: &mut [f64],
17567    ldz: i32,
17568    work: &mut [f64],
17569    lwork: i32,
17570    info: &mut i32,
17571) {
17572    ffi::dhseqr_(
17573        &(job as c_char),
17574        &(compz as c_char),
17575        &n,
17576        &ilo,
17577        &ihi,
17578        h.as_mut_ptr(),
17579        &ldh,
17580        wr.as_mut_ptr(),
17581        wi.as_mut_ptr(),
17582        z.as_mut_ptr(),
17583        &ldz,
17584        work.as_mut_ptr(),
17585        &lwork,
17586        info,
17587    )
17588}
17589
17590#[inline]
17591pub unsafe fn chseqr(
17592    job: u8,
17593    compz: u8,
17594    n: i32,
17595    ilo: i32,
17596    ihi: i32,
17597    h: &mut [c32],
17598    ldh: i32,
17599    w: &mut [c32],
17600    z: &mut [c32],
17601    ldz: i32,
17602    work: &mut [c32],
17603    lwork: i32,
17604    info: &mut i32,
17605) {
17606    ffi::chseqr_(
17607        &(job as c_char),
17608        &(compz as c_char),
17609        &n,
17610        &ilo,
17611        &ihi,
17612        h.as_mut_ptr() as *mut _,
17613        &ldh,
17614        w.as_mut_ptr() as *mut _,
17615        z.as_mut_ptr() as *mut _,
17616        &ldz,
17617        work.as_mut_ptr() as *mut _,
17618        &lwork,
17619        info,
17620    )
17621}
17622
17623#[inline]
17624pub unsafe fn zhseqr(
17625    job: u8,
17626    compz: u8,
17627    n: i32,
17628    ilo: i32,
17629    ihi: i32,
17630    h: &mut [c64],
17631    ldh: i32,
17632    w: &mut [c64],
17633    z: &mut [c64],
17634    ldz: i32,
17635    work: &mut [c64],
17636    lwork: i32,
17637    info: &mut i32,
17638) {
17639    ffi::zhseqr_(
17640        &(job as c_char),
17641        &(compz as c_char),
17642        &n,
17643        &ilo,
17644        &ihi,
17645        h.as_mut_ptr() as *mut _,
17646        &ldh,
17647        w.as_mut_ptr() as *mut _,
17648        z.as_mut_ptr() as *mut _,
17649        &ldz,
17650        work.as_mut_ptr() as *mut _,
17651        &lwork,
17652        info,
17653    )
17654}
17655
17656#[inline]
17657pub unsafe fn shsein(
17658    job: u8,
17659    eigsrc: u8,
17660    initv: u8,
17661    select: &mut [i32],
17662    n: i32,
17663    h: &[f32],
17664    ldh: i32,
17665    wr: &mut [f32],
17666    wi: &[f32],
17667    vl: &mut f32,
17668    ldvl: i32,
17669    vr: &mut f32,
17670    ldvr: i32,
17671    mm: i32,
17672    m: &mut i32,
17673    work: &mut [f32],
17674    ifaill: &mut [i32],
17675    ifailr: &mut [i32],
17676    info: &mut i32,
17677) {
17678    ffi::shsein_(
17679        &(job as c_char),
17680        &(eigsrc as c_char),
17681        &(initv as c_char),
17682        select.as_mut_ptr(),
17683        &n,
17684        h.as_ptr(),
17685        &ldh,
17686        wr.as_mut_ptr(),
17687        wi.as_ptr(),
17688        vl,
17689        &ldvl,
17690        vr,
17691        &ldvr,
17692        &mm,
17693        m,
17694        work.as_mut_ptr(),
17695        ifaill.as_mut_ptr(),
17696        ifailr.as_mut_ptr(),
17697        info,
17698    )
17699}
17700
17701#[inline]
17702pub unsafe fn dhsein(
17703    job: u8,
17704    eigsrc: u8,
17705    initv: u8,
17706    select: &mut [i32],
17707    n: i32,
17708    h: &[f64],
17709    ldh: i32,
17710    wr: &mut [f64],
17711    wi: &[f64],
17712    vl: &mut f64,
17713    ldvl: i32,
17714    vr: &mut f64,
17715    ldvr: i32,
17716    mm: i32,
17717    m: &mut i32,
17718    work: &mut [f64],
17719    ifaill: &mut [i32],
17720    ifailr: &mut [i32],
17721    info: &mut i32,
17722) {
17723    ffi::dhsein_(
17724        &(job as c_char),
17725        &(eigsrc as c_char),
17726        &(initv as c_char),
17727        select.as_mut_ptr(),
17728        &n,
17729        h.as_ptr(),
17730        &ldh,
17731        wr.as_mut_ptr(),
17732        wi.as_ptr(),
17733        vl,
17734        &ldvl,
17735        vr,
17736        &ldvr,
17737        &mm,
17738        m,
17739        work.as_mut_ptr(),
17740        ifaill.as_mut_ptr(),
17741        ifailr.as_mut_ptr(),
17742        info,
17743    )
17744}
17745
17746#[inline]
17747pub unsafe fn chsein(
17748    job: u8,
17749    eigsrc: u8,
17750    initv: u8,
17751    select: &[i32],
17752    n: i32,
17753    h: &[c32],
17754    ldh: i32,
17755    w: &mut [c32],
17756    vl: &mut c32,
17757    ldvl: i32,
17758    vr: &mut c32,
17759    ldvr: i32,
17760    mm: i32,
17761    m: &mut i32,
17762    work: &mut [c32],
17763    rwork: &mut [f32],
17764    ifaill: &mut [i32],
17765    ifailr: &mut [i32],
17766    info: &mut i32,
17767) {
17768    ffi::chsein_(
17769        &(job as c_char),
17770        &(eigsrc as c_char),
17771        &(initv as c_char),
17772        select.as_ptr(),
17773        &n,
17774        h.as_ptr() as *const _,
17775        &ldh,
17776        w.as_mut_ptr() as *mut _,
17777        vl as *mut _ as *mut _,
17778        &ldvl,
17779        vr as *mut _ as *mut _,
17780        &ldvr,
17781        &mm,
17782        m,
17783        work.as_mut_ptr() as *mut _,
17784        rwork.as_mut_ptr(),
17785        ifaill.as_mut_ptr(),
17786        ifailr.as_mut_ptr(),
17787        info,
17788    )
17789}
17790
17791#[inline]
17792pub unsafe fn zhsein(
17793    job: u8,
17794    eigsrc: u8,
17795    initv: u8,
17796    select: &[i32],
17797    n: i32,
17798    h: &[c64],
17799    ldh: i32,
17800    w: &mut [c64],
17801    vl: &mut c64,
17802    ldvl: i32,
17803    vr: &mut c64,
17804    ldvr: i32,
17805    mm: i32,
17806    m: &mut i32,
17807    work: &mut [c64],
17808    rwork: &mut [f64],
17809    ifaill: &mut [i32],
17810    ifailr: &mut [i32],
17811    info: &mut i32,
17812) {
17813    ffi::zhsein_(
17814        &(job as c_char),
17815        &(eigsrc as c_char),
17816        &(initv as c_char),
17817        select.as_ptr(),
17818        &n,
17819        h.as_ptr() as *const _,
17820        &ldh,
17821        w.as_mut_ptr() as *mut _,
17822        vl as *mut _ as *mut _,
17823        &ldvl,
17824        vr as *mut _ as *mut _,
17825        &ldvr,
17826        &mm,
17827        m,
17828        work.as_mut_ptr() as *mut _,
17829        rwork.as_mut_ptr(),
17830        ifaill.as_mut_ptr(),
17831        ifailr.as_mut_ptr(),
17832        info,
17833    )
17834}
17835
17836#[inline]
17837pub unsafe fn strevc(
17838    side: u8,
17839    howmny: u8,
17840    select: &mut [i32],
17841    n: i32,
17842    t: &[f32],
17843    ldt: i32,
17844    vl: &mut f32,
17845    ldvl: i32,
17846    vr: &mut f32,
17847    ldvr: i32,
17848    mm: i32,
17849    m: &mut i32,
17850    work: &mut [f32],
17851    info: &mut i32,
17852) {
17853    ffi::strevc_(
17854        &(side as c_char),
17855        &(howmny as c_char),
17856        select.as_mut_ptr(),
17857        &n,
17858        t.as_ptr(),
17859        &ldt,
17860        vl,
17861        &ldvl,
17862        vr,
17863        &ldvr,
17864        &mm,
17865        m,
17866        work.as_mut_ptr(),
17867        info,
17868    )
17869}
17870
17871#[inline]
17872pub unsafe fn dtrevc(
17873    side: u8,
17874    howmny: u8,
17875    select: &mut [i32],
17876    n: i32,
17877    t: &[f64],
17878    ldt: i32,
17879    vl: &mut f64,
17880    ldvl: i32,
17881    vr: &mut f64,
17882    ldvr: i32,
17883    mm: i32,
17884    m: &mut i32,
17885    work: &mut [f64],
17886    info: &mut i32,
17887) {
17888    ffi::dtrevc_(
17889        &(side as c_char),
17890        &(howmny as c_char),
17891        select.as_mut_ptr(),
17892        &n,
17893        t.as_ptr(),
17894        &ldt,
17895        vl,
17896        &ldvl,
17897        vr,
17898        &ldvr,
17899        &mm,
17900        m,
17901        work.as_mut_ptr(),
17902        info,
17903    )
17904}
17905
17906#[inline]
17907pub unsafe fn ctrevc(
17908    side: u8,
17909    howmny: u8,
17910    select: &[i32],
17911    n: i32,
17912    t: &mut [c32],
17913    ldt: i32,
17914    vl: &mut c32,
17915    ldvl: i32,
17916    vr: &mut c32,
17917    ldvr: i32,
17918    mm: i32,
17919    m: &mut i32,
17920    work: &mut [c32],
17921    rwork: &mut [f32],
17922    info: &mut i32,
17923) {
17924    ffi::ctrevc_(
17925        &(side as c_char),
17926        &(howmny as c_char),
17927        select.as_ptr(),
17928        &n,
17929        t.as_mut_ptr() as *mut _,
17930        &ldt,
17931        vl as *mut _ as *mut _,
17932        &ldvl,
17933        vr as *mut _ as *mut _,
17934        &ldvr,
17935        &mm,
17936        m,
17937        work.as_mut_ptr() as *mut _,
17938        rwork.as_mut_ptr(),
17939        info,
17940    )
17941}
17942
17943#[inline]
17944pub unsafe fn ztrevc(
17945    side: u8,
17946    howmny: u8,
17947    select: &[i32],
17948    n: i32,
17949    t: &mut [c64],
17950    ldt: i32,
17951    vl: &mut c64,
17952    ldvl: i32,
17953    vr: &mut c64,
17954    ldvr: i32,
17955    mm: i32,
17956    m: &mut i32,
17957    work: &mut [c64],
17958    rwork: &mut [f64],
17959    info: &mut i32,
17960) {
17961    ffi::ztrevc_(
17962        &(side as c_char),
17963        &(howmny as c_char),
17964        select.as_ptr(),
17965        &n,
17966        t.as_mut_ptr() as *mut _,
17967        &ldt,
17968        vl as *mut _ as *mut _,
17969        &ldvl,
17970        vr as *mut _ as *mut _,
17971        &ldvr,
17972        &mm,
17973        m,
17974        work.as_mut_ptr() as *mut _,
17975        rwork.as_mut_ptr(),
17976        info,
17977    )
17978}
17979
17980#[inline]
17981pub unsafe fn strsna(
17982    job: u8,
17983    howmny: u8,
17984    select: &[i32],
17985    n: i32,
17986    t: &[f32],
17987    ldt: i32,
17988    vl: &[f32],
17989    ldvl: i32,
17990    vr: &[f32],
17991    ldvr: i32,
17992    s: &mut [f32],
17993    sep: &mut [f32],
17994    mm: i32,
17995    m: &mut i32,
17996    work: &mut [f32],
17997    ldwork: i32,
17998    iwork: &mut [i32],
17999    info: &mut i32,
18000) {
18001    ffi::strsna_(
18002        &(job as c_char),
18003        &(howmny as c_char),
18004        select.as_ptr(),
18005        &n,
18006        t.as_ptr(),
18007        &ldt,
18008        vl.as_ptr(),
18009        &ldvl,
18010        vr.as_ptr(),
18011        &ldvr,
18012        s.as_mut_ptr(),
18013        sep.as_mut_ptr(),
18014        &mm,
18015        m,
18016        work.as_mut_ptr(),
18017        &ldwork,
18018        iwork.as_mut_ptr(),
18019        info,
18020    )
18021}
18022
18023#[inline]
18024pub unsafe fn dtrsna(
18025    job: u8,
18026    howmny: u8,
18027    select: &[i32],
18028    n: i32,
18029    t: &[f64],
18030    ldt: i32,
18031    vl: &[f64],
18032    ldvl: i32,
18033    vr: &[f64],
18034    ldvr: i32,
18035    s: &mut [f64],
18036    sep: &mut [f64],
18037    mm: i32,
18038    m: &mut i32,
18039    work: &mut [f64],
18040    ldwork: i32,
18041    iwork: &mut [i32],
18042    info: &mut i32,
18043) {
18044    ffi::dtrsna_(
18045        &(job as c_char),
18046        &(howmny as c_char),
18047        select.as_ptr(),
18048        &n,
18049        t.as_ptr(),
18050        &ldt,
18051        vl.as_ptr(),
18052        &ldvl,
18053        vr.as_ptr(),
18054        &ldvr,
18055        s.as_mut_ptr(),
18056        sep.as_mut_ptr(),
18057        &mm,
18058        m,
18059        work.as_mut_ptr(),
18060        &ldwork,
18061        iwork.as_mut_ptr(),
18062        info,
18063    )
18064}
18065
18066#[inline]
18067pub unsafe fn ctrsna(
18068    job: u8,
18069    howmny: u8,
18070    select: &[i32],
18071    n: i32,
18072    t: &[c32],
18073    ldt: i32,
18074    vl: &[c32],
18075    ldvl: i32,
18076    vr: &[c32],
18077    ldvr: i32,
18078    s: &mut [f32],
18079    sep: &mut [f32],
18080    mm: i32,
18081    m: &mut i32,
18082    work: &mut [c32],
18083    ldwork: i32,
18084    rwork: &mut [f32],
18085    info: &mut i32,
18086) {
18087    ffi::ctrsna_(
18088        &(job as c_char),
18089        &(howmny as c_char),
18090        select.as_ptr(),
18091        &n,
18092        t.as_ptr() as *const _,
18093        &ldt,
18094        vl.as_ptr() as *const _,
18095        &ldvl,
18096        vr.as_ptr() as *const _,
18097        &ldvr,
18098        s.as_mut_ptr(),
18099        sep.as_mut_ptr(),
18100        &mm,
18101        m,
18102        work.as_mut_ptr() as *mut _,
18103        &ldwork,
18104        rwork.as_mut_ptr(),
18105        info,
18106    )
18107}
18108
18109#[inline]
18110pub unsafe fn ztrsna(
18111    job: u8,
18112    howmny: u8,
18113    select: &[i32],
18114    n: i32,
18115    t: &[c64],
18116    ldt: i32,
18117    vl: &[c64],
18118    ldvl: i32,
18119    vr: &[c64],
18120    ldvr: i32,
18121    s: &mut [f64],
18122    sep: &mut [f64],
18123    mm: i32,
18124    m: &mut i32,
18125    work: &mut [c64],
18126    ldwork: i32,
18127    rwork: &mut [f64],
18128    info: &mut i32,
18129) {
18130    ffi::ztrsna_(
18131        &(job as c_char),
18132        &(howmny as c_char),
18133        select.as_ptr(),
18134        &n,
18135        t.as_ptr() as *const _,
18136        &ldt,
18137        vl.as_ptr() as *const _,
18138        &ldvl,
18139        vr.as_ptr() as *const _,
18140        &ldvr,
18141        s.as_mut_ptr(),
18142        sep.as_mut_ptr(),
18143        &mm,
18144        m,
18145        work.as_mut_ptr() as *mut _,
18146        &ldwork,
18147        rwork.as_mut_ptr(),
18148        info,
18149    )
18150}
18151
18152#[inline]
18153pub unsafe fn strexc(
18154    compq: u8,
18155    n: i32,
18156    t: &mut [f32],
18157    ldt: i32,
18158    q: &mut [f32],
18159    ldq: i32,
18160    ifst: &[i32],
18161    ilst: &mut [i32],
18162    work: &mut [f32],
18163    info: &mut i32,
18164) {
18165    ffi::strexc_(
18166        &(compq as c_char),
18167        &n,
18168        t.as_mut_ptr(),
18169        &ldt,
18170        q.as_mut_ptr(),
18171        &ldq,
18172        ifst.as_ptr(),
18173        ilst.as_mut_ptr(),
18174        work.as_mut_ptr(),
18175        info,
18176    )
18177}
18178
18179#[inline]
18180pub unsafe fn dtrexc(
18181    compq: u8,
18182    n: i32,
18183    t: &mut [f64],
18184    ldt: i32,
18185    q: &mut [f64],
18186    ldq: i32,
18187    ifst: &[i32],
18188    ilst: &mut [i32],
18189    work: &mut [f64],
18190    info: &mut i32,
18191) {
18192    ffi::dtrexc_(
18193        &(compq as c_char),
18194        &n,
18195        t.as_mut_ptr(),
18196        &ldt,
18197        q.as_mut_ptr(),
18198        &ldq,
18199        ifst.as_ptr(),
18200        ilst.as_mut_ptr(),
18201        work.as_mut_ptr(),
18202        info,
18203    )
18204}
18205
18206#[inline]
18207pub unsafe fn ctrexc(
18208    compq: u8,
18209    n: i32,
18210    t: &mut [c32],
18211    ldt: i32,
18212    q: &mut [c32],
18213    ldq: i32,
18214    ifst: &[i32],
18215    ilst: &[i32],
18216    info: i32,
18217) {
18218    ffi::ctrexc_(
18219        &(compq as c_char),
18220        &n,
18221        t.as_mut_ptr() as *mut _,
18222        &ldt,
18223        q.as_mut_ptr() as *mut _,
18224        &ldq,
18225        ifst.as_ptr(),
18226        ilst.as_ptr(),
18227        &info,
18228    )
18229}
18230
18231#[inline]
18232pub unsafe fn ztrexc(
18233    compq: u8,
18234    n: i32,
18235    t: &mut [c64],
18236    ldt: i32,
18237    q: &mut [c64],
18238    ldq: i32,
18239    ifst: &[i32],
18240    ilst: &[i32],
18241    info: i32,
18242) {
18243    ffi::ztrexc_(
18244        &(compq as c_char),
18245        &n,
18246        t.as_mut_ptr() as *mut _,
18247        &ldt,
18248        q.as_mut_ptr() as *mut _,
18249        &ldq,
18250        ifst.as_ptr(),
18251        ilst.as_ptr(),
18252        &info,
18253    )
18254}
18255
18256#[inline]
18257pub unsafe fn strsen(
18258    job: u8,
18259    compq: u8,
18260    select: &[i32],
18261    n: i32,
18262    t: &mut [f32],
18263    ldt: i32,
18264    q: &mut [f32],
18265    ldq: i32,
18266    wr: &mut [f32],
18267    wi: &mut [f32],
18268    m: &mut i32,
18269    s: &mut [f32],
18270    sep: &mut [f32],
18271    work: &mut [f32],
18272    lwork: i32,
18273    iwork: &mut [i32],
18274    liwork: i32,
18275    info: &mut i32,
18276) {
18277    ffi::strsen_(
18278        &(job as c_char),
18279        &(compq as c_char),
18280        select.as_ptr(),
18281        &n,
18282        t.as_mut_ptr(),
18283        &ldt,
18284        q.as_mut_ptr(),
18285        &ldq,
18286        wr.as_mut_ptr(),
18287        wi.as_mut_ptr(),
18288        m,
18289        s.as_mut_ptr(),
18290        sep.as_mut_ptr(),
18291        work.as_mut_ptr(),
18292        &lwork,
18293        iwork.as_mut_ptr(),
18294        &liwork,
18295        info,
18296    )
18297}
18298
18299#[inline]
18300pub unsafe fn dtrsen(
18301    job: u8,
18302    compq: u8,
18303    select: &[i32],
18304    n: i32,
18305    t: &mut [f64],
18306    ldt: i32,
18307    q: &mut [f64],
18308    ldq: i32,
18309    wr: &mut [f64],
18310    wi: &mut [f64],
18311    m: &mut i32,
18312    s: &mut [f64],
18313    sep: &mut [f64],
18314    work: &mut [f64],
18315    lwork: i32,
18316    iwork: &mut [i32],
18317    liwork: i32,
18318    info: &mut i32,
18319) {
18320    ffi::dtrsen_(
18321        &(job as c_char),
18322        &(compq as c_char),
18323        select.as_ptr(),
18324        &n,
18325        t.as_mut_ptr(),
18326        &ldt,
18327        q.as_mut_ptr(),
18328        &ldq,
18329        wr.as_mut_ptr(),
18330        wi.as_mut_ptr(),
18331        m,
18332        s.as_mut_ptr(),
18333        sep.as_mut_ptr(),
18334        work.as_mut_ptr(),
18335        &lwork,
18336        iwork.as_mut_ptr(),
18337        &liwork,
18338        info,
18339    )
18340}
18341
18342#[inline]
18343pub unsafe fn ctrsen(
18344    job: u8,
18345    compq: u8,
18346    select: &[i32],
18347    n: i32,
18348    t: &mut [c32],
18349    ldt: i32,
18350    q: &mut [c32],
18351    ldq: i32,
18352    w: &mut [c32],
18353    m: &mut i32,
18354    s: &mut [f32],
18355    sep: &mut [f32],
18356    work: &mut [c32],
18357    lwork: i32,
18358    info: &mut i32,
18359) {
18360    ffi::ctrsen_(
18361        &(job as c_char),
18362        &(compq as c_char),
18363        select.as_ptr(),
18364        &n,
18365        t.as_mut_ptr() as *mut _,
18366        &ldt,
18367        q.as_mut_ptr() as *mut _,
18368        &ldq,
18369        w.as_mut_ptr() as *mut _,
18370        m,
18371        s.as_mut_ptr(),
18372        sep.as_mut_ptr(),
18373        work.as_mut_ptr() as *mut _,
18374        &lwork,
18375        info,
18376    )
18377}
18378
18379#[inline]
18380pub unsafe fn ztrsen(
18381    job: u8,
18382    compq: u8,
18383    select: &[i32],
18384    n: i32,
18385    t: &mut [c64],
18386    ldt: i32,
18387    q: &mut [c64],
18388    ldq: i32,
18389    w: &mut [c64],
18390    m: &mut i32,
18391    s: &mut [f64],
18392    sep: &mut [f64],
18393    work: &mut [c64],
18394    lwork: i32,
18395    info: &mut i32,
18396) {
18397    ffi::ztrsen_(
18398        &(job as c_char),
18399        &(compq as c_char),
18400        select.as_ptr(),
18401        &n,
18402        t.as_mut_ptr() as *mut _,
18403        &ldt,
18404        q.as_mut_ptr() as *mut _,
18405        &ldq,
18406        w.as_mut_ptr() as *mut _,
18407        m,
18408        s.as_mut_ptr(),
18409        sep.as_mut_ptr(),
18410        work.as_mut_ptr() as *mut _,
18411        &lwork,
18412        info,
18413    )
18414}
18415
18416#[inline]
18417pub unsafe fn strsyl(
18418    trana: u8,
18419    tranb: u8,
18420    isgn: &[i32],
18421    m: i32,
18422    n: i32,
18423    a: &[f32],
18424    lda: i32,
18425    b: &[f32],
18426    ldb: i32,
18427    c: &mut [f32],
18428    ldc: i32,
18429    scale: &mut [f32],
18430    info: &mut i32,
18431) {
18432    ffi::strsyl_(
18433        &(trana as c_char),
18434        &(tranb as c_char),
18435        isgn.as_ptr(),
18436        &m,
18437        &n,
18438        a.as_ptr(),
18439        &lda,
18440        b.as_ptr(),
18441        &ldb,
18442        c.as_mut_ptr(),
18443        &ldc,
18444        scale.as_mut_ptr(),
18445        info,
18446    )
18447}
18448
18449#[inline]
18450pub unsafe fn dtrsyl(
18451    trana: u8,
18452    tranb: u8,
18453    isgn: &[i32],
18454    m: i32,
18455    n: i32,
18456    a: &[f64],
18457    lda: i32,
18458    b: &[f64],
18459    ldb: i32,
18460    c: &mut [f64],
18461    ldc: i32,
18462    scale: &mut [f64],
18463    info: &mut i32,
18464) {
18465    ffi::dtrsyl_(
18466        &(trana as c_char),
18467        &(tranb as c_char),
18468        isgn.as_ptr(),
18469        &m,
18470        &n,
18471        a.as_ptr(),
18472        &lda,
18473        b.as_ptr(),
18474        &ldb,
18475        c.as_mut_ptr(),
18476        &ldc,
18477        scale.as_mut_ptr(),
18478        info,
18479    )
18480}
18481
18482#[inline]
18483pub unsafe fn ctrsyl(
18484    trana: u8,
18485    tranb: u8,
18486    isgn: &[i32],
18487    m: i32,
18488    n: i32,
18489    a: &[c32],
18490    lda: i32,
18491    b: &[c32],
18492    ldb: i32,
18493    c: &mut [c32],
18494    ldc: i32,
18495    scale: &mut [f32],
18496    info: &mut i32,
18497) {
18498    ffi::ctrsyl_(
18499        &(trana as c_char),
18500        &(tranb as c_char),
18501        isgn.as_ptr(),
18502        &m,
18503        &n,
18504        a.as_ptr() as *const _,
18505        &lda,
18506        b.as_ptr() as *const _,
18507        &ldb,
18508        c.as_mut_ptr() as *mut _,
18509        &ldc,
18510        scale.as_mut_ptr(),
18511        info,
18512    )
18513}
18514
18515#[inline]
18516pub unsafe fn ztrsyl(
18517    trana: u8,
18518    tranb: u8,
18519    isgn: &[i32],
18520    m: i32,
18521    n: i32,
18522    a: &[c64],
18523    lda: i32,
18524    b: &[c64],
18525    ldb: i32,
18526    c: &mut [c64],
18527    ldc: i32,
18528    scale: &mut [f64],
18529    info: &mut i32,
18530) {
18531    ffi::ztrsyl_(
18532        &(trana as c_char),
18533        &(tranb as c_char),
18534        isgn.as_ptr(),
18535        &m,
18536        &n,
18537        a.as_ptr() as *const _,
18538        &lda,
18539        b.as_ptr() as *const _,
18540        &ldb,
18541        c.as_mut_ptr() as *mut _,
18542        &ldc,
18543        scale.as_mut_ptr(),
18544        info,
18545    )
18546}
18547
18548#[inline]
18549pub unsafe fn sgghrd(
18550    compq: u8,
18551    compz: u8,
18552    n: i32,
18553    ilo: i32,
18554    ihi: i32,
18555    a: &mut [f32],
18556    lda: i32,
18557    b: &mut [f32],
18558    ldb: i32,
18559    q: &mut [f32],
18560    ldq: i32,
18561    z: &mut [f32],
18562    ldz: i32,
18563    info: &mut i32,
18564) {
18565    ffi::sgghrd_(
18566        &(compq as c_char),
18567        &(compz as c_char),
18568        &n,
18569        &ilo,
18570        &ihi,
18571        a.as_mut_ptr(),
18572        &lda,
18573        b.as_mut_ptr(),
18574        &ldb,
18575        q.as_mut_ptr(),
18576        &ldq,
18577        z.as_mut_ptr(),
18578        &ldz,
18579        info,
18580    )
18581}
18582
18583#[inline]
18584pub unsafe fn dgghrd(
18585    compq: u8,
18586    compz: u8,
18587    n: i32,
18588    ilo: i32,
18589    ihi: i32,
18590    a: &mut [f64],
18591    lda: i32,
18592    b: &mut [f64],
18593    ldb: i32,
18594    q: &mut [f64],
18595    ldq: i32,
18596    z: &mut [f64],
18597    ldz: i32,
18598    info: &mut i32,
18599) {
18600    ffi::dgghrd_(
18601        &(compq as c_char),
18602        &(compz as c_char),
18603        &n,
18604        &ilo,
18605        &ihi,
18606        a.as_mut_ptr(),
18607        &lda,
18608        b.as_mut_ptr(),
18609        &ldb,
18610        q.as_mut_ptr(),
18611        &ldq,
18612        z.as_mut_ptr(),
18613        &ldz,
18614        info,
18615    )
18616}
18617
18618#[inline]
18619pub unsafe fn cgghrd(
18620    compq: u8,
18621    compz: u8,
18622    n: i32,
18623    ilo: i32,
18624    ihi: i32,
18625    a: &mut [c32],
18626    lda: i32,
18627    b: &mut [c32],
18628    ldb: i32,
18629    q: &mut [c32],
18630    ldq: i32,
18631    z: &mut [c32],
18632    ldz: i32,
18633    info: &mut i32,
18634) {
18635    ffi::cgghrd_(
18636        &(compq as c_char),
18637        &(compz as c_char),
18638        &n,
18639        &ilo,
18640        &ihi,
18641        a.as_mut_ptr() as *mut _,
18642        &lda,
18643        b.as_mut_ptr() as *mut _,
18644        &ldb,
18645        q.as_mut_ptr() as *mut _,
18646        &ldq,
18647        z.as_mut_ptr() as *mut _,
18648        &ldz,
18649        info,
18650    )
18651}
18652
18653#[inline]
18654pub unsafe fn zgghrd(
18655    compq: u8,
18656    compz: u8,
18657    n: i32,
18658    ilo: i32,
18659    ihi: i32,
18660    a: &mut [c64],
18661    lda: i32,
18662    b: &mut [c64],
18663    ldb: i32,
18664    q: &mut [c64],
18665    ldq: i32,
18666    z: &mut [c64],
18667    ldz: i32,
18668    info: &mut i32,
18669) {
18670    ffi::zgghrd_(
18671        &(compq as c_char),
18672        &(compz as c_char),
18673        &n,
18674        &ilo,
18675        &ihi,
18676        a.as_mut_ptr() as *mut _,
18677        &lda,
18678        b.as_mut_ptr() as *mut _,
18679        &ldb,
18680        q.as_mut_ptr() as *mut _,
18681        &ldq,
18682        z.as_mut_ptr() as *mut _,
18683        &ldz,
18684        info,
18685    )
18686}
18687
18688#[inline]
18689pub unsafe fn sgghd3(
18690    compq: u8,
18691    compz: u8,
18692    n: i32,
18693    ilo: i32,
18694    ihi: i32,
18695    a: &mut [f32],
18696    lda: i32,
18697    b: &mut [f32],
18698    ldb: i32,
18699    q: &mut [f32],
18700    ldq: i32,
18701    z: &mut [f32],
18702    ldz: i32,
18703    work: &mut [f32],
18704    lwork: i32,
18705    info: &mut i32,
18706) {
18707    ffi::sgghd3_(
18708        &(compq as c_char),
18709        &(compz as c_char),
18710        &n,
18711        &ilo,
18712        &ihi,
18713        a.as_mut_ptr(),
18714        &lda,
18715        b.as_mut_ptr(),
18716        &ldb,
18717        q.as_mut_ptr(),
18718        &ldq,
18719        z.as_mut_ptr(),
18720        &ldz,
18721        work.as_mut_ptr(),
18722        &lwork,
18723        info,
18724    )
18725}
18726
18727#[inline]
18728pub unsafe fn dgghd3(
18729    compq: u8,
18730    compz: u8,
18731    n: i32,
18732    ilo: i32,
18733    ihi: i32,
18734    a: &mut [f64],
18735    lda: i32,
18736    b: &mut [f64],
18737    ldb: i32,
18738    q: &mut [f64],
18739    ldq: i32,
18740    z: &mut [f64],
18741    ldz: i32,
18742    work: &mut [f64],
18743    lwork: i32,
18744    info: &mut i32,
18745) {
18746    ffi::dgghd3_(
18747        &(compq as c_char),
18748        &(compz as c_char),
18749        &n,
18750        &ilo,
18751        &ihi,
18752        a.as_mut_ptr(),
18753        &lda,
18754        b.as_mut_ptr(),
18755        &ldb,
18756        q.as_mut_ptr(),
18757        &ldq,
18758        z.as_mut_ptr(),
18759        &ldz,
18760        work.as_mut_ptr(),
18761        &lwork,
18762        info,
18763    )
18764}
18765
18766#[inline]
18767pub unsafe fn cgghd3(
18768    compq: u8,
18769    compz: u8,
18770    n: i32,
18771    ilo: i32,
18772    ihi: i32,
18773    a: &mut [c32],
18774    lda: i32,
18775    b: &mut [c32],
18776    ldb: i32,
18777    q: &mut [c32],
18778    ldq: i32,
18779    z: &mut [c32],
18780    ldz: i32,
18781    work: &mut [c32],
18782    lwork: i32,
18783    info: &mut i32,
18784) {
18785    ffi::cgghd3_(
18786        &(compq as c_char),
18787        &(compz as c_char),
18788        &n,
18789        &ilo,
18790        &ihi,
18791        a.as_mut_ptr() as *mut _,
18792        &lda,
18793        b.as_mut_ptr() as *mut _,
18794        &ldb,
18795        q.as_mut_ptr() as *mut _,
18796        &ldq,
18797        z.as_mut_ptr() as *mut _,
18798        &ldz,
18799        work.as_mut_ptr() as *mut _,
18800        &lwork,
18801        info,
18802    )
18803}
18804
18805#[inline]
18806pub unsafe fn zgghd3(
18807    compq: u8,
18808    compz: u8,
18809    n: i32,
18810    ilo: i32,
18811    ihi: i32,
18812    a: &mut [c64],
18813    lda: i32,
18814    b: &mut [c64],
18815    ldb: i32,
18816    q: &mut [c64],
18817    ldq: i32,
18818    z: &mut [c64],
18819    ldz: i32,
18820    work: &mut [c64],
18821    lwork: i32,
18822    info: &mut i32,
18823) {
18824    ffi::zgghd3_(
18825        &(compq as c_char),
18826        &(compz as c_char),
18827        &n,
18828        &ilo,
18829        &ihi,
18830        a.as_mut_ptr() as *mut _,
18831        &lda,
18832        b.as_mut_ptr() as *mut _,
18833        &ldb,
18834        q.as_mut_ptr() as *mut _,
18835        &ldq,
18836        z.as_mut_ptr() as *mut _,
18837        &ldz,
18838        work.as_mut_ptr() as *mut _,
18839        &lwork,
18840        info,
18841    )
18842}
18843
18844#[inline]
18845pub unsafe fn sggbal(
18846    job: u8,
18847    n: i32,
18848    a: &mut [f32],
18849    lda: i32,
18850    b: &mut [f32],
18851    ldb: i32,
18852    ilo: &mut i32,
18853    ihi: &mut i32,
18854    lscale: &mut [f32],
18855    rscale: &mut [f32],
18856    work: &mut [f32],
18857    info: &mut i32,
18858) {
18859    ffi::sggbal_(
18860        &(job as c_char),
18861        &n,
18862        a.as_mut_ptr(),
18863        &lda,
18864        b.as_mut_ptr(),
18865        &ldb,
18866        ilo,
18867        ihi,
18868        lscale.as_mut_ptr(),
18869        rscale.as_mut_ptr(),
18870        work.as_mut_ptr(),
18871        info,
18872    )
18873}
18874
18875#[inline]
18876pub unsafe fn dggbal(
18877    job: u8,
18878    n: i32,
18879    a: &mut [f64],
18880    lda: i32,
18881    b: &mut [f64],
18882    ldb: i32,
18883    ilo: &mut i32,
18884    ihi: &mut i32,
18885    lscale: &mut [f64],
18886    rscale: &mut [f64],
18887    work: &mut [f64],
18888    info: &mut i32,
18889) {
18890    ffi::dggbal_(
18891        &(job as c_char),
18892        &n,
18893        a.as_mut_ptr(),
18894        &lda,
18895        b.as_mut_ptr(),
18896        &ldb,
18897        ilo,
18898        ihi,
18899        lscale.as_mut_ptr(),
18900        rscale.as_mut_ptr(),
18901        work.as_mut_ptr(),
18902        info,
18903    )
18904}
18905
18906#[inline]
18907pub unsafe fn cggbal(
18908    job: u8,
18909    n: i32,
18910    a: &mut [c32],
18911    lda: i32,
18912    b: &mut [c32],
18913    ldb: i32,
18914    ilo: &mut i32,
18915    ihi: &mut i32,
18916    lscale: &mut [f32],
18917    rscale: &mut [f32],
18918    work: &mut [f32],
18919    info: &mut i32,
18920) {
18921    ffi::cggbal_(
18922        &(job as c_char),
18923        &n,
18924        a.as_mut_ptr() as *mut _,
18925        &lda,
18926        b.as_mut_ptr() as *mut _,
18927        &ldb,
18928        ilo,
18929        ihi,
18930        lscale.as_mut_ptr(),
18931        rscale.as_mut_ptr(),
18932        work.as_mut_ptr(),
18933        info,
18934    )
18935}
18936
18937#[inline]
18938pub unsafe fn zggbal(
18939    job: u8,
18940    n: i32,
18941    a: &mut [c64],
18942    lda: i32,
18943    b: &mut [c64],
18944    ldb: i32,
18945    ilo: &mut i32,
18946    ihi: &mut i32,
18947    lscale: &mut [f64],
18948    rscale: &mut [f64],
18949    work: &mut [f64],
18950    info: &mut i32,
18951) {
18952    ffi::zggbal_(
18953        &(job as c_char),
18954        &n,
18955        a.as_mut_ptr() as *mut _,
18956        &lda,
18957        b.as_mut_ptr() as *mut _,
18958        &ldb,
18959        ilo,
18960        ihi,
18961        lscale.as_mut_ptr(),
18962        rscale.as_mut_ptr(),
18963        work.as_mut_ptr(),
18964        info,
18965    )
18966}
18967
18968#[inline]
18969pub unsafe fn sggbak(
18970    job: u8,
18971    side: u8,
18972    n: i32,
18973    ilo: i32,
18974    ihi: i32,
18975    lscale: &[f32],
18976    rscale: &[f32],
18977    m: i32,
18978    v: &mut [f32],
18979    ldv: i32,
18980    info: &mut i32,
18981) {
18982    ffi::sggbak_(
18983        &(job as c_char),
18984        &(side as c_char),
18985        &n,
18986        &ilo,
18987        &ihi,
18988        lscale.as_ptr(),
18989        rscale.as_ptr(),
18990        &m,
18991        v.as_mut_ptr(),
18992        &ldv,
18993        info,
18994    )
18995}
18996
18997#[inline]
18998pub unsafe fn dggbak(
18999    job: u8,
19000    side: u8,
19001    n: i32,
19002    ilo: i32,
19003    ihi: i32,
19004    lscale: &[f64],
19005    rscale: &[f64],
19006    m: i32,
19007    v: &mut [f64],
19008    ldv: i32,
19009    info: &mut i32,
19010) {
19011    ffi::dggbak_(
19012        &(job as c_char),
19013        &(side as c_char),
19014        &n,
19015        &ilo,
19016        &ihi,
19017        lscale.as_ptr(),
19018        rscale.as_ptr(),
19019        &m,
19020        v.as_mut_ptr(),
19021        &ldv,
19022        info,
19023    )
19024}
19025
19026#[inline]
19027pub unsafe fn cggbak(
19028    job: u8,
19029    side: u8,
19030    n: i32,
19031    ilo: i32,
19032    ihi: i32,
19033    lscale: &[f32],
19034    rscale: &[f32],
19035    m: i32,
19036    v: &mut [c32],
19037    ldv: i32,
19038    info: &mut i32,
19039) {
19040    ffi::cggbak_(
19041        &(job as c_char),
19042        &(side as c_char),
19043        &n,
19044        &ilo,
19045        &ihi,
19046        lscale.as_ptr(),
19047        rscale.as_ptr(),
19048        &m,
19049        v.as_mut_ptr() as *mut _,
19050        &ldv,
19051        info,
19052    )
19053}
19054
19055#[inline]
19056pub unsafe fn zggbak(
19057    job: u8,
19058    side: u8,
19059    n: i32,
19060    ilo: i32,
19061    ihi: i32,
19062    lscale: &[f64],
19063    rscale: &[f64],
19064    m: i32,
19065    v: &mut [c64],
19066    ldv: i32,
19067    info: &mut i32,
19068) {
19069    ffi::zggbak_(
19070        &(job as c_char),
19071        &(side as c_char),
19072        &n,
19073        &ilo,
19074        &ihi,
19075        lscale.as_ptr(),
19076        rscale.as_ptr(),
19077        &m,
19078        v.as_mut_ptr() as *mut _,
19079        &ldv,
19080        info,
19081    )
19082}
19083
19084#[inline]
19085pub unsafe fn shgeqz(
19086    job: u8,
19087    compq: u8,
19088    compz: u8,
19089    n: i32,
19090    ilo: i32,
19091    ihi: i32,
19092    h: &mut [f32],
19093    ldh: i32,
19094    t: &mut [f32],
19095    ldt: i32,
19096    alphar: &mut f32,
19097    alphai: &mut f32,
19098    beta: &mut f32,
19099    q: &mut [f32],
19100    ldq: i32,
19101    z: &mut [f32],
19102    ldz: i32,
19103    work: &mut [f32],
19104    lwork: i32,
19105    info: &mut i32,
19106) {
19107    ffi::shgeqz_(
19108        &(job as c_char),
19109        &(compq as c_char),
19110        &(compz as c_char),
19111        &n,
19112        &ilo,
19113        &ihi,
19114        h.as_mut_ptr(),
19115        &ldh,
19116        t.as_mut_ptr(),
19117        &ldt,
19118        alphar,
19119        alphai,
19120        beta,
19121        q.as_mut_ptr(),
19122        &ldq,
19123        z.as_mut_ptr(),
19124        &ldz,
19125        work.as_mut_ptr(),
19126        &lwork,
19127        info,
19128    )
19129}
19130
19131#[inline]
19132pub unsafe fn dhgeqz(
19133    job: u8,
19134    compq: u8,
19135    compz: u8,
19136    n: i32,
19137    ilo: i32,
19138    ihi: i32,
19139    h: &mut [f64],
19140    ldh: i32,
19141    t: &mut [f64],
19142    ldt: i32,
19143    alphar: &mut f64,
19144    alphai: &mut f64,
19145    beta: &mut f64,
19146    q: &mut [f64],
19147    ldq: i32,
19148    z: &mut [f64],
19149    ldz: i32,
19150    work: &mut [f64],
19151    lwork: i32,
19152    info: &mut i32,
19153) {
19154    ffi::dhgeqz_(
19155        &(job as c_char),
19156        &(compq as c_char),
19157        &(compz as c_char),
19158        &n,
19159        &ilo,
19160        &ihi,
19161        h.as_mut_ptr(),
19162        &ldh,
19163        t.as_mut_ptr(),
19164        &ldt,
19165        alphar,
19166        alphai,
19167        beta,
19168        q.as_mut_ptr(),
19169        &ldq,
19170        z.as_mut_ptr(),
19171        &ldz,
19172        work.as_mut_ptr(),
19173        &lwork,
19174        info,
19175    )
19176}
19177
19178#[inline]
19179pub unsafe fn chgeqz(
19180    job: u8,
19181    compq: u8,
19182    compz: u8,
19183    n: i32,
19184    ilo: i32,
19185    ihi: i32,
19186    h: &mut [c32],
19187    ldh: i32,
19188    t: &mut [c32],
19189    ldt: i32,
19190    alpha: &mut c32,
19191    beta: &mut c32,
19192    q: &mut [c32],
19193    ldq: i32,
19194    z: &mut [c32],
19195    ldz: i32,
19196    work: &mut [c32],
19197    lwork: i32,
19198    rwork: &mut [f32],
19199    info: &mut i32,
19200) {
19201    ffi::chgeqz_(
19202        &(job as c_char),
19203        &(compq as c_char),
19204        &(compz as c_char),
19205        &n,
19206        &ilo,
19207        &ihi,
19208        h.as_mut_ptr() as *mut _,
19209        &ldh,
19210        t.as_mut_ptr() as *mut _,
19211        &ldt,
19212        alpha as *mut _ as *mut _,
19213        beta as *mut _ as *mut _,
19214        q.as_mut_ptr() as *mut _,
19215        &ldq,
19216        z.as_mut_ptr() as *mut _,
19217        &ldz,
19218        work.as_mut_ptr() as *mut _,
19219        &lwork,
19220        rwork.as_mut_ptr(),
19221        info,
19222    )
19223}
19224
19225#[inline]
19226pub unsafe fn zhgeqz(
19227    job: u8,
19228    compq: u8,
19229    compz: u8,
19230    n: i32,
19231    ilo: i32,
19232    ihi: i32,
19233    h: &mut [c64],
19234    ldh: i32,
19235    t: &mut [c64],
19236    ldt: i32,
19237    alpha: &mut c64,
19238    beta: &mut c64,
19239    q: &mut [c64],
19240    ldq: i32,
19241    z: &mut [c64],
19242    ldz: i32,
19243    work: &mut [c64],
19244    lwork: i32,
19245    rwork: &mut [f64],
19246    info: &mut i32,
19247) {
19248    ffi::zhgeqz_(
19249        &(job as c_char),
19250        &(compq as c_char),
19251        &(compz as c_char),
19252        &n,
19253        &ilo,
19254        &ihi,
19255        h.as_mut_ptr() as *mut _,
19256        &ldh,
19257        t.as_mut_ptr() as *mut _,
19258        &ldt,
19259        alpha as *mut _ as *mut _,
19260        beta as *mut _ as *mut _,
19261        q.as_mut_ptr() as *mut _,
19262        &ldq,
19263        z.as_mut_ptr() as *mut _,
19264        &ldz,
19265        work.as_mut_ptr() as *mut _,
19266        &lwork,
19267        rwork.as_mut_ptr(),
19268        info,
19269    )
19270}
19271
19272#[inline]
19273pub unsafe fn stgevc(
19274    side: u8,
19275    howmny: u8,
19276    select: &[i32],
19277    n: i32,
19278    s: &[f32],
19279    lds: i32,
19280    p: &[f32],
19281    ldp: i32,
19282    vl: &mut f32,
19283    ldvl: i32,
19284    vr: &mut f32,
19285    ldvr: i32,
19286    mm: i32,
19287    m: &mut i32,
19288    work: &mut [f32],
19289    info: &mut i32,
19290) {
19291    ffi::stgevc_(
19292        &(side as c_char),
19293        &(howmny as c_char),
19294        select.as_ptr(),
19295        &n,
19296        s.as_ptr(),
19297        &lds,
19298        p.as_ptr(),
19299        &ldp,
19300        vl,
19301        &ldvl,
19302        vr,
19303        &ldvr,
19304        &mm,
19305        m,
19306        work.as_mut_ptr(),
19307        info,
19308    )
19309}
19310
19311#[inline]
19312pub unsafe fn dtgevc(
19313    side: u8,
19314    howmny: u8,
19315    select: &[i32],
19316    n: i32,
19317    s: &[f64],
19318    lds: i32,
19319    p: &[f64],
19320    ldp: i32,
19321    vl: &mut f64,
19322    ldvl: i32,
19323    vr: &mut f64,
19324    ldvr: i32,
19325    mm: i32,
19326    m: &mut i32,
19327    work: &mut [f64],
19328    info: &mut i32,
19329) {
19330    ffi::dtgevc_(
19331        &(side as c_char),
19332        &(howmny as c_char),
19333        select.as_ptr(),
19334        &n,
19335        s.as_ptr(),
19336        &lds,
19337        p.as_ptr(),
19338        &ldp,
19339        vl,
19340        &ldvl,
19341        vr,
19342        &ldvr,
19343        &mm,
19344        m,
19345        work.as_mut_ptr(),
19346        info,
19347    )
19348}
19349
19350#[inline]
19351pub unsafe fn ctgevc(
19352    side: u8,
19353    howmny: u8,
19354    select: &[i32],
19355    n: i32,
19356    s: &[c32],
19357    lds: i32,
19358    p: &[c32],
19359    ldp: i32,
19360    vl: &mut c32,
19361    ldvl: i32,
19362    vr: &mut c32,
19363    ldvr: i32,
19364    mm: i32,
19365    m: &mut i32,
19366    work: &mut [c32],
19367    rwork: &mut [f32],
19368    info: &mut i32,
19369) {
19370    ffi::ctgevc_(
19371        &(side as c_char),
19372        &(howmny as c_char),
19373        select.as_ptr(),
19374        &n,
19375        s.as_ptr() as *const _,
19376        &lds,
19377        p.as_ptr() as *const _,
19378        &ldp,
19379        vl as *mut _ as *mut _,
19380        &ldvl,
19381        vr as *mut _ as *mut _,
19382        &ldvr,
19383        &mm,
19384        m,
19385        work.as_mut_ptr() as *mut _,
19386        rwork.as_mut_ptr(),
19387        info,
19388    )
19389}
19390
19391#[inline]
19392pub unsafe fn ztgevc(
19393    side: u8,
19394    howmny: u8,
19395    select: &[i32],
19396    n: i32,
19397    s: &[c64],
19398    lds: i32,
19399    p: &[c64],
19400    ldp: i32,
19401    vl: &mut c64,
19402    ldvl: i32,
19403    vr: &mut c64,
19404    ldvr: i32,
19405    mm: i32,
19406    m: &mut i32,
19407    work: &mut [c64],
19408    rwork: &mut [f64],
19409    info: &mut i32,
19410) {
19411    ffi::ztgevc_(
19412        &(side as c_char),
19413        &(howmny as c_char),
19414        select.as_ptr(),
19415        &n,
19416        s.as_ptr() as *const _,
19417        &lds,
19418        p.as_ptr() as *const _,
19419        &ldp,
19420        vl as *mut _ as *mut _,
19421        &ldvl,
19422        vr as *mut _ as *mut _,
19423        &ldvr,
19424        &mm,
19425        m,
19426        work.as_mut_ptr() as *mut _,
19427        rwork.as_mut_ptr(),
19428        info,
19429    )
19430}
19431
19432#[inline]
19433pub unsafe fn stgexc(
19434    wantq: &[i32],
19435    wantz: &[i32],
19436    n: i32,
19437    a: &mut [f32],
19438    lda: i32,
19439    b: &mut [f32],
19440    ldb: i32,
19441    q: &mut [f32],
19442    ldq: i32,
19443    z: &mut [f32],
19444    ldz: i32,
19445    ifst: &mut [i32],
19446    ilst: &mut [i32],
19447    work: &mut [f32],
19448    lwork: i32,
19449    info: &mut i32,
19450) {
19451    ffi::stgexc_(
19452        wantq.as_ptr(),
19453        wantz.as_ptr(),
19454        &n,
19455        a.as_mut_ptr(),
19456        &lda,
19457        b.as_mut_ptr(),
19458        &ldb,
19459        q.as_mut_ptr(),
19460        &ldq,
19461        z.as_mut_ptr(),
19462        &ldz,
19463        ifst.as_mut_ptr(),
19464        ilst.as_mut_ptr(),
19465        work.as_mut_ptr(),
19466        &lwork,
19467        info,
19468    )
19469}
19470
19471#[inline]
19472pub unsafe fn dtgexc(
19473    wantq: &[i32],
19474    wantz: &[i32],
19475    n: i32,
19476    a: &mut [f64],
19477    lda: i32,
19478    b: &mut [f64],
19479    ldb: i32,
19480    q: &mut [f64],
19481    ldq: i32,
19482    z: &mut [f64],
19483    ldz: i32,
19484    ifst: &mut [i32],
19485    ilst: &mut [i32],
19486    work: &mut [f64],
19487    lwork: i32,
19488    info: &mut i32,
19489) {
19490    ffi::dtgexc_(
19491        wantq.as_ptr(),
19492        wantz.as_ptr(),
19493        &n,
19494        a.as_mut_ptr(),
19495        &lda,
19496        b.as_mut_ptr(),
19497        &ldb,
19498        q.as_mut_ptr(),
19499        &ldq,
19500        z.as_mut_ptr(),
19501        &ldz,
19502        ifst.as_mut_ptr(),
19503        ilst.as_mut_ptr(),
19504        work.as_mut_ptr(),
19505        &lwork,
19506        info,
19507    )
19508}
19509
19510#[inline]
19511pub unsafe fn ctgexc(
19512    wantq: &[i32],
19513    wantz: &[i32],
19514    n: i32,
19515    a: &mut [c32],
19516    lda: i32,
19517    b: &mut [c32],
19518    ldb: i32,
19519    q: &mut [c32],
19520    ldq: i32,
19521    z: &mut [c32],
19522    ldz: i32,
19523    ifst: &[i32],
19524    ilst: &mut [i32],
19525    info: &mut i32,
19526) {
19527    ffi::ctgexc_(
19528        wantq.as_ptr(),
19529        wantz.as_ptr(),
19530        &n,
19531        a.as_mut_ptr() as *mut _,
19532        &lda,
19533        b.as_mut_ptr() as *mut _,
19534        &ldb,
19535        q.as_mut_ptr() as *mut _,
19536        &ldq,
19537        z.as_mut_ptr() as *mut _,
19538        &ldz,
19539        ifst.as_ptr(),
19540        ilst.as_mut_ptr(),
19541        info,
19542    )
19543}
19544
19545#[inline]
19546pub unsafe fn ztgexc(
19547    wantq: &[i32],
19548    wantz: &[i32],
19549    n: i32,
19550    a: &mut [c64],
19551    lda: i32,
19552    b: &mut [c64],
19553    ldb: i32,
19554    q: &mut [c64],
19555    ldq: i32,
19556    z: &mut [c64],
19557    ldz: i32,
19558    ifst: &[i32],
19559    ilst: &mut [i32],
19560    info: &mut i32,
19561) {
19562    ffi::ztgexc_(
19563        wantq.as_ptr(),
19564        wantz.as_ptr(),
19565        &n,
19566        a.as_mut_ptr() as *mut _,
19567        &lda,
19568        b.as_mut_ptr() as *mut _,
19569        &ldb,
19570        q.as_mut_ptr() as *mut _,
19571        &ldq,
19572        z.as_mut_ptr() as *mut _,
19573        &ldz,
19574        ifst.as_ptr(),
19575        ilst.as_mut_ptr(),
19576        info,
19577    )
19578}
19579
19580#[inline]
19581pub unsafe fn stgsen(
19582    ijob: &[i32],
19583    wantq: &[i32],
19584    wantz: &[i32],
19585    select: &[i32],
19586    n: i32,
19587    a: &mut [f32],
19588    lda: i32,
19589    b: &mut [f32],
19590    ldb: i32,
19591    alphar: &mut f32,
19592    alphai: &mut f32,
19593    beta: &mut f32,
19594    q: &mut [f32],
19595    ldq: i32,
19596    z: &mut [f32],
19597    ldz: i32,
19598    m: &mut i32,
19599    pl: &mut [f32],
19600    pr: &mut [f32],
19601    dif: &mut f32,
19602    work: &mut [f32],
19603    lwork: i32,
19604    iwork: &mut [i32],
19605    liwork: i32,
19606    info: &mut i32,
19607) {
19608    ffi::stgsen_(
19609        ijob.as_ptr(),
19610        wantq.as_ptr(),
19611        wantz.as_ptr(),
19612        select.as_ptr(),
19613        &n,
19614        a.as_mut_ptr(),
19615        &lda,
19616        b.as_mut_ptr(),
19617        &ldb,
19618        alphar,
19619        alphai,
19620        beta,
19621        q.as_mut_ptr(),
19622        &ldq,
19623        z.as_mut_ptr(),
19624        &ldz,
19625        m,
19626        pl.as_mut_ptr(),
19627        pr.as_mut_ptr(),
19628        dif,
19629        work.as_mut_ptr(),
19630        &lwork,
19631        iwork.as_mut_ptr(),
19632        &liwork,
19633        info,
19634    )
19635}
19636
19637#[inline]
19638pub unsafe fn dtgsen(
19639    ijob: &[i32],
19640    wantq: &[i32],
19641    wantz: &[i32],
19642    select: &[i32],
19643    n: i32,
19644    a: &mut [f64],
19645    lda: i32,
19646    b: &mut [f64],
19647    ldb: i32,
19648    alphar: &mut f64,
19649    alphai: &mut f64,
19650    beta: &mut f64,
19651    q: &mut [f64],
19652    ldq: i32,
19653    z: &mut [f64],
19654    ldz: i32,
19655    m: &mut i32,
19656    pl: &mut [f64],
19657    pr: &mut [f64],
19658    dif: &mut f64,
19659    work: &mut [f64],
19660    lwork: i32,
19661    iwork: &mut [i32],
19662    liwork: i32,
19663    info: &mut i32,
19664) {
19665    ffi::dtgsen_(
19666        ijob.as_ptr(),
19667        wantq.as_ptr(),
19668        wantz.as_ptr(),
19669        select.as_ptr(),
19670        &n,
19671        a.as_mut_ptr(),
19672        &lda,
19673        b.as_mut_ptr(),
19674        &ldb,
19675        alphar,
19676        alphai,
19677        beta,
19678        q.as_mut_ptr(),
19679        &ldq,
19680        z.as_mut_ptr(),
19681        &ldz,
19682        m,
19683        pl.as_mut_ptr(),
19684        pr.as_mut_ptr(),
19685        dif,
19686        work.as_mut_ptr(),
19687        &lwork,
19688        iwork.as_mut_ptr(),
19689        &liwork,
19690        info,
19691    )
19692}
19693
19694#[inline]
19695pub unsafe fn ctgsen(
19696    ijob: &[i32],
19697    wantq: &[i32],
19698    wantz: &[i32],
19699    select: &[i32],
19700    n: i32,
19701    a: &mut [c32],
19702    lda: i32,
19703    b: &mut [c32],
19704    ldb: i32,
19705    alpha: &mut c32,
19706    beta: &mut c32,
19707    q: &mut [c32],
19708    ldq: i32,
19709    z: &mut [c32],
19710    ldz: i32,
19711    m: &mut i32,
19712    pl: &mut [f32],
19713    pr: &mut [f32],
19714    dif: &mut f32,
19715    work: &mut [c32],
19716    lwork: i32,
19717    iwork: &mut [i32],
19718    liwork: i32,
19719    info: &mut i32,
19720) {
19721    ffi::ctgsen_(
19722        ijob.as_ptr(),
19723        wantq.as_ptr(),
19724        wantz.as_ptr(),
19725        select.as_ptr(),
19726        &n,
19727        a.as_mut_ptr() as *mut _,
19728        &lda,
19729        b.as_mut_ptr() as *mut _,
19730        &ldb,
19731        alpha as *mut _ as *mut _,
19732        beta as *mut _ as *mut _,
19733        q.as_mut_ptr() as *mut _,
19734        &ldq,
19735        z.as_mut_ptr() as *mut _,
19736        &ldz,
19737        m,
19738        pl.as_mut_ptr(),
19739        pr.as_mut_ptr(),
19740        dif,
19741        work.as_mut_ptr() as *mut _,
19742        &lwork,
19743        iwork.as_mut_ptr(),
19744        &liwork,
19745        info,
19746    )
19747}
19748
19749#[inline]
19750pub unsafe fn ztgsen(
19751    ijob: &[i32],
19752    wantq: &[i32],
19753    wantz: &[i32],
19754    select: &[i32],
19755    n: i32,
19756    a: &mut [c64],
19757    lda: i32,
19758    b: &mut [c64],
19759    ldb: i32,
19760    alpha: &mut c64,
19761    beta: &mut c64,
19762    q: &mut [c64],
19763    ldq: i32,
19764    z: &mut [c64],
19765    ldz: i32,
19766    m: &mut i32,
19767    pl: &mut [f64],
19768    pr: &mut [f64],
19769    dif: &mut f64,
19770    work: &mut [c64],
19771    lwork: i32,
19772    iwork: &mut [i32],
19773    liwork: i32,
19774    info: &mut i32,
19775) {
19776    ffi::ztgsen_(
19777        ijob.as_ptr(),
19778        wantq.as_ptr(),
19779        wantz.as_ptr(),
19780        select.as_ptr(),
19781        &n,
19782        a.as_mut_ptr() as *mut _,
19783        &lda,
19784        b.as_mut_ptr() as *mut _,
19785        &ldb,
19786        alpha as *mut _ as *mut _,
19787        beta as *mut _ as *mut _,
19788        q.as_mut_ptr() as *mut _,
19789        &ldq,
19790        z.as_mut_ptr() as *mut _,
19791        &ldz,
19792        m,
19793        pl.as_mut_ptr(),
19794        pr.as_mut_ptr(),
19795        dif,
19796        work.as_mut_ptr() as *mut _,
19797        &lwork,
19798        iwork.as_mut_ptr(),
19799        &liwork,
19800        info,
19801    )
19802}
19803
19804#[inline]
19805pub unsafe fn stgsyl(
19806    trans: u8,
19807    ijob: &[i32],
19808    m: i32,
19809    n: i32,
19810    a: &[f32],
19811    lda: i32,
19812    b: &[f32],
19813    ldb: i32,
19814    c: &mut [f32],
19815    ldc: i32,
19816    d: &[f32],
19817    ldd: i32,
19818    e: &[f32],
19819    lde: i32,
19820    f: &mut [f32],
19821    ldf: i32,
19822    scale: &mut [f32],
19823    dif: &mut f32,
19824    work: &mut [f32],
19825    lwork: i32,
19826    iwork: &mut [i32],
19827    info: &mut i32,
19828) {
19829    ffi::stgsyl_(
19830        &(trans as c_char),
19831        ijob.as_ptr(),
19832        &m,
19833        &n,
19834        a.as_ptr(),
19835        &lda,
19836        b.as_ptr(),
19837        &ldb,
19838        c.as_mut_ptr(),
19839        &ldc,
19840        d.as_ptr(),
19841        &ldd,
19842        e.as_ptr(),
19843        &lde,
19844        f.as_mut_ptr(),
19845        &ldf,
19846        scale.as_mut_ptr(),
19847        dif,
19848        work.as_mut_ptr(),
19849        &lwork,
19850        iwork.as_mut_ptr(),
19851        info,
19852    )
19853}
19854
19855#[inline]
19856pub unsafe fn dtgsyl(
19857    trans: u8,
19858    ijob: &[i32],
19859    m: i32,
19860    n: i32,
19861    a: &[f64],
19862    lda: i32,
19863    b: &[f64],
19864    ldb: i32,
19865    c: &mut [f64],
19866    ldc: i32,
19867    d: &[f64],
19868    ldd: i32,
19869    e: &[f64],
19870    lde: i32,
19871    f: &mut [f64],
19872    ldf: i32,
19873    scale: &mut [f64],
19874    dif: &mut f64,
19875    work: &mut [f64],
19876    lwork: i32,
19877    iwork: &mut [i32],
19878    info: &mut i32,
19879) {
19880    ffi::dtgsyl_(
19881        &(trans as c_char),
19882        ijob.as_ptr(),
19883        &m,
19884        &n,
19885        a.as_ptr(),
19886        &lda,
19887        b.as_ptr(),
19888        &ldb,
19889        c.as_mut_ptr(),
19890        &ldc,
19891        d.as_ptr(),
19892        &ldd,
19893        e.as_ptr(),
19894        &lde,
19895        f.as_mut_ptr(),
19896        &ldf,
19897        scale.as_mut_ptr(),
19898        dif,
19899        work.as_mut_ptr(),
19900        &lwork,
19901        iwork.as_mut_ptr(),
19902        info,
19903    )
19904}
19905
19906#[inline]
19907pub unsafe fn ctgsyl(
19908    trans: u8,
19909    ijob: &[i32],
19910    m: i32,
19911    n: i32,
19912    a: &[c32],
19913    lda: i32,
19914    b: &[c32],
19915    ldb: i32,
19916    c: &mut [c32],
19917    ldc: i32,
19918    d: &[c32],
19919    ldd: i32,
19920    e: &[c32],
19921    lde: i32,
19922    f: &mut [c32],
19923    ldf: i32,
19924    scale: &mut [f32],
19925    dif: &mut f32,
19926    work: &mut [c32],
19927    lwork: i32,
19928    iwork: &mut [i32],
19929    info: &mut i32,
19930) {
19931    ffi::ctgsyl_(
19932        &(trans as c_char),
19933        ijob.as_ptr(),
19934        &m,
19935        &n,
19936        a.as_ptr() as *const _,
19937        &lda,
19938        b.as_ptr() as *const _,
19939        &ldb,
19940        c.as_mut_ptr() as *mut _,
19941        &ldc,
19942        d.as_ptr() as *const _,
19943        &ldd,
19944        e.as_ptr() as *const _,
19945        &lde,
19946        f.as_mut_ptr() as *mut _,
19947        &ldf,
19948        scale.as_mut_ptr(),
19949        dif,
19950        work.as_mut_ptr() as *mut _,
19951        &lwork,
19952        iwork.as_mut_ptr(),
19953        info,
19954    )
19955}
19956
19957#[inline]
19958pub unsafe fn ztgsyl(
19959    trans: u8,
19960    ijob: &[i32],
19961    m: i32,
19962    n: i32,
19963    a: &[c64],
19964    lda: i32,
19965    b: &[c64],
19966    ldb: i32,
19967    c: &mut [c64],
19968    ldc: i32,
19969    d: &[c64],
19970    ldd: i32,
19971    e: &[c64],
19972    lde: i32,
19973    f: &mut [c64],
19974    ldf: i32,
19975    scale: &mut [f64],
19976    dif: &mut f64,
19977    work: &mut [c64],
19978    lwork: i32,
19979    iwork: &mut [i32],
19980    info: &mut i32,
19981) {
19982    ffi::ztgsyl_(
19983        &(trans as c_char),
19984        ijob.as_ptr(),
19985        &m,
19986        &n,
19987        a.as_ptr() as *const _,
19988        &lda,
19989        b.as_ptr() as *const _,
19990        &ldb,
19991        c.as_mut_ptr() as *mut _,
19992        &ldc,
19993        d.as_ptr() as *const _,
19994        &ldd,
19995        e.as_ptr() as *const _,
19996        &lde,
19997        f.as_mut_ptr() as *mut _,
19998        &ldf,
19999        scale.as_mut_ptr(),
20000        dif,
20001        work.as_mut_ptr() as *mut _,
20002        &lwork,
20003        iwork.as_mut_ptr(),
20004        info,
20005    )
20006}
20007
20008#[inline]
20009pub unsafe fn stgsna(
20010    job: u8,
20011    howmny: u8,
20012    select: &[i32],
20013    n: i32,
20014    a: &[f32],
20015    lda: i32,
20016    b: &[f32],
20017    ldb: i32,
20018    vl: &[f32],
20019    ldvl: i32,
20020    vr: &[f32],
20021    ldvr: i32,
20022    s: &mut [f32],
20023    dif: &mut f32,
20024    mm: i32,
20025    m: &mut i32,
20026    work: &mut [f32],
20027    lwork: i32,
20028    iwork: &mut [i32],
20029    info: &mut i32,
20030) {
20031    ffi::stgsna_(
20032        &(job as c_char),
20033        &(howmny as c_char),
20034        select.as_ptr(),
20035        &n,
20036        a.as_ptr(),
20037        &lda,
20038        b.as_ptr(),
20039        &ldb,
20040        vl.as_ptr(),
20041        &ldvl,
20042        vr.as_ptr(),
20043        &ldvr,
20044        s.as_mut_ptr(),
20045        dif,
20046        &mm,
20047        m,
20048        work.as_mut_ptr(),
20049        &lwork,
20050        iwork.as_mut_ptr(),
20051        info,
20052    )
20053}
20054
20055#[inline]
20056pub unsafe fn dtgsna(
20057    job: u8,
20058    howmny: u8,
20059    select: &[i32],
20060    n: i32,
20061    a: &[f64],
20062    lda: i32,
20063    b: &[f64],
20064    ldb: i32,
20065    vl: &[f64],
20066    ldvl: i32,
20067    vr: &[f64],
20068    ldvr: i32,
20069    s: &mut [f64],
20070    dif: &mut f64,
20071    mm: i32,
20072    m: &mut i32,
20073    work: &mut [f64],
20074    lwork: i32,
20075    iwork: &mut [i32],
20076    info: &mut i32,
20077) {
20078    ffi::dtgsna_(
20079        &(job as c_char),
20080        &(howmny as c_char),
20081        select.as_ptr(),
20082        &n,
20083        a.as_ptr(),
20084        &lda,
20085        b.as_ptr(),
20086        &ldb,
20087        vl.as_ptr(),
20088        &ldvl,
20089        vr.as_ptr(),
20090        &ldvr,
20091        s.as_mut_ptr(),
20092        dif,
20093        &mm,
20094        m,
20095        work.as_mut_ptr(),
20096        &lwork,
20097        iwork.as_mut_ptr(),
20098        info,
20099    )
20100}
20101
20102#[inline]
20103pub unsafe fn ctgsna(
20104    job: u8,
20105    howmny: u8,
20106    select: &[i32],
20107    n: i32,
20108    a: &[c32],
20109    lda: i32,
20110    b: &[c32],
20111    ldb: i32,
20112    vl: &[c32],
20113    ldvl: i32,
20114    vr: &[c32],
20115    ldvr: i32,
20116    s: &mut [f32],
20117    dif: &mut f32,
20118    mm: i32,
20119    m: &mut i32,
20120    work: &mut [c32],
20121    lwork: i32,
20122    iwork: &mut [i32],
20123    info: &mut i32,
20124) {
20125    ffi::ctgsna_(
20126        &(job as c_char),
20127        &(howmny as c_char),
20128        select.as_ptr(),
20129        &n,
20130        a.as_ptr() as *const _,
20131        &lda,
20132        b.as_ptr() as *const _,
20133        &ldb,
20134        vl.as_ptr() as *const _,
20135        &ldvl,
20136        vr.as_ptr() as *const _,
20137        &ldvr,
20138        s.as_mut_ptr(),
20139        dif,
20140        &mm,
20141        m,
20142        work.as_mut_ptr() as *mut _,
20143        &lwork,
20144        iwork.as_mut_ptr(),
20145        info,
20146    )
20147}
20148
20149#[inline]
20150pub unsafe fn ztgsna(
20151    job: u8,
20152    howmny: u8,
20153    select: &[i32],
20154    n: i32,
20155    a: &[c64],
20156    lda: i32,
20157    b: &[c64],
20158    ldb: i32,
20159    vl: &[c64],
20160    ldvl: i32,
20161    vr: &[c64],
20162    ldvr: i32,
20163    s: &mut [f64],
20164    dif: &mut f64,
20165    mm: i32,
20166    m: &mut i32,
20167    work: &mut [c64],
20168    lwork: i32,
20169    iwork: &mut [i32],
20170    info: &mut i32,
20171) {
20172    ffi::ztgsna_(
20173        &(job as c_char),
20174        &(howmny as c_char),
20175        select.as_ptr(),
20176        &n,
20177        a.as_ptr() as *const _,
20178        &lda,
20179        b.as_ptr() as *const _,
20180        &ldb,
20181        vl.as_ptr() as *const _,
20182        &ldvl,
20183        vr.as_ptr() as *const _,
20184        &ldvr,
20185        s.as_mut_ptr(),
20186        dif,
20187        &mm,
20188        m,
20189        work.as_mut_ptr() as *mut _,
20190        &lwork,
20191        iwork.as_mut_ptr(),
20192        info,
20193    )
20194}
20195
20196#[inline]
20197pub unsafe fn sggsvp(
20198    jobu: u8,
20199    jobv: u8,
20200    jobq: u8,
20201    m: i32,
20202    p: i32,
20203    n: i32,
20204    a: &mut [f32],
20205    lda: i32,
20206    b: &mut [f32],
20207    ldb: i32,
20208    tola: f32,
20209    tolb: f32,
20210    k: &mut i32,
20211    l: &mut i32,
20212    u: &mut [f32],
20213    ldu: i32,
20214    v: &mut [f32],
20215    ldv: i32,
20216    q: &mut [f32],
20217    ldq: i32,
20218    iwork: &mut [i32],
20219    tau: &mut [f32],
20220    work: &mut [f32],
20221    info: &mut i32,
20222) {
20223    ffi::sggsvp_(
20224        &(jobu as c_char),
20225        &(jobv as c_char),
20226        &(jobq as c_char),
20227        &m,
20228        &p,
20229        &n,
20230        a.as_mut_ptr(),
20231        &lda,
20232        b.as_mut_ptr(),
20233        &ldb,
20234        &tola,
20235        &tolb,
20236        k,
20237        l,
20238        u.as_mut_ptr(),
20239        &ldu,
20240        v.as_mut_ptr(),
20241        &ldv,
20242        q.as_mut_ptr(),
20243        &ldq,
20244        iwork.as_mut_ptr(),
20245        tau.as_mut_ptr(),
20246        work.as_mut_ptr(),
20247        info,
20248    )
20249}
20250
20251#[inline]
20252pub unsafe fn dggsvp(
20253    jobu: u8,
20254    jobv: u8,
20255    jobq: u8,
20256    m: i32,
20257    p: i32,
20258    n: i32,
20259    a: &mut [f64],
20260    lda: i32,
20261    b: &mut [f64],
20262    ldb: i32,
20263    tola: f64,
20264    tolb: f64,
20265    k: &mut i32,
20266    l: &mut i32,
20267    u: &mut [f64],
20268    ldu: i32,
20269    v: &mut [f64],
20270    ldv: i32,
20271    q: &mut [f64],
20272    ldq: i32,
20273    iwork: &mut [i32],
20274    tau: &mut [f64],
20275    work: &mut [f64],
20276    info: &mut i32,
20277) {
20278    ffi::dggsvp_(
20279        &(jobu as c_char),
20280        &(jobv as c_char),
20281        &(jobq as c_char),
20282        &m,
20283        &p,
20284        &n,
20285        a.as_mut_ptr(),
20286        &lda,
20287        b.as_mut_ptr(),
20288        &ldb,
20289        &tola,
20290        &tolb,
20291        k,
20292        l,
20293        u.as_mut_ptr(),
20294        &ldu,
20295        v.as_mut_ptr(),
20296        &ldv,
20297        q.as_mut_ptr(),
20298        &ldq,
20299        iwork.as_mut_ptr(),
20300        tau.as_mut_ptr(),
20301        work.as_mut_ptr(),
20302        info,
20303    )
20304}
20305
20306#[inline]
20307pub unsafe fn cggsvp(
20308    jobu: u8,
20309    jobv: u8,
20310    jobq: u8,
20311    m: i32,
20312    p: i32,
20313    n: i32,
20314    a: &mut [c32],
20315    lda: i32,
20316    b: &mut [c32],
20317    ldb: i32,
20318    tola: f32,
20319    tolb: f32,
20320    k: &mut i32,
20321    l: &mut i32,
20322    u: &mut [c32],
20323    ldu: i32,
20324    v: &mut [c32],
20325    ldv: i32,
20326    q: &mut [c32],
20327    ldq: i32,
20328    iwork: &mut [i32],
20329    rwork: &mut [f32],
20330    tau: &mut [c32],
20331    work: &mut [c32],
20332    info: &mut i32,
20333) {
20334    ffi::cggsvp_(
20335        &(jobu as c_char),
20336        &(jobv as c_char),
20337        &(jobq as c_char),
20338        &m,
20339        &p,
20340        &n,
20341        a.as_mut_ptr() as *mut _,
20342        &lda,
20343        b.as_mut_ptr() as *mut _,
20344        &ldb,
20345        &tola,
20346        &tolb,
20347        k,
20348        l,
20349        u.as_mut_ptr() as *mut _,
20350        &ldu,
20351        v.as_mut_ptr() as *mut _,
20352        &ldv,
20353        q.as_mut_ptr() as *mut _,
20354        &ldq,
20355        iwork.as_mut_ptr(),
20356        rwork.as_mut_ptr(),
20357        tau.as_mut_ptr() as *mut _,
20358        work.as_mut_ptr() as *mut _,
20359        info,
20360    )
20361}
20362
20363#[inline]
20364pub unsafe fn zggsvp(
20365    jobu: u8,
20366    jobv: u8,
20367    jobq: u8,
20368    m: i32,
20369    p: i32,
20370    n: i32,
20371    a: &mut [c64],
20372    lda: i32,
20373    b: &mut [c64],
20374    ldb: i32,
20375    tola: f64,
20376    tolb: f64,
20377    k: &mut i32,
20378    l: &mut i32,
20379    u: &mut [c64],
20380    ldu: i32,
20381    v: &mut [c64],
20382    ldv: i32,
20383    q: &mut [c64],
20384    ldq: i32,
20385    iwork: &mut [i32],
20386    rwork: &mut [f64],
20387    tau: &mut [c64],
20388    work: &mut [c64],
20389    info: &mut i32,
20390) {
20391    ffi::zggsvp_(
20392        &(jobu as c_char),
20393        &(jobv as c_char),
20394        &(jobq as c_char),
20395        &m,
20396        &p,
20397        &n,
20398        a.as_mut_ptr() as *mut _,
20399        &lda,
20400        b.as_mut_ptr() as *mut _,
20401        &ldb,
20402        &tola,
20403        &tolb,
20404        k,
20405        l,
20406        u.as_mut_ptr() as *mut _,
20407        &ldu,
20408        v.as_mut_ptr() as *mut _,
20409        &ldv,
20410        q.as_mut_ptr() as *mut _,
20411        &ldq,
20412        iwork.as_mut_ptr(),
20413        rwork.as_mut_ptr(),
20414        tau.as_mut_ptr() as *mut _,
20415        work.as_mut_ptr() as *mut _,
20416        info,
20417    )
20418}
20419
20420#[inline]
20421pub unsafe fn sggsvp3(
20422    jobu: u8,
20423    jobv: u8,
20424    jobq: u8,
20425    m: i32,
20426    p: i32,
20427    n: i32,
20428    a: &mut [f32],
20429    lda: i32,
20430    b: &mut [f32],
20431    ldb: i32,
20432    tola: f32,
20433    tolb: f32,
20434    k: &mut i32,
20435    l: &mut i32,
20436    u: &mut [f32],
20437    ldu: i32,
20438    v: &mut [f32],
20439    ldv: i32,
20440    q: &mut [f32],
20441    ldq: i32,
20442    iwork: &mut [i32],
20443    tau: &mut [f32],
20444    work: &mut [f32],
20445    lwork: i32,
20446    info: &mut i32,
20447) {
20448    ffi::sggsvp3_(
20449        &(jobu as c_char),
20450        &(jobv as c_char),
20451        &(jobq as c_char),
20452        &m,
20453        &p,
20454        &n,
20455        a.as_mut_ptr(),
20456        &lda,
20457        b.as_mut_ptr(),
20458        &ldb,
20459        &tola,
20460        &tolb,
20461        k,
20462        l,
20463        u.as_mut_ptr(),
20464        &ldu,
20465        v.as_mut_ptr(),
20466        &ldv,
20467        q.as_mut_ptr(),
20468        &ldq,
20469        iwork.as_mut_ptr(),
20470        tau.as_mut_ptr(),
20471        work.as_mut_ptr(),
20472        &lwork,
20473        info,
20474    )
20475}
20476
20477#[inline]
20478pub unsafe fn dggsvp3(
20479    jobu: u8,
20480    jobv: u8,
20481    jobq: u8,
20482    m: i32,
20483    p: i32,
20484    n: i32,
20485    a: &mut [f64],
20486    lda: i32,
20487    b: &mut [f64],
20488    ldb: i32,
20489    tola: f64,
20490    tolb: f64,
20491    k: &mut i32,
20492    l: &mut i32,
20493    u: &mut [f64],
20494    ldu: i32,
20495    v: &mut [f64],
20496    ldv: i32,
20497    q: &mut [f64],
20498    ldq: i32,
20499    iwork: &mut [i32],
20500    tau: &mut [f64],
20501    work: &mut [f64],
20502    lwork: i32,
20503    info: &mut i32,
20504) {
20505    ffi::dggsvp3_(
20506        &(jobu as c_char),
20507        &(jobv as c_char),
20508        &(jobq as c_char),
20509        &m,
20510        &p,
20511        &n,
20512        a.as_mut_ptr(),
20513        &lda,
20514        b.as_mut_ptr(),
20515        &ldb,
20516        &tola,
20517        &tolb,
20518        k,
20519        l,
20520        u.as_mut_ptr(),
20521        &ldu,
20522        v.as_mut_ptr(),
20523        &ldv,
20524        q.as_mut_ptr(),
20525        &ldq,
20526        iwork.as_mut_ptr(),
20527        tau.as_mut_ptr(),
20528        work.as_mut_ptr(),
20529        &lwork,
20530        info,
20531    )
20532}
20533
20534#[inline]
20535pub unsafe fn cggsvp3(
20536    jobu: u8,
20537    jobv: u8,
20538    jobq: u8,
20539    m: i32,
20540    p: i32,
20541    n: i32,
20542    a: &mut [c32],
20543    lda: i32,
20544    b: &mut [c32],
20545    ldb: i32,
20546    tola: f32,
20547    tolb: f32,
20548    k: &mut i32,
20549    l: &mut i32,
20550    u: &mut [c32],
20551    ldu: i32,
20552    v: &mut [c32],
20553    ldv: i32,
20554    q: &mut [c32],
20555    ldq: i32,
20556    iwork: &mut [i32],
20557    rwork: &mut [f32],
20558    tau: &mut [c32],
20559    work: &mut [c32],
20560    lwork: i32,
20561    info: &mut i32,
20562) {
20563    ffi::cggsvp3_(
20564        &(jobu as c_char),
20565        &(jobv as c_char),
20566        &(jobq as c_char),
20567        &m,
20568        &p,
20569        &n,
20570        a.as_mut_ptr() as *mut _,
20571        &lda,
20572        b.as_mut_ptr() as *mut _,
20573        &ldb,
20574        &tola,
20575        &tolb,
20576        k,
20577        l,
20578        u.as_mut_ptr() as *mut _,
20579        &ldu,
20580        v.as_mut_ptr() as *mut _,
20581        &ldv,
20582        q.as_mut_ptr() as *mut _,
20583        &ldq,
20584        iwork.as_mut_ptr(),
20585        rwork.as_mut_ptr(),
20586        tau.as_mut_ptr() as *mut _,
20587        work.as_mut_ptr() as *mut _,
20588        &lwork,
20589        info,
20590    )
20591}
20592
20593#[inline]
20594pub unsafe fn zggsvp3(
20595    jobu: u8,
20596    jobv: u8,
20597    jobq: u8,
20598    m: i32,
20599    p: i32,
20600    n: i32,
20601    a: &mut [c64],
20602    lda: i32,
20603    b: &mut [c64],
20604    ldb: i32,
20605    tola: f64,
20606    tolb: f64,
20607    k: &mut i32,
20608    l: &mut i32,
20609    u: &mut [c64],
20610    ldu: i32,
20611    v: &mut [c64],
20612    ldv: i32,
20613    q: &mut [c64],
20614    ldq: i32,
20615    iwork: &mut [i32],
20616    rwork: &mut [f64],
20617    tau: &mut [c64],
20618    work: &mut [c64],
20619    lwork: i32,
20620    info: &mut i32,
20621) {
20622    ffi::zggsvp3_(
20623        &(jobu as c_char),
20624        &(jobv as c_char),
20625        &(jobq as c_char),
20626        &m,
20627        &p,
20628        &n,
20629        a.as_mut_ptr() as *mut _,
20630        &lda,
20631        b.as_mut_ptr() as *mut _,
20632        &ldb,
20633        &tola,
20634        &tolb,
20635        k,
20636        l,
20637        u.as_mut_ptr() as *mut _,
20638        &ldu,
20639        v.as_mut_ptr() as *mut _,
20640        &ldv,
20641        q.as_mut_ptr() as *mut _,
20642        &ldq,
20643        iwork.as_mut_ptr(),
20644        rwork.as_mut_ptr(),
20645        tau.as_mut_ptr() as *mut _,
20646        work.as_mut_ptr() as *mut _,
20647        &lwork,
20648        info,
20649    )
20650}
20651
20652#[inline]
20653pub unsafe fn stgsja(
20654    jobu: u8,
20655    jobv: u8,
20656    jobq: u8,
20657    m: i32,
20658    p: i32,
20659    n: i32,
20660    k: i32,
20661    l: i32,
20662    a: &mut [f32],
20663    lda: i32,
20664    b: &mut [f32],
20665    ldb: i32,
20666    tola: f32,
20667    tolb: f32,
20668    alpha: &mut f32,
20669    beta: &mut f32,
20670    u: &mut [f32],
20671    ldu: i32,
20672    v: &mut [f32],
20673    ldv: i32,
20674    q: &mut [f32],
20675    ldq: i32,
20676    work: &mut [f32],
20677    ncycle: &mut [i32],
20678    info: &mut i32,
20679) {
20680    ffi::stgsja_(
20681        &(jobu as c_char),
20682        &(jobv as c_char),
20683        &(jobq as c_char),
20684        &m,
20685        &p,
20686        &n,
20687        &k,
20688        &l,
20689        a.as_mut_ptr(),
20690        &lda,
20691        b.as_mut_ptr(),
20692        &ldb,
20693        &tola,
20694        &tolb,
20695        alpha,
20696        beta,
20697        u.as_mut_ptr(),
20698        &ldu,
20699        v.as_mut_ptr(),
20700        &ldv,
20701        q.as_mut_ptr(),
20702        &ldq,
20703        work.as_mut_ptr(),
20704        ncycle.as_mut_ptr(),
20705        info,
20706    )
20707}
20708
20709#[inline]
20710pub unsafe fn dtgsja(
20711    jobu: u8,
20712    jobv: u8,
20713    jobq: u8,
20714    m: i32,
20715    p: i32,
20716    n: i32,
20717    k: i32,
20718    l: i32,
20719    a: &mut [f64],
20720    lda: i32,
20721    b: &mut [f64],
20722    ldb: i32,
20723    tola: f64,
20724    tolb: f64,
20725    alpha: &mut f64,
20726    beta: &mut f64,
20727    u: &mut [f64],
20728    ldu: i32,
20729    v: &mut [f64],
20730    ldv: i32,
20731    q: &mut [f64],
20732    ldq: i32,
20733    work: &mut [f64],
20734    ncycle: &mut [i32],
20735    info: &mut i32,
20736) {
20737    ffi::dtgsja_(
20738        &(jobu as c_char),
20739        &(jobv as c_char),
20740        &(jobq as c_char),
20741        &m,
20742        &p,
20743        &n,
20744        &k,
20745        &l,
20746        a.as_mut_ptr(),
20747        &lda,
20748        b.as_mut_ptr(),
20749        &ldb,
20750        &tola,
20751        &tolb,
20752        alpha,
20753        beta,
20754        u.as_mut_ptr(),
20755        &ldu,
20756        v.as_mut_ptr(),
20757        &ldv,
20758        q.as_mut_ptr(),
20759        &ldq,
20760        work.as_mut_ptr(),
20761        ncycle.as_mut_ptr(),
20762        info,
20763    )
20764}
20765
20766#[inline]
20767pub unsafe fn ctgsja(
20768    jobu: u8,
20769    jobv: u8,
20770    jobq: u8,
20771    m: i32,
20772    p: i32,
20773    n: i32,
20774    k: i32,
20775    l: i32,
20776    a: &mut [c32],
20777    lda: i32,
20778    b: &mut [c32],
20779    ldb: i32,
20780    tola: f32,
20781    tolb: f32,
20782    alpha: &mut f32,
20783    beta: &mut f32,
20784    u: &mut [c32],
20785    ldu: i32,
20786    v: &mut [c32],
20787    ldv: i32,
20788    q: &mut [c32],
20789    ldq: i32,
20790    work: &mut [c32],
20791    ncycle: &mut [i32],
20792    info: &mut i32,
20793) {
20794    ffi::ctgsja_(
20795        &(jobu as c_char),
20796        &(jobv as c_char),
20797        &(jobq as c_char),
20798        &m,
20799        &p,
20800        &n,
20801        &k,
20802        &l,
20803        a.as_mut_ptr() as *mut _,
20804        &lda,
20805        b.as_mut_ptr() as *mut _,
20806        &ldb,
20807        &tola,
20808        &tolb,
20809        alpha,
20810        beta,
20811        u.as_mut_ptr() as *mut _,
20812        &ldu,
20813        v.as_mut_ptr() as *mut _,
20814        &ldv,
20815        q.as_mut_ptr() as *mut _,
20816        &ldq,
20817        work.as_mut_ptr() as *mut _,
20818        ncycle.as_mut_ptr(),
20819        info,
20820    )
20821}
20822
20823#[inline]
20824pub unsafe fn ztgsja(
20825    jobu: u8,
20826    jobv: u8,
20827    jobq: u8,
20828    m: i32,
20829    p: i32,
20830    n: i32,
20831    k: i32,
20832    l: i32,
20833    a: &mut [c64],
20834    lda: i32,
20835    b: &mut [c64],
20836    ldb: i32,
20837    tola: f64,
20838    tolb: f64,
20839    alpha: &mut f64,
20840    beta: &mut f64,
20841    u: &mut [c64],
20842    ldu: i32,
20843    v: &mut [c64],
20844    ldv: i32,
20845    q: &mut [c64],
20846    ldq: i32,
20847    work: &mut [c64],
20848    ncycle: &mut [i32],
20849    info: &mut i32,
20850) {
20851    ffi::ztgsja_(
20852        &(jobu as c_char),
20853        &(jobv as c_char),
20854        &(jobq as c_char),
20855        &m,
20856        &p,
20857        &n,
20858        &k,
20859        &l,
20860        a.as_mut_ptr() as *mut _,
20861        &lda,
20862        b.as_mut_ptr() as *mut _,
20863        &ldb,
20864        &tola,
20865        &tolb,
20866        alpha,
20867        beta,
20868        u.as_mut_ptr() as *mut _,
20869        &ldu,
20870        v.as_mut_ptr() as *mut _,
20871        &ldv,
20872        q.as_mut_ptr() as *mut _,
20873        &ldq,
20874        work.as_mut_ptr() as *mut _,
20875        ncycle.as_mut_ptr(),
20876        info,
20877    )
20878}
20879
20880#[inline]
20881pub unsafe fn sgels(
20882    trans: u8,
20883    m: i32,
20884    n: i32,
20885    nrhs: i32,
20886    a: &mut [f32],
20887    lda: i32,
20888    b: &mut [f32],
20889    ldb: i32,
20890    work: &mut [f32],
20891    lwork: i32,
20892    info: &mut i32,
20893) {
20894    ffi::sgels_(
20895        &(trans as c_char),
20896        &m,
20897        &n,
20898        &nrhs,
20899        a.as_mut_ptr(),
20900        &lda,
20901        b.as_mut_ptr(),
20902        &ldb,
20903        work.as_mut_ptr(),
20904        &lwork,
20905        info,
20906    )
20907}
20908
20909#[inline]
20910pub unsafe fn dgels(
20911    trans: u8,
20912    m: i32,
20913    n: i32,
20914    nrhs: i32,
20915    a: &mut [f64],
20916    lda: i32,
20917    b: &mut [f64],
20918    ldb: i32,
20919    work: &mut [f64],
20920    lwork: i32,
20921    info: &mut i32,
20922) {
20923    ffi::dgels_(
20924        &(trans as c_char),
20925        &m,
20926        &n,
20927        &nrhs,
20928        a.as_mut_ptr(),
20929        &lda,
20930        b.as_mut_ptr(),
20931        &ldb,
20932        work.as_mut_ptr(),
20933        &lwork,
20934        info,
20935    )
20936}
20937
20938#[inline]
20939pub unsafe fn cgels(
20940    trans: u8,
20941    m: i32,
20942    n: i32,
20943    nrhs: i32,
20944    a: &mut [c32],
20945    lda: i32,
20946    b: &mut [c32],
20947    ldb: i32,
20948    work: &mut [c32],
20949    lwork: i32,
20950    info: &mut i32,
20951) {
20952    ffi::cgels_(
20953        &(trans as c_char),
20954        &m,
20955        &n,
20956        &nrhs,
20957        a.as_mut_ptr() as *mut _,
20958        &lda,
20959        b.as_mut_ptr() as *mut _,
20960        &ldb,
20961        work.as_mut_ptr() as *mut _,
20962        &lwork,
20963        info,
20964    )
20965}
20966
20967#[inline]
20968pub unsafe fn zgels(
20969    trans: u8,
20970    m: i32,
20971    n: i32,
20972    nrhs: i32,
20973    a: &mut [c64],
20974    lda: i32,
20975    b: &mut [c64],
20976    ldb: i32,
20977    work: &mut [c64],
20978    lwork: i32,
20979    info: &mut i32,
20980) {
20981    ffi::zgels_(
20982        &(trans as c_char),
20983        &m,
20984        &n,
20985        &nrhs,
20986        a.as_mut_ptr() as *mut _,
20987        &lda,
20988        b.as_mut_ptr() as *mut _,
20989        &ldb,
20990        work.as_mut_ptr() as *mut _,
20991        &lwork,
20992        info,
20993    )
20994}
20995
20996#[inline]
20997pub unsafe fn sgelsy(
20998    m: i32,
20999    n: i32,
21000    nrhs: i32,
21001    a: &mut [f32],
21002    lda: i32,
21003    b: &mut [f32],
21004    ldb: i32,
21005    jpvt: &mut [i32],
21006    rcond: f32,
21007    rank: &mut i32,
21008    work: &mut [f32],
21009    lwork: i32,
21010    info: &mut i32,
21011) {
21012    ffi::sgelsy_(
21013        &m,
21014        &n,
21015        &nrhs,
21016        a.as_mut_ptr(),
21017        &lda,
21018        b.as_mut_ptr(),
21019        &ldb,
21020        jpvt.as_mut_ptr(),
21021        &rcond,
21022        rank,
21023        work.as_mut_ptr(),
21024        &lwork,
21025        info,
21026    )
21027}
21028
21029#[inline]
21030pub unsafe fn dgelsy(
21031    m: i32,
21032    n: i32,
21033    nrhs: i32,
21034    a: &mut [f64],
21035    lda: i32,
21036    b: &mut [f64],
21037    ldb: i32,
21038    jpvt: &mut [i32],
21039    rcond: f64,
21040    rank: &mut i32,
21041    work: &mut [f64],
21042    lwork: i32,
21043    info: &mut i32,
21044) {
21045    ffi::dgelsy_(
21046        &m,
21047        &n,
21048        &nrhs,
21049        a.as_mut_ptr(),
21050        &lda,
21051        b.as_mut_ptr(),
21052        &ldb,
21053        jpvt.as_mut_ptr(),
21054        &rcond,
21055        rank,
21056        work.as_mut_ptr(),
21057        &lwork,
21058        info,
21059    )
21060}
21061
21062#[inline]
21063pub unsafe fn cgelsy(
21064    m: i32,
21065    n: i32,
21066    nrhs: i32,
21067    a: &mut [c32],
21068    lda: i32,
21069    b: &mut [c32],
21070    ldb: i32,
21071    jpvt: &mut [i32],
21072    rcond: f32,
21073    rank: &mut i32,
21074    work: &mut [c32],
21075    lwork: i32,
21076    rwork: &mut [f32],
21077    info: &mut i32,
21078) {
21079    ffi::cgelsy_(
21080        &m,
21081        &n,
21082        &nrhs,
21083        a.as_mut_ptr() as *mut _,
21084        &lda,
21085        b.as_mut_ptr() as *mut _,
21086        &ldb,
21087        jpvt.as_mut_ptr(),
21088        &rcond,
21089        rank,
21090        work.as_mut_ptr() as *mut _,
21091        &lwork,
21092        rwork.as_mut_ptr(),
21093        info,
21094    )
21095}
21096
21097#[inline]
21098pub unsafe fn zgelsy(
21099    m: i32,
21100    n: i32,
21101    nrhs: i32,
21102    a: &mut [c64],
21103    lda: i32,
21104    b: &mut [c64],
21105    ldb: i32,
21106    jpvt: &mut [i32],
21107    rcond: f64,
21108    rank: &mut i32,
21109    work: &mut [c64],
21110    lwork: i32,
21111    rwork: &mut [f64],
21112    info: &mut i32,
21113) {
21114    ffi::zgelsy_(
21115        &m,
21116        &n,
21117        &nrhs,
21118        a.as_mut_ptr() as *mut _,
21119        &lda,
21120        b.as_mut_ptr() as *mut _,
21121        &ldb,
21122        jpvt.as_mut_ptr(),
21123        &rcond,
21124        rank,
21125        work.as_mut_ptr() as *mut _,
21126        &lwork,
21127        rwork.as_mut_ptr(),
21128        info,
21129    )
21130}
21131
21132#[inline]
21133pub unsafe fn sgelss(
21134    m: i32,
21135    n: i32,
21136    nrhs: i32,
21137    a: &mut [f32],
21138    lda: i32,
21139    b: &mut [f32],
21140    ldb: i32,
21141    s: &mut [f32],
21142    rcond: f32,
21143    rank: &mut i32,
21144    work: &mut [f32],
21145    lwork: i32,
21146    info: &mut i32,
21147) {
21148    ffi::sgelss_(
21149        &m,
21150        &n,
21151        &nrhs,
21152        a.as_mut_ptr(),
21153        &lda,
21154        b.as_mut_ptr(),
21155        &ldb,
21156        s.as_mut_ptr(),
21157        &rcond,
21158        rank,
21159        work.as_mut_ptr(),
21160        &lwork,
21161        info,
21162    )
21163}
21164
21165#[inline]
21166pub unsafe fn dgelss(
21167    m: i32,
21168    n: i32,
21169    nrhs: i32,
21170    a: &mut [f64],
21171    lda: i32,
21172    b: &mut [f64],
21173    ldb: i32,
21174    s: &mut [f64],
21175    rcond: f64,
21176    rank: &mut i32,
21177    work: &mut [f64],
21178    lwork: i32,
21179    info: &mut i32,
21180) {
21181    ffi::dgelss_(
21182        &m,
21183        &n,
21184        &nrhs,
21185        a.as_mut_ptr(),
21186        &lda,
21187        b.as_mut_ptr(),
21188        &ldb,
21189        s.as_mut_ptr(),
21190        &rcond,
21191        rank,
21192        work.as_mut_ptr(),
21193        &lwork,
21194        info,
21195    )
21196}
21197
21198#[inline]
21199pub unsafe fn cgelss(
21200    m: i32,
21201    n: i32,
21202    nrhs: i32,
21203    a: &mut [c32],
21204    lda: i32,
21205    b: &mut [c32],
21206    ldb: i32,
21207    s: &mut [f32],
21208    rcond: f32,
21209    rank: &mut i32,
21210    work: &mut [c32],
21211    lwork: i32,
21212    rwork: &mut [f32],
21213    info: &mut i32,
21214) {
21215    ffi::cgelss_(
21216        &m,
21217        &n,
21218        &nrhs,
21219        a.as_mut_ptr() as *mut _,
21220        &lda,
21221        b.as_mut_ptr() as *mut _,
21222        &ldb,
21223        s.as_mut_ptr(),
21224        &rcond,
21225        rank,
21226        work.as_mut_ptr() as *mut _,
21227        &lwork,
21228        rwork.as_mut_ptr(),
21229        info,
21230    )
21231}
21232
21233#[inline]
21234pub unsafe fn zgelss(
21235    m: i32,
21236    n: i32,
21237    nrhs: i32,
21238    a: &mut [c64],
21239    lda: i32,
21240    b: &mut [c64],
21241    ldb: i32,
21242    s: &mut [f64],
21243    rcond: f64,
21244    rank: &mut i32,
21245    work: &mut [c64],
21246    lwork: i32,
21247    rwork: &mut [f64],
21248    info: &mut i32,
21249) {
21250    ffi::zgelss_(
21251        &m,
21252        &n,
21253        &nrhs,
21254        a.as_mut_ptr() as *mut _,
21255        &lda,
21256        b.as_mut_ptr() as *mut _,
21257        &ldb,
21258        s.as_mut_ptr(),
21259        &rcond,
21260        rank,
21261        work.as_mut_ptr() as *mut _,
21262        &lwork,
21263        rwork.as_mut_ptr(),
21264        info,
21265    )
21266}
21267
21268#[inline]
21269pub unsafe fn sgelsd(
21270    m: i32,
21271    n: i32,
21272    nrhs: i32,
21273    a: &[f32],
21274    lda: i32,
21275    b: &mut [f32],
21276    ldb: i32,
21277    s: &mut [f32],
21278    rcond: f32,
21279    rank: &mut i32,
21280    work: &mut [f32],
21281    lwork: i32,
21282    iwork: &mut [i32],
21283    info: &mut i32,
21284) {
21285    ffi::sgelsd_(
21286        &m,
21287        &n,
21288        &nrhs,
21289        a.as_ptr(),
21290        &lda,
21291        b.as_mut_ptr(),
21292        &ldb,
21293        s.as_mut_ptr(),
21294        &rcond,
21295        rank,
21296        work.as_mut_ptr(),
21297        &lwork,
21298        iwork.as_mut_ptr(),
21299        info,
21300    )
21301}
21302
21303#[inline]
21304pub unsafe fn dgelsd(
21305    m: i32,
21306    n: i32,
21307    nrhs: i32,
21308    a: &[f64],
21309    lda: i32,
21310    b: &mut [f64],
21311    ldb: i32,
21312    s: &mut [f64],
21313    rcond: f64,
21314    rank: &mut i32,
21315    work: &mut [f64],
21316    lwork: i32,
21317    iwork: &mut [i32],
21318    info: &mut i32,
21319) {
21320    ffi::dgelsd_(
21321        &m,
21322        &n,
21323        &nrhs,
21324        a.as_ptr(),
21325        &lda,
21326        b.as_mut_ptr(),
21327        &ldb,
21328        s.as_mut_ptr(),
21329        &rcond,
21330        rank,
21331        work.as_mut_ptr(),
21332        &lwork,
21333        iwork.as_mut_ptr(),
21334        info,
21335    )
21336}
21337
21338#[inline]
21339pub unsafe fn cgelsd(
21340    m: i32,
21341    n: i32,
21342    nrhs: i32,
21343    a: &[c32],
21344    lda: i32,
21345    b: &mut [c32],
21346    ldb: i32,
21347    s: &mut [f32],
21348    rcond: f32,
21349    rank: &mut i32,
21350    work: &mut [c32],
21351    lwork: i32,
21352    rwork: &mut [f32],
21353    iwork: &mut [i32],
21354    info: &mut i32,
21355) {
21356    ffi::cgelsd_(
21357        &m,
21358        &n,
21359        &nrhs,
21360        a.as_ptr() as *const _,
21361        &lda,
21362        b.as_mut_ptr() as *mut _,
21363        &ldb,
21364        s.as_mut_ptr(),
21365        &rcond,
21366        rank,
21367        work.as_mut_ptr() as *mut _,
21368        &lwork,
21369        rwork.as_mut_ptr(),
21370        iwork.as_mut_ptr(),
21371        info,
21372    )
21373}
21374
21375#[inline]
21376pub unsafe fn zgelsd(
21377    m: i32,
21378    n: i32,
21379    nrhs: i32,
21380    a: &[c64],
21381    lda: i32,
21382    b: &mut [c64],
21383    ldb: i32,
21384    s: &mut [f64],
21385    rcond: f64,
21386    rank: &mut i32,
21387    work: &mut [c64],
21388    lwork: i32,
21389    rwork: &mut [f64],
21390    iwork: &mut [i32],
21391    info: &mut i32,
21392) {
21393    ffi::zgelsd_(
21394        &m,
21395        &n,
21396        &nrhs,
21397        a.as_ptr() as *const _,
21398        &lda,
21399        b.as_mut_ptr() as *mut _,
21400        &ldb,
21401        s.as_mut_ptr(),
21402        &rcond,
21403        rank,
21404        work.as_mut_ptr() as *mut _,
21405        &lwork,
21406        rwork.as_mut_ptr(),
21407        iwork.as_mut_ptr(),
21408        info,
21409    )
21410}
21411
21412#[inline]
21413pub unsafe fn sgglse(
21414    m: i32,
21415    n: i32,
21416    p: i32,
21417    a: &mut [f32],
21418    lda: i32,
21419    b: &mut [f32],
21420    ldb: i32,
21421    c: &mut [f32],
21422    d: &mut [f32],
21423    x: &mut [f32],
21424    work: &mut [f32],
21425    lwork: i32,
21426    info: &mut i32,
21427) {
21428    ffi::sgglse_(
21429        &m,
21430        &n,
21431        &p,
21432        a.as_mut_ptr(),
21433        &lda,
21434        b.as_mut_ptr(),
21435        &ldb,
21436        c.as_mut_ptr(),
21437        d.as_mut_ptr(),
21438        x.as_mut_ptr(),
21439        work.as_mut_ptr(),
21440        &lwork,
21441        info,
21442    )
21443}
21444
21445#[inline]
21446pub unsafe fn dgglse(
21447    m: i32,
21448    n: i32,
21449    p: i32,
21450    a: &mut [f64],
21451    lda: i32,
21452    b: &mut [f64],
21453    ldb: i32,
21454    c: &mut [f64],
21455    d: &mut [f64],
21456    x: &mut [f64],
21457    work: &mut [f64],
21458    lwork: i32,
21459    info: &mut i32,
21460) {
21461    ffi::dgglse_(
21462        &m,
21463        &n,
21464        &p,
21465        a.as_mut_ptr(),
21466        &lda,
21467        b.as_mut_ptr(),
21468        &ldb,
21469        c.as_mut_ptr(),
21470        d.as_mut_ptr(),
21471        x.as_mut_ptr(),
21472        work.as_mut_ptr(),
21473        &lwork,
21474        info,
21475    )
21476}
21477
21478#[inline]
21479pub unsafe fn cgglse(
21480    m: i32,
21481    n: i32,
21482    p: i32,
21483    a: &mut [c32],
21484    lda: i32,
21485    b: &mut [c32],
21486    ldb: i32,
21487    c: &mut [c32],
21488    d: &mut [c32],
21489    x: &mut [c32],
21490    work: &mut [c32],
21491    lwork: i32,
21492    info: &mut i32,
21493) {
21494    ffi::cgglse_(
21495        &m,
21496        &n,
21497        &p,
21498        a.as_mut_ptr() as *mut _,
21499        &lda,
21500        b.as_mut_ptr() as *mut _,
21501        &ldb,
21502        c.as_mut_ptr() as *mut _,
21503        d.as_mut_ptr() as *mut _,
21504        x.as_mut_ptr() as *mut _,
21505        work.as_mut_ptr() as *mut _,
21506        &lwork,
21507        info,
21508    )
21509}
21510
21511#[inline]
21512pub unsafe fn zgglse(
21513    m: i32,
21514    n: i32,
21515    p: i32,
21516    a: &mut [c64],
21517    lda: i32,
21518    b: &mut [c64],
21519    ldb: i32,
21520    c: &mut [c64],
21521    d: &mut [c64],
21522    x: &mut [c64],
21523    work: &mut [c64],
21524    lwork: i32,
21525    info: &mut i32,
21526) {
21527    ffi::zgglse_(
21528        &m,
21529        &n,
21530        &p,
21531        a.as_mut_ptr() as *mut _,
21532        &lda,
21533        b.as_mut_ptr() as *mut _,
21534        &ldb,
21535        c.as_mut_ptr() as *mut _,
21536        d.as_mut_ptr() as *mut _,
21537        x.as_mut_ptr() as *mut _,
21538        work.as_mut_ptr() as *mut _,
21539        &lwork,
21540        info,
21541    )
21542}
21543
21544#[inline]
21545pub unsafe fn sggglm(
21546    n: i32,
21547    m: i32,
21548    p: i32,
21549    a: &mut [f32],
21550    lda: i32,
21551    b: &mut [f32],
21552    ldb: i32,
21553    d: &mut [f32],
21554    x: &mut [f32],
21555    y: &mut [f32],
21556    work: &mut [f32],
21557    lwork: i32,
21558    info: &mut i32,
21559) {
21560    ffi::sggglm_(
21561        &n,
21562        &m,
21563        &p,
21564        a.as_mut_ptr(),
21565        &lda,
21566        b.as_mut_ptr(),
21567        &ldb,
21568        d.as_mut_ptr(),
21569        x.as_mut_ptr(),
21570        y.as_mut_ptr(),
21571        work.as_mut_ptr(),
21572        &lwork,
21573        info,
21574    )
21575}
21576
21577#[inline]
21578pub unsafe fn dggglm(
21579    n: i32,
21580    m: i32,
21581    p: i32,
21582    a: &mut [f64],
21583    lda: i32,
21584    b: &mut [f64],
21585    ldb: i32,
21586    d: &mut [f64],
21587    x: &mut [f64],
21588    y: &mut [f64],
21589    work: &mut [f64],
21590    lwork: i32,
21591    info: &mut i32,
21592) {
21593    ffi::dggglm_(
21594        &n,
21595        &m,
21596        &p,
21597        a.as_mut_ptr(),
21598        &lda,
21599        b.as_mut_ptr(),
21600        &ldb,
21601        d.as_mut_ptr(),
21602        x.as_mut_ptr(),
21603        y.as_mut_ptr(),
21604        work.as_mut_ptr(),
21605        &lwork,
21606        info,
21607    )
21608}
21609
21610#[inline]
21611pub unsafe fn cggglm(
21612    n: i32,
21613    m: i32,
21614    p: i32,
21615    a: &mut [c32],
21616    lda: i32,
21617    b: &mut [c32],
21618    ldb: i32,
21619    d: &mut [c32],
21620    x: &mut [c32],
21621    y: &mut [c32],
21622    work: &mut [c32],
21623    lwork: i32,
21624    info: &mut i32,
21625) {
21626    ffi::cggglm_(
21627        &n,
21628        &m,
21629        &p,
21630        a.as_mut_ptr() as *mut _,
21631        &lda,
21632        b.as_mut_ptr() as *mut _,
21633        &ldb,
21634        d.as_mut_ptr() as *mut _,
21635        x.as_mut_ptr() as *mut _,
21636        y.as_mut_ptr() as *mut _,
21637        work.as_mut_ptr() as *mut _,
21638        &lwork,
21639        info,
21640    )
21641}
21642
21643#[inline]
21644pub unsafe fn zggglm(
21645    n: i32,
21646    m: i32,
21647    p: i32,
21648    a: &mut [c64],
21649    lda: i32,
21650    b: &mut [c64],
21651    ldb: i32,
21652    d: &mut [c64],
21653    x: &mut [c64],
21654    y: &mut [c64],
21655    work: &mut [c64],
21656    lwork: i32,
21657    info: &mut i32,
21658) {
21659    ffi::zggglm_(
21660        &n,
21661        &m,
21662        &p,
21663        a.as_mut_ptr() as *mut _,
21664        &lda,
21665        b.as_mut_ptr() as *mut _,
21666        &ldb,
21667        d.as_mut_ptr() as *mut _,
21668        x.as_mut_ptr() as *mut _,
21669        y.as_mut_ptr() as *mut _,
21670        work.as_mut_ptr() as *mut _,
21671        &lwork,
21672        info,
21673    )
21674}
21675
21676#[inline]
21677pub unsafe fn ssyev(
21678    jobz: u8,
21679    uplo: u8,
21680    n: i32,
21681    a: &mut [f32],
21682    lda: i32,
21683    w: &mut [f32],
21684    work: &mut [f32],
21685    lwork: i32,
21686    info: &mut i32,
21687) {
21688    ffi::ssyev_(
21689        &(jobz as c_char),
21690        &(uplo as c_char),
21691        &n,
21692        a.as_mut_ptr(),
21693        &lda,
21694        w.as_mut_ptr(),
21695        work.as_mut_ptr(),
21696        &lwork,
21697        info,
21698    )
21699}
21700
21701#[inline]
21702pub unsafe fn dsyev(
21703    jobz: u8,
21704    uplo: u8,
21705    n: i32,
21706    a: &mut [f64],
21707    lda: i32,
21708    w: &mut [f64],
21709    work: &mut [f64],
21710    lwork: i32,
21711    info: &mut i32,
21712) {
21713    ffi::dsyev_(
21714        &(jobz as c_char),
21715        &(uplo as c_char),
21716        &n,
21717        a.as_mut_ptr(),
21718        &lda,
21719        w.as_mut_ptr(),
21720        work.as_mut_ptr(),
21721        &lwork,
21722        info,
21723    )
21724}
21725
21726#[inline]
21727pub unsafe fn cheev(
21728    jobz: u8,
21729    uplo: u8,
21730    n: i32,
21731    a: &mut [c32],
21732    lda: i32,
21733    w: &mut [f32],
21734    work: &mut [c32],
21735    lwork: i32,
21736    rwork: &mut [f32],
21737    info: &mut i32,
21738) {
21739    ffi::cheev_(
21740        &(jobz as c_char),
21741        &(uplo as c_char),
21742        &n,
21743        a.as_mut_ptr() as *mut _,
21744        &lda,
21745        w.as_mut_ptr(),
21746        work.as_mut_ptr() as *mut _,
21747        &lwork,
21748        rwork.as_mut_ptr(),
21749        info,
21750    )
21751}
21752
21753#[inline]
21754pub unsafe fn zheev(
21755    jobz: u8,
21756    uplo: u8,
21757    n: i32,
21758    a: &mut [c64],
21759    lda: i32,
21760    w: &mut [f64],
21761    work: &mut [c64],
21762    lwork: i32,
21763    rwork: &mut [f64],
21764    info: &mut i32,
21765) {
21766    ffi::zheev_(
21767        &(jobz as c_char),
21768        &(uplo as c_char),
21769        &n,
21770        a.as_mut_ptr() as *mut _,
21771        &lda,
21772        w.as_mut_ptr(),
21773        work.as_mut_ptr() as *mut _,
21774        &lwork,
21775        rwork.as_mut_ptr(),
21776        info,
21777    )
21778}
21779
21780#[inline]
21781pub unsafe fn ssyevd(
21782    jobz: u8,
21783    uplo: u8,
21784    n: i32,
21785    a: &mut [f32],
21786    lda: i32,
21787    w: &mut [f32],
21788    work: &mut [f32],
21789    lwork: i32,
21790    iwork: &mut [i32],
21791    liwork: i32,
21792    info: &mut i32,
21793) {
21794    ffi::ssyevd_(
21795        &(jobz as c_char),
21796        &(uplo as c_char),
21797        &n,
21798        a.as_mut_ptr(),
21799        &lda,
21800        w.as_mut_ptr(),
21801        work.as_mut_ptr(),
21802        &lwork,
21803        iwork.as_mut_ptr(),
21804        &liwork,
21805        info,
21806    )
21807}
21808
21809#[inline]
21810pub unsafe fn dsyevd(
21811    jobz: u8,
21812    uplo: u8,
21813    n: i32,
21814    a: &mut [f64],
21815    lda: i32,
21816    w: &mut [f64],
21817    work: &mut [f64],
21818    lwork: i32,
21819    iwork: &mut [i32],
21820    liwork: i32,
21821    info: &mut i32,
21822) {
21823    ffi::dsyevd_(
21824        &(jobz as c_char),
21825        &(uplo as c_char),
21826        &n,
21827        a.as_mut_ptr(),
21828        &lda,
21829        w.as_mut_ptr(),
21830        work.as_mut_ptr(),
21831        &lwork,
21832        iwork.as_mut_ptr(),
21833        &liwork,
21834        info,
21835    )
21836}
21837
21838#[inline]
21839pub unsafe fn cheevd(
21840    jobz: u8,
21841    uplo: u8,
21842    n: i32,
21843    a: &mut [c32],
21844    lda: i32,
21845    w: &mut [f32],
21846    work: &mut [c32],
21847    lwork: i32,
21848    rwork: &mut [f32],
21849    lrwork: i32,
21850    iwork: &mut [i32],
21851    liwork: i32,
21852    info: &mut i32,
21853) {
21854    ffi::cheevd_(
21855        &(jobz as c_char),
21856        &(uplo as c_char),
21857        &n,
21858        a.as_mut_ptr() as *mut _,
21859        &lda,
21860        w.as_mut_ptr(),
21861        work.as_mut_ptr() as *mut _,
21862        &lwork,
21863        rwork.as_mut_ptr(),
21864        &lrwork,
21865        iwork.as_mut_ptr(),
21866        &liwork,
21867        info,
21868    )
21869}
21870
21871#[inline]
21872pub unsafe fn zheevd(
21873    jobz: u8,
21874    uplo: u8,
21875    n: i32,
21876    a: &mut [c64],
21877    lda: i32,
21878    w: &mut [f64],
21879    work: &mut [c64],
21880    lwork: i32,
21881    rwork: &mut [f64],
21882    lrwork: i32,
21883    iwork: &mut [i32],
21884    liwork: i32,
21885    info: &mut i32,
21886) {
21887    ffi::zheevd_(
21888        &(jobz as c_char),
21889        &(uplo as c_char),
21890        &n,
21891        a.as_mut_ptr() as *mut _,
21892        &lda,
21893        w.as_mut_ptr(),
21894        work.as_mut_ptr() as *mut _,
21895        &lwork,
21896        rwork.as_mut_ptr(),
21897        &lrwork,
21898        iwork.as_mut_ptr(),
21899        &liwork,
21900        info,
21901    )
21902}
21903
21904#[inline]
21905pub unsafe fn ssyevx(
21906    jobz: u8,
21907    range: u8,
21908    uplo: u8,
21909    n: i32,
21910    a: &mut [f32],
21911    lda: i32,
21912    vl: f32,
21913    vu: f32,
21914    il: i32,
21915    iu: i32,
21916    abstol: f32,
21917    m: &mut i32,
21918    w: &mut [f32],
21919    z: &mut [f32],
21920    ldz: i32,
21921    work: &mut [f32],
21922    lwork: i32,
21923    iwork: &mut [i32],
21924    ifail: &mut [i32],
21925    info: &mut i32,
21926) {
21927    ffi::ssyevx_(
21928        &(jobz as c_char),
21929        &(range as c_char),
21930        &(uplo as c_char),
21931        &n,
21932        a.as_mut_ptr(),
21933        &lda,
21934        &vl,
21935        &vu,
21936        &il,
21937        &iu,
21938        &abstol,
21939        m,
21940        w.as_mut_ptr(),
21941        z.as_mut_ptr(),
21942        &ldz,
21943        work.as_mut_ptr(),
21944        &lwork,
21945        iwork.as_mut_ptr(),
21946        ifail.as_mut_ptr(),
21947        info,
21948    )
21949}
21950
21951#[inline]
21952pub unsafe fn dsyevx(
21953    jobz: u8,
21954    range: u8,
21955    uplo: u8,
21956    n: i32,
21957    a: &mut [f64],
21958    lda: i32,
21959    vl: f64,
21960    vu: f64,
21961    il: i32,
21962    iu: i32,
21963    abstol: f64,
21964    m: &mut i32,
21965    w: &mut [f64],
21966    z: &mut [f64],
21967    ldz: i32,
21968    work: &mut [f64],
21969    lwork: i32,
21970    iwork: &mut [i32],
21971    ifail: &mut [i32],
21972    info: &mut i32,
21973) {
21974    ffi::dsyevx_(
21975        &(jobz as c_char),
21976        &(range as c_char),
21977        &(uplo as c_char),
21978        &n,
21979        a.as_mut_ptr(),
21980        &lda,
21981        &vl,
21982        &vu,
21983        &il,
21984        &iu,
21985        &abstol,
21986        m,
21987        w.as_mut_ptr(),
21988        z.as_mut_ptr(),
21989        &ldz,
21990        work.as_mut_ptr(),
21991        &lwork,
21992        iwork.as_mut_ptr(),
21993        ifail.as_mut_ptr(),
21994        info,
21995    )
21996}
21997
21998#[inline]
21999pub unsafe fn cheevx(
22000    jobz: u8,
22001    range: u8,
22002    uplo: u8,
22003    n: i32,
22004    a: &mut [c32],
22005    lda: i32,
22006    vl: f32,
22007    vu: f32,
22008    il: i32,
22009    iu: i32,
22010    abstol: f32,
22011    m: &mut i32,
22012    w: &mut [f32],
22013    z: &mut [c32],
22014    ldz: i32,
22015    work: &mut [c32],
22016    lwork: i32,
22017    rwork: &mut [f32],
22018    iwork: &mut [i32],
22019    ifail: &mut [i32],
22020    info: &mut i32,
22021) {
22022    ffi::cheevx_(
22023        &(jobz as c_char),
22024        &(range as c_char),
22025        &(uplo as c_char),
22026        &n,
22027        a.as_mut_ptr() as *mut _,
22028        &lda,
22029        &vl,
22030        &vu,
22031        &il,
22032        &iu,
22033        &abstol,
22034        m,
22035        w.as_mut_ptr(),
22036        z.as_mut_ptr() as *mut _,
22037        &ldz,
22038        work.as_mut_ptr() as *mut _,
22039        &lwork,
22040        rwork.as_mut_ptr(),
22041        iwork.as_mut_ptr(),
22042        ifail.as_mut_ptr(),
22043        info,
22044    )
22045}
22046
22047#[inline]
22048pub unsafe fn zheevx(
22049    jobz: u8,
22050    range: u8,
22051    uplo: u8,
22052    n: i32,
22053    a: &mut [c64],
22054    lda: i32,
22055    vl: f64,
22056    vu: f64,
22057    il: i32,
22058    iu: i32,
22059    abstol: f64,
22060    m: &mut i32,
22061    w: &mut [f64],
22062    z: &mut [c64],
22063    ldz: i32,
22064    work: &mut [c64],
22065    lwork: i32,
22066    rwork: &mut [f64],
22067    iwork: &mut [i32],
22068    ifail: &mut [i32],
22069    info: &mut i32,
22070) {
22071    ffi::zheevx_(
22072        &(jobz as c_char),
22073        &(range as c_char),
22074        &(uplo as c_char),
22075        &n,
22076        a.as_mut_ptr() as *mut _,
22077        &lda,
22078        &vl,
22079        &vu,
22080        &il,
22081        &iu,
22082        &abstol,
22083        m,
22084        w.as_mut_ptr(),
22085        z.as_mut_ptr() as *mut _,
22086        &ldz,
22087        work.as_mut_ptr() as *mut _,
22088        &lwork,
22089        rwork.as_mut_ptr(),
22090        iwork.as_mut_ptr(),
22091        ifail.as_mut_ptr(),
22092        info,
22093    )
22094}
22095
22096#[inline]
22097pub unsafe fn ssyevr(
22098    jobz: u8,
22099    range: u8,
22100    uplo: u8,
22101    n: i32,
22102    a: &mut [f32],
22103    lda: i32,
22104    vl: f32,
22105    vu: f32,
22106    il: i32,
22107    iu: i32,
22108    abstol: f32,
22109    m: &mut i32,
22110    w: &mut [f32],
22111    z: &mut [f32],
22112    ldz: i32,
22113    isuppz: &mut [i32],
22114    work: &mut [f32],
22115    lwork: i32,
22116    iwork: &mut [i32],
22117    liwork: i32,
22118    info: &mut i32,
22119) {
22120    ffi::ssyevr_(
22121        &(jobz as c_char),
22122        &(range as c_char),
22123        &(uplo as c_char),
22124        &n,
22125        a.as_mut_ptr(),
22126        &lda,
22127        &vl,
22128        &vu,
22129        &il,
22130        &iu,
22131        &abstol,
22132        m,
22133        w.as_mut_ptr(),
22134        z.as_mut_ptr(),
22135        &ldz,
22136        isuppz.as_mut_ptr(),
22137        work.as_mut_ptr(),
22138        &lwork,
22139        iwork.as_mut_ptr(),
22140        &liwork,
22141        info,
22142    )
22143}
22144
22145#[inline]
22146pub unsafe fn dsyevr(
22147    jobz: u8,
22148    range: u8,
22149    uplo: u8,
22150    n: i32,
22151    a: &mut [f64],
22152    lda: i32,
22153    vl: f64,
22154    vu: f64,
22155    il: i32,
22156    iu: i32,
22157    abstol: f64,
22158    m: &mut i32,
22159    w: &mut [f64],
22160    z: &mut [f64],
22161    ldz: i32,
22162    isuppz: &mut [i32],
22163    work: &mut [f64],
22164    lwork: i32,
22165    iwork: &mut [i32],
22166    liwork: i32,
22167    info: &mut i32,
22168) {
22169    ffi::dsyevr_(
22170        &(jobz as c_char),
22171        &(range as c_char),
22172        &(uplo as c_char),
22173        &n,
22174        a.as_mut_ptr(),
22175        &lda,
22176        &vl,
22177        &vu,
22178        &il,
22179        &iu,
22180        &abstol,
22181        m,
22182        w.as_mut_ptr(),
22183        z.as_mut_ptr(),
22184        &ldz,
22185        isuppz.as_mut_ptr(),
22186        work.as_mut_ptr(),
22187        &lwork,
22188        iwork.as_mut_ptr(),
22189        &liwork,
22190        info,
22191    )
22192}
22193
22194#[inline]
22195pub unsafe fn cheevr(
22196    jobz: u8,
22197    range: u8,
22198    uplo: u8,
22199    n: i32,
22200    a: &mut [c32],
22201    lda: i32,
22202    vl: f32,
22203    vu: f32,
22204    il: i32,
22205    iu: i32,
22206    abstol: f32,
22207    m: &mut i32,
22208    w: &mut [f32],
22209    z: &mut [c32],
22210    ldz: i32,
22211    isuppz: &mut [i32],
22212    work: &mut [c32],
22213    lwork: i32,
22214    rwork: &mut [f32],
22215    lrwork: i32,
22216    iwork: &mut [i32],
22217    liwork: i32,
22218    info: &mut i32,
22219) {
22220    ffi::cheevr_(
22221        &(jobz as c_char),
22222        &(range as c_char),
22223        &(uplo as c_char),
22224        &n,
22225        a.as_mut_ptr() as *mut _,
22226        &lda,
22227        &vl,
22228        &vu,
22229        &il,
22230        &iu,
22231        &abstol,
22232        m,
22233        w.as_mut_ptr(),
22234        z.as_mut_ptr() as *mut _,
22235        &ldz,
22236        isuppz.as_mut_ptr(),
22237        work.as_mut_ptr() as *mut _,
22238        &lwork,
22239        rwork.as_mut_ptr(),
22240        &lrwork,
22241        iwork.as_mut_ptr(),
22242        &liwork,
22243        info,
22244    )
22245}
22246
22247#[inline]
22248pub unsafe fn zheevr(
22249    jobz: u8,
22250    range: u8,
22251    uplo: u8,
22252    n: i32,
22253    a: &mut [c64],
22254    lda: i32,
22255    vl: f64,
22256    vu: f64,
22257    il: i32,
22258    iu: i32,
22259    abstol: f64,
22260    m: &mut i32,
22261    w: &mut [f64],
22262    z: &mut [c64],
22263    ldz: i32,
22264    isuppz: &mut [i32],
22265    work: &mut [c64],
22266    lwork: i32,
22267    rwork: &mut [f64],
22268    lrwork: i32,
22269    iwork: &mut [i32],
22270    liwork: i32,
22271    info: &mut i32,
22272) {
22273    ffi::zheevr_(
22274        &(jobz as c_char),
22275        &(range as c_char),
22276        &(uplo as c_char),
22277        &n,
22278        a.as_mut_ptr() as *mut _,
22279        &lda,
22280        &vl,
22281        &vu,
22282        &il,
22283        &iu,
22284        &abstol,
22285        m,
22286        w.as_mut_ptr(),
22287        z.as_mut_ptr() as *mut _,
22288        &ldz,
22289        isuppz.as_mut_ptr(),
22290        work.as_mut_ptr() as *mut _,
22291        &lwork,
22292        rwork.as_mut_ptr(),
22293        &lrwork,
22294        iwork.as_mut_ptr(),
22295        &liwork,
22296        info,
22297    )
22298}
22299
22300#[inline]
22301pub unsafe fn sspev(
22302    jobz: u8,
22303    uplo: u8,
22304    n: i32,
22305    ap: &mut [f32],
22306    w: &mut [f32],
22307    z: &mut [f32],
22308    ldz: i32,
22309    work: &mut [f32],
22310    info: &mut i32,
22311) {
22312    ffi::sspev_(
22313        &(jobz as c_char),
22314        &(uplo as c_char),
22315        &n,
22316        ap.as_mut_ptr(),
22317        w.as_mut_ptr(),
22318        z.as_mut_ptr(),
22319        &ldz,
22320        work.as_mut_ptr(),
22321        info,
22322    )
22323}
22324
22325#[inline]
22326pub unsafe fn dspev(
22327    jobz: u8,
22328    uplo: u8,
22329    n: i32,
22330    ap: &mut [f64],
22331    w: &mut [f64],
22332    z: &mut [f64],
22333    ldz: i32,
22334    work: &mut [f64],
22335    info: &mut i32,
22336) {
22337    ffi::dspev_(
22338        &(jobz as c_char),
22339        &(uplo as c_char),
22340        &n,
22341        ap.as_mut_ptr(),
22342        w.as_mut_ptr(),
22343        z.as_mut_ptr(),
22344        &ldz,
22345        work.as_mut_ptr(),
22346        info,
22347    )
22348}
22349
22350#[inline]
22351pub unsafe fn chpev(
22352    jobz: u8,
22353    uplo: u8,
22354    n: i32,
22355    ap: &mut [c32],
22356    w: &mut [f32],
22357    z: &mut [c32],
22358    ldz: i32,
22359    work: &mut [c32],
22360    rwork: &mut [f32],
22361    info: &mut i32,
22362) {
22363    ffi::chpev_(
22364        &(jobz as c_char),
22365        &(uplo as c_char),
22366        &n,
22367        ap.as_mut_ptr() as *mut _,
22368        w.as_mut_ptr(),
22369        z.as_mut_ptr() as *mut _,
22370        &ldz,
22371        work.as_mut_ptr() as *mut _,
22372        rwork.as_mut_ptr(),
22373        info,
22374    )
22375}
22376
22377#[inline]
22378pub unsafe fn zhpev(
22379    jobz: u8,
22380    uplo: u8,
22381    n: i32,
22382    ap: &mut [c64],
22383    w: &mut [f64],
22384    z: &mut [c64],
22385    ldz: i32,
22386    work: &mut [c64],
22387    rwork: &mut [f64],
22388    info: &mut i32,
22389) {
22390    ffi::zhpev_(
22391        &(jobz as c_char),
22392        &(uplo as c_char),
22393        &n,
22394        ap.as_mut_ptr() as *mut _,
22395        w.as_mut_ptr(),
22396        z.as_mut_ptr() as *mut _,
22397        &ldz,
22398        work.as_mut_ptr() as *mut _,
22399        rwork.as_mut_ptr(),
22400        info,
22401    )
22402}
22403
22404#[inline]
22405pub unsafe fn sspevd(
22406    jobz: u8,
22407    uplo: u8,
22408    n: i32,
22409    ap: &mut [f32],
22410    w: &mut [f32],
22411    z: &mut [f32],
22412    ldz: i32,
22413    work: &mut [f32],
22414    lwork: i32,
22415    iwork: &mut [i32],
22416    liwork: i32,
22417    info: &mut i32,
22418) {
22419    ffi::sspevd_(
22420        &(jobz as c_char),
22421        &(uplo as c_char),
22422        &n,
22423        ap.as_mut_ptr(),
22424        w.as_mut_ptr(),
22425        z.as_mut_ptr(),
22426        &ldz,
22427        work.as_mut_ptr(),
22428        &lwork,
22429        iwork.as_mut_ptr(),
22430        &liwork,
22431        info,
22432    )
22433}
22434
22435#[inline]
22436pub unsafe fn dspevd(
22437    jobz: u8,
22438    uplo: u8,
22439    n: i32,
22440    ap: &mut [f64],
22441    w: &mut [f64],
22442    z: &mut [f64],
22443    ldz: i32,
22444    work: &mut [f64],
22445    lwork: i32,
22446    iwork: &mut [i32],
22447    liwork: i32,
22448    info: &mut i32,
22449) {
22450    ffi::dspevd_(
22451        &(jobz as c_char),
22452        &(uplo as c_char),
22453        &n,
22454        ap.as_mut_ptr(),
22455        w.as_mut_ptr(),
22456        z.as_mut_ptr(),
22457        &ldz,
22458        work.as_mut_ptr(),
22459        &lwork,
22460        iwork.as_mut_ptr(),
22461        &liwork,
22462        info,
22463    )
22464}
22465
22466#[inline]
22467pub unsafe fn chpevd(
22468    jobz: u8,
22469    uplo: u8,
22470    n: i32,
22471    ap: &mut [c32],
22472    w: &mut [f32],
22473    z: &mut [c32],
22474    ldz: i32,
22475    work: &mut [c32],
22476    lwork: i32,
22477    rwork: &mut [f32],
22478    lrwork: i32,
22479    iwork: &mut [i32],
22480    liwork: i32,
22481    info: &mut i32,
22482) {
22483    ffi::chpevd_(
22484        &(jobz as c_char),
22485        &(uplo as c_char),
22486        &n,
22487        ap.as_mut_ptr() as *mut _,
22488        w.as_mut_ptr(),
22489        z.as_mut_ptr() as *mut _,
22490        &ldz,
22491        work.as_mut_ptr() as *mut _,
22492        &lwork,
22493        rwork.as_mut_ptr(),
22494        &lrwork,
22495        iwork.as_mut_ptr(),
22496        &liwork,
22497        info,
22498    )
22499}
22500
22501#[inline]
22502pub unsafe fn zhpevd(
22503    jobz: u8,
22504    uplo: u8,
22505    n: i32,
22506    ap: &mut [c64],
22507    w: &mut [f64],
22508    z: &mut [c64],
22509    ldz: i32,
22510    work: &mut [c64],
22511    lwork: i32,
22512    rwork: &mut [f64],
22513    lrwork: i32,
22514    iwork: &mut [i32],
22515    liwork: i32,
22516    info: &mut i32,
22517) {
22518    ffi::zhpevd_(
22519        &(jobz as c_char),
22520        &(uplo as c_char),
22521        &n,
22522        ap.as_mut_ptr() as *mut _,
22523        w.as_mut_ptr(),
22524        z.as_mut_ptr() as *mut _,
22525        &ldz,
22526        work.as_mut_ptr() as *mut _,
22527        &lwork,
22528        rwork.as_mut_ptr(),
22529        &lrwork,
22530        iwork.as_mut_ptr(),
22531        &liwork,
22532        info,
22533    )
22534}
22535
22536#[inline]
22537pub unsafe fn sspevx(
22538    jobz: u8,
22539    range: u8,
22540    uplo: u8,
22541    n: i32,
22542    ap: &mut [f32],
22543    vl: f32,
22544    vu: f32,
22545    il: i32,
22546    iu: i32,
22547    abstol: f32,
22548    m: &mut i32,
22549    w: &mut [f32],
22550    z: &mut [f32],
22551    ldz: i32,
22552    work: &mut [f32],
22553    iwork: &mut [i32],
22554    ifail: &mut [i32],
22555    info: &mut i32,
22556) {
22557    ffi::sspevx_(
22558        &(jobz as c_char),
22559        &(range as c_char),
22560        &(uplo as c_char),
22561        &n,
22562        ap.as_mut_ptr(),
22563        &vl,
22564        &vu,
22565        &il,
22566        &iu,
22567        &abstol,
22568        m,
22569        w.as_mut_ptr(),
22570        z.as_mut_ptr(),
22571        &ldz,
22572        work.as_mut_ptr(),
22573        iwork.as_mut_ptr(),
22574        ifail.as_mut_ptr(),
22575        info,
22576    )
22577}
22578
22579#[inline]
22580pub unsafe fn dspevx(
22581    jobz: u8,
22582    range: u8,
22583    uplo: u8,
22584    n: i32,
22585    ap: &mut [f64],
22586    vl: f64,
22587    vu: f64,
22588    il: i32,
22589    iu: i32,
22590    abstol: f64,
22591    m: &mut i32,
22592    w: &mut [f64],
22593    z: &mut [f64],
22594    ldz: i32,
22595    work: &mut [f64],
22596    iwork: &mut [i32],
22597    ifail: &mut [i32],
22598    info: &mut i32,
22599) {
22600    ffi::dspevx_(
22601        &(jobz as c_char),
22602        &(range as c_char),
22603        &(uplo as c_char),
22604        &n,
22605        ap.as_mut_ptr(),
22606        &vl,
22607        &vu,
22608        &il,
22609        &iu,
22610        &abstol,
22611        m,
22612        w.as_mut_ptr(),
22613        z.as_mut_ptr(),
22614        &ldz,
22615        work.as_mut_ptr(),
22616        iwork.as_mut_ptr(),
22617        ifail.as_mut_ptr(),
22618        info,
22619    )
22620}
22621
22622#[inline]
22623pub unsafe fn chpevx(
22624    jobz: u8,
22625    range: u8,
22626    uplo: u8,
22627    n: i32,
22628    ap: &mut [c32],
22629    vl: f32,
22630    vu: f32,
22631    il: i32,
22632    iu: i32,
22633    abstol: f32,
22634    m: &mut i32,
22635    w: &mut [f32],
22636    z: &mut [c32],
22637    ldz: i32,
22638    work: &mut [c32],
22639    rwork: &mut [f32],
22640    iwork: &mut [i32],
22641    ifail: &mut [i32],
22642    info: &mut i32,
22643) {
22644    ffi::chpevx_(
22645        &(jobz as c_char),
22646        &(range as c_char),
22647        &(uplo as c_char),
22648        &n,
22649        ap.as_mut_ptr() as *mut _,
22650        &vl,
22651        &vu,
22652        &il,
22653        &iu,
22654        &abstol,
22655        m,
22656        w.as_mut_ptr(),
22657        z.as_mut_ptr() as *mut _,
22658        &ldz,
22659        work.as_mut_ptr() as *mut _,
22660        rwork.as_mut_ptr(),
22661        iwork.as_mut_ptr(),
22662        ifail.as_mut_ptr(),
22663        info,
22664    )
22665}
22666
22667#[inline]
22668pub unsafe fn zhpevx(
22669    jobz: u8,
22670    range: u8,
22671    uplo: u8,
22672    n: i32,
22673    ap: &mut [c64],
22674    vl: f64,
22675    vu: f64,
22676    il: i32,
22677    iu: i32,
22678    abstol: f64,
22679    m: &mut i32,
22680    w: &mut [f64],
22681    z: &mut [c64],
22682    ldz: i32,
22683    work: &mut [c64],
22684    rwork: &mut [f64],
22685    iwork: &mut [i32],
22686    ifail: &mut [i32],
22687    info: &mut i32,
22688) {
22689    ffi::zhpevx_(
22690        &(jobz as c_char),
22691        &(range as c_char),
22692        &(uplo as c_char),
22693        &n,
22694        ap.as_mut_ptr() as *mut _,
22695        &vl,
22696        &vu,
22697        &il,
22698        &iu,
22699        &abstol,
22700        m,
22701        w.as_mut_ptr(),
22702        z.as_mut_ptr() as *mut _,
22703        &ldz,
22704        work.as_mut_ptr() as *mut _,
22705        rwork.as_mut_ptr(),
22706        iwork.as_mut_ptr(),
22707        ifail.as_mut_ptr(),
22708        info,
22709    )
22710}
22711
22712#[inline]
22713pub unsafe fn ssbev(
22714    jobz: u8,
22715    uplo: u8,
22716    n: i32,
22717    kd: i32,
22718    ab: &mut [f32],
22719    ldab: i32,
22720    w: &mut [f32],
22721    z: &mut [f32],
22722    ldz: i32,
22723    work: &mut [f32],
22724    info: &mut i32,
22725) {
22726    ffi::ssbev_(
22727        &(jobz as c_char),
22728        &(uplo as c_char),
22729        &n,
22730        &kd,
22731        ab.as_mut_ptr(),
22732        &ldab,
22733        w.as_mut_ptr(),
22734        z.as_mut_ptr(),
22735        &ldz,
22736        work.as_mut_ptr(),
22737        info,
22738    )
22739}
22740
22741#[inline]
22742pub unsafe fn dsbev(
22743    jobz: u8,
22744    uplo: u8,
22745    n: i32,
22746    kd: i32,
22747    ab: &mut [f64],
22748    ldab: i32,
22749    w: &mut [f64],
22750    z: &mut [f64],
22751    ldz: i32,
22752    work: &mut [f64],
22753    info: &mut i32,
22754) {
22755    ffi::dsbev_(
22756        &(jobz as c_char),
22757        &(uplo as c_char),
22758        &n,
22759        &kd,
22760        ab.as_mut_ptr(),
22761        &ldab,
22762        w.as_mut_ptr(),
22763        z.as_mut_ptr(),
22764        &ldz,
22765        work.as_mut_ptr(),
22766        info,
22767    )
22768}
22769
22770#[inline]
22771pub unsafe fn chbev(
22772    jobz: u8,
22773    uplo: u8,
22774    n: i32,
22775    kd: i32,
22776    ab: &mut [c32],
22777    ldab: i32,
22778    w: &mut [f32],
22779    z: &mut [c32],
22780    ldz: i32,
22781    work: &mut [c32],
22782    rwork: &mut [f32],
22783    info: &mut i32,
22784) {
22785    ffi::chbev_(
22786        &(jobz as c_char),
22787        &(uplo as c_char),
22788        &n,
22789        &kd,
22790        ab.as_mut_ptr() as *mut _,
22791        &ldab,
22792        w.as_mut_ptr(),
22793        z.as_mut_ptr() as *mut _,
22794        &ldz,
22795        work.as_mut_ptr() as *mut _,
22796        rwork.as_mut_ptr(),
22797        info,
22798    )
22799}
22800
22801#[inline]
22802pub unsafe fn zhbev(
22803    jobz: u8,
22804    uplo: u8,
22805    n: i32,
22806    kd: i32,
22807    ab: &mut [c64],
22808    ldab: i32,
22809    w: &mut [f64],
22810    z: &mut [c64],
22811    ldz: i32,
22812    work: &mut [c64],
22813    rwork: &mut [f64],
22814    info: &mut i32,
22815) {
22816    ffi::zhbev_(
22817        &(jobz as c_char),
22818        &(uplo as c_char),
22819        &n,
22820        &kd,
22821        ab.as_mut_ptr() as *mut _,
22822        &ldab,
22823        w.as_mut_ptr(),
22824        z.as_mut_ptr() as *mut _,
22825        &ldz,
22826        work.as_mut_ptr() as *mut _,
22827        rwork.as_mut_ptr(),
22828        info,
22829    )
22830}
22831
22832#[inline]
22833pub unsafe fn ssbevd(
22834    jobz: u8,
22835    uplo: u8,
22836    n: i32,
22837    kd: i32,
22838    ab: &mut [f32],
22839    ldab: i32,
22840    w: &mut [f32],
22841    z: &mut [f32],
22842    ldz: i32,
22843    work: &mut [f32],
22844    lwork: i32,
22845    iwork: &mut [i32],
22846    liwork: i32,
22847    info: &mut i32,
22848) {
22849    ffi::ssbevd_(
22850        &(jobz as c_char),
22851        &(uplo as c_char),
22852        &n,
22853        &kd,
22854        ab.as_mut_ptr(),
22855        &ldab,
22856        w.as_mut_ptr(),
22857        z.as_mut_ptr(),
22858        &ldz,
22859        work.as_mut_ptr(),
22860        &lwork,
22861        iwork.as_mut_ptr(),
22862        &liwork,
22863        info,
22864    )
22865}
22866
22867#[inline]
22868pub unsafe fn dsbevd(
22869    jobz: u8,
22870    uplo: u8,
22871    n: i32,
22872    kd: i32,
22873    ab: &mut [f64],
22874    ldab: i32,
22875    w: &mut [f64],
22876    z: &mut [f64],
22877    ldz: i32,
22878    work: &mut [f64],
22879    lwork: i32,
22880    iwork: &mut [i32],
22881    liwork: i32,
22882    info: &mut i32,
22883) {
22884    ffi::dsbevd_(
22885        &(jobz as c_char),
22886        &(uplo as c_char),
22887        &n,
22888        &kd,
22889        ab.as_mut_ptr(),
22890        &ldab,
22891        w.as_mut_ptr(),
22892        z.as_mut_ptr(),
22893        &ldz,
22894        work.as_mut_ptr(),
22895        &lwork,
22896        iwork.as_mut_ptr(),
22897        &liwork,
22898        info,
22899    )
22900}
22901
22902#[inline]
22903pub unsafe fn chbevd(
22904    jobz: u8,
22905    uplo: u8,
22906    n: i32,
22907    kd: i32,
22908    ab: &mut [c32],
22909    ldab: i32,
22910    w: &mut [f32],
22911    z: &mut [c32],
22912    ldz: i32,
22913    work: &mut [c32],
22914    lwork: i32,
22915    rwork: &mut [f32],
22916    lrwork: i32,
22917    iwork: &mut [i32],
22918    liwork: i32,
22919    info: &mut i32,
22920) {
22921    ffi::chbevd_(
22922        &(jobz as c_char),
22923        &(uplo as c_char),
22924        &n,
22925        &kd,
22926        ab.as_mut_ptr() as *mut _,
22927        &ldab,
22928        w.as_mut_ptr(),
22929        z.as_mut_ptr() as *mut _,
22930        &ldz,
22931        work.as_mut_ptr() as *mut _,
22932        &lwork,
22933        rwork.as_mut_ptr(),
22934        &lrwork,
22935        iwork.as_mut_ptr(),
22936        &liwork,
22937        info,
22938    )
22939}
22940
22941#[inline]
22942pub unsafe fn zhbevd(
22943    jobz: u8,
22944    uplo: u8,
22945    n: i32,
22946    kd: i32,
22947    ab: &mut [c64],
22948    ldab: i32,
22949    w: &mut [f64],
22950    z: &mut [c64],
22951    ldz: i32,
22952    work: &mut [c64],
22953    lwork: i32,
22954    rwork: &mut [f64],
22955    lrwork: i32,
22956    iwork: &mut [i32],
22957    liwork: i32,
22958    info: &mut i32,
22959) {
22960    ffi::zhbevd_(
22961        &(jobz as c_char),
22962        &(uplo as c_char),
22963        &n,
22964        &kd,
22965        ab.as_mut_ptr() as *mut _,
22966        &ldab,
22967        w.as_mut_ptr(),
22968        z.as_mut_ptr() as *mut _,
22969        &ldz,
22970        work.as_mut_ptr() as *mut _,
22971        &lwork,
22972        rwork.as_mut_ptr(),
22973        &lrwork,
22974        iwork.as_mut_ptr(),
22975        &liwork,
22976        info,
22977    )
22978}
22979
22980#[inline]
22981pub unsafe fn ssbevx(
22982    jobz: u8,
22983    range: u8,
22984    uplo: u8,
22985    n: i32,
22986    kd: i32,
22987    ab: &mut [f32],
22988    ldab: i32,
22989    q: &mut [f32],
22990    ldq: i32,
22991    vl: f32,
22992    vu: f32,
22993    il: i32,
22994    iu: i32,
22995    abstol: f32,
22996    m: &mut i32,
22997    w: &mut [f32],
22998    z: &mut [f32],
22999    ldz: i32,
23000    work: &mut [f32],
23001    iwork: &mut [i32],
23002    ifail: &mut [i32],
23003    info: &mut i32,
23004) {
23005    ffi::ssbevx_(
23006        &(jobz as c_char),
23007        &(range as c_char),
23008        &(uplo as c_char),
23009        &n,
23010        &kd,
23011        ab.as_mut_ptr(),
23012        &ldab,
23013        q.as_mut_ptr(),
23014        &ldq,
23015        &vl,
23016        &vu,
23017        &il,
23018        &iu,
23019        &abstol,
23020        m,
23021        w.as_mut_ptr(),
23022        z.as_mut_ptr(),
23023        &ldz,
23024        work.as_mut_ptr(),
23025        iwork.as_mut_ptr(),
23026        ifail.as_mut_ptr(),
23027        info,
23028    )
23029}
23030
23031#[inline]
23032pub unsafe fn dsbevx(
23033    jobz: u8,
23034    range: u8,
23035    uplo: u8,
23036    n: i32,
23037    kd: i32,
23038    ab: &mut [f64],
23039    ldab: i32,
23040    q: &mut [f64],
23041    ldq: i32,
23042    vl: f64,
23043    vu: f64,
23044    il: i32,
23045    iu: i32,
23046    abstol: f64,
23047    m: &mut i32,
23048    w: &mut [f64],
23049    z: &mut [f64],
23050    ldz: i32,
23051    work: &mut [f64],
23052    iwork: &mut [i32],
23053    ifail: &mut [i32],
23054    info: &mut i32,
23055) {
23056    ffi::dsbevx_(
23057        &(jobz as c_char),
23058        &(range as c_char),
23059        &(uplo as c_char),
23060        &n,
23061        &kd,
23062        ab.as_mut_ptr(),
23063        &ldab,
23064        q.as_mut_ptr(),
23065        &ldq,
23066        &vl,
23067        &vu,
23068        &il,
23069        &iu,
23070        &abstol,
23071        m,
23072        w.as_mut_ptr(),
23073        z.as_mut_ptr(),
23074        &ldz,
23075        work.as_mut_ptr(),
23076        iwork.as_mut_ptr(),
23077        ifail.as_mut_ptr(),
23078        info,
23079    )
23080}
23081
23082#[inline]
23083pub unsafe fn chbevx(
23084    jobz: u8,
23085    range: u8,
23086    uplo: u8,
23087    n: i32,
23088    kd: i32,
23089    ab: &mut [c32],
23090    ldab: i32,
23091    q: &mut [c32],
23092    ldq: i32,
23093    vl: f32,
23094    vu: f32,
23095    il: i32,
23096    iu: i32,
23097    abstol: f32,
23098    m: &mut i32,
23099    w: &mut [f32],
23100    z: &mut [c32],
23101    ldz: i32,
23102    work: &mut [c32],
23103    rwork: &mut [f32],
23104    iwork: &mut [i32],
23105    ifail: &mut [i32],
23106    info: &mut i32,
23107) {
23108    ffi::chbevx_(
23109        &(jobz as c_char),
23110        &(range as c_char),
23111        &(uplo as c_char),
23112        &n,
23113        &kd,
23114        ab.as_mut_ptr() as *mut _,
23115        &ldab,
23116        q.as_mut_ptr() as *mut _,
23117        &ldq,
23118        &vl,
23119        &vu,
23120        &il,
23121        &iu,
23122        &abstol,
23123        m,
23124        w.as_mut_ptr(),
23125        z.as_mut_ptr() as *mut _,
23126        &ldz,
23127        work.as_mut_ptr() as *mut _,
23128        rwork.as_mut_ptr(),
23129        iwork.as_mut_ptr(),
23130        ifail.as_mut_ptr(),
23131        info,
23132    )
23133}
23134
23135#[inline]
23136pub unsafe fn zhbevx(
23137    jobz: u8,
23138    range: u8,
23139    uplo: u8,
23140    n: i32,
23141    kd: i32,
23142    ab: &mut [c64],
23143    ldab: i32,
23144    q: &mut [c64],
23145    ldq: i32,
23146    vl: f64,
23147    vu: f64,
23148    il: i32,
23149    iu: i32,
23150    abstol: f64,
23151    m: &mut i32,
23152    w: &mut [f64],
23153    z: &mut [c64],
23154    ldz: i32,
23155    work: &mut [c64],
23156    rwork: &mut [f64],
23157    iwork: &mut [i32],
23158    ifail: &mut [i32],
23159    info: &mut i32,
23160) {
23161    ffi::zhbevx_(
23162        &(jobz as c_char),
23163        &(range as c_char),
23164        &(uplo as c_char),
23165        &n,
23166        &kd,
23167        ab.as_mut_ptr() as *mut _,
23168        &ldab,
23169        q.as_mut_ptr() as *mut _,
23170        &ldq,
23171        &vl,
23172        &vu,
23173        &il,
23174        &iu,
23175        &abstol,
23176        m,
23177        w.as_mut_ptr(),
23178        z.as_mut_ptr() as *mut _,
23179        &ldz,
23180        work.as_mut_ptr() as *mut _,
23181        rwork.as_mut_ptr(),
23182        iwork.as_mut_ptr(),
23183        ifail.as_mut_ptr(),
23184        info,
23185    )
23186}
23187
23188#[inline]
23189pub unsafe fn sstev(
23190    jobz: u8,
23191    n: i32,
23192    d: &mut [f32],
23193    e: &mut [f32],
23194    z: &mut [f32],
23195    ldz: i32,
23196    work: &mut [f32],
23197    info: &mut i32,
23198) {
23199    ffi::sstev_(
23200        &(jobz as c_char),
23201        &n,
23202        d.as_mut_ptr(),
23203        e.as_mut_ptr(),
23204        z.as_mut_ptr(),
23205        &ldz,
23206        work.as_mut_ptr(),
23207        info,
23208    )
23209}
23210
23211#[inline]
23212pub unsafe fn dstev(
23213    jobz: u8,
23214    n: i32,
23215    d: &mut [f64],
23216    e: &mut [f64],
23217    z: &mut [f64],
23218    ldz: i32,
23219    work: &mut [f64],
23220    info: &mut i32,
23221) {
23222    ffi::dstev_(
23223        &(jobz as c_char),
23224        &n,
23225        d.as_mut_ptr(),
23226        e.as_mut_ptr(),
23227        z.as_mut_ptr(),
23228        &ldz,
23229        work.as_mut_ptr(),
23230        info,
23231    )
23232}
23233
23234#[inline]
23235pub unsafe fn sstevd(
23236    jobz: u8,
23237    n: i32,
23238    d: &mut [f32],
23239    e: &mut [f32],
23240    z: &mut [f32],
23241    ldz: i32,
23242    work: &mut [f32],
23243    lwork: i32,
23244    iwork: &mut [i32],
23245    liwork: i32,
23246    info: &mut i32,
23247) {
23248    ffi::sstevd_(
23249        &(jobz as c_char),
23250        &n,
23251        d.as_mut_ptr(),
23252        e.as_mut_ptr(),
23253        z.as_mut_ptr(),
23254        &ldz,
23255        work.as_mut_ptr(),
23256        &lwork,
23257        iwork.as_mut_ptr(),
23258        &liwork,
23259        info,
23260    )
23261}
23262
23263#[inline]
23264pub unsafe fn dstevd(
23265    jobz: u8,
23266    n: i32,
23267    d: &mut [f64],
23268    e: &mut [f64],
23269    z: &mut [f64],
23270    ldz: i32,
23271    work: &mut [f64],
23272    lwork: i32,
23273    iwork: &mut [i32],
23274    liwork: i32,
23275    info: &mut i32,
23276) {
23277    ffi::dstevd_(
23278        &(jobz as c_char),
23279        &n,
23280        d.as_mut_ptr(),
23281        e.as_mut_ptr(),
23282        z.as_mut_ptr(),
23283        &ldz,
23284        work.as_mut_ptr(),
23285        &lwork,
23286        iwork.as_mut_ptr(),
23287        &liwork,
23288        info,
23289    )
23290}
23291
23292#[inline]
23293pub unsafe fn sstevx(
23294    jobz: u8,
23295    range: u8,
23296    n: i32,
23297    d: &mut [f32],
23298    e: &mut [f32],
23299    vl: f32,
23300    vu: f32,
23301    il: i32,
23302    iu: i32,
23303    abstol: f32,
23304    m: &mut i32,
23305    w: &mut [f32],
23306    z: &mut [f32],
23307    ldz: i32,
23308    work: &mut [f32],
23309    iwork: &mut [i32],
23310    ifail: &mut [i32],
23311    info: &mut i32,
23312) {
23313    ffi::sstevx_(
23314        &(jobz as c_char),
23315        &(range as c_char),
23316        &n,
23317        d.as_mut_ptr(),
23318        e.as_mut_ptr(),
23319        &vl,
23320        &vu,
23321        &il,
23322        &iu,
23323        &abstol,
23324        m,
23325        w.as_mut_ptr(),
23326        z.as_mut_ptr(),
23327        &ldz,
23328        work.as_mut_ptr(),
23329        iwork.as_mut_ptr(),
23330        ifail.as_mut_ptr(),
23331        info,
23332    )
23333}
23334
23335#[inline]
23336pub unsafe fn dstevx(
23337    jobz: u8,
23338    range: u8,
23339    n: i32,
23340    d: &mut [f64],
23341    e: &mut [f64],
23342    vl: f64,
23343    vu: f64,
23344    il: i32,
23345    iu: i32,
23346    abstol: f64,
23347    m: &mut i32,
23348    w: &mut [f64],
23349    z: &mut [f64],
23350    ldz: i32,
23351    work: &mut [f64],
23352    iwork: &mut [i32],
23353    ifail: &mut [i32],
23354    info: &mut i32,
23355) {
23356    ffi::dstevx_(
23357        &(jobz as c_char),
23358        &(range as c_char),
23359        &n,
23360        d.as_mut_ptr(),
23361        e.as_mut_ptr(),
23362        &vl,
23363        &vu,
23364        &il,
23365        &iu,
23366        &abstol,
23367        m,
23368        w.as_mut_ptr(),
23369        z.as_mut_ptr(),
23370        &ldz,
23371        work.as_mut_ptr(),
23372        iwork.as_mut_ptr(),
23373        ifail.as_mut_ptr(),
23374        info,
23375    )
23376}
23377
23378#[inline]
23379pub unsafe fn sstevr(
23380    jobz: u8,
23381    range: u8,
23382    n: i32,
23383    d: &mut [f32],
23384    e: &mut [f32],
23385    vl: f32,
23386    vu: f32,
23387    il: i32,
23388    iu: i32,
23389    abstol: f32,
23390    m: &mut i32,
23391    w: &mut [f32],
23392    z: &mut [f32],
23393    ldz: i32,
23394    isuppz: &mut [i32],
23395    work: &mut [f32],
23396    lwork: i32,
23397    iwork: &mut [i32],
23398    liwork: i32,
23399    info: &mut i32,
23400) {
23401    ffi::sstevr_(
23402        &(jobz as c_char),
23403        &(range as c_char),
23404        &n,
23405        d.as_mut_ptr(),
23406        e.as_mut_ptr(),
23407        &vl,
23408        &vu,
23409        &il,
23410        &iu,
23411        &abstol,
23412        m,
23413        w.as_mut_ptr(),
23414        z.as_mut_ptr(),
23415        &ldz,
23416        isuppz.as_mut_ptr(),
23417        work.as_mut_ptr(),
23418        &lwork,
23419        iwork.as_mut_ptr(),
23420        &liwork,
23421        info,
23422    )
23423}
23424
23425#[inline]
23426pub unsafe fn dstevr(
23427    jobz: u8,
23428    range: u8,
23429    n: i32,
23430    d: &mut [f64],
23431    e: &mut [f64],
23432    vl: f64,
23433    vu: f64,
23434    il: i32,
23435    iu: i32,
23436    abstol: f64,
23437    m: &mut i32,
23438    w: &mut [f64],
23439    z: &mut [f64],
23440    ldz: i32,
23441    isuppz: &mut [i32],
23442    work: &mut [f64],
23443    lwork: i32,
23444    iwork: &mut [i32],
23445    liwork: i32,
23446    info: &mut i32,
23447) {
23448    ffi::dstevr_(
23449        &(jobz as c_char),
23450        &(range as c_char),
23451        &n,
23452        d.as_mut_ptr(),
23453        e.as_mut_ptr(),
23454        &vl,
23455        &vu,
23456        &il,
23457        &iu,
23458        &abstol,
23459        m,
23460        w.as_mut_ptr(),
23461        z.as_mut_ptr(),
23462        &ldz,
23463        isuppz.as_mut_ptr(),
23464        work.as_mut_ptr(),
23465        &lwork,
23466        iwork.as_mut_ptr(),
23467        &liwork,
23468        info,
23469    )
23470}
23471
23472#[inline]
23473pub unsafe fn sgees(
23474    jobvs: u8,
23475    sort: u8,
23476    select: Select2F32,
23477    n: i32,
23478    a: &mut [f32],
23479    lda: i32,
23480    sdim: &mut i32,
23481    wr: &mut [f32],
23482    wi: &mut [f32],
23483    vs: &mut [f32],
23484    ldvs: i32,
23485    work: &mut [f32],
23486    lwork: i32,
23487    bwork: &mut [i32],
23488    info: &mut i32,
23489) {
23490    ffi::sgees_(
23491        &(jobvs as c_char),
23492        &(sort as c_char),
23493        transmute(select),
23494        &n,
23495        a.as_mut_ptr(),
23496        &lda,
23497        sdim,
23498        wr.as_mut_ptr(),
23499        wi.as_mut_ptr(),
23500        vs.as_mut_ptr(),
23501        &ldvs,
23502        work.as_mut_ptr(),
23503        &lwork,
23504        bwork.as_mut_ptr(),
23505        info,
23506    )
23507}
23508
23509#[inline]
23510pub unsafe fn dgees(
23511    jobvs: u8,
23512    sort: u8,
23513    select: Select2F64,
23514    n: i32,
23515    a: &mut [f64],
23516    lda: i32,
23517    sdim: &mut i32,
23518    wr: &mut [f64],
23519    wi: &mut [f64],
23520    vs: &mut [f64],
23521    ldvs: i32,
23522    work: &mut [f64],
23523    lwork: i32,
23524    bwork: &mut [i32],
23525    info: &mut i32,
23526) {
23527    ffi::dgees_(
23528        &(jobvs as c_char),
23529        &(sort as c_char),
23530        transmute(select),
23531        &n,
23532        a.as_mut_ptr(),
23533        &lda,
23534        sdim,
23535        wr.as_mut_ptr(),
23536        wi.as_mut_ptr(),
23537        vs.as_mut_ptr(),
23538        &ldvs,
23539        work.as_mut_ptr(),
23540        &lwork,
23541        bwork.as_mut_ptr(),
23542        info,
23543    )
23544}
23545
23546#[inline]
23547pub unsafe fn cgees(
23548    jobvs: u8,
23549    sort: u8,
23550    select: Select1C32,
23551    n: i32,
23552    a: &mut [c32],
23553    lda: i32,
23554    sdim: &mut i32,
23555    w: &mut [c32],
23556    vs: &mut [c32],
23557    ldvs: i32,
23558    work: &mut [c32],
23559    lwork: i32,
23560    rwork: &mut [f32],
23561    bwork: &mut [i32],
23562    info: &mut i32,
23563) {
23564    ffi::cgees_(
23565        &(jobvs as c_char),
23566        &(sort as c_char),
23567        transmute(select),
23568        &n,
23569        a.as_mut_ptr() as *mut _,
23570        &lda,
23571        sdim,
23572        w.as_mut_ptr() as *mut _,
23573        vs.as_mut_ptr() as *mut _,
23574        &ldvs,
23575        work.as_mut_ptr() as *mut _,
23576        &lwork,
23577        rwork.as_mut_ptr(),
23578        bwork.as_mut_ptr(),
23579        info,
23580    )
23581}
23582
23583#[inline]
23584pub unsafe fn zgees(
23585    jobvs: u8,
23586    sort: u8,
23587    select: Select1C64,
23588    n: i32,
23589    a: &mut [c64],
23590    lda: i32,
23591    sdim: &mut i32,
23592    w: &mut [c64],
23593    vs: &mut [c64],
23594    ldvs: i32,
23595    work: &mut [c64],
23596    lwork: i32,
23597    rwork: &mut [f64],
23598    bwork: &mut [i32],
23599    info: &mut i32,
23600) {
23601    ffi::zgees_(
23602        &(jobvs as c_char),
23603        &(sort as c_char),
23604        transmute(select),
23605        &n,
23606        a.as_mut_ptr() as *mut _,
23607        &lda,
23608        sdim,
23609        w.as_mut_ptr() as *mut _,
23610        vs.as_mut_ptr() as *mut _,
23611        &ldvs,
23612        work.as_mut_ptr() as *mut _,
23613        &lwork,
23614        rwork.as_mut_ptr(),
23615        bwork.as_mut_ptr(),
23616        info,
23617    )
23618}
23619
23620#[inline]
23621pub unsafe fn sgeesx(
23622    jobvs: u8,
23623    sort: u8,
23624    select: Select2F32,
23625    sense: u8,
23626    n: i32,
23627    a: &mut [f32],
23628    lda: i32,
23629    sdim: &mut i32,
23630    wr: &mut [f32],
23631    wi: &mut [f32],
23632    vs: &mut [f32],
23633    ldvs: i32,
23634    rconde: &mut [f32],
23635    rcondv: &mut [f32],
23636    work: &mut [f32],
23637    lwork: i32,
23638    iwork: &mut [i32],
23639    liwork: i32,
23640    bwork: &mut [i32],
23641    info: &mut i32,
23642) {
23643    ffi::sgeesx_(
23644        &(jobvs as c_char),
23645        &(sort as c_char),
23646        transmute(select),
23647        &(sense as c_char),
23648        &n,
23649        a.as_mut_ptr(),
23650        &lda,
23651        sdim,
23652        wr.as_mut_ptr(),
23653        wi.as_mut_ptr(),
23654        vs.as_mut_ptr(),
23655        &ldvs,
23656        rconde.as_mut_ptr(),
23657        rcondv.as_mut_ptr(),
23658        work.as_mut_ptr(),
23659        &lwork,
23660        iwork.as_mut_ptr(),
23661        &liwork,
23662        bwork.as_mut_ptr(),
23663        info,
23664    )
23665}
23666
23667#[inline]
23668pub unsafe fn dgeesx(
23669    jobvs: u8,
23670    sort: u8,
23671    select: Select2F64,
23672    sense: u8,
23673    n: i32,
23674    a: &mut [f64],
23675    lda: i32,
23676    sdim: &mut i32,
23677    wr: &mut [f64],
23678    wi: &mut [f64],
23679    vs: &mut [f64],
23680    ldvs: i32,
23681    rconde: &mut [f64],
23682    rcondv: &mut [f64],
23683    work: &mut [f64],
23684    lwork: i32,
23685    iwork: &mut [i32],
23686    liwork: i32,
23687    bwork: &mut [i32],
23688    info: &mut i32,
23689) {
23690    ffi::dgeesx_(
23691        &(jobvs as c_char),
23692        &(sort as c_char),
23693        transmute(select),
23694        &(sense as c_char),
23695        &n,
23696        a.as_mut_ptr(),
23697        &lda,
23698        sdim,
23699        wr.as_mut_ptr(),
23700        wi.as_mut_ptr(),
23701        vs.as_mut_ptr(),
23702        &ldvs,
23703        rconde.as_mut_ptr(),
23704        rcondv.as_mut_ptr(),
23705        work.as_mut_ptr(),
23706        &lwork,
23707        iwork.as_mut_ptr(),
23708        &liwork,
23709        bwork.as_mut_ptr(),
23710        info,
23711    )
23712}
23713
23714#[inline]
23715pub unsafe fn cgeesx(
23716    jobvs: u8,
23717    sort: u8,
23718    select: Select1C32,
23719    sense: u8,
23720    n: i32,
23721    a: &mut [c32],
23722    lda: i32,
23723    sdim: &mut i32,
23724    w: &mut [c32],
23725    vs: &mut [c32],
23726    ldvs: i32,
23727    rconde: &mut [f32],
23728    rcondv: &mut [f32],
23729    work: &mut [c32],
23730    lwork: i32,
23731    rwork: &mut [f32],
23732    bwork: &mut [i32],
23733    info: &mut i32,
23734) {
23735    ffi::cgeesx_(
23736        &(jobvs as c_char),
23737        &(sort as c_char),
23738        transmute(select),
23739        &(sense as c_char),
23740        &n,
23741        a.as_mut_ptr() as *mut _,
23742        &lda,
23743        sdim,
23744        w.as_mut_ptr() as *mut _,
23745        vs.as_mut_ptr() as *mut _,
23746        &ldvs,
23747        rconde.as_mut_ptr(),
23748        rcondv.as_mut_ptr(),
23749        work.as_mut_ptr() as *mut _,
23750        &lwork,
23751        rwork.as_mut_ptr(),
23752        bwork.as_mut_ptr(),
23753        info,
23754    )
23755}
23756
23757#[inline]
23758pub unsafe fn zgeesx(
23759    jobvs: u8,
23760    sort: u8,
23761    select: Select1C64,
23762    sense: u8,
23763    n: i32,
23764    a: &mut [c64],
23765    lda: i32,
23766    sdim: &mut i32,
23767    w: &mut [c64],
23768    vs: &mut [c64],
23769    ldvs: i32,
23770    rconde: &mut [f64],
23771    rcondv: &mut [f64],
23772    work: &mut [c64],
23773    lwork: i32,
23774    rwork: &mut [f64],
23775    bwork: &mut [i32],
23776    info: &mut i32,
23777) {
23778    ffi::zgeesx_(
23779        &(jobvs as c_char),
23780        &(sort as c_char),
23781        transmute(select),
23782        &(sense as c_char),
23783        &n,
23784        a.as_mut_ptr() as *mut _,
23785        &lda,
23786        sdim,
23787        w.as_mut_ptr() as *mut _,
23788        vs.as_mut_ptr() as *mut _,
23789        &ldvs,
23790        rconde.as_mut_ptr(),
23791        rcondv.as_mut_ptr(),
23792        work.as_mut_ptr() as *mut _,
23793        &lwork,
23794        rwork.as_mut_ptr(),
23795        bwork.as_mut_ptr(),
23796        info,
23797    )
23798}
23799
23800#[inline]
23801pub unsafe fn sgeev(
23802    jobvl: u8,
23803    jobvr: u8,
23804    n: i32,
23805    a: &mut [f32],
23806    lda: i32,
23807    wr: &mut [f32],
23808    wi: &mut [f32],
23809    vl: &mut [f32],
23810    ldvl: i32,
23811    vr: &mut [f32],
23812    ldvr: i32,
23813    work: &mut [f32],
23814    lwork: i32,
23815    info: &mut i32,
23816) {
23817    ffi::sgeev_(
23818        &(jobvl as c_char),
23819        &(jobvr as c_char),
23820        &n,
23821        a.as_mut_ptr(),
23822        &lda,
23823        wr.as_mut_ptr(),
23824        wi.as_mut_ptr(),
23825        vl.as_mut_ptr(),
23826        &ldvl,
23827        vr.as_mut_ptr(),
23828        &ldvr,
23829        work.as_mut_ptr(),
23830        &lwork,
23831        info,
23832    )
23833}
23834
23835#[inline]
23836pub unsafe fn dgeev(
23837    jobvl: u8,
23838    jobvr: u8,
23839    n: i32,
23840    a: &mut [f64],
23841    lda: i32,
23842    wr: &mut [f64],
23843    wi: &mut [f64],
23844    vl: &mut [f64],
23845    ldvl: i32,
23846    vr: &mut [f64],
23847    ldvr: i32,
23848    work: &mut [f64],
23849    lwork: i32,
23850    info: &mut i32,
23851) {
23852    ffi::dgeev_(
23853        &(jobvl as c_char),
23854        &(jobvr as c_char),
23855        &n,
23856        a.as_mut_ptr(),
23857        &lda,
23858        wr.as_mut_ptr(),
23859        wi.as_mut_ptr(),
23860        vl.as_mut_ptr(),
23861        &ldvl,
23862        vr.as_mut_ptr(),
23863        &ldvr,
23864        work.as_mut_ptr(),
23865        &lwork,
23866        info,
23867    )
23868}
23869
23870#[inline]
23871pub unsafe fn cgeev(
23872    jobvl: u8,
23873    jobvr: u8,
23874    n: i32,
23875    a: &mut [c32],
23876    lda: i32,
23877    w: &mut [c32],
23878    vl: &mut [c32],
23879    ldvl: i32,
23880    vr: &mut [c32],
23881    ldvr: i32,
23882    work: &mut [c32],
23883    lwork: i32,
23884    rwork: &mut [f32],
23885    info: &mut i32,
23886) {
23887    ffi::cgeev_(
23888        &(jobvl as c_char),
23889        &(jobvr as c_char),
23890        &n,
23891        a.as_mut_ptr() as *mut _,
23892        &lda,
23893        w.as_mut_ptr() as *mut _,
23894        vl.as_mut_ptr() as *mut _,
23895        &ldvl,
23896        vr.as_mut_ptr() as *mut _,
23897        &ldvr,
23898        work.as_mut_ptr() as *mut _,
23899        &lwork,
23900        rwork.as_mut_ptr(),
23901        info,
23902    )
23903}
23904
23905#[inline]
23906pub unsafe fn zgeev(
23907    jobvl: u8,
23908    jobvr: u8,
23909    n: i32,
23910    a: &mut [c64],
23911    lda: i32,
23912    w: &mut [c64],
23913    vl: &mut [c64],
23914    ldvl: i32,
23915    vr: &mut [c64],
23916    ldvr: i32,
23917    work: &mut [c64],
23918    lwork: i32,
23919    rwork: &mut [f64],
23920    info: &mut i32,
23921) {
23922    ffi::zgeev_(
23923        &(jobvl as c_char),
23924        &(jobvr as c_char),
23925        &n,
23926        a.as_mut_ptr() as *mut _,
23927        &lda,
23928        w.as_mut_ptr() as *mut _,
23929        vl.as_mut_ptr() as *mut _,
23930        &ldvl,
23931        vr.as_mut_ptr() as *mut _,
23932        &ldvr,
23933        work.as_mut_ptr() as *mut _,
23934        &lwork,
23935        rwork.as_mut_ptr(),
23936        info,
23937    )
23938}
23939
23940#[inline]
23941pub unsafe fn sgeevx(
23942    balanc: u8,
23943    jobvl: u8,
23944    jobvr: u8,
23945    sense: u8,
23946    n: i32,
23947    a: &mut [f32],
23948    lda: i32,
23949    wr: &mut [f32],
23950    wi: &mut [f32],
23951    vl: &mut [f32],
23952    ldvl: i32,
23953    vr: &mut [f32],
23954    ldvr: i32,
23955    ilo: &mut i32,
23956    ihi: &mut i32,
23957    scale: &mut [f32],
23958    abnrm: &mut f32,
23959    rconde: &mut [f32],
23960    rcondv: &mut [f32],
23961    work: &mut [f32],
23962    lwork: i32,
23963    iwork: &mut [i32],
23964    info: &mut i32,
23965) {
23966    ffi::sgeevx_(
23967        &(balanc as c_char),
23968        &(jobvl as c_char),
23969        &(jobvr as c_char),
23970        &(sense as c_char),
23971        &n,
23972        a.as_mut_ptr(),
23973        &lda,
23974        wr.as_mut_ptr(),
23975        wi.as_mut_ptr(),
23976        vl.as_mut_ptr(),
23977        &ldvl,
23978        vr.as_mut_ptr(),
23979        &ldvr,
23980        ilo,
23981        ihi,
23982        scale.as_mut_ptr(),
23983        abnrm,
23984        rconde.as_mut_ptr(),
23985        rcondv.as_mut_ptr(),
23986        work.as_mut_ptr(),
23987        &lwork,
23988        iwork.as_mut_ptr(),
23989        info,
23990    )
23991}
23992
23993#[inline]
23994pub unsafe fn dgeevx(
23995    balanc: u8,
23996    jobvl: u8,
23997    jobvr: u8,
23998    sense: u8,
23999    n: i32,
24000    a: &mut [f64],
24001    lda: i32,
24002    wr: &mut [f64],
24003    wi: &mut [f64],
24004    vl: &mut [f64],
24005    ldvl: i32,
24006    vr: &mut [f64],
24007    ldvr: i32,
24008    ilo: &mut i32,
24009    ihi: &mut i32,
24010    scale: &mut [f64],
24011    abnrm: &mut f64,
24012    rconde: &mut [f64],
24013    rcondv: &mut [f64],
24014    work: &mut [f64],
24015    lwork: i32,
24016    iwork: &mut [i32],
24017    info: &mut i32,
24018) {
24019    ffi::dgeevx_(
24020        &(balanc as c_char),
24021        &(jobvl as c_char),
24022        &(jobvr as c_char),
24023        &(sense as c_char),
24024        &n,
24025        a.as_mut_ptr(),
24026        &lda,
24027        wr.as_mut_ptr(),
24028        wi.as_mut_ptr(),
24029        vl.as_mut_ptr(),
24030        &ldvl,
24031        vr.as_mut_ptr(),
24032        &ldvr,
24033        ilo,
24034        ihi,
24035        scale.as_mut_ptr(),
24036        abnrm,
24037        rconde.as_mut_ptr(),
24038        rcondv.as_mut_ptr(),
24039        work.as_mut_ptr(),
24040        &lwork,
24041        iwork.as_mut_ptr(),
24042        info,
24043    )
24044}
24045
24046#[inline]
24047pub unsafe fn cgeevx(
24048    balanc: u8,
24049    jobvl: u8,
24050    jobvr: u8,
24051    sense: u8,
24052    n: i32,
24053    a: &mut [c32],
24054    lda: i32,
24055    w: &mut [c32],
24056    vl: &mut [c32],
24057    ldvl: i32,
24058    vr: &mut [c32],
24059    ldvr: i32,
24060    ilo: &mut i32,
24061    ihi: &mut i32,
24062    scale: &mut [f32],
24063    abnrm: &mut f32,
24064    rconde: &mut [f32],
24065    rcondv: &mut [f32],
24066    work: &mut [c32],
24067    lwork: i32,
24068    rwork: &mut [f32],
24069    info: &mut i32,
24070) {
24071    ffi::cgeevx_(
24072        &(balanc as c_char),
24073        &(jobvl as c_char),
24074        &(jobvr as c_char),
24075        &(sense as c_char),
24076        &n,
24077        a.as_mut_ptr() as *mut _,
24078        &lda,
24079        w.as_mut_ptr() as *mut _,
24080        vl.as_mut_ptr() as *mut _,
24081        &ldvl,
24082        vr.as_mut_ptr() as *mut _,
24083        &ldvr,
24084        ilo,
24085        ihi,
24086        scale.as_mut_ptr(),
24087        abnrm,
24088        rconde.as_mut_ptr(),
24089        rcondv.as_mut_ptr(),
24090        work.as_mut_ptr() as *mut _,
24091        &lwork,
24092        rwork.as_mut_ptr(),
24093        info,
24094    )
24095}
24096
24097#[inline]
24098pub unsafe fn zgeevx(
24099    balanc: u8,
24100    jobvl: u8,
24101    jobvr: u8,
24102    sense: u8,
24103    n: i32,
24104    a: &mut [c64],
24105    lda: i32,
24106    w: &mut [c64],
24107    vl: &mut [c64],
24108    ldvl: i32,
24109    vr: &mut [c64],
24110    ldvr: i32,
24111    ilo: &mut i32,
24112    ihi: &mut i32,
24113    scale: &mut [f64],
24114    abnrm: &mut f64,
24115    rconde: &mut [f64],
24116    rcondv: &mut [f64],
24117    work: &mut [c64],
24118    lwork: i32,
24119    rwork: &mut [f64],
24120    info: &mut i32,
24121) {
24122    ffi::zgeevx_(
24123        &(balanc as c_char),
24124        &(jobvl as c_char),
24125        &(jobvr as c_char),
24126        &(sense as c_char),
24127        &n,
24128        a.as_mut_ptr() as *mut _,
24129        &lda,
24130        w.as_mut_ptr() as *mut _,
24131        vl.as_mut_ptr() as *mut _,
24132        &ldvl,
24133        vr.as_mut_ptr() as *mut _,
24134        &ldvr,
24135        ilo,
24136        ihi,
24137        scale.as_mut_ptr(),
24138        abnrm,
24139        rconde.as_mut_ptr(),
24140        rcondv.as_mut_ptr(),
24141        work.as_mut_ptr() as *mut _,
24142        &lwork,
24143        rwork.as_mut_ptr(),
24144        info,
24145    )
24146}
24147
24148#[inline]
24149pub unsafe fn sgesvd(
24150    jobu: u8,
24151    jobvt: u8,
24152    m: i32,
24153    n: i32,
24154    a: &mut [f32],
24155    lda: i32,
24156    s: &mut [f32],
24157    u: &mut [f32],
24158    ldu: i32,
24159    vt: &mut [f32],
24160    ldvt: i32,
24161    work: &mut [f32],
24162    lwork: i32,
24163    info: &mut i32,
24164) {
24165    ffi::sgesvd_(
24166        &(jobu as c_char),
24167        &(jobvt as c_char),
24168        &m,
24169        &n,
24170        a.as_mut_ptr(),
24171        &lda,
24172        s.as_mut_ptr(),
24173        u.as_mut_ptr(),
24174        &ldu,
24175        vt.as_mut_ptr(),
24176        &ldvt,
24177        work.as_mut_ptr(),
24178        &lwork,
24179        info,
24180    )
24181}
24182
24183#[inline]
24184pub unsafe fn dgesvd(
24185    jobu: u8,
24186    jobvt: u8,
24187    m: i32,
24188    n: i32,
24189    a: &mut [f64],
24190    lda: i32,
24191    s: &mut [f64],
24192    u: &mut [f64],
24193    ldu: i32,
24194    vt: &mut [f64],
24195    ldvt: i32,
24196    work: &mut [f64],
24197    lwork: i32,
24198    info: &mut i32,
24199) {
24200    ffi::dgesvd_(
24201        &(jobu as c_char),
24202        &(jobvt as c_char),
24203        &m,
24204        &n,
24205        a.as_mut_ptr(),
24206        &lda,
24207        s.as_mut_ptr(),
24208        u.as_mut_ptr(),
24209        &ldu,
24210        vt.as_mut_ptr(),
24211        &ldvt,
24212        work.as_mut_ptr(),
24213        &lwork,
24214        info,
24215    )
24216}
24217
24218#[inline]
24219pub unsafe fn cgesvd(
24220    jobu: u8,
24221    jobvt: u8,
24222    m: i32,
24223    n: i32,
24224    a: &mut [c32],
24225    lda: i32,
24226    s: &mut [f32],
24227    u: &mut [c32],
24228    ldu: i32,
24229    vt: &mut [c32],
24230    ldvt: i32,
24231    work: &mut [c32],
24232    lwork: i32,
24233    rwork: &mut [f32],
24234    info: &mut i32,
24235) {
24236    ffi::cgesvd_(
24237        &(jobu as c_char),
24238        &(jobvt as c_char),
24239        &m,
24240        &n,
24241        a.as_mut_ptr() as *mut _,
24242        &lda,
24243        s.as_mut_ptr(),
24244        u.as_mut_ptr() as *mut _,
24245        &ldu,
24246        vt.as_mut_ptr() as *mut _,
24247        &ldvt,
24248        work.as_mut_ptr() as *mut _,
24249        &lwork,
24250        rwork.as_mut_ptr(),
24251        info,
24252    )
24253}
24254
24255#[inline]
24256pub unsafe fn zgesvd(
24257    jobu: u8,
24258    jobvt: u8,
24259    m: i32,
24260    n: i32,
24261    a: &mut [c64],
24262    lda: i32,
24263    s: &mut [f64],
24264    u: &mut [c64],
24265    ldu: i32,
24266    vt: &mut [c64],
24267    ldvt: i32,
24268    work: &mut [c64],
24269    lwork: i32,
24270    rwork: &mut [f64],
24271    info: &mut i32,
24272) {
24273    ffi::zgesvd_(
24274        &(jobu as c_char),
24275        &(jobvt as c_char),
24276        &m,
24277        &n,
24278        a.as_mut_ptr() as *mut _,
24279        &lda,
24280        s.as_mut_ptr(),
24281        u.as_mut_ptr() as *mut _,
24282        &ldu,
24283        vt.as_mut_ptr() as *mut _,
24284        &ldvt,
24285        work.as_mut_ptr() as *mut _,
24286        &lwork,
24287        rwork.as_mut_ptr(),
24288        info,
24289    )
24290}
24291
24292#[inline]
24293pub unsafe fn sgesvdx(
24294    jobu: u8,
24295    jobvt: u8,
24296    range: u8,
24297    m: i32,
24298    n: i32,
24299    a: &mut [f32],
24300    lda: i32,
24301    vl: f32,
24302    vu: f32,
24303    il: i32,
24304    iu: i32,
24305    ns: &mut [i32],
24306    s: &mut [f32],
24307    u: &mut [f32],
24308    ldu: i32,
24309    vt: &mut [f32],
24310    ldvt: i32,
24311    work: &mut [f32],
24312    lwork: i32,
24313    iwork: &mut [i32],
24314    info: &mut i32,
24315) {
24316    ffi::sgesvdx_(
24317        &(jobu as c_char),
24318        &(jobvt as c_char),
24319        &(range as c_char),
24320        &m,
24321        &n,
24322        a.as_mut_ptr(),
24323        &lda,
24324        &vl,
24325        &vu,
24326        &il,
24327        &iu,
24328        ns.as_mut_ptr(),
24329        s.as_mut_ptr(),
24330        u.as_mut_ptr(),
24331        &ldu,
24332        vt.as_mut_ptr(),
24333        &ldvt,
24334        work.as_mut_ptr(),
24335        &lwork,
24336        iwork.as_mut_ptr(),
24337        info,
24338    )
24339}
24340
24341#[inline]
24342pub unsafe fn dgesvdx(
24343    jobu: u8,
24344    jobvt: u8,
24345    range: u8,
24346    m: i32,
24347    n: i32,
24348    a: &mut [f64],
24349    lda: i32,
24350    vl: f64,
24351    vu: f64,
24352    il: i32,
24353    iu: i32,
24354    ns: &mut [i32],
24355    s: &mut [f64],
24356    u: &mut [f64],
24357    ldu: i32,
24358    vt: &mut [f64],
24359    ldvt: i32,
24360    work: &mut [f64],
24361    lwork: i32,
24362    iwork: &mut [i32],
24363    info: &mut i32,
24364) {
24365    ffi::dgesvdx_(
24366        &(jobu as c_char),
24367        &(jobvt as c_char),
24368        &(range as c_char),
24369        &m,
24370        &n,
24371        a.as_mut_ptr(),
24372        &lda,
24373        &vl,
24374        &vu,
24375        &il,
24376        &iu,
24377        ns.as_mut_ptr(),
24378        s.as_mut_ptr(),
24379        u.as_mut_ptr(),
24380        &ldu,
24381        vt.as_mut_ptr(),
24382        &ldvt,
24383        work.as_mut_ptr(),
24384        &lwork,
24385        iwork.as_mut_ptr(),
24386        info,
24387    )
24388}
24389
24390#[inline]
24391pub unsafe fn cgesvdx(
24392    jobu: u8,
24393    jobvt: u8,
24394    range: u8,
24395    m: i32,
24396    n: i32,
24397    a: &mut [c32],
24398    lda: i32,
24399    vl: f32,
24400    vu: f32,
24401    il: i32,
24402    iu: i32,
24403    ns: &mut [i32],
24404    s: &mut [f32],
24405    u: &mut [c32],
24406    ldu: i32,
24407    vt: &mut [c32],
24408    ldvt: i32,
24409    work: &mut [c32],
24410    lwork: i32,
24411    rwork: &mut [f32],
24412    iwork: &mut [i32],
24413    info: &mut i32,
24414) {
24415    ffi::cgesvdx_(
24416        &(jobu as c_char),
24417        &(jobvt as c_char),
24418        &(range as c_char),
24419        &m,
24420        &n,
24421        a.as_mut_ptr() as *mut _,
24422        &lda,
24423        &vl,
24424        &vu,
24425        &il,
24426        &iu,
24427        ns.as_mut_ptr(),
24428        s.as_mut_ptr(),
24429        u.as_mut_ptr() as *mut _,
24430        &ldu,
24431        vt.as_mut_ptr() as *mut _,
24432        &ldvt,
24433        work.as_mut_ptr() as *mut _,
24434        &lwork,
24435        rwork.as_mut_ptr(),
24436        iwork.as_mut_ptr(),
24437        info,
24438    )
24439}
24440
24441#[inline]
24442pub unsafe fn zgesvdx(
24443    jobu: u8,
24444    jobvt: u8,
24445    range: u8,
24446    m: i32,
24447    n: i32,
24448    a: &mut [c64],
24449    lda: i32,
24450    vl: f64,
24451    vu: f64,
24452    il: i32,
24453    iu: i32,
24454    ns: &mut [i32],
24455    s: &mut [f64],
24456    u: &mut [c64],
24457    ldu: i32,
24458    vt: &mut [c64],
24459    ldvt: i32,
24460    work: &mut [c64],
24461    lwork: i32,
24462    rwork: &mut [f64],
24463    iwork: &mut [i32],
24464    info: &mut i32,
24465) {
24466    ffi::zgesvdx_(
24467        &(jobu as c_char),
24468        &(jobvt as c_char),
24469        &(range as c_char),
24470        &m,
24471        &n,
24472        a.as_mut_ptr() as *mut _,
24473        &lda,
24474        &vl,
24475        &vu,
24476        &il,
24477        &iu,
24478        ns.as_mut_ptr(),
24479        s.as_mut_ptr(),
24480        u.as_mut_ptr() as *mut _,
24481        &ldu,
24482        vt.as_mut_ptr() as *mut _,
24483        &ldvt,
24484        work.as_mut_ptr() as *mut _,
24485        &lwork,
24486        rwork.as_mut_ptr(),
24487        iwork.as_mut_ptr(),
24488        info,
24489    )
24490}
24491
24492#[inline]
24493pub unsafe fn sgesdd(
24494    jobz: u8,
24495    m: i32,
24496    n: i32,
24497    a: &mut [f32],
24498    lda: i32,
24499    s: &mut [f32],
24500    u: &mut [f32],
24501    ldu: i32,
24502    vt: &mut [f32],
24503    ldvt: i32,
24504    work: &mut [f32],
24505    lwork: i32,
24506    iwork: &mut [i32],
24507    info: &mut i32,
24508) {
24509    ffi::sgesdd_(
24510        &(jobz as c_char),
24511        &m,
24512        &n,
24513        a.as_mut_ptr(),
24514        &lda,
24515        s.as_mut_ptr(),
24516        u.as_mut_ptr(),
24517        &ldu,
24518        vt.as_mut_ptr(),
24519        &ldvt,
24520        work.as_mut_ptr(),
24521        &lwork,
24522        iwork.as_mut_ptr(),
24523        info,
24524    )
24525}
24526
24527#[inline]
24528pub unsafe fn dgesdd(
24529    jobz: u8,
24530    m: i32,
24531    n: i32,
24532    a: &mut [f64],
24533    lda: i32,
24534    s: &mut [f64],
24535    u: &mut [f64],
24536    ldu: i32,
24537    vt: &mut [f64],
24538    ldvt: i32,
24539    work: &mut [f64],
24540    lwork: i32,
24541    iwork: &mut [i32],
24542    info: &mut i32,
24543) {
24544    ffi::dgesdd_(
24545        &(jobz as c_char),
24546        &m,
24547        &n,
24548        a.as_mut_ptr(),
24549        &lda,
24550        s.as_mut_ptr(),
24551        u.as_mut_ptr(),
24552        &ldu,
24553        vt.as_mut_ptr(),
24554        &ldvt,
24555        work.as_mut_ptr(),
24556        &lwork,
24557        iwork.as_mut_ptr(),
24558        info,
24559    )
24560}
24561
24562#[inline]
24563pub unsafe fn cgesdd(
24564    jobz: u8,
24565    m: i32,
24566    n: i32,
24567    a: &mut [c32],
24568    lda: i32,
24569    s: &mut [f32],
24570    u: &mut [c32],
24571    ldu: i32,
24572    vt: &mut [c32],
24573    ldvt: i32,
24574    work: &mut [c32],
24575    lwork: i32,
24576    rwork: &mut [f32],
24577    iwork: &mut [i32],
24578    info: &mut i32,
24579) {
24580    ffi::cgesdd_(
24581        &(jobz as c_char),
24582        &m,
24583        &n,
24584        a.as_mut_ptr() as *mut _,
24585        &lda,
24586        s.as_mut_ptr(),
24587        u.as_mut_ptr() as *mut _,
24588        &ldu,
24589        vt.as_mut_ptr() as *mut _,
24590        &ldvt,
24591        work.as_mut_ptr() as *mut _,
24592        &lwork,
24593        rwork.as_mut_ptr(),
24594        iwork.as_mut_ptr(),
24595        info,
24596    )
24597}
24598
24599#[inline]
24600pub unsafe fn zgesdd(
24601    jobz: u8,
24602    m: i32,
24603    n: i32,
24604    a: &mut [c64],
24605    lda: i32,
24606    s: &mut [f64],
24607    u: &mut [c64],
24608    ldu: i32,
24609    vt: &mut [c64],
24610    ldvt: i32,
24611    work: &mut [c64],
24612    lwork: i32,
24613    rwork: &mut [f64],
24614    iwork: &mut [i32],
24615    info: &mut i32,
24616) {
24617    ffi::zgesdd_(
24618        &(jobz as c_char),
24619        &m,
24620        &n,
24621        a.as_mut_ptr() as *mut _,
24622        &lda,
24623        s.as_mut_ptr(),
24624        u.as_mut_ptr() as *mut _,
24625        &ldu,
24626        vt.as_mut_ptr() as *mut _,
24627        &ldvt,
24628        work.as_mut_ptr() as *mut _,
24629        &lwork,
24630        rwork.as_mut_ptr(),
24631        iwork.as_mut_ptr(),
24632        info,
24633    )
24634}
24635
24636#[inline]
24637pub unsafe fn dgejsv(
24638    joba: u8,
24639    jobu: u8,
24640    jobv: u8,
24641    jobr: u8,
24642    jobt: u8,
24643    jobp: u8,
24644    m: i32,
24645    n: i32,
24646    a: &mut [f64],
24647    lda: i32,
24648    sva: &mut [f64],
24649    u: &mut [f64],
24650    ldu: i32,
24651    v: &mut [f64],
24652    ldv: i32,
24653    work: &mut [f64],
24654    lwork: i32,
24655    iwork: &mut [i32],
24656    info: &mut i32,
24657) {
24658    ffi::dgejsv_(
24659        &(joba as c_char),
24660        &(jobu as c_char),
24661        &(jobv as c_char),
24662        &(jobr as c_char),
24663        &(jobt as c_char),
24664        &(jobp as c_char),
24665        &m,
24666        &n,
24667        a.as_mut_ptr(),
24668        &lda,
24669        sva.as_mut_ptr(),
24670        u.as_mut_ptr(),
24671        &ldu,
24672        v.as_mut_ptr(),
24673        &ldv,
24674        work.as_mut_ptr(),
24675        &lwork,
24676        iwork.as_mut_ptr(),
24677        info,
24678    )
24679}
24680
24681#[inline]
24682pub unsafe fn sgejsv(
24683    joba: u8,
24684    jobu: u8,
24685    jobv: u8,
24686    jobr: u8,
24687    jobt: u8,
24688    jobp: u8,
24689    m: i32,
24690    n: i32,
24691    a: &mut [f32],
24692    lda: i32,
24693    sva: &mut [f32],
24694    u: &mut [f32],
24695    ldu: i32,
24696    v: &mut [f32],
24697    ldv: i32,
24698    work: &mut [f32],
24699    lwork: i32,
24700    iwork: &mut [i32],
24701    info: &mut i32,
24702) {
24703    ffi::sgejsv_(
24704        &(joba as c_char),
24705        &(jobu as c_char),
24706        &(jobv as c_char),
24707        &(jobr as c_char),
24708        &(jobt as c_char),
24709        &(jobp as c_char),
24710        &m,
24711        &n,
24712        a.as_mut_ptr(),
24713        &lda,
24714        sva.as_mut_ptr(),
24715        u.as_mut_ptr(),
24716        &ldu,
24717        v.as_mut_ptr(),
24718        &ldv,
24719        work.as_mut_ptr(),
24720        &lwork,
24721        iwork.as_mut_ptr(),
24722        info,
24723    )
24724}
24725
24726#[inline]
24727pub unsafe fn cgejsv(
24728    joba: u8,
24729    jobu: u8,
24730    jobv: u8,
24731    jobr: u8,
24732    jobt: u8,
24733    jobp: u8,
24734    m: i32,
24735    n: i32,
24736    a: &mut [c32],
24737    lda: i32,
24738    sva: &mut [f32],
24739    u: &mut [c32],
24740    ldu: i32,
24741    v: &mut [c32],
24742    ldv: i32,
24743    cwork: &mut [c32],
24744    lwork: i32,
24745    work: &mut [f32],
24746    lrwork: i32,
24747    iwork: &mut [i32],
24748    info: &mut i32,
24749) {
24750    ffi::cgejsv_(
24751        &(joba as c_char),
24752        &(jobu as c_char),
24753        &(jobv as c_char),
24754        &(jobr as c_char),
24755        &(jobt as c_char),
24756        &(jobp as c_char),
24757        &m,
24758        &n,
24759        a.as_mut_ptr() as *mut _,
24760        &lda,
24761        sva.as_mut_ptr(),
24762        u.as_mut_ptr() as *mut _,
24763        &ldu,
24764        v.as_mut_ptr() as *mut _,
24765        &ldv,
24766        cwork.as_mut_ptr() as *mut _,
24767        &lwork,
24768        work.as_mut_ptr(),
24769        &lrwork,
24770        iwork.as_mut_ptr(),
24771        info,
24772    )
24773}
24774
24775#[inline]
24776pub unsafe fn zgejsv(
24777    joba: u8,
24778    jobu: u8,
24779    jobv: u8,
24780    jobr: u8,
24781    jobt: u8,
24782    jobp: u8,
24783    m: i32,
24784    n: i32,
24785    a: &mut [c64],
24786    lda: i32,
24787    sva: &mut [f64],
24788    u: &mut [c64],
24789    ldu: i32,
24790    v: &mut [c64],
24791    ldv: i32,
24792    cwork: &mut [c64],
24793    lwork: i32,
24794    work: &mut [f64],
24795    lrwork: i32,
24796    iwork: &mut [i32],
24797    info: &mut i32,
24798) {
24799    ffi::zgejsv_(
24800        &(joba as c_char),
24801        &(jobu as c_char),
24802        &(jobv as c_char),
24803        &(jobr as c_char),
24804        &(jobt as c_char),
24805        &(jobp as c_char),
24806        &m,
24807        &n,
24808        a.as_mut_ptr() as *mut _,
24809        &lda,
24810        sva.as_mut_ptr(),
24811        u.as_mut_ptr() as *mut _,
24812        &ldu,
24813        v.as_mut_ptr() as *mut _,
24814        &ldv,
24815        cwork.as_mut_ptr() as *mut _,
24816        &lwork,
24817        work.as_mut_ptr(),
24818        &lrwork,
24819        iwork.as_mut_ptr(),
24820        info,
24821    )
24822}
24823
24824#[inline]
24825pub unsafe fn dgesvj(
24826    joba: u8,
24827    jobu: u8,
24828    jobv: u8,
24829    m: i32,
24830    n: i32,
24831    a: &mut [f64],
24832    lda: i32,
24833    sva: &mut [f64],
24834    mv: &[i32],
24835    v: &mut [f64],
24836    ldv: i32,
24837    work: &mut [f64],
24838    lwork: i32,
24839    info: &mut i32,
24840) {
24841    ffi::dgesvj_(
24842        &(joba as c_char),
24843        &(jobu as c_char),
24844        &(jobv as c_char),
24845        &m,
24846        &n,
24847        a.as_mut_ptr(),
24848        &lda,
24849        sva.as_mut_ptr(),
24850        mv.as_ptr(),
24851        v.as_mut_ptr(),
24852        &ldv,
24853        work.as_mut_ptr(),
24854        &lwork,
24855        info,
24856    )
24857}
24858
24859#[inline]
24860pub unsafe fn sgesvj(
24861    joba: u8,
24862    jobu: u8,
24863    jobv: u8,
24864    m: i32,
24865    n: i32,
24866    a: &mut [f32],
24867    lda: i32,
24868    sva: &mut [f32],
24869    mv: &[i32],
24870    v: &mut [f32],
24871    ldv: i32,
24872    work: &mut [f32],
24873    lwork: i32,
24874    info: &mut i32,
24875) {
24876    ffi::sgesvj_(
24877        &(joba as c_char),
24878        &(jobu as c_char),
24879        &(jobv as c_char),
24880        &m,
24881        &n,
24882        a.as_mut_ptr(),
24883        &lda,
24884        sva.as_mut_ptr(),
24885        mv.as_ptr(),
24886        v.as_mut_ptr(),
24887        &ldv,
24888        work.as_mut_ptr(),
24889        &lwork,
24890        info,
24891    )
24892}
24893
24894#[inline]
24895pub unsafe fn cgesvj(
24896    joba: u8,
24897    jobu: u8,
24898    jobv: u8,
24899    m: i32,
24900    n: i32,
24901    a: &mut [c32],
24902    lda: i32,
24903    sva: &mut [f32],
24904    mv: &[i32],
24905    v: &mut [c32],
24906    ldv: i32,
24907    cwork: &mut [c32],
24908    lwork: i32,
24909    rwork: &mut [f32],
24910    lrwork: i32,
24911    info: &mut i32,
24912) {
24913    ffi::cgesvj_(
24914        &(joba as c_char),
24915        &(jobu as c_char),
24916        &(jobv as c_char),
24917        &m,
24918        &n,
24919        a.as_mut_ptr() as *mut _,
24920        &lda,
24921        sva.as_mut_ptr(),
24922        mv.as_ptr(),
24923        v.as_mut_ptr() as *mut _,
24924        &ldv,
24925        cwork.as_mut_ptr() as *mut _,
24926        &lwork,
24927        rwork.as_mut_ptr(),
24928        &lrwork,
24929        info,
24930    )
24931}
24932
24933#[inline]
24934pub unsafe fn zgesvj(
24935    joba: u8,
24936    jobu: u8,
24937    jobv: u8,
24938    m: i32,
24939    n: i32,
24940    a: &mut [c64],
24941    lda: i32,
24942    sva: &mut [f64],
24943    mv: &[i32],
24944    v: &mut [c64],
24945    ldv: i32,
24946    cwork: &mut [c64],
24947    lwork: i32,
24948    rwork: &mut [f64],
24949    lrwork: i32,
24950    info: &mut i32,
24951) {
24952    ffi::zgesvj_(
24953        &(joba as c_char),
24954        &(jobu as c_char),
24955        &(jobv as c_char),
24956        &m,
24957        &n,
24958        a.as_mut_ptr() as *mut _,
24959        &lda,
24960        sva.as_mut_ptr(),
24961        mv.as_ptr(),
24962        v.as_mut_ptr() as *mut _,
24963        &ldv,
24964        cwork.as_mut_ptr() as *mut _,
24965        &lwork,
24966        rwork.as_mut_ptr(),
24967        &lrwork,
24968        info,
24969    )
24970}
24971
24972#[inline]
24973pub unsafe fn sggsvd(
24974    jobu: u8,
24975    jobv: u8,
24976    jobq: u8,
24977    m: i32,
24978    n: i32,
24979    p: i32,
24980    k: &mut i32,
24981    l: &mut i32,
24982    a: &mut [f32],
24983    lda: i32,
24984    b: &mut [f32],
24985    ldb: i32,
24986    alpha: &mut f32,
24987    beta: &mut f32,
24988    u: &mut [f32],
24989    ldu: i32,
24990    v: &mut [f32],
24991    ldv: i32,
24992    q: &mut [f32],
24993    ldq: i32,
24994    work: &mut [f32],
24995    iwork: &mut [i32],
24996    info: &mut i32,
24997) {
24998    ffi::sggsvd_(
24999        &(jobu as c_char),
25000        &(jobv as c_char),
25001        &(jobq as c_char),
25002        &m,
25003        &n,
25004        &p,
25005        k,
25006        l,
25007        a.as_mut_ptr(),
25008        &lda,
25009        b.as_mut_ptr(),
25010        &ldb,
25011        alpha,
25012        beta,
25013        u.as_mut_ptr(),
25014        &ldu,
25015        v.as_mut_ptr(),
25016        &ldv,
25017        q.as_mut_ptr(),
25018        &ldq,
25019        work.as_mut_ptr(),
25020        iwork.as_mut_ptr(),
25021        info,
25022    )
25023}
25024
25025#[inline]
25026pub unsafe fn dggsvd(
25027    jobu: u8,
25028    jobv: u8,
25029    jobq: u8,
25030    m: i32,
25031    n: i32,
25032    p: i32,
25033    k: &mut i32,
25034    l: &mut i32,
25035    a: &mut [f64],
25036    lda: i32,
25037    b: &mut [f64],
25038    ldb: i32,
25039    alpha: &mut f64,
25040    beta: &mut f64,
25041    u: &mut [f64],
25042    ldu: i32,
25043    v: &mut [f64],
25044    ldv: i32,
25045    q: &mut [f64],
25046    ldq: i32,
25047    work: &mut [f64],
25048    iwork: &mut [i32],
25049    info: &mut i32,
25050) {
25051    ffi::dggsvd_(
25052        &(jobu as c_char),
25053        &(jobv as c_char),
25054        &(jobq as c_char),
25055        &m,
25056        &n,
25057        &p,
25058        k,
25059        l,
25060        a.as_mut_ptr(),
25061        &lda,
25062        b.as_mut_ptr(),
25063        &ldb,
25064        alpha,
25065        beta,
25066        u.as_mut_ptr(),
25067        &ldu,
25068        v.as_mut_ptr(),
25069        &ldv,
25070        q.as_mut_ptr(),
25071        &ldq,
25072        work.as_mut_ptr(),
25073        iwork.as_mut_ptr(),
25074        info,
25075    )
25076}
25077
25078#[inline]
25079pub unsafe fn cggsvd(
25080    jobu: u8,
25081    jobv: u8,
25082    jobq: u8,
25083    m: i32,
25084    n: i32,
25085    p: i32,
25086    k: &mut i32,
25087    l: &mut i32,
25088    a: &mut [c32],
25089    lda: i32,
25090    b: &mut [c32],
25091    ldb: i32,
25092    alpha: &mut f32,
25093    beta: &mut f32,
25094    u: &mut [c32],
25095    ldu: i32,
25096    v: &mut [c32],
25097    ldv: i32,
25098    q: &mut [c32],
25099    ldq: i32,
25100    work: &mut [c32],
25101    rwork: &mut [f32],
25102    iwork: &mut [i32],
25103    info: &mut i32,
25104) {
25105    ffi::cggsvd_(
25106        &(jobu as c_char),
25107        &(jobv as c_char),
25108        &(jobq as c_char),
25109        &m,
25110        &n,
25111        &p,
25112        k,
25113        l,
25114        a.as_mut_ptr() as *mut _,
25115        &lda,
25116        b.as_mut_ptr() as *mut _,
25117        &ldb,
25118        alpha,
25119        beta,
25120        u.as_mut_ptr() as *mut _,
25121        &ldu,
25122        v.as_mut_ptr() as *mut _,
25123        &ldv,
25124        q.as_mut_ptr() as *mut _,
25125        &ldq,
25126        work.as_mut_ptr() as *mut _,
25127        rwork.as_mut_ptr(),
25128        iwork.as_mut_ptr(),
25129        info,
25130    )
25131}
25132
25133#[inline]
25134pub unsafe fn zggsvd(
25135    jobu: u8,
25136    jobv: u8,
25137    jobq: u8,
25138    m: i32,
25139    n: i32,
25140    p: i32,
25141    k: &mut i32,
25142    l: &mut i32,
25143    a: &mut [c64],
25144    lda: i32,
25145    b: &mut [c64],
25146    ldb: i32,
25147    alpha: &mut f64,
25148    beta: &mut f64,
25149    u: &mut [c64],
25150    ldu: i32,
25151    v: &mut [c64],
25152    ldv: i32,
25153    q: &mut [c64],
25154    ldq: i32,
25155    work: &mut [c64],
25156    rwork: &mut [f64],
25157    iwork: &mut [i32],
25158    info: &mut i32,
25159) {
25160    ffi::zggsvd_(
25161        &(jobu as c_char),
25162        &(jobv as c_char),
25163        &(jobq as c_char),
25164        &m,
25165        &n,
25166        &p,
25167        k,
25168        l,
25169        a.as_mut_ptr() as *mut _,
25170        &lda,
25171        b.as_mut_ptr() as *mut _,
25172        &ldb,
25173        alpha,
25174        beta,
25175        u.as_mut_ptr() as *mut _,
25176        &ldu,
25177        v.as_mut_ptr() as *mut _,
25178        &ldv,
25179        q.as_mut_ptr() as *mut _,
25180        &ldq,
25181        work.as_mut_ptr() as *mut _,
25182        rwork.as_mut_ptr(),
25183        iwork.as_mut_ptr(),
25184        info,
25185    )
25186}
25187
25188#[inline]
25189pub unsafe fn sggsvd3(
25190    jobu: u8,
25191    jobv: u8,
25192    jobq: u8,
25193    m: i32,
25194    n: i32,
25195    p: i32,
25196    k: &mut i32,
25197    l: &mut i32,
25198    a: &mut [f32],
25199    lda: i32,
25200    b: &mut [f32],
25201    ldb: i32,
25202    alpha: &mut f32,
25203    beta: &mut f32,
25204    u: &mut [f32],
25205    ldu: i32,
25206    v: &mut [f32],
25207    ldv: i32,
25208    q: &mut [f32],
25209    ldq: i32,
25210    work: &mut [f32],
25211    lwork: i32,
25212    iwork: &mut [i32],
25213    info: &mut i32,
25214) {
25215    ffi::sggsvd3_(
25216        &(jobu as c_char),
25217        &(jobv as c_char),
25218        &(jobq as c_char),
25219        &m,
25220        &n,
25221        &p,
25222        k,
25223        l,
25224        a.as_mut_ptr(),
25225        &lda,
25226        b.as_mut_ptr(),
25227        &ldb,
25228        alpha,
25229        beta,
25230        u.as_mut_ptr(),
25231        &ldu,
25232        v.as_mut_ptr(),
25233        &ldv,
25234        q.as_mut_ptr(),
25235        &ldq,
25236        work.as_mut_ptr(),
25237        &lwork,
25238        iwork.as_mut_ptr(),
25239        info,
25240    )
25241}
25242
25243#[inline]
25244pub unsafe fn dggsvd3(
25245    jobu: u8,
25246    jobv: u8,
25247    jobq: u8,
25248    m: i32,
25249    n: i32,
25250    p: i32,
25251    k: &mut i32,
25252    l: &mut i32,
25253    a: &mut [f64],
25254    lda: i32,
25255    b: &mut [f64],
25256    ldb: i32,
25257    alpha: &mut f64,
25258    beta: &mut f64,
25259    u: &mut [f64],
25260    ldu: i32,
25261    v: &mut [f64],
25262    ldv: i32,
25263    q: &mut [f64],
25264    ldq: i32,
25265    work: &mut [f64],
25266    lwork: i32,
25267    iwork: &mut [i32],
25268    info: &mut i32,
25269) {
25270    ffi::dggsvd3_(
25271        &(jobu as c_char),
25272        &(jobv as c_char),
25273        &(jobq as c_char),
25274        &m,
25275        &n,
25276        &p,
25277        k,
25278        l,
25279        a.as_mut_ptr(),
25280        &lda,
25281        b.as_mut_ptr(),
25282        &ldb,
25283        alpha,
25284        beta,
25285        u.as_mut_ptr(),
25286        &ldu,
25287        v.as_mut_ptr(),
25288        &ldv,
25289        q.as_mut_ptr(),
25290        &ldq,
25291        work.as_mut_ptr(),
25292        &lwork,
25293        iwork.as_mut_ptr(),
25294        info,
25295    )
25296}
25297
25298#[inline]
25299pub unsafe fn cggsvd3(
25300    jobu: u8,
25301    jobv: u8,
25302    jobq: u8,
25303    m: i32,
25304    n: i32,
25305    p: i32,
25306    k: &mut i32,
25307    l: &mut i32,
25308    a: &mut [c32],
25309    lda: i32,
25310    b: &mut [c32],
25311    ldb: i32,
25312    alpha: &mut f32,
25313    beta: &mut f32,
25314    u: &mut [c32],
25315    ldu: i32,
25316    v: &mut [c32],
25317    ldv: i32,
25318    q: &mut [c32],
25319    ldq: i32,
25320    work: &mut [c32],
25321    lwork: i32,
25322    rwork: &mut [f32],
25323    iwork: &mut [i32],
25324    info: &mut i32,
25325) {
25326    ffi::cggsvd3_(
25327        &(jobu as c_char),
25328        &(jobv as c_char),
25329        &(jobq as c_char),
25330        &m,
25331        &n,
25332        &p,
25333        k,
25334        l,
25335        a.as_mut_ptr() as *mut _,
25336        &lda,
25337        b.as_mut_ptr() as *mut _,
25338        &ldb,
25339        alpha,
25340        beta,
25341        u.as_mut_ptr() as *mut _,
25342        &ldu,
25343        v.as_mut_ptr() as *mut _,
25344        &ldv,
25345        q.as_mut_ptr() as *mut _,
25346        &ldq,
25347        work.as_mut_ptr() as *mut _,
25348        &lwork,
25349        rwork.as_mut_ptr(),
25350        iwork.as_mut_ptr(),
25351        info,
25352    )
25353}
25354
25355#[inline]
25356pub unsafe fn zggsvd3(
25357    jobu: u8,
25358    jobv: u8,
25359    jobq: u8,
25360    m: i32,
25361    n: i32,
25362    p: i32,
25363    k: &mut i32,
25364    l: &mut i32,
25365    a: &mut [c64],
25366    lda: i32,
25367    b: &mut [c64],
25368    ldb: i32,
25369    alpha: &mut f64,
25370    beta: &mut f64,
25371    u: &mut [c64],
25372    ldu: i32,
25373    v: &mut [c64],
25374    ldv: i32,
25375    q: &mut [c64],
25376    ldq: i32,
25377    work: &mut [c64],
25378    lwork: i32,
25379    rwork: &mut [f64],
25380    iwork: &mut [i32],
25381    info: &mut i32,
25382) {
25383    ffi::zggsvd3_(
25384        &(jobu as c_char),
25385        &(jobv as c_char),
25386        &(jobq as c_char),
25387        &m,
25388        &n,
25389        &p,
25390        k,
25391        l,
25392        a.as_mut_ptr() as *mut _,
25393        &lda,
25394        b.as_mut_ptr() as *mut _,
25395        &ldb,
25396        alpha,
25397        beta,
25398        u.as_mut_ptr() as *mut _,
25399        &ldu,
25400        v.as_mut_ptr() as *mut _,
25401        &ldv,
25402        q.as_mut_ptr() as *mut _,
25403        &ldq,
25404        work.as_mut_ptr() as *mut _,
25405        &lwork,
25406        rwork.as_mut_ptr(),
25407        iwork.as_mut_ptr(),
25408        info,
25409    )
25410}
25411
25412#[inline]
25413pub unsafe fn ssygv(
25414    itype: &[i32],
25415    jobz: u8,
25416    uplo: u8,
25417    n: i32,
25418    a: &mut [f32],
25419    lda: i32,
25420    b: &mut [f32],
25421    ldb: i32,
25422    w: &mut [f32],
25423    work: &mut [f32],
25424    lwork: i32,
25425    info: &mut i32,
25426) {
25427    ffi::ssygv_(
25428        itype.as_ptr(),
25429        &(jobz as c_char),
25430        &(uplo as c_char),
25431        &n,
25432        a.as_mut_ptr(),
25433        &lda,
25434        b.as_mut_ptr(),
25435        &ldb,
25436        w.as_mut_ptr(),
25437        work.as_mut_ptr(),
25438        &lwork,
25439        info,
25440    )
25441}
25442
25443#[inline]
25444pub unsafe fn dsygv(
25445    itype: &[i32],
25446    jobz: u8,
25447    uplo: u8,
25448    n: i32,
25449    a: &mut [f64],
25450    lda: i32,
25451    b: &mut [f64],
25452    ldb: i32,
25453    w: &mut [f64],
25454    work: &mut [f64],
25455    lwork: i32,
25456    info: &mut i32,
25457) {
25458    ffi::dsygv_(
25459        itype.as_ptr(),
25460        &(jobz as c_char),
25461        &(uplo as c_char),
25462        &n,
25463        a.as_mut_ptr(),
25464        &lda,
25465        b.as_mut_ptr(),
25466        &ldb,
25467        w.as_mut_ptr(),
25468        work.as_mut_ptr(),
25469        &lwork,
25470        info,
25471    )
25472}
25473
25474#[inline]
25475pub unsafe fn chegv(
25476    itype: &[i32],
25477    jobz: u8,
25478    uplo: u8,
25479    n: i32,
25480    a: &mut [c32],
25481    lda: i32,
25482    b: &mut [c32],
25483    ldb: i32,
25484    w: &mut [f32],
25485    work: &mut [c32],
25486    lwork: i32,
25487    rwork: &mut [f32],
25488    info: &mut i32,
25489) {
25490    ffi::chegv_(
25491        itype.as_ptr(),
25492        &(jobz as c_char),
25493        &(uplo as c_char),
25494        &n,
25495        a.as_mut_ptr() as *mut _,
25496        &lda,
25497        b.as_mut_ptr() as *mut _,
25498        &ldb,
25499        w.as_mut_ptr(),
25500        work.as_mut_ptr() as *mut _,
25501        &lwork,
25502        rwork.as_mut_ptr(),
25503        info,
25504    )
25505}
25506
25507#[inline]
25508pub unsafe fn zhegv(
25509    itype: &[i32],
25510    jobz: u8,
25511    uplo: u8,
25512    n: i32,
25513    a: &mut [c64],
25514    lda: i32,
25515    b: &mut [c64],
25516    ldb: i32,
25517    w: &mut [f64],
25518    work: &mut [c64],
25519    lwork: i32,
25520    rwork: &mut [f64],
25521    info: &mut i32,
25522) {
25523    ffi::zhegv_(
25524        itype.as_ptr(),
25525        &(jobz as c_char),
25526        &(uplo as c_char),
25527        &n,
25528        a.as_mut_ptr() as *mut _,
25529        &lda,
25530        b.as_mut_ptr() as *mut _,
25531        &ldb,
25532        w.as_mut_ptr(),
25533        work.as_mut_ptr() as *mut _,
25534        &lwork,
25535        rwork.as_mut_ptr(),
25536        info,
25537    )
25538}
25539
25540#[inline]
25541pub unsafe fn ssygvd(
25542    itype: &[i32],
25543    jobz: u8,
25544    uplo: u8,
25545    n: i32,
25546    a: &mut [f32],
25547    lda: i32,
25548    b: &mut [f32],
25549    ldb: i32,
25550    w: &mut [f32],
25551    work: &mut [f32],
25552    lwork: i32,
25553    iwork: &mut [i32],
25554    liwork: i32,
25555    info: &mut i32,
25556) {
25557    ffi::ssygvd_(
25558        itype.as_ptr(),
25559        &(jobz as c_char),
25560        &(uplo as c_char),
25561        &n,
25562        a.as_mut_ptr(),
25563        &lda,
25564        b.as_mut_ptr(),
25565        &ldb,
25566        w.as_mut_ptr(),
25567        work.as_mut_ptr(),
25568        &lwork,
25569        iwork.as_mut_ptr(),
25570        &liwork,
25571        info,
25572    )
25573}
25574
25575#[inline]
25576pub unsafe fn dsygvd(
25577    itype: &[i32],
25578    jobz: u8,
25579    uplo: u8,
25580    n: i32,
25581    a: &mut [f64],
25582    lda: i32,
25583    b: &mut [f64],
25584    ldb: i32,
25585    w: &mut [f64],
25586    work: &mut [f64],
25587    lwork: i32,
25588    iwork: &mut [i32],
25589    liwork: i32,
25590    info: &mut i32,
25591) {
25592    ffi::dsygvd_(
25593        itype.as_ptr(),
25594        &(jobz as c_char),
25595        &(uplo as c_char),
25596        &n,
25597        a.as_mut_ptr(),
25598        &lda,
25599        b.as_mut_ptr(),
25600        &ldb,
25601        w.as_mut_ptr(),
25602        work.as_mut_ptr(),
25603        &lwork,
25604        iwork.as_mut_ptr(),
25605        &liwork,
25606        info,
25607    )
25608}
25609
25610#[inline]
25611pub unsafe fn chegvd(
25612    itype: &[i32],
25613    jobz: u8,
25614    uplo: u8,
25615    n: i32,
25616    a: &mut [c32],
25617    lda: i32,
25618    b: &mut [c32],
25619    ldb: i32,
25620    w: &mut [f32],
25621    work: &mut [c32],
25622    lwork: i32,
25623    rwork: &mut [f32],
25624    lrwork: i32,
25625    iwork: &mut [i32],
25626    liwork: i32,
25627    info: &mut i32,
25628) {
25629    ffi::chegvd_(
25630        itype.as_ptr(),
25631        &(jobz as c_char),
25632        &(uplo as c_char),
25633        &n,
25634        a.as_mut_ptr() as *mut _,
25635        &lda,
25636        b.as_mut_ptr() as *mut _,
25637        &ldb,
25638        w.as_mut_ptr(),
25639        work.as_mut_ptr() as *mut _,
25640        &lwork,
25641        rwork.as_mut_ptr(),
25642        &lrwork,
25643        iwork.as_mut_ptr(),
25644        &liwork,
25645        info,
25646    )
25647}
25648
25649#[inline]
25650pub unsafe fn zhegvd(
25651    itype: &[i32],
25652    jobz: u8,
25653    uplo: u8,
25654    n: i32,
25655    a: &mut [c64],
25656    lda: i32,
25657    b: &mut [c64],
25658    ldb: i32,
25659    w: &mut [f64],
25660    work: &mut [c64],
25661    lwork: i32,
25662    rwork: &mut [f64],
25663    lrwork: i32,
25664    iwork: &mut [i32],
25665    liwork: i32,
25666    info: &mut i32,
25667) {
25668    ffi::zhegvd_(
25669        itype.as_ptr(),
25670        &(jobz as c_char),
25671        &(uplo as c_char),
25672        &n,
25673        a.as_mut_ptr() as *mut _,
25674        &lda,
25675        b.as_mut_ptr() as *mut _,
25676        &ldb,
25677        w.as_mut_ptr(),
25678        work.as_mut_ptr() as *mut _,
25679        &lwork,
25680        rwork.as_mut_ptr(),
25681        &lrwork,
25682        iwork.as_mut_ptr(),
25683        &liwork,
25684        info,
25685    )
25686}
25687
25688#[inline]
25689pub unsafe fn ssygvx(
25690    itype: &[i32],
25691    jobz: u8,
25692    range: u8,
25693    uplo: u8,
25694    n: i32,
25695    a: &mut [f32],
25696    lda: i32,
25697    b: &mut [f32],
25698    ldb: i32,
25699    vl: f32,
25700    vu: f32,
25701    il: i32,
25702    iu: i32,
25703    abstol: f32,
25704    m: &mut i32,
25705    w: &mut [f32],
25706    z: &mut [f32],
25707    ldz: i32,
25708    work: &mut [f32],
25709    lwork: i32,
25710    iwork: &mut [i32],
25711    ifail: &mut [i32],
25712    info: &mut i32,
25713) {
25714    ffi::ssygvx_(
25715        itype.as_ptr(),
25716        &(jobz as c_char),
25717        &(range as c_char),
25718        &(uplo as c_char),
25719        &n,
25720        a.as_mut_ptr(),
25721        &lda,
25722        b.as_mut_ptr(),
25723        &ldb,
25724        &vl,
25725        &vu,
25726        &il,
25727        &iu,
25728        &abstol,
25729        m,
25730        w.as_mut_ptr(),
25731        z.as_mut_ptr(),
25732        &ldz,
25733        work.as_mut_ptr(),
25734        &lwork,
25735        iwork.as_mut_ptr(),
25736        ifail.as_mut_ptr(),
25737        info,
25738    )
25739}
25740
25741#[inline]
25742pub unsafe fn dsygvx(
25743    itype: &[i32],
25744    jobz: u8,
25745    range: u8,
25746    uplo: u8,
25747    n: i32,
25748    a: &mut [f64],
25749    lda: i32,
25750    b: &mut [f64],
25751    ldb: i32,
25752    vl: f64,
25753    vu: f64,
25754    il: i32,
25755    iu: i32,
25756    abstol: f64,
25757    m: &mut i32,
25758    w: &mut [f64],
25759    z: &mut [f64],
25760    ldz: i32,
25761    work: &mut [f64],
25762    lwork: i32,
25763    iwork: &mut [i32],
25764    ifail: &mut [i32],
25765    info: &mut i32,
25766) {
25767    ffi::dsygvx_(
25768        itype.as_ptr(),
25769        &(jobz as c_char),
25770        &(range as c_char),
25771        &(uplo as c_char),
25772        &n,
25773        a.as_mut_ptr(),
25774        &lda,
25775        b.as_mut_ptr(),
25776        &ldb,
25777        &vl,
25778        &vu,
25779        &il,
25780        &iu,
25781        &abstol,
25782        m,
25783        w.as_mut_ptr(),
25784        z.as_mut_ptr(),
25785        &ldz,
25786        work.as_mut_ptr(),
25787        &lwork,
25788        iwork.as_mut_ptr(),
25789        ifail.as_mut_ptr(),
25790        info,
25791    )
25792}
25793
25794#[inline]
25795pub unsafe fn chegvx(
25796    itype: &[i32],
25797    jobz: u8,
25798    range: u8,
25799    uplo: u8,
25800    n: i32,
25801    a: &mut [c32],
25802    lda: i32,
25803    b: &mut [c32],
25804    ldb: i32,
25805    vl: f32,
25806    vu: f32,
25807    il: i32,
25808    iu: i32,
25809    abstol: f32,
25810    m: &mut i32,
25811    w: &mut [f32],
25812    z: &mut [c32],
25813    ldz: i32,
25814    work: &mut [c32],
25815    lwork: i32,
25816    rwork: &mut [f32],
25817    iwork: &mut [i32],
25818    ifail: &mut [i32],
25819    info: &mut i32,
25820) {
25821    ffi::chegvx_(
25822        itype.as_ptr(),
25823        &(jobz as c_char),
25824        &(range as c_char),
25825        &(uplo as c_char),
25826        &n,
25827        a.as_mut_ptr() as *mut _,
25828        &lda,
25829        b.as_mut_ptr() as *mut _,
25830        &ldb,
25831        &vl,
25832        &vu,
25833        &il,
25834        &iu,
25835        &abstol,
25836        m,
25837        w.as_mut_ptr(),
25838        z.as_mut_ptr() as *mut _,
25839        &ldz,
25840        work.as_mut_ptr() as *mut _,
25841        &lwork,
25842        rwork.as_mut_ptr(),
25843        iwork.as_mut_ptr(),
25844        ifail.as_mut_ptr(),
25845        info,
25846    )
25847}
25848
25849#[inline]
25850pub unsafe fn zhegvx(
25851    itype: &[i32],
25852    jobz: u8,
25853    range: u8,
25854    uplo: u8,
25855    n: i32,
25856    a: &mut [c64],
25857    lda: i32,
25858    b: &mut [c64],
25859    ldb: i32,
25860    vl: f64,
25861    vu: f64,
25862    il: i32,
25863    iu: i32,
25864    abstol: f64,
25865    m: &mut i32,
25866    w: &mut [f64],
25867    z: &mut [c64],
25868    ldz: i32,
25869    work: &mut [c64],
25870    lwork: i32,
25871    rwork: &mut [f64],
25872    iwork: &mut [i32],
25873    ifail: &mut [i32],
25874    info: &mut i32,
25875) {
25876    ffi::zhegvx_(
25877        itype.as_ptr(),
25878        &(jobz as c_char),
25879        &(range as c_char),
25880        &(uplo as c_char),
25881        &n,
25882        a.as_mut_ptr() as *mut _,
25883        &lda,
25884        b.as_mut_ptr() as *mut _,
25885        &ldb,
25886        &vl,
25887        &vu,
25888        &il,
25889        &iu,
25890        &abstol,
25891        m,
25892        w.as_mut_ptr(),
25893        z.as_mut_ptr() as *mut _,
25894        &ldz,
25895        work.as_mut_ptr() as *mut _,
25896        &lwork,
25897        rwork.as_mut_ptr(),
25898        iwork.as_mut_ptr(),
25899        ifail.as_mut_ptr(),
25900        info,
25901    )
25902}
25903
25904#[inline]
25905pub unsafe fn sspgv(
25906    itype: &[i32],
25907    jobz: u8,
25908    uplo: u8,
25909    n: i32,
25910    ap: &mut [f32],
25911    bp: &mut [f32],
25912    w: &mut [f32],
25913    z: &mut [f32],
25914    ldz: i32,
25915    work: &mut [f32],
25916    info: &mut i32,
25917) {
25918    ffi::sspgv_(
25919        itype.as_ptr(),
25920        &(jobz as c_char),
25921        &(uplo as c_char),
25922        &n,
25923        ap.as_mut_ptr(),
25924        bp.as_mut_ptr(),
25925        w.as_mut_ptr(),
25926        z.as_mut_ptr(),
25927        &ldz,
25928        work.as_mut_ptr(),
25929        info,
25930    )
25931}
25932
25933#[inline]
25934pub unsafe fn dspgv(
25935    itype: &[i32],
25936    jobz: u8,
25937    uplo: u8,
25938    n: i32,
25939    ap: &mut [f64],
25940    bp: &mut [f64],
25941    w: &mut [f64],
25942    z: &mut [f64],
25943    ldz: i32,
25944    work: &mut [f64],
25945    info: &mut i32,
25946) {
25947    ffi::dspgv_(
25948        itype.as_ptr(),
25949        &(jobz as c_char),
25950        &(uplo as c_char),
25951        &n,
25952        ap.as_mut_ptr(),
25953        bp.as_mut_ptr(),
25954        w.as_mut_ptr(),
25955        z.as_mut_ptr(),
25956        &ldz,
25957        work.as_mut_ptr(),
25958        info,
25959    )
25960}
25961
25962#[inline]
25963pub unsafe fn chpgv(
25964    itype: &[i32],
25965    jobz: u8,
25966    uplo: u8,
25967    n: i32,
25968    ap: &mut [c32],
25969    bp: &mut [c32],
25970    w: &mut [f32],
25971    z: &mut [c32],
25972    ldz: i32,
25973    work: &mut [c32],
25974    rwork: &mut [f32],
25975    info: &mut i32,
25976) {
25977    ffi::chpgv_(
25978        itype.as_ptr(),
25979        &(jobz as c_char),
25980        &(uplo as c_char),
25981        &n,
25982        ap.as_mut_ptr() as *mut _,
25983        bp.as_mut_ptr() as *mut _,
25984        w.as_mut_ptr(),
25985        z.as_mut_ptr() as *mut _,
25986        &ldz,
25987        work.as_mut_ptr() as *mut _,
25988        rwork.as_mut_ptr(),
25989        info,
25990    )
25991}
25992
25993#[inline]
25994pub unsafe fn zhpgv(
25995    itype: &[i32],
25996    jobz: u8,
25997    uplo: u8,
25998    n: i32,
25999    ap: &mut [c64],
26000    bp: &mut [c64],
26001    w: &mut [f64],
26002    z: &mut [c64],
26003    ldz: i32,
26004    work: &mut [c64],
26005    rwork: &mut [f64],
26006    info: &mut i32,
26007) {
26008    ffi::zhpgv_(
26009        itype.as_ptr(),
26010        &(jobz as c_char),
26011        &(uplo as c_char),
26012        &n,
26013        ap.as_mut_ptr() as *mut _,
26014        bp.as_mut_ptr() as *mut _,
26015        w.as_mut_ptr(),
26016        z.as_mut_ptr() as *mut _,
26017        &ldz,
26018        work.as_mut_ptr() as *mut _,
26019        rwork.as_mut_ptr(),
26020        info,
26021    )
26022}
26023
26024#[inline]
26025pub unsafe fn sspgvd(
26026    itype: &[i32],
26027    jobz: u8,
26028    uplo: u8,
26029    n: i32,
26030    ap: &mut [f32],
26031    bp: &mut [f32],
26032    w: &mut [f32],
26033    z: &mut [f32],
26034    ldz: i32,
26035    work: &mut [f32],
26036    lwork: i32,
26037    iwork: &mut [i32],
26038    liwork: i32,
26039    info: &mut i32,
26040) {
26041    ffi::sspgvd_(
26042        itype.as_ptr(),
26043        &(jobz as c_char),
26044        &(uplo as c_char),
26045        &n,
26046        ap.as_mut_ptr(),
26047        bp.as_mut_ptr(),
26048        w.as_mut_ptr(),
26049        z.as_mut_ptr(),
26050        &ldz,
26051        work.as_mut_ptr(),
26052        &lwork,
26053        iwork.as_mut_ptr(),
26054        &liwork,
26055        info,
26056    )
26057}
26058
26059#[inline]
26060pub unsafe fn dspgvd(
26061    itype: &[i32],
26062    jobz: u8,
26063    uplo: u8,
26064    n: i32,
26065    ap: &mut [f64],
26066    bp: &mut [f64],
26067    w: &mut [f64],
26068    z: &mut [f64],
26069    ldz: i32,
26070    work: &mut [f64],
26071    lwork: i32,
26072    iwork: &mut [i32],
26073    liwork: i32,
26074    info: &mut i32,
26075) {
26076    ffi::dspgvd_(
26077        itype.as_ptr(),
26078        &(jobz as c_char),
26079        &(uplo as c_char),
26080        &n,
26081        ap.as_mut_ptr(),
26082        bp.as_mut_ptr(),
26083        w.as_mut_ptr(),
26084        z.as_mut_ptr(),
26085        &ldz,
26086        work.as_mut_ptr(),
26087        &lwork,
26088        iwork.as_mut_ptr(),
26089        &liwork,
26090        info,
26091    )
26092}
26093
26094#[inline]
26095pub unsafe fn chpgvd(
26096    itype: &[i32],
26097    jobz: u8,
26098    uplo: u8,
26099    n: i32,
26100    ap: &mut [c32],
26101    bp: &mut [c32],
26102    w: &mut [f32],
26103    z: &mut [c32],
26104    ldz: i32,
26105    work: &mut [c32],
26106    lwork: i32,
26107    rwork: &mut [f32],
26108    lrwork: i32,
26109    iwork: &mut [i32],
26110    liwork: i32,
26111    info: &mut i32,
26112) {
26113    ffi::chpgvd_(
26114        itype.as_ptr(),
26115        &(jobz as c_char),
26116        &(uplo as c_char),
26117        &n,
26118        ap.as_mut_ptr() as *mut _,
26119        bp.as_mut_ptr() as *mut _,
26120        w.as_mut_ptr(),
26121        z.as_mut_ptr() as *mut _,
26122        &ldz,
26123        work.as_mut_ptr() as *mut _,
26124        &lwork,
26125        rwork.as_mut_ptr(),
26126        &lrwork,
26127        iwork.as_mut_ptr(),
26128        &liwork,
26129        info,
26130    )
26131}
26132
26133#[inline]
26134pub unsafe fn zhpgvd(
26135    itype: &[i32],
26136    jobz: u8,
26137    uplo: u8,
26138    n: i32,
26139    ap: &mut [c64],
26140    bp: &mut [c64],
26141    w: &mut [f64],
26142    z: &mut [c64],
26143    ldz: i32,
26144    work: &mut [c64],
26145    lwork: i32,
26146    rwork: &mut [f64],
26147    lrwork: i32,
26148    iwork: &mut [i32],
26149    liwork: i32,
26150    info: &mut i32,
26151) {
26152    ffi::zhpgvd_(
26153        itype.as_ptr(),
26154        &(jobz as c_char),
26155        &(uplo as c_char),
26156        &n,
26157        ap.as_mut_ptr() as *mut _,
26158        bp.as_mut_ptr() as *mut _,
26159        w.as_mut_ptr(),
26160        z.as_mut_ptr() as *mut _,
26161        &ldz,
26162        work.as_mut_ptr() as *mut _,
26163        &lwork,
26164        rwork.as_mut_ptr(),
26165        &lrwork,
26166        iwork.as_mut_ptr(),
26167        &liwork,
26168        info,
26169    )
26170}
26171
26172#[inline]
26173pub unsafe fn sspgvx(
26174    itype: &[i32],
26175    jobz: u8,
26176    range: u8,
26177    uplo: u8,
26178    n: i32,
26179    ap: &mut [f32],
26180    bp: &mut [f32],
26181    vl: f32,
26182    vu: f32,
26183    il: i32,
26184    iu: i32,
26185    abstol: f32,
26186    m: &mut i32,
26187    w: &mut [f32],
26188    z: &mut [f32],
26189    ldz: i32,
26190    work: &mut [f32],
26191    iwork: &mut [i32],
26192    ifail: &mut [i32],
26193    info: &mut i32,
26194) {
26195    ffi::sspgvx_(
26196        itype.as_ptr(),
26197        &(jobz as c_char),
26198        &(range as c_char),
26199        &(uplo as c_char),
26200        &n,
26201        ap.as_mut_ptr(),
26202        bp.as_mut_ptr(),
26203        &vl,
26204        &vu,
26205        &il,
26206        &iu,
26207        &abstol,
26208        m,
26209        w.as_mut_ptr(),
26210        z.as_mut_ptr(),
26211        &ldz,
26212        work.as_mut_ptr(),
26213        iwork.as_mut_ptr(),
26214        ifail.as_mut_ptr(),
26215        info,
26216    )
26217}
26218
26219#[inline]
26220pub unsafe fn dspgvx(
26221    itype: &[i32],
26222    jobz: u8,
26223    range: u8,
26224    uplo: u8,
26225    n: i32,
26226    ap: &mut [f64],
26227    bp: &mut [f64],
26228    vl: f64,
26229    vu: f64,
26230    il: i32,
26231    iu: i32,
26232    abstol: f64,
26233    m: &mut i32,
26234    w: &mut [f64],
26235    z: &mut [f64],
26236    ldz: i32,
26237    work: &mut [f64],
26238    iwork: &mut [i32],
26239    ifail: &mut [i32],
26240    info: &mut i32,
26241) {
26242    ffi::dspgvx_(
26243        itype.as_ptr(),
26244        &(jobz as c_char),
26245        &(range as c_char),
26246        &(uplo as c_char),
26247        &n,
26248        ap.as_mut_ptr(),
26249        bp.as_mut_ptr(),
26250        &vl,
26251        &vu,
26252        &il,
26253        &iu,
26254        &abstol,
26255        m,
26256        w.as_mut_ptr(),
26257        z.as_mut_ptr(),
26258        &ldz,
26259        work.as_mut_ptr(),
26260        iwork.as_mut_ptr(),
26261        ifail.as_mut_ptr(),
26262        info,
26263    )
26264}
26265
26266#[inline]
26267pub unsafe fn chpgvx(
26268    itype: &[i32],
26269    jobz: u8,
26270    range: u8,
26271    uplo: u8,
26272    n: i32,
26273    ap: &mut [c32],
26274    bp: &mut [c32],
26275    vl: f32,
26276    vu: f32,
26277    il: i32,
26278    iu: i32,
26279    abstol: f32,
26280    m: &mut i32,
26281    w: &mut [f32],
26282    z: &mut [c32],
26283    ldz: i32,
26284    work: &mut [c32],
26285    rwork: &mut [f32],
26286    iwork: &mut [i32],
26287    ifail: &mut [i32],
26288    info: &mut i32,
26289) {
26290    ffi::chpgvx_(
26291        itype.as_ptr(),
26292        &(jobz as c_char),
26293        &(range as c_char),
26294        &(uplo as c_char),
26295        &n,
26296        ap.as_mut_ptr() as *mut _,
26297        bp.as_mut_ptr() as *mut _,
26298        &vl,
26299        &vu,
26300        &il,
26301        &iu,
26302        &abstol,
26303        m,
26304        w.as_mut_ptr(),
26305        z.as_mut_ptr() as *mut _,
26306        &ldz,
26307        work.as_mut_ptr() as *mut _,
26308        rwork.as_mut_ptr(),
26309        iwork.as_mut_ptr(),
26310        ifail.as_mut_ptr(),
26311        info,
26312    )
26313}
26314
26315#[inline]
26316pub unsafe fn zhpgvx(
26317    itype: &[i32],
26318    jobz: u8,
26319    range: u8,
26320    uplo: u8,
26321    n: i32,
26322    ap: &mut [c64],
26323    bp: &mut [c64],
26324    vl: f64,
26325    vu: f64,
26326    il: i32,
26327    iu: i32,
26328    abstol: f64,
26329    m: &mut i32,
26330    w: &mut [f64],
26331    z: &mut [c64],
26332    ldz: i32,
26333    work: &mut [c64],
26334    rwork: &mut [f64],
26335    iwork: &mut [i32],
26336    ifail: &mut [i32],
26337    info: &mut i32,
26338) {
26339    ffi::zhpgvx_(
26340        itype.as_ptr(),
26341        &(jobz as c_char),
26342        &(range as c_char),
26343        &(uplo as c_char),
26344        &n,
26345        ap.as_mut_ptr() as *mut _,
26346        bp.as_mut_ptr() as *mut _,
26347        &vl,
26348        &vu,
26349        &il,
26350        &iu,
26351        &abstol,
26352        m,
26353        w.as_mut_ptr(),
26354        z.as_mut_ptr() as *mut _,
26355        &ldz,
26356        work.as_mut_ptr() as *mut _,
26357        rwork.as_mut_ptr(),
26358        iwork.as_mut_ptr(),
26359        ifail.as_mut_ptr(),
26360        info,
26361    )
26362}
26363
26364#[inline]
26365pub unsafe fn ssbgv(
26366    jobz: u8,
26367    uplo: u8,
26368    n: i32,
26369    ka: i32,
26370    kb: i32,
26371    ab: &mut [f32],
26372    ldab: i32,
26373    bb: &mut [f32],
26374    ldbb: i32,
26375    w: &mut [f32],
26376    z: &mut [f32],
26377    ldz: i32,
26378    work: &mut [f32],
26379    info: &mut i32,
26380) {
26381    ffi::ssbgv_(
26382        &(jobz as c_char),
26383        &(uplo as c_char),
26384        &n,
26385        &ka,
26386        &kb,
26387        ab.as_mut_ptr(),
26388        &ldab,
26389        bb.as_mut_ptr(),
26390        &ldbb,
26391        w.as_mut_ptr(),
26392        z.as_mut_ptr(),
26393        &ldz,
26394        work.as_mut_ptr(),
26395        info,
26396    )
26397}
26398
26399#[inline]
26400pub unsafe fn dsbgv(
26401    jobz: u8,
26402    uplo: u8,
26403    n: i32,
26404    ka: i32,
26405    kb: i32,
26406    ab: &mut [f64],
26407    ldab: i32,
26408    bb: &mut [f64],
26409    ldbb: i32,
26410    w: &mut [f64],
26411    z: &mut [f64],
26412    ldz: i32,
26413    work: &mut [f64],
26414    info: &mut i32,
26415) {
26416    ffi::dsbgv_(
26417        &(jobz as c_char),
26418        &(uplo as c_char),
26419        &n,
26420        &ka,
26421        &kb,
26422        ab.as_mut_ptr(),
26423        &ldab,
26424        bb.as_mut_ptr(),
26425        &ldbb,
26426        w.as_mut_ptr(),
26427        z.as_mut_ptr(),
26428        &ldz,
26429        work.as_mut_ptr(),
26430        info,
26431    )
26432}
26433
26434#[inline]
26435pub unsafe fn chbgv(
26436    jobz: u8,
26437    uplo: u8,
26438    n: i32,
26439    ka: i32,
26440    kb: i32,
26441    ab: &mut [c32],
26442    ldab: i32,
26443    bb: &mut [c32],
26444    ldbb: i32,
26445    w: &mut [f32],
26446    z: &mut [c32],
26447    ldz: i32,
26448    work: &mut [c32],
26449    rwork: &mut [f32],
26450    info: &mut i32,
26451) {
26452    ffi::chbgv_(
26453        &(jobz as c_char),
26454        &(uplo as c_char),
26455        &n,
26456        &ka,
26457        &kb,
26458        ab.as_mut_ptr() as *mut _,
26459        &ldab,
26460        bb.as_mut_ptr() as *mut _,
26461        &ldbb,
26462        w.as_mut_ptr(),
26463        z.as_mut_ptr() as *mut _,
26464        &ldz,
26465        work.as_mut_ptr() as *mut _,
26466        rwork.as_mut_ptr(),
26467        info,
26468    )
26469}
26470
26471#[inline]
26472pub unsafe fn zhbgv(
26473    jobz: u8,
26474    uplo: u8,
26475    n: i32,
26476    ka: i32,
26477    kb: i32,
26478    ab: &mut [c64],
26479    ldab: i32,
26480    bb: &mut [c64],
26481    ldbb: i32,
26482    w: &mut [f64],
26483    z: &mut [c64],
26484    ldz: i32,
26485    work: &mut [c64],
26486    rwork: &mut [f64],
26487    info: &mut i32,
26488) {
26489    ffi::zhbgv_(
26490        &(jobz as c_char),
26491        &(uplo as c_char),
26492        &n,
26493        &ka,
26494        &kb,
26495        ab.as_mut_ptr() as *mut _,
26496        &ldab,
26497        bb.as_mut_ptr() as *mut _,
26498        &ldbb,
26499        w.as_mut_ptr(),
26500        z.as_mut_ptr() as *mut _,
26501        &ldz,
26502        work.as_mut_ptr() as *mut _,
26503        rwork.as_mut_ptr(),
26504        info,
26505    )
26506}
26507
26508#[inline]
26509pub unsafe fn ssbgvd(
26510    jobz: u8,
26511    uplo: u8,
26512    n: i32,
26513    ka: i32,
26514    kb: i32,
26515    ab: &mut [f32],
26516    ldab: i32,
26517    bb: &mut [f32],
26518    ldbb: i32,
26519    w: &mut [f32],
26520    z: &mut [f32],
26521    ldz: i32,
26522    work: &mut [f32],
26523    lwork: i32,
26524    iwork: &mut [i32],
26525    liwork: i32,
26526    info: &mut i32,
26527) {
26528    ffi::ssbgvd_(
26529        &(jobz as c_char),
26530        &(uplo as c_char),
26531        &n,
26532        &ka,
26533        &kb,
26534        ab.as_mut_ptr(),
26535        &ldab,
26536        bb.as_mut_ptr(),
26537        &ldbb,
26538        w.as_mut_ptr(),
26539        z.as_mut_ptr(),
26540        &ldz,
26541        work.as_mut_ptr(),
26542        &lwork,
26543        iwork.as_mut_ptr(),
26544        &liwork,
26545        info,
26546    )
26547}
26548
26549#[inline]
26550pub unsafe fn dsbgvd(
26551    jobz: u8,
26552    uplo: u8,
26553    n: i32,
26554    ka: i32,
26555    kb: i32,
26556    ab: &mut [f64],
26557    ldab: i32,
26558    bb: &mut [f64],
26559    ldbb: i32,
26560    w: &mut [f64],
26561    z: &mut [f64],
26562    ldz: i32,
26563    work: &mut [f64],
26564    lwork: i32,
26565    iwork: &mut [i32],
26566    liwork: i32,
26567    info: &mut i32,
26568) {
26569    ffi::dsbgvd_(
26570        &(jobz as c_char),
26571        &(uplo as c_char),
26572        &n,
26573        &ka,
26574        &kb,
26575        ab.as_mut_ptr(),
26576        &ldab,
26577        bb.as_mut_ptr(),
26578        &ldbb,
26579        w.as_mut_ptr(),
26580        z.as_mut_ptr(),
26581        &ldz,
26582        work.as_mut_ptr(),
26583        &lwork,
26584        iwork.as_mut_ptr(),
26585        &liwork,
26586        info,
26587    )
26588}
26589
26590#[inline]
26591pub unsafe fn chbgvd(
26592    jobz: u8,
26593    uplo: u8,
26594    n: i32,
26595    ka: i32,
26596    kb: i32,
26597    ab: &mut [c32],
26598    ldab: i32,
26599    bb: &mut [c32],
26600    ldbb: i32,
26601    w: &mut [f32],
26602    z: &mut [c32],
26603    ldz: i32,
26604    work: &mut [c32],
26605    lwork: i32,
26606    rwork: &mut [f32],
26607    lrwork: i32,
26608    iwork: &mut [i32],
26609    liwork: i32,
26610    info: &mut i32,
26611) {
26612    ffi::chbgvd_(
26613        &(jobz as c_char),
26614        &(uplo as c_char),
26615        &n,
26616        &ka,
26617        &kb,
26618        ab.as_mut_ptr() as *mut _,
26619        &ldab,
26620        bb.as_mut_ptr() as *mut _,
26621        &ldbb,
26622        w.as_mut_ptr(),
26623        z.as_mut_ptr() as *mut _,
26624        &ldz,
26625        work.as_mut_ptr() as *mut _,
26626        &lwork,
26627        rwork.as_mut_ptr(),
26628        &lrwork,
26629        iwork.as_mut_ptr(),
26630        &liwork,
26631        info,
26632    )
26633}
26634
26635#[inline]
26636pub unsafe fn zhbgvd(
26637    jobz: u8,
26638    uplo: u8,
26639    n: i32,
26640    ka: i32,
26641    kb: i32,
26642    ab: &mut [c64],
26643    ldab: i32,
26644    bb: &mut [c64],
26645    ldbb: i32,
26646    w: &mut [f64],
26647    z: &mut [c64],
26648    ldz: i32,
26649    work: &mut [c64],
26650    lwork: i32,
26651    rwork: &mut [f64],
26652    lrwork: i32,
26653    iwork: &mut [i32],
26654    liwork: i32,
26655    info: &mut i32,
26656) {
26657    ffi::zhbgvd_(
26658        &(jobz as c_char),
26659        &(uplo as c_char),
26660        &n,
26661        &ka,
26662        &kb,
26663        ab.as_mut_ptr() as *mut _,
26664        &ldab,
26665        bb.as_mut_ptr() as *mut _,
26666        &ldbb,
26667        w.as_mut_ptr(),
26668        z.as_mut_ptr() as *mut _,
26669        &ldz,
26670        work.as_mut_ptr() as *mut _,
26671        &lwork,
26672        rwork.as_mut_ptr(),
26673        &lrwork,
26674        iwork.as_mut_ptr(),
26675        &liwork,
26676        info,
26677    )
26678}
26679
26680#[inline]
26681pub unsafe fn ssbgvx(
26682    jobz: u8,
26683    range: u8,
26684    uplo: u8,
26685    n: i32,
26686    ka: i32,
26687    kb: i32,
26688    ab: &mut [f32],
26689    ldab: i32,
26690    bb: &mut [f32],
26691    ldbb: i32,
26692    q: &mut [f32],
26693    ldq: i32,
26694    vl: f32,
26695    vu: f32,
26696    il: i32,
26697    iu: i32,
26698    abstol: f32,
26699    m: &mut i32,
26700    w: &mut [f32],
26701    z: &mut [f32],
26702    ldz: i32,
26703    work: &mut [f32],
26704    iwork: &mut [i32],
26705    ifail: &mut [i32],
26706    info: &mut i32,
26707) {
26708    ffi::ssbgvx_(
26709        &(jobz as c_char),
26710        &(range as c_char),
26711        &(uplo as c_char),
26712        &n,
26713        &ka,
26714        &kb,
26715        ab.as_mut_ptr(),
26716        &ldab,
26717        bb.as_mut_ptr(),
26718        &ldbb,
26719        q.as_mut_ptr(),
26720        &ldq,
26721        &vl,
26722        &vu,
26723        &il,
26724        &iu,
26725        &abstol,
26726        m,
26727        w.as_mut_ptr(),
26728        z.as_mut_ptr(),
26729        &ldz,
26730        work.as_mut_ptr(),
26731        iwork.as_mut_ptr(),
26732        ifail.as_mut_ptr(),
26733        info,
26734    )
26735}
26736
26737#[inline]
26738pub unsafe fn dsbgvx(
26739    jobz: u8,
26740    range: u8,
26741    uplo: u8,
26742    n: i32,
26743    ka: i32,
26744    kb: i32,
26745    ab: &mut [f64],
26746    ldab: i32,
26747    bb: &mut [f64],
26748    ldbb: i32,
26749    q: &mut [f64],
26750    ldq: i32,
26751    vl: f64,
26752    vu: f64,
26753    il: i32,
26754    iu: i32,
26755    abstol: f64,
26756    m: &mut i32,
26757    w: &mut [f64],
26758    z: &mut [f64],
26759    ldz: i32,
26760    work: &mut [f64],
26761    iwork: &mut [i32],
26762    ifail: &mut [i32],
26763    info: &mut i32,
26764) {
26765    ffi::dsbgvx_(
26766        &(jobz as c_char),
26767        &(range as c_char),
26768        &(uplo as c_char),
26769        &n,
26770        &ka,
26771        &kb,
26772        ab.as_mut_ptr(),
26773        &ldab,
26774        bb.as_mut_ptr(),
26775        &ldbb,
26776        q.as_mut_ptr(),
26777        &ldq,
26778        &vl,
26779        &vu,
26780        &il,
26781        &iu,
26782        &abstol,
26783        m,
26784        w.as_mut_ptr(),
26785        z.as_mut_ptr(),
26786        &ldz,
26787        work.as_mut_ptr(),
26788        iwork.as_mut_ptr(),
26789        ifail.as_mut_ptr(),
26790        info,
26791    )
26792}
26793
26794#[inline]
26795pub unsafe fn chbgvx(
26796    jobz: u8,
26797    range: u8,
26798    uplo: u8,
26799    n: i32,
26800    ka: i32,
26801    kb: i32,
26802    ab: &mut [c32],
26803    ldab: i32,
26804    bb: &mut [c32],
26805    ldbb: i32,
26806    q: &mut [c32],
26807    ldq: i32,
26808    vl: f32,
26809    vu: f32,
26810    il: i32,
26811    iu: i32,
26812    abstol: f32,
26813    m: &mut i32,
26814    w: &mut [f32],
26815    z: &mut [c32],
26816    ldz: i32,
26817    work: &mut [c32],
26818    rwork: &mut [f32],
26819    iwork: &mut [i32],
26820    ifail: &mut [i32],
26821    info: &mut i32,
26822) {
26823    ffi::chbgvx_(
26824        &(jobz as c_char),
26825        &(range as c_char),
26826        &(uplo as c_char),
26827        &n,
26828        &ka,
26829        &kb,
26830        ab.as_mut_ptr() as *mut _,
26831        &ldab,
26832        bb.as_mut_ptr() as *mut _,
26833        &ldbb,
26834        q.as_mut_ptr() as *mut _,
26835        &ldq,
26836        &vl,
26837        &vu,
26838        &il,
26839        &iu,
26840        &abstol,
26841        m,
26842        w.as_mut_ptr(),
26843        z.as_mut_ptr() as *mut _,
26844        &ldz,
26845        work.as_mut_ptr() as *mut _,
26846        rwork.as_mut_ptr(),
26847        iwork.as_mut_ptr(),
26848        ifail.as_mut_ptr(),
26849        info,
26850    )
26851}
26852
26853#[inline]
26854pub unsafe fn zhbgvx(
26855    jobz: u8,
26856    range: u8,
26857    uplo: u8,
26858    n: i32,
26859    ka: i32,
26860    kb: i32,
26861    ab: &mut [c64],
26862    ldab: i32,
26863    bb: &mut [c64],
26864    ldbb: i32,
26865    q: &mut [c64],
26866    ldq: i32,
26867    vl: f64,
26868    vu: f64,
26869    il: i32,
26870    iu: i32,
26871    abstol: f64,
26872    m: &mut i32,
26873    w: &mut [f64],
26874    z: &mut [c64],
26875    ldz: i32,
26876    work: &mut [c64],
26877    rwork: &mut [f64],
26878    iwork: &mut [i32],
26879    ifail: &mut [i32],
26880    info: &mut i32,
26881) {
26882    ffi::zhbgvx_(
26883        &(jobz as c_char),
26884        &(range as c_char),
26885        &(uplo as c_char),
26886        &n,
26887        &ka,
26888        &kb,
26889        ab.as_mut_ptr() as *mut _,
26890        &ldab,
26891        bb.as_mut_ptr() as *mut _,
26892        &ldbb,
26893        q.as_mut_ptr() as *mut _,
26894        &ldq,
26895        &vl,
26896        &vu,
26897        &il,
26898        &iu,
26899        &abstol,
26900        m,
26901        w.as_mut_ptr(),
26902        z.as_mut_ptr() as *mut _,
26903        &ldz,
26904        work.as_mut_ptr() as *mut _,
26905        rwork.as_mut_ptr(),
26906        iwork.as_mut_ptr(),
26907        ifail.as_mut_ptr(),
26908        info,
26909    )
26910}
26911
26912#[inline]
26913pub unsafe fn sgges(
26914    jobvsl: u8,
26915    jobvsr: u8,
26916    sort: u8,
26917    selctg: Select3F32,
26918    n: i32,
26919    a: &mut [f32],
26920    lda: i32,
26921    b: &mut [f32],
26922    ldb: i32,
26923    sdim: &mut i32,
26924    alphar: &mut f32,
26925    alphai: &mut f32,
26926    beta: &mut f32,
26927    vsl: &mut [f32],
26928    ldvsl: i32,
26929    vsr: &mut [f32],
26930    ldvsr: i32,
26931    work: &mut [f32],
26932    lwork: i32,
26933    bwork: &mut [i32],
26934    info: &mut i32,
26935) {
26936    ffi::sgges_(
26937        &(jobvsl as c_char),
26938        &(jobvsr as c_char),
26939        &(sort as c_char),
26940        transmute(selctg),
26941        &n,
26942        a.as_mut_ptr(),
26943        &lda,
26944        b.as_mut_ptr(),
26945        &ldb,
26946        sdim,
26947        alphar,
26948        alphai,
26949        beta,
26950        vsl.as_mut_ptr(),
26951        &ldvsl,
26952        vsr.as_mut_ptr(),
26953        &ldvsr,
26954        work.as_mut_ptr(),
26955        &lwork,
26956        bwork.as_mut_ptr(),
26957        info,
26958    )
26959}
26960
26961#[inline]
26962pub unsafe fn dgges(
26963    jobvsl: u8,
26964    jobvsr: u8,
26965    sort: u8,
26966    selctg: Select3F64,
26967    n: i32,
26968    a: &mut [f64],
26969    lda: i32,
26970    b: &mut [f64],
26971    ldb: i32,
26972    sdim: &mut i32,
26973    alphar: &mut f64,
26974    alphai: &mut f64,
26975    beta: &mut f64,
26976    vsl: &mut [f64],
26977    ldvsl: i32,
26978    vsr: &mut [f64],
26979    ldvsr: i32,
26980    work: &mut [f64],
26981    lwork: i32,
26982    bwork: &mut [i32],
26983    info: &mut i32,
26984) {
26985    ffi::dgges_(
26986        &(jobvsl as c_char),
26987        &(jobvsr as c_char),
26988        &(sort as c_char),
26989        transmute(selctg),
26990        &n,
26991        a.as_mut_ptr(),
26992        &lda,
26993        b.as_mut_ptr(),
26994        &ldb,
26995        sdim,
26996        alphar,
26997        alphai,
26998        beta,
26999        vsl.as_mut_ptr(),
27000        &ldvsl,
27001        vsr.as_mut_ptr(),
27002        &ldvsr,
27003        work.as_mut_ptr(),
27004        &lwork,
27005        bwork.as_mut_ptr(),
27006        info,
27007    )
27008}
27009
27010#[inline]
27011pub unsafe fn cgges(
27012    jobvsl: u8,
27013    jobvsr: u8,
27014    sort: u8,
27015    selctg: Select2C32,
27016    n: i32,
27017    a: &mut [c32],
27018    lda: i32,
27019    b: &mut [c32],
27020    ldb: i32,
27021    sdim: &mut i32,
27022    alpha: &mut c32,
27023    beta: &mut c32,
27024    vsl: &mut [c32],
27025    ldvsl: i32,
27026    vsr: &mut [c32],
27027    ldvsr: i32,
27028    work: &mut [c32],
27029    lwork: i32,
27030    rwork: &mut [f32],
27031    bwork: &mut [i32],
27032    info: &mut i32,
27033) {
27034    ffi::cgges_(
27035        &(jobvsl as c_char),
27036        &(jobvsr as c_char),
27037        &(sort as c_char),
27038        transmute(selctg),
27039        &n,
27040        a.as_mut_ptr() as *mut _,
27041        &lda,
27042        b.as_mut_ptr() as *mut _,
27043        &ldb,
27044        sdim,
27045        alpha as *mut _ as *mut _,
27046        beta as *mut _ as *mut _,
27047        vsl.as_mut_ptr() as *mut _,
27048        &ldvsl,
27049        vsr.as_mut_ptr() as *mut _,
27050        &ldvsr,
27051        work.as_mut_ptr() as *mut _,
27052        &lwork,
27053        rwork.as_mut_ptr(),
27054        bwork.as_mut_ptr(),
27055        info,
27056    )
27057}
27058
27059#[inline]
27060pub unsafe fn zgges(
27061    jobvsl: u8,
27062    jobvsr: u8,
27063    sort: u8,
27064    selctg: Select2C64,
27065    n: i32,
27066    a: &mut [c64],
27067    lda: i32,
27068    b: &mut [c64],
27069    ldb: i32,
27070    sdim: &mut i32,
27071    alpha: &mut c64,
27072    beta: &mut c64,
27073    vsl: &mut [c64],
27074    ldvsl: i32,
27075    vsr: &mut [c64],
27076    ldvsr: i32,
27077    work: &mut [c64],
27078    lwork: i32,
27079    rwork: &mut [f64],
27080    bwork: &mut [i32],
27081    info: &mut i32,
27082) {
27083    ffi::zgges_(
27084        &(jobvsl as c_char),
27085        &(jobvsr as c_char),
27086        &(sort as c_char),
27087        transmute(selctg),
27088        &n,
27089        a.as_mut_ptr() as *mut _,
27090        &lda,
27091        b.as_mut_ptr() as *mut _,
27092        &ldb,
27093        sdim,
27094        alpha as *mut _ as *mut _,
27095        beta as *mut _ as *mut _,
27096        vsl.as_mut_ptr() as *mut _,
27097        &ldvsl,
27098        vsr.as_mut_ptr() as *mut _,
27099        &ldvsr,
27100        work.as_mut_ptr() as *mut _,
27101        &lwork,
27102        rwork.as_mut_ptr(),
27103        bwork.as_mut_ptr(),
27104        info,
27105    )
27106}
27107
27108#[inline]
27109pub unsafe fn sgges3(
27110    jobvsl: u8,
27111    jobvsr: u8,
27112    sort: u8,
27113    selctg: Select3F32,
27114    n: i32,
27115    a: &mut [f32],
27116    lda: i32,
27117    b: &mut [f32],
27118    ldb: i32,
27119    sdim: &mut i32,
27120    alphar: &mut f32,
27121    alphai: &mut f32,
27122    beta: &mut f32,
27123    vsl: &mut [f32],
27124    ldvsl: i32,
27125    vsr: &mut [f32],
27126    ldvsr: i32,
27127    work: &mut [f32],
27128    lwork: i32,
27129    bwork: &mut [i32],
27130    info: &mut i32,
27131) {
27132    ffi::sgges3_(
27133        &(jobvsl as c_char),
27134        &(jobvsr as c_char),
27135        &(sort as c_char),
27136        transmute(selctg),
27137        &n,
27138        a.as_mut_ptr(),
27139        &lda,
27140        b.as_mut_ptr(),
27141        &ldb,
27142        sdim,
27143        alphar,
27144        alphai,
27145        beta,
27146        vsl.as_mut_ptr(),
27147        &ldvsl,
27148        vsr.as_mut_ptr(),
27149        &ldvsr,
27150        work.as_mut_ptr(),
27151        &lwork,
27152        bwork.as_mut_ptr(),
27153        info,
27154    )
27155}
27156
27157#[inline]
27158pub unsafe fn dgges3(
27159    jobvsl: u8,
27160    jobvsr: u8,
27161    sort: u8,
27162    selctg: Select3F64,
27163    n: i32,
27164    a: &mut [f64],
27165    lda: i32,
27166    b: &mut [f64],
27167    ldb: i32,
27168    sdim: &mut i32,
27169    alphar: &mut f64,
27170    alphai: &mut f64,
27171    beta: &mut f64,
27172    vsl: &mut [f64],
27173    ldvsl: i32,
27174    vsr: &mut [f64],
27175    ldvsr: i32,
27176    work: &mut [f64],
27177    lwork: i32,
27178    bwork: &mut [i32],
27179    info: &mut i32,
27180) {
27181    ffi::dgges3_(
27182        &(jobvsl as c_char),
27183        &(jobvsr as c_char),
27184        &(sort as c_char),
27185        transmute(selctg),
27186        &n,
27187        a.as_mut_ptr(),
27188        &lda,
27189        b.as_mut_ptr(),
27190        &ldb,
27191        sdim,
27192        alphar,
27193        alphai,
27194        beta,
27195        vsl.as_mut_ptr(),
27196        &ldvsl,
27197        vsr.as_mut_ptr(),
27198        &ldvsr,
27199        work.as_mut_ptr(),
27200        &lwork,
27201        bwork.as_mut_ptr(),
27202        info,
27203    )
27204}
27205
27206#[inline]
27207pub unsafe fn cgges3(
27208    jobvsl: u8,
27209    jobvsr: u8,
27210    sort: u8,
27211    selctg: Select2C32,
27212    n: i32,
27213    a: &mut [c32],
27214    lda: i32,
27215    b: &mut [c32],
27216    ldb: i32,
27217    sdim: &mut i32,
27218    alpha: &mut c32,
27219    beta: &mut c32,
27220    vsl: &mut [c32],
27221    ldvsl: i32,
27222    vsr: &mut [c32],
27223    ldvsr: i32,
27224    work: &mut [c32],
27225    lwork: i32,
27226    rwork: &mut [f32],
27227    bwork: &mut [i32],
27228    info: &mut i32,
27229) {
27230    ffi::cgges3_(
27231        &(jobvsl as c_char),
27232        &(jobvsr as c_char),
27233        &(sort as c_char),
27234        transmute(selctg),
27235        &n,
27236        a.as_mut_ptr() as *mut _,
27237        &lda,
27238        b.as_mut_ptr() as *mut _,
27239        &ldb,
27240        sdim,
27241        alpha as *mut _ as *mut _,
27242        beta as *mut _ as *mut _,
27243        vsl.as_mut_ptr() as *mut _,
27244        &ldvsl,
27245        vsr.as_mut_ptr() as *mut _,
27246        &ldvsr,
27247        work.as_mut_ptr() as *mut _,
27248        &lwork,
27249        rwork.as_mut_ptr(),
27250        bwork.as_mut_ptr(),
27251        info,
27252    )
27253}
27254
27255#[inline]
27256pub unsafe fn zgges3(
27257    jobvsl: u8,
27258    jobvsr: u8,
27259    sort: u8,
27260    selctg: Select2C64,
27261    n: i32,
27262    a: &mut [c64],
27263    lda: i32,
27264    b: &mut [c64],
27265    ldb: i32,
27266    sdim: &mut i32,
27267    alpha: &mut c64,
27268    beta: &mut c64,
27269    vsl: &mut [c64],
27270    ldvsl: i32,
27271    vsr: &mut [c64],
27272    ldvsr: i32,
27273    work: &mut [c64],
27274    lwork: i32,
27275    rwork: &mut [f64],
27276    bwork: &mut [i32],
27277    info: &mut i32,
27278) {
27279    ffi::zgges3_(
27280        &(jobvsl as c_char),
27281        &(jobvsr as c_char),
27282        &(sort as c_char),
27283        transmute(selctg),
27284        &n,
27285        a.as_mut_ptr() as *mut _,
27286        &lda,
27287        b.as_mut_ptr() as *mut _,
27288        &ldb,
27289        sdim,
27290        alpha as *mut _ as *mut _,
27291        beta as *mut _ as *mut _,
27292        vsl.as_mut_ptr() as *mut _,
27293        &ldvsl,
27294        vsr.as_mut_ptr() as *mut _,
27295        &ldvsr,
27296        work.as_mut_ptr() as *mut _,
27297        &lwork,
27298        rwork.as_mut_ptr(),
27299        bwork.as_mut_ptr(),
27300        info,
27301    )
27302}
27303
27304#[inline]
27305pub unsafe fn sggesx(
27306    jobvsl: u8,
27307    jobvsr: u8,
27308    sort: u8,
27309    selctg: Select3F32,
27310    sense: u8,
27311    n: i32,
27312    a: &mut [f32],
27313    lda: i32,
27314    b: &mut [f32],
27315    ldb: i32,
27316    sdim: &mut i32,
27317    alphar: &mut f32,
27318    alphai: &mut f32,
27319    beta: &mut f32,
27320    vsl: &mut [f32],
27321    ldvsl: i32,
27322    vsr: &mut [f32],
27323    ldvsr: i32,
27324    rconde: &mut [f32],
27325    rcondv: &mut [f32],
27326    work: &mut [f32],
27327    lwork: i32,
27328    iwork: &mut [i32],
27329    liwork: i32,
27330    bwork: &mut [i32],
27331    info: &mut i32,
27332) {
27333    ffi::sggesx_(
27334        &(jobvsl as c_char),
27335        &(jobvsr as c_char),
27336        &(sort as c_char),
27337        transmute(selctg),
27338        &(sense as c_char),
27339        &n,
27340        a.as_mut_ptr(),
27341        &lda,
27342        b.as_mut_ptr(),
27343        &ldb,
27344        sdim,
27345        alphar,
27346        alphai,
27347        beta,
27348        vsl.as_mut_ptr(),
27349        &ldvsl,
27350        vsr.as_mut_ptr(),
27351        &ldvsr,
27352        rconde.as_mut_ptr(),
27353        rcondv.as_mut_ptr(),
27354        work.as_mut_ptr(),
27355        &lwork,
27356        iwork.as_mut_ptr(),
27357        &liwork,
27358        bwork.as_mut_ptr(),
27359        info,
27360    )
27361}
27362
27363#[inline]
27364pub unsafe fn dggesx(
27365    jobvsl: u8,
27366    jobvsr: u8,
27367    sort: u8,
27368    selctg: Select3F64,
27369    sense: u8,
27370    n: i32,
27371    a: &mut [f64],
27372    lda: i32,
27373    b: &mut [f64],
27374    ldb: i32,
27375    sdim: &mut i32,
27376    alphar: &mut f64,
27377    alphai: &mut f64,
27378    beta: &mut f64,
27379    vsl: &mut [f64],
27380    ldvsl: i32,
27381    vsr: &mut [f64],
27382    ldvsr: i32,
27383    rconde: &mut [f64],
27384    rcondv: &mut [f64],
27385    work: &mut [f64],
27386    lwork: i32,
27387    iwork: &mut [i32],
27388    liwork: i32,
27389    bwork: &mut [i32],
27390    info: &mut i32,
27391) {
27392    ffi::dggesx_(
27393        &(jobvsl as c_char),
27394        &(jobvsr as c_char),
27395        &(sort as c_char),
27396        transmute(selctg),
27397        &(sense as c_char),
27398        &n,
27399        a.as_mut_ptr(),
27400        &lda,
27401        b.as_mut_ptr(),
27402        &ldb,
27403        sdim,
27404        alphar,
27405        alphai,
27406        beta,
27407        vsl.as_mut_ptr(),
27408        &ldvsl,
27409        vsr.as_mut_ptr(),
27410        &ldvsr,
27411        rconde.as_mut_ptr(),
27412        rcondv.as_mut_ptr(),
27413        work.as_mut_ptr(),
27414        &lwork,
27415        iwork.as_mut_ptr(),
27416        &liwork,
27417        bwork.as_mut_ptr(),
27418        info,
27419    )
27420}
27421
27422#[inline]
27423pub unsafe fn cggesx(
27424    jobvsl: u8,
27425    jobvsr: u8,
27426    sort: u8,
27427    selctg: Select2C32,
27428    sense: u8,
27429    n: i32,
27430    a: &mut [c32],
27431    lda: i32,
27432    b: &mut [c32],
27433    ldb: i32,
27434    sdim: &mut i32,
27435    alpha: &mut c32,
27436    beta: &mut c32,
27437    vsl: &mut [c32],
27438    ldvsl: i32,
27439    vsr: &mut [c32],
27440    ldvsr: i32,
27441    rconde: &mut [f32],
27442    rcondv: &mut [f32],
27443    work: &mut [c32],
27444    lwork: i32,
27445    rwork: &mut [f32],
27446    iwork: &mut [i32],
27447    liwork: i32,
27448    bwork: &mut [i32],
27449    info: &mut i32,
27450) {
27451    ffi::cggesx_(
27452        &(jobvsl as c_char),
27453        &(jobvsr as c_char),
27454        &(sort as c_char),
27455        transmute(selctg),
27456        &(sense as c_char),
27457        &n,
27458        a.as_mut_ptr() as *mut _,
27459        &lda,
27460        b.as_mut_ptr() as *mut _,
27461        &ldb,
27462        sdim,
27463        alpha as *mut _ as *mut _,
27464        beta as *mut _ as *mut _,
27465        vsl.as_mut_ptr() as *mut _,
27466        &ldvsl,
27467        vsr.as_mut_ptr() as *mut _,
27468        &ldvsr,
27469        rconde.as_mut_ptr(),
27470        rcondv.as_mut_ptr(),
27471        work.as_mut_ptr() as *mut _,
27472        &lwork,
27473        rwork.as_mut_ptr(),
27474        iwork.as_mut_ptr(),
27475        &liwork,
27476        bwork.as_mut_ptr(),
27477        info,
27478    )
27479}
27480
27481#[inline]
27482pub unsafe fn zggesx(
27483    jobvsl: u8,
27484    jobvsr: u8,
27485    sort: u8,
27486    selctg: Select2C64,
27487    sense: u8,
27488    n: i32,
27489    a: &mut [c64],
27490    lda: i32,
27491    b: &mut [c64],
27492    ldb: i32,
27493    sdim: &mut i32,
27494    alpha: &mut c64,
27495    beta: &mut c64,
27496    vsl: &mut [c64],
27497    ldvsl: i32,
27498    vsr: &mut [c64],
27499    ldvsr: i32,
27500    rconde: &mut [f64],
27501    rcondv: &mut [f64],
27502    work: &mut [c64],
27503    lwork: i32,
27504    rwork: &mut [f64],
27505    iwork: &mut [i32],
27506    liwork: i32,
27507    bwork: &mut [i32],
27508    info: &mut i32,
27509) {
27510    ffi::zggesx_(
27511        &(jobvsl as c_char),
27512        &(jobvsr as c_char),
27513        &(sort as c_char),
27514        transmute(selctg),
27515        &(sense as c_char),
27516        &n,
27517        a.as_mut_ptr() as *mut _,
27518        &lda,
27519        b.as_mut_ptr() as *mut _,
27520        &ldb,
27521        sdim,
27522        alpha as *mut _ as *mut _,
27523        beta as *mut _ as *mut _,
27524        vsl.as_mut_ptr() as *mut _,
27525        &ldvsl,
27526        vsr.as_mut_ptr() as *mut _,
27527        &ldvsr,
27528        rconde.as_mut_ptr(),
27529        rcondv.as_mut_ptr(),
27530        work.as_mut_ptr() as *mut _,
27531        &lwork,
27532        rwork.as_mut_ptr(),
27533        iwork.as_mut_ptr(),
27534        &liwork,
27535        bwork.as_mut_ptr(),
27536        info,
27537    )
27538}
27539
27540#[inline]
27541pub unsafe fn sggev(
27542    jobvl: u8,
27543    jobvr: u8,
27544    n: i32,
27545    a: &mut [f32],
27546    lda: i32,
27547    b: &mut [f32],
27548    ldb: i32,
27549    alphar: &mut f32,
27550    alphai: &mut f32,
27551    beta: &mut f32,
27552    vl: &mut f32,
27553    ldvl: i32,
27554    vr: &mut f32,
27555    ldvr: i32,
27556    work: &mut [f32],
27557    lwork: i32,
27558    info: &mut i32,
27559) {
27560    ffi::sggev_(
27561        &(jobvl as c_char),
27562        &(jobvr as c_char),
27563        &n,
27564        a.as_mut_ptr(),
27565        &lda,
27566        b.as_mut_ptr(),
27567        &ldb,
27568        alphar,
27569        alphai,
27570        beta,
27571        vl,
27572        &ldvl,
27573        vr,
27574        &ldvr,
27575        work.as_mut_ptr(),
27576        &lwork,
27577        info,
27578    )
27579}
27580
27581#[inline]
27582pub unsafe fn dggev(
27583    jobvl: u8,
27584    jobvr: u8,
27585    n: i32,
27586    a: &mut [f64],
27587    lda: i32,
27588    b: &mut [f64],
27589    ldb: i32,
27590    alphar: &mut f64,
27591    alphai: &mut f64,
27592    beta: &mut f64,
27593    vl: &mut f64,
27594    ldvl: i32,
27595    vr: &mut f64,
27596    ldvr: i32,
27597    work: &mut [f64],
27598    lwork: i32,
27599    info: &mut i32,
27600) {
27601    ffi::dggev_(
27602        &(jobvl as c_char),
27603        &(jobvr as c_char),
27604        &n,
27605        a.as_mut_ptr(),
27606        &lda,
27607        b.as_mut_ptr(),
27608        &ldb,
27609        alphar,
27610        alphai,
27611        beta,
27612        vl,
27613        &ldvl,
27614        vr,
27615        &ldvr,
27616        work.as_mut_ptr(),
27617        &lwork,
27618        info,
27619    )
27620}
27621
27622#[inline]
27623pub unsafe fn cggev(
27624    jobvl: u8,
27625    jobvr: u8,
27626    n: i32,
27627    a: &mut [c32],
27628    lda: i32,
27629    b: &mut [c32],
27630    ldb: i32,
27631    alpha: &mut c32,
27632    beta: &mut c32,
27633    vl: &mut c32,
27634    ldvl: i32,
27635    vr: &mut c32,
27636    ldvr: i32,
27637    work: &mut [c32],
27638    lwork: i32,
27639    rwork: &mut [f32],
27640    info: &mut i32,
27641) {
27642    ffi::cggev_(
27643        &(jobvl as c_char),
27644        &(jobvr as c_char),
27645        &n,
27646        a.as_mut_ptr() as *mut _,
27647        &lda,
27648        b.as_mut_ptr() as *mut _,
27649        &ldb,
27650        alpha as *mut _ as *mut _,
27651        beta as *mut _ as *mut _,
27652        vl as *mut _ as *mut _,
27653        &ldvl,
27654        vr as *mut _ as *mut _,
27655        &ldvr,
27656        work.as_mut_ptr() as *mut _,
27657        &lwork,
27658        rwork.as_mut_ptr(),
27659        info,
27660    )
27661}
27662
27663#[inline]
27664pub unsafe fn zggev(
27665    jobvl: u8,
27666    jobvr: u8,
27667    n: i32,
27668    a: &mut [c64],
27669    lda: i32,
27670    b: &mut [c64],
27671    ldb: i32,
27672    alpha: &mut c64,
27673    beta: &mut c64,
27674    vl: &mut c64,
27675    ldvl: i32,
27676    vr: &mut c64,
27677    ldvr: i32,
27678    work: &mut [c64],
27679    lwork: i32,
27680    rwork: &mut [f64],
27681    info: &mut i32,
27682) {
27683    ffi::zggev_(
27684        &(jobvl as c_char),
27685        &(jobvr as c_char),
27686        &n,
27687        a.as_mut_ptr() as *mut _,
27688        &lda,
27689        b.as_mut_ptr() as *mut _,
27690        &ldb,
27691        alpha as *mut _ as *mut _,
27692        beta as *mut _ as *mut _,
27693        vl as *mut _ as *mut _,
27694        &ldvl,
27695        vr as *mut _ as *mut _,
27696        &ldvr,
27697        work.as_mut_ptr() as *mut _,
27698        &lwork,
27699        rwork.as_mut_ptr(),
27700        info,
27701    )
27702}
27703
27704#[inline]
27705pub unsafe fn sggev3(
27706    jobvl: u8,
27707    jobvr: u8,
27708    n: i32,
27709    a: &mut [f32],
27710    lda: i32,
27711    b: &mut [f32],
27712    ldb: i32,
27713    alphar: &mut f32,
27714    alphai: &mut f32,
27715    beta: &mut f32,
27716    vl: &mut f32,
27717    ldvl: i32,
27718    vr: &mut f32,
27719    ldvr: i32,
27720    work: &mut [f32],
27721    lwork: i32,
27722    info: &mut i32,
27723) {
27724    ffi::sggev3_(
27725        &(jobvl as c_char),
27726        &(jobvr as c_char),
27727        &n,
27728        a.as_mut_ptr(),
27729        &lda,
27730        b.as_mut_ptr(),
27731        &ldb,
27732        alphar,
27733        alphai,
27734        beta,
27735        vl,
27736        &ldvl,
27737        vr,
27738        &ldvr,
27739        work.as_mut_ptr(),
27740        &lwork,
27741        info,
27742    )
27743}
27744
27745#[inline]
27746pub unsafe fn dggev3(
27747    jobvl: u8,
27748    jobvr: u8,
27749    n: i32,
27750    a: &mut [f64],
27751    lda: i32,
27752    b: &mut [f64],
27753    ldb: i32,
27754    alphar: &mut f64,
27755    alphai: &mut f64,
27756    beta: &mut f64,
27757    vl: &mut f64,
27758    ldvl: i32,
27759    vr: &mut f64,
27760    ldvr: i32,
27761    work: &mut [f64],
27762    lwork: i32,
27763    info: &mut i32,
27764) {
27765    ffi::dggev3_(
27766        &(jobvl as c_char),
27767        &(jobvr as c_char),
27768        &n,
27769        a.as_mut_ptr(),
27770        &lda,
27771        b.as_mut_ptr(),
27772        &ldb,
27773        alphar,
27774        alphai,
27775        beta,
27776        vl,
27777        &ldvl,
27778        vr,
27779        &ldvr,
27780        work.as_mut_ptr(),
27781        &lwork,
27782        info,
27783    )
27784}
27785
27786#[inline]
27787pub unsafe fn cggev3(
27788    jobvl: u8,
27789    jobvr: u8,
27790    n: i32,
27791    a: &mut [c32],
27792    lda: i32,
27793    b: &mut [c32],
27794    ldb: i32,
27795    alpha: &mut c32,
27796    beta: &mut c32,
27797    vl: &mut c32,
27798    ldvl: i32,
27799    vr: &mut c32,
27800    ldvr: i32,
27801    work: &mut [c32],
27802    lwork: i32,
27803    rwork: &mut [f32],
27804    info: &mut i32,
27805) {
27806    ffi::cggev3_(
27807        &(jobvl as c_char),
27808        &(jobvr as c_char),
27809        &n,
27810        a.as_mut_ptr() as *mut _,
27811        &lda,
27812        b.as_mut_ptr() as *mut _,
27813        &ldb,
27814        alpha as *mut _ as *mut _,
27815        beta as *mut _ as *mut _,
27816        vl as *mut _ as *mut _,
27817        &ldvl,
27818        vr as *mut _ as *mut _,
27819        &ldvr,
27820        work.as_mut_ptr() as *mut _,
27821        &lwork,
27822        rwork.as_mut_ptr(),
27823        info,
27824    )
27825}
27826
27827#[inline]
27828pub unsafe fn zggev3(
27829    jobvl: u8,
27830    jobvr: u8,
27831    n: i32,
27832    a: &mut [c64],
27833    lda: i32,
27834    b: &mut [c64],
27835    ldb: i32,
27836    alpha: &mut c64,
27837    beta: &mut c64,
27838    vl: &mut c64,
27839    ldvl: i32,
27840    vr: &mut c64,
27841    ldvr: i32,
27842    work: &mut [c64],
27843    lwork: i32,
27844    rwork: &mut [f64],
27845    info: &mut i32,
27846) {
27847    ffi::zggev3_(
27848        &(jobvl as c_char),
27849        &(jobvr as c_char),
27850        &n,
27851        a.as_mut_ptr() as *mut _,
27852        &lda,
27853        b.as_mut_ptr() as *mut _,
27854        &ldb,
27855        alpha as *mut _ as *mut _,
27856        beta as *mut _ as *mut _,
27857        vl as *mut _ as *mut _,
27858        &ldvl,
27859        vr as *mut _ as *mut _,
27860        &ldvr,
27861        work.as_mut_ptr() as *mut _,
27862        &lwork,
27863        rwork.as_mut_ptr(),
27864        info,
27865    )
27866}
27867
27868#[inline]
27869pub unsafe fn sggevx(
27870    balanc: u8,
27871    jobvl: u8,
27872    jobvr: u8,
27873    sense: u8,
27874    n: i32,
27875    a: &mut [f32],
27876    lda: i32,
27877    b: &mut [f32],
27878    ldb: i32,
27879    alphar: &mut f32,
27880    alphai: &mut f32,
27881    beta: &mut f32,
27882    vl: &mut f32,
27883    ldvl: i32,
27884    vr: &mut f32,
27885    ldvr: i32,
27886    ilo: &mut i32,
27887    ihi: &mut i32,
27888    lscale: &mut [f32],
27889    rscale: &mut [f32],
27890    abnrm: &mut f32,
27891    bbnrm: &mut f32,
27892    rconde: &mut [f32],
27893    rcondv: &mut [f32],
27894    work: &mut [f32],
27895    lwork: i32,
27896    iwork: &mut [i32],
27897    bwork: &mut [i32],
27898    info: &mut i32,
27899) {
27900    ffi::sggevx_(
27901        &(balanc as c_char),
27902        &(jobvl as c_char),
27903        &(jobvr as c_char),
27904        &(sense as c_char),
27905        &n,
27906        a.as_mut_ptr(),
27907        &lda,
27908        b.as_mut_ptr(),
27909        &ldb,
27910        alphar,
27911        alphai,
27912        beta,
27913        vl,
27914        &ldvl,
27915        vr,
27916        &ldvr,
27917        ilo,
27918        ihi,
27919        lscale.as_mut_ptr(),
27920        rscale.as_mut_ptr(),
27921        abnrm,
27922        bbnrm,
27923        rconde.as_mut_ptr(),
27924        rcondv.as_mut_ptr(),
27925        work.as_mut_ptr(),
27926        &lwork,
27927        iwork.as_mut_ptr(),
27928        bwork.as_mut_ptr(),
27929        info,
27930    )
27931}
27932
27933#[inline]
27934pub unsafe fn dggevx(
27935    balanc: u8,
27936    jobvl: u8,
27937    jobvr: u8,
27938    sense: u8,
27939    n: i32,
27940    a: &mut [f64],
27941    lda: i32,
27942    b: &mut [f64],
27943    ldb: i32,
27944    alphar: &mut f64,
27945    alphai: &mut f64,
27946    beta: &mut f64,
27947    vl: &mut f64,
27948    ldvl: i32,
27949    vr: &mut f64,
27950    ldvr: i32,
27951    ilo: &mut i32,
27952    ihi: &mut i32,
27953    lscale: &mut [f64],
27954    rscale: &mut [f64],
27955    abnrm: &mut f64,
27956    bbnrm: &mut f64,
27957    rconde: &mut [f64],
27958    rcondv: &mut [f64],
27959    work: &mut [f64],
27960    lwork: i32,
27961    iwork: &mut [i32],
27962    bwork: &mut [i32],
27963    info: &mut i32,
27964) {
27965    ffi::dggevx_(
27966        &(balanc as c_char),
27967        &(jobvl as c_char),
27968        &(jobvr as c_char),
27969        &(sense as c_char),
27970        &n,
27971        a.as_mut_ptr(),
27972        &lda,
27973        b.as_mut_ptr(),
27974        &ldb,
27975        alphar,
27976        alphai,
27977        beta,
27978        vl,
27979        &ldvl,
27980        vr,
27981        &ldvr,
27982        ilo,
27983        ihi,
27984        lscale.as_mut_ptr(),
27985        rscale.as_mut_ptr(),
27986        abnrm,
27987        bbnrm,
27988        rconde.as_mut_ptr(),
27989        rcondv.as_mut_ptr(),
27990        work.as_mut_ptr(),
27991        &lwork,
27992        iwork.as_mut_ptr(),
27993        bwork.as_mut_ptr(),
27994        info,
27995    )
27996}
27997
27998#[inline]
27999pub unsafe fn cggevx(
28000    balanc: u8,
28001    jobvl: u8,
28002    jobvr: u8,
28003    sense: u8,
28004    n: i32,
28005    a: &mut [c32],
28006    lda: i32,
28007    b: &mut [c32],
28008    ldb: i32,
28009    alpha: &mut c32,
28010    beta: &mut c32,
28011    vl: &mut c32,
28012    ldvl: i32,
28013    vr: &mut c32,
28014    ldvr: i32,
28015    ilo: &mut i32,
28016    ihi: &mut i32,
28017    lscale: &mut [f32],
28018    rscale: &mut [f32],
28019    abnrm: &mut f32,
28020    bbnrm: &mut f32,
28021    rconde: &mut [f32],
28022    rcondv: &mut [f32],
28023    work: &mut [c32],
28024    lwork: i32,
28025    rwork: &mut [f32],
28026    iwork: &mut [i32],
28027    bwork: &mut [i32],
28028    info: &mut i32,
28029) {
28030    ffi::cggevx_(
28031        &(balanc as c_char),
28032        &(jobvl as c_char),
28033        &(jobvr as c_char),
28034        &(sense as c_char),
28035        &n,
28036        a.as_mut_ptr() as *mut _,
28037        &lda,
28038        b.as_mut_ptr() as *mut _,
28039        &ldb,
28040        alpha as *mut _ as *mut _,
28041        beta as *mut _ as *mut _,
28042        vl as *mut _ as *mut _,
28043        &ldvl,
28044        vr as *mut _ as *mut _,
28045        &ldvr,
28046        ilo,
28047        ihi,
28048        lscale.as_mut_ptr(),
28049        rscale.as_mut_ptr(),
28050        abnrm,
28051        bbnrm,
28052        rconde.as_mut_ptr(),
28053        rcondv.as_mut_ptr(),
28054        work.as_mut_ptr() as *mut _,
28055        &lwork,
28056        rwork.as_mut_ptr(),
28057        iwork.as_mut_ptr(),
28058        bwork.as_mut_ptr(),
28059        info,
28060    )
28061}
28062
28063#[inline]
28064pub unsafe fn zggevx(
28065    balanc: u8,
28066    jobvl: u8,
28067    jobvr: u8,
28068    sense: u8,
28069    n: i32,
28070    a: &mut [c64],
28071    lda: i32,
28072    b: &mut [c64],
28073    ldb: i32,
28074    alpha: &mut c64,
28075    beta: &mut c64,
28076    vl: &mut c64,
28077    ldvl: i32,
28078    vr: &mut c64,
28079    ldvr: i32,
28080    ilo: &mut i32,
28081    ihi: &mut i32,
28082    lscale: &mut [f64],
28083    rscale: &mut [f64],
28084    abnrm: &mut f64,
28085    bbnrm: &mut f64,
28086    rconde: &mut [f64],
28087    rcondv: &mut [f64],
28088    work: &mut [c64],
28089    lwork: i32,
28090    rwork: &mut [f64],
28091    iwork: &mut [i32],
28092    bwork: &mut [i32],
28093    info: &mut i32,
28094) {
28095    ffi::zggevx_(
28096        &(balanc as c_char),
28097        &(jobvl as c_char),
28098        &(jobvr as c_char),
28099        &(sense as c_char),
28100        &n,
28101        a.as_mut_ptr() as *mut _,
28102        &lda,
28103        b.as_mut_ptr() as *mut _,
28104        &ldb,
28105        alpha as *mut _ as *mut _,
28106        beta as *mut _ as *mut _,
28107        vl as *mut _ as *mut _,
28108        &ldvl,
28109        vr as *mut _ as *mut _,
28110        &ldvr,
28111        ilo,
28112        ihi,
28113        lscale.as_mut_ptr(),
28114        rscale.as_mut_ptr(),
28115        abnrm,
28116        bbnrm,
28117        rconde.as_mut_ptr(),
28118        rcondv.as_mut_ptr(),
28119        work.as_mut_ptr() as *mut _,
28120        &lwork,
28121        rwork.as_mut_ptr(),
28122        iwork.as_mut_ptr(),
28123        bwork.as_mut_ptr(),
28124        info,
28125    )
28126}
28127
28128#[inline]
28129pub unsafe fn dsfrk(
28130    transr: u8,
28131    uplo: u8,
28132    trans: u8,
28133    n: i32,
28134    k: i32,
28135    alpha: f64,
28136    a: &[f64],
28137    lda: i32,
28138    beta: f64,
28139    c: &mut [f64],
28140) {
28141    ffi::dsfrk_(
28142        &(transr as c_char),
28143        &(uplo as c_char),
28144        &(trans as c_char),
28145        &n,
28146        &k,
28147        &alpha,
28148        a.as_ptr(),
28149        &lda,
28150        &beta,
28151        c.as_mut_ptr(),
28152    )
28153}
28154
28155#[inline]
28156pub unsafe fn ssfrk(
28157    transr: u8,
28158    uplo: u8,
28159    trans: u8,
28160    n: i32,
28161    k: i32,
28162    alpha: f32,
28163    a: &[f32],
28164    lda: i32,
28165    beta: f32,
28166    c: &mut [f32],
28167) {
28168    ffi::ssfrk_(
28169        &(transr as c_char),
28170        &(uplo as c_char),
28171        &(trans as c_char),
28172        &n,
28173        &k,
28174        &alpha,
28175        a.as_ptr(),
28176        &lda,
28177        &beta,
28178        c.as_mut_ptr(),
28179    )
28180}
28181
28182#[inline]
28183pub unsafe fn zhfrk(
28184    transr: u8,
28185    uplo: u8,
28186    trans: u8,
28187    n: i32,
28188    k: i32,
28189    alpha: f64,
28190    a: &[c64],
28191    lda: i32,
28192    beta: f64,
28193    c: &mut [c64],
28194) {
28195    ffi::zhfrk_(
28196        &(transr as c_char),
28197        &(uplo as c_char),
28198        &(trans as c_char),
28199        &n,
28200        &k,
28201        &alpha,
28202        a.as_ptr() as *const _,
28203        &lda,
28204        &beta,
28205        c.as_mut_ptr() as *mut _,
28206    )
28207}
28208
28209#[inline]
28210pub unsafe fn chfrk(
28211    transr: u8,
28212    uplo: u8,
28213    trans: u8,
28214    n: i32,
28215    k: i32,
28216    alpha: f32,
28217    a: &[c32],
28218    lda: i32,
28219    beta: f32,
28220    c: &mut [c32],
28221) {
28222    ffi::chfrk_(
28223        &(transr as c_char),
28224        &(uplo as c_char),
28225        &(trans as c_char),
28226        &n,
28227        &k,
28228        &alpha,
28229        a.as_ptr() as *const _,
28230        &lda,
28231        &beta,
28232        c.as_mut_ptr() as *mut _,
28233    )
28234}
28235
28236#[inline]
28237pub unsafe fn dtfsm(
28238    transr: u8,
28239    side: u8,
28240    uplo: u8,
28241    trans: u8,
28242    diag: u8,
28243    m: i32,
28244    n: i32,
28245    alpha: f64,
28246    a: &[f64],
28247    b: &mut [f64],
28248    ldb: i32,
28249) {
28250    ffi::dtfsm_(
28251        &(transr as c_char),
28252        &(side as c_char),
28253        &(uplo as c_char),
28254        &(trans as c_char),
28255        &(diag as c_char),
28256        &m,
28257        &n,
28258        &alpha,
28259        a.as_ptr(),
28260        b.as_mut_ptr(),
28261        &ldb,
28262    )
28263}
28264
28265#[inline]
28266pub unsafe fn stfsm(
28267    transr: u8,
28268    side: u8,
28269    uplo: u8,
28270    trans: u8,
28271    diag: u8,
28272    m: i32,
28273    n: i32,
28274    alpha: f32,
28275    a: &[f32],
28276    b: &mut [f32],
28277    ldb: i32,
28278) {
28279    ffi::stfsm_(
28280        &(transr as c_char),
28281        &(side as c_char),
28282        &(uplo as c_char),
28283        &(trans as c_char),
28284        &(diag as c_char),
28285        &m,
28286        &n,
28287        &alpha,
28288        a.as_ptr(),
28289        b.as_mut_ptr(),
28290        &ldb,
28291    )
28292}
28293
28294#[inline]
28295pub unsafe fn ztfsm(
28296    transr: u8,
28297    side: u8,
28298    uplo: u8,
28299    trans: u8,
28300    diag: u8,
28301    m: i32,
28302    n: i32,
28303    alpha: c64,
28304    a: &[c64],
28305    b: &mut [c64],
28306    ldb: i32,
28307) {
28308    ffi::ztfsm_(
28309        &(transr as c_char),
28310        &(side as c_char),
28311        &(uplo as c_char),
28312        &(trans as c_char),
28313        &(diag as c_char),
28314        &m,
28315        &n,
28316        &alpha as *const _ as *const _,
28317        a.as_ptr() as *const _,
28318        b.as_mut_ptr() as *mut _,
28319        &ldb,
28320    )
28321}
28322
28323#[inline]
28324pub unsafe fn ctfsm(
28325    transr: u8,
28326    side: u8,
28327    uplo: u8,
28328    trans: u8,
28329    diag: u8,
28330    m: i32,
28331    n: i32,
28332    alpha: c32,
28333    a: &[c32],
28334    b: &mut [c32],
28335    ldb: i32,
28336) {
28337    ffi::ctfsm_(
28338        &(transr as c_char),
28339        &(side as c_char),
28340        &(uplo as c_char),
28341        &(trans as c_char),
28342        &(diag as c_char),
28343        &m,
28344        &n,
28345        &alpha as *const _ as *const _,
28346        a.as_ptr() as *const _,
28347        b.as_mut_ptr() as *mut _,
28348        &ldb,
28349    )
28350}
28351
28352#[inline]
28353pub unsafe fn dtfttp(transr: u8, uplo: u8, n: i32, arf: &[f64], ap: &mut [f64], info: &mut i32) {
28354    ffi::dtfttp_(
28355        &(transr as c_char),
28356        &(uplo as c_char),
28357        &n,
28358        arf.as_ptr(),
28359        ap.as_mut_ptr(),
28360        info,
28361    )
28362}
28363
28364#[inline]
28365pub unsafe fn stfttp(transr: u8, uplo: u8, n: i32, arf: &[f32], ap: &mut [f32], info: &mut i32) {
28366    ffi::stfttp_(
28367        &(transr as c_char),
28368        &(uplo as c_char),
28369        &n,
28370        arf.as_ptr(),
28371        ap.as_mut_ptr(),
28372        info,
28373    )
28374}
28375
28376#[inline]
28377pub unsafe fn ztfttp(transr: u8, uplo: u8, n: i32, arf: &[c64], ap: &mut [c64], info: &mut i32) {
28378    ffi::ztfttp_(
28379        &(transr as c_char),
28380        &(uplo as c_char),
28381        &n,
28382        arf.as_ptr() as *const _,
28383        ap.as_mut_ptr() as *mut _,
28384        info,
28385    )
28386}
28387
28388#[inline]
28389pub unsafe fn ctfttp(transr: u8, uplo: u8, n: i32, arf: &[c32], ap: &mut [c32], info: &mut i32) {
28390    ffi::ctfttp_(
28391        &(transr as c_char),
28392        &(uplo as c_char),
28393        &n,
28394        arf.as_ptr() as *const _,
28395        ap.as_mut_ptr() as *mut _,
28396        info,
28397    )
28398}
28399
28400#[inline]
28401pub unsafe fn dtfttr(
28402    transr: u8,
28403    uplo: u8,
28404    n: i32,
28405    arf: &[f64],
28406    a: &mut [f64],
28407    lda: i32,
28408    info: &mut i32,
28409) {
28410    ffi::dtfttr_(
28411        &(transr as c_char),
28412        &(uplo as c_char),
28413        &n,
28414        arf.as_ptr(),
28415        a.as_mut_ptr(),
28416        &lda,
28417        info,
28418    )
28419}
28420
28421#[inline]
28422pub unsafe fn stfttr(
28423    transr: u8,
28424    uplo: u8,
28425    n: i32,
28426    arf: &[f32],
28427    a: &mut [f32],
28428    lda: i32,
28429    info: &mut i32,
28430) {
28431    ffi::stfttr_(
28432        &(transr as c_char),
28433        &(uplo as c_char),
28434        &n,
28435        arf.as_ptr(),
28436        a.as_mut_ptr(),
28437        &lda,
28438        info,
28439    )
28440}
28441
28442#[inline]
28443pub unsafe fn ztfttr(
28444    transr: u8,
28445    uplo: u8,
28446    n: i32,
28447    arf: &[c64],
28448    a: &mut [c64],
28449    lda: i32,
28450    info: &mut i32,
28451) {
28452    ffi::ztfttr_(
28453        &(transr as c_char),
28454        &(uplo as c_char),
28455        &n,
28456        arf.as_ptr() as *const _,
28457        a.as_mut_ptr() as *mut _,
28458        &lda,
28459        info,
28460    )
28461}
28462
28463#[inline]
28464pub unsafe fn ctfttr(
28465    transr: u8,
28466    uplo: u8,
28467    n: i32,
28468    arf: &[c32],
28469    a: &mut [c32],
28470    lda: i32,
28471    info: &mut i32,
28472) {
28473    ffi::ctfttr_(
28474        &(transr as c_char),
28475        &(uplo as c_char),
28476        &n,
28477        arf.as_ptr() as *const _,
28478        a.as_mut_ptr() as *mut _,
28479        &lda,
28480        info,
28481    )
28482}
28483
28484#[inline]
28485pub unsafe fn dtpttf(transr: u8, uplo: u8, n: i32, ap: &[f64], arf: &mut [f64], info: &mut i32) {
28486    ffi::dtpttf_(
28487        &(transr as c_char),
28488        &(uplo as c_char),
28489        &n,
28490        ap.as_ptr(),
28491        arf.as_mut_ptr(),
28492        info,
28493    )
28494}
28495
28496#[inline]
28497pub unsafe fn stpttf(transr: u8, uplo: u8, n: i32, ap: &[f32], arf: &mut [f32], info: &mut i32) {
28498    ffi::stpttf_(
28499        &(transr as c_char),
28500        &(uplo as c_char),
28501        &n,
28502        ap.as_ptr(),
28503        arf.as_mut_ptr(),
28504        info,
28505    )
28506}
28507
28508#[inline]
28509pub unsafe fn ztpttf(transr: u8, uplo: u8, n: i32, ap: &[c64], arf: &mut [c64], info: &mut i32) {
28510    ffi::ztpttf_(
28511        &(transr as c_char),
28512        &(uplo as c_char),
28513        &n,
28514        ap.as_ptr() as *const _,
28515        arf.as_mut_ptr() as *mut _,
28516        info,
28517    )
28518}
28519
28520#[inline]
28521pub unsafe fn ctpttf(transr: u8, uplo: u8, n: i32, ap: &[c32], arf: &mut [c32], info: &mut i32) {
28522    ffi::ctpttf_(
28523        &(transr as c_char),
28524        &(uplo as c_char),
28525        &n,
28526        ap.as_ptr() as *const _,
28527        arf.as_mut_ptr() as *mut _,
28528        info,
28529    )
28530}
28531
28532#[inline]
28533pub unsafe fn dtpttr(uplo: u8, n: i32, ap: &[f64], a: &mut [f64], lda: i32, info: &mut i32) {
28534    ffi::dtpttr_(
28535        &(uplo as c_char),
28536        &n,
28537        ap.as_ptr(),
28538        a.as_mut_ptr(),
28539        &lda,
28540        info,
28541    )
28542}
28543
28544#[inline]
28545pub unsafe fn stpttr(uplo: u8, n: i32, ap: &[f32], a: &mut [f32], lda: i32, info: &mut i32) {
28546    ffi::stpttr_(
28547        &(uplo as c_char),
28548        &n,
28549        ap.as_ptr(),
28550        a.as_mut_ptr(),
28551        &lda,
28552        info,
28553    )
28554}
28555
28556#[inline]
28557pub unsafe fn ztpttr(uplo: u8, n: i32, ap: &[c64], a: &mut [c64], lda: i32, info: &mut i32) {
28558    ffi::ztpttr_(
28559        &(uplo as c_char),
28560        &n,
28561        ap.as_ptr() as *const _,
28562        a.as_mut_ptr() as *mut _,
28563        &lda,
28564        info,
28565    )
28566}
28567
28568#[inline]
28569pub unsafe fn ctpttr(uplo: u8, n: i32, ap: &[c32], a: &mut [c32], lda: i32, info: &mut i32) {
28570    ffi::ctpttr_(
28571        &(uplo as c_char),
28572        &n,
28573        ap.as_ptr() as *const _,
28574        a.as_mut_ptr() as *mut _,
28575        &lda,
28576        info,
28577    )
28578}
28579
28580#[inline]
28581pub unsafe fn dtrttf(
28582    transr: u8,
28583    uplo: u8,
28584    n: i32,
28585    a: &[f64],
28586    lda: i32,
28587    arf: &mut [f64],
28588    info: &mut i32,
28589) {
28590    ffi::dtrttf_(
28591        &(transr as c_char),
28592        &(uplo as c_char),
28593        &n,
28594        a.as_ptr(),
28595        &lda,
28596        arf.as_mut_ptr(),
28597        info,
28598    )
28599}
28600
28601#[inline]
28602pub unsafe fn strttf(
28603    transr: u8,
28604    uplo: u8,
28605    n: i32,
28606    a: &[f32],
28607    lda: i32,
28608    arf: &mut [f32],
28609    info: &mut i32,
28610) {
28611    ffi::strttf_(
28612        &(transr as c_char),
28613        &(uplo as c_char),
28614        &n,
28615        a.as_ptr(),
28616        &lda,
28617        arf.as_mut_ptr(),
28618        info,
28619    )
28620}
28621
28622#[inline]
28623pub unsafe fn ztrttf(
28624    transr: u8,
28625    uplo: u8,
28626    n: i32,
28627    a: &[c64],
28628    lda: i32,
28629    arf: &mut [c64],
28630    info: &mut i32,
28631) {
28632    ffi::ztrttf_(
28633        &(transr as c_char),
28634        &(uplo as c_char),
28635        &n,
28636        a.as_ptr() as *const _,
28637        &lda,
28638        arf.as_mut_ptr() as *mut _,
28639        info,
28640    )
28641}
28642
28643#[inline]
28644pub unsafe fn ctrttf(
28645    transr: u8,
28646    uplo: u8,
28647    n: i32,
28648    a: &[c32],
28649    lda: i32,
28650    arf: &mut [c32],
28651    info: &mut i32,
28652) {
28653    ffi::ctrttf_(
28654        &(transr as c_char),
28655        &(uplo as c_char),
28656        &n,
28657        a.as_ptr() as *const _,
28658        &lda,
28659        arf.as_mut_ptr() as *mut _,
28660        info,
28661    )
28662}
28663
28664#[inline]
28665pub unsafe fn dtrttp(uplo: u8, n: i32, a: &[f64], lda: i32, ap: &mut [f64], info: &mut i32) {
28666    ffi::dtrttp_(
28667        &(uplo as c_char),
28668        &n,
28669        a.as_ptr(),
28670        &lda,
28671        ap.as_mut_ptr(),
28672        info,
28673    )
28674}
28675
28676#[inline]
28677pub unsafe fn strttp(uplo: u8, n: i32, a: &[f32], lda: i32, ap: &mut [f32], info: &mut i32) {
28678    ffi::strttp_(
28679        &(uplo as c_char),
28680        &n,
28681        a.as_ptr(),
28682        &lda,
28683        ap.as_mut_ptr(),
28684        info,
28685    )
28686}
28687
28688#[inline]
28689pub unsafe fn ztrttp(uplo: u8, n: i32, a: &[c64], lda: i32, ap: &mut [c64], info: &mut i32) {
28690    ffi::ztrttp_(
28691        &(uplo as c_char),
28692        &n,
28693        a.as_ptr() as *const _,
28694        &lda,
28695        ap.as_mut_ptr() as *mut _,
28696        info,
28697    )
28698}
28699
28700#[inline]
28701pub unsafe fn ctrttp(uplo: u8, n: i32, a: &[c32], lda: i32, ap: &mut [c32], info: &mut i32) {
28702    ffi::ctrttp_(
28703        &(uplo as c_char),
28704        &n,
28705        a.as_ptr() as *const _,
28706        &lda,
28707        ap.as_mut_ptr() as *mut _,
28708        info,
28709    )
28710}
28711
28712#[inline]
28713pub unsafe fn sgeqrfp(
28714    m: i32,
28715    n: i32,
28716    a: &mut [f32],
28717    lda: i32,
28718    tau: &mut [f32],
28719    work: &mut [f32],
28720    lwork: i32,
28721    info: &mut i32,
28722) {
28723    ffi::sgeqrfp_(
28724        &m,
28725        &n,
28726        a.as_mut_ptr(),
28727        &lda,
28728        tau.as_mut_ptr(),
28729        work.as_mut_ptr(),
28730        &lwork,
28731        info,
28732    )
28733}
28734
28735#[inline]
28736pub unsafe fn dgeqrfp(
28737    m: i32,
28738    n: i32,
28739    a: &mut [f64],
28740    lda: i32,
28741    tau: &mut [f64],
28742    work: &mut [f64],
28743    lwork: i32,
28744    info: &mut i32,
28745) {
28746    ffi::dgeqrfp_(
28747        &m,
28748        &n,
28749        a.as_mut_ptr(),
28750        &lda,
28751        tau.as_mut_ptr(),
28752        work.as_mut_ptr(),
28753        &lwork,
28754        info,
28755    )
28756}
28757
28758#[inline]
28759pub unsafe fn cgeqrfp(
28760    m: i32,
28761    n: i32,
28762    a: &mut [c32],
28763    lda: i32,
28764    tau: &mut [c32],
28765    work: &mut [c32],
28766    lwork: i32,
28767    info: &mut i32,
28768) {
28769    ffi::cgeqrfp_(
28770        &m,
28771        &n,
28772        a.as_mut_ptr() as *mut _,
28773        &lda,
28774        tau.as_mut_ptr() as *mut _,
28775        work.as_mut_ptr() as *mut _,
28776        &lwork,
28777        info,
28778    )
28779}
28780
28781#[inline]
28782pub unsafe fn zgeqrfp(
28783    m: i32,
28784    n: i32,
28785    a: &mut [c64],
28786    lda: i32,
28787    tau: &mut [c64],
28788    work: &mut [c64],
28789    lwork: i32,
28790    info: &mut i32,
28791) {
28792    ffi::zgeqrfp_(
28793        &m,
28794        &n,
28795        a.as_mut_ptr() as *mut _,
28796        &lda,
28797        tau.as_mut_ptr() as *mut _,
28798        work.as_mut_ptr() as *mut _,
28799        &lwork,
28800        info,
28801    )
28802}
28803
28804#[inline]
28805pub unsafe fn clacgv(n: i32, x: &mut [c32], incx: i32) {
28806    ffi::clacgv_(&n, x.as_mut_ptr() as *mut _, &incx)
28807}
28808
28809#[inline]
28810pub unsafe fn zlacgv(n: i32, x: &mut [c64], incx: i32) {
28811    ffi::zlacgv_(&n, x.as_mut_ptr() as *mut _, &incx)
28812}
28813
28814#[inline]
28815pub unsafe fn slarnv(idist: &[i32], iseed: &mut [i32], n: i32, x: &mut [f32]) {
28816    ffi::slarnv_(idist.as_ptr(), iseed.as_mut_ptr(), &n, x.as_mut_ptr())
28817}
28818
28819#[inline]
28820pub unsafe fn dlarnv(idist: &[i32], iseed: &mut [i32], n: i32, x: &mut [f64]) {
28821    ffi::dlarnv_(idist.as_ptr(), iseed.as_mut_ptr(), &n, x.as_mut_ptr())
28822}
28823
28824#[inline]
28825pub unsafe fn clarnv(idist: &[i32], iseed: &mut [i32], n: i32, x: &mut [c32]) {
28826    ffi::clarnv_(
28827        idist.as_ptr(),
28828        iseed.as_mut_ptr(),
28829        &n,
28830        x.as_mut_ptr() as *mut _,
28831    )
28832}
28833
28834#[inline]
28835pub unsafe fn zlarnv(idist: &[i32], iseed: &mut [i32], n: i32, x: &mut [c64]) {
28836    ffi::zlarnv_(
28837        idist.as_ptr(),
28838        iseed.as_mut_ptr(),
28839        &n,
28840        x.as_mut_ptr() as *mut _,
28841    )
28842}
28843
28844#[inline]
28845pub unsafe fn sgeqr2(
28846    m: i32,
28847    n: i32,
28848    a: &mut [f32],
28849    lda: i32,
28850    tau: &mut [f32],
28851    work: &mut [f32],
28852    info: &mut i32,
28853) {
28854    ffi::sgeqr2_(
28855        &m,
28856        &n,
28857        a.as_mut_ptr(),
28858        &lda,
28859        tau.as_mut_ptr(),
28860        work.as_mut_ptr(),
28861        info,
28862    )
28863}
28864
28865#[inline]
28866pub unsafe fn dgeqr2(
28867    m: i32,
28868    n: i32,
28869    a: &mut [f64],
28870    lda: i32,
28871    tau: &mut [f64],
28872    work: &mut [f64],
28873    info: &mut i32,
28874) {
28875    ffi::dgeqr2_(
28876        &m,
28877        &n,
28878        a.as_mut_ptr(),
28879        &lda,
28880        tau.as_mut_ptr(),
28881        work.as_mut_ptr(),
28882        info,
28883    )
28884}
28885
28886#[inline]
28887pub unsafe fn cgeqr2(
28888    m: i32,
28889    n: i32,
28890    a: &mut [c32],
28891    lda: i32,
28892    tau: &mut [c32],
28893    work: &mut [c32],
28894    info: &mut i32,
28895) {
28896    ffi::cgeqr2_(
28897        &m,
28898        &n,
28899        a.as_mut_ptr() as *mut _,
28900        &lda,
28901        tau.as_mut_ptr() as *mut _,
28902        work.as_mut_ptr() as *mut _,
28903        info,
28904    )
28905}
28906
28907#[inline]
28908pub unsafe fn zgeqr2(
28909    m: i32,
28910    n: i32,
28911    a: &mut [c64],
28912    lda: i32,
28913    tau: &mut [c64],
28914    work: &mut [c64],
28915    info: &mut i32,
28916) {
28917    ffi::zgeqr2_(
28918        &m,
28919        &n,
28920        a.as_mut_ptr() as *mut _,
28921        &lda,
28922        tau.as_mut_ptr() as *mut _,
28923        work.as_mut_ptr() as *mut _,
28924        info,
28925    )
28926}
28927
28928#[inline]
28929pub unsafe fn slacn2(
28930    n: i32,
28931    v: &mut [f32],
28932    x: &mut [f32],
28933    isgn: &mut [i32],
28934    est: &mut [f32],
28935    kase: &mut i32,
28936    isave: &mut [i32],
28937) {
28938    ffi::slacn2_(
28939        &n,
28940        v.as_mut_ptr(),
28941        x.as_mut_ptr(),
28942        isgn.as_mut_ptr(),
28943        est.as_mut_ptr(),
28944        kase,
28945        isave.as_mut_ptr(),
28946    )
28947}
28948
28949#[inline]
28950pub unsafe fn dlacn2(
28951    n: i32,
28952    v: &mut [f64],
28953    x: &mut [f64],
28954    isgn: &mut [i32],
28955    est: &mut [f64],
28956    kase: &mut i32,
28957    isave: &mut [i32],
28958) {
28959    ffi::dlacn2_(
28960        &n,
28961        v.as_mut_ptr(),
28962        x.as_mut_ptr(),
28963        isgn.as_mut_ptr(),
28964        est.as_mut_ptr(),
28965        kase,
28966        isave.as_mut_ptr(),
28967    )
28968}
28969
28970#[inline]
28971pub unsafe fn clacn2(
28972    n: i32,
28973    v: &mut [c32],
28974    x: &mut [c32],
28975    est: &mut [f32],
28976    kase: &mut i32,
28977    isave: &mut [i32],
28978) {
28979    ffi::clacn2_(
28980        &n,
28981        v.as_mut_ptr() as *mut _,
28982        x.as_mut_ptr() as *mut _,
28983        est.as_mut_ptr(),
28984        kase,
28985        isave.as_mut_ptr(),
28986    )
28987}
28988
28989#[inline]
28990pub unsafe fn zlacn2(
28991    n: i32,
28992    v: &mut [c64],
28993    x: &mut [c64],
28994    est: &mut [f64],
28995    kase: &mut i32,
28996    isave: &mut [i32],
28997) {
28998    ffi::zlacn2_(
28999        &n,
29000        v.as_mut_ptr() as *mut _,
29001        x.as_mut_ptr() as *mut _,
29002        est.as_mut_ptr(),
29003        kase,
29004        isave.as_mut_ptr(),
29005    )
29006}
29007
29008#[inline]
29009pub unsafe fn slacpy(uplo: u8, m: i32, n: i32, a: &[f32], lda: i32, b: &mut [f32], ldb: i32) {
29010    ffi::slacpy_(
29011        &(uplo as c_char),
29012        &m,
29013        &n,
29014        a.as_ptr(),
29015        &lda,
29016        b.as_mut_ptr(),
29017        &ldb,
29018    )
29019}
29020
29021#[inline]
29022pub unsafe fn dlacpy(uplo: u8, m: i32, n: i32, a: &[f64], lda: i32, b: &mut [f64], ldb: i32) {
29023    ffi::dlacpy_(
29024        &(uplo as c_char),
29025        &m,
29026        &n,
29027        a.as_ptr(),
29028        &lda,
29029        b.as_mut_ptr(),
29030        &ldb,
29031    )
29032}
29033
29034#[inline]
29035pub unsafe fn clacpy(uplo: u8, m: i32, n: i32, a: &[c32], lda: i32, b: &mut [c32], ldb: i32) {
29036    ffi::clacpy_(
29037        &(uplo as c_char),
29038        &m,
29039        &n,
29040        a.as_ptr() as *const _,
29041        &lda,
29042        b.as_mut_ptr() as *mut _,
29043        &ldb,
29044    )
29045}
29046
29047#[inline]
29048pub unsafe fn zlacpy(uplo: u8, m: i32, n: i32, a: &[c64], lda: i32, b: &mut [c64], ldb: i32) {
29049    ffi::zlacpy_(
29050        &(uplo as c_char),
29051        &m,
29052        &n,
29053        a.as_ptr() as *const _,
29054        &lda,
29055        b.as_mut_ptr() as *mut _,
29056        &ldb,
29057    )
29058}
29059
29060#[inline]
29061pub unsafe fn clacp2(uplo: u8, m: i32, n: i32, a: &[f32], lda: i32, b: &mut [c32], ldb: i32) {
29062    ffi::clacp2_(
29063        &(uplo as c_char),
29064        &m,
29065        &n,
29066        a.as_ptr(),
29067        &lda,
29068        b.as_mut_ptr() as *mut _,
29069        &ldb,
29070    )
29071}
29072
29073#[inline]
29074pub unsafe fn zlacp2(uplo: u8, m: i32, n: i32, a: &[f64], lda: i32, b: &mut [c64], ldb: i32) {
29075    ffi::zlacp2_(
29076        &(uplo as c_char),
29077        &m,
29078        &n,
29079        a.as_ptr(),
29080        &lda,
29081        b.as_mut_ptr() as *mut _,
29082        &ldb,
29083    )
29084}
29085
29086#[inline]
29087pub unsafe fn sgetf2(m: i32, n: i32, a: &mut [f32], lda: i32, ipiv: &mut [i32], info: &mut i32) {
29088    ffi::sgetf2_(&m, &n, a.as_mut_ptr(), &lda, ipiv.as_mut_ptr(), info)
29089}
29090
29091#[inline]
29092pub unsafe fn dgetf2(m: i32, n: i32, a: &mut [f64], lda: i32, ipiv: &mut [i32], info: &mut i32) {
29093    ffi::dgetf2_(&m, &n, a.as_mut_ptr(), &lda, ipiv.as_mut_ptr(), info)
29094}
29095
29096#[inline]
29097pub unsafe fn cgetf2(m: i32, n: i32, a: &mut [c32], lda: i32, ipiv: &mut [i32], info: &mut i32) {
29098    ffi::cgetf2_(
29099        &m,
29100        &n,
29101        a.as_mut_ptr() as *mut _,
29102        &lda,
29103        ipiv.as_mut_ptr(),
29104        info,
29105    )
29106}
29107
29108#[inline]
29109pub unsafe fn zgetf2(m: i32, n: i32, a: &mut [c64], lda: i32, ipiv: &mut [i32], info: &mut i32) {
29110    ffi::zgetf2_(
29111        &m,
29112        &n,
29113        a.as_mut_ptr() as *mut _,
29114        &lda,
29115        ipiv.as_mut_ptr(),
29116        info,
29117    )
29118}
29119
29120#[inline]
29121pub unsafe fn slaswp(n: i32, a: &mut [f32], lda: i32, k1: i32, k2: i32, ipiv: &[i32], incx: i32) {
29122    ffi::slaswp_(&n, a.as_mut_ptr(), &lda, &k1, &k2, ipiv.as_ptr(), &incx)
29123}
29124
29125#[inline]
29126pub unsafe fn dlaswp(n: i32, a: &mut [f64], lda: i32, k1: i32, k2: i32, ipiv: &[i32], incx: i32) {
29127    ffi::dlaswp_(&n, a.as_mut_ptr(), &lda, &k1, &k2, ipiv.as_ptr(), &incx)
29128}
29129
29130#[inline]
29131pub unsafe fn claswp(n: i32, a: &mut [c32], lda: i32, k1: i32, k2: i32, ipiv: &[i32], incx: i32) {
29132    ffi::claswp_(
29133        &n,
29134        a.as_mut_ptr() as *mut _,
29135        &lda,
29136        &k1,
29137        &k2,
29138        ipiv.as_ptr(),
29139        &incx,
29140    )
29141}
29142
29143#[inline]
29144pub unsafe fn zlaswp(n: i32, a: &mut [c64], lda: i32, k1: i32, k2: i32, ipiv: &[i32], incx: i32) {
29145    ffi::zlaswp_(
29146        &n,
29147        a.as_mut_ptr() as *mut _,
29148        &lda,
29149        &k1,
29150        &k2,
29151        ipiv.as_ptr(),
29152        &incx,
29153    )
29154}
29155
29156#[inline]
29157pub unsafe fn slange(norm: u8, m: i32, n: i32, a: &[f32], lda: i32, work: &mut [f32]) -> f32 {
29158    ffi::slange_(
29159        &(norm as c_char),
29160        &m,
29161        &n,
29162        a.as_ptr(),
29163        &lda,
29164        work.as_mut_ptr(),
29165    )
29166}
29167
29168#[inline]
29169pub unsafe fn dlange(norm: u8, m: i32, n: i32, a: &[f64], lda: i32, work: &mut [f64]) -> f64 {
29170    ffi::dlange_(
29171        &(norm as c_char),
29172        &m,
29173        &n,
29174        a.as_ptr(),
29175        &lda,
29176        work.as_mut_ptr(),
29177    )
29178}
29179
29180#[inline]
29181pub unsafe fn clange(norm: u8, m: i32, n: i32, a: &[c32], lda: i32, work: &mut [f32]) -> f32 {
29182    ffi::clange_(
29183        &(norm as c_char),
29184        &m,
29185        &n,
29186        a.as_ptr() as *const _,
29187        &lda,
29188        work.as_mut_ptr(),
29189    )
29190}
29191
29192#[inline]
29193pub unsafe fn zlange(norm: u8, m: i32, n: i32, a: &[c64], lda: i32, work: &mut [f64]) -> f64 {
29194    ffi::zlange_(
29195        &(norm as c_char),
29196        &m,
29197        &n,
29198        a.as_ptr() as *const _,
29199        &lda,
29200        work.as_mut_ptr(),
29201    )
29202}
29203
29204#[inline]
29205pub unsafe fn clanhe(norm: u8, uplo: u8, n: i32, a: &[c32], lda: i32, work: &mut [f32]) -> f32 {
29206    ffi::clanhe_(
29207        &(norm as c_char),
29208        &(uplo as c_char),
29209        &n,
29210        a.as_ptr() as *const _,
29211        &lda,
29212        work.as_mut_ptr(),
29213    )
29214}
29215
29216#[inline]
29217pub unsafe fn zlanhe(norm: u8, uplo: u8, n: i32, a: &[c64], lda: i32, work: &mut [f64]) -> f64 {
29218    ffi::zlanhe_(
29219        &(norm as c_char),
29220        &(uplo as c_char),
29221        &n,
29222        a.as_ptr() as *const _,
29223        &lda,
29224        work.as_mut_ptr(),
29225    )
29226}
29227
29228#[inline]
29229pub unsafe fn slansy(norm: u8, uplo: u8, n: i32, a: &[f32], lda: i32, work: &mut [f32]) -> f32 {
29230    ffi::slansy_(
29231        &(norm as c_char),
29232        &(uplo as c_char),
29233        &n,
29234        a.as_ptr(),
29235        &lda,
29236        work.as_mut_ptr(),
29237    )
29238}
29239
29240#[inline]
29241pub unsafe fn dlansy(norm: u8, uplo: u8, n: i32, a: &[f64], lda: i32, work: &mut [f64]) -> f64 {
29242    ffi::dlansy_(
29243        &(norm as c_char),
29244        &(uplo as c_char),
29245        &n,
29246        a.as_ptr(),
29247        &lda,
29248        work.as_mut_ptr(),
29249    )
29250}
29251
29252#[inline]
29253pub unsafe fn clansy(norm: u8, uplo: u8, n: i32, a: &[c32], lda: i32, work: &mut [f32]) -> f32 {
29254    ffi::clansy_(
29255        &(norm as c_char),
29256        &(uplo as c_char),
29257        &n,
29258        a.as_ptr() as *const _,
29259        &lda,
29260        work.as_mut_ptr(),
29261    )
29262}
29263
29264#[inline]
29265pub unsafe fn zlansy(norm: u8, uplo: u8, n: i32, a: &[c64], lda: i32, work: &mut [f64]) -> f64 {
29266    ffi::zlansy_(
29267        &(norm as c_char),
29268        &(uplo as c_char),
29269        &n,
29270        a.as_ptr() as *const _,
29271        &lda,
29272        work.as_mut_ptr(),
29273    )
29274}
29275
29276#[inline]
29277pub unsafe fn slantr(
29278    norm: u8,
29279    uplo: u8,
29280    diag: u8,
29281    m: i32,
29282    n: i32,
29283    a: &[f32],
29284    lda: i32,
29285    work: &mut [f32],
29286) -> f32 {
29287    ffi::slantr_(
29288        &(norm as c_char),
29289        &(uplo as c_char),
29290        &(diag as c_char),
29291        &m,
29292        &n,
29293        a.as_ptr(),
29294        &lda,
29295        work.as_mut_ptr(),
29296    )
29297}
29298
29299#[inline]
29300pub unsafe fn dlantr(
29301    norm: u8,
29302    uplo: u8,
29303    diag: u8,
29304    m: i32,
29305    n: i32,
29306    a: &[f64],
29307    lda: i32,
29308    work: &mut [f64],
29309) -> f64 {
29310    ffi::dlantr_(
29311        &(norm as c_char),
29312        &(uplo as c_char),
29313        &(diag as c_char),
29314        &m,
29315        &n,
29316        a.as_ptr(),
29317        &lda,
29318        work.as_mut_ptr(),
29319    )
29320}
29321
29322#[inline]
29323pub unsafe fn clantr(
29324    norm: u8,
29325    uplo: u8,
29326    diag: u8,
29327    m: i32,
29328    n: i32,
29329    a: &[c32],
29330    lda: i32,
29331    work: &mut [f32],
29332) -> f32 {
29333    ffi::clantr_(
29334        &(norm as c_char),
29335        &(uplo as c_char),
29336        &(diag as c_char),
29337        &m,
29338        &n,
29339        a.as_ptr() as *const _,
29340        &lda,
29341        work.as_mut_ptr(),
29342    )
29343}
29344
29345#[inline]
29346pub unsafe fn zlantr(
29347    norm: u8,
29348    uplo: u8,
29349    diag: u8,
29350    m: i32,
29351    n: i32,
29352    a: &[c64],
29353    lda: i32,
29354    work: &mut [f64],
29355) -> f64 {
29356    ffi::zlantr_(
29357        &(norm as c_char),
29358        &(uplo as c_char),
29359        &(diag as c_char),
29360        &m,
29361        &n,
29362        a.as_ptr() as *const _,
29363        &lda,
29364        work.as_mut_ptr(),
29365    )
29366}
29367
29368#[inline]
29369pub unsafe fn slamch(cmach: u8) -> f32 {
29370    ffi::slamch_(&(cmach as c_char))
29371}
29372
29373#[inline]
29374pub unsafe fn dlamch(cmach: u8) -> f64 {
29375    ffi::dlamch_(&(cmach as c_char))
29376}
29377
29378#[inline]
29379pub unsafe fn sgelq2(
29380    m: i32,
29381    n: i32,
29382    a: &mut [f32],
29383    lda: i32,
29384    tau: &mut [f32],
29385    work: &mut [f32],
29386    info: &mut i32,
29387) {
29388    ffi::sgelq2_(
29389        &m,
29390        &n,
29391        a.as_mut_ptr(),
29392        &lda,
29393        tau.as_mut_ptr(),
29394        work.as_mut_ptr(),
29395        info,
29396    )
29397}
29398
29399#[inline]
29400pub unsafe fn dgelq2(
29401    m: i32,
29402    n: i32,
29403    a: &mut [f64],
29404    lda: i32,
29405    tau: &mut [f64],
29406    work: &mut [f64],
29407    info: &mut i32,
29408) {
29409    ffi::dgelq2_(
29410        &m,
29411        &n,
29412        a.as_mut_ptr(),
29413        &lda,
29414        tau.as_mut_ptr(),
29415        work.as_mut_ptr(),
29416        info,
29417    )
29418}
29419
29420#[inline]
29421pub unsafe fn cgelq2(
29422    m: i32,
29423    n: i32,
29424    a: &mut [c32],
29425    lda: i32,
29426    tau: &mut [c32],
29427    work: &mut [c32],
29428    info: &mut i32,
29429) {
29430    ffi::cgelq2_(
29431        &m,
29432        &n,
29433        a.as_mut_ptr() as *mut _,
29434        &lda,
29435        tau.as_mut_ptr() as *mut _,
29436        work.as_mut_ptr() as *mut _,
29437        info,
29438    )
29439}
29440
29441#[inline]
29442pub unsafe fn zgelq2(
29443    m: i32,
29444    n: i32,
29445    a: &mut [c64],
29446    lda: i32,
29447    tau: &mut [c64],
29448    work: &mut [c64],
29449    info: &mut i32,
29450) {
29451    ffi::zgelq2_(
29452        &m,
29453        &n,
29454        a.as_mut_ptr() as *mut _,
29455        &lda,
29456        tau.as_mut_ptr() as *mut _,
29457        work.as_mut_ptr() as *mut _,
29458        info,
29459    )
29460}
29461
29462#[inline]
29463pub unsafe fn slarfb(
29464    side: u8,
29465    trans: u8,
29466    direct: u8,
29467    storev: u8,
29468    m: i32,
29469    n: i32,
29470    k: i32,
29471    v: &[f32],
29472    ldv: i32,
29473    t: &[f32],
29474    ldt: i32,
29475    c: &mut [f32],
29476    ldc: i32,
29477    work: &mut [f32],
29478    ldwork: i32,
29479) {
29480    ffi::slarfb_(
29481        &(side as c_char),
29482        &(trans as c_char),
29483        &(direct as c_char),
29484        &(storev as c_char),
29485        &m,
29486        &n,
29487        &k,
29488        v.as_ptr(),
29489        &ldv,
29490        t.as_ptr(),
29491        &ldt,
29492        c.as_mut_ptr(),
29493        &ldc,
29494        work.as_mut_ptr(),
29495        &ldwork,
29496    )
29497}
29498
29499#[inline]
29500pub unsafe fn dlarfb(
29501    side: u8,
29502    trans: u8,
29503    direct: u8,
29504    storev: u8,
29505    m: i32,
29506    n: i32,
29507    k: i32,
29508    v: &[f64],
29509    ldv: i32,
29510    t: &[f64],
29511    ldt: i32,
29512    c: &mut [f64],
29513    ldc: i32,
29514    work: &mut [f64],
29515    ldwork: i32,
29516) {
29517    ffi::dlarfb_(
29518        &(side as c_char),
29519        &(trans as c_char),
29520        &(direct as c_char),
29521        &(storev as c_char),
29522        &m,
29523        &n,
29524        &k,
29525        v.as_ptr(),
29526        &ldv,
29527        t.as_ptr(),
29528        &ldt,
29529        c.as_mut_ptr(),
29530        &ldc,
29531        work.as_mut_ptr(),
29532        &ldwork,
29533    )
29534}
29535
29536#[inline]
29537pub unsafe fn clarfb(
29538    side: u8,
29539    trans: u8,
29540    direct: u8,
29541    storev: u8,
29542    m: i32,
29543    n: i32,
29544    k: i32,
29545    v: &[c32],
29546    ldv: i32,
29547    t: &[c32],
29548    ldt: i32,
29549    c: &mut [c32],
29550    ldc: i32,
29551    work: &mut [c32],
29552    ldwork: i32,
29553) {
29554    ffi::clarfb_(
29555        &(side as c_char),
29556        &(trans as c_char),
29557        &(direct as c_char),
29558        &(storev as c_char),
29559        &m,
29560        &n,
29561        &k,
29562        v.as_ptr() as *const _,
29563        &ldv,
29564        t.as_ptr() as *const _,
29565        &ldt,
29566        c.as_mut_ptr() as *mut _,
29567        &ldc,
29568        work.as_mut_ptr() as *mut _,
29569        &ldwork,
29570    )
29571}
29572
29573#[inline]
29574pub unsafe fn zlarfb(
29575    side: u8,
29576    trans: u8,
29577    direct: u8,
29578    storev: u8,
29579    m: i32,
29580    n: i32,
29581    k: i32,
29582    v: &[c64],
29583    ldv: i32,
29584    t: &[c64],
29585    ldt: i32,
29586    c: &mut [c64],
29587    ldc: i32,
29588    work: &mut [c64],
29589    ldwork: i32,
29590) {
29591    ffi::zlarfb_(
29592        &(side as c_char),
29593        &(trans as c_char),
29594        &(direct as c_char),
29595        &(storev as c_char),
29596        &m,
29597        &n,
29598        &k,
29599        v.as_ptr() as *const _,
29600        &ldv,
29601        t.as_ptr() as *const _,
29602        &ldt,
29603        c.as_mut_ptr() as *mut _,
29604        &ldc,
29605        work.as_mut_ptr() as *mut _,
29606        &ldwork,
29607    )
29608}
29609
29610#[inline]
29611pub unsafe fn slarfg(n: i32, alpha: &mut f32, x: &mut [f32], incx: i32, tau: &mut [f32]) {
29612    ffi::slarfg_(&n, alpha, x.as_mut_ptr(), &incx, tau.as_mut_ptr())
29613}
29614
29615#[inline]
29616pub unsafe fn dlarfg(n: i32, alpha: &mut f64, x: &mut [f64], incx: i32, tau: &mut [f64]) {
29617    ffi::dlarfg_(&n, alpha, x.as_mut_ptr(), &incx, tau.as_mut_ptr())
29618}
29619
29620#[inline]
29621pub unsafe fn clarfg(n: i32, alpha: &mut c32, x: &mut [c32], incx: i32, tau: &mut [c32]) {
29622    ffi::clarfg_(
29623        &n,
29624        alpha as *mut _ as *mut _,
29625        x.as_mut_ptr() as *mut _,
29626        &incx,
29627        tau.as_mut_ptr() as *mut _,
29628    )
29629}
29630
29631#[inline]
29632pub unsafe fn zlarfg(n: i32, alpha: &mut c64, x: &mut [c64], incx: i32, tau: &mut [c64]) {
29633    ffi::zlarfg_(
29634        &n,
29635        alpha as *mut _ as *mut _,
29636        x.as_mut_ptr() as *mut _,
29637        &incx,
29638        tau.as_mut_ptr() as *mut _,
29639    )
29640}
29641
29642#[inline]
29643pub unsafe fn slarft(
29644    direct: u8,
29645    storev: u8,
29646    n: i32,
29647    k: i32,
29648    v: &[f32],
29649    ldv: i32,
29650    tau: &[f32],
29651    t: &mut [f32],
29652    ldt: i32,
29653) {
29654    ffi::slarft_(
29655        &(direct as c_char),
29656        &(storev as c_char),
29657        &n,
29658        &k,
29659        v.as_ptr(),
29660        &ldv,
29661        tau.as_ptr(),
29662        t.as_mut_ptr(),
29663        &ldt,
29664    )
29665}
29666
29667#[inline]
29668pub unsafe fn dlarft(
29669    direct: u8,
29670    storev: u8,
29671    n: i32,
29672    k: i32,
29673    v: &[f64],
29674    ldv: i32,
29675    tau: &[f64],
29676    t: &mut [f64],
29677    ldt: i32,
29678) {
29679    ffi::dlarft_(
29680        &(direct as c_char),
29681        &(storev as c_char),
29682        &n,
29683        &k,
29684        v.as_ptr(),
29685        &ldv,
29686        tau.as_ptr(),
29687        t.as_mut_ptr(),
29688        &ldt,
29689    )
29690}
29691
29692#[inline]
29693pub unsafe fn clarft(
29694    direct: u8,
29695    storev: u8,
29696    n: i32,
29697    k: i32,
29698    v: &[c32],
29699    ldv: i32,
29700    tau: &[c32],
29701    t: &mut [c32],
29702    ldt: i32,
29703) {
29704    ffi::clarft_(
29705        &(direct as c_char),
29706        &(storev as c_char),
29707        &n,
29708        &k,
29709        v.as_ptr() as *const _,
29710        &ldv,
29711        tau.as_ptr() as *const _,
29712        t.as_mut_ptr() as *mut _,
29713        &ldt,
29714    )
29715}
29716
29717#[inline]
29718pub unsafe fn zlarft(
29719    direct: u8,
29720    storev: u8,
29721    n: i32,
29722    k: i32,
29723    v: &[c64],
29724    ldv: i32,
29725    tau: &[c64],
29726    t: &mut [c64],
29727    ldt: i32,
29728) {
29729    ffi::zlarft_(
29730        &(direct as c_char),
29731        &(storev as c_char),
29732        &n,
29733        &k,
29734        v.as_ptr() as *const _,
29735        &ldv,
29736        tau.as_ptr() as *const _,
29737        t.as_mut_ptr() as *mut _,
29738        &ldt,
29739    )
29740}
29741
29742#[inline]
29743pub unsafe fn slarfx(
29744    side: u8,
29745    m: i32,
29746    n: i32,
29747    v: &[f32],
29748    tau: &[f32],
29749    c: &mut [f32],
29750    ldc: i32,
29751    work: &mut [f32],
29752) {
29753    ffi::slarfx_(
29754        &(side as c_char),
29755        &m,
29756        &n,
29757        v.as_ptr(),
29758        tau.as_ptr(),
29759        c.as_mut_ptr(),
29760        &ldc,
29761        work.as_mut_ptr(),
29762    )
29763}
29764
29765#[inline]
29766pub unsafe fn dlarfx(
29767    side: u8,
29768    m: i32,
29769    n: i32,
29770    v: &[f64],
29771    tau: &[f64],
29772    c: &mut [f64],
29773    ldc: i32,
29774    work: &mut [f64],
29775) {
29776    ffi::dlarfx_(
29777        &(side as c_char),
29778        &m,
29779        &n,
29780        v.as_ptr(),
29781        tau.as_ptr(),
29782        c.as_mut_ptr(),
29783        &ldc,
29784        work.as_mut_ptr(),
29785    )
29786}
29787
29788#[inline]
29789pub unsafe fn clarfx(
29790    side: u8,
29791    m: i32,
29792    n: i32,
29793    v: &[c32],
29794    tau: &[c32],
29795    c: &mut [c32],
29796    ldc: i32,
29797    work: &mut [c32],
29798) {
29799    ffi::clarfx_(
29800        &(side as c_char),
29801        &m,
29802        &n,
29803        v.as_ptr() as *const _,
29804        tau.as_ptr() as *const _,
29805        c.as_mut_ptr() as *mut _,
29806        &ldc,
29807        work.as_mut_ptr() as *mut _,
29808    )
29809}
29810
29811#[inline]
29812pub unsafe fn zlarfx(
29813    side: u8,
29814    m: i32,
29815    n: i32,
29816    v: &[c64],
29817    tau: &[c64],
29818    c: &mut [c64],
29819    ldc: i32,
29820    work: &mut [c64],
29821) {
29822    ffi::zlarfx_(
29823        &(side as c_char),
29824        &m,
29825        &n,
29826        v.as_ptr() as *const _,
29827        tau.as_ptr() as *const _,
29828        c.as_mut_ptr() as *mut _,
29829        &ldc,
29830        work.as_mut_ptr() as *mut _,
29831    )
29832}
29833
29834#[inline]
29835pub unsafe fn slatms(
29836    m: i32,
29837    n: i32,
29838    dist: u8,
29839    iseed: &mut [i32],
29840    sym: u8,
29841    d: &mut [f32],
29842    mode: &[i32],
29843    cond: &[f32],
29844    dmax: &[f32],
29845    kl: i32,
29846    ku: i32,
29847    pack: u8,
29848    a: &mut [f32],
29849    lda: i32,
29850    work: &mut [f32],
29851    info: &mut i32,
29852) {
29853    ffi::slatms_(
29854        &m,
29855        &n,
29856        &(dist as c_char),
29857        iseed.as_mut_ptr(),
29858        &(sym as c_char),
29859        d.as_mut_ptr(),
29860        mode.as_ptr(),
29861        cond.as_ptr(),
29862        dmax.as_ptr(),
29863        &kl,
29864        &ku,
29865        &(pack as c_char),
29866        a.as_mut_ptr(),
29867        &lda,
29868        work.as_mut_ptr(),
29869        info,
29870    )
29871}
29872
29873#[inline]
29874pub unsafe fn dlatms(
29875    m: i32,
29876    n: i32,
29877    dist: u8,
29878    iseed: &mut [i32],
29879    sym: u8,
29880    d: &mut [f64],
29881    mode: &[i32],
29882    cond: &[f64],
29883    dmax: &[f64],
29884    kl: i32,
29885    ku: i32,
29886    pack: u8,
29887    a: &mut [f64],
29888    lda: i32,
29889    work: &mut [f64],
29890    info: &mut i32,
29891) {
29892    ffi::dlatms_(
29893        &m,
29894        &n,
29895        &(dist as c_char),
29896        iseed.as_mut_ptr(),
29897        &(sym as c_char),
29898        d.as_mut_ptr(),
29899        mode.as_ptr(),
29900        cond.as_ptr(),
29901        dmax.as_ptr(),
29902        &kl,
29903        &ku,
29904        &(pack as c_char),
29905        a.as_mut_ptr(),
29906        &lda,
29907        work.as_mut_ptr(),
29908        info,
29909    )
29910}
29911
29912#[inline]
29913pub unsafe fn clatms(
29914    m: i32,
29915    n: i32,
29916    dist: u8,
29917    iseed: &mut [i32],
29918    sym: u8,
29919    d: &mut [f32],
29920    mode: &[i32],
29921    cond: &[f32],
29922    dmax: &[f32],
29923    kl: i32,
29924    ku: i32,
29925    pack: u8,
29926    a: &mut [c32],
29927    lda: i32,
29928    work: &mut [c32],
29929    info: &mut i32,
29930) {
29931    ffi::clatms_(
29932        &m,
29933        &n,
29934        &(dist as c_char),
29935        iseed.as_mut_ptr(),
29936        &(sym as c_char),
29937        d.as_mut_ptr(),
29938        mode.as_ptr(),
29939        cond.as_ptr(),
29940        dmax.as_ptr(),
29941        &kl,
29942        &ku,
29943        &(pack as c_char),
29944        a.as_mut_ptr() as *mut _,
29945        &lda,
29946        work.as_mut_ptr() as *mut _,
29947        info,
29948    )
29949}
29950
29951#[inline]
29952pub unsafe fn zlatms(
29953    m: i32,
29954    n: i32,
29955    dist: u8,
29956    iseed: &mut [i32],
29957    sym: u8,
29958    d: &mut [f64],
29959    mode: &[i32],
29960    cond: &[f64],
29961    dmax: &[f64],
29962    kl: i32,
29963    ku: i32,
29964    pack: u8,
29965    a: &mut [c64],
29966    lda: i32,
29967    work: &mut [c64],
29968    info: &mut i32,
29969) {
29970    ffi::zlatms_(
29971        &m,
29972        &n,
29973        &(dist as c_char),
29974        iseed.as_mut_ptr(),
29975        &(sym as c_char),
29976        d.as_mut_ptr(),
29977        mode.as_ptr(),
29978        cond.as_ptr(),
29979        dmax.as_ptr(),
29980        &kl,
29981        &ku,
29982        &(pack as c_char),
29983        a.as_mut_ptr() as *mut _,
29984        &lda,
29985        work.as_mut_ptr() as *mut _,
29986        info,
29987    )
29988}
29989
29990#[inline]
29991pub unsafe fn slag2d(
29992    m: i32,
29993    n: i32,
29994    sa: &[f32],
29995    ldsa: i32,
29996    a: &mut [f64],
29997    lda: i32,
29998    info: &mut i32,
29999) {
30000    ffi::slag2d_(&m, &n, sa.as_ptr(), &ldsa, a.as_mut_ptr(), &lda, info)
30001}
30002
30003#[inline]
30004pub unsafe fn dlag2s(
30005    m: i32,
30006    n: i32,
30007    a: &[f64],
30008    lda: i32,
30009    sa: &mut [f32],
30010    ldsa: i32,
30011    info: &mut i32,
30012) {
30013    ffi::dlag2s_(&m, &n, a.as_ptr(), &lda, sa.as_mut_ptr(), &ldsa, info)
30014}
30015
30016#[inline]
30017pub unsafe fn clag2z(
30018    m: i32,
30019    n: i32,
30020    sa: &[c32],
30021    ldsa: i32,
30022    a: &mut [c64],
30023    lda: i32,
30024    info: &mut i32,
30025) {
30026    ffi::clag2z_(
30027        &m,
30028        &n,
30029        sa.as_ptr() as *const _,
30030        &ldsa,
30031        a.as_mut_ptr() as *mut _,
30032        &lda,
30033        info,
30034    )
30035}
30036
30037#[inline]
30038pub unsafe fn zlag2c(
30039    m: i32,
30040    n: i32,
30041    a: &[c64],
30042    lda: i32,
30043    sa: &mut [c32],
30044    ldsa: i32,
30045    info: &mut i32,
30046) {
30047    ffi::zlag2c_(
30048        &m,
30049        &n,
30050        a.as_ptr() as *const _,
30051        &lda,
30052        sa.as_mut_ptr() as *mut _,
30053        &ldsa,
30054        info,
30055    )
30056}
30057
30058#[inline]
30059pub unsafe fn slauum(uplo: u8, n: i32, a: &mut [f32], lda: i32, info: &mut i32) {
30060    ffi::slauum_(&(uplo as c_char), &n, a.as_mut_ptr(), &lda, info)
30061}
30062
30063#[inline]
30064pub unsafe fn dlauum(uplo: u8, n: i32, a: &mut [f64], lda: i32, info: &mut i32) {
30065    ffi::dlauum_(&(uplo as c_char), &n, a.as_mut_ptr(), &lda, info)
30066}
30067
30068#[inline]
30069pub unsafe fn clauum(uplo: u8, n: i32, a: &mut [c32], lda: i32, info: &mut i32) {
30070    ffi::clauum_(&(uplo as c_char), &n, a.as_mut_ptr() as *mut _, &lda, info)
30071}
30072
30073#[inline]
30074pub unsafe fn zlauum(uplo: u8, n: i32, a: &mut [c64], lda: i32, info: &mut i32) {
30075    ffi::zlauum_(&(uplo as c_char), &n, a.as_mut_ptr() as *mut _, &lda, info)
30076}
30077
30078#[inline]
30079pub unsafe fn slagge(
30080    m: i32,
30081    n: i32,
30082    kl: i32,
30083    ku: i32,
30084    d: &[f32],
30085    a: &mut [f32],
30086    lda: i32,
30087    iseed: &mut [i32],
30088    work: &mut [f32],
30089    info: &mut i32,
30090) {
30091    ffi::slagge_(
30092        &m,
30093        &n,
30094        &kl,
30095        &ku,
30096        d.as_ptr(),
30097        a.as_mut_ptr(),
30098        &lda,
30099        iseed.as_mut_ptr(),
30100        work.as_mut_ptr(),
30101        info,
30102    )
30103}
30104
30105#[inline]
30106pub unsafe fn dlagge(
30107    m: i32,
30108    n: i32,
30109    kl: i32,
30110    ku: i32,
30111    d: &[f64],
30112    a: &mut [f64],
30113    lda: i32,
30114    iseed: &mut [i32],
30115    work: &mut [f64],
30116    info: &mut i32,
30117) {
30118    ffi::dlagge_(
30119        &m,
30120        &n,
30121        &kl,
30122        &ku,
30123        d.as_ptr(),
30124        a.as_mut_ptr(),
30125        &lda,
30126        iseed.as_mut_ptr(),
30127        work.as_mut_ptr(),
30128        info,
30129    )
30130}
30131
30132#[inline]
30133pub unsafe fn clagge(
30134    m: i32,
30135    n: i32,
30136    kl: i32,
30137    ku: i32,
30138    d: &[f32],
30139    a: &mut [c32],
30140    lda: i32,
30141    iseed: &mut [i32],
30142    work: &mut [c32],
30143    info: &mut i32,
30144) {
30145    ffi::clagge_(
30146        &m,
30147        &n,
30148        &kl,
30149        &ku,
30150        d.as_ptr(),
30151        a.as_mut_ptr() as *mut _,
30152        &lda,
30153        iseed.as_mut_ptr(),
30154        work.as_mut_ptr() as *mut _,
30155        info,
30156    )
30157}
30158
30159#[inline]
30160pub unsafe fn zlagge(
30161    m: i32,
30162    n: i32,
30163    kl: i32,
30164    ku: i32,
30165    d: &[f64],
30166    a: &mut [c64],
30167    lda: i32,
30168    iseed: &mut [i32],
30169    work: &mut [c64],
30170    info: &mut i32,
30171) {
30172    ffi::zlagge_(
30173        &m,
30174        &n,
30175        &kl,
30176        &ku,
30177        d.as_ptr(),
30178        a.as_mut_ptr() as *mut _,
30179        &lda,
30180        iseed.as_mut_ptr(),
30181        work.as_mut_ptr() as *mut _,
30182        info,
30183    )
30184}
30185
30186#[inline]
30187pub unsafe fn slascl(
30188    _type: u8,
30189    kl: i32,
30190    ku: i32,
30191    cfrom: &[f32],
30192    cto: &[f32],
30193    m: i32,
30194    n: i32,
30195    a: &mut [f32],
30196    lda: i32,
30197    info: &mut i32,
30198) {
30199    ffi::slascl_(
30200        &(_type as c_char),
30201        &kl,
30202        &ku,
30203        cfrom.as_ptr(),
30204        cto.as_ptr(),
30205        &m,
30206        &n,
30207        a.as_mut_ptr(),
30208        &lda,
30209        info,
30210    )
30211}
30212
30213#[inline]
30214pub unsafe fn dlascl(
30215    _type: u8,
30216    kl: i32,
30217    ku: i32,
30218    cfrom: &[f64],
30219    cto: &[f64],
30220    m: i32,
30221    n: i32,
30222    a: &mut [f64],
30223    lda: i32,
30224    info: &mut i32,
30225) {
30226    ffi::dlascl_(
30227        &(_type as c_char),
30228        &kl,
30229        &ku,
30230        cfrom.as_ptr(),
30231        cto.as_ptr(),
30232        &m,
30233        &n,
30234        a.as_mut_ptr(),
30235        &lda,
30236        info,
30237    )
30238}
30239
30240#[inline]
30241pub unsafe fn clascl(
30242    _type: u8,
30243    kl: i32,
30244    ku: i32,
30245    cfrom: &[f32],
30246    cto: &[f32],
30247    m: i32,
30248    n: i32,
30249    a: &mut [c32],
30250    lda: i32,
30251    info: &mut i32,
30252) {
30253    ffi::clascl_(
30254        &(_type as c_char),
30255        &kl,
30256        &ku,
30257        cfrom.as_ptr(),
30258        cto.as_ptr(),
30259        &m,
30260        &n,
30261        a.as_mut_ptr() as *mut _,
30262        &lda,
30263        info,
30264    )
30265}
30266
30267#[inline]
30268pub unsafe fn zlascl(
30269    _type: u8,
30270    kl: i32,
30271    ku: i32,
30272    cfrom: &[f64],
30273    cto: &[f64],
30274    m: i32,
30275    n: i32,
30276    a: &mut [c64],
30277    lda: i32,
30278    info: &mut i32,
30279) {
30280    ffi::zlascl_(
30281        &(_type as c_char),
30282        &kl,
30283        &ku,
30284        cfrom.as_ptr(),
30285        cto.as_ptr(),
30286        &m,
30287        &n,
30288        a.as_mut_ptr() as *mut _,
30289        &lda,
30290        info,
30291    )
30292}
30293
30294#[inline]
30295pub unsafe fn slaset(uplo: u8, m: i32, n: i32, alpha: f32, beta: f32, a: &mut [f32], lda: i32) {
30296    ffi::slaset_(
30297        &(uplo as c_char),
30298        &m,
30299        &n,
30300        &alpha,
30301        &beta,
30302        a.as_mut_ptr(),
30303        &lda,
30304    )
30305}
30306
30307#[inline]
30308pub unsafe fn dlaset(uplo: u8, m: i32, n: i32, alpha: f64, beta: f64, a: &mut [f64], lda: i32) {
30309    ffi::dlaset_(
30310        &(uplo as c_char),
30311        &m,
30312        &n,
30313        &alpha,
30314        &beta,
30315        a.as_mut_ptr(),
30316        &lda,
30317    )
30318}
30319
30320#[inline]
30321pub unsafe fn claset(uplo: u8, m: i32, n: i32, alpha: c32, beta: c32, a: &mut [c32], lda: i32) {
30322    ffi::claset_(
30323        &(uplo as c_char),
30324        &m,
30325        &n,
30326        &alpha as *const _ as *const _,
30327        &beta as *const _ as *const _,
30328        a.as_mut_ptr() as *mut _,
30329        &lda,
30330    )
30331}
30332
30333#[inline]
30334pub unsafe fn zlaset(uplo: u8, m: i32, n: i32, alpha: c64, beta: c64, a: &mut [c64], lda: i32) {
30335    ffi::zlaset_(
30336        &(uplo as c_char),
30337        &m,
30338        &n,
30339        &alpha as *const _ as *const _,
30340        &beta as *const _ as *const _,
30341        a.as_mut_ptr() as *mut _,
30342        &lda,
30343    )
30344}
30345
30346#[inline]
30347pub unsafe fn slasrt(id: u8, n: i32, d: &mut [f32], info: &mut i32) {
30348    ffi::slasrt_(&(id as c_char), &n, d.as_mut_ptr(), info)
30349}
30350
30351#[inline]
30352pub unsafe fn dlasrt(id: u8, n: i32, d: &mut [f64], info: &mut i32) {
30353    ffi::dlasrt_(&(id as c_char), &n, d.as_mut_ptr(), info)
30354}
30355
30356#[inline]
30357pub unsafe fn claghe(
30358    n: i32,
30359    k: i32,
30360    d: &[f32],
30361    a: &mut [c32],
30362    lda: i32,
30363    iseed: &mut [i32],
30364    work: &mut [c32],
30365    info: &mut i32,
30366) {
30367    ffi::claghe_(
30368        &n,
30369        &k,
30370        d.as_ptr(),
30371        a.as_mut_ptr() as *mut _,
30372        &lda,
30373        iseed.as_mut_ptr(),
30374        work.as_mut_ptr() as *mut _,
30375        info,
30376    )
30377}
30378
30379#[inline]
30380pub unsafe fn zlaghe(
30381    n: i32,
30382    k: i32,
30383    d: &[f64],
30384    a: &mut [c64],
30385    lda: i32,
30386    iseed: &mut [i32],
30387    work: &mut [c64],
30388    info: &mut i32,
30389) {
30390    ffi::zlaghe_(
30391        &n,
30392        &k,
30393        d.as_ptr(),
30394        a.as_mut_ptr() as *mut _,
30395        &lda,
30396        iseed.as_mut_ptr(),
30397        work.as_mut_ptr() as *mut _,
30398        info,
30399    )
30400}
30401
30402#[inline]
30403pub unsafe fn slagsy(
30404    n: i32,
30405    k: i32,
30406    d: &[f32],
30407    a: &mut [f32],
30408    lda: i32,
30409    iseed: &mut [i32],
30410    work: &mut [f32],
30411    info: &mut i32,
30412) {
30413    ffi::slagsy_(
30414        &n,
30415        &k,
30416        d.as_ptr(),
30417        a.as_mut_ptr(),
30418        &lda,
30419        iseed.as_mut_ptr(),
30420        work.as_mut_ptr(),
30421        info,
30422    )
30423}
30424
30425#[inline]
30426pub unsafe fn dlagsy(
30427    n: i32,
30428    k: i32,
30429    d: &[f64],
30430    a: &mut [f64],
30431    lda: i32,
30432    iseed: &mut [i32],
30433    work: &mut [f64],
30434    info: &mut i32,
30435) {
30436    ffi::dlagsy_(
30437        &n,
30438        &k,
30439        d.as_ptr(),
30440        a.as_mut_ptr(),
30441        &lda,
30442        iseed.as_mut_ptr(),
30443        work.as_mut_ptr(),
30444        info,
30445    )
30446}
30447
30448#[inline]
30449pub unsafe fn clagsy(
30450    n: i32,
30451    k: i32,
30452    d: &[f32],
30453    a: &mut [c32],
30454    lda: i32,
30455    iseed: &mut [i32],
30456    work: &mut [c32],
30457    info: &mut i32,
30458) {
30459    ffi::clagsy_(
30460        &n,
30461        &k,
30462        d.as_ptr(),
30463        a.as_mut_ptr() as *mut _,
30464        &lda,
30465        iseed.as_mut_ptr(),
30466        work.as_mut_ptr() as *mut _,
30467        info,
30468    )
30469}
30470
30471#[inline]
30472pub unsafe fn zlagsy(
30473    n: i32,
30474    k: i32,
30475    d: &[f64],
30476    a: &mut [c64],
30477    lda: i32,
30478    iseed: &mut [i32],
30479    work: &mut [c64],
30480    info: &mut i32,
30481) {
30482    ffi::zlagsy_(
30483        &n,
30484        &k,
30485        d.as_ptr(),
30486        a.as_mut_ptr() as *mut _,
30487        &lda,
30488        iseed.as_mut_ptr(),
30489        work.as_mut_ptr() as *mut _,
30490        info,
30491    )
30492}
30493
30494#[inline]
30495pub unsafe fn slapmr(forwrd: &[i32], m: i32, n: i32, x: &mut [f32], ldx: i32, k: &mut i32) {
30496    ffi::slapmr_(forwrd.as_ptr(), &m, &n, x.as_mut_ptr(), &ldx, k)
30497}
30498
30499#[inline]
30500pub unsafe fn dlapmr(forwrd: &[i32], m: i32, n: i32, x: &mut [f64], ldx: i32, k: &mut i32) {
30501    ffi::dlapmr_(forwrd.as_ptr(), &m, &n, x.as_mut_ptr(), &ldx, k)
30502}
30503
30504#[inline]
30505pub unsafe fn clapmr(forwrd: &[i32], m: i32, n: i32, x: &mut [c32], ldx: i32, k: &mut i32) {
30506    ffi::clapmr_(forwrd.as_ptr(), &m, &n, x.as_mut_ptr() as *mut _, &ldx, k)
30507}
30508
30509#[inline]
30510pub unsafe fn zlapmr(forwrd: &[i32], m: i32, n: i32, x: &mut [c64], ldx: i32, k: &mut i32) {
30511    ffi::zlapmr_(forwrd.as_ptr(), &m, &n, x.as_mut_ptr() as *mut _, &ldx, k)
30512}
30513
30514#[inline]
30515pub unsafe fn slapmt(forwrd: &[i32], m: i32, n: i32, x: &mut [f32], ldx: i32, k: &mut i32) {
30516    ffi::slapmt_(forwrd.as_ptr(), &m, &n, x.as_mut_ptr(), &ldx, k)
30517}
30518
30519#[inline]
30520pub unsafe fn dlapmt(forwrd: &[i32], m: i32, n: i32, x: &mut [f64], ldx: i32, k: &mut i32) {
30521    ffi::dlapmt_(forwrd.as_ptr(), &m, &n, x.as_mut_ptr(), &ldx, k)
30522}
30523
30524#[inline]
30525pub unsafe fn clapmt(forwrd: &[i32], m: i32, n: i32, x: &mut [c32], ldx: i32, k: &mut i32) {
30526    ffi::clapmt_(forwrd.as_ptr(), &m, &n, x.as_mut_ptr() as *mut _, &ldx, k)
30527}
30528
30529#[inline]
30530pub unsafe fn zlapmt(forwrd: &[i32], m: i32, n: i32, x: &mut [c64], ldx: i32, k: &mut i32) {
30531    ffi::zlapmt_(forwrd.as_ptr(), &m, &n, x.as_mut_ptr() as *mut _, &ldx, k)
30532}
30533
30534#[inline]
30535pub unsafe fn slapy2(x: &[f32], y: &[f32]) -> f32 {
30536    ffi::slapy2_(x.as_ptr(), y.as_ptr())
30537}
30538
30539#[inline]
30540pub unsafe fn dlapy2(x: &[f64], y: &[f64]) -> f64 {
30541    ffi::dlapy2_(x.as_ptr(), y.as_ptr())
30542}
30543
30544#[inline]
30545pub unsafe fn slapy3(x: &[f32], y: &[f32], z: &[f32]) -> f32 {
30546    ffi::slapy3_(x.as_ptr(), y.as_ptr(), z.as_ptr())
30547}
30548
30549#[inline]
30550pub unsafe fn dlapy3(x: &[f64], y: &[f64], z: &[f64]) -> f64 {
30551    ffi::dlapy3_(x.as_ptr(), y.as_ptr(), z.as_ptr())
30552}
30553
30554#[inline]
30555pub unsafe fn slartgp(f: &[f32], g: &[f32], cs: &mut [f32], sn: &mut [f32], r: &mut [f32]) {
30556    ffi::slartgp_(
30557        f.as_ptr(),
30558        g.as_ptr(),
30559        cs.as_mut_ptr(),
30560        sn.as_mut_ptr(),
30561        r.as_mut_ptr(),
30562    )
30563}
30564
30565#[inline]
30566pub unsafe fn dlartgp(f: &[f64], g: &[f64], cs: &mut [f64], sn: &mut [f64], r: &mut [f64]) {
30567    ffi::dlartgp_(
30568        f.as_ptr(),
30569        g.as_ptr(),
30570        cs.as_mut_ptr(),
30571        sn.as_mut_ptr(),
30572        r.as_mut_ptr(),
30573    )
30574}
30575
30576#[inline]
30577pub unsafe fn slartgs(x: &[f32], y: &[f32], sigma: &[f32], cs: &mut [f32], sn: &mut [f32]) {
30578    ffi::slartgs_(
30579        x.as_ptr(),
30580        y.as_ptr(),
30581        sigma.as_ptr(),
30582        cs.as_mut_ptr(),
30583        sn.as_mut_ptr(),
30584    )
30585}
30586
30587#[inline]
30588pub unsafe fn dlartgs(x: &[f64], y: &[f64], sigma: &[f64], cs: &mut [f64], sn: &mut [f64]) {
30589    ffi::dlartgs_(
30590        x.as_ptr(),
30591        y.as_ptr(),
30592        sigma.as_ptr(),
30593        cs.as_mut_ptr(),
30594        sn.as_mut_ptr(),
30595    )
30596}
30597
30598#[inline]
30599pub unsafe fn cbbcsd(
30600    jobu1: u8,
30601    jobu2: u8,
30602    jobv1t: u8,
30603    jobv2t: u8,
30604    trans: u8,
30605    m: i32,
30606    p: i32,
30607    q: i32,
30608    theta: &mut [f32],
30609    phi: &mut [f32],
30610    u1: &mut [c32],
30611    ldu1: i32,
30612    u2: &mut [c32],
30613    ldu2: i32,
30614    v1t: &mut [c32],
30615    ldv1t: i32,
30616    v2t: &mut [c32],
30617    ldv2t: i32,
30618    b11d: &mut [f32],
30619    b11e: &mut [f32],
30620    b12d: &mut [f32],
30621    b12e: &mut [f32],
30622    b21d: &mut [f32],
30623    b21e: &mut [f32],
30624    b22d: &mut [f32],
30625    b22e: &mut [f32],
30626    rwork: &mut [f32],
30627    lrwork: i32,
30628    info: &mut i32,
30629) {
30630    ffi::cbbcsd_(
30631        &(jobu1 as c_char),
30632        &(jobu2 as c_char),
30633        &(jobv1t as c_char),
30634        &(jobv2t as c_char),
30635        &(trans as c_char),
30636        &m,
30637        &p,
30638        &q,
30639        theta.as_mut_ptr(),
30640        phi.as_mut_ptr(),
30641        u1.as_mut_ptr() as *mut _,
30642        &ldu1,
30643        u2.as_mut_ptr() as *mut _,
30644        &ldu2,
30645        v1t.as_mut_ptr() as *mut _,
30646        &ldv1t,
30647        v2t.as_mut_ptr() as *mut _,
30648        &ldv2t,
30649        b11d.as_mut_ptr(),
30650        b11e.as_mut_ptr(),
30651        b12d.as_mut_ptr(),
30652        b12e.as_mut_ptr(),
30653        b21d.as_mut_ptr(),
30654        b21e.as_mut_ptr(),
30655        b22d.as_mut_ptr(),
30656        b22e.as_mut_ptr(),
30657        rwork.as_mut_ptr(),
30658        &lrwork,
30659        info,
30660    )
30661}
30662
30663#[inline]
30664pub unsafe fn cheswapr(uplo: u8, n: i32, a: &mut [c32], i1: &[i32], i2: &[i32]) {
30665    ffi::cheswapr_(
30666        &(uplo as c_char),
30667        &n,
30668        a.as_mut_ptr() as *mut _,
30669        i1.as_ptr(),
30670        i2.as_ptr(),
30671    )
30672}
30673
30674#[inline]
30675pub unsafe fn chetri2(
30676    uplo: u8,
30677    n: i32,
30678    a: &mut [c32],
30679    lda: i32,
30680    ipiv: &[i32],
30681    work: &mut [c32],
30682    lwork: i32,
30683    info: &mut i32,
30684) {
30685    ffi::chetri2_(
30686        &(uplo as c_char),
30687        &n,
30688        a.as_mut_ptr() as *mut _,
30689        &lda,
30690        ipiv.as_ptr(),
30691        work.as_mut_ptr() as *mut _,
30692        &lwork,
30693        info,
30694    )
30695}
30696
30697#[inline]
30698pub unsafe fn chetri2x(
30699    uplo: u8,
30700    n: i32,
30701    a: &mut [c32],
30702    lda: i32,
30703    ipiv: &[i32],
30704    work: &mut [c32],
30705    nb: i32,
30706    info: &mut i32,
30707) {
30708    ffi::chetri2x_(
30709        &(uplo as c_char),
30710        &n,
30711        a.as_mut_ptr() as *mut _,
30712        &lda,
30713        ipiv.as_ptr(),
30714        work.as_mut_ptr() as *mut _,
30715        &nb,
30716        info,
30717    )
30718}
30719
30720#[inline]
30721pub unsafe fn chetrs2(
30722    uplo: u8,
30723    n: i32,
30724    nrhs: i32,
30725    a: &[c32],
30726    lda: i32,
30727    ipiv: &[i32],
30728    b: &mut [c32],
30729    ldb: i32,
30730    work: &mut [c32],
30731    info: &mut i32,
30732) {
30733    ffi::chetrs2_(
30734        &(uplo as c_char),
30735        &n,
30736        &nrhs,
30737        a.as_ptr() as *const _,
30738        &lda,
30739        ipiv.as_ptr(),
30740        b.as_mut_ptr() as *mut _,
30741        &ldb,
30742        work.as_mut_ptr() as *mut _,
30743        info,
30744    )
30745}
30746
30747#[inline]
30748pub unsafe fn csyconv(
30749    uplo: u8,
30750    way: u8,
30751    n: i32,
30752    a: &mut [c32],
30753    lda: i32,
30754    ipiv: &[i32],
30755    work: &mut [c32],
30756    info: &mut i32,
30757) {
30758    ffi::csyconv_(
30759        &(uplo as c_char),
30760        &(way as c_char),
30761        &n,
30762        a.as_mut_ptr() as *mut _,
30763        &lda,
30764        ipiv.as_ptr(),
30765        work.as_mut_ptr() as *mut _,
30766        info,
30767    )
30768}
30769
30770#[inline]
30771pub unsafe fn csyswapr(uplo: u8, n: i32, a: &mut [c32], i1: &[i32], i2: &[i32]) {
30772    ffi::csyswapr_(
30773        &(uplo as c_char),
30774        &n,
30775        a.as_mut_ptr() as *mut _,
30776        i1.as_ptr(),
30777        i2.as_ptr(),
30778    )
30779}
30780
30781#[inline]
30782pub unsafe fn csytri2(
30783    uplo: u8,
30784    n: i32,
30785    a: &mut [c32],
30786    lda: i32,
30787    ipiv: &[i32],
30788    work: &mut [c32],
30789    lwork: i32,
30790    info: &mut i32,
30791) {
30792    ffi::csytri2_(
30793        &(uplo as c_char),
30794        &n,
30795        a.as_mut_ptr() as *mut _,
30796        &lda,
30797        ipiv.as_ptr(),
30798        work.as_mut_ptr() as *mut _,
30799        &lwork,
30800        info,
30801    )
30802}
30803
30804#[inline]
30805pub unsafe fn csytri2x(
30806    uplo: u8,
30807    n: i32,
30808    a: &mut [c32],
30809    lda: i32,
30810    ipiv: &[i32],
30811    work: &mut [c32],
30812    nb: i32,
30813    info: &mut i32,
30814) {
30815    ffi::csytri2x_(
30816        &(uplo as c_char),
30817        &n,
30818        a.as_mut_ptr() as *mut _,
30819        &lda,
30820        ipiv.as_ptr(),
30821        work.as_mut_ptr() as *mut _,
30822        &nb,
30823        info,
30824    )
30825}
30826
30827#[inline]
30828pub unsafe fn csytrs2(
30829    uplo: u8,
30830    n: i32,
30831    nrhs: i32,
30832    a: &[c32],
30833    lda: i32,
30834    ipiv: &[i32],
30835    b: &mut [c32],
30836    ldb: i32,
30837    work: &mut [c32],
30838    info: &mut i32,
30839) {
30840    ffi::csytrs2_(
30841        &(uplo as c_char),
30842        &n,
30843        &nrhs,
30844        a.as_ptr() as *const _,
30845        &lda,
30846        ipiv.as_ptr(),
30847        b.as_mut_ptr() as *mut _,
30848        &ldb,
30849        work.as_mut_ptr() as *mut _,
30850        info,
30851    )
30852}
30853
30854#[inline]
30855pub unsafe fn cunbdb(
30856    trans: u8,
30857    signs: u8,
30858    m: i32,
30859    p: i32,
30860    q: i32,
30861    x11: &mut [c32],
30862    ldx11: i32,
30863    x12: &mut [c32],
30864    ldx12: i32,
30865    x21: &mut [c32],
30866    ldx21: i32,
30867    x22: &mut [c32],
30868    ldx22: i32,
30869    theta: &mut [f32],
30870    phi: &mut [f32],
30871    taup1: &mut [c32],
30872    taup2: &mut [c32],
30873    tauq1: &mut [c32],
30874    tauq2: &mut [c32],
30875    work: &mut [c32],
30876    lwork: i32,
30877    info: &mut i32,
30878) {
30879    ffi::cunbdb_(
30880        &(trans as c_char),
30881        &(signs as c_char),
30882        &m,
30883        &p,
30884        &q,
30885        x11.as_mut_ptr() as *mut _,
30886        &ldx11,
30887        x12.as_mut_ptr() as *mut _,
30888        &ldx12,
30889        x21.as_mut_ptr() as *mut _,
30890        &ldx21,
30891        x22.as_mut_ptr() as *mut _,
30892        &ldx22,
30893        theta.as_mut_ptr(),
30894        phi.as_mut_ptr(),
30895        taup1.as_mut_ptr() as *mut _,
30896        taup2.as_mut_ptr() as *mut _,
30897        tauq1.as_mut_ptr() as *mut _,
30898        tauq2.as_mut_ptr() as *mut _,
30899        work.as_mut_ptr() as *mut _,
30900        &lwork,
30901        info,
30902    )
30903}
30904
30905#[inline]
30906pub unsafe fn cuncsd(
30907    jobu1: u8,
30908    jobu2: u8,
30909    jobv1t: u8,
30910    jobv2t: u8,
30911    trans: u8,
30912    signs: u8,
30913    m: i32,
30914    p: i32,
30915    q: i32,
30916    x11: &mut [c32],
30917    ldx11: i32,
30918    x12: &mut [c32],
30919    ldx12: i32,
30920    x21: &mut [c32],
30921    ldx21: i32,
30922    x22: &mut [c32],
30923    ldx22: i32,
30924    theta: &mut [f32],
30925    u1: &mut [c32],
30926    ldu1: i32,
30927    u2: &mut [c32],
30928    ldu2: i32,
30929    v1t: &mut [c32],
30930    ldv1t: i32,
30931    v2t: &mut [c32],
30932    ldv2t: i32,
30933    work: &mut [c32],
30934    lwork: i32,
30935    rwork: &mut [f32],
30936    lrwork: i32,
30937    iwork: &mut [i32],
30938    info: &mut i32,
30939) {
30940    ffi::cuncsd_(
30941        &(jobu1 as c_char),
30942        &(jobu2 as c_char),
30943        &(jobv1t as c_char),
30944        &(jobv2t as c_char),
30945        &(trans as c_char),
30946        &(signs as c_char),
30947        &m,
30948        &p,
30949        &q,
30950        x11.as_mut_ptr() as *mut _,
30951        &ldx11,
30952        x12.as_mut_ptr() as *mut _,
30953        &ldx12,
30954        x21.as_mut_ptr() as *mut _,
30955        &ldx21,
30956        x22.as_mut_ptr() as *mut _,
30957        &ldx22,
30958        theta.as_mut_ptr(),
30959        u1.as_mut_ptr() as *mut _,
30960        &ldu1,
30961        u2.as_mut_ptr() as *mut _,
30962        &ldu2,
30963        v1t.as_mut_ptr() as *mut _,
30964        &ldv1t,
30965        v2t.as_mut_ptr() as *mut _,
30966        &ldv2t,
30967        work.as_mut_ptr() as *mut _,
30968        &lwork,
30969        rwork.as_mut_ptr(),
30970        &lrwork,
30971        iwork.as_mut_ptr(),
30972        info,
30973    )
30974}
30975
30976#[inline]
30977pub unsafe fn cuncsd2by1(
30978    jobu1: u8,
30979    jobu2: u8,
30980    jobv1t: u8,
30981    m: i32,
30982    p: i32,
30983    q: i32,
30984    x11: &mut [c32],
30985    ldx11: i32,
30986    x21: &mut [c32],
30987    ldx21: i32,
30988    theta: &mut [c32],
30989    u1: &mut [c32],
30990    ldu1: i32,
30991    u2: &mut [c32],
30992    ldu2: i32,
30993    v1t: &mut [c32],
30994    ldv1t: i32,
30995    work: &mut [c32],
30996    lwork: i32,
30997    rwork: &mut [f32],
30998    lrwork: i32,
30999    iwork: &mut [i32],
31000    info: &mut i32,
31001) {
31002    ffi::cuncsd2by1_(
31003        &(jobu1 as c_char),
31004        &(jobu2 as c_char),
31005        &(jobv1t as c_char),
31006        &m,
31007        &p,
31008        &q,
31009        x11.as_mut_ptr() as *mut _,
31010        &ldx11,
31011        x21.as_mut_ptr() as *mut _,
31012        &ldx21,
31013        theta.as_mut_ptr() as *mut _,
31014        u1.as_mut_ptr() as *mut _,
31015        &ldu1,
31016        u2.as_mut_ptr() as *mut _,
31017        &ldu2,
31018        v1t.as_mut_ptr() as *mut _,
31019        &ldv1t,
31020        work.as_mut_ptr() as *mut _,
31021        &lwork,
31022        rwork.as_mut_ptr(),
31023        &lrwork,
31024        iwork.as_mut_ptr(),
31025        info,
31026    )
31027}
31028
31029#[inline]
31030pub unsafe fn dbbcsd(
31031    jobu1: u8,
31032    jobu2: u8,
31033    jobv1t: u8,
31034    jobv2t: u8,
31035    trans: u8,
31036    m: i32,
31037    p: i32,
31038    q: i32,
31039    theta: &mut [f64],
31040    phi: &mut [f64],
31041    u1: &mut [f64],
31042    ldu1: i32,
31043    u2: &mut [f64],
31044    ldu2: i32,
31045    v1t: &mut [f64],
31046    ldv1t: i32,
31047    v2t: &mut [f64],
31048    ldv2t: i32,
31049    b11d: &mut [f64],
31050    b11e: &mut [f64],
31051    b12d: &mut [f64],
31052    b12e: &mut [f64],
31053    b21d: &mut [f64],
31054    b21e: &mut [f64],
31055    b22d: &mut [f64],
31056    b22e: &mut [f64],
31057    work: &mut [f64],
31058    lwork: i32,
31059    info: &mut i32,
31060) {
31061    ffi::dbbcsd_(
31062        &(jobu1 as c_char),
31063        &(jobu2 as c_char),
31064        &(jobv1t as c_char),
31065        &(jobv2t as c_char),
31066        &(trans as c_char),
31067        &m,
31068        &p,
31069        &q,
31070        theta.as_mut_ptr(),
31071        phi.as_mut_ptr(),
31072        u1.as_mut_ptr(),
31073        &ldu1,
31074        u2.as_mut_ptr(),
31075        &ldu2,
31076        v1t.as_mut_ptr(),
31077        &ldv1t,
31078        v2t.as_mut_ptr(),
31079        &ldv2t,
31080        b11d.as_mut_ptr(),
31081        b11e.as_mut_ptr(),
31082        b12d.as_mut_ptr(),
31083        b12e.as_mut_ptr(),
31084        b21d.as_mut_ptr(),
31085        b21e.as_mut_ptr(),
31086        b22d.as_mut_ptr(),
31087        b22e.as_mut_ptr(),
31088        work.as_mut_ptr(),
31089        &lwork,
31090        info,
31091    )
31092}
31093
31094#[inline]
31095pub unsafe fn dorbdb(
31096    trans: u8,
31097    signs: u8,
31098    m: i32,
31099    p: i32,
31100    q: i32,
31101    x11: &mut [f64],
31102    ldx11: i32,
31103    x12: &mut [f64],
31104    ldx12: i32,
31105    x21: &mut [f64],
31106    ldx21: i32,
31107    x22: &mut [f64],
31108    ldx22: i32,
31109    theta: &mut [f64],
31110    phi: &mut [f64],
31111    taup1: &mut [f64],
31112    taup2: &mut [f64],
31113    tauq1: &mut [f64],
31114    tauq2: &mut [f64],
31115    work: &mut [f64],
31116    lwork: i32,
31117    info: &mut i32,
31118) {
31119    ffi::dorbdb_(
31120        &(trans as c_char),
31121        &(signs as c_char),
31122        &m,
31123        &p,
31124        &q,
31125        x11.as_mut_ptr(),
31126        &ldx11,
31127        x12.as_mut_ptr(),
31128        &ldx12,
31129        x21.as_mut_ptr(),
31130        &ldx21,
31131        x22.as_mut_ptr(),
31132        &ldx22,
31133        theta.as_mut_ptr(),
31134        phi.as_mut_ptr(),
31135        taup1.as_mut_ptr(),
31136        taup2.as_mut_ptr(),
31137        tauq1.as_mut_ptr(),
31138        tauq2.as_mut_ptr(),
31139        work.as_mut_ptr(),
31140        &lwork,
31141        info,
31142    )
31143}
31144
31145#[inline]
31146pub unsafe fn dorcsd(
31147    jobu1: u8,
31148    jobu2: u8,
31149    jobv1t: u8,
31150    jobv2t: u8,
31151    trans: u8,
31152    signs: u8,
31153    m: i32,
31154    p: i32,
31155    q: i32,
31156    x11: &mut [f64],
31157    ldx11: i32,
31158    x12: &mut [f64],
31159    ldx12: i32,
31160    x21: &mut [f64],
31161    ldx21: i32,
31162    x22: &mut [f64],
31163    ldx22: i32,
31164    theta: &mut [f64],
31165    u1: &mut [f64],
31166    ldu1: i32,
31167    u2: &mut [f64],
31168    ldu2: i32,
31169    v1t: &mut [f64],
31170    ldv1t: i32,
31171    v2t: &mut [f64],
31172    ldv2t: i32,
31173    work: &mut [f64],
31174    lwork: i32,
31175    iwork: &mut [i32],
31176    info: &mut i32,
31177) {
31178    ffi::dorcsd_(
31179        &(jobu1 as c_char),
31180        &(jobu2 as c_char),
31181        &(jobv1t as c_char),
31182        &(jobv2t as c_char),
31183        &(trans as c_char),
31184        &(signs as c_char),
31185        &m,
31186        &p,
31187        &q,
31188        x11.as_mut_ptr(),
31189        &ldx11,
31190        x12.as_mut_ptr(),
31191        &ldx12,
31192        x21.as_mut_ptr(),
31193        &ldx21,
31194        x22.as_mut_ptr(),
31195        &ldx22,
31196        theta.as_mut_ptr(),
31197        u1.as_mut_ptr(),
31198        &ldu1,
31199        u2.as_mut_ptr(),
31200        &ldu2,
31201        v1t.as_mut_ptr(),
31202        &ldv1t,
31203        v2t.as_mut_ptr(),
31204        &ldv2t,
31205        work.as_mut_ptr(),
31206        &lwork,
31207        iwork.as_mut_ptr(),
31208        info,
31209    )
31210}
31211
31212#[inline]
31213pub unsafe fn dorcsd2by1(
31214    jobu1: u8,
31215    jobu2: u8,
31216    jobv1t: u8,
31217    m: i32,
31218    p: i32,
31219    q: i32,
31220    x11: &mut [f64],
31221    ldx11: i32,
31222    x21: &mut [f64],
31223    ldx21: i32,
31224    theta: &mut [f64],
31225    u1: &mut [f64],
31226    ldu1: i32,
31227    u2: &mut [f64],
31228    ldu2: i32,
31229    v1t: &mut [f64],
31230    ldv1t: i32,
31231    work: &mut [f64],
31232    lwork: i32,
31233    iwork: &mut [i32],
31234    info: &mut i32,
31235) {
31236    ffi::dorcsd2by1_(
31237        &(jobu1 as c_char),
31238        &(jobu2 as c_char),
31239        &(jobv1t as c_char),
31240        &m,
31241        &p,
31242        &q,
31243        x11.as_mut_ptr(),
31244        &ldx11,
31245        x21.as_mut_ptr(),
31246        &ldx21,
31247        theta.as_mut_ptr(),
31248        u1.as_mut_ptr(),
31249        &ldu1,
31250        u2.as_mut_ptr(),
31251        &ldu2,
31252        v1t.as_mut_ptr(),
31253        &ldv1t,
31254        work.as_mut_ptr(),
31255        &lwork,
31256        iwork.as_mut_ptr(),
31257        info,
31258    )
31259}
31260
31261#[inline]
31262pub unsafe fn dsyconv(
31263    uplo: u8,
31264    way: u8,
31265    n: i32,
31266    a: &mut [f64],
31267    lda: i32,
31268    ipiv: &[i32],
31269    work: &mut [f64],
31270    info: &mut i32,
31271) {
31272    ffi::dsyconv_(
31273        &(uplo as c_char),
31274        &(way as c_char),
31275        &n,
31276        a.as_mut_ptr(),
31277        &lda,
31278        ipiv.as_ptr(),
31279        work.as_mut_ptr(),
31280        info,
31281    )
31282}
31283
31284#[inline]
31285pub unsafe fn dsyswapr(uplo: u8, n: i32, a: &mut [f64], i1: &[i32], i2: &[i32]) {
31286    ffi::dsyswapr_(
31287        &(uplo as c_char),
31288        &n,
31289        a.as_mut_ptr(),
31290        i1.as_ptr(),
31291        i2.as_ptr(),
31292    )
31293}
31294
31295#[inline]
31296pub unsafe fn dsytri2(
31297    uplo: u8,
31298    n: i32,
31299    a: &mut [f64],
31300    lda: i32,
31301    ipiv: &[i32],
31302    work: &mut [c64],
31303    lwork: i32,
31304    info: &mut i32,
31305) {
31306    ffi::dsytri2_(
31307        &(uplo as c_char),
31308        &n,
31309        a.as_mut_ptr(),
31310        &lda,
31311        ipiv.as_ptr(),
31312        work.as_mut_ptr() as *mut _,
31313        &lwork,
31314        info,
31315    )
31316}
31317
31318#[inline]
31319pub unsafe fn dsytri2x(
31320    uplo: u8,
31321    n: i32,
31322    a: &mut [f64],
31323    lda: i32,
31324    ipiv: &[i32],
31325    work: &mut [f64],
31326    nb: i32,
31327    info: &mut i32,
31328) {
31329    ffi::dsytri2x_(
31330        &(uplo as c_char),
31331        &n,
31332        a.as_mut_ptr(),
31333        &lda,
31334        ipiv.as_ptr(),
31335        work.as_mut_ptr(),
31336        &nb,
31337        info,
31338    )
31339}
31340
31341#[inline]
31342pub unsafe fn dsytrs2(
31343    uplo: u8,
31344    n: i32,
31345    nrhs: i32,
31346    a: &[f64],
31347    lda: i32,
31348    ipiv: &[i32],
31349    b: &mut [f64],
31350    ldb: i32,
31351    work: &mut [f64],
31352    info: &mut i32,
31353) {
31354    ffi::dsytrs2_(
31355        &(uplo as c_char),
31356        &n,
31357        &nrhs,
31358        a.as_ptr(),
31359        &lda,
31360        ipiv.as_ptr(),
31361        b.as_mut_ptr(),
31362        &ldb,
31363        work.as_mut_ptr(),
31364        info,
31365    )
31366}
31367
31368#[inline]
31369pub unsafe fn sbbcsd(
31370    jobu1: u8,
31371    jobu2: u8,
31372    jobv1t: u8,
31373    jobv2t: u8,
31374    trans: u8,
31375    m: i32,
31376    p: i32,
31377    q: i32,
31378    theta: &mut [f32],
31379    phi: &mut [f32],
31380    u1: &mut [f32],
31381    ldu1: i32,
31382    u2: &mut [f32],
31383    ldu2: i32,
31384    v1t: &mut [f32],
31385    ldv1t: i32,
31386    v2t: &mut [f32],
31387    ldv2t: i32,
31388    b11d: &mut [f32],
31389    b11e: &mut [f32],
31390    b12d: &mut [f32],
31391    b12e: &mut [f32],
31392    b21d: &mut [f32],
31393    b21e: &mut [f32],
31394    b22d: &mut [f32],
31395    b22e: &mut [f32],
31396    work: &mut [f32],
31397    lwork: i32,
31398    info: &mut i32,
31399) {
31400    ffi::sbbcsd_(
31401        &(jobu1 as c_char),
31402        &(jobu2 as c_char),
31403        &(jobv1t as c_char),
31404        &(jobv2t as c_char),
31405        &(trans as c_char),
31406        &m,
31407        &p,
31408        &q,
31409        theta.as_mut_ptr(),
31410        phi.as_mut_ptr(),
31411        u1.as_mut_ptr(),
31412        &ldu1,
31413        u2.as_mut_ptr(),
31414        &ldu2,
31415        v1t.as_mut_ptr(),
31416        &ldv1t,
31417        v2t.as_mut_ptr(),
31418        &ldv2t,
31419        b11d.as_mut_ptr(),
31420        b11e.as_mut_ptr(),
31421        b12d.as_mut_ptr(),
31422        b12e.as_mut_ptr(),
31423        b21d.as_mut_ptr(),
31424        b21e.as_mut_ptr(),
31425        b22d.as_mut_ptr(),
31426        b22e.as_mut_ptr(),
31427        work.as_mut_ptr(),
31428        &lwork,
31429        info,
31430    )
31431}
31432
31433#[inline]
31434pub unsafe fn sorbdb(
31435    trans: u8,
31436    signs: u8,
31437    m: i32,
31438    p: i32,
31439    q: i32,
31440    x11: &mut [f32],
31441    ldx11: i32,
31442    x12: &mut [f32],
31443    ldx12: i32,
31444    x21: &mut [f32],
31445    ldx21: i32,
31446    x22: &mut [f32],
31447    ldx22: i32,
31448    theta: &mut [f32],
31449    phi: &mut [f32],
31450    taup1: &mut [f32],
31451    taup2: &mut [f32],
31452    tauq1: &mut [f32],
31453    tauq2: &mut [f32],
31454    work: &mut [f32],
31455    lwork: i32,
31456    info: &mut i32,
31457) {
31458    ffi::sorbdb_(
31459        &(trans as c_char),
31460        &(signs as c_char),
31461        &m,
31462        &p,
31463        &q,
31464        x11.as_mut_ptr(),
31465        &ldx11,
31466        x12.as_mut_ptr(),
31467        &ldx12,
31468        x21.as_mut_ptr(),
31469        &ldx21,
31470        x22.as_mut_ptr(),
31471        &ldx22,
31472        theta.as_mut_ptr(),
31473        phi.as_mut_ptr(),
31474        taup1.as_mut_ptr(),
31475        taup2.as_mut_ptr(),
31476        tauq1.as_mut_ptr(),
31477        tauq2.as_mut_ptr(),
31478        work.as_mut_ptr(),
31479        &lwork,
31480        info,
31481    )
31482}
31483
31484#[inline]
31485pub unsafe fn sorcsd(
31486    jobu1: u8,
31487    jobu2: u8,
31488    jobv1t: u8,
31489    jobv2t: u8,
31490    trans: u8,
31491    signs: u8,
31492    m: i32,
31493    p: i32,
31494    q: i32,
31495    x11: &mut [f32],
31496    ldx11: i32,
31497    x12: &mut [f32],
31498    ldx12: i32,
31499    x21: &mut [f32],
31500    ldx21: i32,
31501    x22: &mut [f32],
31502    ldx22: i32,
31503    theta: &mut [f32],
31504    u1: &mut [f32],
31505    ldu1: i32,
31506    u2: &mut [f32],
31507    ldu2: i32,
31508    v1t: &mut [f32],
31509    ldv1t: i32,
31510    v2t: &mut [f32],
31511    ldv2t: i32,
31512    work: &mut [f32],
31513    lwork: i32,
31514    iwork: &mut [i32],
31515    info: &mut i32,
31516) {
31517    ffi::sorcsd_(
31518        &(jobu1 as c_char),
31519        &(jobu2 as c_char),
31520        &(jobv1t as c_char),
31521        &(jobv2t as c_char),
31522        &(trans as c_char),
31523        &(signs as c_char),
31524        &m,
31525        &p,
31526        &q,
31527        x11.as_mut_ptr(),
31528        &ldx11,
31529        x12.as_mut_ptr(),
31530        &ldx12,
31531        x21.as_mut_ptr(),
31532        &ldx21,
31533        x22.as_mut_ptr(),
31534        &ldx22,
31535        theta.as_mut_ptr(),
31536        u1.as_mut_ptr(),
31537        &ldu1,
31538        u2.as_mut_ptr(),
31539        &ldu2,
31540        v1t.as_mut_ptr(),
31541        &ldv1t,
31542        v2t.as_mut_ptr(),
31543        &ldv2t,
31544        work.as_mut_ptr(),
31545        &lwork,
31546        iwork.as_mut_ptr(),
31547        info,
31548    )
31549}
31550
31551#[inline]
31552pub unsafe fn sorcsd2by1(
31553    jobu1: u8,
31554    jobu2: u8,
31555    jobv1t: u8,
31556    m: i32,
31557    p: i32,
31558    q: i32,
31559    x11: &mut [f32],
31560    ldx11: i32,
31561    x21: &mut [f32],
31562    ldx21: i32,
31563    theta: &mut [f32],
31564    u1: &mut [f32],
31565    ldu1: i32,
31566    u2: &mut [f32],
31567    ldu2: i32,
31568    v1t: &mut [f32],
31569    ldv1t: i32,
31570    work: &mut [f32],
31571    lwork: i32,
31572    iwork: &mut [i32],
31573    info: &mut i32,
31574) {
31575    ffi::sorcsd2by1_(
31576        &(jobu1 as c_char),
31577        &(jobu2 as c_char),
31578        &(jobv1t as c_char),
31579        &m,
31580        &p,
31581        &q,
31582        x11.as_mut_ptr(),
31583        &ldx11,
31584        x21.as_mut_ptr(),
31585        &ldx21,
31586        theta.as_mut_ptr(),
31587        u1.as_mut_ptr(),
31588        &ldu1,
31589        u2.as_mut_ptr(),
31590        &ldu2,
31591        v1t.as_mut_ptr(),
31592        &ldv1t,
31593        work.as_mut_ptr(),
31594        &lwork,
31595        iwork.as_mut_ptr(),
31596        info,
31597    )
31598}
31599
31600#[inline]
31601pub unsafe fn ssyconv(
31602    uplo: u8,
31603    way: u8,
31604    n: i32,
31605    a: &mut [f32],
31606    lda: i32,
31607    ipiv: &[i32],
31608    work: &mut [f32],
31609    info: &mut i32,
31610) {
31611    ffi::ssyconv_(
31612        &(uplo as c_char),
31613        &(way as c_char),
31614        &n,
31615        a.as_mut_ptr(),
31616        &lda,
31617        ipiv.as_ptr(),
31618        work.as_mut_ptr(),
31619        info,
31620    )
31621}
31622
31623#[inline]
31624pub unsafe fn ssyswapr(uplo: u8, n: i32, a: &mut [f32], i1: &[i32], i2: &[i32]) {
31625    ffi::ssyswapr_(
31626        &(uplo as c_char),
31627        &n,
31628        a.as_mut_ptr(),
31629        i1.as_ptr(),
31630        i2.as_ptr(),
31631    )
31632}
31633
31634#[inline]
31635pub unsafe fn ssytri2(
31636    uplo: u8,
31637    n: i32,
31638    a: &mut [f32],
31639    lda: i32,
31640    ipiv: &[i32],
31641    work: &mut [c32],
31642    lwork: i32,
31643    info: &mut i32,
31644) {
31645    ffi::ssytri2_(
31646        &(uplo as c_char),
31647        &n,
31648        a.as_mut_ptr(),
31649        &lda,
31650        ipiv.as_ptr(),
31651        work.as_mut_ptr() as *mut _,
31652        &lwork,
31653        info,
31654    )
31655}
31656
31657#[inline]
31658pub unsafe fn ssytri2x(
31659    uplo: u8,
31660    n: i32,
31661    a: &mut [f32],
31662    lda: i32,
31663    ipiv: &[i32],
31664    work: &mut [f32],
31665    nb: i32,
31666    info: &mut i32,
31667) {
31668    ffi::ssytri2x_(
31669        &(uplo as c_char),
31670        &n,
31671        a.as_mut_ptr(),
31672        &lda,
31673        ipiv.as_ptr(),
31674        work.as_mut_ptr(),
31675        &nb,
31676        info,
31677    )
31678}
31679
31680#[inline]
31681pub unsafe fn ssytrs2(
31682    uplo: u8,
31683    n: i32,
31684    nrhs: i32,
31685    a: &[f32],
31686    lda: i32,
31687    ipiv: &[i32],
31688    b: &mut [f32],
31689    ldb: i32,
31690    work: &mut [f32],
31691    info: &mut i32,
31692) {
31693    ffi::ssytrs2_(
31694        &(uplo as c_char),
31695        &n,
31696        &nrhs,
31697        a.as_ptr(),
31698        &lda,
31699        ipiv.as_ptr(),
31700        b.as_mut_ptr(),
31701        &ldb,
31702        work.as_mut_ptr(),
31703        info,
31704    )
31705}
31706
31707#[inline]
31708pub unsafe fn zbbcsd(
31709    jobu1: u8,
31710    jobu2: u8,
31711    jobv1t: u8,
31712    jobv2t: u8,
31713    trans: u8,
31714    m: i32,
31715    p: i32,
31716    q: i32,
31717    theta: &mut [f64],
31718    phi: &mut [f64],
31719    u1: &mut [c64],
31720    ldu1: i32,
31721    u2: &mut [c64],
31722    ldu2: i32,
31723    v1t: &mut [c64],
31724    ldv1t: i32,
31725    v2t: &mut [c64],
31726    ldv2t: i32,
31727    b11d: &mut [f64],
31728    b11e: &mut [f64],
31729    b12d: &mut [f64],
31730    b12e: &mut [f64],
31731    b21d: &mut [f64],
31732    b21e: &mut [f64],
31733    b22d: &mut [f64],
31734    b22e: &mut [f64],
31735    rwork: &mut [f64],
31736    lrwork: i32,
31737    info: &mut i32,
31738) {
31739    ffi::zbbcsd_(
31740        &(jobu1 as c_char),
31741        &(jobu2 as c_char),
31742        &(jobv1t as c_char),
31743        &(jobv2t as c_char),
31744        &(trans as c_char),
31745        &m,
31746        &p,
31747        &q,
31748        theta.as_mut_ptr(),
31749        phi.as_mut_ptr(),
31750        u1.as_mut_ptr() as *mut _,
31751        &ldu1,
31752        u2.as_mut_ptr() as *mut _,
31753        &ldu2,
31754        v1t.as_mut_ptr() as *mut _,
31755        &ldv1t,
31756        v2t.as_mut_ptr() as *mut _,
31757        &ldv2t,
31758        b11d.as_mut_ptr(),
31759        b11e.as_mut_ptr(),
31760        b12d.as_mut_ptr(),
31761        b12e.as_mut_ptr(),
31762        b21d.as_mut_ptr(),
31763        b21e.as_mut_ptr(),
31764        b22d.as_mut_ptr(),
31765        b22e.as_mut_ptr(),
31766        rwork.as_mut_ptr(),
31767        &lrwork,
31768        info,
31769    )
31770}
31771
31772#[inline]
31773pub unsafe fn zheswapr(uplo: u8, n: i32, a: &mut [c64], i1: &[i32], i2: &[i32]) {
31774    ffi::zheswapr_(
31775        &(uplo as c_char),
31776        &n,
31777        a.as_mut_ptr() as *mut _,
31778        i1.as_ptr(),
31779        i2.as_ptr(),
31780    )
31781}
31782
31783#[inline]
31784pub unsafe fn zhetri2(
31785    uplo: u8,
31786    n: i32,
31787    a: &mut [c64],
31788    lda: i32,
31789    ipiv: &[i32],
31790    work: &mut [c64],
31791    lwork: i32,
31792    info: &mut i32,
31793) {
31794    ffi::zhetri2_(
31795        &(uplo as c_char),
31796        &n,
31797        a.as_mut_ptr() as *mut _,
31798        &lda,
31799        ipiv.as_ptr(),
31800        work.as_mut_ptr() as *mut _,
31801        &lwork,
31802        info,
31803    )
31804}
31805
31806#[inline]
31807pub unsafe fn zhetri2x(
31808    uplo: u8,
31809    n: i32,
31810    a: &mut [c64],
31811    lda: i32,
31812    ipiv: &[i32],
31813    work: &mut [c64],
31814    nb: i32,
31815    info: &mut i32,
31816) {
31817    ffi::zhetri2x_(
31818        &(uplo as c_char),
31819        &n,
31820        a.as_mut_ptr() as *mut _,
31821        &lda,
31822        ipiv.as_ptr(),
31823        work.as_mut_ptr() as *mut _,
31824        &nb,
31825        info,
31826    )
31827}
31828
31829#[inline]
31830pub unsafe fn zhetrs2(
31831    uplo: u8,
31832    n: i32,
31833    nrhs: i32,
31834    a: &[c64],
31835    lda: i32,
31836    ipiv: &[i32],
31837    b: &mut [c64],
31838    ldb: i32,
31839    work: &mut [c64],
31840    info: &mut i32,
31841) {
31842    ffi::zhetrs2_(
31843        &(uplo as c_char),
31844        &n,
31845        &nrhs,
31846        a.as_ptr() as *const _,
31847        &lda,
31848        ipiv.as_ptr(),
31849        b.as_mut_ptr() as *mut _,
31850        &ldb,
31851        work.as_mut_ptr() as *mut _,
31852        info,
31853    )
31854}
31855
31856#[inline]
31857pub unsafe fn zsyconv(
31858    uplo: u8,
31859    way: u8,
31860    n: i32,
31861    a: &mut [c64],
31862    lda: i32,
31863    ipiv: &[i32],
31864    work: &mut [c64],
31865    info: &mut i32,
31866) {
31867    ffi::zsyconv_(
31868        &(uplo as c_char),
31869        &(way as c_char),
31870        &n,
31871        a.as_mut_ptr() as *mut _,
31872        &lda,
31873        ipiv.as_ptr(),
31874        work.as_mut_ptr() as *mut _,
31875        info,
31876    )
31877}
31878
31879#[inline]
31880pub unsafe fn zsyswapr(uplo: u8, n: i32, a: &mut [c64], i1: &[i32], i2: &[i32]) {
31881    ffi::zsyswapr_(
31882        &(uplo as c_char),
31883        &n,
31884        a.as_mut_ptr() as *mut _,
31885        i1.as_ptr(),
31886        i2.as_ptr(),
31887    )
31888}
31889
31890#[inline]
31891pub unsafe fn zsytri2(
31892    uplo: u8,
31893    n: i32,
31894    a: &mut [c64],
31895    lda: i32,
31896    ipiv: &[i32],
31897    work: &mut [c64],
31898    lwork: i32,
31899    info: &mut i32,
31900) {
31901    ffi::zsytri2_(
31902        &(uplo as c_char),
31903        &n,
31904        a.as_mut_ptr() as *mut _,
31905        &lda,
31906        ipiv.as_ptr(),
31907        work.as_mut_ptr() as *mut _,
31908        &lwork,
31909        info,
31910    )
31911}
31912
31913#[inline]
31914pub unsafe fn zsytri2x(
31915    uplo: u8,
31916    n: i32,
31917    a: &mut [c64],
31918    lda: i32,
31919    ipiv: &[i32],
31920    work: &mut [c64],
31921    nb: i32,
31922    info: &mut i32,
31923) {
31924    ffi::zsytri2x_(
31925        &(uplo as c_char),
31926        &n,
31927        a.as_mut_ptr() as *mut _,
31928        &lda,
31929        ipiv.as_ptr(),
31930        work.as_mut_ptr() as *mut _,
31931        &nb,
31932        info,
31933    )
31934}
31935
31936#[inline]
31937pub unsafe fn zsytrs2(
31938    uplo: u8,
31939    n: i32,
31940    nrhs: i32,
31941    a: &[c64],
31942    lda: i32,
31943    ipiv: &[i32],
31944    b: &mut [c64],
31945    ldb: i32,
31946    work: &mut [c64],
31947    info: &mut i32,
31948) {
31949    ffi::zsytrs2_(
31950        &(uplo as c_char),
31951        &n,
31952        &nrhs,
31953        a.as_ptr() as *const _,
31954        &lda,
31955        ipiv.as_ptr(),
31956        b.as_mut_ptr() as *mut _,
31957        &ldb,
31958        work.as_mut_ptr() as *mut _,
31959        info,
31960    )
31961}
31962
31963#[inline]
31964pub unsafe fn zunbdb(
31965    trans: u8,
31966    signs: u8,
31967    m: i32,
31968    p: i32,
31969    q: i32,
31970    x11: &mut [c64],
31971    ldx11: i32,
31972    x12: &mut [c64],
31973    ldx12: i32,
31974    x21: &mut [c64],
31975    ldx21: i32,
31976    x22: &mut [c64],
31977    ldx22: i32,
31978    theta: &mut [f64],
31979    phi: &mut [f64],
31980    taup1: &mut [c64],
31981    taup2: &mut [c64],
31982    tauq1: &mut [c64],
31983    tauq2: &mut [c64],
31984    work: &mut [c64],
31985    lwork: i32,
31986    info: &mut i32,
31987) {
31988    ffi::zunbdb_(
31989        &(trans as c_char),
31990        &(signs as c_char),
31991        &m,
31992        &p,
31993        &q,
31994        x11.as_mut_ptr() as *mut _,
31995        &ldx11,
31996        x12.as_mut_ptr() as *mut _,
31997        &ldx12,
31998        x21.as_mut_ptr() as *mut _,
31999        &ldx21,
32000        x22.as_mut_ptr() as *mut _,
32001        &ldx22,
32002        theta.as_mut_ptr(),
32003        phi.as_mut_ptr(),
32004        taup1.as_mut_ptr() as *mut _,
32005        taup2.as_mut_ptr() as *mut _,
32006        tauq1.as_mut_ptr() as *mut _,
32007        tauq2.as_mut_ptr() as *mut _,
32008        work.as_mut_ptr() as *mut _,
32009        &lwork,
32010        info,
32011    )
32012}
32013
32014#[inline]
32015pub unsafe fn zuncsd(
32016    jobu1: u8,
32017    jobu2: u8,
32018    jobv1t: u8,
32019    jobv2t: u8,
32020    trans: u8,
32021    signs: u8,
32022    m: i32,
32023    p: i32,
32024    q: i32,
32025    x11: &mut [c64],
32026    ldx11: i32,
32027    x12: &mut [c64],
32028    ldx12: i32,
32029    x21: &mut [c64],
32030    ldx21: i32,
32031    x22: &mut [c64],
32032    ldx22: i32,
32033    theta: &mut [f64],
32034    u1: &mut [c64],
32035    ldu1: i32,
32036    u2: &mut [c64],
32037    ldu2: i32,
32038    v1t: &mut [c64],
32039    ldv1t: i32,
32040    v2t: &mut [c64],
32041    ldv2t: i32,
32042    work: &mut [c64],
32043    lwork: i32,
32044    rwork: &mut [f64],
32045    lrwork: i32,
32046    iwork: &mut [i32],
32047    info: &mut i32,
32048) {
32049    ffi::zuncsd_(
32050        &(jobu1 as c_char),
32051        &(jobu2 as c_char),
32052        &(jobv1t as c_char),
32053        &(jobv2t as c_char),
32054        &(trans as c_char),
32055        &(signs as c_char),
32056        &m,
32057        &p,
32058        &q,
32059        x11.as_mut_ptr() as *mut _,
32060        &ldx11,
32061        x12.as_mut_ptr() as *mut _,
32062        &ldx12,
32063        x21.as_mut_ptr() as *mut _,
32064        &ldx21,
32065        x22.as_mut_ptr() as *mut _,
32066        &ldx22,
32067        theta.as_mut_ptr(),
32068        u1.as_mut_ptr() as *mut _,
32069        &ldu1,
32070        u2.as_mut_ptr() as *mut _,
32071        &ldu2,
32072        v1t.as_mut_ptr() as *mut _,
32073        &ldv1t,
32074        v2t.as_mut_ptr() as *mut _,
32075        &ldv2t,
32076        work.as_mut_ptr() as *mut _,
32077        &lwork,
32078        rwork.as_mut_ptr(),
32079        &lrwork,
32080        iwork.as_mut_ptr(),
32081        info,
32082    )
32083}
32084
32085#[inline]
32086pub unsafe fn zuncsd2by1(
32087    jobu1: u8,
32088    jobu2: u8,
32089    jobv1t: u8,
32090    m: i32,
32091    p: i32,
32092    q: i32,
32093    x11: &mut [c64],
32094    ldx11: i32,
32095    x21: &mut [c64],
32096    ldx21: i32,
32097    theta: &mut [c64],
32098    u1: &mut [c64],
32099    ldu1: i32,
32100    u2: &mut [c64],
32101    ldu2: i32,
32102    v1t: &mut [c64],
32103    ldv1t: i32,
32104    work: &mut [c64],
32105    lwork: i32,
32106    rwork: &mut [f64],
32107    lrwork: i32,
32108    iwork: &mut [i32],
32109    info: &mut i32,
32110) {
32111    ffi::zuncsd2by1_(
32112        &(jobu1 as c_char),
32113        &(jobu2 as c_char),
32114        &(jobv1t as c_char),
32115        &m,
32116        &p,
32117        &q,
32118        x11.as_mut_ptr() as *mut _,
32119        &ldx11,
32120        x21.as_mut_ptr() as *mut _,
32121        &ldx21,
32122        theta.as_mut_ptr() as *mut _,
32123        u1.as_mut_ptr() as *mut _,
32124        &ldu1,
32125        u2.as_mut_ptr() as *mut _,
32126        &ldu2,
32127        v1t.as_mut_ptr() as *mut _,
32128        &ldv1t,
32129        work.as_mut_ptr() as *mut _,
32130        &lwork,
32131        rwork.as_mut_ptr(),
32132        &lrwork,
32133        iwork.as_mut_ptr(),
32134        info,
32135    )
32136}
32137
32138#[inline]
32139pub unsafe fn sgemqrt(
32140    side: u8,
32141    trans: u8,
32142    m: i32,
32143    n: i32,
32144    k: i32,
32145    nb: i32,
32146    v: &[f32],
32147    ldv: i32,
32148    t: &[f32],
32149    ldt: i32,
32150    c: &mut [f32],
32151    ldc: i32,
32152    work: &mut [f32],
32153    info: &mut i32,
32154) {
32155    ffi::sgemqrt_(
32156        &(side as c_char),
32157        &(trans as c_char),
32158        &m,
32159        &n,
32160        &k,
32161        &nb,
32162        v.as_ptr(),
32163        &ldv,
32164        t.as_ptr(),
32165        &ldt,
32166        c.as_mut_ptr(),
32167        &ldc,
32168        work.as_mut_ptr(),
32169        info,
32170    )
32171}
32172
32173#[inline]
32174pub unsafe fn dgemqrt(
32175    side: u8,
32176    trans: u8,
32177    m: i32,
32178    n: i32,
32179    k: i32,
32180    nb: i32,
32181    v: &[f64],
32182    ldv: i32,
32183    t: &[f64],
32184    ldt: i32,
32185    c: &mut [f64],
32186    ldc: i32,
32187    work: &mut [f64],
32188    info: &mut i32,
32189) {
32190    ffi::dgemqrt_(
32191        &(side as c_char),
32192        &(trans as c_char),
32193        &m,
32194        &n,
32195        &k,
32196        &nb,
32197        v.as_ptr(),
32198        &ldv,
32199        t.as_ptr(),
32200        &ldt,
32201        c.as_mut_ptr(),
32202        &ldc,
32203        work.as_mut_ptr(),
32204        info,
32205    )
32206}
32207
32208#[inline]
32209pub unsafe fn cgemqrt(
32210    side: u8,
32211    trans: u8,
32212    m: i32,
32213    n: i32,
32214    k: i32,
32215    nb: i32,
32216    v: &[c32],
32217    ldv: i32,
32218    t: &[c32],
32219    ldt: i32,
32220    c: &mut [c32],
32221    ldc: i32,
32222    work: &mut [c32],
32223    info: &mut i32,
32224) {
32225    ffi::cgemqrt_(
32226        &(side as c_char),
32227        &(trans as c_char),
32228        &m,
32229        &n,
32230        &k,
32231        &nb,
32232        v.as_ptr() as *const _,
32233        &ldv,
32234        t.as_ptr() as *const _,
32235        &ldt,
32236        c.as_mut_ptr() as *mut _,
32237        &ldc,
32238        work.as_mut_ptr() as *mut _,
32239        info,
32240    )
32241}
32242
32243#[inline]
32244pub unsafe fn zgemqrt(
32245    side: u8,
32246    trans: u8,
32247    m: i32,
32248    n: i32,
32249    k: i32,
32250    nb: i32,
32251    v: &[c64],
32252    ldv: i32,
32253    t: &[c64],
32254    ldt: i32,
32255    c: &mut [c64],
32256    ldc: i32,
32257    work: &mut [c64],
32258    info: &mut i32,
32259) {
32260    ffi::zgemqrt_(
32261        &(side as c_char),
32262        &(trans as c_char),
32263        &m,
32264        &n,
32265        &k,
32266        &nb,
32267        v.as_ptr() as *const _,
32268        &ldv,
32269        t.as_ptr() as *const _,
32270        &ldt,
32271        c.as_mut_ptr() as *mut _,
32272        &ldc,
32273        work.as_mut_ptr() as *mut _,
32274        info,
32275    )
32276}
32277
32278#[inline]
32279pub unsafe fn sgeqrt(
32280    m: i32,
32281    n: i32,
32282    nb: i32,
32283    a: &mut [f32],
32284    lda: i32,
32285    t: &mut [f32],
32286    ldt: i32,
32287    work: &mut [f32],
32288    info: &mut i32,
32289) {
32290    ffi::sgeqrt_(
32291        &m,
32292        &n,
32293        &nb,
32294        a.as_mut_ptr(),
32295        &lda,
32296        t.as_mut_ptr(),
32297        &ldt,
32298        work.as_mut_ptr(),
32299        info,
32300    )
32301}
32302
32303#[inline]
32304pub unsafe fn dgeqrt(
32305    m: i32,
32306    n: i32,
32307    nb: i32,
32308    a: &mut [f64],
32309    lda: i32,
32310    t: &mut [f64],
32311    ldt: i32,
32312    work: &mut [f64],
32313    info: &mut i32,
32314) {
32315    ffi::dgeqrt_(
32316        &m,
32317        &n,
32318        &nb,
32319        a.as_mut_ptr(),
32320        &lda,
32321        t.as_mut_ptr(),
32322        &ldt,
32323        work.as_mut_ptr(),
32324        info,
32325    )
32326}
32327
32328#[inline]
32329pub unsafe fn cgeqrt(
32330    m: i32,
32331    n: i32,
32332    nb: i32,
32333    a: &mut [c32],
32334    lda: i32,
32335    t: &mut [c32],
32336    ldt: i32,
32337    work: &mut [c32],
32338    info: &mut i32,
32339) {
32340    ffi::cgeqrt_(
32341        &m,
32342        &n,
32343        &nb,
32344        a.as_mut_ptr() as *mut _,
32345        &lda,
32346        t.as_mut_ptr() as *mut _,
32347        &ldt,
32348        work.as_mut_ptr() as *mut _,
32349        info,
32350    )
32351}
32352
32353#[inline]
32354pub unsafe fn zgeqrt(
32355    m: i32,
32356    n: i32,
32357    nb: i32,
32358    a: &mut [c64],
32359    lda: i32,
32360    t: &mut [c64],
32361    ldt: i32,
32362    work: &mut [c64],
32363    info: &mut i32,
32364) {
32365    ffi::zgeqrt_(
32366        &m,
32367        &n,
32368        &nb,
32369        a.as_mut_ptr() as *mut _,
32370        &lda,
32371        t.as_mut_ptr() as *mut _,
32372        &ldt,
32373        work.as_mut_ptr() as *mut _,
32374        info,
32375    )
32376}
32377
32378#[inline]
32379pub unsafe fn sgeqrt2(
32380    m: i32,
32381    n: i32,
32382    a: &mut [f32],
32383    lda: i32,
32384    t: &mut [f32],
32385    ldt: i32,
32386    info: &mut i32,
32387) {
32388    ffi::sgeqrt2_(&m, &n, a.as_mut_ptr(), &lda, t.as_mut_ptr(), &ldt, info)
32389}
32390
32391#[inline]
32392pub unsafe fn dgeqrt2(
32393    m: i32,
32394    n: i32,
32395    a: &mut [f64],
32396    lda: i32,
32397    t: &mut [f64],
32398    ldt: i32,
32399    info: &mut i32,
32400) {
32401    ffi::dgeqrt2_(&m, &n, a.as_mut_ptr(), &lda, t.as_mut_ptr(), &ldt, info)
32402}
32403
32404#[inline]
32405pub unsafe fn cgeqrt2(
32406    m: i32,
32407    n: i32,
32408    a: &mut [c32],
32409    lda: i32,
32410    t: &mut [c32],
32411    ldt: i32,
32412    info: &mut i32,
32413) {
32414    ffi::cgeqrt2_(
32415        &m,
32416        &n,
32417        a.as_mut_ptr() as *mut _,
32418        &lda,
32419        t.as_mut_ptr() as *mut _,
32420        &ldt,
32421        info,
32422    )
32423}
32424
32425#[inline]
32426pub unsafe fn zgeqrt2(
32427    m: i32,
32428    n: i32,
32429    a: &mut [c64],
32430    lda: i32,
32431    t: &mut [c64],
32432    ldt: i32,
32433    info: &mut i32,
32434) {
32435    ffi::zgeqrt2_(
32436        &m,
32437        &n,
32438        a.as_mut_ptr() as *mut _,
32439        &lda,
32440        t.as_mut_ptr() as *mut _,
32441        &ldt,
32442        info,
32443    )
32444}
32445
32446#[inline]
32447pub unsafe fn sgeqrt3(
32448    m: i32,
32449    n: i32,
32450    a: &mut [f32],
32451    lda: i32,
32452    t: &mut [f32],
32453    ldt: i32,
32454    info: &mut i32,
32455) {
32456    ffi::sgeqrt3_(&m, &n, a.as_mut_ptr(), &lda, t.as_mut_ptr(), &ldt, info)
32457}
32458
32459#[inline]
32460pub unsafe fn dgeqrt3(
32461    m: i32,
32462    n: i32,
32463    a: &mut [f64],
32464    lda: i32,
32465    t: &mut [f64],
32466    ldt: i32,
32467    info: &mut i32,
32468) {
32469    ffi::dgeqrt3_(&m, &n, a.as_mut_ptr(), &lda, t.as_mut_ptr(), &ldt, info)
32470}
32471
32472#[inline]
32473pub unsafe fn cgeqrt3(
32474    m: i32,
32475    n: i32,
32476    a: &mut [c32],
32477    lda: i32,
32478    t: &mut [c32],
32479    ldt: i32,
32480    info: &mut i32,
32481) {
32482    ffi::cgeqrt3_(
32483        &m,
32484        &n,
32485        a.as_mut_ptr() as *mut _,
32486        &lda,
32487        t.as_mut_ptr() as *mut _,
32488        &ldt,
32489        info,
32490    )
32491}
32492
32493#[inline]
32494pub unsafe fn zgeqrt3(
32495    m: i32,
32496    n: i32,
32497    a: &mut [c64],
32498    lda: i32,
32499    t: &mut [c64],
32500    ldt: i32,
32501    info: &mut i32,
32502) {
32503    ffi::zgeqrt3_(
32504        &m,
32505        &n,
32506        a.as_mut_ptr() as *mut _,
32507        &lda,
32508        t.as_mut_ptr() as *mut _,
32509        &ldt,
32510        info,
32511    )
32512}
32513
32514#[inline]
32515pub unsafe fn stpmqrt(
32516    side: u8,
32517    trans: u8,
32518    m: i32,
32519    n: i32,
32520    k: i32,
32521    l: i32,
32522    nb: i32,
32523    v: &[f32],
32524    ldv: i32,
32525    t: &[f32],
32526    ldt: i32,
32527    a: &mut [f32],
32528    lda: i32,
32529    b: &mut [f32],
32530    ldb: i32,
32531    work: &mut [f32],
32532    info: &mut i32,
32533) {
32534    ffi::stpmqrt_(
32535        &(side as c_char),
32536        &(trans as c_char),
32537        &m,
32538        &n,
32539        &k,
32540        &l,
32541        &nb,
32542        v.as_ptr(),
32543        &ldv,
32544        t.as_ptr(),
32545        &ldt,
32546        a.as_mut_ptr(),
32547        &lda,
32548        b.as_mut_ptr(),
32549        &ldb,
32550        work.as_mut_ptr(),
32551        info,
32552    )
32553}
32554
32555#[inline]
32556pub unsafe fn dtpmqrt(
32557    side: u8,
32558    trans: u8,
32559    m: i32,
32560    n: i32,
32561    k: i32,
32562    l: i32,
32563    nb: i32,
32564    v: &[f64],
32565    ldv: i32,
32566    t: &[f64],
32567    ldt: i32,
32568    a: &mut [f64],
32569    lda: i32,
32570    b: &mut [f64],
32571    ldb: i32,
32572    work: &mut [f64],
32573    info: &mut i32,
32574) {
32575    ffi::dtpmqrt_(
32576        &(side as c_char),
32577        &(trans as c_char),
32578        &m,
32579        &n,
32580        &k,
32581        &l,
32582        &nb,
32583        v.as_ptr(),
32584        &ldv,
32585        t.as_ptr(),
32586        &ldt,
32587        a.as_mut_ptr(),
32588        &lda,
32589        b.as_mut_ptr(),
32590        &ldb,
32591        work.as_mut_ptr(),
32592        info,
32593    )
32594}
32595
32596#[inline]
32597pub unsafe fn ctpmqrt(
32598    side: u8,
32599    trans: u8,
32600    m: i32,
32601    n: i32,
32602    k: i32,
32603    l: i32,
32604    nb: i32,
32605    v: &[c32],
32606    ldv: i32,
32607    t: &[c32],
32608    ldt: i32,
32609    a: &mut [c32],
32610    lda: i32,
32611    b: &mut [c32],
32612    ldb: i32,
32613    work: &mut [c32],
32614    info: &mut i32,
32615) {
32616    ffi::ctpmqrt_(
32617        &(side as c_char),
32618        &(trans as c_char),
32619        &m,
32620        &n,
32621        &k,
32622        &l,
32623        &nb,
32624        v.as_ptr() as *const _,
32625        &ldv,
32626        t.as_ptr() as *const _,
32627        &ldt,
32628        a.as_mut_ptr() as *mut _,
32629        &lda,
32630        b.as_mut_ptr() as *mut _,
32631        &ldb,
32632        work.as_mut_ptr() as *mut _,
32633        info,
32634    )
32635}
32636
32637#[inline]
32638pub unsafe fn ztpmqrt(
32639    side: u8,
32640    trans: u8,
32641    m: i32,
32642    n: i32,
32643    k: i32,
32644    l: i32,
32645    nb: i32,
32646    v: &[c64],
32647    ldv: i32,
32648    t: &[c64],
32649    ldt: i32,
32650    a: &mut [c64],
32651    lda: i32,
32652    b: &mut [c64],
32653    ldb: i32,
32654    work: &mut [c64],
32655    info: &mut i32,
32656) {
32657    ffi::ztpmqrt_(
32658        &(side as c_char),
32659        &(trans as c_char),
32660        &m,
32661        &n,
32662        &k,
32663        &l,
32664        &nb,
32665        v.as_ptr() as *const _,
32666        &ldv,
32667        t.as_ptr() as *const _,
32668        &ldt,
32669        a.as_mut_ptr() as *mut _,
32670        &lda,
32671        b.as_mut_ptr() as *mut _,
32672        &ldb,
32673        work.as_mut_ptr() as *mut _,
32674        info,
32675    )
32676}
32677
32678#[inline]
32679pub unsafe fn stpqrt(
32680    m: i32,
32681    n: i32,
32682    l: i32,
32683    nb: i32,
32684    a: &mut [f32],
32685    lda: i32,
32686    b: &mut [f32],
32687    ldb: i32,
32688    t: &mut [f32],
32689    ldt: i32,
32690    work: &mut [f32],
32691    info: &mut i32,
32692) {
32693    ffi::stpqrt_(
32694        &m,
32695        &n,
32696        &l,
32697        &nb,
32698        a.as_mut_ptr(),
32699        &lda,
32700        b.as_mut_ptr(),
32701        &ldb,
32702        t.as_mut_ptr(),
32703        &ldt,
32704        work.as_mut_ptr(),
32705        info,
32706    )
32707}
32708
32709#[inline]
32710pub unsafe fn dtpqrt(
32711    m: i32,
32712    n: i32,
32713    l: i32,
32714    nb: i32,
32715    a: &mut [f64],
32716    lda: i32,
32717    b: &mut [f64],
32718    ldb: i32,
32719    t: &mut [f64],
32720    ldt: i32,
32721    work: &mut [f64],
32722    info: &mut i32,
32723) {
32724    ffi::dtpqrt_(
32725        &m,
32726        &n,
32727        &l,
32728        &nb,
32729        a.as_mut_ptr(),
32730        &lda,
32731        b.as_mut_ptr(),
32732        &ldb,
32733        t.as_mut_ptr(),
32734        &ldt,
32735        work.as_mut_ptr(),
32736        info,
32737    )
32738}
32739
32740#[inline]
32741pub unsafe fn ctpqrt(
32742    m: i32,
32743    n: i32,
32744    l: i32,
32745    nb: i32,
32746    a: &mut [c32],
32747    lda: i32,
32748    b: &mut [c32],
32749    ldb: i32,
32750    t: &mut [c32],
32751    ldt: i32,
32752    work: &mut [c32],
32753    info: &mut i32,
32754) {
32755    ffi::ctpqrt_(
32756        &m,
32757        &n,
32758        &l,
32759        &nb,
32760        a.as_mut_ptr() as *mut _,
32761        &lda,
32762        b.as_mut_ptr() as *mut _,
32763        &ldb,
32764        t.as_mut_ptr() as *mut _,
32765        &ldt,
32766        work.as_mut_ptr() as *mut _,
32767        info,
32768    )
32769}
32770
32771#[inline]
32772pub unsafe fn ztpqrt(
32773    m: i32,
32774    n: i32,
32775    l: i32,
32776    nb: i32,
32777    a: &mut [c64],
32778    lda: i32,
32779    b: &mut [c64],
32780    ldb: i32,
32781    t: &mut [c64],
32782    ldt: i32,
32783    work: &mut [c64],
32784    info: &mut i32,
32785) {
32786    ffi::ztpqrt_(
32787        &m,
32788        &n,
32789        &l,
32790        &nb,
32791        a.as_mut_ptr() as *mut _,
32792        &lda,
32793        b.as_mut_ptr() as *mut _,
32794        &ldb,
32795        t.as_mut_ptr() as *mut _,
32796        &ldt,
32797        work.as_mut_ptr() as *mut _,
32798        info,
32799    )
32800}
32801
32802#[inline]
32803pub unsafe fn stpqrt2(
32804    m: i32,
32805    n: i32,
32806    l: i32,
32807    a: &mut [f32],
32808    lda: i32,
32809    b: &mut [f32],
32810    ldb: i32,
32811    t: &mut [f32],
32812    ldt: i32,
32813    info: &mut i32,
32814) {
32815    ffi::stpqrt2_(
32816        &m,
32817        &n,
32818        &l,
32819        a.as_mut_ptr(),
32820        &lda,
32821        b.as_mut_ptr(),
32822        &ldb,
32823        t.as_mut_ptr(),
32824        &ldt,
32825        info,
32826    )
32827}
32828
32829#[inline]
32830pub unsafe fn dtpqrt2(
32831    m: i32,
32832    n: i32,
32833    l: i32,
32834    a: &mut [f64],
32835    lda: i32,
32836    b: &mut [f64],
32837    ldb: i32,
32838    t: &mut [f64],
32839    ldt: i32,
32840    info: &mut i32,
32841) {
32842    ffi::dtpqrt2_(
32843        &m,
32844        &n,
32845        &l,
32846        a.as_mut_ptr(),
32847        &lda,
32848        b.as_mut_ptr(),
32849        &ldb,
32850        t.as_mut_ptr(),
32851        &ldt,
32852        info,
32853    )
32854}
32855
32856#[inline]
32857pub unsafe fn ctpqrt2(
32858    m: i32,
32859    n: i32,
32860    l: i32,
32861    a: &mut [c32],
32862    lda: i32,
32863    b: &mut [c32],
32864    ldb: i32,
32865    t: &mut [c32],
32866    ldt: i32,
32867    info: &mut i32,
32868) {
32869    ffi::ctpqrt2_(
32870        &m,
32871        &n,
32872        &l,
32873        a.as_mut_ptr() as *mut _,
32874        &lda,
32875        b.as_mut_ptr() as *mut _,
32876        &ldb,
32877        t.as_mut_ptr() as *mut _,
32878        &ldt,
32879        info,
32880    )
32881}
32882
32883#[inline]
32884pub unsafe fn ztpqrt2(
32885    m: i32,
32886    n: i32,
32887    l: i32,
32888    a: &mut [c64],
32889    lda: i32,
32890    b: &mut [c64],
32891    ldb: i32,
32892    t: &mut [c64],
32893    ldt: i32,
32894    info: &mut i32,
32895) {
32896    ffi::ztpqrt2_(
32897        &m,
32898        &n,
32899        &l,
32900        a.as_mut_ptr() as *mut _,
32901        &lda,
32902        b.as_mut_ptr() as *mut _,
32903        &ldb,
32904        t.as_mut_ptr() as *mut _,
32905        &ldt,
32906        info,
32907    )
32908}
32909
32910#[inline]
32911pub unsafe fn stprfb(
32912    side: u8,
32913    trans: u8,
32914    direct: u8,
32915    storev: u8,
32916    m: i32,
32917    n: i32,
32918    k: i32,
32919    l: i32,
32920    v: &[f32],
32921    ldv: i32,
32922    t: &[f32],
32923    ldt: i32,
32924    a: &mut [f32],
32925    lda: i32,
32926    b: &mut [f32],
32927    ldb: i32,
32928    work: &[f32],
32929    ldwork: i32,
32930) {
32931    ffi::stprfb_(
32932        &(side as c_char),
32933        &(trans as c_char),
32934        &(direct as c_char),
32935        &(storev as c_char),
32936        &m,
32937        &n,
32938        &k,
32939        &l,
32940        v.as_ptr(),
32941        &ldv,
32942        t.as_ptr(),
32943        &ldt,
32944        a.as_mut_ptr(),
32945        &lda,
32946        b.as_mut_ptr(),
32947        &ldb,
32948        work.as_ptr(),
32949        &ldwork,
32950    )
32951}
32952
32953#[inline]
32954pub unsafe fn dtprfb(
32955    side: u8,
32956    trans: u8,
32957    direct: u8,
32958    storev: u8,
32959    m: i32,
32960    n: i32,
32961    k: i32,
32962    l: i32,
32963    v: &[f64],
32964    ldv: i32,
32965    t: &[f64],
32966    ldt: i32,
32967    a: &mut [f64],
32968    lda: i32,
32969    b: &mut [f64],
32970    ldb: i32,
32971    work: &[f64],
32972    ldwork: i32,
32973) {
32974    ffi::dtprfb_(
32975        &(side as c_char),
32976        &(trans as c_char),
32977        &(direct as c_char),
32978        &(storev as c_char),
32979        &m,
32980        &n,
32981        &k,
32982        &l,
32983        v.as_ptr(),
32984        &ldv,
32985        t.as_ptr(),
32986        &ldt,
32987        a.as_mut_ptr(),
32988        &lda,
32989        b.as_mut_ptr(),
32990        &ldb,
32991        work.as_ptr(),
32992        &ldwork,
32993    )
32994}
32995
32996#[inline]
32997pub unsafe fn ctprfb(
32998    side: u8,
32999    trans: u8,
33000    direct: u8,
33001    storev: u8,
33002    m: i32,
33003    n: i32,
33004    k: i32,
33005    l: i32,
33006    v: &[c32],
33007    ldv: i32,
33008    t: &[c32],
33009    ldt: i32,
33010    a: &mut [c32],
33011    lda: i32,
33012    b: &mut [c32],
33013    ldb: i32,
33014    work: &mut [c32],
33015    ldwork: i32,
33016) {
33017    ffi::ctprfb_(
33018        &(side as c_char),
33019        &(trans as c_char),
33020        &(direct as c_char),
33021        &(storev as c_char),
33022        &m,
33023        &n,
33024        &k,
33025        &l,
33026        v.as_ptr() as *const _,
33027        &ldv,
33028        t.as_ptr() as *const _,
33029        &ldt,
33030        a.as_mut_ptr() as *mut _,
33031        &lda,
33032        b.as_mut_ptr() as *mut _,
33033        &ldb,
33034        work.as_mut_ptr() as *mut _,
33035        &ldwork,
33036    )
33037}
33038
33039#[inline]
33040pub unsafe fn ztprfb(
33041    side: u8,
33042    trans: u8,
33043    direct: u8,
33044    storev: u8,
33045    m: i32,
33046    n: i32,
33047    k: i32,
33048    l: i32,
33049    v: &[c64],
33050    ldv: i32,
33051    t: &[c64],
33052    ldt: i32,
33053    a: &mut [c64],
33054    lda: i32,
33055    b: &mut [c64],
33056    ldb: i32,
33057    work: &mut [c64],
33058    ldwork: i32,
33059) {
33060    ffi::ztprfb_(
33061        &(side as c_char),
33062        &(trans as c_char),
33063        &(direct as c_char),
33064        &(storev as c_char),
33065        &m,
33066        &n,
33067        &k,
33068        &l,
33069        v.as_ptr() as *const _,
33070        &ldv,
33071        t.as_ptr() as *const _,
33072        &ldt,
33073        a.as_mut_ptr() as *mut _,
33074        &lda,
33075        b.as_mut_ptr() as *mut _,
33076        &ldb,
33077        work.as_mut_ptr() as *mut _,
33078        &ldwork,
33079    )
33080}
33081
33082#[inline]
33083pub unsafe fn ssysv_rook(
33084    uplo: u8,
33085    n: i32,
33086    nrhs: i32,
33087    a: &mut [f32],
33088    lda: i32,
33089    ipiv: &mut [i32],
33090    b: &mut [f32],
33091    ldb: i32,
33092    work: &mut [f32],
33093    lwork: i32,
33094    info: &mut i32,
33095) {
33096    ffi::ssysv_rook_(
33097        &(uplo as c_char),
33098        &n,
33099        &nrhs,
33100        a.as_mut_ptr(),
33101        &lda,
33102        ipiv.as_mut_ptr(),
33103        b.as_mut_ptr(),
33104        &ldb,
33105        work.as_mut_ptr(),
33106        &lwork,
33107        info,
33108    )
33109}
33110
33111#[inline]
33112pub unsafe fn dsysv_rook(
33113    uplo: u8,
33114    n: i32,
33115    nrhs: i32,
33116    a: &mut [f64],
33117    lda: i32,
33118    ipiv: &mut [i32],
33119    b: &mut [f64],
33120    ldb: i32,
33121    work: &mut [f64],
33122    lwork: i32,
33123    info: &mut i32,
33124) {
33125    ffi::dsysv_rook_(
33126        &(uplo as c_char),
33127        &n,
33128        &nrhs,
33129        a.as_mut_ptr(),
33130        &lda,
33131        ipiv.as_mut_ptr(),
33132        b.as_mut_ptr(),
33133        &ldb,
33134        work.as_mut_ptr(),
33135        &lwork,
33136        info,
33137    )
33138}
33139
33140#[inline]
33141pub unsafe fn csysv_rook(
33142    uplo: u8,
33143    n: i32,
33144    nrhs: i32,
33145    a: &mut [c32],
33146    lda: i32,
33147    ipiv: &mut [i32],
33148    b: &mut [c32],
33149    ldb: i32,
33150    work: &mut [c32],
33151    lwork: i32,
33152    info: &mut i32,
33153) {
33154    ffi::csysv_rook_(
33155        &(uplo as c_char),
33156        &n,
33157        &nrhs,
33158        a.as_mut_ptr() as *mut _,
33159        &lda,
33160        ipiv.as_mut_ptr(),
33161        b.as_mut_ptr() as *mut _,
33162        &ldb,
33163        work.as_mut_ptr() as *mut _,
33164        &lwork,
33165        info,
33166    )
33167}
33168
33169#[inline]
33170pub unsafe fn zsysv_rook(
33171    uplo: u8,
33172    n: i32,
33173    nrhs: i32,
33174    a: &mut [c64],
33175    lda: i32,
33176    ipiv: &mut [i32],
33177    b: &mut [c64],
33178    ldb: i32,
33179    work: &mut [c64],
33180    lwork: i32,
33181    info: &mut i32,
33182) {
33183    ffi::zsysv_rook_(
33184        &(uplo as c_char),
33185        &n,
33186        &nrhs,
33187        a.as_mut_ptr() as *mut _,
33188        &lda,
33189        ipiv.as_mut_ptr(),
33190        b.as_mut_ptr() as *mut _,
33191        &ldb,
33192        work.as_mut_ptr() as *mut _,
33193        &lwork,
33194        info,
33195    )
33196}
33197
33198#[inline]
33199pub unsafe fn ssytrf_rook(
33200    uplo: u8,
33201    n: i32,
33202    a: &mut [f32],
33203    lda: i32,
33204    ipiv: &mut [i32],
33205    work: &mut [f32],
33206    lwork: i32,
33207    info: &mut i32,
33208) {
33209    ffi::ssytrf_rook_(
33210        &(uplo as c_char),
33211        &n,
33212        a.as_mut_ptr(),
33213        &lda,
33214        ipiv.as_mut_ptr(),
33215        work.as_mut_ptr(),
33216        &lwork,
33217        info,
33218    )
33219}
33220
33221#[inline]
33222pub unsafe fn dsytrf_rook(
33223    uplo: u8,
33224    n: i32,
33225    a: &mut [f64],
33226    lda: i32,
33227    ipiv: &mut [i32],
33228    work: &mut [f64],
33229    lwork: i32,
33230    info: &mut i32,
33231) {
33232    ffi::dsytrf_rook_(
33233        &(uplo as c_char),
33234        &n,
33235        a.as_mut_ptr(),
33236        &lda,
33237        ipiv.as_mut_ptr(),
33238        work.as_mut_ptr(),
33239        &lwork,
33240        info,
33241    )
33242}
33243
33244#[inline]
33245pub unsafe fn csytrf_rook(
33246    uplo: u8,
33247    n: i32,
33248    a: &mut [c32],
33249    lda: i32,
33250    ipiv: &mut [i32],
33251    work: &mut [c32],
33252    lwork: i32,
33253    info: &mut i32,
33254) {
33255    ffi::csytrf_rook_(
33256        &(uplo as c_char),
33257        &n,
33258        a.as_mut_ptr() as *mut _,
33259        &lda,
33260        ipiv.as_mut_ptr(),
33261        work.as_mut_ptr() as *mut _,
33262        &lwork,
33263        info,
33264    )
33265}
33266
33267#[inline]
33268pub unsafe fn zsytrf_rook(
33269    uplo: u8,
33270    n: i32,
33271    a: &mut [c64],
33272    lda: i32,
33273    ipiv: &mut [i32],
33274    work: &mut [c64],
33275    lwork: i32,
33276    info: &mut i32,
33277) {
33278    ffi::zsytrf_rook_(
33279        &(uplo as c_char),
33280        &n,
33281        a.as_mut_ptr() as *mut _,
33282        &lda,
33283        ipiv.as_mut_ptr(),
33284        work.as_mut_ptr() as *mut _,
33285        &lwork,
33286        info,
33287    )
33288}
33289
33290#[inline]
33291pub unsafe fn ssytrs_rook(
33292    uplo: u8,
33293    n: i32,
33294    nrhs: i32,
33295    a: &[f32],
33296    lda: i32,
33297    ipiv: &[i32],
33298    b: &mut [f32],
33299    ldb: i32,
33300    info: &mut i32,
33301) {
33302    ffi::ssytrs_rook_(
33303        &(uplo as c_char),
33304        &n,
33305        &nrhs,
33306        a.as_ptr(),
33307        &lda,
33308        ipiv.as_ptr(),
33309        b.as_mut_ptr(),
33310        &ldb,
33311        info,
33312    )
33313}
33314
33315#[inline]
33316pub unsafe fn dsytrs_rook(
33317    uplo: u8,
33318    n: i32,
33319    nrhs: i32,
33320    a: &[f64],
33321    lda: i32,
33322    ipiv: &[i32],
33323    b: &mut [f64],
33324    ldb: i32,
33325    info: &mut i32,
33326) {
33327    ffi::dsytrs_rook_(
33328        &(uplo as c_char),
33329        &n,
33330        &nrhs,
33331        a.as_ptr(),
33332        &lda,
33333        ipiv.as_ptr(),
33334        b.as_mut_ptr(),
33335        &ldb,
33336        info,
33337    )
33338}
33339
33340#[inline]
33341pub unsafe fn csytrs_rook(
33342    uplo: u8,
33343    n: i32,
33344    nrhs: i32,
33345    a: &[c32],
33346    lda: i32,
33347    ipiv: &[i32],
33348    b: &mut [c32],
33349    ldb: i32,
33350    info: &mut i32,
33351) {
33352    ffi::csytrs_rook_(
33353        &(uplo as c_char),
33354        &n,
33355        &nrhs,
33356        a.as_ptr() as *const _,
33357        &lda,
33358        ipiv.as_ptr(),
33359        b.as_mut_ptr() as *mut _,
33360        &ldb,
33361        info,
33362    )
33363}
33364
33365#[inline]
33366pub unsafe fn zsytrs_rook(
33367    uplo: u8,
33368    n: i32,
33369    nrhs: i32,
33370    a: &[c64],
33371    lda: i32,
33372    ipiv: &[i32],
33373    b: &mut [c64],
33374    ldb: i32,
33375    info: &mut i32,
33376) {
33377    ffi::zsytrs_rook_(
33378        &(uplo as c_char),
33379        &n,
33380        &nrhs,
33381        a.as_ptr() as *const _,
33382        &lda,
33383        ipiv.as_ptr(),
33384        b.as_mut_ptr() as *mut _,
33385        &ldb,
33386        info,
33387    )
33388}
33389
33390#[inline]
33391pub unsafe fn chetrf_rook(
33392    uplo: u8,
33393    n: i32,
33394    a: &mut [c32],
33395    lda: i32,
33396    ipiv: &mut [i32],
33397    work: &mut [c32],
33398    lwork: i32,
33399    info: &mut i32,
33400) {
33401    ffi::chetrf_rook_(
33402        &(uplo as c_char),
33403        &n,
33404        a.as_mut_ptr() as *mut _,
33405        &lda,
33406        ipiv.as_mut_ptr(),
33407        work.as_mut_ptr() as *mut _,
33408        &lwork,
33409        info,
33410    )
33411}
33412
33413#[inline]
33414pub unsafe fn zhetrf_rook(
33415    uplo: u8,
33416    n: i32,
33417    a: &mut [c64],
33418    lda: i32,
33419    ipiv: &mut [i32],
33420    work: &mut [c64],
33421    lwork: i32,
33422    info: &mut i32,
33423) {
33424    ffi::zhetrf_rook_(
33425        &(uplo as c_char),
33426        &n,
33427        a.as_mut_ptr() as *mut _,
33428        &lda,
33429        ipiv.as_mut_ptr(),
33430        work.as_mut_ptr() as *mut _,
33431        &lwork,
33432        info,
33433    )
33434}
33435
33436#[inline]
33437pub unsafe fn chetrs_rook(
33438    uplo: u8,
33439    n: i32,
33440    nrhs: i32,
33441    a: &[c32],
33442    lda: i32,
33443    ipiv: &[i32],
33444    b: &mut [c32],
33445    ldb: i32,
33446    info: &mut i32,
33447) {
33448    ffi::chetrs_rook_(
33449        &(uplo as c_char),
33450        &n,
33451        &nrhs,
33452        a.as_ptr() as *const _,
33453        &lda,
33454        ipiv.as_ptr(),
33455        b.as_mut_ptr() as *mut _,
33456        &ldb,
33457        info,
33458    )
33459}
33460
33461#[inline]
33462pub unsafe fn zhetrs_rook(
33463    uplo: u8,
33464    n: i32,
33465    nrhs: i32,
33466    a: &[c64],
33467    lda: i32,
33468    ipiv: &[i32],
33469    b: &mut [c64],
33470    ldb: i32,
33471    info: &mut i32,
33472) {
33473    ffi::zhetrs_rook_(
33474        &(uplo as c_char),
33475        &n,
33476        &nrhs,
33477        a.as_ptr() as *const _,
33478        &lda,
33479        ipiv.as_ptr(),
33480        b.as_mut_ptr() as *mut _,
33481        &ldb,
33482        info,
33483    )
33484}
33485
33486#[inline]
33487pub unsafe fn csyr(uplo: u8, n: i32, alpha: c32, x: &[c32], incx: i32, a: &mut [c32], lda: i32) {
33488    ffi::csyr_(
33489        &(uplo as c_char),
33490        &n,
33491        &alpha as *const _ as *const _,
33492        x.as_ptr() as *const _,
33493        &incx,
33494        a.as_mut_ptr() as *mut _,
33495        &lda,
33496    )
33497}
33498
33499#[inline]
33500pub unsafe fn zsyr(uplo: u8, n: i32, alpha: c64, x: &[c64], incx: i32, a: &mut [c64], lda: i32) {
33501    ffi::zsyr_(
33502        &(uplo as c_char),
33503        &n,
33504        &alpha as *const _ as *const _,
33505        x.as_ptr() as *const _,
33506        &incx,
33507        a.as_mut_ptr() as *mut _,
33508        &lda,
33509    )
33510}
33511
33512#[inline]
33513pub unsafe fn ilaver(vers_major: &mut i32, vers_minor: &mut i32, vers_patch: &mut i32) {
33514    ffi::ilaver_(vers_major, vers_minor, vers_patch)
33515}