MAGMA  2.3.0 Matrix Algebra for GPU and Multicore Architectures
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. More...

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. More...

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. More...

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. More...

## Function Documentation

 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] n INTEGER The dimension of the symmetric tridiagonal matrix. N >= 0. [in,out] d DOUBLE PRECISION array, dimension (N) On entry, the main diagonal of the tridiagonal matrix. On exit, its eigenvalues. [in] e DOUBLE PRECISION array, dimension (N-1) The off-diagonal elements of the tridiagonal matrix. On exit, E has been destroyed. [in,out] Q DOUBLE PRECISION array, dimension (LDQ, N) On entry, Q will be the identity matrix. On exit, Q contains the eigenvectors of the tridiagonal matrix. [in] ldq INTEGER 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] range magma_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] vl DOUBLE PRECISION [in] vu DOUBLE 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] il INTEGER [in] iu INTEGER 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] info INTEGER = 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_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] ngpu INTEGER Number of GPUs to use. ngpu > 0. [in] n INTEGER The dimension of the symmetric tridiagonal matrix. N >= 0. [in,out] d DOUBLE PRECISION array, dimension (N) On entry, the main diagonal of the tridiagonal matrix. On exit, its eigenvalues. [in] e DOUBLE PRECISION array, dimension (N-1) The off-diagonal elements of the tridiagonal matrix. On exit, E has been destroyed. [in,out] Q DOUBLE PRECISION array, dimension (LDQ, N) On entry, Q will be the identity matrix. On exit, Q contains the eigenvectors of the tridiagonal matrix. [in] ldq INTEGER 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] range magma_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] vl DOUBLE PRECISION [in] vu DOUBLE 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] il INTEGER [in] iu INTEGER 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] info INTEGER = 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_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] n INTEGER The dimension of the symmetric tridiagonal matrix. N >= 0. [in,out] d REAL array, dimension (N) On entry, the main diagonal of the tridiagonal matrix. On exit, its eigenvalues. [in] e REAL array, dimension (N-1) The off-diagonal elements of the tridiagonal matrix. On exit, E has been destroyed. [in,out] Q REAL array, dimension (LDQ, N) On entry, Q will be the identity matrix. On exit, Q contains the eigenvectors of the tridiagonal matrix. [in] ldq INTEGER 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] range magma_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] vl REAL [in] vu REAL 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] il INTEGER [in] iu INTEGER 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] info INTEGER = 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_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] ngpu INTEGER Number of GPUs to use. ngpu > 0. [in] n INTEGER The dimension of the symmetric tridiagonal matrix. N >= 0. [in,out] d REAL array, dimension (N) On entry, the main diagonal of the tridiagonal matrix. On exit, its eigenvalues. [in] e REAL array, dimension (N-1) The off-diagonal elements of the tridiagonal matrix. On exit, E has been destroyed. [in,out] Q REAL array, dimension (LDQ, N) On entry, Q will be the identity matrix. On exit, Q contains the eigenvectors of the tridiagonal matrix. [in] ldq INTEGER 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] range magma_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] vl REAL [in] vu REAL 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] il INTEGER [in] iu INTEGER 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] info INTEGER = 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