In ticket 10506, John Cremona wrote the following in reference to Gamma(n): "Note that the next job is to add a method to return a set of inequivalent cusps. The default implementation is stupidly slow (as proved by the fact that the old default for ncusps() was to find all the cusps and count them).
I propose the following method for n > 2. Let E be the set of fractions t/(n+t), where 1 <= t < n/2 with gcd(t,n)=1. Let F be the set of fractions (rt+yn)/(st+xn), where 1 <= r < s <= n, 1 <= t <= n/s, gcd(r,s)=1, gcd(t,n)=1. Here, for each pair r,s as above, x,y is a fixed pair of nonnegative integers such that xr - ys = 1; thus x is the inverse of r mod s and y=(xr - 1)/s. The elements that we've listed in E union F are all distinct reduced fractions, and they provide a complete set of inequivalent cusps for Gamma(n). The numerator and denominator sizes are certainly not minimal, but this proposal is just to get the ball rolling. -- To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/sage-support URL: http://www.sagemath.org
