Excellent! so I guess SSVD can be divorced from apache-math solver then.
Actually it all shaping up surprisingly well, with scala DSL for both in-core and mahout DRMS and spark solvers. I haven't been able to pay as much attention to this as i hoped due to being pretty sick last month. But even with very few time, I think DRM+DSL drivers and in-core scala DSL for this might earn much easier acceptance for in-core and distributed linear algebra in Mahout. Not to mention memory-cached DRM spark representation is a door to iterative solvers. It's been coming together quite nicely and in-core eigen decomposition makes it a really rounded offer. (i of course was after eigen for the spark version of SSVD/PCA). I guess i will report back when i get basic Bagel-based primitives working for DRMs. On Wed, Jul 3, 2013 at 8:53 PM, Ted Dunning <ted.dunn...@gmail.com> wrote: > On Wed, Jul 3, 2013 at 6:25 PM, Dmitriy Lyubimov <dlie...@gmail.com> > wrote: > > > On Wed, Jun 19, 2013 at 12:20 AM, Ted Dunning <ted.dunn...@gmail.com> > > wrote: > > > > > > > > As far as in-memory solvers, we have: > > > > > > 1) LR decomposition (tested and kinda fast) > > > > > > 2) Cholesky decomposition (tested) > > > > > > 3) SVD (tested) > > > > > > > Ted, > > so we don't have an eigensolver for the in-core Matrix? > > > > Yes. We do. > > See org.apache.mahout.math.solver.EigenDecomposition > > Looking at the history, I am slightly surprised to see that I was the one > who copied it from JAMA, replacing the Colt version and adding tests. > > > > I understand that svd can be solved with an eigen decomposition but not > the > > other way around, right? > > > > Well, the eigen decomposition of the normal matrix can give the SVD, but > this is often not recommended due to poor conditioning. In fact, the eigen > decomposition of any positive definite matrix is the same as the SVD. > > Where eigen values are complex, it is common to decompose to a block > diagonal form where real values are on the diagonal and complex > eigen-values are represented as 2x2 blocks. Our decomposition does this. >