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.
This commit is contained in:
parent
c460027dbe
commit
2df1e3372d
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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…
Reference in New Issue