Developer Reference for Intel® oneAPI Math Kernel Library for C

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

?laref

Applies Householder reflectors to matrices on their rows or columns.

Syntax

void slaref (const char* type, float* a, const MKL_INT* lda, const MKL_INT* wantz, float* z, const MKL_INT* ldz, const MKL_INT* block, MKL_INT* irow1, MKL_INT* icol1, const MKL_INT* istart, const MKL_INT* istop, const MKL_INT* itmp1, const MKL_INT* itmp2, const MKL_INT* liloz, const MKL_INT* lihiz, const float* vecs, float* v2, float* v3, float* t1, float* t2, float* t3);

void dlaref (const char* type, double* a, const MKL_INT* lda, const MKL_INT* wantz, double* z, const MKL_INT* ldz, const MKL_INT* block, MKL_INT* irow1, MKL_INT* icol1, const MKL_INT* istart, const MKL_INT* istop, const MKL_INT* itmp1, const MKL_INT* itmp2, const MKL_INT* liloz, const MKL_INT* lihiz, const double* vecs, double* v2, double* v3, double* t1, double* t2, double* t3);

void claref (const char* type, MKL_Complex8* a, const MKL_INT* lda, const MKL_INT* wantz, MKL_Complex8* z, const MKL_INT* ldz, const MKL_INT* block, MKL_INT* irow1, MKL_INT* icol1, const MKL_INT* istart, const MKL_INT* istop, const MKL_INT* itmp1, const MKL_INT* itmp2, const MKL_INT* liloz, const MKL_INT* lihiz, const MKL_Complex8* vecs, MKL_Complex8* v2, MKL_Complex8* v3, MKL_Complex8* t1, MKL_Complex8* t2, MKL_Complex8* t3);

void zlaref (const char* type, MKL_Complex16* a, const MKL_INT* lda, const MKL_INT* wantz, MKL_Complex16* z, const MKL_INT* ldz, const MKL_INT* block, MKL_INT* irow1, MKL_INT* icol1, const MKL_INT* istart, const MKL_INT* istop, const MKL_INT* itmp1, const MKL_INT* itmp2, const MKL_INT* liloz, const MKL_INT* lihiz, const MKL_Complex16* vecs, MKL_Complex16* v2, MKL_Complex16* v3, MKL_Complex16* t1, MKL_Complex16* t2, MKL_Complex16* t3);

Include Files
  • mkl_scalapack.h
Description

?laref applies one or several Householder reflectors of size 3 to one or two matrices (if column is specified) on either their rows or columns.

Input Parameters
type

(local)

If 'R': Apply reflectors to the rows of the matrix (apply from left)

Otherwise: Apply reflectors to the columns of the matrix

Unchanged on exit.

a

(local)

Array, lld_a*LOCc(ja+n-1)

On entry, the matrix to receive the reflections.

lda

(local)

On entry, the leading dimension of a.

Unchanged on exit.

wantz

(local)

If wantz 0, then apply any column reflections to z as well.

If wantz = 0, then do no additional work on z.

z

(local)

Array, ldz*ncols, where the value ncols depends on other arguments. If wantzwantz 0 and type 'R' then ncols = icol1 + 3*(lihiz - liloz + 1). Otherwise, ncols is unused.

On entry, the second matrix to receive column reflections.

This is changed only if wantz is set.

ldz

(local)

On entry, the leading dimension of z.

Unchanged on exit.

block

(local)

If nonzero, then apply several reflectors at once and read their data from the vecs array.

If zero, apply the single reflector given by v2, v3, t1, t2, and t3.

irow1

(local)

On entry, the local row element of a.

icol1

(local)

On entry, the local column element of a.

istart

(local)

Specifies the "number" of the first reflector. This is used as an index into vecs if block is set. istart is ignored if block is zero.

istop

(local)

Specifies the "number" of the last reflector. This is used as an index into vecs if block is set. istop is ignored if block is zero.

itmp1

(local)

Starting range into a. For rows, this is the local first column. For columns, this is the local first row.

itmp2

(local)

Ending range into a. For rows, this is the local last column. For columns, this is the local last row.

liloz, lihiz

(local)

These serve the same purpose as itmp1, itmp2 but for z when wantz is set.

vecs

(local)

Array of size 3*N (matrix size)

This holds the size 3 reflectors one after another and this is only accessed when block is nonzero

v2, v3, t1, t2, t3

(local)

This holds information on a single size 3 Householder reflector and is read when block is zero, and overwritten when block is nonzero

Output Parameters

a

The updated matrix on exit.

z

This is changed only if wantz is set.

irow1

Undefined on output.

icol1

Undefined on output.

v2, v3, t1, t2, t3

Overwritten when block is nonzero.