Class Graph-Matrix

Stub for matrix based graph. Not implemented.

Part of:

package cl-graph, class basic-graph

Default initargs

:vertex-class → 'CL-GRAPH:GRAPH-MATRIX-VERTEX:undirected-edge-class → 'CL-GRAPH:GRAPH-MATRIX-EDGE
:initial-size → 25

Direct Superclass

basic-graphThis is the root class for all graphs in CL-Graph.

Slot

adjencency-matrixReader:adjencency-matrix.
contains-directed-edge-p
Returns true if graph contains at least one directed edge. [?? Not sure if this is really keep up-to-date.]
Accessors:contains-directed-edge-p.
contains-undirected-edge-p
Returns true if graph contains at least one undirected edge. [?? Not sure if this is really keep up-to-date.]
Accessors:contains-undirected-edge-p.
default-edge-class
The default edge class for the graph.
Initargs:default-edge-class; Reader:default-edge-class.
default-edge-type
The default edge type for the graph. This should be one of :undirected or :directed.
Initargs:default-edge-type; Reader:default-edge-type.
directed-edge-class
The class used to create directed edges in the graph. This must extend the base-class for edges of the graph type and directed-edge-mixin. E.g., the directed-edge-class of a graph-container must extend graph-container-edge and directed-edge-mixin.
Initform:'basic-directed-edge, Initargs:directed-edge-class; Reader:directed-edge-class.
edge-keyInitform:#'identity, Initargs:edge-key; Reader:edge-key.
edge-testInitform:#'eq, Initargs:edge-test; Reader:edge-test.
graph-edgesInitargs:graph-edges; Reader:graph-edges.
graph-vertexesInitargs:graph-vertexes; Reader:graph-vertexes.
largest-edge-idInitform:0; Reader:largest-edge-id.
largest-vertex-idInitform:0; Reader:largest-vertex-id.
undirected-edge-class
The class used to create undirected edges in the graph. This must extend the base-class for edges of the graph type. E.g., all edges of a graph-container must extend graph-container-edge
Initform:'basic-edge, Initargs:undirected-edge-class; Reader:undirected-edge-class.
vertex-class
The class of the vertexes in the graph. This must extend the base-class for vertexes of the graph type. E.g., all vertexes of a graph-container must extend graph-container-vertex.
Initform:'basic-vertex, Initargs:vertex-class; Reader:vertex-class.
vertex-keyInitform:#'identity, Initargs:vertex-key; Reader:vertex-key.
vertex-testInitform:#'eq, Initargs:vertex-test; Reader:vertex-test.

Direct Method

make-edge-containerMake-edge-container is called during graph creation and can be used to create specialized contain...
make-vertex-containerMake-vertex-container is called during graph creation and can be used to create specialized conta...

Other Method

add-edgeAdd-edge adds an existing edge to a graph. As add-edge-between-vertexes is generally more natural...
add-edge-between-vertexesAdds an edge between two vertexes and returns it. If force-new? is true, the edge is added eve...
add-edges-to-graph
add-vertexAdds a vertex to a graph. If called with a vertex, then this vertex is added. If called with a va...
adjacentpReturn true if vertex-1 and vertex-2 are connected by an edge. [?? compare with vertices-share-ed...
any-undirected-cycle-pReturns true if there are any undirected cycles in `graph`.
assign-levelSets the depth of `vertex` to level and then recursively sets the depth of all of the children of...
breadth-first-search-graph
breadth-first-visitor
complete-linksAdd edges between vertexes in the new-graph for which the matching vertexes in the old-graph hav...
connected-component-countReturns the number of connected-components of graph.
connected-componentsReturns a union-find-container representing the connected-components of `graph`.
connected-graph-pReturns true if graph is a connected graph and nil otherwise.
delete-edgeDelete the `edge' from the `graph' and returns it.
delete-edge-between-vertexesFinds an edge in the graph between the two specified vertexes. If values (i.e., non-vertexes) are...
delete-vertexRemove a vertex from a graph. The 'vertex-or-value' argument can be a vertex of the graph or a 'v...
depthReturns the maximum depth of the vertexes in graph assuming that the roots are of depth 0 and tha...
dfs
edge-countReturns the number of edges attached to `vertex`. Compare with the more flexible `vertex-degree`.
edgesReturns a list of the edges of `thing`.
empty!Removes all items from the container and returns nil.
find-connected-componentsReturns a list of sub-graphs of `graph` where each sub-graph is a different connected component o...
find-edge-between-vertexesSearches `graph` for an edge that connects vertex-1 and vertex-2. [?? Ignores error-if-not-found...
find-edge-ifReturns the first edge in `thing` for which the `predicate` function returns non-nil. If the `key...
find-edges-ifReturns a list of edges in `thing` for which the `predicate` returns non-nil. [?? why no key func...
find-vertexSearch 'graph' for a vertex with element 'value'. The search is fast but inflexible because it us...
find-vertex-ifReturns the first vertex in `thing` for which the `predicate` function returns non-nil. If the `k...
find-vertexes-ifReturns a list of vertexes in `thing` for which the `predicate` returns non-nil. [?? why no key f...
force-undirectedEnsures that the graph is undirected (possibly by calling change-class on the edges).
generate-directed-free-treeReturns a version of graph which is a directed free tree rooted at root.
graph->dotGenerates a description of `graph` in DOT file format. The formatting can be altered using `graph...
graph->dot-external
graph-edge-mixture-matrixReturn the `mixing-matrix` of graph based on the classifier and the edge-weight function. The mix...
graph-mixing-matrixReturn the `mixing-matrix` of graph based on the classifier and the edge-weight function. The mix...
graph-rootsReturns a list of the roots of graph. A root is defined as a vertex with no source edges (i.e., a...
in-cycle-pReturns true if `start-vertex` is in some cycle in `graph`. This uses child-vertexes to generate ...
in-undirected-cycle-pReturn true if-and-only-if an undirected cycle in graph is reachable from start-vertex.
initialize-vertex-data
insert-itemAdds item to the container
iterate-elements
iterate-nodesApplies function to each node in the container. If the container doesn't have nodes, then this is...
iterate-vertexesCalls `fn` on each of the vertexes of `thing`.
make-edge-for-graphIt should not usually necessary to call this in user code. Creates a new edge between vertex-1 an...
make-filtered-graphTakes a GRAPH and a TEST-FN (a single argument function returning NIL or non-NIL), and filters th...
make-vertex-for-graphCreates a new vertex for graph `graph`. The keyword arguments include: * vertex-class : specify ...
map-over-all-combinations-of-k-edges
map-over-all-combinations-of-k-vertexes
minimum-spanning-treeReturns a minimum spanning tree of graph if one exists and nil otherwise.
project-bipartite-graphCreates the unimodal bipartite projects of existing-graph with vertexes for each vertex of existi...
renumber-edgesAssign a number to each edge in a graph in some unspecified order. [?? internal]
renumber-vertexesAssign a number to each vertex in a graph in some unspecified order. [?? internal]
replace-vertexReplace vertex `old` in graph `graph` with vertex `new`. The edge structure of the graph is maint...
search-for-vertexSearch 'graph' for a vertex with element 'value'. The 'key' function is applied to each element b...
sizeReturns the number of items currently in the container.
subgraph-containingReturns a new graph that is a subset of `graph` that contains `vertex` and all of the other verte...
tag-all-edgesSets the `tag` of all the edges of `thing` to true. [?? why does this exist?]
topological-sortReturns a list of vertexes sorted by the depth from the roots of the graph. See also assign-level...
traverse-elementsWIP
untag-all-edgesSets the `tag` of all the edges of `thing` to nil. [?? why does this exist?]
vertex-countReturns the number of vertexes in `graph`. [?? could be a defun]
vertexesReturns a list of the vertexes of `thing`.