Goal: Prioritise (1) all bound, then (2) atoms with at least one bound argument, 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) atoms with at least one bound argument, then (3) left-most.
Definition at line 84 of file SipsMetric.h.
◆ NaiveSips()
souffle::ast::NaiveSips::NaiveSips |
( |
| ) |
|
|
default |
◆ evaluateCosts()
std::vector< double > souffle::ast::NaiveSips::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 127 of file SipsMetric.cpp.
135 }
else if (numBound >= 1) {
141 assert(atoms.size() == cost.size() &&
"each atom should have exactly one cost");
146 const std::vector<Atom*> atoms,
const BindingStore& bindingStore)
const {
148 std::vector<double> cost;
149 for (
const auto* atom : atoms) {
The documentation for this class was generated from the following files: