LASQ3 - 5.2 English - 68552

AOCL API Guide (68552)

Document ID
68552
Release Date
2025-12-29
Version
5.2 English
template<typename T>
void lasq3(integer *i0, integer *n0, T *z, integer *pp, T *dmin, T *sigma, T *desig, T *qmax, integer *nfail, integer *iter, integer *ndiv, logical *ieee, integer *ttype, T *dmin1, T *dmin2, T *dn, T *dn1, T *dn2, T *g, T *tau)#

LASQ3 checks for deflation, computes a shift and calls dqds. Used by sbdsqr.

Purpose:

 LASQ3 checks for deflation, computes a shift (TAU) and calls dqds.
 In case of failure it changes shifts, and tries again until output
 is positive.
Parameters:
  • I0[in]

    I0 is INTEGER

    First index.

  • N0[inout]

    N0 is INTEGER

    Last index.

  • Z[inout]

    Z is REAL array, dimension (4*N0)

    Z holds the qd array.

  • PP[inout]

    PP is INTEGER

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

    PP=2 indicates that flipping was applied to the Z array and that the initial tests for deflation should not be performed.
  • DMIN[out]

    DMIN is REAL

    Minimum value of d.

  • SIGMA[out]

    SIGMA is REAL

    Sum of shifts used in current segment.

  • DESIG[inout]

    DESIG is REAL

    Lower order part of SIGMA

  • QMAX[in]

    QMAX is REAL

    Maximum value of q.

  • NFAIL[inout]

    NFAIL is INTEGER

    Increment NFAIL by 1 each time the shift was too big.

  • ITER[inout]

    ITER is INTEGER

    Increment ITER by 1 for each iteration.

  • NDIV[inout]

    NDIV is INTEGER

    Increment NDIV by 1 for each division.

  • IEEE[in]

    IEEE is LOGICAL

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

  • TTYPE[inout]

    TTYPE is INTEGER

    Shift type.

  • DMIN1[inout] DMIN1 is REAL

  • DMIN2[inout] DMIN2 is REAL

  • DN[inout] DN is REAL

  • DN1[inout] DN1 is REAL

  • DN2[inout] DN2 is REAL

  • G[inout] G is REAL

  • TAU[inout]

    TAU is REAL

    These are passed as arguments in order to save their values between calls to LASQ3.