9#ifndef BROTLI_ENC_BIT_COST_H_
10#define BROTLI_ENC_BIT_COST_H_
13#include <brotli/types.h>
17#if defined(__cplusplus) || defined(c_plusplus)
22 const uint32_t* population,
size_t size,
size_t* total) {
25 const uint32_t* population_end = population +
size;
28 goto odd_number_of_elements_left;
30 while (population < population_end) {
33 retval -= (double)p * FastLog2(p);
34 odd_number_of_elements_left:
37 retval -= (double)p * FastLog2(p);
39 if (sum) retval += (double)sum * FastLog2(sum);
45 const uint32_t* population,
size_t size) {
47 double retval = ShannonEntropy(population,
size, &sum);
59#if defined(__cplusplus) || defined(c_plusplus)
BROTLI_INTERNAL double BrotliPopulationCostLiteral(const HistogramLiteral *)
BROTLI_INTERNAL double BrotliPopulationCostDistance(const HistogramDistance *)
BROTLI_INTERNAL double BrotliPopulationCostCommand(const HistogramCommand *)