Class BasePackedComponent¶
- Defined in File base_packed_component.h
Inheritance Relationships¶
Derived Type¶
public DifferencePackedComponent
(Class DifferencePackedComponent)
Class Documentation¶
-
class
BasePackedComponent
¶ Stores the specifications for package cache components including the number of bits in a variable, clause, and other information.
Subclassed by DifferencePackedComponent
Public Functions
-
BasePackedComponent
()¶
-
BasePackedComponent
(unsigned creation_time)¶ Creates a packed component and records with it the creation time.
- Parameters
creation_time
:
-
~BasePackedComponent
()¶
-
unsigned
creation_time
()¶
-
const mpz_class &
model_count
() const¶
-
unsigned
alloc_of_model_count
() const¶
-
void
set_creation_time
(unsigned time)¶
-
void
set_model_count
(const mpz_class &rn, unsigned time)¶
-
unsigned
hashkey
() const¶
-
bool
modelCountFound
()¶
-
bool
isDeletable
() const¶ Determines if a cache entry is deletable. This entails that the entry is not connected to an active component in the component stack.
- Return
- true if the cache entry is disconnected from an active component and can be deleted.
-
void
set_deletable
()¶ Mark the packed cache entry as deletable.
-
void
clear
()¶ Free the memory associated with the packed cache entry’s data.
Public Static Functions
-
static unsigned
bits_per_variable
()¶ Accessor to get n := {lg |var(F)|}, i.e., the number of bits that represent a VARIABLE.
- Return
- Number of bits to store a VARIABLE
-
static unsigned
variable_mask
()¶
-
static unsigned
bits_per_clause
()¶ Accessor to get m := {lg |cl(F)|}, i.e., the number of bits that represent a CLAUSE.
- Return
- Number of bits to store a CLAUSE.
-
static unsigned
bits_per_block
()¶
-
static unsigned
bits_of_data_size
()¶
-
void
adjustPackSize
(unsigned int maxVarId, unsigned int maxClId)¶ Configures that variables that define the packing size variables.
- Parameters
maxVarId
: Maximum ID number for a variablemaxClId
: Maximum ID number for a clause
-
static void
outbit
(unsigned v)¶ Prints a bit string to the console. The MSB is printed first and the LSB last.
- Parameters
v
: Value to be printed by bit to the console.
-
static unsigned
log2
(unsigned v)¶
Public Static Attributes
-
unsigned
_debug_static_val
= 0¶
Protected Attributes
-
unsigned *
data_
= nullptr¶ Packed data array to be stored in memory,
data_ contains in packed form the variable indices and clause indices of the component ordered structure is
var var … clause clause …
clauses begin at clauses_ofs_
-
unsigned
hashkey_
= 0¶
-
mpz_class
model_count_
¶
-
unsigned
creation_time_
= 1¶
-
unsigned
length_solution_period_and_flags_
= 0¶
Protected Static Attributes
-
unsigned
_bits_per_clause
= 0¶ In the sharpSAT paper, bits per clause (m) is defined as:
m := {lg |cl(F)|}
It is the minimum number of bits per clause when packing is enabled.
The implementation is slightly different in the code. It is defined as:
m := {lg |cl(F)| + 1}
base_packed_component.cpp
Purpose: Defines the static variables and methods for the BasePackedComponent() class.
Copyright (C) 2018 Zayd Hammoudeh. All rights reserved.
- Author
- Zayd Hammoudeh zayd@ucsc.edu
- Version
- 0.00.00
This software may be modified and distributed under the terms of the MIT license. See the LICENSE file for details.
Original Author: Marc Thurley.
-
unsigned
_bits_per_variable
= 0¶ In the sharpSAT paper, bits per variable (n) is defined as:
n := {lg |var(F)|}
It is the minimum number of bits per clause when packing is enabled.
The implementation is slightly different in the code. It is defined as:
n := {lg |var(F)| + 1}
-
unsigned
_bits_of_data_size
= 0¶
-
unsigned
_data_size_mask
= 0¶
-
unsigned
_variable_mask
= 0¶ Bit mask in the form of bits of 0b1 of length “n”
-
unsigned
_clause_mask
= 0¶ Bit mask in the form of bits of 0b1 of length “m”
-
const unsigned
_bits_per_block
= (sizeof(unsigned) << 3)¶ Equals 32 (= 4 * 8 bits)
sizeof(unsigned) = 4 Three left bit shifts equals 8
-