BitMagic-C++
|
Base class for bit-transposed sparse vector construction. More...
#include <bmbmatrix.h>
Public Types | |
enum | bit_plains { sv_plains = (sizeof(Val) * 8 * MAX_SIZE + 1), sv_value_plains = (sizeof(Val) * 8 * MAX_SIZE) } |
enum | vector_capacity { max_vector_size = MAX_SIZE } |
typedef Val | value_type |
typedef BV | bvector_type |
typedef BV::size_type | size_type |
typedef bvector_type * | bvector_type_ptr |
typedef BV::allocator_type | allocator_type |
typedef bvector_type::allocation_policy | allocation_policy_type |
typedef bvector_type::enumerator | bvector_enumerator_type |
typedef allocator_type::allocator_pool_type | allocator_pool_type |
typedef bm::basic_bmatrix< BV > | bmatrix_type |
Public Member Functions | |
base_sparse_vector () | |
base_sparse_vector (bm::null_support null_able, allocation_policy_type ap, size_type bv_max_size, const allocator_type &alloc) | |
base_sparse_vector (const base_sparse_vector< Val, BV, MAX_SIZE > &bsv) | |
base_sparse_vector (base_sparse_vector< Val, BV, MAX_SIZE > &&bsv) BMNOEXEPT | |
void | swap (base_sparse_vector< Val, BV, MAX_SIZE > &bsv) BMNOEXEPT |
size_type | size () const |
void | resize (size_type new_size) |
void | clear_range (size_type left, size_type right, bool set_null) |
void | clear () BMNOEXEPT |
resize to zero, free memory More... | |
bool | empty () const |
void | optimize (bm::word_t *temp_block=0, typename bvector_type::optmode opt_mode=bvector_type::opt_compress, typename bvector_type::statistics *stat=0) |
run memory optimization for all bit-vector rows More... | |
void | calc_stat (typename bvector_type::statistics *st) const |
Calculates memory statistics. More... | |
bool | equal (const base_sparse_vector< Val, BV, MAX_SIZE > &sv, bm::null_support null_able=bm::use_null) const |
check if another sparse vector has the same content and size More... | |
Various traits | |
| |
bool | is_nullable () const |
check if container supports NULL(unassigned) values More... | |
const bvector_type * | get_null_bvector () const |
Get bit-vector of assigned values or NULL (if not constructed that way) More... | |
bool | is_null (size_type idx) const |
test if specified element is NULL More... | |
Data Fields | |
const typedef bvector_type * | bvector_type_const_ptr |
const typedef value_type & | const_reference |
Protected Member Functions | |
void | copy_from (const base_sparse_vector< Val, BV, MAX_SIZE > &bsv) |
void | clear_value_plains_from (unsigned plain_idx, size_type idx) |
void | insert_clear_value_plains_from (unsigned plain_idx, size_type idx) |
void | erase_column (size_type idx) |
void | insert_null (size_type idx, bool not_null) |
Static Protected Member Functions | |
static unsigned | value_bits () |
Number of total bit-plains in the value type. More... | |
static unsigned | null_plain () |
plain index for the "NOT NULL" flag1s plain More... | |
Protected Attributes | |
bmatrix_type | bmatr_ |
bit-transposed matrix More... | |
size_type | size_ |
array size More... | |
unsigned | effective_plains_ |
Access to internals | |
bvector_type_ptr | get_plain (unsigned i) |
get access to bit-plain, function checks and creates a plain More... | |
bvector_type_const_ptr | get_plain (unsigned i) const |
get read-only access to bit-plain More... | |
unsigned | effective_plains () const |
Number of effective bit-plains in the value type. More... | |
bvector_type_ptr | plain (unsigned i) |
get access to bit-plain as is (can return NULL) More... | |
const bvector_type_ptr | plain (unsigned i) const |
bvector_type * | get_null_bvect () |
void | free_plain (unsigned i) |
free memory in bit-plain More... | |
bm::id64_t | get_plains_mask (unsigned element_idx) const |
static unsigned | plains () |
get total number of bit-plains in the vector More... | |
static unsigned | stored_plains () |
Number of stored bit-plains (value plains + extra. More... | |
Base class for bit-transposed sparse vector construction.
Definition at line 244 of file bmbmatrix.h.
typedef bvector_type::allocation_policy bm::base_sparse_vector< Val, BV, MAX_SIZE >::allocation_policy_type |
Definition at line 265 of file bmbmatrix.h.
typedef allocator_type::allocator_pool_type bm::base_sparse_vector< Val, BV, MAX_SIZE >::allocator_pool_type |
Definition at line 267 of file bmbmatrix.h.
typedef BV::allocator_type bm::base_sparse_vector< Val, BV, MAX_SIZE >::allocator_type |
Definition at line 264 of file bmbmatrix.h.
typedef bm::basic_bmatrix<BV> bm::base_sparse_vector< Val, BV, MAX_SIZE >::bmatrix_type |
Definition at line 268 of file bmbmatrix.h.
typedef bvector_type::enumerator bm::base_sparse_vector< Val, BV, MAX_SIZE >::bvector_enumerator_type |
Definition at line 266 of file bmbmatrix.h.
typedef BV bm::base_sparse_vector< Val, BV, MAX_SIZE >::bvector_type |
Definition at line 259 of file bmbmatrix.h.
typedef bvector_type* bm::base_sparse_vector< Val, BV, MAX_SIZE >::bvector_type_ptr |
Definition at line 261 of file bmbmatrix.h.
typedef BV::size_type bm::base_sparse_vector< Val, BV, MAX_SIZE >::size_type |
Definition at line 260 of file bmbmatrix.h.
typedef Val bm::base_sparse_vector< Val, BV, MAX_SIZE >::value_type |
Definition at line 258 of file bmbmatrix.h.
enum bm::base_sparse_vector::bit_plains |
Enumerator | |
---|---|
sv_plains | |
sv_value_plains |
Definition at line 247 of file bmbmatrix.h.
enum bm::base_sparse_vector::vector_capacity |
Enumerator | |
---|---|
max_vector_size |
Definition at line 253 of file bmbmatrix.h.
bm::base_sparse_vector< Val, BV, MAX_SIZE >::base_sparse_vector |
Definition at line 1081 of file bmbmatrix.h.
bm::base_sparse_vector< Val, BV, MAX_SIZE >::base_sparse_vector | ( | bm::null_support | null_able, |
allocation_policy_type | ap, | ||
size_type | bv_max_size, | ||
const allocator_type & | alloc | ||
) |
Definition at line 1091 of file bmbmatrix.h.
bm::base_sparse_vector< Val, BV, MAX_SIZE >::base_sparse_vector | ( | const base_sparse_vector< Val, BV, MAX_SIZE > & | bsv | ) |
Definition at line 1110 of file bmbmatrix.h.
|
inline |
move-ctor
Definition at line 282 of file bmbmatrix.h.
void bm::base_sparse_vector< Val, BV, MAX_SIZE >::calc_stat | ( | typename bvector_type::statistics * | st | ) | const |
Calculates memory statistics.
Function fills statistics structure containing information about how this vector uses memory and estimation of max. amount of memory bvector needs to serialize itself.
st | - pointer on statistics structure to be filled in. |
Definition at line 1320 of file bmbmatrix.h.
void bm::base_sparse_vector< Val, BV, MAX_SIZE >::clear |
resize to zero, free memory
Definition at line 1169 of file bmbmatrix.h.
void bm::base_sparse_vector< Val, BV, MAX_SIZE >::clear_range | ( | size_type | left, |
size_type | right, | ||
bool | set_null | ||
) |
Definition at line 1185 of file bmbmatrix.h.
|
protected |
clear column in all value plains
plain_idx | - row (plain index to start from) |
idx | - bit (column) to clear |
Definition at line 1351 of file bmbmatrix.h.
|
protected |
Definition at line 1121 of file bmbmatrix.h.
|
inline |
Number of effective bit-plains in the value type.
Definition at line 360 of file bmbmatrix.h.
|
inline |
return true if empty
Definition at line 303 of file bmbmatrix.h.
bool bm::base_sparse_vector< Val, BV, MAX_SIZE >::equal | ( | const base_sparse_vector< Val, BV, MAX_SIZE > & | sv, |
bm::null_support | null_able = bm::use_null |
||
) | const |
check if another sparse vector has the same content and size
sv | - sparse vector for comparison |
null_able | - flag to consider NULL vector in comparison (default) or compare only value content plains |
Definition at line 1392 of file bmbmatrix.h.
|
protected |
erase bit (column) from all plains
idx | - bit (column) to erase |
Definition at line 1379 of file bmbmatrix.h.
|
inline |
free memory in bit-plain
Definition at line 373 of file bmbmatrix.h.
|
inline |
Definition at line 368 of file bmbmatrix.h.
Referenced by bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::back_insert_iterator::back_insert_iterator().
|
inline |
Get bit-vector of assigned values or NULL (if not constructed that way)
Definition at line 319 of file bmbmatrix.h.
Referenced by bm::base_sparse_vector< Val, BV, 1 >::equal(), generate_random_subset(), and print_sorted().
base_sparse_vector< Val, BV, MAX_SIZE >::bvector_type_ptr bm::base_sparse_vector< Val, BV, MAX_SIZE >::get_plain | ( | unsigned | i | ) |
get access to bit-plain, function checks and creates a plain
Definition at line 1252 of file bmbmatrix.h.
|
inline |
get read-only access to bit-plain
Definition at line 348 of file bmbmatrix.h.
bm::id64_t bm::base_sparse_vector< Val, BV, MAX_SIZE >::get_plains_mask | ( | unsigned | element_idx | ) | const |
return mask of allocated bit-plains 1 in the mask - means bit-plain N is present returns 64-bit unsigned mask for sub 64-bit types (like int) unallocated mask bits will be zero extended
Definition at line 1268 of file bmbmatrix.h.
|
protected |
insert false (clear) column in all value plains
plain_idx | - row (plain index to start from) |
idx | - bit (column) to clear insert |
Definition at line 1365 of file bmbmatrix.h.
|
protected |
insert (NOT) NULL value
Definition at line 1240 of file bmbmatrix.h.
bool bm::base_sparse_vector< Val, BV, MAX_SIZE >::is_null | ( | size_type | idx | ) | const |
test if specified element is NULL
idx | - element index |
Definition at line 1231 of file bmbmatrix.h.
Referenced by bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::const_iterator::is_null(), and print_svector().
|
inline |
check if container supports NULL(unassigned) values
Definition at line 313 of file bmbmatrix.h.
|
inlinestaticprotected |
plain index for the "NOT NULL" flag1s plain
Definition at line 460 of file bmbmatrix.h.
Referenced by bm::base_sparse_vector< Val, BV, 1 >::get_null_bvect(), bm::base_sparse_vector< Val, BV, 1 >::get_null_bvector(), and bm::base_sparse_vector< Val, BV, 1 >::is_nullable().
void bm::base_sparse_vector< Val, BV, MAX_SIZE >::optimize | ( | bm::word_t * | temp_block = 0 , |
typename bvector_type::optmode | opt_mode = bvector_type::opt_compress , |
||
typename bvector_type::statistics * | stat = 0 |
||
) |
run memory optimization for all bit-vector rows
temp_block | - pre-allocated memory block to avoid unnecessary re-allocs |
opt_mode | - requested compression depth |
stat | - memory allocation statistics after optimization |
Definition at line 1290 of file bmbmatrix.h.
|
inline |
get access to bit-plain as is (can return NULL)
Definition at line 365 of file bmbmatrix.h.
|
inline |
Definition at line 366 of file bmbmatrix.h.
|
inlinestatic |
get total number of bit-plains in the vector
Definition at line 353 of file bmbmatrix.h.
void bm::base_sparse_vector< Val, BV, MAX_SIZE >::resize | ( | size_type | new_size | ) |
Definition at line 1213 of file bmbmatrix.h.
|
inline |
Definition at line 293 of file bmbmatrix.h.
Referenced by bm::base_sparse_vector< Val, BV, 1 >::copy_from(), bm::base_sparse_vector< Val, BV, 1 >::empty(), and bm::base_sparse_vector< Val, BV, 1 >::equal().
|
inlinestatic |
Number of stored bit-plains (value plains + extra.
Definition at line 356 of file bmbmatrix.h.
Referenced by bm::base_sparse_vector< Val, BV, 1 >::copy_from().
void bm::base_sparse_vector< Val, BV, MAX_SIZE >::swap | ( | base_sparse_vector< Val, BV, MAX_SIZE > & | bsv | ) |
Definition at line 1154 of file bmbmatrix.h.
|
inlinestaticprotected |
Number of total bit-plains in the value type.
Definition at line 454 of file bmbmatrix.h.
Referenced by bm::base_sparse_vector< Val, BV, 1 >::null_plain(), bm::base_sparse_vector< Val, BV, 1 >::plains(), and bm::base_sparse_vector< Val, BV, 1 >::stored_plains().
|
protected |
bit-transposed matrix
Definition at line 462 of file bmbmatrix.h.
Referenced by bm::base_sparse_vector< Val, BV, 1 >::base_sparse_vector(), bm::base_sparse_vector< Val, BV, 1 >::copy_from(), bm::base_sparse_vector< Val, BV, 1 >::equal(), bm::base_sparse_vector< Val, BV, 1 >::free_plain(), bm::base_sparse_vector< Val, BV, 1 >::get_null_bvect(), bm::base_sparse_vector< Val, BV, 1 >::get_null_bvector(), bm::base_sparse_vector< Val, BV, 1 >::get_plain(), bm::base_sparse_vector< Val, BV, 1 >::is_nullable(), and bm::base_sparse_vector< Val, BV, 1 >::plain().
const typedef bvector_type* bm::base_sparse_vector< Val, BV, MAX_SIZE >::bvector_type_const_ptr |
Definition at line 262 of file bmbmatrix.h.
const typedef value_type& bm::base_sparse_vector< Val, BV, MAX_SIZE >::const_reference |
Definition at line 263 of file bmbmatrix.h.
|
protected |
Definition at line 464 of file bmbmatrix.h.
Referenced by bm::base_sparse_vector< Val, BV, 1 >::base_sparse_vector(), bm::base_sparse_vector< Val, BV, 1 >::copy_from(), and bm::base_sparse_vector< Val, BV, 1 >::effective_plains().
|
protected |
array size
Definition at line 463 of file bmbmatrix.h.
Referenced by bm::base_sparse_vector< Val, BV, 1 >::base_sparse_vector(), and bm::base_sparse_vector< Val, BV, 1 >::size().