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 >:
Collaboration graph
[legend]

Public Types

typedef tmatrix< GT, sizeof(GT) *8,(((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, sizeof(GT)*8, (((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 753 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 755 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

◆ reduce()

template<typename GT , typename BT , unsigned BLOCK_SIZE>
void bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::reduce ( )
inline

Definition at line 818 of file bmtrans.h.

References 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 824 of file bmtrans.h.

References 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 760 of file bmtrans.h.

References BM_ASSERT, bm::find_effective_columns(), and bm::gap_2_bitblock().

◆ 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 781 of file bmtrans.h.

References bm::bit_block_set(), BM_ASSERT, and bm::find_effective_columns().

◆ 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 832 of file bmtrans.h.

References BM_ASSERT.

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 854 of file bmtrans.h.

◆ eff_cols_

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

Definition at line 853 of file bmtrans.h.

◆ 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 855 of file bmtrans.h.

◆ 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 856 of file bmtrans.h.

◆ 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 857 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 852 of file bmtrans.h.


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