103 SUBROUTINE slarfg( N, ALPHA, X, INCX, TAU )
121 parameter( one = 1.0e+0, zero = 0.0e+0 )
125 REAL BETA, RSAFMN, SAFMIN, XNORM
128 REAL SLAMCH, SLAPY2, SNRM2
129 EXTERNAL slamch, slapy2, snrm2
144 xnorm = snrm2( n-1, x, incx )
146 IF( xnorm.EQ.zero )
THEN
155 beta = -sign( slapy2( alpha, xnorm ), alpha )
156 safmin = slamch(
'S' ) / slamch(
'E' )
158 IF( abs( beta ).LT.safmin )
THEN
162 rsafmn = one / safmin
165 CALL sscal( n-1, rsafmn, x, incx )
168 IF( (abs( beta ).LT.safmin) .AND. (knt .LT. 20) )
173 xnorm = snrm2( n-1, x, incx )
174 beta = -sign( slapy2( alpha, xnorm ), alpha )
176 tau = ( beta-alpha ) / beta
177 CALL sscal( n-1, one / ( alpha-beta ), x, incx )
subroutine slarfg(n, alpha, x, incx, tau)
SLARFG generates an elementary reflector (Householder matrix).