tl;dr what is the method used for QR decomposition? Is it Gram Schmidt?
Given a matrix M we perform Q, R = torch.qr(M).
Initially I assumed  Q’s columns are achieved by applying the Gram-Schmidt procedure on M’s columns.
But then I noticed that even fro cases in which M’s columns are linearly dependent - Q’s columns still turn up othonormal (even for cases where Q’s and M’s dimension are equal). This means that span(Q) is not equal to span(M)
Since this indicates the method is not Gram Schmidt, I am curious about which method you use for the torch.qr() function
Thanks, Jonathan