14 #include <unordered_map>
16 #include <boost/functional/hash.hpp>
36 template <
int spatialTrkGr
idSize = 15,
int temporalTrkGr
idSize = 1>
39 static_assert(spatialTrkGridSize % 2);
40 static_assert(temporalTrkGridSize % 2);
44 using Bin = std::pair<int, int>;
46 using DensityMap = std::unordered_map<Bin, float, boost::hash<Bin>>;
57 if constexpr (temporalTrkGridSize > 1) {
58 throw std::invalid_argument(
59 "temporalBinExtent must be provided if temporalTrkGridSize > 1 "
60 "(i.e., if time vertex seeding is enabled).");
67 Config(
float spatialBinExtent_,
float temporalBinExtent_)
70 if constexpr (temporalTrkGridSize == 1) {
71 throw std::invalid_argument(
72 "temporalBinExtent must not be provided if temporalTrkGridSize == "
73 "1 (i.e., if time vertex seeding is disabled).");
169 const Bin& centralBin,
195 template <
unsigned int nDim>