48#ifndef DOXYGEN_SHOULD_SKIP_THIS
57 const std::vector< std::pair< std::size_t, std::size_t > >& ranges,
58 const Bijection< NodeId, std::size_t >& nodeId2columns) :
59 prior_(prior.clone()), counter_(parser, ranges, nodeId2columns) {
60 GUM_CONSTRUCTOR(Score);
64 INLINE Score::Score(
const DBRowGeneratorParser& parser,
66 const Bijection< NodeId, std::size_t >& nodeId2columns) :
67 prior_(prior.clone()), counter_(parser, nodeId2columns) {
68 GUM_CONSTRUCTOR(Score);
72 INLINE Score::Score(
const Score& from) :
73 prior_(from.prior_->clone()), counter_(from.counter_), cache_(from.cache_),
74 use_cache_(from.use_cache_) {
79 INLINE Score::Score(Score&& from) :
80 prior_(from.prior_), counter_(
std::move(from.counter_)), cache_(
std::move(from.cache_)),
81 use_cache_(from.use_cache_) {
82 from.prior_ =
nullptr;
87 INLINE Score::~Score() {
88 if (prior_ !=
nullptr)
delete prior_;
89 GUM_DESTRUCTOR(Score);
93 INLINE
void Score::setNumberOfThreads(Size nb) { counter_.setNumberOfThreads(nb); }
96 INLINE Size Score::getNumberOfThreads()
const {
return counter_.getNumberOfThreads(); }
99 INLINE
bool Score::isGumNumberOfThreadsOverriden()
const {
100 return counter_.isGumNumberOfThreadsOverriden();
105 INLINE
void Score::setMinNbRowsPerThread(
const std::size_t nb)
const {
106 counter_.setMinNbRowsPerThread(nb);
110 INLINE std::size_t Score::minNbRowsPerThread()
const {
return counter_.minNbRowsPerThread(); }
113 INLINE
const std::vector< std::pair< std::size_t, std::size_t > >& Score::ranges()
const {
114 return counter_.ranges();
118 INLINE
double Score::score(
const NodeId var) {
119 IdCondSet idset(var, empty_ids_,
true);
122 return cache_.score(idset);
124 double the_score = score_(idset);
125 cache_.insert(std::move(idset), the_score);
128 return score_(std::move(idset));
136 INLINE
double Score::score(
const NodeId var,
const std::vector< NodeId >& rhs_ids) {
137 IdCondSet idset(var, rhs_ids,
false);
140 return cache_.score(idset);
142 double the_score = score_(idset);
143 cache_.insert(std::move(idset), the_score);
146 return score_(idset);
151 INLINE
void Score::clear() {
157 INLINE
void Score::clearCache() { cache_.clear(); }
160 INLINE
void Score::useCache(
const bool on_off) { use_cache_ = on_off; }
163 INLINE
bool Score::isUsingCache()
const {
return use_cache_; }
166 INLINE
const Bijection< NodeId, std::size_t >& Score::nodeId2Columns()
const {
167 return counter_.nodeId2Columns();
171 INLINE
const DatabaseTable& Score::database()
const {
return counter_.database(); }
Exception : the element we looked for cannot be found.
the class used to read a row in the database and to transform it into a set of DBRow instances that c...
the base class for all a priori
Score(const DBRowGeneratorParser &parser, const Prior &external_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
include the inlined functions if necessary
gum is the global namespace for all aGrUM entities