dlaed6 - is used by sstedc. Compute one Newton step in solution of the secular equation
SUBROUTINE DLAED6( KNITER, ORGATI, RHO, D, Z, FINIT, TAU, INFO ) LOGICAL ORGATI INTEGER INFO, KNITER DOUBLE PRECISION FINIT, RHO, TAU DOUBLE PRECISION D(3),Z(3) SUBROUTINE DLAED6_64( KNITER, ORGATI, RHO, D, Z, FINIT, TAU, INFO ) LOGICAL ORGATI INTEGER*8 INFO, KNITER DOUBLE PRECISION FINIT, RHO, TAU DOUBLE PRECISION D(3),Z(3) F95 INTERFACE SUBROUTINE LAED6( KNITER, ORGATI, RHO, D, Z, FINIT, TAU, INFO ) INTEGER :: KNITER, INFO REAL(8), DIMENSION(:) :: D, Z REAL(8) :: RHO, FINIT, TAU SUBROUTINE LAED6_64( KNITER, ORGATI, RHO, D, Z, FINIT, TAU, INFO ) INTEGER(8) :: KNITER, INFO REAL(8), DIMENSION(:) :: D, Z REAL(8) :: RHO, FINIT, TAU C INTERFACE #include <sunperf.h> void dlaed6 (int kniter, int orgati, double rho, double *d, double *z, double finit, double *tau, int *info); void dlaed6_64 (long kniter, long orgati, double rho, double *d, double *z, double finit, double *tau, long *info);
Oracle Solaris Studio Performance Library dlaed6(3P)
NAME
dlaed6 - is used by sstedc. Compute one Newton step in solution of the
secular equation
SYNOPSIS
SUBROUTINE DLAED6( KNITER, ORGATI, RHO, D, Z, FINIT, TAU, INFO )
LOGICAL ORGATI
INTEGER INFO, KNITER
DOUBLE PRECISION FINIT, RHO, TAU
DOUBLE PRECISION D(3),Z(3)
SUBROUTINE DLAED6_64( KNITER, ORGATI, RHO, D, Z, FINIT, TAU, INFO )
LOGICAL ORGATI
INTEGER*8 INFO, KNITER
DOUBLE PRECISION FINIT, RHO, TAU
DOUBLE PRECISION D(3),Z(3)
F95 INTERFACE
SUBROUTINE LAED6( KNITER, ORGATI, RHO, D, Z, FINIT, TAU, INFO )
INTEGER :: KNITER, INFO
REAL(8), DIMENSION(:) :: D, Z
REAL(8) :: RHO, FINIT, TAU
SUBROUTINE LAED6_64( KNITER, ORGATI, RHO, D, Z, FINIT, TAU, INFO )
INTEGER(8) :: KNITER, INFO
REAL(8), DIMENSION(:) :: D, Z
REAL(8) :: RHO, FINIT, TAU
C INTERFACE
#include <sunperf.h>
void dlaed6 (int kniter, int orgati, double rho, double *d, double *z,
double finit, double *tau, int *info);
void dlaed6_64 (long kniter, long orgati, double rho, double *d, double
*z, double finit, double *tau, long *info);
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)
KNITER is INTEGER
Refer to DLAED4 for its significance.
ORGATI (input)
ORGATI is 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)
RHO is DOUBLE PRECISION
Refer to the equation f(x) above.
D (input)
D is DOUBLE PRECISION array, dimension (3)
D satisfies d(1) < d(2) < d(3).
Z (input)
Z is DOUBLE PRECISION array, dimension (3)
Each of the elements in z must be positive.
FINIT (input)
FINIT is 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)
TAU is DOUBLE PRECISION
The root of the equation f(x).
INFO (output)
INFO is INTEGER
= 0: successful exit
> 0: if INFO = 1, failure to converge
7 Nov 2015 dlaed6(3P)