Commit Graph

3 Commits

Author SHA1 Message Date
Jordan Liggitt
2d2427b847 gonum: slice-based edge holder
Use slices to store sets of edges for n <= 4.
~20% memory savings with many nodes with n=2 edges.
2017-05-30 15:12:30 -04:00
Jordan Liggitt
385b84ad83 gonum: visiting graph traversal
Use visitors to avoid allocating slices to hold nodes during traversal (and to allow short-circuiting)
Benchmarked at 95% space savings traversing nodes with many edges.
2017-05-30 15:12:30 -04:00
Jordan Liggitt
ec1d79da19 gonum: directed acyclic graph
Implements graph.Directed capable of storing at most one edge between any two nodes.
Uses the Undirected implementation for space efficiency (~30% space savings).
2017-05-30 15:12:30 -04:00