# ?lasq5

Computes one dqds transform in ping-pong form. Used by ?bdsqr and ?stegr.

## Syntax

call slasq5( i0, n0, z, pp, tau, dmin, dmin1, dmin2, dn, dnm1, dnm2, ieee )

call dlasq5( i0, n0, z, pp, tau, dmin, dmin1, dmin2, dn, dnm1, dnm2, ieee )

## Description

The routine computes one dqds transform in ping-pong form: one version for ieee machines, another for non-ieee machines.

## Input Parameters

i0

  INTEGER. First index.

n0

  INTEGER. Last index.

z

  REAL for slasq5

  DOUBLE PRECISION for dlasq5.

  Array, DIMENSION (4n). z holds the qd array. emin is stored in `z(4*n0)`

  to avoid an extra argument.

pp

  INTEGER. `pp=0` for ping, `pp=1` for pong.

tau

  REAL for slasq5

  DOUBLE PRECISION for dlasq5.

  This is the shift.

ieee

  LOGICAL. Flag for IEEE or non-IEEE arithmetic.

## Output Parameters

dmin

  REAL for slasq5

  DOUBLE PRECISION for dlasq5.

  Minimum value of d.

dmin1

  REAL for slasq5

  DOUBLE PRECISION for dlasq5.

  Minimum value of d, excluding d(n0).

dmin2

  REAL for slasq5

  DOUBLE PRECISION for dlasq5.

  Minimum value of d, excluding d(n0) and `d(n0-1)`.

dn

  REAL for slasq5

  DOUBLE PRECISION for dlasq5. Contains `d(n0)`, the last value of d.

dnm1

  REAL for slasq5

  DOUBLE PRECISION for dlasq5. Contains `d(n0-1)`.

dnm2

  REAL for slasq5

  DOUBLE PRECISION for dlasq5. Contains `d(n0-2)`.

Parent topic: Auxiliary Routines