aGrUM  0.16.0
partialInstantiation4MultiDim.h
Go to the documentation of this file.
1 
30 #ifndef GUM_PARTIAL_INSTANTIATION_4_MULTI_DIM_H
31 #define GUM_PARTIAL_INSTANTIATION_4_MULTI_DIM_H
32 
33 #include <agrum/core/hashTable.h>
34 #include <agrum/core/set.h>
36 //#include <agrum/multidim/implementations/multiDimImplementation.h>
37 //#include <agrum/multidim/implementations/multiDimArray.h>
38 //#include <agrum/multidim/implementations/multiDimDecorator.h>
39 
40 namespace gum {
41 
42  template < typename GUM_SCALAR >
43  class MultiDimImplementation;
44 
45  template < typename GUM_SCALAR >
46  class MultiDimArray;
47 
48  template < typename GUM_SCALAR >
49  class MultiDimDecorator;
50 
69  template < typename GUM_SCALAR >
70  MultiDimArray< GUM_SCALAR >* partialInstantiationMultiDimArray(
71  const MultiDimArray< GUM_SCALAR >* table,
72  const HashTable< const DiscreteVariable*, Idx >& inst_vars);
73 
93  template < typename GUM_SCALAR >
94  MultiDimImplementation< GUM_SCALAR >* partialInstantiationMultiDimArray(
95  const MultiDimImplementation< GUM_SCALAR >* table,
96  const HashTable< const DiscreteVariable*, Idx >& inst_vars);
97 
117  template < typename GUM_SCALAR >
118  MultiDimArray< GUM_SCALAR* >* partialInstantiationMultiDimArray4Pointers(
119  const MultiDimArray< GUM_SCALAR* >* table,
120  const HashTable< const DiscreteVariable*, Idx >& inst_vars);
121 
141  template < typename GUM_SCALAR >
142  MultiDimImplementation< GUM_SCALAR* >*
144  const MultiDimImplementation< GUM_SCALAR* >* table,
145  const HashTable< const DiscreteVariable*, Idx >& inst_vars);
146 
155  template < typename GUM_SCALAR >
156  MultiDimImplementation< GUM_SCALAR >* partialInstantiation(
157  const MultiDimImplementation< GUM_SCALAR >& table,
158  const HashTable< const DiscreteVariable*, Idx >& inst_vars);
159 
168  template < typename GUM_SCALAR >
169  MultiDimImplementation< GUM_SCALAR >* partialInstantiation(
170  const MultiDimDecorator< GUM_SCALAR >& table,
171  const HashTable< const DiscreteVariable*, Idx >& inst_vars);
172 
173  // ==========================================================================
174  // DO NOT FORGET TO REGISTER YOUR PARTIAL INSTANTIATION FUNCTIONS AT THE END
175  // OF FILE partialInstantiation4MultiDim_tpl.h
176  // ==========================================================================
177 
182  template < typename GUM_SCALAR >
184 
189  template < typename GUM_SCALAR >
191 
210  template < typename GUM_SCALAR >
215  void init() { partialInstantiation4MultiDimInit< GUM_SCALAR >(); };
216  };
217 
237  template < typename GUM_SCALAR >
242  void init() { pointerPartialInstantiation4MultiDimInit< GUM_SCALAR >(); };
243  };
244 
245 } /* namespace gum */
246 
247 // always include the templatized implementations
249 
250 #endif /* GUM_PARTIAL_INSTANTIATION_4_MULTI_DIM_H */
void init()
Initialize the partial instantiation functions.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Definition: agrum.h:25
void init()
Initialize the partial instantiation functions.
MultiDimArray< GUM_SCALAR *> * partialInstantiationMultiDimArray4Pointers(const MultiDimArray< GUM_SCALAR * > *table, const HashTable< const DiscreteVariable *, Idx > &inst_vars)
A specialized function for instantiating variables in a MultiDimArray.
void pointerPartialInstantiation4MultiDimInit()
The function used to register all the instantiations on multidimImplementations over pointers types...
MultiDimArray< GUM_SCALAR > * partialInstantiationMultiDimArray(const MultiDimArray< GUM_SCALAR > *table, const HashTable< const DiscreteVariable *, Idx > &inst_vars)
A specialized function for instantiating variables in a multiDimArray.
MultiDimImplementation< GUM_SCALAR > * partialInstantiation(const MultiDimImplementation< GUM_SCALAR > &table, const HashTable< const DiscreteVariable *, Idx > &inst_vars)
Instantiate variables in a MultiDimImplementation.
void partialInstantiation4MultiDimInit()
The function used to register all the instantiation operators on multidimImplementations over non-poi...
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
A class used to register instantiation functions over non-pointers types.