[英]Minimum and Maximum float value in MiniZinc
根據MiniZinc 規范 :
浮點數代表實數。 浮點表示法是實現定義的。 這意味着浮點數的可表示范圍和精度是實現定義的。 但是,實現應在運行時中止特殊的浮點操作(例如,如果使用IEEE754浮點,則產生NaN的操作)中止。
Float表示是實現定義的 ,這意味着什么? 是否取決於要使用的求解器?
以及mzn2fzn工具如何處理Float表示形式? 它的界限是什么?
MiniZinc嘗試遵守IEEE標准。 就我所知,編譯器本身( minizinc
驅動程序或其較老的兄弟mzn2fzn
)遵守此標准。 在內部,編譯器對其浮點值使用64位精度。 如果存在任何編譯器不遵守這些標准的問題,我建議您報告這些問題。
求解器的標准是另一回事。 MiniZinc僅對求解器實施最小的控制。 如果要確保他們采用正確的標准,則必須與求解器的制造商進行驗證。 這就是為什么規范說它是實現定義的原因 ,因為求解程序可能像大多數求解程序那樣使用32位(例如Gecode),64位,或者使用完全不同的技術(例如間隔庫)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.