53#ifndef DOXYGEN_SHOULD_SKIP_THIS
69 if (!on_off) _ICache_.clear();
70 _use_ICache_ = on_off;
75 if (!on_off) _NH_.clearCache();
76 _use_HCache_ = on_off;
77 _NH_.useCache(on_off);
82 if (!on_off) _KCache_.clear();
83 _use_KCache_ = on_off;
88 if (!on_off) _k_NML_.clearCache();
89 _use_CnrCache_ = on_off;
90 _k_NML_.useCache(on_off);
104 _k_NML_.clearCache();
123 _NH_.setNumberOfThreads(nb);
124 _k_NML_.setNumberOfThreads(nb);
125 _score_MDL_.setNumberOfThreads(nb);
130 return _NH_.getNumberOfThreads();
135 return _NH_.isGumNumberOfThreadsOverriden();
141 _NH_.setMinNbRowsPerThread(nb);
142 _k_NML_.setMinNbRowsPerThread(nb);
143 _score_MDL_.setMinNbRowsPerThread(nb);
148 return _NH_.minNbRowsPerThread();
152 INLINE
const std::vector< std::pair< std::size_t, std::size_t > >&
154 return _NH_.ranges();
177 return score(var1, var2, _empty_conditioning_set_);
183 const std::vector< NodeId >& conditioning_ids) {
184 return _NI_score_(var1, var2, conditioning_ids) - _K_score_(var1, var2, conditioning_ids);
189 return score(var1, var2, var3, _empty_conditioning_set_);
196 const std::vector< NodeId >& conditioning_ids) {
197 return _NI_score_(var1, var2, var3, conditioning_ids)
198 + _K_score_(var1, var2, var3, conditioning_ids);
202 INLINE
double CorrectedMutualInformation::_NI_score_(
NodeId var_x,
205 const std::vector< NodeId >& ui_ids) {
208 std::vector< NodeId > uiz_ids = ui_ids;
209 uiz_ids.push_back(var_z);
210 return _NI_score_(var_x, var_y, ui_ids) - _NI_score_(var_x, var_y, uiz_ids);
214 INLINE
double CorrectedMutualInformation::_K_score_(
NodeId var1,
217 const std::vector< NodeId >& ui_ids) {
219 std::vector< NodeId > uiz_ids = ui_ids;
220 uiz_ids.push_back(var3);
221 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