aGrUM  0.16.0
gum::SimpleCPTGenerator< GUM_SCALAR > Class Template Reference

<agrum/BN/generator/simpleCPTGenerator.h> More...

#include <simpleCPTGenerator.h>

Inherits gum::ICPTGenerator< GUM_SCALAR >.

Public Member Functions

Constructors / Destructor
 SimpleCPTGenerator ()
 Default constructor. More...
 
 ~SimpleCPTGenerator () override
 Destructor. More...
 
CPT generation methods
void generateCPT (const Idx &varId, const Potential< GUM_SCALAR > &cpt) override
 Generates a CPT using floats. More...
 

Detailed Description

template<typename GUM_SCALAR>
class gum::SimpleCPTGenerator< GUM_SCALAR >

<agrum/BN/generator/simpleCPTGenerator.h>

Class for generating Conditional Probability Tables.

This class implements a CPTGenerator CPT generation algorithm.

Definition at line 46 of file simpleCPTGenerator.h.

Constructor & Destructor Documentation

◆ SimpleCPTGenerator()

template<typename GUM_SCALAR >
INLINE gum::SimpleCPTGenerator< GUM_SCALAR >::SimpleCPTGenerator ( )

Default constructor.

Definition at line 37 of file simpleCPTGenerator_tpl.h.

37  :
38  ICPTGenerator< GUM_SCALAR >() {
39  GUM_CONSTRUCTOR(SimpleCPTGenerator);
40  }
SimpleCPTGenerator()
Default constructor.

◆ ~SimpleCPTGenerator()

template<typename GUM_SCALAR >
INLINE gum::SimpleCPTGenerator< GUM_SCALAR >::~SimpleCPTGenerator ( )
override

Destructor.

Definition at line 44 of file simpleCPTGenerator_tpl.h.

44  {
45  GUM_DESTRUCTOR(SimpleCPTGenerator);
46  }
SimpleCPTGenerator()
Default constructor.

Member Function Documentation

◆ generateCPT()

template<typename GUM_SCALAR >
void gum::SimpleCPTGenerator< GUM_SCALAR >::generateCPT ( const Idx varId,
const Potential< GUM_SCALAR > &  cpt 
)
override

Generates a CPT using floats.

Parameters
varIdThe variable id of the CPT owner.
cptA reference on the CPT to fill.

Definition at line 53 of file simpleCPTGenerator_tpl.h.

References gum::Instantiation::end(), gum::Instantiation::incNotVar(), gum::Instantiation::incVar(), gum::Potential< GUM_SCALAR >::random(), gum::MultiDimDecorator< GUM_SCALAR >::set(), gum::Instantiation::setFirstNotVar(), gum::Instantiation::setFirstVar(), gum::Instantiation::unsetEnd(), and gum::MultiDimDecorator< GUM_SCALAR >::variable().

Referenced by gum::BayesNet< double >::generateCPT().

54  {
55  cpt.random();
56 
57  const auto& var = cpt.variable(varId);
58  Instantiation cptInst(cpt);
59 
60  for (cptInst.setFirstNotVar(var); !cptInst.end(); cptInst.incNotVar(var)) {
61  GUM_SCALAR sum = (GUM_SCALAR)0;
62 
63  for (cptInst.setFirstVar(var); !cptInst.end(); cptInst.incVar(var)) {
64  sum += cpt[cptInst];
65  }
66 
67  for (cptInst.setFirstVar(var); !cptInst.end(); cptInst.incVar(var)) {
68  cpt.set(cptInst, cpt[cptInst] / sum);
69  }
70 
71  cptInst.unsetEnd();
72  }
73  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

The documentation for this class was generated from the following files: