From da592e92b4c6b70feb9d1857c8854d77bac25b29 Mon Sep 17 00:00:00 2001
From: Jed Barber <jjbarber@y7mail.com>
Date: Mon, 23 Jan 2017 18:23:32 +1100
Subject: Increased speed of vote transfer slightly

---
 src/Election.hs | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

(limited to 'src')

diff --git a/src/Election.hs b/src/Election.hs
index e97eb69..60fd78f 100644
--- a/src/Election.hs
+++ b/src/Election.hs
@@ -280,9 +280,11 @@ addToTransferMap counter mapKeys transferMap traceToAdd = do
     let newTraces = map (addToTrace traceToAdd) mapKeys
         keyed = zip mapKeys newTraces
         noDupes = filter (not . criteriaHasDupe . getCriteria . snd) keyed
-    counted <- mapM (\(k,t) -> Sen.doCount counter (getCriteria t) >>= (\x -> return (k,[(x,t)]))) noDupes
-    let noZeros = filter ((/= 0) . fst . head . snd) counted
-    return (Map.unionWith (++) transferMap (Map.fromList noZeros))
+    counted <- mapM (\(k,t) -> Sen.doCount counter (getCriteria t) >>= (\x -> return (k,(x,t)))) noDupes
+    let notZero (k,xt) = floor ((fromIntegral (fst xt)) * getTransferVal (snd xt)) > 0
+        noZeroMap = filter notZero counted
+        listed = map (\(k,xt) -> (k,xt:[])) noZeroMap
+    return (Map.unionWith (++) transferMap (Map.fromList listed))
 
 
 
-- 
cgit