diff options
author | langou <langou@users.noreply.github.com> | 2009-12-21 20:57:28 +0000 |
---|---|---|
committer | langou <langou@users.noreply.github.com> | 2009-12-21 20:57:28 +0000 |
commit | bdc11e1bcc09f43a2086a52ed7f8877a7ce963dd (patch) | |
tree | 4d778fa986cbba93a4e166676649c3855b970734 /SRC/zlarfp.f | |
parent | 67b0f4e81ececab4a23bd8436995e09fc1cebfa1 (diff) | |
download | lapack-bdc11e1bcc09f43a2086a52ed7f8877a7ce963dd.tar.gz lapack-bdc11e1bcc09f43a2086a52ed7f8877a7ce963dd.tar.bz2 lapack-bdc11e1bcc09f43a2086a52ed7f8877a7ce963dd.zip |
change SAFMIN with SMLNUM
change RSAFMN with BIGNUM
Diffstat (limited to 'SRC/zlarfp.f')
-rw-r--r-- | SRC/zlarfp.f | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/SRC/zlarfp.f b/SRC/zlarfp.f index 73112236..ac4e9d41 100644 --- a/SRC/zlarfp.f +++ b/SRC/zlarfp.f @@ -63,7 +63,7 @@ * .. * .. Local Scalars .. INTEGER J, KNT - DOUBLE PRECISION ALPHI, ALPHR, BETA, RSAFMN, SAFMIN, XNORM + DOUBLE PRECISION ALPHI, ALPHR, BETA, BIGNUM, SMLNUM, XNORM * .. * .. External Functions .. DOUBLE PRECISION DLAMCH, DLAPY3, DLAPY2, DZNRM2 @@ -120,24 +120,24 @@ * general case * BETA = SIGN( DLAPY3( ALPHR, ALPHI, XNORM ), ALPHR ) - SAFMIN = DLAMCH( 'S' ) / DLAMCH( 'E' ) - RSAFMN = ONE / SAFMIN + SMLNUM = DLAMCH( 'S' ) / DLAMCH( 'E' ) + BIGNUM = ONE / SMLNUM * KNT = 0 - IF( ABS( BETA ).LT.SAFMIN ) THEN + IF( ABS( BETA ).LT.SMLNUM ) THEN * * XNORM, BETA may be inaccurate; scale X and recompute them * 10 CONTINUE KNT = KNT + 1 - CALL ZDSCAL( N-1, RSAFMN, X, INCX ) - BETA = BETA*RSAFMN - ALPHI = ALPHI*RSAFMN - ALPHR = ALPHR*RSAFMN - IF( ABS( BETA ).LT.SAFMIN ) + CALL ZDSCAL( N-1, BIGNUM, X, INCX ) + BETA = BETA*BIGNUM + ALPHI = ALPHI*BIGNUM + ALPHR = ALPHR*BIGNUM + IF( ABS( BETA ).LT.SMLNUM ) $ GO TO 10 * -* New BETA is at most 1, at least SAFMIN +* New BETA is at most 1, at least SMLNUM * XNORM = DZNRM2( N-1, X, INCX ) ALPHA = DCMPLX( ALPHR, ALPHI ) @@ -159,7 +159,7 @@ * If BETA is subnormal, it may lose relative accuracy * DO 20 J = 1, KNT - BETA = BETA*SAFMIN + BETA = BETA*SMLNUM 20 CONTINUE ALPHA = BETA END IF |