Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
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

?ungrq

Generates the complex matrix Q of the RQ factorization formed by ?gerqf.

Syntax

lapack_int LAPACKE_cungrq (int matrix_layout, lapack_int m, lapack_int n, lapack_int k, lapack_complex_float* a, lapack_int lda, const lapack_complex_float* tau);

lapack_int LAPACKE_zungrq (int matrix_layout, lapack_int m, lapack_int n, lapack_int k, lapack_complex_double* a, lapack_int lda, const lapack_complex_double* tau);

Include Files

  • mkl.h

Description

The routine generates an m-by-n complex matrix with orthonormal rows, which is defined as the last m rows of a product of k elementary reflectors H(i) of order n: Q = H(1)H* H(2)H*...*H(k)H as returned by the routines gerqf. Use this routine after a call to cgerqf/zgerqf.

Input Parameters

matrix_layout

Specifies whether matrix storage layout is row major (LAPACK_ROW_MAJOR) or column major (LAPACK_COL_MAJOR).

m

The number of rows of the matrix Q (m0).

n

The number of columns of the matrix Q (nm ).

k

The number of elementary reflectors whose product defines the matrix Q (mk0).

a, tau

Arrays: a(size max(1, lda*n) for column major layout and max(1, lda*m) for row major layout), tau.

On entry, the (m - k + i)th row of a must contain the vector which defines the elementary reflector H(i), for i = 1,2,...,k, as returned by cgerqf/zgerqf in the last k rows of its array argument a;

tau[i - 1] must contain the scalar factor of the elementary reflector H(i), as returned by cgerqf/zgerqf;

The size of tau must be at least max(1, k).

lda

The leading dimension of a; at least max(1, m)for column major layout and max(1, n) for row major layout.

Output Parameters

a

Overwritten by the m last rows of the n-by-n unitary matrix Q.

Return Values

This function returns a value info.

If info=0, the execution is successful.

If info = -i, the i-th parameter had an illegal value.

Application Notes

The real counterpart of this routine is orgrq.