30 #ifndef GUM_PROJECTIONS_4_MULTI_DIM_H 31 #define GUM_PROJECTIONS_4_MULTI_DIM_H 62 template <
typename GUM_SCALAR >
63 MultiDimArray< GUM_SCALAR >*
65 const Set< const DiscreteVariable* >& del_vars);
84 template <
typename GUM_SCALAR >
85 MultiDimImplementation< GUM_SCALAR >*
87 const Set< const DiscreteVariable* >& del_vars);
106 template <
typename GUM_SCALAR >
108 const MultiDimArray< GUM_SCALAR* >* table,
109 const Set< const DiscreteVariable* >& del_vars);
128 template <
typename GUM_SCALAR >
130 const MultiDimImplementation< GUM_SCALAR* >* table,
131 const Set< const DiscreteVariable* >& del_vars);
156 template <
typename GUM_SCALAR >
157 MultiDimArray< GUM_SCALAR >*
159 const Set< const DiscreteVariable* >& del_vars);
178 template <
typename GUM_SCALAR >
179 MultiDimImplementation< GUM_SCALAR >*
181 const Set< const DiscreteVariable* >& del_vars);
200 template <
typename GUM_SCALAR >
202 const MultiDimArray< GUM_SCALAR* >* table,
203 const Set< const DiscreteVariable* >& del_vars);
222 template <
typename GUM_SCALAR >
224 const MultiDimImplementation< GUM_SCALAR* >* table,
225 const Set< const DiscreteVariable* >& del_vars);
250 template <
typename GUM_SCALAR >
251 MultiDimArray< GUM_SCALAR >*
253 const Set< const DiscreteVariable* >& del_vars);
272 template <
typename GUM_SCALAR >
273 MultiDimImplementation< GUM_SCALAR >*
275 const Set< const DiscreteVariable* >& del_vars);
294 template <
typename GUM_SCALAR >
296 const MultiDimArray< GUM_SCALAR* >* table,
297 const Set< const DiscreteVariable* >& del_vars);
316 template <
typename GUM_SCALAR >
318 const MultiDimImplementation< GUM_SCALAR* >* table,
319 const Set< const DiscreteVariable* >& del_vars);
344 template <
typename GUM_SCALAR >
345 MultiDimArray< GUM_SCALAR >*
347 const Set< const DiscreteVariable* >& del_vars);
366 template <
typename GUM_SCALAR >
367 MultiDimImplementation< GUM_SCALAR >*
369 const Set< const DiscreteVariable* >& del_vars);
388 template <
typename GUM_SCALAR >
390 const MultiDimArray< GUM_SCALAR* >* table,
391 const Set< const DiscreteVariable* >& del_vars);
410 template <
typename GUM_SCALAR >
412 const MultiDimImplementation< GUM_SCALAR* >* table,
413 const Set< const DiscreteVariable* >& del_vars);
432 template <
typename GUM_SCALAR >
434 const MultiDimArray< GUM_SCALAR >* t1,
435 const MultiDimArray< GUM_SCALAR >* t2,
436 const GUM_SCALAR (*f)(
const GUM_SCALAR&,
const GUM_SCALAR&));
449 template <
typename GUM_SCALAR >
451 const MultiDimImplementation< GUM_SCALAR >* t1,
452 const MultiDimImplementation< GUM_SCALAR >* t2,
453 const GUM_SCALAR (*f)(
const GUM_SCALAR&,
const GUM_SCALAR&));
479 template <
typename GUM_SCALAR >
482 const Set< const DiscreteVariable* >& del_vars);
502 template <
typename GUM_SCALAR >
504 const MultiDimImplementation< GUM_SCALAR >* table,
505 const Set< const DiscreteVariable* >& del_vars);
526 template <
typename GUM_SCALAR >
529 const Set< const DiscreteVariable* >& del_vars);
549 template <
typename GUM_SCALAR >
551 const MultiDimImplementation< GUM_SCALAR >* table,
552 const Set< const DiscreteVariable* >& del_vars);
573 template <
typename GUM_SCALAR >
576 const Set< const DiscreteVariable* >& del_vars);
596 template <
typename GUM_SCALAR >
598 const MultiDimImplementation< GUM_SCALAR >* table,
599 const Set< const DiscreteVariable* >& del_vars);
620 template <
typename GUM_SCALAR >
623 const Set< const DiscreteVariable* >& del_vars);
643 template <
typename GUM_SCALAR >
645 const MultiDimImplementation< GUM_SCALAR >* table,
646 const Set< const DiscreteVariable* >& del_vars);
651 template <
typename GUM_SCALAR >
652 MultiDimImplementation< GUM_SCALAR >*
653 projectMax(
const MultiDimImplementation< GUM_SCALAR >& table,
654 const Set< const DiscreteVariable* >& del_vars);
657 template <
typename GUM_SCALAR >
658 MultiDimImplementation< GUM_SCALAR >*
659 projectMin(
const MultiDimImplementation< GUM_SCALAR >& table,
660 const Set< const DiscreteVariable* >& del_vars);
663 template <
typename GUM_SCALAR >
664 MultiDimImplementation< GUM_SCALAR >*
665 projectSum(
const MultiDimImplementation< GUM_SCALAR >& table,
666 const Set< const DiscreteVariable* >& del_vars);
670 template <
typename GUM_SCALAR >
671 MultiDimImplementation< GUM_SCALAR >*
673 const Set< const DiscreteVariable* >& del_vars);
685 template <
typename GUM_SCALAR >
692 template <
typename GUM_SCALAR >
708 template <
typename GUM_SCALAR >
710 void init() { projections4MultiDimInit< GUM_SCALAR >(); };
727 template <
typename GUM_SCALAR >
729 void init() { pointerProjections4MultiDimInit< GUM_SCALAR >(); };
GUM_SCALAR * projectMinMultiDimArray4Pointers(const MultiDimArray< GUM_SCALAR * > *table, Instantiation *instantiation=0)
A specialized function for projecting a multiDimArray using a Min operator.
a class used to register projections over non-pointers types
GUM_SCALAR projectProduct(const MultiDimImplementation< GUM_SCALAR > &table, Instantiation *instantiation=0)
the function to be used to project a MultiDimImplementation using a Product
MultiDimFunctionGraph< GUM_SCALAR > * projectMinMultiDimFunctionGraph(const MultiDimFunctionGraph< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
a specialized function for projecting a multiDimFunctionGraph using a Min operator ...
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.
GUM_SCALAR projectMinMultiDimArray(const MultiDimArray< GUM_SCALAR > *table, Instantiation *instantiation=0)
A specialized function for projecting a multiDimArray using a Min operator.
GUM_SCALAR projectMaxMultiDimArray(const MultiDimArray< GUM_SCALAR > *table, Instantiation *instantiation=0)
A specialized function for projecting a multiDimArray using a Max operator.
MultiDimFunctionGraph< GUM_SCALAR > * projectSumMultiDimFunctionGraph(const MultiDimFunctionGraph< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
a specialized function for projecting a multiDimFunctionGraph using a summation
MultiDimImplementation< GUM_SCALAR > * combine2MultiDimArrays(const MultiDimImplementation< GUM_SCALAR > *t1, const MultiDimImplementation< GUM_SCALAR > *t2, const GUM_SCALAR(*f)(const GUM_SCALAR &, const GUM_SCALAR &))
a specialized function for functionally projecting a multiDimArray
GUM_SCALAR * projectMaxMultiDimArray4Pointers(const MultiDimArray< GUM_SCALAR * > *table, Instantiation *instantiation=0)
A specialized function for projecting a multiDimArray using a Max operator.
void projections4MultiDimInit()
the function used to register all the projection operators on multidimImplementations over non-pointe...
MultiDimArray< GUM_SCALAR > * ProjectFuncMultiDimArray(const MultiDimArray< GUM_SCALAR > *t1, const MultiDimArray< GUM_SCALAR > *t2, const GUM_SCALAR(*f)(const GUM_SCALAR &, const GUM_SCALAR &))
a specialized function for functionally projecting a multiDimArray
MultiDimFunctionGraph< GUM_SCALAR > * projectProductMultiDimFunctionGraph(const MultiDimFunctionGraph< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
a specialized function for projecting a multiDimFunctionGraph using products
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
GUM_SCALAR projectProductMultiDimArray(const MultiDimArray< GUM_SCALAR > *table, Instantiation *instantiation=0)
a function for projecting a multiDimArray using a Product operatorThe function projects a table over ...
GUM_SCALAR projectSum(const MultiDimImplementation< GUM_SCALAR > &table, Instantiation *instantiation=0)
the function to be used to project a MultiDimImplementation using a sum
MultiDimFunctionGraph< GUM_SCALAR > * projectMaxMultiDimFunctionGraph(const MultiDimFunctionGraph< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
a specialized function for projecting a multiDimFunctionGraph using a Max operator ...
GUM_SCALAR projectSumMultiDimArray(const MultiDimArray< GUM_SCALAR > *table, Instantiation *instantiation=0)
a specialized function for projecting a multiDimArray using a Sum operatorThe function projects a tab...
GUM_SCALAR projectMin(const MultiDimImplementation< GUM_SCALAR > &table, Instantiation *instantiation=0)
the function to be used to project a MultiDimImplementation using a Min
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
GUM_SCALAR projectMax(const MultiDimImplementation< GUM_SCALAR > &table, Instantiation *instantiation=0)
the function to be used to project a MultiDimImplementation using a Max
GUM_SCALAR * projectProductMultiDimArray4Pointers(const MultiDimArray< GUM_SCALAR * > *table, Instantiation *instantiation=0)
a function for projecting a multiDimArray using a Product operatorThe function projects a table over ...
GUM_SCALAR * projectSumMultiDimArray4Pointers(const MultiDimArray< GUM_SCALAR * > *table, Instantiation *instantiation=0)
a specialized function for projecting a multiDimArray using a Sum operatorThe function projects a tab...
void pointerProjections4MultiDimInit()
the function used to register all the projections on multidimImplementations over pointers types...
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.