matrix-toolkits-java

A comprehensive collection of matrix data structures, linear solvers, least squares methods, eigenvalue, and singular value decompositions. Forked from: https://github.com/fommil/matrix-toolkits-java and added support for eigenvalue computation of general matrices

License

License

Categories

Categories

Java Languages
GroupId

GroupId

io.github.andreas-solti.matrix-toolkits-java
ArtifactId

ArtifactId

mtj
Last Version

Last Version

1.0.8
Release Date

Release Date

Type

Type

jar
Description

Description

matrix-toolkits-java
A comprehensive collection of matrix data structures, linear solvers, least squares methods, eigenvalue, and singular value decompositions. Forked from: https://github.com/fommil/matrix-toolkits-java and added support for eigenvalue computation of general matrices
Project URL

Project URL

https://github.com/andreas-solti/matrix-toolkits-java/
Source Code Management

Source Code Management

https://github.com/andreas-solti/matrix-toolkits-java

Download mtj

How to add to project

<!-- https://jarcasting.com/artifacts/io.github.andreas-solti.matrix-toolkits-java/mtj/ -->
<dependency>
    <groupId>io.github.andreas-solti.matrix-toolkits-java</groupId>
    <artifactId>mtj</artifactId>
    <version>1.0.8</version>
</dependency>
// https://jarcasting.com/artifacts/io.github.andreas-solti.matrix-toolkits-java/mtj/
implementation 'io.github.andreas-solti.matrix-toolkits-java:mtj:1.0.8'
// https://jarcasting.com/artifacts/io.github.andreas-solti.matrix-toolkits-java/mtj/
implementation ("io.github.andreas-solti.matrix-toolkits-java:mtj:1.0.8")
'io.github.andreas-solti.matrix-toolkits-java:mtj:jar:1.0.8'
<dependency org="io.github.andreas-solti.matrix-toolkits-java" name="mtj" rev="1.0.8">
  <artifact name="mtj" type="jar" />
</dependency>
@Grapes(
@Grab(group='io.github.andreas-solti.matrix-toolkits-java', module='mtj', version='1.0.8')
)
libraryDependencies += "io.github.andreas-solti.matrix-toolkits-java" % "mtj" % "1.0.8"
[io.github.andreas-solti.matrix-toolkits-java/mtj "1.0.8"]

Dependencies

compile (1)

Group / Artifact Type Version
com.github.fommil.netlib : all pom 1.1.2

provided (2)

Group / Artifact Type Version
org.projectlombok : lombok jar 1.16.22
com.github.fommil : java-logging jar 1.1

test (4)

Group / Artifact Type Version
junit : junit jar 4.12
com.google.guava : guava jar 18.0
net.sf.opencsv : opencsv jar 2.3
org.apache.commons : commons-math3 jar 3.6.1

Project Modules

There are no modules declared in this project.

Build Status Coverage Status Maven Central Javadoc

matrix-toolkits-java

MTJ is a high-performance library for developing linear algebra applications.

See matrix-toolkits-java for the original library.

This fork is just a minor extension to cover the case of general matrices. The symmetric case was already covered in ArpackSym. The new class is ArpackGen. It uses ARPACK's dnaupd and dneupd routines for the Implicitly Restarted Arnoldi Iteration.

Sparse Solvers

MTJ provides ARPACK for very large symmetric matrices in ArpackSym (see the example usage in ArpackSymTest). ARPACK solves an arbitrary number of eigenvalues / eigenvectors.

In addition, implementations of the netlib Templates are available in the no.uib.cipr.matrix.sparse package.

Users may wish to look at Sparse Eigensolvers for Java for another solver.

Legal

  • Copyright (C) 2003-2006 Bjørn-Ove Heimsund
  • Copyright (C) 2006-2014 Samuel Halliday

History

This project was originally written by Bjørn-Ove Heimsund, who has taken a step back due to other commitments. The original project matrix-toolkits-java is maintained by Samuel Halliday.

Installation

Releases are distributed on Maven central:

<dependency>
    <groupId>io.github.andreas-solti.matrix-toolkits-java</groupId>
    <artifactId>mtj</artifactId>
    <version>1.0.5</version>
</dependency>

Example Code

   // check out test class in SparseEigenvalueTest:
   CompColMatrix m = createRandomMatrix(10,15); // create a random
   ArpackGen generalSolver = new ArpackGen(matrix);
   generalSolver.setComputeOnlyEigenvalues(true);
   Map<Double, DenseVectorSub> eigenValueMap = generalSolver.solve(3, ArpackGen.Ritz.LR); // get 3 largest eigenvalues
   double largestARPACKEigenValue = eigenValueMap.keySet().iterator().next();

Contributing

Contributors are encouraged to fork this repository and issue pull requests. Contributors implicitly agree to assign an unrestricted licence to Sam Halliday, but retain the copyright of their code (this means we both have the freedom to update the licence for those contributions).

Versions

Version
1.0.8
1.0.7
1.0.6
1.0.5