3#include "containers/ClauseBuffer.hpp"
4#include "containers/ClauseDatabase.hpp"
50 size_t giveSelection(std::vector<ClauseExchangePtr>& selectedCls,
unsigned int literalCountLimit)
override;
56 void getClauses(std::vector<ClauseExchangePtr>& v_cls)
override;
91 void initializeQueues(
unsigned int maxClsSize);
97 std::vector<std::unique_ptr<ClauseBuffer>> clauses;
#define LOGDEBUG3(...)
Log a debug message with verbosity level 4 and magenta color.
Definition Logger.hpp:229
A clause database that organizes clauses based on their size.
Definition ClauseDatabasePerSize.hpp:19
bool addClause(ClauseExchangePtr clause) override
Adds a clause to the appropriate size-based buffer.
~ClauseDatabasePerSize()
Virtual destructor.
bool getOneClause(ClauseExchangePtr &cls) override
Retrieves the smallest clause from the database.
ClauseDatabasePerSize()=delete
Default constructor deleted to enforce use of parameterized constructor.
int maxClauseSize
The maximum clause size accepted in this clause database.
Definition ClauseDatabasePerSize.hpp:108
void clearDatabase() override
Clears all size-based buffers.
size_t shrinkDatabase() override
Does nothing in this implementation.
Definition ClauseDatabasePerSize.hpp:75
size_t getSize() const override
Gets the total number of clauses across all size-based buffers.
size_t initLiteralCount
Initial literal count used for buffer sizing.
Definition ClauseDatabasePerSize.hpp:103
ClauseDatabasePerSize(int maxClauseSize)
Constructor with a specified maximum clause size.
void getClauses(std::vector< ClauseExchangePtr > &v_cls) override
Retrieves all clauses from all size-based buffers.
size_t giveSelection(std::vector< ClauseExchangePtr > &selectedCls, unsigned int literalCountLimit) override
Selects clauses up to a specified total size.
Abstract base class defining the interface for clause storage and management.
Definition ClauseDatabase.hpp:27