# laeda - Man Page

laeda: D&C step: z vector

## Synopsis

### Functions

subroutine **dlaeda** (n, tlvls, curlvl, curpbm, prmptr, perm, givptr, givcol, givnum, q, qptr, z, ztemp, info)**DLAEDA** used by DSTEDC. Computes the Z vector determining the rank-one modification of the diagonal matrix. Used when the original matrix is dense.

subroutine **slaeda** (n, tlvls, curlvl, curpbm, prmptr, perm, givptr, givcol, givnum, q, qptr, z, ztemp, 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.

## Detailed Description

## Function Documentation

### subroutine dlaeda (integer n, integer tlvls, integer curlvl, integer curpbm, integer, dimension( * ) prmptr, integer, dimension( * ) perm, integer, dimension( * ) givptr, integer, dimension( 2, * ) givcol, double precision, dimension( 2, * ) givnum, double precision, dimension( * ) q, integer, dimension( * ) qptr, double precision, dimension( * ) z, double precision, dimension( * ) ztemp, integer info)

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

**Purpose:**

DLAEDA 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***N*N is INTEGER The dimension of the symmetric tridiagonal matrix. N >= 0.

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

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

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

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

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

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

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

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

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

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

*Z*Z is DOUBLE PRECISION 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).

*ZTEMP*ZTEMP is DOUBLE PRECISION array, dimension (N)

*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

Definition at line **164** of file **dlaeda.f**.

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

**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***N*N is INTEGER The dimension of the symmetric tridiagonal matrix. N >= 0.

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

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

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

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

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

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

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

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

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

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

*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).

*ZTEMP*ZTEMP is REAL array, dimension (N)

*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

Definition at line **164** of file **slaeda.f**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.