zoukankan      html  css  js  c++  java
  • 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) 奇异值分解

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

  • 相关阅读:
    Android的NDK开发(5)————Android JNI层实现文件的read、write与seek操作
    android Context
    android 控件放在 listview 的下方 并且在 屏幕底部
    android Activity 布局 和 控件属性
    有关vtun和虚拟网卡要做的实验
    android xml pull 解析 豆瓣书籍
    android UI设计之 背景透明色 项目资源文件关系
    android 资源引用 自定义标题栏
    真机调试Unable to open sync connection!
    C++ 编译预处理
  • 原文地址:https://www.cnblogs.com/Frandy/p/LAPACK_Using_1.html
Copyright © 2011-2022 走看看