LAPACK(2)——使用基础

本文详细介绍了LAPACKE的使用方法,包括其提供的数据类型、头文件、函数命名规则及各类计算功能,如线性方程求解、线性最小二乘问题、奇异值分解等。
部署运行你感兴趣的模型镜像

LAPACKE是LAPACK的C程序接口,LAPACKE提供了三个头文件,在使用时,我们需要包含这三个头文件。那么我们就从这三个头文件,来看看如何使用LAPACKE。

1)数据类型

LAPACKE 使用define定义了下面几种数据类型,

#define lapacke_int int
#define lapacke_logical int
#define lapacke_complex_float float _Complex
#define lapacke_complex_double double _Complex

所以在程序中,int, float, double 都是可以使用的,而对于复数complex, LAPACKE提供了4种选择,(1)定义LAPACK_COMPLEX_STRUCTURE,那么就可以使用LAPACKE自己定义的结构体类型Complex,(2)定义LAPACK_COMPLEX_C99,那么就可以使用C语言complex.h中的复数类型,(3)定义LAPACK_COMPLEX_CPP,那么使用的是std::complex<float>和std::complex<double>,(4)定义LAPACK_COMPLEX_CUSTOM,使用自己定义的complex类,这里如何使用,还需要进一步探索。

2)函数

头文件lapacke.h里面给出了全部计算函数的声明,在lapacke_config.h中,定义了LAPACKE_NAME,使得可以使用不同风格的函数名称,可以使upper case,可以使lower case等。在lapacke_utils.h文件中,给出了错数处理函数,类型转化函数,零检测函数,NaN检测函数等。

函数的基本命名方式是 LAPACKE_xyyzzz。LAPACKE_是前缀,后面的xyyzzz则是LAPACK的命名方式。

其中第一个字母x表示数据类型,分为四类,

S REAL
D DOUBLE PRECISION
C COMPLEX
Z COMPLEX
*16 or DOUBLE COMPLEX

接下来的两个字母yy,表示矩阵类型,详见http://www.netlib.org/lapack/lug/node24.html 的表格。后面三个字母zzz表示进行的计算。参看链接http://www.netlib.org/lapack/lug/node26.html。从该链接这一页开始,介绍的是LAPACK的计算功能,介绍了各个函数。所以使用的时候,先把问题分类,再找到对应的函数。

1)Linear Equation 线性方程问题

http://www.netlib.org/lapack/lug/node26.html

 -SV  a simple driver, solves the system AX = B by factorizing A and overwriting B with the solution X;

 -SVX an expert driver, 比较常用的就是general的矩阵类型,对应8个函数如下,

general simple driver SGESV   CGESV   DGESV    ZGESV

             expert driver SGESVX CGESVX DGESVX  ZGESVX

2)Linear Least Squares (LLS) Problems 线性最小二乘问题

3)Generalized Linear Least Squares (LSE and GLM) Problems 一般化(线性方程约束下)的最小二乘问题

4)Symmetric Eigenproblems (SEP) 对称矩阵的特征值问题

5)Nonsymmetric Eigenproblems (NEP) 非对称矩阵的特征值问题

6)Singular Value Decomposition (SVD) 奇异值分解

更多内容需要进一步探索。

转载于:https://www.cnblogs.com/Frandy/archive/2011/05/18/LAPACK_Using_1.html

您可能感兴趣的与本文相关的镜像

EmotiVoice

EmotiVoice

AI应用

EmotiVoice是由网易有道AI算法团队开源的一块国产TTS语音合成引擎,支持中英文双语,包含2000多种不同的音色,以及特色的情感合成功能,支持合成包含快乐、兴奋、悲伤、愤怒等广泛情感的语音。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值