DLAED6

   February 2007

Purpose

DLAED6 computes the positive or negative root (closest to the origin)
of
                 z(1)        z(2)        z(3)
f(x) =   rho + --------- + ---------- + ---------
                d(1)-x      d(2)-x      d(3)-x

It is assumed that

      if ORGATI = .true. the root is between d(2) and d(3);
      otherwise it is between d(1) and d(2)

This routine will be called by DLAED4 when necessary. In most cases,
the root sought is the smallest in magnitude, though it might not be
in some extremely rare situations.

Arguments

KNITER
(input) INTEGER
Refer to DLAED4 for its significance.
ORGATI
(input) LOGICAL
If ORGATI is true, the needed root is between d(2) and
d(3); otherwise it is between d(1) and d(2).  See
DLAED4 for further details.
RHO
(input) DOUBLE PRECISION
Refer to the equation f(x) above.
D
(input) DOUBLE PRECISION array, dimension (3)
D satisfies d(1) < d(2) < d(3).
Z
(input) DOUBLE PRECISION array, dimension (3)
Each of the elements in z must be positive.
FINIT
(input) DOUBLE PRECISION
The value of f at 0. It is more accurate than the one
evaluated inside this routine (if someone wants to do
so).
TAU
(output) DOUBLE PRECISION
The root of the equation f(x).
INFO
(output) INTEGER
= 0: successful exit
> 0: if INFO = 1, failure to converge

Further Details

30/06/99: Based on contributions by
   Ren-Cang Li, Computer Science Division, University of California
   at Berkeley, USA

10/02/03: This version has a few statements commented out for thread
safety (machine parameters are computed on each entry). SJH.

05/10/06: Modified from a new version of Ren-Cang Li, use
   Gragg-Thornton-Warner cubic convergent scheme for better stability.

Call Graph

Caller Graph