<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://70.231.62.181/index.php?action=history&amp;feed=atom&amp;title=Matrix_Toolkit_Java</id>
	<title>Matrix Toolkit Java - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://70.231.62.181/index.php?action=history&amp;feed=atom&amp;title=Matrix_Toolkit_Java"/>
	<link rel="alternate" type="text/html" href="http://70.231.62.181/index.php?title=Matrix_Toolkit_Java&amp;action=history"/>
	<updated>2026-04-21T22:53:03Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>http://70.231.62.181/index.php?title=Matrix_Toolkit_Java&amp;diff=11213898&amp;oldid=prev</id>
		<title>imported&gt;2kbfloppadisk: Added short description</title>
		<link rel="alternate" type="text/html" href="http://70.231.62.181/index.php?title=Matrix_Toolkit_Java&amp;diff=11213898&amp;oldid=prev"/>
		<updated>2025-04-03T17:39:13Z</updated>

		<summary type="html">&lt;p&gt;Added short description&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Short description|Java library for linear algebra}}&lt;br /&gt;
{{multiple issues|&lt;br /&gt;
{{Notability|Products|date=November 2012}}&lt;br /&gt;
{{one source|date=November 2012}}&lt;br /&gt;
{{primary sources|date=November 2012}}&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox software&lt;br /&gt;
| author                 = Bjørn-Ove Heimsund&lt;br /&gt;
| released               = {{Start date and age|2003}}&lt;br /&gt;
| latest preview version = 0.9.14&lt;br /&gt;
| latest preview date    = {{release date|2011|11|22}}&lt;br /&gt;
| repo                   = {{url|https://github.com/fommil/matrix-toolkits-java}}&lt;br /&gt;
| programming language   = [[Java (programming language)|Java]]&lt;br /&gt;
| genre                  = [[Application programming interface]] (API)&lt;br /&gt;
| license                = [[LGPL]]&lt;br /&gt;
}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Matrix Toolkit Java&amp;#039;&amp;#039;&amp;#039; (MTJ) is an [[open-source software|open-source]] [[Java (programming language)|Java]] [[software library]] for performing numerical [[linear algebra]].  The library contains a full set of standard linear algebra operations for [[Density matrix|dense matrices]] based on [[BLAS]] and [[LAPACK]] code.  Partial set of [[Sparse matrix|sparse]] operations is provided through the Templates project.  The library can be configured to run as a pure Java library or use BLAS machine-optimized code through the [[Java Native Interface]].&lt;br /&gt;
&lt;br /&gt;
MTJ was originally developed by Bjørn-Ove Heimsund, who has taken a step back due to other commitments.  The project webpage states that &amp;quot;(The new maintainers are) primarily concerned with keeping the library maintained, and fixing bugs as they are discovered. There is no road plan for future releases&amp;quot;.&amp;lt;ref name=&amp;quot;ProjectPage&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Several citations for MTJ can be found in scientific literature, including &amp;lt;ref name=&amp;quot;McMahan2005&amp;quot;/&amp;gt; which uses its LU preconditioner.  Performance of MTJ has been compared to other libraries, which can be found at Java Matrix Benchmark&amp;#039;s site.&amp;lt;ref name=&amp;quot;JMatBench&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Capabilities==&lt;br /&gt;
The following is an overview of MTJ&amp;#039;s capabilities, as listed on the project&amp;#039;s website:&lt;br /&gt;
&lt;br /&gt;
* Datastructures for dense and structured sparse matrices in the following formats:&lt;br /&gt;
** Dense, column major.&lt;br /&gt;
** Banded matrices, which store only a few diagonals.&lt;br /&gt;
** Packed matrices, storing only half the matrices (for triangular or symmetric matrices).&lt;br /&gt;
** Tridiagonal and symmetric tridiagonal matrices. &lt;br /&gt;
* Transparent support for symmetric and triangular storage.&lt;br /&gt;
* Datastructures for unstructured sparse matrices in these formats:&lt;br /&gt;
** Compressed row or column storage (CRS/CCS).&lt;br /&gt;
** Flexible CRS/CCS, using growable sparse vectors.&lt;br /&gt;
** Compressed diagonal storage (CDS). &lt;br /&gt;
* The dense and structured sparse matrices are built on top of BLAS and LAPACK, and include the following intrinsic operations:&lt;br /&gt;
** Matrix/vector multiplication.&lt;br /&gt;
** Matrix/matrix multiplication.&lt;br /&gt;
** Rank updates by matrices or vectors.&lt;br /&gt;
** Direct matrix solvers. &lt;br /&gt;
* The unstructured sparse matrices supports the same operations as the structured ones, except they do not have direct solvers. However, their matrix/vector multiplication methods are optimised for use in iterative solvers.&lt;br /&gt;
* Matrix decompositions of dense and structured sparse matrices:&lt;br /&gt;
** LU and Cholesky.&lt;br /&gt;
** Eigenvalue decompositions for unsymmetrical dense matrices.&lt;br /&gt;
** Singular value decompositions for unsymmetrical dense matrices.&lt;br /&gt;
** Eigenvalue decompositions for symmetrical matrices (tridiagonal, banded, packed and dense).&lt;br /&gt;
** [[Orthogonal matrix]] decompositions for dense matrices (QR, RQ, LQ, and QL). &lt;br /&gt;
* Iterative solvers for unstructured sparse matrices from the Templates project:&lt;br /&gt;
** BiConjugate gradients.&lt;br /&gt;
** BiConjugate gradients stabilized.&lt;br /&gt;
** Conjugate gradients.&lt;br /&gt;
** Conjugate gradients squared.&lt;br /&gt;
** Chebyshev iteration.&lt;br /&gt;
** Generalized minimal residual (GMRES).&lt;br /&gt;
** Iterative refinement (Richardson&amp;#039;s method).&lt;br /&gt;
** Quasi-minimal residual. &lt;br /&gt;
* A selection of algebraic preconditioners:&lt;br /&gt;
** Diagonal preconditioning.&lt;br /&gt;
** Symmetrical successive overrelaxation.&lt;br /&gt;
** Incomplete Cholesky.&lt;br /&gt;
** Incomplete LU.&lt;br /&gt;
** Incomplete LU with fill-in using thresholding.&lt;br /&gt;
** Algebraic multigrid by smoothed aggregation.&lt;br /&gt;
&lt;br /&gt;
==Usage Examples==&lt;br /&gt;
Example of Singular Value Decomposition (SVD):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SVD svd = new SVD(matA.numRows(),matA.numColumns());&lt;br /&gt;
SVD s = svd.factor(matA);&lt;br /&gt;
DenseMatrix U = s.getU();&lt;br /&gt;
DenseMatrix S = s.getS();&lt;br /&gt;
DenseMatrix Vt = s.getVt();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example of matrix multiplication:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
DenseMatrix result = new DenseMatrix(matA.numRows(),matB.numColumns());&lt;br /&gt;
matA.mult(matB,result);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[List of numerical analysis software]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{reflist|refs=&lt;br /&gt;
&amp;lt;ref name=ProjectPage&amp;gt;{{cite web |url=http://code.google.com/p/matrix-toolkits-java/ |title=MTJ Project Page |work=MTJ|access-date=November 30, 2012}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=McMahan2005&amp;gt;{{cite conference&lt;br /&gt;
 | author = McMahan, H.B.&lt;br /&gt;
 |author2=Gordon, G.J.&lt;br /&gt;
 | year = 2005&lt;br /&gt;
 | title = Fast exact planning in Markov decision processes&lt;br /&gt;
 | book-title = Proc. of the 15th International Conference on Automated Planning and Scheduling (ICAPS-05)&lt;br /&gt;
 | url = https://www.cs.cmu.edu/~ggordon/mcmahan-gordon.fast-mdp.pdf&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=JMatBench&amp;gt;{{cite web |url=https://code.google.com/p/java-matrix-benchmark/ |title=Java Matrix Benchmark | access-date=December 6, 2012}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Numerical software]]&lt;/div&gt;</summary>
		<author><name>imported&gt;2kbfloppadisk</name></author>
	</entry>
</feed>