2023-03-26 19:15:17 +08:00

37 lines
574 B
C

#ifndef _frames_h_INCLUDED
#define _frames_h_INCLUDED
#include "literal.h"
#include "stack.h"
#include <stdbool.h>
typedef struct frame frame;
#define LD_MAX_TRAIL LD_MAX_VAR
#define MAX_TRAIL ((1u<<LD_MAX_TRAIL)-1)
#define INVALID_TRAIL UINT_MAX
struct frame
{
unsigned decision;
unsigned trail:LD_MAX_TRAIL;
unsigned used:2;
bool promote:1;
};
// *INDENT-OFF*
typedef STACK (frame) frames;
// *INDENT-ON*
struct kissat;
void kissat_push_frame (struct kissat *, unsigned decision);
#define FRAME(LEVEL) \
(PEEK_STACK (solver->frames, (LEVEL)))
#endif