Fix xSYEQUB, xHEEQUB formatting
authorChristoph Conrads <gitlab@christoph-conrads.name>
Tue, 20 Sep 2016 12:09:21 +0000 (14:09 +0200)
committerChristoph Conrads <gitlab@christoph-conrads.name>
Thu, 29 Sep 2016 14:59:48 +0000 (16:59 +0200)
- use standard 7 + 3n indentation
- use scientific notation for real values
- fix spaces around brackets

SRC/cheequb.f
SRC/csyequb.f
SRC/dsyequb.f
SRC/ssyequb.f
SRC/zheequb.f
SRC/zsyequb.f

index 69b1f0e..f5a721a 100644 (file)
 *
 *     .. Parameters ..
       REAL               ONE, ZERO
-      PARAMETER          ( ONE = 1.0E+0, ZERO = 0.0E+0 )
+      PARAMETER          ( ONE = 1.0E0, ZERO = 0.0E0 )
       INTEGER            MAX_ITER
       PARAMETER          ( MAX_ITER = 100 )
 *     ..
 *     .. Local Scalars ..
       INTEGER            I, J, ITER
-      REAL               AVG, STD, TOL, C0, C1, C2, T, U, SI, D,
-     $                   BASE, SMIN, SMAX, SMLNUM, BIGNUM, SCALE, SUMSQ
+      REAL               AVG, STD, TOL, C0, C1, C2, T, U, SI, D, BASE,
+     $                   SMIN, SMAX, SMLNUM, BIGNUM, SCALE, SUMSQ
       LOGICAL            UP
       COMPLEX            ZDUM
 *     ..
 *     ..
 *     .. Statement Function Definitions ..
       CABS1( ZDUM ) = ABS( REAL( ZDUM ) ) + ABS( AIMAG( ZDUM ) )
+*     ..
+*     .. Executable Statements ..
 *
-*     Test input parameters.
+*     Test the input parameters.
 *
       INFO = 0
-      IF (.NOT. ( LSAME( UPLO, 'U' ) .OR. LSAME( UPLO, 'L' ) ) ) THEN
-        INFO = -1
+      IF ( .NOT. ( LSAME( UPLO, 'U' ) .OR. LSAME( UPLO, 'L' ) ) ) THEN
+         INFO = -1
       ELSE IF ( N .LT. 0 ) THEN
-        INFO = -2
+         INFO = -2
       ELSE IF ( LDA .LT. MAX( 1, N ) ) THEN
-        INFO = -4
+         INFO = -4
       END IF
       IF ( INFO .NE. 0 ) THEN
-        CALL XERBLA( 'CHEEQUB', -INFO )
-        RETURN
+         CALL XERBLA( 'CHEEQUB', -INFO )
+         RETURN
       END IF
 
       UP = LSAME( UPLO, 'U' )
 *     Quick return if possible.
 *
       IF ( N .EQ. 0 ) THEN
-        SCOND = ONE
-        RETURN
+         SCOND = ONE
+         RETURN
       END IF
 
       DO I = 1, N
-        S( I ) = ZERO
+         S( I ) = ZERO
       END DO
 
       AMAX = ZERO
             DO I = J+1, N
                S( I ) = MAX( S( I ), CABS1( A( I, J ) ) )
                S( J ) = MAX( S( J ), CABS1( A( I, J ) ) )
-               AMAX = MAX( AMAX, CABS1( A(I, J ) ) )
+               AMAX = MAX( AMAX, CABS1( A( I, J ) ) )
             END DO
          END DO
       END IF
       DO J = 1, N
-         S( J ) = 1.0 / S( J )
+         S( J ) = 1.0E0 / S( J )
       END DO
 
       TOL = ONE / SQRT( 2.0E0 * N )
 
       DO ITER = 1, MAX_ITER
-         SCALE = 0.0
-         SUMSQ = 0.0
-*       beta = |A|s
-        DO I = 1, N
-           WORK( I ) = ZERO
-        END DO
-        IF ( UP ) THEN
-           DO J = 1, N
-              DO I = 1, J-1
-                 WORK( I ) = WORK( I ) + CABS1( A( I, J ) ) * S( J )
-                 WORK( J ) = WORK( J ) + CABS1( A( I, J ) ) * S( I )
-              END DO
-              WORK( J ) = WORK( J ) + CABS1( A( J, J ) ) * S( J )
-           END DO
-        ELSE
-           DO J = 1, N
-              WORK( J ) = WORK( J ) + CABS1( A( J, J ) ) * S( J )
-              DO I = J+1, N
-                 WORK( I ) = WORK( I ) + CABS1( A( I, J ) ) * S( J )
-                 WORK( J ) = WORK( J ) + CABS1( A( I, J ) ) * S( I )
-              END DO
-           END DO
-        END IF
+         SCALE = 0.0E0
+         SUMSQ = 0.0E0
+*        beta = |A|s
+         DO I = 1, N
+            WORK( I ) = ZERO
+         END DO
+         IF ( UP ) THEN
+            DO J = 1, N
+               DO I = 1, J-1
+                  WORK( I ) = WORK( I ) + CABS1( A( I, J ) ) * S( J )
+                  WORK( J ) = WORK( J ) + CABS1( A( I, J ) ) * S( I )
+               END DO
+               WORK( J ) = WORK( J ) + CABS1( A( J, J ) ) * S( J )
+            END DO
+         ELSE
+            DO J = 1, N
+               WORK( J ) = WORK( J ) + CABS1( A( J, J ) ) * S( J )
+               DO I = J+1, N
+                  WORK( I ) = WORK( I ) + CABS1( A( I, J ) ) * S( J )
+                  WORK( J ) = WORK( J ) + CABS1( A( I, J ) ) * S( I )
+               END DO
+            END DO
+         END IF
 
-*       avg = s^T beta / n
-        AVG = 0.0
-        DO I = 1, N
-          AVG = AVG + S( I )*WORK( I )
-        END DO
-        AVG = AVG / N
+*        avg = s^T beta / n
+         AVG = 0.0E0
+         DO I = 1, N
+            AVG = AVG + S( I )*WORK( I )
+         END DO
+         AVG = AVG / N
 
-        STD = 0.0
-        DO I = 2*N+1, 3*N
-           WORK( I ) = S( I-2*N ) * WORK( I-2*N ) - AVG
-        END DO
-        CALL CLASSQ( N, WORK( 2*N+1 ), 1, SCALE, SUMSQ )
-        STD = SCALE * SQRT( SUMSQ / N )
+         STD = 0.0E0
+         DO I = 2*N+1, 3*N
+            WORK( I ) = S( I-2*N ) * WORK( I-2*N ) - AVG
+         END DO
+         CALL CLASSQ( N, WORK( 2*N+1 ), 1, SCALE, SUMSQ )
+         STD = SCALE * SQRT( SUMSQ / N )
 
-        IF ( STD .LT. TOL * AVG ) GOTO 999
+         IF ( STD .LT. TOL * AVG ) GOTO 999
 
-        DO I = 1, N
-          T = CABS1( A( I, I ) )
-          SI = S( I )
-          C2 = ( N-1 ) * T
-          C1 = ( N-2 ) * ( WORK( I ) - T*SI )
-          C0 = -(T*SI)*SI + 2*WORK( I )*SI - N*AVG
+         DO I = 1, N
+            T = CABS1( A( I, I ) )
+            SI = S( I )
+            C2 = ( N-1 ) * T
+            C1 = ( N-2 ) * ( WORK( I ) - T*SI )
+            C0 = -(T*SI)*SI + 2*WORK( I )*SI - N*AVG
+            D = C1*C1 - 4*C0*C2
 
-          D = C1*C1 - 4*C0*C2
-          IF ( D .LE. 0 ) THEN
-            INFO = -1
-            RETURN
-          END IF
-          SI = -2*C0 / ( C1 + SQRT( D ) )
+            IF ( D .LE. 0 ) THEN
+               INFO = -1
+               RETURN
+            END IF
+            SI = -2*C0 / ( C1 + SQRT( D ) )
 
-          D = SI - S(I)
-          U = ZERO
-          IF ( UP ) THEN
-            DO J = 1, I
-              T = CABS1( A( J, I ) )
-              U = U + S( J )*T
-              WORK( J ) = WORK( J ) + D*T
-            END DO
-            DO J = I+1,N
-              T = CABS1( A( I, J ) )
-              U = U + S( J )*T
-              WORK( J ) = WORK( J ) + D*T
-            END DO
-          ELSE
-            DO J = 1, I
-              T = CABS1( A( I, J ) )
-              U = U + S( J )*T
-              WORK( J ) = WORK( J ) + D*T
-            END DO
-            DO J = I+1,N
-              T = CABS1( A( J, I ) )
-              U = U + S( J )*T
-              WORK( J ) = WORK( J ) + D*T
-            END DO
-          END IF
-          AVG = AVG + ( U + WORK( I ) ) * D / N
-          S( I ) = SI
-        END DO
+            D = SI - S( I )
+            U = ZERO
+            IF ( UP ) THEN
+               DO J = 1, I
+                  T = CABS1( A( J, I ) )
+                  U = U + S( J )*T
+                  WORK( J ) = WORK( J ) + D*T
+               END DO
+               DO J = I+1,N
+                  T = CABS1( A( I, J ) )
+                  U = U + S( J )*T
+                  WORK( J ) = WORK( J ) + D*T
+               END DO
+            ELSE
+               DO J = 1, I
+                  T = CABS1( A( I, J ) )
+                  U = U + S( J )*T
+                  WORK( J ) = WORK( J ) + D*T
+               END DO
+               DO J = I+1,N
+                  T = CABS1( A( J, I ) )
+                  U = U + S( J )*T
+                  WORK( J ) = WORK( J ) + D*T
+               END DO
+            END IF
 
+            AVG = AVG + ( U + WORK( I ) ) * D / N
+            S( I ) = SI
+         END DO
       END DO
 
  999  CONTINUE
       BASE = SLAMCH( 'B' )
       U = ONE / LOG( BASE )
       DO I = 1, N
-        S( I ) = BASE ** INT( U * LOG( S( I ) * T ) )
-        SMIN = MIN( SMIN, S( I ) )
-        SMAX = MAX( SMAX, S( I ) )
+         S( I ) = BASE ** INT( U * LOG( S( I ) * T ) )
+         SMIN = MIN( SMIN, S( I ) )
+         SMAX = MAX( SMAX, S( I ) )
       END DO
       SCOND = MAX( SMIN, SMLNUM ) / MIN( SMAX, BIGNUM )
-
+*
       END
index 4345322..81a97cd 100644 (file)
 *     .. Statement Functions ..
       REAL               CABS1
 *     ..
-*     Statement Function Definitions
+*     .. Statement Function Definitions ..
       CABS1( ZDUM ) = ABS( REAL( ZDUM ) ) + ABS( AIMAG( ZDUM ) )
 *     ..
 *     .. Executable Statements ..
 *
       INFO = 0
       IF ( .NOT. ( LSAME( UPLO, 'U' ) .OR. LSAME( UPLO, 'L' ) ) ) THEN
-        INFO = -1
+         INFO = -1
       ELSE IF ( N .LT. 0 ) THEN
-        INFO = -2
+         INFO = -2
       ELSE IF ( LDA .LT. MAX( 1, N ) ) THEN
-        INFO = -4
+         INFO = -4
       END IF
       IF ( INFO .NE. 0 ) THEN
-        CALL XERBLA( 'CSYEQUB', -INFO )
-        RETURN
+         CALL XERBLA( 'CSYEQUB', -INFO )
+         RETURN
       END IF
 
       UP = LSAME( UPLO, 'U' )
 *     Quick return if possible.
 *
       IF ( N .EQ. 0 ) THEN
-        SCOND = ONE
-        RETURN
+         SCOND = ONE
+         RETURN
       END IF
 
       DO I = 1, N
-        S( I ) = ZERO
+         S( I ) = ZERO
       END DO
 
       AMAX = ZERO
                S( J ) = MAX( S( J ), CABS1( A( I, J ) ) )
                AMAX = MAX( AMAX, CABS1( A( I, J ) ) )
             END DO
-            S( J ) = MAX( S( J ), CABS1( A( J, J) ) )
+            S( J ) = MAX( S( J ), CABS1( A( J, J ) ) )
             AMAX = MAX( AMAX, CABS1( A( J, J ) ) )
          END DO
       ELSE
             AMAX = MAX( AMAX, CABS1( A( J, J ) ) )
             DO I = J+1, N
                S( I ) = MAX( S( I ), CABS1( A( I, J ) ) )
-               S( J ) = MAX( S( J ), CABS1 (A( I, J ) ) )
+               S( J ) = MAX( S( J ), CABS1A( I, J ) ) )
                AMAX = MAX( AMAX, CABS1( A( I, J ) ) )
             END DO
          END DO
       TOL = ONE / SQRT( 2.0E0 * N )
 
       DO ITER = 1, MAX_ITER
-         SCALE = 0.0
-         SUMSQ = 0.0
-*       beta = |A|s
-        DO I = 1, N
-           WORK( I ) = ZERO
-        END DO
-        IF ( UP ) THEN
-           DO J = 1, N
-              DO I = 1, J-1
-                 WORK( I ) = WORK( I ) + CABS1( A( I, J ) ) * S( J )
-                 WORK( J ) = WORK( J ) + CABS1( A( I, J ) ) * S( I )
-              END DO
-              WORK( J ) = WORK( J ) + CABS1( A( J, J ) ) * S( J )
-           END DO
-        ELSE
-           DO J = 1, N
-              WORK( J ) = WORK( J ) + CABS1( A( J, J ) ) * S( J )
-              DO I = J+1, N
-                 WORK( I ) = WORK( I ) + CABS1( A( I, J ) ) * S( J )
-                 WORK( J ) = WORK( J ) + CABS1( A( I, J ) ) * S( I )
-              END DO
-           END DO
-        END IF
+         SCALE = 0.0E0
+         SUMSQ = 0.0E0
+*        beta = |A|s
+         DO I = 1, N
+             WORK( I ) = ZERO
+         END DO
+         IF ( UP ) THEN
+            DO J = 1, N
+               DO I = 1, J-1
+                  WORK( I ) = WORK( I ) + CABS1( A( I, J ) ) * S( J )
+                  WORK( J ) = WORK( J ) + CABS1( A( I, J ) ) * S( I )
+               END DO
+               WORK( J ) = WORK( J ) + CABS1( A( J, J ) ) * S( J )
+            END DO
+         ELSE
+            DO J = 1, N
+               WORK( J ) = WORK( J ) + CABS1( A( J, J ) ) * S( J )
+               DO I = J+1, N
+                  WORK( I ) = WORK( I ) + CABS1( A( I, J ) ) * S( J )
+                  WORK( J ) = WORK( J ) + CABS1( A( I, J ) ) * S( I )
+               END DO
+            END DO
+         END IF
 
-*       avg = s^T beta / n
-        AVG = 0.0
-        DO I = 1, N
-          AVG = AVG + S( I )*WORK( I )
-        END DO
-        AVG = AVG / N
+*        avg = s^T beta / n
+         AVG = 0.0E0
+         DO I = 1, N
+            AVG = AVG + S( I )*WORK( I )
+         END DO
+         AVG = AVG / N
 
-        STD = 0.0
-        DO I = N+1, 2*N
-           WORK( I ) = S( I-N ) * WORK( I-N ) - AVG
-        END DO
-        CALL CLASSQ( N, WORK( N+1 ), 1, SCALE, SUMSQ )
-        STD = SCALE * SQRT( SUMSQ / N )
+         STD = 0.0E0
+         DO I = N+1, 2*N
+            WORK( I ) = S( I-N ) * WORK( I-N ) - AVG
+         END DO
+         CALL CLASSQ( N, WORK( N+1 ), 1, SCALE, SUMSQ )
+         STD = SCALE * SQRT( SUMSQ / N )
 
-        IF ( STD .LT. TOL * AVG ) GOTO 999
+         IF ( STD .LT. TOL * AVG ) GOTO 999
 
-        DO I = 1, N
-          T = CABS1( A( I, I ) )
-          SI = S( I )
-          C2 = ( N-1 ) * T
-          C1 = ( N-2 ) * ( WORK( I ) - T*SI )
-          C0 = -(T*SI)*SI + 2*WORK( I )*SI - N*AVG
-          D = C1*C1 - 4*C0*C2
+         DO I = 1, N
+            T = CABS1( A( I, I ) )
+            SI = S( I )
+            C2 = ( N-1 ) * T
+            C1 = ( N-2 ) * ( WORK( I ) - T*SI )
+            C0 = -(T*SI)*SI + 2*WORK( I )*SI - N*AVG
+            D = C1*C1 - 4*C0*C2
 
-          IF ( D .LE. 0 ) THEN
-            INFO = -1
-            RETURN
-          END IF
-          SI = -2*C0 / ( C1 + SQRT( D ) )
+            IF ( D .LE. 0 ) THEN
+               INFO = -1
+               RETURN
+            END IF
+            SI = -2*C0 / ( C1 + SQRT( D ) )
 
-          D = SI - S( I )
-          U = ZERO
-          IF ( UP ) THEN
-            DO J = 1, I
-              T = CABS1( A( J, I ) )
-              U = U + S( J )*T
-              WORK( J ) = WORK( J ) + D*T
-            END DO
-            DO J = I+1,N
-              T = CABS1( A( I, J ) )
-              U = U + S( J )*T
-              WORK( J ) = WORK( J ) + D*T
-            END DO
-          ELSE
-            DO J = 1, I
-              T = CABS1( A( I, J ) )
-              U = U + S( J )*T
-              WORK( J ) = WORK( J ) + D*T
-            END DO
-            DO J = I+1,N
-              T = CABS1( A( J, I ) )
-              U = U + S( J )*T
-              WORK( J ) = WORK( J ) + D*T
-            END DO
-          END IF
-          AVG = AVG + ( U + WORK( I ) ) * D / N
-          S( I ) = SI
-        END DO
+            D = SI - S( I )
+            U = ZERO
+            IF ( UP ) THEN
+               DO J = 1, I
+                  T = CABS1( A( J, I ) )
+                  U = U + S( J )*T
+                  WORK( J ) = WORK( J ) + D*T
+               END DO
+               DO J = I+1,N
+                  T = CABS1( A( I, J ) )
+                  U = U + S( J )*T
+                  WORK( J ) = WORK( J ) + D*T
+               END DO
+            ELSE
+               DO J = 1, I
+                  T = CABS1( A( I, J ) )
+                  U = U + S( J )*T
+                  WORK( J ) = WORK( J ) + D*T
+               END DO
+               DO J = I+1,N
+                  T = CABS1( A( J, I ) )
+                  U = U + S( J )*T
+                  WORK( J ) = WORK( J ) + D*T
+               END DO
+            END IF
+
+            AVG = AVG + ( U + WORK( I ) ) * D / N
+            S( I ) = SI
+         END DO
       END DO
 
  999  CONTINUE
       BASE = SLAMCH( 'B' )
       U = ONE / LOG( BASE )
       DO I = 1, N
-        S( I ) = BASE ** INT( U * LOG( S( I ) * T ) )
-        SMIN = MIN( SMIN, S( I ) )
-        SMAX = MAX( SMAX, S( I ) )
+         S( I ) = BASE ** INT( U * LOG( S( I ) * T ) )
+         SMIN = MIN( SMIN, S( I ) )
+         SMAX = MAX( SMAX, S( I ) )
       END DO
       SCOND = MAX( SMIN, SMLNUM ) / MIN( SMAX, BIGNUM )
 *
index f1b6047..3a5c87a 100644 (file)
 *
 *     .. Parameters ..
       DOUBLE PRECISION   ONE, ZERO
-      PARAMETER          ( ONE = 1.0D+0, ZERO = 0.0D+0 )
+      PARAMETER          ( ONE = 1.0D0, ZERO = 0.0D0 )
       INTEGER            MAX_ITER
       PARAMETER          ( MAX_ITER = 100 )
 *     ..
 *     ..
 *     .. Executable Statements ..
 *
-*     Test input parameters.
+*     Test the input parameters.
 *
       INFO = 0
       IF ( .NOT. ( LSAME( UPLO, 'U' ) .OR. LSAME( UPLO, 'L' ) ) ) THEN
-        INFO = -1
+         INFO = -1
       ELSE IF ( N .LT. 0 ) THEN
-        INFO = -2
+         INFO = -2
       ELSE IF ( LDA .LT. MAX( 1, N ) ) THEN
-        INFO = -4
+         INFO = -4
       END IF
       IF ( INFO .NE. 0 ) THEN
-        CALL XERBLA( 'DSYEQUB', -INFO )
-        RETURN
+         CALL XERBLA( 'DSYEQUB', -INFO )
+         RETURN
       END IF
 
       UP = LSAME( UPLO, 'U' )
 *     Quick return if possible.
 *
       IF ( N .EQ. 0 ) THEN
-        SCOND = ONE
-        RETURN
+         SCOND = ONE
+         RETURN
       END IF
 
       DO I = 1, N
-        S( I ) = ZERO
+         S( I ) = ZERO
       END DO
 
       AMAX = ZERO
             DO I = 1, J-1
                S( I ) = MAX( S( I ), ABS( A( I, J ) ) )
                S( J ) = MAX( S( J ), ABS( A( I, J ) ) )
-               AMAX = MAX( AMAX, ABS( A(I, J) ) )
+               AMAX = MAX( AMAX, ABS( A( I, J ) ) )
             END DO
             S( J ) = MAX( S( J ), ABS( A( J, J ) ) )
             AMAX = MAX( AMAX, ABS( A( J, J ) ) )
          END DO
       END IF
       DO J = 1, N
-         S( J ) = 1.0D+0 / S( J )
+         S( J ) = 1.0D0 / S( J )
       END DO
 
-      TOL = ONE / SQRT(2.0D0 * N)
+      TOL = ONE / SQRT( 2.0D0 * N )
 
       DO ITER = 1, MAX_ITER
-         SCALE = 0.0D+0
-         SUMSQ = 0.0D+0
-*       BETA = |A|S
-        DO I = 1, N
-           WORK(I) = ZERO
-        END DO
-        IF ( UP ) THEN
-           DO J = 1, N
-              DO I = 1, J-1
-                 WORK( I ) = WORK( I ) + ABS( A( I, J ) ) * S( J )
-                 WORK( J ) = WORK( J ) + ABS( A( I, J ) ) * S( I )
-              END DO
-              WORK( J ) = WORK( J ) + ABS( A( J, J ) ) * S( J )
-           END DO
-        ELSE
-           DO J = 1, N
-              WORK( J ) = WORK( J ) + ABS( A( J, J ) ) * S( J )
-              DO I = J+1, N
-                 WORK( I ) = WORK( I ) + ABS( A( I, J ) ) * S( J )
-                 WORK( J ) = WORK( J ) + ABS( A( I, J ) ) * S( I )
-              END DO
-           END DO
-        END IF
-
-*       avg = s^T beta / n
-        AVG = 0.0D+0
-        DO I = 1, N
-          AVG = AVG + S( I )*WORK( I )
-        END DO
-        AVG = AVG / N
-
-        STD = 0.0D+0
-        DO I = 2*N+1, 3*N
-           WORK( I ) = S( I-2*N ) * WORK( I-2*N ) - AVG
-        END DO
-        CALL DLASSQ( N, WORK( 2*N+1 ), 1, SCALE, SUMSQ )
-        STD = SCALE * SQRT( SUMSQ / N )
+         SCALE = 0.0D0
+         SUMSQ = 0.0D0
+*        beta = |A|s
+         DO I = 1, N
+            WORK( I ) = ZERO
+         END DO
+         IF ( UP ) THEN
+            DO J = 1, N
+               DO I = 1, J-1
+                  WORK( I ) = WORK( I ) + ABS( A( I, J ) ) * S( J )
+                  WORK( J ) = WORK( J ) + ABS( A( I, J ) ) * S( I )
+               END DO
+               WORK( J ) = WORK( J ) + ABS( A( J, J ) ) * S( J )
+            END DO
+         ELSE
+            DO J = 1, N
+               WORK( J ) = WORK( J ) + ABS( A( J, J ) ) * S( J )
+               DO I = J+1, N
+                  WORK( I ) = WORK( I ) + ABS( A( I, J ) ) * S( J )
+                  WORK( J ) = WORK( J ) + ABS( A( I, J ) ) * S( I )
+               END DO
+            END DO
+         END IF
 
-        IF ( STD .LT. TOL * AVG ) GOTO 999
+*        avg = s^T beta / n
+         AVG = 0.0D0
+         DO I = 1, N
+            AVG = AVG + S( I )*WORK( I )
+         END DO
+         AVG = AVG / N
 
-        DO I = 1, N
-          T = ABS( A( I, I ) )
-          SI = S( I )
-          C2 = ( N-1 ) * T
-          C1 = ( N-2 ) * ( WORK( I ) - T*SI )
-          C0 = -(T*SI)*SI + 2*WORK( I )*SI - N*AVG
-          D = C1*C1 - 4*C0*C2
+         STD = 0.0D0
+         DO I = 2*N+1, 3*N
+            WORK( I ) = S( I-2*N ) * WORK( I-2*N ) - AVG
+         END DO
+         CALL DLASSQ( N, WORK( 2*N+1 ), 1, SCALE, SUMSQ )
+         STD = SCALE * SQRT( SUMSQ / N )
 
-          IF ( D .LE. 0 ) THEN
-            INFO = -1
-            RETURN
-          END IF
-          SI = -2*C0 / ( C1 + SQRT( D ) )
+         IF ( STD .LT. TOL * AVG ) GOTO 999
 
-          D = SI - S( I )
-          U = ZERO
-          IF ( UP ) THEN
-            DO J = 1, I
-              T = ABS( A( J, I ) )
-              U = U + S( J )*T
-              WORK( J ) = WORK( J ) + D*T
-            END DO
-            DO J = I+1,N
-              T = ABS( A( I, J ) )
-              U = U + S( J )*T
-              WORK( J ) = WORK( J ) + D*T
-            END DO
-          ELSE
-            DO J = 1, I
-              T = ABS( A( I, J ) )
-              U = U + S( J )*T
-              WORK( J ) = WORK( J ) + D*T
-            END DO
-            DO J = I+1,N
-              T = ABS( A( J, I ) )
-              U = U + S( J )*T
-              WORK( J ) = WORK( J ) + D*T
-            END DO
-          END IF
+         DO I = 1, N
+            T = ABS( A( I, I ) )
+            SI = S( I )
+            C2 = ( N-1 ) * T
+            C1 = ( N-2 ) * ( WORK( I ) - T*SI )
+            C0 = -(T*SI)*SI + 2*WORK( I )*SI - N*AVG
+            D = C1*C1 - 4*C0*C2
 
-          AVG = AVG + ( U + WORK( I ) ) * D / N
-          S( I ) = SI
+            IF ( D .LE. 0 ) THEN
+               INFO = -1
+               RETURN
+            END IF
+            SI = -2*C0 / ( C1 + SQRT( D ) )
 
-        END DO
+            D = SI - S( I )
+            U = ZERO
+            IF ( UP ) THEN
+               DO J = 1, I
+                  T = ABS( A( J, I ) )
+                  U = U + S( J )*T
+                  WORK( J ) = WORK( J ) + D*T
+               END DO
+               DO J = I+1,N
+                  T = ABS( A( I, J ) )
+                  U = U + S( J )*T
+                  WORK( J ) = WORK( J ) + D*T
+               END DO
+            ELSE
+               DO J = 1, I
+                  T = ABS( A( I, J ) )
+                  U = U + S( J )*T
+                  WORK( J ) = WORK( J ) + D*T
+               END DO
+               DO J = I+1,N
+                  T = ABS( A( J, I ) )
+                  U = U + S( J )*T
+                  WORK( J ) = WORK( J ) + D*T
+               END DO
+            END IF
 
+            AVG = AVG + ( U + WORK( I ) ) * D / N
+            S( I ) = SI
+         END DO
       END DO
 
  999  CONTINUE
       BIGNUM = ONE / SMLNUM
       SMIN = BIGNUM
       SMAX = ZERO
-      T = ONE / SQRT(AVG)
+      T = ONE / SQRT( AVG )
       BASE = DLAMCH( 'B' )
       U = ONE / LOG( BASE )
       DO I = 1, N
-        S( I ) = BASE ** INT( U * LOG( S( I ) * T ) )
-        SMIN = MIN( SMIN, S( I ) )
-        SMAX = MAX( SMAX, S( I ) )
+         S( I ) = BASE ** INT( U * LOG( S( I ) * T ) )
+         SMIN = MIN( SMIN, S( I ) )
+         SMAX = MAX( SMAX, S( I ) )
       END DO
       SCOND = MAX( SMIN, SMLNUM ) / MIN( SMAX, BIGNUM )
 *
index 96dfad5..7316e92 100644 (file)
 *
 *     .. Parameters ..
       REAL               ONE, ZERO
-      PARAMETER          ( ONE = 1.0E+0, ZERO = 0.0E+0 )
+      PARAMETER          ( ONE = 1.0E0, ZERO = 0.0E0 )
       INTEGER            MAX_ITER
       PARAMETER          ( MAX_ITER = 100 )
 *     ..
 *     ..
 *     .. Executable Statements ..
 *
-*     Test input parameters.
+*     Test the input parameters.
 *
       INFO = 0
       IF ( .NOT. ( LSAME( UPLO, 'U' ) .OR. LSAME( UPLO, 'L' ) ) ) THEN
-        INFO = -1
+         INFO = -1
       ELSE IF ( N .LT. 0 ) THEN
-        INFO = -2
+         INFO = -2
       ELSE IF ( LDA .LT. MAX( 1, N ) ) THEN
-        INFO = -4
+         INFO = -4
       END IF
       IF ( INFO .NE. 0 ) THEN
-        CALL XERBLA( 'SSYEQUB', -INFO )
-        RETURN
+         CALL XERBLA( 'SSYEQUB', -INFO )
+         RETURN
       END IF
 
       UP = LSAME( UPLO, 'U' )
 *     Quick return if possible.
 *
       IF ( N .EQ. 0 ) THEN
-        SCOND = ONE
-        RETURN
+         SCOND = ONE
+         RETURN
       END IF
 
       DO I = 1, N
-        S( I ) = ZERO
+         S( I ) = ZERO
       END DO
 
       AMAX = ZERO
             DO I = 1, J-1
                S( I ) = MAX( S( I ), ABS( A( I, J ) ) )
                S( J ) = MAX( S( J ), ABS( A( I, J ) ) )
-               AMAX = MAX( AMAX, ABS( A(I, J) ) )
+               AMAX = MAX( AMAX, ABS( A( I, J ) ) )
             END DO
             S( J ) = MAX( S( J ), ABS( A( J, J ) ) )
             AMAX = MAX( AMAX, ABS( A( J, J ) ) )
          END DO
       END IF
       DO J = 1, N
-         S( J ) = 1.0 / S( J )
+         S( J ) = 1.0E0 / S( J )
       END DO
 
-      TOL = ONE / SQRT(2.0E0 * N)
+      TOL = ONE / SQRT( 2.0E0 * N )
 
       DO ITER = 1, MAX_ITER
-         SCALE = 0.0
-         SUMSQ = 0.0
-*       BETA = |A|S
-        DO I = 1, N
-           WORK(I) = ZERO
-        END DO
-        IF ( UP ) THEN
-           DO J = 1, N
-              DO I = 1, J-1
-                 WORK( I ) = WORK( I ) + ABS( A( I, J ) ) * S( J )
-                 WORK( J ) = WORK( J ) + ABS( A( I, J ) ) * S( I )
-              END DO
-              WORK( J ) = WORK( J ) + ABS( A( J, J ) ) * S( J )
-           END DO
-        ELSE
-           DO J = 1, N
-              WORK( J ) = WORK( J ) + ABS( A( J, J ) ) * S( J )
-              DO I = J+1, N
-                 WORK( I ) = WORK( I ) + ABS( A( I, J ) ) * S( J )
-                 WORK( J ) = WORK( J ) + ABS( A( I, J ) ) * S( I )
-              END DO
-           END DO
-        END IF
-
-*       avg = s^T beta / n
-        AVG = 0.0
-        DO I = 1, N
-          AVG = AVG + S( I )*WORK( I )
-        END DO
-        AVG = AVG / N
-
-        STD = 0.0
-        DO I = 2*N+1, 3*N
-           WORK( I ) = S( I-2*N ) * WORK( I-2*N ) - AVG
-        END DO
-        CALL SLASSQ( N, WORK( 2*N+1 ), 1, SCALE, SUMSQ )
-        STD = SCALE * SQRT( SUMSQ / N )
+         SCALE = 0.0E0
+         SUMSQ = 0.0E0
+*        beta = |A|s
+         DO I = 1, N
+            WORK( I ) = ZERO
+         END DO
+         IF ( UP ) THEN
+            DO J = 1, N
+               DO I = 1, J-1
+                  WORK( I ) = WORK( I ) + ABS( A( I, J ) ) * S( J )
+                  WORK( J ) = WORK( J ) + ABS( A( I, J ) ) * S( I )
+               END DO
+               WORK( J ) = WORK( J ) + ABS( A( J, J ) ) * S( J )
+            END DO
+         ELSE
+            DO J = 1, N
+               WORK( J ) = WORK( J ) + ABS( A( J, J ) ) * S( J )
+               DO I = J+1, N
+                  WORK( I ) = WORK( I ) + ABS( A( I, J ) ) * S( J )
+                  WORK( J ) = WORK( J ) + ABS( A( I, J ) ) * S( I )
+               END DO
+            END DO
+         END IF
 
-        IF ( STD .LT. TOL * AVG ) GOTO 999
+*        avg = s^T beta / n
+         AVG = 0.0E0
+         DO I = 1, N
+            AVG = AVG + S( I )*WORK( I )
+         END DO
+         AVG = AVG / N
 
-        DO I = 1, N
-          T = ABS( A( I, I ) )
-          SI = S( I )
-          C2 = ( N-1 ) * T
-          C1 = ( N-2 ) * ( WORK( I ) - T*SI )
-          C0 = -(T*SI)*SI + 2*WORK( I )*SI - N*AVG
-          D = C1*C1 - 4*C0*C2
+         STD = 0.0E0
+         DO I = 2*N+1, 3*N
+            WORK( I ) = S( I-2*N ) * WORK( I-2*N ) - AVG
+         END DO
+         CALL SLASSQ( N, WORK( 2*N+1 ), 1, SCALE, SUMSQ )
+         STD = SCALE * SQRT( SUMSQ / N )
 
-          IF ( D .LE. 0 ) THEN
-            INFO = -1
-            RETURN
-          END IF
-          SI = -2*C0 / ( C1 + SQRT( D ) )
+         IF ( STD .LT. TOL * AVG ) GOTO 999
 
-          D = SI - S( I )
-          U = ZERO
-          IF ( UP ) THEN
-            DO J = 1, I
-              T = ABS( A( J, I ) )
-              U = U + S( J )*T
-              WORK( J ) = WORK( J ) + D*T
-            END DO
-            DO J = I+1,N
-              T = ABS( A( I, J ) )
-              U = U + S( J )*T
-              WORK( J ) = WORK( J ) + D*T
-            END DO
-          ELSE
-            DO J = 1, I
-              T = ABS( A( I, J ) )
-              U = U + S( J )*T
-              WORK( J ) = WORK( J ) + D*T
-            END DO
-            DO J = I+1,N
-              T = ABS( A( J, I ) )
-              U = U + S( J )*T
-              WORK( J ) = WORK( J ) + D*T
-            END DO
-          END IF
+         DO I = 1, N
+            T = ABS( A( I, I ) )
+            SI = S( I )
+            C2 = ( N-1 ) * T
+            C1 = ( N-2 ) * ( WORK( I ) - T*SI )
+            C0 = -(T*SI)*SI + 2*WORK( I )*SI - N*AVG
+            D = C1*C1 - 4*C0*C2
 
-          AVG = AVG + ( U + WORK( I ) ) * D / N
-          S( I ) = SI
+            IF ( D .LE. 0 ) THEN
+               INFO = -1
+               RETURN
+            END IF
+            SI = -2*C0 / ( C1 + SQRT( D ) )
 
-        END DO
+            D = SI - S( I )
+            U = ZERO
+            IF ( UP ) THEN
+               DO J = 1, I
+                  T = ABS( A( J, I ) )
+                  U = U + S( J )*T
+                  WORK( J ) = WORK( J ) + D*T
+               END DO
+               DO J = I+1,N
+                  T = ABS( A( I, J ) )
+                  U = U + S( J )*T
+                  WORK( J ) = WORK( J ) + D*T
+               END DO
+            ELSE
+               DO J = 1, I
+                  T = ABS( A( I, J ) )
+                  U = U + S( J )*T
+                  WORK( J ) = WORK( J ) + D*T
+               END DO
+               DO J = I+1,N
+                  T = ABS( A( J, I ) )
+                  U = U + S( J )*T
+                  WORK( J ) = WORK( J ) + D*T
+               END DO
+            END IF
 
+            AVG = AVG + ( U + WORK( I ) ) * D / N
+            S( I ) = SI
+         END DO
       END DO
 
  999  CONTINUE
       BIGNUM = ONE / SMLNUM
       SMIN = BIGNUM
       SMAX = ZERO
-      T = ONE / SQRT(AVG)
+      T = ONE / SQRT( AVG )
       BASE = SLAMCH( 'B' )
       U = ONE / LOG( BASE )
       DO I = 1, N
-        S( I ) = BASE ** INT( U * LOG( S( I ) * T ) )
-        SMIN = MIN( SMIN, S( I ) )
-        SMAX = MAX( SMAX, S( I ) )
+         S( I ) = BASE ** INT( U * LOG( S( I ) * T ) )
+         SMIN = MIN( SMIN, S( I ) )
+         SMAX = MAX( SMAX, S( I ) )
       END DO
       SCOND = MAX( SMIN, SMLNUM ) / MIN( SMAX, BIGNUM )
 *
index f6388ed..eee3fdb 100644 (file)
 *
 *     .. Parameters ..
       DOUBLE PRECISION   ONE, ZERO
-      PARAMETER          ( ONE = 1.0D+0, ZERO = 0.0D+0 )
+      PARAMETER          ( ONE = 1.0D0, ZERO = 0.0D0 )
       INTEGER            MAX_ITER
       PARAMETER          ( MAX_ITER = 100 )
 *     ..
 *     .. Local Scalars ..
       INTEGER            I, J, ITER
-      DOUBLE PRECISION   AVG, STD, TOL, C0, C1, C2, T, U, SI, D,
-     $                   BASE, SMIN, SMAX, SMLNUM, BIGNUM, SCALE, SUMSQ
+      DOUBLE PRECISION   AVG, STD, TOL, C0, C1, C2, T, U, SI, D, BASE,
+     $                   SMIN, SMAX, SMLNUM, BIGNUM, SCALE, SUMSQ
       LOGICAL            UP
       COMPLEX*16         ZDUM
 *     ..
 *     ..
 *     .. Statement Function Definitions ..
       CABS1( ZDUM ) = ABS( DBLE( ZDUM ) ) + ABS( DIMAG( ZDUM ) )
+*     ..
+*     .. Executable Statements ..
 *
-*     Test input parameters.
+*     Test the input parameters.
 *
       INFO = 0
-      IF (.NOT. ( LSAME( UPLO, 'U' ) .OR. LSAME( UPLO, 'L' ) ) ) THEN
-        INFO = -1
+      IF ( .NOT. ( LSAME( UPLO, 'U' ) .OR. LSAME( UPLO, 'L' ) ) ) THEN
+         INFO = -1
       ELSE IF ( N .LT. 0 ) THEN
-        INFO = -2
+         INFO = -2
       ELSE IF ( LDA .LT. MAX( 1, N ) ) THEN
-        INFO = -4
+         INFO = -4
       END IF
       IF ( INFO .NE. 0 ) THEN
-        CALL XERBLA( 'ZHEEQUB', -INFO )
-        RETURN
+         CALL XERBLA( 'ZHEEQUB', -INFO )
+         RETURN
       END IF
 
       UP = LSAME( UPLO, 'U' )
 *     Quick return if possible.
 *
       IF ( N .EQ. 0 ) THEN
-        SCOND = ONE
-        RETURN
+         SCOND = ONE
+         RETURN
       END IF
 
       DO I = 1, N
-        S( I ) = ZERO
+         S( I ) = ZERO
       END DO
 
       AMAX = ZERO
             DO I = J+1, N
                S( I ) = MAX( S( I ), CABS1( A( I, J ) ) )
                S( J ) = MAX( S( J ), CABS1( A( I, J ) ) )
-               AMAX = MAX( AMAX, CABS1( A(I, J ) ) )
+               AMAX = MAX( AMAX, CABS1( A( I, J ) ) )
             END DO
          END DO
       END IF
       DO J = 1, N
-         S( J ) = 1.0D+0 / S( J )
+         S( J ) = 1.0D0 / S( J )
       END DO
 
       TOL = ONE / SQRT( 2.0D0 * N )
 
       DO ITER = 1, MAX_ITER
-         SCALE = 0.0D+0
-         SUMSQ = 0.0D+0
-*       beta = |A|s
-        DO I = 1, N
-           WORK( I ) = ZERO
-        END DO
-        IF ( UP ) THEN
-           DO J = 1, N
-              DO I = 1, J-1
-                 WORK( I ) = WORK( I ) + CABS1( A( I, J ) ) * S( J )
-                 WORK( J ) = WORK( J ) + CABS1( A( I, J ) ) * S( I )
-              END DO
-              WORK( J ) = WORK( J ) + CABS1( A( J, J ) ) * S( J )
-           END DO
-        ELSE
-           DO J = 1, N
-              WORK( J ) = WORK( J ) + CABS1( A( J, J ) ) * S( J )
-              DO I = J+1, N
-                 WORK( I ) = WORK( I ) + CABS1( A( I, J ) ) * S( J )
-                 WORK( J ) = WORK( J ) + CABS1( A( I, J ) ) * S( I )
-              END DO
-           END DO
-        END IF
+         SCALE = 0.0D0
+         SUMSQ = 0.0D0
+*        beta = |A|s
+         DO I = 1, N
+            WORK( I ) = ZERO
+         END DO
+         IF ( UP ) THEN
+            DO J = 1, N
+               DO I = 1, J-1
+                  WORK( I ) = WORK( I ) + CABS1( A( I, J ) ) * S( J )
+                  WORK( J ) = WORK( J ) + CABS1( A( I, J ) ) * S( I )
+               END DO
+               WORK( J ) = WORK( J ) + CABS1( A( J, J ) ) * S( J )
+            END DO
+         ELSE
+            DO J = 1, N
+               WORK( J ) = WORK( J ) + CABS1( A( J, J ) ) * S( J )
+               DO I = J+1, N
+                  WORK( I ) = WORK( I ) + CABS1( A( I, J ) ) * S( J )
+                  WORK( J ) = WORK( J ) + CABS1( A( I, J ) ) * S( I )
+               END DO
+            END DO
+         END IF
 
-*       avg = s^T beta / n
-        AVG = 0.0D+0
-        DO I = 1, N
-          AVG = AVG + S( I )*WORK( I )
-        END DO
-        AVG = AVG / N
+*        avg = s^T beta / n
+         AVG = 0.0D0
+         DO I = 1, N
+            AVG = AVG + S( I )*WORK( I )
+         END DO
+         AVG = AVG / N
 
-        STD = 0.0D+0
-        DO I = 2*N+1, 3*N
-           WORK( I ) = S( I-2*N ) * WORK( I-2*N ) - AVG
-        END DO
-        CALL ZLASSQ( N, WORK( 2*N+1 ), 1, SCALE, SUMSQ )
-        STD = SCALE * SQRT( SUMSQ / N )
+         STD = 0.0D0
+         DO I = 2*N+1, 3*N
+            WORK( I ) = S( I-2*N ) * WORK( I-2*N ) - AVG
+         END DO
+         CALL ZLASSQ( N, WORK( 2*N+1 ), 1, SCALE, SUMSQ )
+         STD = SCALE * SQRT( SUMSQ / N )
 
-        IF ( STD .LT. TOL * AVG ) GOTO 999
+         IF ( STD .LT. TOL * AVG ) GOTO 999
 
-        DO I = 1, N
-          T = CABS1( A( I, I ) )
-          SI = S( I )
-          C2 = ( N-1 ) * T
-          C1 = ( N-2 ) * ( WORK( I ) - T*SI )
-          C0 = -(T*SI)*SI + 2*WORK( I )*SI - N*AVG
+         DO I = 1, N
+            T = CABS1( A( I, I ) )
+            SI = S( I )
+            C2 = ( N-1 ) * T
+            C1 = ( N-2 ) * ( WORK( I ) - T*SI )
+            C0 = -(T*SI)*SI + 2*WORK( I )*SI - N*AVG
+            D = C1*C1 - 4*C0*C2
 
-          D = C1*C1 - 4*C0*C2
-          IF ( D .LE. 0 ) THEN
-            INFO = -1
-            RETURN
-          END IF
-          SI = -2*C0 / ( C1 + SQRT( D ) )
+            IF ( D .LE. 0 ) THEN
+               INFO = -1
+               RETURN
+            END IF
+            SI = -2*C0 / ( C1 + SQRT( D ) )
 
-          D = SI - S(I)
-          U = ZERO
-          IF ( UP ) THEN
-            DO J = 1, I
-              T = CABS1( A( J, I ) )
-              U = U + S( J )*T
-              WORK( J ) = WORK( J ) + D*T
-            END DO
-            DO J = I+1,N
-              T = CABS1( A( I, J ) )
-              U = U + S( J )*T
-              WORK( J ) = WORK( J ) + D*T
-            END DO
-          ELSE
-            DO J = 1, I
-              T = CABS1( A( I, J ) )
-              U = U + S( J )*T
-              WORK( J ) = WORK( J ) + D*T
-            END DO
-            DO J = I+1,N
-              T = CABS1( A( J, I ) )
-              U = U + S( J )*T
-              WORK( J ) = WORK( J ) + D*T
-            END DO
-          END IF
-          AVG = AVG + ( U + WORK( I ) ) * D / N
-          S( I ) = SI
-        END DO
+            D = SI - S( I )
+            U = ZERO
+            IF ( UP ) THEN
+               DO J = 1, I
+                  T = CABS1( A( J, I ) )
+                  U = U + S( J )*T
+                  WORK( J ) = WORK( J ) + D*T
+               END DO
+               DO J = I+1,N
+                  T = CABS1( A( I, J ) )
+                  U = U + S( J )*T
+                  WORK( J ) = WORK( J ) + D*T
+               END DO
+            ELSE
+               DO J = 1, I
+                  T = CABS1( A( I, J ) )
+                  U = U + S( J )*T
+                  WORK( J ) = WORK( J ) + D*T
+               END DO
+               DO J = I+1,N
+                  T = CABS1( A( J, I ) )
+                  U = U + S( J )*T
+                  WORK( J ) = WORK( J ) + D*T
+               END DO
+            END IF
 
+            AVG = AVG + ( U + WORK( I ) ) * D / N
+            S( I ) = SI
+         END DO
       END DO
 
  999  CONTINUE
       BASE = DLAMCH( 'B' )
       U = ONE / LOG( BASE )
       DO I = 1, N
-        S( I ) = BASE ** INT( U * LOG( S( I ) * T ) )
-        SMIN = MIN( SMIN, S( I ) )
-        SMAX = MAX( SMAX, S( I ) )
+         S( I ) = BASE ** INT( U * LOG( S( I ) * T ) )
+         SMIN = MIN( SMIN, S( I ) )
+         SMAX = MAX( SMAX, S( I ) )
       END DO
       SCOND = MAX( SMIN, SMLNUM ) / MIN( SMAX, BIGNUM )
-
+*
       END
index ed41d51..7f2e1e8 100644 (file)
 *     .. Statement Functions ..
       DOUBLE PRECISION   CABS1
 *     ..
-*     Statement Function Definitions
+*     .. Statement Function Definitions ..
       CABS1( ZDUM ) = ABS( DBLE( ZDUM ) ) + ABS( DIMAG( ZDUM ) )
 *     ..
 *     .. Executable Statements ..
 *
       INFO = 0
       IF ( .NOT. ( LSAME( UPLO, 'U' ) .OR. LSAME( UPLO, 'L' ) ) ) THEN
-        INFO = -1
+         INFO = -1
       ELSE IF ( N .LT. 0 ) THEN
-        INFO = -2
+         INFO = -2
       ELSE IF ( LDA .LT. MAX( 1, N ) ) THEN
-        INFO = -4
+         INFO = -4
       END IF
       IF ( INFO .NE. 0 ) THEN
-        CALL XERBLA( 'ZSYEQUB', -INFO )
-        RETURN
+         CALL XERBLA( 'ZSYEQUB', -INFO )
+         RETURN
       END IF
 
       UP = LSAME( UPLO, 'U' )
 *     Quick return if possible.
 *
       IF ( N .EQ. 0 ) THEN
-        SCOND = ONE
-        RETURN
+         SCOND = ONE
+         RETURN
       END IF
 
       DO I = 1, N
-        S( I ) = ZERO
+         S( I ) = ZERO
       END DO
 
       AMAX = ZERO
                S( J ) = MAX( S( J ), CABS1( A( I, J ) ) )
                AMAX = MAX( AMAX, CABS1( A( I, J ) ) )
             END DO
-            S( J ) = MAX( S( J ), CABS1( A( J, J) ) )
+            S( J ) = MAX( S( J ), CABS1( A( J, J ) ) )
             AMAX = MAX( AMAX, CABS1( A( J, J ) ) )
          END DO
       ELSE
             AMAX = MAX( AMAX, CABS1( A( J, J ) ) )
             DO I = J+1, N
                S( I ) = MAX( S( I ), CABS1( A( I, J ) ) )
-               S( J ) = MAX( S( J ), CABS1 (A( I, J ) ) )
+               S( J ) = MAX( S( J ), CABS1A( I, J ) ) )
                AMAX = MAX( AMAX, CABS1( A( I, J ) ) )
             END DO
          END DO
       END IF
       DO J = 1, N
-         S( J ) = 1.0D+0 / S( J )
+         S( J ) = 1.0D0 / S( J )
       END DO
 
       TOL = ONE / SQRT( 2.0D0 * N )
 
       DO ITER = 1, MAX_ITER
-         SCALE = 0.0D+0
-         SUMSQ = 0.0D+0
-*       beta = |A|s
-        DO I = 1, N
-           WORK( I ) = ZERO
-        END DO
-        IF ( UP ) THEN
-           DO J = 1, N
-              DO I = 1, J-1
-                 WORK( I ) = WORK( I ) + CABS1( A( I, J ) ) * S( J )
-                 WORK( J ) = WORK( J ) + CABS1( A( I, J ) ) * S( I )
-              END DO
-              WORK( J ) = WORK( J ) + CABS1( A( J, J ) ) * S( J )
-           END DO
-        ELSE
-           DO J = 1, N
-              WORK( J ) = WORK( J ) + CABS1( A( J, J ) ) * S( J )
-              DO I = J+1, N
-                 WORK( I ) = WORK( I ) + CABS1( A( I, J ) ) * S( J )
-                 WORK( J ) = WORK( J ) + CABS1( A( I, J ) ) * S( I )
-              END DO
-           END DO
-        END IF
+         SCALE = 0.0D0
+         SUMSQ = 0.0D0
+*        beta = |A|s
+         DO I = 1, N
+            WORK( I ) = ZERO
+         END DO
+         IF ( UP ) THEN
+            DO J = 1, N
+               DO I = 1, J-1
+                  WORK( I ) = WORK( I ) + CABS1( A( I, J ) ) * S( J )
+                  WORK( J ) = WORK( J ) + CABS1( A( I, J ) ) * S( I )
+               END DO
+               WORK( J ) = WORK( J ) + CABS1( A( J, J ) ) * S( J )
+            END DO
+         ELSE
+            DO J = 1, N
+               WORK( J ) = WORK( J ) + CABS1( A( J, J ) ) * S( J )
+               DO I = J+1, N
+                  WORK( I ) = WORK( I ) + CABS1( A( I, J ) ) * S( J )
+                  WORK( J ) = WORK( J ) + CABS1( A( I, J ) ) * S( I )
+               END DO
+            END DO
+         END IF
 
-*       avg = s^T beta / n
-        AVG = 0.0D+0
-        DO I = 1, N
-          AVG = AVG + S( I )*WORK( I )
-        END DO
-        AVG = AVG / N
+*        avg = s^T beta / n
+         AVG = 0.0D0
+         DO I = 1, N
+            AVG = AVG + S( I )*WORK( I )
+         END DO
+         AVG = AVG / N
 
-        STD = 0.0D+0
-        DO I = N+1, 2*N
-           WORK( I ) = S( I-N ) * WORK( I-N ) - AVG
-        END DO
-        CALL ZLASSQ( N, WORK( N+1 ), 1, SCALE, SUMSQ )
-        STD = SCALE * SQRT( SUMSQ / N )
+         STD = 0.0D0
+         DO I = N+1, 2*N
+            WORK( I ) = S( I-N ) * WORK( I-N ) - AVG
+         END DO
+         CALL ZLASSQ( N, WORK( N+1 ), 1, SCALE, SUMSQ )
+         STD = SCALE * SQRT( SUMSQ / N )
 
-        IF ( STD .LT. TOL * AVG ) GOTO 999
+         IF ( STD .LT. TOL * AVG ) GOTO 999
 
-        DO I = 1, N
-          T = CABS1( A( I, I ) )
-          SI = S( I )
-          C2 = ( N-1 ) * T
-          C1 = ( N-2 ) * ( WORK( I ) - T*SI )
-          C0 = -(T*SI)*SI + 2*WORK( I )*SI - N*AVG
-          D = C1*C1 - 4*C0*C2
+         DO I = 1, N
+            T = CABS1( A( I, I ) )
+            SI = S( I )
+            C2 = ( N-1 ) * T
+            C1 = ( N-2 ) * ( WORK( I ) - T*SI )
+            C0 = -(T*SI)*SI + 2*WORK( I )*SI - N*AVG
+            D = C1*C1 - 4*C0*C2
 
-          IF ( D .LE. 0 ) THEN
-            INFO = -1
-            RETURN
-          END IF
-          SI = -2*C0 / ( C1 + SQRT( D ) )
+            IF ( D .LE. 0 ) THEN
+               INFO = -1
+               RETURN
+            END IF
+            SI = -2*C0 / ( C1 + SQRT( D ) )
 
-          D = SI - S( I )
-          U = ZERO
-          IF ( UP ) THEN
-            DO J = 1, I
-              T = CABS1( A( J, I ) )
-              U = U + S( J )*T
-              WORK( J ) = WORK( J ) + D*T
-            END DO
-            DO J = I+1,N
-              T = CABS1( A( I, J ) )
-              U = U + S( J )*T
-              WORK( J ) = WORK( J ) + D*T
-            END DO
-          ELSE
-            DO J = 1, I
-              T = CABS1( A( I, J ) )
-              U = U + S( J )*T
-              WORK( J ) = WORK( J ) + D*T
-            END DO
-            DO J = I+1,N
-              T = CABS1( A( J, I ) )
-              U = U + S( J )*T
-              WORK( J ) = WORK( J ) + D*T
-            END DO
-          END IF
-          AVG = AVG + ( U + WORK( I ) ) * D / N
-          S( I ) = SI
-        END DO
+            D = SI - S( I )
+            U = ZERO
+            IF ( UP ) THEN
+               DO J = 1, I
+                  T = CABS1( A( J, I ) )
+                  U = U + S( J )*T
+                  WORK( J ) = WORK( J ) + D*T
+               END DO
+               DO J = I+1,N
+                  T = CABS1( A( I, J ) )
+                  U = U + S( J )*T
+                  WORK( J ) = WORK( J ) + D*T
+               END DO
+            ELSE
+               DO J = 1, I
+                  T = CABS1( A( I, J ) )
+                  U = U + S( J )*T
+                  WORK( J ) = WORK( J ) + D*T
+               END DO
+               DO J = I+1,N
+                  T = CABS1( A( J, I ) )
+                  U = U + S( J )*T
+                  WORK( J ) = WORK( J ) + D*T
+               END DO
+            END IF
+
+            AVG = AVG + ( U + WORK( I ) ) * D / N
+            S( I ) = SI
+         END DO
       END DO
 
  999  CONTINUE
       BASE = DLAMCH( 'B' )
       U = ONE / LOG( BASE )
       DO I = 1, N
-        S( I ) = BASE ** INT( U * LOG( S( I ) * T ) )
-        SMIN = MIN( SMIN, S( I ) )
-        SMAX = MAX( SMAX, S( I ) )
+         S( I ) = BASE ** INT( U * LOG( S( I ) * T ) )
+         SMIN = MIN( SMIN, S( I ) )
+         SMAX = MAX( SMAX, S( I ) )
       END DO
       SCOND = MAX( SMIN, SMLNUM ) / MIN( SMAX, BIGNUM )
 *