36 lines
634 B
C
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
|