Loading...
Searching...
No Matches

## slaeda()

subroutine slaeda | ( | integer | n,
|  | integer | tlvls,
|  | integer | curlvl,
|  | integer | curpbm,
|  | integer, dimension( * ) | prmptr,
|  | integer, dimension( * ) | perm,
|  | integer, dimension( * ) | givptr,
|  | integer, dimension( 2, * ) | givcol,
|  | real, dimension( 2, * ) | givnum,
|  | real, dimension( * ) | q,
|  | integer, dimension( * ) | qptr,
|  | real, dimension( * ) | z,
|  | real, dimension( * ) | ztemp,
|  | integer | info )

SLAEDA used by SSTEDC. Computes the Z vector determining the rank-one modification of the diagonal matrix. Used when the original matrix is dense.

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

Purpose:

      !>
      !> SLAEDA computes the Z vector corresponding to the merge step in the
      !> CURLVLth step of the merge process with TLVLS steps for the CURPBMth
      !> problem.
      !>

Parameters

  [in]

  N

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

  [in]

  TLVLS

      !>          TLVLS is INTEGER
      !>         The total number of merging levels in the overall divide and
      !>         conquer tree.
      !>

  [in]

  CURLVL

      !>          CURLVL is INTEGER
      !>         The current level in the overall merge routine,
      !>         0 <= curlvl <= tlvls.
      !>

  [in]

  CURPBM

      !>          CURPBM is INTEGER
      !>         The current problem in the current level in the overall
      !>         merge routine (counting from upper left to lower right).
      !>

  [in]

  PRMPTR

      !>          PRMPTR is INTEGER array, dimension (N lg N)
      !>         Contains a list of pointers which indicate where in PERM a
      !>         level's permutation is stored.  PRMPTR(i+1) - PRMPTR(i)
      !>         indicates the size of the permutation and incidentally the
      !>         size of the full, non-deflated problem.
      !>

  [in]

  PERM

      !>          PERM is INTEGER array, dimension (N lg N)
      !>         Contains the permutations (from deflation and sorting) to be
      !>         applied to each eigenblock.
      !>

  [in]

  GIVPTR

      !>          GIVPTR is INTEGER array, dimension (N lg N)
      !>         Contains a list of pointers which indicate where in GIVCOL a
      !>         level's Givens rotations are stored.  GIVPTR(i+1) - GIVPTR(i)
      !>         indicates the number of Givens rotations.
      !>

  [in]

  GIVCOL

      !>          GIVCOL is INTEGER array, dimension (2, N lg N)
      !>         Each pair of numbers indicates a pair of columns to take place
      !>         in a Givens rotation.
      !>

  [in]

  GIVNUM

      !>          GIVNUM is REAL array, dimension (2, N lg N)
      !>         Each number indicates the S value to be used in the
      !>         corresponding Givens rotation.
      !>

  [in]

  Q

      !>          Q is REAL array, dimension (N**2)
      !>         Contains the square eigenblocks from previous levels, the
      !>         starting positions for blocks are given by QPTR.
      !>

  [in]

  QPTR

      !>          QPTR is INTEGER array, dimension (N+2)
      !>         Contains a list of pointers which indicate where in Q an
      !>         eigenblock is stored.  SQRT( QPTR(i+1) - QPTR(i) ) indicates
      !>         the size of the block.
      !>

  [out]

  Z

      !>          Z is REAL array, dimension (N)
      !>         On output this vector contains the updating vector (the last
      !>         row of the first sub-eigenvector matrix and the first row of
      !>         the second sub-eigenvector matrix).
      !>

  [out]

  ZTEMP

      !>          ZTEMP is REAL array, dimension (N)
      !>

  [out]

  INFO

      !>          INFO is INTEGER
      !>          = 0:  successful exit.
      !>          < 0:  if INFO = -i, the i-th argument had an illegal value.
      !>

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