JAMA (numerical Linear Algebra Library)
   HOME

TheInfoList



OR:

JAMA is a
software library In computing, a library is a collection of resources that can be leveraged during software development to implement a computer program. Commonly, a library consists of executable code such as compiled functions and classes, or a library can ...
for performing
numerical linear algebra Numerical linear algebra, sometimes called applied linear algebra, is the study of how matrix operations can be used to create computer algorithms which efficiently and accurately provide approximate answers to questions in continuous mathemati ...
tasks created at
National Institute of Standards and Technology The National Institute of Standards and Technology (NIST) is an agency of the United States Department of Commerce whose mission is to promote American innovation and industrial competitiveness. NIST's activities are organized into Outline of p ...
in 1998 similar in functionality to
LAPACK LAPACK ("Linear Algebra Package") is a standard software library for numerical linear algebra. It provides routines for solving systems of linear equations and linear least squares, eigenvalue problems, and singular value decomposition. It als ...
.


Functionality

The main capabilities provided by JAMA are: *
Eigensystem In linear algebra, an eigenvector ( ) or characteristic vector is a vector that has its direction unchanged (or reversed) by a given linear transformation. More precisely, an eigenvector \mathbf v of a linear transformation T is scaled by a c ...
solving *
LU decomposition In numerical analysis and linear algebra, lower–upper (LU) decomposition or factorization factors a matrix as the product of a lower triangular matrix and an upper triangular matrix (see matrix multiplication and matrix decomposition). The produ ...
*
Singular value decomposition In linear algebra, the singular value decomposition (SVD) is a Matrix decomposition, factorization of a real number, real or complex number, complex matrix (mathematics), matrix into a rotation, followed by a rescaling followed by another rota ...
*
QR decomposition In linear algebra, a QR decomposition, also known as a QR factorization or QU factorization, is a decomposition of a matrix ''A'' into a product ''A'' = ''QR'' of an orthonormal matrix ''Q'' and an upper triangular matrix ''R''. QR decom ...
*
Cholesky decomposition In linear algebra, the Cholesky decomposition or Cholesky factorization (pronounced ) is a decomposition of a Hermitian, positive-definite matrix into the product of a lower triangular matrix and its conjugate transpose, which is useful for eff ...
Versions exist for both C++ and the
Java programming language Java is a high-level, general-purpose, memory-safe, object-oriented programming language. It is intended to let programmers ''write once, run anywhere'' ( WORA), meaning that compiled Java code can run on all platforms that support Jav ...
. The C++ version uses the Template Numerical Toolkit for lower-level operations. The Java version provides the lower-level operations itself.


History

As work of US governmental organization the algorithm and
source code In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer. Since a computer, at base, only ...
have been released to the
public domain The public domain (PD) consists of all the creative work to which no Exclusive exclusive intellectual property rights apply. Those rights may have expired, been forfeited, expressly Waiver, waived, or may be inapplicable. Because no one holds ...
around 1998.JAMA : A Java Matrix Package
on math.nist.gov JAMA has had little development since the year 2000, with only the occasional bug fix being released. The project's webpage contains the following statement, ''"(JAMA) is no longer actively developed to keep track of evolving usage patterns in the Java language, nor to further improve the API. We will, however, fix outright errors in the code."'' The last bug fix was released November 2012, with the previous one being released in 2005.


Usage Example

Example of Singular Value Decomposition (SVD): SingularValueDecomposition s = matA.svd(); Matrix U = s.getU(); Matrix S = s.getS(); Matrix V = s.getV(); Example of matrix multiplication: Matrix result = A.times(B);


See also

*
List of numerical libraries This is a list of numerical libraries, which are libraries used in software development for performing numerical calculations. It is not a complete listing but is instead a list of numerical libraries with articles on Wikipedia, with few exceptio ...


References

{{reflist, 30em, refs= {{cite web , url=http://math.nist.gov/javanumerics/jama/ChangeLog , title=JAMA Change Log , date=November 8, 2012 , work=JAMA, publisher=NIST, accessdate=November 30, 2012 {{cite web , url=http://math.nist.gov/javanumerics/jama/ , title=JAMA Project Page , work=JAMA, publisher=NIST, accessdate=November 30, 2012


External links


JAMA/C++ download and documentation page
at NIST
JAMA/Java homepage
at NIST Numerical software Public-domain software with source code C++ numerical libraries