bm::basic_bmatrix< BV > Class Template Reference
BitMagic Library

Basic dense bit-matrix class. More...

`#include <bmbmatrix.h>`

Collaboration diagram for bm::basic_bmatrix< BV >:
[legend]

## Public Types

typedef BV | bvector_type
typedef bvector_type * | bvector_type_ptr
typedef const bvector_type * | bvector_type_const_ptr
typedef BV::allocator_type | allocator_type
typedef bvector_type::allocation_policy | allocation_policy_type
typedef allocator_type::allocator_pool_type | allocator_pool_type
typedef bvector_type::size_type | size_type
typedef bvector_type::block_idx_type | block_idx_type
typedef unsigned char | octet_type

## Public Member Functions

Construction, assignment
| basic_bmatrix (size_type rsize, bool is_dynamic=true, allocation_policy_type ap=allocation_policy_type(), size_type bv_max_size=bm::id_max, const allocator_type &alloc=allocator_type())
| ~basic_bmatrix () BMNOEXCEPT
| basic_bmatrix (const basic_bmatrix< BV > &bbm)
basic_bmatrix< BV > & | operator= (const basic_bmatrix< BV > &bbm)
| basic_bmatrix (basic_bmatrix< BV > &&bbm) BMNOEXCEPT
basic_bmatrix< BV > & | operator= (basic_bmatrix< BV > &&bbm) BMNOEXCEPT
void | set_allocator_pool (allocator_pool_type *pool_ptr) BMNOEXCEPT
allocator_pool_type * | get_allocator_pool () const BMNOEXCEPT
content manipulation
void | swap (basic_bmatrix< BV > &bbm) BMNOEXCEPT
void | copy_from (const basic_bmatrix< BV > &bbm)
void | freeze ()
row access
const bvector_type * | row (size_type i) const BMNOEXCEPT
bvector_type_const_ptr | get_row (size_type i) const BMNOEXCEPT
bvector_type * | get_row (size_type i) BMNOEXCEPT
size_type | rows () const BMNOEXCEPT
size_type | rows_not_null () const BMNOEXCEPT
size_type | calc_effective_rows_not_null () const BMNOEXCEPT
bvector_type_ptr | construct_row (size_type row)
bvector_type_ptr | construct_row (size_type row, const bvector_type &bv)
void | destruct_row (size_type row)
void | clear_row (size_type row, bool free_mem)
size_type | get_null_idx () const BMNOEXCEPT
| return index of the NULL vector
void | set_null_idx (size_type null_idx) BMNOEXCEPT
| set index of the NULL vector
void | allocate_rows (size_type rsize)
| allocate matrix rows of bit-vectors (new rows are NULLs)
void | free_rows () BMNOEXCEPT
| Free all rows.
octet access and transposition
void | set_octet (size_type pos, size_type octet_idx, unsigned char octet)
void | insert_octet (size_type pos, size_type octet_idx, unsigned char octet)
unsigned char | get_octet (size_type pos, size_type octet_idx) const BMNOEXCEPT
int | compare_octet (size_type pos, size_type octet_idx, char octet) const BMNOEXCEPT
size_type | octet_size () const BMNOEXCEPT
Utility functions
const bm::word_t * | get_block (size_type p, unsigned i, unsigned j) const BMNOEXCEPT
| Get low level internal access to.
void | clear_slices_range (unsigned slice_from, unsigned slize_until, size_type idx)
| Clear bit-planes bit.
unsigned | get_half_octet (size_type pos, size_type row_idx) const BMNOEXCEPT
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
void | optimize_block (block_idx_type nb, typename BV::optmode opt_mode)
void | calc_stat (typename bvector_type::statistics &st, size_type rsize) const BMNOEXCEPT
void | erase_column (size_type idx, bool erase_null)
void | insert_column (size_type idx, size_type row_from)
void | clear_column (size_type idx, size_type row_from)
void | swap_columns (size_type idx1, size_type idx2)
void | bit_sub_rows (const bvector_type &bv, bool use_null)
| Set SUB (MINUS) operation on all existing rows.
void | bit_and_rows (const bvector_type &bv)
| Set AND (intersect) operation on all existing rows.
bool | is_dynamic () const BMNOEXCEPT
| Return if matrix is dynamic resizable.
bool | is_same_structure (const basic_bmatrix< BV > &bbm) const BMNOEXCEPT
| Debugging function to check if two matrixes have the same rows created.

## Protected Member Functions

bvector_type * | construct_bvector (const bvector_type *bv) const
void | destruct_bvector (bvector_type *bv) const

## Static Protected Member Functions

static void | throw_bad_alloc ()

## Protected Attributes

size_type | bv_size_
allocator_type | alloc_
allocation_policy_type | ap_
allocator_pool_type * | pool_ = 0
bvector_type_ptr * | bv_rows_ = 0
size_type | rsize_ = 0
bool | is_dynamic_ = true
| if rsize is dynamic (variable length)
size_type | null_idx_ = 0
| Index of the NULL row.

## Friends

template<typename Val, typename BVect, unsigned MAX_SIZE>
class | base_sparse_vector

## Detailed Description

template<typename BV>
class bm::basic_bmatrix< BV >

Basic dense bit-matrix class.

Container of row-major bit-vectors, forming a bit-matrix. This class uses dense form of row storage. It is applicable as a build block for other sparse containers and succinct data structures, implementing high level abstractions.

Definition at line 55 of file bmbmatrix.h.

## Member Typedef Documentation

## allocation_policy_type

template<typename BV>

typedef bvector_type::allocation_policy bm::basic_bmatrix< BV >::allocation_policy_type

Definition at line 62 of file bmbmatrix.h.

## allocator_pool_type

template<typename BV>

typedef allocator_type::allocator_pool_type bm::basic_bmatrix< BV >::allocator_pool_type

Definition at line 63 of file bmbmatrix.h.

## allocator_type

template<typename BV>

typedef BV::allocator_type bm::basic_bmatrix< BV >::allocator_type

Definition at line 61 of file bmbmatrix.h.

## block_idx_type

template<typename BV>

typedef bvector_type::block_idx_type bm::basic_bmatrix< BV >::block_idx_type

Definition at line 65 of file bmbmatrix.h.

## bvector_type

template<typename BV>

typedef BV bm::basic_bmatrix< BV >::bvector_type

Definition at line 58 of file bmbmatrix.h.

## bvector_type_const_ptr

template<typename BV>

typedef const bvector_type* bm::basic_bmatrix< BV >::bvector_type_const_ptr

Definition at line 60 of file bmbmatrix.h.

## bvector_type_ptr

template<typename BV>

typedef bvector_type* bm::basic_bmatrix< BV >::bvector_type_ptr

Definition at line 59 of file bmbmatrix.h.

## octet_type

template<typename BV>

typedef unsigned char bm::basic_bmatrix< BV >::octet_type

Definition at line 66 of file bmbmatrix.h.

## size_type

template<typename BV>

typedef bvector_type::size_type bm::basic_bmatrix< BV >::size_type

Definition at line 64 of file bmbmatrix.h.

## Constructor & Destructor Documentation

## basic_bmatrix() [1/3]

template<typename BV>

bm::basic_bmatrix< BV >::basic_bmatrix | ( | size_type | rsize,
|  | bool | is_dynamic = true,
|  | allocation_policy_type | ap = allocation_policy_type(),
|  | size_type | bv_max_size = bm::id_max,
|  | const allocator_type & | alloc = allocator_type() )

Definition at line 718 of file bmbmatrix.h.

References alloc_, allocate_rows(), ap_, bv_size_, is_dynamic(), and is_dynamic_.

Referenced by basic_bmatrix(), basic_bmatrix(), copy_from(), is_same_structure(), operator=(), operator=(), and swap().

## ~basic_bmatrix()

template<typename BV>

bm::basic_bmatrix< BV >::~basic_bmatrix | ( |  | ) |

Definition at line 734 of file bmbmatrix.h.

References BMNOEXCEPT, and free_rows().

## basic_bmatrix() [2/3]

template<typename BV>

bm::basic_bmatrix< BV >::basic_bmatrix | ( | const basic_bmatrix< BV > & | bbm | ) |

copy-ctor

Definition at line 742 of file bmbmatrix.h.

References alloc_, ap_, basic_bmatrix(), bv_size_, copy_from(), and is_dynamic_.

## basic_bmatrix() [3/3]

template<typename BV>

bm::basic_bmatrix< BV >::basic_bmatrix | ( | basic_bmatrix< BV > && | bbm | ) |

move-ctor

Definition at line 754 of file bmbmatrix.h.

References alloc_, ap_, basic_bmatrix(), BMNOEXCEPT, bv_size_, is_dynamic_, and swap().

## Member Function Documentation

## allocate_rows()

template<typename BV>

void bm::basic_bmatrix< BV >::allocate_rows | ( | size_type | rsize | ) |

allocate matrix rows of bit-vectors (new rows are NULLs)

Definition at line 880 of file bmbmatrix.h.

References alloc_, BM_ASSERT, bv_rows_, null_idx_, rsize_, and throw_bad_alloc().

Referenced by basic_bmatrix(), construct_row(), construct_row(), and set_octet().

## bit_and_rows()

template<typename BV>

void bm::basic_bmatrix< BV >::bit_and_rows | ( | const bvector_type & | bv | ) |

Set AND (intersect) operation on all existing rows.

Parameters

  bv | - argument vector row[i] &= bv

Definition at line 1012 of file bmbmatrix.h.

References bv_rows_, and rsize_.

## bit_sub_rows()

template<typename BV>

void bm::basic_bmatrix< BV >::bit_sub_rows | ( | const bvector_type & | bv,
|  | bool | use_null )

Set SUB (MINUS) operation on all existing rows.

Parameters

  bv | - argument vector row[i] -= bv
  use_null | - if true clear the NULL vector as well

Definition at line 999 of file bmbmatrix.h.

References bv_rows_, calc_effective_rows_not_null(), rsize_, and bm::use_null.

## calc_effective_rows_not_null()

template<typename BV>

basic_bmatrix< BV >::size_type bm::basic_bmatrix< BV >::calc_effective_rows_not_null | ( |  | ) | const

get number of assigned avlue rows without \ NULLs bvector

Definition at line 981 of file bmbmatrix.h.

References BMNOEXCEPT, bv_rows_, and rows_not_null().

Referenced by bit_sub_rows().

## calc_stat()

template<typename BV>

void bm::basic_bmatrix< BV >::calc_stat | ( | typename bvector_type::statistics & | st,
|  | size_type | rsize ) const

Compute memory statistics

Parameters

  st | [out] - statistics object
  rsize | - row size (for cases when operation is limited not to touch the NULL bit-vector)

Definition at line 1584 of file bmbmatrix.h.

References bm::bv_statistics::add(), BMNOEXCEPT, and row().

## clear_column()

template<typename BV>

void bm::basic_bmatrix< BV >::clear_column | ( | size_type | idx,
|  | size_type | row_from )

Clear value (set 0) into a range of rows

Parameters

  idx | - index (of column) / element of bit-vectors
  row_from | - row to start from

Definition at line 859 of file bmbmatrix.h.

References get_row(), and rsize_.

## clear_row()

template<typename BV>

void bm::basic_bmatrix< BV >::clear_row | ( | size_type | row,
|  | bool | free_mem )

clear row bit-vector

Definition at line 1103 of file bmbmatrix.h.

References BM_ASSERT, bv_rows_, destruct_bvector(), row(), and rsize_.

## clear_slices_range()

template<typename BV>

void bm::basic_bmatrix< BV >::clear_slices_range | ( | unsigned | slice_from,
|  | unsigned | slize_until,
|  | size_type | idx )

Clear bit-planes bit.

Parameters

  slice_from | - clear from [from, until)
  slice_until | - clear until (open interval!)
  idx | - bit index

Definition at line 1180 of file bmbmatrix.h.

References get_row().

## compare_octet()

template<typename BV>

int bm::basic_bmatrix< BV >::compare_octet | ( | size_type | pos,
|  | size_type | octet_idx,
|  | char | octet ) const

Compare vector[pos] with octet

It uses regulat comparison of chars to comply with the (signed) char sort order.

Parameters

  pos | - column position in the matrix
  octet_idx | - octet based row position (1 octet - 8 rows)
  octet | - octet value to compare

Returns
  0 - equal, -1 - less(vect[pos] < octet), 1 - greater

Definition at line 1445 of file bmbmatrix.h.

References BMNOEXCEPT, and get_octet().

## construct_bvector()

template<typename BV>

basic_bmatrix< BV >::bvector_type * bm::basic_bmatrix< BV >::construct_bvector | ( | const bvector_type * | bv | ) | const

protected

Definition at line 1122 of file bmbmatrix.h.

References alloc_, ap_, bv_size_, bm::bvector< Alloc >::init(), and pool_.

## construct_row() [1/2]

template<typename BV>

basic_bmatrix< BV >::bvector_type_ptr bm::basic_bmatrix< BV >::construct_row | ( | size_type | row | ) |

Make sure row is constructed, return bit-vector

Definition at line 1055 of file bmbmatrix.h.

References allocate_rows(), BM_ASSERT, bv_rows_, construct_bvector(), is_dynamic(), row(), and rsize_.

Referenced by insert_octet(), and set_octet().

## construct_row() [2/2]

template<typename BV>

basic_bmatrix< BV >::bvector_type_ptr bm::basic_bmatrix< BV >::construct_row | ( | size_type | row,
|  | const bvector_type & | bv )

Make sure row is copy-constructed, return bit-vector

Definition at line 1073 of file bmbmatrix.h.

References allocate_rows(), BM_ASSERT, bv_rows_, construct_bvector(), row(), and rsize_.

## copy_from()

template<typename BV>

void bm::basic_bmatrix< BV >::copy_from | ( | const basic_bmatrix< BV > & | bbm | ) |

Copy content

Definition at line 806 of file bmbmatrix.h.

References alloc_, ap_, basic_bmatrix(), bv_rows_, bv_size_, construct_bvector(), free_rows(), null_idx_, rsize_, and throw_bad_alloc().

Referenced by basic_bmatrix(), and operator=().

## destruct_bvector()

template<typename BV>

void bm::basic_bmatrix< BV >::destruct_bvector | ( | bvector_type * | bv | ) | const

protected

Definition at line 1155 of file bmbmatrix.h.

Referenced by clear_row(), destruct_row(), and free_rows().

## destruct_row()

template<typename BV>

void bm::basic_bmatrix< BV >::destruct_row | ( | size_type | row | ) |

destruct/deallocate row

Definition at line 1090 of file bmbmatrix.h.

References BM_ASSERT, bv_rows_, destruct_bvector(), row(), and rsize_.

Referenced by bm::base_sparse_vector< Val, BV, MAX_SIZE >::optimize().

## erase_column()

template<typename BV>

void bm::basic_bmatrix< BV >::erase_column | ( | size_type | idx,
|  | bool | erase_null )

Erase column/element

Parameters

  idx | - index (of column) / element of bit-vectors to erase
  erase_null | - erase all including NULL vector (true)

Definition at line 836 of file bmbmatrix.h.

References get_row(), null_idx_, and rsize_.

## free_rows()

template<typename BV>

void bm::basic_bmatrix< BV >::free_rows | ( |  | ) |

Free all rows.

Definition at line 923 of file bmbmatrix.h.

References alloc_, BMNOEXCEPT, bv_rows_, destruct_bvector(), and rsize_.

Referenced by copy_from(), operator=(), and ~basic_bmatrix().

## freeze()

template<typename BV>

void bm::basic_bmatrix< BV >::freeze | ( |  | ) |

Freeze content into read-only mode drop editing overhead

Definition at line 1574 of file bmbmatrix.h.

References get_row(), and rsize_.

## get_allocator_pool()

template<typename BV>

allocator_pool_type * bm::basic_bmatrix< BV >::get_allocator_pool | ( |  | ) | const

inline

Definition at line 106 of file bmbmatrix.h.

References BMNOEXCEPT, and pool_.

## get_block()

template<typename BV>

const bm::word_t * bm::basic_bmatrix< BV >::get_block | ( | size_type | p,
|  | unsigned | i,
|  | unsigned | j ) const

Get low level internal access to.

Definition at line 1169 of file bmbmatrix.h.

References BMNOEXCEPT, and row().

Referenced by get_half_octet(), and get_octet().

## get_half_octet()

template<typename BV>

unsigned bm::basic_bmatrix< BV >::get_half_octet | ( | size_type | pos,
|  | size_type | row_idx ) const

Definition at line 1484 of file bmbmatrix.h.

References BM_IS_GAP, BMGAP_PTR, BMNOEXCEPT, FULL_BLOCK_FAKE_ADDR, bm::gap_test_unr(), get_block(), bm::get_block_coord(), bm::set_block_mask, bm::set_block_shift, bm::set_word_mask, bm::set_word_shift, bm::test_4bits(), and bm::test_4gaps().

## get_null_idx()

template<typename BV>

size_type bm::basic_bmatrix< BV >::get_null_idx | ( |  | ) | const

inline

return index of the NULL vector

Definition at line 162 of file bmbmatrix.h.

References BMNOEXCEPT, get_null_idx(), and null_idx_.

Referenced by bm::base_sparse_vector< Val, BV, MAX_SIZE >::copy_from(), get_null_idx(), bm::sparse_vector< Val, BV >::join_null_slice(), and bm::base_sparse_vector< Val, BV, MAX_SIZE >::merge_matr().

## get_octet()

template<typename BV>

unsigned char bm::basic_bmatrix< BV >::get_octet | ( | size_type | pos,
|  | size_type | octet_idx ) const

return octet from the matrix

Parameters

  pos | - column position in the matrix
  octet_idx | - octet based row position (1 octet - 8 rows)

Definition at line 1295 of file bmbmatrix.h.

References BM_IS_GAP, BMGAP_PTR, BMNOEXCEPT, bm::check_any_fullb(), FULL_BLOCK_FAKE_ADDR, bm::gap_test_unr(), get_block(), bm::get_block_coord(), null_idx_, rsize_, bm::set_block_mask, bm::set_block_shift, bm::set_word_mask, and bm::set_word_shift.

Referenced by compare_octet().

## get_row() [1/2]

template<typename BV>

basic_bmatrix< BV >::bvector_type * bm::basic_bmatrix< BV >::get_row | ( | size_type | i | ) |

Get row bit-vector. Can return NULL

Definition at line 787 of file bmbmatrix.h.

References BM_ASSERT, BMNOEXCEPT, bv_rows_, and rsize_.

## get_row() [2/2]

template<typename BV>

const basic_bmatrix< BV >::bvector_type * bm::basic_bmatrix< BV >::get_row | ( | size_type | i | ) | const

Get row bit-vector. Can return NULL

Definition at line 777 of file bmbmatrix.h.

References BM_ASSERT, BMNOEXCEPT, bv_rows_, and rsize_.

Referenced by bm::base_sparse_vector< Val, BV, MAX_SIZE >::clear_all(), clear_column(), bm::base_sparse_vector< Val, BV, MAX_SIZE >::clear_range(), clear_slices_range(), bm::base_sparse_vector< Val, BV, MAX_SIZE >::equal(), erase_column(), freeze(), insert_column(), insert_octet(), bm::base_sparse_vector< Val, BV, MAX_SIZE >::merge_matr(), bm::base_sparse_vector< Val, BV, MAX_SIZE >::optimize(), optimize(), optimize_block(), set_null_idx(), set_octet(), swap_columns(), and bm::base_sparse_vector< Val, BV, MAX_SIZE >::sync_ro().

## insert_column()

template<typename BV>

void bm::basic_bmatrix< BV >::insert_column | ( | size_type | idx,
|  | size_type | row_from )

Insert value 0 into a range of rows

Parameters

  idx | - index (of column) / element of bit-vectors to erase
  row_from | - row to start from

Definition at line 848 of file bmbmatrix.h.

References get_row(), and rsize_.

## insert_octet()

template<typename BV>

void bm::basic_bmatrix< BV >::insert_octet | ( | size_type | pos,
|  | size_type | octet_idx,
|  | unsigned char | octet )

Bit-transpose and insert an octet and assign it to a bit-matrix

Parameters

  pos | - column position in the matrix
  octet_idx | - octet based row position (1 octet - 8 rows)
  octet | - value to assign

Definition at line 1232 of file bmbmatrix.h.

References BM_ASSERT, construct_row(), get_row(), row(), and rsize_.

## is_dynamic()

template<typename BV>

bool bm::basic_bmatrix< BV >::is_dynamic | ( |  | ) | const

inline

Return if matrix is dynamic resizable.

Definition at line 310 of file bmbmatrix.h.

References BMNOEXCEPT, is_dynamic(), and is_dynamic_.

Referenced by basic_bmatrix(), construct_row(), and is_dynamic().

## is_same_structure()

template<typename BV>

bool bm::basic_bmatrix< BV >::is_same_structure | ( | const basic_bmatrix< BV > & | bbm | ) | const

Debugging function to check if two matrixes have the same rows created.

Returns
  true - if the same

Definition at line 941 of file bmbmatrix.h.

References basic_bmatrix(), BM_ASSERT, BMNOEXCEPT, bv_rows_, null_idx_, and rsize_.

## octet_size()

template<typename BV>

basic_bmatrix< BV >::size_type bm::basic_bmatrix< BV >::octet_size | ( |  | ) | const

Return number of octet currently allocated rows in the matrix

Definition at line 913 of file bmbmatrix.h.

References BMNOEXCEPT, and rows_not_null().

## operator=() [1/2]

template<typename BV>

basic_bmatrix< BV > & bm::basic_bmatrix< BV >::operator= | ( | basic_bmatrix< BV > && | bbm | ) |

inline

move assignmment operator

Definition at line 93 of file bmbmatrix.h.

References basic_bmatrix(), BMNOEXCEPT, free_rows(), and swap().

## operator=() [2/2]

template<typename BV>

basic_bmatrix< BV > & bm::basic_bmatrix< BV >::operator= | ( | const basic_bmatrix< BV > & | bbm | ) |

inline

Definition at line 82 of file bmbmatrix.h.

References basic_bmatrix(), and copy_from().

## optimize()

template<typename BV>

void bm::basic_bmatrix< BV >::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

Parameters

  temp_block | - pre-allocated memory block to avoid re-allocs
  opt_mode | - requested compression depth
  stat | - memory allocation statistics after optimization

Definition at line 1547 of file bmbmatrix.h.

References bm::bv_statistics::add(), BM_DECLARE_TEMP_BLOCK, get_row(), bm::bv_statistics::reset(), and rsize_.

## optimize_block()

template<typename BV>

void bm::basic_bmatrix< BV >::optimize_block | ( | block_idx_type | nb,
|  | typename BV::optmode | opt_mode )

Optimize block in all planes

Definition at line 1601 of file bmbmatrix.h.

References bm::get_block_coord(), get_row(), and rsize_.

## row()

template<typename BV>

const basic_bmatrix< BV >::bvector_type * bm::basic_bmatrix< BV >::row | ( | size_type | i | ) | const

Get row bit-vector. Can return NULL

Definition at line 767 of file bmbmatrix.h.

References BM_ASSERT, BMNOEXCEPT, bv_rows_, and rsize_.

Referenced by calc_stat(), clear_row(), construct_row(), construct_row(), bm::base_sparse_vector< Val, BV, MAX_SIZE >::copy_from(), bm::base_sparse_vector< Val, BV, MAX_SIZE >::copy_range_slices(), destruct_row(), get_block(), insert_octet(), bm::sparse_vector< Val, BV >::join(), and set_octet().

## rows()

template<typename BV>

size_type bm::basic_bmatrix< BV >::rows | ( |  | ) | const

inline

get number of value rows

Definition at line 140 of file bmbmatrix.h.

References BMNOEXCEPT, and rsize_.

Referenced by bm::base_sparse_vector< Val, BV, MAX_SIZE >::copy_from(), bm::base_sparse_vector< Val, BV, MAX_SIZE >::copy_range_slices(), bm::base_sparse_vector< Val, BV, MAX_SIZE >::equal(), bm::base_sparse_vector< Val, BV, MAX_SIZE >::get_slice_mask(), bm::sparse_vector< Val, BV >::join(), bm::base_sparse_vector< Val, BV, MAX_SIZE >::merge_matr(), bm::base_sparse_vector< Val, BV, MAX_SIZE >::optimize(), bm::str_sparse_vector< CharType, BV, STR_SIZE >::remap_from_impl(), and bm::base_sparse_vector< Val, BV, MAX_SIZE >::sync_ro().

## rows_not_null()

template<typename BV>

size_type bm::basic_bmatrix< BV >::rows_not_null | ( |  | ) | const

inline

get number of value rows without (not) NULLs bvector

Definition at line 143 of file bmbmatrix.h.

References BMNOEXCEPT, null_idx_, and rsize_.

Referenced by calc_effective_rows_not_null(), and octet_size().

## set_allocator_pool()

template<typename BV>

void bm::basic_bmatrix< BV >::set_allocator_pool | ( | allocator_pool_type * | pool_ptr | ) |

Definition at line 965 of file bmbmatrix.h.

References BMNOEXCEPT, bv_rows_, pool_, and rsize_.

## set_null_idx()

template<typename BV>

void bm::basic_bmatrix< BV >::set_null_idx | ( | size_type | null_idx | ) |

set index of the NULL vector

Definition at line 796 of file bmbmatrix.h.

References BM_ASSERT, BMNOEXCEPT, get_row(), and null_idx_.

## set_octet()

template<typename BV>

void bm::basic_bmatrix< BV >::set_octet | ( | size_type | pos,
|  | size_type | octet_idx,
|  | unsigned char | octet )

Bit-transpose an octet and assign it to a bit-matrix

Parameters

  pos | - column position in the matrix
  octet_idx | - octet based row position (1 octet - 8 rows)
  octet | - value to assign

Definition at line 1193 of file bmbmatrix.h.

References allocate_rows(), construct_row(), get_row(), row(), and rsize_.

## swap()

template<typename BV>

void bm::basic_bmatrix< BV >::swap | ( | basic_bmatrix< BV > & | bbm | ) |

Swap content

Definition at line 1024 of file bmbmatrix.h.

References alloc_, ap_, basic_bmatrix(), BMNOEXCEPT, bv_rows_, bv_size_, null_idx_, pool_, rsize_, and bm::xor_swap().

Referenced by basic_bmatrix(), and operator=().

## swap_columns()

template<typename BV>

void bm::basic_bmatrix< BV >::swap_columns | ( | size_type | idx1,
|  | size_type | idx2 )

Swap columns (bits in all rows)

Parameters

  idx1 | - column index 1
  idx2 | - column index 2

Definition at line 870 of file bmbmatrix.h.

References get_row(), and rsize_.

## throw_bad_alloc()

template<typename BV>

void bm::basic_bmatrix< BV >::throw_bad_alloc | ( |  | ) |

inline static protected

Definition at line 326 of file bmbmatrix.h.

Referenced by allocate_rows(), and copy_from().

## Friends And Related Symbol Documentation

## base_sparse_vector

template<typename BV>
template<typename Val, typename BVect, unsigned MAX_SIZE>

friend class base_sparse_vector

friend

Definition at line 329 of file bmbmatrix.h.

References base_sparse_vector.

Referenced by base_sparse_vector.

## Field Documentation

## alloc_

template<typename BV>

allocator_type bm::basic_bmatrix< BV >::alloc_

protected

Definition at line 333 of file bmbmatrix.h.

Referenced by allocate_rows(), basic_bmatrix(), basic_bmatrix(), basic_bmatrix(), construct_bvector(), copy_from(), free_rows(), and swap().

## ap_

template<typename BV>

allocation_policy_type bm::basic_bmatrix< BV >::ap_

protected

Definition at line 334 of file bmbmatrix.h.

Referenced by basic_bmatrix(), basic_bmatrix(), basic_bmatrix(), construct_bvector(), copy_from(), and swap().

## bv_rows_

template<typename BV>

bvector_type_ptr* bm::basic_bmatrix< BV >::bv_rows_ = 0

protected

Definition at line 337 of file bmbmatrix.h.

Referenced by allocate_rows(), bit_and_rows(), bit_sub_rows(), calc_effective_rows_not_null(), clear_row(), construct_row(), construct_row(), copy_from(), destruct_row(), free_rows(), get_row(), get_row(), is_same_structure(), row(), set_allocator_pool(), and swap().

## bv_size_

template<typename BV>

size_type bm::basic_bmatrix< BV >::bv_size_

protected

Definition at line 332 of file bmbmatrix.h.

Referenced by basic_bmatrix(), basic_bmatrix(), basic_bmatrix(), construct_bvector(), copy_from(), and swap().

## is_dynamic_

template<typename BV>

bool bm::basic_bmatrix< BV >::is_dynamic_ = true

protected

if rsize is dynamic (variable length)

Definition at line 339 of file bmbmatrix.h.

Referenced by basic_bmatrix(), basic_bmatrix(), basic_bmatrix(), and is_dynamic().

## null_idx_

template<typename BV>

size_type bm::basic_bmatrix< BV >::null_idx_ = 0

protected

Index of the NULL row.

Definition at line 340 of file bmbmatrix.h.

Referenced by allocate_rows(), copy_from(), erase_column(), get_null_idx(), get_octet(), is_same_structure(), rows_not_null(), set_null_idx(), and swap().

## pool_

template<typename BV>

allocator_pool_type* bm::basic_bmatrix< BV >::pool_ = 0

protected

Definition at line 335 of file bmbmatrix.h.

Referenced by construct_bvector(), get_allocator_pool(), set_allocator_pool(), and swap().

## rsize_

template<typename BV>

size_type bm::basic_bmatrix< BV >::rsize_ = 0

protected

Definition at line 338 of file bmbmatrix.h.

Referenced by allocate_rows(), bit_and_rows(), bit_sub_rows(), clear_column(), clear_row(), construct_row(), construct_row(), copy_from(), destruct_row(), erase_column(), free_rows(), freeze(), get_octet(), get_row(), get_row(), insert_column(), insert_octet(), is_same_structure(), optimize(), optimize_block(), row(), rows(), rows_not_null(), set_allocator_pool(), set_octet(), swap(), and swap_columns().

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

- bmbmatrix.h