31 lines
744 B
C++
31 lines
744 B
C++
#ifndef _level_hpp_INCLUDED
|
|
#define _level_hpp_INCLUDED
|
|
|
|
#include <climits>
|
|
|
|
namespace CaDiCaL {
|
|
|
|
// For each new decision we increase the decision level and push a 'Level'
|
|
// on the 'control' stack. The information gathered here is used in
|
|
// 'reuse_trail' and for early aborts in clause minimization.
|
|
|
|
struct Level {
|
|
|
|
int decision; // decision literal of this level
|
|
int trail; // trail start of this level
|
|
|
|
struct {
|
|
int count; // how many variables seen during 'analyze'
|
|
int trail; // smallest trail position seen on this level
|
|
} seen;
|
|
|
|
void reset () { seen.count = 0; seen.trail = INT_MAX; }
|
|
|
|
Level (int d, int t) : decision (d), trail (t) { reset (); }
|
|
Level () { }
|
|
};
|
|
|
|
}
|
|
|
|
#endif
|