use TableDistribution::argmax in discreteMaxProduct
parent
5a8a9425f9
commit
2410d4f442
|
|
@ -47,16 +47,7 @@ DiscreteValues HybridBayesTree::discreteMaxProduct(
|
||||||
const DiscreteFactorGraph& dfg) const {
|
const DiscreteFactorGraph& dfg) const {
|
||||||
TableFactor product = TableProduct(dfg);
|
TableFactor product = TableProduct(dfg);
|
||||||
|
|
||||||
uint64_t maxIdx = 0;
|
uint64_t maxIdx = TableDistribution(product).argmax();
|
||||||
double maxValue = 0.0;
|
|
||||||
Eigen::SparseVector<double> sparseTable = product.sparseTable();
|
|
||||||
for (TableFactor::SparseIt it(sparseTable); it; ++it) {
|
|
||||||
if (it.value() > maxValue) {
|
|
||||||
maxIdx = it.index();
|
|
||||||
maxValue = it.value();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
DiscreteValues assignment = product.findAssignments(maxIdx);
|
DiscreteValues assignment = product.findAssignments(maxIdx);
|
||||||
return assignment;
|
return assignment;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue