BallisticLA / RandLAPACK

A high-performance C++ library for randomized numerical linear algebra
60 stars 6 forks source link

Semantics for rangefinders #42

Closed rileyjmurray closed 1 year ago

rileyjmurray commented 1 year ago

We're ambiguous about what a rangefinder is supposed to do when a k-dimensional space is requested, but the input matrix has rank less than k.

In PARLA, we say that we return a column-orthonormal matrix with a number of columns that doesn't exceed the rank of A. In RandLAPACK, we don't make this guarantee. @TeachRaccooon and I spoke today about this discrepancy and suggest adopting the following semantics for Q = rangefinder(A, k):

We should update rangefinder documentation accordingly and take this into account when writing tests for rangefinders (see #41).

Note: these semantics don't work well with a rangefinder based on CQRRPT, which only returns a Q-factor with a number of columns at most the rank of the input.

rileyjmurray commented 1 year ago

These semantics were set in https://github.com/BallisticLA/RandLAPACK/commit/c0f667ae392bf07b6232eb85f154635e5f909f87 and are tested as of https://github.com/BallisticLA/RandLAPACK/commit/cdedec4ffdd073fe1ba2fe27e442bcf763ebf30e.