1、卷积
1.1、函数原型
cblas_sgemm(order,transA,transB,M,N,K,alpha,A,lda,B,ldb,beta,C,ldc);
1.2、函数作用
C=alphaAB+beta*C ,当alpha =1,beta =0 的情况下,等于两个矩阵相乘。
1.3、函数参数说明
参数1: 设置数据在内存中如何存储,ClasRowMajow 按行存储,ClasColMajow 按列存储,一般用ClasRowMajow。
参数2:CblasTrans矩阵A转置,CblasNoTrans矩阵A不转置。
参数3:CblasTrans矩阵B转置,CblasNoTrans矩阵C不转置。
参数4:表示 A或C的行数。如果A转置,则表示转置后的行数
参数5:表示 B或C的列数。如果B转置,则表示转置后的列数。
参数6:表示 A的列数或B的行数(A的列数=B的行数)。如果A转置,则表示转置后的列数。
参数7:矩阵A*B的系数。
参数8:矩阵A。
参数9:表示A的列数,与转置与否无关。
参数10:矩阵B。
参数11:表示B的列数,与转置与否无关。
参数12:矩阵C的系数。
参数13:矩阵C。
参数11:始终等于参数6。
1.4、复数求卷积
cblas_cgemm(order,transA,transB,M,N,K,alpha,A,lda,B,ldb,beta,C,ldc);
当alpha[2] ={1.0,10},beta[2] = {0.0,0.0}时,为复数相乘。
2、求和
2.1、函数原型
sum = cblas_sasum(N,X,INCX);
2.2、函数作用
float sum = 0;
for (int i =0;i<N*INCX;i+=INCX)
{
sum= sum + *(X+i);
}
求向量指定长度的和。
2.3、函数参数说明
参数1:求和元素长度
参数2:向量X
参数3:步长
返回值:和结果
3、数乘
3.1、函数原型
cblas_saxpy(N, alpha, X, incx, Y, incy);
3.2、函数作用
//Y=alpha * X + Y
for (int i =0;i<N*incx;i+=incx)
{
*(Y+i*incy) = *(X+i) * alpha + *(Y+i*incy);
}
3.3、函数参数说明
参数1:向量元素个数
参数2:标量
参数3:向量X
参数4:向量X的步长
参数5:向量Y(数乘结果输出存储位置)
参数6:向量Y的步长
4、数乘求和
4.1、函数原型
cblas_saxpby(N, alpha, X, incx, beta, Y, incy);
4.2、函数作用
//Y=alpha * X + beta * Y
for (int i =0;i<N*incx;i++incx)
{
*(Y+i*incy) = *(X+i) * alpha + *(Y+i*incy) * beta;
}
4.3、函数参数说明
参数1:向量元素个数
参数2:标量
参数3:向量X
参数4:向量X的步长
参数5:标量
参数6:向量Y(第二个数乘向量及结果输出存储位置)
参数6:向量Y的步长
5、绝对值
5.1、函数原型
vcAbs(N, X, Y);
5.2、函数作用
#include <math.h>
//Y = |X|
for (int i =0;i<N;i++)
{
*(Y+i) = sqrt(*(X+i) * *(X+i));
}
5.3、函数参数说明
参数1:向量元素个数
参数2:向量
参数3:输出结果存储位置
6、向量取大
6.1、函数原型
vsMaxMag(N, X, Y, Z);
6.2、函数作用
for (int i =0;i<N;i++)
{
*(Z+i) = (*(X+i) > *(Y+i) ? *(X+i) : *(Y+i));
}
6.3、函数参数说明
参数1:向量元素个数
参数2:向量1
参数3:向量2
参数4:结果存储位置
7、点乘
7.1、函数原型
vsMul(N, A, B, C);
7.2、函数作用
for (int i =0;i<N;i++)
{
*(Z+i) = *(X+i) * *(Y+i);
}
7.3、函数参数说明
参数1:向量元素个数
参数2:向量1
参数3:向量2
参数4:输出结果存储位置
8、转置
7.1、函数原型
MKL_Simatcopy('R', 'T', cols, rows, 1, data, rows, cols);
7.2、函数作用
void swap(int &a,int &b)
{
a=a^b;
b=a^b;
a=a^b;
}
void matrix_transpose(int m[N][N])
{
int i,j;
for(i=1;i<N;i++)
{
for(j=0;j<i;j++)
swap(m[i][j],m[j][i]);
}
}
7.3、函数参数说明
参数1:默认’R’
参数2:代表转置
参数3:原矩阵行数
参数4:原矩阵列数
参数5:步长
参数6:矩阵
参数7:新矩阵行
参数8:新矩阵列数