16#ifndef RANS_INTERNAL_COMMON_TYPETRAITS_H_ 
   17#define RANS_INTERNAL_COMMON_TYPETRAITS_H_ 
   40template <
size_t lowerBound_V>
 
   44#ifdef RANS_SINGLE_STREAM 
   45template <
size_t lowerBound_V>
 
   46struct getCoderTag<SingleStreamEncoderImpl<lowerBound_V>> : 
public std::integral_constant<CoderTag, CoderTag::SingleStream> {
 
   51template <
size_t lowerBound_V>
 
   52struct getCoderTag<SSEEncoderImpl<lowerBound_V>> : 
public std::integral_constant<CoderTag, CoderTag::SSE> {
 
   57template <
size_t lowerBound_V>
 
   58struct getCoderTag<AVXEncoderImpl<lowerBound_V>> : 
public std::integral_constant<CoderTag, CoderTag::AVX2> {
 
   62template <
class encoderImpl_T, 
class symbolTable_T, 
size_t nStreams_V>
 
   69template <CoderTag tag_V>
 
   82template <
size_t lowerBound_V>
 
   86#ifdef RANS_SINGLE_STREAM 
   87template <
size_t lowerBound_V>
 
   88struct getStreamingLowerBound<SingleStreamEncoderImpl<lowerBound_V>> : 
public std::integral_constant<size_t, lowerBound_V> {
 
   93template <
size_t lowerBound_V>
 
   94struct getStreamingLowerBound<SSEEncoderImpl<lowerBound_V>> : 
public std::integral_constant<size_t, lowerBound_V> {
 
   99template <
size_t lowerBound_V>
 
  100struct getStreamingLowerBound<AVXEncoderImpl<lowerBound_V>> : 
public std::integral_constant<size_t, lowerBound_V> {
 
  104template <
size_t lowerBound_V>
 
Operations to decode a rANS stream.
 
rANS encoding operations that encode multiple symbols simultaniously using SIMD. Unified implementati...
 
rANS encoding operations based on ryg's fast algorithm and a naive rANS implementation for all 64Bit ...
 
Contains statistical information for one source symbol, required for encoding/decoding.
 
Decoder - User facing class to decode a rANS encoded stream back into the source data based on the sa...
 
Encoder - User facing class to perform rANS entropy coding of source symbols onto a rANS state based ...
 
constexpr CoderTag getCoderTag_v
 
constexpr size_t getStreamingLowerBound_v
 
Common utility functions.