51#ifndef DOXYGEN_SHOULD_SKIP_THIS
67 if (!on_off) _ICache_.clear();
68 _use_ICache_ = on_off;
73 if (!on_off) _NH_.clearCache();
74 _use_HCache_ = on_off;
75 _NH_.useCache(on_off);
80 if (!on_off) _KCache_.clear();
81 _use_KCache_ = on_off;
86 if (!on_off) _k_NML_.clearCache();
87 _use_CnrCache_ = on_off;
88 _k_NML_.useCache(on_off);
102 _k_NML_.clearCache();
121 _NH_.setNumberOfThreads(nb);
122 _k_NML_.setNumberOfThreads(nb);
123 _score_MDL_.setNumberOfThreads(nb);
128 return _NH_.getNumberOfThreads();
133 return _NH_.isGumNumberOfThreadsOverriden();
139 _NH_.setMinNbRowsPerThread(nb);
140 _k_NML_.setMinNbRowsPerThread(nb);
141 _score_MDL_.setMinNbRowsPerThread(nb);
146 return _NH_.minNbRowsPerThread();
150 INLINE
const std::vector< std::pair< std::size_t, std::size_t > >&
152 return _NH_.ranges();
175 return score(var1, var2, _empty_conditioning_set_);
181 const std::vector< NodeId >& conditioning_ids) {
182 return _NI_score_(var1, var2, conditioning_ids) - _K_score_(var1, var2, conditioning_ids);
187 return score(var1, var2, var3, _empty_conditioning_set_);
194 const std::vector< NodeId >& conditioning_ids) {
195 return _NI_score_(var1, var2, var3, conditioning_ids)
196 + _K_score_(var1, var2, var3, conditioning_ids);
200 INLINE
double CorrectedMutualInformation::_NI_score_(
NodeId var_x,
203 const std::vector< NodeId >& ui_ids) {
206 std::vector< NodeId > uiz_ids = ui_ids;
207 uiz_ids.push_back(var_z);
208 return _NI_score_(var_x, var_y, ui_ids) - _NI_score_(var_x, var_y, uiz_ids);
212 INLINE
double CorrectedMutualInformation::_K_score_(
NodeId var1,
215 const std::vector< NodeId >& ui_ids) {
217 std::vector< NodeId > uiz_ids = ui_ids;
218 uiz_ids.push_back(var3);
219 return _K_score_(var1, var2, uiz_ids) - _K_score_(var1, var2, ui_ids);
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Size NodeId
Type for node ids.
include the inlined functions if necessary
gum is the global namespace for all aGrUM entities