JAMA (библиотека)
JAMA (англ. Java Matrix Library — библиотека матриц на языке Java) — библиотека функций линейной алгебры. Библиотека создана в NIST и является общественным достоянием.
JAMA | |
---|---|
Тип | Библиотека |
Разработчик | NIST |
Написана на | Java, C++ |
Операционная система | Кроссплатформенное программное обеспечение |
Первый выпуск | 1998 |
Последняя версия | 1.0.3 (9 ноября 2012 года) |
Лицензия | Общественное достояние |
Сайт | math.nist.gov/javanumeri… |
Особенности
Библиотека существует в двух версиях: на языке Java (собственно JAMA) и библиотека шаблонов на языке C++ (JAMA/C++). Версия на C++ использует Template Numerical Toolkit, разработанный там же. Версия на Java выполняет низкоуровневые операции сама.
Основные операции, выполняемые библиотекой:
- LU-разложение
- обращение матриц
- вычисление определителей
- вычисление собственных значений и собственных векторов
- QR-разложение
- разложение Холецкого
- сингулярное разложение
Поскольку JAMA не содержит ничего, кроме заголовочных файлов с шаблонами, библиотека не требует компиляции. Поскольку все классы используют шаблоны, одинаково легко использовать матрицы и вектора с элементами типа float, double или описанных пользователем типов.
История развития
Первый выпуск библиотеки был представлен 5 августа 1998 года.
С 2000-го года библиотека почти не развивается, производится только нерегулярное исправление замеченных ошибок.[1]
Альтернативы
Еще одним проектом NIST, а также, альтернативой JAMA, является библиотека Jampack, более гибкая в плане расширения функциональности.[2]
Примеры использования
Сингулярное разложение:
SingularValueDecomposition s = matA.svd();
Matrix U = s.getU();
Matrix S = s.getS();
Matrix V = s.getV();
Matrix result = A.times(B);
Примечания
- JAMA Change Log
- Описание библиотеки JAMA на сайте ГАИШ