Skip to main content

lapack_inject/
backend_gen.rs

1// Auto-generated: LP64/ILP64 dual function pointer types.
2
3pub type CgeevLp64FnPtr = unsafe extern "C" fn(
4    jobvl: *const c_char,
5    jobvr: *const c_char,
6    n: *const i32,
7    A: *mut num_complex::Complex32,
8    lda: *const i32,
9    W: *mut num_complex::Complex32,
10    VL: *mut num_complex::Complex32,
11    ldvl: *const i32,
12    VR: *mut num_complex::Complex32,
13    ldvr: *const i32,
14    work: *mut num_complex::Complex32,
15    lwork: *const i32,
16    rwork: *mut f32,
17    info: *mut i32,
18);
19pub type CgeevIlp64FnPtr = unsafe extern "C" fn(
20    jobvl: *const c_char,
21    jobvr: *const c_char,
22    n: *const i64,
23    A: *mut num_complex::Complex32,
24    lda: *const i64,
25    W: *mut num_complex::Complex32,
26    VL: *mut num_complex::Complex32,
27    ldvl: *const i64,
28    VR: *mut num_complex::Complex32,
29    ldvr: *const i64,
30    work: *mut num_complex::Complex32,
31    lwork: *const i64,
32    rwork: *mut f32,
33    info: *mut i64,
34);
35define_dual_backend!(cgeev, CgeevLp64FnPtr, CgeevIlp64FnPtr);
36
37pub type CgeqrfLp64FnPtr = unsafe extern "C" fn(
38    m: *const i32,
39    n: *const i32,
40    A: *mut num_complex::Complex32,
41    lda: *const i32,
42    tau: *mut num_complex::Complex32,
43    work: *mut num_complex::Complex32,
44    lwork: *const i32,
45    info: *mut i32,
46);
47pub type CgeqrfIlp64FnPtr = unsafe extern "C" fn(
48    m: *const i64,
49    n: *const i64,
50    A: *mut num_complex::Complex32,
51    lda: *const i64,
52    tau: *mut num_complex::Complex32,
53    work: *mut num_complex::Complex32,
54    lwork: *const i64,
55    info: *mut i64,
56);
57define_dual_backend!(cgeqrf, CgeqrfLp64FnPtr, CgeqrfIlp64FnPtr);
58
59pub type Cgesc2Lp64FnPtr = unsafe extern "C" fn(
60    n: *const i32,
61    A: *const num_complex::Complex32,
62    lda: *const i32,
63    rhs: *mut num_complex::Complex32,
64    ipiv: *const i32,
65    jpiv: *const i32,
66    scale: *mut f32,
67);
68pub type Cgesc2Ilp64FnPtr = unsafe extern "C" fn(
69    n: *const i64,
70    A: *const num_complex::Complex32,
71    lda: *const i64,
72    rhs: *mut num_complex::Complex32,
73    ipiv: *const i64,
74    jpiv: *const i64,
75    scale: *mut f32,
76);
77define_dual_backend!(cgesc2, Cgesc2Lp64FnPtr, Cgesc2Ilp64FnPtr);
78
79pub type CgesvLp64FnPtr = unsafe extern "C" fn(
80    n: *const i32,
81    nrhs: *const i32,
82    A: *mut num_complex::Complex32,
83    lda: *const i32,
84    ipiv: *mut i32,
85    B: *mut num_complex::Complex32,
86    ldb: *const i32,
87    info: *mut i32,
88);
89pub type CgesvIlp64FnPtr = unsafe extern "C" fn(
90    n: *const i64,
91    nrhs: *const i64,
92    A: *mut num_complex::Complex32,
93    lda: *const i64,
94    ipiv: *mut i64,
95    B: *mut num_complex::Complex32,
96    ldb: *const i64,
97    info: *mut i64,
98);
99define_dual_backend!(cgesv, CgesvLp64FnPtr, CgesvIlp64FnPtr);
100
101pub type CgesvdLp64FnPtr = unsafe extern "C" fn(
102    jobu: *const c_char,
103    jobvt: *const c_char,
104    m: *const i32,
105    n: *const i32,
106    A: *mut num_complex::Complex32,
107    lda: *const i32,
108    S: *mut f32,
109    U: *mut num_complex::Complex32,
110    ldu: *const i32,
111    VT: *mut num_complex::Complex32,
112    ldvt: *const i32,
113    work: *mut num_complex::Complex32,
114    lwork: *const i32,
115    rwork: *mut f32,
116    info: *mut i32,
117);
118pub type CgesvdIlp64FnPtr = unsafe extern "C" fn(
119    jobu: *const c_char,
120    jobvt: *const c_char,
121    m: *const i64,
122    n: *const i64,
123    A: *mut num_complex::Complex32,
124    lda: *const i64,
125    S: *mut f32,
126    U: *mut num_complex::Complex32,
127    ldu: *const i64,
128    VT: *mut num_complex::Complex32,
129    ldvt: *const i64,
130    work: *mut num_complex::Complex32,
131    lwork: *const i64,
132    rwork: *mut f32,
133    info: *mut i64,
134);
135define_dual_backend!(cgesvd, CgesvdLp64FnPtr, CgesvdIlp64FnPtr);
136
137pub type Cgetc2Lp64FnPtr = unsafe extern "C" fn(
138    n: *const i32,
139    A: *mut num_complex::Complex32,
140    lda: *const i32,
141    ipiv: *mut i32,
142    jpiv: *mut i32,
143    info: *mut i32,
144);
145pub type Cgetc2Ilp64FnPtr = unsafe extern "C" fn(
146    n: *const i64,
147    A: *mut num_complex::Complex32,
148    lda: *const i64,
149    ipiv: *mut i64,
150    jpiv: *mut i64,
151    info: *mut i64,
152);
153define_dual_backend!(cgetc2, Cgetc2Lp64FnPtr, Cgetc2Ilp64FnPtr);
154
155pub type CgetrfLp64FnPtr = unsafe extern "C" fn(
156    m: *const i32,
157    n: *const i32,
158    A: *mut num_complex::Complex32,
159    lda: *const i32,
160    ipiv: *mut i32,
161    info: *mut i32,
162);
163pub type CgetrfIlp64FnPtr = unsafe extern "C" fn(
164    m: *const i64,
165    n: *const i64,
166    A: *mut num_complex::Complex32,
167    lda: *const i64,
168    ipiv: *mut i64,
169    info: *mut i64,
170);
171define_dual_backend!(cgetrf, CgetrfLp64FnPtr, CgetrfIlp64FnPtr);
172
173pub type CgetriLp64FnPtr = unsafe extern "C" fn(
174    n: *const i32,
175    A: *mut num_complex::Complex32,
176    lda: *const i32,
177    ipiv: *const i32,
178    work: *mut num_complex::Complex32,
179    lwork: *const i32,
180    info: *mut i32,
181);
182pub type CgetriIlp64FnPtr = unsafe extern "C" fn(
183    n: *const i64,
184    A: *mut num_complex::Complex32,
185    lda: *const i64,
186    ipiv: *const i64,
187    work: *mut num_complex::Complex32,
188    lwork: *const i64,
189    info: *mut i64,
190);
191define_dual_backend!(cgetri, CgetriLp64FnPtr, CgetriIlp64FnPtr);
192
193pub type CgetrsLp64FnPtr = unsafe extern "C" fn(
194    trans: *const c_char,
195    n: *const i32,
196    nrhs: *const i32,
197    A: *const num_complex::Complex32,
198    lda: *const i32,
199    ipiv: *const i32,
200    B: *mut num_complex::Complex32,
201    ldb: *const i32,
202    info: *mut i32,
203);
204pub type CgetrsIlp64FnPtr = unsafe extern "C" fn(
205    trans: *const c_char,
206    n: *const i64,
207    nrhs: *const i64,
208    A: *const num_complex::Complex32,
209    lda: *const i64,
210    ipiv: *const i64,
211    B: *mut num_complex::Complex32,
212    ldb: *const i64,
213    info: *mut i64,
214);
215define_dual_backend!(cgetrs, CgetrsLp64FnPtr, CgetrsIlp64FnPtr);
216
217pub type CheevLp64FnPtr = unsafe extern "C" fn(
218    jobz: *const c_char,
219    uplo: *const c_char,
220    n: *const i32,
221    A: *mut num_complex::Complex32,
222    lda: *const i32,
223    W: *mut f32,
224    work: *mut num_complex::Complex32,
225    lwork: *const i32,
226    rwork: *mut f32,
227    info: *mut i32,
228);
229pub type CheevIlp64FnPtr = unsafe extern "C" fn(
230    jobz: *const c_char,
231    uplo: *const c_char,
232    n: *const i64,
233    A: *mut num_complex::Complex32,
234    lda: *const i64,
235    W: *mut f32,
236    work: *mut num_complex::Complex32,
237    lwork: *const i64,
238    rwork: *mut f32,
239    info: *mut i64,
240);
241define_dual_backend!(cheev, CheevLp64FnPtr, CheevIlp64FnPtr);
242
243pub type CpotrfLp64FnPtr = unsafe extern "C" fn(
244    uplo: *const c_char,
245    n: *const i32,
246    A: *mut num_complex::Complex32,
247    lda: *const i32,
248    info: *mut i32,
249);
250pub type CpotrfIlp64FnPtr = unsafe extern "C" fn(
251    uplo: *const c_char,
252    n: *const i64,
253    A: *mut num_complex::Complex32,
254    lda: *const i64,
255    info: *mut i64,
256);
257define_dual_backend!(cpotrf, CpotrfLp64FnPtr, CpotrfIlp64FnPtr);
258
259pub type CtrtrsLp64FnPtr = unsafe extern "C" fn(
260    uplo: *const c_char,
261    trans: *const c_char,
262    diag: *const c_char,
263    n: *const i32,
264    nrhs: *const i32,
265    A: *const num_complex::Complex32,
266    lda: *const i32,
267    B: *mut num_complex::Complex32,
268    ldb: *const i32,
269    info: *mut i32,
270);
271pub type CtrtrsIlp64FnPtr = unsafe extern "C" fn(
272    uplo: *const c_char,
273    trans: *const c_char,
274    diag: *const c_char,
275    n: *const i64,
276    nrhs: *const i64,
277    A: *const num_complex::Complex32,
278    lda: *const i64,
279    B: *mut num_complex::Complex32,
280    ldb: *const i64,
281    info: *mut i64,
282);
283define_dual_backend!(ctrtrs, CtrtrsLp64FnPtr, CtrtrsIlp64FnPtr);
284
285pub type CungqrLp64FnPtr = unsafe extern "C" fn(
286    m: *const i32,
287    n: *const i32,
288    k: *const i32,
289    A: *mut num_complex::Complex32,
290    lda: *const i32,
291    tau: *const num_complex::Complex32,
292    work: *mut num_complex::Complex32,
293    lwork: *const i32,
294    info: *mut i32,
295);
296pub type CungqrIlp64FnPtr = unsafe extern "C" fn(
297    m: *const i64,
298    n: *const i64,
299    k: *const i64,
300    A: *mut num_complex::Complex32,
301    lda: *const i64,
302    tau: *const num_complex::Complex32,
303    work: *mut num_complex::Complex32,
304    lwork: *const i64,
305    info: *mut i64,
306);
307define_dual_backend!(cungqr, CungqrLp64FnPtr, CungqrIlp64FnPtr);
308
309pub type DgeevLp64FnPtr = unsafe extern "C" fn(
310    jobvl: *const c_char,
311    jobvr: *const c_char,
312    n: *const i32,
313    A: *mut f64,
314    lda: *const i32,
315    WR: *mut f64,
316    WI: *mut f64,
317    VL: *mut f64,
318    ldvl: *const i32,
319    VR: *mut f64,
320    ldvr: *const i32,
321    work: *mut f64,
322    lwork: *const i32,
323    info: *mut i32,
324);
325pub type DgeevIlp64FnPtr = unsafe extern "C" fn(
326    jobvl: *const c_char,
327    jobvr: *const c_char,
328    n: *const i64,
329    A: *mut f64,
330    lda: *const i64,
331    WR: *mut f64,
332    WI: *mut f64,
333    VL: *mut f64,
334    ldvl: *const i64,
335    VR: *mut f64,
336    ldvr: *const i64,
337    work: *mut f64,
338    lwork: *const i64,
339    info: *mut i64,
340);
341define_dual_backend!(dgeev, DgeevLp64FnPtr, DgeevIlp64FnPtr);
342
343pub type DgeqrfLp64FnPtr = unsafe extern "C" fn(
344    m: *const i32,
345    n: *const i32,
346    A: *mut f64,
347    lda: *const i32,
348    tau: *mut f64,
349    work: *mut f64,
350    lwork: *const i32,
351    info: *mut i32,
352);
353pub type DgeqrfIlp64FnPtr = unsafe extern "C" fn(
354    m: *const i64,
355    n: *const i64,
356    A: *mut f64,
357    lda: *const i64,
358    tau: *mut f64,
359    work: *mut f64,
360    lwork: *const i64,
361    info: *mut i64,
362);
363define_dual_backend!(dgeqrf, DgeqrfLp64FnPtr, DgeqrfIlp64FnPtr);
364
365pub type Dgesc2Lp64FnPtr = unsafe extern "C" fn(
366    n: *const i32,
367    A: *const f64,
368    lda: *const i32,
369    rhs: *mut f64,
370    ipiv: *const i32,
371    jpiv: *const i32,
372    scale: *mut f64,
373);
374pub type Dgesc2Ilp64FnPtr = unsafe extern "C" fn(
375    n: *const i64,
376    A: *const f64,
377    lda: *const i64,
378    rhs: *mut f64,
379    ipiv: *const i64,
380    jpiv: *const i64,
381    scale: *mut f64,
382);
383define_dual_backend!(dgesc2, Dgesc2Lp64FnPtr, Dgesc2Ilp64FnPtr);
384
385pub type DgesvLp64FnPtr = unsafe extern "C" fn(
386    n: *const i32,
387    nrhs: *const i32,
388    A: *mut f64,
389    lda: *const i32,
390    ipiv: *mut i32,
391    B: *mut f64,
392    ldb: *const i32,
393    info: *mut i32,
394);
395pub type DgesvIlp64FnPtr = unsafe extern "C" fn(
396    n: *const i64,
397    nrhs: *const i64,
398    A: *mut f64,
399    lda: *const i64,
400    ipiv: *mut i64,
401    B: *mut f64,
402    ldb: *const i64,
403    info: *mut i64,
404);
405define_dual_backend!(dgesv, DgesvLp64FnPtr, DgesvIlp64FnPtr);
406
407pub type DgesvdLp64FnPtr = unsafe extern "C" fn(
408    jobu: *const c_char,
409    jobvt: *const c_char,
410    m: *const i32,
411    n: *const i32,
412    A: *mut f64,
413    lda: *const i32,
414    S: *mut f64,
415    U: *mut f64,
416    ldu: *const i32,
417    VT: *mut f64,
418    ldvt: *const i32,
419    work: *mut f64,
420    lwork: *const i32,
421    info: *mut i32,
422);
423pub type DgesvdIlp64FnPtr = unsafe extern "C" fn(
424    jobu: *const c_char,
425    jobvt: *const c_char,
426    m: *const i64,
427    n: *const i64,
428    A: *mut f64,
429    lda: *const i64,
430    S: *mut f64,
431    U: *mut f64,
432    ldu: *const i64,
433    VT: *mut f64,
434    ldvt: *const i64,
435    work: *mut f64,
436    lwork: *const i64,
437    info: *mut i64,
438);
439define_dual_backend!(dgesvd, DgesvdLp64FnPtr, DgesvdIlp64FnPtr);
440
441pub type Dgetc2Lp64FnPtr = unsafe extern "C" fn(
442    n: *const i32,
443    A: *mut f64,
444    lda: *const i32,
445    ipiv: *mut i32,
446    jpiv: *mut i32,
447    info: *mut i32,
448);
449pub type Dgetc2Ilp64FnPtr = unsafe extern "C" fn(
450    n: *const i64,
451    A: *mut f64,
452    lda: *const i64,
453    ipiv: *mut i64,
454    jpiv: *mut i64,
455    info: *mut i64,
456);
457define_dual_backend!(dgetc2, Dgetc2Lp64FnPtr, Dgetc2Ilp64FnPtr);
458
459pub type DgetrfLp64FnPtr = unsafe extern "C" fn(
460    m: *const i32,
461    n: *const i32,
462    A: *mut f64,
463    lda: *const i32,
464    ipiv: *mut i32,
465    info: *mut i32,
466);
467pub type DgetrfIlp64FnPtr = unsafe extern "C" fn(
468    m: *const i64,
469    n: *const i64,
470    A: *mut f64,
471    lda: *const i64,
472    ipiv: *mut i64,
473    info: *mut i64,
474);
475define_dual_backend!(dgetrf, DgetrfLp64FnPtr, DgetrfIlp64FnPtr);
476
477pub type DgetriLp64FnPtr = unsafe extern "C" fn(
478    n: *const i32,
479    A: *mut f64,
480    lda: *const i32,
481    ipiv: *const i32,
482    work: *mut f64,
483    lwork: *const i32,
484    info: *mut i32,
485);
486pub type DgetriIlp64FnPtr = unsafe extern "C" fn(
487    n: *const i64,
488    A: *mut f64,
489    lda: *const i64,
490    ipiv: *const i64,
491    work: *mut f64,
492    lwork: *const i64,
493    info: *mut i64,
494);
495define_dual_backend!(dgetri, DgetriLp64FnPtr, DgetriIlp64FnPtr);
496
497pub type DgetrsLp64FnPtr = unsafe extern "C" fn(
498    trans: *const c_char,
499    n: *const i32,
500    nrhs: *const i32,
501    A: *const f64,
502    lda: *const i32,
503    ipiv: *const i32,
504    B: *mut f64,
505    ldb: *const i32,
506    info: *mut i32,
507);
508pub type DgetrsIlp64FnPtr = unsafe extern "C" fn(
509    trans: *const c_char,
510    n: *const i64,
511    nrhs: *const i64,
512    A: *const f64,
513    lda: *const i64,
514    ipiv: *const i64,
515    B: *mut f64,
516    ldb: *const i64,
517    info: *mut i64,
518);
519define_dual_backend!(dgetrs, DgetrsLp64FnPtr, DgetrsIlp64FnPtr);
520
521pub type DorgqrLp64FnPtr = unsafe extern "C" fn(
522    m: *const i32,
523    n: *const i32,
524    k: *const i32,
525    A: *mut f64,
526    lda: *const i32,
527    tau: *const f64,
528    work: *mut f64,
529    lwork: *const i32,
530    info: *mut i32,
531);
532pub type DorgqrIlp64FnPtr = unsafe extern "C" fn(
533    m: *const i64,
534    n: *const i64,
535    k: *const i64,
536    A: *mut f64,
537    lda: *const i64,
538    tau: *const f64,
539    work: *mut f64,
540    lwork: *const i64,
541    info: *mut i64,
542);
543define_dual_backend!(dorgqr, DorgqrLp64FnPtr, DorgqrIlp64FnPtr);
544
545pub type DpotrfLp64FnPtr = unsafe extern "C" fn(
546    uplo: *const c_char,
547    n: *const i32,
548    A: *mut f64,
549    lda: *const i32,
550    info: *mut i32,
551);
552pub type DpotrfIlp64FnPtr = unsafe extern "C" fn(
553    uplo: *const c_char,
554    n: *const i64,
555    A: *mut f64,
556    lda: *const i64,
557    info: *mut i64,
558);
559define_dual_backend!(dpotrf, DpotrfLp64FnPtr, DpotrfIlp64FnPtr);
560
561pub type DsyevLp64FnPtr = unsafe extern "C" fn(
562    jobz: *const c_char,
563    uplo: *const c_char,
564    n: *const i32,
565    A: *mut f64,
566    lda: *const i32,
567    W: *mut f64,
568    work: *mut f64,
569    lwork: *const i32,
570    info: *mut i32,
571);
572pub type DsyevIlp64FnPtr = unsafe extern "C" fn(
573    jobz: *const c_char,
574    uplo: *const c_char,
575    n: *const i64,
576    A: *mut f64,
577    lda: *const i64,
578    W: *mut f64,
579    work: *mut f64,
580    lwork: *const i64,
581    info: *mut i64,
582);
583define_dual_backend!(dsyev, DsyevLp64FnPtr, DsyevIlp64FnPtr);
584
585pub type DtrtrsLp64FnPtr = unsafe extern "C" fn(
586    uplo: *const c_char,
587    trans: *const c_char,
588    diag: *const c_char,
589    n: *const i32,
590    nrhs: *const i32,
591    A: *const f64,
592    lda: *const i32,
593    B: *mut f64,
594    ldb: *const i32,
595    info: *mut i32,
596);
597pub type DtrtrsIlp64FnPtr = unsafe extern "C" fn(
598    uplo: *const c_char,
599    trans: *const c_char,
600    diag: *const c_char,
601    n: *const i64,
602    nrhs: *const i64,
603    A: *const f64,
604    lda: *const i64,
605    B: *mut f64,
606    ldb: *const i64,
607    info: *mut i64,
608);
609define_dual_backend!(dtrtrs, DtrtrsLp64FnPtr, DtrtrsIlp64FnPtr);
610
611pub type SgeevLp64FnPtr = unsafe extern "C" fn(
612    jobvl: *const c_char,
613    jobvr: *const c_char,
614    n: *const i32,
615    A: *mut f32,
616    lda: *const i32,
617    WR: *mut f32,
618    WI: *mut f32,
619    VL: *mut f32,
620    ldvl: *const i32,
621    VR: *mut f32,
622    ldvr: *const i32,
623    work: *mut f32,
624    lwork: *const i32,
625    info: *mut i32,
626);
627pub type SgeevIlp64FnPtr = unsafe extern "C" fn(
628    jobvl: *const c_char,
629    jobvr: *const c_char,
630    n: *const i64,
631    A: *mut f32,
632    lda: *const i64,
633    WR: *mut f32,
634    WI: *mut f32,
635    VL: *mut f32,
636    ldvl: *const i64,
637    VR: *mut f32,
638    ldvr: *const i64,
639    work: *mut f32,
640    lwork: *const i64,
641    info: *mut i64,
642);
643define_dual_backend!(sgeev, SgeevLp64FnPtr, SgeevIlp64FnPtr);
644
645pub type SgeqrfLp64FnPtr = unsafe extern "C" fn(
646    m: *const i32,
647    n: *const i32,
648    A: *mut f32,
649    lda: *const i32,
650    tau: *mut f32,
651    work: *mut f32,
652    lwork: *const i32,
653    info: *mut i32,
654);
655pub type SgeqrfIlp64FnPtr = unsafe extern "C" fn(
656    m: *const i64,
657    n: *const i64,
658    A: *mut f32,
659    lda: *const i64,
660    tau: *mut f32,
661    work: *mut f32,
662    lwork: *const i64,
663    info: *mut i64,
664);
665define_dual_backend!(sgeqrf, SgeqrfLp64FnPtr, SgeqrfIlp64FnPtr);
666
667pub type Sgesc2Lp64FnPtr = unsafe extern "C" fn(
668    n: *const i32,
669    A: *const f32,
670    lda: *const i32,
671    rhs: *mut f32,
672    ipiv: *const i32,
673    jpiv: *const i32,
674    scale: *mut f32,
675);
676pub type Sgesc2Ilp64FnPtr = unsafe extern "C" fn(
677    n: *const i64,
678    A: *const f32,
679    lda: *const i64,
680    rhs: *mut f32,
681    ipiv: *const i64,
682    jpiv: *const i64,
683    scale: *mut f32,
684);
685define_dual_backend!(sgesc2, Sgesc2Lp64FnPtr, Sgesc2Ilp64FnPtr);
686
687pub type SgesvLp64FnPtr = unsafe extern "C" fn(
688    n: *const i32,
689    nrhs: *const i32,
690    A: *mut f32,
691    lda: *const i32,
692    ipiv: *mut i32,
693    B: *mut f32,
694    ldb: *const i32,
695    info: *mut i32,
696);
697pub type SgesvIlp64FnPtr = unsafe extern "C" fn(
698    n: *const i64,
699    nrhs: *const i64,
700    A: *mut f32,
701    lda: *const i64,
702    ipiv: *mut i64,
703    B: *mut f32,
704    ldb: *const i64,
705    info: *mut i64,
706);
707define_dual_backend!(sgesv, SgesvLp64FnPtr, SgesvIlp64FnPtr);
708
709pub type SgesvdLp64FnPtr = unsafe extern "C" fn(
710    jobu: *const c_char,
711    jobvt: *const c_char,
712    m: *const i32,
713    n: *const i32,
714    A: *mut f32,
715    lda: *const i32,
716    S: *mut f32,
717    U: *mut f32,
718    ldu: *const i32,
719    VT: *mut f32,
720    ldvt: *const i32,
721    work: *mut f32,
722    lwork: *const i32,
723    info: *mut i32,
724);
725pub type SgesvdIlp64FnPtr = unsafe extern "C" fn(
726    jobu: *const c_char,
727    jobvt: *const c_char,
728    m: *const i64,
729    n: *const i64,
730    A: *mut f32,
731    lda: *const i64,
732    S: *mut f32,
733    U: *mut f32,
734    ldu: *const i64,
735    VT: *mut f32,
736    ldvt: *const i64,
737    work: *mut f32,
738    lwork: *const i64,
739    info: *mut i64,
740);
741define_dual_backend!(sgesvd, SgesvdLp64FnPtr, SgesvdIlp64FnPtr);
742
743pub type Sgetc2Lp64FnPtr = unsafe extern "C" fn(
744    n: *const i32,
745    A: *mut f32,
746    lda: *const i32,
747    ipiv: *mut i32,
748    jpiv: *mut i32,
749    info: *mut i32,
750);
751pub type Sgetc2Ilp64FnPtr = unsafe extern "C" fn(
752    n: *const i64,
753    A: *mut f32,
754    lda: *const i64,
755    ipiv: *mut i64,
756    jpiv: *mut i64,
757    info: *mut i64,
758);
759define_dual_backend!(sgetc2, Sgetc2Lp64FnPtr, Sgetc2Ilp64FnPtr);
760
761pub type SgetrfLp64FnPtr = unsafe extern "C" fn(
762    m: *const i32,
763    n: *const i32,
764    A: *mut f32,
765    lda: *const i32,
766    ipiv: *mut i32,
767    info: *mut i32,
768);
769pub type SgetrfIlp64FnPtr = unsafe extern "C" fn(
770    m: *const i64,
771    n: *const i64,
772    A: *mut f32,
773    lda: *const i64,
774    ipiv: *mut i64,
775    info: *mut i64,
776);
777define_dual_backend!(sgetrf, SgetrfLp64FnPtr, SgetrfIlp64FnPtr);
778
779pub type SgetriLp64FnPtr = unsafe extern "C" fn(
780    n: *const i32,
781    A: *mut f32,
782    lda: *const i32,
783    ipiv: *const i32,
784    work: *mut f32,
785    lwork: *const i32,
786    info: *mut i32,
787);
788pub type SgetriIlp64FnPtr = unsafe extern "C" fn(
789    n: *const i64,
790    A: *mut f32,
791    lda: *const i64,
792    ipiv: *const i64,
793    work: *mut f32,
794    lwork: *const i64,
795    info: *mut i64,
796);
797define_dual_backend!(sgetri, SgetriLp64FnPtr, SgetriIlp64FnPtr);
798
799pub type SgetrsLp64FnPtr = unsafe extern "C" fn(
800    trans: *const c_char,
801    n: *const i32,
802    nrhs: *const i32,
803    A: *const f32,
804    lda: *const i32,
805    ipiv: *const i32,
806    B: *mut f32,
807    ldb: *const i32,
808    info: *mut i32,
809);
810pub type SgetrsIlp64FnPtr = unsafe extern "C" fn(
811    trans: *const c_char,
812    n: *const i64,
813    nrhs: *const i64,
814    A: *const f32,
815    lda: *const i64,
816    ipiv: *const i64,
817    B: *mut f32,
818    ldb: *const i64,
819    info: *mut i64,
820);
821define_dual_backend!(sgetrs, SgetrsLp64FnPtr, SgetrsIlp64FnPtr);
822
823pub type SorgqrLp64FnPtr = unsafe extern "C" fn(
824    m: *const i32,
825    n: *const i32,
826    k: *const i32,
827    A: *mut f32,
828    lda: *const i32,
829    tau: *const f32,
830    work: *mut f32,
831    lwork: *const i32,
832    info: *mut i32,
833);
834pub type SorgqrIlp64FnPtr = unsafe extern "C" fn(
835    m: *const i64,
836    n: *const i64,
837    k: *const i64,
838    A: *mut f32,
839    lda: *const i64,
840    tau: *const f32,
841    work: *mut f32,
842    lwork: *const i64,
843    info: *mut i64,
844);
845define_dual_backend!(sorgqr, SorgqrLp64FnPtr, SorgqrIlp64FnPtr);
846
847pub type SpotrfLp64FnPtr = unsafe extern "C" fn(
848    uplo: *const c_char,
849    n: *const i32,
850    A: *mut f32,
851    lda: *const i32,
852    info: *mut i32,
853);
854pub type SpotrfIlp64FnPtr = unsafe extern "C" fn(
855    uplo: *const c_char,
856    n: *const i64,
857    A: *mut f32,
858    lda: *const i64,
859    info: *mut i64,
860);
861define_dual_backend!(spotrf, SpotrfLp64FnPtr, SpotrfIlp64FnPtr);
862
863pub type SsyevLp64FnPtr = unsafe extern "C" fn(
864    jobz: *const c_char,
865    uplo: *const c_char,
866    n: *const i32,
867    A: *mut f32,
868    lda: *const i32,
869    W: *mut f32,
870    work: *mut f32,
871    lwork: *const i32,
872    info: *mut i32,
873);
874pub type SsyevIlp64FnPtr = unsafe extern "C" fn(
875    jobz: *const c_char,
876    uplo: *const c_char,
877    n: *const i64,
878    A: *mut f32,
879    lda: *const i64,
880    W: *mut f32,
881    work: *mut f32,
882    lwork: *const i64,
883    info: *mut i64,
884);
885define_dual_backend!(ssyev, SsyevLp64FnPtr, SsyevIlp64FnPtr);
886
887pub type StrtrsLp64FnPtr = unsafe extern "C" fn(
888    uplo: *const c_char,
889    trans: *const c_char,
890    diag: *const c_char,
891    n: *const i32,
892    nrhs: *const i32,
893    A: *const f32,
894    lda: *const i32,
895    B: *mut f32,
896    ldb: *const i32,
897    info: *mut i32,
898);
899pub type StrtrsIlp64FnPtr = unsafe extern "C" fn(
900    uplo: *const c_char,
901    trans: *const c_char,
902    diag: *const c_char,
903    n: *const i64,
904    nrhs: *const i64,
905    A: *const f32,
906    lda: *const i64,
907    B: *mut f32,
908    ldb: *const i64,
909    info: *mut i64,
910);
911define_dual_backend!(strtrs, StrtrsLp64FnPtr, StrtrsIlp64FnPtr);
912
913pub type ZgeevLp64FnPtr = unsafe extern "C" fn(
914    jobvl: *const c_char,
915    jobvr: *const c_char,
916    n: *const i32,
917    A: *mut num_complex::Complex64,
918    lda: *const i32,
919    W: *mut num_complex::Complex64,
920    VL: *mut num_complex::Complex64,
921    ldvl: *const i32,
922    VR: *mut num_complex::Complex64,
923    ldvr: *const i32,
924    work: *mut num_complex::Complex64,
925    lwork: *const i32,
926    rwork: *mut f64,
927    info: *mut i32,
928);
929pub type ZgeevIlp64FnPtr = unsafe extern "C" fn(
930    jobvl: *const c_char,
931    jobvr: *const c_char,
932    n: *const i64,
933    A: *mut num_complex::Complex64,
934    lda: *const i64,
935    W: *mut num_complex::Complex64,
936    VL: *mut num_complex::Complex64,
937    ldvl: *const i64,
938    VR: *mut num_complex::Complex64,
939    ldvr: *const i64,
940    work: *mut num_complex::Complex64,
941    lwork: *const i64,
942    rwork: *mut f64,
943    info: *mut i64,
944);
945define_dual_backend!(zgeev, ZgeevLp64FnPtr, ZgeevIlp64FnPtr);
946
947pub type ZgeqrfLp64FnPtr = unsafe extern "C" fn(
948    m: *const i32,
949    n: *const i32,
950    A: *mut num_complex::Complex64,
951    lda: *const i32,
952    tau: *mut num_complex::Complex64,
953    work: *mut num_complex::Complex64,
954    lwork: *const i32,
955    info: *mut i32,
956);
957pub type ZgeqrfIlp64FnPtr = unsafe extern "C" fn(
958    m: *const i64,
959    n: *const i64,
960    A: *mut num_complex::Complex64,
961    lda: *const i64,
962    tau: *mut num_complex::Complex64,
963    work: *mut num_complex::Complex64,
964    lwork: *const i64,
965    info: *mut i64,
966);
967define_dual_backend!(zgeqrf, ZgeqrfLp64FnPtr, ZgeqrfIlp64FnPtr);
968
969pub type Zgesc2Lp64FnPtr = unsafe extern "C" fn(
970    n: *const i32,
971    A: *const num_complex::Complex64,
972    lda: *const i32,
973    rhs: *mut num_complex::Complex64,
974    ipiv: *const i32,
975    jpiv: *const i32,
976    scale: *mut f64,
977);
978pub type Zgesc2Ilp64FnPtr = unsafe extern "C" fn(
979    n: *const i64,
980    A: *const num_complex::Complex64,
981    lda: *const i64,
982    rhs: *mut num_complex::Complex64,
983    ipiv: *const i64,
984    jpiv: *const i64,
985    scale: *mut f64,
986);
987define_dual_backend!(zgesc2, Zgesc2Lp64FnPtr, Zgesc2Ilp64FnPtr);
988
989pub type ZgesvLp64FnPtr = unsafe extern "C" fn(
990    n: *const i32,
991    nrhs: *const i32,
992    A: *mut num_complex::Complex64,
993    lda: *const i32,
994    ipiv: *mut i32,
995    B: *mut num_complex::Complex64,
996    ldb: *const i32,
997    info: *mut i32,
998);
999pub type ZgesvIlp64FnPtr = unsafe extern "C" fn(
1000    n: *const i64,
1001    nrhs: *const i64,
1002    A: *mut num_complex::Complex64,
1003    lda: *const i64,
1004    ipiv: *mut i64,
1005    B: *mut num_complex::Complex64,
1006    ldb: *const i64,
1007    info: *mut i64,
1008);
1009define_dual_backend!(zgesv, ZgesvLp64FnPtr, ZgesvIlp64FnPtr);
1010
1011pub type ZgesvdLp64FnPtr = unsafe extern "C" fn(
1012    jobu: *const c_char,
1013    jobvt: *const c_char,
1014    m: *const i32,
1015    n: *const i32,
1016    A: *mut num_complex::Complex64,
1017    lda: *const i32,
1018    S: *mut f64,
1019    U: *mut num_complex::Complex64,
1020    ldu: *const i32,
1021    VT: *mut num_complex::Complex64,
1022    ldvt: *const i32,
1023    work: *mut num_complex::Complex64,
1024    lwork: *const i32,
1025    rwork: *mut f64,
1026    info: *mut i32,
1027);
1028pub type ZgesvdIlp64FnPtr = unsafe extern "C" fn(
1029    jobu: *const c_char,
1030    jobvt: *const c_char,
1031    m: *const i64,
1032    n: *const i64,
1033    A: *mut num_complex::Complex64,
1034    lda: *const i64,
1035    S: *mut f64,
1036    U: *mut num_complex::Complex64,
1037    ldu: *const i64,
1038    VT: *mut num_complex::Complex64,
1039    ldvt: *const i64,
1040    work: *mut num_complex::Complex64,
1041    lwork: *const i64,
1042    rwork: *mut f64,
1043    info: *mut i64,
1044);
1045define_dual_backend!(zgesvd, ZgesvdLp64FnPtr, ZgesvdIlp64FnPtr);
1046
1047pub type Zgetc2Lp64FnPtr = unsafe extern "C" fn(
1048    n: *const i32,
1049    A: *mut num_complex::Complex64,
1050    lda: *const i32,
1051    ipiv: *mut i32,
1052    jpiv: *mut i32,
1053    info: *mut i32,
1054);
1055pub type Zgetc2Ilp64FnPtr = unsafe extern "C" fn(
1056    n: *const i64,
1057    A: *mut num_complex::Complex64,
1058    lda: *const i64,
1059    ipiv: *mut i64,
1060    jpiv: *mut i64,
1061    info: *mut i64,
1062);
1063define_dual_backend!(zgetc2, Zgetc2Lp64FnPtr, Zgetc2Ilp64FnPtr);
1064
1065pub type ZgetrfLp64FnPtr = unsafe extern "C" fn(
1066    m: *const i32,
1067    n: *const i32,
1068    A: *mut num_complex::Complex64,
1069    lda: *const i32,
1070    ipiv: *mut i32,
1071    info: *mut i32,
1072);
1073pub type ZgetrfIlp64FnPtr = unsafe extern "C" fn(
1074    m: *const i64,
1075    n: *const i64,
1076    A: *mut num_complex::Complex64,
1077    lda: *const i64,
1078    ipiv: *mut i64,
1079    info: *mut i64,
1080);
1081define_dual_backend!(zgetrf, ZgetrfLp64FnPtr, ZgetrfIlp64FnPtr);
1082
1083pub type ZgetriLp64FnPtr = unsafe extern "C" fn(
1084    n: *const i32,
1085    A: *mut num_complex::Complex64,
1086    lda: *const i32,
1087    ipiv: *const i32,
1088    work: *mut num_complex::Complex64,
1089    lwork: *const i32,
1090    info: *mut i32,
1091);
1092pub type ZgetriIlp64FnPtr = unsafe extern "C" fn(
1093    n: *const i64,
1094    A: *mut num_complex::Complex64,
1095    lda: *const i64,
1096    ipiv: *const i64,
1097    work: *mut num_complex::Complex64,
1098    lwork: *const i64,
1099    info: *mut i64,
1100);
1101define_dual_backend!(zgetri, ZgetriLp64FnPtr, ZgetriIlp64FnPtr);
1102
1103pub type ZgetrsLp64FnPtr = unsafe extern "C" fn(
1104    trans: *const c_char,
1105    n: *const i32,
1106    nrhs: *const i32,
1107    A: *const num_complex::Complex64,
1108    lda: *const i32,
1109    ipiv: *const i32,
1110    B: *mut num_complex::Complex64,
1111    ldb: *const i32,
1112    info: *mut i32,
1113);
1114pub type ZgetrsIlp64FnPtr = unsafe extern "C" fn(
1115    trans: *const c_char,
1116    n: *const i64,
1117    nrhs: *const i64,
1118    A: *const num_complex::Complex64,
1119    lda: *const i64,
1120    ipiv: *const i64,
1121    B: *mut num_complex::Complex64,
1122    ldb: *const i64,
1123    info: *mut i64,
1124);
1125define_dual_backend!(zgetrs, ZgetrsLp64FnPtr, ZgetrsIlp64FnPtr);
1126
1127pub type ZheevLp64FnPtr = unsafe extern "C" fn(
1128    jobz: *const c_char,
1129    uplo: *const c_char,
1130    n: *const i32,
1131    A: *mut num_complex::Complex64,
1132    lda: *const i32,
1133    W: *mut f64,
1134    work: *mut num_complex::Complex64,
1135    lwork: *const i32,
1136    rwork: *mut f64,
1137    info: *mut i32,
1138);
1139pub type ZheevIlp64FnPtr = unsafe extern "C" fn(
1140    jobz: *const c_char,
1141    uplo: *const c_char,
1142    n: *const i64,
1143    A: *mut num_complex::Complex64,
1144    lda: *const i64,
1145    W: *mut f64,
1146    work: *mut num_complex::Complex64,
1147    lwork: *const i64,
1148    rwork: *mut f64,
1149    info: *mut i64,
1150);
1151define_dual_backend!(zheev, ZheevLp64FnPtr, ZheevIlp64FnPtr);
1152
1153pub type ZpotrfLp64FnPtr = unsafe extern "C" fn(
1154    uplo: *const c_char,
1155    n: *const i32,
1156    A: *mut num_complex::Complex64,
1157    lda: *const i32,
1158    info: *mut i32,
1159);
1160pub type ZpotrfIlp64FnPtr = unsafe extern "C" fn(
1161    uplo: *const c_char,
1162    n: *const i64,
1163    A: *mut num_complex::Complex64,
1164    lda: *const i64,
1165    info: *mut i64,
1166);
1167define_dual_backend!(zpotrf, ZpotrfLp64FnPtr, ZpotrfIlp64FnPtr);
1168
1169pub type ZtrtrsLp64FnPtr = unsafe extern "C" fn(
1170    uplo: *const c_char,
1171    trans: *const c_char,
1172    diag: *const c_char,
1173    n: *const i32,
1174    nrhs: *const i32,
1175    A: *const num_complex::Complex64,
1176    lda: *const i32,
1177    B: *mut num_complex::Complex64,
1178    ldb: *const i32,
1179    info: *mut i32,
1180);
1181pub type ZtrtrsIlp64FnPtr = unsafe extern "C" fn(
1182    uplo: *const c_char,
1183    trans: *const c_char,
1184    diag: *const c_char,
1185    n: *const i64,
1186    nrhs: *const i64,
1187    A: *const num_complex::Complex64,
1188    lda: *const i64,
1189    B: *mut num_complex::Complex64,
1190    ldb: *const i64,
1191    info: *mut i64,
1192);
1193define_dual_backend!(ztrtrs, ZtrtrsLp64FnPtr, ZtrtrsIlp64FnPtr);
1194
1195pub type ZungqrLp64FnPtr = unsafe extern "C" fn(
1196    m: *const i32,
1197    n: *const i32,
1198    k: *const i32,
1199    A: *mut num_complex::Complex64,
1200    lda: *const i32,
1201    tau: *const num_complex::Complex64,
1202    work: *mut num_complex::Complex64,
1203    lwork: *const i32,
1204    info: *mut i32,
1205);
1206pub type ZungqrIlp64FnPtr = unsafe extern "C" fn(
1207    m: *const i64,
1208    n: *const i64,
1209    k: *const i64,
1210    A: *mut num_complex::Complex64,
1211    lda: *const i64,
1212    tau: *const num_complex::Complex64,
1213    work: *mut num_complex::Complex64,
1214    lwork: *const i64,
1215    info: *mut i64,
1216);
1217define_dual_backend!(zungqr, ZungqrLp64FnPtr, ZungqrIlp64FnPtr);