当前位置: 首页>>代码示例>>C++>>正文


C++ rational::is_zero方法代码示例

本文整理汇总了C++中rational::is_zero方法的典型用法代码示例。如果您正苦于以下问题:C++ rational::is_zero方法的具体用法?C++ rational::is_zero怎么用?C++ rational::is_zero使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在rational的用法示例。


在下文中一共展示了rational::is_zero方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: is_target

 bool is_target(expr * var, rational & val) {
     bool strict;
     return 
         is_uninterp_const(var) && 
         (!m_normalize_int_only || m_util.is_int(var)) && 
         m_bm.has_lower(var, val, strict) && 
         !val.is_zero();
 }
开发者ID:jawline,项目名称:z3,代码行数:8,代码来源:normalize_bounds_tactic.cpp

示例2: default_exception

 unsigned context::scoped_state::add(expr* f, rational const& w, symbol const& id) {
     if (w.is_neg()) {
         throw default_exception("Negative weight supplied. Weight should be positive");
     }
     if (w.is_zero()) {
         throw default_exception("Zero weight supplied. Weight should be positive");
     }
     if (!m.is_bool(f)) {
         throw default_exception("Soft constraint should be Boolean");
     }
     if (!m_indices.contains(id)) {
         m_objectives.push_back(objective(m, id));
         m_indices.insert(id, m_objectives.size() - 1);
     }
     SASSERT(m_indices.contains(id));        
     unsigned idx = m_indices[id];
     m_objectives[idx].m_terms.push_back(f);
     m_objectives[idx].m_weights.push_back(w);
     m_objectives_term_trail.push_back(idx);
     return idx;
 }
开发者ID:killbug2004,项目名称:Snippets,代码行数:21,代码来源:opt_context.cpp

示例3: generate_simple_tangent_lemma

    
std::ostream& tangents::print_tangent_domain(const point &a, const point &b, std::ostream& out) const {
    out << "("; print_point(a, out);  out <<  ", "; print_point(b, out); out <<  ")";
    return out;
}
void tangents::generate_simple_tangent_lemma(const rooted_mon* rm) {
    if (rm->size() != 2)
        return;
    TRACE("nla_solver", tout << "rm:"; m_core->print_rooted_monomial_with_vars(*rm, tout) << std::endl;);
    m_core->add_empty_lemma();
    unsigned i_mon = rm->orig_index();
    const monomial & m = c().m_monomials[i_mon];
    const rational v = c().product_value(m);
    const rational& mv = vvr(m);
    SASSERT(mv != v);
    SASSERT(!mv.is_zero() && !v.is_zero());
    rational sign = rational(nla::rat_sign(mv));
    if (sign != nla::rat_sign(v)) {
        c().generate_simple_sign_lemma(-sign, m);
        return;
    }
    bool gt = abs(mv) > abs(v);
    if (gt) {
        for (lpvar j : m) {
            const rational & jv = vvr(j);
            rational js = rational(nla::rat_sign(jv));
            c().mk_ineq(js, j, llc::LT);
            c().mk_ineq(js, j, llc::GT, jv);
        }
        c().mk_ineq(sign, i_mon, llc::LE, std::max(v, rational(-1)));
    } else {
开发者ID:levnach,项目名称:z3,代码行数:30,代码来源:nla_tangent_lemmas.cpp


注:本文中的rational::is_zero方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。