Lines Matching defs:huffNode

290 static U32 HUF_setMaxHeight(nodeElt *huffNode, U32 lastNonNull, U32 maxNbBits)
292 const U32 largestBits = huffNode[lastNonNull].nbBits;
302 while (huffNode[n].nbBits > maxNbBits) {
303 totalCost += baseCost - (1 << (largestBits - huffNode[n].nbBits));
304 huffNode[n].nbBits = (BYTE)maxNbBits;
306 } /* n stops at huffNode[n].nbBits <= maxNbBits */
307 while (huffNode[n].nbBits == maxNbBits)
324 if (huffNode[pos].nbBits >= currNbBits)
326 currNbBits = huffNode[pos].nbBits; /* < maxNbBits */
341 U32 const highTotal = huffNode[highPos].count;
342 U32 const lowTotal = 2 * huffNode[lowPos].count;
354 huffNode[rankLast[nBitsToDecrease]].nbBits++;
359 if (huffNode[rankLast[nBitsToDecrease]].nbBits != maxNbBits - nBitsToDecrease)
367 while (huffNode[n].nbBits == maxNbBits)
369 huffNode[n + 1].nbBits--;
374 huffNode[rankLast[1] + 1].nbBits--;
389 static void HUF_sort(nodeElt *huffNode, const U32 *count, U32 maxSymbolValue)
407 while ((pos > rank[r].base) && (c > huffNode[pos - 1].count))
408 huffNode[pos] = huffNode[pos - 1], pos--;
409 huffNode[pos].count = c;
410 huffNode[pos].byte = (BYTE)n;
423 nodeElt *const huffNode = huffNode0 + 1;
439 HUF_sort(huffNode, count, maxSymbolValue);
443 while (huffNode[nonNullRank].count == 0)
448 huffNode[nodeNb].count = huffNode[lowS].count + huffNode[lowS - 1].count;
449 huffNode[lowS].parent = huffNode[lowS - 1].parent = nodeNb;
453 huffNode[n].count = (U32)(1U << 30);
458 U32 n1 = (huffNode[lowS].count < huffNode[lowN].count) ? lowS-- : lowN++;
459 U32 n2 = (huffNode[lowS].count < huffNode[lowN].count) ? lowS-- : lowN++;
460 huffNode[nodeNb].count = huffNode[n1].count + huffNode[n2].count;
461 huffNode[n1].parent = huffNode[n2].parent = nodeNb;
466 huffNode[nodeRoot].nbBits = 0;
468 huffNode[n].nbBits = huffNode[huffNode[n].parent].nbBits + 1;
470 huffNode[n].nbBits = huffNode[huffNode[n].parent].nbBits + 1;
473 maxNbBits = HUF_setMaxHeight(huffNode, nonNullRank, maxNbBits);
482 nbPerRank[huffNode[n].nbBits]++;
493 tree[huffNode[n].byte].nbBits = huffNode[n].nbBits; /* push nbBits per symbol, symbol order */