27 template <
int N,
int kSigma = 16>
31 static_cast<size_t>(1.5f * kSigma);
35 const float sigma_squared = kSigma * kSigma;
36 for (
int n = 0; n <= N; ++n) {
37 const float hamming_dist =
static_cast<float>(n);
39 look_up_table_.at(n) =
40 std::exp(-hamming_dist * hamming_dist / sigma_squared);
42 look_up_table_.at(n) = 0.0f;
49 inline float operator()(
const size_t hamming_dist)
const {
50 return look_up_table_.at(hamming_dist);
57 std::array<float, N + 1> look_up_table_;
static const size_t kMaxHammingDistance
HammingDistWeightFunctor()
float operator()(const size_t hamming_dist) const