version 1.2, 2017/06/17 11:06:23
|
version 1.6, 2023/08/07 08:38:54
|
Line 1
|
Line 1
|
|
*> \brief \b DLAMTSQR |
* |
* |
* Definition: |
* Definition: |
* =========== |
* =========== |
Line 55
|
Line 56
|
*> \param[in] N |
*> \param[in] N |
*> \verbatim |
*> \verbatim |
*> N is INTEGER |
*> N is INTEGER |
*> The number of columns of the matrix C. M >= N >= 0. |
*> The number of columns of the matrix C. N >= 0. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[in] K |
*> \param[in] K |
*> \verbatim |
*> \verbatim |
*> K is INTEGER |
*> K is INTEGER |
*> The number of elementary reflectors whose product defines |
*> The number of elementary reflectors whose product defines |
*> the matrix Q. |
*> the matrix Q. M >= K >= 0; |
*> N >= K >= 0; |
|
*> |
*> |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
Line 81
|
Line 81
|
*> N >= NB >= 1. |
*> N >= NB >= 1. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[in,out] A |
*> \param[in] A |
*> \verbatim |
*> \verbatim |
*> A is DOUBLE PRECISION array, dimension (LDA,K) |
*> A is DOUBLE PRECISION array, dimension (LDA,K) |
*> The i-th column must contain the vector which defines the |
*> The i-th column must contain the vector which defines the |
Line 195
|
Line 195
|
SUBROUTINE DLAMTSQR( SIDE, TRANS, M, N, K, MB, NB, A, LDA, T, |
SUBROUTINE DLAMTSQR( SIDE, TRANS, M, N, K, MB, NB, A, LDA, T, |
$ LDT, C, LDC, WORK, LWORK, INFO ) |
$ LDT, C, LDC, WORK, LWORK, INFO ) |
* |
* |
* -- LAPACK computational routine (version 3.7.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..-- |
* December 2016 |
|
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
CHARACTER SIDE, TRANS |
CHARACTER SIDE, TRANS |
Line 214
|
Line 213
|
* .. |
* .. |
* .. Local Scalars .. |
* .. Local Scalars .. |
LOGICAL LEFT, RIGHT, TRAN, NOTRAN, LQUERY |
LOGICAL LEFT, RIGHT, TRAN, NOTRAN, LQUERY |
INTEGER I, II, KK, LW, CTR |
INTEGER I, II, KK, LW, CTR, Q |
* .. |
* .. |
* .. External Functions .. |
* .. External Functions .. |
LOGICAL LSAME |
LOGICAL LSAME |
Line 233
|
Line 232
|
RIGHT = LSAME( SIDE, 'R' ) |
RIGHT = LSAME( SIDE, 'R' ) |
IF (LEFT) THEN |
IF (LEFT) THEN |
LW = N * NB |
LW = N * NB |
|
Q = M |
ELSE |
ELSE |
LW = MB * NB |
LW = MB * NB |
|
Q = N |
END IF |
END IF |
* |
* |
INFO = 0 |
INFO = 0 |
Line 242
|
Line 243
|
INFO = -1 |
INFO = -1 |
ELSE IF( .NOT.TRAN .AND. .NOT.NOTRAN ) THEN |
ELSE IF( .NOT.TRAN .AND. .NOT.NOTRAN ) THEN |
INFO = -2 |
INFO = -2 |
ELSE IF( M.LT.0 ) THEN |
ELSE IF( M.LT.K ) THEN |
INFO = -3 |
INFO = -3 |
ELSE IF( N.LT.0 ) THEN |
ELSE IF( N.LT.0 ) THEN |
INFO = -4 |
INFO = -4 |
ELSE IF( K.LT.0 ) THEN |
ELSE IF( K.LT.0 ) THEN |
INFO = -5 |
INFO = -5 |
ELSE IF( LDA.LT.MAX( 1, K ) ) THEN |
ELSE IF( K.LT.NB .OR. NB.LT.1 ) THEN |
|
INFO = -7 |
|
ELSE IF( LDA.LT.MAX( 1, Q ) ) THEN |
INFO = -9 |
INFO = -9 |
ELSE IF( LDT.LT.MAX( 1, NB) ) THEN |
ELSE IF( LDT.LT.MAX( 1, NB) ) THEN |
INFO = -11 |
INFO = -11 |