---
name: "slaed3.f"
section: "3"
platform: "linux"
package: "lapack-doc"
version: "3.12.1-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/slaed3.f"
---

# slaed3.f(3)

## NAME

SRC/slaed3.f

## SYNOPSIS

### Functions/Subroutines

subroutine **slaed3** (k, n, n1, d, q, ldq, rho, dlambda, q2, indx, ctot, w, s, info)\
 **SLAED3** used by SSTEDC. Finds the roots of the secular equation and updates the eigenvectors. Used when the original matrix is tridiagonal.

## Function/Subroutine Documentation

### subroutine slaed3 (integer k, integer n, integer n1, real, dimension( \* ) d, real, dimension( ldq, \* ) q, integer ldq, real rho, real, dimension( \* ) dlambda, real, dimension( \* ) q2, integer, dimension( \* ) indx, integer, dimension( \* ) ctot, real, dimension( \* ) w, real, dimension( \* ) s, integer info)

**SLAED3** used by SSTEDC. Finds the roots of the secular equation and updates the eigenvectors. Used when the original matrix is tridiagonal.

**Purpose:**

```
!>
!> SLAED3 finds the roots of the secular equation, as defined by the
!> values in D, W, and RHO, between 1 and K.  It makes the
!> appropriate calls to SLAED4 and then updates the eigenvectors by
!> multiplying the matrix of eigenvectors of the pair of eigensystems
!> being combined by the matrix of eigenvectors of the K-by-K system
!> which is solved here.
!>
!>
```

**Parameters**

*K*

```
!>          K is INTEGER
!>          The number of terms in the rational function to be solved by
!>          SLAED4.  K >= 0.
!>
```

*N*

```
!>          N is INTEGER
!>          The number of rows and columns in the Q matrix.
!>          N >= K (deflation may result in N>K).
!>
```

*N1*

```
!>          N1 is INTEGER
!>          The location of the last eigenvalue in the leading submatrix.
!>          min(1,N) <= N1 <= N/2.
!>
```

*D*

```
!>          D is REAL array, dimension (N)
!>          D(I) contains the updated eigenvalues for
!>          1 <= I <= K.
!>
```

*Q*

```
!>          Q is REAL array, dimension (LDQ,N)
!>          Initially the first K columns are used as workspace.
!>          On output the columns 1 to K contain
!>          the updated eigenvectors.
!>
```

*LDQ*

```
!>          LDQ is INTEGER
!>          The leading dimension of the array Q.  LDQ >= max(1,N).
!>
```

*RHO*

```
!>          RHO is REAL
!>          The value of the parameter in the rank one update equation.
!>          RHO >= 0 required.
!>
```

*DLAMBDA*

```
!>          DLAMBDA is REAL array, dimension (K)
!>          The first K elements of this array contain the old roots
!>          of the deflated updating problem.  These are the poles
!>          of the secular equation.
!>
```

*Q2*

```
!>          Q2 is REAL array, dimension (LDQ2*N)
!>          The first K columns of this matrix contain the non-deflated
!>          eigenvectors for the split problem.
!>
```

*INDX*

```
!>          INDX is INTEGER array, dimension (N)
!>          The permutation used to arrange the columns of the deflated
!>          Q matrix into three groups (see SLAED2).
!>          The rows of the eigenvectors found by SLAED4 must be likewise
!>          permuted before the matrix multiply can take place.
!>
```

*CTOT*

```
!>          CTOT is INTEGER array, dimension (4)
!>          A count of the total number of the various types of columns
!>          in Q, as described in INDX.  The fourth column type is any
!>          column which has been deflated.
!>
```

*W*

```
!>          W is REAL array, dimension (K)
!>          The first K elements of this array contain the components
!>          of the deflation-adjusted updating vector. Destroyed on
!>          output.
!>
```

*S*

```
!>          S is REAL array, dimension (N1 + 1)*K
!>          Will contain the eigenvectors of the repaired matrix which
!>          will be multiplied by the previously accumulated eigenvectors
!>          to update the system.
!>
```

*INFO*

```
!>          INFO is INTEGER
!>          = 0:  successful exit.
!>          < 0:  if INFO = -i, the i-th argument had an illegal value.
!>          > 0:  if INFO = 1, an eigenvalue did not converge
!>
```

**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 \
\
  Modified by Francoise Tisseur, University of Tennessee

Definition at line **175** of file **slaed3.f**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.
