replaced all find&insert to emplace

release/4.3a0
Fan Jiang 2020-06-02 21:33:58 -04:00
parent 0675b82c1f
commit 151809c89c
3 changed files with 14 additions and 31 deletions

View File

@ -313,11 +313,9 @@ VectorValues HessianFactor::hessianDiagonal() const {
/* ************************************************************************* */
void HessianFactor::hessianDiagonalAdd(VectorValues &d) const {
for (DenseIndex j = 0; j < (DenseIndex)size(); ++j) {
auto item = d.find(keys_[j]);
if(item != d.end()) {
item->second += info_.diagonal(j);
} else {
d.emplace(keys_[j], info_.diagonal(j));
auto result = d.emplace(keys_[j], info_.diagonal(j));
if(!result.second) {
result.first->second += info_.diagonal(j);
}
}
}

View File

@ -552,29 +552,16 @@ VectorValues JacobianFactor::hessianDiagonal() const {
void JacobianFactor::hessianDiagonalAdd(VectorValues& d) const {
for (size_t pos = 0; pos < size(); ++pos) {
Key j = keys_[pos];
auto item = d.find(j);
if(item != d.end()) {
size_t nj = Ab_(pos).cols();
Vector& dj = item->second;
auto result = d.emplace(j, nj);
Vector& dj = result.first->second;
for (size_t k = 0; k < nj; ++k) {
Vector column_k = Ab_(pos).col(k);
if (model_)
model_->whitenInPlace(column_k);
dj(k) += dot(column_k, column_k);
}
} else {
size_t nj = Ab_(pos).cols();
Vector dj(nj);
for (size_t k = 0; k < nj; ++k) {
Vector column_k = Ab_(pos).col(k);
if (model_)
model_->whitenInPlace(column_k);
dj(k) = dot(column_k, column_k);
}
d.emplace(j, dj);
}
}
}

View File

@ -172,11 +172,9 @@ public:
dj(k) -= FtE.row(k) * PointCovariance_ * FtE.row(k).transpose();
}
auto item = d.find(j);
if(item != d.end()) {
item->second += dj;
} else {
d.emplace(j, dj);
auto result = d.emplace(j, dj);
if(!result.second) {
result.first->second += dj;
}
}
}