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