From: Cai Li Date: 2004-06-29T22:06:11+09:00 Subject: Re: [ANN] Ruby Linear Algebra Library Jeff Mitchell wrote: >[ANN] linalg-0.3.2 -- Ruby Linear Algebra Library > >http://linalg.rubyforge.org/ > >http://rubyforge.org/frs/?group_id=273 > >----------------- >>From the README: > >Major features: >* Cholesky decomposition >* LU decomposition >* QR decomposition >* Schur decomposition >* Singular value decomposition >* Eigenvalues and eigenvectors of a general matrix >* Minimization by least squares >* Linear equation solving >* Stand-alone LAPACK bindings: > call any LAPACK routine from directly from ruby. > >----------------- >Release notes: > >Initial release. > >There are no dependencies for the pre-built packages -- >linalg-0.3.2-i686-linux-ruby18.tgz >linalg-0.3.2-i386-mswin32-ruby18.zip > >To build from source, you need: LAPACK, BLAS, libf2c. Your OS should >have these packages available in binary form. If not, you will need a >Fortran compiler. (The pre-builts statically link these packages, >thus no dependencies.) > >The pre-built win32 linalg is somewhat incompatible with the 1.8.1 >Ruby One-Click Installer, as are all extensions not built with Visual >Studio .NET. (I say "somewhat" because it probably won't crash for >light use, but no guarantees.) > >You can pick up a compatible 1.8.1 win32 ruby at >http://www.dm4lab.to/~usa/ruby/index_en.html > >There is a new test 1.8.2 one-click installer which seems to work >(it reverts back to the common win32 compatible runtime): >http://rubyforge.org/frs/download.php/852/ruby182-14-test.zip > >----------------- >linalg is a by-product of my academic work with crystallographic space >groups. A good deal of linear algebra functionality from Mathematica >and Matlab can be found in linalg, with equal or greater speed insofar >as per-matrix function calls. > >It started when I was too lazy to move from ruby back to Mathematica, >and too lazy to set up Mathlink or some such. What I was doing was >not particularly suited to Mathematica either, minus the linear >algebra part, which among other things was communicating with two >other processes, a little networking, and spitting out LaTeX output. >It was nice to be free of Mathematica as well. > >I have pounded on this package pretty thoroughly in real-life >applications, so I do not expect many serious bugs, if at all. This >kind of package is very amenable to unit testing as well. > >I realize linalg is mostly for specialized use; singular value >decompositions are not the most urgent necessity for rubyists, I can >assume. But that is what I needed, so here it is. > >Excerpt from the end of the README: Perhaps some day there will be a >common library which all numerical ruby packages may share. Perhaps >the basis will be the R-project library. But for now, linalg exists >because the LAPACK routines were "right there" in front of me, I >needed them, and it was easy to call them. > >I'll add that although full functionality for complex-number matrices >is not yet finished, it would not take too much time to complete. >However I hesitate for fear of something better coming along which can >do singular value decompositions and eigenvalues of a general matrix. > >If enough people request it, I'll get off my butt and implement the >complex side. By the way there is no reason to touch C code -- all >the LAPACK routines are available within ruby and all the core methods >are implemented in C for all matrix types. This makes contributing >easier. > >linalg contains a few ideas which are independently useful, I think. >The Linalg::Iterators mix-in comes to mind. Check it out :) > > > Great job!I am just looking forward such a Matlab-like module. Do you put some iterative techniques in matrix algebra in your to-do list?Since I am working on implementing some ones in Ruby ,like SOR.