Diff for /rpl/lapack/lapack/dgsvj0.f between versions 1.3 and 1.4

version 1.3, 2010/08/13 21:03:46 version 1.4, 2010/12/21 13:48:05
Line 1 Line 1
       SUBROUTINE DGSVJ0( JOBV, M, N, A, LDA, D, SVA, MV, V, LDV, EPS,        SUBROUTINE DGSVJ0( JOBV, M, N, A, LDA, D, SVA, MV, V, LDV, EPS,
      +                   SFMIN, TOL, NSWEEP, WORK, LWORK, INFO )       +                   SFMIN, TOL, NSWEEP, WORK, LWORK, INFO )
 *  *
 *  -- LAPACK routine (version 3.2.2)                                    --  *  -- LAPACK routine (version 3.3.0)                                    --
 *  *
 *  -- Contributed by Zlatko Drmac of the University of Zagreb and     --  *  -- Contributed by Zlatko Drmac of the University of Zagreb and     --
 *  -- Kresimir Veselic of the Fernuniversitaet Hagen                  --  *  -- Kresimir Veselic of the Fernuniversitaet Hagen                  --
 *  -- June 2010                                                       --  *     November 2010
 *  *
 *  -- 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 183 Line 183
          INFO = -3           INFO = -3
       ELSE IF( LDA.LT.M ) THEN        ELSE IF( LDA.LT.M ) THEN
          INFO = -5           INFO = -5
       ELSE IF( MV.LT.0 ) THEN        ELSE IF( ( RSVEC.OR.APPLV ) .AND. ( MV.LT.0 ) ) THEN
          INFO = -8           INFO = -8
       ELSE IF( LDV.LT.M ) THEN        ELSE IF( ( RSVEC.AND.( LDV.LT.N ) ).OR. 
        &         ( APPLV.AND.( LDV.LT.MV ) ) ) THEN
          INFO = -10           INFO = -10
       ELSE IF( TOL.LE.EPS ) THEN        ELSE IF( TOL.LE.EPS ) THEN
          INFO = -13           INFO = -13
Line 307 Line 308
                         SVA( p ) = DNRM2( M, A( 1, p ), 1 )*D( p )                          SVA( p ) = DNRM2( M, A( 1, p ), 1 )*D( p )
                      ELSE                       ELSE
                         TEMP1 = ZERO                          TEMP1 = ZERO
                         AAPP = ZERO                          AAPP = ONE
                         CALL DLASSQ( M, A( 1, p ), 1, TEMP1, AAPP )                          CALL DLASSQ( M, A( 1, p ), 1, TEMP1, AAPP )
                         SVA( p ) = TEMP1*DSQRT( AAPP )*D( p )                          SVA( p ) = TEMP1*DSQRT( AAPP )*D( p )
                      END IF                       END IF
Line 391 Line 392
      +                                              FASTR )       +                                              FASTR )
                                     SVA( q ) = AAQQ*DSQRT( DMAX1( ZERO,                                      SVA( q ) = AAQQ*DSQRT( DMAX1( ZERO,
      +                                         ONE+T*APOAQ*AAPQ ) )       +                                         ONE+T*APOAQ*AAPQ ) )
                                     AAPP = AAPP*DSQRT( ONE-T*AQOAP*                                      AAPP = AAPP*DSQRT( DMAX1( ZERO, 
      +                                     AAPQ )       +                                     ONE-T*AQOAP*AAPQ ) )
                                     MXSINJ = DMAX1( MXSINJ, DABS( T ) )                                      MXSINJ = DMAX1( MXSINJ, DABS( T ) )
 *  *
                                  ELSE                                   ELSE
Line 535 Line 536
      +                                         D( q )       +                                         D( q )
                                  ELSE                                   ELSE
                                     T = ZERO                                      T = ZERO
                                     AAQQ = ZERO                                      AAQQ = ONE
                                     CALL DLASSQ( M, A( 1, q ), 1, T,                                      CALL DLASSQ( M, A( 1, q ), 1, T,
      +                                           AAQQ )       +                                           AAQQ )
                                     SVA( q ) = T*DSQRT( AAQQ )*D( q )                                      SVA( q ) = T*DSQRT( AAQQ )*D( q )
Line 548 Line 549
      +                                     D( p )       +                                     D( p )
                                  ELSE                                   ELSE
                                     T = ZERO                                      T = ZERO
                                     AAPP = ZERO                                      AAPP = ONE
                                     CALL DLASSQ( M, A( 1, p ), 1, T,                                      CALL DLASSQ( M, A( 1, p ), 1, T,
      +                                           AAPP )       +                                           AAPP )
                                     AAPP = T*DSQRT( AAPP )*D( p )                                      AAPP = T*DSQRT( AAPP )*D( p )
Line 707 Line 708
                                     MXSINJ = DMAX1( MXSINJ, DABS( SN ) )                                      MXSINJ = DMAX1( MXSINJ, DABS( SN ) )
                                     SVA( q ) = AAQQ*DSQRT( DMAX1( ZERO,                                      SVA( q ) = AAQQ*DSQRT( DMAX1( ZERO,
      +                                         ONE+T*APOAQ*AAPQ ) )       +                                         ONE+T*APOAQ*AAPQ ) )
                                     AAPP = AAPP*DSQRT( ONE-T*AQOAP*                                      AAPP = AAPP*DSQRT( DMAX1( ZERO, 
      +                                     AAPQ )       +                                     ONE-T*AQOAP*AAPQ ) )
 *  *
                                     APOAQ = D( p ) / D( q )                                      APOAQ = D( p ) / D( q )
                                     AQOAP = D( q ) / D( p )                                      AQOAP = D( q ) / D( p )
Line 856 Line 857
      +                                         D( q )       +                                         D( q )
                                  ELSE                                   ELSE
                                     T = ZERO                                      T = ZERO
                                     AAQQ = ZERO                                      AAQQ = ONE
                                     CALL DLASSQ( M, A( 1, q ), 1, T,                                      CALL DLASSQ( M, A( 1, q ), 1, T,
      +                                           AAQQ )       +                                           AAQQ )
                                     SVA( q ) = T*DSQRT( AAQQ )*D( q )                                      SVA( q ) = T*DSQRT( AAQQ )*D( q )
Line 869 Line 870
      +                                     D( p )       +                                     D( p )
                                  ELSE                                   ELSE
                                     T = ZERO                                      T = ZERO
                                     AAPP = ZERO                                      AAPP = ONE
                                     CALL DLASSQ( M, A( 1, p ), 1, T,                                      CALL DLASSQ( M, A( 1, p ), 1, T,
      +                                           AAPP )       +                                           AAPP )
                                     AAPP = T*DSQRT( AAPP )*D( p )                                      AAPP = T*DSQRT( AAPP )*D( p )
Line 932 Line 933
             SVA( N ) = DNRM2( M, A( 1, N ), 1 )*D( N )              SVA( N ) = DNRM2( M, A( 1, N ), 1 )*D( N )
          ELSE           ELSE
             T = ZERO              T = ZERO
             AAPP = ZERO              AAPP = ONE
             CALL DLASSQ( M, A( 1, N ), 1, T, AAPP )              CALL DLASSQ( M, A( 1, N ), 1, T, AAPP )
             SVA( N ) = T*DSQRT( AAPP )*D( N )              SVA( N ) = T*DSQRT( AAPP )*D( N )
          END IF           END IF

Removed from v.1.3  
changed lines
  Added in v.1.4


CVSweb interface <joel.bertrand@systella.fr>