矩阵与矩阵的乘法,分为双精度的cblas_sgemm和单精度的cblas_sgemm,两个函数的参数意义一样,只是类型不一样
运算式:C=alpha*A*B+beta*C
一般取alpha=1.0,beta=0.0 即计算式:C=A*B
cblas_sgemm(CblasRowMajor, CblasNoTrans,CblasNoTrans,M,N,K,alpha,A,A的列数,B,B的列数,beta,C,C的列数)
CblasRowMajor表示数组时行为主,相应矩阵大小为(M*K)乘以(K*N),可以得到M,K,N的值
前面的CblasNoTrans表示A是否转置,后面表示B是否转置,即可以表示A(T)*B=C或者A*B(T)=C或者A(T)*B(T)=C,如果是A的转置乘以B,M,N是A的转置的行数和列数
cblas_sgemm(CblasRowMajor, CblasNoTrans,CblasNoTrans,M,N,K,alpha,A,A的列数,B,B的列数,beta,C,C的列数)
矩阵与向量的乘法,同样有两个cblas_sgemv和cblas_dgemv
运算式:C=alpha*A*b+beta*C
一般取alpha=1.0,beta=0.0 即计算式:C=A*b
cblas_sgemv(CblasRowMajor, CblasNoTrans,A的行数,A的列数,alpha,A,A的列数,b,1,beta,C,1)
如果是A的转置*b,用
cblas_sgemv(CblasRowMajor, CblasTrans,A的行数,A的列数,alpha,A,A的列数,b,1,beta,C,1)