【发布时间】:2018-02-22 14:37:39
【问题描述】:
我在 linux 机器上使用 Z3-4.6.0 C/C++ API。
我陷入了一个非常愚蠢的问题。我在 QF_FP 逻辑中有一个求解器,求解器能够为输入问题返回 SAT。
当我这样做时
z3::model model = z3_solver_.get_model();
我明白了
(define-fun var_1 () (_ FloatingPoint 11 53)
(fp #b0 #b10000000001 #x3333333333333))
然后调用eval
z3::expr r = model.eval(z3::expr(var_expr), true);
我明白了
(fp #b0 #b10000000001 #x3333333333333)
我知道答案是正确的,因为我通过在线 IEEE-754 转换器进行了检查。
但我似乎无法弄清楚/找出任何可以将此值返回给我的函数。有没有像 Z3_get_numeral_uint64 (...) 这样的内置函数,它返回一个实数,或者即使它分别返回分子和分母,也可以。
谢谢。
【问题讨论】:
标签: c++ floating-point z3