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在linux上编写系统日志   如何在同一个现有变量上多次更改变量的值?(爪哇)   易失性字符串Java   java需要帮助通过PreparedStatement编写适当的搜索查询   JavaMaven项目是否获得其他Maven项目的版本?   java如何在Eclipse中使用Drool应用程序抑制信息和警告调试信息   Java中FileReader和FileInputStream的区别是什么?   java如何为此编写HQL查询?   java方法根本不返回任何内容   VLCJ通过单个java程序控制多个音频文件   java为什么这个println命令不开始一个新行?   java如何创建自己的文件扩展名。odt或。医生?   声明字符串后,java在条件语句中设置int值   通过k8s作业文件将cmd参数传递给docker容器中的java应用程序