Given the way we implement matrix multiplication in DRM, folding in a rescaling would be very easy to add (the same method could even extended by being given a Vector of diagonal values, which when null is ignored).
Just be careful to multiply it in the correct order (ie make sure you output A^t * B * D, not D * A^t * B) - being able to tell which is which inside of DistributedRowMatrix#times() is tricky. -jake On Fri, Feb 25, 2011 at 3:53 PM, Ted Dunning <[email protected]> wrote: > ?!? > > Please do! > > On Fri, Feb 25, 2011 at 3:07 PM, Dmitriy Lyubimov <[email protected]> > wrote: > > > Do you mind if i look into it? > > > > > > On Fri, Feb 25, 2011 at 2:25 PM, Ted Dunning <[email protected] > >wrote: > > > >> I don't think we have a single method for this, but it would be very > easy > >> to implement. > >> > >> > >> On Fri, Feb 25, 2011 at 1:21 PM, Dmitriy Lyubimov <[email protected] > >wrote: > >> > >>> Ok, thank you, Ted. > >>> > >>> The reason i am actually asking is fold-in jobs in LSI which are > >>> basically > >>> very similar operation (multiplication + scaling). Because if you could > >>> do > >>> it with DRM > >>> method, i would just need to describe what to call or run. Sorry for > the > >>> offtopic. > >>> > >>> -Dmitriy > >>> > >>> On Fri, Feb 25, 2011 at 1:05 PM, Ted Dunning <[email protected]> > >>> wrote: > >>> > >>> > I think that lanczos may already do this. The correction for the > >>> diagonal > >>> > matrix just involves weighting the output rows as they are produced. > I > >>> > don't know that is in any explicit code. You may not even want it if > >>> you > >>> > want to get scaled left (right) eigenvectors. > >>> > > >>> > >> > >> > > >
