Goal: prioritise (1) all-bound, then (2) max number of bound vars, then (3) left-most.
More...
#include <SipsMetric.h>
|
std::vector< double > | evaluateCosts (const std::vector< Atom * > atoms, const BindingStore &bindingStore) const override |
| Evaluates the cost of choosing each atom next in the current schedule. More...
|
|
Goal: prioritise (1) all-bound, then (2) max number of bound vars, then (3) left-most.
Definition at line 94 of file SipsMetric.h.
◆ MaxBoundSips()
souffle::ast::MaxBoundSips::MaxBoundSips |
( |
| ) |
|
|
default |
◆ evaluateCosts()
std::vector< double > souffle::ast::MaxBoundSips::evaluateCosts |
( |
const std::vector< Atom * > |
atoms, |
|
|
const BindingStore & |
bindingStore |
|
) |
| const |
|
overrideprotectedvirtual |
Evaluates the cost of choosing each atom next in the current schedule.
- Parameters
-
atoms | atoms to choose from; may be nullptr |
bindingStore | the variables already bound to a value |
Implements souffle::ast::SipsMetric.
Definition at line 151 of file SipsMetric.cpp.
160 }
else if (numBound == 0) {
165 cost.push_back(1 / numBound);
168 assert(atoms.size() == cost.size() &&
"each atom should have exactly one cost");
173 const std::vector<Atom*> atoms,
const BindingStore& bindingStore)
const {
175 std::vector<double> cost;
176 for (
const auto* atom : atoms) {
The documentation for this class was generated from the following files: