跳至主要内容

Python接口,用于数论库PARI/GP

项目描述

Documentation Status

Python接口,用于数论库PARI/GP

安装

从发行版软件包(GNU/Linux,conda-forge)

您的包管理器可能提供了该软件包,请参阅https://repology.org/project/python:cypari2/versionshttps://doc.sagemath.org/html/en/reference/spkg/cypari以获取安装说明。

从PyPI的预构建wheel

要求

  • Python >= 3.9

  • pip

通过Python包索引(PyPI)安装cypari2

$ pip install cypari2 [--user]

(可选选项–user允许为单个用户安装cypari2,并避免使用管理员权限的pip)。

使用pip从源安装

要求

通过Python包索引(PyPI)安装cypari2

$ pip install --no-binary cypari2 cypari2 [--user]

(可选选项–user允许为单个用户安装cypari2,并避免使用管理员权限的pip)。

pip使用构建隔离构建包。包的所有Python构建依赖项,在pyproject.toml中声明,都将在临时虚拟环境中自动安装。

如果您想尝试开发版本,请使用

$ pip install git+https://github.com/sagemath/cypari2.git [--user]

使用方法

界面尽可能接近PARI/GP。以下在GP中的计算

? zeta(2)
%1 = 1.6449340668482264364724151666460251892

? p = x^3 + x^2 + x - 1;
? modulus = t^3 + t^2 + t - 1;
? fq = factorff(p, 3, modulus);
? centerlift(lift(fq))
%5 =
[            x - t 1]

[x + (t^2 + t - 1) 1]

[   x + (-t^2 - 1) 1]

转换为

>>> import cypari2
>>> pari = cypari2.Pari()

>>> pari(2).zeta()
1.64493406684823

>>> p = pari("x^3 + x^2 + x - 1")
>>> modulus = pari("t^3 + t^2 + t - 1")
>>> fq = p.factorff(3, modulus)
>>> fq.lift().centerlift()
[x - t, 1; x + (t^2 + t - 1), 1; x + (-t^2 - 1), 1]

上面的对象pari是接口对象,充当构造函数。它可以与基本Python对象(如整数或浮点数)一起调用。当使用字符串作为最后一个示例时,相应的字符串将被解释为在GP外壳中执行。

除了类型为Pari的接口对象pari之外,您获取的任何对象都是类型为Gen的对象(它是libpari中的GEN类型的包装器)。然后,所有PARI/GP函数都以它们原始的名称作为方法(如上所述的zetafactorffliftcenterlift)可用。

或者,可以通过pari作为方法访问pari函数。可以通过以下方式执行相同的计算

>>> import cypari2
>>> pari = cypari2.Pari()

>>> pari.zeta(2)
1.64493406684823

>>> p = pari("x^3 + x^2 + x - 1")
>>> modulus = pari("t^3 + t^2 + t - 1")
>>> fq = pari.factorff(p, 3, modulus)
>>> pari.centerlift(pari.lift(fq))
[x - t, 1; x + (t^2 + t - 1), 1; x + (-t^2 - 1), 1]

cypari2的完整文档可在http://cypari2.readthedocs.io找到,PARI/GP文档在http://pari.math.u-bordeaux.fr/doc.html

贡献

CyPari 2 由 SageMath 社区维护。

https://github.com/sagemath/cypari2上提出问题或提交拉取请求,并加入https://groups.google.com/group/sage-devel进行讨论。

项目详细信息


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

cypari2-2.2.0.tar.gz (127.5 kB 查看哈希值

上传时间

构建分布

cypari2-2.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (34.5 MB 查看哈希值

上传时间 CPython 3.12 manylinux: glibc 2.17+ x86-64

cypari2-2.2.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (32.0 MB 查看哈希值

上传于 CPython 3.12 manylinux: glibc 2.17+ i686

cypari2-2.2.0-cp312-cp312-macosx_11_0_arm64.whl (6.6 MB 查看哈希值)

上传于 CPython 3.12 macOS 11.0+ ARM64

cypari2-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (34.9 MB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ x86-64

cypari2-2.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (32.2 MB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ i686

cypari2-2.2.0-cp311-cp311-macosx_11_0_arm64.whl (6.6 MB 查看哈希值)

上传于 CPython 3.11 macOS 11.0+ ARM64

cypari2-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (34.2 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64

cypari2-2.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (31.5 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ i686

cypari2-2.2.0-cp310-cp310-macosx_11_0_arm64.whl (6.6 MB 查看哈希值)

上传于 CPython 3.10 macOS 11.0+ ARM64

cypari2-2.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (34.2 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

cypari2-2.2.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (31.5 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ i686

cypari2-2.2.0-cp39-cp39-macosx_11_0_arm64.whl (6.6 MB 查看哈希值)

上传于 CPython 3.9 macOS 11.0+ ARM64

由以下机构支持