Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Tooling for expressive, feature rich numeric computations on the JVM

I am looking for numeric computation tooling on the JVM. My major requirements are expressiveness/readability, ease of use, evaluation and features in terms of mathematical functions. I guess I am after something like the Matlab kernel (probably including some basic libraries and w/o graphics) on the JVM. I'd like to be able to "throw" computional code at a running JVM and want this code to be evaluated. I don't want to worry about types. Arbitrary precision and performance is not so important.

I guess there are some nice libraries out there but I think an appropriate language on top is needed to get the expressiveness.

Which tooling would you guys suggest to address expressive, feature rich numeric computation on the JVM ?

like image 737
Andreas Steffan Avatar asked Dec 15 '22 13:12

Andreas Steffan


2 Answers

From the jGroovyLab page:

The GroovyLab environment aims to provide a Matlab/Scilab like scientific computing platform that is supported by a scripting engine implemented in Groovy language. The GroovyLab user can work either with a Matlab-lke command console, or with a flexible editor based on the jsyntaxpane (http://code.google.com/p/jsyntaxpane/) component, that offers more convenient code development. Also, GroovyLab supports Computer Algebra based on the symja (http://code.google.com/p/symja/) project.

And there is also GroovyLab:

GroovyLab is a collection of Groovy classes to provide matlab-like syntax and basic features (linear algebra, 2D/3D plots). It is based on jmathplot and jmatharray libs:

Groovy has a smooth learning curve for Java programmers and a flexible syntax similar to Ruby. It is also pretty easy to write a DSL on it.

Though Groovy's performance is pretty good for a dynamic language, you can use static compilation if you are in the need for it.

like image 158
Will Avatar answered Mar 02 '23 01:03

Will


Most of Mathworks Matlab is built on the Intel Math Kernel Library (MKL), which is (IMHO) the unbeatable champion in linear algebra computations. There is java support, but it costs 500 dollar (the MKL, not just the java support)...

Best second option if you want to use java is jblas, which uses BLAS and LAPACK, the industry standards for linear algebra.

Pure java libraries' performances are horrible apparently, see here...

like image 26
reverse_engineer Avatar answered Mar 01 '23 23:03

reverse_engineer