LASQ3 - LASQ3 - 5.3 English - 68552

AOCL API Guide (68552)

Document_ID
68552
Release_Date
2026-05-13
Version
5.3 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.