ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
CaDiCaL::Wrapper Struct Reference
Inheritance diagram for CaDiCaL::Wrapper:
Collaboration diagram for CaDiCaL::Wrapper:

Public Member Functions

bool terminate ()
 
bool learning (int size)
 
void learn (int lit)
 
 Wrapper ()
 
 ~Wrapper ()
 
- Public Member Functions inherited from CaDiCaL::Learner
virtual ~Learner ()
 
- Public Member Functions inherited from CaDiCaL::Terminator
virtual ~Terminator ()
 

Public Attributes

Solversolver
 
struct { 
 
   void *   state 
 
   int(*   function )(void *) 
 
terminator 
 
struct { 
 
   void *   state 
 
   int   max_length 
 
   int *   begin_clause 
 
   int *   end_clause 
 
   int *   capacity_clause 
 
   void(*   function )(void *, int *) 
 
learner 
 

Detailed Description

Definition at line 12 of file cadical_ccadical.cpp.

Constructor & Destructor Documentation

◆ Wrapper()

CaDiCaL::Wrapper::Wrapper ( )
inline

Definition at line 55 of file cadical_ccadical.cpp.

55 : solver (new Solver ()) {
56 memset (&terminator, 0, sizeof terminator);
57 memset (&learner, 0, sizeof learner);
58 }
struct CaDiCaL::Wrapper::@141235032232154027043210372131361323260375365300 learner
struct CaDiCaL::Wrapper::@153037360162222217302235253026335132324125226210 terminator
char * memset()
Here is the call graph for this function:

◆ ~Wrapper()

CaDiCaL::Wrapper::~Wrapper ( )
inline

Definition at line 60 of file cadical_ccadical.cpp.

60 {
61 terminator.function = 0;
62 if (learner.begin_clause)
63 free (learner.begin_clause);
64 delete solver;
65 }
VOID_HACK free()
Here is the call graph for this function:

Member Function Documentation

◆ learn()

void CaDiCaL::Wrapper::learn ( int lit)
inlinevirtual

Implements CaDiCaL::Learner.

Definition at line 39 of file cadical_ccadical.cpp.

39 {
40 if (learner.end_clause == learner.capacity_clause) {
41 size_t count = learner.end_clause - learner.begin_clause;
42 size_t size = count ? 2 * count : 1;
43 learner.begin_clause =
44 (int *) realloc (learner.begin_clause, size * sizeof (int));
45 learner.end_clause = learner.begin_clause + count;
46 learner.capacity_clause = learner.begin_clause + size;
47 }
48 *learner.end_clause++ = lit;
49 if (lit)
50 return;
51 learner.function (learner.state, learner.begin_clause);
52 learner.end_clause = learner.begin_clause;
53 }
unsigned long long size
Definition giaNewBdd.h:39
int lit
Definition satVec.h:130
char * realloc()
Here is the call graph for this function:

◆ learning()

bool CaDiCaL::Wrapper::learning ( int size)
inlinevirtual

Implements CaDiCaL::Learner.

Definition at line 33 of file cadical_ccadical.cpp.

33 {
34 if (!learner.function)
35 return false;
36 return size <= learner.max_length;
37 }

◆ terminate()

bool CaDiCaL::Wrapper::terminate ( )
inlinevirtual

Implements CaDiCaL::Terminator.

Definition at line 27 of file cadical_ccadical.cpp.

27 {
28 if (!terminator.function)
29 return false;
30 return terminator.function (terminator.state);
31 }

Member Data Documentation

◆ begin_clause

int* CaDiCaL::Wrapper::begin_clause

Definition at line 23 of file cadical_ccadical.cpp.

◆ capacity_clause

int * CaDiCaL::Wrapper::capacity_clause

Definition at line 23 of file cadical_ccadical.cpp.

◆ end_clause

int * CaDiCaL::Wrapper::end_clause

Definition at line 23 of file cadical_ccadical.cpp.

◆ function [1/2]

int(* CaDiCaL::Wrapper::function) (void *)

Definition at line 17 of file cadical_ccadical.cpp.

◆ function [2/2]

void(* CaDiCaL::Wrapper::function) (void *, int *)

Definition at line 24 of file cadical_ccadical.cpp.

◆ [struct]

struct { ... } CaDiCaL::Wrapper::learner

◆ max_length

int CaDiCaL::Wrapper::max_length

Definition at line 22 of file cadical_ccadical.cpp.

◆ solver

Solver* CaDiCaL::Wrapper::solver

Definition at line 14 of file cadical_ccadical.cpp.

◆ state

void* CaDiCaL::Wrapper::state

Definition at line 16 of file cadical_ccadical.cpp.

◆ [struct]

struct { ... } CaDiCaL::Wrapper::terminator

The documentation for this struct was generated from the following file: