 LAPACK  3.9.1 LAPACK: Linear Algebra PACKage

## ◆ zlarfy()

 subroutine zlarfy ( character UPLO, integer N, complex*16, dimension( * ) V, integer INCV, complex*16 TAU, complex*16, dimension( ldc, * ) C, integer LDC, complex*16, dimension( * ) WORK )

ZLARFY

Purpose:
``` ZLARFY applies an elementary reflector, or Householder matrix, H,
to an n x n Hermitian matrix C, from both the left and the right.

H is represented in the form

H = I - tau * v * v'

where  tau  is a scalar and  v  is a vector.

If  tau  is  zero, then  H  is taken to be the unit matrix.```
Parameters
 [in] UPLO ``` UPLO is CHARACTER*1 Specifies whether the upper or lower triangular part of the Hermitian matrix C is stored. = 'U': Upper triangle = 'L': Lower triangle``` [in] N ``` N is INTEGER The number of rows and columns of the matrix C. N >= 0.``` [in] V ``` V is COMPLEX*16 array, dimension (1 + (N-1)*abs(INCV)) The vector v as described above.``` [in] INCV ``` INCV is INTEGER The increment between successive elements of v. INCV must not be zero.``` [in] TAU ``` TAU is COMPLEX*16 The value tau as described above.``` [in,out] C ``` C is COMPLEX*16 array, dimension (LDC, N) On entry, the matrix C. On exit, C is overwritten by H * C * H'.``` [in] LDC ``` LDC is INTEGER The leading dimension of the array C. LDC >= max( 1, N ).``` [out] WORK ` WORK is COMPLEX*16 array, dimension (N)`

Definition at line 107 of file zlarfy.f.

108 *
109 * -- LAPACK test routine --
110 * -- LAPACK is a software package provided by Univ. of Tennessee, --
111 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
112 *
113 * .. Scalar Arguments ..
114  CHARACTER UPLO
115  INTEGER INCV, LDC, N
116  COMPLEX*16 TAU
117 * ..
118 * .. Array Arguments ..
119  COMPLEX*16 C( LDC, * ), V( * ), WORK( * )
120 * ..
121 *
122 * =====================================================================
123 *
124 * .. Parameters ..
125  COMPLEX*16 ONE, ZERO, HALF
126  parameter( one = ( 1.0d+0, 0.0d+0 ),
127  \$ zero = ( 0.0d+0, 0.0d+0 ),
128  \$ half = ( 0.5d+0, 0.0d+0 ) )
129 * ..
130 * .. Local Scalars ..
131  COMPLEX*16 ALPHA
132 * ..
133 * .. External Subroutines ..
134  EXTERNAL zaxpy, zhemv, zher2
135 * ..
136 * .. External Functions ..
137  COMPLEX*16 ZDOTC
138  EXTERNAL zdotc
139 * ..
140 * .. Executable Statements ..
141 *
142  IF( tau.EQ.zero )
143  \$ RETURN
144 *
145 * Form w:= C * v
146 *
147  CALL zhemv( uplo, n, one, c, ldc, v, incv, zero, work, 1 )
148 *
149  alpha = -half*tau*zdotc( n, work, 1, v, incv )
150  CALL zaxpy( n, alpha, v, incv, work, 1 )
151 *
152 * C := C - v * w' - w * v'
153 *
154  CALL zher2( uplo, n, -tau, v, incv, work, 1, c, ldc )
155 *
156  RETURN
157 *
158 * End of ZLARFY
159 *
complex *16 function zdotc(N, ZX, INCX, ZY, INCY)
ZDOTC
Definition: zdotc.f:83
subroutine zaxpy(N, ZA, ZX, INCX, ZY, INCY)
ZAXPY
Definition: zaxpy.f:88
subroutine zhemv(UPLO, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
ZHEMV
Definition: zhemv.f:154
subroutine zher2(UPLO, N, ALPHA, X, INCX, Y, INCY, A, LDA)
ZHER2
Definition: zher2.f:150
Here is the call graph for this function:
Here is the caller graph for this function: