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

# zlarf(3lapack)

applies a complex elementary reflector H to a complex M-by-N matrix C, from either the left or the right

## NAME

ZLARF - applies a complex elementary reflector H to a complex M-by-N matrix C, from either the left or the right

## SYNOPSIS

- SUBROUTINE ZLARF(

  SIDE, M, N, V, INCV, TAU, C, LDC, WORK )

- IMPLICIT

  NONE

- CHARACTER

  SIDE

- INTEGER

  INCV, LDC, M, N

- COMPLEX\*16

  TAU

- COMPLEX\*16

  C( LDC, \* ), V( \* ), WORK( \* )

## PURPOSE

ZLARF applies a complex elementary reflector H to a complex M-by-N matrix C, from either the left or the right. H is represented in the form\
\
       H = I - tau \* v \* v'\
 where tau is a complex scalar and v is a complex vector.\
 If tau = 0, then H is taken to be the unit matrix.\
 To apply H' (the conjugate transpose of H), supply conjg(tau) instead tau.\

## ARGUMENTS

- SIDE (input) CHARACTER\*1

  \= 'L': form  H \* C\
   \= 'R': form  C \* H

- M (input) INTEGER

  The number of rows of the matrix C.

- N (input) INTEGER

  The number of columns of the matrix C.

- V (input) COMPLEX\*16 array, dimension

  (1 + (M-1)\*abs(INCV)) if SIDE = 'L' or (1 + (N-1)\*abs(INCV)) if SIDE = 'R' The vector v in the representation of H. V is not used if TAU = 0.

- INCV (input) INTEGER

  The increment between elements of v. INCV \<\> 0.

- TAU (input) COMPLEX\*16

  The value tau in the representation of H.

- C (input/output) COMPLEX\*16 array, dimension (LDC,N)

  On entry, the M-by-N matrix C. On exit, C is overwritten by the matrix H \* C if SIDE = 'L', or C \* H if SIDE = 'R'.

- LDC (input) INTEGER

  The leading dimension of the array C. LDC \>= max(1,M).

- WORK (workspace) COMPLEX\*16 array, dimension

  (N) if SIDE = 'L' or (M) if SIDE = 'R'
