python ppl包装器

pplp的Python项目详细描述


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

整个软件包一开始只是Sage软件的一小部分的分叉。

工作原理

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

>>>importppl>>>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)}

来自pplpython模块的可用对象和函数是:

  • 变量变量集线性表达式(在ppl.linear\u代数中定义)
  • mip_problem(在ppl.mip_problem中定义)
  • c_多面体nnc_多面体(定义见ppl.polyhedron
  • 生成器生成器系统多边形生成关系闭包点射线线(在ppl.generator中定义)
  • 约束约束系统多边形关系不等式方程严格不等式(在ppl.constraint中定义)

安装

该项目在Python Package Index和 可与PIP一起安装:

$ pip install pplpy

请注意,如果gmp和ppl安装在非标准目录中(例如,使用brew 在macosx上),则需要在调用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 相应的C++对象从ppl。

文件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生成文件。运行文档库中的make html生成文档 在docs/build/html中。有关更多配置选项,请运行make help

许可证

pplpy是根据gnu通用公共许可证(gpl)的条款分发的。 由自由软件基金会出版;或 许可证,或(由您选择)任何更高版本。见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==2.1.0a4 --user

pip可选选项–user允许为单个 不需要管理员权限的用户。两个pip install命令可能 替换为sudo pip install pkg(不推荐)。在最近的debian/ubuntu系统上, cysignals也可以作为名为python cysignals的包提供 python 2和python3 cysignals对于python3。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Google应用程序引擎FreeMarker模板java。安全AccessControlException   在Java中,空字符串(“”)如何存储在内存中?   java如何使用PUT进行创建   java无法构造com的实例。谷歌。云数据存储。钥匙   Java递归中的堆栈溢出错误   java通过结构化设计模式重构冗余代码   javascript使用Selenium IDE 2.9.1上传文件   JAVAutil。扫描仪在Java中将文本文件加载到对象中   这个JAVA程序的时间复杂度是多少   java Springboot+tomcat+ssh=连接链路故障   矢量Java不安全操作   用于Java不同生成代码的协议缓冲区gRPC protobuf生成器   java OSGi为什么我的包命名为“unknown0.0.0”和MANIFEST。MF文件被覆盖了吗?   java日期保持为空(Android)   使用stax解析器java解析xml   java有一种方法可以在运行时确定对象是否是使用Lambdaj创建的。关于()方法?