Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 3/22/2024
Public

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

Document Table of Contents

?larfg

Generates an elementary reflector (Householder matrix).

Syntax

lapack_int LAPACKE_slarfg (lapack_int n , float * alpha , float * x , lapack_int incx , float * tau );

lapack_int LAPACKE_dlarfg (lapack_int n , double * alpha , double * x , lapack_int incx , double * tau );

lapack_int LAPACKE_clarfg (lapack_int n , lapack_complex_float * alpha , lapack_complex_float * x , lapack_int incx , lapack_complex_float * tau );

lapack_int LAPACKE_zlarfg (lapack_int n , lapack_complex_double * alpha , lapack_complex_double * x , lapack_int incx , lapack_complex_double * tau );

Include Files

  • mkl.h

Description

The routine ?larfg generates a real/complex elementary reflector H of order n, such that

for real flavors and

Equation for complex flavors,

where alpha and beta are scalars (with beta real for all flavors), and x is an (n-1)-element real/complex vector. H is represented in the form

for real flavors and

Equation for complex flavors,

where tau is a real/complex scalar and v is a real/complex (n-1)-element vector, respectively. Note that for clarfg/zlarfg, H is not Hermitian.

If the elements of x are all zero (and, for complex flavors, alpha is real), then tau = 0 and H is taken to be the unit matrix.

Otherwise, 1 ≤ tau ≤ 2 (for real flavors), or

1 ≤ Re(tau) ≤ 2 and abs(tau-1) ≤ 1 (for complex flavors).

Input Parameters

A <datatype> placeholder, if present, is used for the C interface data types in the C interface section above. See C Interface Conventions for the C interface principal conventions and type definitions.

n

The order of the elementary reflector.

alpha
x

Array, size (1+(n-2)*abs(incx)).

On entry, the vector x.

incx

The increment between elements of x. incx > 0.

Output Parameters

alpha

On exit, it is overwritten with the value beta.

x

On exit, it is overwritten with the vector v.

tau

Return Values

This function returns a value info.

If info = 0, the execution is successful.

If info = -2, alpha is NaN

If info = -3, array x contains NaN components.