25 : mIndexMap(clusterer.mPindexMap), mLabels(clusterer.mPinputLabels), mOutput(clusterer.mPlabelsByRow)
40 if (
index == uint32_t(-1)) {
47 int32_t
h =
label.getRawValue() % mMaybeHasLabel.size();
49 if (mMaybeHasLabel[
h]) {
50 auto lookup = std::find(mClusterLabels.begin(), mClusterLabels.end(),
label);
51 if (
lookup != mClusterLabels.end()) {
56 mMaybeHasLabel[
h] =
true;
57 mClusterLabels.emplace_back(
label);
69 for (uint16_t t = tailStart; t < tailEnd; t++) {
70 const auto pos = basePos.delta({0, (int16_t)t});
79 if (indexInRow >= maxElemsPerBucket || !
engaged()) {
83 auto& out = mOutput[
row];
84 while (out.lock.test_and_set(std::memory_order_acquire)) {
87 if (out.data.size() <= indexInRow) {
88 out.
data.resize(indexInRow + 100);
90 out.data[indexInRow].labels = std::move(mClusterLabels);
91 out.lock.clear(std::memory_order_release);
std::vector< std::string > labels
uint8_t lookup(const char input) noexcept
Definition of a container to keep Monte Carlo truth external to simulation objects.
Class for time synchronization of RawReader instances.
void collect(const CfChargePos &pos, float q)
MCLabelAccumulator(GPUTPCClusterFinder &)
void collectTail(tpccf::Row row, tpccf::Pad pad, uint16_t tailStart, uint16_t tailEnd)
void commit(tpccf::Row row, uint32_t indexInRow, uint32_t maxElemsPerBucket)
GLuint GLsizei const GLchar * label
std::vector< GPUTPCClusterMCInterim > data