Lines Matching +full:pre +full:- +full:verified
7 * - FSE+HUF source repository : https://github.com/Cyan4973/FiniteStateEntropy
9 * This source code is licensed under both the BSD-style license (found in the
12 * You may select, at your option, one of the above-listed licenses.
49 #define HUF_ALIGN(x, a) HUF_ALIGN_MASK((x), (a) - 1)
98 /*-***************************/
100 /*-***************************/
113 /*-***************************/
114 /* single-symbol decoding */
115 /*-***************************/
116 typedef struct { BYTE byte; BYTE nbBits; } HUF_DEltX1; /* single-symbol decoding */
162 …dStats_wksp(wksp->huffWeight, HUF_SYMBOLVALUE_MAX + 1, wksp->rankVal, &nbSymbols, &tableLog, src, … in HUF_readDTableX1_wksp_bmi2()
189 int const nLimit = (int)nbSymbols - unroll + 1; in HUF_readDTableX1_wksp_bmi2()
192 nextRankStart += wksp->rankVal[n]; in HUF_readDTableX1_wksp_bmi2()
193 wksp->rankStart[n] = curr; in HUF_readDTableX1_wksp_bmi2()
198 size_t const w = wksp->huffWeight[n+u]; in HUF_readDTableX1_wksp_bmi2()
199 wksp->symbols[wksp->rankStart[w]++] = (BYTE)(n+u); in HUF_readDTableX1_wksp_bmi2()
203 size_t const w = wksp->huffWeight[n]; in HUF_readDTableX1_wksp_bmi2()
204 wksp->symbols[wksp->rankStart[w]++] = (BYTE)n; in HUF_readDTableX1_wksp_bmi2()
216 int symbol=wksp->rankVal[0]; in HUF_readDTableX1_wksp_bmi2()
219 int const symbolCount = wksp->rankVal[w]; in HUF_readDTableX1_wksp_bmi2()
222 BYTE const nbBits = (BYTE)(tableLog + 1 - w); in HUF_readDTableX1_wksp_bmi2()
229 D.byte = wksp->symbols[symbol + s]; in HUF_readDTableX1_wksp_bmi2()
238 D.byte = wksp->symbols[symbol + s]; in HUF_readDTableX1_wksp_bmi2()
247 U64 const D4 = HUF_DEltX1_set4(wksp->symbols[symbol + s], nbBits); in HUF_readDTableX1_wksp_bmi2()
254 U64 const D4 = HUF_DEltX1_set4(wksp->symbols[symbol + s], nbBits); in HUF_readDTableX1_wksp_bmi2()
262 U64 const D4 = HUF_DEltX1_set4(wksp->symbols[symbol + s], nbBits); in HUF_readDTableX1_wksp_bmi2()
307 while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) & (p < pEnd-3)) { in HUF_decodeStreamX1()
314 /* [0-3] symbols remaining */ in HUF_decodeStreamX1()
323 return pEnd-pStart; in HUF_decodeStreamX1()
361 BYTE* const olimit = oend - 3; in HUF_decompress4X1_usingDTable_internal_body()
373 size_t const length4 = cSrcSize - (length1 + length2 + length3 + 6); in HUF_decompress4X1_usingDTable_internal_body()
396 /* up to 16 symbols per loop (4 symbols per stream) in 64-bit mode */ in HUF_decompress4X1_usingDTable_internal_body()
422 …* but curiously, binary generated by gcc 7.2 & 7.3 with -mbmi2 runs faster when >=1 test is… in HUF_decompress4X1_usingDTable_internal_body()
426 /* note : op4 supposed already verified within main loop */ in HUF_decompress4X1_usingDTable_internal_body()
473 ip += hSize; cSrcSize -= hSize; in HUF_decompress1X1_DCtx_wksp()
498 ip += hSize; cSrcSize -= hSize; in HUF_decompress4X1_DCtx_wksp_bmi2()
517 /* double-symbols decoding */
520 typedef struct { U16 sequence; BYTE nbBits; BYTE length; } HUF_DEltX2; /* double-symbols decoding …
538 /* get pre-calculated rankVal */ in HUF_fillDTableX2Level2()
555 const U32 nbBits = nbBitsBaseline - weight; in HUF_fillDTableX2Level2()
556 const U32 length = 1 << (sizeLog-nbBits); in HUF_fillDTableX2Level2()
577 …const int scaleLog = nbBitsBaseline - targetLog; /* note : targetLog >= srcLog, hence scaleLog <… in HUF_fillDTableX2()
578 const U32 minBits = nbBitsBaseline - maxWeight; in HUF_fillDTableX2()
583 wkspSize -= HUF_TABLELOG_MAX + 1; in HUF_fillDTableX2()
591 const U32 nbBits = nbBitsBaseline - weight; in HUF_fillDTableX2()
593 const U32 length = 1 << (targetLog-nbBits); in HUF_fillDTableX2()
595 if (targetLog-nbBits >= minBits) { /* enough room for a second symbol */ in HUF_fillDTableX2()
600 HUF_fillDTableX2Level2(DTable+start, targetLog-nbBits, nbBits, in HUF_fillDTableX2()
602 sortedList+sortedRank, sortedListSize-sortedRank, in HUF_fillDTableX2()
634 void* dtPtr = DTable+1; /* force compiler to avoid strict-aliasing */ in HUF_readDTableX2_wksp()
642 rankStart = wksp->rankStart0 + 1; in HUF_readDTableX2_wksp()
643 ZSTD_memset(wksp->rankStats, 0, sizeof(wksp->rankStats)); in HUF_readDTableX2_wksp()
644 ZSTD_memset(wksp->rankStart0, 0, sizeof(wksp->rankStart0)); in HUF_readDTableX2_wksp()
650 …Stats_wksp(wksp->weightList, HUF_SYMBOLVALUE_MAX + 1, wksp->rankStats, &nbSymbols, &tableLog, src,… in HUF_readDTableX2_wksp()
657 …for (maxW = tableLog; wksp->rankStats[maxW]==0; maxW--) {} /* necessarily finds a solution before… in HUF_readDTableX2_wksp()
663 nextRankStart += wksp->rankStats[w]; in HUF_readDTableX2_wksp()
673 U32 const w = wksp->weightList[s]; in HUF_readDTableX2_wksp()
675 wksp->sortedSymbol[r].symbol = (BYTE)s; in HUF_readDTableX2_wksp()
676 wksp->sortedSymbol[r].weight = (BYTE)w; in HUF_readDTableX2_wksp()
682 { U32* const rankVal0 = wksp->rankVal[0]; in HUF_readDTableX2_wksp()
683 { int const rescale = (maxTableLog-tableLog) - 1; /* tableLog <= maxTableLog */ in HUF_readDTableX2_wksp()
688 nextRankVal += wksp->rankStats[w] << (w+rescale); in HUF_readDTableX2_wksp()
691 { U32 const minBits = tableLog+1 - maxW; in HUF_readDTableX2_wksp()
693 for (consumed = minBits; consumed < maxTableLog - minBits + 1; consumed++) { in HUF_readDTableX2_wksp()
694 U32* const rankValPtr = wksp->rankVal[consumed]; in HUF_readDTableX2_wksp()
701 wksp->sortedSymbol, sizeOfSort, in HUF_readDTableX2_wksp()
702 wksp->rankStart0, wksp->rankVal, maxW, in HUF_readDTableX2_wksp()
704 wksp->calleeWksp, sizeof(wksp->calleeWksp) / sizeof(U32)); in HUF_readDTableX2_wksp()
729 if (DStream->bitsConsumed < (sizeof(DStream->bitContainer)*8)) { in HUF_decodeLastSymbolX2()
731 if (DStream->bitsConsumed > (sizeof(DStream->bitContainer)*8)) in HUF_decodeLastSymbolX2()
733 DStream->bitsConsumed = (sizeof(DStream->bitContainer)*8); in HUF_decodeLastSymbolX2()
756 …reloadDStream(bitDPtr) == BIT_DStream_unfinished) & (p < pEnd-(sizeof(bitDPtr->bitContainer)-1))) { in HUF_decodeStreamX2()
764 while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) & (p <= pEnd-2)) in HUF_decodeStreamX2()
767 while (p <= pEnd-2) in HUF_decodeStreamX2()
773 return p-pStart; in HUF_decodeStreamX2()
790 const void* const dtPtr = DTable+1; /* force compiler to not use strict-aliasing */ in HUF_decompress1X2_usingDTable_internal_body()
814 BYTE* const olimit = oend - (sizeof(size_t)-1); in HUF_decompress4X2_usingDTable_internal_body()
826 size_t const length4 = cSrcSize - (length1 + length2 + length3 + 6); in HUF_decompress4X2_usingDTable_internal_body()
849 /* 16-32 symbols per loop (4-8 symbols per stream) */ in HUF_decompress4X2_usingDTable_internal_body()
901 /* note : op4 already verified within main loop */ in HUF_decompress4X2_usingDTable_internal_body()
941 ip += hSize; cSrcSize -= hSize; in HUF_decompress1X2_DCtx_wksp()
967 ip += hSize; cSrcSize -= hSize; in HUF_decompress4X2_DCtx_wksp_bmi2()
1033 {{ 38,130}, {1313, 74}, {2151, 38}}, /* Q == 2 : 12-18% */
1034 {{ 448,128}, {1353, 74}, {2238, 41}}, /* Q == 3 : 18-25% */
1035 {{ 556,128}, {1353, 74}, {2238, 47}}, /* Q == 4 : 25-32% */
1036 {{ 714,128}, {1418, 74}, {2436, 53}}, /* Q == 5 : 32-38% */
1037 {{ 883,128}, {1437, 74}, {2464, 61}}, /* Q == 6 : 38-44% */
1038 {{ 897,128}, {1515, 75}, {2622, 68}}, /* Q == 7 : 44-50% */
1039 {{ 926,128}, {1613, 75}, {2730, 75}}, /* Q == 8 : 50-56% */
1040 {{ 947,128}, {1729, 77}, {3359, 77}}, /* Q == 9 : 56-62% */
1041 {{1107,128}, {2083, 81}, {4006, 84}}, /* Q ==10 : 62-69% */
1042 {{1177,128}, {2379, 87}, {4785, 88}}, /* Q ==11 : 69-75% */
1043 {{1242,128}, {2415, 93}, {5155, 84}}, /* Q ==12 : 75-81% */
1044 {{1349,128}, {2644,106}, {5260,106}}, /* Q ==13 : 81-87% */
1045 {{1455,128}, {2422,124}, {4174,124}}, /* Q ==14 : 87-93% */
1046 {{ 722,128}, {1891,145}, {1936,146}}, /* Q ==15 : 93-99% */
1052 * based on a set of pre-computed metrics.
1162 ip += hSize; cSrcSize -= hSize; in HUF_decompress1X1_DCtx_wksp_bmi2()