Browse Source

Break out of potentially infinite rescaling loop after 1000 iterations

Inf values in the input vector will survive rescaling, causing an infinite loop. The value of 1000 is arbitrarily chosen as a large but finite value with the intention to never interfere with regular calculations.
tags/v0.3.0
Martin Kroeker GitHub 8 years ago
parent
commit
2df1e3372d
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 8 additions and 8 deletions
  1. +1
    -1
      lapack-netlib/SRC/clarfg.f
  2. +1
    -1
      lapack-netlib/SRC/clarfgp.f
  3. +1
    -1
      lapack-netlib/SRC/dlarfg.f
  4. +1
    -1
      lapack-netlib/SRC/dlarfgp.f
  5. +1
    -1
      lapack-netlib/SRC/slarfg.f
  6. +1
    -1
      lapack-netlib/SRC/slarfgp.f
  7. +1
    -1
      lapack-netlib/SRC/zlarfg.f
  8. +1
    -1
      lapack-netlib/SRC/zlarfgp.f

+ 1
- 1
lapack-netlib/SRC/clarfg.f View File

@@ -175,7 +175,7 @@
BETA = BETA*RSAFMN
ALPHI = ALPHI*RSAFMN
ALPHR = ALPHR*RSAFMN
IF( ABS( BETA ).LT.SAFMIN )
IF( ABS( BETA ).LT.SAFMIN .AND. KNT .LT. 1000)
$ GO TO 10
*
* New BETA is at most 1, at least SAFMIN


+ 1
- 1
lapack-netlib/SRC/clarfgp.f View File

@@ -197,7 +197,7 @@
BETA = BETA*BIGNUM
ALPHI = ALPHI*BIGNUM
ALPHR = ALPHR*BIGNUM
IF( ABS( BETA ).LT.SMLNUM )
IF( ABS( BETA ).LT.SMLNUM .AND. KNT .LT. 1000 )
$ GO TO 10
*
* New BETA is at most 1, at least SMLNUM


+ 1
- 1
lapack-netlib/SRC/dlarfg.f View File

@@ -170,7 +170,7 @@
CALL DSCAL( N-1, RSAFMN, X, INCX )
BETA = BETA*RSAFMN
ALPHA = ALPHA*RSAFMN
IF( ABS( BETA ).LT.SAFMIN )
IF( ABS( BETA ).LT.SAFMIN .AND. KNT .LT. 1000 )
$ GO TO 10
*
* New BETA is at most 1, at least SAFMIN


+ 1
- 1
lapack-netlib/SRC/dlarfgp.f View File

@@ -181,7 +181,7 @@
CALL DSCAL( N-1, BIGNUM, X, INCX )
BETA = BETA*BIGNUM
ALPHA = ALPHA*BIGNUM
IF( ABS( BETA ).LT.SMLNUM )
IF( ABS( BETA ).LT.SMLNUM .AND. KNT .LT. 1000)
$ GO TO 10
*
* New BETA is at most 1, at least SMLNUM


+ 1
- 1
lapack-netlib/SRC/slarfg.f View File

@@ -170,7 +170,7 @@
CALL SSCAL( N-1, RSAFMN, X, INCX )
BETA = BETA*RSAFMN
ALPHA = ALPHA*RSAFMN
IF( ABS( BETA ).LT.SAFMIN )
IF( ABS( BETA ).LT.SAFMIN .AND. KNT .LT. 1000)
$ GO TO 10
*
* New BETA is at most 1, at least SAFMIN


+ 1
- 1
lapack-netlib/SRC/slarfgp.f View File

@@ -181,7 +181,7 @@
CALL SSCAL( N-1, BIGNUM, X, INCX )
BETA = BETA*BIGNUM
ALPHA = ALPHA*BIGNUM
IF( ABS( BETA ).LT.SMLNUM )
IF( ABS( BETA ).LT.SMLNUM .AND. KNT .LT. 1000 )
$ GO TO 10
*
* New BETA is at most 1, at least SMLNUM


+ 1
- 1
lapack-netlib/SRC/zlarfg.f View File

@@ -175,7 +175,7 @@
BETA = BETA*RSAFMN
ALPHI = ALPHI*RSAFMN
ALPHR = ALPHR*RSAFMN
IF( ABS( BETA ).LT.SAFMIN )
IF( ABS( BETA ).LT.SAFMIN .AND. KNT .LT. 1000)
$ GO TO 10
*
* New BETA is at most 1, at least SAFMIN


+ 1
- 1
lapack-netlib/SRC/zlarfgp.f View File

@@ -197,7 +197,7 @@
BETA = BETA*BIGNUM
ALPHI = ALPHI*BIGNUM
ALPHR = ALPHR*BIGNUM
IF( ABS( BETA ).LT.SMLNUM )
IF( ABS( BETA ).LT.SMLNUM .AND. KNT .LT. 1000)
$ GO TO 10
*
* New BETA is at most 1, at least SMLNUM


Loading…
Cancel
Save