Safe Haskell | Safe-Inferred |
---|
- newtype UG a = UG (Dom a, Rel a)
- newtype DG a = DG (Dom a, Rel a)
- minOrientation :: (Show a, Eq a) => UG a -> DG a
- partitionDG :: Eq a => DG a -> [Tree a]
- newtype Tree a = Tree (Dom a, Rel a)
- sources :: Eq a => a -> Tree a -> [a]
- anchor :: Eq a => a -> Tree a -> Tree a
- type Dom a = [a]
- type Rel a = a -> a -> Bool
- fromList :: Eq a => [(a, a)] -> Rel a
- toList :: Dom a -> Rel a -> [(a, a)]
- allR :: Eq a => Rel a
- differenceR :: Rel a -> Rel a -> Rel a
- unionR :: Rel a -> Rel a -> Rel a
- composeR :: Dom a -> Rel a -> Rel a -> Rel a
- transitiveR :: Dom a -> Rel a -> Bool
- transClosure :: Eq a => Dom a -> Rel a -> Rel a
- transReduction :: Eq a => Dom a -> Rel a -> Rel a
- aliasMeasure :: Eq a => Rel a -> Partitioning a -> Int
- isTree :: Dom a -> Rel a -> Bool
- orientation :: Eq a => UG a -> DG a
- orientations :: Eq a => UG a -> [Rel a]
- bruteforceMinOrientation :: (Show a, Eq a) => UG a -> DG a
- transOrientation :: Eq a => UG a -> Maybe (DG a)
- smallOrientation :: (Show a, Eq a) => UG a -> DG a
- partitionings :: Eq a => [a] -> [Partitioning a]
- minimumCompletion :: (Show a, Eq a) => UG a -> UG a
Graphs and Trees for TBAA metadata
minOrientation :: (Show a, Eq a) => UG a -> DG aSource
Find the orientation with the smallest transitive closure
partitionDG :: Eq a => DG a -> [Tree a]Source
Partition a DG into the minimum set of (directed) trees
An inverted tree (with edges going from child to parent)
Quickcheck Testing ONLY
The universal negative relation. All members of the domain are not related.
differenceR :: Rel a -> Rel a -> Rel aSource
Fifference of two relations.
transitiveR :: Dom a -> Rel a -> BoolSource
Check whether a relation is transitive.
transClosure :: Eq a => Dom a -> Rel a -> Rel aSource
Find the transitive closure of a binary relation using Floyd-Warshall algorithm
aliasMeasure :: Eq a => Rel a -> Partitioning a -> IntSource
Calculate the aliasing induced by a set of trees this includes aliasing within each of the trees and aliasing among trees.
isTree :: Dom a -> Rel a -> BoolSource
A relation is an (inverted) tree if each node has at most one outgoing arc
orientation :: Eq a => UG a -> DG aSource
orientations :: Eq a => UG a -> [Rel a]Source
transOrientation :: Eq a => UG a -> Maybe (DG a)Source
Find the transitive orientation of an undirected graph if one exists
smallOrientation :: (Show a, Eq a) => UG a -> DG aSource
Find the orientation with a `small enough' transitive closure
partitionings :: Eq a => [a] -> [Partitioning a]Source
Generate all possible partitions of a list by nondeterministically decide which sublist to add an element to.