Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 11/07/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

?gelqt

?gelqt computes a blocked LQ factorization of a real or complex m-by-n matrix A using the compact WY representation of Q.

call sgelqt(m, n, mb, a, lda, t, ldt, work, info)

call dgelqt(m, n, mb, a, lda, t, ldt, work, info)

call cgelqt(m, n, mb, a, lda, t, ldt, work, info)

call zgelqt(m, n, mb, a, lda, t, ldt, work, info)

Description

?gelqt computes a blocked LQ factorization of a real or complex m-by-n matrix A using the compact WY representation of Q.

The matrix V stores the elementary reflectors H(i) in the i-th row above the diagonal. For example, if m=5 and n=3, the matrix V is

V = ( 1 v1 v1 v1 v1 ) 
    (    1 v2 v2 v2 ) 
    (       1 v3 v3 ) 

where the vis represent the vectors which define H(i), which are returned in the array a. The 1 elements along the diagonal of V are not stored in a. Let k = min(m,n). The number of blocks is b = ceiling(k/mb), where each block is of order mb except for the last block, which is of order ib = k - (b-1)*mb. For each of the b blocks, a upper triangular block reflector factor is computed: T1, T2, ..., TB. The mb-by-mb (and ib-by-ib for the last block) T's are stored in the mb-by-k matrix T as

T = (T1T2 ... TB).

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.

mb

INTEGER. The block size to be used in the blocked QR. min(m, n) mb 1.

a

REAL for sgelqt

DOUBLE PRECISION for dgelqt

COMPLEX for cgelqt

COMPLEX*16 for zgelqt

Array of size (lda,n). On entry, the m-by-n matrix A.

lda

INTEGER. The leading dimension of the array a. lda max(1,m).

ldt

INTEGER. The leading dimension of the array t. ldtmb.

Output Parameters

a

On exit, the elements on and below the diagonal of the array contain the m-by-min(m, n) lower trapezoidal matrix L (L is lower triangular if mn); the elements above the diagonal are the rows of V.

t

REAL for sgelqt

DOUBLE PRECISION for dgelqt

COMPLEX for cgelqt

COMPLEX*16 for zgelqt

Array of size (ldt, min(m, n)). The upper triangular block reflectors stored in compact form as a sequence of upper triangular blocks. See Description for further details.

work

REAL for sgelqt

DOUBLE PRECISION for dgelqt

COMPLEX for cgelqt

COMPLEX*16 for zgelqt

Array of size (mb*n).

info

INTEGER.

info = 0: successful exit.

info < 0: if info = -i, the i-th argument had an illegal value.