MAGMA 2.9.0
Matrix Algebra for GPU and Multicore Architectures
Loading...
Searching...
No Matches
laex0: Eigenvalues & vectors of tridiagonal using D&C

Functions

magma_int_t magma_dlaex0 (magma_int_t n, double *d, double *e, double *Q, magma_int_t ldq, double *work, magma_int_t *iwork, magmaDouble_ptr dwork, magma_range_t range, double vl, double vu, magma_int_t il, magma_int_t iu, magma_int_t *info)
 DLAEX0 computes all eigenvalues and the choosen eigenvectors of a symmetric tridiagonal matrix using the divide and conquer method.
 
magma_int_t magma_dlaex0_m (magma_int_t ngpu, magma_int_t n, double *d, double *e, double *Q, magma_int_t ldq, double *work, magma_int_t *iwork, magma_range_t range, double vl, double vu, magma_int_t il, magma_int_t iu, magma_int_t *info)
 DLAEX0 computes all eigenvalues and the choosen eigenvectors of a symmetric tridiagonal matrix using the divide and conquer method.
 
magma_int_t magma_slaex0 (magma_int_t n, float *d, float *e, float *Q, magma_int_t ldq, float *work, magma_int_t *iwork, magmaFloat_ptr dwork, magma_range_t range, float vl, float vu, magma_int_t il, magma_int_t iu, magma_int_t *info)
 SLAEX0 computes all eigenvalues and the choosen eigenvectors of a symmetric tridiagonal matrix using the divide and conquer method.
 
magma_int_t magma_slaex0_m (magma_int_t ngpu, magma_int_t n, float *d, float *e, float *Q, magma_int_t ldq, float *work, magma_int_t *iwork, magma_range_t range, float vl, float vu, magma_int_t il, magma_int_t iu, magma_int_t *info)
 SLAEX0 computes all eigenvalues and the choosen eigenvectors of a symmetric tridiagonal matrix using the divide and conquer method.
 

Detailed Description

Function Documentation

◆ magma_dlaex0()

magma_int_t magma_dlaex0 ( magma_int_t n,
double * d,
double * e,
double * Q,
magma_int_t ldq,
double * work,
magma_int_t * iwork,
magmaDouble_ptr dwork,
magma_range_t range,
double vl,
double vu,
magma_int_t il,
magma_int_t iu,
magma_int_t * info )

DLAEX0 computes all eigenvalues and the choosen eigenvectors of a symmetric tridiagonal matrix using the divide and conquer method.

Parameters
[in]nINTEGER The dimension of the symmetric tridiagonal matrix. N >= 0.
[in,out]dDOUBLE PRECISION array, dimension (N) On entry, the main diagonal of the tridiagonal matrix. On exit, its eigenvalues.
[in]eDOUBLE PRECISION array, dimension (N-1) The off-diagonal elements of the tridiagonal matrix. On exit, E has been destroyed.
[in,out]QDOUBLE PRECISION array, dimension (LDQ, N) On entry, Q will be the identity matrix. On exit, Q contains the eigenvectors of the tridiagonal matrix.
[in]ldqINTEGER The leading dimension of the array Q. If eigenvectors are desired, then LDQ >= max(1,N). In any case, LDQ >= 1.
work(workspace) DOUBLE PRECISION array, the dimension of WORK >= 4*N + N**2.
iwork(workspace) INTEGER array, the dimension of IWORK >= 3 + 5*N.
dwork(workspace) DOUBLE PRECISION array, dimension (3*N*N/2+3*N)
[in]rangemagma_range_t
  • = MagmaRangeAll: all eigenvalues will be found.
  • = MagmaRangeV: all eigenvalues in the half-open interval (VL,VU] will be found.
  • = MagmaRangeI: the IL-th through IU-th eigenvalues will be found.
[in]vlDOUBLE PRECISION
[in]vuDOUBLE PRECISION If RANGE=MagmaRangeV, the lower and upper bounds of the interval to be searched for eigenvalues. VL < VU. Not referenced if RANGE = MagmaRangeAll or MagmaRangeI.
[in]ilINTEGER
[in]iuINTEGER If RANGE=MagmaRangeI, the indices (in ascending order) of the smallest and largest eigenvalues to be returned. 1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0. Not referenced if RANGE = MagmaRangeAll or MagmaRangeV.
[out]infoINTEGER
  • = 0: successful exit.
  • < 0: if INFO = -i, the i-th argument had an illegal value.
  • > 0: The algorithm failed to compute an eigenvalue while working on the submatrix lying in rows and columns INFO/(N+1) through mod(INFO,N+1).

Further Details

Based on contributions by Jeff Rutter, Computer Science Division, University of California at Berkeley, USA

◆ magma_dlaex0_m()

magma_int_t magma_dlaex0_m ( magma_int_t ngpu,
magma_int_t n,
double * d,
double * e,
double * Q,
magma_int_t ldq,
double * work,
magma_int_t * iwork,
magma_range_t range,
double vl,
double vu,
magma_int_t il,
magma_int_t iu,
magma_int_t * info )

DLAEX0 computes all eigenvalues and the choosen eigenvectors of a symmetric tridiagonal matrix using the divide and conquer method.

Parameters
[in]ngpuINTEGER Number of GPUs to use. ngpu > 0.
[in]nINTEGER The dimension of the symmetric tridiagonal matrix. N >= 0.
[in,out]dDOUBLE PRECISION array, dimension (N) On entry, the main diagonal of the tridiagonal matrix. On exit, its eigenvalues.
[in]eDOUBLE PRECISION array, dimension (N-1) The off-diagonal elements of the tridiagonal matrix. On exit, E has been destroyed.
[in,out]QDOUBLE PRECISION array, dimension (LDQ, N) On entry, Q will be the identity matrix. On exit, Q contains the eigenvectors of the tridiagonal matrix.
[in]ldqINTEGER The leading dimension of the array Q. If eigenvectors are desired, then LDQ >= max(1,N). In any case, LDQ >= 1.
work(workspace) DOUBLE PRECISION array, the dimension of WORK >= 4*N + N**2.
iwork(workspace) INTEGER array, the dimension of IWORK >= 3 + 5*N.
[in]rangemagma_range_t
  • = MagmaRangeAll: all eigenvalues will be found.
  • = MagmaRangeV: all eigenvalues in the half-open interval (VL,VU] will be found.
  • = MagmaRangeI: the IL-th through IU-th eigenvalues will be found.
[in]vlDOUBLE PRECISION
[in]vuDOUBLE PRECISION If RANGE=MagmaRangeV, the lower and upper bounds of the interval to be searched for eigenvalues. VL < VU. Not referenced if RANGE = MagmaRangeAll or MagmaRangeI.
[in]ilINTEGER
[in]iuINTEGER If RANGE=MagmaRangeI, the indices (in ascending order) of the smallest and largest eigenvalues to be returned. 1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0. Not referenced if RANGE = MagmaRangeAll or MagmaRangeV.
[out]infoINTEGER
  • = 0: successful exit.
  • < 0: if INFO = -i, the i-th argument had an illegal value.
  • > 0: The algorithm failed to compute an eigenvalue while working on the submatrix lying in rows and columns INFO/(N+1) through mod(INFO,N+1).

Further Details

Based on contributions by Jeff Rutter, Computer Science Division, University of California at Berkeley, USA

◆ magma_slaex0()

magma_int_t magma_slaex0 ( magma_int_t n,
float * d,
float * e,
float * Q,
magma_int_t ldq,
float * work,
magma_int_t * iwork,
magmaFloat_ptr dwork,
magma_range_t range,
float vl,
float vu,
magma_int_t il,
magma_int_t iu,
magma_int_t * info )

SLAEX0 computes all eigenvalues and the choosen eigenvectors of a symmetric tridiagonal matrix using the divide and conquer method.

Parameters
[in]nINTEGER The dimension of the symmetric tridiagonal matrix. N >= 0.
[in,out]dREAL array, dimension (N) On entry, the main diagonal of the tridiagonal matrix. On exit, its eigenvalues.
[in]eREAL array, dimension (N-1) The off-diagonal elements of the tridiagonal matrix. On exit, E has been destroyed.
[in,out]QREAL array, dimension (LDQ, N) On entry, Q will be the identity matrix. On exit, Q contains the eigenvectors of the tridiagonal matrix.
[in]ldqINTEGER The leading dimension of the array Q. If eigenvectors are desired, then LDQ >= max(1,N). In any case, LDQ >= 1.
work(workspace) REAL array, the dimension of WORK >= 4*N + N**2.
iwork(workspace) INTEGER array, the dimension of IWORK >= 3 + 5*N.
dwork(workspace) REAL array, dimension (3*N*N/2+3*N)
[in]rangemagma_range_t
  • = MagmaRangeAll: all eigenvalues will be found.
  • = MagmaRangeV: all eigenvalues in the half-open interval (VL,VU] will be found.
  • = MagmaRangeI: the IL-th through IU-th eigenvalues will be found.
[in]vlREAL
[in]vuREAL If RANGE=MagmaRangeV, the lower and upper bounds of the interval to be searched for eigenvalues. VL < VU. Not referenced if RANGE = MagmaRangeAll or MagmaRangeI.
[in]ilINTEGER
[in]iuINTEGER If RANGE=MagmaRangeI, the indices (in ascending order) of the smallest and largest eigenvalues to be returned. 1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0. Not referenced if RANGE = MagmaRangeAll or MagmaRangeV.
[out]infoINTEGER
  • = 0: successful exit.
  • < 0: if INFO = -i, the i-th argument had an illegal value.
  • > 0: The algorithm failed to compute an eigenvalue while working on the submatrix lying in rows and columns INFO/(N+1) through mod(INFO,N+1).

Further Details

Based on contributions by Jeff Rutter, Computer Science Division, University of California at Berkeley, USA

◆ magma_slaex0_m()

magma_int_t magma_slaex0_m ( magma_int_t ngpu,
magma_int_t n,
float * d,
float * e,
float * Q,
magma_int_t ldq,
float * work,
magma_int_t * iwork,
magma_range_t range,
float vl,
float vu,
magma_int_t il,
magma_int_t iu,
magma_int_t * info )

SLAEX0 computes all eigenvalues and the choosen eigenvectors of a symmetric tridiagonal matrix using the divide and conquer method.

Parameters
[in]ngpuINTEGER Number of GPUs to use. ngpu > 0.
[in]nINTEGER The dimension of the symmetric tridiagonal matrix. N >= 0.
[in,out]dREAL array, dimension (N) On entry, the main diagonal of the tridiagonal matrix. On exit, its eigenvalues.
[in]eREAL array, dimension (N-1) The off-diagonal elements of the tridiagonal matrix. On exit, E has been destroyed.
[in,out]QREAL array, dimension (LDQ, N) On entry, Q will be the identity matrix. On exit, Q contains the eigenvectors of the tridiagonal matrix.
[in]ldqINTEGER The leading dimension of the array Q. If eigenvectors are desired, then LDQ >= max(1,N). In any case, LDQ >= 1.
work(workspace) REAL array, the dimension of WORK >= 4*N + N**2.
iwork(workspace) INTEGER array, the dimension of IWORK >= 3 + 5*N.
[in]rangemagma_range_t
  • = MagmaRangeAll: all eigenvalues will be found.
  • = MagmaRangeV: all eigenvalues in the half-open interval (VL,VU] will be found.
  • = MagmaRangeI: the IL-th through IU-th eigenvalues will be found.
[in]vlREAL
[in]vuREAL If RANGE=MagmaRangeV, the lower and upper bounds of the interval to be searched for eigenvalues. VL < VU. Not referenced if RANGE = MagmaRangeAll or MagmaRangeI.
[in]ilINTEGER
[in]iuINTEGER If RANGE=MagmaRangeI, the indices (in ascending order) of the smallest and largest eigenvalues to be returned. 1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0. Not referenced if RANGE = MagmaRangeAll or MagmaRangeV.
[out]infoINTEGER
  • = 0: successful exit.
  • < 0: if INFO = -i, the i-th argument had an illegal value.
  • > 0: The algorithm failed to compute an eigenvalue while working on the submatrix lying in rows and columns INFO/(N+1) through mod(INFO,N+1).

Further Details

Based on contributions by Jeff Rutter, Computer Science Division, University of California at Berkeley, USA