1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
#![allow(non_camel_case_types)] #![allow(non_upper_case_globals)] use std::os::raw::{c_int}; pub const CblasRowMajor: CBLAS_ORDER = 101; pub const CblasColMajor: CBLAS_ORDER = 102; pub type CBLAS_ORDER = c_int; pub const CblasNoTrans: CBLAS_TRANSPOSE = 111; pub const CblasTrans: CBLAS_TRANSPOSE = 112; pub const CblasConjTrans: CBLAS_TRANSPOSE = 113; pub type CBLAS_TRANSPOSE = c_int; pub const CblasUpper: CBLAS_UPLO = 121; pub const CblasLower: CBLAS_UPLO = 122; pub type CBLAS_UPLO = c_int; pub const CblasNonUnit: CBLAS_DIAG = 131; pub const CblasUnit: CBLAS_DIAG = 132; pub type CBLAS_DIAG = c_int; pub const CblasLeft: CBLAS_SIDE = 141; pub const CblasRight: CBLAS_SIDE = 142; pub type CBLAS_SIDE = c_int; extern "C" { pub fn cblas_sasum( N: c_int, X: *const f32, incX: c_int) -> f32; pub fn cblas_saxpy( N: c_int, alpha: f32, X: *const f32, incX: c_int, Y: *mut f32, incY: c_int); pub fn cblas_scopy( N: c_int, X: *const f32, incX: c_int, Y: *mut f32, incY: c_int); pub fn cblas_sdot( N: c_int, X: *const f32, incX: c_int, Y: *const f32, incY: c_int) -> f32; pub fn cblas_snrm2( N: c_int, X: *const f32, incX: c_int) -> f32; pub fn cblas_sscal( N: c_int, alpha: f32, X: *mut f32, incX: c_int); pub fn cblas_sgemv( Order: CBLAS_ORDER, TransA: CBLAS_TRANSPOSE, M: c_int, N: c_int, alpha: f32, A: *const f32, lda: c_int, X: *const f32, incX: c_int, beta: f32, Y: *mut f32, incY: c_int); pub fn cblas_sgemm( Order: CBLAS_ORDER, TransA: CBLAS_TRANSPOSE, TransB: CBLAS_TRANSPOSE, M: c_int, N: c_int, K: c_int, alpha: f32, A: *const f32, lda: c_int, B: *const f32, ldb: c_int, beta: f32, C: *mut f32, ldc: c_int); pub fn cblas_dasum( N: c_int, X: *const f64, incX: c_int) -> f64; pub fn cblas_daxpy( N: c_int, alpha: f64, X: *const f64, incX: c_int, Y: *mut f64, incY: c_int); pub fn cblas_dcopy( N: c_int, X: *const f64, incX: c_int, Y: *mut f64, incY: c_int); pub fn cblas_ddot( N: c_int, X: *const f64, incX: c_int, Y: *const f64, incY: c_int) -> f64; pub fn cblas_dnrm2( N: c_int, X: *const f64, incX: c_int) -> f64; pub fn cblas_dscal( N: c_int, alpha: f64, X: *mut f64, incX: c_int); pub fn cblas_dgemv( Order: CBLAS_ORDER, TransA: CBLAS_TRANSPOSE, M: c_int, N: c_int, alpha: f64, A: *const f64, lda: c_int, X: *const f64, incX: c_int, beta: f64, Y: *mut f64, incY: c_int); pub fn cblas_dgemm( Order: CBLAS_ORDER, TransA: CBLAS_TRANSPOSE, TransB: CBLAS_TRANSPOSE, M: c_int, N: c_int, K: c_int, alpha: f64, A: *const f64, lda: c_int, B: *const f64, ldb: c_int, beta: f64, C: *mut f64, ldc: c_int); }