Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
- newtype UGraph v e = UGraph {}
- newtype Probability = P Float
- probability :: Float -> Probability
- erdosRenyiIO :: Int -> Probability -> IO (UGraph Int ())
- randomMatIO :: Int -> IO [[Int]]
- removeVertex :: (Hashable v, Eq v) => v -> UGraph v e -> UGraph v e
- insertEdge :: (Hashable v, Eq v) => Edge v e -> UGraph v e -> UGraph v e
- insertEdges :: (Hashable v, Eq v) => [Edge v e] -> UGraph v e -> UGraph v e
- removeEdge :: (Hashable v, Eq v) => Edge v e -> UGraph v e -> UGraph v e
- removeEdge' :: (Hashable v, Eq v) => (v, v) -> UGraph v e -> UGraph v e
- removeEdgeAndVertices :: (Hashable v, Eq v) => Edge v e -> UGraph v e -> UGraph v e
- removeEdgeAndVertices' :: (Hashable v, Eq v) => (v, v) -> UGraph v e -> UGraph v e
- edges :: forall v e. (Hashable v, Eq v) => UGraph v e -> [Edge v e]
- containsEdge :: (Hashable v, Eq v) => UGraph v e -> Edge v e -> Bool
- containsEdge' :: (Hashable v, Eq v) => UGraph v e -> (v, v) -> Bool
- incidentEdges :: (Hashable v, Eq v) => UGraph v e -> v -> [Edge v e]
- areIsomorphic :: UGraph v e -> UGraph v' e' -> Bool
- isomorphism :: UGraph v e -> UGraph v' e' -> v -> v'
- newtype DegreeSequence = DegreeSequence {
- unDegreeSequence :: [Int]
- degreeSequence :: [Int] -> DegreeSequence
- getDegreeSequence :: (Hashable v, Eq v) => UGraph v e -> Maybe DegreeSequence
- isGraphicalSequence :: DegreeSequence -> Bool
- fromGraphicalSequence :: DegreeSequence -> Maybe (UGraph Int ())
Documentation
Undirected Graph of Vertices in v and Edges with attributes in e
newtype Probability Source #
Probability value between 0 and 1
probability :: Float -> Probability Source #
Construct a Probability
value
erdosRenyiIO :: Int -> Probability -> IO (UGraph Int ()) Source #
Generate a random 'UGraph of the Erdős–Rényi G(n, p) model
removeVertex :: (Hashable v, Eq v) => v -> UGraph v e -> UGraph v e Source #
O(n)
Remove a vertex from a 'UGraph if present
| Every Edge
incident to this vertex is also removed
insertEdge :: (Hashable v, Eq v) => Edge v e -> UGraph v e -> UGraph v e Source #
O(log n)
Insert an undirected Edge
into a 'UGraph
| The involved vertices are inserted if don't exist. If the graph already
| contains the Edge, its attribute is updated
insertEdges :: (Hashable v, Eq v) => [Edge v e] -> UGraph v e -> UGraph v e Source #
O(m*log n)
Insert many directed Edge
s into a 'UGraph
| Same rules as insertEdge
are applied
removeEdge :: (Hashable v, Eq v) => Edge v e -> UGraph v e -> UGraph v e Source #
O(log n)
Remove the undirected Edge
from a 'UGraph if present
| The involved vertices are left untouched
removeEdge' :: (Hashable v, Eq v) => (v, v) -> UGraph v e -> UGraph v e Source #
Same as removeEdge
but the edge is an unordered pair
removeEdgeAndVertices :: (Hashable v, Eq v) => Edge v e -> UGraph v e -> UGraph v e Source #
O(log n)
Remove the undirected Edge
from a 'UGraph if present
| The involved vertices are also removed
removeEdgeAndVertices' :: (Hashable v, Eq v) => (v, v) -> UGraph v e -> UGraph v e Source #
Same as removeEdgeAndVertices
but the edge is an unordered pair
edges :: forall v e. (Hashable v, Eq v) => UGraph v e -> [Edge v e] Source #
O(n*m)
Retrieve the Edge
s of a 'UGraph
containsEdge :: (Hashable v, Eq v) => UGraph v e -> Edge v e -> Bool Source #
O(log n)
Tell if an undirected Edge
exists in the graph
containsEdge' :: (Hashable v, Eq v) => UGraph v e -> (v, v) -> Bool Source #
Same as containsEdge
but the edge is an unordered pair
incidentEdges :: (Hashable v, Eq v) => UGraph v e -> v -> [Edge v e] Source #
Retrieve the incident Edge
s of a Vertex
isomorphism :: UGraph v e -> UGraph v' e' -> v -> v' Source #
newtype DegreeSequence Source #
The Degree Sequence of a simple 'UGraph is a list of degrees
degreeSequence :: [Int] -> DegreeSequence Source #
Construct a DegreeSequence
from a list of degrees
| Negative degree values are discarded
getDegreeSequence :: (Hashable v, Eq v) => UGraph v e -> Maybe DegreeSequence Source #
Get the DegreeSequence
of a simple 'UGraph
| If the graph is not simple
(see isSimple
) the result is Nothing
isGraphicalSequence :: DegreeSequence -> Bool Source #
Tell if a DegreeSequence
is a Graphical Sequence
| A Degree Sequence is a Graphical Sequence
if a corresponding 'UGraph for
| it exists
fromGraphicalSequence :: DegreeSequence -> Maybe (UGraph Int ()) Source #
Get the corresponding 'UGraph of a DegreeSequence
| If the DegreeSequence
is not graphical (see isGraphicalSequence
) the
| result is Nothing