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.
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)));