summaryrefslogtreecommitdiffstats
path: root/benchmarks/include
diff options
context:
space:
mode:
authorDouglas Rumbaugh <dbr4@psu.edu>2023-07-27 18:22:22 -0400
committerDouglas Rumbaugh <dbr4@psu.edu>2023-07-27 18:22:22 -0400
commit957bd0b2ed7d41ecba6c558a3f2749803f5a2c02 (patch)
tree892bcb4065bf4d5daf7e3e79018d607fc6a51cfa /benchmarks/include
parentd6e08e9d8d3ac9b356ac50cee22b41f828160247 (diff)
downloaddynamic-extension-957bd0b2ed7d41ecba6c558a3f2749803f5a2c02.tar.gz
PGM-based Point Lookup benchmarks
Diffstat (limited to 'benchmarks/include')
-rw-r--r--benchmarks/include/bench_utility.h1
-rw-r--r--benchmarks/include/standalone_utility.h20
2 files changed, 21 insertions, 0 deletions
diff --git a/benchmarks/include/bench_utility.h b/benchmarks/include/bench_utility.h
index 2ab1532..e33b93d 100644
--- a/benchmarks/include/bench_utility.h
+++ b/benchmarks/include/bench_utility.h
@@ -46,6 +46,7 @@ typedef de::EuclidPoint<double, W2V_SIZE> Word2VecRec;
typedef de::DynamicExtension<WRec, de::WSS<WRec>, de::WSSQuery<WRec>> ExtendedWSS;
typedef de::DynamicExtension<Rec, de::TrieSpline<Rec>, de::TrieSplineRangeQuery<Rec>> ExtendedTSRQ;
typedef de::DynamicExtension<Rec, de::PGM<Rec>, de::PGMRangeQuery<Rec>> ExtendedPGMRQ;
+typedef de::DynamicExtension<Rec, de::PGM<Rec>, de::PGMPointLookup<Rec>> ExtendedPGM_PL;
typedef de::DynamicExtension<Rec, de::MemISAM<Rec>, de::IRSQuery<Rec>> ExtendedISAM_IRS;
typedef de::DynamicExtension<Rec, de::MemISAM<Rec>, de::ISAMRangeQuery<Rec>> ExtendedISAM_RQ;
typedef de::DynamicExtension<Word2VecRec, de::VPTree<Word2VecRec>, de::KNNQuery<Word2VecRec>> ExtendedVPTree_KNN;
diff --git a/benchmarks/include/standalone_utility.h b/benchmarks/include/standalone_utility.h
index 272a332..9876e84 100644
--- a/benchmarks/include/standalone_utility.h
+++ b/benchmarks/include/standalone_utility.h
@@ -84,6 +84,26 @@ static void delete_bench_env()
gsl_rng_free(g_rng);
}
+
+template <typename QP>
+static std::vector<QP> read_lookup_queries(std::string fname, double selectivity) {
+ std::vector<QP> queries;
+
+ FILE *qf = fopen(fname.c_str(), "r");
+ size_t start, stop;
+ double sel;
+ while (fscanf(qf, "%zu%zu%lf\n", &start, &stop, &sel) != EOF) {
+ if (start < stop && std::abs(sel - selectivity) < 0.1) {
+ QP q;
+ q.target_key = start;
+ queries.push_back(q);
+ }
+ }
+ fclose(qf);
+
+ return queries;
+}
+
template <typename QP>
static std::vector<QP> read_range_queries(std::string fname, double selectivity) {
std::vector<QP> queries;