# 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