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

?larfx

Applies an elementary reflector to a general rectangular matrix, with loop unrolling when the reflector has order less than or equal to 10.

Syntax

lapack_int LAPACKE_slarfx (int matrix_layout , char side , lapack_int m , lapack_int n , const float * v , float tau , float * c , lapack_int ldc , float * work );

lapack_int LAPACKE_dlarfx (int matrix_layout , char side , lapack_int m , lapack_int n , const double * v , double tau , double * c , lapack_int ldc , double * work );

lapack_int LAPACKE_clarfx (int matrix_layout , char side , lapack_int m , lapack_int n , const lapack_complex_float * v , lapack_complex_float tau , lapack_complex_float * c , lapack_int ldc , lapack_complex_float * work );

lapack_int LAPACKE_zlarfx (int matrix_layout , char side , lapack_int m , lapack_int n , const lapack_complex_double * v , lapack_complex_double tau , lapack_complex_double * c , lapack_int ldc , lapack_complex_double * work );

Include Files

  • mkl.h

Description

The routine ?larfx applies a real/complex elementary reflector H to a real/complex m-by-n matrix C, from either the left or the right.

H is represented in the following forms:

  • H = I - tau*v*vT, where tau is a real scalar and v is a real vector.

  • H = I - tau*v*vH, where tau is a complex scalar and v is a complex vector.

If tau = 0, then H is taken to be the unit matrix.

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.

side

If side = 'L': form H*C

If side = 'R': form C*H.

m

The number of rows of the matrix C.

n

The number of columns of the matrix C.

v

Array, size

(m) if side = 'L' or

(n) if side = 'R'.

The vector v in the representation of H.

tau

The value tau in the representation of H.

c

Array, size at least max(1, ldc*n) for column major layout and max (1, ldc*m) for row major layout. On entry, the m-by-n matrix C.

ldc

The leading dimension of the array c. lda (1,m).

work

Workspace array, size

(n) if side = 'L' or

(m) if side = 'R'.

work is not referenced if H has order < 11.

Output Parameters

c

On exit, C is overwritten by the matrix H*C if side = 'L', or C*H if side = 'R'.