The epigraph Reference Manual

This is the epigraph Reference Manual, version 0.0.2, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 16:21:41 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 epigraph

A library for representing and processing graphs (nodes and edges)

Author

Cyrus Harmon <>

License

BSD

Version

0.0.2

Dependency

alexandria (system).

Source

epigraph.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


3.1 Lisp


3.1.1 epigraph/epigraph.asd

Source

epigraph.asd.

Parent Component

epigraph (system).

ASDF Systems

epigraph.


3.1.2 epigraph/package.lisp

Dependency

readme (file).

Source

epigraph.asd.

Parent Component

epigraph (system).

Packages

epigraph.


3.1.3 epigraph/utilities.lisp

Dependency

package.lisp (file).

Source

epigraph.asd.

Parent Component

epigraph (system).

Internals

3.1.4 epigraph/epigraph.lisp

Dependency

utilities.lisp (file).

Source

epigraph.asd.

Parent Component

epigraph (system).

Public Interface
Internals

3.1.5 epigraph/simple-edge-list-graph.lisp

Dependency

epigraph.lisp (file).

Source

epigraph.asd.

Parent Component

epigraph (system).

Public Interface
Internals

3.2 Static


3.2.1 epigraph/COPYRIGHT

Source

epigraph.asd.

Parent Component

epigraph (system).


3.2.2 epigraph/README

Dependency

copyright (file).

Source

epigraph.asd.

Parent Component

epigraph (system).


4 Packages

Packages are listed by definition order.


4.1 epigraph

Source

package.lisp.

Nickname

graph

Use List

common-lisp.

Public Interface
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


5.1 Public Interface


5.1.1 Special variables

Special Variable: *default-edge-class*
Package

epigraph.

Source

epigraph.lisp.

Special Variable: *default-graph-class*
Package

epigraph.

Source

epigraph.lisp.


5.1.2 Ordinary functions

Function: break-cycles (graph &key start pick-function)

Finds all of the cycles in a graph and returns four VALUEs, a list of the edges that make complete the cycles, a list of the paths that form the cycles, a list of the cycle-forming edges, and a copy of GRAPH, with the cycle-forming edges removed.

Package

epigraph.

Source

epigraph.lisp.

Function: find-connected-components (graph &key start)
Package

epigraph.

Source

epigraph.lisp.

Function: find-cycle (graph &key start test)

Finds a cycle in graph, if one exists, using depth-first-search and returns two VALUES, a list of the edges in the cycle, and a list of the nodes in the cycle.

Package

epigraph.

Source

epigraph.lisp.

Function: find-cycle-edges (graph &key start test)
Package

epigraph.

Source

epigraph.lisp.

Function: find-longest-path (graph)

Returns a single vector containing a longest path reachable from any node in graph. The vector contains the elements in path order, starting with the first node and ending in the most distant node on the path.

Package

epigraph.

Source

epigraph.lisp.

Function: find-longest-paths (graph)

Finds a longest path acecssible from each node in the
graph. Returns a list of vectors containing the longest paths for each node. Each vector represents the path to the farthest node from the first node of the vector to the last node of the vector.

Package

epigraph.

Source

epigraph.lisp.

Function: graph-distance (graph node1 node2)

Returns the (shortest) number of edges between node1 and node2. If node1 is node2, the distance is 0.

Package

epigraph.

Source

epigraph.lisp.

Function: graph-distance-hash-table (graph)

Returns a hash-table where each value is another hash-table, where each value is the distance from the node that is the key of the first hash-table to the node that is the key of the second hash-table.

Package

epigraph.

Source

epigraph.lisp.

Function: graph-distance-matrix (graph)

Returns two values, an array where each entry i,j is the distance from node i to node j (distance from a node to itself is 0) and an array of nodes in the order corresponding to a dimension of the array of distances.

Package

epigraph.

Source

epigraph.lisp.

Function: make-graph (&rest args &key class node-test &allow-other-keys)

Creates a GRAPH instance whose actual class will either be specified by GRAPH-CLASS or by *DEFAULT-GRAPH-CLASS*.

Package

epigraph.

Source

epigraph.lisp.

Function: node-equal (graph node1 node2 &key test)
Package

epigraph.

Source

epigraph.lisp.

Function: node-find (graph item sequence &key from-end start end key test test-not)
Package

epigraph.

Source

epigraph.lisp.

Function: node-position (graph item sequence &key from-end start end key test test-not)
Package

epigraph.

Source

epigraph.lisp.

Function: node-remove (graph item sequence &key from-end start end key count test test-not)
Package

epigraph.

Source

epigraph.lisp.

Function: remove-connected-component (graph &key start)
Package

epigraph.

Source

epigraph.lisp.


5.1.3 Generic functions

Generic Function: add-edge (graph edge)

Adds an edge to the graph.

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: add-edge ((graph simple-edge-list-graph) (edge edge))
Source

simple-edge-list-graph.lisp.

Generic Function: add-edge-between-nodes (graph node1 node2 &key edge-class)

Creates an edge from node1 to node2, adds it to the graph, and returns the edge.

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: add-edge-between-nodes ((graph simple-edge-list-graph) node1 node2 &key edge-class)
Source

simple-edge-list-graph.lisp.

Generic Function: add-node (graph node)

Add a node to the graph.

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: add-node ((graph simple-edge-list-graph) node)
Source

simple-edge-list-graph.lisp.

Generic Function: bfs (graph start end &key key test neighbor-fn)

Performs a breadth-first-search on graph starting
at start and returns a path end if end is reachable from start, otherwise returns NIL. [DOCUMENT KEY AND TEST ARGS PLEASE!]

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: bfs ((graph graph) start end &key key test neighbor-fn)
Generic Function: bfs-map (graph start fn &key end key test neighbor-fn)

Performs a breadth-first-search on graph starting
at start until node end is found, if it is specified, calling fn, a function of one argument, for each node as it is found. [DOCUMENT KEY AND TEST ARGS PLEASE!]

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: bfs-map ((graph graph) start fn &key end key test neighbor-fn)
Generic Function: bfs-map-edges (graph start fn &key end key test)

Performs a breadth-first-search on graph, starting
at start until node end is found, if it is specified, calling fn, a function of one argument, for each edge as it is found. [DOCUMENT KEY AND TEST ARGS PLEASE!]

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: bfs-map-edges ((graph graph) start fn &key end key test)
Generic Function: copy-edge (edge)

Returns a copy of the edge.

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: copy-edge ((edge edge))
Generic Function: copy-graph (graph &key copy-edges)

Returns a copy of the graph which will contain the
same nodes as the original graph and either the same edges as graph or copies of the edges, depending on the value of &key copy-edges.

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: copy-graph ((graph simple-edge-list-graph) &key copy-edges)
Source

simple-edge-list-graph.lisp.

Generic Function: dfs (graph start end &key key test neighbor-fn)

Performs a depth-first-search on graph, starting at
start and returns a path end if end is reachable from start, otherwise returns NIL. [DOCUMENT KEY AND TEST ARGS PLEASE!]

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: dfs ((graph graph) start end &key key test neighbor-fn)
Generic Function: dfs-map (graph start fn &key end key test neighbor-fn)

Performs a depth-first-search on graph, starting at
start until node end is found, if it is specified, calling fn, a function of one argument, for each node as it is found. [DOCUMENT KEY AND TEST ARGS PLEASE!]

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: dfs-map ((graph graph) start fn &key end key test neighbor-fn)
Generic Function: dfs-map-edges (graph start fn &key end key test)

Performs a depth-first-search on graph, starting at
start until node end is found, if it is specified, calling fn, a function of one argument, for each edge as it is found. [DOCUMENT KEY AND TEST ARGS PLEASE!]

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: dfs-map-edges ((graph graph) start fn &key end key test)
Generic Reader: edge-data (object)
Package

epigraph.

Methods
Reader Method: edge-data ((edge edge))

automatically generated reader method

Source

epigraph.lisp.

Target Slot

data.

Generic Writer: (setf edge-data) (object)
Package

epigraph.

Methods
Writer Method: (setf edge-data) ((edge edge))

automatically generated writer method

Source

epigraph.lisp.

Target Slot

data.

Generic Function: edgep (graph node1 node2)

Returns the edge that connects node1 and node2 in
graph if the edge is present in the graph, otherwise returns NIL.

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: edgep ((graph simple-edge-list-graph) node1 node2)
Source

simple-edge-list-graph.lisp.

Generic Function: edges (graph)

Returns the edges of graph. Currently the
format in which the edges are returned is not specified.

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: edges ((graph simple-edge-list-graph))
Source

simple-edge-list-graph.lisp.

Generic Function: edges-nodes-equal (edge1 edge2 &key test)

Returns T if the two edges connect the same
nodes. Note that currently there is no notion of direction between edges, so edges from A to B and from B to A are equivalent and therefore edges-nodes-equal returns T for those two edges.

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: edges-nodes-equal ((edge1 edge) (edge2 edge) &key test)
Generic Function: find-edges-containing (graph node &key test)

Returns a list of the edges in graph that start or end with node.

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: find-edges-containing ((graph simple-edge-list-graph) node &key test)
Source

simple-edge-list-graph.lisp.

Generic Function: find-edges-from (graph node &key test)

Returns a list of the edges in graph that begin with node.

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: find-edges-from ((graph simple-edge-list-graph) node &key test)
Source

simple-edge-list-graph.lisp.

Generic Function: find-edges-to (graph node &key test)

Returns a list of the edges in graph that end with node.

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: find-edges-to ((graph simple-edge-list-graph) node &key test)
Source

simple-edge-list-graph.lisp.

Generic Function: first-node (graph)

Returns the first node in a graph. Note that not
all graphs are rquired to support this function and that even graphs that do support this might not have a consistent ordering of the nodes such that successive first-node calls might not return the same node.

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: first-node ((graph simple-edge-list-graph))
Source

simple-edge-list-graph.lisp.

Generic Function: map-edges (fn result-type graph)

Calls fn, a function of one argument, for each edge in graph in an unspecified order.

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: map-edges (fn result-type (graph simple-edge-list-graph))
Source

simple-edge-list-graph.lisp.

Generic Function: map-edges->list (fn graph)

Calls fn, a function of one argument, for each edge
in graph in an unspecified order and accumulates the return first returned values of fn in a list.

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: map-edges->list (fn (graph simple-edge-list-graph))
Source

simple-edge-list-graph.lisp.

Generic Function: map-nodes (fn graph)

Calls FN on every node in the graph, without regard to the configuration of the graph.

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: map-nodes (fn (graph simple-edge-list-graph))
Source

simple-edge-list-graph.lisp.

Generic Function: map-nodes->list (fn graph)

Calls FN on every node in the graph, without regard
to the configuration of the graph and returns the resulting values in a list.

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: map-nodes->list (fn (graph simple-edge-list-graph))
Source

simple-edge-list-graph.lisp.

Generic Function: neighbors (graph node &key test)

Returns a list of the nodes that are connected to node.

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: neighbors (graph node &key test)
Generic Function: node-count (graph)

Returns the number of nodes in graph.

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: node-count ((graph simple-edge-list-graph))
Source

simple-edge-list-graph.lisp.

Generic Reader: node1 (object)
Package

epigraph.

Methods
Reader Method: node1 ((edge edge))

automatically generated reader method

Source

epigraph.lisp.

Target Slot

node1.

Generic Writer: (setf node1) (object)
Package

epigraph.

Methods
Writer Method: (setf node1) ((edge edge))

automatically generated writer method

Source

epigraph.lisp.

Target Slot

node1.

Generic Reader: node2 (object)
Package

epigraph.

Methods
Reader Method: node2 ((edge edge))

automatically generated reader method

Source

epigraph.lisp.

Target Slot

node2.

Generic Writer: (setf node2) (object)
Package

epigraph.

Methods
Writer Method: (setf node2) ((edge edge))

automatically generated writer method

Source

epigraph.lisp.

Target Slot

node2.

Generic Function: nodes (graph)

Returns the nodes of graph. Currently the
format in which the nodes are returned is not specified.

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: nodes ((graph simple-edge-list-graph))
Source

simple-edge-list-graph.lisp.

Method: nodes ((edge edge))
Generic Function: other-edge-node (edge node)

Returns the other node in the edge. That is if
there is an edge between A and B, other-edge-node of A would return B. If the edge is a self-edge, returns node.

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: other-edge-node ((edge edge) node)
Generic Function: print-edge-data (object stream)

Prints data about a given edge. This function is
called from the print-object method specialied on EDGE objects. To add additional data to be printed by subclasses of edge create an :AFTER method on PRINT-EDGE-DATA.

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: print-edge-data ((object edge) stream)
Generic Function: remove-edge (graph edge &key test)

Removes edge from the graph.

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: remove-edge ((graph simple-edge-list-graph) (edge edge) &key test)
Source

simple-edge-list-graph.lisp.

Generic Function: remove-edge-between-nodes (graph node1 node2)

Removes the edge from node1 to node2 in the graph.

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: remove-edge-between-nodes ((graph simple-edge-list-graph) node1 node2)
Source

simple-edge-list-graph.lisp.

Generic Function: remove-node (graph node)

Remove a node from the graph.

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: remove-node ((graph simple-edge-list-graph) node)
Source

simple-edge-list-graph.lisp.

Generic Function: self-edge-p (graph edge &key test)

Returns true if the edge connects a given node to itself.

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: self-edge-p ((graph simple-edge-list-graph) edge &key test)
Source

simple-edge-list-graph.lisp.


5.1.4 Standalone methods

Method: print-object ((object edge) stream)
Source

epigraph.lisp.


5.1.5 Classes

Class: edge

Instances of the EDGE class represent edges between nodes in a graph.

Package

epigraph.

Source

epigraph.lisp.

Direct methods
Direct slots
Slot: node1
Initargs

:node1

Readers

node1.

Writers

(setf node1).

Slot: node2
Initargs

:node2

Readers

node2.

Writers

(setf node2).

Slot: data
Initargs

:data

Readers

edge-data.

Writers

(setf edge-data).

Class: graph

The protocol class of graphs. The intent is that
there will be concrete subclasses of GRAPH with different implementations of storing the nodes and edges.

Package

epigraph.

Source

epigraph.lisp.

Direct subclasses

simple-edge-list-graph.

Direct methods
Direct slots
Slot: node-test
Initform

(quote eql)

Initargs

:node-test

Readers

graph-node-test.

Writers

(setf graph-node-test).

Class: simple-edge-list-graph

A concrete subclass of graph that represents the edges in the graph with a list of edges between nodes.

Package

epigraph.

Source

simple-edge-list-graph.lisp.

Direct superclasses

graph.

Direct methods
Direct slots
Slot: node-hash
Initform

(make-hash-table :test (quote equal))

Initargs

:nodes

Readers

graph-node-hash.

Writers

(setf graph-node-hash).

Slot: edges
Initargs

:edges

Readers

graph-edge-list.

Writers

(setf graph-edge-list).


5.2 Internals


5.2.1 Special variables

Special Variable: *bfs-depth*
Package

epigraph.

Source

epigraph.lisp.

Special Variable: *dfs-depth*
Package

epigraph.

Source

epigraph.lisp.


5.2.2 Macros

Macro: with-graph-iterator ((function graph) &body body)
Package

epigraph.

Source

simple-edge-list-graph.lisp.


5.2.3 Ordinary functions

Function: carhash (hash-table)
Package

epigraph.

Source

utilities.lisp.

Function: floyd-warshall (graph)
Package

epigraph.

Source

epigraph.lisp.

Function: make-node-hash-table (graph)
Package

epigraph.

Source

epigraph.lisp.

Function: makeq ()
Package

epigraph.

Source

epigraph.lisp.

Function: remove-keyword-args (keywords list)
Package

epigraph.

Source

utilities.lisp.


5.2.4 Generic functions

Generic Function: bfs2 (graph start end &key key test)
Package

epigraph.

Methods
Method: bfs2 ((graph graph) start end &key key test)
Source

epigraph.lisp.

Generic Function: dfs2 (graph start end &key key test)
Package

epigraph.

Methods
Method: dfs2 ((graph graph) start end &key key test)
Source

epigraph.lisp.

Generic Function: find-edge (graph node1 node2)
Package

epigraph.

Methods
Method: find-edge ((graph simple-edge-list-graph) node1 node2)
Source

simple-edge-list-graph.lisp.

Generic Function: find-self-edges (graph node &key test)

Returns a list of the edges in graph that begin and end with node.

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: find-self-edges ((graph simple-edge-list-graph) node &key test)
Source

simple-edge-list-graph.lisp.

Generic Reader: graph-edge-list (object)
Package

epigraph.

Methods
Reader Method: graph-edge-list ((simple-edge-list-graph simple-edge-list-graph))

automatically generated reader method

Source

simple-edge-list-graph.lisp.

Target Slot

edges.

Generic Writer: (setf graph-edge-list) (object)
Package

epigraph.

Methods
Writer Method: (setf graph-edge-list) ((simple-edge-list-graph simple-edge-list-graph))

automatically generated writer method

Source

simple-edge-list-graph.lisp.

Target Slot

edges.

Generic Reader: graph-node-hash (object)
Package

epigraph.

Methods
Reader Method: graph-node-hash ((simple-edge-list-graph simple-edge-list-graph))

automatically generated reader method

Source

simple-edge-list-graph.lisp.

Target Slot

node-hash.

Generic Writer: (setf graph-node-hash) (object)
Package

epigraph.

Methods
Writer Method: (setf graph-node-hash) ((simple-edge-list-graph simple-edge-list-graph))

automatically generated writer method

Source

simple-edge-list-graph.lisp.

Target Slot

node-hash.

Generic Function: graph-node-p (graph node)

Returns t if node is a node in graph.

Package

epigraph.

Source

epigraph.lisp.

Methods
Method: graph-node-p ((graph simple-edge-list-graph) node)
Source

simple-edge-list-graph.lisp.

Generic Reader: graph-node-test (object)
Package

epigraph.

Methods
Reader Method: graph-node-test ((graph graph))

automatically generated reader method

Source

epigraph.lisp.

Target Slot

node-test.

Generic Writer: (setf graph-node-test) (object)
Package

epigraph.

Methods
Writer Method: (setf graph-node-test) ((graph graph))

automatically generated writer method

Source

epigraph.lisp.

Target Slot

node-test.

Generic Function: graph-search (graph start end &key key test queueing-function)
Package

epigraph.

Methods
Method: graph-search ((graph graph) start end &key key test queueing-function)
Source

epigraph.lisp.

Generic Function: neighbors-and-edges (graph node &key test)
Package

epigraph.

Methods
Method: neighbors-and-edges (graph node &key test)
Source

epigraph.lisp.

Generic Function: qappend (q item)
Package

epigraph.

Source

epigraph.lisp.

Methods
Method: qappend (q item)
Generic Reader: qitems (object)
Package

epigraph.

Methods
Reader Method: qitems ((q q))

automatically generated reader method

Source

epigraph.lisp.

Target Slot

items.

Generic Writer: (setf qitems) (object)
Package

epigraph.

Methods
Writer Method: (setf qitems) ((q q))

automatically generated writer method

Source

epigraph.lisp.

Target Slot

items.

Generic Reader: qlast (object)
Package

epigraph.

Methods
Reader Method: qlast ((q q))

automatically generated reader method

Source

epigraph.lisp.

Target Slot

last.

Generic Writer: (setf qlast) (object)
Package

epigraph.

Methods
Writer Method: (setf qlast) ((q q))

automatically generated writer method

Source

epigraph.lisp.

Target Slot

last.

Generic Function: qpop (q)
Package

epigraph.

Source

epigraph.lisp.

Methods
Method: qpop (q)
Generic Function: qpush (q item)
Package

epigraph.

Source

epigraph.lisp.

Methods
Method: qpush (q item)

5.2.5 Classes

Class: q
Package

epigraph.

Source

epigraph.lisp.

Direct methods
Direct slots
Slot: items
Readers

qitems.

Writers

(setf qitems).

Slot: last
Package

common-lisp.

Readers

qlast.

Writers

(setf qlast).


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   (  
A   B   C   D   E   F   G   M   N   O   P   Q   R   S   W  
Index Entry  Section

(
(setf edge-data): Public generic functions
(setf edge-data): Public generic functions
(setf graph-edge-list): Private generic functions
(setf graph-edge-list): Private generic functions
(setf graph-node-hash): Private generic functions
(setf graph-node-hash): Private generic functions
(setf graph-node-test): Private generic functions
(setf graph-node-test): Private generic functions
(setf node1): Public generic functions
(setf node1): Public generic functions
(setf node2): Public generic functions
(setf node2): Public generic functions
(setf qitems): Private generic functions
(setf qitems): Private generic functions
(setf qlast): Private generic functions
(setf qlast): Private generic functions

A
add-edge: Public generic functions
add-edge: Public generic functions
add-edge-between-nodes: Public generic functions
add-edge-between-nodes: Public generic functions
add-node: Public generic functions
add-node: Public generic functions

B
bfs: Public generic functions
bfs: Public generic functions
bfs-map: Public generic functions
bfs-map: Public generic functions
bfs-map-edges: Public generic functions
bfs-map-edges: Public generic functions
bfs2: Private generic functions
bfs2: Private generic functions
break-cycles: Public ordinary functions

C
carhash: Private ordinary functions
copy-edge: Public generic functions
copy-edge: Public generic functions
copy-graph: Public generic functions
copy-graph: Public generic functions

D
dfs: Public generic functions
dfs: Public generic functions
dfs-map: Public generic functions
dfs-map: Public generic functions
dfs-map-edges: Public generic functions
dfs-map-edges: Public generic functions
dfs2: Private generic functions
dfs2: Private generic functions

E
edge-data: Public generic functions
edge-data: Public generic functions
edgep: Public generic functions
edgep: Public generic functions
edges: Public generic functions
edges: Public generic functions
edges-nodes-equal: Public generic functions
edges-nodes-equal: Public generic functions

F
find-connected-components: Public ordinary functions
find-cycle: Public ordinary functions
find-cycle-edges: Public ordinary functions
find-edge: Private generic functions
find-edge: Private generic functions
find-edges-containing: Public generic functions
find-edges-containing: Public generic functions
find-edges-from: Public generic functions
find-edges-from: Public generic functions
find-edges-to: Public generic functions
find-edges-to: Public generic functions
find-longest-path: Public ordinary functions
find-longest-paths: Public ordinary functions
find-self-edges: Private generic functions
find-self-edges: Private generic functions
first-node: Public generic functions
first-node: Public generic functions
floyd-warshall: Private ordinary functions
Function, break-cycles: Public ordinary functions
Function, carhash: Private ordinary functions
Function, find-connected-components: Public ordinary functions
Function, find-cycle: Public ordinary functions
Function, find-cycle-edges: Public ordinary functions
Function, find-longest-path: Public ordinary functions
Function, find-longest-paths: Public ordinary functions
Function, floyd-warshall: Private ordinary functions
Function, graph-distance: Public ordinary functions
Function, graph-distance-hash-table: Public ordinary functions
Function, graph-distance-matrix: Public ordinary functions
Function, make-graph: Public ordinary functions
Function, make-node-hash-table: Private ordinary functions
Function, makeq: Private ordinary functions
Function, node-equal: Public ordinary functions
Function, node-find: Public ordinary functions
Function, node-position: Public ordinary functions
Function, node-remove: Public ordinary functions
Function, remove-connected-component: Public ordinary functions
Function, remove-keyword-args: Private ordinary functions

G
Generic Function, (setf edge-data): Public generic functions
Generic Function, (setf graph-edge-list): Private generic functions
Generic Function, (setf graph-node-hash): Private generic functions
Generic Function, (setf graph-node-test): Private generic functions
Generic Function, (setf node1): Public generic functions
Generic Function, (setf node2): Public generic functions
Generic Function, (setf qitems): Private generic functions
Generic Function, (setf qlast): Private generic functions
Generic Function, add-edge: Public generic functions
Generic Function, add-edge-between-nodes: Public generic functions
Generic Function, add-node: Public generic functions
Generic Function, bfs: Public generic functions
Generic Function, bfs-map: Public generic functions
Generic Function, bfs-map-edges: Public generic functions
Generic Function, bfs2: Private generic functions
Generic Function, copy-edge: Public generic functions
Generic Function, copy-graph: Public generic functions
Generic Function, dfs: Public generic functions
Generic Function, dfs-map: Public generic functions
Generic Function, dfs-map-edges: Public generic functions
Generic Function, dfs2: Private generic functions
Generic Function, edge-data: Public generic functions
Generic Function, edgep: Public generic functions
Generic Function, edges: Public generic functions
Generic Function, edges-nodes-equal: Public generic functions
Generic Function, find-edge: Private generic functions
Generic Function, find-edges-containing: Public generic functions
Generic Function, find-edges-from: Public generic functions
Generic Function, find-edges-to: Public generic functions
Generic Function, find-self-edges: Private generic functions
Generic Function, first-node: Public generic functions
Generic Function, graph-edge-list: Private generic functions
Generic Function, graph-node-hash: Private generic functions
Generic Function, graph-node-p: Private generic functions
Generic Function, graph-node-test: Private generic functions
Generic Function, graph-search: Private generic functions
Generic Function, map-edges: Public generic functions
Generic Function, map-edges->list: Public generic functions
Generic Function, map-nodes: Public generic functions
Generic Function, map-nodes->list: Public generic functions
Generic Function, neighbors: Public generic functions
Generic Function, neighbors-and-edges: Private generic functions
Generic Function, node-count: Public generic functions
Generic Function, node1: Public generic functions
Generic Function, node2: Public generic functions
Generic Function, nodes: Public generic functions
Generic Function, other-edge-node: Public generic functions
Generic Function, print-edge-data: Public generic functions
Generic Function, qappend: Private generic functions
Generic Function, qitems: Private generic functions
Generic Function, qlast: Private generic functions
Generic Function, qpop: Private generic functions
Generic Function, qpush: Private generic functions
Generic Function, remove-edge: Public generic functions
Generic Function, remove-edge-between-nodes: Public generic functions
Generic Function, remove-node: Public generic functions
Generic Function, self-edge-p: Public generic functions
graph-distance: Public ordinary functions
graph-distance-hash-table: Public ordinary functions
graph-distance-matrix: Public ordinary functions
graph-edge-list: Private generic functions
graph-edge-list: Private generic functions
graph-node-hash: Private generic functions
graph-node-hash: Private generic functions
graph-node-p: Private generic functions
graph-node-p: Private generic functions
graph-node-test: Private generic functions
graph-node-test: Private generic functions
graph-search: Private generic functions
graph-search: Private generic functions

M
Macro, with-graph-iterator: Private macros
make-graph: Public ordinary functions
make-node-hash-table: Private ordinary functions
makeq: Private ordinary functions
map-edges: Public generic functions
map-edges: Public generic functions
map-edges->list: Public generic functions
map-edges->list: Public generic functions
map-nodes: Public generic functions
map-nodes: Public generic functions
map-nodes->list: Public generic functions
map-nodes->list: Public generic functions
Method, (setf edge-data): Public generic functions
Method, (setf graph-edge-list): Private generic functions
Method, (setf graph-node-hash): Private generic functions
Method, (setf graph-node-test): Private generic functions
Method, (setf node1): Public generic functions
Method, (setf node2): Public generic functions
Method, (setf qitems): Private generic functions
Method, (setf qlast): Private generic functions
Method, add-edge: Public generic functions
Method, add-edge-between-nodes: Public generic functions
Method, add-node: Public generic functions
Method, bfs: Public generic functions
Method, bfs-map: Public generic functions
Method, bfs-map-edges: Public generic functions
Method, bfs2: Private generic functions
Method, copy-edge: Public generic functions
Method, copy-graph: Public generic functions
Method, dfs: Public generic functions
Method, dfs-map: Public generic functions
Method, dfs-map-edges: Public generic functions
Method, dfs2: Private generic functions
Method, edge-data: Public generic functions
Method, edgep: Public generic functions
Method, edges: Public generic functions
Method, edges-nodes-equal: Public generic functions
Method, find-edge: Private generic functions
Method, find-edges-containing: Public generic functions
Method, find-edges-from: Public generic functions
Method, find-edges-to: Public generic functions
Method, find-self-edges: Private generic functions
Method, first-node: Public generic functions
Method, graph-edge-list: Private generic functions
Method, graph-node-hash: Private generic functions
Method, graph-node-p: Private generic functions
Method, graph-node-test: Private generic functions
Method, graph-search: Private generic functions
Method, map-edges: Public generic functions
Method, map-edges->list: Public generic functions
Method, map-nodes: Public generic functions
Method, map-nodes->list: Public generic functions
Method, neighbors: Public generic functions
Method, neighbors-and-edges: Private generic functions
Method, node-count: Public generic functions
Method, node1: Public generic functions
Method, node2: Public generic functions
Method, nodes: Public generic functions
Method, nodes: Public generic functions
Method, other-edge-node: Public generic functions
Method, print-edge-data: Public generic functions
Method, print-object: Public standalone methods
Method, qappend: Private generic functions
Method, qitems: Private generic functions
Method, qlast: Private generic functions
Method, qpop: Private generic functions
Method, qpush: Private generic functions
Method, remove-edge: Public generic functions
Method, remove-edge-between-nodes: Public generic functions
Method, remove-node: Public generic functions
Method, self-edge-p: Public generic functions

N
neighbors: Public generic functions
neighbors: Public generic functions
neighbors-and-edges: Private generic functions
neighbors-and-edges: Private generic functions
node-count: Public generic functions
node-count: Public generic functions
node-equal: Public ordinary functions
node-find: Public ordinary functions
node-position: Public ordinary functions
node-remove: Public ordinary functions
node1: Public generic functions
node1: Public generic functions
node2: Public generic functions
node2: Public generic functions
nodes: Public generic functions
nodes: Public generic functions
nodes: Public generic functions

O
other-edge-node: Public generic functions
other-edge-node: Public generic functions

P
print-edge-data: Public generic functions
print-edge-data: Public generic functions
print-object: Public standalone methods

Q
qappend: Private generic functions
qappend: Private generic functions
qitems: Private generic functions
qitems: Private generic functions
qlast: Private generic functions
qlast: Private generic functions
qpop: Private generic functions
qpop: Private generic functions
qpush: Private generic functions
qpush: Private generic functions

R
remove-connected-component: Public ordinary functions
remove-edge: Public generic functions
remove-edge: Public generic functions
remove-edge-between-nodes: Public generic functions
remove-edge-between-nodes: Public generic functions
remove-keyword-args: Private ordinary functions
remove-node: Public generic functions
remove-node: Public generic functions

S
self-edge-p: Public generic functions
self-edge-p: Public generic functions

W
with-graph-iterator: Private macros