1*f4ee7fbaSAndroid Build Coastguard Worker /* Copyright 2013 Google Inc. All Rights Reserved. 2*f4ee7fbaSAndroid Build Coastguard Worker 3*f4ee7fbaSAndroid Build Coastguard Worker Distributed under MIT license. 4*f4ee7fbaSAndroid Build Coastguard Worker See file LICENSE for detail or copy at https://opensource.org/licenses/MIT 5*f4ee7fbaSAndroid Build Coastguard Worker */ 6*f4ee7fbaSAndroid Build Coastguard Worker 7*f4ee7fbaSAndroid Build Coastguard Worker /* Functions for clustering similar histograms together. */ 8*f4ee7fbaSAndroid Build Coastguard Worker 9*f4ee7fbaSAndroid Build Coastguard Worker #ifndef BROTLI_ENC_CLUSTER_H_ 10*f4ee7fbaSAndroid Build Coastguard Worker #define BROTLI_ENC_CLUSTER_H_ 11*f4ee7fbaSAndroid Build Coastguard Worker 12*f4ee7fbaSAndroid Build Coastguard Worker #include "../common/platform.h" 13*f4ee7fbaSAndroid Build Coastguard Worker #include <brotli/types.h> 14*f4ee7fbaSAndroid Build Coastguard Worker #include "./histogram.h" 15*f4ee7fbaSAndroid Build Coastguard Worker #include "./memory.h" 16*f4ee7fbaSAndroid Build Coastguard Worker 17*f4ee7fbaSAndroid Build Coastguard Worker #if defined(__cplusplus) || defined(c_plusplus) 18*f4ee7fbaSAndroid Build Coastguard Worker extern "C" { 19*f4ee7fbaSAndroid Build Coastguard Worker #endif 20*f4ee7fbaSAndroid Build Coastguard Worker 21*f4ee7fbaSAndroid Build Coastguard Worker typedef struct HistogramPair { 22*f4ee7fbaSAndroid Build Coastguard Worker uint32_t idx1; 23*f4ee7fbaSAndroid Build Coastguard Worker uint32_t idx2; 24*f4ee7fbaSAndroid Build Coastguard Worker double cost_combo; 25*f4ee7fbaSAndroid Build Coastguard Worker double cost_diff; 26*f4ee7fbaSAndroid Build Coastguard Worker } HistogramPair; 27*f4ee7fbaSAndroid Build Coastguard Worker 28*f4ee7fbaSAndroid Build Coastguard Worker #define CODE(X) /* Declaration */; 29*f4ee7fbaSAndroid Build Coastguard Worker 30*f4ee7fbaSAndroid Build Coastguard Worker #define FN(X) X ## Literal 31*f4ee7fbaSAndroid Build Coastguard Worker #include "./cluster_inc.h" /* NOLINT(build/include) */ 32*f4ee7fbaSAndroid Build Coastguard Worker #undef FN 33*f4ee7fbaSAndroid Build Coastguard Worker 34*f4ee7fbaSAndroid Build Coastguard Worker #define FN(X) X ## Command 35*f4ee7fbaSAndroid Build Coastguard Worker #include "./cluster_inc.h" /* NOLINT(build/include) */ 36*f4ee7fbaSAndroid Build Coastguard Worker #undef FN 37*f4ee7fbaSAndroid Build Coastguard Worker 38*f4ee7fbaSAndroid Build Coastguard Worker #define FN(X) X ## Distance 39*f4ee7fbaSAndroid Build Coastguard Worker #include "./cluster_inc.h" /* NOLINT(build/include) */ 40*f4ee7fbaSAndroid Build Coastguard Worker #undef FN 41*f4ee7fbaSAndroid Build Coastguard Worker 42*f4ee7fbaSAndroid Build Coastguard Worker #undef CODE 43*f4ee7fbaSAndroid Build Coastguard Worker 44*f4ee7fbaSAndroid Build Coastguard Worker #if defined(__cplusplus) || defined(c_plusplus) 45*f4ee7fbaSAndroid Build Coastguard Worker } /* extern "C" */ 46*f4ee7fbaSAndroid Build Coastguard Worker #endif 47*f4ee7fbaSAndroid Build Coastguard Worker 48*f4ee7fbaSAndroid Build Coastguard Worker #endif /* BROTLI_ENC_CLUSTER_H_ */ 49