Class Tinaa-Part-Graph

Part of:

package tinaa

Default initargs

:vertex-class → 'TINAA-PART-VERTEX:directed-edge-class → 'CL-GRAPH:GRAPH-CONTAINER-DIRECTED-EDGE
:undirected-edge-class → 'CL-GRAPH:GRAPH-CONTAINER-EDGE:initial-size → 25

Slot

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.
root-partInitargs:root-part; Reader:root-part.
testInitform:#'equal, Initargs:test.
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.

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...
best-itemReturns the item in items with the 'best' value of function where 'best' is determined by test. Y...
breadth-first-search-graph
breadth-first-visitor
collect-elementsReturns a possibly filtered and possibly transformed list of the elements in a container. If the ...
collect-elements-stably
collect-nodesReturns a possibly filtered and possibly transformed list of the nodes in a container. If the con...
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.
count-elements
count-elements-if
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-element
delete-item
delete-item-if
delete-listDeletes each item in the list from the container.
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
dfs-visit
edge-countReturns the number of edges attached to `vertex`. Compare with the more flexible `vertex-degree`.
edgesReturns a list of the edges of `thing`.
element-positionReturns the position of element in container using test and key to match. Key defaults to identit...
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-edgeSearch `graph` for an edge whose vertexes match `edge`. This means that `vertex-1` of the edge in...
find-edge-between-vertexesSearches `graph` for an edge that connects vertex-1 and vertex-2. [?? Ignores error-if-not-found...
find-edge-between-vertexes-ifFinds and returns an edge between value-or-vertex-1 and value-or-vertex-2 if one exists. Unless e...
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-elementFor now, compare find-item.
find-itemFind item in container using the container's test method for comparisons. The test method must ta...
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...
first-element
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
insert-listAdds each item in the list to the container in an upspecified order.
insert-new-itemAdds item to the container unless it is already there
insert-sequenceAdds each item in the sequence to the container in an upspecified order.
iteratable-pReturns true if thing knows how to iterate-nodes.
iterate-edgesCalls `fn` on each edge of graph or vertex.
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-containerMake-edge-container is called during graph creation and can be used to create specialized contain...
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-node-for-container
make-vertex-containerMake-vertex-container is called during graph creation and can be used to create specialized conta...
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.
nth-elementReturns the nth element in the container's 'natural' order.
predecessor
print-containerPrints the contents of container (using PRINT). Returns the container.
project-bipartite-graphCreates the unimodal bipartite projects of existing-graph with vertexes for each vertex of existi...
reduce-container
reduce-elements
reduce-nodes
remove-items-ifRemoves items from a container that satisfy the test. The container is returned.
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-element
search-for-itemHunt for the item in the container. Key and Test are as in member.
search-for-matchHunt for an item in the container that satisfies the predicate. Key is as in count-if.
search-for-matching-node
search-for-node
search-for-node*
search-for-vertexSearch 'graph' for a vertex with element 'value'. The 'key' function is applied to each element b...
setffirst-element
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...
successor
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
unique-elements
unique-nodes
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`.