---
name: "slazq3"
section: "3lapack"
platform: "linux"
package: "liblapack-doc"
version: "3.2.1-8"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/slazq3"
---

# slazq3(3lapack)

for deflation, computes a shift (TAU) and calls dqds

## NAME

SLAZQ3 - for deflation, computes a shift (TAU) and calls dqds

## SYNOPSIS

- SUBROUTINE SLAZQ3(

  I0, N0, Z, PP, DMIN, SIGMA, DESIG, QMAX, NFAIL, ITER, NDIV, IEEE, TTYPE, DMIN1, DMIN2, DN, DN1, DN2, TAU )

- LOGICAL

  IEEE

- INTEGER

  I0, ITER, N0, NDIV, NFAIL, PP, TTYPE

- REAL

  DESIG, DMIN, DMIN1, DMIN2, DN, DN1, DN2, QMAX, SIGMA, TAU

- REAL

  Z( \* )

## PURPOSE

SLAZQ3 checks for deflation, computes a shift (TAU) and calls dqds. In case of failure it changes shifts, and tries again until output is positive.\

## ARGUMENTS

- I0 (input) INTEGER

  First index.

- N0 (input) INTEGER

  Last index.

- Z (input) REAL array, dimension ( 4\*N )

  Z holds the qd array.

- PP (input) INTEGER

  PP=0 for ping, PP=1 for pong.

- DMIN (output) REAL

  Minimum value of d.

- SIGMA (output) REAL

  Sum of shifts used in current segment.

- DESIG (input/output) REAL

  Lower order part of SIGMA

- QMAX (input) REAL

  Maximum value of q.

- NFAIL (output) INTEGER

  Number of times shift was too big.

- ITER (output) INTEGER

  Number of iterations.

- NDIV (output) INTEGER

  Number of divisions.

- IEEE (input) LOGICAL

  Flag for IEEE or non IEEE arithmetic (passed to SLASQ5).

- TTYPE (input/output) INTEGER

  Shift type.  TTYPE is passed as an argument in order to save its value between calls to SLAZQ3

- DMIN1 (input/output) REAL

  DMIN2  (input/output) REAL DN     (input/output) REAL DN1    (input/output) REAL DN2    (input/output) REAL TAU    (input/output) REAL These are passed as arguments in order to save their values between calls to SLAZQ3

  This is a thread safe version of SLASQ3, which passes TTYPE, DMIN1, DMIN2, DN, DN1. DN2 and TAU through the argument list in place of declaring them in a SAVE statment.
