mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
the compiler now sorts the list of functions per category in probability order. this ensures probability order search in the C runtime
This commit is contained in:
@@ -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)]
|
||||
|
||||
Reference in New Issue
Block a user