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);
101 ParamEstimator::~ParamEstimator() {
102 if (external_prior_ !=
nullptr)
delete external_prior_;
103 if (score_internal_prior_ !=
nullptr)
delete score_internal_prior_;
105 GUM_DESTRUCTOR(ParamEstimator);
109 ParamEstimator& ParamEstimator::operator=(
const ParamEstimator& from) {
111 if (external_prior_ !=
nullptr) {
112 delete external_prior_;
113 external_prior_ =
nullptr;
115 external_prior_ = from.external_prior_->clone();
117 if (score_internal_prior_ !=
nullptr) {
118 delete score_internal_prior_;
119 external_prior_ =
nullptr;
121 score_internal_prior_ = from.score_internal_prior_->clone();
123 counter_ = from.counter_;
129 ParamEstimator& ParamEstimator::operator=(ParamEstimator&& from) {
131 external_prior_ = from.external_prior_;
132 score_internal_prior_ = from.score_internal_prior_;
133 counter_ = std::move(from.counter_);
134 from.external_prior_ =
nullptr;
135 from.score_internal_prior_ =
nullptr;
147 void ParamEstimator::setRanges(
148 const std::vector< std::pair< std::size_t, std::size_t > >& new_ranges) {
149 std::vector< std::pair< std::size_t, std::size_t > > old_ranges = ranges();
150 counter_.setRanges(new_ranges);
151 if (old_ranges != ranges()) clear();
155 void ParamEstimator::clearRanges() {
156 std::vector< std::pair< std::size_t, std::size_t > > old_ranges = ranges();
157 counter_.clearRanges();
158 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