| 159 | } |
| 160 | |
| 161 | CBLAS_TRANSPOSE |
| 162 | toCblasTranspose(af_mat_prop opt) { |
| 163 | CBLAS_TRANSPOSE out = CblasNoTrans; |
| 164 | switch (opt) { |
| 165 | case AF_MAT_NONE: out = CblasNoTrans; break; |
| 166 | case AF_MAT_TRANS: out = CblasTrans; break; |
| 167 | case AF_MAT_CTRANS: out = CblasConjTrans; break; |
| 168 | default: AF_ERROR("INVALID af_mat_prop", AF_ERR_ARG); |
| 169 | } |
| 170 | return out; |
| 171 | } |
| 172 | |
| 173 | template<typename T> |
| 174 | void gemm(Array<T> &out, af_mat_prop optLhs, af_mat_prop optRhs, const T *alpha, |