BLAS|BLAS API 中文文档(2)(待续)
一、BLAS level 1 函数接口表
函数接口 | 数据类型 | 释义 |
---|---|---|
cblas_?asum | s,d,sc,dz | 向量元素值模的总和 |
cblas_?axpy | s,d,c,z | 向量缩放后加上另一个向量 |
cblas_?copy | s,d,c,z | 实现向量的拷贝 |
cblas_?dot | s,d | 实现实数向量的点积 |
cblas_?sdot | sd,d | |
cblas_?dotc_sub | c,z | 实现复数向量的点积 |
cblas_?dotu_sub | c,z | 实现复数向量的点积 |
cblas_?nrm2 | s,d,cs,dz | 向量的长度 |
cblas_?rot | s,d,sc,dz | 实现平面的转换 |
cblas_?rotg | s,d,c,z | 建立平面的转换 |
cblas_?rotm | s,d | 实现改良后平面的转换 |
cblas_?rotmg | s,d | 建立改良后平面的转换 |
cblas_?scal | s,d,c,z,sc,dz | 实现向量的缩放 |
cblas_?swap | s,d,c,z | 实现向量的交换 |
cblas_i?amax | s,d,c,z |
- cblas_?asum
计算向量元素值模的总和(欧几里德 1-范数)
floatcblas_sasum(const int N, const float *X, const int incX);
double cblas_dasum(const int N, const double *X, const int incX);
floatcblas_scasum(const int N, const void *X, const int incX);
double cblas_dzasum(const int N, const void *X, const int incX);
输入参数
N ------- 向量 X 的元素个数返回值
X ------- 用数组表示的向量
incX --- 指定索引向量 X 的增量
【BLAS|BLAS API 中文文档(2)(待续)】返回向量的所有元素的实部和虚部的模的和。
- cblas_?axpy
向量缩放后加上另一个向量
void cblas_saxpy(const int N, const float alpha, const float *X,
const int incX, float *Y, const int incY);
void cblas_daxpy(const int N, const double alpha, const double *X,
const int incX, double *Y, const int incY);
void cblas_caxpy(const int N, const void *alpha, const void *X,
const int incX, void *Y, const int incY);
void cblas_zaxpy(const int N, const void *alpha, const void *X,
const int incX, void *Y, const int incY);
输入参数
N -------- 向量 X 和 Y 的元素个数输出参数
alpha --- 缩放向量 X 的标量
X -------- 用数组表示待缩放的向量
incX ---- 指定索引向量 X 的增量
Y -------- 用数组表示的向量
incY ---- 指定索引向量 Y 的增量
Y -------- 用数组表示待刷新的向量
- cblas_?copy
实现向量的拷贝
void cblas_scopy(const int N, const float *X, const int incX,
float *Y, const int incY);
void cblas_dcopy(const int N, const double *X, const int incX,
double *Y, const int incY);
void cblas_ccopy(const int N, const void *X, const int incX,
void *Y, const int incY);
void cblas_zcopy(const int N, const void *X, const int incX,
void *Y, const int incY);
输入参数
N -------- 向量 X 和 Y 的元素个数输出参数
X -------- 用数组表示被拷贝的向量
incX ---- 指定索引向量 X 的增量
Y -------- 用数组表示的向量
incY ---- 指定索引向量 Y 的增量
Y -------- 用数组表示待刷新的向量
- cblas_?dot
实现实数向量的点积
floatcblas_sdot(const int N, const float*X, const int incX,
const float*Y, const int incY);
double cblas_ddot(const int N, const double *X, const int incX,
const double *Y, const int incY);
输入参数
N -------- 向量 X 和 Y 的元素个数返回值
X -------- 用数组表示被拷贝的向量
incX ---- 指定索引向量 X 的增量
Y -------- 用数组表示的向量
incY ---- 指定索引向量 Y 的增量
点积后的结果
- cblas_?sdot
floatcblas_sdsdot(const int N, const float alpha, const float *X,
const int incX, const float *Y, const int incY);
double cblas_dsdot(const int N, const float *X, const int incX, const float *Y,
const int incY);
- cblas_?dotc_sub
实现复数向量的点积
voidcblas_cdotc_sub(const int N, const void *X, const int incX,
const void *Y, const int incY, void *dotc);
voidcblas_zdotc_sub(const int N, const void *X, const int incX,
const void *Y, const int incY, void *dotc);
- cblas_?dotu_sub
实现复数向量的点积
voidcblas_cdotu_sub(const int N, const void *X, const int incX,
const void *Y, const int incY, void *dotu);
voidcblas_zdotu_sub(const int N, const void *X, const int incX,
const void *Y, const int incY, void *dotu);
- cblas_?nrm2
向量的长度
floatcblas_snrm2(const int N, const float *X, const int incX);
double cblas_dnrm2(const int N, const double *X, const int incX);
floatcblas_scnrm2(const int N, const void *X, const int incX);
double cblas_dznrm2(const int N, const void *X, const int incX);
- cblas_?rot
实现平面的转换
void cblas_srot(const int N, float *X, const int incX,
float *Y, const int incY, const float c, const float s);
void cblas_drot(const int N, double *X, const int incX,
double *Y, const int incY, const double c, const doubles);
- cblas_?rotg
建立平面的转换
void cblas_srotg(float *a, float *b, float *c, float *s);
void cblas_drotg(double *a, double *b, double *c, double *s);
- cblas_?rotm
实现改良后平面的转换
void cblas_srotm(const int N, float *X, const int incX,
float *Y, const int incY, const float *P);
void cblas_drotm(const int N, double *X, const int incX,
double *Y, const int incY, const double *P);
- cblas_?rotmg
建立改良后平面的转换
void cblas_srotmg(float *d1, float *d2, float *b1, const float b2, float *P);
void cblas_drotmg(double *d1, double *d2, double *b1, const double b2, double *P);
- cblas_?scal
实现向量的缩放
void cblas_sscal(const int N, const float alpha, float *X, const int incX);
void cblas_dscal(const int N, const double alpha, double *X, const int incX);
void cblas_cscal(const int N, const void *alpha, void *X, const int incX);
void cblas_zscal(const int N, const void *alpha, void *X, const int incX);
void cblas_csscal(const int N, const float alpha, void *X, const int incX);
void cblas_zdscal(const int N, const double alpha, void *X, const int incX);
- cblas_?swap
实现向量的交换
void cblas_sswap(const int N, float *X, const int incX,
float *Y, const int incY);
void cblas_dswap(const int N, double *X, const int incX,
double *Y, const int incY);
void cblas_cswap(const int N, void *X, const int incX,
void *Y, const int incY);
void cblas_zswap(const int N, void *X, const int incX,
void *Y, const int incY);
- cblas_i?amax
CBLAS_INDEX cblas_isamax(const int N, const float*X, const int incX);
CBLAS_INDEX cblas_idamax(const int N, const double *X, const int incX);
CBLAS_INDEX cblas_icamax(const int N, const void*X, const int incX);
CBLAS_INDEX cblas_izamax(const int N, const void*X, const int incX);
此文档尚未写完,我会持续更新
推荐阅读
- 2020-04-07vue中Axios的封装和API接口的管理
- 《机器学习实战》高清中文版PDF英文版PDF+源代码下载
- 【译】Rails|【译】Rails 5.0正式发布(Action Cable,API模式等)
- ElasticSearch6.6.0强大的JAVA|ElasticSearch6.6.0强大的JAVA API详解
- EdgeDB 架构简析
- 前端开发|Vue2.x API 学习
- 简易有效Api接口防攻击策略
- 如何在Kubernetes|如何在Kubernetes 里添加自定义的 API 对象(一)
- fastapi教程翻译(一)(了解FastAPI结构)
- 1.前端引入jeDate日期控件