polymake的python包装
pypolymake的Python项目详细描述
这是什么?
python模块pypolymake为 Polymake。 它需要一个最新版本的polymake(用polymake测试 3.5条)。它与python 2和python 3都兼容。在内部使用时 SageMath您可以访问 从pypolymake对象到sagemath对象的特殊转换器。
该语言已经尽可能接近原始Perl PolyMake的界面。以下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正在开发中,很多东西都不起作用!不要犹豫 在development page上生成错误报告。
安装和源代码
pypolymake包在pypi上可用,请参见 https://pypi.org/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用户
如果在sagemath中使用pypolymake,则从sagemath对象转换为sagemath对象 有空。大多数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。更准确地说, 如果启动一个简单的python控制台并执行“import polymake”,然后 “import sage.all”最有可能的结果是 塞格法特。
许可证
图书馆pypolymake是根据gnu公众条款发行的。 由自由软件基金会发布的许可证(GPL);或 许可证,或(由您选择)任何更高版本(请参见http://www.gnu.org/licenses/)