34 #if defined(__CUDACC__)
38 #if defined(BIG_ENDIAN)
98 template <
typename InputStream,
typename Symbol, u
int32 SYMBOL_SIZE_T,
bool BIG_ENDIAN_T,
typename IndexType>
137 template <
typename Stream>
140 typedef typename Stream::symbol_type
Symbol;
190 template <
typename InputStream,
typename Symbol, u
int32 SYMBOL_SIZE_T,
bool BIG_ENDIAN_T,
typename IndexType = u
int32>
197 typedef typename std::iterator_traits<InputStream>::value_type
storage_type;
199 static const uint32 SYMBOL_SIZE = SYMBOL_SIZE_T;
229 template <
typename UInputStream>
234 template <
typename UInputStream,
typename USymbol>
236 m_stream( static_cast<InputStream>( other.
stream() ) ), m_index( other.
index() ) {}
272 InputStream
stream()
const {
return m_stream; }
277 index_type
index()
const {
return m_index; }
281 template <
typename UInputStream,
typename USymbol>
285 m_stream =
static_cast<InputStream
>( other.
stream() );
286 m_index = other.m_index;
327 InputStream m_stream;
334 template <
typename InputStream,
typename Symbol, u
int32 SYMBOL_SIZE_T,
bool BIG_ENDIAN_T,
typename IndexType>
336 const PackedStream<InputStream,Symbol,SYMBOL_SIZE_T,BIG_ENDIAN_T,IndexType>& it1,
337 const PackedStream<InputStream,Symbol,SYMBOL_SIZE_T,BIG_ENDIAN_T,IndexType>& it2);
342 template <
typename InputStream,
typename Symbol, u
int32 SYMBOL_SIZE_T,
bool BIG_ENDIAN_T,
typename IndexType>
344 const PackedStream<InputStream,Symbol,SYMBOL_SIZE_T,BIG_ENDIAN_T,IndexType>& it1,
345 const PackedStream<InputStream,Symbol,SYMBOL_SIZE_T,BIG_ENDIAN_T,IndexType>& it2);
350 template <
typename InputStream,
typename Symbol, u
int32 SYMBOL_SIZE_T,
bool BIG_ENDIAN_T,
typename IndexType>
352 const PackedStream<InputStream,Symbol,SYMBOL_SIZE_T,BIG_ENDIAN_T,IndexType>& it1,
353 const PackedStream<InputStream,Symbol,SYMBOL_SIZE_T,BIG_ENDIAN_T,IndexType>& it2);
358 template <
typename InputStream,
typename Symbol, u
int32 SYMBOL_SIZE_T,
bool BIG_ENDIAN_T,
typename IndexType>
360 const PackedStream<InputStream,Symbol,SYMBOL_SIZE_T,BIG_ENDIAN_T,IndexType>& it1,
361 const PackedStream<InputStream,Symbol,SYMBOL_SIZE_T,BIG_ENDIAN_T,IndexType>& it2);
366 template <
typename InputIterator,
typename InputStream,
typename Symbol, u
int32 SYMBOL_SIZE_T,
bool BIG_ENDIAN_T,
typename IndexType>
369 const IndexType input_len,
370 const InputIterator input_string,
371 PackedStream<InputStream,Symbol,SYMBOL_SIZE_T,BIG_ENDIAN_T,IndexType> packed_string);
376 template <
typename InputStream,
typename SymbolType, u
int32 SYMBOL_SIZE_T,
bool BIG_ENDIAN_T,
typename IndexType>
389 template <
typename InputStream,
typename SymbolType, u
int32 SYMBOL_SIZE_T,
bool BIG_ENDIAN_T,
typename IndexType>
390 struct iterator_traits<
PackedStream<InputStream,SymbolType,SYMBOL_SIZE_T,BIG_ENDIAN_T,IndexType> > :
public std::iterator_traits< PackedStream<InputStream,SymbolType,SYMBOL_SIZE_T,BIG_ENDIAN_T,IndexType> >
417 template <
typename InputStream,
typename Symbol, u
int32 SYMBOL_SIZE_T,
bool BIG_ENDIAN_T,
typename IndexType = u
int32>
422 static const uint32 SYMBOL_SIZE = SYMBOL_SIZE_T;
430 typedef typename std::iterator_traits<InputStream>::value_type
storage_type;
456 template <
typename UInputStream>
465 template <
typename UInputStream,
typename USymbol>
471 template <
typename UInputStream,
typename USymbol>
502 template <
typename UInputStream,
typename USymbol>
565 template <
typename InputStream,
typename Symbol, u
int32 SYMBOL_SIZE_T,
bool BIG_ENDIAN_T,
typename IndexType>
573 template <
typename InputStream,
typename Symbol, u
int32 SYMBOL_SIZE_T,
bool BIG_ENDIAN_T,
typename IndexType>
581 template <
typename InputStream,
typename Symbol, u
int32 SYMBOL_SIZE_T,
bool BIG_ENDIAN_T,
typename IndexType>
589 template <
typename InputStream,
typename Symbol, u
int32 SYMBOL_SIZE_T,
bool BIG_ENDIAN_T,
typename IndexType>
597 template <
typename InputStream,
typename SymbolType, u
int32 SYMBOL_SIZE_T,
bool BIG_ENDIAN_T,
typename IndexType>
610 template <
typename IteratorType>
654 template <u
int32 BLOCKDIM, u
int32 BITS,
bool BIG_ENDIAN,
typename InStreamIterator,
typename OutStreamIterator>
667 template <
typename Stream>
678 template <
typename InputStream,
typename SymbolType, nvbio::u
int32 SYMBOL_SIZE_T,
bool BIG_ENDIAN_T,
typename IndexType>