我有一个 Asymptote 脚本,它计算一对的值K
。这些值不断增加,当达到下面的一对时,我得到一个“cygwin 异常”。
K= (-1.53675691024507e+74,-4.05209495030412e+74)
pair G = K / ((1.0, 0.0) - K - K*K);
^
colorMap4.asy: 107.5: runtime: 0 [asy] asy 713 cygwin_exception::open_stackdumpfile: Dumping stack trace to asy.exe.stackdump
我不知道如何处理此消息。我尝试重新安装 Asymptote,但我没有管理员权限,并且由于我的笔记本电脑上的禁止符号链接而出现错误。
这个 stackdump 文件在哪里?有用吗?像 4e+74 这样的数字并不是很大,那么为什么它会崩溃呢?
G
我刚刚尝试通过将分子和分母除以 来替换 的表达式K
,以避免乘积K*K
。现在崩溃已经消失,但还有另一个:
K= (-183907760887.815,-118807190831.258)
_shipout(prefix,f,currentpatterns,format,wait,view,t);
^
C:/PortableApps/Asymptote/plain_shipout.asy: 116.11: Trying to use uninitialized value.
答案1
第一个问题确实是浮点溢出。通过删除K*K
,问题就解决了。
对于第二个问题,我必须修改plain_shipout.asy
:
string prefix="ZOZO"; // this is my modification
_shipout(prefix,f,currentpatterns,format,wait,view,t);
然后程序生成ZOZO.eps
。也许还有其他方法来给出输出名称。