Apple - BLAS

官方文档:https://developer.apple.com/documentation/accelerate/blas

BLAS
苹果的基本线性代数子程序(BLAS)的实现。

Overview
vecLib框架包含九个C头文件(不包括仅包含其他的vecLib.h)

Topics

General Functions
一般函数

func ATLU_DestroyThreadMemory()
与BLAS相关联的每个线程存储释放。(不推荐使用的函数)

func SetBLASParamErrorProc(BLASParamErrorProc!)
设置错误处理程序函数。

func cblas_icamax(Int32, UnsafeRawPointer!, Int32)
返回向量中具有最大绝对值的元素的索引(单精度复合体)。

func cblas_idamax(Int32, UnsafePointer!, Int32)
返回向量中最大绝对值的元素的索引(双精度)。

func cblas_isamax(Int32, UnsafePointer!, Int32)
返回向量中最大绝对值的元素的索引(单精度)。

func cblas_izamax(Int32, UnsafeRawPointer!, Int32)
返回向量中具有最大绝对值的元素的索引(双精度复合体)。

func vS256Divide(UnsafePointer, UnsafePointer, UnsafeMutablePointer, UnsafeMutablePointer?)
有符号256位除法。

func vU512Divide(UnsafePointer, UnsafePointer, UnsafeMutablePointer, UnsafeMutablePointer?)
无符号256位除法。

CATLAS and CBLAS Vector Functions
CCTLAS和CBLAS矢量函数

func catlas_caxpby(Int32, UnsafeRawPointer!, UnsafeRawPointer!, Int32, UnsafeRawPointer!, UnsafeMutableRawPointer!, Int32)
计算两个向量的乘积,分别缩放每一个(单精度复合体)。

func catlas_cset(Int32, UnsafeRawPointer!, UnsafeMutableRawPointer!, Int32)
修改一个向量(单精度复合体),将每个元素设置为给定的值。

func catlas_daxpby(Int32, Double, UnsafePointer!, Int32, Double, UnsafeMutablePointer!, Int32)
计算两个向量的和,分别缩放每一个(双精度)。

func catlas_dset(Int32, Double, UnsafeMutablePointer!, Int32)
修改一个向量(双精度),将每个元素设置为给定的值。

func catlas_saxpby(Int32, Float, UnsafePointer!, Int32, Float, UnsafeMutablePointer!, Int32)
计算两个向量的和,分别缩放每一个(单精度)。

func catlas_sset(Int32, Float, UnsafeMutablePointer!, Int32)
修改一个向量(单精度),将每个元素设置为给定的值。

func catlas_zaxpby(Int32, UnsafeRawPointer!, UnsafeRawPointer!, Int32, UnsafeRawPointer!, UnsafeMutableRawPointer!, Int32)
计算两个向量的和,分别缩放每一个(双精度复合体)。

func catlas_zset(Int32, UnsafeRawPointer!, UnsafeMutableRawPointer!, Int32)
修改一个向量(双精度复合体),将每个元素设置为给定的值。

func cblas_sdot(Int32, UnsafePointer!, Int32, UnsafePointer!, Int32)
计算两个向量(单精度)的点积。

func cblas_sdsdot(Int32, Float, UnsafePointer!, Int32, UnsafePointer!, Int32)
计算两个单精度向量加上初始单精度值的点积。

func cblas_cdotc_sub(Int32, UnsafeRawPointer!, Int32, UnsafeRawPointer!, Int32, UnsafeMutableRawPointer!)
计算单精度复向量与第二单精度复向量的复共轭的点积。

func cblas_cdotu_sub(Int32, UnsafeRawPointer!, Int32, UnsafeRawPointer!, Int32, UnsafeMutableRawPointer!)
计算两个单精度复向量的点积。

func cblas_ddot(Int32, UnsafePointer!, Int32, UnsafePointer!, Int32)
计算两个向量(双精度)的点积。

func cblas_dsdot(Int32, UnsafePointer!, Int32, UnsafePointer!, Int32)
计算一对单精度向量的双精度点积。

func cblas_zdotc_sub(Int32, UnsafeRawPointer!, Int32, UnsafeRawPointer!, Int32, UnsafeMutableRawPointer!)
计算一个双精度复向量与第二双精度复向量的复共轭的点积。

func cblas_zdotu_sub(Int32, UnsafeRawPointer!, Int32, UnsafeRawPointer!, Int32, UnsafeMutableRawPointer!)
计算两个双精度复向量的点积。

Sparse Computation

Matrix and Vector Operations
矩阵与向量运算
用矩阵和向量进行计算。

Pointwise Matrix Operations
逐点矩阵运算
创建、插入值,并从逐点稀疏矩阵中提取值。

Blockwise Matrix Operations
分块矩阵运算
创建、插入值,并从块稀疏矩阵中提取值。

General Sparse Matrix Management Operations
一般稀疏矩阵管理操作
管理和使用稀疏矩阵属性的操作。

Sparse Utility Operations
稀疏效用运算
用于创建和处理稀疏结构的各种实用操作。

Single-Precision Float Matrix Functions
单精度浮点阵函数

RANK曲线,一般又被称呼为CMC曲线。
rank 1, 就是第一次命中 
rank k,就是在第k次以内命中 

func cblas_sasum(Int32, UnsafePointer!, Int32)
计算向量中元素的绝对值之和(单精度)。

func cblas_saxpy(Int32, Float, UnsafePointer!, Int32, UnsafeMutablePointer!, Int32)
计算常数倍向量加向量(单精度)。

func cblas_scopy(Int32, UnsafePointer!, Int32, UnsafeMutablePointer!, Int32)
将向量复制到另一个向量(单精度)。

func cblas_sgbmv(CBLAS_ORDER, CBLAS_TRANSPOSE, Int32, Int32, Int32, Int32, Float, UnsafePointer!, Int32, UnsafePointer!, Int32, Float, UnsafeMutablePointer!, Int32)
缩放一般的带矩阵,然后乘以向量,然后添加向量(单精度)。

func cblas_sgemm(CBLAS_ORDER, CBLAS_TRANSPOSE, CBLAS_TRANSPOSE, Int32, Int32, Int32, Float, UnsafePointer!, Int32, UnsafePointer!, Int32, Float, UnsafeMutablePointer!, Int32)
乘以两个矩阵(单精度)。

func cblas_sgemv(CBLAS_ORDER, CBLAS_TRANSPOSE, Int32, Int32, Float, UnsafePointer!, Int32, UnsafePointer!, Int32, Float, UnsafeMutablePointer!, Int32)
将向量乘以矩阵(单精度)。

func cblas_sger(CBLAS_ORDER, Int32, Int32, Float, UnsafePointer!, Int32, UnsafePointer!, Int32, UnsafeMutablePointer!, Int32)
将向量x乘以向量y的变换,然后加入矩阵A(单精度)。

func cblas_snrm2(Int32, UnsafePointer!, Int32)
Computes the L2 norm (Euclidian length) of a vector (single precision).
计算向量(单精度)的L2范数(欧几里得长度)。

func cblas_srot(Int32, UnsafeMutablePointer!, Int32, UnsafeMutablePointer!, Int32, Float, Float)
Applies a Givens rotation matrix to a pair of vectors.
将吉文斯旋转矩阵应用于向量对。

func cblas_srotg(UnsafeMutablePointer!, UnsafeMutablePointer!, UnsafeMutablePointer!, UnsafeMutablePointer!)
构造吉文斯旋转矩阵。

func cblas_srotm(Int32, UnsafeMutablePointer!, Int32, UnsafeMutablePointer!, Int32, UnsafePointer!)
应用改进的Givin变换(单精度)。

func cblas_srotmg(UnsafeMutablePointer!, UnsafeMutablePointer!, UnsafeMutablePointer!, Float, UnsafeMutablePointer!)
生成修改的吉文斯旋转矩阵。

func cblas_ssbmv(CBLAS_ORDER, CBLAS_UPLO, Int32, Int32, Float, UnsafePointer!, Int32, UnsafePointer!, Int32, Float, UnsafeMutablePointer!, Int32)
Scales a symmetric band matrix, then multiplies by a vector, then adds a vector (single-precision).
缩放对称的带矩阵,然后乘以向量,然后添加向量(单精度)。

func cblas_sscal(Int32, Float, UnsafeMutablePointer!, Int32)
Multiplies each element of a vector by a constant (single-precision).
将向量的每个元素乘以常数(单精度)。

func cblas_sspmv(CBLAS_ORDER, CBLAS_UPLO, Int32, Float, UnsafePointer!, UnsafePointer!, Int32, Float, UnsafeMutablePointer!, Int32)
Scales a packed symmetric matrix, then multiplies by a vector, then scales and adds another vector (single precision).
缩放一个包装的对称矩阵,然后乘以向量,然后缩放和添加另一个向量(单精度)。

func cblas_sspr(CBLAS_ORDER, CBLAS_UPLO, Int32, Float, UnsafePointer!, Int32, UnsafeMutablePointer!)
Rank one update: adds a packed symmetric matrix to the product of a scaling factor, a vector, and its transpose (single precision).
一次命中更新:将压缩对称矩阵加到比例因子、向量及其转置(单精度)的乘积中。

func cblas_sspr2(CBLAS_ORDER, CBLAS_UPLO, Int32, Float, UnsafePointer!, Int32, UnsafePointer!, Int32, UnsafeMutablePointer!)
Rank two update of a packed symmetric matrix using two vectors (single precision).
二次命中更新:使用两个向量(单精度)的压缩对称矩阵的更新。

func cblas_sswap(Int32, UnsafeMutablePointer!, Int32, UnsafeMutablePointer!, Int32)
Exchanges the elements of two vectors (single precision).
交换两个向量的元素(单精度)。

func cblas_ssymm(CBLAS_ORDER, CBLAS_SIDE, CBLAS_UPLO, Int32, Int32, Float, UnsafePointer!, Int32, UnsafePointer!, Int32, Float, UnsafeMutablePointer!, Int32)
Multiplies a matrix by a symmetric matrix (single-precision).
将矩阵乘以对称矩阵(单精度)。

func cblas_ssymv(CBLAS_ORDER, CBLAS_UPLO, Int32, Float, UnsafePointer!, Int32, UnsafePointer!, Int32, Float, UnsafeMutablePointer!, Int32)
Scales a symmetric matrix, multiplies by a vector, then scales and adds another vector (single precision).
缩放对称矩阵,乘以向量,然后缩放并添加另一向量(单精度)。

func cblas_ssyr(CBLAS_ORDER, CBLAS_UPLO, Int32, Float, UnsafePointer!, Int32, UnsafeMutablePointer!, Int32)
Rank one update: adds a symmetric matrix to the product of a scaling factor, a vector, and its transpose (single precision).
一次命中更新:将对称矩阵加到缩放因子、向量及其转置(单个精度)的乘积中。

func cblas_ssyr2(CBLAS_ORDER, CBLAS_UPLO, Int32, Float, UnsafePointer!, Int32, UnsafePointer!, Int32, UnsafeMutablePointer!, Int32)
Rank two update of a symmetric matrix using two vectors (single precision).
一次命中更新:使用两个向量(单精度)的对称矩阵。

func cblas_ssyr2k(CBLAS_ORDER, CBLAS_UPLO, CBLAS_TRANSPOSE, Int32, Int32, Float, UnsafePointer!, Int32, UnsafePointer!, Int32, Float, UnsafeMutablePointer!, Int32)
Performs a rank-2k update of a symmetric matrix (single precision).
执行对称矩阵(单精度)的 rank-2K更新。

func cblas_ssyrk(CBLAS_ORDER, CBLAS_UPLO, CBLAS_TRANSPOSE, Int32, Int32, Float, UnsafePointer!, Int32, Float, UnsafeMutablePointer!, Int32)
Rank-k update—multiplies a symmetric matrix by its transpose and adds a second matrix (single precision).
RANK-K 更新- 通过转置乘以对称矩阵并增加第二矩阵

func cblas_stbmv(CBLAS_ORDER, CBLAS_UPLO, CBLAS_TRANSPOSE, CBLAS_DIAG, Int32, Int32, UnsafePointer!, Int32, UnsafeMutablePointer!, Int32)
Scales a triangular band matrix, then multiplies by a vector (single precision).
缩放三角带矩阵,然后乘以向量(单精度)。

func cblas_stbsv(CBLAS_ORDER, CBLAS_UPLO, CBLAS_TRANSPOSE, CBLAS_DIAG, Int32, Int32, UnsafePointer!, Int32, UnsafeMutablePointer!, Int32)
Solves a triangular banded system of equations.
求解一个三角形带状方程组。

func cblas_stpmv(CBLAS_ORDER, CBLAS_UPLO, CBLAS_TRANSPOSE, CBLAS_DIAG, Int32, UnsafePointer!, UnsafeMutablePointer!, Int32)
Multiplies a triangular matrix by a vector, then adds a vector (single precision).
将向量乘以三角形矩阵,然后添加向量(单精度)。

func cblas_stpsv(CBLAS_ORDER, CBLAS_UPLO, CBLAS_TRANSPOSE, CBLAS_DIAG, Int32, UnsafePointer!, UnsafeMutablePointer!, Int32)
Solves a packed triangular system of equations.
求解一个填充的三角方程组。

func cblas_strmm(CBLAS_ORDER, CBLAS_SIDE, CBLAS_UPLO, CBLAS_TRANSPOSE, CBLAS_DIAG, Int32, Int32, Float, UnsafePointer!, Int32, UnsafeMutablePointer!, Int32)
Scales a triangular matrix and multiplies it by a matrix.
缩放三角矩阵并乘以矩阵。

func cblas_strmv(CBLAS_ORDER, CBLAS_UPLO, CBLAS_TRANSPOSE, CBLAS_DIAG, Int32, UnsafePointer!, Int32, UnsafeMutablePointer!, Int32)
Multiplies a triangular matrix by a vector.
用向量乘以三角矩阵。

func cblas_strsm(CBLAS_ORDER, CBLAS_SIDE, CBLAS_UPLO, CBLAS_TRANSPOSE, CBLAS_DIAG, Int32, Int32, Float, UnsafePointer!, Int32, UnsafeMutablePointer!, Int32)
Solves a triangular system of equations with multiple values for the right side.
求解一个具有右侧多个值的三角形方程组。

func cblas_strsv(CBLAS_ORDER, CBLAS_UPLO, CBLAS_TRANSPOSE, CBLAS_DIAG, Int32, UnsafePointer!, Int32, UnsafeMutablePointer!, Int32)
Solves a triangular system of equations with a single value for the right side.
求解右边有一个值的一个三角形的方程组。

Single-Precision Complex Matrix Functions



Double-Precision Float Matrix Functions



Double-Precision Complex Matrix Functions



Data Types



猜你喜欢

转载自blog.csdn.net/sunnysu99/article/details/80614242