ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
vivify.hpp
Go to the documentation of this file.
1#ifndef _vivify_hpp_INCLUDED
2#define _vivify_hpp_INCLUDED
3
4#include "global.h"
5
6#include "util.hpp"
7
8#include <array>
9#include <cstdint>
10#include <vector>
11
13
14namespace CaDiCaL {
15
16struct Clause;
17
19
20#define COUNTREF_COUNTS 2
21
22struct vivify_ref {
23 bool vivify;
24 std::size_t size;
27};
28
29// In the vivifier structure, we put the schedules in an array in order to
30// be able to iterate over them, but we provide the reference to them to
31// make sure that you do need to remember the order.
63
64} // namespace CaDiCaL
65
67
68#endif
#define ABC_NAMESPACE_CXX_HEADER_START
#define ABC_NAMESPACE_CXX_HEADER_END
void erase_vector(std::vector< T > &v)
Definition util.hpp:90
Vivify_Mode
Definition vivify.hpp:18
std::vector< std::tuple< int, Clause *, bool > > lrat_stack
Definition vivify.hpp:45
std::vector< vivify_ref > & refs_schedule_tier3
Definition vivify.hpp:35
std::vector< vivify_ref > & refs_schedule_tier1
Definition vivify.hpp:34
std::array< std::vector< Clause * >, 4 > schedules
Definition vivify.hpp:36
Vivify_Mode tier
Definition vivify.hpp:40
std::vector< Clause * > & schedule_tier1
Definition vivify.hpp:37
std::vector< Clause * > & schedule_tier3
Definition vivify.hpp:37
Vivifier(Vivify_Mode mode_tier)
Definition vivify.hpp:46
std::vector< Clause * > & schedule_irred
Definition vivify.hpp:38
std::vector< Clause * > & schedule_tier2
Definition vivify.hpp:37
std::vector< int > sorted
Definition vivify.hpp:39
std::vector< vivify_ref > & refs_schedule_tier2
Definition vivify.hpp:34
std::array< std::vector< vivify_ref >, 4 > refs_schedules
Definition vivify.hpp:33
std::vector< vivify_ref > & refs_schedule_irred
Definition vivify.hpp:35
std::size_t size
Definition vivify.hpp:24
uint64_t count[COUNTREF_COUNTS]
Definition vivify.hpp:25
#define COUNTREF_COUNTS
Definition vivify.hpp:20