Say I want to calculate x^T * Y, x is an n by 1 matrix and Y is an n by n matrix:
cblas_dgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_TRANSPOSE TransB, const blasint M, const blasint N, const blasint K, const double alpha, const double *A, const blasint lda, const double *B, const blasint ldb, const double beta, double *C, const blasint ldc)
Would calling the function with TransA=CblasTrans and TransB=CblasNoTrans calculate x^T * Y instead of x * Y? How does setting TransA or TransB as CblasTrans affect the values of M, N, K? To my understanding, M is the number of rows of A, N is the number of columns of B and K is the number of rows of B and columns of A. Should I pass the dimensions of the original matrices(M=n, N=n, K= should it be 1 or n?), or the dimensions of the transposed matrix(M=1, N=n, K=n) when setting TransA or TransB as CblasTrans?