ABC: A System for Sequential Synthesis and Verification
Loading...
Searching...
No Matches
promote.h
Go to the documentation of this file.
1
#ifndef _promote_h_INCLUDED
2
#define _promote_h_INCLUDED
3
4
#include "
internal.h
"
5
6
#include "
global.h
"
7
ABC_NAMESPACE_HEADER_START
8
9
void
kissat_promote_clause
(
struct
kissat
*,
clause
*,
unsigned
new_glue);
10
11
static
inline
unsigned
kissat_recompute_glue (
kissat
*
solver
,
clause
*c,
12
unsigned
limit) {
13
KISSAT_assert
(limit);
14
KISSAT_assert
(
EMPTY_STACK
(
solver
->promote));
15
unsigned
res = 0;
16
for
(
all_literals_in_clause
(
lit
, c)) {
17
KISSAT_assert
(
VALUE
(
lit
));
18
const
unsigned
level =
LEVEL
(
lit
);
19
frame
*
frame
= &
FRAME
(level);
20
if
(
frame
->
promote
)
21
continue
;
22
if
(++res == limit)
23
break
;
24
frame
->
promote
=
true
;
25
PUSH_STACK
(
solver
->promote, level);
26
}
27
for
(
all_stack
(
unsigned
, level,
solver
->promote)) {
28
frame
*
frame
= &
FRAME
(level);
29
KISSAT_assert
(
frame
->
promote
);
30
frame
->
promote
=
false
;
31
}
32
CLEAR_STACK
(
solver
->promote);
33
return
res;
34
}
35
36
ABC_NAMESPACE_HEADER_END
37
38
#endif
ABC_NAMESPACE_HEADER_END
#define ABC_NAMESPACE_HEADER_END
Definition
abc_namespaces.h:51
ABC_NAMESPACE_HEADER_START
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
Definition
abc_namespaces.h:50
LEVEL
#define LEVEL(LIT)
Definition
assign.h:34
all_stack
#define all_stack(T, E, S)
Definition
stack.h:94
EMPTY_STACK
#define EMPTY_STACK(S)
Definition
stack.h:18
CLEAR_STACK
#define CLEAR_STACK(S)
Definition
stack.h:50
PUSH_STACK
#define PUSH_STACK(S, E)
Definition
stack.h:39
FRAME
#define FRAME(LEVEL)
Definition
frames.h:33
internal.h
all_literals_in_clause
#define all_literals_in_clause(LIT, C)
Definition
clause.h:47
global.h
KISSAT_assert
#define KISSAT_assert(ignore)
Definition
global.h:13
solver
#define solver
Definition
kitten.c:211
kissat_promote_clause
ABC_NAMESPACE_HEADER_START void kissat_promote_clause(struct kissat *, clause *, unsigned new_glue)
Definition
promote.c:7
lit
int lit
Definition
satVec.h:130
clause
Definition
clause.h:22
frame
Definition
frames.h:15
frame::promote
bool promote
Definition
frames.h:16
kissat
Definition
internal.h:79
VALUE
#define VALUE(LIT)
Definition
value.h:10
src
sat
kissat
promote.h
Generated by Doxygen 1.13.2 © 2025 EPTansuo. All rights reserved.
鲁ICP备2021046540号