Diff for /rpl/lapack/lapack/zlanhf.f between versions 1.8 and 1.18

version 1.8, 2012/07/31 11:06:39 version 1.18, 2023/08/07 08:39:29
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 ===========
 *  *
 * Online html documentation available at   * Online html documentation available at
 *            http://www.netlib.org/lapack/explore-html/   *            http://www.netlib.org/lapack/explore-html/
 *  *
 *> \htmlonly  *> \htmlonly
 *> Download ZLANHF + dependencies   *> Download ZLANHF + dependencies
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zlanhf.f">   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zlanhf.f">
 *> [TGZ]</a>   *> [TGZ]</a>
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zlanhf.f">   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zlanhf.f">
 *> [ZIP]</a>   *> [ZIP]</a>
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlanhf.f">   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlanhf.f">
 *> [TXT]</a>  *> [TXT]</a>
 *> \endhtmlonly   *> \endhtmlonly
 *  *
 *  Definition:  *  Definition:
 *  ===========  *  ===========
 *  *
 *       DOUBLE PRECISION FUNCTION ZLANHF( NORM, TRANSR, UPLO, N, A, WORK )  *       DOUBLE PRECISION FUNCTION ZLANHF( NORM, TRANSR, UPLO, N, A, WORK )
 *   *
 *       .. Scalar Arguments ..  *       .. Scalar Arguments ..
 *       CHARACTER          NORM, TRANSR, UPLO  *       CHARACTER          NORM, TRANSR, UPLO
 *       INTEGER            N  *       INTEGER            N
Line 28 Line 28
 *       DOUBLE PRECISION   WORK( 0: * )  *       DOUBLE PRECISION   WORK( 0: * )
 *       COMPLEX*16         A( 0: * )  *       COMPLEX*16         A( 0: * )
 *       ..  *       ..
 *    *
 *  *
 *> \par Purpose:  *> \par Purpose:
 *  =============  *  =============
Line 126 Line 126
 *  Authors:  *  Authors:
 *  ========  *  ========
 *  *
 *> \author Univ. of Tennessee   *> \author Univ. of Tennessee
 *> \author Univ. of California Berkeley   *> \author Univ. of California Berkeley
 *> \author Univ. of Colorado Denver   *> \author Univ. of Colorado Denver
 *> \author NAG Ltd.   *> \author NAG Ltd.
 *  
 *> \date November 2011  
 *  *
 *> \ingroup complex16OTHERcomputational  *> \ingroup complex16OTHERcomputational
 *  *
Line 246 Line 244
 *  =====================================================================  *  =====================================================================
       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 --
 *  -- 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  
 *  *
 *     .. Scalar Arguments ..  *     .. Scalar Arguments ..
       CHARACTER          NORM, TRANSR, UPLO        CHARACTER          NORM, TRANSR, UPLO
Line 268 Line 265
 *     ..  *     ..
 *     .. 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 287 Line 283
          ZLANHF = ZERO           ZLANHF = ZERO
          RETURN           RETURN
       ELSE IF( N.EQ.1 ) THEN        ELSE IF( N.EQ.1 ) THEN
          ZLANHF = ABS( A(0) )           ZLANHF = ABS(DBLE(A(0)))
          RETURN           RETURN
       END IF        END IF
 *  *
Line 339 Line 335
 *                 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 406
 *                 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 495
 *                 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 574
 *                 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 720
                      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 762
                      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 801
                      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 839
                      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 906
                      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 971
                      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 1045
 *                 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 1120
                      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.8  
changed lines
  Added in v.1.18


CVSweb interface <joel.bertrand@systella.fr>