# dlaeda.f man page

dlaeda.f —

## Synopsis

### Functions/Subroutines

subroutinedlaeda(N, TLVLS, CURLVL, CURPBM, PRMPTR, PERM, GIVPTR, GIVCOL, GIVNUM, Q, QPTR, Z, ZTEMP, INFO)DLAEDAused by sstedc. Computes the Z vector determining the rank-one modification of the diagonal matrix. Used when the original matrix is dense.

## Function/Subroutine Documentation

### subroutine dlaeda (integerN, integerTLVLS, integerCURLVL, integerCURPBM, 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, integerINFO)

**DLAEDA** used by sstedc. 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.

**Date:**

September 2012

**Contributors:**

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

Definition at line 166 of file dlaeda.f.

## Author

Generated automatically by Doxygen for LAPACK from the source code.

## Referenced By

dlaeda(3) is an alias of dlaeda.f(3).