aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2020-08-16 10:31:16 +0000
committerArne Juul <arnej@verizonmedia.com>2020-08-16 10:31:16 +0000
commitb56bbda633a26e1bbdeb710efd89fcfd669ad1df (patch)
tree8e07bf1bf8b1cc2823a5cd86cb91ac925832d8c8 /searchlib
parente98b5a77300eda52f082b9c17b9cf4915b3fe4b0 (diff)
use km as unit for distances from geo-degrees metric
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/tests/tensor/distance_functions/distance_functions_test.cpp4
-rw-r--r--searchlib/src/vespa/searchlib/tensor/distance_functions.h4
2 files changed, 4 insertions, 4 deletions
diff --git a/searchlib/src/tests/tensor/distance_functions/distance_functions_test.cpp b/searchlib/src/tests/tensor/distance_functions/distance_functions_test.cpp
index 082d04f104b..9d240bc688a 100644
--- a/searchlib/src/tests/tensor/distance_functions/distance_functions_test.cpp
+++ b/searchlib/src/tests/tensor/distance_functions/distance_functions_test.cpp
@@ -25,7 +25,7 @@ void verify_geo_miles(const DistanceFunction *dist_fun,
double abstract_distance = dist_fun->calc(t1, t2);
double raw_score = dist_fun->to_rawscore(abstract_distance);
double m = ((1.0/raw_score)-1.0);
- double d_miles = m / 1609.344;
+ double d_miles = m / 1.609344;
EXPECT_GE(d_miles, exp_miles*0.99);
EXPECT_LE(d_miles, exp_miles*1.01);
}
@@ -159,7 +159,7 @@ TEST(GeoDegreesTest, gives_expected_score)
double g63_a = geodeg->calc(t(g6_trd), t(g3_osl));
double g63_r = geodeg->to_rawscore(g63_a);
- double g63_km = ((1.0/g63_r)-1.0) *.001;
+ double g63_km = ((1.0/g63_r)-1.0);
EXPECT_GT(g63_km, 350);
EXPECT_LT(g63_km, 375);
diff --git a/searchlib/src/vespa/searchlib/tensor/distance_functions.h b/searchlib/src/vespa/searchlib/tensor/distance_functions.h
index 7e75920619f..f88b239885f 100644
--- a/searchlib/src/vespa/searchlib/tensor/distance_functions.h
+++ b/searchlib/src/vespa/searchlib/tensor/distance_functions.h
@@ -165,8 +165,8 @@ public:
}
double to_rawscore(double distance) const override {
double hav_diff = sqrt(distance);
- // distance in meters:
- double d = 2 * asin(hav_diff) * 6371008.8; // Earth mean radius
+ // distance in kilometers:
+ double d = 2 * asin(hav_diff) * 6371.0088; // Earth mean radius
return 1.0 / (1.0 + d);
}
double calc_with_limit(const vespalib::tensor::TypedCells& lhs,