Diff for /rpl/lapack/lapack/dsytrs2.f between versions 1.5 and 1.15

version 1.5, 2011/11/21 22:19:41 version 1.15, 2023/08/07 08:39:11
Line 2 Line 2
 *  *
 *  =========== 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 DSYTRS2 + dependencies   *> Download DSYTRS2 + dependencies
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dsytrs2.f">   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dsytrs2.f">
 *> [TGZ]</a>   *> [TGZ]</a>
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dsytrs2.f">   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dsytrs2.f">
 *> [ZIP]</a>   *> [ZIP]</a>
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsytrs2.f">   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dsytrs2.f">
 *> [TXT]</a>  *> [TXT]</a>
 *> \endhtmlonly   *> \endhtmlonly
 *  *
 *  Definition:  *  Definition:
 *  ===========  *  ===========
 *  *
 *       SUBROUTINE DSYTRS2( UPLO, N, NRHS, A, LDA, IPIV, B, LDB,   *       SUBROUTINE DSYTRS2( UPLO, N, NRHS, A, LDA, IPIV, B, LDB,
 *                           WORK, INFO )  *                           WORK, INFO )
 *   *
 *       .. Scalar Arguments ..  *       .. Scalar Arguments ..
 *       CHARACTER          UPLO  *       CHARACTER          UPLO
 *       INTEGER            INFO, LDA, LDB, N, NRHS  *       INTEGER            INFO, LDA, LDB, N, NRHS
Line 29 Line 29
 *       INTEGER            IPIV( * )  *       INTEGER            IPIV( * )
 *       DOUBLE PRECISION   A( LDA, * ), B( LDB, * ), WORK( * )  *       DOUBLE PRECISION   A( LDA, * ), B( LDB, * ), WORK( * )
 *       ..  *       ..
 *    *
 *  *
 *> \par Purpose:  *> \par Purpose:
 *  =============  *  =============
Line 66 Line 66
 *>          of the matrix B.  NRHS >= 0.  *>          of the matrix B.  NRHS >= 0.
 *> \endverbatim  *> \endverbatim
 *>  *>
 *> \param[in] A  *> \param[in,out] A
 *> \verbatim  *> \verbatim
 *>          A is DOUBLE PRECISION array, dimension (LDA,N)  *>          A is DOUBLE PRECISION array, dimension (LDA,N)
 *>          The block diagonal matrix D and the multipliers used to  *>          The block diagonal matrix D and the multipliers used to
 *>          obtain the factor U or L as computed by DSYTRF.  *>          obtain the factor U or L as computed by DSYTRF.
   *>          Note that A is input / output. This might be counter-intuitive,
   *>          and one may think that A is input only. A is input / output. This
   *>          is because, at the start of the subroutine, we permute A in a
   *>          "better" form and then we permute A back to its original form at
   *>          the end.
 *> \endverbatim  *> \endverbatim
 *>  *>
 *> \param[in] LDA  *> \param[in] LDA
Line 101 Line 106
 *>  *>
 *> \param[out] WORK  *> \param[out] WORK
 *> \verbatim  *> \verbatim
 *>          WORK is REAL array, dimension (N)  *>          WORK is DOUBLE PRECISION array, dimension (N)
 *> \endverbatim  *> \endverbatim
 *>  *>
 *> \param[out] INFO  *> \param[out] INFO
Line 114 Line 119
 *  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 doubleSYcomputational  *> \ingroup doubleSYcomputational
 *  *
 *  =====================================================================  *  =====================================================================
       SUBROUTINE DSYTRS2( UPLO, N, NRHS, A, LDA, IPIV, B, LDB,         SUBROUTINE DSYTRS2( UPLO, N, NRHS, A, LDA, IPIV, B, LDB,
      $                    WORK, INFO )       $                    WORK, INFO )
 *  *
 *  -- 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          UPLO        CHARACTER          UPLO
Line 195 Line 197
 *  *
 *        Solve A*X = B, where A = U*D*U**T.  *        Solve A*X = B, where A = U*D*U**T.
 *  *
 *       P**T * B    *       P**T * B
         K=N          K=N
         DO WHILE ( K .GE. 1 )          DO WHILE ( K .GE. 1 )
          IF( IPIV( K ).GT.0 ) THEN           IF( IPIV( K ).GT.0 ) THEN
Line 220 Line 222
         CALL DTRSM('L','U','N','U',N,NRHS,ONE,A,LDA,B,LDB)          CALL DTRSM('L','U','N','U',N,NRHS,ONE,A,LDA,B,LDB)
 *  *
 *  Compute D \ B -> B   [ D \ (U \P**T * B) ]  *  Compute D \ B -> B   [ D \ (U \P**T * B) ]
 *         *
          I=N           I=N
          DO WHILE ( I .GE. 1 )           DO WHILE ( I .GE. 1 )
             IF( IPIV(I) .GT. 0 ) THEN              IF( IPIV(I) .GT. 0 ) THEN
Line 272 Line 274
 *  *
 *        Solve A*X = B, where A = L*D*L**T.  *        Solve A*X = B, where A = L*D*L**T.
 *  *
 *       P**T * B    *       P**T * B
         K=1          K=1
         DO WHILE ( K .LE. N )          DO WHILE ( K .LE. N )
          IF( IPIV( K ).GT.0 ) THEN           IF( IPIV( K ).GT.0 ) THEN
Line 297 Line 299
         CALL DTRSM('L','L','N','U',N,NRHS,ONE,A,LDA,B,LDB)          CALL DTRSM('L','L','N','U',N,NRHS,ONE,A,LDA,B,LDB)
 *  *
 *  Compute D \ B -> B   [ D \ (L \P**T * B) ]  *  Compute D \ B -> B   [ D \ (L \P**T * B) ]
 *         *
          I=1           I=1
          DO WHILE ( I .LE. N )           DO WHILE ( I .LE. N )
             IF( IPIV(I) .GT. 0 ) THEN              IF( IPIV(I) .GT. 0 ) THEN
Line 319 Line 321
          END DO           END DO
 *  *
 *  Compute (L**T \ B) -> B   [ L**T \ (D \ (L \P**T * B) ) ]  *  Compute (L**T \ B) -> B   [ L**T \ (D \ (L \P**T * B) ) ]
 *   *
         CALL DTRSM('L','L','T','U',N,NRHS,ONE,A,LDA,B,LDB)          CALL DTRSM('L','L','T','U',N,NRHS,ONE,A,LDA,B,LDB)
 *  *
 *       P * B  [ P * (L**T \ (D \ (L \P**T * B) )) ]  *       P * B  [ P * (L**T \ (D \ (L \P**T * B) )) ]

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


CVSweb interface <joel.bertrand@systella.fr>