From db0abe5e599f76ea01c53544238fc89b25475b27 Mon Sep 17 00:00:00 2001 From: Weslley da Silva Pereira Date: Tue, 15 Mar 2022 16:05:13 -0600 Subject: [PATCH 1/2] Improve dlaed4 thanks to Li, Ren-Cang --- SRC/dlaed4.f | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/SRC/dlaed4.f b/SRC/dlaed4.f index 3ee3ef920f..b51e23d850 100644 --- a/SRC/dlaed4.f +++ b/SRC/dlaed4.f @@ -328,9 +328,12 @@ SUBROUTINE DLAED4( N, I, D, Z, DELTA, RHO, DLAM, INFO ) IF( C.LT.ZERO ) $ C = ABS( C ) IF( C.EQ.ZERO ) THEN -* ETA = B/A +* ETA = B/A * ETA = RHO - TAU - ETA = DLTUB - TAU +* ETA = DLTUB - TAU +* +* Update proposed by Li, Ren-Cang: + ETA = -W / ( DPSI+DPHI ) ELSE IF( A.GE.ZERO ) THEN ETA = ( A+SQRT( ABS( A*A-FOUR*B*C ) ) ) / ( TWO*C ) ELSE From 5a392d9cc5153517b87461ea2319ba0faac521d5 Mon Sep 17 00:00:00 2001 From: Weslley da Silva Pereira Date: Tue, 15 Mar 2022 16:09:26 -0600 Subject: [PATCH 2/2] Improve slaed4 following the same strategy fromdlaed4 --- SRC/slaed4.f | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/SRC/slaed4.f b/SRC/slaed4.f index f056746d80..339c5029cc 100644 --- a/SRC/slaed4.f +++ b/SRC/slaed4.f @@ -328,9 +328,12 @@ SUBROUTINE SLAED4( N, I, D, Z, DELTA, RHO, DLAM, INFO ) IF( C.LT.ZERO ) $ C = ABS( C ) IF( C.EQ.ZERO ) THEN -* ETA = B/A +* ETA = B/A * ETA = RHO - TAU - ETA = DLTUB - TAU +* ETA = DLTUB - TAU +* +* Update proposed by Li, Ren-Cang: + ETA = -W / ( DPSI+DPHI ) ELSE IF( A.GE.ZERO ) THEN ETA = ( A+SQRT( ABS( A*A-FOUR*B*C ) ) ) / ( TWO*C ) ELSE