Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 3/31/2023
Public

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

Document Table of Contents

?geqrt3

Recursively computes a QR factorization of a general real or complex matrix using the compact WY representation of Q.

Syntax

call sgeqrt3(m, n, a, lda, t, ldt, info)

call dgeqrt3(m, n, a, lda, t, ldt, info)

call cgeqrt3(m, n, a, lda, t, ldt, info)

call zgeqrt3(m, n, a, lda, t, ldt, info)

call geqrt3(a, t [, info])

Include Files
  • mkl.fi, lapack.f90
Description

The strictly lower triangular matrix V contains the elementary reflectors H(i) in the ith column below the diagonal. For example, if m=5 and n=3, the matrix V is


Equation

where vi represents one of the vectors that define H(i). The vectors are returned in the lower part of triangular array a.

NOTE:

The 1s along the diagonal of V are not stored in a.

The block reflector H is then given by

H = I - V*T*VT for real flavors, and

H = I - V*T*VH for complex flavors,

where VT is the transpose and VHis the conjugate transpose of V.

Input Parameters
m

INTEGER. The number of rows in the matrix A (mn).

n

INTEGER. The number of columns in A (n ≥ 0).

a

REAL for sgeqrt3

DOUBLE PRECISION for dgeqrt3

COMPLEX for cgeqrt3

COMPLEX*16 for zgeqrt3.

Array, size (lda, n). Array a contains the m-by-n matrix A.

lda

INTEGER. The leading dimension of a; at least max(1, m).

ldt

INTEGER. The leading dimension of t; at least max(1, n).

Output Parameters
a

The elements on and above the diagonal of the array contain the n-by-n upper triangular matrix R. The elements below the diagonal are the columns of V.

t

REAL for sgeqrt3

DOUBLE PRECISION for dgeqrt3

COMPLEX for cgeqrt3

COMPLEX*16 for zgeqrt3.

Array, size ldt by n.

The n-by-n upper triangular factor of the block reflector. The elements on and above the diagonal contain the block reflector T. The elements below the diagonal are not used.

info

INTEGER.

If info = 0, the execution is successful.

If info < 0 and info = -i, the ith argument had an illegal value.

If info = -1011, memory allocation error occurred.