50#ifndef DOXYGEN_SHOULD_SKIP_THIS
56 const Bijection< NodeId, std::size_t >& nodeId2columns) :
57 Prior(database, nodeId2columns) {
58 GUM_CONSTRUCTOR(BDeuPrior)
62 INLINE BDeuPrior::BDeuPrior(
const BDeuPrior& from) : Prior(from) { GUM_CONS_CPY(BDeuPrior) }
65 INLINE BDeuPrior::BDeuPrior(BDeuPrior&& from) noexcept : Prior(std::move(from)) {
66 GUM_CONS_MOV(BDeuPrior)
70 INLINE BDeuPrior* BDeuPrior::clone()
const {
return new BDeuPrior(*
this); }
73 INLINE BDeuPrior::~BDeuPrior() { GUM_DESTRUCTOR(BDeuPrior) }
76 INLINE BDeuPrior& BDeuPrior::operator=(
const BDeuPrior& from) =
default;
79 INLINE BDeuPrior& BDeuPrior::operator=(BDeuPrior&& from)
noexcept {
80 Prior::operator=(std::move(from));
85 INLINE
void BDeuPrior::setWeight(
const double weight) {
89 this->weight_ = weight;
93 INLINE
void BDeuPrior::setEffectiveSampleSize(
const double weight) { setWeight(weight); }
96 INLINE
PriorType BDeuPrior::getType()
const {
return PriorType::BDeuPriorType; }
99 INLINE
bool BDeuPrior::isInformative()
const {
return this->weight_ != 0.0; }
102 INLINE
void BDeuPrior::addJointPseudoCount(
const IdCondSet& idset,
103 std::vector< double >& counts) {
105 if (idset.empty() || (this->weight_ == 0.0))
return;
108 const double weight = this->weight_ /
double(counts.size());
109 for (
auto& count: counts)
the internal prior for the BDeu score (N' / (r_i * q_i)
Exception : out of bound.
BDeuPrior(const DatabaseTable &database, const Bijection< NodeId, std::size_t > &nodeId2columns=Bijection< NodeId, std::size_t >())
default constructor
The class representing a tabular database as used by learning tasks.
the base class for all a priori
#define GUM_ERROR(type, msg)
include the inlined functions if necessary