17#ifndef ALICEO2_METADATA_H
18#define ALICEO2_METADATA_H
76template <
typename source_T,
typename state_T,
typename stream_T>
78 size_t nLiterals,
size_t symbolTablePrecision,
80 size_t dataWords,
size_t literalWords)
noexcept
83 static_cast<uint8_t
>(nStreams),
86 static_cast<uint8_t
>(
sizeof(
source_T)),
87 static_cast<uint8_t
>(
sizeof(state_T)),
88 static_cast<uint8_t
>(
sizeof(stream_T)),
89 static_cast<uint8_t
>(symbolTablePrecision),
91 static_cast<int32_t
>(
min),
92 static_cast<int32_t
>(
max),
93 static_cast<int32_t
>(0),
94 static_cast<uint8_t
>(
sizeof(
source_T)),
95 static_cast<int32_t
>(dictWords),
96 static_cast<int32_t
>(dataWords),
97 static_cast<int32_t
>(literalWords)};
100template <
typename source_T>
105 static_cast<uint8_t
>(0),
106 static_cast<uint8_t
>(0),
107 static_cast<uint8_t
>(0),
108 static_cast<uint8_t
>(
sizeof(
source_T)),
109 static_cast<uint8_t
>(0),
110 static_cast<uint8_t
>(0),
111 static_cast<uint8_t
>(symbolTablePrecision),
113 static_cast<int32_t
>(
min),
114 static_cast<int32_t
>(
max),
115 static_cast<int32_t
>(0),
116 static_cast<uint8_t
>(0),
117 static_cast<int32_t
>(dictWords),
118 static_cast<int32_t
>(0),
119 static_cast<int32_t
>(0)};
122template <
typename source_T,
typename state_T,
typename stream_T>
124 size_t nLiterals,
size_t symbolTablePrecision,
126 source_T literalsOffset,
size_t literalsPackingWidth,
size_t dictWords,
127 size_t dataWords,
size_t literalWords)
noexcept
130 static_cast<uint8_t
>(nStreams),
133 static_cast<uint8_t
>(
sizeof(
source_T)),
134 static_cast<uint8_t
>(
sizeof(state_T)),
135 static_cast<uint8_t
>(streamingLowerBound),
136 static_cast<uint8_t
>(symbolTablePrecision),
138 static_cast<int32_t
>(dictMin),
139 static_cast<int32_t
>(dictMax),
140 static_cast<int32_t
>(literalsOffset),
141 static_cast<uint8_t
>(literalsPackingWidth),
142 static_cast<int32_t
>(dictWords),
143 static_cast<int32_t
>(dataWords),
144 static_cast<int32_t
>(literalWords)};
147template <
typename source_T>
149 source_T packingOffset,
size_t dataWords)
noexcept
152 static_cast<uint8_t
>(1),
154 static_cast<size_t>(0),
155 static_cast<uint8_t
>(
sizeof(
source_T)),
156 static_cast<uint8_t
>(0),
157 static_cast<uint8_t
>(0),
158 static_cast<uint8_t
>(packingWidth),
160 static_cast<int32_t
>(packingOffset),
161 static_cast<int32_t
>(0),
162 static_cast<int32_t
>(0),
163 static_cast<uint8_t
>(0),
164 static_cast<int32_t
>(0),
165 static_cast<int32_t
>(dataWords),
166 static_cast<int32_t
>(0)};
169template <
typename source_T,
typename buffer_T>
173 static_cast<uint8_t
>(0),
175 static_cast<size_t>(0),
176 static_cast<uint8_t
>(
sizeof(
source_T)),
177 static_cast<uint8_t
>(0),
178 static_cast<uint8_t
>(
sizeof(buffer_T)),
179 static_cast<uint8_t
>(0),
181 static_cast<int32_t
>(0),
182 static_cast<int32_t
>(0),
183 static_cast<int32_t
>(0),
184 static_cast<int32_t
>(0),
185 static_cast<int32_t
>(0),
186 static_cast<int32_t
>(dataWords),
187 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