Visible to Intel only — GUID: GUID-8E5B2CDB-2BFA-4DC0-A80B-CBB7A6CB33D2
Visible to Intel only — GUID: GUID-8E5B2CDB-2BFA-4DC0-A80B-CBB7A6CB33D2
?orgqr
Generates the real orthogonal matrix Q of the QR factorization formed by ?geqrf.
lapack_int LAPACKE_sorgqr (int matrix_layout, lapack_int m, lapack_int n, lapack_int k, float* a, lapack_int lda, const float* tau);
lapack_int LAPACKE_dorgqr (int matrix_layout, lapack_int m, lapack_int n, lapack_int k, double* a, lapack_int lda, const double* tau);
- mkl.h
The routine generates the whole or part of m-by-m orthogonal matrix Q of the QR factorization formed by the routine ?geqrf or geqpf. Use this routine after a call to sgeqrf/dgeqrf or sgeqpf/dgeqpf.
Usually Q is determined from the QR factorization of an m by p matrix A with m≥p. To compute the whole matrix Q, use:
LAPACKE_?orgqr(matrix_layout, m, m, p, a, lda, tau)
To compute the leading p columns of Q (which form an orthonormal basis in the space spanned by the columns of A):
LAPACKE_?orgqr(matrix_layout, m, p, p, a, lda)
To compute the matrix Qk of the QR factorization of leading k columns of the matrix A:
LAPACKE_?orgqr(matrix_layout, m, m, k, a, lda, tau)
To compute the leading k columns of Qk (which form an orthonormal basis in the space spanned by leading k columns of the matrix A):
LAPACKE_?orgqr(matrix_layout, m, k, k, a, lda, tau)
- matrix_layout
-
Specifies whether matrix storage layout is row major (LAPACK_ROW_MAJOR) or column major (LAPACK_COL_MAJOR).
- m
-
The order of the orthogonal matrix Q (m≥ 0).
- n
-
The number of columns of Q to be computed
(0 ≤n≤m).
- k
-
The number of elementary reflectors whose product defines the matrix Q (0 ≤k≤n).
- a, tau
-
Arrays:
a and tau are the arrays returned by sgeqrf / dgeqrf or sgeqpf / dgeqpf.
The size of a is max(1, lda*n) for column major layout and max(1, lda*m) for row major layout .
The size of tau must be at least max(1, k).
- lda
-
The leading dimension of a; at least max(1, m)for column major layout and max(1, n) for row major layout.
- a
-
Overwritten by n leading columns of the m-by-m orthogonal matrix Q.
This function returns a value info.
If info=0, the execution is successful.
If info = -i, the i-th parameter had an illegal value.
The computed Q differs from an exactly orthogonal matrix by a matrix E such that
||E||2 = O(ε)|*|A||2 where ε is the machine precision.
The total number of floating-point operations is approximately 4*m*n*k - 2*(m + n)*k2 + (4/3)*k3.
If n = k, the number is approximately (2/3)*n2*(3m - n).
The complex counterpart of this routine is ungqr.