Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?geqr2
Computes the QR factorization of a general rectangular matrix using an unblocked algorithm.
Syntax
call sgeqr2(m, n, a, lda, tau, work, info)
call dgeqr2(m, n, a, lda, tau, work, info)
call cgeqr2(m, n, a, lda, tau, work, info)
call zgeqr2(m, n, a, lda, tau, work, info)
Include Files
mkl.fi
Description
The routine computes a QR factorization of a real/complex m -by- n matrix A as A = Q*R .
The routine does not form the matrix Q explicitly. Instead, Q is represented as a product of min( m , n ) elementary reflectors :
Q = H(1)*H(2)* ... *H(k) , where k = min(m, n)
Each H (i) has the form
H(i) = I - tau*v*v^{T} for real flavors, or
H(i) = I - tau*v*v^{H} for complex flavors
where tau is a real/complex scalar stored in tau(i)[i] , and v is a real/complex vector with v_{1:i-1} = 0 and v_{i} = 1 .
On exit, v_{i+1:m} is stored in a(i+1:m, i) .
Input Parameters
The data types are given for the Fortran interface.
- m
-
INTEGER. The number of rows in the matrix A. The value of m must be at least zero.
n
INTEGER . The number of columns in A ( n≥ 0 ).
- a , work
-
REAL for sgeqr2 DOUBLE PRECISION for dgeqr2 COMPLEX for cgeqr2 DOUBLE COMPLEX for zgeqr2 . Arrays: a(lda,*) contains the m -by- n matrix A . The second dimension of a must be at least max(1, n) . work(n) is a workspace array.
- a
-
Array, size at least max(1, lda*n) for column major and max(1, lda*m) for row major layout. Array a contains the m -by- n matrix A .
lda
INTEGER . The leading dimension of a ; at least max(1, m ) .
Output Parameters
- a
-
Overwritten by the factorization data as follows: on exit, the elements on and above the diagonal of the array a contain the min( n , m )-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/unitary matrix Q as a product of elementary reflectors.
- tau
-
REAL for sgeqr2 DOUBLE PRECISION for dgeqr2 COMPLEX for cgeqr2 DOUBLE COMPLEX for zgeqr2 . Array, size at least max(1, min(m, n)) . Contains scalar factors of the elementary reflectors.
info
INTEGER .
If info = 0 , the execution is successful.
If info = -i , the i -th parameter had an illegal value.
If info = -1011 , memory allocation error occurred.
Return Values
No return value, info is an Output Parameter.