From cb80f27ee8a7af8eada3b9dfb214cee46b99c390 Mon Sep 17 00:00:00 2001 From: Fan Jiang Date: Sat, 7 Sep 2019 17:30:18 -0400 Subject: [PATCH] Restoring the correct behavior of UniqueSampler --- gtsam/linear/SubgraphBuilder.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gtsam/linear/SubgraphBuilder.cpp b/gtsam/linear/SubgraphBuilder.cpp index 34c4c0440..a999b3a71 100644 --- a/gtsam/linear/SubgraphBuilder.cpp +++ b/gtsam/linear/SubgraphBuilder.cpp @@ -107,7 +107,7 @@ static vector UniqueSampler(const vector &weight, const size_t m = weight.size(); if (n > m) throw std::invalid_argument("UniqueSampler: invalid input size"); - vector samples; + vector results; size_t count = 0; vector touched(m, false); @@ -127,16 +127,15 @@ static vector UniqueSampler(const vector &weight, /* sampling and cache results */ vector samples = iidSampler(localWeights, n - count); - const auto samplesSize = samples.size(); - for (size_t index = 0; index < samplesSize; index++) { + for (const size_t &index : samples) { if (touched[index] == false) { touched[index] = true; - samples.push_back(index); + results.push_back(index); if (++count >= n) break; } } } - return samples; + return results; } /****************************************************************************/