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