dgetrs
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 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dgetrs.f"> *> [TGZ]</a> *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dgetrs.f"> *> [ZIP]</a> *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgetrs.f"> *> [TXT]</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<=i<=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 *> < 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 * * ===================================================================== * * -- 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 .. * .. 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 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. * * * Solve L*X = B, overwriting B with X. * & ONE, A, LDA, B, LDB ) * * Solve U*X = B, overwriting B with X. * & NRHS, ONE, A, LDA, B, LDB ) ELSE * * Solve A**T * X = B. * * Solve U**T *X = B, overwriting B with X. * & ONE, A, LDA, B, LDB ) * * Solve L**T *X = B, overwriting B with X. * & A, LDA, B, LDB ) * * Apply row interchanges to the solution vectors. * END IF * RETURN * * End of DGETRS * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales