ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
flags.h File Reference
#include <stdbool.h>
#include "global.h"
Include dependency graph for flags.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  flags
 

Macros

#define FLAGS(IDX)
 
#define ACTIVE(IDX)
 
#define ELIMINATED(IDX)
 

Typedefs

typedef typedefABC_NAMESPACE_HEADER_START struct flags flags
 

Functions

void kissat_activate_literal (struct kissat *, unsigned)
 
void kissat_activate_literals (struct kissat *, unsigned, unsigned *)
 
void kissat_mark_eliminated_variable (struct kissat *, unsigned idx)
 
void kissat_mark_fixed_literal (struct kissat *, unsigned lit)
 
void kissat_mark_added_literals (struct kissat *, unsigned, unsigned *)
 
void kissat_mark_removed_literals (struct kissat *, unsigned, unsigned *)
 

Macro Definition Documentation

◆ ACTIVE

#define ACTIVE ( IDX)
Value:
(FLAGS (IDX)->active)
#define FLAGS
#define IDX(LIT)
Definition literal.h:28

Definition at line 26 of file flags.h.

◆ ELIMINATED

#define ELIMINATED ( IDX)
Value:
(FLAGS (IDX)->eliminated)

Definition at line 27 of file flags.h.

◆ FLAGS

#define FLAGS ( IDX)
Value:
(KISSAT_assert ((IDX) < VARS), (solver->flags + (IDX)))
#define VARS
Definition internal.h:250
#define KISSAT_assert(ignore)
Definition global.h:13
#define solver
Definition kitten.c:211

Definition at line 24 of file flags.h.

Typedef Documentation

◆ flags

typedef typedefABC_NAMESPACE_HEADER_START struct flags flags

Definition at line 9 of file flags.h.

Function Documentation

◆ kissat_activate_literal()

void kissat_activate_literal ( struct kissat * solver,
unsigned lit )

Definition at line 52 of file flags.c.

52 {
53 activate_literal (solver, lit);
54}
int lit
Definition satVec.h:130
Here is the caller graph for this function:

◆ kissat_activate_literals()

void kissat_activate_literals ( struct kissat * solver,
unsigned size,
unsigned * lits )

Definition at line 56 of file flags.c.

57 {
58 for (unsigned i = 0; i < size; i++)
59 activate_literal (solver, lits[i]);
60}
unsigned long long size
Definition giaNewBdd.h:39
Here is the caller graph for this function:

◆ kissat_mark_added_literals()

void kissat_mark_added_literals ( struct kissat * solver,
unsigned size,
unsigned * lits )

Definition at line 113 of file flags.c.

114 {
115 for (unsigned i = 0; i < size; i++)
116 kissat_mark_added_literal (solver, lits[i]);
117}

◆ kissat_mark_eliminated_variable()

void kissat_mark_eliminated_variable ( struct kissat * solver,
unsigned idx )

Definition at line 79 of file flags.c.

79 {
80 const unsigned lit = LIT (idx);
82 LOG ("marking internal %s as eliminated", LOGVAR (idx));
83 flags *f = FLAGS (idx);
86 KISSAT_assert (!f->fixed);
87 f->eliminated = true;
88 deactivate_variable (solver, f, idx);
89 int elit = kissat_export_literal (solver, lit);
90 KISSAT_assert (elit);
91 KISSAT_assert (elit != INT_MIN);
92 unsigned eidx = ABS (elit);
93 import *import = &PEEK_STACK (solver->import, eidx);
97 size_t pos = SIZE_STACK (solver->eliminated);
98 KISSAT_assert (pos < (1u << 30));
99 import->lit = pos;
100 import->eliminated = true;
101 PUSH_STACK (solver->eliminated, (value) 0);
102 LOG ("marked external variable %u as eliminated", eidx);
103 KISSAT_assert (solver->unassigned > 0);
104 solver->unassigned--;
105}
#define SIZE_STACK(S)
Definition stack.h:19
#define PUSH_STACK(S, E)
Definition stack.h:39
#define LOG(...)
ABC_NAMESPACE_IMPL_START typedef signed char value
bool pos
Definition globals.c:30
#define LIT(IDX)
Definition literal.h:31
#define STRIP(LIT)
Definition literal.h:37
Definition flags.h:11
bool active
Definition flags.h:12
bool fixed
Definition flags.h:18
bool eliminated
Definition flags.h:16
bool eliminated
Definition internal.h:52
bool imported
Definition internal.h:51
unsigned lit
Definition internal.h:49
#define ABS(a)
Definition util_old.h:250
#define VALUE(LIT)
Definition value.h:10

◆ kissat_mark_fixed_literal()

void kissat_mark_fixed_literal ( struct kissat * solver,
unsigned lit )

Definition at line 62 of file flags.c.

62 {
63 KISSAT_assert (VALUE (lit) > 0);
64 const unsigned idx = IDX (lit);
65 LOG ("marking internal %s as fixed", LOGVAR (idx));
66 flags *f = FLAGS (idx);
69 KISSAT_assert (!f->fixed);
70 f->fixed = true;
71 deactivate_variable (solver, f, idx);
72 INC (units);
73 int elit = kissat_export_literal (solver, lit);
74 KISSAT_assert (elit);
75 PUSH_STACK (solver->units, elit);
76 LOG ("pushed external unit literal %d (internal %u)", elit, lit);
77}
#define INC(NAME)

◆ kissat_mark_removed_literals()

void kissat_mark_removed_literals ( struct kissat * solver,
unsigned size,
unsigned * lits )

Definition at line 107 of file flags.c.

108 {
109 for (unsigned i = 0; i < size; i++)
110 kissat_mark_removed_literal (solver, lits[i]);
111}