Diff for /rpl/lapack/lapack/dpftrf.f between versions 1.5 and 1.6

version 1.5, 2010/12/21 13:53:35 version 1.6, 2011/07/22 07:38:09
Line 1 Line 1
       SUBROUTINE DPFTRF( TRANSR, UPLO, N, A, INFO )        SUBROUTINE DPFTRF( TRANSR, UPLO, N, A, INFO )
 *  *
 *  -- LAPACK routine (version 3.3.0)                                    --  *  -- LAPACK routine (version 3.3.1)                                    --
 *  *
 *  -- Contributed by Fred Gustavson of the IBM Watson Research Center --  *  -- Contributed by Fred Gustavson of the IBM Watson Research Center --
 *     November 2010  *  -- April 2011                                                      --
 *  *
 *  -- 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..--
Line 192 Line 192
 *     Quick return if possible  *     Quick return if possible
 *  *
       IF( N.EQ.0 )        IF( N.EQ.0 )
      +   RETURN       $   RETURN
 *  *
 *     If N is odd, set NISODD = .TRUE.  *     If N is odd, set NISODD = .TRUE.
 *     If N is even, set K = N/2 and NISODD = .FALSE.  *     If N is even, set K = N/2 and NISODD = .FALSE.
Line 232 Line 232
 *  *
                CALL DPOTRF( 'L', N1, A( 0 ), N, INFO )                 CALL DPOTRF( 'L', N1, A( 0 ), N, INFO )
                IF( INFO.GT.0 )                 IF( INFO.GT.0 )
      +            RETURN       $            RETURN
                CALL DTRSM( 'R', 'L', 'T', 'N', N2, N1, ONE, A( 0 ), N,                 CALL DTRSM( 'R', 'L', 'T', 'N', N2, N1, ONE, A( 0 ), N,
      +                     A( N1 ), N )       $                     A( N1 ), N )
                CALL DSYRK( 'U', 'N', N2, N1, -ONE, A( N1 ), N, ONE,                 CALL DSYRK( 'U', 'N', N2, N1, -ONE, A( N1 ), N, ONE,
      +                     A( N ), N )       $                     A( N ), N )
                CALL DPOTRF( 'U', N2, A( N ), N, INFO )                 CALL DPOTRF( 'U', N2, A( N ), N, INFO )
                IF( INFO.GT.0 )                 IF( INFO.GT.0 )
      +            INFO = INFO + N1       $            INFO = INFO + N1
 *  *
             ELSE              ELSE
 *  *
Line 249 Line 249
 *  *
                CALL DPOTRF( 'L', N1, A( N2 ), N, INFO )                 CALL DPOTRF( 'L', N1, A( N2 ), N, INFO )
                IF( INFO.GT.0 )                 IF( INFO.GT.0 )
      +            RETURN       $            RETURN
                CALL DTRSM( 'L', 'L', 'N', 'N', N1, N2, ONE, A( N2 ), N,                 CALL DTRSM( 'L', 'L', 'N', 'N', N1, N2, ONE, A( N2 ), N,
      +                     A( 0 ), N )       $                     A( 0 ), N )
                CALL DSYRK( 'U', 'T', N2, N1, -ONE, A( 0 ), N, ONE,                 CALL DSYRK( 'U', 'T', N2, N1, -ONE, A( 0 ), N, ONE,
      +                     A( N1 ), N )       $                     A( N1 ), N )
                CALL DPOTRF( 'U', N2, A( N1 ), N, INFO )                 CALL DPOTRF( 'U', N2, A( N1 ), N, INFO )
                IF( INFO.GT.0 )                 IF( INFO.GT.0 )
      +            INFO = INFO + N1       $            INFO = INFO + N1
 *  *
             END IF              END IF
 *  *
Line 272 Line 272
 *  *
                CALL DPOTRF( 'U', N1, A( 0 ), N1, INFO )                 CALL DPOTRF( 'U', N1, A( 0 ), N1, INFO )
                IF( INFO.GT.0 )                 IF( INFO.GT.0 )
      +            RETURN       $            RETURN
                CALL DTRSM( 'L', 'U', 'T', 'N', N1, N2, ONE, A( 0 ), N1,                 CALL DTRSM( 'L', 'U', 'T', 'N', N1, N2, ONE, A( 0 ), N1,
      +                     A( N1*N1 ), N1 )       $                     A( N1*N1 ), N1 )
                CALL DSYRK( 'L', 'T', N2, N1, -ONE, A( N1*N1 ), N1, ONE,                 CALL DSYRK( 'L', 'T', N2, N1, -ONE, A( N1*N1 ), N1, ONE,
      +                     A( 1 ), N1 )       $                     A( 1 ), N1 )
                CALL DPOTRF( 'L', N2, A( 1 ), N1, INFO )                 CALL DPOTRF( 'L', N2, A( 1 ), N1, INFO )
                IF( INFO.GT.0 )                 IF( INFO.GT.0 )
      +            INFO = INFO + N1       $            INFO = INFO + N1
 *  *
             ELSE              ELSE
 *  *
Line 289 Line 289
 *  *
                CALL DPOTRF( 'U', N1, A( N2*N2 ), N2, INFO )                 CALL DPOTRF( 'U', N1, A( N2*N2 ), N2, INFO )
                IF( INFO.GT.0 )                 IF( INFO.GT.0 )
      +            RETURN       $            RETURN
                CALL DTRSM( 'R', 'U', 'N', 'N', N2, N1, ONE, A( N2*N2 ),                 CALL DTRSM( 'R', 'U', 'N', 'N', N2, N1, ONE, A( N2*N2 ),
      +                     N2, A( 0 ), N2 )       $                     N2, A( 0 ), N2 )
                CALL DSYRK( 'L', 'N', N2, N1, -ONE, A( 0 ), N2, ONE,                 CALL DSYRK( 'L', 'N', N2, N1, -ONE, A( 0 ), N2, ONE,
      +                     A( N1*N2 ), N2 )       $                     A( N1*N2 ), N2 )
                CALL DPOTRF( 'L', N2, A( N1*N2 ), N2, INFO )                 CALL DPOTRF( 'L', N2, A( N1*N2 ), N2, INFO )
                IF( INFO.GT.0 )                 IF( INFO.GT.0 )
      +            INFO = INFO + N1       $            INFO = INFO + N1
 *  *
             END IF              END IF
 *  *
Line 318 Line 318
 *  *
                CALL DPOTRF( 'L', K, A( 1 ), N+1, INFO )                 CALL DPOTRF( 'L', K, A( 1 ), N+1, INFO )
                IF( INFO.GT.0 )                 IF( INFO.GT.0 )
      +            RETURN       $            RETURN
                CALL DTRSM( 'R', 'L', 'T', 'N', K, K, ONE, A( 1 ), N+1,                 CALL DTRSM( 'R', 'L', 'T', 'N', K, K, ONE, A( 1 ), N+1,
      +                     A( K+1 ), N+1 )       $                     A( K+1 ), N+1 )
                CALL DSYRK( 'U', 'N', K, K, -ONE, A( K+1 ), N+1, ONE,                 CALL DSYRK( 'U', 'N', K, K, -ONE, A( K+1 ), N+1, ONE,
      +                     A( 0 ), N+1 )       $                     A( 0 ), N+1 )
                CALL DPOTRF( 'U', K, A( 0 ), N+1, INFO )                 CALL DPOTRF( 'U', K, A( 0 ), N+1, INFO )
                IF( INFO.GT.0 )                 IF( INFO.GT.0 )
      +            INFO = INFO + K       $            INFO = INFO + K
 *  *
             ELSE              ELSE
 *  *
Line 335 Line 335
 *  *
                CALL DPOTRF( 'L', K, A( K+1 ), N+1, INFO )                 CALL DPOTRF( 'L', K, A( K+1 ), N+1, INFO )
                IF( INFO.GT.0 )                 IF( INFO.GT.0 )
      +            RETURN       $            RETURN
                CALL DTRSM( 'L', 'L', 'N', 'N', K, K, ONE, A( K+1 ),                 CALL DTRSM( 'L', 'L', 'N', 'N', K, K, ONE, A( K+1 ),
      +                     N+1, A( 0 ), N+1 )       $                     N+1, A( 0 ), N+1 )
                CALL DSYRK( 'U', 'T', K, K, -ONE, A( 0 ), N+1, ONE,                 CALL DSYRK( 'U', 'T', K, K, -ONE, A( 0 ), N+1, ONE,
      +                     A( K ), N+1 )       $                     A( K ), N+1 )
                CALL DPOTRF( 'U', K, A( K ), N+1, INFO )                 CALL DPOTRF( 'U', K, A( K ), N+1, INFO )
                IF( INFO.GT.0 )                 IF( INFO.GT.0 )
      +            INFO = INFO + K       $            INFO = INFO + K
 *  *
             END IF              END IF
 *  *
Line 358 Line 358
 *  *
                CALL DPOTRF( 'U', K, A( 0+K ), K, INFO )                 CALL DPOTRF( 'U', K, A( 0+K ), K, INFO )
                IF( INFO.GT.0 )                 IF( INFO.GT.0 )
      +            RETURN       $            RETURN
                CALL DTRSM( 'L', 'U', 'T', 'N', K, K, ONE, A( K ), N1,                 CALL DTRSM( 'L', 'U', 'T', 'N', K, K, ONE, A( K ), N1,
      +                     A( K*( K+1 ) ), K )       $                     A( K*( K+1 ) ), K )
                CALL DSYRK( 'L', 'T', K, K, -ONE, A( K*( K+1 ) ), K, ONE,                 CALL DSYRK( 'L', 'T', K, K, -ONE, A( K*( K+1 ) ), K, ONE,
      +                     A( 0 ), K )       $                     A( 0 ), K )
                CALL DPOTRF( 'L', K, A( 0 ), K, INFO )                 CALL DPOTRF( 'L', K, A( 0 ), K, INFO )
                IF( INFO.GT.0 )                 IF( INFO.GT.0 )
      +            INFO = INFO + K       $            INFO = INFO + K
 *  *
             ELSE              ELSE
 *  *
Line 375 Line 375
 *  *
                CALL DPOTRF( 'U', K, A( K*( K+1 ) ), K, INFO )                 CALL DPOTRF( 'U', K, A( K*( K+1 ) ), K, INFO )
                IF( INFO.GT.0 )                 IF( INFO.GT.0 )
      +            RETURN       $            RETURN
                CALL DTRSM( 'R', 'U', 'N', 'N', K, K, ONE,                 CALL DTRSM( 'R', 'U', 'N', 'N', K, K, ONE,
      +                     A( K*( K+1 ) ), K, A( 0 ), K )       $                     A( K*( K+1 ) ), K, A( 0 ), K )
                CALL DSYRK( 'L', 'N', K, K, -ONE, A( 0 ), K, ONE,                 CALL DSYRK( 'L', 'N', K, K, -ONE, A( 0 ), K, ONE,
      +                     A( K*K ), K )       $                     A( K*K ), K )
                CALL DPOTRF( 'L', K, A( K*K ), K, INFO )                 CALL DPOTRF( 'L', K, A( K*K ), K, INFO )
                IF( INFO.GT.0 )                 IF( INFO.GT.0 )
      +            INFO = INFO + K       $            INFO = INFO + K
 *  *
             END IF              END IF
 *  *

Removed from v.1.5  
changed lines
  Added in v.1.6


CVSweb interface <joel.bertrand@systella.fr>