Matrix Ada矩阵包

Matrix Ada矩阵包,matrix,package,ada,Matrix,Package,Ada,我在寻找一个免费的包,做大多数矩阵/向量运算。我可以自己编写一些基本函数,但对于像计算特征值和特征向量这样的高级函数,我更喜欢健壮的代码,我想知道这样的包是否免费提供。如果我理解正确的话,ADA2005有更多的矩阵运算工具,但它有一个函数,只计算对称矩阵和厄米矩阵的特征值。我需要一个更通用的软件包,可以处理任何类型的矩阵 Drexel Fusion实验室的Ada95 matrix软件包(54KB tar.gz文件)上有链接:但是这种墨水的页面现在已经不存在了 非常感谢…我认为您指的Ada95软件

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

Drexel Fusion实验室的Ada95 matrix软件包(54KB tar.gz文件)上有链接:但是这种墨水的页面现在已经不存在了


非常感谢…

我认为您指的Ada95软件包是——但它只有35k,而且它的功能似乎比Ada2005标准库要少

不知道这是怎么在我的浏览器缓存中出现的!我看到,对于一般矩阵求解,您也需要LAPACK,我想知道GNAT中已有的绑定是否会有所帮助?文件s-gerela.ad[bs]中的包
System.Generic\u Real\u LAPACK
。评论说

--  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

我怀疑这是整个库的一小部分。尽管如此,它仍然可以作为更广泛绑定的有用跳板。

正如John Barnes所建议的那样,Ada并不打算“替代著名的BLAS等专业库”,但没有任何东西阻止实现在内部使用BLAS。作为一个具体的例子,GNAT编译器使用BLAS和LAPACK实现和。要查看详细信息,您可以检查相关的包体:

$ 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)

此软件包以前可用的站点已迁移,旧内容现在可在以下位置使用:


@ycallecharan:您的实现可能已经链接到外部库以实现该标准。谢谢您提供的链接是我自己的问题之一:)。我使用AdaCore libre GNAT编译器。我刚才在这里读文件:我引用:“Ada预定义的数字图书馆以任何方式与专业图书馆(如著名的BLAS)竞争或替代”。我不知道Ada实现是否提供了高级的数值分析软件包。@YCallecharan:Ada的基本原理是最新的;我已经在旁边的回答中详细阐述了。@trashgood:我没看到有人在那里狙击!非常感谢您提供更多信息。仅为对称矩阵(实矩阵和复矩阵)提供特征值计算。不过,将其用于一般矩阵会很有趣。正如我前面提到的,这个链接:给出了一些说明为什么这是一项艰苦的工作。再次感谢您提供的详细信息。将其与Ada 05现在提供的内容进行比较将非常有用。例如,它确实为系统Ax=b提供了误差估计,我认为ADA05没有提供误差估计。了解这一点非常有用。非常感谢您的链接。我会仔细阅读的。你写的这些命令:它们在unix中吗?我使用windows,但我会试试看是否可以使用这些软件包。如果你有时间,也许你可以更正到G.3.1的链接。实向量。。。你提到的两个链接都指向G.3.2。当然,对于找到了G.3.2的途径的人来说,导航到G.3.1是非常容易的。我找到了一个链接:其中给出了关于为什么Ada没有针对一般非对称矩阵的特征值计算工具的信息。简言之,适用于非对称矩阵的算法可能不如适用于对称矩阵的算法稳健。我认为Ada的一个缺点是,它没有方便的向量和矩阵I/O操作,例如在输入和输出方面(比如在屏幕上)。但是,当然,如果用户编写一个过程来显示矩阵元素,这个缺点就会消除。