# ?larfp

Generates a real or complex elementary reflector.

## Syntax

FORTRAN 77:

call slarfp(n, alpha, x, incx, tau)

call dlarfp(n, alpha, x, incx, tau)

call clarfp(n, alpha, x, incx, tau)

call zlarfp(n, alpha, x, incx, tau)

## Include Files

• Fortran: mkl.fi
• C: mkl.h

## Description

The ?larfp routines generate a real or complex elementary reflector H of order n, such that

```H * (alpha) = (beta),
(  x  )   ( 0  )
```

and `H'*H =I` for real flavors, `conjg(H)'*H =I` for complex flavors.

Here

alpha and beta are scalars, beta is real and non-negative,

x is `(n-1)`-element vector.

H is represented in the form

```H = I - tau*( 1 )* (1  v'),
( v )
```

where tau is scalar, and v is `(n-1)`-element vector .

For real flavors if the elements of x are all zero, then tau = 0 and H is taken to be the unit matrix. Otherwise `1 ≤ tau ≤ 2`.

For complex flavors if the elements of x are all zero and alpha is real, then tau = 0 and H is taken to be the unit matrix. Otherwise `1 ≤ real(tau) ≤ 2`, and `abs (tau-1≤ 1`.

## Input Parameters

n

INTEGER. Specifies the order of the elementary reflector.

alpha

REAL for slarfp

DOUBLE PRECISION for dlarfp

COMPLEX for clarfp

DOUBLE COMPLEX for zlarfp

Specifies the scalar alpha.

x

REAL for slarfp

DOUBLE PRECISION for dlarfp

COMPLEX for clarfp

DOUBLE COMPLEX for zlarfp

Array, DIMENSION at least `(1 + (n - 1)*abs(incx))`. It contains the vector x.

incx

INTEGER. Specifies the increment for the elements of x.

The value of incx must not be zero.

## Output Parameters

alpha

Overwritten by the value beta.

y

Overwritten by the vector v.

tau

REAL for slarfp

DOUBLE PRECISION for dlarfp

COMPLEX for clarfp

DOUBLE COMPLEX for zlarfp

Contains the scalar tau.

For more complete information about compiler optimizations, see our Optimization Notice.