pyflatsurf_conversion#

Interface with pyflatsurf

flatsurf.geometry.pyflatsurf_conversion.from_pyflatsurf(T)[source]#

Given T a flatsurf::FlatTriangulation from libflatsurf/pyflatsurf, return a sage-flatsurf translation surface.

EXAMPLES:

sage: from flatsurf import translation_surfaces
sage: from flatsurf.geometry.pyflatsurf_conversion import to_pyflatsurf, from_pyflatsurf # optional: pyflatsurf
sage: S = translation_surfaces.veech_double_n_gon(5) # optional: pyflatsurf
sage: T = from_pyflatsurf(to_pyflatsurf(S)) # optional: pyflatsurf
sage: T  # optional: pyflatsurf
Translation Surface in H_2(2) built from 6 isosceles triangles
flatsurf.geometry.pyflatsurf_conversion.sage_ring(surface)[source]#

Return the SageMath ring over which the pyflatsurf surface surface can be constructed in sage-flatsurf.

EXAMPLES:

sage: from flatsurf import translation_surfaces
sage: from flatsurf.geometry.pyflatsurf_conversion import to_pyflatsurf, sage_ring # optional: pyflatsurf
sage: S = to_pyflatsurf(translation_surfaces.veech_double_n_gon(5)) # optional: pyflatsurf  # random output due to matplotlib warnings with some combinations of setuptools and matplotlib
sage: sage_ring(S) # optional: pyflatsurf
Number Field in a with defining polynomial x^4 - 5*x^2 + 5 with a = 1.902113032590308?
flatsurf.geometry.pyflatsurf_conversion.to_pyflatsurf(S)[source]#

Given S a translation surface from sage-flatsurf return a flatsurf::FlatTriangulation from libflatsurf/pyflatsurf.

flatsurf.geometry.pyflatsurf_conversion.to_sage_ring(x)[source]#

Given a coordinate of a flatsurf::Vector, return a SageMath element from which from_pyflatsurf() can eventually construct a translation surface.

EXAMPLES:

sage: from flatsurf.geometry.pyflatsurf_conversion import to_sage_ring  # optional: pyflatsurf
sage: to_sage_ring(1R).parent()  # optional: pyflatsurf
Integer Ring

GMP coordinate types:

sage: import cppyy  # optional: pyflatsurf
sage: import pyeantic  # optional: pyflatsurf
sage: to_sage_ring(cppyy.gbl.mpz_class(1)).parent()  # optional: pyflatsurf
Integer Ring
sage: to_sage_ring(cppyy.gbl.mpq_class(1, 2)).parent()  # optional: pyflatsurf
Rational Field

e-antic coordinate types:

sage: import pyeantic  # optional: pyflatsurf
sage: K = pyeantic.eantic.renf_class.make("a^3 - 3*a + 1", "a", "0.34 +/- 0.01", 64R)  # optional: pyflatsurf
sage: to_sage_ring(K.gen()).parent()  # optional: pyflatsurf
Number Field in a with defining polynomial x^3 - 3*x + 1 with a = 0.3472963553338607?

exact-real coordinate types:

sage: from pyexactreal import QQModule, RealNumber  # optional: pyflatsurf
sage: M = QQModule(RealNumber.random())   # optional: pyflatsurf
sage: to_sage_ring(M.gen(0R)).parent()  # optional: pyflatsurf
Real Numbers as (Rational Field)-Module