跳转到主要内容

polymake 的 Python 封装

项目描述

这是什么?

Python 模块 pypolymake 提供了 Polymake 的封装。它需要一个足够新版本的 Polymake(已测试与 Polymake 3.5 版本兼容)。它兼容 Python 2 和 Python 3。当在 SageMath 中使用时,您可以从 pypolymake 对象到 SageMath 对象访问特殊转换器。

该语言尽可能接近 Polymake 原始 Perl 接口。以下 Polymake 构造

polytope> $c = cube(5);
polytope> print $c->F_VECTOR;
32 80 80 40 10
polytope> $g = $c->GRAPH;
polytope> print $g->DIAMETER;
5

在 Python 中翻译为

>>> from polymake import *
>>> c = cube(5)
>>> print(c.F_VECTOR)
(32, 80, 80, 40, 10)
>>> g = c.GRAPH
>>> print(g.DIAMETER)
5

由于 pypolymake 正在开发中,许多功能尚未正常工作!不要犹豫在 开发页面 上提交错误报告。

安装和源代码

在 PyPI 上可以找到 pypolymake 软件包,请参阅 https://pypi.ac.cn/project/pypolymake/。要在系统 Python 中安装它,只需运行以下命令

$ pip install pypolymake [--user] [--upgrade]

要在 SageMath 中安装 polymake 和 pypolymake,请运行

$ sage -i polymake
$ sage -pip install pypolymake [--user] [--upgrade]

如果 Polymake 头文件或库安装在不标准的位置,您可能需要设置环境变量 CFLAGS、CXXFLAGS、LDFLAGS。例如,在 OS X 上,您需要更新 LDFLAGS,如下所示

$ export LDFLAGS="-L/System/Library/Perl/5.18/darwin-thread-multi-2level/CORE/ $LDFLAGS"

对于 SageMath 用户

如果 pypolymake 在 SageMath 中使用,则可以从 SageMath 对象到 pypolymake 对象进行转换。大多数 polymake 对象都有一个 .sage() 方法,并且您可以使用 polymake.polymake 作为通用转换器。例如

sage: import polymake
sage: p = polymake.polymake(polytopes.dodecahedron())
sage: p
Polytope<QuadraticExtension<Rational>>
sage: p.VERTICES
1 3-1r5 3-1r5 3-1r5
1 -1+1r5 -4+2r5 0
...
1 -3+1r5 -3+1r5 -3+1r5
1 1-1r5 4-2r5 0
sage: print(p.VERTICES.sage())
[           1   -sqrt5 + 3   -sqrt5 + 3   -sqrt5 + 3]
[           1    sqrt5 - 1  2*sqrt5 - 4            0]
...
[           1    sqrt5 - 3    sqrt5 - 3    sqrt5 - 3]
[           1   -sqrt5 + 1 -2*sqrt5 + 4            0]

警告:sage 和 polymake 之间的共存并不完美。如果您在 sage 中使用 polymake,请始终先导入 sage,然后导入 polymake。更确切地说,如果您启动一个简单的 python 控制台并执行“import polymake”然后执行“import sage.all”,那么很可能会遇到(尚未识别的)SEGFAULT。

许可证

pypolymake 库根据由自由软件基金会发布的 GNU 通用公共许可证(GPL)的条款进行分发;许可证的版本 3,或(根据您的选择)任何更高版本(请参阅 https://gnu.ac.cn/licenses/

作者

此项目始于 2011 年由 Burcin Erocal 开发,自 2016 年起由 Vincent Delecroix 继续开发。

项目详情


下载文件

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

源代码分发

pypolymake-0.1b7.tar.gz (115.8 kB 查看哈希值)

上传时间 源代码

由以下支持