--- rpl/lapack/lapack/dsb2st_kernels.f 2017/06/17 11:06:32 1.2
+++ rpl/lapack/lapack/dsb2st_kernels.f 2023/08/07 08:39:05 1.6
@@ -1,26 +1,26 @@
*> \brief \b DSB2ST_KERNELS
*
* @generated from zhb2st_kernels.f, fortran z -> d, Wed Dec 7 08:22:39 2016
-*
+*
* =========== DOCUMENTATION ===========
*
-* Online html documentation available at
-* http://www.netlib.org/lapack/explore-html/
+* Online html documentation available at
+* http://www.netlib.org/lapack/explore-html/
*
*> \htmlonly
-*> Download DSB2ST_KERNELS + dependencies
-*>
-*> [TGZ]
-*>
-*> [ZIP]
-*>
+*> Download DSB2ST_KERNELS + dependencies
+*>
+*> [TGZ]
+*>
+*> [ZIP]
+*>
*> [TXT]
-*> \endhtmlonly
+*> \endhtmlonly
*
* Definition:
* ===========
*
-* SUBROUTINE DSB2ST_KERNELS( UPLO, WANTZ, TTYPE,
+* SUBROUTINE DSB2ST_KERNELS( UPLO, WANTZ, TTYPE,
* ST, ED, SWEEP, N, NB, IB,
* A, LDA, V, TAU, LDVT, WORK)
*
@@ -32,9 +32,9 @@
* INTEGER TTYPE, ST, ED, SWEEP, N, NB, IB, LDA, LDVT
* ..
* .. Array Arguments ..
-* DOUBLE PRECISION A( LDA, * ), V( * ),
+* DOUBLE PRECISION A( LDA, * ), V( * ),
* TAU( * ), WORK( * )
-*
+*
*> \par Purpose:
* =============
*>
@@ -47,45 +47,87 @@
* Arguments:
* ==========
*
-*> @param[in] n
-*> The order of the matrix A.
-*>
-*> @param[in] nb
-*> The size of the band.
-*>
-*> @param[in, out] A
-*> A pointer to the matrix A.
-*>
-*> @param[in] lda
-*> The leading dimension of the matrix A.
+*> \param[in] UPLO
+*> \verbatim
+*> UPLO is CHARACTER*1
+*> \endverbatim
*>
-*> @param[out] V
-*> DOUBLE PRECISION array, dimension 2*n if eigenvalues only are
-*> requested or to be queried for vectors.
+*> \param[in] WANTZ
+*> \verbatim
+*> WANTZ is LOGICAL which indicate if Eigenvalue are requested or both
+*> Eigenvalue/Eigenvectors.
+*> \endverbatim
*>
-*> @param[out] TAU
-*> DOUBLE PRECISION array, dimension (2*n).
-*> The scalar factors of the Householder reflectors are stored
-*> in this array.
+*> \param[in] TTYPE
+*> \verbatim
+*> TTYPE is INTEGER
+*> \endverbatim
*>
-*> @param[in] st
+*> \param[in] ST
+*> \verbatim
+*> ST is INTEGER
*> internal parameter for indices.
+*> \endverbatim
*>
-*> @param[in] ed
+*> \param[in] ED
+*> \verbatim
+*> ED is INTEGER
*> internal parameter for indices.
+*> \endverbatim
*>
-*> @param[in] sweep
+*> \param[in] SWEEP
+*> \verbatim
+*> SWEEP is INTEGER
*> internal parameter for indices.
+*> \endverbatim
*>
-*> @param[in] Vblksiz
-*> internal parameter for indices.
+*> \param[in] N
+*> \verbatim
+*> N is INTEGER. The order of the matrix A.
+*> \endverbatim
*>
-*> @param[in] wantz
-*> logical which indicate if Eigenvalue are requested or both
-*> Eigenvalue/Eigenvectors.
+*> \param[in] NB
+*> \verbatim
+*> NB is INTEGER. The size of the band.
+*> \endverbatim
*>
-*> @param[in] work
-*> Workspace of size nb.
+*> \param[in] IB
+*> \verbatim
+*> IB is INTEGER.
+*> \endverbatim
+*>
+*> \param[in, out] A
+*> \verbatim
+*> A is DOUBLE PRECISION array. A pointer to the matrix A.
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*> LDA is INTEGER. The leading dimension of the matrix A.
+*> \endverbatim
+*>
+*> \param[out] V
+*> \verbatim
+*> V is DOUBLE PRECISION array, dimension 2*n if eigenvalues only are
+*> requested or to be queried for vectors.
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*> TAU is DOUBLE PRECISION array, dimension (2*n).
+*> The scalar factors of the Householder reflectors are stored
+*> in this array.
+*> \endverbatim
+*>
+*> \param[in] LDVT
+*> \verbatim
+*> LDVT is INTEGER.
+*> \endverbatim
+*>
+*> \param[out] WORK
+*> \verbatim
+*> WORK is DOUBLE PRECISION array. Workspace of size nb.
+*> \endverbatim
*>
*> \par Further Details:
* =====================
@@ -105,7 +147,7 @@
*> http://doi.acm.org/10.1145/2063384.2063394
*>
*> A. Haidar, J. Kurzak, P. Luszczek, 2013.
-*> An improved parallel singular value algorithm and its implementation
+*> An improved parallel singular value algorithm and its implementation
*> for multicore hardware, In Proceedings of 2013 International Conference
*> for High Performance Computing, Networking, Storage and Analysis (SC '13).
*> Denver, Colorado, USA, 2013.
@@ -113,25 +155,24 @@
*> http://doi.acm.org/10.1145/2503210.2503292
*>
*> A. Haidar, R. Solca, S. Tomov, T. Schulthess and J. Dongarra.
-*> A novel hybrid CPU-GPU generalized eigensolver for electronic structure
+*> A novel hybrid CPU-GPU generalized eigensolver for electronic structure
*> calculations based on fine-grained memory aware tasks.
*> International Journal of High Performance Computing Applications.
*> Volume 28 Issue 2, Pages 196-209, May 2014.
-*> http://hpc.sagepub.com/content/28/2/196
+*> http://hpc.sagepub.com/content/28/2/196
*>
*> \endverbatim
*>
* =====================================================================
- SUBROUTINE DSB2ST_KERNELS( UPLO, WANTZ, TTYPE,
+ SUBROUTINE DSB2ST_KERNELS( UPLO, WANTZ, TTYPE,
$ ST, ED, SWEEP, N, NB, IB,
$ A, LDA, V, TAU, LDVT, WORK)
*
IMPLICIT NONE
*
-* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK computational routine --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* December 2016
*
* .. Scalar Arguments ..
CHARACTER UPLO
@@ -139,7 +180,7 @@
INTEGER TTYPE, ST, ED, SWEEP, N, NB, IB, LDA, LDVT
* ..
* .. Array Arguments ..
- DOUBLE PRECISION A( LDA, * ), V( * ),
+ DOUBLE PRECISION A( LDA, * ), V( * ),
$ TAU( * ), WORK( * )
* ..
*
@@ -153,8 +194,8 @@
* .. Local Scalars ..
LOGICAL UPPER
INTEGER I, J1, J2, LM, LN, VPOS, TAUPOS,
- $ DPOS, OFDPOS, AJETER
- DOUBLE PRECISION CTMP
+ $ DPOS, OFDPOS, AJETER
+ DOUBLE PRECISION CTMP
* ..
* .. External Subroutines ..
EXTERNAL DLARFG, DLARFX, DLARFY
@@ -167,7 +208,7 @@
* ..
* ..
* .. Executable Statements ..
-*
+*
AJETER = IB + LDVT
UPPER = LSAME( UPLO, 'U' )
@@ -198,10 +239,10 @@
V( VPOS ) = ONE
DO 10 I = 1, LM-1
V( VPOS+I ) = ( A( OFDPOS-I, ST+I ) )
- A( OFDPOS-I, ST+I ) = ZERO
+ A( OFDPOS-I, ST+I ) = ZERO
10 CONTINUE
CTMP = ( A( OFDPOS, ST ) )
- CALL DLARFG( LM, CTMP, V( VPOS+1 ), 1,
+ CALL DLARFG( LM, CTMP, V( VPOS+1 ), 1,
$ TAU( TAUPOS ) )
A( OFDPOS, ST ) = CTMP
*
@@ -239,14 +280,14 @@
*
V( VPOS ) = ONE
DO 30 I = 1, LM-1
- V( VPOS+I ) =
+ V( VPOS+I ) =
$ ( A( DPOS-NB-I, J1+I ) )
A( DPOS-NB-I, J1+I ) = ZERO
30 CONTINUE
CTMP = ( A( DPOS-NB, J1 ) )
CALL DLARFG( LM, CTMP, V( VPOS+1 ), 1, TAU( TAUPOS ) )
A( DPOS-NB, J1 ) = CTMP
-*
+*
CALL DLARFX( 'Right', LN-1, LM, V( VPOS ),
$ TAU( TAUPOS ),
$ A( DPOS-NB+1, J1 ), LDA-1, WORK)
@@ -254,9 +295,9 @@
ENDIF
*
* Lower case
-*
+*
ELSE
-*
+*
IF( WANTZ ) THEN
VPOS = MOD( SWEEP-1, 2 ) * N + ST
TAUPOS = MOD( SWEEP-1, 2 ) * N + ST
@@ -271,9 +312,9 @@
V( VPOS ) = ONE
DO 20 I = 1, LM-1
V( VPOS+I ) = A( OFDPOS+I, ST-1 )
- A( OFDPOS+I, ST-1 ) = ZERO
+ A( OFDPOS+I, ST-1 ) = ZERO
20 CONTINUE
- CALL DLARFG( LM, A( OFDPOS, ST-1 ), V( VPOS+1 ), 1,
+ CALL DLARFG( LM, A( OFDPOS, ST-1 ), V( VPOS+1 ), 1,
$ TAU( TAUPOS ) )
*
LM = ED - ST + 1
@@ -300,7 +341,7 @@
LM = J2-J1+1
*
IF( LM.GT.0) THEN
- CALL DLARFX( 'Right', LM, LN, V( VPOS ),
+ CALL DLARFX( 'Right', LM, LN, V( VPOS ),
$ TAU( TAUPOS ), A( DPOS+NB, ST ),
$ LDA-1, WORK)
*
@@ -317,19 +358,19 @@
V( VPOS+I ) = A( DPOS+NB+I, ST )
A( DPOS+NB+I, ST ) = ZERO
40 CONTINUE
- CALL DLARFG( LM, A( DPOS+NB, ST ), V( VPOS+1 ), 1,
+ CALL DLARFG( LM, A( DPOS+NB, ST ), V( VPOS+1 ), 1,
$ TAU( TAUPOS ) )
*
- CALL DLARFX( 'Left', LM, LN-1, V( VPOS ),
+ CALL DLARFX( 'Left', LM, LN-1, V( VPOS ),
$ ( TAU( TAUPOS ) ),
$ A( DPOS+NB-1, ST+1 ), LDA-1, WORK)
-
+
ENDIF
ENDIF
ENDIF
*
RETURN
*
-* END OF DSB2ST_KERNELS
+* End of DSB2ST_KERNELS
*
- END
+ END