24

Can you advise me some flexible and powerful, yet fast library which could cover SciPy (both in performance and functionality). I found SciPy very expressive - but I want to try something in Scala.

I read a little about Scala - but is not as featured as SciPy. Any alternatives? Maybe Java library?

axel22
  • 32,045
  • 9
  • 125
  • 137
Robert Zaremba
  • 8,081
  • 7
  • 47
  • 78

3 Answers3

17

The functionality in Scipy is rather Matlab-like. So the question is whether you just want the core linear algebra / vector-matrix mathematics operations, or all sorts of things like clustering.

If you are not aware of both Scalala (now called Breeze) and ScalaLab, you should check them out--maybe they'll suit your needs.

If you need a more diverse library, there are a couple of Java libraries that might be suitable: CERN Colt and Apache Commons Math; these are intended to be used in Java style, however, and you're pretty much limited to using them that way from within Scala. (Though of course you can wrap the bits that you use particularly heavily in something prettier.)

Rex Kerr
  • 166,841
  • 26
  • 322
  • 407
  • 1
    ScalaLab + apache commons math sound like a good combination. But for now I didn't find anything as good as (in terms of composition and strength) as SciPy – Robert Zaremba Mar 14 '11 at 12:59
  • 1
    Scalala seems to be deprecated and merged into [breeze](https://github.com/dlwh/breeze) now – BeniBela Feb 24 '13 at 16:41
4

There are scalala (scala linear algebra library) and ScalaLab (more like a Matlab scala-environment)

Scott Morrison
  • 3,100
  • 24
  • 39
oxbow_lakes
  • 133,303
  • 56
  • 317
  • 449
1

There is a la4j (Linear Algebra for Java) library that can be used from Scala environment but it doesn't contain any Scala features like hi-order functions since Java doesn't support it. la4j was designed to be used in imperative environment (not functional). So if you want to use it in functional way - Scalala is the best chose.

Vladimir Kostyukov
  • 2,492
  • 3
  • 21
  • 30