13

I'm looking for a library to do numerical computing in Scala (or Java, although something that can use scala functions would be way nicer!) with at least the following capabilities:

  • L-BFGS
  • Minimizers (Powell, QuasiNewton, ...)
  • Numerical differentiation of multivariable functions
  • Numerical integration (not strictly necessary but highly preferred)

I'm also only looking for something that's actively maintained (last update during 2011 at the earliest), preferably but not necessarily free. Also, numerical stability is required, aka all operations should be implemented in a way that gives consistent results where precision is preserved as much as possible.

I'm already aware of IMSL, but would prefer something else.

Thanks in advance

em70
  • 6,088
  • 6
  • 48
  • 80
  • 1
    [Commons math](http://commons.apache.org/math/apidocs/overview-summary.html)? – Owen Feb 17 '12 at 17:50
  • Would work if it exposed a public API for numerical differentiation and had a Powell optimizer. Also, can't seem to find much information about numerical stability or performance... – em70 Feb 19 '12 at 13:43

6 Answers6

3

SuanShu is a Java math library of numerical methods for numerical analysis.

H Li
  • 15
  • 2
Santosh Gokak
  • 3,393
  • 3
  • 22
  • 24
2

Late to this...

Try ND4S -- it supports n-dimensional arrays for Scala and other JVM-based languages.

It's linked to an open-source framework called Deeplearning4j, which implements algorithms such as LBFGS.

racknuf
  • 444
  • 3
  • 12
1

There is Scalala for Scala, but I am not sure it covers your need.

There are also the ones listed in this SO question: Java Scientific Packages similar to SciPy?.

Community
  • 1
  • 1
pedrofurla
  • 12,763
  • 1
  • 38
  • 49
  • Scalala is definitely good but it falls short on several of my needs... The link to the other question is good indeed, but not resolutive :( – em70 Feb 23 '12 at 07:43
0

What about breeze, which is used in scalanlp? I see Spark is using it in the implementation of its LBFGS method too.

linello
  • 8,451
  • 18
  • 63
  • 109
0

Take a look at ScalaLab and its dependencies

oluies
  • 17,694
  • 14
  • 74
  • 117
  • 1
    From a quick look, seems to fall short at least on numerical differentiation and integration. Am I missing something? – em70 Feb 18 '12 at 12:24
0

You can try http://code.google.com/p/scalalab/ and http://commons.apache.org/math/ I am not sure if they matches you needs but they are updated and have a lots of functions

Mattias
  • 9,211
  • 3
  • 42
  • 42