PPlite Python Wrapper
=====================
This Python package provides a wrapper to the C++ package `pplite <https://github.com/ezaffanella/PPLite/>`__.
How it works
------------
The names of objects and methods are a spelled out version of the objects and methods in the library:
.. code:: python
>>> import pplite
>>> x = pplite.Variable(0)
>>> y = pplite.Variable(1)
>>> z = pplite.Variable(2)
>>> cons = [x >= 0, y >= 0, z > 0, x + y + z == 1]
>>> poly = pplite.NNC_Polyhedron(spec_elem = "universe", dim_type = 3, topology = "nnc")
>>> poly.add_constraints(cons)
>>> poly
x0+x1+x2-1==0, x0>=0, x1>=0, -x0-x1+1>0
>>> poly.generators()
[p(x2), c(x0), c(x1)]
The available objects and functions from `pplite` Python module are:
- `Variable`, `Linear_Expression`, `Affine_Expression` (defined in `pplite.linear_algebra`)
- `Constraint` (defined in `pplite.constraint`)
- `Interval` (defined in `pplie.intervals`)
- `Bounding_Box_t`, `Bounding_Box_f` (defined in `pplite.bounding_box`)
- `PPliteGenerator`, `Point`, `Closure_point`, `Line`, `Ray` (defined in `pplite.generators`)
- `NNC_Polyhedron` (defined in `pplite.polyhedron`)
Installation
------------
The project is available at `Python Package Index <https://pypi.org/project/pplitepy/>`_ and
can be installed with pip::
$ pip install pplitepy
Using from Cython
-----------------
All Python classes from pplpy are extension types and can be used with Cython. Most
extension type carries an attribute `thisptr` that holds a pointer to
the corresponding C++ object from ppl.
Source
------
You can find the latest version of the source code on github:
https://github.com/ComboProblem/pplitepy
Documentation
-------------
TBD.
License
-------
pplitepy is distributed under the terms of the GNU General Public License (GPL)
published by the Free Software Foundation; either version 3 of
the License, or (at your option) any later version. See http://www.gnu.org/licenses/.
Requirements
------------
- `pplite <https://github.com/ezaffanella/PPLite>`__
- `Cython <http://cython.org>`_ (tested with 3.0)
- `cysignals <https://pypi.org/project/cysignals/>`_
- `gmpy2 <https://pypi.org/project/gmpy2/>`_
- `flint <https://flintlib.org/>`_
On Debian/Ubuntu systems the dependencies can be installed with::
$ sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev libppl-dev cython3 python3-gmpy2 python3-cysignals-pari flint
Raw data
{
"_id": null,
"home_page": null,
"name": "pplitepy",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "polyhedron, polytope, convex, mathematics, ppl, pplite, milp, linear-programming",
"author": null,
"author_email": "Acadia Larsen <acadia.larsen@gmail.com>",
"download_url": null,
"platform": "any",
"description": "PPlite Python Wrapper\n=====================\n\nThis Python package provides a wrapper to the C++ package `pplite <https://github.com/ezaffanella/PPLite/>`__.\n\nHow it works\n------------\n\nThe names of objects and methods are a spelled out version of the objects and methods in the library:\n\n.. code:: python\n\n\t>>> import pplite\n\t>>> x = pplite.Variable(0)\n\t>>> y = pplite.Variable(1)\n\t>>> z = pplite.Variable(2)\n\t>>> cons = [x >= 0, y >= 0, z > 0, x + y + z == 1]\n\t>>> poly = pplite.NNC_Polyhedron(spec_elem = \"universe\", dim_type = 3, topology = \"nnc\")\n\t>>> poly.add_constraints(cons)\n\t>>> poly\n\tx0+x1+x2-1==0, x0>=0, x1>=0, -x0-x1+1>0\n\t>>> poly.generators()\n\t[p(x2), c(x0), c(x1)]\n\t\nThe available objects and functions from `pplite` Python module are:\n\n- `Variable`, `Linear_Expression`, `Affine_Expression` (defined in `pplite.linear_algebra`)\n\n- `Constraint` (defined in `pplite.constraint`)\n\n- `Interval` (defined in `pplie.intervals`)\n\n- `Bounding_Box_t`, `Bounding_Box_f` (defined in `pplite.bounding_box`)\n\n- `PPliteGenerator`, `Point`, `Closure_point`, `Line`, `Ray` (defined in `pplite.generators`)\n\t\n- `NNC_Polyhedron` (defined in `pplite.polyhedron`)\n\nInstallation\n------------\n\nThe project is available at `Python Package Index <https://pypi.org/project/pplitepy/>`_ and\ncan be installed with pip::\n\n $ pip install pplitepy\n\n\nUsing from Cython\n-----------------\n\nAll Python classes from pplpy are extension types and can be used with Cython. Most\nextension type carries an attribute `thisptr` that holds a pointer to\nthe corresponding C++ object from ppl.\n\nSource\n------\n\nYou can find the latest version of the source code on github:\nhttps://github.com/ComboProblem/pplitepy\n\nDocumentation\n-------------\n\nTBD.\n\nLicense\n-------\n\npplitepy is distributed under the terms of the GNU General Public License (GPL)\npublished by the Free Software Foundation; either version 3 of\nthe License, or (at your option) any later version. See http://www.gnu.org/licenses/.\n\nRequirements\n------------\n\n- `pplite <https://github.com/ezaffanella/PPLite>`__\n\n- `Cython <http://cython.org>`_ (tested with 3.0)\n\n- `cysignals <https://pypi.org/project/cysignals/>`_\n\n- `gmpy2 <https://pypi.org/project/gmpy2/>`_\n\n- `flint <https://flintlib.org/>`_\n\nOn Debian/Ubuntu systems the dependencies can be installed with::\n\n $ sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev libppl-dev cython3 python3-gmpy2 python3-cysignals-pari flint\n",
"bugtrack_url": null,
"license": "GPL v3",
"summary": "Python pplite wrapper",
"version": "0.0.50",
"project_urls": {
"Download": "https://github.com/ComboProblem/pplitepy",
"Homepage": "https://github.com/ComboProblem/pplitepy"
},
"split_keywords": [
"polyhedron",
" polytope",
" convex",
" mathematics",
" ppl",
" pplite",
" milp",
" linear-programming"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "10bd6422f6a24e2b378423dcb1e3f4fa12083365e406594262985432d7be4428",
"md5": "fa3b4c862c04ca4ffbfa4b8db2c04a86",
"sha256": "4c9582a5dc3170396889c5aaac8be7afc541042a6d0dde55c7e2945d7796762e"
},
"downloads": -1,
"filename": "pplitepy-0.0.50-cp312-cp312-manylinux_2_39_x86_64.whl",
"has_sig": false,
"md5_digest": "fa3b4c862c04ca4ffbfa4b8db2c04a86",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 22891211,
"upload_time": "2024-11-26T02:38:52",
"upload_time_iso_8601": "2024-11-26T02:38:52.944223Z",
"url": "https://files.pythonhosted.org/packages/10/bd/6422f6a24e2b378423dcb1e3f4fa12083365e406594262985432d7be4428/pplitepy-0.0.50-cp312-cp312-manylinux_2_39_x86_64.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-26 02:38:52",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ComboProblem",
"github_project": "pplitepy",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "pplitepy"
}