LAPACK  3.8.0
LAPACK: Linear Algebra PACKage

◆ clarfy()

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

CLARFY

Purpose:
 CLARFY 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 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
          The value tau as described above.
[in,out]C
          C is COMPLEX 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 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 clarfy.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 tau
120 * ..
121 * .. Array Arguments ..
122  COMPLEX c( ldc, * ), v( * ), work( * )
123 * ..
124 *
125 * =====================================================================
126 *
127 * .. Parameters ..
128  COMPLEX one, zero, half
129  parameter( one = ( 1.0e+0, 0.0e+0 ),
130  $ zero = ( 0.0e+0, 0.0e+0 ),
131  $ half = ( 0.5e+0, 0.0e+0 ) )
132 * ..
133 * .. Local Scalars ..
134  COMPLEX alpha
135 * ..
136 * .. External Subroutines ..
137  EXTERNAL caxpy, chemv, cher2
138 * ..
139 * .. External Functions ..
140  COMPLEX cdotc
141  EXTERNAL cdotc
142 * ..
143 * .. Executable Statements ..
144 *
145  IF( tau.EQ.zero )
146  $ RETURN
147 *
148 * Form w:= C * v
149 *
150  CALL chemv( uplo, n, one, c, ldc, v, incv, zero, work, 1 )
151 *
152  alpha = -half*tau*cdotc( n, work, 1, v, incv )
153  CALL caxpy( n, alpha, v, incv, work, 1 )
154 *
155 * C := C - v * w' - w * v'
156 *
157  CALL cher2( uplo, n, -tau, v, incv, work, 1, c, ldc )
158 *
159  RETURN
160 *
161 * End of CLARFY
162 *
complex function cdotc(N, CX, INCX, CY, INCY)
CDOTC
Definition: cdotc.f:85
subroutine chemv(UPLO, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
CHEMV
Definition: chemv.f:156
subroutine cher2(UPLO, N, ALPHA, X, INCX, Y, INCY, A, LDA)
CHER2
Definition: cher2.f:152
subroutine caxpy(N, CA, CX, INCX, CY, INCY)
CAXPY
Definition: caxpy.f:90
Here is the call graph for this function:
Here is the caller graph for this function: