Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data Graph (d :: EdgeType) v e = Graph {
- _graph :: IGraph
- _labelToNode :: HashMap v [Node]
- data EdgeType
- isDirected :: forall d v e. SingI d => Graph d v e -> Bool
- nNodes :: Graph d v e -> Int
- nodeLab :: Serialize v => Graph d v e -> Node -> v
- nodes :: Graph d v e -> [Node]
- labNodes :: Serialize v => Graph d v e -> [LNode v]
- nEdges :: Graph d v e -> Int
- edgeLab :: Serialize e => Graph d v e -> Edge -> e
- edges :: Graph d v e -> [Edge]
- labEdges :: Serialize e => Graph d v e -> [LEdge e]
- hasEdge :: Graph d v e -> Edge -> Bool
- getNodes :: (Hashable v, Eq v) => Graph d v e -> v -> [Node]
- getEdgeByEid :: Graph d v e -> Int -> Edge
- getEdgeLabByEid :: Serialize e => Graph d v e -> Int -> e
- empty :: (SingI d, Hashable v, Serialize v, Eq v, Serialize e) => Graph d v e
- mkGraph :: (SingI d, Hashable v, Serialize v, Eq v, Serialize e) => [v] -> [LEdge e] -> Graph d v e
- fromLabeledEdges :: (SingI d, Hashable v, Serialize v, Eq v, Serialize e) => [((v, v), e)] -> Graph d v e
- fromLabeledEdges' :: (MonadUnliftIO m, SingI d, Hashable v, Serialize v, Eq v, Serialize e) => a -> (a -> ConduitT () ((v, v), e) m ()) -> m (Graph d v e)
- unsafeFreeze :: (Hashable v, Eq v, Serialize v, PrimMonad m) => MGraph (PrimState m) d v e -> m (Graph d v e)
- freeze :: (Hashable v, Eq v, Serialize v, PrimMonad m) => MGraph (PrimState m) d v e -> m (Graph d v e)
- unsafeThaw :: PrimMonad m => Graph d v e -> m (MGraph (PrimState m) d v e)
- thaw :: PrimMonad m => Graph d v e -> m (MGraph (PrimState m) d v e)
- neighbors :: Graph d v e -> Node -> [Node]
- pre :: Graph D v e -> Node -> [Node]
- suc :: Graph D v e -> Node -> [Node]
- nmap :: (Serialize v1, Serialize v2, Hashable v2, Eq v2) => (LNode v1 -> v2) -> Graph d v1 e -> Graph d v2 e
- emap :: (Serialize e1, Serialize e2, Hashable v, Eq v, Serialize v) => (LEdge e1 -> e2) -> Graph d v e1 -> Graph d v e2
- nfilter :: (Hashable v, Eq v, Serialize v) => (LNode v -> Bool) -> Graph d v e -> Graph d v e
- efilter :: (SingI d, Hashable v, Eq v, Serialize v, Serialize e) => (LEdge e -> Bool) -> Graph d v e -> Graph d v e
Documentation
Instances
getNodes :: (Hashable v, Eq v) => Graph d v e -> v -> [Node] Source #
Return all nodes that are associated with given label.
empty :: (SingI d, Hashable v, Serialize v, Eq v, Serialize e) => Graph d v e Source #
Create a empty graph.
:: (SingI d, Hashable v, Serialize v, Eq v, Serialize e) | |
=> [v] | Nodes. Each will be assigned a ID from 0 to N. |
-> [LEdge e] | Labeled edges. |
-> Graph d v e |
Create a graph.
fromLabeledEdges :: (SingI d, Hashable v, Serialize v, Eq v, Serialize e) => [((v, v), e)] -> Graph d v e Source #
Create a graph from labeled edges.
:: (MonadUnliftIO m, SingI d, Hashable v, Serialize v, Eq v, Serialize e) | |
=> a | Input, usually a file |
-> (a -> ConduitT () ((v, v), e) m ()) | deserialize the input into a stream of edges |
-> m (Graph d v e) |
Create a graph from a stream of labeled edges.
unsafeFreeze :: (Hashable v, Eq v, Serialize v, PrimMonad m) => MGraph (PrimState m) d v e -> m (Graph d v e) Source #
Convert a mutable graph to immutable graph. The original graph may not be used afterwards.
freeze :: (Hashable v, Eq v, Serialize v, PrimMonad m) => MGraph (PrimState m) d v e -> m (Graph d v e) Source #
Convert a mutable graph to immutable graph.
unsafeThaw :: PrimMonad m => Graph d v e -> m (MGraph (PrimState m) d v e) Source #
Create a mutable graph. The original graph may not be used afterwards.
thaw :: PrimMonad m => Graph d v e -> m (MGraph (PrimState m) d v e) Source #
Create a mutable graph.
nmap :: (Serialize v1, Serialize v2, Hashable v2, Eq v2) => (LNode v1 -> v2) -> Graph d v1 e -> Graph d v2 e Source #
Apply a function to change nodes' labels.
emap :: (Serialize e1, Serialize e2, Hashable v, Eq v, Serialize v) => (LEdge e1 -> e2) -> Graph d v e1 -> Graph d v e2 Source #
Apply a function to change edges' labels.