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楼梯的最大高度   java Jackson从1.7.1更新到2.8.6 JsonTypeInfo子类型反序列化   Spring WebApp中的java JPA异常处理   java在SwingWorker(doInBackground)中从WorkerThread调用多个方法?   java Android Studio构建到jar   java是添加多个按钮组的更有效方法   java MySQL JDBC连接池最大大小   java如何防止元素<Integer>变成元素<Object>   Java:处理大型XML文件提取数据而不编写状态自动机?   SpringBoot和React Web应用程序中CAS的java重定向问题   需要java算法方面的帮助吗   java在JDK 16中使用PowerMock   java异常错误本机方法签名   在Java Android中将JSON映射到数组/对象   如何打开一个窗口。java程序中的dat文件   java应用程序引擎+Maven+热插拔   java Moxy的getValueByXPath为除根元素以外的所有元素返回null