summaryrefslogtreecommitdiffstats
path: root/benchmarks/include/benchmark_types.h
diff options
context:
space:
mode:
authorDouglas Rumbaugh <dbr4@psu.edu>2024-05-09 14:10:29 -0400
committerDouglas Rumbaugh <dbr4@psu.edu>2024-05-09 14:10:29 -0400
commit265610435e1164a9acc39ca02ea1139acd37c46c (patch)
tree1308cb37c141a0961837c18793214d004e592158 /benchmarks/include/benchmark_types.h
parenta23bc3341923509be9b2f587ece8cd5a650f6386 (diff)
downloaddynamic-extension-265610435e1164a9acc39ca02ea1139acd37c46c.tar.gz
Added benchmarks for BigANN
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;