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/)
项目详情
pypolymake-0.1b7.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 68e33a4afbf3b6aed49134f480df1f3fa9ef0507a002e8d4dc3fce6f9eec0f3b |
|
MD5 | 8b25cd2fff986fcd57253af598f26a50 |
|
BLAKE2b-256 | 0ed8ea0989a21a5a8dd0d97f01a379348c3b3b389aabec91124186b94ec69a12 |