ACEC/hCaD_V2/src/limit.hpp
2022-10-21 19:34:18 +08:00

69 lines
2.2 KiB
C++

#ifndef _limit_hpp_INCLUDED
#define _limit_hpp_INCLUDED
namespace CaDiCaL {
struct Limit {
bool initialized;
int64_t conflicts; // conflict limit if non-negative
int64_t decisions; // decision limit if non-negative
int64_t preprocessing; // limit on preprocessing rounds
int64_t localsearch; // limit on local search rounds
int64_t compact; // conflict limit for next 'compact'
int64_t condition; // conflict limit for next 'condition'
int64_t elim; // conflict limit for next 'elim'
int64_t flush; // conflict limit for next 'flush'
int64_t probe; // conflict limit for next 'probe'
int64_t reduce; // conflict limit for next 'reduce'
int64_t rephase; // conflict limit for next 'rephase'
int64_t report; // report limit for header
int64_t restart; // conflict limit for next 'restart'
int64_t stabilize; // conflict limit for next 'stabilize'
int64_t subsume; // conflict limit for next 'subsume'
int keptsize; // maximum kept size in 'reduce'
int keptglue; // maximum kept glue in 'reduce'
// How often rephased during (1) or out (0) of stabilization.
//
int64_t rephased[2];
// Current elimination bound per eliminated variable.
//
int64_t elimbound;
struct {
int check; // countdown to next terminator call
int forced; // forced termination for testing
} terminate;
Limit ();
};
struct Last {
struct { int64_t propagations; } transred, vivify;
struct { int64_t fixed, subsumephases, marked; } elim;
struct { int64_t propagations, reductions; } probe;
struct { int64_t conflicts; } reduce, rephase;
struct { int64_t marked; } ternary;
struct { int64_t fixed; } collect;
Last ();
};
struct Inc {
int64_t flush; // flushing interval in terms of conflicts
int64_t stabilize; // stabilization interval increment
int64_t conflicts; // next conflict limit if non-negative
int64_t decisions; // next decision limit if non-negative
int64_t preprocessing; // next preprocessing limit if non-negative
int64_t localsearch; // next local search limit if non-negative
Inc ();
};
}
#endif