49#ifndef DOXYGEN_SHOULD_SKIP_THIS
55 const Bijection< NodeId, std::size_t >& nodeId2columns) :
56 Prior(database, nodeId2columns) {
57 GUM_CONSTRUCTOR(BDeuPrior)
61 INLINE BDeuPrior::BDeuPrior(
const BDeuPrior& from) : Prior(from) { GUM_CONS_CPY(BDeuPrior) }
64 INLINE BDeuPrior::BDeuPrior(BDeuPrior&& from) noexcept : Prior(std::move(from)) {
65 GUM_CONS_MOV(BDeuPrior)
69 INLINE BDeuPrior* BDeuPrior::clone()
const {
return new BDeuPrior(*
this); }
72 INLINE BDeuPrior::~BDeuPrior() { GUM_DESTRUCTOR(BDeuPrior) }
75 INLINE BDeuPrior& BDeuPrior::operator=(
const BDeuPrior& from) {
76 Prior::operator=(from);
81 INLINE BDeuPrior& BDeuPrior::operator=(BDeuPrior&& from)
noexcept {
82 Prior::operator=(std::move(from));
87 INLINE
void BDeuPrior::setWeight(
const double weight) {
91 this->weight_ = weight;
95 INLINE
void BDeuPrior::setEffectiveSampleSize(
const double weight) { setWeight(weight); }
98 INLINE
PriorType BDeuPrior::getType()
const {
return PriorType::BDeuPriorType; }
101 INLINE
bool BDeuPrior::isInformative()
const {
return this->weight_ != 0.0; }
104 INLINE
void BDeuPrior::addJointPseudoCount(
const IdCondSet& idset,
105 std::vector< double >& counts) {
107 if (idset.empty() || (this->weight_ == 0.0))
return;
110 const double weight = this->weight_ /
double(counts.size());
111 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