fix for multiply defined symbol error in LPInitSolver

release/4.3a0
Varun Agrawal 2023-06-20 17:28:01 -04:00
parent b0404aa109
commit 254e3128e6
1 changed files with 17 additions and 3 deletions

View File

@ -81,9 +81,23 @@ public:
if (!cachedConstrainedKeyDimMap_.empty()) if (!cachedConstrainedKeyDimMap_.empty())
return cachedConstrainedKeyDimMap_; return cachedConstrainedKeyDimMap_;
// Collect key-dim map of all variables in the constraints // Collect key-dim map of all variables in the constraints
cachedConstrainedKeyDimMap_ = collectKeyDim(equalities); //TODO(Varun) seems like the templated function is causing the multiple symbols error on Windows
KeyDimMap keysDim2 = collectKeyDim(inequalities); // cachedConstrainedKeyDimMap_ = collectKeyDim(equalities);
cachedConstrainedKeyDimMap_.insert(keysDim2.begin(), keysDim2.end()); // KeyDimMap keysDim2 = collectKeyDim(inequalities);
// cachedConstrainedKeyDimMap_.insert(keysDim2.begin(), keysDim2.end());
cachedConstrainedKeyDimMap_.clear();
for (auto&& factor : equalities) {
if (!factor) continue;
for (Key key : factor->keys()) {
cachedConstrainedKeyDimMap_[key] = factor->getDim(factor->find(key));
}
}
for (auto&& factor : inequalities) {
if (!factor) continue;
for (Key key : factor->keys()) {
cachedConstrainedKeyDimMap_[key] = factor->getDim(factor->find(key));
}
}
return cachedConstrainedKeyDimMap_; return cachedConstrainedKeyDimMap_;
} }