Safe Haskell | Safe |
---|---|

Language | Haskell2010 |

- newtype DGraph v e = DGraph {}
- insertArc :: (Hashable v, Eq v) => Arc v e -> DGraph v e -> DGraph v e
- insertArcs :: (Hashable v, Eq v) => DGraph v e -> [Arc v e] -> DGraph v e
- removeArc :: (Hashable v, Eq v) => Arc v e -> DGraph v e -> DGraph v e
- removeArc' :: (Hashable v, Eq v) => (v, v) -> DGraph v e -> DGraph v e
- removeArcAndVertices :: (Hashable v, Eq v) => Arc v e -> DGraph v e -> DGraph v e
- arcs :: forall v e. (Hashable v, Eq v) => DGraph v e -> [Arc v e]
- arcs' :: (Hashable v, Eq v) => DGraph v e -> [(v, v)]
- containsArc :: (Hashable v, Eq v) => DGraph v e -> Arc v e -> Bool
- containsArc' :: (Hashable v, Eq v) => DGraph v e -> (v, v) -> Bool
- inboundingArcs :: (Hashable v, Eq v) => DGraph v e -> v -> [Arc v e]
- outboundingArcs :: (Hashable v, Eq v) => DGraph v e -> v -> [Arc v e]
- incidentArcs :: (Hashable v, Eq v) => DGraph v e -> v -> [Arc v e]
- isSymmetric :: DGraph v e -> Bool
- isOriented :: DGraph v e -> Bool
- vertexIndegree :: (Hashable v, Eq v) => DGraph v e -> v -> Int
- vertexOutdegree :: (Hashable v, Eq v) => DGraph v e -> v -> Int
- indegrees :: (Hashable v, Eq v) => DGraph v e -> [Int]
- outdegrees :: (Hashable v, Eq v) => DGraph v e -> [Int]
- isBalanced :: (Hashable v, Eq v) => DGraph v e -> Bool
- isRegular :: DGraph v e -> Bool
- isSource :: (Hashable v, Eq v) => DGraph v e -> v -> Bool
- isSink :: (Hashable v, Eq v) => DGraph v e -> v -> Bool
- isInternal :: (Hashable v, Eq v) => DGraph v e -> v -> Bool
- transpose :: (Hashable v, Eq v) => DGraph v e -> DGraph v e
- toUndirected :: (Hashable v, Eq v) => DGraph v e -> UGraph v e
- toList :: (Hashable v, Eq v) => DGraph v e -> [Arc v e]
- fromList :: (Hashable v, Eq v) => [Arc v e] -> DGraph v e

# Documentation

Directed Graph of Vertices in *v* and Arcs with attributes in *e*

Graph DGraph Source # | |

(Eq e, Eq v) => Eq (DGraph v e) Source # | |

(Hashable v, Eq v, Read v, Read e) => Read (DGraph v e) Source # | |

(Hashable v, Eq v, Show v, Show e) => Show (DGraph v e) Source # | |

Generic (DGraph v e) Source # | |

(Arbitrary v, Arbitrary e, Hashable v, Num v, Ord v) => Arbitrary (DGraph v e) Source # | |

(NFData v, NFData e) => NFData (DGraph v e) Source # | |

type Rep (DGraph v e) Source # | |

removeArc' :: (Hashable v, Eq v) => (v, v) -> DGraph v e -> DGraph v e Source #

Same as `removeArc`

but the arc is an ordered pair

arcs' :: (Hashable v, Eq v) => DGraph v e -> [(v, v)] Source #

Same as `arcs`

but the arcs are ordered pairs, and their attributes are
| discarded

containsArc :: (Hashable v, Eq v) => DGraph v e -> Arc v e -> Bool Source #

`O(log n)`

Tell if a directed `Arc`

exists in the graph

containsArc' :: (Hashable v, Eq v) => DGraph v e -> (v, v) -> Bool Source #

Same as `containsArc`

but the arc is an ordered pair

inboundingArcs :: (Hashable v, Eq v) => DGraph v e -> v -> [Arc v e] Source #

Retrieve the inbounding `Arc`

s of a Vertex

outboundingArcs :: (Hashable v, Eq v) => DGraph v e -> v -> [Arc v e] Source #

Retrieve the outbounding `Arc`

s of a Vertex

incidentArcs :: (Hashable v, Eq v) => DGraph v e -> v -> [Arc v e] Source #

Retrieve the incident `Arc`

s of a Vertex
| Both inbounding and outbounding arcs

isSymmetric :: DGraph v e -> Bool Source #

isOriented :: DGraph v e -> Bool Source #

Tell if a `DGraph`

is oriented
| There are none bidirected `Arc`

s
| Note: This is *not* the opposite of `isSymmetric`

vertexIndegree :: (Hashable v, Eq v) => DGraph v e -> v -> Int Source #

Indegree of a vertex
| The number of inbounding `Arc`

s to a vertex

vertexOutdegree :: (Hashable v, Eq v) => DGraph v e -> v -> Int Source #

Outdegree of a vertex
| The number of outbounding `Arc`

s from a vertex

indegrees :: (Hashable v, Eq v) => DGraph v e -> [Int] Source #

Indegrees of all the vertices in a `DGraph`

outdegrees :: (Hashable v, Eq v) => DGraph v e -> [Int] Source #

Outdegree of all the vertices in a `DGraph`

isBalanced :: (Hashable v, Eq v) => DGraph v e -> Bool Source #

Tell if a `DGraph`

is balanced
| A Directed Graph is `balanced`

when its `indegree = outdegree`

isRegular :: DGraph v e -> Bool Source #

Tell if a `DGraph`

is regular
| A Directed Graph is `regular`

when all of its vertices have the same number
| of adjacent vertices AND when the `indegree`

and `outdegree`

of each vertex
| are equal to each other.

isSource :: (Hashable v, Eq v) => DGraph v e -> v -> Bool Source #

Tell if a vertex is a source
| A vertex is a `source`

when its `indegree = 0`

isSink :: (Hashable v, Eq v) => DGraph v e -> v -> Bool Source #

Tell if a vertex is a sink
| A vertex is a `sink`

when its `outdegree = 0`

isInternal :: (Hashable v, Eq v) => DGraph v e -> v -> Bool Source #

Tell if a vertex is internal
| A vertex is a `internal`

when its neither a `source`

nor a `sink`

# Transformations

transpose :: (Hashable v, Eq v) => DGraph v e -> DGraph v e Source #

Get the transpose of a `DGraph`

| The `transpose`

of a directed graph is another directed graph where all of
| its arcs are reversed