LAPACK  3.8.0
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)
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date
December 2016

Definition at line 110 of file zlarfy.f.

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