51#ifndef DOXYGEN_SHOULD_SKIP_THIS
65 const Prior& external_prior,
66 const Prior& score_internal_prior,
67 const std::vector< std::pair< std::size_t, std::size_t > >& ranges,
68 const Bijection< NodeId, std::size_t >& nodeId2columns) :
69 counter_(parser, ranges, nodeId2columns) {
71 external_prior_ = external_prior.clone();
73 score_internal_prior_ = score_internal_prior.clone();
75 delete external_prior_;
79 GUM_CONSTRUCTOR(ParamEstimator);
83 ParamEstimator::ParamEstimator(
const DBRowGeneratorParser& parser,
84 const Prior& external_prior,
85 const Prior& score_internal_prior,
86 const Bijection< NodeId, std::size_t >& nodeId2columns) :
87 counter_(parser, nodeId2columns) {
89 external_prior_ = external_prior.clone();
91 score_internal_prior_ = score_internal_prior.clone();
93 delete external_prior_;
97 GUM_CONSTRUCTOR(ParamEstimator);
104 ParamEstimator::ParamEstimator(
const ParamEstimator& from) :
105 external_prior_(from.external_prior_->clone()),
106 score_internal_prior_(from.score_internal_prior_->clone()), counter_(from.counter_) {
107 GUM_CONS_CPY(ParamEstimator);
111 ParamEstimator::ParamEstimator(ParamEstimator&& from) noexcept :
112 external_prior_(from.external_prior_), score_internal_prior_(from.score_internal_prior_),
113 counter_(std::move(from.counter_)) {
114 from.external_prior_ =
nullptr;
115 from.score_internal_prior_ =
nullptr;
116 GUM_CONS_MOV(ParamEstimator);
120 ParamEstimator::~ParamEstimator() {
121 if (external_prior_ !=
nullptr)
delete external_prior_;
122 if (score_internal_prior_ !=
nullptr)
delete score_internal_prior_;
124 GUM_DESTRUCTOR(ParamEstimator);
128 ParamEstimator& ParamEstimator::operator=(
const ParamEstimator& from) {
130 if (external_prior_ !=
nullptr) {
131 delete external_prior_;
132 external_prior_ =
nullptr;
134 external_prior_ = from.external_prior_->clone();
136 if (score_internal_prior_ !=
nullptr) {
137 delete score_internal_prior_;
138 external_prior_ =
nullptr;
140 score_internal_prior_ = from.score_internal_prior_->clone();
142 counter_ = from.counter_;
148 ParamEstimator& ParamEstimator::operator=(ParamEstimator&& from) {
150 external_prior_ = from.external_prior_;
151 score_internal_prior_ = from.score_internal_prior_;
152 counter_ = std::move(from.counter_);
153 from.external_prior_ =
nullptr;
154 from.score_internal_prior_ =
nullptr;
166 void ParamEstimator::setRanges(
167 const std::vector< std::pair< std::size_t, std::size_t > >& new_ranges) {
168 std::vector< std::pair< std::size_t, std::size_t > > old_ranges = ranges();
169 counter_.setRanges(new_ranges);
170 if (old_ranges != ranges()) clear();
174 void ParamEstimator::clearRanges() {
175 std::vector< std::pair< std::size_t, std::size_t > > old_ranges = ranges();
176 counter_.clearRanges();
177 if (old_ranges != ranges()) clear();
the class used to read a row in the database and to transform it into a set of DBRow instances that c...
ParamEstimator(const DBRowGeneratorParser &parser, const Prior &external_prior, const Prior &_score_internal_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
include the inlined functions if necessary
gum is the global namespace for all aGrUM entities
the base class for estimating parameters of CPTs
the base class for estimating parameters of CPTs