It looks like you have computed the "tetrahedra shapes" for the three ideal hyperbolic tetrahedra making up the knot complement. Each of these gives a (euclidian!) shape to the four "cusp triangles" that "cut off" the four ideal vertices of the tetrahedron. To compute the shape of the cusp, you need to understand how it is tiled by the (in total 12) cusp triangles. To do this by hand takes some work! To get started, draw one of the tetrahedra $t$ in the upper-half-space model (with a vertex at infinity), and consider how the other three tetrahedra, that also meet infinity, and that also meet $t$, lie in the model. Each of these has just one cusp triangle that separates the body of the tetrahedron from infinity. You want to use the shapes $x_i$, $y_i$, and $z_i$ to tile these outward... (say on the horoplane at height one). **EDIT**: Very nice pictures! Here is a bit of a snappy session which may be helpful to you. > In[1]: M = Manifold("5_2") > > In[2]: M.cusp_info() > > Out[2]: [Cusp 0 : complete torus cusp of shape -2.49024466751 + > 2.97944706648*I] > > In[3]: M.set_peripheral_curves("shortest") > > In[4]: M.cusp_info() > > Out[4]: [Cusp 0 : complete torus cusp of shape -0.49024466751 + > 2.97944706648*I] The thing to notice here is that the cusp shape (that is the "shape of the fundamental parallelogram") depends on the choice of a basis for the cusp group $P$. The cusp group $P$ is a copy of $\mathbb{Z}^2$. Each element of $P$ gives a parabolic Mobius transformation. Depending on the generating set (for $P$) that we use, we will get different cusp shapes! Since $5_2$ is a knot, the cusp group has one natural basis coming from the topological meridian (bounds a disk in $S^3$) and the topological meridian (bounds a Seifert surface in $S^3$). Since the complement of $5_2$ is a hyperbolic manifold (called m015 in the snappy census), the cusp group has another natural basis coming from the two elements of $P$ which have smallest (parabolic) translation. If you ask snappy for the cusp shape of the hyperbolic manifold, it agrees with you, up to a sign. > In[5]: M.identify() > > Out[5]: [m015(0,0), 5_2(0,0), K3_2(0,0), K5a1(0,0)] > > In[6]: N = Manifold("m015") > > In[7]: N.cusp_info() > > Out[7]: [Cusp 0 : complete torus cusp of shape -0.4902446675 + > 2.9794470665*I]