pplitepy


Namepplitepy JSON
Version 0.0.50 PyPI version JSON
download
home_pageNone
SummaryPython pplite wrapper
upload_time2024-11-26 02:38:52
maintainerNone
docs_urlNone
authorNone
requires_pythonNone
licenseGPL v3
keywords polyhedron polytope convex mathematics ppl pplite milp linear-programming
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            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"
}
        
Elapsed time: 9.50052s