X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=dev%2Fapi.lisp;h=38b0eefbd7a208cf6c7fd55043b4f1580bbae249;hb=b3ce2ed9442e84ed2c5e634aeef473892cca0a04;hp=8dccb4419eaf0683864180cbcfd4659ea862b1e0;hpb=1fe64e8b966450697100fae6ec35cc5688a88bd6;p=cl-graph.git diff --git a/dev/api.lisp b/dev/api.lisp index 8dccb44..38b0eef 100644 --- a/dev/api.lisp +++ b/dev/api.lisp @@ -14,7 +14,7 @@ ;;; API ;;; --------------------------------------------------------------------------- -(defgeneric make-graph (graph-type &key) +(defgeneric make-graph (graph-type &key &allow-other-keys) (:documentation "Create a new graph of type `graph-type'. Graph type can be a symbol naming a sub-class of basic-graph or a list. If it is a list of symbols naming different classes. If graph-type is a list, then a class which has all of the listed @@ -36,7 +36,7 @@ be created as if with a call to make-instance.")) (defgeneric add-edge-between-vertexes (graph value-or-vertex-1 value-or-vertex-2 &rest args &key if-duplicate-do - edge-type) + edge-type &allow-other-keys) (:documentation "Adds an edge between two vertexes and returns it. If force-new? is true, the edge is added even if one already exists. @@ -67,7 +67,7 @@ be called with the previous edge.")) ;;; --------------------------------------------------------------------------- -(defgeneric add-vertex (graph value-or-vertex &key if-duplicate-do) +(defgeneric add-vertex (graph value-or-vertex &key if-duplicate-do &allow-other-keys) (:documentation "Adds a vertex to a graph. If called with a vertex, then this vertex is added. If called with a value, then a new vertex is created to hold the value. If-duplicate-do can be one of :ignore, :force, :replace, :replace-value or a function. The default is :ignore.")) ;;; --------------------------------------------------------------------------- @@ -197,7 +197,9 @@ rooted at root.")) ;;; --------------------------------------------------------------------------- -(defgeneric make-filtered-graph (old-graph test-fn &optional graph-completion-method depth) +(defgeneric make-filtered-graph (old-graph test-fn &key + graph-completion-method depth + new-graph) (:documentation "Takes a GRAPH and a TEST-FN (a single argument function returning NIL or non-NIL), and filters the graph nodes according to the test-fn (those that return non-NIL are accepted), returning @@ -262,7 +264,6 @@ or the URL 'http://arxiv.org/abs/cond-mat/0209450'.")) vertex-key vertex-labeler vertex-formatter - edge-key edge-labeler edge-formatter) (:documentation @@ -658,7 +659,7 @@ and any other initialization arguments that make sense for the vertex class.")) (defgeneric complete-links (new-graph old-graph) (:documentation "Add edges between vertexes in the new-graph for which the matching vertexes in the old-graph have edges. The vertex matching is done using `find-vertex`.")) -(defgeneric subgraph-containing (graph vertex &optional depth) +(defgeneric subgraph-containing (graph vertex &key) (:documentation "Returns a new graph that is a subset of `graph` that contains `vertex` and all of the other vertexes that can be reached from vertex by paths of less than or equal of length `depth`. If depth is not specified, then the entire sub-graph reachable from vertex will be returned. [?? Edge weights are always assumed to be one.]")) ;;; ---------------------------------------------------------------------------