dlvhex  2.5.0
vs10/bm/bmtrans.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  bm::tmatrix< T, ROWS, COLS >
 Mini-matrix for bit transposition purposes. More...
struct  bm::tmatrix< T, ROWS, COLS >::rstat
 Row characteristics for transposed matrix. More...
struct  bm::bit_grabber< T, BPC >
struct  bm::bit_grabber< unsigned, 32 >
struct  bm::bit_grabber< unsigned short, 16 >
struct  bm::bit_grabber< unsigned char, 8 >
struct  bm::bit_trans_grabber< T, BPC, BPS >
class  bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >
 Bit-plain splicing of a GAP block. More...

Namespaces

namespace  bm

Functions

template<typename T , unsigned BPC, unsigned BPS>
void bm::vect_bit_transpose (const T *arr, unsigned arr_size, T tmatrix[BPC][BPS])
 Generic bit-array transposition function T - array type (any int) BPC - bit plain count BPS - bit plain size.
template<typename T , unsigned BPC, unsigned BPS>
void bm::vect_bit_trestore (const T tmatrix[BPC][BPS], T *arr)
 Restore bit array from the transposition matrix T - array type (any int) BPC - bit plain count BPS - bit plain size.
template<typename T , unsigned BPC, unsigned BPS>
void bm::tmatrix_distance (const T tmatrix[BPC][BPS], unsigned distance[BPC][BPC])
 Compute pairwise Row x Row Humming distances on plains(rows) of the transposed bit block.
template<typename T , unsigned BPC, unsigned BPS>
void bm::bit_iblock_make_pcv (const unsigned distance[BPC][BPC], unsigned char *pc_vector)
 !< ibpc limiter
void bm::bit_iblock_pcv_stat (const unsigned char *BMRESTRICT pc_vector, const unsigned char *BMRESTRICT pc_vector_end, unsigned *BMRESTRICT pc_vector_stat)
 Compute number of ibpc codes in pc_vector.
void bm::bit_iblock_reduce (const unsigned tmatrix[bm::set_block_plain_cnt][bm::set_block_plain_size], const unsigned char *BMRESTRICT pc_vector, const unsigned char *BMRESTRICT pc_vector_end, unsigned tmatrix_out[bm::set_block_plain_cnt][bm::set_block_plain_size])
 Matrix reduction based on transformation pc vector.
template<class TMatrix >
void bm::tmatrix_reduce (TMatrix &tmatrix, const unsigned char *pc_vector, const unsigned effective_cols)
 Transposed Matrix reduction based on transformation pc vector.
template<class TMatrix >
void bm::tmatrix_restore (TMatrix &tmatrix, const unsigned char *pc_vector, const unsigned effective_cols)
 Transposed Matrix restore based on transformation pc vector.
template<typename GT >
void bm::gap_2_bitblock (const GT *BMRESTRICT gap_buf, GT *BMRESTRICT block, unsigned block_size)
 Copy GAP block body to bit block with DGap transformation.
template<class TMatrix >
void bm::compute_tmatrix_rstat (const TMatrix &tmatrix, const unsigned char *pc_vector, typename TMatrix::rstat *rstat, unsigned effective_cols)
 Compute t-matrix rows statistics used for compression.
template<typename TM >
unsigned bm::find_effective_columns (const TM &tmatrix)
 Compute effective right column border of the t-matrix.

Variables

const unsigned char bm::ibpc_uncompr = 0
const unsigned char bm::ibpc_all_zero = 1
 !< plain uncompressed
const unsigned char bm::ibpc_all_one = 2
 !< plain ALL ZERO
const unsigned char bm::ibpc_equiv = 3
 !< plain ALL ONE
const unsigned char bm::ibpc_close = 4
 !< plain is equal to plain M
const unsigned char bm::ibpc_end = 8
 !< plain is close to plain M