---
name: "zlarfg"
section: "3lapack"
platform: "linux"
package: "liblapack-doc"
version: "3.2.1-8"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/zlarfg/3lapack"
---

# zlarfg(3lapack)

generates a complex elementary reflector H of order n, such that H' \* ( alpha ) = ( beta ), H' \* H = I

## NAME

ZLARFG - generates a complex elementary reflector H of order n, such that   H' \* ( alpha ) = ( beta ), H' \* H = I

## SYNOPSIS

- SUBROUTINE ZLARFG(

  N, ALPHA, X, INCX, TAU )

- INTEGER

  INCX, N

- COMPLEX\*16

  ALPHA, TAU

- COMPLEX\*16

  X( \* )

## PURPOSE

ZLARFG generates a complex elementary reflector H of order n, such that\
            (   x   )   (   0  )\
 where alpha and beta are scalars, with beta real, and x is an (n-1)-element complex vector. H is represented in the form\
       H = I - tau \* ( 1 ) \* ( 1 v' ) ,\
\
                     ( v )\
 where tau is a complex scalar and v is a complex (n-1)-element vector. Note that H is not hermitian.\
 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 .\

## ARGUMENTS

- N (input) INTEGER

  The order of the elementary reflector.

- ALPHA (input/output) COMPLEX\*16

  On entry, the value alpha. On exit, it is overwritten with the value beta.

- X (input/output) COMPLEX\*16 array, dimension

  (1+(N-2)\*abs(INCX)) On entry, the vector x. On exit, it is overwritten with the vector v.

- INCX (input) INTEGER

  The increment between elements of X. INCX \> 0.

- TAU (output) COMPLEX\*16

  The value tau.
