Browse Source

Merge pull request #3210 from martin-frbg/lapack502

Fix possible division by zero in LAPACK xTGSJA (Reference-LAPACK PR502)
tags/v0.3.15
Martin Kroeker GitHub 4 years ago
parent
commit
37d3e2bd94
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 20 additions and 16 deletions
  1. +5
    -4
      lapack-netlib/SRC/ctgsja.f
  2. +5
    -4
      lapack-netlib/SRC/dtgsja.f
  3. +5
    -4
      lapack-netlib/SRC/stgsja.f
  4. +5
    -4
      lapack-netlib/SRC/ztgsja.f

+ 5
- 4
lapack-netlib/SRC/ctgsja.f View File

@@ -401,7 +401,7 @@
* .. Parameters ..
INTEGER MAXIT
PARAMETER ( MAXIT = 40 )
REAL ZERO, ONE
REAL ZERO, ONE, HUGENUM
PARAMETER ( ZERO = 0.0E+0, ONE = 1.0E+0 )
COMPLEX CZERO, CONE
PARAMETER ( CZERO = ( 0.0E+0, 0.0E+0 ),
@@ -424,7 +424,8 @@
$ SLARTG, XERBLA
* ..
* .. Intrinsic Functions ..
INTRINSIC ABS, CONJG, MAX, MIN, REAL
INTRINSIC ABS, CONJG, MAX, MIN, REAL, HUGE
PARAMETER ( HUGENUM = HUGE(ZERO) )
* ..
* .. Executable Statements ..
*
@@ -610,9 +611,9 @@
*
A1 = REAL( A( K+I, N-L+I ) )
B1 = REAL( B( I, N-L+I ) )
GAMMA = B1 / A1
*
IF( A1.NE.ZERO ) THEN
GAMMA = B1 / A1
IF( (GAMMA.LE.HUGENUM).AND.(GAMMA.GE.-HUGENUM) ) THEN
*
IF( GAMMA.LT.ZERO ) THEN
CALL CSSCAL( L-I+1, -ONE, B( I, N-L+I ), LDB )


+ 5
- 4
lapack-netlib/SRC/dtgsja.f View File

@@ -400,7 +400,7 @@
* .. Parameters ..
INTEGER MAXIT
PARAMETER ( MAXIT = 40 )
DOUBLE PRECISION ZERO, ONE
DOUBLE PRECISION ZERO, ONE, HUGENUM
PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0 )
* ..
* .. Local Scalars ..
@@ -419,7 +419,8 @@
$ DSCAL, XERBLA
* ..
* .. Intrinsic Functions ..
INTRINSIC ABS, MAX, MIN
INTRINSIC ABS, MAX, MIN, HUGE
PARAMETER ( HUGENUM = HUGE(ZERO) )
* ..
* .. Executable Statements ..
*
@@ -596,9 +597,9 @@
*
A1 = A( K+I, N-L+I )
B1 = B( I, N-L+I )
GAMMA = B1 / A1
*
IF( A1.NE.ZERO ) THEN
GAMMA = B1 / A1
IF( (GAMMA.LE.HUGENUM).AND.(GAMMA.GE.-HUGENUM) ) THEN
*
* change sign if necessary
*


+ 5
- 4
lapack-netlib/SRC/stgsja.f View File

@@ -400,7 +400,7 @@
* .. Parameters ..
INTEGER MAXIT
PARAMETER ( MAXIT = 40 )
REAL ZERO, ONE
REAL ZERO, ONE, HUGENUM
PARAMETER ( ZERO = 0.0E+0, ONE = 1.0E+0 )
* ..
* .. Local Scalars ..
@@ -419,7 +419,8 @@
$ SSCAL, XERBLA
* ..
* .. Intrinsic Functions ..
INTRINSIC ABS, MAX, MIN
INTRINSIC ABS, MAX, MIN, HUGE
PARAMETER ( HUGENUM = HUGE(ZERO) )
* ..
* .. Executable Statements ..
*
@@ -596,9 +597,9 @@
*
A1 = A( K+I, N-L+I )
B1 = B( I, N-L+I )
GAMMA = B1 / A1
*
IF( A1.NE.ZERO ) THEN
GAMMA = B1 / A1
IF( (GAMMA.LE.HUGENUM).AND.(GAMMA.GE.-HUGENUM) ) THEN
*
* change sign if necessary
*


+ 5
- 4
lapack-netlib/SRC/ztgsja.f View File

@@ -401,7 +401,7 @@
* .. Parameters ..
INTEGER MAXIT
PARAMETER ( MAXIT = 40 )
DOUBLE PRECISION ZERO, ONE
DOUBLE PRECISION ZERO, ONE, HUGENUM
PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0 )
COMPLEX*16 CZERO, CONE
PARAMETER ( CZERO = ( 0.0D+0, 0.0D+0 ),
@@ -424,7 +424,8 @@
$ ZLASET, ZROT
* ..
* .. Intrinsic Functions ..
INTRINSIC ABS, DBLE, DCONJG, MAX, MIN
INTRINSIC ABS, DBLE, DCONJG, MAX, MIN, HUGE
PARAMETER ( HUGENUM = HUGE(ZERO) )
* ..
* .. Executable Statements ..
*
@@ -610,9 +611,9 @@
*
A1 = DBLE( A( K+I, N-L+I ) )
B1 = DBLE( B( I, N-L+I ) )
GAMMA = B1 / A1
*
IF( A1.NE.ZERO ) THEN
GAMMA = B1 / A1
IF( (GAMMA.LE.HUGENUM).AND.(GAMMA.GE.-HUGENUM) ) THEN
*
IF( GAMMA.LT.ZERO ) THEN
CALL ZDSCAL( L-I+1, -ONE, B( I, N-L+I ), LDB )


Loading…
Cancel
Save