ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
decompose.hpp
Go to the documentation of this file.
1#ifndef _decompose_hpp_INCLUDED
2#define _decompose_hpp_INCLUDED
3
4#include "global.h"
5
7
8namespace CaDiCaL {
9
10// This implements Tarjan's algorithm for decomposing the binary implication
11// graph intro strongly connected components (SCCs). Literals in one SCC
12// are equivalent and we replace them all by the literal with the smallest
13// index in the SCC. These variables are marked 'substituted' and will be
14// removed from all clauses. Their value will be fixed during 'extend'.
15
16#define TRAVERSED UINT_MAX // mark completely traversed
17
18struct DFS {
19 unsigned idx; // depth first search index
20 unsigned min; // minimum reachable index
21 Clause *parent; // for lrat
22 DFS () : idx (0), min (0), parent (0) {}
23};
24
25} // namespace CaDiCaL
26
28
29#endif
#define ABC_NAMESPACE_CXX_HEADER_START
#define ABC_NAMESPACE_CXX_HEADER_END
unsigned min
Definition decompose.hpp:20
unsigned idx
Definition decompose.hpp:19
Clause * parent
Definition decompose.hpp:21