# ?lasq6

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

## Syntax

call slasq6( i0, n0, z, pp, dmin, dmin1, dmin2, dn, dnm1, dnm2 )

call dlasq6( i0, n0, z, pp, dmin, dmin1, dmin2, dn, dnm1, dnm2 )

## Description

The routine ?lasq6 computes one dqd (shift equal to zero) transform in ping-pong form, with protection against underflow and overflow.

## Input Parameters

i0

  INTEGER. First index.

n0

  INTEGER. Last index.

z

  REAL for slasq6

  DOUBLE PRECISION for dlasq6.

  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.

## Output Parameters

dmin

  REAL for slasq6

  DOUBLE PRECISION for dlasq6.

  Minimum value of d.

dmin1

  REAL for slasq6

  DOUBLE PRECISION for dlasq6.

  Minimum value of d, excluding d(n0).

dmin2

  REAL for slasq6

  DOUBLE PRECISION for dlasq6.

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

dn

  REAL for slasq6

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

dnm1

  REAL for slasq6

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

dnm2

  REAL for slasq6

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

Parent topic: Auxiliary Routines