Diff for /rpl/lapack/lapack/dlatps.f between versions 1.7 and 1.8

version 1.7, 2010/12/21 13:53:34 version 1.8, 2011/07/22 07:38:08
Line 20 Line 20
 *  *
 *  DLATPS solves one of the triangular systems  *  DLATPS solves one of the triangular systems
 *  *
 *     A *x = s*b  or  A'*x = s*b  *     A *x = s*b  or  A**T*x = s*b
 *  *
 *  with scaling to prevent overflow, where A is an upper or lower  *  with scaling to prevent overflow, where A is an upper or lower
 *  triangular matrix stored in packed form.  Here A' denotes the  *  triangular matrix stored in packed form.  Here A**T denotes the
 *  transpose of A, x and b are n-element vectors, and s is a scaling  *  transpose of A, x and b are n-element vectors, and s is a scaling
 *  factor, usually less than or equal to 1, chosen so that the  *  factor, usually less than or equal to 1, chosen so that the
 *  components of x will be less than the overflow threshold.  If the  *  components of x will be less than the overflow threshold.  If the
Line 42 Line 42
 *  TRANS   (input) CHARACTER*1  *  TRANS   (input) CHARACTER*1
 *          Specifies the operation applied to A.  *          Specifies the operation applied to A.
 *          = 'N':  Solve A * x = s*b  (No transpose)  *          = 'N':  Solve A * x = s*b  (No transpose)
 *          = 'T':  Solve A'* x = s*b  (Transpose)  *          = 'T':  Solve A**T* x = s*b  (Transpose)
 *          = 'C':  Solve A'* x = s*b  (Conjugate transpose = Transpose)  *          = 'C':  Solve A**T* x = s*b  (Conjugate transpose = Transpose)
 *  *
 *  DIAG    (input) CHARACTER*1  *  DIAG    (input) CHARACTER*1
 *          Specifies whether or not the matrix A is unit triangular.  *          Specifies whether or not the matrix A is unit triangular.
Line 72 Line 72
 *  *
 *  SCALE   (output) DOUBLE PRECISION  *  SCALE   (output) DOUBLE PRECISION
 *          The scaling factor s for the triangular system  *          The scaling factor s for the triangular system
 *             A * x = s*b  or  A'* x = s*b.  *             A * x = s*b  or  A**T* x = s*b.
 *          If SCALE = 0, the matrix A is singular or badly scaled, and  *          If SCALE = 0, the matrix A is singular or badly scaled, and
 *          the vector x is an exact or approximate solution to A*x = 0.  *          the vector x is an exact or approximate solution to A*x = 0.
 *  *
Line 138 Line 138
 *  prevent overflow, but if the bound overflows, x is set to 0, x(j) to  *  prevent overflow, but if the bound overflows, x is set to 0, x(j) to
 *  1, and scale to 0, and a non-trivial solution to A*x = 0 is found.  *  1, and scale to 0, and a non-trivial solution to A*x = 0 is found.
 *  *
 *  Similarly, a row-wise scheme is used to solve A'*x = b.  The basic  *  Similarly, a row-wise scheme is used to solve A**T*x = b.  The basic
 *  algorithm for A upper triangular is  *  algorithm for A upper triangular is
 *  *
 *       for j = 1, ..., n  *       for j = 1, ..., n
 *            x(j) := ( b(j) - A[1:j-1,j]' * x[1:j-1] ) / A(j,j)  *            x(j) := ( b(j) - A[1:j-1,j]**T * x[1:j-1] ) / A(j,j)
 *       end  *       end
 *  *
 *  We simultaneously compute two bounds  *  We simultaneously compute two bounds
 *       G(j) = bound on ( b(i) - A[1:i-1,i]' * x[1:i-1] ), 1<=i<=j  *       G(j) = bound on ( b(i) - A[1:i-1,i]**T * x[1:i-1] ), 1<=i<=j
 *       M(j) = bound on x(i), 1<=i<=j  *       M(j) = bound on x(i), 1<=i<=j
 *  *
 *  The initial values are G(0) = 0, M(0) = max{b(i), i=1,..,n}, and we  *  The initial values are G(0) = 0, M(0) = max{b(i), i=1,..,n}, and we
Line 346 Line 346
 *  *
       ELSE        ELSE
 *  *
 *        Compute the growth in A' * x = b.  *        Compute the growth in A**T * x = b.
 *  *
          IF( UPPER ) THEN           IF( UPPER ) THEN
             JFIRST = 1              JFIRST = 1
Line 561 Line 561
 *  *
          ELSE           ELSE
 *  *
 *           Solve A' * x = b  *           Solve A**T * x = b
 *  *
             IP = JFIRST*( JFIRST+1 ) / 2              IP = JFIRST*( JFIRST+1 ) / 2
             JLEN = 1              JLEN = 1
Line 675 Line 675
                   ELSE                    ELSE
 *  *
 *                       A(j,j) = 0:  Set x(1:n) = 0, x(j) = 1, and  *                       A(j,j) = 0:  Set x(1:n) = 0, x(j) = 1, and
 *                       scale = 0, and compute a solution to A'*x = 0.  *                       scale = 0, and compute a solution to A**T*x = 0.
 *  *
                      DO 140 I = 1, N                       DO 140 I = 1, N
                         X( I ) = ZERO                          X( I ) = ZERO

Removed from v.1.7  
changed lines
  Added in v.1.8


CVSweb interface <joel.bertrand@systella.fr>