50#ifndef GUM_MULTIDIMBIJARRAY_H
51#define GUM_MULTIDIMBIJARRAY_H
56#include <initializer_list>
70 template <
typename GUM_ELEMENT >
153 void fill(
const GUM_ELEMENT& d)
const override;
161 void populate(
const std::vector< GUM_ELEMENT >& v)
const override;
169 void populate(std::initializer_list< GUM_ELEMENT > l)
const override;
177 const std::string&
name()
const override;
203#ifndef GUM_NO_EXTERN_TEMPLATE_CLASS
Set of pairs of elements with fast search for both elements.
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.
Multidimensional matrix stored as an array in memory.
Decorator of a MultiDimArray, using a bijection over the variables.
GUM_ELEMENT & get_(const Instantiation &i) const override
Return a data, given a Instantiation.
void set(const Instantiation &i, const GUM_ELEMENT &value) const override
MultiDimBijArray< GUM_ELEMENT > * newFactory() const override
Class constructor.
const std::string & name() const override
Returns the real name of the multiDim implementation.
GUM_ELEMENT get(const Instantiation &i) const override
Returns the value pointed by i.
std::string _name_
The class name.
void add(const DiscreteVariable &v) override
This will raise an exception: you can't change the variables in a MultiDimBijArray.
void commitMultipleChanges_() override
Synchronize content after MultipleChanges.
Bijection< const DiscreteVariable *, const DiscreteVariable * > VarBijection
Size realSize() const override
Returns the real number of parameters used for this table.
const MultiDimArray< GUM_ELEMENT > & _array_
The true data.
MultiDimBijArray< GUM_ELEMENT > & operator=(const MultiDimBijArray< GUM_ELEMENT > &from)
~MultiDimBijArray() override
Class destructor.
MultiDimBijArray(const VarBijection &bijection, const MultiDimArray< GUM_ELEMENT > &array)
Class constructor.
void erase(const DiscreteVariable &v) override
This will raise an exception: you can't change the variables in a MultiDimBijArray.
void populate(const std::vector< GUM_ELEMENT > &v) const override
This will raise an exception: you can't change the variables in a MultiDimBijArray.
void replace_(const DiscreteVariable *x, const DiscreteVariable *y) override
This is called by MultiDimContainer::replace() to proceed with the replacing between x and y.
void fill(const GUM_ELEMENT &d) const override
This will raise an exception: you can't change the data.
MultiDimWithOffset()
Class constructor.
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Header of the MultiDimArray class.
Implementation of the MultiDimBijArray class.
gum is the global namespace for all aGrUM entities