NVBIO
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Methods | Public Members | Related Functions | List of all members
nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType > Struct Template Reference

Detailed description

template< typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
struct nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >

A Wavelet Tree storage class, holding a bit-string representing the different bit-planes of the output Wavelet Tree, and the tree structure itself, a binary heap, recording the sequence split of each node.

Template Parameters
SystemTagthe system memory space where this object's data is allocated
IndexTypethe type of integers used to index this string
SymbolTypethe unsigned integer type used to encode symbols (e.g. uint8, uint16, uint32...)

Definition at line 179 of file wavelet_tree.h.

#include <wavelet_tree.h>

Public Types

typedef SystemTag system_tag
 
typedef IndexType index_type
 
typedef SymbolType symbol_type
 
typedef PackedVector
< system_tag, 1u, true, index_type > 
bit_vector_type
 
typedef nvbio::vector
< system_tag, index_type
index_vector_type
 
typedef bit_vector_type::iterator bit_iterator
 
typedef
bit_vector_type::const_iterator 
const_bit_iterator
 
typedef index_vector_type::iterator index_iterator
 
typedef
index_vector_type::const_iterator 
const_index_iterator
 
typedef WaveletTree
< bit_iterator, index_iterator
plain_view_type
 
typedef WaveletTree
< const_bit_iterator,
const_index_iterator
const_plain_view_type
 

Public Methods

 WaveletTreeStorage ()
 
void resize (const uint32 _size, const uint32 _symbol_size)
 
NVBIO_HOST_DEVICE uint32 symbol_size () const
 
NVBIO_HOST_DEVICE index_type size () const
 
bit_iterator bits ()
 
index_iterator splits ()
 
index_iterator occ ()
 
const_bit_iterator bits () const
 
const_index_iterator splits () const
 
const_index_iterator occ () const
 
 operator plain_view_type ()
 
 operator const_plain_view_type () const
 

Public Members

uint32 m_symbol_size
 
index_type m_size
 
bit_vector_type m_bits
 
index_vector_type m_nodes
 
index_vector_type m_occ
 

Related Functions

(Note that these are not member functions.)

template<typename system_tag , typename string_iterator , typename index_type , typename symbol_type >
void setup (const index_type string_len, const string_iterator &string, WaveletTreeStorage< system_tag, index_type, symbol_type > &out_tree)
 
template<typename SystemTag , typename IndexType , typename SymbolType >
WaveletTreeStorage< SystemTag,
IndexType, SymbolType >
::plain_view_type 
plain_view (WaveletTreeStorage< SystemTag, IndexType, SymbolType > &tree)
 
template<typename SystemTag , typename IndexType , typename SymbolType >
WaveletTreeStorage< SystemTag,
IndexType, SymbolType >
::const_plain_view_type 
plain_view (const WaveletTreeStorage< SystemTag, IndexType, SymbolType > &tree)
 

Member Typedef Documentation

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
typedef bit_vector_type::iterator nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::bit_iterator

Definition at line 188 of file wavelet_tree.h.

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
typedef PackedVector<system_tag,1u,true,index_type> nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::bit_vector_type

Definition at line 186 of file wavelet_tree.h.

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
typedef bit_vector_type::const_iterator nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::const_bit_iterator

Definition at line 189 of file wavelet_tree.h.

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
typedef index_vector_type::const_iterator nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::const_index_iterator

Definition at line 191 of file wavelet_tree.h.

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
typedef WaveletTree<const_bit_iterator,const_index_iterator> nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::const_plain_view_type

Definition at line 194 of file wavelet_tree.h.

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
typedef index_vector_type::iterator nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::index_iterator

Definition at line 190 of file wavelet_tree.h.

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
typedef IndexType nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::index_type

Definition at line 183 of file wavelet_tree.h.

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
typedef nvbio::vector<system_tag,index_type> nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::index_vector_type

Definition at line 187 of file wavelet_tree.h.

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
typedef WaveletTree< bit_iterator, index_iterator> nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::plain_view_type

Definition at line 193 of file wavelet_tree.h.

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
typedef SymbolType nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::symbol_type

Definition at line 184 of file wavelet_tree.h.

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
typedef SystemTag nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::system_tag

Definition at line 182 of file wavelet_tree.h.

Constructor & Destructor Documentation

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::WaveletTreeStorage ( )
inline

constructor

Definition at line 198 of file wavelet_tree.h.

Member Function Documentation

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
bit_iterator nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::bits ( )
inline

return the bit string

Definition at line 228 of file wavelet_tree.h.

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
const_bit_iterator nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::bits ( ) const
inline

return the bit string

Definition at line 240 of file wavelet_tree.h.

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
index_iterator nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::occ ( )
inline

return the occurrences

Definition at line 236 of file wavelet_tree.h.

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
const_index_iterator nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::occ ( ) const
inline

return the occurrences

Definition at line 248 of file wavelet_tree.h.

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::operator const_plain_view_type ( ) const
inline

Definition at line 259 of file wavelet_tree.h.

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::operator plain_view_type ( )
inline

Definition at line 250 of file wavelet_tree.h.

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
void nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::resize ( const uint32  _size,
const uint32  _symbol_size 
)
inline

resize the tree

Definition at line 204 of file wavelet_tree.h.

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
NVBIO_HOST_DEVICE index_type nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::size ( void  ) const
inline

return the number of symbols

Definition at line 224 of file wavelet_tree.h.

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
index_iterator nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::splits ( )
inline

return the nodes

Definition at line 232 of file wavelet_tree.h.

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
const_index_iterator nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::splits ( ) const
inline

return the nodes

Definition at line 244 of file wavelet_tree.h.

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
NVBIO_HOST_DEVICE uint32 nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::symbol_size ( ) const
inline

return the number of bits per symbol

Definition at line 219 of file wavelet_tree.h.

Member Data Documentation

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
bit_vector_type nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::m_bits

Definition at line 271 of file wavelet_tree.h.

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
index_vector_type nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::m_nodes

Definition at line 272 of file wavelet_tree.h.

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
index_vector_type nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::m_occ

Definition at line 273 of file wavelet_tree.h.

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
index_type nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::m_size

Definition at line 270 of file wavelet_tree.h.

template<typename SystemTag, typename IndexType = uint32, typename SymbolType = uint8>
uint32 nvbio::WaveletTreeStorage< SystemTag, IndexType, SymbolType >::m_symbol_size

Definition at line 269 of file wavelet_tree.h.


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