8

I was doing the mathematical calculations with python or octave because of availability of really nice functions and libraries at hand. But recently I gained interest in ruby and I wonder if there is an equivalent in Ruby to the numpy, scipy in Python for scientific programming. Specifically, I'm looking something that I can draw plots as in matplotlib and do mathematical, algebraic calculations quickly as in numpy and scipy.

systemsfault
  • 15,207
  • 12
  • 59
  • 66

3 Answers3

9

SciRuby is working on this. NMatrix and Statsample are probably the most useful SciRuby gems for linear algebra and statistics, respectively, though you might also find these useful: distribution, minimization, and integration.

As far as visualization and plotting goes, check out Rubyvis (a Ruby port of Protovis). Nyaplot is also coming along nicely.

If you need something more stable than NMatrix, there's always NArray.

I'm also surprised no one has mentioned Ruby/GSL. There's also a fork which supports NMatrix over in the SciRuby github account.

Full disclosure: I'm an admin for SciRuby, but I don't make any money off of it. =)

Translunar
  • 3,739
  • 33
  • 55
  • 2
    Remark: @mohawkjohn (John Woods) has received pat on the shoulder from Matz himself to develop the all-important `NMatrix` library, using Fortran routines for speed. – Boris Stitnicky Feb 19 '14 at 08:18
6

Linear algebra is at the heart of most large-scale scientific computing. LAPACK is the gold standard for linear algebra libraries, first written in FORTRAN.

There's a port to Ruby here. Once you have that, the rest is incidental, but there are also plotting routines in Ruby.

duffymo
  • 305,152
  • 44
  • 369
  • 561
  • 3
    I've spent a couple of hours installing it and fighting with legacy fortran dependencies, here are the instructions, hopefully it will save time to someone: http://www.quora.com/Installation-Instructions/How-do-I-install-Ruby-linalg-library-on-Mac – alex Dec 03 '11 at 05:53
3

I compared and gave examples for a number of different plotting libraries that you can use from Ruby. I hope that helps with the second part of your question.

Chris Lowis
  • 560
  • 4
  • 14