# hb2st_kernels - Man Page

{hb,sb}2st_kernels: band to tridiagonal (2nd stage)

## Synopsis

### Functions

subroutine **chb2st_kernels** (uplo, wantz, ttype, st, ed, sweep, n, nb, ib, a, lda, v, tau, ldvt, work)**CHB2ST_KERNELS**

subroutine **dsb2st_kernels** (uplo, wantz, ttype, st, ed, sweep, n, nb, ib, a, lda, v, tau, ldvt, work)**DSB2ST_KERNELS**

subroutine **ssb2st_kernels** (uplo, wantz, ttype, st, ed, sweep, n, nb, ib, a, lda, v, tau, ldvt, work)**SSB2ST_KERNELS**

subroutine **zhb2st_kernels** (uplo, wantz, ttype, st, ed, sweep, n, nb, ib, a, lda, v, tau, ldvt, work)**ZHB2ST_KERNELS**

## Detailed Description

## Function Documentation

### subroutine chb2st_kernels (character uplo, logical wantz, integer ttype, integer st, integer ed, integer sweep, integer n, integer nb, integer ib, complex, dimension( lda, * ) a, integer lda, complex, dimension( * ) v, complex, dimension( * ) tau, integer ldvt, complex, dimension( * ) work)

**CHB2ST_KERNELS**

**Purpose:**

CHB2ST_KERNELS is an internal routine used by the CHETRD_HB2ST subroutine.

**Parameters***UPLO*UPLO is CHARACTER*1

*WANTZ*WANTZ is LOGICAL which indicate if Eigenvalue are requested or both Eigenvalue/Eigenvectors.

*TTYPE*TTYPE is INTEGER

*ST*ST is INTEGER internal parameter for indices.

*ED*ED is INTEGER internal parameter for indices.

*SWEEP*SWEEP is INTEGER internal parameter for indices.

*N*N is INTEGER. The order of the matrix A.

*NB*NB is INTEGER. The size of the band.

*IB*IB is INTEGER.

*A*A is COMPLEX array. A pointer to the matrix A.

*LDA*LDA is INTEGER. The leading dimension of the matrix A.

*V*V is COMPLEX array, dimension 2*n if eigenvalues only are requested or to be queried for vectors.

*TAU*TAU is COMPLEX array, dimension (2*n). The scalar factors of the Householder reflectors are stored in this array.

*LDVT*LDVT is INTEGER.

*WORK*WORK is COMPLEX array. Workspace of size nb.

**Further Details:**

Implemented by Azzam Haidar. All details are available on technical report, SC11, SC13 papers. Azzam Haidar, Hatem Ltaief, and Jack Dongarra. Parallel reduction to condensed forms for symmetric eigenvalue problems using aggregated fine-grained and memory-aware kernels. In Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis (SC '11), New York, NY, USA, Article 8 , 11 pages. http://doi.acm.org/10.1145/2063384.2063394 A. Haidar, J. Kurzak, P. Luszczek, 2013. 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. Article 90, 12 pages. 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 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

Definition at line **169** of file **chb2st_kernels.f**.

### subroutine dsb2st_kernels (character uplo, logical wantz, integer ttype, integer st, integer ed, integer sweep, integer n, integer nb, integer ib, double precision, dimension( lda, * ) a, integer lda, double precision, dimension( * ) v, double precision, dimension( * ) tau, integer ldvt, double precision, dimension( * ) work)

**DSB2ST_KERNELS**

**Purpose:**

DSB2ST_KERNELS is an internal routine used by the DSYTRD_SB2ST subroutine.

**Parameters***UPLO*UPLO is CHARACTER*1

*WANTZ*WANTZ is LOGICAL which indicate if Eigenvalue are requested or both Eigenvalue/Eigenvectors.

*TTYPE*TTYPE is INTEGER

*ST*ST is INTEGER internal parameter for indices.

*ED*ED is INTEGER internal parameter for indices.

*SWEEP*SWEEP is INTEGER internal parameter for indices.

*N*N is INTEGER. The order of the matrix A.

*NB*NB is INTEGER. The size of the band.

*IB*IB is INTEGER.

*A*A is DOUBLE PRECISION array. A pointer to the matrix A.

*LDA*LDA is INTEGER. The leading dimension of the matrix A.

*V*V is DOUBLE PRECISION array, dimension 2*n if eigenvalues only are requested or to be queried for vectors.

*TAU*TAU is DOUBLE PRECISION array, dimension (2*n). The scalar factors of the Householder reflectors are stored in this array.

*LDVT*LDVT is INTEGER.

*WORK*WORK is DOUBLE PRECISION array. Workspace of size nb.

**Further Details:**

Implemented by Azzam Haidar. All details are available on technical report, SC11, SC13 papers. Azzam Haidar, Hatem Ltaief, and Jack Dongarra. Parallel reduction to condensed forms for symmetric eigenvalue problems using aggregated fine-grained and memory-aware kernels. In Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis (SC '11), New York, NY, USA, Article 8 , 11 pages. http://doi.acm.org/10.1145/2063384.2063394 A. Haidar, J. Kurzak, P. Luszczek, 2013. 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. Article 90, 12 pages. 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 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

Definition at line **169** of file **dsb2st_kernels.f**.

### subroutine ssb2st_kernels (character uplo, logical wantz, integer ttype, integer st, integer ed, integer sweep, integer n, integer nb, integer ib, real, dimension( lda, * ) a, integer lda, real, dimension( * ) v, real, dimension( * ) tau, integer ldvt, real, dimension( * ) work)

**SSB2ST_KERNELS**

**Purpose:**

SSB2ST_KERNELS is an internal routine used by the SSYTRD_SB2ST subroutine.

**Parameters***UPLO*UPLO is CHARACTER*1

*WANTZ*WANTZ is LOGICAL which indicate if Eigenvalue are requested or both Eigenvalue/Eigenvectors.

*TTYPE*TTYPE is INTEGER

*ST*ST is INTEGER internal parameter for indices.

*ED*ED is INTEGER internal parameter for indices.

*SWEEP*SWEEP is INTEGER internal parameter for indices.

*N*N is INTEGER. The order of the matrix A.

*NB*NB is INTEGER. The size of the band.

*IB*IB is INTEGER.

*A*A is REAL array. A pointer to the matrix A.

*LDA*LDA is INTEGER. The leading dimension of the matrix A.

*V*V is REAL array, dimension 2*n if eigenvalues only are requested or to be queried for vectors.

*TAU*TAU is REAL array, dimension (2*n). The scalar factors of the Householder reflectors are stored in this array.

*LDVT*LDVT is INTEGER.

*WORK*WORK is REAL array. Workspace of size nb.

**Further Details:**

Implemented by Azzam Haidar. All details are available on technical report, SC11, SC13 papers. Azzam Haidar, Hatem Ltaief, and Jack Dongarra. Parallel reduction to condensed forms for symmetric eigenvalue problems using aggregated fine-grained and memory-aware kernels. In Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis (SC '11), New York, NY, USA, Article 8 , 11 pages. http://doi.acm.org/10.1145/2063384.2063394 A. Haidar, J. Kurzak, P. Luszczek, 2013. 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. Article 90, 12 pages. 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 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

Definition at line **170** of file **ssb2st_kernels.f**.

### subroutine zhb2st_kernels (character uplo, logical wantz, integer ttype, integer st, integer ed, integer sweep, integer n, integer nb, integer ib, complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension( * ) v, complex*16, dimension( * ) tau, integer ldvt, complex*16, dimension( * ) work)

**ZHB2ST_KERNELS**

**Purpose:**

ZHB2ST_KERNELS is an internal routine used by the ZHETRD_HB2ST subroutine.

**Parameters***UPLO*UPLO is CHARACTER*1

*WANTZ*WANTZ is LOGICAL which indicate if Eigenvalue are requested or both Eigenvalue/Eigenvectors.

*TTYPE*TTYPE is INTEGER

*ST*ST is INTEGER internal parameter for indices.

*ED*ED is INTEGER internal parameter for indices.

*SWEEP*SWEEP is INTEGER internal parameter for indices.

*N*N is INTEGER. The order of the matrix A.

*NB*NB is INTEGER. The size of the band.

*IB*IB is INTEGER.

*A*A is COMPLEX*16 array. A pointer to the matrix A.

*LDA*LDA is INTEGER. The leading dimension of the matrix A.

*V*V is COMPLEX*16 array, dimension 2*n if eigenvalues only are requested or to be queried for vectors.

*TAU*TAU is COMPLEX*16 array, dimension (2*n). The scalar factors of the Householder reflectors are stored in this array.

*LDVT*LDVT is INTEGER.

*WORK*WORK is COMPLEX*16 array. Workspace of size nb.

**Further Details:**

Definition at line **169** of file **zhb2st_kernels.f**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.