From 2f359648711b39b42240ffb8d23214921bea721b Mon Sep 17 00:00:00 2001 From: "kr.angelov" Date: Mon, 15 Apr 2013 19:58:57 +0000 Subject: [PATCH] the compiler now sorts the list of functions per category in probability order. this ensures probability order search in the C runtime --- src/runtime/haskell/PGF/Probabilistic.hs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/runtime/haskell/PGF/Probabilistic.hs b/src/runtime/haskell/PGF/Probabilistic.hs index bf2464b1d..d0206af26 100644 --- a/src/runtime/haskell/PGF/Probabilistic.hs +++ b/src/runtime/haskell/PGF/Probabilistic.hs @@ -50,9 +50,11 @@ readProbabilitiesFromFile file pgf = do mkProbabilities :: PGF -> Map.Map CId Double -> Probabilities mkProbabilities pgf probs = let funs1 = Map.fromList [(f,p) | (_,cf) <- Map.toList cats1, (p,f) <- cf] - cats1 = Map.map (\(_,fs,_) -> fill fs) (cats (abstract pgf)) + cats1 = Map.map (\(_,fs,_) -> sortBy cmpProb (fill fs)) (cats (abstract pgf)) in Probs funs1 cats1 where + cmpProb (p1,_) (p2,_) = compare p2 p1 + fill fs = pad [(Map.lookup f probs,f) | (_,f) <- fs] where pad :: [(Maybe Double,a)] -> [(Double,a)]