WIP PR Experimenting with using the LightGraphs abstractions.
Constructing and modifying the graph
[ ] Graph
[ ] DiGraph
[x] add_edge!
[x] rem_edge!
[x] add_vertex!, add_vertices!
[x] rem_vertex!
[x] zero
Edge/Arc interface
[x] src
[x] dst
[x] reverse
[x] ==
[x] Pair / Tuple conversion
Accessing state
[x] nv
[x] ne
[x] vertices (Iterable)
[x] edges (Iterable)
[x] neighbors, in_neighbors, out_neighbors
in_edges
out_edges
[x] has_vertex
[x] has_edge
[x] has_self_loops (though this might be a trait or an abstract graph type)
Non-Core APIs
[ ] adjacency_matrix
[ ] degree
With respect to #14 , I have an edges iterator implemented in this PR that iterates through all the edges in the Stinger graph. It still needs some checks to skip blank edgeblocks and also needs iterate till finding a valid edgeblock in start. I think I can backport this to replace the current foralledges with a actual Julia iterator after modifying it for the edgeblocks of a vertex.
When this PR gets merged, StingerLG will become Stinger and StingerWrapper will become 0.6 only.
WIP PR Experimenting with using the LightGraphs abstractions.
Constructing and modifying the graph
Edge/Arc interface
Accessing state
in_edgesout_edgesNon-Core APIs
With respect to #14 , I have an
edges
iterator implemented in this PR that iterates through all the edges in theStinger
graph. It still needs some checks to skip blank edgeblocks and also needs iterate till finding a valid edgeblock instart
. I think I can backport this to replace the currentforalledges
with a actual Julia iterator after modifying it for the edgeblocks of a vertex.When this PR gets merged,
StingerLG
will becomeStinger
andStingerWrapper
will become 0.6 only.