BitMagic-C++
Data Structures | Namespaces | Functions | Variables
bmtrans.h File Reference

Utilities for bit transposition (internal) (experimental!) More...

#include "bmdef.h"
Include dependency graph for bmtrans.h:
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

 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. More...
 
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. More...
 
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. More...
 
template<typename T , unsigned BPC, unsigned BPS>
void bm::bit_iblock_make_pcv (const unsigned distance[BPC][BPC], unsigned char *pc_vector)
 !< ibpc limiter More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
template<typename GT , typename BT >
void bm::gap_2_bitblock (const GT *BMRESTRICT gap_buf, BT *BMRESTRICT block, unsigned block_size)
 Copy GAP block body to bit block with DGap transformation. More...
 
template<typename TM >
unsigned bm::find_effective_columns (const TM &tmatrix)
 Compute effective right column border of the t-matrix. More...
 

Variables

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

Detailed Description

Utilities for bit transposition (internal) (experimental!)

Definition in file bmtrans.h.