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

Public Member Functions

 reduceDB_lt (ClauseAllocator &ca_)
 
bool operator() (CRef x, CRef y)
 
 reduceDB_lt (ClauseAllocator &ca_)
 
bool operator() (CRef x, CRef y)
 
 reduceDB_lt (ClauseAllocator &ca_)
 
bool operator() (CRef x, CRef y)
 

Public Attributes

ClauseAllocatorca
 

Detailed Description

Definition at line 521 of file Solver.cpp.

Constructor & Destructor Documentation

◆ reduceDB_lt() [1/3]

reduceDB_lt::reduceDB_lt ( ClauseAllocator & ca_)
inline

Definition at line 523 of file Solver.cpp.

523: ca(ca_) {}
ClauseAllocator & ca
Definition Solver.cpp:522

◆ reduceDB_lt() [2/3]

reduceDB_lt::reduceDB_lt ( ClauseAllocator & ca_)
inline

Definition at line 915 of file Glucose.cpp.

915: ca(ca_) {}

◆ reduceDB_lt() [3/3]

reduceDB_lt::reduceDB_lt ( ClauseAllocator & ca_)
inline

Definition at line 1075 of file Glucose2.cpp.

1075: ca(ca_) {}

Member Function Documentation

◆ operator()() [1/3]

bool reduceDB_lt::operator() ( CRef x,
CRef y )
inline

Definition at line 524 of file Solver.cpp.

524 {
525 return ca[x].size() > 2 && (ca[y].size() == 2 || ca[x].activity() < ca[y].activity()); }

◆ operator()() [2/3]

bool reduceDB_lt::operator() ( CRef x,
CRef y )
inline

Definition at line 916 of file Glucose.cpp.

916 {
917
918 // Main criteria... Like in MiniSat we keep all binary clauses
919 if(ca[x].size()> 2 && ca[y].size()==2) return 1;
920
921 if(ca[y].size()> 2 && ca[x].size()==2) return 0;
922 if(ca[x].size()==2 && ca[y].size()==2) return 0;
923
924 // Second one based on literal block distance
925 if(ca[x].lbd()> ca[y].lbd()) return 1;
926 if(ca[x].lbd()< ca[y].lbd()) return 0;
927
928 // Finally we can use old activity or size, we choose the last one
929 return ca[x].activity() < ca[y].activity();
930 //return x->size() < y->size();
931 //return ca[x].size() > 2 && (ca[y].size() == 2 || ca[x].activity() < ca[y].activity()); }
932 }
unsigned long long size
Definition giaNewBdd.h:39

◆ operator()() [3/3]

bool reduceDB_lt::operator() ( CRef x,
CRef y )
inline

Definition at line 1076 of file Glucose2.cpp.

1076 {
1077
1078 // Main criteria... Like in MiniSat we keep all binary clauses
1079 if(ca[x].size()> 2 && ca[y].size()==2) return 1;
1080
1081 if(ca[y].size()> 2 && ca[x].size()==2) return 0;
1082 if(ca[x].size()==2 && ca[y].size()==2) return 0;
1083
1084 // Second one based on literal block distance
1085 if(ca[x].lbd()> ca[y].lbd()) return 1;
1086 if(ca[x].lbd()< ca[y].lbd()) return 0;
1087
1088 // Finally we can use old activity or size, we choose the last one
1089 return ca[x].activity() < ca[y].activity();
1090 //return x->size() < y->size();
1091 //return ca[x].size() > 2 && (ca[y].size() == 2 || ca[x].activity() < ca[y].activity()); }
1092 }

Member Data Documentation

◆ ca

ClauseAllocator & reduceDB_lt::ca

Definition at line 522 of file Solver.cpp.


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