Commit 1171aae3 authored by Michal Pandy's avatar Michal Pandy
Browse files

Replace map find and inserts with just inserts

parent 711076a2
......@@ -22,13 +22,14 @@ void Convolution_InputSgToRulesAndOutputSg(SparseGrid<dimension> &inputGrid,
for (auto j : outRegion) {
auto inRegion = InputRegionCalculator<dimension>(j, size, stride);
Int rulesOffset = inRegion.offset(inIter.first);
auto outIter = outputGrid.mp.find(j);
if (outIter == outputGrid.mp.end()) {
outIter =
outputGrid.mp.insert(std::make_pair(j, outputGrid.ctr++)).first;
auto mapVal = outputGrid.mp.insert(std::make_pair(j, 0));
if (mapVal.second) {
mapVal.first->second = outputGrid.ctr++;
}
rules[rulesOffset].push_back(inIter.second + inputGrid.ctr);
rules[rulesOffset].push_back(outIter->second);
rules[rulesOffset].push_back(mapVal.first->second);
}
}
}
......
......@@ -21,13 +21,14 @@ void FullConvolution_InputSgToRulesAndOutputSg(
InputRegionCalculator<dimension>(inIter.first, size, stride);
for (auto j : outRegion) {
Int rulesOffset = outRegion.offset(j);
auto outIter = outputGrid.mp.find(j);
if (outIter == outputGrid.mp.end()) {
outIter =
outputGrid.mp.insert(std::make_pair(j, outputGrid.ctr++)).first;
auto mapVal = outputGrid.mp.insert(std::make_pair(j, 0));
if (mapVal.second) {
mapVal.first->second = outputGrid.ctr++;
}
rules[rulesOffset].push_back(inIter.second + inputGrid.ctr);
rules[rulesOffset].push_back(outIter->second);
rules[rulesOffset].push_back(mapVal.first->second);
}
}
}
......
......@@ -66,10 +66,8 @@ void inputLayerRules(SparseGrids<dimension> &SGs, RuleBook &rules, long *coords,
for (Int j = 0; j < dimension; j++)
p[j] = coords[j];
coords += dimension;
auto iter = sg.mp.find(p);
if (iter == sg.mp.end()) {
sg.mp[p] = nActive++;
outputRows.resize(nActive);
if (sg.mp.insert(make_pair(p, nActive)).second) {
outputRows.resize(++nActive);
}
outputRows[sg.mp[p]].push_back(i);
}
......@@ -83,11 +81,9 @@ void inputLayerRules(SparseGrids<dimension> &SGs, RuleBook &rules, long *coords,
if (idx + 1 >= (Int)SGs.size())
SGs.resize(idx + 1);
auto &sg = SGs[idx];
auto iter = sg.mp.find(p);
if (iter == sg.mp.end()) {
sg.mp[p] = nActive++;
outputRows.resize(nActive);
}
if (sg.mp.insert(make_pair(p, nActive)).second) {
outputRows.resize(++nActive);
}
outputRows[sg.mp[p]].push_back(i);
}
}
......@@ -186,9 +182,8 @@ void blRules(SparseGrids<dimension> &SGs, RuleBook &rules, long *coords,
for (Int j = 0; j < dimension; ++j)
p[j] = *c++;
if (p[0] >= 0) {
auto iter = sg.mp.find(p);
if (iter == sg.mp.end()) {
sg.mp[p] = nAct++;
if (sg.mp.insert(make_pair(p, nAct)).second) {
nAct++;
ors.push_back(i);
} else {
ors[sg.mp[p]] = i;
......@@ -201,9 +196,8 @@ void blRules(SparseGrids<dimension> &SGs, RuleBook &rules, long *coords,
for (Int j = 0; j < dimension; ++j)
p[j] = *c++;
if (p[0] >= 0) {
auto iter = sg.mp.find(p);
if (iter == sg.mp.end()) {
sg.mp[p] = nAct++;
if (sg.mp.insert(make_pair(p, nAct)).second) {
nAct++;
ors.push_back(i);
}
}
......@@ -254,9 +248,8 @@ void blRules(SparseGrids<dimension> &SGs, RuleBook &rules, long *coords,
for (Int j = 0; j < dimension; ++j)
p[j] = *c++;
if (p[0] >= 0) {
auto iter = sg.mp.find(p);
if (iter == sg.mp.end()) {
sg.mp[p] = nAct++;
if (sg.mp.insert(make_pair(p, nAct)).second) {
nAct++;
ors.resize(nAct);
}
ors[sg.mp[p]].push_back(i);
......
......@@ -32,14 +32,15 @@ void addPointToSparseGridMapAndFeatures(SparseGridMap<dimension> &mp,
long nPlanes,
/*float*/ at::Tensor features,
float *vec, bool overwrite) {
auto iter = mp.find(p);
if (iter == mp.end()) {
iter = mp.insert(std::make_pair(p, nActive++)).first;
auto mapVal = mp.insert(std::make_pair(p, nActive));
if (mapVal.second) {
nActive++;
features.resize_({(int)nActive, nPlanes});
std::memcpy(features.data<float>() + (nActive - 1) * nPlanes, vec,
sizeof(float) * nPlanes);
} else if (overwrite) {
std::memcpy(features.data<float>() + iter->second * nPlanes, vec,
std::memcpy(features.data<float>() + mapVal.first->second * nPlanes, vec,
sizeof(float) * nPlanes);
}
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment