From 46e09e3c99a1c6aeedcde4281d7625a76f48d315 Mon Sep 17 00:00:00 2001 From: deaglanhalligan Date: Fri, 13 Feb 2009 23:58:46 +0000 Subject: Restructured loops in {c,z}la_yyrcond_{x,c} and {s,c,d,z}la_yyamv to do less comparisons. --- SRC/cla_hercond_x.f | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) (limited to 'SRC/cla_hercond_x.f') diff --git a/SRC/cla_hercond_x.f b/SRC/cla_hercond_x.f index ce305ccd..1610e8ea 100644 --- a/SRC/cla_hercond_x.f +++ b/SRC/cla_hercond_x.f @@ -30,11 +30,11 @@ * Arguments * ========= * -* X COMPLEX vector. +* X COMPLEX vector. * -* WORK COMPLEX workspace of size 2*N. +* WORK COMPLEX workspace of size 2*N. * -* RWORK REAL workspace of size 3*N. +* RWORK REAL workspace of size N. * * ===================================================================== * @@ -84,12 +84,11 @@ IF ( UP ) THEN DO I = 1, N TMP = 0.0E+0 - DO J = 1, N - IF ( I.GT.J ) THEN - TMP = TMP + CABS1( A( J, I ) * X( J ) ) - ELSE - TMP = TMP + CABS1( A( I, J ) * X( J ) ) - END IF + DO J = 1, I + TMP = TMP + CABS1( A( J, I ) * X( J ) ) + END DO + DO J = I+1, N + TMP = TMP + CABS1( A( I, J ) * X( J ) ) END DO RWORK( I ) = TMP ANORM = MAX( ANORM, TMP ) @@ -97,12 +96,11 @@ ELSE DO I = 1, N TMP = 0.0E+0 - DO J = 1, N - IF ( I.LT.J ) THEN - TMP = TMP + CABS1( A( J, I ) * X( J ) ) - ELSE - TMP = TMP + CABS1( A( I, J ) * X( J ) ) - END IF + DO J = 1, I + TMP = TMP + CABS1( A( I, J ) * X( J ) ) + END DO + DO J = I+1, N + TMP = TMP + CABS1( A( J, I ) * X( J ) ) END DO RWORK( I ) = TMP ANORM = MAX( ANORM, TMP ) -- cgit v1.2.3