BLAS 接口

1、cblas_sscal()

对于向量中的每一个元素乘以一个常数

func cblas_sscal(_ __N: Int32, 
               _ __alpha: Float, 
               _ __X: UnsafeMutablePointer<Float>!, 
               _ __incX: Int32)

N:表示需要进行缩放的元素个数

alpha:表示需要乘以的常数

X:表示向量

incX:X的步长,比如incX = 7,则X的每七个元素乘以alpha,也即是X的下标为6的元素乘以alpha

2、cblas_scopy()

复制一个向量到另一个向量

func cblas_scopy(_ __N: Int32, 
               _ __X: UnsafePointer<Float>!, 
               _ __incX: Int32, 
               _ __Y: UnsafeMutablePointer<Float>!, 
               _ __incY: Int32)

N:向量中元素的个数

X:源向量

扫描二维码关注公众号,回复: 3139383 查看本文章

incX:步长,例如incX=7则每7个元素应用

Y:目标向量

incY:步长,例如incY=7则每7个元素应用

3、cblas_sgemv()

矩阵乘以向量

Y←αAX + βY

func cblas_sgemv(_ __Order: CBLAS_ORDER, 
               _ __TransA: CBLAS_TRANSPOSE, 
               _ __M: Int32, 
               _ __N: Int32, 
               _ __alpha: Float, 
               _ __A: UnsafePointer<Float>!, 
               _ __lda: Int32, 
               _ __X: UnsafePointer<Float>!, 
               _ __incX: Int32, 
               _ __beta: Float, 
               _ __Y: UnsafeMutablePointer<Float>!, 
               _ __incY: Int32)

Order:表示列对齐还是行对齐

TransA:表示是否对A矩阵进行转置

M:矩阵A的行数

N:矩阵A的列数

alpha:A或者X的缩放因子

A:矩阵A

lda:矩阵A的第一个维度,若矩阵A的维度为[m][n]则lda=m

X:向量X

incX:X的步长,如果incX=7,则每7个元素使用

beta:向量Y的缩放因子

Y:向量Y

incY:Y的步长,如果incY=7,则每7个元素使用

猜你喜欢

转载自blog.csdn.net/zhanghenan123/article/details/81165559