mirror of
https://github.com/Z3Prover/z3
synced 2025-04-10 19:27:06 +00:00
61 lines
1.1 KiB
C++
61 lines
1.1 KiB
C++
/*++
|
|
Copyright (c) 2011 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
sat_asymm_branch.h
|
|
|
|
Abstract:
|
|
|
|
SAT solver asymmetric branching
|
|
|
|
Author:
|
|
|
|
Leonardo de Moura (leonardo) 2011-05-30.
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
#ifndef _SAT_ASYMM_BRANCH_H_
|
|
#define _SAT_ASYMM_BRANCH_H_
|
|
|
|
#include"sat_types.h"
|
|
#include"statistics.h"
|
|
#include"params.h"
|
|
|
|
namespace sat {
|
|
class solver;
|
|
|
|
class asymm_branch {
|
|
struct report;
|
|
|
|
solver & s;
|
|
int m_counter;
|
|
|
|
// config
|
|
bool m_asymm_branch;
|
|
unsigned m_asymm_branch_rounds;
|
|
unsigned m_asymm_branch_limit;
|
|
|
|
// stats
|
|
unsigned m_elim_literals;
|
|
|
|
bool process(clause & c);
|
|
public:
|
|
asymm_branch(solver & s, params_ref const & p);
|
|
|
|
void operator()(bool force = false);
|
|
|
|
void updt_params(params_ref const & p);
|
|
static void collect_param_descrs(param_descrs & d);
|
|
|
|
void collect_statistics(statistics & st);
|
|
void reset_statistics();
|
|
|
|
void dec(unsigned c) { m_counter -= c; }
|
|
};
|
|
|
|
};
|
|
|
|
#endif
|