summaryrefslogtreecommitdiffstats
path: root/benchmarks/include/benchmark_types.h
diff options
context:
space:
mode:
authorDouglas Rumbaugh <dbr4@psu.edu>2024-05-09 14:13:00 -0400
committerDouglas Rumbaugh <dbr4@psu.edu>2024-05-09 14:13:00 -0400
commit9dac3f67ffe442b1cfc7c86e39cf325ce8c23045 (patch)
tree1308cb37c141a0961837c18793214d004e592158 /benchmarks/include/benchmark_types.h
parent8d8885df98c4fce50141cc2ae4eb5b4033c51ee3 (diff)
parent265610435e1164a9acc39ca02ea1139acd37c46c (diff)
downloaddynamic-extension-9dac3f67ffe442b1cfc7c86e39cf325ce8c23045.tar.gz
Merge branch 'master' of github.com:dbrumbaugh/dynamic-extension
Diffstat (limited to 'benchmarks/include/benchmark_types.h')
-rw-r--r--benchmarks/include/benchmark_types.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/benchmarks/include/benchmark_types.h b/benchmarks/include/benchmark_types.h
index 13964e8..51fc52d 100644
--- a/benchmarks/include/benchmark_types.h
+++ b/benchmarks/include/benchmark_types.h
@@ -35,6 +35,9 @@ typedef psudb::BTree<int64_t, btree_record<int64_t, int64_t>, btree_key_extract<
const size_t W2V_SIZE = 300;
typedef de::EuclidPoint<double, W2V_SIZE> Word2VecRec;
+const size_t ANNSize = 128;
+typedef de::EuclidPoint<uint64_t, ANNSize> ANNRec;
+
struct euclidean_distance {
double operator()(const Word2VecRec &first, const Word2VecRec &second) const {
double dist = 0;
@@ -44,11 +47,21 @@ struct euclidean_distance {
return std::sqrt(dist);
}
+
+ double operator()(const ANNRec &first, const ANNRec &second) const {
+ double dist = 0;
+ for (size_t i=0; i<ANNSize; i++) {
+ dist += ((double) first.data[i] - (double) second.data[i]) * ((double) first.data[i] - (double) second.data[i]);
+ }
+
+ return std::sqrt(dist);
+ }
};
#ifdef _GNU_SOURCE
#include "mtree.h"
typedef mt::mtree<Word2VecRec, euclidean_distance> MTree;
+typedef mt::mtree<ANNRec, euclidean_distance> MTree_alt;
#endif
typedef pgm::DynamicPGMIndex<uint64_t, uint64_t, pgm::PGMIndex<uint64_t, 64>> PGM;