126fa459cSmrg/* Copyright 2013 Google Inc. All Rights Reserved. 226fa459cSmrg 326fa459cSmrg Distributed under MIT license. 426fa459cSmrg See file LICENSE for detail or copy at https://opensource.org/licenses/MIT 526fa459cSmrg*/ 626fa459cSmrg 726fa459cSmrg/* Functions for clustering similar histograms together. */ 826fa459cSmrg 926fa459cSmrg#ifndef BROTLI_ENC_CLUSTER_H_ 1026fa459cSmrg#define BROTLI_ENC_CLUSTER_H_ 1126fa459cSmrg 1226fa459cSmrg#include "../common/platform.h" 1326fa459cSmrg#include <brotli/types.h> 1426fa459cSmrg#include "./histogram.h" 1526fa459cSmrg#include "./memory.h" 1626fa459cSmrg 1726fa459cSmrg#if defined(__cplusplus) || defined(c_plusplus) 1826fa459cSmrgextern "C" { 1926fa459cSmrg#endif 2026fa459cSmrg 2126fa459cSmrgtypedef struct HistogramPair { 2226fa459cSmrg uint32_t idx1; 2326fa459cSmrg uint32_t idx2; 2426fa459cSmrg double cost_combo; 2526fa459cSmrg double cost_diff; 2626fa459cSmrg} HistogramPair; 2726fa459cSmrg 2826fa459cSmrg#define CODE(X) /* Declaration */; 2926fa459cSmrg 3026fa459cSmrg#define FN(X) X ## Literal 3126fa459cSmrg#include "./cluster_inc.h" /* NOLINT(build/include) */ 3226fa459cSmrg#undef FN 3326fa459cSmrg 3426fa459cSmrg#define FN(X) X ## Command 3526fa459cSmrg#include "./cluster_inc.h" /* NOLINT(build/include) */ 3626fa459cSmrg#undef FN 3726fa459cSmrg 3826fa459cSmrg#define FN(X) X ## Distance 3926fa459cSmrg#include "./cluster_inc.h" /* NOLINT(build/include) */ 4026fa459cSmrg#undef FN 4126fa459cSmrg 4226fa459cSmrg#undef CODE 4326fa459cSmrg 4426fa459cSmrg#if defined(__cplusplus) || defined(c_plusplus) 4526fa459cSmrg} /* extern "C" */ 4626fa459cSmrg#endif 4726fa459cSmrg 4826fa459cSmrg#endif /* BROTLI_ENC_CLUSTER_H_ */ 49