BallisticLA / RandBLAS

A header-only C++ library for sketching in randomized linear algebra
https://randblas.readthedocs.io/en/stable/
Other
75 stars 6 forks source link

Dense sketching: only generate the submatrix needed for a requested multiplication #52

Closed rileyjmurray closed 1 year ago

rileyjmurray commented 1 year ago

This is a follow-up to PR #51 and will resolve issue #36.

The changes here warrant an update to the web documentation. That'll be handled in separate PR.

Changes to functions for generating dense sketching operators

Changes to functions for applying dense sketching operators

LSKGE3 and RSKGE3 were changed so that if the input sketching operator S0 satisfied the condition !S0.buff, then we would

  1. define a new sketching operator S with the same shape as $\mathrm{submat}(\texttt{S0})$ and a BlackBox distribution family, then
  2. populate the buffer of S on an appropriate submatrix of S0 (possibly all of S0), before
  3. making a recursive call to LSKGE3/RSKGE3 with (S0, i_os, j_os) replaced by (S, 0, 0).