Expand graph operations
What is the expected enhancement?
Graph operations (https://en.wikipedia.org/wiki/Graph_operations) produce new graphs from initial ones. Right now retworkx can compose, take the union of two graphs or return the complement of a graph. We can expand this list similar to NetworkX functionality https://networkx.org/documentation/stable/reference/algorithms/operators.html.
I would like to work on the cartesian_product of graphs.
If anyone is already working on it, please let me know.
I plan to work on the symmetric difference operation. If anyone is already working on it, please let me know.
Since that are a lot of graph operations that could be implemented, I think it is useful to have a summary of which operations are already implemented. Let me know if I missed something.
Operations:
- [x] Complement
- [ ] Reverse
- [x] Compose
- [x] Union
- [ ] Disjoint union
- [ ] Intersection
- [ ] Difference (#571)
- [ ] Symmetric difference (@e-eight)
- [ ] Full join
- [x] Cartesian product
- [ ] Lexicographic Product
- [ ] Rooted Product
- [ ] Strong Product
- [x] Tensor Product (#472)
- [ ] Power