Skip to content

Commit fec4837

Browse files
Add PhPointF to DistanceEuclidean (#18)
Co-authored-by: Tilmann Zäschke <[email protected]>
1 parent 3cf866b commit fec4837

File tree

2 files changed

+14
-17
lines changed

2 files changed

+14
-17
lines changed

phtree/common/distance.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,15 @@ struct DistanceEuclidean {
6363
}
6464
return sqrt(sum2);
6565
};
66+
67+
double operator()(const PhPointF<DIM>& v1, const PhPointF<DIM>& v2) const {
68+
double sum2 = 0;
69+
for (dimension_t i = 0; i < DIM; i++) {
70+
double d2 = double(v1[i] - v2[i]);
71+
sum2 += d2 * d2;
72+
}
73+
return sqrt(sum2);
74+
};
6675
};
6776

6877
template <dimension_t DIM>

phtree/phtree_f_test.cc

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -780,18 +780,6 @@ TEST(PhTreeFTest, TestWindowQueryFilter) {
780780
ASSERT_GE(50, num_e);
781781
}
782782

783-
template <dimension_t DIM>
784-
struct DistanceEuclideanFloat {
785-
double operator()(const TestPoint<DIM>& v1, const TestPoint<DIM>& v2) const {
786-
double sum2 = 0;
787-
for (dimension_t i = 0; i < DIM; i++) {
788-
double d2 = double(v1[i] - v2[i]);
789-
sum2 += d2 * d2;
790-
}
791-
return sqrt(sum2);
792-
};
793-
};
794-
795783
TEST(PhTreeFTest, TestKnnQuery) {
796784
// deliberately allowing outside of main points range
797785
FloatRng rng(-1500, 1500);
@@ -816,7 +804,7 @@ TEST(PhTreeFTest, TestKnnQuery) {
816804

817805
size_t n = 0;
818806
double prevDist = -1;
819-
auto q = tree.begin_knn_query(Nq, center, DistanceEuclideanFloat<3>());
807+
auto q = tree.begin_knn_query(Nq, center, DistanceEuclidean<3>());
820808
while (q != tree.end()) {
821809
// just read the entry
822810
auto& e = *q;
@@ -899,8 +887,8 @@ TEST(PhTreeFTest, TestKnnQueryIterator) {
899887

900888
TestPoint<dim> center{rng.next(), rng.next(), rng.next()};
901889
size_t n = 0;
902-
auto q1 = tree.begin_knn_query(Nq, center, DistanceEuclideanFloat<3>());
903-
auto q2 = tree.begin_knn_query(Nq, center, DistanceEuclideanFloat<3>());
890+
auto q1 = tree.begin_knn_query(Nq, center, DistanceEuclidean<3>());
891+
auto q2 = tree.begin_knn_query(Nq, center, DistanceEuclidean<3>());
904892
while (q1 != tree.end()) {
905893
ASSERT_NE(q1, tree.end());
906894
ASSERT_NE(q2, tree.end());
@@ -926,7 +914,7 @@ TEST(PhTreeFTest, SmokeTestPoint0) {
926914
auto q_extent = tree.begin();
927915
ASSERT_EQ(q_extent, tree.end());
928916

929-
auto q_knn = tree.begin_knn_query(10, p, DistanceEuclideanFloat<3>());
917+
auto q_knn = tree.begin_knn_query(10, p, DistanceEuclidean<3>());
930918
ASSERT_EQ(q_knn, tree.end());
931919

932920
ASSERT_EQ(0, tree.erase(p));
@@ -974,7 +962,7 @@ TEST(PhTreeFTest, SmokeTestPointInfinity) {
974962
++q_extent;
975963
ASSERT_EQ(q_extent, tree.end());
976964

977-
auto q_knn = tree.begin_knn_query(10, p, DistanceEuclideanFloat<3>());
965+
auto q_knn = tree.begin_knn_query(10, p, DistanceEuclidean<3>());
978966
ASSERT_EQ(1, q_knn->_i);
979967
++q_knn;
980968
ASSERT_NE(q_knn, tree.end());

0 commit comments

Comments
 (0)