version 1.6, 2010/08/13 21:04:08
|
version 1.9, 2011/11/21 20:43:15
|
Line 1
|
Line 1
|
|
*> \brief \b ZLAGTM |
|
* |
|
* =========== DOCUMENTATION =========== |
|
* |
|
* Online html documentation available at |
|
* http://www.netlib.org/lapack/explore-html/ |
|
* |
|
*> \htmlonly |
|
*> Download ZLAGTM + dependencies |
|
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zlagtm.f"> |
|
*> [TGZ]</a> |
|
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zlagtm.f"> |
|
*> [ZIP]</a> |
|
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlagtm.f"> |
|
*> [TXT]</a> |
|
*> \endhtmlonly |
|
* |
|
* Definition: |
|
* =========== |
|
* |
|
* SUBROUTINE ZLAGTM( TRANS, N, NRHS, ALPHA, DL, D, DU, X, LDX, BETA, |
|
* B, LDB ) |
|
* |
|
* .. Scalar Arguments .. |
|
* CHARACTER TRANS |
|
* INTEGER LDB, LDX, N, NRHS |
|
* DOUBLE PRECISION ALPHA, BETA |
|
* .. |
|
* .. Array Arguments .. |
|
* COMPLEX*16 B( LDB, * ), D( * ), DL( * ), DU( * ), |
|
* $ X( LDX, * ) |
|
* .. |
|
* |
|
* |
|
*> \par Purpose: |
|
* ============= |
|
*> |
|
*> \verbatim |
|
*> |
|
*> ZLAGTM performs a matrix-vector product of the form |
|
*> |
|
*> B := alpha * A * X + beta * B |
|
*> |
|
*> where A is a tridiagonal matrix of order N, B and X are N by NRHS |
|
*> matrices, and alpha and beta are real scalars, each of which may be |
|
*> 0., 1., or -1. |
|
*> \endverbatim |
|
* |
|
* Arguments: |
|
* ========== |
|
* |
|
*> \param[in] TRANS |
|
*> \verbatim |
|
*> TRANS is CHARACTER*1 |
|
*> Specifies the operation applied to A. |
|
*> = 'N': No transpose, B := alpha * A * X + beta * B |
|
*> = 'T': Transpose, B := alpha * A**T * X + beta * B |
|
*> = 'C': Conjugate transpose, B := alpha * A**H * X + beta * B |
|
*> \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 matrices X and B. |
|
*> \endverbatim |
|
*> |
|
*> \param[in] ALPHA |
|
*> \verbatim |
|
*> ALPHA is DOUBLE PRECISION |
|
*> The scalar alpha. ALPHA must be 0., 1., or -1.; otherwise, |
|
*> it is assumed to be 0. |
|
*> \endverbatim |
|
*> |
|
*> \param[in] DL |
|
*> \verbatim |
|
*> DL is COMPLEX*16 array, dimension (N-1) |
|
*> The (n-1) sub-diagonal elements of T. |
|
*> \endverbatim |
|
*> |
|
*> \param[in] D |
|
*> \verbatim |
|
*> D is COMPLEX*16 array, dimension (N) |
|
*> The diagonal elements of T. |
|
*> \endverbatim |
|
*> |
|
*> \param[in] DU |
|
*> \verbatim |
|
*> DU is COMPLEX*16 array, dimension (N-1) |
|
*> The (n-1) super-diagonal elements of T. |
|
*> \endverbatim |
|
*> |
|
*> \param[in] X |
|
*> \verbatim |
|
*> X is COMPLEX*16 array, dimension (LDX,NRHS) |
|
*> The N by NRHS matrix X. |
|
*> \endverbatim |
|
*> |
|
*> \param[in] LDX |
|
*> \verbatim |
|
*> LDX is INTEGER |
|
*> The leading dimension of the array X. LDX >= max(N,1). |
|
*> \endverbatim |
|
*> |
|
*> \param[in] BETA |
|
*> \verbatim |
|
*> BETA is DOUBLE PRECISION |
|
*> The scalar beta. BETA must be 0., 1., or -1.; otherwise, |
|
*> it is assumed to be 1. |
|
*> \endverbatim |
|
*> |
|
*> \param[in,out] B |
|
*> \verbatim |
|
*> B is COMPLEX*16 array, dimension (LDB,NRHS) |
|
*> On entry, the N by NRHS matrix B. |
|
*> On exit, B is overwritten by the matrix expression |
|
*> B := alpha * A * X + beta * B. |
|
*> \endverbatim |
|
*> |
|
*> \param[in] LDB |
|
*> \verbatim |
|
*> LDB is INTEGER |
|
*> The leading dimension of the array B. LDB >= max(N,1). |
|
*> \endverbatim |
|
* |
|
* Authors: |
|
* ======== |
|
* |
|
*> \author Univ. of Tennessee |
|
*> \author Univ. of California Berkeley |
|
*> \author Univ. of Colorado Denver |
|
*> \author NAG Ltd. |
|
* |
|
*> \date November 2011 |
|
* |
|
*> \ingroup complex16OTHERauxiliary |
|
* |
|
* ===================================================================== |
SUBROUTINE ZLAGTM( TRANS, N, NRHS, ALPHA, DL, D, DU, X, LDX, BETA, |
SUBROUTINE ZLAGTM( TRANS, N, NRHS, ALPHA, DL, D, DU, X, LDX, BETA, |
$ B, LDB ) |
$ B, LDB ) |
* |
* |
* -- LAPACK auxiliary routine (version 3.2) -- |
* -- LAPACK auxiliary routine (version 3.4.0) -- |
* -- 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 2006 |
* November 2011 |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
CHARACTER TRANS |
CHARACTER TRANS |
Line 16
|
Line 160
|
$ X( LDX, * ) |
$ X( LDX, * ) |
* .. |
* .. |
* |
* |
* Purpose |
|
* ======= |
|
* |
|
* ZLAGTM performs a matrix-vector product of the form |
|
* |
|
* B := alpha * A * X + beta * B |
|
* |
|
* where A is a tridiagonal matrix of order N, B and X are N by NRHS |
|
* matrices, and alpha and beta are real scalars, each of which may be |
|
* 0., 1., or -1. |
|
* |
|
* Arguments |
|
* ========= |
|
* |
|
* TRANS (input) CHARACTER*1 |
|
* Specifies the operation applied to A. |
|
* = 'N': No transpose, B := alpha * A * X + beta * B |
|
* = 'T': Transpose, B := alpha * A**T * X + beta * B |
|
* = 'C': Conjugate transpose, B := alpha * A**H * X + beta * B |
|
* |
|
* N (input) INTEGER |
|
* The order of the matrix A. N >= 0. |
|
* |
|
* NRHS (input) INTEGER |
|
* The number of right hand sides, i.e., the number of columns |
|
* of the matrices X and B. |
|
* |
|
* ALPHA (input) DOUBLE PRECISION |
|
* The scalar alpha. ALPHA must be 0., 1., or -1.; otherwise, |
|
* it is assumed to be 0. |
|
* |
|
* DL (input) COMPLEX*16 array, dimension (N-1) |
|
* The (n-1) sub-diagonal elements of T. |
|
* |
|
* D (input) COMPLEX*16 array, dimension (N) |
|
* The diagonal elements of T. |
|
* |
|
* DU (input) COMPLEX*16 array, dimension (N-1) |
|
* The (n-1) super-diagonal elements of T. |
|
* |
|
* X (input) COMPLEX*16 array, dimension (LDX,NRHS) |
|
* The N by NRHS matrix X. |
|
* LDX (input) INTEGER |
|
* The leading dimension of the array X. LDX >= max(N,1). |
|
* |
|
* BETA (input) DOUBLE PRECISION |
|
* The scalar beta. BETA must be 0., 1., or -1.; otherwise, |
|
* it is assumed to be 1. |
|
* |
|
* B (input/output) COMPLEX*16 array, dimension (LDB,NRHS) |
|
* On entry, the N by NRHS matrix B. |
|
* On exit, B is overwritten by the matrix expression |
|
* B := alpha * A * X + beta * B. |
|
* |
|
* LDB (input) INTEGER |
|
* The leading dimension of the array B. LDB >= max(N,1). |
|
* |
|
* ===================================================================== |
* ===================================================================== |
* |
* |
* .. Parameters .. |
* .. Parameters .. |
Line 189
|
Line 276
|
120 CONTINUE |
120 CONTINUE |
ELSE IF( LSAME( TRANS, 'T' ) ) THEN |
ELSE IF( LSAME( TRANS, 'T' ) ) THEN |
* |
* |
* Compute B := B - A'*X |
* Compute B := B - A**T *X |
* |
* |
DO 140 J = 1, NRHS |
DO 140 J = 1, NRHS |
IF( N.EQ.1 ) THEN |
IF( N.EQ.1 ) THEN |
Line 207
|
Line 294
|
140 CONTINUE |
140 CONTINUE |
ELSE IF( LSAME( TRANS, 'C' ) ) THEN |
ELSE IF( LSAME( TRANS, 'C' ) ) THEN |
* |
* |
* Compute B := B - A'*X |
* Compute B := B - A**H *X |
* |
* |
DO 160 J = 1, NRHS |
DO 160 J = 1, NRHS |
IF( N.EQ.1 ) THEN |
IF( N.EQ.1 ) THEN |