Skip to content

Commit 6433162

Browse files
Fix using Safe Minimum
1 parent 5b07c5e commit 6433162

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

SRC/ctgsja.f

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -409,12 +409,13 @@ SUBROUTINE CTGSJA( JOBU, JOBV, JOBQ, M, P, N, K, L, A, LDA, B,
409409
LOGICAL INITQ, INITU, INITV, UPPER, WANTQ, WANTU, WANTV
410410
INTEGER I, J, KCYCLE
411411
REAL A1, A3, B1, B3, CSQ, CSU, CSV, ERROR, GAMMA,
412-
$ RWK, SSMIN
412+
$ RWK, SSMIN, SFMIN
413413
COMPLEX A2, B2, SNQ, SNU, SNV
414414
* ..
415415
* .. External Functions ..
416416
LOGICAL LSAME
417-
EXTERNAL LSAME
417+
REAL SLAMCH
418+
EXTERNAL LSAME, SLAMCH
418419
* ..
419420
* .. External Subroutines ..
420421
EXTERNAL CCOPY, CLAGS2, CLAPLL, CLASET, CROT, CSSCAL,
@@ -465,6 +466,10 @@ SUBROUTINE CTGSJA( JOBU, JOBV, JOBQ, M, P, N, K, L, A, LDA, B,
465466
RETURN
466467
END IF
467468
*
469+
* Safe minimum
470+
*
471+
SFMIN = SLAMCH( 'Safe minimum' )
472+
*
468473
* Initialize U, V and Q, if necessary
469474
*
470475
IF( INITU )
@@ -608,7 +613,7 @@ SUBROUTINE CTGSJA( JOBU, JOBV, JOBQ, M, P, N, K, L, A, LDA, B,
608613
A1 = REAL( A( K+I, N-L+I ) )
609614
B1 = REAL( B( I, N-L+I ) )
610615
*
611-
IF( A1.NE.ZERO ) THEN
616+
IF( ABS(A1).GE.SFMIN ) THEN
612617
GAMMA = B1 / A1
613618
*
614619
IF( GAMMA.LT.ZERO ) THEN

0 commit comments

Comments
 (0)