Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 7/13/2023
Public

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

Document Table of Contents

?tpqrt2

Computes a QR factorization of a real or complex "triangular-pentagonal" matrix, which is composed of a triangular block and a pentagonal block, using the compact WY representation for Q.

Syntax

call stpqrt2(m, n, l, a, lda, b, ldb, t, ldt, info)

call dtpqrt2(m, n, l, a, lda, b, ldb, t, ldt, info)

call ctpqrt2(m, n, l, a, lda, b, ldb, t, ldt, info)

call ztpqrt2(m, n, l, a, lda, b, ldb, t, ldt, info)

call tpqrt2(a, b, t [, info])

Include Files

  • mkl.fi, lapack.f90

Description

The input matrix C is an (n+m)-by-n matrix



where A is an n-by-n upper triangular matrix, and B is an m-by-n pentagonal matrix consisting of an (m-l)-by-n rectangular matrix B1 on top of an l-by-n upper trapezoidal matrix B2:



The upper trapezoidal matrix B2 consists of the first l rows of an n-by-n upper triangular matrix, where 0 ≤ l ≤ min(m,n). If l=0, B is an m-by-n rectangular matrix. If m=l=n, B is upper triangular. The matrix W contains the elementary reflectors H(i) in the ith column below the diagonal (of A) in the (n+m)-by-n input matrix C so that W can be represented as



Thus, V contains all of the information needed for W, and is returned in array b.

NOTE:

V has the same form as B:



The columns of V represent the vectors which define the H(i)s.

The (m+n)-by-(m+n) block reflector H is then given by

H = I - W*T*WT for real flavors, and

H = I - W*T*WH for complex flavors

where WT is the transpose of W, WH is the conjugate transpose of W, and T is the upper triangular factor of the block reflector.

Input Parameters

m

INTEGER. The total number of rows in the matrix B (m ≥ 0).

n

INTEGER. The number of columns in B and the order of the triangular matrix A (n ≥ 0).

l

INTEGER. The number of rows of the upper trapezoidal part of B (min(m, n) ≥ l ≥ 0).

a, b

REAL for stpqrt2

DOUBLE PRECISION for dtpqrt2

COMPLEX for ctpqrt2

COMPLEX*16 for ztpqrt2.

Arrays: a, size (lda, n) contains the n-by-n upper triangular matrix A.

b, size (ldb, n), the pentagonal m-by-n matrix B. The first (m-l) rows contain the rectangular B1 matrix, and the next l rows contain the upper trapezoidal B2 matrix.

lda

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

ldb

INTEGER. The leading dimension of b; 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 upper triangular matrix R.

b

The pentagonal matrix V.

t

REAL for stpqrt2

DOUBLE PRECISION for dtpqrt2

COMPLEX for ctpqrt2

COMPLEX*16 for ztpqrt2.

Array, size (ldt, n).

The upper n-by-n upper triangular factor T of the block reflector.

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.