Merge branch 'master' into popl2012
[match/match.git] / program / PMConfig.hs
CommitLineData
bc14b3b3
MM
1module PMConfig where
2
3import PMInstance
4import IMinCostFlow
5
8723ed6a
MM
6-- A PMConfig structure has a bunch of configuration values used by
7-- many functions in PMInstanceGenerator, ProposalMatcher, and Evaluation, which
8-- take a PMConfig as their first argument. Module PMDefaults defines a sane
9-- default configuration `pmDefaults'; it can be used as-is or individual fields
10-- can be overridden, e.g., pmDefaults{loadTolerance = 2} . See module
11-- PMDefaults for documentation of each field.
bc14b3b3
MM
12data PMConfig = PMConfig {
13 minCostFlow :: MinCostFlowImpl,
14 reviewsEachProposal :: Int,
578d7d98 15 pcReviewsEachProposal :: Int,
56b565b1
MM
16 expIsExpert :: Wt -> Bool,
17 expIsKnowledgeable :: Wt -> Bool,
bc14b3b3
MM
18 prefIsBoring :: Wt -> Bool,
19 prefIsVeryBoring :: Wt -> Bool,
20 prefIsConflict :: Wt -> Bool,
21 loadTolerance :: Int,
578d7d98 22 ercLoadTolerance :: Int,
bc14b3b3
MM
23 marginalLoadCost :: Wt -> Wt,
24 marginalBoringCost :: Wt -> Wt,
25 marginalVeryBoringCost :: Wt -> Wt,
26 assignmentCost :: Wt -> Wt,
27 knowledgeableBonus :: Wt,
8723ed6a
MM
28 expertBonus :: Wt,
29 numTopics :: Int,
35ce78e3
MM
30 topicZipfExponent :: Wt,
31 reviewEvalWeights :: [Wt]
bc14b3b3 32}