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


C++ StateType::watcher2方法代码示例

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


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

示例1: handle_minus

static void handle_minus(StateType& state, typename StateType::clause_type clause, typename StateType::variable_type flip)
{
    if(state.num_true_literals(clause) == 1)
    {
        for(auto literal : clause)
            state.inc_makecount(literal.variable(), state.weight(clause));

        state.dec_breakcount(flip, state.weight(clause));
    }
    else if(state.num_true_literals(clause) == 2)
    {
        if(flip == state.watcher1(clause))
            state.watcher1(clause, state.watcher2(clause));

        state.inc_breakcount(state.watcher1(clause), state.weight(clause));
    }
    else
    {
        if(flip == state.watcher1(clause))
        {
            for(auto literal : clause)
                if(state.is_sat(literal) &&
                        literal.variable() != flip &&
                        literal.variable() != state.watcher2(clause))
                {
                    state.watcher1(clause, literal.variable());
                    break;
                }
        }
        else if(flip == state.watcher2(clause))
            for(auto literal : clause)
                if(state.is_sat(literal) &&
                        literal.variable() != flip &&
                        literal.variable() != state.watcher1(clause))
                {
                    state.watcher2(clause, literal.variable());
                    break;
                }
    }

    state.dec_num_true_literals(clause);
}
开发者ID:rustyspoon,项目名称:ssa,代码行数:42,代码来源:watch2_score_unsat_handler.hpp

示例2: handle_plus

    static void handle_plus(StateType& state, typename StateType::clause_type clause, typename StateType::variable_type flip)
    {
        if(state.num_true_literals(clause) == 0)
        {
            state.inc_breakcount(flip, state.weight(clause));
            state.watcher1(clause, flip);
        }
        else if(state.num_true_literals(clause) == 1)
        {
            state.dec_breakcount(state.watcher1(clause), state.weight(clause));
            state.watcher2(clause, flip);
        }

        state.inc_num_true_literals(clause);
    }
开发者ID:rustyspoon,项目名称:ssa,代码行数:15,代码来源:watch2_breakcount_unsat_handler.hpp


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