Convenient way to handle simple graphs and digraphs
18 Stars
Updated Last
2 Years Ago
Started In
September 2016


Build Status

Release Notes

  • Version 0.7.0 reworks graph embedding. One new feature is that vertices do not have to all be colored the same (as was the case in previous versions).
  • Version 0.6.0 introduces rotation systems which are combinatorial representations of embeddings on oriented surfaces.
  • As of version 0.5.2 the function vertex_type is deprecated. Use eltype instead.
  • As of version 0.5.0 the polynomials returned by functions such as char_poly are of type SimplePolynomial.


This module defines three data types for working with graphs:

  • The SimpleGraph type represents undirected graphs without loops or multiple edges.
  • The SimpleDigraph type represents directed graphs in which there may be at most one directed edge (u,v) from a vertex u to a vertex v. There may also be a directed edge in the opposite direction, (v,u).
  • The SimpleHypergraph type representing hypergraphs in which edges may be any subset of the vertex set.

Additional functionality can be found in these modules:

Not ready for prime time

In addition, we have:

User's Guide

Please see the Wiki for extensive information pertaining to the SimpleGraph type.

The SimpleDigraph type is not so well developed nor documented. See the source files in the src directory. Likewise, the SimpleHypergraph type is in early stages of development.


This software is part of a larger suite of tools for graph theory. More information can be found right after my explanation that this code is postcardware.


Thank you to JHU students Tara Abrishami and Laura Bao for contributions to this project.

Please Help

This is a work in process with a lot of more features that can/should be added. If you're interested in contributing, please contact me. I'm especially interested in JHU undergraduates getting involved.

Ed Scheinerman (