OpenBLAS API

S:单精度,D:双精度,C:单精度复数,Z:双精度复数
lda,ldb,ldc:每行的间隔
incx,incy:x的增量

一.向量间的运算

1.cblas_?asum
作用: |xi| ∑ | x i |

float cblas_sasum (const MKL_INT n, const float *x, const MKL_INT incx);
float cblas_scasum (const MKL_INT n, const void *x, const MKL_INT incx);
double cblas_dasum (const MKL_INT n, const double *x, const MKL_INT incx);
double cblas_dzasum (const MKL_INT n, const void *x, const MKL_INT incx);

n:元素个数,x:向量,incx:求和下标的增量
2.cblas_?axpy
作用: y=αx+y y = α x + y

void cblas_saxpy (const MKL_INT n, const float a, const float *x, const MKL_INT incx, float *y, const MKL_INT incy);
void cblas_daxpy (const MKL_INT n, const double a, const double *x, const MKL_INT incx, double *y, const MKL_INT incy);
void cblas_caxpy (const MKL_INT n, const void *a, const void *x, const MKL_INT incx, void *y, const MKL_INT incy);
void cblas_zaxpy (const MKL_INT n, const void *a, const void *x, const MKL_INT incx, void *y, const MKL_INT incy);

n:元素个数,a:公式中的 α α ,incx,incy:下标增量
需要注意a的数据类型要和x,y的一样。
3.cblas_?copy
作用: y=x y = x

void cblas_scopy (const MKL_INT n, const float *x, const MKL_INT incx, float *y, const MKL_INT incy);
void cblas_dcopy (const MKL_INT n, const double *x, const MKL_INT incx, double *y, const MKL_INT incy);
void cblas_ccopy (const MKL_INT n, const void *x, const MKL_INT incx, void *y, const MKL_INT incy);
void cblas_zcopy (const MKL_INT n, const void *x, const MKL_INT incx, void *y, const MKL_INT incy);

4.cblas_?dot
作用: xiyi ∑ x i y i

float cblas_sdot (const MKL_INT n, const float *x, const MKL_INT incx, const float *y, const MKL_INT incy);
double cblas_ddot (const MKL_INT n, const double *x, const MKL_INT incx, const double *y, const MKL_INT incy);

5.cblas_?sdot

作用: (xiyi)+sb ( ∑ x i y i ) + s b

float cblas_sdsdot (const MKL_INT n, const float sb, const float *sx, const MKL_INT incx, const float *sy, const MKL_INT incy);
double cblas_dsdot (const MKL_INT n, const float *sx, const MKL_INT incx, const float *sy, const MKL_INT incy);

sb:仅适用于函数cblas_sdsdot()。
6.cblas_?dotc
作用: dotc=xiyi d o t c = ∑ x i ∗ y i

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenBLAS是一个开源的基于BLAS(Basic Linear Algebra Subprograms)的数学库,能够提供高性能的矩阵运算和线性代数操作。 OpenBLAS文档提供了详细的使用说明和API文档,帮助用户了解和使用OpenBLAS库的各种功能。文档包括以下内容: 1. 安装指南:说明了如何下载、编译和安装OpenBLAS库,包括各个操作系统的安装步骤和配置文件设置。 2. 快速入门:介绍了OpenBLAS的基本概念和用法。包括如何创建和操作矩阵、向量的输入输出、线性代数运算的调用方法等。 3. API文档:详细介绍了OpenBLAS库的所有函数和数据结构,包括函数的原型、参数说明、返回值等。用户可以根据自己的需求选择合适的函数进行调用。 4. 性能优化:给出了一些性能优化的技巧和建议,帮助用户在使用OpenBLAS时达到最佳的性能表现。介绍了如何使用多线程、向量化等技术来提高计算速度。 5. 示例代码:提供了一些示例代码,展示了如何使用OpenBLAS进行常见的线性代数计算,如矩阵乘法、矩阵分解等。用户可以通过示例代码来学习和理解OpenBLAS的使用方法。 OpenBLAS文档的编写目的是帮助用户快速上手并充分利用库的功能,提供了全面的信息和示例,使用户能够灵活地使用OpenBLAS进行数学计算。同时,文档还提供了性能优化的建议,让用户能够根据自己的需求做出最佳的选择。无论是新手还是有经验的用户,都可以通过文档了解和使用OpenBLAS库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值