0

我正在使用 GP 和最小多项式,如下所示在 ASUS x75 上运行:

(19:25) gp > elt=Mod(a*x^3+b*x^2+c*x+d,('x^5-1)/('x-1))
%122 = Mod(a*x^3 + b*x^2 + c*x + d, x^4 + x^3 + x^2 + x + 1)
(19:25) gp > (poly=minpoly(elt,x='x))
%123 = x^4 + (a + (b + (c - 4*d)))*x^3 + (a^2 + (-3*b + (2*c - 3*d))*a + (b^2 + (2*c - 3*d)*b + (c^2 - 3*d*c + 6*d^2)))*x^2 + (a^3 + (-2*b + (3*c - 2*d))*a^2 + (-2*b^2 + (c + 6*d)*b + (-2*c^2 - 4*d*c + 3*d^2))*a + (b^3 + (-2*c - 2*d)*b^2 + (3*c^2 - 4*d*c + 3*d^2)*b + (c^3 - 2*d*c^2 + 3*d^2*c - 4*d^3)))*x + (a^4 + (-b + (-c - d))*a^3 + (b^2 + (2*c + 2*d)*b + (c^2 - 3*d*c + d^2))*a^2 + (-b^3 + (-3*c + 2*d)*b^2 + (2*c^2 - d*c - 3*d^2)*b + (-c^3 + 2*d*c^2 + 2*d^2*c - d^3))*a + (b^4 + (-c - d)*b^3 + (c^2 + 2*d*c + d^2)*b^2 + (-c^3 - 3*d*c^2 + 2*d^2*c - d^3)*b + (c^4 - d*c^3 + d^2*c^2 - d^3*c + d^4)))

第一个命令成功出现,而下面的第二个命令确实成功完成并给出了 allocatemem() 错误。如何在不使计算机过热或程序耗尽的情况下使第二个命令工作?并且需要以下命令的整个输出。谢谢您的帮助。

(19:23) gp > elt=Mod(a*x^5+b*x^4+c*x^3+d*x^2+e*x+f,('x^7-1)/('x-1))
%120 = Mod(a*x^5 + b*x^4 + c*x^3 + d*x^2 + e*x + f, x^6 + x^5 + x^4 + x^3 + x^2 + x + 1)
(19:23) gp > (poly=minpoly(elt,x='x))
  ***   at top-level: poly=minpoly(elt,x='x)
  ***                      ^-----------------
  *** minpoly: the PARI stack overflows !
  current stack size: 9000000 (8.583 Mbytes)
  [hint] you can increase GP stack with allocatemem()
4

2 回答 2

4

您可以按照以下示例在运行时将 PARI/GP 的堆增加到您想要的任何限制(演示如何将堆大小设置为 120000000 字节):

default(parisize, 120000000)
于 2017-06-15T13:45:40.253 回答
0

default(parisize, 10000000000) 超过 8 GB,在我的情况下足以使用矩阵进行高级计算。

于 2020-10-02T11:43:28.903 回答