MiniZinc 中的最小和最大浮点值
Minimum and Maximum float value in MiniZinc
来自 MiniZinc specification :
Floats represent real numbers. Float representations are implementation-defined. This means that the representable range and precision of floats is implementation-defined. However, an implementation should abort at run-time on exceptional float operations (e.g., those that produce NaN, if using IEEE754 floats).
浮点数表示是实现定义的是什么意思?这取决于将要使用的求解器吗?
mzn2fzn 工具如何处理 Float 表示?它绑定了哪些?
MiniZinc 努力遵守 IEEE 标准。据我所知,编译器本身(minizinc
驱动程序或它的哥哥 mzn2fzn
)遵守这个标准。在内部,编译器对其浮点值使用 64 位精度。如果有编译器不遵守这些标准的任何问题,我鼓励您报告它们。
求解器的标准是另一回事。 MiniZinc 仅对求解器实施最小控制。如果您想确保他们采用正确的标准,您必须与解算器制造商核实。这就是为什么规范说它是 实现定义的 ,因为求解器可能使用 32 位(如 Gecode)、64 位(大多数求解器都使用)或完全不同的技术(如区间库.
来自 MiniZinc specification :
Floats represent real numbers. Float representations are implementation-defined. This means that the representable range and precision of floats is implementation-defined. However, an implementation should abort at run-time on exceptional float operations (e.g., those that produce NaN, if using IEEE754 floats).
浮点数表示是实现定义的是什么意思?这取决于将要使用的求解器吗?
mzn2fzn 工具如何处理 Float 表示?它绑定了哪些?
MiniZinc 努力遵守 IEEE 标准。据我所知,编译器本身(minizinc
驱动程序或它的哥哥 mzn2fzn
)遵守这个标准。在内部,编译器对其浮点值使用 64 位精度。如果有编译器不遵守这些标准的任何问题,我鼓励您报告它们。
求解器的标准是另一回事。 MiniZinc 仅对求解器实施最小控制。如果您想确保他们采用正确的标准,您必须与解算器制造商核实。这就是为什么规范说它是 实现定义的 ,因为求解器可能使用 32 位(如 Gecode)、64 位(大多数求解器都使用)或完全不同的技术(如区间库.