From 0427c008590f3c21f7f5475f87950c8a4b32fb5b Mon Sep 17 00:00:00 2001 From: Neil Brown Date: Thu, 7 Feb 2008 18:01:13 +0000 Subject: [PATCH] Fixed the calculation of the upper bound on replicators (from + for - 1, not simply for) for directly relevant replicators --- checks/ArrayUsageCheck.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/checks/ArrayUsageCheck.hs b/checks/ArrayUsageCheck.hs index 9dc12d0..c5772a5 100644 --- a/checks/ArrayUsageCheck.hs +++ b/checks/ArrayUsageCheck.hs @@ -444,8 +444,8 @@ makeEquations otherInfo accesses bound makeRepVarEq :: (A.Replicator, Bool) -> StateT VarMap (Either String) (A.Variable, EqualityConstraintEquation, EqualityConstraintEquation) makeRepVarEq (A.For m varName from for, _) = do from' <- makeSingleEq from "replication start" - for' <- makeSingleEq for "replication count" - return (A.Variable m varName, from', for') + upper <- makeSingleEq (A.Dyadic m A.Subtr (A.Dyadic m A.Add for from) (makeConstant m 1)) "replication count" + return (A.Variable m varName, from', upper) mkEq' :: [(A.Variable, EqualityConstraintEquation, EqualityConstraintEquation)] -> (ArrayAccessType, A.Expression) -> StateT [(CoeffIndex,CoeffIndex)] (StateT VarMap (Either String)) [(A.Expression, ArrayAccessType, (EqualityConstraintEquation, EqualityProblem, InequalityProblem))] mkEq' repVarEqs (aat, e)