version 1.9, 2011/11/21 20:42:54
|
version 1.17, 2016/08/27 15:34:26
|
Line 1
|
Line 1
|
*> \brief \b DLAED6 |
*> \brief \b DLAED6 used by sstedc. Computes one Newton step in solution of the secular equation. |
* |
* |
* =========== DOCUMENTATION =========== |
* =========== DOCUMENTATION =========== |
* |
* |
Line 115
|
Line 115
|
*> \author Univ. of Colorado Denver |
*> \author Univ. of Colorado Denver |
*> \author NAG Ltd. |
*> \author NAG Ltd. |
* |
* |
*> \date November 2011 |
*> \date November 2015 |
* |
* |
*> \ingroup auxOTHERcomputational |
*> \ingroup auxOTHERcomputational |
* |
* |
Line 140
|
Line 140
|
* ===================================================================== |
* ===================================================================== |
SUBROUTINE DLAED6( KNITER, ORGATI, RHO, D, Z, FINIT, TAU, INFO ) |
SUBROUTINE DLAED6( KNITER, ORGATI, RHO, D, Z, FINIT, TAU, INFO ) |
* |
* |
* -- LAPACK computational routine (version 3.4.0) -- |
* -- LAPACK computational routine (version 3.6.0) -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* November 2011 |
* November 2015 |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
LOGICAL ORGATI |
LOGICAL ORGATI |
Line 370
|
Line 370
|
DF = ZERO |
DF = ZERO |
DDF = ZERO |
DDF = ZERO |
DO 40 I = 1, 3 |
DO 40 I = 1, 3 |
TEMP = ONE / ( DSCALE( I )-TAU ) |
IF ( ( DSCALE( I )-TAU ).NE.ZERO ) THEN |
TEMP1 = ZSCALE( I )*TEMP |
TEMP = ONE / ( DSCALE( I )-TAU ) |
TEMP2 = TEMP1*TEMP |
TEMP1 = ZSCALE( I )*TEMP |
TEMP3 = TEMP2*TEMP |
TEMP2 = TEMP1*TEMP |
TEMP4 = TEMP1 / DSCALE( I ) |
TEMP3 = TEMP2*TEMP |
FC = FC + TEMP4 |
TEMP4 = TEMP1 / DSCALE( I ) |
ERRETM = ERRETM + ABS( TEMP4 ) |
FC = FC + TEMP4 |
DF = DF + TEMP2 |
ERRETM = ERRETM + ABS( TEMP4 ) |
DDF = DDF + TEMP3 |
DF = DF + TEMP2 |
|
DDF = DDF + TEMP3 |
|
ELSE |
|
GO TO 60 |
|
END IF |
40 CONTINUE |
40 CONTINUE |
F = FINIT + TAU*FC |
F = FINIT + TAU*FC |
ERRETM = EIGHT*( ABS( FINIT )+ABS( TAU )*ERRETM ) + |
ERRETM = EIGHT*( ABS( FINIT )+ABS( TAU )*ERRETM ) + |
$ ABS( TAU )*DF |
$ ABS( TAU )*DF |
IF( ABS( F ).LE.EPS*ERRETM ) |
IF( ( ABS( F ).LE.FOUR*EPS*ERRETM ) .OR. |
|
$ ( (UBD-LBD).LE.FOUR*EPS*ABS(TAU) ) ) |
$ GO TO 60 |
$ GO TO 60 |
IF( F .LE. ZERO )THEN |
IF( F .LE. ZERO )THEN |
LBD = TAU |
LBD = TAU |