Ада матричный пакет - PullRequest
2 голосов
/ 07 июля 2010

Я ищу бесплатный пакет, который выполняет большинство матричных / векторных операций.Я сам могу написать некоторые базовые функции, но для более сложных, таких как вычисление собственных значений и собственных векторов, я бы предпочел надежный код и хотел бы знать, доступны ли такие пакеты в свободном доступе.Если я правильно понимаю, у Ada 2005 больше возможностей для работы с матрицами, но у него есть функция для вычисления собственных значений только для симметричных и эрмитовых матриц.Мне понадобятся более общие пакеты, которые могут работать с матрицами любого типа.

Матричный пакет Ada95 (файл tar.gz 54 КБ) из Drexel Fusion Laboratory имел ссылку: http://dflwww.ece.drexel.edu/research/ada/, но страницадля этого чернил сегодня не существует.

Большое спасибо ...

Ответы [ 3 ]

3 голосов
/ 07 июля 2010

Я думаю, что пакет Ada95, который вы имеете в виду, - здесь - но он всего 35k, и он, кажется, имеет меньше функциональности, чем стандартная библиотека Ada2005. Привязка Ada95 к BLAS появилась в моем кеше браузера!Я вижу, что для общего матричного решения вам также нужен LAPACK, интересно, помогут ли уже существующие в GNAT привязки?Пакет System.Generic_Real_LAPACK в файле s-gerela.ad [bs].В комментариях говорится

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

, что, я подозреваю, является небольшим подмножеством полной библиотеки.Тем не менее, может служить полезным трамплином для более обширных привязок.

2 голосов
/ 08 июля 2010

В соответствии с предложением Джона Барнса Обоснование для Ады 2005 , Ады Приложение G: Числа не предназначены "в качестве замены"профессиональные библиотеки, такие как известный BLAS, "но ничто не мешает реализации использовать BLAS для внутреннего использования.В качестве конкретного примера, компилятор GNAT реализует как G.3.1 вещественные векторы и матрицы , так и G.3.2 сложные векторы и матрицы , используя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)
1 голос
/ 25 февраля 2013

Сайт, на котором ранее был доступен этот пакет, был перенесен, а старый контент теперь доступен по адресу:

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

...