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