Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
- data Edge v e = Edge v v e
- data Arc v e = Arc v v e
- type Links v e = HashMap v e
- class Weighted a where
- class Labeled a where
- arbitraryEdge :: (Arbitrary v, Arbitrary e, Ord v, Num v) => (v -> v -> e -> edge) -> Gen edge
- (<->) :: Hashable v => v -> v -> Edge v ()
- (-->) :: Hashable v => v -> v -> Arc v ()
- toOrderedPair :: Arc v a -> (v, v)
- toUnorderedPair :: Edge v a -> (v, v)
- insertLink :: (Hashable v, Eq v) => v -> a -> Links v a -> Links v a
- getLinks :: (Hashable v, Eq v) => v -> HashMap v (Links v e) -> Links v e
- linksToArcs :: [(v, Links v a)] -> [Arc v a]
- linksToEdges :: Eq v => [(v, Links v a)] -> [Edge v a]
- hashMapInsert :: (Eq k, Hashable k) => k -> v -> HashMap k v -> HashMap k v
Documentation
Undirected Edge with attribute of type e between to Vertices of type v
Edge v v e |
(Eq v, Eq a) => Eq (Edge v a) Source # | To |
(Ord e, Ord v) => Ord (Edge v e) Source # | |
(Read e, Read v) => Read (Edge v e) Source # | |
(Show e, Show v) => Show (Edge v e) Source # | |
(Arbitrary v, Arbitrary e, Num v, Ord v) => Arbitrary (Edge v e) Source # | |
Directed Arc with attribute of type e between to Vertices of type v
Arc v v e |
(Eq v, Eq a) => Eq (Arc v a) Source # | To |
(Ord e, Ord v) => Ord (Arc v e) Source # | |
(Read e, Read v) => Read (Arc v e) Source # | |
(Show e, Show v) => Show (Arc v e) Source # | |
(Arbitrary v, Arbitrary e, Num v, Ord v) => Arbitrary (Arc v e) Source # | |
type Links v e = HashMap v e Source #
Each vertex maps to a Links
value so it can poit to other vertices
class Weighted a where Source #
Weighted Edge attributes | Useful for computing some algorithms on graphs
arbitraryEdge :: (Arbitrary v, Arbitrary e, Ord v, Num v) => (v -> v -> e -> edge) -> Gen edge Source #
Edges generator
(<->) :: Hashable v => v -> v -> Edge v () Source #
Construct an undirected Edge
between two vertices
toOrderedPair :: Arc v a -> (v, v) Source #
Convert an Arc
to an ordered pair discarding its attribute
toUnorderedPair :: Edge v a -> (v, v) Source #
Convert an Edge
to an unordered pair discarding its attribute
insertLink :: (Hashable v, Eq v) => v -> a -> Links v a -> Links v a Source #
Insert a link directed to *v* with attribute *a* | If the connnection already exists, the attribute is replaced
getLinks :: (Hashable v, Eq v) => v -> HashMap v (Links v e) -> Links v e Source #
Get the links for a given vertex
linksToArcs :: [(v, Links v a)] -> [Arc v a] Source #
Get Arc
s from an association list of vertices and their links