{ "info": { "author": "Vincent Delecroix", "author_email": "vincent.delecroix@u-bordeaux.fr", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)", "Operating System :: OS Independent", "Programming Language :: C", "Programming Language :: C++", "Programming Language :: Cython", "Programming Language :: Python", "Topic :: Scientific/Engineering :: Mathematics" ], "description": "================\nSurface dynamics\n================\n\nThe `surface_dynamics` package for SageMath adds functionality related to\ninterval exchange transformations, translation surfaces, mapping classes\nand more. It is distributed as an external Python package. It installs on\ntop of an existing Sage installation (tested on SageMath 8.6, 8.7 and 8.8\nas well as the development version, whether Python 2 or Python 3 based).\n\nThis package is based on `SageMath `_ and relies\nheavily on:\n\n* gmp or mpir for arbitrary precision arithmetic\n* PARI/GP for number field computations\n* GAP for finite groups representation and permutation groups\n* PPL (Parma Polyhedra Library) and LattE (Lattice point Enumeration)\n for polytope computations\n\nPrerequisites\n-------------\n\nInstalling `surface_dynamics` requires a working Sage installation (with\nCython and gcc). Installing the optional SageMath packages `gap_packages`,\nand `latte_int` is recommended and will improve or extend the functionality\nin `surface_dynamics`. The optional package `database_gap` is also\nrecommended if using SageMath < 8.6 (in SageMath 8.6 it was merged partly\ninto the `gap` and partly into the `gap_packages` packages).\n\nInstallation\n------------\n\nThe module is distributed on PyPI and is easily installed through the\nPython package manager `pip`. If you downloaded a binary from the SageMath\nwebsite (including the Cygwin version running on Windows) or compiled\nfrom source, run the following command::\n\n $ sage -pip install surface_dynamics [--user]\n\nThe `--user` option is optional and allows to install the module in your\nuser space (and does not require administrator rights).\n\nIf you use Debian or Ubuntu and you installed Sage through the operating\nsystem's package manager (that is, the package `sagemath`), run these\ntwo commands::\n\n $ source /usr/share/sagemath/bin/sage-env\n $ pip install surface_dynamics --user\n\nIf you use Arch Linux, you need to install from source (see next section).\n\nInstall and use source version\n------------------------------\n\nThis section provides detailed instructions on how to download, modify\nand install the development version of `surface_dynamics`. In all commands,\n\n* `PIP` has to be replaced by either `pip`, `pip2` or `sage -pip`\n* `PYTHON` has to be replaced by either `python`, `python2` or `sage -python`\n\nIf you are an Arch Linux user with the `sagemath` package installed, use\n`PIP=pip2` and `PYTHON=python2`. If you downloaded SageMath as a tarball\nor installed it from source use `PIP='sage -pip'` and `PYTHON='sage -python'`.\n\nYou can install the latest development version in one line with::\n\n $ PIP install git+https://gitlab.com/videlec/surface_dynamics [--user]\n\nAs before, the `--user` option is optional and when specified will\ninstall the module in your user space.\n\nYou can also perform a two stage installation that will allow you to\nmodify the source code. The first step is to clone the repository::\n\n $ git clone https://gitlab.com/videlec/surface_dynamics\n\nThe above command creates a repository `surface_dynamics` with the source code,\ndocumentation and miscellaneous files. You can then change to the directory\nthus created and install the surface dynamics module with::\n\n $ cd surface_dynamics\n $ PIP install . [--user]\n\nDo not forget the `.` that refers to the current directory.\n\nWhen you don't want to install the package or you are testing some\nmodifications to the source code, a more convenient way of using\nsurface dynamics is to do everything locally. To do so, you need\nto compile the module in place via::\n\n $ PYTHON setup.py build_ext --inplace\n\nOnce done, you can import the `surface_dynamics` module. To check that you\nare actually using the right module (i.e. the local one) you can do in a\nSageMath session::\n\n sage: import surface_dynamics\n sage: surface_dynamics.__path__ # random\n ['/home/you/surface_dynamics/surface_dynamics/']\n\nThe result of the command must correspond to the path of the repository\ncreated by the command `git clone` given above. The compilation step\n`PYTHON setup.py build_ext` has to be redone each time you modify\na C or Cython source file (i.e. with `.c`, .h`, `.pxd` or `.pyx`\nextension). In other words, it is not needed if you only\nmodify or create Python files (i.e. `.py` files).\n\nIf you wish to install your custom version of `surface_dynamics`\njust use `PIP` as indicated before.\n\nDocumentation\n-------------\n\n* short tutorial: http://www.labri.fr/perso/vdelecro/flatsurf.html\n* complete module documentation: http://www.labri.fr/perso/vdelecro/surface-dynamics/\n\nCheck\n-----\n\nAfter installing `surface_dynamics`, check that it works by launching Sage\nand typing the following commands. You should get the same\noutput as below.::\n\n sage: from surface_dynamics.all import *\n sage: o = Origami('(1,2)', '(1,3)')\n sage: o\n (1,2)(3)\n (1,3)(2)\n sage: o.sum_of_lyapunov_exponents()\n 4/3\n sage: o.lyapunov_exponents_approx() # abs tol 0.05\n [0.33441823619678734]\n sage: o.veech_group()\n Arithmetic subgroup with permutations of right cosets\n S2=(2,3)\n S3=(1,2,3)\n L=(1,2)\n R=(1,3)\n sage: q = QuadraticStratum(1, 1, 1, 1)\n sage: q.orientation_cover()\n H_5(2^4)\n sage: q.components()\n [Q_2(1^4)^hyp]\n sage: c = q.components()[0]\n sage: c\n Q_2(1^4)^hyp\n sage: c.orientation_cover_component()\n H_5(2^4)^odd\n\n sage: AbelianStrata(genus=3).list()\n [H_3(4), H_3(3, 1), H_3(2^2), H_3(2, 1^2), H_3(1^4)]\n\n sage: O = OrigamiDatabase()\n sage: q = O.query((\"stratum\", \"=\", AbelianStratum(2)), (\"nb_squares\", \"=\", 5))\n sage: q.number_of()\n 2\n sage: for o in q:\n ....: print(\"%s\\n- - - - - - - -\" % o)\n (1)(2)(3)(4,5)\n (1,2,3,4)(5)\n - - - - - - - -\n (1)(2)(3,4,5)\n (1,2,3)(4)(5)\n - - - - - - - -\n sage: Q12_reg = QuadraticStratum(12).regular_component()\n sage: Q12_reg.lyapunov_exponents_H_plus(nb_iterations=2**20) # abs tol 0.05\n [0.6634, 0.4496, 0.2305, 0.0871]\n sage: Q12_reg.lyapunov_exponents_H_minus(nb_iterations=2**20) # abs tol 0.05\n [1.0000, 0.3087, 0.1192]\n\nInstalling development version - source code\n--------------------------------------------\n\nThe development webpage is\n\n* https://gitlab.com/videlec/surface_dynamics\n\nAssuming you have the program `git` on your computer, you can install the\ndevelopment version with the command::\n\n $ sage -pip install git+https://gitlab.com/videlec/surface_dynamics [--user]\n\nContact\n-------\n\nYour comments and help are welcome: vincent.delecroix@labri.fr\n\nFor problems with macOS: samuel.lelievre@gmail.com\n\nAuthors\n-------\n\n* Vincent Delecroix: maintainer\n* Samuel Leli\u00e8vre: origami and permutation representatives for quadratic strata\n* Charles Fougeron: Lyapunov exponents for strata coverings\n\nCitation\n--------\n\nTo cite the software, use the following Bibtex entry::\n\n @manual{ Sdyn,\n Author = { Delecroix, V. et al. },\n Month = { March },\n Year = { 2019 },\n Title = { surface_dynamics - SageMath package, Version 0.4.1 },\n Doi = { 10.5281/zenodo.3237923 },\n Url = { https://doi.org/10.5281/zenodo.3237923 }\n }\n\nVersions\n--------\n\n* flatsurf 0.4.2 was released on 2019-06-21 (as a Python package on PyPI)\n* flatsurf 0.4.1 was released on 2019-03-26 (as a Python package on PyPI)\n* flatsurf 0.4.0 was released on 2018-05-14 (as a Python package on PyPI)\n* flatsurf 0.3 was released on 2017-08-11 (as a Python package on PyPI)\n* flatsurf 0.2 was released on 2015-11-15 (as a Sage spkg)\n* flatsurf 0.1 was released on 2015-07-30 (as a Sage spkg)", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.labri.fr/perso/vdelecro/surface-dynamics/latest/", "keywords": "surfaces,dynamics,geometry,flat surfaces,Abelian differentials,quadratic differentials,Riemann surfaces", "license": "GPL v2", "maintainer": "", "maintainer_email": "", "name": "surface-dynamics", "package_url": "https://pypi.org/project/surface-dynamics/", "platform": "", "project_url": "https://pypi.org/project/surface-dynamics/", "project_urls": { "Homepage": "http://www.labri.fr/perso/vdelecro/surface-dynamics/latest/" }, "release_url": "https://pypi.org/project/surface-dynamics/0.4.3/", "requires_dist": null, "requires_python": "", "summary": "Dynamics on surfaces", "version": "0.4.3" }, "last_serial": 5596223, "releases": { "0.3": [ { "comment_text": "", "digests": { "md5": "bbb633ab29ea413786e3e741626af06d", "sha256": "0e8d3308b5f5a8e9f1d46583f547907aa6f95354b3cce692ef89bac96e6f71f5" }, "downloads": -1, "filename": "surface_dynamics-0.3.tar.gz", "has_sig": false, "md5_digest": "bbb633ab29ea413786e3e741626af06d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34896966, "upload_time": "2017-08-04T06:24:27", "url": "https://files.pythonhosted.org/packages/73/b7/1a0a5278d91c18bbd3fec26d8d6215d69a13d7b62eb1276b1f657a9981e2/surface_dynamics-0.3.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "6fdde0b0342a830a97e927721dee7122", "sha256": "73126468e49210168e850c3e355b015a95b77ae7781339367963de6a5c5dfb31" }, "downloads": -1, "filename": "surface_dynamics-0.3.1.tar.gz", "has_sig": false, "md5_digest": "6fdde0b0342a830a97e927721dee7122", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10977591, "upload_time": "2017-08-18T06:13:17", "url": "https://files.pythonhosted.org/packages/ac/dc/f0a0027330070b83b6616637965d00b0c396ea18fe5340bd6f53030d6926/surface_dynamics-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "920af4b921b2f6159a330b1a91c7f977", "sha256": "b9b069717fac0f6d09aa97c207b07f22b00985000e8abf4e7acea250f9ab7fd6" }, "downloads": -1, "filename": "surface_dynamics-0.3.2.tar.gz", "has_sig": false, "md5_digest": "920af4b921b2f6159a330b1a91c7f977", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10973598, "upload_time": "2017-08-19T09:26:36", "url": "https://files.pythonhosted.org/packages/44/16/29a2da345cdaa8a7e09f4998c2e373a172c5d88f2e5186e86e91f4b96478/surface_dynamics-0.3.2.tar.gz" } ], "0.3.beta2": [ { "comment_text": "", "digests": { "md5": "0f8a2dd4f56bfa304c607d0fb79de0b7", "sha256": "ef4d6ef8a37fb517e6d9aaacce7bea65fcbdd47145756f069ab91a99fc1df904" }, "downloads": -1, "filename": "surface_dynamics-0.3.beta2.tar.gz", "has_sig": false, "md5_digest": "0f8a2dd4f56bfa304c607d0fb79de0b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34490949, "upload_time": "2016-07-05T14:48:45", "url": "https://files.pythonhosted.org/packages/ab/2b/ae1c6c8356f06a5a5a2a0b4a83a2ee437efdc07206912edc696605f1b401/surface_dynamics-0.3.beta2.tar.gz" } ], "0.3.beta3": [ { "comment_text": "", "digests": { "md5": "7a9934c709ce3d7bcd1e6c2407f8b7b4", "sha256": "c320a2b74203a120be184d62711be9da17f3e0b36b9f1ee00c4d685ade6549a5" }, "downloads": -1, "filename": "surface_dynamics-0.3.beta3.tar.gz", "has_sig": false, "md5_digest": "7a9934c709ce3d7bcd1e6c2407f8b7b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34219935, "upload_time": "2016-08-05T16:49:26", "url": "https://files.pythonhosted.org/packages/a4/9f/d61f9a7ed428d0acc7716868622a89e2520f2d7a82539211310bbb60e6ef/surface_dynamics-0.3.beta3.tar.gz" } ], "0.3.rc0": [ { "comment_text": "", "digests": { "md5": "918e729ee2dd62e7fff76f302d0258ef", "sha256": "0c8a36b5c4a257d594c849982ab44ae38dd645c6023bfd5c44ca5ad36b453d46" }, "downloads": -1, "filename": "surface_dynamics-0.3.rc0.tar.gz", "has_sig": false, "md5_digest": "918e729ee2dd62e7fff76f302d0258ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34897898, "upload_time": "2017-08-03T18:54:52", "url": "https://files.pythonhosted.org/packages/de/60/c8d3f5ec9a37e0ce1b57e523fadddb525e88a48bd628b71e2c62a139cb88/surface_dynamics-0.3.rc0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "6b5b671a5f8981b067c5333cda57cb7c", "sha256": "4be5b95dd5676ef76908fecd3dfcb503f29bbf7d1da304b34e6a5abd692f0fa2" }, "downloads": -1, "filename": "surface_dynamics-0.4.0.tar.gz", "has_sig": false, "md5_digest": "6b5b671a5f8981b067c5333cda57cb7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11370204, "upload_time": "2018-05-13T23:59:34", "url": "https://files.pythonhosted.org/packages/52/8d/9d27f127f159ac58f31a318c36a633d992b5f2430f0624a01910e3c1f5b6/surface_dynamics-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "4a43eb70688b2f462c4d45cae0f3555b", "sha256": "98a8d13542f2b6b24002cbd96077633ac0eb74000d99ecc670c95e722c95eeb6" }, "downloads": -1, "filename": "surface_dynamics-0.4.1.tar.gz", "has_sig": false, "md5_digest": "4a43eb70688b2f462c4d45cae0f3555b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11516944, "upload_time": "2019-03-26T07:14:52", "url": "https://files.pythonhosted.org/packages/99/a1/646688b3736fdc3203915f2c31f89b06a95a75e9daca990d9a32e79ff4d7/surface_dynamics-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "8931d0ed0f88fc5cc8466c87704cf893", "sha256": "bf9c47c72d2f4de1f859584683871f41e2664b659a031f7a75860ff4cd1bf2bf" }, "downloads": -1, "filename": "surface_dynamics-0.4.2.tar.gz", "has_sig": false, "md5_digest": "8931d0ed0f88fc5cc8466c87704cf893", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11511376, "upload_time": "2019-06-21T20:50:09", "url": "https://files.pythonhosted.org/packages/49/5c/5e0490e84c6aabe48eae7c7be8c38e94fee4a718f1a3719688725f314eef/surface_dynamics-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "554d90f5fdb2df9254e657a7c980afce", "sha256": "847fdf016f3dc7d3d9f93d867ca071e90d757c7a14873ca6f04e378b75618694" }, "downloads": -1, "filename": "surface_dynamics-0.4.3.tar.gz", "has_sig": false, "md5_digest": "554d90f5fdb2df9254e657a7c980afce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11251473, "upload_time": "2019-07-28T17:49:51", "url": "https://files.pythonhosted.org/packages/0e/67/5aa8ff3430f6ad9fd4035a1a64027b6d76baac50aa65376993659f3f4918/surface_dynamics-0.4.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "554d90f5fdb2df9254e657a7c980afce", "sha256": "847fdf016f3dc7d3d9f93d867ca071e90d757c7a14873ca6f04e378b75618694" }, "downloads": -1, "filename": "surface_dynamics-0.4.3.tar.gz", "has_sig": false, "md5_digest": "554d90f5fdb2df9254e657a7c980afce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11251473, "upload_time": "2019-07-28T17:49:51", "url": "https://files.pythonhosted.org/packages/0e/67/5aa8ff3430f6ad9fd4035a1a64027b6d76baac50aa65376993659f3f4918/surface_dynamics-0.4.3.tar.gz" } ] }