`a`

or `b`

can be complex, but this uses double complex
arithmetic which might not be available on all platforms.

The row and column names of the result are taken from the column names
of `a`

and of `b`

respectively. If `b`

is missing the
column names of the result are the row names of `a`

. No check is
made that the column names of `a`

and the row names of `b`

are equal.

For back-compatibility `a`

can be a (real) QR decomposition,
although `qr.solve`

should be called in that case.
`qr.solve`

can handle non-square systems.

Unsuccessful results from the underlying LAPACK code will result in an
error giving a positive error code: these can only be interpreted by
detailed study of the FORTRAN code.