Skip to main content

Python PPL 包装器

项目描述

这个 Python 包为 C++ Parma Polyhedra Library (PPL)提供了一个包装器。

整个软件包最初是Sage软件一小部分的一个分支。

这个怎么运作

对象和方法的名称与库中的名称相同:

>>> import ppl
>>> x = ppl.Variable(0)
>>> y = ppl.Variable(1)
>>> z = ppl.Variable(2)
>>> cs = ppl.Constraint_System()
>>> cs.insert(x >= 0)
>>> cs.insert(y >= 0)
>>> cs.insert(z >= 0)
>>> cs.insert(x + y + z == 1)
>>> poly = ppl.C_Polyhedron(cs)
>>> poly.minimized_generators()
Generator_System {point(1/1, 0/1, 0/1), point(0/1, 1/1, 0/1), point(0/1, 0/1, 1/1)}

ppl Python 模块中可用的对象和函数有:

  • 变量变量集、线性表达式(在ppl.linear_algebra中定义

  • MIP_Problem(在ppl.mip_problem中定义)

  • C_Polyhedron , NNC_Polyhedron (在ppl.polyhedron中定义)

  • GeneratorGenerator_SystemPoly_Gen_Relationpointclosure_pointrayline(在ppl.generator中定义)

  • ConstraintConstraint_SystemPoly_Con_Relation不等式equationstrict_inequality(在ppl.constraint中定义)

安装

该项目在Python Package Index中可用,并且可以使用 pip 安装:

$ pip install pplpy

请注意,如果您在非标准目录中安装了 gmp 和 ppl(例如,您在 MacOSX 上使用 brew),那么您需要在调用pip之前适当地设置变量CFLAGS。例如:

$ export CFLAGS="-I/path/to/gmp/include/ -L/path/to/gmp/lib/ -I/path/to/ppl/include/ -L/path/to/ppl/lib $CFLAGS "
$ pip install pplpy

从 Cython 使用

pplpy 中的所有 Python 类都是扩展类型,可以与 Cython 一起使用。每个扩展类型都带有一个属性thisptr ,该属性包含一个指向来自 ppl 的相应 C++ 对象的指针。

文件tests/testpplpy.pyxtests/setup.py提供了一个完整的示例。

资源

您可以在 gitlab 上找到最新版本的源代码: https ://gitlab.com/videlec/pplpy

文档

该文档的在线版本可在http://www.labri.fr/perso/vdelecro/pplpy/latest/获得

编译 html 文档需要 make 和sphinx。在构建文档之前,您需要安装 pplpy 包(sphinx 使用 Python 自省)。文档源代码包含在存储库文档中,其中有一个带有目标html的标准 Makefile 。在docs存储库中运行make html会在docs/build/html中构建文档。有关更多配置选项,请运行make help

执照

pplpy 是根据自由软件基金会发布的 GNU 通用公共许可证 (GPL) 条款分发的;许可证的第 3 版,或(由您选择)任何更高版本。请参阅http://www.gnu.org/licenses/

要求

在 Debian/Ubuntu 系统上,这些可以安装:

$ sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev libppl-dev cython
$ pip install cysignals --user
$ pip install gmpy2 --pre --user

pip 可选选项–user允许为单个用户安装 python 包,而无需管理员权限。这两个 pip install 命令可能会被sudo pip install PKG替换(不推荐)。在最近的 Debian/Ubuntu 系统上,cysignals 也可以作为Python 2的名称python-cysignals和 Python 3的 python3-cysignals 的软件包提供。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

pplpy-0.8.7.ta​​r.gz (65.7 kB 查看哈希

已上传 source