• LAPACK(2)——使用基础


    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) 奇异值分解

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

  • 相关阅读:
    物联网习题总结
    orm.TextField undefined (type orm.Ormer has no field or method TextField)
    中级软件设计师下午试题(百度文库 )
    34-Digit factorials
    解决[INS-35075] 已存在具有指定标识符的数据库实例
    PE10 Summation of primes
    构建之发阅读笔记02
    软件工程概论第十二周学习进度表
    四则运算2(改进版)
    构建之法阅读笔记01
  • 原文地址:https://www.cnblogs.com/Frandy/p/LAPACK_Using_1.html
Copyright © 2020-2023  润新知