コード例 #1
0
ファイル: qe_bv_plugin.cpp プロジェクト: NikolajBjorner/z3
 bool project(contains_app& x, model_ref& model, expr_ref& fml) override {
     model_evaluator model_eval(*model);
     expr_ref val_x(m);
     rational val(0);
     unsigned bv_size;
     model_eval(x.x(), val_x);
     m_bv.is_numeral(val_x, val, bv_size);
     subst(x, val, fml, nullptr);
     return true;
 }
コード例 #2
0
ファイル: partial_sum.hpp プロジェクト: gnzlbg/range-v3
 tagged_pair<tag::in(I), tag::out(O)>
 operator()(I begin, S1 end, O result, S2 end_result, BOp bop = BOp{}, P proj = P{}) const
 {
     using X = projected<projected<I, detail::as_value_type_t<I>>, P>;
     coerce<value_type_t<I>> val_i;
     coerce<value_type_t<X>> val_x;
     if(begin != end && result != end_result)
     {
         auto &&cur1 = val_i(*begin);
         value_type_t<X> t(invoke(proj, cur1));
         *result = t;
         for(++begin, ++result; begin != end && result != end_result;
             ++begin, ++result)
         {
             auto &&cur2 = val_i(*begin);
             t = val_x(invoke(bop, t, invoke(proj, cur2)));
             *result = t;
         }
     }
     return {begin, result};
 }