(      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe59;T/Each vertex maps to a ' value so it can poit to other vertices4Labeled Edge attributes | Useful for graph plottingJWeighted Edge attributes | Useful for computing some algorithms on graphs2Convert an edge to a pair discargind its attribute-Tell if an edge is a loop | An edge forms a loop- if both of its ends point to the same vertex$Directed Arc with attribute of type e between to Vertices of type v 'Undirected Edge with attribute of type e between to Vertices of type v :The Empty (order-zero) graph with no vertices and no edges%Retrieve the order of a graph | The order% of a graph is its number of vertices$Retrieve the size of a graph | The size" of a graph is its number of edges Retrieve the vertices of a graphRetrieve the edges of a graph$Tell if a vertex exists in the graph!Tell if two vertices are adjacent*Retrieve the adjacent vertices of a vertex^Retrieve the vertices that are directly reachable from a particular | vertex. | A vertex is directly reachable/ to other if there is an edge that | connects from one vertex to< the other | Every vertex is directly reachable from itself*Total number of incident edges of a vertex(Degrees of a all the vertices in a graphMaximum degree of a graphMinimum degree of a graphAverage degree of a graphnDensity of a graph | The ratio of the number of existing edges in the graph to the number of | posible edgesbInsert a vertex into a graph | If the graph already contains the vertex leave the graph untoucheduInsert a many vertices into a graph | New vertices are inserted and already contained vertices are left | untouched#Tell if an edge exists in the graph'Retrieve the incident edges of a vertex Insert an edge into a graph | The involved vertices are inserted if don't exist. If the graph already | contains the edge, its attribute is updated!Same as   but for multiple edges"]Remove a vertex from a graph if present | Every edge incident to this vertex is also removed#Same as " but for multiple vertices$RRemove an edge from a graph if present | The involved vertices are left untouched%Same as $ but for multple edges&QRemove the edge from a graph if present | The involved vertices are also removed'(Tell if a graph is simple | A graph is simple if it has no loops(CGenerate a graph of Int vertices from an adjacency | square matrix)1Get the adjacency matrix representation of a grah*Construct an undirected   between two vertices+Construct a directed  between two vertices,Edges generator-pInsert a link directed to *v* with attribute *a* | If the connnection already exists, the attribute is replaced. Get the links for a given vertex/Get 6s from an association list of vertices and their links0Get  6s from an association list of vertices and their links1Get  6s from an association list of vertices and their links2O(log n) Associate the specified value with the specified key in this map. | If this map previously contained a mapping for the key, leave the map | intact.3To Qs are equal if they point to the same vertices, and the directions | is the same4To  Ns are equal if they point to the same vertices, regardless of the | directionA  !"#$%&'()*+,-./0123456789:;<=>?@3  ' !"#$%&()*+,-./012A  !"#$%&'()  *+@?>=<;:9876543,-./012    !"#$%&'()*+,-./0123456789:;<=>?@Safe$5T I Undirected Graph of Vertices in v and Edges with attributes in eLO(log n) Insert an undirected   into a Iz | The involved vertices are inserted if don't exist. If the graph already | contains the Edge, its attribute is updatedM O(m*log n) Insert many directed   s into a I | Same rules as L are appliedNO(log n) Remove the undirected   from a I7 if present | The involved vertices are left untouchedOSame as N" but the edge is an unordered pairPO(log n) Remove the undirected   from a I5 if present | The involved vertices are also removedQO(n*m) Retrieve the  s of a IRO(log n) Tell if an undirected   exists in the graphSSame as R" but the edge is an unordered pairTRetrieve the incident   s of a VertexU Convert a I to a list of   s | Same as QV Construct a I from a list of  sIJKLMNOPQRSTUVWXYZ[IJKLMNOPQRSTUVIJK[ZYXWLMNOPQRSTUVIJKLMNOPQRSTUVWXYZ[Safe^ The Degree Sequence of a simple I7 is a list of degrees of vertices | in a graph | Use a% to construct a valid Degree Sequencea Construct a ^? from a list of degrees | Negative degree values are discardedbGet the ^ of a simple I | If the graph is not simple (see ') the result is Nothingc Tell if a ^3 is a Graphical Sequence | A Degree Sequence is a Graphical Sequence if a corresponding I4 for | it exists. | Use the Havel-Hakimi algorithmd Tell if a ^ is a Directed Graphic | A Directed Graphic! is a Degree Sequence for wich a DGraphG exists TODO: Kleitman Wang | Fulkerson Chen Anstee theorem algorithmse Tell if a ^[ holds the Handshaking lemma, that is, if the | number of vertices with odd degree is evenfGet the corresponding I of a ^ | If the ^ is not graphical (see c) the | result is Nothing ^_`abcdef ^_`abcdef ^_`abcdef^_`abcdef SafeNoneTjRead a UGraphN from a CSV file | The line "1,2,3,4" translates to the list of edges | "(1  - 2), (1  - 3), (1  - 4)"kSame as j) but rise an exception when parsing failsjkjkjkjkSafelThe Degree Sequence of a DGraph) is a list of pairs (Indegree, Outdegree)lmnlmnlmnlmnSafe5TrDirected Graph of Vertices in v and Arcs with attributes in euO(log n) Insert a directed  into a ry | The involved vertices are inserted if don't exist. If the graph already | contains the Arc, its attribute is updatedv O(m*log n) Insert many directed  s into a r | Same rules as u are appliedwO(log n) Remove the directed  from a r7 if present | The involved vertices are left untouchedxSame as w but the arc is an ordered pairyO(log n) Remove the directed  from a r5 if present | The involved vertices are also removedzO(n*m) Retrieve the s of a r{Same as zF but the arcs are ordered pairs, and their attributes are | discarded|O(log n) Tell if a directed  exists in the graph}Same as | but the arc is an ordered pair~Retrieve the inbounding  s of a VertexRetrieve the outbounding  s of a VertexRetrieve the incident 5s of a Vertex | Both inbounding and outbounding arcs Tell if a r is symmetric | All of its s are bidirected Tell if a r* is oriented | There are none bidirected s | Note: This is not the opposite of 1Indegree of a vertex | The number of inbounding  s to a vertex3Outdegree of a vertex | The number of outbounding s from a vertex#Indegrees of all the vertices in a r#Outdegree of all the vertices in a r Tell if a r$ is balanced | A Directed Graph is balanced when its indegree = outdegree Tell if a r# is regular | A Directed Graph is regularT 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..Tell if a vertex is a source | A vertex is a source when its  indegree = 0,Tell if a vertex is a sink | A vertex is a sink when its  outdegree = 0.Tell if a vertex is internal | A vertex is a internal when its neither a source nor a sinkGet the transpose of a r | The  transposeT of a directed graph is another directed graph where all of | its arcs are reversedConvert a directed r to an undirected UGraph by converting all of | its s into  s Convert a r to a list of  s | Same as z Construct a r from a list of s#rstuvwxyz{|}~rstuvwxyz{|}~#rstuvwxyz{|}~!rstuvwxyz{|}~SafeT5Generate a random ErdQs Rnyi G(n, p) model graph of n vertices with a | p connection probability convinience I generation function convinience r generation function>Generate a random square binary matrix | Useful for use with (SafecTell if two graphs are isomorphic TODO: check first: same number of vertices, same number of edges Tell if a I& is regular | An undirected graph is regular# if each vertex has the same degree Tell if a r# is regular | A directed graph is regular8 if each vertex has the same indigree and | | outdegree NonePlot an undirected IPlot an undirected I to a PNG image filePlot a directed rPlot a directed r to a PNG image file  SafeTBTell if two vertices of a graph are connected | Two vertices are  connectede if it exists a path between them | The order of the vertices is relevant when the graph is directedTell if two vertices of a I& are disconnected | Two vertices are  disconnected( if it doesn't exist a path between them,Tell if a vertex is isolated | A vertex is isolated@ if it has no incidet edges, that is, it has a degree | of zero7Tell if a graph is connected | An Undirected Graph is  connected7 when there is a path between every pair | of vertices,Tell if a graph is bridgeless | A graph is  bridgelessU if it has no edges that, when removed, split the | graph in two isolated components Tell if a I( is orietable | An undirected graph is  orietable9 if it can be converted into a directed | graph that is strongly connected (See ) Tell if a r, is weakly connected | A Directed Graph is weakly connected* if the underlying undirected graph | is  connected Tell if a r. is strongly connected | A Directed Graph is strongly connected< if it contains a directed path | on every pair of vertices   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSSTUVWXYZ[\]^_`abcdefgghijklmnopqrsgghopqttuvwxyz{|}~^_ 'graphite-0.5.0.0-5I7pH1sVUJTG7Ml6swiWg4Data.Graph.TypesData.Graph.UGraph Data.Graph.UGraph.DegreeSequenceData.Graph.Read Data.Graph.DGraph.DegreeSequenceData.Graph.DGraphData.Graph.GenerationData.Graph.MorphismsData.Graph.VisualizeData.Graph.ConnectivityScratchLinksLabeledlabelWeightedweightIsEdgetoPairisLoopArcEdgeGraphemptyordersizevertices edgePairscontainsVertex areAdjacentadjacentVerticesdirectlyReachableVertices vertexDegreedegrees maxDegree minDegree avgDegreedensity insertVertexinsertVerticescontainsEdgePairincidentEdgePairsinsertEdgePairinsertEdgePairs removeVertexremoveVerticesremoveEdgePairremoveEdgePairsremoveEdgePairAndVerticesisSimplefromAdjacencyMatrixtoAdjacencyMatrix<->--> arbitraryEdge insertLinkgetLinks linksToArcs linksToEdges linksToEdges' hashMapInsert$fEqArc$fEqEdge$fArbitraryArc$fArbitraryEdge $fLabeled(,) $fWeighted(,) $fLabeled[]$fWeightedDouble$fWeightedFloat $fWeightedInt $fIsEdgeArc $fIsEdgeEdge $fNFDataArc $fNFDataEdge $fShowEdge $fReadEdge $fOrdEdge $fGenericEdge $fShowArc $fReadArc$fOrdArc $fGenericArcUGraphunUGraph insertEdge insertEdges removeEdge removeEdge'removeEdgeAndVerticesedges containsEdge containsEdge' incidentEdgestoListfromList $fGraphUGraph$fArbitraryUGraph$fNFDataUGraph $fReadUGraph $fShowUGraph $fEqUGraph$fGenericUGraphDegreeSequenceunDegreeSequencedegreeSequencegetDegreeSequenceisGraphicalSequenceisDirectedGraphicholdsHandshakingLemmafromGraphicalSequence$fEqDegreeSequence$fOrdDegreeSequence$fShowDegreeSequencefromCsvfromCsv'DGraphunDGraph insertArc insertArcs removeArc removeArc'removeArcAndVerticesarcsarcs' containsArc containsArc'inboundingArcsoutboundingArcs incidentArcs isSymmetric isOrientedvertexIndegreevertexOutdegree indegrees outdegrees isBalanced isRegularisSourceisSink isInternal transpose toUndirected$fArbitraryDGraph $fGraphDGraph$fNFDataDGraph $fReadDGraph $fShowDGraph $fEqDGraph$fGenericDGraph erdosRenyi erdosRenyiU erdosRenyiD randomMat areIsomorphic isomorphism isURegular isDRegular plotUGraph plotUGraphPng plotDGraph plotDGraphPng areConnectedareDisconnected isIsolated isConnected isBridgeless isOrientableisWeaklyConnectedisStronglyConnectedtestGpathpath' setInsertMany pushBackMany labeledNodes labeledEdges labeledArcstoUndirectedDot toDirectedDot