Lines Matching defs:ssPtr

29 FORCE_INLINE void ZSTD_setLog2Prices(seqStore_t *ssPtr)
31 ssPtr->log2matchLengthSum = ZSTD_highbit32(ssPtr->matchLengthSum + 1);
32 ssPtr->log2litLengthSum = ZSTD_highbit32(ssPtr->litLengthSum + 1);
33 ssPtr->log2litSum = ZSTD_highbit32(ssPtr->litSum + 1);
34 ssPtr->log2offCodeSum = ZSTD_highbit32(ssPtr->offCodeSum + 1);
35 ssPtr->factor = 1 + ((ssPtr->litSum >> 5) / ssPtr->litLengthSum) + ((ssPtr->litSum << 1) / (ssPtr->litSum + ssPtr->matchSum));
38 ZSTD_STATIC void ZSTD_rescaleFreqs(seqStore_t *ssPtr, const BYTE *src, size_t srcSize)
42 ssPtr->cachedLiterals = NULL;
43 ssPtr->cachedPrice = ssPtr->cachedLitLength = 0;
44 ssPtr->staticPrices = 0;
46 if (ssPtr->litLengthSum == 0) {
48 ssPtr->staticPrices = 1;
51 ssPtr->litFreq[u] = 0;
53 ssPtr->litFreq[src[u]]++;
55 ssPtr->litSum = 0;
56 ssPtr->litLengthSum = MaxLL + 1;
57 ssPtr->matchLengthSum = MaxML + 1;
58 ssPtr->offCodeSum = (MaxOff + 1);
59 ssPtr->matchSum = (ZSTD_LITFREQ_ADD << Litbits);
62 ssPtr->litFreq[u] = 1 + (ssPtr->litFreq[u] >> ZSTD_FREQ_DIV);
63 ssPtr->litSum += ssPtr->litFreq[u];
66 ssPtr->litLengthFreq[u] = 1;
68 ssPtr->matchLengthFreq[u] = 1;
70 ssPtr->offCodeFreq[u] = 1;
72 ssPtr->matchLengthSum = 0;
73 ssPtr->litLengthSum = 0;
74 ssPtr->offCodeSum = 0;
75 ssPtr->matchSum = 0;
76 ssPtr->litSum = 0;
79 ssPtr->litFreq[u] = 1 + (ssPtr->litFreq[u] >> (ZSTD_FREQ_DIV + 1));
80 ssPtr->litSum += ssPtr->litFreq[u];
83 ssPtr->litLengthFreq[u] = 1 + (ssPtr->litLengthFreq[u] >> (ZSTD_FREQ_DIV + 1));
84 ssPtr->litLengthSum += ssPtr->litLengthFreq[u];
87 ssPtr->matchLengthFreq[u] = 1 + (ssPtr->matchLengthFreq[u] >> ZSTD_FREQ_DIV);
88 ssPtr->matchLengthSum += ssPtr->matchLengthFreq[u];
89 ssPtr->matchSum += ssPtr->matchLengthFreq[u] * (u + 3);
91 ssPtr->matchSum *= ZSTD_LITFREQ_ADD;
93 ssPtr->offCodeFreq[u] = 1 + (ssPtr->offCodeFreq[u] >> ZSTD_FREQ_DIV);
94 ssPtr->offCodeSum += ssPtr->offCodeFreq[u];
98 ZSTD_setLog2Prices(ssPtr);
101 FORCE_INLINE U32 ZSTD_getLiteralPrice(seqStore_t *ssPtr, U32 litLength, const BYTE *literals)
105 if (ssPtr->staticPrices)
109 return ssPtr->log2litLengthSum - ZSTD_highbit32(ssPtr->litLengthFreq[0] + 1);
112 if (ssPtr->cachedLiterals == literals) {
113 U32 const additional = litLength - ssPtr->cachedLitLength;
114 const BYTE *literals2 = ssPtr->cachedLiterals + ssPtr->cachedLitLength;
115 price = ssPtr->cachedPrice + additional * ssPtr->log2litSum;
117 price -= ZSTD_highbit32(ssPtr->litFreq[literals2[u]] + 1);
118 ssPtr->cachedPrice = price;
119 ssPtr->cachedLitLength = litLength;
121 price = litLength * ssPtr->log2litSum;
123 price -= ZSTD_highbit32(ssPtr->litFreq[literals[u]] + 1);
126 ssPtr->cachedLiterals = literals;
127 ssPtr->cachedPrice = price;
128 ssPtr->cachedLitLength = litLength;
136 price += LL_bits[llCode] + ssPtr->log2litLengthSum - ZSTD_highbit32(ssPtr->litLengthFreq[llCode] + 1);