Library of Number Crunching Routines for Java
Written by Alex Armstrong
Wednesday, 06 February 2013

Java developers now have access to a well known set of mathematical and statistical routines with the release of the NAG Library for Java.

Programmers needing accurate and reliable numerical functionality generally face the dilemma of attempting to do-it-yourself  or soucing an existing library. As we all know the tempation is to DIY, but unless you are an expert in numerical methods it is always safer, faster and ultimately cheaper, to use an off-the shelf library.

The Numerical Algorithms Group's NAG Library is one of the best known and well thought of numerical libraries available but until now it wasn't available in an easy-to-use form for Java programmers without having to worry about calling C from Java using the JNI (Java Native Interface).

The latest release makes things much simpler. Now you can use the NAG library without having to master JNI - you simply call the documented Java function. The core library is still the NAG Library for Fortran Mark 23 (i.e. the 23rd release) but a set of Java wrappers means that you can call the routines as if they were native Java functions. This has the advantage that you get the latest and fastest numerical routines combined with the ability to just use them within a Java application.

NAG Library for Java uses NAG 23 and  includes 1,700 routines all of which are now available in Java.

Numerical routines include:

• Optimization, (Local and Global)
• Linear, quadratic, integer and nonlinear programming
• Ordinary and partial differential equations
• Solution of dense, banded and sparse linear equations and eigenvalue problems
• Solution of linear and nonlinear least squares problems
• Curve and surface fitting
• Interpolation
• Special functions
• Numerical integration and integral equations
• Roots of nonlinear equations
• Option Pricing Formulas
• Wavelet Transforms

Statistical routines include

• Random number generation
• Calculations on statistical data
• Correlation and regression analysis
• Multivariate methods
• Analysis of variance and contingency table analysis
• Time series analysis
• Nonparametric statistics

There are already versions for C and C++ with over 1500 routines. It's .NET version can be used from C#, VB, C++ or F# and works in a 32-bit or 64-bit environment. The NAG Library can also be called from Excel and there is NAG toolbox for MATLAB. NAG

NAG Library for Java

#### Related Articles

How to number crunch - NAG for .NET

New number crunching library - NAG C Mark 9

.NET Version of Mathematical Algorithms

NAG for Intel Xeon Phi Coprocessor 