问题标签 [pari]
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.
pari - PARI/GP 中的位数
有没有一种方法可以获得最高有效位的位置,即floor(log(x)/log(2)) + 1
?
目前我正在运行以下可憎的事情:
这是必要的,因为我正在处理更大的数字,并且floor(log(2^(2^31) - 1)/log(2)) + 1
打印正确结果2147483647
而不是错误结果所需的精度2147483648
非常大。
PARI/GP 中真的没有内置函数来获取 MSB 的位置吗?
polynomials - 多项式向量,每个定义为一个函数
我正在尝试获取多项式向量,但在向量中每个多项式都由 Pari 中的函数定义。
例如,我希望能够输出这种形式的向量:
[f(x) = x-1 , f(x) = x^2 - 1, f(x) = x^3 - 1, f(x) = x^4 - 1, f(x) = x^5 - 1]
一个简单的向量构造vector( 5, n, f(x) = x^n-1)
不起作用,输出[(x)->my(i=1);x^i-1, (x)->my(i=2);x^i-1, (x)->my(i=3);x^i-1, (x)->my(i=4);x^i-1, (x)->my(i=5);x^i-1]
.
有没有办法非常巧妙地做到这一点?
更新:
我有一个函数,它在两个变量(比如 x 和 y)中采用多项式,用 exp(I*t) 替换其中一个变量(比如 y),然后在 t=0 和 t=1 之间积分,给出一个x 中的单变量多项式: int(T)=intnum(t=0,1,T(x,exp(I*t)))
由于这是定义的方式,我必须明确定义多项式T(x,y)=...
,然后计算int(T)
。简单地放入多项式,比如int(x*y)-1
,返回:
*** at top-level: int(x*y-1)
*** ^----------
*** in function int: intnum(t=0,1,T(x,exp(I*t)))
*** ^--------------
*** not a function in function call
*** Break loop: type 'break' to go back to GP prompt
我希望能够为许多多项式执行此操作,而不必T(x,y)=...
为每个多项式手动键入。我的计划是尝试使用该apply
功能来做到这一点(因此,将所有多项式放在一个向量中 - 举个简单的例子,vector(5, n, x^n*y-1)
)。但是,由于我定义的方式int
,我需要将向量中的每个条目定义为T(x,y)=...
,这是我最初的问题产生的地方。
定义T(x,y)=vector(5, n, x^n*y-1)
似乎对我想要计算的内容没有帮助。而且由于如何int
定义,我想不出任何其他方法来尝试解决这个问题。
有任何想法吗?
pari - 从 pari/gp 调用外部函数
是否可以从 pari/gp 调用 primesieve(Kim Walisch 工具)并将值传递到 pari/gp 中的变量中?我想用这个替换 primePi () 函数(作为外部函数,可能使用 system("f") 命令),因为 premisieve 找到素数的速度要快得多。
vector - 在循环中从向量中删除项目 - PARI/GP
我正在查看向量 [a,b,c],对于 [-1,0,1] 中的 a,b,c 以及一个函数循环,它将向量的每个条目向左移动一个:cycle( v ) = [v[3], v[1], v[2]]
。
我只想考虑没有两个向量是“循环等效”的向量;即:如果我看向量 x,y,我不想要y = cycle( x )
.
我尝试的是设置一个包含所有 27 个可能向量的向量 V,然后定义以下内容:
这允许我指定一个特定的向量,应用函数,然后返回一个带有结果的新向量,如果有,则删除。当然,问题是我必须用新的向量重复这个,一次又一次地重复,让自己面临人为错误。
我怎样才能自动化呢?我想可以将它设置为让我的向量向量 V、测试cycle( V[1] )
、丢弃结果、返回一个新向量 W、然后测试cycle( W[2] )
等等,直到所有可能性都得到测试。但我只是不确定如何设置它!
编辑:MNWE,为方便起见,将数字更改为上面。
在我的情况下,我会cycle( [1, 1, 2] ) = [2, 1, 1]
,所以我也想[2, 1, 1]
删除,但这并没有发生。如前所述,我想比较器需要改进,但我不确定如何改进!
python - 如何使用 Tuple/Array/Vector 从 Python (ctypes) 调用 PARI/GP?
我想从 Python调用PARI/GP 。我需要使用ellisdivisible(E; P; n;{&Q})
PARI 的功能 (请参阅此链接中第 441 页上的第 3.15.35 号功能:),所以我必须传递 2 个向量或数组(例如, E = ellinit([0,-1,1,0,0], K);P = [0,0];
),我该怎么做?
要从 Python (由 Thomas Baruchel 给出)调用单个参数/变量的 PARI 函数(在 C 中),我们有如下内容 -
例如我试过 -
我得到以下错误 -
如何传递元组/数组/向量?谢谢。
编辑:
尝试获取失败ellisdivisible(E; P; n;{&Q})
-
错误是 -
python - 如何在 python 中使用 Cypari 包?
我在cypari上搜索了说明文档或手册,但找不到,我只找到以下代码 -
所以,我不知道如何使用它。
python - 从 Python (ctypes) 向 PARI/GP 发送多项式
我想 从 Python调用PARI/GPnfroots({nf}; x)
的函数。(请参阅此链接中第 371 页的函数号 3.13.135.on :),但问题是,我无法发送需要发送的代数表达式或多项式,例如,这是一个非常简单的示例四次多项式可以做什么:x^2-7x+12
gp
从斯蒂芬施莱赫特的回答(点击这里),我设法写 -
请注意,创建 PARI 对象有特定的过程(参见Stephan Schlecht的答案),我更改了 的值t_POL = 10
,但代码不起作用,如何从 python 执行上述 PARI/GP 代码?
python - 使用 Ctypes 从 Python 中的 PARI/GP 获取数组/向量
我已经编写了一个代码来比较 和 的解决方案,sympy
我PARI/GP
如何从 PARI/GP 获取数组/向量时遇到问题。
当我尝试res
从 PARI/GP 函数返回向量时nfroots
,我得到一个这样的地址(见最后一行) -
如何从中获取res
as 向量/数组,nfroots
以便可以像普通 python 向量/数组一样使用该数组?
python - Ctypes 到 PARI/GP 中的分数值问题
我写了一个代码来比较 和 的解决方案sympy
,PARI/GP
但是当我给出一个小数值时D=13/12
,我得到了错误,TypeError: int expected instead of float
。
所以我改为 p1[i] = pari.stoi(c_long(numbers[i - 1]))
,p1[i] = pari.stoi(c_float(numbers[i - 1]))
但nfroots
没有输出,请注意我必须在 A、B、C、D 中使用小数部分,小数点后可能需要 $10^10$ 位。
我怎么解决这个问题?
错误是 -
pari - How to modify a Pari code to test a conjecture
This is a Pari code.
Now how can I modify this program to see if it is true that if numbers generated with that Pari code are multiple of 43, then they are congruent either to 0 or 344 mod (559)?