MAGMA  2.3.0
Matrix Algebra for GPU and Multicore Architectures
 All Classes Files Functions Friends Groups Pages
hegst: Reduce generalized problem to standard problem.

Functions

magma_int_t magma_chegst (magma_int_t itype, magma_uplo_t uplo, magma_int_t n, magmaFloatComplex *A, magma_int_t lda, magmaFloatComplex *B, magma_int_t ldb, magma_int_t *info)
 CHEGST reduces a complex Hermitian-definite generalized eigenproblem to standard form. More...
 
magma_int_t magma_chegst_gpu (magma_int_t itype, magma_uplo_t uplo, magma_int_t n, magmaFloatComplex_ptr dA, magma_int_t ldda, magmaFloatComplex_const_ptr dB, magma_int_t lddb, magma_int_t *info)
 CHEGST_GPU reduces a complex Hermitian-definite generalized eigenproblem to standard form. More...
 
magma_int_t magma_chegst_m (magma_int_t ngpu, magma_int_t itype, magma_uplo_t uplo, magma_int_t n, magmaFloatComplex *A, magma_int_t lda, magmaFloatComplex *B, magma_int_t ldb, magma_int_t *info)
 CHEGST_M reduces a complex Hermitian-definite generalized eigenproblem to standard form. More...
 
magma_int_t magma_dsygst (magma_int_t itype, magma_uplo_t uplo, magma_int_t n, double *A, magma_int_t lda, double *B, magma_int_t ldb, magma_int_t *info)
 DSYGST reduces a real symmetric-definite generalized eigenproblem to standard form. More...
 
magma_int_t magma_dsygst_gpu (magma_int_t itype, magma_uplo_t uplo, magma_int_t n, magmaDouble_ptr dA, magma_int_t ldda, magmaDouble_const_ptr dB, magma_int_t lddb, magma_int_t *info)
 DSYGST_GPU reduces a real symmetric-definite generalized eigenproblem to standard form. More...
 
magma_int_t magma_dsygst_m (magma_int_t ngpu, magma_int_t itype, magma_uplo_t uplo, magma_int_t n, double *A, magma_int_t lda, double *B, magma_int_t ldb, magma_int_t *info)
 DSYGST_M reduces a real symmetric-definite generalized eigenproblem to standard form. More...
 
magma_int_t magma_ssygst (magma_int_t itype, magma_uplo_t uplo, magma_int_t n, float *A, magma_int_t lda, float *B, magma_int_t ldb, magma_int_t *info)
 SSYGST reduces a real symmetric-definite generalized eigenproblem to standard form. More...
 
magma_int_t magma_ssygst_gpu (magma_int_t itype, magma_uplo_t uplo, magma_int_t n, magmaFloat_ptr dA, magma_int_t ldda, magmaFloat_const_ptr dB, magma_int_t lddb, magma_int_t *info)
 SSYGST_GPU reduces a real symmetric-definite generalized eigenproblem to standard form. More...
 
magma_int_t magma_ssygst_m (magma_int_t ngpu, magma_int_t itype, magma_uplo_t uplo, magma_int_t n, float *A, magma_int_t lda, float *B, magma_int_t ldb, magma_int_t *info)
 SSYGST_M reduces a real symmetric-definite generalized eigenproblem to standard form. More...
 
magma_int_t magma_zhegst (magma_int_t itype, magma_uplo_t uplo, magma_int_t n, magmaDoubleComplex *A, magma_int_t lda, magmaDoubleComplex *B, magma_int_t ldb, magma_int_t *info)
 ZHEGST reduces a complex Hermitian-definite generalized eigenproblem to standard form. More...
 
magma_int_t magma_zhegst_gpu (magma_int_t itype, magma_uplo_t uplo, magma_int_t n, magmaDoubleComplex_ptr dA, magma_int_t ldda, magmaDoubleComplex_const_ptr dB, magma_int_t lddb, magma_int_t *info)
 ZHEGST_GPU reduces a complex Hermitian-definite generalized eigenproblem to standard form. More...
 
magma_int_t magma_zhegst_m (magma_int_t ngpu, magma_int_t itype, magma_uplo_t uplo, magma_int_t n, magmaDoubleComplex *A, magma_int_t lda, magmaDoubleComplex *B, magma_int_t ldb, magma_int_t *info)
 ZHEGST_M reduces a complex Hermitian-definite generalized eigenproblem to standard form. More...
 

Detailed Description

Function Documentation

magma_int_t magma_chegst ( magma_int_t  itype,
magma_uplo_t  uplo,
magma_int_t  n,
magmaFloatComplex *  A,
magma_int_t  lda,
magmaFloatComplex *  B,
magma_int_t  ldb,
magma_int_t *  info 
)

CHEGST reduces a complex Hermitian-definite generalized eigenproblem to standard form.

If ITYPE = 1, the problem is A*x = lambda*B*x, and A is overwritten by inv(U^H)*A*inv(U) or inv(L)*A*inv(L^H)

If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or B*A*x = lambda*x, and A is overwritten by U*A*U^H or L^H*A*L.

B must have been previously factorized as U^H*U or L*L^H by CPOTRF.

Parameters
[in]itypeINTEGER = 1: compute inv(U^H)*A*inv(U) or inv(L)*A*inv(L^H); = 2 or 3: compute U*A*U^H or L^H*A*L.
[in]uplomagma_uplo_t
  • = MagmaUpper: Upper triangle of A is stored and B is factored as U^H*U;
  • = MagmaLower: Lower triangle of A is stored and B is factored as L*L^H.
[in]nINTEGER The order of the matrices A and B. N >= 0.
[in,out]ACOMPLEX array, dimension (LDA,N) On entry, the Hermitian matrix A. If UPLO = MagmaUpper, the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If UPLO = MagmaLower, the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.
On exit, if INFO = 0, the transformed matrix, stored in the same format as A.
[in]ldaINTEGER The leading dimension of the array A. LDA >= max(1,N).
[in,out]BCOMPLEX array, dimension (LDB,N) The triangular factor from the Cholesky factorization of B, as returned by CPOTRF.

B is modified by the routine but restored on exit (in lapack chegst/chegs2).

Parameters
[in]ldbINTEGER The leading dimension of the array B. LDB >= max(1,N).
[out]infoINTEGER
  • = 0: successful exit
  • < 0: if INFO = -i, the i-th argument had an illegal value
magma_int_t magma_chegst_gpu ( magma_int_t  itype,
magma_uplo_t  uplo,
magma_int_t  n,
magmaFloatComplex_ptr  dA,
magma_int_t  ldda,
magmaFloatComplex_const_ptr  dB,
magma_int_t  lddb,
magma_int_t *  info 
)

CHEGST_GPU reduces a complex Hermitian-definite generalized eigenproblem to standard form.

If ITYPE = 1, the problem is A*x = lambda*B*x, and A is overwritten by inv(U^H)*A*inv(U) or inv(L)*A*inv(L^H)

If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or B*A*x = lambda*x, and A is overwritten by U*A*U^H or L^H*A*L.

B must have been previously factorized as U^H*U or L*L^H by CPOTRF.

Parameters
[in]itypeINTEGER = 1: compute inv(U^H)*A*inv(U) or inv(L)*A*inv(L^H); = 2 or 3: compute U*A*U^H or L^H*A*L.
[in]uplomagma_uplo_t
  • = MagmaUpper: Upper triangle of A is stored and B is factored as U^H*U;
  • = MagmaLower: Lower triangle of A is stored and B is factored as L*L^H.
[in]nINTEGER The order of the matrices A and B. N >= 0.
[in,out]dACOMPLEX array, on the GPU device, dimension (LDDA,N) On entry, the Hermitian matrix A. If UPLO = MagmaUpper, the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If UPLO = MagmaLower, the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.
On exit, if INFO = 0, the transformed matrix, stored in the same format as A.
[in]lddaINTEGER The leading dimension of the array A. LDDA >= max(1,N).
[in]dBCOMPLEX array, on the GPU device, dimension (LDDB,N) The triangular factor from the Cholesky factorization of B, as returned by CPOTRF.
[in]lddbINTEGER The leading dimension of the array B. LDDB >= max(1,N).
[out]infoINTEGER
  • = 0: successful exit
  • < 0: if INFO = -i, the i-th argument had an illegal value
magma_int_t magma_chegst_m ( magma_int_t  ngpu,
magma_int_t  itype,
magma_uplo_t  uplo,
magma_int_t  n,
magmaFloatComplex *  A,
magma_int_t  lda,
magmaFloatComplex *  B,
magma_int_t  ldb,
magma_int_t *  info 
)

CHEGST_M reduces a complex Hermitian-definite generalized eigenproblem to standard form.

If ITYPE = 1, the problem is A*x = lambda*B*x, and A is overwritten by inv(U**H)*A*inv(U) or inv(L)*A*inv(L**H)

If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or B*A*x = lambda*x, and A is overwritten by U*A*U**H or L**H*A*L.

B must have been previously factorized as U**H*U or L*L**H by CPOTRF.

Parameters
[in]ngpuINTEGER Number of GPUs to use. ngpu > 0.
[in]itypeINTEGER = 1: compute inv(U**H)*A*inv(U) or inv(L)*A*inv(L**H); = 2 or 3: compute U*A*U**H or L**H*A*L.
[in]uplomagma_uplo_t
  • = MagmaUpper: Upper triangle of A is stored and B is factored as U**H*U;
  • = MagmaLower: Lower triangle of A is stored and B is factored as L*L**H.
[in]nINTEGER The order of the matrices A and B. N >= 0.
[in,out]ACOMPLEX array, dimension (LDA,N) On entry, the Hermitian matrix A. If UPLO = MagmaUpper, the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If UPLO = MagmaLower, the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.
On exit, if INFO = 0, the transformed matrix, stored in the same format as A.
[in]ldaINTEGER The leading dimension of the array A. LDA >= max(1,N).
[in,out]BCOMPLEX array, dimension (LDB,N) The triangular factor from the Cholesky factorization of B, as returned by CPOTRF.

B is modified by the routine but restored on exit (in lapack chegst/chegs2).

Parameters
[in]ldbINTEGER The leading dimension of the array B. LDB >= max(1,N).
[out]infoINTEGER
  • = 0: successful exit
  • < 0: if INFO = -i, the i-th argument had an illegal value
magma_int_t magma_dsygst ( magma_int_t  itype,
magma_uplo_t  uplo,
magma_int_t  n,
double *  A,
magma_int_t  lda,
double *  B,
magma_int_t  ldb,
magma_int_t *  info 
)

DSYGST reduces a real symmetric-definite generalized eigenproblem to standard form.

If ITYPE = 1, the problem is A*x = lambda*B*x, and A is overwritten by inv(U^H)*A*inv(U) or inv(L)*A*inv(L^H)

If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or B*A*x = lambda*x, and A is overwritten by U*A*U^H or L^H*A*L.

B must have been previously factorized as U^H*U or L*L^H by DPOTRF.

Parameters
[in]itypeINTEGER = 1: compute inv(U^H)*A*inv(U) or inv(L)*A*inv(L^H); = 2 or 3: compute U*A*U^H or L^H*A*L.
[in]uplomagma_uplo_t
  • = MagmaUpper: Upper triangle of A is stored and B is factored as U^H*U;
  • = MagmaLower: Lower triangle of A is stored and B is factored as L*L^H.
[in]nINTEGER The order of the matrices A and B. N >= 0.
[in,out]ADOUBLE PRECISION array, dimension (LDA,N) On entry, the symmetric matrix A. If UPLO = MagmaUpper, the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If UPLO = MagmaLower, the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.
On exit, if INFO = 0, the transformed matrix, stored in the same format as A.
[in]ldaINTEGER The leading dimension of the array A. LDA >= max(1,N).
[in,out]BDOUBLE PRECISION array, dimension (LDB,N) The triangular factor from the Cholesky factorization of B, as returned by DPOTRF.

B is modified by the routine but restored on exit (in lapack dsygst/dsygs2).

Parameters
[in]ldbINTEGER The leading dimension of the array B. LDB >= max(1,N).
[out]infoINTEGER
  • = 0: successful exit
  • < 0: if INFO = -i, the i-th argument had an illegal value
magma_int_t magma_dsygst_gpu ( magma_int_t  itype,
magma_uplo_t  uplo,
magma_int_t  n,
magmaDouble_ptr  dA,
magma_int_t  ldda,
magmaDouble_const_ptr  dB,
magma_int_t  lddb,
magma_int_t *  info 
)

DSYGST_GPU reduces a real symmetric-definite generalized eigenproblem to standard form.

If ITYPE = 1, the problem is A*x = lambda*B*x, and A is overwritten by inv(U^H)*A*inv(U) or inv(L)*A*inv(L^H)

If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or B*A*x = lambda*x, and A is overwritten by U*A*U^H or L^H*A*L.

B must have been previously factorized as U^H*U or L*L^H by DPOTRF.

Parameters
[in]itypeINTEGER = 1: compute inv(U^H)*A*inv(U) or inv(L)*A*inv(L^H); = 2 or 3: compute U*A*U^H or L^H*A*L.
[in]uplomagma_uplo_t
  • = MagmaUpper: Upper triangle of A is stored and B is factored as U^H*U;
  • = MagmaLower: Lower triangle of A is stored and B is factored as L*L^H.
[in]nINTEGER The order of the matrices A and B. N >= 0.
[in,out]dADOUBLE PRECISION array, on the GPU device, dimension (LDDA,N) On entry, the symmetric matrix A. If UPLO = MagmaUpper, the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If UPLO = MagmaLower, the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.
On exit, if INFO = 0, the transformed matrix, stored in the same format as A.
[in]lddaINTEGER The leading dimension of the array A. LDDA >= max(1,N).
[in]dBDOUBLE PRECISION array, on the GPU device, dimension (LDDB,N) The triangular factor from the Cholesky factorization of B, as returned by DPOTRF.
[in]lddbINTEGER The leading dimension of the array B. LDDB >= max(1,N).
[out]infoINTEGER
  • = 0: successful exit
  • < 0: if INFO = -i, the i-th argument had an illegal value
magma_int_t magma_dsygst_m ( magma_int_t  ngpu,
magma_int_t  itype,
magma_uplo_t  uplo,
magma_int_t  n,
double *  A,
magma_int_t  lda,
double *  B,
magma_int_t  ldb,
magma_int_t *  info 
)

DSYGST_M reduces a real symmetric-definite generalized eigenproblem to standard form.

If ITYPE = 1, the problem is A*x = lambda*B*x, and A is overwritten by inv(U**H)*A*inv(U) or inv(L)*A*inv(L**H)

If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or B*A*x = lambda*x, and A is overwritten by U*A*U**H or L**H*A*L.

B must have been previously factorized as U**H*U or L*L**H by DPOTRF.

Parameters
[in]ngpuINTEGER Number of GPUs to use. ngpu > 0.
[in]itypeINTEGER = 1: compute inv(U**H)*A*inv(U) or inv(L)*A*inv(L**H); = 2 or 3: compute U*A*U**H or L**H*A*L.
[in]uplomagma_uplo_t
  • = MagmaUpper: Upper triangle of A is stored and B is factored as U**H*U;
  • = MagmaLower: Lower triangle of A is stored and B is factored as L*L**H.
[in]nINTEGER The order of the matrices A and B. N >= 0.
[in,out]ADOUBLE PRECISION array, dimension (LDA,N) On entry, the symmetric matrix A. If UPLO = MagmaUpper, the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If UPLO = MagmaLower, the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.
On exit, if INFO = 0, the transformed matrix, stored in the same format as A.
[in]ldaINTEGER The leading dimension of the array A. LDA >= max(1,N).
[in,out]BDOUBLE PRECISION array, dimension (LDB,N) The triangular factor from the Cholesky factorization of B, as returned by DPOTRF.

B is modified by the routine but restored on exit (in lapack dsygst/dsygs2).

Parameters
[in]ldbINTEGER The leading dimension of the array B. LDB >= max(1,N).
[out]infoINTEGER
  • = 0: successful exit
  • < 0: if INFO = -i, the i-th argument had an illegal value
magma_int_t magma_ssygst ( magma_int_t  itype,
magma_uplo_t  uplo,
magma_int_t  n,
float *  A,
magma_int_t  lda,
float *  B,
magma_int_t  ldb,
magma_int_t *  info 
)

SSYGST reduces a real symmetric-definite generalized eigenproblem to standard form.

If ITYPE = 1, the problem is A*x = lambda*B*x, and A is overwritten by inv(U^H)*A*inv(U) or inv(L)*A*inv(L^H)

If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or B*A*x = lambda*x, and A is overwritten by U*A*U^H or L^H*A*L.

B must have been previously factorized as U^H*U or L*L^H by SPOTRF.

Parameters
[in]itypeINTEGER = 1: compute inv(U^H)*A*inv(U) or inv(L)*A*inv(L^H); = 2 or 3: compute U*A*U^H or L^H*A*L.
[in]uplomagma_uplo_t
  • = MagmaUpper: Upper triangle of A is stored and B is factored as U^H*U;
  • = MagmaLower: Lower triangle of A is stored and B is factored as L*L^H.
[in]nINTEGER The order of the matrices A and B. N >= 0.
[in,out]AREAL array, dimension (LDA,N) On entry, the symmetric matrix A. If UPLO = MagmaUpper, the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If UPLO = MagmaLower, the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.
On exit, if INFO = 0, the transformed matrix, stored in the same format as A.
[in]ldaINTEGER The leading dimension of the array A. LDA >= max(1,N).
[in,out]BREAL array, dimension (LDB,N) The triangular factor from the Cholesky factorization of B, as returned by SPOTRF.

B is modified by the routine but restored on exit (in lapack ssygst/ssygs2).

Parameters
[in]ldbINTEGER The leading dimension of the array B. LDB >= max(1,N).
[out]infoINTEGER
  • = 0: successful exit
  • < 0: if INFO = -i, the i-th argument had an illegal value
magma_int_t magma_ssygst_gpu ( magma_int_t  itype,
magma_uplo_t  uplo,
magma_int_t  n,
magmaFloat_ptr  dA,
magma_int_t  ldda,
magmaFloat_const_ptr  dB,
magma_int_t  lddb,
magma_int_t *  info 
)

SSYGST_GPU reduces a real symmetric-definite generalized eigenproblem to standard form.

If ITYPE = 1, the problem is A*x = lambda*B*x, and A is overwritten by inv(U^H)*A*inv(U) or inv(L)*A*inv(L^H)

If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or B*A*x = lambda*x, and A is overwritten by U*A*U^H or L^H*A*L.

B must have been previously factorized as U^H*U or L*L^H by SPOTRF.

Parameters
[in]itypeINTEGER = 1: compute inv(U^H)*A*inv(U) or inv(L)*A*inv(L^H); = 2 or 3: compute U*A*U^H or L^H*A*L.
[in]uplomagma_uplo_t
  • = MagmaUpper: Upper triangle of A is stored and B is factored as U^H*U;
  • = MagmaLower: Lower triangle of A is stored and B is factored as L*L^H.
[in]nINTEGER The order of the matrices A and B. N >= 0.
[in,out]dAREAL array, on the GPU device, dimension (LDDA,N) On entry, the symmetric matrix A. If UPLO = MagmaUpper, the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If UPLO = MagmaLower, the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.
On exit, if INFO = 0, the transformed matrix, stored in the same format as A.
[in]lddaINTEGER The leading dimension of the array A. LDDA >= max(1,N).
[in]dBREAL array, on the GPU device, dimension (LDDB,N) The triangular factor from the Cholesky factorization of B, as returned by SPOTRF.
[in]lddbINTEGER The leading dimension of the array B. LDDB >= max(1,N).
[out]infoINTEGER
  • = 0: successful exit
  • < 0: if INFO = -i, the i-th argument had an illegal value
magma_int_t magma_ssygst_m ( magma_int_t  ngpu,
magma_int_t  itype,
magma_uplo_t  uplo,
magma_int_t  n,
float *  A,
magma_int_t  lda,
float *  B,
magma_int_t  ldb,
magma_int_t *  info 
)

SSYGST_M reduces a real symmetric-definite generalized eigenproblem to standard form.

If ITYPE = 1, the problem is A*x = lambda*B*x, and A is overwritten by inv(U**H)*A*inv(U) or inv(L)*A*inv(L**H)

If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or B*A*x = lambda*x, and A is overwritten by U*A*U**H or L**H*A*L.

B must have been previously factorized as U**H*U or L*L**H by SPOTRF.

Parameters
[in]ngpuINTEGER Number of GPUs to use. ngpu > 0.
[in]itypeINTEGER = 1: compute inv(U**H)*A*inv(U) or inv(L)*A*inv(L**H); = 2 or 3: compute U*A*U**H or L**H*A*L.
[in]uplomagma_uplo_t
  • = MagmaUpper: Upper triangle of A is stored and B is factored as U**H*U;
  • = MagmaLower: Lower triangle of A is stored and B is factored as L*L**H.
[in]nINTEGER The order of the matrices A and B. N >= 0.
[in,out]AREAL array, dimension (LDA,N) On entry, the symmetric matrix A. If UPLO = MagmaUpper, the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If UPLO = MagmaLower, the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.
On exit, if INFO = 0, the transformed matrix, stored in the same format as A.
[in]ldaINTEGER The leading dimension of the array A. LDA >= max(1,N).
[in,out]BREAL array, dimension (LDB,N) The triangular factor from the Cholesky factorization of B, as returned by SPOTRF.

B is modified by the routine but restored on exit (in lapack ssygst/ssygs2).

Parameters
[in]ldbINTEGER The leading dimension of the array B. LDB >= max(1,N).
[out]infoINTEGER
  • = 0: successful exit
  • < 0: if INFO = -i, the i-th argument had an illegal value
magma_int_t magma_zhegst ( magma_int_t  itype,
magma_uplo_t  uplo,
magma_int_t  n,
magmaDoubleComplex *  A,
magma_int_t  lda,
magmaDoubleComplex *  B,
magma_int_t  ldb,
magma_int_t *  info 
)

ZHEGST reduces a complex Hermitian-definite generalized eigenproblem to standard form.

If ITYPE = 1, the problem is A*x = lambda*B*x, and A is overwritten by inv(U^H)*A*inv(U) or inv(L)*A*inv(L^H)

If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or B*A*x = lambda*x, and A is overwritten by U*A*U^H or L^H*A*L.

B must have been previously factorized as U^H*U or L*L^H by ZPOTRF.

Parameters
[in]itypeINTEGER = 1: compute inv(U^H)*A*inv(U) or inv(L)*A*inv(L^H); = 2 or 3: compute U*A*U^H or L^H*A*L.
[in]uplomagma_uplo_t
  • = MagmaUpper: Upper triangle of A is stored and B is factored as U^H*U;
  • = MagmaLower: Lower triangle of A is stored and B is factored as L*L^H.
[in]nINTEGER The order of the matrices A and B. N >= 0.
[in,out]ACOMPLEX_16 array, dimension (LDA,N) On entry, the Hermitian matrix A. If UPLO = MagmaUpper, the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If UPLO = MagmaLower, the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.
On exit, if INFO = 0, the transformed matrix, stored in the same format as A.
[in]ldaINTEGER The leading dimension of the array A. LDA >= max(1,N).
[in,out]BCOMPLEX_16 array, dimension (LDB,N) The triangular factor from the Cholesky factorization of B, as returned by ZPOTRF.

B is modified by the routine but restored on exit (in lapack zhegst/zhegs2).

Parameters
[in]ldbINTEGER The leading dimension of the array B. LDB >= max(1,N).
[out]infoINTEGER
  • = 0: successful exit
  • < 0: if INFO = -i, the i-th argument had an illegal value
magma_int_t magma_zhegst_gpu ( magma_int_t  itype,
magma_uplo_t  uplo,
magma_int_t  n,
magmaDoubleComplex_ptr  dA,
magma_int_t  ldda,
magmaDoubleComplex_const_ptr  dB,
magma_int_t  lddb,
magma_int_t *  info 
)

ZHEGST_GPU reduces a complex Hermitian-definite generalized eigenproblem to standard form.

If ITYPE = 1, the problem is A*x = lambda*B*x, and A is overwritten by inv(U^H)*A*inv(U) or inv(L)*A*inv(L^H)

If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or B*A*x = lambda*x, and A is overwritten by U*A*U^H or L^H*A*L.

B must have been previously factorized as U^H*U or L*L^H by ZPOTRF.

Parameters
[in]itypeINTEGER = 1: compute inv(U^H)*A*inv(U) or inv(L)*A*inv(L^H); = 2 or 3: compute U*A*U^H or L^H*A*L.
[in]uplomagma_uplo_t
  • = MagmaUpper: Upper triangle of A is stored and B is factored as U^H*U;
  • = MagmaLower: Lower triangle of A is stored and B is factored as L*L^H.
[in]nINTEGER The order of the matrices A and B. N >= 0.
[in,out]dACOMPLEX_16 array, on the GPU device, dimension (LDDA,N) On entry, the Hermitian matrix A. If UPLO = MagmaUpper, the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If UPLO = MagmaLower, the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.
On exit, if INFO = 0, the transformed matrix, stored in the same format as A.
[in]lddaINTEGER The leading dimension of the array A. LDDA >= max(1,N).
[in]dBCOMPLEX_16 array, on the GPU device, dimension (LDDB,N) The triangular factor from the Cholesky factorization of B, as returned by ZPOTRF.
[in]lddbINTEGER The leading dimension of the array B. LDDB >= max(1,N).
[out]infoINTEGER
  • = 0: successful exit
  • < 0: if INFO = -i, the i-th argument had an illegal value
magma_int_t magma_zhegst_m ( magma_int_t  ngpu,
magma_int_t  itype,
magma_uplo_t  uplo,
magma_int_t  n,
magmaDoubleComplex *  A,
magma_int_t  lda,
magmaDoubleComplex *  B,
magma_int_t  ldb,
magma_int_t *  info 
)

ZHEGST_M reduces a complex Hermitian-definite generalized eigenproblem to standard form.

If ITYPE = 1, the problem is A*x = lambda*B*x, and A is overwritten by inv(U**H)*A*inv(U) or inv(L)*A*inv(L**H)

If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or B*A*x = lambda*x, and A is overwritten by U*A*U**H or L**H*A*L.

B must have been previously factorized as U**H*U or L*L**H by ZPOTRF.

Parameters
[in]ngpuINTEGER Number of GPUs to use. ngpu > 0.
[in]itypeINTEGER = 1: compute inv(U**H)*A*inv(U) or inv(L)*A*inv(L**H); = 2 or 3: compute U*A*U**H or L**H*A*L.
[in]uplomagma_uplo_t
  • = MagmaUpper: Upper triangle of A is stored and B is factored as U**H*U;
  • = MagmaLower: Lower triangle of A is stored and B is factored as L*L**H.
[in]nINTEGER The order of the matrices A and B. N >= 0.
[in,out]ACOMPLEX_16 array, dimension (LDA,N) On entry, the Hermitian matrix A. If UPLO = MagmaUpper, the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If UPLO = MagmaLower, the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.
On exit, if INFO = 0, the transformed matrix, stored in the same format as A.
[in]ldaINTEGER The leading dimension of the array A. LDA >= max(1,N).
[in,out]BCOMPLEX_16 array, dimension (LDB,N) The triangular factor from the Cholesky factorization of B, as returned by ZPOTRF.

B is modified by the routine but restored on exit (in lapack zhegst/zhegs2).

Parameters
[in]ldbINTEGER The leading dimension of the array B. LDB >= max(1,N).
[out]infoINTEGER
  • = 0: successful exit
  • < 0: if INFO = -i, the i-th argument had an illegal value