16#ifndef RANS_INTERNAL_COMMON_CODERTRAITS_H_
17#define RANS_INTERNAL_COMMON_CODERTRAITS_H_
35template <CoderTag tag_V = DefaultTag>
40 inline static constexpr size_t nStreams = 2;
44#ifdef RANS_SINGLE_STREAM
47 inline static constexpr size_t nStreams = 2;
55 inline static constexpr size_t nStreams = 16;
63 inline static constexpr size_t nStreams = 16;
72template <CoderTag tag_V>
79 template <size_t lowerBound_V = defaults::CoderPreset<CoderTag::Compat>::renormingLowerBound>
83#ifdef RANS_SINGLE_STREAM
87 template <size_t lowerBound_V = defaults::CoderPreset<CoderTag::SingleStream>::renormingLowerBound>
88 using type = SingleStreamEncoderImpl<lowerBound_V>;
96 template <size_t lowerBound_V = defaults::CoderPreset<CoderTag::SSE>::renormingLowerBound>
97 using type = SSEEncoderImpl<lowerBound_V>;
105 template <size_t lowerBound_V = defaults::CoderPreset<CoderTag::AVX2>::renormingLowerBound>
106 using type = AVXEncoderImpl<lowerBound_V>;
110template <CoderTag tag_V = defaults::DefaultTag, size_t lowerBound_V = defaults::CoderPreset<tag_V>::renormingLowerBound>
preprocessor defines to enable features based on CPU architecture
GLint GLint GLsizei GLint GLenum GLenum type
constexpr size_t RenormingLowerBound
typename CoderTraits< tag_V >::template type< lowerBound_V > CoderTraits_t
manipulation of types at compile time