Opened 10 years ago

Last modified 5 years ago

#9557 new enhancement

fundamental domains for subgroups of PSL(2,ZZ)

Reported by: vdelecroix Owned by: Vincent Delecroix
Priority: major Milestone: sage-6.8
Component: geometry Keywords: hyperbolic geometry, fundamental domains, Fuchsian groups
Cc: Merged in:
Authors: Vincent Delecroix Reviewers:
Report Upstream: N/A Work issues:
Branch: public/ticket/9557 (Commits) Commit: dd78a56b48441940d29de54474367af58dc433f8
Dependencies: Stopgaps:


Given a discrete subgroup of PSL(2,R) there exists a fundamental domain of the action of this group on the hyperbolic plane. Knowing one fundamental domain for a group, gives you the fundamental domain for any subgroups. This module implement the passage from the fundamental domain of PSL(2,ZZ) to any subgroup of finite index

The way is work concerns only the second part as I have to improve the transition (subgroup of PSL(2,Z)) <-> (coset graph). The first line just build the coset graph associated to the congruence subgroup Gamma(3).

sage: g = sage.geometry.fundamental_domains.gamma_triangle_graph(3)
sage: g
Triangle graph (2,3,infinty) with 12 vertices
sage: FundamentalDomain(g)
Fundamental domain of a subgroup of index 12
sage: FundamentalDomain(g).show()


#9439 on hyperbolic geometry

Attachments (1)

trac_9557-fundamental_domains.patch (23.5 KB) - added by vdelecroix 10 years ago.

Download all attachments as: .zip

Change History (11)

Changed 10 years ago by vdelecroix

comment:1 Changed 7 years ago by jdemeyer

  • Milestone changed from sage-5.11 to sage-5.12

comment:2 Changed 7 years ago by vbraun_spam

  • Milestone changed from sage-6.1 to sage-6.2

comment:3 Changed 7 years ago by vbraun_spam

  • Milestone changed from sage-6.2 to sage-6.3

comment:4 Changed 6 years ago by vbraun_spam

  • Milestone changed from sage-6.3 to sage-6.4

comment:5 Changed 5 years ago by chapoton

  • Branch set to public/ticket/9557
  • Commit set to 0cf76cf1fabb530a4addd28ea64d92f174b6033b
  • Milestone changed from sage-6.4 to sage-6.8

I just made a git branch and cleaned the code. May not be working anymore ?

New commits:

efc3e8cle patch trac_9557-fundamental_domains-vd.patch a été importé
0cf76cftrac #9557 first code cleanup (pyflakes, pep8)

comment:6 Changed 5 years ago by git

  • Commit changed from 0cf76cf1fabb530a4addd28ea64d92f174b6033b to dd78a56b48441940d29de54474367af58dc433f8

Branch pushed to git repo; I updated commit sha1. New commits:

dd78a56trac #9557 a little more doc

comment:7 Changed 5 years ago by vdelecroix

This is a bit outdated. One now can do

sage: G = Gamma(2)
sage: F = FareySymbol(G)
sage: F.fundamental_domain()

comment:8 Changed 5 years ago by chapoton

OK.. So maybe we can close this one as duplicate/invalid ?

Or is there something useful still ?

By the way, for another ticket: there is still a big gap in the hyperbolic plot routines: there is no good hyperbolic polygon class, like for the hyperbolic geodesics. I would need that and #16679 would benefit also.

comment:9 Changed 5 years ago by vdelecroix


comment:10 Changed 5 years ago by chapoton

Yes, but it only works for the upper half-plane model. And it is not integrated at all in the HyperbolicPlane? setup. This is much needed in the Poincaré disk model, in fact.

Note: See TracTickets for help on using tickets.