use faster key storage
parent
6c516cc404
commit
f42ed21137
|
@ -87,7 +87,7 @@ static Eigen::SparseVector<double> ComputeSparseTable(
|
||||||
});
|
});
|
||||||
sparseTable.reserve(nrValues);
|
sparseTable.reserve(nrValues);
|
||||||
|
|
||||||
std::set<Key> allKeys(dt.keys().begin(), dt.keys().end());
|
KeySet allKeys(dt.keys().begin(), dt.keys().end());
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Functor which is called by the DecisionTree for each leaf.
|
* @brief Functor which is called by the DecisionTree for each leaf.
|
||||||
|
@ -102,13 +102,13 @@ static Eigen::SparseVector<double> ComputeSparseTable(
|
||||||
auto op = [&](const Assignment<Key>& assignment, double p) {
|
auto op = [&](const Assignment<Key>& assignment, double p) {
|
||||||
if (p > 0) {
|
if (p > 0) {
|
||||||
// Get all the keys involved in this assignment
|
// Get all the keys involved in this assignment
|
||||||
std::set<Key> assignmentKeys;
|
KeySet assignmentKeys;
|
||||||
for (auto&& [k, _] : assignment) {
|
for (auto&& [k, _] : assignment) {
|
||||||
assignmentKeys.insert(k);
|
assignmentKeys.insert(k);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Find the keys missing in the assignment
|
// Find the keys missing in the assignment
|
||||||
std::vector<Key> diff;
|
KeyVector diff;
|
||||||
std::set_difference(allKeys.begin(), allKeys.end(),
|
std::set_difference(allKeys.begin(), allKeys.end(),
|
||||||
assignmentKeys.begin(), assignmentKeys.end(),
|
assignmentKeys.begin(), assignmentKeys.end(),
|
||||||
std::back_inserter(diff));
|
std::back_inserter(diff));
|
||||||
|
|
Loading…
Reference in New Issue