Skip to main content

Dynamics on surfaces

Project description

The surface_dynamics package for SageMath adds functionality related to interval exchange transformations, translation surfaces, mapping classes and more. It is distributed as an external Python package. It installs on top of an existing Sage installation.

This package is based on SageMath and relies heavily on:

  • gmp or mpir for arbitrary precision arithmetic

  • PARI/GP for number field computations

  • GAP for finite groups representation and permutation groups

  • PPL (Parma Polyhedra Library) and LattE (Lattice point Enumeration) for polytope computations

Prerequisites

Installing surface_dynamics requires a working Sage installation (with Cython and gcc).

Installation

The module is distributed on PyPI. You just need to run the following command:

$ sage -pip install surface_dynamics [--user]

The –user option is optional and allows to install the module in your user space (and does not require administrator rights). Alternatively, you can install the development version using:

$ sage -pip install git+https://github.com/videlec/flatsurf-package [--user]

Documentation

Check

After installing surface_dynamics, check that it works by launching Sage and typing the following commands. You should get the same output as below.:

sage: from surface_dynamics.all import *
sage: o = Origami('(1,2)','(1,3)')
sage: print o
(1,2)(3)
(1,3)(2)
sage: o.sum_of_lyapunov_exponents()
4/3
sage: o.lyapunov_exponents_approx()
[0.33441823619678734]
sage: o.veech_group()
Arithmetic subgroup with permutations of right cosets
 S2=(2,3)
 S3=(1,2,3)
 L=(1,2)
 R=(1,3)
sage: QuadraticStratum(1,1,1,1).orientation_cover()
H_5(2^4)^odd

sage: AbelianStrata(genus=3).list()
[H_3(4), H_3(3, 1), H_3(2^2), H_3(2, 1^2), H_3(1^4)]

sage: O = OrigamiDatabase()
sage: q = O.query(("stratum","=",AbelianStratum(2)), ("nb_squares","=",5))
sage: q.number_of()
2
sage: for o in q: print o, "\n"
(1)(2)(3)(4,5)
(1,2,3,4)(5)

(1)(2)(3,4,5)
(1,2,3)(4)(5)

sage: Q12_reg = QuadraticStratum(12).regular_component()
sage: Q12_reg.lyapunov_exponents_H_plus()
[0.6671, 0.4506, 0.2372, 0.08841]
sage: Q12_reg.lyapunov_exponents_H_minus()
[1.001, 0.6669, 0.45018, 0.3139, 0.23218, 0.12143, 0.08594]

Source code

The complete source code is available at:

https://github.com/videlec/flatsurf-package

Once you developed the source code you might want to install the package with:

$ sage -pip install . [--user] [--upgrade]

wher the options –user and –upgrade are optional. It can also be compiled inplace using:

$ sage -python setup.py build_ext --inplace

Contact

Your comments and help are welcome: vincent.delecroix@labri.fr For problems with Mac OS X: samuel.lelievre@gmail.com

Authors

  • Vincent Delecroix: maintainer

  • Samuel Lelièvre: contribution for origamis and permutation representative of quadratic strata

  • Charles Fougeron: Lyapunov exponents for strata coverings

Versions

  • flatsurf 0.3 was released on 2017-08-11 (as a Python package on PyPI)

  • flatsurf 0.2 was released on 2015-11-15 (as a Sage spkg).

  • flatsurf 0.1 was released on 2015-07-30 (as a Sage spkg).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

surface_dynamics-0.3.2.tar.gz (11.0 MB view details)

Uploaded Source

File details

Details for the file surface_dynamics-0.3.2.tar.gz.

File metadata

File hashes

Hashes for surface_dynamics-0.3.2.tar.gz
Algorithm Hash digest
SHA256 b9b069717fac0f6d09aa97c207b07f22b00985000e8abf4e7acea250f9ab7fd6
MD5 920af4b921b2f6159a330b1a91c7f977
BLAKE2b-256 441629a2da345cdaa8a7e09f4998c2e373a172c5d88f2e5186e86e91f4b96478

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page