56 template < GUM_Numeric GUM_SCALAR >
58 GUM_SCALAR default_weight) :
64 template < GUM_Numeric GUM_SCALAR >
71 template < GUM_Numeric GUM_SCALAR >
79 template < GUM_Numeric GUM_SCALAR >
84 template < GUM_Numeric GUM_SCALAR >
90 if (i.
val(C) > 1)
return (GUM_SCALAR)0.0;
94 GUM_SCALAR fact = (GUM_SCALAR)ratio;
96 if (fact != (GUM_SCALAR)0) {
97 for (
Idx j = 1; j < this->
nbrDim(); j++) {
103 if (pr == (GUM_SCALAR)0.0) {
104 fact = (GUM_SCALAR)0.0;
113 return (i.
val(C) != 1) ? fact : (GUM_SCALAR)1.0 - fact;
116 template < GUM_Numeric GUM_SCALAR >
119 s << MultiDimImplementation< GUM_SCALAR >::variable(0) <<
"=noisyORNet(["
122 for (
Idx i = 1; i < MultiDimImplementation< GUM_SCALAR >::nbrDim(); i++)
131 template < GUM_Numeric GUM_SCALAR >
136 template < GUM_Numeric GUM_SCALAR >
142 template < GUM_Numeric GUM_SCALAR >
144 static const std::string str =
"MultiDimNoisyORNet";
Set of pairs of elements with fast search for both elements.
Base class for discrete random variable.
Class for assigning/browsing values to tuples of discrete variables.
Idx val(Idx i) const
Returns the current value of the variable at position i.
GUM_SCALAR _external_weight_
MultiDimICIModel(GUM_SCALAR external_weight, GUM_SCALAR default_weight=(GUM_SCALAR) 1.0)
GUM_SCALAR externalWeight() const
GUM_SCALAR _default_weight_
GUM_SCALAR causalWeight(const DiscreteVariable &v) const
const DiscreteVariable & variable(Idx i) const override
Idx nbrDim() const override
MultiDimContainer< GUM_SCALAR > * newFactory() const override
This method creates a clone of this object, withouth its content (including variable),...
const std::string & name() const final
Returns the real name of the multiDimArray.
GUM_SCALAR get(const Instantiation &i) const final
Returns the real name of the multiDimArray.
std::string toString() const final
Returns the real name of the multiDimArray.
MultiDimNoisyORNet(GUM_SCALAR external_weight, GUM_SCALAR default_weight=(GUM_SCALAR) 1.0)
Default constructor.
~MultiDimNoisyORNet() final
Destructor.
Exception : operation not allowed.
#define GUM_ERROR(type, msg)
Size Idx
Type for indexes.
class for NoisyOR-net implementation as multiDim
gum is the global namespace for all aGrUM entities
std::ostream & operator<<(std::ostream &stream, const AVLTree< Val, Cmp > &tree)
display the content of a tree