On Sat, Jul 27, 2013 at 6:31 PM, Dmitriy Lyubimov <[email protected]> wrote:
> > > > > >> > diagv(1 /: s) >> > >> >> But since this is just the inverse of the matrix, and I imagine it's >> actually >> clearer to do just diagv(s).inverse instead of diagv(1 /: s) >> >> > Well. DSL is just the icing. Nobody's taking the cake away. > > in a sense that, once/if/when Mahout supports inverse(), it would be > exactly how one might use it. DSL is not about implementation, it is about > semantic sugar only. It only maps to what exists. > > On a side note, it never actually occurred to me to call pinv() or solve() > on a diagonal matrix. Or orthonormal for that matter. Their identities are > so appealing it kind of becomes second nature after some time. the only use > for solve() i had is actually for solving linear equations. In my R > prototype for SSVD [1] one will find exactly the same style code, i.e. > diag(1/e$values) . > > pardon, this should read "non-signular" of course, an honest typo. > Even then you probably actually want leftInverse() and rightInverse(), not > just inverse, which is only defined for *non *singular square matrices > and would be equal right and left inverses in that case. Which oddly enough > brings us back to left-associative and right-associative operations. > > [1] > https://cwiki.apache.org/confluence/download/attachments/27832158/ssvd.R?version=1&modificationDate=1323358453000 > >
