version 1.1, 2017/06/17 11:02:54
|
version 1.5, 2023/08/07 08:39:24
|
Line 7
|
Line 7
|
* |
* |
*> \htmlonly |
*> \htmlonly |
*> Download ZHETRD_HB2ST + dependencies |
*> Download ZHETRD_HB2ST + dependencies |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zhbtrd_hb2st.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zhetrd_hb2st.f"> |
*> [TGZ]</a> |
*> [TGZ]</a> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zhbtrd_hb2st.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zhetrd_hb2st.f"> |
*> [ZIP]</a> |
*> [ZIP]</a> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhbtrd_hb2st.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhetrd_hb2st.f"> |
*> [TXT]</a> |
*> [TXT]</a> |
*> \endhtmlonly |
*> \endhtmlonly |
* |
* |
Line 50
|
Line 50
|
* Arguments: |
* Arguments: |
* ========== |
* ========== |
* |
* |
*> \param[in] STAGE |
*> \param[in] STAGE1 |
*> \verbatim |
*> \verbatim |
*> STAGE is CHARACTER*1 |
*> STAGE1 is CHARACTER*1 |
*> = 'N': "No": to mention that the stage 1 of the reduction |
*> = 'N': "No": to mention that the stage 1 of the reduction |
*> from dense to band using the zhetrd_he2hb routine |
*> from dense to band using the zhetrd_he2hb routine |
*> was not called before this routine to reproduce AB. |
*> was not called before this routine to reproduce AB. |
Line 188
|
Line 188
|
*> \author Univ. of Colorado Denver |
*> \author Univ. of Colorado Denver |
*> \author NAG Ltd. |
*> \author NAG Ltd. |
* |
* |
*> \date December 2016 |
|
* |
|
*> \ingroup complex16OTHERcomputational |
*> \ingroup complex16OTHERcomputational |
* |
* |
*> \par Further Details: |
*> \par Further Details: |
Line 237
|
Line 235
|
* |
* |
IMPLICIT NONE |
IMPLICIT NONE |
* |
* |
* -- 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 STAGE1, UPLO, VECT |
CHARACTER STAGE1, UPLO, VECT |
Line 273
|
Line 270
|
COMPLEX*16 TMP |
COMPLEX*16 TMP |
* .. |
* .. |
* .. External Subroutines .. |
* .. External Subroutines .. |
EXTERNAL ZHB2ST_KERNELS, ZLACPY, ZLASET |
EXTERNAL ZHB2ST_KERNELS, ZLACPY, ZLASET, XERBLA |
* .. |
* .. |
* .. Intrinsic Functions .. |
* .. Intrinsic Functions .. |
INTRINSIC MIN, MAX, CEILING, DBLE, REAL |
INTRINSIC MIN, MAX, CEILING, DBLE, REAL |
* .. |
* .. |
* .. External Functions .. |
* .. External Functions .. |
LOGICAL LSAME |
LOGICAL LSAME |
INTEGER ILAENV |
INTEGER ILAENV2STAGE |
EXTERNAL LSAME, ILAENV |
EXTERNAL LSAME, ILAENV2STAGE |
* .. |
* .. |
* .. Executable Statements .. |
* .. Executable Statements .. |
* |
* |
Line 297
|
Line 294
|
* |
* |
* Determine the block size, the workspace size and the hous size. |
* Determine the block size, the workspace size and the hous size. |
* |
* |
IB = ILAENV( 18, 'ZHETRD_HB2ST', VECT, N, KD, -1, -1 ) |
IB = ILAENV2STAGE( 2, 'ZHETRD_HB2ST', VECT, N, KD, -1, -1 ) |
LHMIN = ILAENV( 19, 'ZHETRD_HB2ST', VECT, N, KD, IB, -1 ) |
LHMIN = ILAENV2STAGE( 3, 'ZHETRD_HB2ST', VECT, N, KD, IB, -1 ) |
LWMIN = ILAENV( 20, 'ZHETRD_HB2ST', VECT, N, KD, IB, -1 ) |
LWMIN = ILAENV2STAGE( 4, 'ZHETRD_HB2ST', VECT, N, KD, IB, -1 ) |
* |
* |
IF( .NOT.AFTERS1 .AND. .NOT.LSAME( STAGE1, 'N' ) ) THEN |
IF( .NOT.AFTERS1 .AND. .NOT.LSAME( STAGE1, 'N' ) ) THEN |
INFO = -1 |
INFO = -1 |
Line 395
|
Line 392
|
* For that, for real precision just copy the diag and offdiag |
* For that, for real precision just copy the diag and offdiag |
* to D and E while for the COMPLEX case the bulge chasing is |
* to D and E while for the COMPLEX case the bulge chasing is |
* performed to convert the hermetian tridiagonal to symmetric |
* performed to convert the hermetian tridiagonal to symmetric |
* tridiagonal. A simpler coversion formula might be used, but then |
* tridiagonal. A simpler conversion formula might be used, but then |
* updating the Q matrix will be required and based if Q is generated |
* updating the Q matrix will be required and based if Q is generated |
* or not this might complicate the story. |
* or not this might complicate the story. |
* |
* |
Line 512 C END IF
|
Line 509 C END IF
|
* |
* |
* Call the kernel |
* Call the kernel |
* |
* |
#if defined(_OPENMP) |
#if defined(_OPENMP) && _OPENMP >= 201307 |
|
|
IF( TTYPE.NE.1 ) THEN |
IF( TTYPE.NE.1 ) THEN |
!$OMP TASK DEPEND(in:WORK(MYID+SHIFT-1)) |
!$OMP TASK DEPEND(in:WORK(MYID+SHIFT-1)) |
!$OMP$ DEPEND(in:WORK(MYID-1)) |
!$OMP$ DEPEND(in:WORK(MYID-1)) |