17#ifndef ALICEO2_METADATA_H
18#define ALICEO2_METADATA_H
89template <
typename source_T,
typename state_T,
typename stream_T>
91 size_t nLiterals,
size_t symbolTablePrecision,
93 size_t dataWords,
size_t literalWords)
noexcept
96 static_cast<uint8_t
>(nStreams),
99 static_cast<uint8_t
>(
sizeof(
source_T)),
100 static_cast<uint8_t
>(
sizeof(state_T)),
101 static_cast<uint8_t
>(
sizeof(stream_T)),
102 static_cast<uint8_t
>(symbolTablePrecision),
104 static_cast<int32_t
>(
min),
105 static_cast<int32_t
>(
max),
106 static_cast<int32_t
>(0),
107 static_cast<uint8_t
>(
sizeof(
source_T)),
108 static_cast<int32_t
>(dictWords),
109 static_cast<int32_t
>(dataWords),
110 static_cast<int32_t
>(literalWords)};
113template <
typename source_T>
118 static_cast<uint8_t
>(0),
119 static_cast<uint8_t
>(0),
120 static_cast<uint8_t
>(0),
121 static_cast<uint8_t
>(
sizeof(
source_T)),
122 static_cast<uint8_t
>(0),
123 static_cast<uint8_t
>(0),
124 static_cast<uint8_t
>(symbolTablePrecision),
126 static_cast<int32_t
>(
min),
127 static_cast<int32_t
>(
max),
128 static_cast<int32_t
>(0),
129 static_cast<uint8_t
>(0),
130 static_cast<int32_t
>(dictWords),
131 static_cast<int32_t
>(0),
132 static_cast<int32_t
>(0)};
135template <
typename source_T,
typename state_T,
typename stream_T>
137 size_t nLiterals,
size_t symbolTablePrecision,
139 source_T literalsOffset,
size_t literalsPackingWidth,
size_t dictWords,
140 size_t dataWords,
size_t literalWords)
noexcept
143 static_cast<uint8_t
>(nStreams),
146 static_cast<uint8_t
>(
sizeof(
source_T)),
147 static_cast<uint8_t
>(
sizeof(state_T)),
148 static_cast<uint8_t
>(streamingLowerBound),
149 static_cast<uint8_t
>(symbolTablePrecision),
151 static_cast<int32_t
>(dictMin),
152 static_cast<int32_t
>(dictMax),
153 static_cast<int32_t
>(literalsOffset),
154 static_cast<uint8_t
>(literalsPackingWidth),
155 static_cast<int32_t
>(dictWords),
156 static_cast<int32_t
>(dataWords),
157 static_cast<int32_t
>(literalWords)};
160template <
typename source_T>
162 source_T packingOffset,
size_t dataWords)
noexcept
165 static_cast<uint8_t
>(1),
167 static_cast<size_t>(0),
168 static_cast<uint8_t
>(
sizeof(
source_T)),
169 static_cast<uint8_t
>(0),
170 static_cast<uint8_t
>(0),
171 static_cast<uint8_t
>(packingWidth),
173 static_cast<int32_t
>(packingOffset),
174 static_cast<int32_t
>(0),
175 static_cast<int32_t
>(0),
176 static_cast<uint8_t
>(0),
177 static_cast<int32_t
>(0),
178 static_cast<int32_t
>(dataWords),
179 static_cast<int32_t
>(0)};
182template <
typename source_T,
typename buffer_T>
186 static_cast<uint8_t
>(0),
188 static_cast<size_t>(0),
189 static_cast<uint8_t
>(
sizeof(
source_T)),
190 static_cast<uint8_t
>(0),
191 static_cast<uint8_t
>(
sizeof(buffer_T)),
192 static_cast<uint8_t
>(0),
194 static_cast<int32_t
>(0),
195 static_cast<int32_t
>(0),
196 static_cast<int32_t
>(0),
197 static_cast<int32_t
>(0),
198 static_cast<int32_t
>(0),
199 static_cast<int32_t
>(dataWords),
200 static_cast<int32_t
>(0)};
constexpr Metadata makeMetadataRansCompat(size_t nStreams, size_t messageLength, size_t nLiterals, size_t symbolTablePrecision, source_T min, source_T max, size_t dictWords, size_t dataWords, size_t literalWords) noexcept
constexpr Metadata makeMetadataRansDict(size_t symbolTablePrecision, source_T min, source_T max, size_t dictWords, ctf::Metadata::OptStore optStore) noexcept
constexpr Metadata makeMetadataPack(size_t messageLength, size_t packingWidth, source_T packingOffset, size_t dataWords) noexcept
constexpr Metadata makeMetadataStore(size_t messageLength, Metadata::OptStore opStore, size_t dataWords) noexcept
constexpr Metadata makeMetadataRansV1(size_t nStreams, size_t streamingLowerBound, size_t messageLength, size_t nLiterals, size_t symbolTablePrecision, source_T dictMin, source_T dictMax, source_T literalsOffset, size_t literalsPackingWidth, size_t dictWords, size_t dataWords, size_t literalWords) noexcept
pair of input and output size