问题标签 [pari-gp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
116 浏览

c - 在 pari-gp 中创建初始化文件

这个问题绝对是个愚蠢的问题。但是,来自C;我在将头文件或“初始化”文件添加到我的 pari-gp 代码时遇到问题。这意味着;我有一个 1 小时的代码编译来制作一个向量;一旦初始化,我就可以使用该向量;但我想制作一个这个向量的文件,这样我就可以在它编译一次后访问它。

这是没有头文件的代码;编译大约需要一个小时(假设系列精度/数值精度设置为 100)。

而不是残酷的分配beta_taylor;和像穴居人一样print(beta_taylor),我怎样才能把它写到一个初始化文件中,我可以用脚本打包。那是; 一个 X mb 文件,所有系数都整齐地打包在一起。如果文件丢失,只需运行代码(需要一个小时)重新编写初始化文件。

我的意思是,我将如何正确地做#include test.h一个test.h很长的泰勒级数值列表。这样我就可以只包含这个文件,并beta_taylor[i]为第 i 个函数编写。这样它就像包含变量一样简单,就像在 C 中一样。我知道我错过了一些简单的东西,这很令人沮丧——让我觉得自己很愚蠢。

我主要只是询问要执行此操作的语法。我想我知道怎么做;但我想这不是最好的方法。

任何帮助或建议都非常感谢(我真的是认真的,非常感谢)。

使长话短说; 如何保存beta_taylor为我们在初始化程序时加载的文件,如果文件被删除,我们可以通过运行代码一个小时再次保存程序?

问候

0 投票
2 回答
86 浏览

pari-gp - 如何在 GP 中计算和评估复合函数?

我找到了一种解决方法来制作复合功能,但我相信应该有更好的方法来做到这一点:

在这种方法中,我需要x多次分配,我不想使用eval函数。代码不可读和不可维护。

0 投票
1 回答
50 浏览

pari - 在 Pari-gp 中获取表达式的常量部分

这可能是一个非常愚蠢的问题——但我似乎无法在 pari-gp 文献中找到相关的解释。我正在库中寻找一个函数,该函数采用多项式、级数或常数,并吐出常数部分(在常数情况下,它只会吐出输入)。

我一直在使用的工具是polcoef(Expression,0),但这不适用于多个变量——我们必须再次调用该函数。

例如,

是否有内置函数可以对任意数量的变量执行此操作?因此,我不必迭代polcoef函数。这将大大清理我的代码;而且我知道我可能自己构建一个递归函数,但我想知道是否有内置的东西可以做到这一点。

非常感谢任何帮助、评论、编辑和澄清请求。

问候。

编辑:

忘了补充,我想要的输出是,

0 投票
1 回答
69 浏览

pari - 本地设置系列精度——pari-gp

每个人。这是关于 pari-gp 的另一个快速问题。

我已经编写了我的主文件,以便两个不同的函数可以更好地工作 if\ps 100\ps 36; 所以我想在运行之前指定一些函数,以便在本地我们可以说\ps 100or \ps 36

通过这个,我想要一个功能与localprec类似的函数——但具有系列精度而不是数字精度。这意味着我们可以有这样的东西,

100 系列精度函数从不与 36 系列精度函数交互,除非下降到 36。我们从不尝试从 36 到 100,所以应该没有真正的问题。

非常感谢任何帮助或评论。

0 投票
1 回答
70 浏览

pari-gp - PARI/GP 中 matsolve 方法中可能存在的错误

当我给matsolve(M, B)方法提供的矩阵大小不足时,我采取了分段错误而不是警告。

使用正确大小的矩阵,我得到了错误的结果。这是我的测试代码:

输出是:

只有前两行结果相同,其余的结果不同。我猜,对于给定的 info(nxk) 和 result(kx 1) 矩阵,GP 会忽略 info 矩阵的最后 (n - k) 行。

0 投票
3 回答
53 浏览

pari - 你如何在 PARI/GP 中获得 bit_length()

我在谷歌上看过,找不到答案,我想在这里问 PARI/GP 用户。我的问题很简单,您如何在 PARI/GP 中获得 bit_length(),您可以在此处的解释器中使用它:https ://pari.math.u-bordeaux.fr/gp.html

0 投票
2 回答
130 浏览

c - 识别索引向量上的循环;制作列表,减去旋转

我使用长度为N和条目总和S的自然数向量,例如,使用(N,S)=(4,7)一个示例向量 E=[1,2,1,3] ,其中所有条目在向量中假设> 0

我想列出具有相同配置(N,S)=(4,7)的所有向量,但应该过滤掉旋转。

问题:最好的算法是什么?
(我的实际实现是在 Pari/GP 中,它提供了一个嵌套的 for 循环,使用一个边界向量来表示上下索引值)

我首先尝试了一个“蛮力”解决方案,因为我使用嵌套的 for 循环生成一个列表,但将向量连接的双重concat(E,E)存储在列表EE[]中,然后,对于每个新向量E=[e_1,e_2,e_3,e_4]检查该向量是否出现在已检查列表EE[]的串联向量中,如果没有,则将其附加为新的有效条目
EE[k]=E||E = [e_1,e_2,e_3,e_4,e_1,e_2,e_3,e_4]。此处的比较类似于字符串比较 - 如果匹配从位置1或最多N开始,则始终找到匹配。

这种方法有效,但在我看来有点像蛮力,并且由于其组合结构随着NS的增加而爆炸。

是否存在更好的方法?

注意:目标语言是Pari/GP
注意:伪算法就足够了 - 但也许 Pari/GP 中的工具允许一些更紧凑的解决方案/符号。


例子,(N,S)=(4,7)
下面是一个非常简单的例子。

假设通过嵌套循环,我通过以下方式获得向量E :

这将依次构建向量列表EE

这个列表,只有前N列,是我以后要使用的向量列表。

额外的完整性检查:对于(N,S)=(4,16)我得到未过滤列表length_unfiltered = 455,并且在删除旋转后length_filtered=116 。

0 投票
2 回答
64 浏览

pari-gp - 有没有更好的方法来使用 Pari/GP 提取实数的数字?

这是我当前的代码,但它很丑陋,我担心非常大或小的数字可能会出现边缘情况。有一个更好的方法吗?

0 投票
0 回答
39 浏览

pari-gp - 如何在 Pari/GP 中编写迭代函数

我对 pari/gp 完全陌生。在 YouTube 上观看了一些视频并浏览了一些在线 pdf 教程文件后,5 个小时后,我仍然对如何编写下面的迭代函数感到茫然。我使用的是 Excel,但需要一些可以处理非常大的数字的东西,并被介绍给了 pari。Excel 公式非常简单,对于 b = 7 和 c = 9/7 如下所示:
(1) A 列中的数字为 1 到 10^5;
(2) 在B1中输入公式=IF(MOD(A1,7)=0,A1/7,CEILING(A1*9/7,1));(
3) 将 B1 向下拖动到 A100000,然后将整列水平拖动到需要的地方。

迭代函数

任何帮助将不胜感激。

0 投票
0 回答
9 浏览

pari - Pari GP 中的积分基 nf.zk 与 nfbasis

我一直在使用lmfdb.org的数据库来了解数字字段的积分基础。现在,我想利用 Pari GP 将代数整数相乘。但是,我遇到了一个问题。Pari GP 在其计算中使用积分基“nf.zk”,这显然与 lmfdb.org 提供的积分基“nfbasis(f)”并不总是相同。

例如,我们有以下来自 Pari GP 的代码。

现在,我的问题是:

  1. 为什么 nf.zk 和 nfbasis(f) 不同?
  2. 为什么 Pari GP 使用 nf.zk 而不是 nfbasis(f)?
  3. 最后,我可以告诉 Pari GP 使用 nfbasis(f) 代替 nf.zk 吗?