From 619d8664f918351062c1ba3de0fdf19fd61ec57b Mon Sep 17 00:00:00 2001 From: Francis Russell Date: Fri, 12 Apr 2013 16:59:34 +0100 Subject: [PATCH] Make extractMultiplier handle single-term Sum. --- LTA/Symbolic.hs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/LTA/Symbolic.hs b/LTA/Symbolic.hs index f29070f..3472fcb 100644 --- a/LTA/Symbolic.hs +++ b/LTA/Symbolic.hs @@ -136,7 +136,10 @@ extractMultiplier (Literal literal) = (1, literal) extractMultiplier (Product pairSeq) = (expr, coeff) where expr = rebuild $ (PairSeq 1 pairSeq' :: PairSeq ProductTag Expr) (PairSeq coeff pairSeq') = normalise pairSeq -extractMultiplier (Sum pairSeq) = (rebuild $ normalise pairSeq, 1) +extractMultiplier (Sum (PairSeq coeff terms)) = + case (coeff, Map.toList terms) of + (0, [(a, b)]) -> (a, b) + _ -> (rebuild $ normalise (PairSeq coeff terms :: PairSeq SumTag Literal), 1) extractMultiplier e = (e, 1) pow :: Expr -> Expr -> Expr -- 2.47.3