1pub 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);