From: Francis Russell Date: Fri, 12 Apr 2013 15:59:34 +0000 (+0100) Subject: Make extractMultiplier handle single-term Sum. X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=619d8664f918351062c1ba3de0fdf19fd61ec57b;p=francis%2Flta.git Make extractMultiplier handle single-term Sum. --- 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