9#include <unordered_map>
60 [[nodiscard]]
bool contains(
const Atom& fact)
const {
return facts_.find(fact) != facts_.end(); }
66 auto it = facts_.find(fact);
67 return it == facts_.end() ? default_weight : it->second;
70 [[nodiscard]] std::size_t
size()
const {
return facts_.size(); }
71 [[nodiscard]]
bool empty()
const {
return facts_.empty(); }
87extern template class WeightedFactDatabase<bool>;
88extern template class WeightedFactDatabase<double>;
89extern template class WeightedFactDatabase<float>;
90extern template class WeightedFactDatabase<DualNumber<double>>;
An atom is a predicate name applied to a tuple of Terms, e.g. edge(a, b) or ancestor(X,...
Definition datalog_atom.hpp:24
A weighted fact database: a map from ground atom to a semiring value type T (bool for the trivial/boo...
Definition datalog_weighted_fact_database.hpp:49
const WeightedFactSet< T > & facts() const
Definition datalog_weighted_fact_database.hpp:72
bool operator!=(const WeightedFactDatabase &other) const
Definition datalog_weighted_fact_database.hpp:75
bool contains(const Atom &fact) const
Definition datalog_weighted_fact_database.hpp:60
WeightedFactDatabase(WeightedFactSet< T > facts)
bool operator==(const WeightedFactDatabase &other) const
Definition datalog_weighted_fact_database.hpp:74
WeightedFactDatabase()=default
T weight_of(const Atom &fact, T default_weight) const
The fact's current weight, or default_weight (conventionally Semiring::zero()) if the fact is not pre...
Definition datalog_weighted_fact_database.hpp:65
bool empty() const
Definition datalog_weighted_fact_database.hpp:71
void set(Atom fact, T weight)
Sets (overwrites) a fact's weight.
std::size_t size() const
Definition datalog_weighted_fact_database.hpp:70
A Datalog atom: a predicate name plus a tuple of terms, no function symbols. Phase 3 Mission 0 of cam...
Forward-mode-automatic-differentiation semiring (DualNumber<T>/DualSemiring<T>) – a second,...
Definition datalog_atom.hpp:14
std::unordered_map< Atom, T, AtomHash > WeightedFactSet
The concrete map type a WeightedFactDatabase<T> stores facts in.
Definition datalog_weighted_fact_database.hpp:18