max and min functions for AlgebraicDecisionTree
parent
e549a9b41f
commit
b2638c8698
|
|
@ -199,7 +199,7 @@ namespace gtsam {
|
|||
/// Compute sum of all values
|
||||
double sum() const {
|
||||
double sum = 0;
|
||||
auto visitor = [&](int y) { sum += y; };
|
||||
auto visitor = [&](double y) { sum += y; };
|
||||
this->visit(visitor);
|
||||
return sum;
|
||||
}
|
||||
|
|
@ -215,6 +215,22 @@ namespace gtsam {
|
|||
return this->apply([&sum](const double& x) { return x / sum; });
|
||||
}
|
||||
|
||||
/// Find the minimum values amongst all leaves
|
||||
double min() const {
|
||||
double min = std::numeric_limits<double>::max();
|
||||
auto visitor = [&](double x) { min = x < min ? x : min; };
|
||||
this->visit(visitor);
|
||||
return min;
|
||||
}
|
||||
|
||||
/// Find the maximum values amongst all leaves
|
||||
double max() const {
|
||||
double max = std::numeric_limits<double>::min();
|
||||
auto visitor = [&](double x) { max = x > max ? x : max; };
|
||||
this->visit(visitor);
|
||||
return max;
|
||||
}
|
||||
|
||||
/** sum out variable */
|
||||
AlgebraicDecisionTree sum(const L& label, size_t cardinality) const {
|
||||
return this->combine(label, cardinality, &Ring::add);
|
||||
|
|
|
|||
Loading…
Reference in New Issue