Nuralanur / aol.com wrote:
> Dear all,
>  
> I am searching for some code that can decompose rectangular
> matrices according to SVD.
> Unfortunately, rb-gsl can only handle square matrices.
>  
> Also, I've have some strange installation error with the linalg  library.
> (I've posted a message to the list about this).
> Is there any other software that can singular-decompose a matrix
> that is rectangular and maybe really big and "very rectangular" ?
> Can  someone who uses linalg tell me what options to use to tell
> install.rb what options to use ?
>   
What do you mean by "really big"? Does the matrix fit in *real* memory 
on your system, or do you need an "out of core" SVD? Is the matrix dense 
or sparse? And are you just doing the SVD, or is there some real-world 
processing downstream of the singular values and vectors?

IIRC Lapack has a dense in-core SVD built in, and I know that R can do 
an SVD and many of the statistical functions downstream, like linear 
regression, principal component analysis, "machine learning", etc. If 
you're in a hurry, the best course of action might be to "shell out" to 
R from your Ruby code and read the singular values and vectors back in.

Sparse SVDs are a whole different ballgame. IIRC the algorithm of choice 
is a Lanczos code pioneered in Fortran a couple of decades back by Jane 
Cullum and Ralph Willoughby. A search of NetLib using

http://www.netlib.org/cgi-bin/search.pl

turned up this:

http://www.netlib.org/tennessee/ut-cs-93-194.ps
>  
> Thank you very much!
>  
> Best regards,
>  
> Axel 
>
>   

-- 
M. Edward (Ed) Borasky

http://linuxcapacityplanning.com