MAGMA  2.7.1
Matrix Algebra for GPU and Multicore Architectures
 All Classes Files Functions Friends Groups Pages
hb2st: 2nd stage, band to tridiagonal

Functions

magma_int_t magma_chetrd_hb2st (magma_uplo_t uplo, magma_int_t n, magma_int_t nb, magma_int_t Vblksiz, magmaFloatComplex *A, magma_int_t lda, float *d, float *e, magmaFloatComplex *V, magma_int_t ldv, magmaFloatComplex *TAU, magma_int_t wantz, magmaFloatComplex *T, magma_int_t ldt)
 Reduces Hermitian band matrix to real symmetric tridiagonal. More...
 
magma_int_t magma_zhetrd_hb2st (magma_uplo_t uplo, magma_int_t n, magma_int_t nb, magma_int_t Vblksiz, magmaDoubleComplex *A, magma_int_t lda, double *d, double *e, magmaDoubleComplex *V, magma_int_t ldv, magmaDoubleComplex *TAU, magma_int_t wantz, magmaDoubleComplex *T, magma_int_t ldt)
 Reduces Hermitian band matrix to real symmetric tridiagonal. More...
 

Detailed Description

Function Documentation

magma_int_t magma_chetrd_hb2st ( magma_uplo_t  uplo,
magma_int_t  n,
magma_int_t  nb,
magma_int_t  Vblksiz,
magmaFloatComplex *  A,
magma_int_t  lda,
float *  d,
float *  e,
magmaFloatComplex *  V,
magma_int_t  ldv,
magmaFloatComplex *  TAU,
magma_int_t  wantz,
magmaFloatComplex *  T,
magma_int_t  ldt 
)

Reduces Hermitian band matrix to real symmetric tridiagonal.

Parameters
[in]uplomagma_uplo_t
  • = MagmaUpper: Upper triangles of A is stored;
  • = MagmaLower: Lower triangles of A is stored.
[in]nINTEGER The order of the matrix A. n >= 0.
[in]nbINTEGER The order of the band matrix A. n >= nb >= 0.
[in]VblksizINTEGER The size of the block of householder vectors applied at once.
[in]A(workspace) COMPLEX array, dimension (lda, n) On entry the band matrix stored in the following way:
[in]ldaINTEGER The leading dimension of the array A. lda >= 2*nb.
[out]dDOUBLE array, dimension (n) The diagonal elements of the tridiagonal matrix T: D(i) = A(i,i).
[out]eDOUBLE array, dimension (n-1) The off-diagonal elements of the tridiagonal matrix T: E(i) = A(i,i+1) if UPLO = MagmaUpper, E(i) = A(i+1,i) if UPLO = MagmaLower.
[out]VCOMPLEX array, dimension (BLKCNT, LDV, VBLKSIZ) On exit it contains the blocks of householder reflectors BLKCNT is the number of block and it is returned by the funtion MAGMA_BULGE_GET_BLKCNT.
[in]ldvINTEGER The leading dimension of V. LDV > nb + VBLKSIZ + 1
[out]TAUCOMPLEX dimension(BLKCNT, VBLKSIZ) ???
[in]wantzINTEGER if COMPT = 0 T is not computed if COMPT = 1 T is computed
[out]TCOMPLEX dimension(LDT *) if COMPT = 1 on exit contains the matrices T needed for Q2 if COMPT = 0 T is not referenced
[in]ldtINTEGER The leading dimension of T. LDT > Vblksiz
magma_int_t magma_zhetrd_hb2st ( magma_uplo_t  uplo,
magma_int_t  n,
magma_int_t  nb,
magma_int_t  Vblksiz,
magmaDoubleComplex *  A,
magma_int_t  lda,
double *  d,
double *  e,
magmaDoubleComplex *  V,
magma_int_t  ldv,
magmaDoubleComplex *  TAU,
magma_int_t  wantz,
magmaDoubleComplex *  T,
magma_int_t  ldt 
)

Reduces Hermitian band matrix to real symmetric tridiagonal.

Parameters
[in]uplomagma_uplo_t
  • = MagmaUpper: Upper triangles of A is stored;
  • = MagmaLower: Lower triangles of A is stored.
[in]nINTEGER The order of the matrix A. n >= 0.
[in]nbINTEGER The order of the band matrix A. n >= nb >= 0.
[in]VblksizINTEGER The size of the block of householder vectors applied at once.
[in]A(workspace) COMPLEX_16 array, dimension (lda, n) On entry the band matrix stored in the following way:
[in]ldaINTEGER The leading dimension of the array A. lda >= 2*nb.
[out]dDOUBLE array, dimension (n) The diagonal elements of the tridiagonal matrix T: D(i) = A(i,i).
[out]eDOUBLE array, dimension (n-1) The off-diagonal elements of the tridiagonal matrix T: E(i) = A(i,i+1) if UPLO = MagmaUpper, E(i) = A(i+1,i) if UPLO = MagmaLower.
[out]VCOMPLEX_16 array, dimension (BLKCNT, LDV, VBLKSIZ) On exit it contains the blocks of householder reflectors BLKCNT is the number of block and it is returned by the funtion MAGMA_BULGE_GET_BLKCNT.
[in]ldvINTEGER The leading dimension of V. LDV > nb + VBLKSIZ + 1
[out]TAUCOMPLEX_16 dimension(BLKCNT, VBLKSIZ) ???
[in]wantzINTEGER if COMPT = 0 T is not computed if COMPT = 1 T is computed
[out]TCOMPLEX_16 dimension(LDT *) if COMPT = 1 on exit contains the matrices T needed for Q2 if COMPT = 0 T is not referenced
[in]ldtINTEGER The leading dimension of T. LDT > Vblksiz