{ "info": { "author": "Leonhard Vogt", "author_email": "leonhard.vogt@gmx.ch", "bugtrack_url": null, "classifiers": [], "description": "Representing Constructible Numbers in Python\n============================================\n\nBuild Status: |Build Status|\n\nThe constructible module provides exact representation of\n`constructible numbers`_ in Python.\n\nPython 2 and Python 3 are supported.\n\nThe constructible numbers are the smallest field containing the rational numbers, where the square root of\nany non-negative constructible number is constructible as well. The non-negative constructible numbers are\nthe lengths which can be constructed from the unit length using only a compass and a straightedge.\n\nUsage\n-----\n\nUsually the ``sqrt`` function is enough to work with constructible numbers::\n\n >>> from constructible import sqrt\n >>> x = sqrt(2) + sqrt(3)\n >>> print(x)\n ((0 + 1 * sqrt(2)) + (1 + 0 * sqrt(2)) * sqrt((3 + 0 * sqrt(2))))\n >>> y = x*x\n >>> print(y)\n ((5 + 0 * sqrt(2)) + (0 + 2 * sqrt(2)) * sqrt((3 + 0 * sqrt(2))))\n >>> z = y*y\n >>> t = 10*y - z\n >>> t == 1\n True\n\nInstallation\n------------\n\nTo install from PYPI just type ::\n\n pip install constructible\n\nThe library is a single pure python file, so it is also easy to install by hand.\n\nTesting\n-------\n\nThere are some tests using ``unittest``. Thanks to `Travis-CI`_ each push to github triggers a test:\n|Build Status|\n\nReleasing on PYPI\n------------------\n\nThe following steps are needed:\n\n- Update the version in setup.py\n- Tag the version in git::\n\n git tag 0.1 -m \"Adds a tag so that we can put this on PyPI.\"\n git push --tags origin\n \n- Test release with::\n\n python setup.py register -r pypitest\n python setup.py sdist upload -r pypitest\n\n- Productive release with::\n\n python setup.py register -r pypi\n python setup.py sdist upload -r pypi\n\nChangelog\n---------\n\n- 2016-05-23 V0.1 Initial Release\n- 2016-09-30 V0.2 Fixing Issue 1 and added Tests\n- 2016-10-03 V0.3 Fixing Issue 2\n- 2016-10-23 V0.4 Added __hash__ and __float__, speed optimizations\n\nAknowledgements\n---------------\n\nThanks to `Anders Kaseorg`_ whose\n`implementation of constructible numbers in Haskell`_\nprovided inspiration and in particular the\n`algorithm for taking square roots`_\nin quadratic extension fields.\n\n.. _constructible numbers: http://en.wikipedia.org/wiki/Constructible_number\n.. _Travis-CI: https://travis-ci.org/\n.. _Anders Kaseorg: https://github.com/andersk\n.. _implementation of constructible numbers in Haskell: https://github.com/andersk/haskell-constructible\n.. _algorithm for taking square roots: https://github.com/leovt/constructible/wiki/Taking-Square-Roots-in-quadratic-extension-Fields\n\n.. |Build Status| image:: https://travis-ci.org/leovt/constructible.svg?branch=master\n :target: https://travis-ci.org/leovt/constructible", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/leovt/constructible/tarball/0.4.1", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/leovt/constructible", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "constructible", "package_url": "https://pypi.org/project/constructible/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/constructible/", "project_urls": { "Download": "https://github.com/leovt/constructible/tarball/0.4.1", "Homepage": "https://github.com/leovt/constructible" }, "release_url": "https://pypi.org/project/constructible/0.4.1/", "requires_dist": null, "requires_python": null, "summary": "Exact Constructible Numbers Representation", "version": "0.4.1" }, "last_serial": 2418683, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "c390a19148260a1df0f6a83f01ebebf1", "sha256": "50612ca71c0f0500267cd405cb140ba62368ab5601b00c423f01ac33c98db78a" }, "downloads": -1, "filename": "constructible-0.1.zip", "has_sig": false, "md5_digest": "c390a19148260a1df0f6a83f01ebebf1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3613, "upload_time": "2016-05-23T23:02:30", "url": "https://files.pythonhosted.org/packages/b9/51/91a43c83b77f814353dafe3942af78124c2718f89a4597ed5f5aad6fd423/constructible-0.1.zip" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "09e99c4255d4902500cb998823962aed", "sha256": "18713d0e1f9aa1b47447e9d562ea0c3266dc602668a038ea02d9bf6b25f62762" }, "downloads": -1, "filename": "constructible-0.2.zip", "has_sig": false, "md5_digest": "09e99c4255d4902500cb998823962aed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3774, "upload_time": "2016-09-30T11:40:11", "url": "https://files.pythonhosted.org/packages/b6/12/2dc618c90fd034a08e99a9de98594814fe1d21abed0eec2d55108f00c502/constructible-0.2.zip" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "2e31028a939101e511e09bb09b8ffb3e", "sha256": "38bff9909917b47f21a31dcf7598ed46b40c143f642eef9c4a6564d7790da145" }, "downloads": -1, "filename": "constructible-0.3.2.zip", "has_sig": false, "md5_digest": "2e31028a939101e511e09bb09b8ffb3e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4738, "upload_time": "2016-10-03T08:39:46", "url": "https://files.pythonhosted.org/packages/46/96/12208618df63e91e0bf368440ecb27cfc4392419b577b5d1d0d52add1d2a/constructible-0.3.2.zip" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "b85abc1fe573d685f0c6ba1b74e21f42", "sha256": "e5604b40133eac8527a7acd5f9f04842187059e7b49e5c5d140f2a25e7ed2a42" }, "downloads": -1, "filename": "constructible-0.4.0.zip", "has_sig": false, "md5_digest": "b85abc1fe573d685f0c6ba1b74e21f42", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5278, "upload_time": "2016-10-23T19:42:59", "url": "https://files.pythonhosted.org/packages/ec/76/95c882dabc40e1e7bd8b041493c94f92cb2707960cb80113c248508baab1/constructible-0.4.0.zip" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "e7b981ecf40aef67fffe5059468d8674", "sha256": "bcef47e3e23b1af3622064de8cb97d8807a2cfb102e263c9d432bb98b54195a0" }, "downloads": -1, "filename": "constructible-0.4.1.zip", "has_sig": false, "md5_digest": "e7b981ecf40aef67fffe5059468d8674", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5309, "upload_time": "2016-10-23T19:51:49", "url": "https://files.pythonhosted.org/packages/24/d7/b45a44e7a66bd2cb8b5cf7ec1bb6a6ca418818dae760aa4e5a8496f45092/constructible-0.4.1.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e7b981ecf40aef67fffe5059468d8674", "sha256": "bcef47e3e23b1af3622064de8cb97d8807a2cfb102e263c9d432bb98b54195a0" }, "downloads": -1, "filename": "constructible-0.4.1.zip", "has_sig": false, "md5_digest": "e7b981ecf40aef67fffe5059468d8674", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5309, "upload_time": "2016-10-23T19:51:49", "url": "https://files.pythonhosted.org/packages/24/d7/b45a44e7a66bd2cb8b5cf7ec1bb6a6ca418818dae760aa4e5a8496f45092/constructible-0.4.1.zip" } ] }