52#ifndef DOXYGEN_SHOULD_SKIP_THIS
61 const std::vector< std::pair< std::size_t, std::size_t > >& ranges,
62 const Bijection< NodeId, std::size_t >& nodeId2columns) :
64 GUM_CONSTRUCTOR(KNML);
68 INLINE KNML::KNML(
const DBRowGeneratorParser& parser,
70 const Bijection< NodeId, std::size_t >& nodeId2columns) :
71 CachedContingencyCounter(parser, prior, nodeId2columns) {
72 GUM_CONSTRUCTOR(KNML);
76 INLINE KNML::KNML(
const KNML& from) :
77 CachedContingencyCounter(from), _param_complexity_(from._param_complexity_) {
82 INLINE KNML::KNML(KNML&& from) :
83 CachedContingencyCounter(
std::move(from)),
84 _param_complexity_(
std::move(from._param_complexity_)) {
89 INLINE KNML* KNML::clone()
const {
return new KNML(*
this); }
92 INLINE KNML::~KNML() { GUM_DESTRUCTOR(KNML); }
94 INLINE
double KNML::score(
const NodeId var1,
const NodeId var2) {
95 IdCondSet idset(var1, var2, empty_ids_,
false,
true);
97 if (
auto p = cache_.tryGet(idset)) {
return *p; }
98 double s = _score_(idset);
99 cache_.insert(std::move(idset), s);
102 return _score_(std::move(idset));
107 KNML::score(
const NodeId var1,
const NodeId var2,
const std::vector< NodeId >& rhs_ids) {
108 IdCondSet idset(var1, var2, rhs_ids,
false,
false);
110 if (
auto p = cache_.tryGet(idset)) {
return *p; }
111 double s = _score_(idset);
112 cache_.insert(std::move(idset), s);
115 return _score_(idset);
Common counting infrastructure shared by IndependenceTest and KNML.
the class used to read a row in the database and to transform it into a set of DBRow instances that c...
KNML(const DBRowGeneratorParser &parser, const Prior &prior, const std::vector< std::pair< std::size_t, std::size_t > > &ranges, const Bijection< NodeId, std::size_t > &nodeId2columns=Bijection< NodeId, std::size_t >())
default constructor
the base class for all a priori
The class for the NML penalty used in MIIC.
include the inlined functions if necessary
gum is the global namespace for all aGrUM entities