【问题标题】:Ada matrix packageAda矩阵包
【发布时间】:2010-07-07 08:39:43
【问题描述】:

我正在寻找可以执行大多数矩阵/向量运算的免费软件包。我可以自己编写一些基本函数,但对于计算特征值和特征向量等高级函数,我更喜欢健壮的代码,我想知道这些包是否可以免费获得。如果我理解正确,Ada 2005 有更多的矩阵运算工具,但它具有计算对称矩阵和厄米特矩阵的特征值的功能。我需要一个更通用的包来处理任何类型的矩阵。

Drexel Fusion Laboratory 的 Ada95 矩阵包(54KB tar.gz 文件)有链接:http://dflwww.ece.drexel.edu/research/ada/,但该墨水的页面今天不存在。

非常感谢...

【问题讨论】:

    标签: matrix package ada


    【解决方案1】:

    我认为你所说的 Ada95 包是 here——但它只有 35k,而且它的功能似乎比 Ada2005 标准库少。

    不知道这个Ada95 binding to BLAS 是如何进入我的浏览器缓存的!我看到对于一般矩阵求解,您也需要 LAPACK,我想知道 GNAT 中已有的绑定是否会有所帮助?在文件 s-gerela.ad[bs] 中打包 System.Generic_Real_LAPACK。 cmets说

    --  LAPACK Computational Routines
    
    --  gerfs  Refines the solution of a system of linear equations with
    --         a general matrix and estimates its error
    --  getrf  Computes LU factorization of a general m-by-n matrix
    --  getri  Computes inverse of an LU-factored general matrix
    --         square matrix, with multiple right-hand sides
    --  getrs  Solves a system of linear equations with an LU-factored
    --         square matrix, with multiple right-hand sides
    --  orgtr  Generates the Float orthogonal matrix Q determined by sytrd
    --  steqr  Computes all eigenvalues and eigenvectors of a symmetric or
    --         Hermitian matrix reduced to tridiagonal form (QR algorithm)
    --  sterf  Computes all eigenvalues of a Float symmetric
    --         tridiagonal matrix using QR algorithm
    --  sytrd  Reduces a Float symmetric matrix to tridiagonal form
    

    我怀疑这是完整库的一小部分。不过,它可以作为更广泛绑定的有用跳板。

    【讨论】:

    • @yCalleecharan:您的实现可能已经链接到外部库来实现标准。 stackoverflow.com/questions/2662805
    • 谢谢。您提供的链接是我自己的问题之一:)。我使用 AdaCore libre GNAT 编译器。我只是在这里阅读文档:libre.adacore.com/wp-content/uploads/2006/02/… 并引用:“Ada 预定义数字库以任何方式与专业库(如著名的 BLAS)竞争或替代”。我不知道 Ada 实现是否提供高级数值分析包。
    • @yCalleecharan:Ada Rationale 是较新的;我已经在一个相邻的答案中详细说明了。
    • @trashgod:我没看到那里有狙击!
    • 非常感谢您提供更多信息。仅针对对称矩阵(实数和复数)提供特征值计算。将它用于一般矩阵会很有趣。正如我之前提到的,这个链接:martin.dowie.btinternet.co.uk/Numerics/adabrowse/… 说明了为什么这是一项艰苦的工作。再次非常感谢您提供的详细信息。将此与 Ada 05 现在提供的内容进行比较会很有用。例如,它确实为系统 Ax=b 提供了误差估计,我认为 Ada 05 没有提供。
    【解决方案2】:

    正如 John Barnes Rationale for Ada 2005 中所建议的那样,Ada 的 Annex G: Numerics 并非旨在“替代著名的 BLAS 等专业库”,但没有什么能阻止实现在内部使用 BLAS。作为一个具体的例子,GNAT 编译器使用 BLAS 和 LAPACK 同时实现了G.3.1 Real Vectors and MatricesG.3.2 Complex Vectors and Matrices。要查看详细信息,您可以检查相关的包体:

    $ export ADA_INC = /your/path/to/adinclude
    $ view $ADA_INC/$(gnatkr Ada.Numerics.Generic_Real_Arrays.adb)
    $ view $ADA_INC/$(gnatkr Ada.Numerics.Generic_Complex_Arrays.adb)
    

    【讨论】:

    • 了解这一点非常有用。非常感谢您提供的链接。我会仔细阅读它们。还有 1 票赞成。
    • 你写的这些命令:它们在unix中吗?我使用 windows,但我会尝试看看是否可以使用这些包。
    • 如果您有时间,也许您可​​以更正 G.3.1 的链接。真正的向量...您给出的两个链接都指向 G.3.2。当然,对于找到通向 G.3.2 的方法的人来说,导航到 G.3.1 是非常容易的。
    • 我找到了一个链接:martin.dowie.btinternet.co.uk/Numerics/adabrowse/…,其中提供了有关为什么 Ada 没有用于一般非对称矩阵的特征值计算工具的信息。简而言之,针对非对称矩阵的算法可能不如针对对称矩阵的算法稳健。
    • 我认为 Ada 的一个缺点是它没有方便的向量和矩阵 I/O 操作,例如在输入和输出时(比如在屏幕上)。但是当然,如​​果用户编写一个程序来显示矩阵元素,这个缺点就会被消除。
    【解决方案3】:

    之前提供此软件包的站点已迁移,旧内容现在可在以下位置获取:

    http://dfl.ece.drexel.edu/content/ada95-matrix-package

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-28
      • 1970-01-01
      • 2015-12-30
      • 1970-01-01
      • 2012-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多