Loading...
Searching...
No Matches
laex0: Eigenvalues & vectors of tridiagonal using D&C
Dense LA » Eigenvalues » Symmetric/Hermitian eigenvalues » Auxiliary routines

## 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] | 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_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] | 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_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] | 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_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] | 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