Numérotation des lignes :

C DGETRS    SOURCE    BP208322  20/09/18    21:15:54     10718          *> \brief \b DGETRS**  =========== DOCUMENTATION ===========** Online html documentation available at*            http://www.netlib.org/lapack/explore-html/**> \htmlonly*> Download SGETRS + dependencies*> &lt;a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dgetrs.f">*> [TGZ]&lt;/a>*> &lt;a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dgetrs.f">*> [ZIP]&lt;/a>*> &lt;a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgetrs.f">*> [TXT]&lt;/a>*> \endhtmlonly**  Definition:*  ===========**       SUBROUTINE DGETRS( TRANS, N, NRHS, A, LDA, IPIV, B, LDB, INFO )**       .. Scalar Arguments ..*       CHARACTER          TRANS*       INTEGER            INFO, LDA, LDB, N, NRHS*       ..*       .. Array Arguments ..*       INTEGER            IPIV( * )*       REAL               A( LDA, * ), B( LDB, * )*       ..***> \par Purpose:*  =============*>*> \verbatim*>*> DGETRS solves a system of linear equations*>    A * X = B  or  A**T * X = B*> with a general N-by-N matrix A using the LU factorization computed*> by DGETRF.*> \endverbatim**  Arguments:*  ==========**> \param[in] TRANS*> \verbatim*>          TRANS is CHARACTER*1*>          Specifies the form of the system of equations:*>          = 'N':  A * X = B  (No transpose)*>          = 'T':  A**T* X = B  (Transpose)*>          = 'C':  A**T* X = B  (Conjugate transpose = Transpose)*> \endverbatim*>*> \param[in] N*> \verbatim*>          N is INTEGER*>          The order of the matrix A.  N >= 0.*> \endverbatim*>*> \param[in] NRHS*> \verbatim*>          NRHS is INTEGER*>          The number of right hand sides, i.e., the number of columns*>          of the matrix B.  NRHS >= 0.*> \endverbatim*>*> \param[in] A*> \verbatim*>          A is REAL array, dimension (LDA,N)*>          The factors L and U from the factorization A = P*L*U*>          as computed by SGETRF.*> \endverbatim*>*> \param[in] LDA*> \verbatim*>          LDA is INTEGER*>          The leading dimension of the array A.  LDA >= max(1,N).*> \endverbatim*>*> \param[in] IPIV*> \verbatim*>          IPIV is INTEGER array, dimension (N)*>          The pivot indices from SGETRF; for 1&lt;=i&lt;=N, row i of the*>          matrix was interchanged with row IPIV(i).*> \endverbatim*>*> \param[in,out] B*> \verbatim*>          B is REAL array, dimension (LDB,NRHS)*>          On entry, the right hand side matrix B.*>          On exit, the solution matrix X.*> \endverbatim*>*> \param[in] LDB*> \verbatim*>          LDB is INTEGER*>          The leading dimension of the array B.  LDB >= max(1,N).*> \endverbatim*>*> \param[out] INFO*> \verbatim*>          INFO is INTEGER*>          = 0:  successful exit*>          &lt; 0:  if INFO = -i, the i-th argument had an illegal value*> \endverbatim**  Authors:*  ========**> \author Univ. of Tennessee*> \author Univ. of California Berkeley*> \author Univ. of Colorado Denver*> \author NAG Ltd.**> \date December 2016**> \ingroup realGEcomputational**  =====================================================================      SUBROUTINE DGETRS( TRANS, N, NRHS, A, LDA, IPIV, B, LDB, INFO )**  -- LAPACK computational routine (version 3.7.0) --*  -- LAPACK is a software package provided by Univ. of Tennessee,    --*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--*     December 2016       IMPLICIT INTEGER(I-N)      IMPLICIT REAL*8(A-H,O-Z)**     .. Scalar Arguments ..      CHARACTER          TRANS      INTEGER            INFO, LDA, LDB, N, NRHS*     ..*     .. Array Arguments ..      INTEGER            IPIV( * )      REAL*8               A( LDA, * ), B(LDB,*)**  =====================================================================**     .. Parameters ..      REAL*8   ONE, ZERO      PARAMETER          ( ONE = 1.0D+0, ZERO = 0.0D+0 ) *     .. Local Scalars ..      LOGICAL            NOTRAN*     ..*     ..*     .. External Subroutines ..*      EXTERNAL           DLASWP, DTRSM, XERBLA*     ..*     ..**     Test the input parameters.*      INFO = 0      NOTRAN = (TRANS.EQ.'N')      IF (.NOT.NOTRAN .AND. .NOT.( TRANS.EQ.'T') .AND. .NOT.     &   (TRANS.EQ. 'C') ) THEN         INFO = -1      ELSE IF( N.LT.0 ) THEN         INFO = -2      ELSE IF( NRHS.LT.0 ) THEN         INFO = -3      ELSE IF( LDA.LT.MAX( 1, N ) ) THEN         INFO = -5      ELSE IF( LDB.LT.MAX( 1, N ) ) THEN         INFO = -8      END IF      IF ( INFO.NE.0 ) THEN         CALL XERBLA( 'DGETRS', -INFO )         RETURN      END IF**     Quick return if possible*      IF ( N.EQ.0 .OR. NRHS.EQ.0 )     &   RETURN      IF ( NOTRAN ) THEN**        Solve A * X = B.**        Apply row interchanges to the right hand sides.*         CALL DLASWP( NRHS, B, LDB, 1, N, IPIV, 1 )*     *        Solve L*X = B, overwriting B with X.*         CALL DTRSM( 'Left', 'Lower', 'No transpose', 'Unit', N, NRHS,     &               ONE, A, LDA, B, LDB )  **        Solve U*X = B, overwriting B with X.*         CALL DTRSM( 'Left', 'Upper', 'No transpose', 'Non-unit', N,     &               NRHS, ONE, A, LDA, B, LDB )       ELSE**        Solve A**T * X = B.**        Solve U**T *X = B, overwriting B with X.*         CALL DTRSM( 'Left', 'Upper', 'Transpose', 'Non-unit', N, NRHS,     &               ONE, A, LDA, B, LDB )**        Solve L**T *X = B, overwriting B with X.*         CALL DTRSM( 'Left', 'Lower', 'Transpose', 'Unit', N, NRHS, ONE,     &               A, LDA, B, LDB )**        Apply row interchanges to the solution vectors.*         CALL DLASWP( NRHS, B, LDB, 1, N, IPIV, -1 )      END IF*      RETURN**     End of DGETRS*      END

© Cast3M 2003 - Tous droits réservés.
Mentions légales