LAPACK  3.8.0
LAPACK: Linear Algebra PACKage

◆ slarfy()

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

SLARFY

Purpose:
 SLARFY applies an elementary reflector, or Householder matrix, H,
 to an n x n symmetric 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
          symmetric 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 REAL 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 REAL
          The value tau as described above.
[in,out]C
          C is REAL 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 REAL 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 slarfy.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  REAL tau
120 * ..
121 * .. Array Arguments ..
122  REAL c( ldc, * ), v( * ), work( * )
123 * ..
124 *
125 * =====================================================================
126 *
127 * .. Parameters ..
128  REAL one, zero, half
129  parameter( one = 1.0e+0, zero = 0.0e+0, half = 0.5e+0 )
130 * ..
131 * .. Local Scalars ..
132  REAL alpha
133 * ..
134 * .. External Subroutines ..
135  EXTERNAL saxpy, ssymv, ssyr2
136 * ..
137 * .. External Functions ..
138  REAL sdot
139  EXTERNAL sdot
140 * ..
141 * .. Executable Statements ..
142 *
143  IF( tau.EQ.zero )
144  $ RETURN
145 *
146 * Form w:= C * v
147 *
148  CALL ssymv( uplo, n, one, c, ldc, v, incv, zero, work, 1 )
149 *
150  alpha = -half*tau*sdot( n, work, 1, v, incv )
151  CALL saxpy( n, alpha, v, incv, work, 1 )
152 *
153 * C := C - v * w' - w * v'
154 *
155  CALL ssyr2( uplo, n, -tau, v, incv, work, 1, c, ldc )
156 *
157  RETURN
158 *
159 * End of SLARFY
160 *
subroutine ssyr2(UPLO, N, ALPHA, X, INCX, Y, INCY, A, LDA)
SSYR2
Definition: ssyr2.f:149
real function sdot(N, SX, INCX, SY, INCY)
SDOT
Definition: sdot.f:84
subroutine saxpy(N, SA, SX, INCX, SY, INCY)
SAXPY
Definition: saxpy.f:91
subroutine ssymv(UPLO, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
SSYMV
Definition: ssymv.f:154
Here is the call graph for this function:
Here is the caller graph for this function: