Loading...
Searching...
No Matches

## slaed0()

subroutine slaed0 | ( | integer | icompq,
|  | integer | qsiz,
|  | integer | n,
|  | real, dimension( * ) | d,
|  | real, dimension( * ) | e,
|  | real, dimension( ldq, * ) | q,
|  | integer | ldq,
|  | real, dimension( ldqs, * ) | qstore,
|  | integer | ldqs,
|  | real, dimension( * ) | work,
|  | integer, dimension( * ) | iwork,
|  | integer | info )

SLAED0 used by SSTEDC. Computes all eigenvalues and corresponding eigenvectors of an unreduced symmetric tridiagonal matrix using the divide and conquer method.

Download SLAED0 + dependencies [TGZ] [ZIP] [TXT]

Purpose:

      !>
      !> SLAED0 computes all eigenvalues and corresponding eigenvectors of a
      !> symmetric tridiagonal matrix using the divide and conquer method.
      !>

Parameters

  [in]

  ICOMPQ

      !>          ICOMPQ is INTEGER
      !>          = 0:  Compute eigenvalues only.
      !>          = 1:  Compute eigenvectors of original dense symmetric matrix
      !>                also.  On entry, Q contains the orthogonal matrix used
      !>                to reduce the original matrix to tridiagonal form.
      !>          = 2:  Compute eigenvalues and eigenvectors of tridiagonal
      !>                matrix.
      !>

  [in]

  QSIZ

      !>          QSIZ is INTEGER
      !>         The dimension of the orthogonal matrix used to reduce
      !>         the full matrix to tridiagonal form.  QSIZ >= N if ICOMPQ = 1.
      !>

  [in]

  N

      !>          N is INTEGER
      !>         The dimension of the symmetric tridiagonal matrix.  N >= 0.
      !>

  [in,out]

  D

      !>          D is REAL array, dimension (N)
      !>         On entry, the main diagonal of the tridiagonal matrix.
      !>         On exit, its eigenvalues.
      !>

  [in]

  E

      !>          E is REAL array, dimension (N-1)
      !>         The off-diagonal elements of the tridiagonal matrix.
      !>         On exit, E has been destroyed.
      !>

  [in,out]

  Q

      !>          Q is REAL array, dimension (LDQ, N)
      !>         On entry, Q must contain an N-by-N orthogonal matrix.
      !>         If ICOMPQ = 0    Q is not referenced.
      !>         If ICOMPQ = 1    On entry, Q is a subset of the columns of the
      !>                          orthogonal matrix used to reduce the full
      !>                          matrix to tridiagonal form corresponding to
      !>                          the subset of the full matrix which is being
      !>                          decomposed at this time.
      !>         If ICOMPQ = 2    On entry, Q will be the identity matrix.
      !>                          On exit, Q contains the eigenvectors of the
      !>                          tridiagonal matrix.
      !>

  [in]

  LDQ

      !>          LDQ is INTEGER
      !>         The leading dimension of the array Q.  If eigenvectors are
      !>         desired, then  LDQ >= max(1,N).  In any case,  LDQ >= 1.
      !>

  [out]

  QSTORE

      !>          QSTORE is REAL array, dimension (LDQS, N)
      !>         Referenced only when ICOMPQ = 1.  Used to store parts of
      !>         the eigenvector matrix when the updating matrix multiplies
      !>         take place.
      !>

  [in]

  LDQS

      !>          LDQS is INTEGER
      !>         The leading dimension of the array QSTORE.  If ICOMPQ = 1,
      !>         then  LDQS >= max(1,N).  In any case,  LDQS >= 1.
      !>

  [out]

  WORK

      !>          WORK is REAL array,
      !>         If ICOMPQ = 0 or 1, the dimension of WORK must be at least
      !>                     1 + 3*N + 2*N*lg N + 3*N**2
      !>                     ( lg( N ) = smallest integer k
      !>                                 such that 2^k >= N )
      !>         If ICOMPQ = 2, the dimension of WORK must be at least
      !>                     4*N + N**2.
      !>

  [out]

  IWORK

      !>          IWORK is INTEGER array,
      !>         If ICOMPQ = 0 or 1, the dimension of IWORK must be at least
      !>                        6 + 6*N + 5*N*lg N.
      !>                        ( lg( N ) = smallest integer k
      !>                                    such that 2^k >= N )
      !>         If ICOMPQ = 2, the dimension of IWORK must be at least
      !>                        3 + 5*N.
      !>

  [out]

  INFO

      !>          INFO is 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).
      !>

Author
  Univ. of Tennessee
  Univ. of California Berkeley
  Univ. of Colorado Denver
  NAG Ltd.

Contributors:
  Jeff Rutter, Computer Science Division, University of California at Berkeley, USA