【发布时间】:2019-06-27 09:46:45
【问题描述】:
我在 Haskell 中编写了一个应用程序,它调用 Z3 求解器来解决具有一些复杂公式的约束。感谢 Haskell,我可以快速切换我正在使用的数据类型。
当使用 SBV 的 AlgReal 类型进行计算时,我会在合理的时间内得到结果,但是切换到 Float 或 Double 类型会使 Z3 消耗约 2Gb 的 RAM,即使在 30 分钟内也不会产生结果。
这是预期生成浮点解决方案需要更多时间,还是我这边的一些错误?
【问题讨论】:
-
我只是半个专家,但我相信,是的,IEEE754 的理论比任意代数实数理论显着复杂,因为每个运算都包含一个舍入很难推理的操作。 (不写这个作为答案,因为我只有一半的专家,只有大约 80% 相信我自己的陈述。)
-
@ThomasM.DuBuisson 哈哈,老实说,如果允许抄送具体用户,我会在问题中添加@LeventErkok。