1#![allow(non_camel_case_types)]
9#![no_std]
10
11use libc::{c_char, c_double, c_float, c_int};
12
13#[allow(bad_style)]
15pub type c_double_complex = [libc::c_double; 2];
16
17#[allow(bad_style)]
19pub type c_float_complex = [libc::c_float; 2];
20
21pub type CBLAS_INDEX = c_int;
22
23#[repr(C)]
24#[derive(Clone, Copy, Debug)]
25pub enum CBLAS_LAYOUT {
26 CblasRowMajor = 101,
27 CblasColMajor = 102,
28}
29pub use self::CBLAS_LAYOUT::*;
30
31#[repr(C)]
32#[derive(Clone, Copy, Debug)]
33pub enum CBLAS_TRANSPOSE {
34 CblasNoTrans = 111,
35 CblasTrans = 112,
36 CblasConjTrans = 113,
37}
38pub use self::CBLAS_TRANSPOSE::*;
39
40#[repr(C)]
41#[derive(Clone, Copy, Debug)]
42pub enum CBLAS_UPLO {
43 CblasUpper = 121,
44 CblasLower = 122,
45}
46pub use self::CBLAS_UPLO::*;
47
48#[repr(C)]
49#[derive(Clone, Copy, Debug)]
50pub enum CBLAS_DIAG {
51 CblasNonUnit = 131,
52 CblasUnit = 132,
53}
54pub use self::CBLAS_DIAG::*;
55
56#[repr(C)]
57#[derive(Clone, Copy, Debug)]
58pub enum CBLAS_SIDE {
59 CblasLeft = 141,
60 CblasRight = 142,
61}
62pub use self::CBLAS_SIDE::*;
63
64pub type CBLAS_ORDER = CBLAS_LAYOUT;
65
66extern "C" {
68 pub fn cblas_dcabs1(z: *const c_double_complex) -> c_double;
69 pub fn cblas_scabs1(c: *const c_float_complex) -> c_float;
70
71 pub fn cblas_sdsdot(
72 n: c_int,
73 alpha: c_float,
74 x: *const c_float,
75 incx: c_int,
76 y: *const c_float,
77 incy: c_int,
78 ) -> c_float;
79 pub fn cblas_dsdot(
80 n: c_int,
81 x: *const c_float,
82 incx: c_int,
83 y: *const c_float,
84 incy: c_int,
85 ) -> c_double;
86 pub fn cblas_sdot(
87 n: c_int,
88 x: *const c_float,
89 incx: c_int,
90 y: *const c_float,
91 incy: c_int,
92 ) -> c_float;
93 pub fn cblas_ddot(
94 n: c_int,
95 x: *const c_double,
96 incx: c_int,
97 y: *const c_double,
98 incy: c_int,
99 ) -> c_double;
100
101 pub fn cblas_cdotu_sub(
103 n: c_int,
104 x: *const c_float_complex,
105 incx: c_int,
106 y: *const c_float_complex,
107 incy: c_int,
108 dotu: *mut c_float_complex,
109 );
110 pub fn cblas_cdotc_sub(
111 n: c_int,
112 x: *const c_float_complex,
113 incx: c_int,
114 y: *const c_float_complex,
115 incy: c_int,
116 dotc: *mut c_float_complex,
117 );
118
119 pub fn cblas_zdotu_sub(
120 n: c_int,
121 x: *const c_double_complex,
122 incx: c_int,
123 y: *const c_double_complex,
124 incy: c_int,
125 dotu: *mut c_double_complex,
126 );
127 pub fn cblas_zdotc_sub(
128 n: c_int,
129 x: *const c_double_complex,
130 incx: c_int,
131 y: *const c_double_complex,
132 incy: c_int,
133 dotc: *mut c_double_complex,
134 );
135
136 pub fn cblas_snrm2(n: c_int, x: *const c_float, incx: c_int) -> c_float;
138 pub fn cblas_sasum(n: c_int, x: *const c_float, incx: c_int) -> c_float;
139
140 pub fn cblas_dnrm2(n: c_int, x: *const c_double, incx: c_int) -> c_double;
141 pub fn cblas_dasum(n: c_int, x: *const c_double, incx: c_int) -> c_double;
142
143 pub fn cblas_scnrm2(n: c_int, x: *const c_float_complex, incx: c_int) -> c_float;
144 pub fn cblas_scasum(n: c_int, x: *const c_float_complex, incx: c_int) -> c_float;
145
146 pub fn cblas_dznrm2(n: c_int, x: *const c_double_complex, incx: c_int) -> c_double;
147 pub fn cblas_dzasum(n: c_int, x: *const c_double_complex, incx: c_int) -> c_double;
148
149 pub fn cblas_isamax(n: c_int, x: *const c_float, incx: c_int) -> CBLAS_INDEX;
151 pub fn cblas_idamax(n: c_int, x: *const c_double, incx: c_int) -> CBLAS_INDEX;
152 pub fn cblas_icamax(n: c_int, x: *const c_float_complex, incx: c_int) -> CBLAS_INDEX;
153 pub fn cblas_izamax(n: c_int, x: *const c_double_complex, incx: c_int) -> CBLAS_INDEX;
154}
155
156extern "C" {
158 pub fn cblas_sswap(n: c_int, x: *mut c_float, incx: c_int, y: *mut c_float, incy: c_int);
160 pub fn cblas_scopy(n: c_int, x: *const c_float, incx: c_int, y: *mut c_float, incy: c_int);
161 pub fn cblas_saxpy(
162 n: c_int,
163 alpha: c_float,
164 x: *const c_float,
165 incx: c_int,
166 y: *mut c_float,
167 incy: c_int,
168 );
169
170 pub fn cblas_dswap(n: c_int, x: *mut c_double, incx: c_int, y: *mut c_double, incy: c_int);
171 pub fn cblas_dcopy(n: c_int, x: *const c_double, incx: c_int, y: *mut c_double, incy: c_int);
172 pub fn cblas_daxpy(
173 n: c_int,
174 alpha: c_double,
175 x: *const c_double,
176 incx: c_int,
177 y: *mut c_double,
178 incy: c_int,
179 );
180
181 pub fn cblas_cswap(
182 n: c_int,
183 x: *mut c_float_complex,
184 incx: c_int,
185 y: *mut c_float_complex,
186 incy: c_int,
187 );
188 pub fn cblas_ccopy(
189 n: c_int,
190 x: *const c_float_complex,
191 incx: c_int,
192 y: *mut c_float_complex,
193 incy: c_int,
194 );
195 pub fn cblas_caxpy(
196 n: c_int,
197 alpha: *const c_float_complex,
198 x: *const c_float_complex,
199 incx: c_int,
200 y: *mut c_float_complex,
201 incy: c_int,
202 );
203
204 pub fn cblas_zswap(
205 n: c_int,
206 x: *mut c_double_complex,
207 incx: c_int,
208 y: *mut c_double_complex,
209 incy: c_int,
210 );
211 pub fn cblas_zcopy(
212 n: c_int,
213 x: *const c_double_complex,
214 incx: c_int,
215 y: *mut c_double_complex,
216 incy: c_int,
217 );
218 pub fn cblas_zaxpy(
219 n: c_int,
220 alpha: *const c_double_complex,
221 x: *const c_double_complex,
222 incx: c_int,
223 y: *mut c_double_complex,
224 incy: c_int,
225 );
226
227 pub fn cblas_srotg(a: *mut c_float, b: *mut c_float, c: *mut c_float, s: *mut c_float);
229 pub fn cblas_srotmg(
230 d1: *mut c_float,
231 d2: *mut c_float,
232 b1: *mut c_float,
233 b2: c_float,
234 p: *mut c_float,
235 );
236 pub fn cblas_srot(
237 n: c_int,
238 x: *mut c_float,
239 incx: c_int,
240 y: *mut c_float,
241 incy: c_int,
242 c: c_float,
243 s: c_float,
244 );
245 pub fn cblas_srotm(
246 n: c_int,
247 x: *mut c_float,
248 incx: c_int,
249 y: *mut c_float,
250 incy: c_int,
251 p: *const c_float,
252 );
253
254 pub fn cblas_drotg(a: *mut c_double, b: *mut c_double, c: *mut c_double, s: *mut c_double);
255 pub fn cblas_drotmg(
256 d1: *mut c_double,
257 d2: *mut c_double,
258 b1: *mut c_double,
259 b2: c_double,
260 p: *mut c_double,
261 );
262 pub fn cblas_drot(
263 n: c_int,
264 x: *mut c_double,
265 incx: c_int,
266 y: *mut c_double,
267 incy: c_int,
268 c: c_double,
269 s: c_double,
270 );
271 pub fn cblas_drotm(
272 n: c_int,
273 x: *mut c_double,
274 incx: c_int,
275 y: *mut c_double,
276 incy: c_int,
277 p: *const c_double,
278 );
279
280 pub fn cblas_sscal(n: c_int, alpha: c_float, x: *mut c_float, incx: c_int);
282 pub fn cblas_dscal(n: c_int, alpha: c_double, x: *mut c_double, incx: c_int);
283 pub fn cblas_cscal(
284 n: c_int,
285 alpha: *const c_float_complex,
286 x: *mut c_float_complex,
287 incx: c_int,
288 );
289 pub fn cblas_zscal(
290 n: c_int,
291 alpha: *const c_double_complex,
292 x: *mut c_double_complex,
293 incx: c_int,
294 );
295 pub fn cblas_csscal(n: c_int, alpha: c_float, x: *mut c_float_complex, incx: c_int);
296 pub fn cblas_zdscal(n: c_int, alpha: c_double, x: *mut c_double_complex, incx: c_int);
297}
298
299extern "C" {
301 pub fn cblas_sgemv(
303 layout: CBLAS_LAYOUT,
304 transa: CBLAS_TRANSPOSE,
305 m: c_int,
306 n: c_int,
307 alpha: c_float,
308 a: *const c_float,
309 lda: c_int,
310 x: *const c_float,
311 incx: c_int,
312 beta: c_float,
313 y: *mut c_float,
314 incy: c_int,
315 );
316 pub fn cblas_sgbmv(
317 layout: CBLAS_LAYOUT,
318 transa: CBLAS_TRANSPOSE,
319 m: c_int,
320 n: c_int,
321 kl: c_int,
322 ku: c_int,
323 alpha: c_float,
324 a: *const c_float,
325 lda: c_int,
326 x: *const c_float,
327 incx: c_int,
328 beta: c_float,
329 y: *mut c_float,
330 incy: c_int,
331 );
332 pub fn cblas_strmv(
333 layout: CBLAS_LAYOUT,
334 uplo: CBLAS_UPLO,
335 transa: CBLAS_TRANSPOSE,
336 diag: CBLAS_DIAG,
337 n: c_int,
338 a: *const c_float,
339 lda: c_int,
340 x: *mut c_float,
341 incx: c_int,
342 );
343 pub fn cblas_stbmv(
344 layout: CBLAS_LAYOUT,
345 uplo: CBLAS_UPLO,
346 transa: CBLAS_TRANSPOSE,
347 diag: CBLAS_DIAG,
348 n: c_int,
349 k: c_int,
350 a: *const c_float,
351 lda: c_int,
352 x: *mut c_float,
353 incx: c_int,
354 );
355 pub fn cblas_stpmv(
356 layout: CBLAS_LAYOUT,
357 uplo: CBLAS_UPLO,
358 transa: CBLAS_TRANSPOSE,
359 diag: CBLAS_DIAG,
360 n: c_int,
361 ap: *const c_float,
362 x: *mut c_float,
363 incx: c_int,
364 );
365 pub fn cblas_strsv(
366 layout: CBLAS_LAYOUT,
367 uplo: CBLAS_UPLO,
368 transa: CBLAS_TRANSPOSE,
369 diag: CBLAS_DIAG,
370 n: c_int,
371 a: *const c_float,
372 lda: c_int,
373 x: *mut c_float,
374 incx: c_int,
375 );
376 pub fn cblas_stbsv(
377 layout: CBLAS_LAYOUT,
378 uplo: CBLAS_UPLO,
379 transa: CBLAS_TRANSPOSE,
380 diag: CBLAS_DIAG,
381 n: c_int,
382 k: c_int,
383 a: *const c_float,
384 lda: c_int,
385 x: *mut c_float,
386 incx: c_int,
387 );
388 pub fn cblas_stpsv(
389 layout: CBLAS_LAYOUT,
390 uplo: CBLAS_UPLO,
391 transa: CBLAS_TRANSPOSE,
392 diag: CBLAS_DIAG,
393 n: c_int,
394 ap: *const c_float,
395 x: *mut c_float,
396 incx: c_int,
397 );
398
399 pub fn cblas_dgemv(
400 layout: CBLAS_LAYOUT,
401 transa: CBLAS_TRANSPOSE,
402 m: c_int,
403 n: c_int,
404 alpha: c_double,
405 a: *const c_double,
406 lda: c_int,
407 x: *const c_double,
408 incx: c_int,
409 beta: c_double,
410 y: *mut c_double,
411 incy: c_int,
412 );
413 pub fn cblas_dgbmv(
414 layout: CBLAS_LAYOUT,
415 transa: CBLAS_TRANSPOSE,
416 m: c_int,
417 n: c_int,
418 kl: c_int,
419 ku: c_int,
420 alpha: c_double,
421 a: *const c_double,
422 lda: c_int,
423 x: *const c_double,
424 incx: c_int,
425 beta: c_double,
426 y: *mut c_double,
427 incy: c_int,
428 );
429 pub fn cblas_dtrmv(
430 layout: CBLAS_LAYOUT,
431 uplo: CBLAS_UPLO,
432 transa: CBLAS_TRANSPOSE,
433 diag: CBLAS_DIAG,
434 n: c_int,
435 a: *const c_double,
436 lda: c_int,
437 x: *mut c_double,
438 incx: c_int,
439 );
440 pub fn cblas_dtbmv(
441 layout: CBLAS_LAYOUT,
442 uplo: CBLAS_UPLO,
443 transa: CBLAS_TRANSPOSE,
444 diag: CBLAS_DIAG,
445 n: c_int,
446 k: c_int,
447 a: *const c_double,
448 lda: c_int,
449 x: *mut c_double,
450 incx: c_int,
451 );
452 pub fn cblas_dtpmv(
453 layout: CBLAS_LAYOUT,
454 uplo: CBLAS_UPLO,
455 transa: CBLAS_TRANSPOSE,
456 diag: CBLAS_DIAG,
457 n: c_int,
458 ap: *const c_double,
459 x: *mut c_double,
460 incx: c_int,
461 );
462 pub fn cblas_dtrsv(
463 layout: CBLAS_LAYOUT,
464 uplo: CBLAS_UPLO,
465 transa: CBLAS_TRANSPOSE,
466 diag: CBLAS_DIAG,
467 n: c_int,
468 a: *const c_double,
469 lda: c_int,
470 x: *mut c_double,
471 incx: c_int,
472 );
473 pub fn cblas_dtbsv(
474 layout: CBLAS_LAYOUT,
475 uplo: CBLAS_UPLO,
476 transa: CBLAS_TRANSPOSE,
477 diag: CBLAS_DIAG,
478 n: c_int,
479 k: c_int,
480 a: *const c_double,
481 lda: c_int,
482 x: *mut c_double,
483 incx: c_int,
484 );
485 pub fn cblas_dtpsv(
486 layout: CBLAS_LAYOUT,
487 uplo: CBLAS_UPLO,
488 transa: CBLAS_TRANSPOSE,
489 diag: CBLAS_DIAG,
490 n: c_int,
491 ap: *const c_double,
492 x: *mut c_double,
493 incx: c_int,
494 );
495
496 pub fn cblas_cgemv(
497 layout: CBLAS_LAYOUT,
498 transa: CBLAS_TRANSPOSE,
499 m: c_int,
500 n: c_int,
501 alpha: *const c_float_complex,
502 a: *const c_float_complex,
503 lda: c_int,
504 x: *const c_float_complex,
505 incx: c_int,
506 beta: *const c_float_complex,
507 y: *mut c_float_complex,
508 incy: c_int,
509 );
510 pub fn cblas_cgbmv(
511 layout: CBLAS_LAYOUT,
512 transa: CBLAS_TRANSPOSE,
513 m: c_int,
514 n: c_int,
515 kl: c_int,
516 ku: c_int,
517 alpha: *const c_float_complex,
518 a: *const c_float_complex,
519 lda: c_int,
520 x: *const c_float_complex,
521 incx: c_int,
522 beta: *const c_float_complex,
523 y: *mut c_float_complex,
524 incy: c_int,
525 );
526 pub fn cblas_ctrmv(
527 layout: CBLAS_LAYOUT,
528 uplo: CBLAS_UPLO,
529 transa: CBLAS_TRANSPOSE,
530 diag: CBLAS_DIAG,
531 n: c_int,
532 a: *const c_float_complex,
533 lda: c_int,
534 x: *mut c_float_complex,
535 incx: c_int,
536 );
537 pub fn cblas_ctbmv(
538 layout: CBLAS_LAYOUT,
539 uplo: CBLAS_UPLO,
540 transa: CBLAS_TRANSPOSE,
541 diag: CBLAS_DIAG,
542 n: c_int,
543 k: c_int,
544 a: *const c_float_complex,
545 lda: c_int,
546 x: *mut c_float_complex,
547 incx: c_int,
548 );
549 pub fn cblas_ctpmv(
550 layout: CBLAS_LAYOUT,
551 uplo: CBLAS_UPLO,
552 transa: CBLAS_TRANSPOSE,
553 diag: CBLAS_DIAG,
554 n: c_int,
555 ap: *const c_float_complex,
556 x: *mut c_float_complex,
557 incx: c_int,
558 );
559 pub fn cblas_ctrsv(
560 layout: CBLAS_LAYOUT,
561 uplo: CBLAS_UPLO,
562 transa: CBLAS_TRANSPOSE,
563 diag: CBLAS_DIAG,
564 n: c_int,
565 a: *const c_float_complex,
566 lda: c_int,
567 x: *mut c_float_complex,
568 incx: c_int,
569 );
570 pub fn cblas_ctbsv(
571 layout: CBLAS_LAYOUT,
572 uplo: CBLAS_UPLO,
573 transa: CBLAS_TRANSPOSE,
574 diag: CBLAS_DIAG,
575 n: c_int,
576 k: c_int,
577 a: *const c_float_complex,
578 lda: c_int,
579 x: *mut c_float_complex,
580 incx: c_int,
581 );
582 pub fn cblas_ctpsv(
583 layout: CBLAS_LAYOUT,
584 uplo: CBLAS_UPLO,
585 transa: CBLAS_TRANSPOSE,
586 diag: CBLAS_DIAG,
587 n: c_int,
588 ap: *const c_float_complex,
589 x: *mut c_float_complex,
590 incx: c_int,
591 );
592
593 pub fn cblas_zgemv(
594 layout: CBLAS_LAYOUT,
595 transa: CBLAS_TRANSPOSE,
596 m: c_int,
597 n: c_int,
598 alpha: *const c_double_complex,
599 a: *const c_double_complex,
600 lda: c_int,
601 x: *const c_double_complex,
602 incx: c_int,
603 beta: *const c_double_complex,
604 y: *mut c_double_complex,
605 incy: c_int,
606 );
607 pub fn cblas_zgbmv(
608 layout: CBLAS_LAYOUT,
609 transa: CBLAS_TRANSPOSE,
610 m: c_int,
611 n: c_int,
612 kl: c_int,
613 ku: c_int,
614 alpha: *const c_double_complex,
615 a: *const c_double_complex,
616 lda: c_int,
617 x: *const c_double_complex,
618 incx: c_int,
619 beta: *const c_double_complex,
620 y: *mut c_double_complex,
621 incy: c_int,
622 );
623 pub fn cblas_ztrmv(
624 layout: CBLAS_LAYOUT,
625 uplo: CBLAS_UPLO,
626 transa: CBLAS_TRANSPOSE,
627 diag: CBLAS_DIAG,
628 n: c_int,
629 a: *const c_double_complex,
630 lda: c_int,
631 x: *mut c_double_complex,
632 incx: c_int,
633 );
634 pub fn cblas_ztbmv(
635 layout: CBLAS_LAYOUT,
636 uplo: CBLAS_UPLO,
637 transa: CBLAS_TRANSPOSE,
638 diag: CBLAS_DIAG,
639 n: c_int,
640 k: c_int,
641 a: *const c_double_complex,
642 lda: c_int,
643 x: *mut c_double_complex,
644 incx: c_int,
645 );
646 pub fn cblas_ztpmv(
647 layout: CBLAS_LAYOUT,
648 uplo: CBLAS_UPLO,
649 transa: CBLAS_TRANSPOSE,
650 diag: CBLAS_DIAG,
651 n: c_int,
652 ap: *const c_double_complex,
653 x: *mut c_double_complex,
654 incx: c_int,
655 );
656 pub fn cblas_ztrsv(
657 layout: CBLAS_LAYOUT,
658 uplo: CBLAS_UPLO,
659 transa: CBLAS_TRANSPOSE,
660 diag: CBLAS_DIAG,
661 n: c_int,
662 a: *const c_double_complex,
663 lda: c_int,
664 x: *mut c_double_complex,
665 incx: c_int,
666 );
667 pub fn cblas_ztbsv(
668 layout: CBLAS_LAYOUT,
669 uplo: CBLAS_UPLO,
670 transa: CBLAS_TRANSPOSE,
671 diag: CBLAS_DIAG,
672 n: c_int,
673 k: c_int,
674 a: *const c_double_complex,
675 lda: c_int,
676 x: *mut c_double_complex,
677 incx: c_int,
678 );
679 pub fn cblas_ztpsv(
680 layout: CBLAS_LAYOUT,
681 uplo: CBLAS_UPLO,
682 transa: CBLAS_TRANSPOSE,
683 diag: CBLAS_DIAG,
684 n: c_int,
685 ap: *const c_double_complex,
686 x: *mut c_double_complex,
687 incx: c_int,
688 );
689
690 pub fn cblas_ssymv(
692 layout: CBLAS_LAYOUT,
693 uplo: CBLAS_UPLO,
694 n: c_int,
695 alpha: c_float,
696 a: *const c_float,
697 lda: c_int,
698 x: *const c_float,
699 incx: c_int,
700 beta: c_float,
701 y: *mut c_float,
702 incy: c_int,
703 );
704 pub fn cblas_ssbmv(
705 layout: CBLAS_LAYOUT,
706 uplo: CBLAS_UPLO,
707 n: c_int,
708 k: c_int,
709 alpha: c_float,
710 a: *const c_float,
711 lda: c_int,
712 x: *const c_float,
713 incx: c_int,
714 beta: c_float,
715 y: *mut c_float,
716 incy: c_int,
717 );
718 pub fn cblas_sspmv(
719 layout: CBLAS_LAYOUT,
720 uplo: CBLAS_UPLO,
721 n: c_int,
722 alpha: c_float,
723 ap: *const c_float,
724 x: *const c_float,
725 incx: c_int,
726 beta: c_float,
727 y: *mut c_float,
728 incy: c_int,
729 );
730 pub fn cblas_sger(
731 layout: CBLAS_LAYOUT,
732 m: c_int,
733 n: c_int,
734 alpha: c_float,
735 x: *const c_float,
736 incx: c_int,
737 y: *const c_float,
738 incy: c_int,
739 a: *mut c_float,
740 lda: c_int,
741 );
742 pub fn cblas_ssyr(
743 layout: CBLAS_LAYOUT,
744 uplo: CBLAS_UPLO,
745 n: c_int,
746 alpha: c_float,
747 x: *const c_float,
748 incx: c_int,
749 a: *mut c_float,
750 lda: c_int,
751 );
752 pub fn cblas_sspr(
753 layout: CBLAS_LAYOUT,
754 uplo: CBLAS_UPLO,
755 n: c_int,
756 alpha: c_float,
757 x: *const c_float,
758 incx: c_int,
759 ap: *mut c_float,
760 );
761 pub fn cblas_ssyr2(
762 layout: CBLAS_LAYOUT,
763 uplo: CBLAS_UPLO,
764 n: c_int,
765 alpha: c_float,
766 x: *const c_float,
767 incx: c_int,
768 y: *const c_float,
769 incy: c_int,
770 a: *mut c_float,
771 lda: c_int,
772 );
773 pub fn cblas_sspr2(
774 layout: CBLAS_LAYOUT,
775 uplo: CBLAS_UPLO,
776 n: c_int,
777 alpha: c_float,
778 x: *const c_float,
779 incx: c_int,
780 y: *const c_float,
781 incy: c_int,
782 a: *mut c_float,
783 );
784
785 pub fn cblas_dsymv(
786 layout: CBLAS_LAYOUT,
787 uplo: CBLAS_UPLO,
788 n: c_int,
789 alpha: c_double,
790 a: *const c_double,
791 lda: c_int,
792 x: *const c_double,
793 incx: c_int,
794 beta: c_double,
795 y: *mut c_double,
796 incy: c_int,
797 );
798 pub fn cblas_dsbmv(
799 layout: CBLAS_LAYOUT,
800 uplo: CBLAS_UPLO,
801 n: c_int,
802 k: c_int,
803 alpha: c_double,
804 a: *const c_double,
805 lda: c_int,
806 x: *const c_double,
807 incx: c_int,
808 beta: c_double,
809 y: *mut c_double,
810 incy: c_int,
811 );
812 pub fn cblas_dspmv(
813 layout: CBLAS_LAYOUT,
814 uplo: CBLAS_UPLO,
815 n: c_int,
816 alpha: c_double,
817 ap: *const c_double,
818 x: *const c_double,
819 incx: c_int,
820 beta: c_double,
821 y: *mut c_double,
822 incy: c_int,
823 );
824 pub fn cblas_dger(
825 layout: CBLAS_LAYOUT,
826 m: c_int,
827 n: c_int,
828 alpha: c_double,
829 x: *const c_double,
830 incx: c_int,
831 y: *const c_double,
832 incy: c_int,
833 a: *mut c_double,
834 lda: c_int,
835 );
836 pub fn cblas_dsyr(
837 layout: CBLAS_LAYOUT,
838 uplo: CBLAS_UPLO,
839 n: c_int,
840 alpha: c_double,
841 x: *const c_double,
842 incx: c_int,
843 a: *mut c_double,
844 lda: c_int,
845 );
846 pub fn cblas_dspr(
847 layout: CBLAS_LAYOUT,
848 uplo: CBLAS_UPLO,
849 n: c_int,
850 alpha: c_double,
851 x: *const c_double,
852 incx: c_int,
853 ap: *mut c_double,
854 );
855 pub fn cblas_dsyr2(
856 layout: CBLAS_LAYOUT,
857 uplo: CBLAS_UPLO,
858 n: c_int,
859 alpha: c_double,
860 x: *const c_double,
861 incx: c_int,
862 y: *const c_double,
863 incy: c_int,
864 a: *mut c_double,
865 lda: c_int,
866 );
867 pub fn cblas_dspr2(
868 layout: CBLAS_LAYOUT,
869 uplo: CBLAS_UPLO,
870 n: c_int,
871 alpha: c_double,
872 x: *const c_double,
873 incx: c_int,
874 y: *const c_double,
875 incy: c_int,
876 a: *mut c_double,
877 );
878
879 pub fn cblas_chemv(
881 layout: CBLAS_LAYOUT,
882 uplo: CBLAS_UPLO,
883 n: c_int,
884 alpha: *const c_float_complex,
885 a: *const c_float_complex,
886 lda: c_int,
887 x: *const c_float_complex,
888 incx: c_int,
889 beta: *const c_float_complex,
890 y: *mut c_float_complex,
891 incy: c_int,
892 );
893 pub fn cblas_chbmv(
894 layout: CBLAS_LAYOUT,
895 uplo: CBLAS_UPLO,
896 n: c_int,
897 k: c_int,
898 alpha: *const c_float_complex,
899 a: *const c_float_complex,
900 lda: c_int,
901 x: *const c_float_complex,
902 incx: c_int,
903 beta: *const c_float_complex,
904 y: *mut c_float_complex,
905 incy: c_int,
906 );
907 pub fn cblas_chpmv(
908 layout: CBLAS_LAYOUT,
909 uplo: CBLAS_UPLO,
910 n: c_int,
911 alpha: *const c_float_complex,
912 ap: *const c_float_complex,
913 x: *const c_float_complex,
914 incx: c_int,
915 beta: *const c_float_complex,
916 y: *mut c_float_complex,
917 incy: c_int,
918 );
919 pub fn cblas_cgeru(
920 layout: CBLAS_LAYOUT,
921 m: c_int,
922 n: c_int,
923 alpha: *const c_float_complex,
924 x: *const c_float_complex,
925 incx: c_int,
926 y: *const c_float_complex,
927 incy: c_int,
928 a: *mut c_float_complex,
929 lda: c_int,
930 );
931 pub fn cblas_cgerc(
932 layout: CBLAS_LAYOUT,
933 m: c_int,
934 n: c_int,
935 alpha: *const c_float_complex,
936 x: *const c_float_complex,
937 incx: c_int,
938 y: *const c_float_complex,
939 incy: c_int,
940 a: *mut c_float_complex,
941 lda: c_int,
942 );
943 pub fn cblas_cher(
944 layout: CBLAS_LAYOUT,
945 uplo: CBLAS_UPLO,
946 n: c_int,
947 alpha: c_float,
948 x: *const c_float_complex,
949 incx: c_int,
950 a: *mut c_float_complex,
951 lda: c_int,
952 );
953 pub fn cblas_chpr(
954 layout: CBLAS_LAYOUT,
955 uplo: CBLAS_UPLO,
956 n: c_int,
957 alpha: c_float,
958 x: *const c_float_complex,
959 incx: c_int,
960 a: *mut c_float_complex,
961 );
962 pub fn cblas_cher2(
963 layout: CBLAS_LAYOUT,
964 uplo: CBLAS_UPLO,
965 n: c_int,
966 alpha: *const c_float_complex,
967 x: *const c_float_complex,
968 incx: c_int,
969 y: *const c_float_complex,
970 incy: c_int,
971 a: *mut c_float_complex,
972 lda: c_int,
973 );
974 pub fn cblas_chpr2(
975 layout: CBLAS_LAYOUT,
976 uplo: CBLAS_UPLO,
977 n: c_int,
978 alpha: *const c_float_complex,
979 x: *const c_float_complex,
980 incx: c_int,
981 y: *const c_float_complex,
982 incy: c_int,
983 ap: *mut c_float_complex,
984 );
985
986 pub fn cblas_zhemv(
987 layout: CBLAS_LAYOUT,
988 uplo: CBLAS_UPLO,
989 n: c_int,
990 alpha: *const c_double_complex,
991 a: *const c_double_complex,
992 lda: c_int,
993 x: *const c_double_complex,
994 incx: c_int,
995 beta: *const c_double_complex,
996 y: *mut c_double_complex,
997 incy: c_int,
998 );
999 pub fn cblas_zhbmv(
1000 layout: CBLAS_LAYOUT,
1001 uplo: CBLAS_UPLO,
1002 n: c_int,
1003 k: c_int,
1004 alpha: *const c_double_complex,
1005 a: *const c_double_complex,
1006 lda: c_int,
1007 x: *const c_double_complex,
1008 incx: c_int,
1009 beta: *const c_double_complex,
1010 y: *mut c_double_complex,
1011 incy: c_int,
1012 );
1013 pub fn cblas_zhpmv(
1014 layout: CBLAS_LAYOUT,
1015 uplo: CBLAS_UPLO,
1016 n: c_int,
1017 alpha: *const c_double_complex,
1018 ap: *const c_double_complex,
1019 x: *const c_double_complex,
1020 incx: c_int,
1021 beta: *const c_double_complex,
1022 y: *mut c_double_complex,
1023 incy: c_int,
1024 );
1025 pub fn cblas_zgeru(
1026 layout: CBLAS_LAYOUT,
1027 m: c_int,
1028 n: c_int,
1029 alpha: *const c_double_complex,
1030 x: *const c_double_complex,
1031 incx: c_int,
1032 y: *const c_double_complex,
1033 incy: c_int,
1034 a: *mut c_double_complex,
1035 lda: c_int,
1036 );
1037 pub fn cblas_zgerc(
1038 layout: CBLAS_LAYOUT,
1039 m: c_int,
1040 n: c_int,
1041 alpha: *const c_double_complex,
1042 x: *const c_double_complex,
1043 incx: c_int,
1044 y: *const c_double_complex,
1045 incy: c_int,
1046 a: *mut c_double_complex,
1047 lda: c_int,
1048 );
1049 pub fn cblas_zher(
1050 layout: CBLAS_LAYOUT,
1051 uplo: CBLAS_UPLO,
1052 n: c_int,
1053 alpha: c_double,
1054 x: *const c_double_complex,
1055 incx: c_int,
1056 a: *mut c_double_complex,
1057 lda: c_int,
1058 );
1059 pub fn cblas_zhpr(
1060 layout: CBLAS_LAYOUT,
1061 uplo: CBLAS_UPLO,
1062 n: c_int,
1063 alpha: c_double,
1064 x: *const c_double_complex,
1065 incx: c_int,
1066 a: *mut c_double_complex,
1067 );
1068 pub fn cblas_zher2(
1069 layout: CBLAS_LAYOUT,
1070 uplo: CBLAS_UPLO,
1071 n: c_int,
1072 alpha: *const c_double_complex,
1073 x: *const c_double_complex,
1074 incx: c_int,
1075 y: *const c_double_complex,
1076 incy: c_int,
1077 a: *mut c_double_complex,
1078 lda: c_int,
1079 );
1080 pub fn cblas_zhpr2(
1081 layout: CBLAS_LAYOUT,
1082 uplo: CBLAS_UPLO,
1083 n: c_int,
1084 alpha: *const c_double_complex,
1085 x: *const c_double_complex,
1086 incx: c_int,
1087 y: *const c_double_complex,
1088 incy: c_int,
1089 ap: *mut c_double_complex,
1090 );
1091}
1092
1093extern "C" {
1095 pub fn cblas_sgemm(
1097 layout: CBLAS_LAYOUT,
1098 transa: CBLAS_TRANSPOSE,
1099 transb: CBLAS_TRANSPOSE,
1100 m: c_int,
1101 n: c_int,
1102 k: c_int,
1103 alpha: c_float,
1104 a: *const c_float,
1105 lda: c_int,
1106 b: *const c_float,
1107 ldb: c_int,
1108 beta: c_float,
1109 c: *mut c_float,
1110 ldc: c_int,
1111 );
1112 pub fn cblas_ssymm(
1113 layout: CBLAS_LAYOUT,
1114 side: CBLAS_SIDE,
1115 uplo: CBLAS_UPLO,
1116 m: c_int,
1117 n: c_int,
1118 alpha: c_float,
1119 a: *const c_float,
1120 lda: c_int,
1121 b: *const c_float,
1122 ldb: c_int,
1123 beta: c_float,
1124 c: *mut c_float,
1125 ldc: c_int,
1126 );
1127 pub fn cblas_ssyrk(
1128 layout: CBLAS_LAYOUT,
1129 uplo: CBLAS_UPLO,
1130 trans: CBLAS_TRANSPOSE,
1131 n: c_int,
1132 k: c_int,
1133 alpha: c_float,
1134 a: *const c_float,
1135 lda: c_int,
1136 beta: c_float,
1137 c: *mut c_float,
1138 ldc: c_int,
1139 );
1140 pub fn cblas_ssyr2k(
1141 layout: CBLAS_LAYOUT,
1142 uplo: CBLAS_UPLO,
1143 trans: CBLAS_TRANSPOSE,
1144 n: c_int,
1145 k: c_int,
1146 alpha: c_float,
1147 a: *const c_float,
1148 lda: c_int,
1149 b: *const c_float,
1150 ldb: c_int,
1151 beta: c_float,
1152 c: *mut c_float,
1153 ldc: c_int,
1154 );
1155 pub fn cblas_strmm(
1156 layout: CBLAS_LAYOUT,
1157 side: CBLAS_SIDE,
1158 uplo: CBLAS_UPLO,
1159 transa: CBLAS_TRANSPOSE,
1160 diag: CBLAS_DIAG,
1161 m: c_int,
1162 n: c_int,
1163 alpha: c_float,
1164 a: *const c_float,
1165 lda: c_int,
1166 b: *mut c_float,
1167 ldb: c_int,
1168 );
1169 pub fn cblas_strsm(
1170 layout: CBLAS_LAYOUT,
1171 side: CBLAS_SIDE,
1172 uplo: CBLAS_UPLO,
1173 transa: CBLAS_TRANSPOSE,
1174 diag: CBLAS_DIAG,
1175 m: c_int,
1176 n: c_int,
1177 alpha: c_float,
1178 a: *const c_float,
1179 lda: c_int,
1180 b: *mut c_float,
1181 ldb: c_int,
1182 );
1183
1184 pub fn cblas_dgemm(
1185 layout: CBLAS_LAYOUT,
1186 transa: CBLAS_TRANSPOSE,
1187 transb: CBLAS_TRANSPOSE,
1188 m: c_int,
1189 n: c_int,
1190 k: c_int,
1191 alpha: c_double,
1192 a: *const c_double,
1193 lda: c_int,
1194 b: *const c_double,
1195 ldb: c_int,
1196 beta: c_double,
1197 c: *mut c_double,
1198 ldc: c_int,
1199 );
1200 pub fn cblas_dsymm(
1201 layout: CBLAS_LAYOUT,
1202 side: CBLAS_SIDE,
1203 uplo: CBLAS_UPLO,
1204 m: c_int,
1205 n: c_int,
1206 alpha: c_double,
1207 a: *const c_double,
1208 lda: c_int,
1209 b: *const c_double,
1210 ldb: c_int,
1211 beta: c_double,
1212 c: *mut c_double,
1213 ldc: c_int,
1214 );
1215 pub fn cblas_dsyrk(
1216 layout: CBLAS_LAYOUT,
1217 uplo: CBLAS_UPLO,
1218 trans: CBLAS_TRANSPOSE,
1219 n: c_int,
1220 k: c_int,
1221 alpha: c_double,
1222 a: *const c_double,
1223 lda: c_int,
1224 beta: c_double,
1225 c: *mut c_double,
1226 ldc: c_int,
1227 );
1228 pub fn cblas_dsyr2k(
1229 layout: CBLAS_LAYOUT,
1230 uplo: CBLAS_UPLO,
1231 trans: CBLAS_TRANSPOSE,
1232 n: c_int,
1233 k: c_int,
1234 alpha: c_double,
1235 a: *const c_double,
1236 lda: c_int,
1237 b: *const c_double,
1238 ldb: c_int,
1239 beta: c_double,
1240 c: *mut c_double,
1241 ldc: c_int,
1242 );
1243 pub fn cblas_dtrmm(
1244 layout: CBLAS_LAYOUT,
1245 side: CBLAS_SIDE,
1246 uplo: CBLAS_UPLO,
1247 transa: CBLAS_TRANSPOSE,
1248 diag: CBLAS_DIAG,
1249 m: c_int,
1250 n: c_int,
1251 alpha: c_double,
1252 a: *const c_double,
1253 lda: c_int,
1254 b: *mut c_double,
1255 ldb: c_int,
1256 );
1257 pub fn cblas_dtrsm(
1258 layout: CBLAS_LAYOUT,
1259 side: CBLAS_SIDE,
1260 uplo: CBLAS_UPLO,
1261 transa: CBLAS_TRANSPOSE,
1262 diag: CBLAS_DIAG,
1263 m: c_int,
1264 n: c_int,
1265 alpha: c_double,
1266 a: *const c_double,
1267 lda: c_int,
1268 b: *mut c_double,
1269 ldb: c_int,
1270 );
1271
1272 pub fn cblas_cgemm(
1273 layout: CBLAS_LAYOUT,
1274 transa: CBLAS_TRANSPOSE,
1275 transb: CBLAS_TRANSPOSE,
1276 m: c_int,
1277 n: c_int,
1278 k: c_int,
1279 alpha: *const c_float_complex,
1280 a: *const c_float_complex,
1281 lda: c_int,
1282 b: *const c_float_complex,
1283 ldb: c_int,
1284 beta: *const c_float_complex,
1285 c: *mut c_float_complex,
1286 ldc: c_int,
1287 );
1288 pub fn cblas_csymm(
1289 layout: CBLAS_LAYOUT,
1290 side: CBLAS_SIDE,
1291 uplo: CBLAS_UPLO,
1292 m: c_int,
1293 n: c_int,
1294 alpha: *const c_float_complex,
1295 a: *const c_float_complex,
1296 lda: c_int,
1297 b: *const c_float_complex,
1298 ldb: c_int,
1299 beta: *const c_float_complex,
1300 c: *mut c_float_complex,
1301 ldc: c_int,
1302 );
1303 pub fn cblas_csyrk(
1304 layout: CBLAS_LAYOUT,
1305 uplo: CBLAS_UPLO,
1306 trans: CBLAS_TRANSPOSE,
1307 n: c_int,
1308 k: c_int,
1309 alpha: *const c_float_complex,
1310 a: *const c_float_complex,
1311 lda: c_int,
1312 beta: *const c_float_complex,
1313 c: *mut c_float_complex,
1314 ldc: c_int,
1315 );
1316 pub fn cblas_csyr2k(
1317 layout: CBLAS_LAYOUT,
1318 uplo: CBLAS_UPLO,
1319 trans: CBLAS_TRANSPOSE,
1320 n: c_int,
1321 k: c_int,
1322 alpha: *const c_float_complex,
1323 a: *const c_float_complex,
1324 lda: c_int,
1325 b: *const c_float_complex,
1326 ldb: c_int,
1327 beta: *const c_float_complex,
1328 c: *mut c_float_complex,
1329 ldc: c_int,
1330 );
1331 pub fn cblas_ctrmm(
1332 layout: CBLAS_LAYOUT,
1333 side: CBLAS_SIDE,
1334 uplo: CBLAS_UPLO,
1335 transa: CBLAS_TRANSPOSE,
1336 diag: CBLAS_DIAG,
1337 m: c_int,
1338 n: c_int,
1339 alpha: *const c_float_complex,
1340 a: *const c_float_complex,
1341 lda: c_int,
1342 b: *mut c_float_complex,
1343 ldb: c_int,
1344 );
1345 pub fn cblas_ctrsm(
1346 layout: CBLAS_LAYOUT,
1347 side: CBLAS_SIDE,
1348 uplo: CBLAS_UPLO,
1349 transa: CBLAS_TRANSPOSE,
1350 diag: CBLAS_DIAG,
1351 m: c_int,
1352 n: c_int,
1353 alpha: *const c_float_complex,
1354 a: *const c_float_complex,
1355 lda: c_int,
1356 b: *mut c_float_complex,
1357 ldb: c_int,
1358 );
1359
1360 pub fn cblas_zgemm(
1361 layout: CBLAS_LAYOUT,
1362 transa: CBLAS_TRANSPOSE,
1363 transb: CBLAS_TRANSPOSE,
1364 m: c_int,
1365 n: c_int,
1366 k: c_int,
1367 alpha: *const c_double_complex,
1368 a: *const c_double_complex,
1369 lda: c_int,
1370 b: *const c_double_complex,
1371 ldb: c_int,
1372 beta: *const c_double_complex,
1373 c: *mut c_double_complex,
1374 ldc: c_int,
1375 );
1376 pub fn cblas_zsymm(
1377 layout: CBLAS_LAYOUT,
1378 side: CBLAS_SIDE,
1379 uplo: CBLAS_UPLO,
1380 m: c_int,
1381 n: c_int,
1382 alpha: *const c_double_complex,
1383 a: *const c_double_complex,
1384 lda: c_int,
1385 b: *const c_double_complex,
1386 ldb: c_int,
1387 beta: *const c_double_complex,
1388 c: *mut c_double_complex,
1389 ldc: c_int,
1390 );
1391 pub fn cblas_zsyrk(
1392 layout: CBLAS_LAYOUT,
1393 uplo: CBLAS_UPLO,
1394 trans: CBLAS_TRANSPOSE,
1395 n: c_int,
1396 k: c_int,
1397 alpha: *const c_double_complex,
1398 a: *const c_double_complex,
1399 lda: c_int,
1400 beta: *const c_double_complex,
1401 c: *mut c_double_complex,
1402 ldc: c_int,
1403 );
1404 pub fn cblas_zsyr2k(
1405 layout: CBLAS_LAYOUT,
1406 uplo: CBLAS_UPLO,
1407 trans: CBLAS_TRANSPOSE,
1408 n: c_int,
1409 k: c_int,
1410 alpha: *const c_double_complex,
1411 a: *const c_double_complex,
1412 lda: c_int,
1413 b: *const c_double_complex,
1414 ldb: c_int,
1415 beta: *const c_double_complex,
1416 c: *mut c_double_complex,
1417 ldc: c_int,
1418 );
1419 pub fn cblas_ztrmm(
1420 layout: CBLAS_LAYOUT,
1421 side: CBLAS_SIDE,
1422 uplo: CBLAS_UPLO,
1423 transa: CBLAS_TRANSPOSE,
1424 diag: CBLAS_DIAG,
1425 m: c_int,
1426 n: c_int,
1427 alpha: *const c_double_complex,
1428 a: *const c_double_complex,
1429 lda: c_int,
1430 b: *mut c_double_complex,
1431 ldb: c_int,
1432 );
1433 pub fn cblas_ztrsm(
1434 layout: CBLAS_LAYOUT,
1435 side: CBLAS_SIDE,
1436 uplo: CBLAS_UPLO,
1437 transa: CBLAS_TRANSPOSE,
1438 diag: CBLAS_DIAG,
1439 m: c_int,
1440 n: c_int,
1441 alpha: *const c_double_complex,
1442 a: *const c_double_complex,
1443 lda: c_int,
1444 b: *mut c_double_complex,
1445 ldb: c_int,
1446 );
1447
1448 pub fn cblas_chemm(
1450 layout: CBLAS_LAYOUT,
1451 side: CBLAS_SIDE,
1452 uplo: CBLAS_UPLO,
1453 m: c_int,
1454 n: c_int,
1455 alpha: *const c_float_complex,
1456 a: *const c_float_complex,
1457 lda: c_int,
1458 b: *const c_float_complex,
1459 ldb: c_int,
1460 beta: *const c_float_complex,
1461 c: *mut c_float_complex,
1462 ldc: c_int,
1463 );
1464 pub fn cblas_cherk(
1465 layout: CBLAS_LAYOUT,
1466 uplo: CBLAS_UPLO,
1467 trans: CBLAS_TRANSPOSE,
1468 n: c_int,
1469 k: c_int,
1470 alpha: c_float,
1471 a: *const c_float_complex,
1472 lda: c_int,
1473 beta: c_float,
1474 c: *mut c_float_complex,
1475 ldc: c_int,
1476 );
1477 pub fn cblas_cher2k(
1478 layout: CBLAS_LAYOUT,
1479 uplo: CBLAS_UPLO,
1480 trans: CBLAS_TRANSPOSE,
1481 n: c_int,
1482 k: c_int,
1483 alpha: *const c_float_complex,
1484 a: *const c_float_complex,
1485 lda: c_int,
1486 b: *const c_float_complex,
1487 ldb: c_int,
1488 beta: c_float,
1489 c: *mut c_float_complex,
1490 ldc: c_int,
1491 );
1492
1493 pub fn cblas_zhemm(
1494 layout: CBLAS_LAYOUT,
1495 side: CBLAS_SIDE,
1496 uplo: CBLAS_UPLO,
1497 m: c_int,
1498 n: c_int,
1499 alpha: *const c_double_complex,
1500 a: *const c_double_complex,
1501 lda: c_int,
1502 b: *const c_double_complex,
1503 ldb: c_int,
1504 beta: *const c_double_complex,
1505 c: *mut c_double_complex,
1506 ldc: c_int,
1507 );
1508 pub fn cblas_zherk(
1509 layout: CBLAS_LAYOUT,
1510 uplo: CBLAS_UPLO,
1511 trans: CBLAS_TRANSPOSE,
1512 n: c_int,
1513 k: c_int,
1514 alpha: c_double,
1515 a: *const c_double_complex,
1516 lda: c_int,
1517 beta: c_double,
1518 c: *mut c_double_complex,
1519 ldc: c_int,
1520 );
1521 pub fn cblas_zher2k(
1522 layout: CBLAS_LAYOUT,
1523 uplo: CBLAS_UPLO,
1524 trans: CBLAS_TRANSPOSE,
1525 n: c_int,
1526 k: c_int,
1527 alpha: *const c_double_complex,
1528 a: *const c_double_complex,
1529 lda: c_int,
1530 b: *const c_double_complex,
1531 ldb: c_int,
1532 beta: c_double,
1533 c: *mut c_double_complex,
1534 ldc: c_int,
1535 );
1536}
1537
1538extern "C" {
1539 pub fn cblas_xerbla(p: c_int, rout: *const c_char, form: *const c_char, ...);
1540}