Safe Haskell | None |
---|---|
Language | Haskell98 |
This module implements functions to build constraint / kvar dependency graphs, partition them and print statistics about their structure.
- data CPart a = CPart {}
- partition :: Fixpoint a => Config -> FInfo a -> IO (Result (Integer, a))
- partition' :: Maybe MCInfo -> FInfo a -> (KVGraph, [FInfo a])
- partitionN :: MCInfo -> FInfo a -> [CPart a] -> [FInfo a]
- data MCInfo = MCInfo {
- mcCores :: Int
- mcMinPartSize :: Int
- mcMaxPartSize :: Int
- mcInfo :: Config -> IO MCInfo
- graphStatistics :: Config -> SInfo a -> IO ()
- data GDeps a = Deps {
- depCuts :: !(HashSet a)
- depNonCuts :: !(HashSet a)
- deps :: TaggedC c a => GInfo c a -> GDeps KVar
- elimSolGraph :: Config -> Solution -> IO ()
Split constraints
Constraint Partition Container --------------------------------------------
:: Maybe MCInfo | Nothing to produce the maximum possible number of partitions. Or a MultiCore Info to control the partitioning |
-> FInfo a | |
-> (KVGraph, [FInfo a]) |
Partition an FInfo into multiple disjoint FInfos
:: MCInfo | describes thresholds and partiton amounts |
-> FInfo a | The originial FInfo |
-> [CPart a] | A list of the smallest possible CParts |
-> [FInfo a] | At most N partitions of at least thresh work |
Partition an FInfo into a specific number of partitions of roughly equal amounts of work
Information about cores
Multicore info ------------------------------------------------------------
MCInfo | |
|
Queries over dependencies
graphStatistics :: Config -> SInfo a -> IO () Source
Generic Dependencies ------------------------------------------------------
Deps | |
|
deps :: TaggedC c a => GInfo c a -> GDeps KVar Source
Compute Dependencies and Cuts ---------------------------------------------
Debug
elimSolGraph :: Config -> Solution -> IO () Source
Build and print the graph of post eliminate solution, which has an edge from k -> k' if k' appears directly inside the "solution" for k