Diff for /rpl/lapack/lapack/zlanhf.f between versions 1.9 and 1.10

version 1.9, 2012/08/22 09:48:35 version 1.10, 2012/12/14 12:30:31
Line 1 Line 1
 *> \brief \b ZLANHF  *> \brief \b ZLANHF returns the value of the 1-norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of a Hermitian matrix in RFP format.
 *  *
 *  =========== DOCUMENTATION ===========  *  =========== DOCUMENTATION ===========
 *  *
Line 131 Line 131
 *> \author Univ. of Colorado Denver   *> \author Univ. of Colorado Denver 
 *> \author NAG Ltd.   *> \author NAG Ltd. 
 *  *
 *> \date November 2011  *> \date September 2012
 *  *
 *> \ingroup complex16OTHERcomputational  *> \ingroup complex16OTHERcomputational
 *  *
Line 246 Line 246
 *  =====================================================================  *  =====================================================================
       DOUBLE PRECISION FUNCTION ZLANHF( NORM, TRANSR, UPLO, N, A, WORK )        DOUBLE PRECISION FUNCTION ZLANHF( NORM, TRANSR, UPLO, N, A, WORK )
 *  *
 *  -- LAPACK computational routine (version 3.4.0) --  *  -- LAPACK computational routine (version 3.4.2) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --  *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--  *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
 *     November 2011  *     September 2012
 *  *
 *     .. Scalar Arguments ..  *     .. Scalar Arguments ..
       CHARACTER          NORM, TRANSR, UPLO        CHARACTER          NORM, TRANSR, UPLO
Line 268 Line 268
 *     ..  *     ..
 *     .. Local Scalars ..  *     .. Local Scalars ..
       INTEGER            I, J, IFM, ILU, NOE, N1, K, L, LDA        INTEGER            I, J, IFM, ILU, NOE, N1, K, L, LDA
       DOUBLE PRECISION   SCALE, S, VALUE, AA        DOUBLE PRECISION   SCALE, S, VALUE, AA, TEMP
 *     ..  *     ..
 *     .. External Functions ..  *     .. External Functions ..
       LOGICAL            LSAME        LOGICAL            LSAME, DISNAN
       INTEGER            IDAMAX        EXTERNAL           LSAME, DISNAN
       EXTERNAL           LSAME, IDAMAX  
 *     ..  *     ..
 *     .. External Subroutines ..  *     .. External Subroutines ..
       EXTERNAL           ZLASSQ        EXTERNAL           ZLASSQ
 *     ..  *     ..
 *     .. Intrinsic Functions ..  *     .. Intrinsic Functions ..
       INTRINSIC          ABS, DBLE, MAX, SQRT        INTRINSIC          ABS, DBLE, SQRT
 *     ..  *     ..
 *     .. Executable Statements ..  *     .. Executable Statements ..
 *  *
Line 339 Line 338
 *                 uplo ='L'  *                 uplo ='L'
                   J = 0                    J = 0
 *                 -> L(0,0)  *                 -> L(0,0)
                   VALUE = MAX( VALUE, ABS( DBLE( A( J+J*LDA ) ) ) )                    TEMP = ABS( DBLE( A( J+J*LDA ) ) )
                     IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) ) 
        $                 VALUE = TEMP
                   DO I = 1, N - 1                    DO I = 1, N - 1
                      VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                       TEMP = ABS( A( I+J*LDA ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) ) 
        $                    VALUE = TEMP
                   END DO                    END DO
                   DO J = 1, K - 1                    DO J = 1, K - 1
                      DO I = 0, J - 2                       DO I = 0, J - 2
                         VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                          TEMP = ABS( A( I+J*LDA ) )
                           IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                       VALUE = TEMP
                      END DO                       END DO
                      I = J - 1                       I = J - 1
 *                    L(k+j,k+j)  *                    L(k+j,k+j)
                      VALUE = MAX( VALUE, ABS( DBLE( A( I+J*LDA ) ) ) )                       TEMP = ABS( DBLE( A( I+J*LDA ) ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                      I = J                       I = J
 *                    -> L(j,j)  *                    -> L(j,j)
                      VALUE = MAX( VALUE, ABS( DBLE( A( I+J*LDA ) ) ) )                       TEMP = ABS( DBLE( A( I+J*LDA ) ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                      DO I = J + 1, N - 1                       DO I = J + 1, N - 1
                         VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                          TEMP = ABS( A( I+J*LDA ) )
                           IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                       VALUE = TEMP
                      END DO                       END DO
                   END DO                    END DO
                ELSE                 ELSE
 *                 uplo = 'U'  *                 uplo = 'U'
                   DO J = 0, K - 2                    DO J = 0, K - 2
                      DO I = 0, K + J - 2                       DO I = 0, K + J - 2
                         VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                          TEMP = ABS( A( I+J*LDA ) )
                           IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                       VALUE = TEMP
                      END DO                       END DO
                      I = K + J - 1                       I = K + J - 1
 *                    -> U(i,i)  *                    -> U(i,i)
                      VALUE = MAX( VALUE, ABS( DBLE( A( I+J*LDA ) ) ) )                       TEMP = ABS( DBLE( A( I+J*LDA ) ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                      I = I + 1                       I = I + 1
 *                    =k+j; i -> U(j,j)  *                    =k+j; i -> U(j,j)
                      VALUE = MAX( VALUE, ABS( DBLE( A( I+J*LDA ) ) ) )                       TEMP = ABS( DBLE( A( I+J*LDA ) ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                      DO I = K + J + 1, N - 1                       DO I = K + J + 1, N - 1
                         VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                          TEMP = ABS( A( I+J*LDA ) )
                           IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                       VALUE = TEMP
                      END DO                       END DO
                   END DO                    END DO
                   DO I = 0, N - 2                    DO I = 0, N - 2
                      VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                       TEMP = ABS( A( I+J*LDA ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
 *                    j=k-1  *                    j=k-1
                   END DO                    END DO
 *                 i=n-1 -> U(n-1,n-1)  *                 i=n-1 -> U(n-1,n-1)
                   VALUE = MAX( VALUE, ABS( DBLE( A( I+J*LDA ) ) ) )                    TEMP = ABS( DBLE( A( I+J*LDA ) ) )
                     IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                 VALUE = TEMP
                END IF                 END IF
             ELSE              ELSE
 *              xpose case; A is k by n  *              xpose case; A is k by n
Line 386 Line 409
 *                 uplo ='L'  *                 uplo ='L'
                   DO J = 0, K - 2                    DO J = 0, K - 2
                      DO I = 0, J - 1                       DO I = 0, J - 1
                         VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                          TEMP = ABS( A( I+J*LDA ) )
                           IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                       VALUE = TEMP
                      END DO                       END DO
                      I = J                       I = J
 *                    L(i,i)  *                    L(i,i)
                      VALUE = MAX( VALUE, ABS( DBLE( A( I+J*LDA ) ) ) )                       TEMP = ABS( DBLE( A( I+J*LDA ) ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                      I = J + 1                       I = J + 1
 *                    L(j+k,j+k)  *                    L(j+k,j+k)
                      VALUE = MAX( VALUE, ABS( DBLE( A( I+J*LDA ) ) ) )                       TEMP = ABS( DBLE( A( I+J*LDA ) ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                      DO I = J + 2, K - 1                       DO I = J + 2, K - 1
                         VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                          TEMP = ABS( A( I+J*LDA ) )
                           IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                       VALUE = TEMP
                      END DO                       END DO
                   END DO                    END DO
                   J = K - 1                    J = K - 1
                   DO I = 0, K - 2                    DO I = 0, K - 2
                      VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                       TEMP = ABS( A( I+J*LDA ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                   END DO                    END DO
                   I = K - 1                    I = K - 1
 *                 -> L(i,i) is at A(i,j)  *                 -> L(i,i) is at A(i,j)
                   VALUE = MAX( VALUE, ABS( DBLE( A( I+J*LDA ) ) ) )                    TEMP = ABS( DBLE( A( I+J*LDA ) ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                   DO J = K, N - 1                    DO J = K, N - 1
                      DO I = 0, K - 1                       DO I = 0, K - 1
                         VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                          TEMP = ABS( A( I+J*LDA ) )
                           IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                       VALUE = TEMP
                      END DO                       END DO
                   END DO                    END DO
                ELSE                 ELSE
 *                 uplo = 'U'  *                 uplo = 'U'
                   DO J = 0, K - 2                    DO J = 0, K - 2
                      DO I = 0, K - 1                       DO I = 0, K - 1
                         VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                          TEMP = ABS( A( I+J*LDA ) )
                           IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                       VALUE = TEMP
                      END DO                       END DO
                   END DO                    END DO
                   J = K - 1                    J = K - 1
 *                 -> U(j,j) is at A(0,j)  *                 -> U(j,j) is at A(0,j)
                   VALUE = MAX( VALUE, ABS( DBLE( A( 0+J*LDA ) ) ) )                    TEMP = ABS( DBLE( A( 0+J*LDA ) ) )
                     IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                   DO I = 1, K - 1                    DO I = 1, K - 1
                      VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                       TEMP = ABS( A( I+J*LDA ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                   END DO                    END DO
                   DO J = K, N - 1                    DO J = K, N - 1
                      DO I = 0, J - K - 1                       DO I = 0, J - K - 1
                         VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                          TEMP = ABS( A( I+J*LDA ) )
                           IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                       VALUE = TEMP
                      END DO                       END DO
                      I = J - K                       I = J - K
 *                    -> U(i,i) at A(i,j)  *                    -> U(i,i) at A(i,j)
                      VALUE = MAX( VALUE, ABS( DBLE( A( I+J*LDA ) ) ) )                       TEMP = ABS( DBLE( A( I+J*LDA ) ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                      I = J - K + 1                       I = J - K + 1
 *                    U(j,j)  *                    U(j,j)
                      VALUE = MAX( VALUE, ABS( DBLE( A( I+J*LDA ) ) ) )                       TEMP = ABS( DBLE( A( I+J*LDA ) ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                      DO I = J - K + 2, K - 1                       DO I = J - K + 2, K - 1
                         VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                          TEMP = ABS( A( I+J*LDA ) )
                           IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                       VALUE = TEMP
                      END DO                       END DO
                   END DO                    END DO
                END IF                 END IF
Line 447 Line 498
 *                 uplo ='L'  *                 uplo ='L'
                   J = 0                    J = 0
 *                 -> L(k,k) & j=1 -> L(0,0)  *                 -> L(k,k) & j=1 -> L(0,0)
                   VALUE = MAX( VALUE, ABS( DBLE( A( J+J*LDA ) ) ) )                    TEMP = ABS( DBLE( A( J+J*LDA ) ) )
                   VALUE = MAX( VALUE, ABS( DBLE( A( J+1+J*LDA ) ) ) )                    IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                 VALUE = TEMP
                     TEMP = ABS( DBLE( A( J+1+J*LDA ) ) )
                     IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                 VALUE = TEMP
                   DO I = 2, N                    DO I = 2, N
                      VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                       TEMP = ABS( A( I+J*LDA ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                   END DO                    END DO
                   DO J = 1, K - 1                    DO J = 1, K - 1
                      DO I = 0, J - 1                       DO I = 0, J - 1
                         VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                          TEMP = ABS( A( I+J*LDA ) )
                           IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                       VALUE = TEMP
                      END DO                       END DO
                      I = J                       I = J
 *                    L(k+j,k+j)  *                    L(k+j,k+j)
                      VALUE = MAX( VALUE, ABS( DBLE( A( I+J*LDA ) ) ) )                       TEMP = ABS( DBLE( A( I+J*LDA ) ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                      I = J + 1                       I = J + 1
 *                    -> L(j,j)  *                    -> L(j,j)
                      VALUE = MAX( VALUE, ABS( DBLE( A( I+J*LDA ) ) ) )                       TEMP = ABS( DBLE( A( I+J*LDA ) ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                      DO I = J + 2, N                       DO I = J + 2, N
                         VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                          TEMP = ABS( A( I+J*LDA ) )
                           IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                       VALUE = TEMP
                      END DO                       END DO
                   END DO                    END DO
                ELSE                 ELSE
 *                 uplo = 'U'  *                 uplo = 'U'
                   DO J = 0, K - 2                    DO J = 0, K - 2
                      DO I = 0, K + J - 1                       DO I = 0, K + J - 1
                         VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                          TEMP = ABS( A( I+J*LDA ) )
                           IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                       VALUE = TEMP
                      END DO                       END DO
                      I = K + J                       I = K + J
 *                    -> U(i,i)  *                    -> U(i,i)
                      VALUE = MAX( VALUE, ABS( DBLE( A( I+J*LDA ) ) ) )                       TEMP = ABS( DBLE( A( I+J*LDA ) ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                      I = I + 1                       I = I + 1
 *                    =k+j+1; i -> U(j,j)  *                    =k+j+1; i -> U(j,j)
                      VALUE = MAX( VALUE, ABS( DBLE( A( I+J*LDA ) ) ) )                       TEMP = ABS( DBLE( A( I+J*LDA ) ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                      DO I = K + J + 2, N                       DO I = K + J + 2, N
                         VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                          TEMP = ABS( A( I+J*LDA ) )
                           IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                       VALUE = TEMP
                      END DO                       END DO
                   END DO                    END DO
                   DO I = 0, N - 2                    DO I = 0, N - 2
                      VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                       TEMP = ABS( A( I+J*LDA ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
 *                    j=k-1  *                    j=k-1
                   END DO                    END DO
 *                 i=n-1 -> U(n-1,n-1)  *                 i=n-1 -> U(n-1,n-1)
                   VALUE = MAX( VALUE, ABS( DBLE( A( I+J*LDA ) ) ) )                    TEMP = ABS( DBLE( A( I+J*LDA ) ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                   I = N                    I = N
 *                 -> U(k-1,k-1)  *                 -> U(k-1,k-1)
                   VALUE = MAX( VALUE, ABS( DBLE( A( I+J*LDA ) ) ) )                    TEMP = ABS( DBLE( A( I+J*LDA ) ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                END IF                 END IF
             ELSE              ELSE
 *              xpose case; A is k by n+1  *              xpose case; A is k by n+1
Line 498 Line 577
 *                 uplo ='L'  *                 uplo ='L'
                   J = 0                    J = 0
 *                 -> L(k,k) at A(0,0)  *                 -> L(k,k) at A(0,0)
                   VALUE = MAX( VALUE, ABS( DBLE( A( J+J*LDA ) ) ) )                    TEMP = ABS( DBLE( A( J+J*LDA ) ) )
                     IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                   DO I = 1, K - 1                    DO I = 1, K - 1
                      VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                       TEMP = ABS( A( I+J*LDA ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                   END DO                    END DO
                   DO J = 1, K - 1                    DO J = 1, K - 1
                      DO I = 0, J - 2                       DO I = 0, J - 2
                         VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                          TEMP = ABS( A( I+J*LDA ) )
                           IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                       VALUE = TEMP
                      END DO                       END DO
                      I = J - 1                       I = J - 1
 *                    L(i,i)  *                    L(i,i)
                      VALUE = MAX( VALUE, ABS( DBLE( A( I+J*LDA ) ) ) )                       TEMP = ABS( DBLE( A( I+J*LDA ) ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                      I = J                       I = J
 *                    L(j+k,j+k)  *                    L(j+k,j+k)
                      VALUE = MAX( VALUE, ABS( DBLE( A( I+J*LDA ) ) ) )                       TEMP = ABS( DBLE( A( I+J*LDA ) ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                      DO I = J + 1, K - 1                       DO I = J + 1, K - 1
                         VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                          TEMP = ABS( A( I+J*LDA ) )
                           IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                       VALUE = TEMP
                      END DO                       END DO
                   END DO                    END DO
                   J = K                    J = K
                   DO I = 0, K - 2                    DO I = 0, K - 2
                      VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                       TEMP = ABS( A( I+J*LDA ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                   END DO                    END DO
                   I = K - 1                    I = K - 1
 *                 -> L(i,i) is at A(i,j)  *                 -> L(i,i) is at A(i,j)
                   VALUE = MAX( VALUE, ABS( DBLE( A( I+J*LDA ) ) ) )                    TEMP = ABS( DBLE( A( I+J*LDA ) ) )
                     IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                 VALUE = TEMP
                   DO J = K + 1, N                    DO J = K + 1, N
                      DO I = 0, K - 1                       DO I = 0, K - 1
                         VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                          TEMP = ABS( A( I+J*LDA ) )
                           IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                       VALUE = TEMP
                      END DO                       END DO
                   END DO                    END DO
                ELSE                 ELSE
 *                 uplo = 'U'  *                 uplo = 'U'
                   DO J = 0, K - 1                    DO J = 0, K - 1
                      DO I = 0, K - 1                       DO I = 0, K - 1
                         VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                          TEMP = ABS( A( I+J*LDA ) )
                           IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                       VALUE = TEMP
                      END DO                       END DO
                   END DO                    END DO
                   J = K                    J = K
 *                 -> U(j,j) is at A(0,j)  *                 -> U(j,j) is at A(0,j)
                   VALUE = MAX( VALUE, ABS( DBLE( A( 0+J*LDA ) ) ) )                    TEMP = ABS( DBLE( A( 0+J*LDA ) ) )
                     IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                 VALUE = TEMP
                   DO I = 1, K - 1                    DO I = 1, K - 1
                      VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                       TEMP = ABS( A( I+J*LDA ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                   END DO                    END DO
                   DO J = K + 1, N - 1                    DO J = K + 1, N - 1
                      DO I = 0, J - K - 2                       DO I = 0, J - K - 2
                         VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                          TEMP = ABS( A( I+J*LDA ) )
                           IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                       VALUE = TEMP
                      END DO                       END DO
                      I = J - K - 1                       I = J - K - 1
 *                    -> U(i,i) at A(i,j)  *                    -> U(i,i) at A(i,j)
                      VALUE = MAX( VALUE, ABS( DBLE( A( I+J*LDA ) ) ) )                       TEMP = ABS( DBLE( A( I+J*LDA ) ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                      I = J - K                       I = J - K
 *                    U(j,j)  *                    U(j,j)
                      VALUE = MAX( VALUE, ABS( DBLE( A( I+J*LDA ) ) ) )                       TEMP = ABS( DBLE( A( I+J*LDA ) ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                      DO I = J - K + 1, K - 1                       DO I = J - K + 1, K - 1
                         VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                          TEMP = ABS( A( I+J*LDA ) )
                           IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                       VALUE = TEMP
                      END DO                       END DO
                   END DO                    END DO
                   J = N                    J = N
                   DO I = 0, K - 2                    DO I = 0, K - 2
                      VALUE = MAX( VALUE, ABS( A( I+J*LDA ) ) )                       TEMP = ABS( A( I+J*LDA ) )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                   END DO                    END DO
                   I = K - 1                    I = K - 1
 *                 U(k,k) at A(i,j)  *                 U(k,k) at A(i,j)
                   VALUE = MAX( VALUE, ABS( DBLE( A( I+J*LDA ) ) ) )                    TEMP = ABS( DBLE( A( I+J*LDA ) ) )
                     IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                 VALUE = TEMP
                END IF                 END IF
             END IF              END IF
          END IF           END IF
Line 608 Line 723
                      WORK( J ) = WORK( J ) + S                       WORK( J ) = WORK( J ) + S
                   END DO                    END DO
    10             CONTINUE     10             CONTINUE
                   I = IDAMAX( N, WORK, 1 )                    VALUE = WORK( 0 )
                   VALUE = WORK( I-1 )                    DO I = 1, N-1
                        TEMP = WORK( I )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) ) 
        $                    VALUE = TEMP
                     END DO
                ELSE                 ELSE
 *                 ilu = 1 & uplo = 'L'  *                 ilu = 1 & uplo = 'L'
                   K = K + 1                    K = K + 1
Line 646 Line 765
                      END DO                       END DO
                      WORK( J ) = WORK( J ) + S                       WORK( J ) = WORK( J ) + S
                   END DO                    END DO
                   I = IDAMAX( N, WORK, 1 )                    VALUE = WORK( 0 )
                   VALUE = WORK( I-1 )                    DO I = 1, N-1
                        TEMP = WORK( I )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                     END DO
                END IF                 END IF
             ELSE              ELSE
 *              n is even & A is n+1 by k = n/2  *              n is even & A is n+1 by k = n/2
Line 681 Line 804
                      END DO                       END DO
                      WORK( J ) = WORK( J ) + S                       WORK( J ) = WORK( J ) + S
                   END DO                    END DO
                   I = IDAMAX( N, WORK, 1 )                    VALUE = WORK( 0 )
                   VALUE = WORK( I-1 )                    DO I = 1, N-1
                        TEMP = WORK( I )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                     END DO
                ELSE                 ELSE
 *                 ilu = 1 & uplo = 'L'  *                 ilu = 1 & uplo = 'L'
                   DO I = K, N - 1                    DO I = K, N - 1
Line 715 Line 842
                      END DO                       END DO
                      WORK( J ) = WORK( J ) + S                       WORK( J ) = WORK( J ) + S
                   END DO                    END DO
                   I = IDAMAX( N, WORK, 1 )                    VALUE = WORK( 0 )
                   VALUE = WORK( I-1 )                    DO I = 1, N-1
                        TEMP = WORK( I )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                     END DO
                END IF                 END IF
             END IF              END IF
          ELSE           ELSE
Line 778 Line 909
                      END DO                       END DO
                      WORK( J ) = WORK( J ) + S                       WORK( J ) = WORK( J ) + S
                   END DO                    END DO
                   I = IDAMAX( N, WORK, 1 )                    VALUE = WORK( 0 )
                   VALUE = WORK( I-1 )                    DO I = 1, N-1
                        TEMP = WORK( I )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                     END DO
                ELSE                 ELSE
 *                 ilu=1 & uplo = 'L'  *                 ilu=1 & uplo = 'L'
                   K = K + 1                    K = K + 1
Line 839 Line 974
                      END DO                       END DO
                      WORK( J ) = WORK( J ) + S                       WORK( J ) = WORK( J ) + S
                   END DO                    END DO
                   I = IDAMAX( N, WORK, 1 )                    VALUE = WORK( 0 )
                   VALUE = WORK( I-1 )                    DO I = 1, N-1
                        TEMP = WORK( I )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                     END DO
                END IF                 END IF
             ELSE              ELSE
 *              n is even & A is k=n/2 by n+1  *              n is even & A is k=n/2 by n+1
Line 909 Line 1048
 *                 A(k-1,k-1)  *                 A(k-1,k-1)
                   S = S + AA                    S = S + AA
                   WORK( I ) = WORK( I ) + S                    WORK( I ) = WORK( I ) + S
                   I = IDAMAX( N, WORK, 1 )                    VALUE = WORK( 0 )
                   VALUE = WORK( I-1 )                    DO I = 1, N-1
                        TEMP = WORK( I )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                     END DO
                ELSE                 ELSE
 *                 ilu=1 & uplo = 'L'  *                 ilu=1 & uplo = 'L'
                   DO I = K, N - 1                    DO I = K, N - 1
Line 980 Line 1123
                      END DO                       END DO
                      WORK( J-1 ) = WORK( J-1 ) + S                       WORK( J-1 ) = WORK( J-1 ) + S
                   END DO                    END DO
                   I = IDAMAX( N, WORK, 1 )                    VALUE = WORK( 0 )
                   VALUE = WORK( I-1 )                    DO I = 1, N-1
                        TEMP = WORK( I )
                        IF( VALUE .LT. TEMP .OR. DISNAN( TEMP ) )
        $                    VALUE = TEMP
                     END DO
                END IF                 END IF
             END IF              END IF
          END IF           END IF

Removed from v.1.9  
changed lines
  Added in v.1.10


CVSweb interface <joel.bertrand@systella.fr>