gorgonia.org/gorgonia@v0.9.17/blase/fn.go (about) 1 package blase 2 3 /* 4 #include "work.h" 5 #include "cblas.h" 6 */ 7 import "C" 8 9 import "unsafe" 10 11 type fnargs struct { 12 fn C.cblasFn 13 14 // things common to most BLAS routines 15 order C.cblas_order 16 tA C.cblas_transpose 17 tB C.cblas_transpose 18 19 // things that needs to be passed to C in a very unsafe manner 20 a0 uintptr 21 a1 uintptr 22 a2 uintptr 23 a3 uintptr 24 25 // any integer parameters 26 i0 C.int 27 i1 C.int 28 i2 C.int 29 i3 C.int 30 i4 C.int 31 i5 C.int 32 33 // any float64 parameters 34 d0 C.double 35 d1 C.double 36 d2 C.double 37 d3 C.double 38 } 39 40 func (fn *fnargs) toCStruct() C.struct_fnargs { 41 return *(*C.struct_fnargs)(unsafe.Pointer(fn)) 42 } 43 44 type blasFn int 45 46 const ( 47 fn_undefined blasFn = iota 48 49 fn_cblas_cdotu_sub 50 fn_cblas_cdotc_sub 51 fn_cblas_zdotu_sub 52 fn_cblas_zdotc_sub 53 fn_cblas_sswap 54 fn_cblas_scopy 55 fn_cblas_saxpy 56 fn_catlas_saxpby 57 fn_cblas_dswap 58 fn_cblas_dcopy 59 fn_cblas_daxpy 60 fn_catlas_daxpby 61 fn_cblas_cswap 62 fn_cblas_ccopy 63 fn_cblas_caxpy 64 fn_catlas_caxpby 65 fn_cblas_zswap 66 fn_cblas_zcopy 67 fn_cblas_zaxpy 68 fn_catlas_zaxpby 69 fn_cblas_srotg 70 fn_cblas_srotmg 71 fn_cblas_srot 72 fn_cblas_srotm 73 fn_cblas_drotg 74 fn_cblas_drotmg 75 fn_cblas_drot 76 fn_cblas_drotm 77 fn_cblas_sscal 78 fn_cblas_dscal 79 fn_cblas_cscal 80 fn_cblas_zscal 81 fn_cblas_csscal 82 fn_cblas_zdscal 83 fn_cblas_crotg 84 fn_cblas_zrotg 85 fn_cblas_csrot 86 fn_cblas_zdrot 87 fn_cblas_sgemv 88 fn_cblas_sgbmv 89 fn_cblas_strmv 90 fn_cblas_stbmv 91 fn_cblas_stpmv 92 fn_cblas_strsv 93 fn_cblas_stbsv 94 fn_cblas_stpsv 95 fn_cblas_dgemv 96 fn_cblas_dgbmv 97 fn_cblas_dtrmv 98 fn_cblas_dtbmv 99 fn_cblas_dtpmv 100 fn_cblas_dtrsv 101 fn_cblas_dtbsv 102 fn_cblas_dtpsv 103 fn_cblas_cgemv 104 fn_cblas_cgbmv 105 fn_cblas_ctrmv 106 fn_cblas_ctbmv 107 fn_cblas_ctpmv 108 fn_cblas_ctrsv 109 fn_cblas_ctbsv 110 fn_cblas_ctpsv 111 fn_cblas_zgemv 112 fn_cblas_zgbmv 113 fn_cblas_ztrmv 114 fn_cblas_ztbmv 115 fn_cblas_ztpmv 116 fn_cblas_ztrsv 117 fn_cblas_ztbsv 118 fn_cblas_ztpsv 119 fn_cblas_ssymv 120 fn_cblas_ssbmv 121 fn_cblas_sspmv 122 fn_cblas_sger 123 fn_cblas_ssyr 124 fn_cblas_sspr 125 fn_cblas_ssyr2 126 fn_cblas_sspr2 127 fn_cblas_dsymv 128 fn_cblas_dsbmv 129 fn_cblas_dspmv 130 fn_cblas_dger 131 fn_cblas_dsyr 132 fn_cblas_dspr 133 fn_cblas_dsyr2 134 fn_cblas_dspr2 135 fn_cblas_chemv 136 fn_cblas_chbmv 137 fn_cblas_chpmv 138 fn_cblas_cgeru 139 fn_cblas_cgerc 140 fn_cblas_cher 141 fn_cblas_chpr 142 fn_cblas_cher2 143 fn_cblas_chpr2 144 fn_cblas_zhemv 145 fn_cblas_zhbmv 146 fn_cblas_zhpmv 147 fn_cblas_zgeru 148 fn_cblas_zgerc 149 fn_cblas_zher 150 fn_cblas_zhpr 151 fn_cblas_zher2 152 fn_cblas_zhpr2 153 fn_cblas_sgemm 154 fn_cblas_ssymm 155 fn_cblas_ssyrk 156 fn_cblas_ssyr2k 157 fn_cblas_strmm 158 fn_cblas_strsm 159 fn_cblas_dgemm 160 fn_cblas_dsymm 161 fn_cblas_dsyrk 162 fn_cblas_dsyr2k 163 fn_cblas_dtrmm 164 fn_cblas_dtrsm 165 fn_cblas_cgemm 166 fn_cblas_csymm 167 fn_cblas_csyrk 168 fn_cblas_csyr2k 169 fn_cblas_ctrmm 170 fn_cblas_ctrsm 171 fn_cblas_zgemm 172 fn_cblas_zsymm 173 fn_cblas_zsyrk 174 fn_cblas_zsyr2k 175 fn_cblas_ztrmm 176 fn_cblas_ztrsm 177 fn_cblas_chemm 178 fn_cblas_cherk 179 fn_cblas_cher2k 180 fn_cblas_zhemm 181 fn_cblas_zherk 182 fn_cblas_zher2k 183 )