ABC: A System for Sequential Synthesis and Verification
Loading...
Searching...
No Matches
clause.h
Go to the documentation of this file.
1
//===--- clause.h -----------------------------------------------------------===
2
//
3
// satoko: Satisfiability solver
4
//
5
// This file is distributed under the BSD 2-Clause License.
6
// See LICENSE for details.
7
//
8
//===------------------------------------------------------------------------===
9
#ifndef satoko__clause_h
10
#define satoko__clause_h
11
12
#include "
types.h
"
13
14
#include "
misc/util/abc_global.h
"
15
ABC_NAMESPACE_HEADER_START
16
17
struct
clause
{
18
unsigned
f_learnt
: 1;
19
unsigned
f_mark
: 1;
20
unsigned
f_reallocd
: 1;
21
unsigned
f_deletable
: 1;
22
unsigned
lbd
: 28;
23
unsigned
size
;
24
union
{
25
unsigned
lit
;
26
clause_act_t
act
;
27
}
data
[0];
28
};
29
30
//===------------------------------------------------------------------------===
31
// Clause API
32
//===------------------------------------------------------------------------===
33
static
inline
int
clause_compare(
const
void
*p1,
const
void
*p2)
34
{
35
const
struct
clause
*c1 = (
const
struct
clause
*)p1;
36
const
struct
clause
*c2 = (
const
struct
clause
*)p2;
37
38
if
(c1->
size
> 2 && c2->
size
== 2)
39
return
1;
40
if
(c1->
size
== 2 && c2->
size
> 2)
41
return
0;
42
if
(c1->
size
== 2 && c2->
size
== 2)
43
return
0;
44
45
if
(c1->
lbd
> c2->
lbd
)
46
return
1;
47
if
(c1->
lbd
< c2->
lbd
)
48
return
0;
49
50
return
c1->
data
[c1->
size
].
act
< c2->
data
[c2->
size
].
act
;
51
}
52
53
static
inline
void
clause_print(
struct
clause
*
clause
)
54
{
55
unsigned
i;
56
printf(
"{ "
);
57
for
(i = 0; i <
clause
->
size
; i++)
58
printf(
"%u "
,
clause
->
data
[i].
lit
);
59
printf(
"}\n"
);
60
}
61
62
static
inline
void
clause_dump(FILE *
file
,
struct
clause
*
clause
,
int
no_zero_var)
63
{
64
unsigned
i;
65
for
(i = 0; i <
clause
->
size
; i++) {
66
int
var
= (
clause
->
data
[i].
lit
>> 1);
67
char
pol = (
clause
->
data
[i].
lit
& 1);
68
fprintf(
file
,
"%d "
, pol ? -(var + no_zero_var) : (var + no_zero_var));
69
}
70
if
(no_zero_var)
71
fprintf(
file
,
"0\n"
);
72
else
73
fprintf(
file
,
"\n"
);
74
}
75
76
ABC_NAMESPACE_HEADER_END
77
#endif
/* satoko__clause_h */
abc_global.h
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
NewBdd::var
unsigned short var
Definition
giaNewBdd.h:35
clause
Definition
clause.h:22
clause::f_learnt
unsigned f_learnt
Definition
clause.h:18
clause::data
union clause::@075032140136325172206014200035176200302203305006 data[0]
clause::f_mark
unsigned f_mark
Definition
clause.h:19
clause::act
clause_act_t act
Definition
clause.h:26
clause::lbd
unsigned lbd
Definition
clause.h:22
clause::f_reallocd
unsigned f_reallocd
Definition
clause.h:20
clause::f_deletable
unsigned f_deletable
Definition
clause.h:21
clause::size
unsigned size
Definition
clause.h:37
clause::lit
unsigned lit
Definition
clause.h:25
file
Definition
file.h:23
types.h
clause_act_t
unsigned clause_act_t
Definition
types.h:36
src
sat
satoko
clause.h
Generated by Doxygen 1.13.2 © 2025 EPTansuo. All rights reserved.
鲁ICP备2021046540号