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

36 lines
634 B
C

#ifndef _queue_h_INCLUDED
#define _queue_h_INCLUDED
#define DISCONNECT UINT_MAX
#define DISCONNECTED(IDX) ((int)(IDX) < 0)
struct kissat;
typedef struct links links;
typedef struct queue queue;
struct links
{
unsigned prev, next;
unsigned stamp;
};
struct queue
{
unsigned first, last, stamp;
struct
{
unsigned idx, stamp;
} search;
};
void kissat_init_queue (queue *);
void kissat_enqueue (struct kissat *, unsigned idx);
void kissat_dequeue (struct kissat *, unsigned idx);
void kissat_move_to_front (struct kissat *, unsigned idx);
#define LINK(IDX) \
(solver->links[assert ((IDX) < VARS), (IDX)])
#endif