问题标签 [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.
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
为我们在初始化程序时加载的文件,如果文件被删除,我们可以通过运行代码一个小时再次保存程序?
问候
pari-gp - 如何在 GP 中计算和评估复合函数?
我找到了一种解决方法来制作复合功能,但我相信应该有更好的方法来做到这一点:
在这种方法中,我需要x
多次分配,我不想使用eval
函数。代码不可读和不可维护。
pari - 在 Pari-gp 中获取表达式的常量部分
这可能是一个非常愚蠢的问题——但我似乎无法在 pari-gp 文献中找到相关的解释。我正在库中寻找一个函数,该函数采用多项式、级数或常数,并吐出常数部分(在常数情况下,它只会吐出输入)。
我一直在使用的工具是polcoef(Expression,0)
,但这不适用于多个变量——我们必须再次调用该函数。
例如,
是否有内置函数可以对任意数量的变量执行此操作?因此,我不必迭代polcoef
函数。这将大大清理我的代码;而且我知道我可能自己构建一个递归函数,但我想知道是否有内置的东西可以做到这一点。
非常感谢任何帮助、评论、编辑和澄清请求。
问候。
编辑:
忘了补充,我想要的输出是,
pari - 本地设置系列精度——pari-gp
每个人。这是关于 pari-gp 的另一个快速问题。
我已经编写了我的主文件,以便两个不同的函数可以更好地工作 if\ps 100
或\ps 36
; 所以我想在运行之前指定一些函数,以便在本地我们可以说\ps 100
or \ps 36
。
通过这个,我想要一个功能与localprec类似的函数——但具有系列精度而不是数字精度。这意味着我们可以有这样的东西,
100 系列精度函数从不与 36 系列精度函数交互,除非下降到 36。我们从不尝试从 36 到 100,所以应该没有真正的问题。
非常感谢任何帮助或评论。
pari-gp - PARI/GP 中 matsolve 方法中可能存在的错误
当我给matsolve(M, B)
方法提供的矩阵大小不足时,我采取了分段错误而不是警告。
使用正确大小的矩阵,我得到了错误的结果。这是我的测试代码:
输出是:
只有前两行结果相同,其余的结果不同。我猜,对于给定的 info(nxk) 和 result(kx 1) 矩阵,GP 会忽略 info 矩阵的最后 (n - k) 行。
pari - 你如何在 PARI/GP 中获得 bit_length()
我在谷歌上看过,找不到答案,我想在这里问 PARI/GP 用户。我的问题很简单,您如何在 PARI/GP 中获得 bit_length(),您可以在此处的解释器中使用它:https ://pari.math.u-bordeaux.fr/gp.html
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开始,则始终找到匹配。
这种方法有效,但在我看来有点像蛮力,并且由于其组合结构随着N和S的增加而爆炸。
是否存在更好的方法?
注意:目标语言是Pari/GP
注意:伪算法就足够了 - 但也许 Pari/GP 中的工具允许一些更紧凑的解决方案/符号。
例子,(N,S)=(4,7)
下面是一个非常简单的例子。
假设通过嵌套循环,我通过以下方式获得向量E :
这将依次构建向量列表EE:
这个列表,只有前N列,是我以后要使用的向量列表。
额外的完整性检查:对于(N,S)=(4,16)我得到未过滤列表length_unfiltered = 455,并且在删除旋转后length_filtered=116 。
pari-gp - 有没有更好的方法来使用 Pari/GP 提取实数的数字?
这是我当前的代码,但它很丑陋,我担心非常大或小的数字可能会出现边缘情况。有一个更好的方法吗?
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,然后将整列水平拖动到需要的地方。
迭代函数
任何帮助将不胜感激。
pari - Pari GP 中的积分基 nf.zk 与 nfbasis
我一直在使用lmfdb.org的数据库来了解数字字段的积分基础。现在,我想利用 Pari GP 将代数整数相乘。但是,我遇到了一个问题。Pari GP 在其计算中使用积分基“nf.zk”,这显然与 lmfdb.org 提供的积分基“nfbasis(f)”并不总是相同。
例如,我们有以下来自 Pari GP 的代码。
现在,我的问题是:
- 为什么 nf.zk 和 nfbasis(f) 不同?
- 为什么 Pari GP 使用 nf.zk 而不是 nfbasis(f)?
- 最后,我可以告诉 Pari GP 使用 nfbasis(f) 代替 nf.zk 吗?