This would be a problem imho. But I don't see why you can't add "raw" to numpy's qr. And if you add "big" and "thin" in numpy, you can add those modes in scipy too.

Currently I've used bfroehle's suggestions, although I'm tempted by 'thin' instead of 'reduced'

Thin sounds fine to me. Either way I think we need to clean up the docstring to make the different calling styles more obvious. Perhaps we can just add a quick list of variants:

q, r = qr(a) # q is m-by-k, r is k-by-n

q, r = qr(a, 'thin') # same as qr(a)

q, r = qr(a, 'complete') # q is m-by-n, r is n-by-n

r = qr(a, 'r') # r is ....

a2 = qr(a, 'economic') # r is contained in the upper triangular part of a2

a2, tau = qr(a, 'raw') # ...

Regards,

Brad