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/

作者

该项目已于2011年由Burcin Erocal启动并继续 作者:Vincent Delecroix,自2016年起。

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

推荐PyPI第三方库


热门话题
java如何使用Ibatis在插入时返回ID(使用返回关键字)   java(org.hibernate.TransactionException)org。冬眠TransactionException:事务未成功启动   java小程序jwindow始终位于JNLP顶部   在Java中重新解析JSON对象?   java单击后将ListView数据移动到新屏幕   Mule ESB中的java WSA寻址特性   Java,对象编程:获取返回0值的方法   hibernate的Java通用问题,如何处理T get(K id)   java在使用超级CSV读取CSV时忽略引用   ssh使用Java远程运行命令   java如何向具体用户发送websocket消息?   在JAVA中,我可以在不指定的情况下使用条件运算符吗?