我有一台Linux PC(Ubuntu),我从命令行安装了PARI / GP(当你在shell中输入gp
时,它说程序不在那里,但是给你一个可以用来命令的命令把它全部安装完毕),然后我有一台Windows机器,我通过PARI / GP主页上的self-installing distribution (.exe
)安装了PARI / GP。
当我用Ctrl+C
(或Ctrl+Break
)中断函数调用时,我发现行为有所不同。在Linux版本中,它会出现如下消息:
*** user interrupt after 358 ms
*** Break loop: <Return> to continue; 'break' to go back to GP prompt
它允许我检查局部变量(其范围限于被终止的函数内),例如循环变量。但是,在我的Windows机器上它完全离开了这个功能,并且按照通常的提示进行操作,在我按下Ctrl+C
之前,我无法看到所有状态是什么样的。
对于一个人为的例子,代码如下:
for(i=1,10^30,if(ispseudoprime(i^i+1),print(i)))
在Ubuntu系统上,我可以打破并检查i
的当前大小,然后决定停止或继续,而在另一台机器上,这是不可能的。
为什么这两个安装之间存在这种差异,这是我可以自己配置的吗?
答案 0 :(得分:2)
(回答我自己的问题)
这是由名为breakloop
的所谓默认控制的。您可以在GP中看到其值(应该是0
或1
):
default(breakloop)
您可以使用例如:
将其更改为新值default(breakloop, 1)
在您的Linux系统上,您没有首选项文件(gprc
文件),因此名为breakloop
的默认采用其“默认”值{{{ 1}}在你使用GP时。
另一方面,在MS Windows系统上,安装附带一个首选项文件1
,其中存在一行:
C:\Program Files (x86)\Pari-2-7-2\gprc.txt
您可以完全删除该行,或将其注释掉:
breakloop = 0
或 您可以将\\breakloop = 0
更改为0
。
请注意,当您编辑1
时,您需要一个文本编辑器,(1)可以读取行结尾只有gprc.txt
的文本文件(而不是通常的Windows约定LF
),和(2)“以管理员身份运行”。