diff options
author | Tor Egge <Tor.Egge@online.no> | 2022-08-24 16:44:25 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2022-08-24 16:44:25 +0200 |
commit | 13abe229dd8faa5f4e61db2774ee1a9a3b175174 (patch) | |
tree | 822e4bb92578eb3806c8df6d273be1dba98fbfa6 /ann_benchmark | |
parent | b8b8ba9812e0f0d33d0c4305e2df8fa5e9326328 (diff) |
Use double data type when normalizing vector.
Diffstat (limited to 'ann_benchmark')
-rw-r--r-- | ann_benchmark/src/tests/ann_benchmark/test_angular.py | 2 | ||||
-rw-r--r-- | ann_benchmark/src/vespa/ann_benchmark/vespa_ann_benchmark.cpp | 7 |
2 files changed, 5 insertions, 4 deletions
diff --git a/ann_benchmark/src/tests/ann_benchmark/test_angular.py b/ann_benchmark/src/tests/ann_benchmark/test_angular.py index 6fe15bf3c58..15e718906d6 100644 --- a/ann_benchmark/src/tests/ann_benchmark/test_angular.py +++ b/ann_benchmark/src/tests/ann_benchmark/test_angular.py @@ -21,7 +21,7 @@ class Fixture: top = self.find(10, [1, 1]) assert [top[0][0], top[1][0]] == [0, 1] # Allow some rounding errors - epsilon = 5e-8 + epsilon = 6e-8 assert abs((1 - top[0][1]) - math.sqrt(0.5)) < epsilon assert abs((1 - top[1][1]) - 1) < epsilon top2 = self.find(10, [0, 2]) diff --git a/ann_benchmark/src/vespa/ann_benchmark/vespa_ann_benchmark.cpp b/ann_benchmark/src/vespa/ann_benchmark/vespa_ann_benchmark.cpp index f9a4d5b43cc..fe7fd9d25fb 100644 --- a/ann_benchmark/src/vespa/ann_benchmark/vespa_ann_benchmark.cpp +++ b/ann_benchmark/src/vespa/ann_benchmark/vespa_ann_benchmark.cpp @@ -132,11 +132,12 @@ HnswIndex::get_typed_cells(const std::vector<float>& value, std::vector<float>& if (!_normalize_vectors) { return {&value[0], CellType::FLOAT, value.size()}; } - float sum_of_squared = 0.0f; + double sum_of_squared = 0.0; for (auto elem : value) { - sum_of_squared += elem * elem; + double delem = elem; + sum_of_squared += delem * delem; } - float factor = 1.0f / (sqrtf(sum_of_squared) + 1e-40f); + double factor = 1.0 / (sqrt(sum_of_squared) + 1e-40); normalized_value.reserve(value.size()); normalized_value.clear(); for (auto elem : value) { |