Skip to content

Commit e69819a

Browse files
committed
Update Virtual section in README
1 parent 8a799a9 commit e69819a

File tree

1 file changed

+32
-1
lines changed

1 file changed

+32
-1
lines changed

README.md

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ directed edges (v, w) and (w, v), both of cost c.
2828
A self-loop, an edge connecting a vertex to itself,
2929
is both directed and undirected.
3030

31+
3132
### Graph data structures
3233

3334
The type `Mutable` represents a directed graph with a fixed number
@@ -42,26 +43,56 @@ with its adjacent vertices. This makes for fast and predictable
4243
iteration: the Visit method produces its elements by reading
4344
from a fixed sorted precomputed list.
4445

46+
4547
### Virtual graphs
4648

47-
The subpackage `graph/build` offers a tool for building virtual graphs.
49+
The subpackage `graph/build` offers a tool for building graphs of type `Virtual`.
50+
4851
In a virtual graph no vertices or edges are stored in memory,
4952
they are instead computed as needed. New virtual graphs are constructed
5053
by composing and filtering a set of standard graphs, or by writing
5154
functions that describe the edges of a graph.
5255

56+
The following standard graphs are predefined:
57+
58+
- empty graphs,
59+
- complete graphs and complete bipartite graphs,
60+
- grid graphs and complete *k*-ary trees,
61+
- cycle graphs and circulant graphs,
62+
- and hypergraphs.
63+
64+
The following operations are supported:
65+
66+
- adding and deleting sets of edges,
67+
- adding cost functions,
68+
- filtering graphs by edge functions,
69+
- complement, intersection and union,
70+
- subgraphs,
71+
- connecting graphs at a single vertex,
72+
- joining two graphs by a set of edges,
73+
- matching two graphs by a set of edges,
74+
- cartesian product and tensor product.
75+
76+
Non-virtual graphs can be imported, and used as building blocks,
77+
by the `Specific` function. Virtual graphs don't need to be “exported‬”;
78+
they implement the `Iterator` interface and hence can be used directly
79+
by any algorithm in the graph package.
80+
81+
5382
### Installation
5483

5584
Once you have [installed Go][golang-install], run this command
5685
to install the `graph` package:
5786

5887
go get github.com/yourbasic/graph
88+
5989

6090
### Documentation
6191

6292
There is an online reference for the package at
6393
[godoc.org/github.com/yourbasic/graph][godoc-graph].
6494

95+
6596
### Roadmap
6697

6798
* The API of this library is frozen.

0 commit comments

Comments
 (0)