BitMagic-C++: bm::gap_transpose_engine< GT, BT, BLOCK_SIZE > Class Template Reference

BitMagic-C++

Public Types | Public Member Functions | Data Fields
bm::gap_transpose_engine< GT, BT, BLOCK_SIZE > Class Template Reference

Bit-plain splicing of a GAP block. More...

`#include <bmtrans.h>`

Collaboration diagram for bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >:
[legend]

## Public Types
typedef tmatrix< GT, static_cast< unsigned >sizeof(GT) *8), static_cast< unsigned >((BLOCK_SIZE *sizeof(unsigned))/(sizeof(GT)))/(sizeof(GT) *8))> | tmatrix_type
| cryptic calculation of equivalent size for the transpose matrix based on BLOCK_SIZE and sizeof(GT)(16) More...

## Public Member Functions
| gap_transpose_engine ()
void | transpose (const GT *BMRESTRICT gap_buf, BT *BMRESTRICT tmp_block)
| Transpose GAP block through a temp. More...
void | transpose (const GT *BMRESTRICT garr, unsigned garr_size, BT *BMRESTRICT tmp_block)
| Transpose array of shorts. More...
void | compute_distance_matrix ()
void | reduce ()
void | restore ()
void | trestore (GT gap_head, GT *BMRESTRICT gap_buf, BT *BMRESTRICT tmp_block)
| Restore GAP block from the transposed matrix. More...

## Data Fields
tmatrix_type | tmatrix_
unsigned | eff_cols_
unsigned | distance_ [tmatrix_type::n_rows][tmatrix_type::n_rows]
unsigned char | pc_vector_ [tmatrix_type::n_rows]
unsigned | pc_vector_stat_ [bm::ibpc_end]
tmatrix_type::rstat | rstat_vector_ [tmatrix_type::n_rows]

## Detailed Description

### template<typename GT, typename BT, unsigned BLOCK_SIZE>
class bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >

Bit-plain splicing of a GAP block.

GT - gap word type BT - block word type BLOCK_SIZE - bit block size in words (works as a transposition basis)

Definition at line 743 of file bmtrans.h.

## Member Typedef Documentation

## ◆ tmatrix_type

template<typename GT , typename BT , unsigned BLOCK_SIZE>

typedef tmatrix<GT, static_cast<unsigned>sizeof(GT)*8), static_cast<unsigned>((BLOCK_SIZE * sizeof(unsigned)) / (sizeof(GT))) / (sizeof(GT) * 8))> bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::tmatrix_type

cryptic calculation of equivalent size for the transpose matrix based on BLOCK_SIZE and sizeof(GT)(16)

matrix[size_of_gap*8][(Size_block_in_bytes / size_of_gap) / number_of_planes)]

Definition at line 754 of file bmtrans.h.

## Constructor & Destructor Documentation

## ◆ gap_transpose_engine()

template<typename GT , typename BT , unsigned BLOCK_SIZE>

bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::gap_transpose_engine | ( |  | ) |
| inline

Definition at line 756 of file bmtrans.h.

## Member Function Documentation

## ◆ compute_distance_matrix()

template<typename GT , typename BT , unsigned BLOCK_SIZE>

void bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::compute_distance_matrix | ( |  | ) |
| inline

Definition at line 803 of file bmtrans.h.

References bm::bit_iblock_make_pcv(), bm::bit_iblock_pcv_stat(), bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::distance_, bm::tmatrix< T, ROWS, COLS >::n_columns, bm::tmatrix< T, ROWS, COLS >::n_rows, bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::pc_vector_, bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::pc_vector_stat_, bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::tmatrix_, and bm::tmatrix_distance().

## ◆ reduce()

template<typename GT , typename BT , unsigned BLOCK_SIZE>

void bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::reduce | ( |  | ) |
| inline

Definition at line 819 of file bmtrans.h.

References bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::eff_cols_, bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::pc_vector_, bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::tmatrix_, and bm::tmatrix_reduce().

## ◆ restore()

template<typename GT , typename BT , unsigned BLOCK_SIZE>

void bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::restore | ( |  | ) |
| inline

Definition at line 825 of file bmtrans.h.

References bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::eff_cols_, bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::pc_vector_, bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::tmatrix_, and bm::tmatrix_restore().

## ◆ transpose() [1/2]

template<typename GT , typename BT , unsigned BLOCK_SIZE>

void bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::transpose | ( | const GT *BMRESTRICT | gap_buf,
|  | BT *BMRESTRICT | tmp_block
| ) |  |
| inline

Transpose GAP block through a temp.

block of aligned(!) memory

Definition at line 761 of file bmtrans.h.

References BM_ASSERT, bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::eff_cols_, bm::find_effective_columns(), bm::gap_2_bitblock(), bm::tmatrix< T, ROWS, COLS >::n_columns, bm::tmatrix< T, ROWS, COLS >::n_rows, and bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::tmatrix_.

## ◆ transpose() [2/2]

template<typename GT , typename BT , unsigned BLOCK_SIZE>

void bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::transpose | ( | const GT *BMRESTRICT | garr,
|  | unsigned | garr_size,
|  | BT *BMRESTRICT | tmp_block
| ) |  |
| inline

Transpose array of shorts.

Definition at line 782 of file bmtrans.h.

References bm::bit_block_set(), BM_ASSERT, bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::eff_cols_, bm::find_effective_columns(), bm::tmatrix< T, ROWS, COLS >::n_columns, bm::tmatrix< T, ROWS, COLS >::n_rows, and bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::tmatrix_.

## ◆ trestore()

template<typename GT , typename BT , unsigned BLOCK_SIZE>

void bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::trestore | ( | GT | gap_head,
|  | GT *BMRESTRICT | gap_buf,
|  | BT *BMRESTRICT | tmp_block
| ) |  |
| inline

Restore GAP block from the transposed matrix.

Definition at line 833 of file bmtrans.h.

References BM_ASSERT, bm::tmatrix< T, ROWS, COLS >::n_columns, bm::tmatrix< T, ROWS, COLS >::n_rows, and bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::tmatrix_.

## Field Documentation

## ◆ distance_

template<typename GT , typename BT , unsigned BLOCK_SIZE>

unsigned bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::distance_[tmatrix_type::n_rows][tmatrix_type::n_rows]

Definition at line 855 of file bmtrans.h.

Referenced by bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::compute_distance_matrix().

## ◆ eff_cols_

template<typename GT , typename BT , unsigned BLOCK_SIZE>

unsigned bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::eff_cols_

Definition at line 854 of file bmtrans.h.

Referenced by bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::reduce(), bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::restore(), and bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::transpose().

## ◆ pc_vector_

template<typename GT , typename BT , unsigned BLOCK_SIZE>

unsigned char bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::pc_vector_[tmatrix_type::n_rows]

Definition at line 856 of file bmtrans.h.

Referenced by bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::compute_distance_matrix(), bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::reduce(), and bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::restore().

## ◆ pc_vector_stat_

template<typename GT , typename BT , unsigned BLOCK_SIZE>

unsigned bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::pc_vector_stat_[bm::ibpc_end]

Definition at line 857 of file bmtrans.h.

Referenced by bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::compute_distance_matrix().

## ◆ rstat_vector_

template<typename GT , typename BT , unsigned BLOCK_SIZE>

tmatrix_type::rstat bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::rstat_vector_[tmatrix_type::n_rows]

Definition at line 858 of file bmtrans.h.

## ◆ tmatrix_

template<typename GT , typename BT , unsigned BLOCK_SIZE>

tmatrix_type bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::tmatrix_

Definition at line 853 of file bmtrans.h.

Referenced by bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::compute_distance_matrix(), bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::reduce(), bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::restore(), bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::transpose(), and bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::trestore().

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

- bmtrans.h