Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?gelq
Computes an LQ factorization of a general matrix.
Syntax
call sgelq ( m , n , a , lda , t , tsize , work , lwork , info )
call dgelq ( m , n , a , lda , t , tsize , work , lwork , info )
call cgelq ( m , n , a , lda , t , tsize , work , lwork , info )
call zgelq ( m , n , a , lda , t , tsize , work , lwork , info )
Description
The ?gelq routines computes an LQ factorization of an m -by- n matrix A . If the matrix is short and wide ( n is substantially larger than m ), a highly scalable algorithm is used to avoid communication overhead.
Input Parameters
m
INTEGER . The number of rows of the matrix A . m ≥ 0.
n
INTEGER . The number of columns of the matrix A . n ≥ 0.
- a
-
REAL for sgelq DOUBLE PRECISION for dgelq COMPLEX for cgelq COMPLEX*16 for zgelq Array, size (lda, n) . Contains the m -by- n matrix A .
lda
INTEGER . The leading dimension of the array a . lda ≥ max(1, m) .
tsize
INTEGER .
If tsize ≥ 5, the size of the array t . If tsize = -1 or tsize = -2, then the routine performs a workspace query. The routine calculates the sizes required for the t and work arrays and returns these values as the first entries of the t and work arrays, without issuing any error message related to t or work by xerbla .
If tsize = -1, the routine calculates the optimal size of t for optimum performance and returns this value in t(1) . If tsize = -2, the routine calculates then minimum size required for t and returns this value in t(1) .
lwork
INTEGER . The size of the array work . If lwork = -1 or lwork = -2, then the routine performs a workspace query. The routine only calculates the sizes of the t and work arrays and returns these values as the first entries of the t and work arrays, without issuing any error message related to t or work by xerbla .
If lwork = -1, the routine calculates the optimal size of work for optimum performance and returns this value in work(1) . If lwork = -2, the routine calculates the minimum size required for work and returns this value in work(1) .
Output Parameters
- a
-
REAL for sgelq DOUBLE PRECISION for dgelq COMPLEX for cgelq COMPLEX*16 for zgelq The elements on and below the diagonal of the array contain the lower trapezoidal matrix L ( L is lower triangular if m ≤ n ). The elements above the diagonal are used to store part of the internal data structure representing Q .
- t
-
REAL for sgelq DOUBLE PRECISION for dgelq COMPLEX for cgelq COMPLEX*16 for zgelq Array, size (max(5,tsize)). If info = 0, t(1) returns the optimal value for tsize . You can specify that it return the minimum required value for tsize instead - see the tsize description for details. The remaining entries of t contains part of the data structure used to represent Q . To apply or construct Q, you need to retain a and t and pass them to other routines.
- work
-
REAL for sgelq DOUBLE PRECISION for dgelq COMPLEX for cgelq COMPLEX*16 for zgelq Array, size (max(1,lwork)) . If info = 0, work(1) contains the optimal value for lwork . You can specify that it return the minimum required value for lwork instead - see the lwork description for details.
info
INTEGER .
info = 0 indicates a successful exit.
info < 0: if info = - i , the i -th argument had an illegal value.