UndirectedGraph(S)

graph.spad line 3402 [edit on github]

allows us to model graph theory

* : (%, %) -> UndirectedGraph(Product(S, S))

tensor product : the tensor product G*H of graphs G and H is a graph such that the vertex set of G*H is the Cartesian product V(G) times V(H); and any two vertices (u, u') and (v, v') are adjacent in G times H if and only if u' is adjacent with v' and u is adjacent with v.

+ : (%, %) -> %
from FiniteGraph(S)
= : (%, %) -> Boolean
from BasicType
addArrow! : (%, Record(name : String, arrType : NonNegativeInteger, fromOb : NonNegativeInteger, toOb : NonNegativeInteger, xOffset : Integer, yOffset : Integer, map : List(NonNegativeInteger))) -> %
from FiniteGraph(S)
addArrow! : (%, String, S, S) -> %
from FiniteGraph(S)
addArrow! : (%, String, NonNegativeInteger, NonNegativeInteger) -> %
from FiniteGraph(S)
addArrow! : (%, String, NonNegativeInteger, NonNegativeInteger, List(NonNegativeInteger)) -> %
from FiniteGraph(S)
addObject! : (%, S) -> %
from FiniteGraph(S)
addObject! : (%, Record(value : S, posX : NonNegativeInteger, posY : NonNegativeInteger)) -> %
from FiniteGraph(S)
adjacencyMatrix : % -> Matrix(NonNegativeInteger)
from FiniteGraph(S)
arrowName : (%, NonNegativeInteger, NonNegativeInteger) -> String
from FiniteGraph(S)
arrowsFromArrow : (%, NonNegativeInteger) -> List(NonNegativeInteger)
from FiniteGraph(S)
arrowsFromNode : (%, NonNegativeInteger) -> List(NonNegativeInteger)
from FiniteGraph(S)
arrowsToArrow : (%, NonNegativeInteger) -> List(NonNegativeInteger)
from FiniteGraph(S)
arrowsToNode : (%, NonNegativeInteger) -> List(NonNegativeInteger)
from FiniteGraph(S)
cartesian : (%, %) -> UndirectedGraph(Product(S, S))

Cartesian product: the vertex set of G o H is the Cartesian product V(G) times V(H) and any two vertices (u, u') and (v, v') are adjacent in G o H if and only if either u = v and u' is adjacent with v' in H, or u' = v' and u is adjacent with v in G.

closedCartesian : (%, %, Mapping(S, S, S)) -> %

as Cartesian product but returns %.

closedTensor : (%, %, Mapping(S, S, S)) -> %

as tensor product but returns %.

coerce : FinitePoset(S) -> %

coerce FinitePoset to graph

coerce : % -> OutputForm
from CoercibleTo(OutputForm)
createWidth : NonNegativeInteger -> NonNegativeInteger
from FiniteGraph(S)
createX : (NonNegativeInteger, NonNegativeInteger) -> NonNegativeInteger
from FiniteGraph(S)
createY : (NonNegativeInteger, NonNegativeInteger) -> NonNegativeInteger
from FiniteGraph(S)
cycleClosed : (List(S), String) -> %
from FiniteGraph(S)
cycleOpen : (List(S), String) -> %
from FiniteGraph(S)
deepDiagramSvg : (String, %, Boolean) -> Void
from FiniteGraph(S)
diagramHeight : % -> NonNegativeInteger
from FiniteGraph(S)
diagramSvg : (String, %, Boolean) -> Void
from FiniteGraph(S)
diagramSvg2 : (String, %, Boolean) -> Void

diagramSvg(fileName, n, dispArrowName) creates an SVG diagram. This is an alternative version which does not shorten lines. fileName: String is the name of the SVG file that will be created n: % is the graph that will be written dispArrowName: Boolean is true to include the name of each arrow

diagramWidth : % -> NonNegativeInteger
from FiniteGraph(S)
diagramsSvg : (String, List(%), Boolean) -> Void
from FiniteGraph(S)
distance : (%, NonNegativeInteger, NonNegativeInteger) -> Integer
from FiniteGraph(S)
distanceMatrix : % -> Matrix(Integer)
from FiniteGraph(S)
flatten : DirectedGraph(%) -> %
from FiniteGraph(S)
getArrowIndex : (%, NonNegativeInteger, NonNegativeInteger) -> NonNegativeInteger
from FiniteGraph(S)
getArrows : % -> List(Record(name : String, arrType : NonNegativeInteger, fromOb : NonNegativeInteger, toOb : NonNegativeInteger, xOffset : Integer, yOffset : Integer, map : List(NonNegativeInteger)))
from FiniteGraph(S)
getVertexIndex : (%, S) -> NonNegativeInteger
from FiniteGraph(S)
getVertices : % -> List(Record(value : S, posX : NonNegativeInteger, posY : NonNegativeInteger))
from FiniteGraph(S)
inDegree : (%, NonNegativeInteger) -> NonNegativeInteger
from FiniteGraph(S)
incidenceMatrix : % -> Matrix(Integer)
from FiniteGraph(S)
initial : () -> %
from FiniteGraph(S)
isAcyclic? : % -> Boolean
from FiniteGraph(S)
isDirectSuccessor? : (%, NonNegativeInteger, NonNegativeInteger) -> Boolean
from FiniteGraph(S)
isDirected? : () -> Boolean
from FiniteGraph(S)
isFixPoint? : (%, NonNegativeInteger) -> Boolean
from FiniteGraph(S)
isFunctional? : % -> Boolean
from FiniteGraph(S)
isGreaterThan? : (%, NonNegativeInteger, NonNegativeInteger) -> Boolean
from FiniteGraph(S)
kgraph : (List(S), String) -> %
from FiniteGraph(S)
laplacianMatrix : % -> Matrix(Integer)
from FiniteGraph(S)
latex : % -> String
from SetCategory
loopsArrows : % -> List(Loop)
from FiniteGraph(S)
loopsAtNode : (%, NonNegativeInteger) -> List(Loop)
from FiniteGraph(S)
loopsNodes : % -> List(Loop)
from FiniteGraph(S)
looseEquals : (%, %) -> Boolean
from FiniteGraph(S)
map : (%, List(NonNegativeInteger), List(S), Integer, Integer) -> %
from FiniteGraph(S)
mapContra : (%, List(NonNegativeInteger), List(S), Integer, Integer) -> %
from FiniteGraph(S)
max : % -> NonNegativeInteger
from FiniteGraph(S)
max : (%, List(NonNegativeInteger)) -> NonNegativeInteger
from FiniteGraph(S)
merge : (%, %) -> %
from FiniteGraph(S)
min : % -> NonNegativeInteger
from FiniteGraph(S)
min : (%, List(NonNegativeInteger)) -> NonNegativeInteger
from FiniteGraph(S)
nodeFromArrow : (%, NonNegativeInteger) -> List(NonNegativeInteger)
from FiniteGraph(S)
nodeFromNode : (%, NonNegativeInteger) -> List(NonNegativeInteger)
from FiniteGraph(S)
nodeToArrow : (%, NonNegativeInteger) -> List(NonNegativeInteger)
from FiniteGraph(S)
nodeToNode : (%, NonNegativeInteger) -> List(NonNegativeInteger)
from FiniteGraph(S)
outDegree : (%, NonNegativeInteger) -> NonNegativeInteger
from FiniteGraph(S)
routeArrows : (%, NonNegativeInteger, NonNegativeInteger) -> List(NonNegativeInteger)
from FiniteGraph(S)
routeNodes : (%, NonNegativeInteger, NonNegativeInteger) -> List(NonNegativeInteger)
from FiniteGraph(S)
spanningForestArrow : % -> List(Tree(Integer))
from FiniteGraph(S)
spanningForestNode : % -> List(Tree(Integer))
from FiniteGraph(S)
spanningTreeArrow : (%, NonNegativeInteger) -> Tree(Integer)
from FiniteGraph(S)
spanningTreeNode : (%, NonNegativeInteger) -> Tree(Integer)
from FiniteGraph(S)
subdiagramSvg : (Scene(SCartesian(2)), %, Boolean, Boolean) -> Void
from FiniteGraph(S)
terminal : S -> %
from FiniteGraph(S)
undirectedGraph : FinitePoset(S) -> %

undirectedGraph(poset) constructs graph from a partially ordered set. This will be a graph with, at most, one arrow between any two nodes (in each direction).

undirectedGraph : List(S) -> %

constructor for graph with given list of object names. Use this version of the constructor if you don't intend to create diagrams and therefore don't care about x, y coordinates. more objects and arrows can be added later if required.

undirectedGraph : (List(S), List(List(NonNegativeInteger))) -> %

constructor for graph with given objects and adjacency matrix.

undirectedGraph : (List(S), List(Record(fromOb : NonNegativeInteger, toOb : NonNegativeInteger))) -> %

undirectedGraph(obs, ars) constructs graph with objects obs and arrows ars. This constructor just has pure abstract graph information without decoration information.

undirectedGraph : List(Record(value : S, posX : NonNegativeInteger, posY : NonNegativeInteger)) -> %

constructor for graph with given objects more objects and arrows can be added later if required.

undirectedGraph : (List(Record(value : S, posX : NonNegativeInteger, posY : NonNegativeInteger)), List(Record(name : String, arrType : NonNegativeInteger, fromOb : NonNegativeInteger, toOb : NonNegativeInteger, xOffset : Integer, yOffset : Integer, map : List(NonNegativeInteger)))) -> %

constructor for graph with given objects and arrows more objects and arrows can be added later if required.

unit : (List(S), String) -> %
from FiniteGraph(S)
~= : (%, %) -> Boolean
from BasicType

FiniteGraph(S)

SetCategory

CoercibleTo(OutputForm)

BasicType