30 #ifndef GUM_MULTIDIMBIJARRAY_H 31 #define GUM_MULTIDIMBIJARRAY_H 33 #include <initializer_list> 35 #include <agrum/tools/core/bijection.h> 37 #include <agrum/tools/multidim/implementations/multiDimArray.h> 38 #include <agrum/tools/multidim/implementations/multiDimWithOffset.h> 52 template <
typename GUM_SCALAR >
69 MultiDimBijArray(
const VarBijection& bijection,
const MultiDimArray< GUM_SCALAR >& array);
112 virtual void set(
const Instantiation& i,
const GUM_SCALAR& value)
const;
120 virtual void add(
const DiscreteVariable& v);
128 virtual void erase(
const DiscreteVariable& v);
135 virtual void fill(
const GUM_SCALAR& d)
const;
143 virtual void populate(
const std::vector< GUM_SCALAR >& v)
const;
151 virtual void populate(std::initializer_list< GUM_SCALAR > l)
const;
161 virtual GUM_SCALAR
get(
const Instantiation& i)
const;
170 virtual GUM_SCALAR&
get_(
const Instantiation& i)
const;
174 virtual void replace_(
const DiscreteVariable* x,
const DiscreteVariable* y);
185 #ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 191 #include <agrum/tools/multidim/implementations/multiDimBijArray_tpl.h> MultiDimBijArray(const MultiDimBijArray< GUM_SCALAR > &from)
Copy constructor.
virtual const std::string & name() const
Returns the real name of the multiDim implementation.
MultiDimBijArray< GUM_SCALAR > & operator=(const MultiDimBijArray< GUM_SCALAR > &from)
INLINE void emplace(Args &&... args)
virtual void fill(const GUM_SCALAR &d) const
This will raise an exception: you can't change the data.
const MultiDimArray< GUM_SCALAR > & _array_
The true data.
virtual Size realSize() const
Returns the real number of parameters used for this table.
virtual GUM_SCALAR get(const Instantiation &i) const
Returns the value pointed by i.
virtual void replace_(const DiscreteVariable *x, const DiscreteVariable *y)
Replace variable x by y.
virtual void set(const Instantiation &i, const GUM_SCALAR &value) const
virtual void commitMultipleChanges_()
Synchronize content after MultipleChanges.
virtual MultiDimBijArray< GUM_SCALAR > * newFactory() const
Class constructor.
MultiDimBijArray(const VarBijection &bijection, const MultiDimArray< GUM_SCALAR > &array)
Class constructor.
virtual void populate(const std::vector< GUM_SCALAR > &v) const
This will raise an exception: you can't change the variables in a MultiDimBijArray.
std::string _name_
The class name.
virtual GUM_SCALAR & get_(const Instantiation &i) const
Return a data, given a Instantiation.
virtual void add(const DiscreteVariable &v)
This will raise an exception: you can't change the variables in a MultiDimBijArray.
virtual ~MultiDimBijArray()
Class destructor.
friend class MultiDimBijArray
virtual void erase(const DiscreteVariable &v)
This will raise an exception: you can't change the variables in a MultiDimBijArray.
MultiDimBijArray(const VarBijection &bijection, const MultiDimBijArray< GUM_SCALAR > &array)
Class constructor.
virtual void populate(std::initializer_list< GUM_SCALAR > l) const
This will raise an exception: you can't change the variables in a MultiDimBijArray.