SuanShu is a Java math library. It is open-source under Apache License 2.0 available in GitHub. SuanShu is a large collection of Java classes for basic numerical analysis, statistics, and optimization. It implements a parallel version of the adaptive strassen's algorithm for fast matrix multiplication. SuanShu has been quoted and used in a number of academic works.

Features

linear algebra

root finding

curve fitting and interpolation

unconstrained and constrained optimization

statistical analysis

linear regression

probability distributions and random number generation

ordinary and partial differential equation solvers

License terms

SuanShu is released under the terms of the Apache License 2.0

Examples of usage

The following code shows the object-oriented design of the library (in contrast to the traditional procedural design of many other FORTRAN and C numerical libraries) by a simple example of minimization.

SuanShu numerical library

LogGamma logGamma = new LogGamma(); // the log-gamma function

BracketSearchMinimizer solver = new BrentMinimizer(1e-8, 10); // precision, max number of iterations UnivariateMinimizer.Solution soln = solver.solve(logGamma); // optimization double x_min = soln.search(0, 5); // bracket = [0, 5] System.out.println(String.format("f(%f) = %f", x_min, logGamma.evaluate(x_min)));

SuanShu numerical library

See also

SOCP - Explanation of Second Order Conic Programming

SDP - Explanation of Semidefinite Programming

SQP - Explanation of Sequential quadratic programming

Interior Point Method

Adaptive strassen's algorithm – fast matrix multiplication

Apache License 2.0 - Version 2 of the Apache Software License

References

Numerical libraries

Java (programming language) libraries

Public-domain software with source code

Numerical software

SuanShu numerical library