目录
一、BLAS例程
1、BLAS 1级例程 (矢量操作)
2、BLAS 2级例程 (矩阵向量操作)
2、BLAS 3级例程 (矩阵-矩阵运算)
二、稀疏BLAS例程
1、稀疏的BLAS 1级例程(向量-向量运算)
2、稀疏BLAS级别2例程和级别3的例程(矩阵向量和矩阵矩阵运算)
三、稀疏QR
四、LAPACK例程
五、稀疏求解器例程
六、扩展的本征求解程序
七、虚拟机功能
八、统计功能
九、傅里叶变换函数
十、偏微分方程支持
一、BLAS例程
BLAS例程和函数根据它们执行的操作分为以下几组:
- BLAS 1级例程 对数据向量执行加法和归约运算。典型的操作包括缩放和点积。
- BLAS 2级例程 执行矩阵矢量运算,例如矩阵矢量乘法,秩1和秩2矩阵更新以及三角系统的解。
- BLAS 3级例程 执行矩阵矩阵运算,例如矩阵矩阵乘法,秩k更新和三角系统求解。
注意,参数类型:
符号 | 描述 |
---|---|
s | 单精度实数 |
c | 单精度复数 |
d | 双精度实数 |
z | 双精度复数 |
更多具体的看后面文章。
1、BLAS 1级例程 (矢量操作)
函数形式
|
参数类型(?位置)
|
描述
|
---|---|---|
cblas_?asum
|
s,d,sc,dz
|
向量幅度之和(函数)
|
cblas_?axpy
|
s,d,c,z
|
标量向量乘积(例程)
|
cblas_?copy
|
s,d,c,z
|
复制向量(例程)
|
cblas_?dot
|
d
|
点积(功能)
|
cblas_?sdot
|
d,d
|
点精度为双精度(功能)
|
cblas_?dotc
|
c,z
|
点积共轭(函数)
|
cblas_?dotu
|
c,z
|
点积未共轭(功能)
|
cblas_?nrm2
|
s,d,sc,dz
|
向量2范数(欧几里得范数)(函数)
|
cblas_?rot
|
s,d,cs,zd
|
点的平面旋转(例程)
|
cblas_?rotg
|
s,d,c,z
|
生成点的旋转旋转(例程)
|
cblas_?rotm
|
d
|
修改点的给定平面旋转(例程)
|
cblas_?rotmg
|
d
|
生成点的修改的Givens平面旋转(例程)
|
cblas_?scal
|
s,d,c,z,cs,zd
|
向量标量积(例程)
|
cblas_?swap
|
s,d,c,z
|
向量-向量交换(例程)
|
cblas_i?amax
|
s,d,c,z
|
向量的最大绝对值元素的索引(函数)
|
cblas_i?amin
|
s,d,c,z
|
向量的最小绝对值元素的索引(函数)
|
cblas_?cabs1
|
d
|
辅助函数,计算复数个单精度或双精度的绝对值
|
2、BLAS 2级例程 (矩阵向量操作)
函数形式 | 参数类型(?位置) |
描述
|
---|---|---|
cblas_?gbmv
|
s,d,c,z
|
使用通用带矩阵的矩阵向量乘积
|
cblas?_gemv
|
s,d,c,z
|
使用通用矩阵的矩阵向量乘积
|
cblas_?ger
|
d
|
通用矩阵的Rank-1更新
|
cblas_?gerc
|
c,z
|
共轭通用矩阵的Rank-1更新
|
cblas_?geru
|
c,z
|
普通矩阵的秩1更新,未共轭
|
cblas_?hbmv
|
c,z
|
使用Hermitian能带矩阵的矩阵向量乘积
|
cblas_?hemv
|
c,z
|
使用Hermitian矩阵的矩阵向量乘积
|
cblas_?her |
c,z
|
埃尔米特矩阵的等级1更新
|
cblas_?her2
|
c,z
|
Hermitian矩阵的Rank-2更新
|
cblas_?hpmv
|
c,z
|
使用Hermitian压缩矩阵的矩阵向量乘积
|
cblas_?hpr
|
c,z
|
埃尔米特压缩矩阵的Rank-1更新
|
cblas_?hpr2
|
c,z
|
埃尔米特压缩矩阵的Rank-2更新
|
cblas_?sbmv
|
d
|
使用对称带矩阵的矩阵矢量积
|
cblas_?spmv
|
d
|
使用对称压缩矩阵的矩阵向量乘积
|
cblas_?spr
|
d
|
对称填充矩阵的Rank-1更新
|
cblas_?spr2
|
d
|
对称填充矩阵的Rank-2更新
|
cblas_?symv
|
d
|
使用对称矩阵的矩阵向量乘积
|
cblas_?syr
|
d
|
对称矩阵的Rank-1更新
|
cblas_?syr2
|
d
|
对称矩阵的Rank-2更新
|
cblas_?tbmv
|
s,d,c,z
|
使用三角带矩阵的矩阵矢量积
|
cblas_?tbsv
|
s,d,c,z
|
具有三角带矩阵的线性方程组的解
|
cblas_?tpmv
|
s,d,c,z
|
使用三角堆积矩阵的矩阵向量乘积
|
cblas_?tpsv
|
s,d,c,z
|
具有三角堆积矩阵的线性方程组的解
|
cblas_?trmv
|
s,d,c,z
|
使用三角矩阵的矩阵向量积
|
cblas_?trsv
|
s,d,c,z
|
具有三角矩阵的线性方程组的解
|
2、BLAS 3级例程 (矩阵-矩阵运算)
函数形式
|
参数类型(?位置) |
描述
|
---|---|---|
cblas_?gemm
|
s,d,c,z
|
使用一般矩阵计算矩阵矩阵乘积。
|
cblas_?hemm
|
c,z
|
计算一个输入矩阵为Hermitian的矩阵矩阵乘积。
|
cblas_?herk
|
c,z
|
执行Hermitian rank-k更新。
|
cblas_?her2k
|
c,z
|
执行Hermitian rank-2k更新。
|
cblas_?symm
|
s,d,c,z
|
计算一个输入矩阵对称的矩阵矩阵乘积。
|
cblas_?syrk
|
s,d,c,z
|
执行对称等级k更新。
|
cblas_?syr2k
|
s,d,c,z
|
执行对称等级2k更新。
|
cblas_?trmm
|
s,d,c,z
|
计算一个输入矩阵为三角形的矩阵矩阵乘积。
|
cblas_?trsm
|
s,d,c,z
|
解决三角矩阵方程。
|
二、稀疏BLAS例程
- 稀疏BLAS级别1例程和函数
- 稀疏BLAS级别2例程和级别3的例程
这些例程执行矢量操作,类似于BLAS 1、2和3级例程。
1、稀疏的BLAS 1级例程(向量-向量运算)
函数形式 | 参数类型(?位置) | 描述 |
cblas_?axpyi | s, d, c, z | 标量向量积加向量(例程) |
cblas_?doti | s, d | 点积(函数) |
cblas_?dotci | c, z | 共轭复数点积(函数) |
cblas_?dotui | c, z | 复点积无共轭(函数) |
cblas_?gthr | s, d, c, z | 收集全存储稀疏向量到压缩形式nz, x, indx(例程) |
cblas_?gthr2 | s, d, c, z | 将全存储稀疏向量收集为压缩形式,并将零分配给在全存储向量中收集的元素(例程) |
cblas_?roti | s,d | 吉文斯旋转(常规) |
cblas_?sctr | s,d,c,z | 将矢量从压缩形式分散到全存储形式(例程) |
2、稀疏BLAS级别2例程和级别3的例程(矩阵向量和矩阵矩阵运算)
从索引0开始
函数形式 | 描述 |
---|---|
mkl_cspblas_?csrgemv | 计算基于零索引的稀疏通用矩阵CSR格式(3阵变化)的矩阵-向量乘积 |
mkl_cspblas_?bsrgemv | 计算矩阵-向量乘积的稀疏一般矩阵在BSR格式(3数组变化)与零的索引 |
mkl_cspblas_?coogemv | 计算矩阵-向量乘积的稀疏一般矩阵的坐标格式与零的索引 |
mkl_cspblas_?csrsymv | 计算基于零索引的稀疏对称矩阵CSR格式(3阵变化)的矩阵-向量积 |
mkl_cspblas_?bsrsymv | 计算基于零索引的稀疏对称矩阵的BSR格式(3数组变化)的矩阵-向量乘积 |
mkl_cspblas_?coosymv | 计算矩阵-向量乘积的稀疏对称矩阵的坐标格式与零的索引 |
mkl_cspblas_?csrtrsv | 具有简化界面的三角形求解器,用于具有零索引的CSR格式的稀疏矩阵(3数组变化) |
mkl_cspblas_?bsrtrsv | 简化接口的三角形求解器,用于零索引的BSR格式稀疏矩阵(3数组变化) |
mkl_cspblas_?cootrsv | 简化界面的三角形求解器,用于坐标格式的稀疏矩阵的零基索引 |