It looks like the documentation magma_dgeqrf functions is not up-to-date:
- Code: Select all
A (input/output) DOUBLE_PRECISION array on the GPU, dimension (LDDA,N)
On entry, the M-by-N matrix A.
On exit, the elements on and above the diagonal of the array
contain the min(M,N)-by-N upper trapezoidal matrix R (R is
upper triangular if m >= n); the elements below the diagonal,
with the array TAU, represent the orthogonal matrix Q as a
product of min(m,n) elementary reflectors (see Further
Details).
It seems that the upper part of the matrix isn't R contrary to what is stated in the documentation.
magma_dgeqrf3 documentation has the same kind of issue but it has a correct description:
DGEQRF3 computes a QR factorization of a DOUBLE_PRECISION M-by-N matrix A:
A = Q * R. This version stores the triangular matrices T used in
the block QR factorization so that Q can be applied directly (i.e.,
without being recomputed) later. As a result, the application
of Q is much faster. The upper triangular matrices for V have 0s
in them and the corresponding parts of the upper triangular R are
stored separately.
The issue is of course not major but I prefer to report it if someone else wonders why he doesn't get R as expected.
Regards,
Rémi
