直到今天,我一直在 Maxima 中使用假单位,当我意识到有支持转换和其他很酷功能的单位包时。我发现 ezunits 是其家族中最完整的软件包,但我发现它存在问题。
每次我想使用它,我都必须编译它。换句话说,运行该行会load(ezunits)
启动一个编译过程并将文件的位置作为输出输出ezunits.mac
。但是,如果要打开一个新的 maxima 会话并load(ezunits)
在其上运行,则编译将再次执行。人们会期望只编译一次,然后只加载一个编译文件。
有没有办法解决这个问题?
直到今天,我一直在 Maxima 中使用假单位,当我意识到有支持转换和其他很酷功能的单位包时。我发现 ezunits 是其家族中最完整的软件包,但我发现它存在问题。
每次我想使用它,我都必须编译它。换句话说,运行该行会load(ezunits)
启动一个编译过程并将文件的位置作为输出输出ezunits.mac
。但是,如果要打开一个新的 maxima 会话并load(ezunits)
在其上运行,则编译将再次执行。人们会期望只编译一次,然后只加载一个编译文件。
有没有办法解决这个问题?
我不知道如何抑制所有关于编译的消息。您可以编辑 ezunits_functions.mac 的副本并注释掉开始的行compile (constantp_not0, ...)
或直接删除它。
另一种解决方法是将 ezunits 编译并加载到 Maxima 中,然后保存当前图像(现在包含默认的 Maxima 和 ezunits)。然后您可以加载更新的图像而不是默认图像,并且 ezunits 已经存在。
我猜你在 Windows 上工作,Maxima 是用 GCL 编译的。在这种情况下,我不确定如何转储图像。对于 Linux 上的 GCL,它是:(si:save-system "myimagename")
您还需要修改 Maxima 批处理脚本以加载更新的图像。
顺便说一句,我编写了 ezunits 包,所以如果您有任何问题或意见,我很想听听。