version 1.1, 2017/06/17 11:02:54
|
version 1.5, 2020/05/21 21:46:05
|
Line 123
|
Line 123
|
*> |
*> |
*> \param[out] WORK |
*> \param[out] WORK |
*> \verbatim |
*> \verbatim |
*> WORK is COMPLEX*16 array, dimension LWORK. |
*> WORK is COMPLEX*16 array, dimension (LWORK) |
*> On exit, if INFO = 0, or if LWORK=-1, |
*> On exit, if INFO = 0, or if LWORK=-1, |
*> WORK(1) returns the size of LWORK. |
*> WORK(1) returns the size of LWORK. |
*> \endverbatim |
*> \endverbatim |
Line 132
|
Line 132
|
*> \verbatim |
*> \verbatim |
*> LWORK is INTEGER |
*> LWORK is INTEGER |
*> The dimension of the array WORK which should be calculated |
*> The dimension of the array WORK which should be calculated |
* by a workspace query. LWORK = MAX(1, LWORK_QUERY) |
*> by a workspace query. LWORK = MAX(1, LWORK_QUERY) |
*> If LWORK = -1, then a workspace query is assumed; the routine |
*> If LWORK = -1, then a workspace query is assumed; the routine |
*> only calculates the optimal size of the WORK array, returns |
*> only calculates the optimal size of the WORK array, returns |
*> this value as the first entry of the WORK array, and no error |
*> this value as the first entry of the WORK array, and no error |
Line 158
|
Line 158
|
*> \author Univ. of Colorado Denver |
*> \author Univ. of Colorado Denver |
*> \author NAG Ltd. |
*> \author NAG Ltd. |
* |
* |
*> \date December 2016 |
*> \date November 2017 |
* |
* |
*> \ingroup complex16HEcomputational |
*> \ingroup complex16HEcomputational |
* |
* |
Line 222
|
Line 222
|
*> |
*> |
*> where tau is a complex scalar, and v is a complex vector with |
*> where tau is a complex scalar, and v is a complex vector with |
*> v(kd+1:i) = 0 and v(i+kd+1) = 1; v(i+kd+2:n) is stored on exit in |
*> v(kd+1:i) = 0 and v(i+kd+1) = 1; v(i+kd+2:n) is stored on exit in |
* A(i+kd+2:n,i), and tau in TAU(i). |
*> A(i+kd+2:n,i), and tau in TAU(i). |
*> |
*> |
*> The contents of A on exit are illustrated by the following examples |
*> The contents of A on exit are illustrated by the following examples |
*> with n = 5: |
*> with n = 5: |
Line 245
|
Line 245
|
* |
* |
IMPLICIT NONE |
IMPLICIT NONE |
* |
* |
* -- LAPACK computational routine (version 3.7.0) -- |
* -- LAPACK computational routine (version 3.8.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..-- |
* December 2016 |
* November 2017 |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
CHARACTER UPLO |
CHARACTER UPLO |
Line 277
|
Line 277
|
$ TPOS, WPOS, S2POS, S1POS |
$ TPOS, WPOS, S2POS, S1POS |
* .. |
* .. |
* .. External Subroutines .. |
* .. External Subroutines .. |
EXTERNAL XERBLA, ZHER2K, ZHEMM, ZGEMM, |
EXTERNAL XERBLA, ZHER2K, ZHEMM, ZGEMM, ZCOPY, |
$ ZLARFT, ZGELQF, ZGEQRF, ZLASET |
$ ZLARFT, ZGELQF, ZGEQRF, ZLASET |
* .. |
* .. |
* .. Intrinsic Functions .. |
* .. Intrinsic Functions .. |
Line 285
|
Line 285
|
* .. |
* .. |
* .. External Functions .. |
* .. External Functions .. |
LOGICAL LSAME |
LOGICAL LSAME |
INTEGER ILAENV |
INTEGER ILAENV2STAGE |
EXTERNAL LSAME, ILAENV |
EXTERNAL LSAME, ILAENV2STAGE |
* .. |
* .. |
* .. Executable Statements .. |
* .. Executable Statements .. |
* |
* |
Line 296
|
Line 296
|
INFO = 0 |
INFO = 0 |
UPPER = LSAME( UPLO, 'U' ) |
UPPER = LSAME( UPLO, 'U' ) |
LQUERY = ( LWORK.EQ.-1 ) |
LQUERY = ( LWORK.EQ.-1 ) |
LWMIN = ILAENV( 20, 'ZHETRD_HE2HB', '', N, KD, -1, -1 ) |
LWMIN = ILAENV2STAGE( 4, 'ZHETRD_HE2HB', '', N, KD, -1, -1 ) |
|
|
IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN |
IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN |
INFO = -1 |
INFO = -1 |
Line 363
|
Line 363
|
* |
* |
* |
* |
* Set the workspace of the triangular matrix T to zero once such a |
* Set the workspace of the triangular matrix T to zero once such a |
* way everytime T is generated the upper/lower portion will be always zero |
* way every time T is generated the upper/lower portion will be always zero |
* |
* |
CALL ZLASET( "A", LDT, KD, ZERO, ZERO, WORK( TPOS ), LDT ) |
CALL ZLASET( "A", LDT, KD, ZERO, ZERO, WORK( TPOS ), LDT ) |
* |
* |