The ptolemy module is part of the popular 3-manifold software
SnapPy and can be
used to find boundary-unipotent representations of a 3-manifold into
PGL(N,C) and compute invariants such as volume and Chern-Simons
invariant. The math is explained in:
Our data contains the primary decompositions of the Ptolemy varieties
as well as the volume of each representation (see notes and caveats for more). The manifolds for which we have complete data include:
PGL(2,C)
OrientableCuspedCensus: all manifolds up to 9 simplices
LinkExteriors: all manifolds up to 16 simplices
HTLinkExteriors: all manifolds up to 13 simplices but L14n31302
PGL(3,C)
OrientableCuspedCensus: all manifolds up to 3 simplices and selected manifolds with 4
PGL(4,C)
m004
Examples
Please upgrade before trying the examples. The following examples work in SnapPy 2.0.3 and Sage with SnapPy 2.0.3 installed (see installation instructions).
This command loads the manifold, generates the Ptolemy variety for all obstruction classes, retrieves the solutions from the database, and computes all complex volumes. The result is a nested list. The first level is the obstruction class, the second level the components of the primary decomposition, and the third level is the set of points (if zero dimensional; volumes of higher dimensional components not yet supported). This nested structure is common for commands of the Ptolemy module. You can disregard the nesting with the flatten command. For example, if you are only interested in the set of volumes, you can type:
All commands and classes are documented. The documentation for a command or class can be found using help in python or ? in SnapPy:
>>> M=Manifold("m004")
>>> help(M) # help on the Manifold class
>>> M? # short-cut to the help in SnapPy, sage and ipython
>>> M. # hitting the tab-key in SnapPy will list methods
>>> help(M.ptolemy_variety) # help on the Ptolemy variety
>>> p = M.ptolemy_variety(2,'all') # list of Ptolemy varieties
>>> p1 = p[1] # a single Ptolemy variety
>>> help(p1) # now we can list help for Ptolemy variety
>>> sols = p1.retrieve_solutions() # Exact solutions, requires Internet access
>>> s0 = sols[0] # Get one exact solutions
>>> help(s0) # So we can get help on it
>>> s0.cross_ratios()
>>> p.retrieve_solutions() # A lot of methods can also be applied to list of objects
>>> sols.cross_ratios()
>>> p.retrieve_solutions().cross_ratios() # And can be combined and used for nested structures
Video tutorials
Note that the ptolemy module has evolved since the video tutorials were made and there are now more convenient methods to accompolish, e.g., computing all complex volumes as illustrated above. With the generalized obstruction class, M.ptolemy_variety(3,'all') will now find all PGL(3,C)-representations, not just the ones lifting to SL(3,C).