9#ifndef BROTLI_ENC_BIT_COST_H_
10#define BROTLI_ENC_BIT_COST_H_
12#include <brotli/types.h>
18#if defined(__cplusplus) || defined(c_plusplus)
23 const uint32_t* population,
size_t size,
size_t* total) {
26 const uint32_t* population_end = population +
size;
29 goto odd_number_of_elements_left;
31 while (population < population_end) {
34 retval -= (double)p * FastLog2(p);
35 odd_number_of_elements_left:
38 retval -= (double)p * FastLog2(p);
40 if (sum) retval += (double)sum * FastLog2(sum);
46 const uint32_t* population,
size_t size) {
48 double retval = ShannonEntropy(population,
size, &sum);
49 if (retval < (
double)sum) {
60#if defined(__cplusplus) || defined(c_plusplus)
BROTLI_INTERNAL double BrotliPopulationCostLiteral(const HistogramLiteral *)
BROTLI_INTERNAL double BrotliPopulationCostDistance(const HistogramDistance *)
BROTLI_INTERNAL double BrotliPopulationCostCommand(const HistogramCommand *)