MCPcopy Create free account
hub / github.com/LASzip/LASzip / writeBits

Method writeBits

unused/rangeencoder.cpp:209–237  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

207}
208
209void RangeEncoder::writeBits(U32 bits, U32 sym)
210{
211 assert(bits && (sym < (1u<<bits)));
212
213 if (bits > 21) // 22 bits
214 {
215 writeShort(sym&U16_MAX);
216 sym = sym >> 16;
217 bits = bits - 16;
218 }
219
220 U32 r, tmp;
221 normalize();
222 r = range >> bits;
223 tmp = r * sym;
224 low += tmp;
225#ifdef EXTRAFAST
226 range = r;
227#else
228 if ((sym+1) >> bits)
229 {
230 range -= tmp;
231 }
232 else
233 {
234 range = r;
235 }
236#endif
237}
238
239void RangeEncoder::writeByte(U8 sym)
240{

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected