29 #ifndef GUM_PROJECTIONS_4_MULTI_DIM_H 30 #define GUM_PROJECTIONS_4_MULTI_DIM_H 32 #include <agrum/tools/core/set.h> 33 #include <agrum/tools/multidim/implementations/multiDimArray.h> 34 #include <agrum/tools/multidim/implementations/multiDimFunctionGraph.h> 35 #include <agrum/tools/multidim/implementations/multiDimImplementation.h> 61 template <
typename GUM_SCALAR >
83 template <
typename GUM_SCALAR >
105 template <
typename GUM_SCALAR >
127 template <
typename GUM_SCALAR >
155 template <
typename GUM_SCALAR >
177 template <
typename GUM_SCALAR >
199 template <
typename GUM_SCALAR >
221 template <
typename GUM_SCALAR >
249 template <
typename GUM_SCALAR >
271 template <
typename GUM_SCALAR >
293 template <
typename GUM_SCALAR >
315 template <
typename GUM_SCALAR >
343 template <
typename GUM_SCALAR >
365 template <
typename GUM_SCALAR >
387 template <
typename GUM_SCALAR >
409 template <
typename GUM_SCALAR >
431 template <
typename GUM_SCALAR >
448 template <
typename GUM_SCALAR >
478 template <
typename GUM_SCALAR >
501 template <
typename GUM_SCALAR >
525 template <
typename GUM_SCALAR >
548 template <
typename GUM_SCALAR >
572 template <
typename GUM_SCALAR >
595 template <
typename GUM_SCALAR >
619 template <
typename GUM_SCALAR >
642 template <
typename GUM_SCALAR >
650 template <
typename GUM_SCALAR >
656 template <
typename GUM_SCALAR >
662 template <
typename GUM_SCALAR >
669 template <
typename GUM_SCALAR >
684 template <
typename GUM_SCALAR >
691 template <
typename GUM_SCALAR >
707 template <
typename GUM_SCALAR >
709 void init() { projections4MultiDimInit< GUM_SCALAR >(); };
726 template <
typename GUM_SCALAR >
728 void init() { pointerProjections4MultiDimInit< GUM_SCALAR >(); };
734 #include <agrum/tools/multidim/utils/operators/projections4MultiDim_tpl.h> MultiDimImplementation< GUM_SCALAR > * projectMaxMultiDimArray(const MultiDimImplementation< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
a specialized function for projecting a multiDimArray using a Max operatorThe function projects a tab...
a class used to register projections over non-pointers types
MultiDimImplementation< GUM_SCALAR > * projectProductMultiDimArray(const MultiDimImplementation< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
a specialized function for projecting a multiDimArray using products
MultiDimImplementation< GUM_SCALAR > * projectMax(const MultiDimImplementation< GUM_SCALAR > &table, const Set< const DiscreteVariable * > &del_vars)
The function to be used to project a MultiDimImplementation using a Max.
MultiDimImplementation< GUM_SCALAR *> * projectSumMultiDimArray4Pointers(const MultiDimImplementation< GUM_SCALAR * > *table, const Set< const DiscreteVariable * > &del_vars)
a specialized function for projecting a multiDimArray using a summation
MultiDimImplementation< GUM_SCALAR > * projectMin(const MultiDimImplementation< GUM_SCALAR > &table, const Set< const DiscreteVariable * > &del_vars)
The function to be used to project a MultiDimImplementation using a Min.
MultiDimImplementation< GUM_SCALAR > * projectProduct(const MultiDimImplementation< GUM_SCALAR > &table, const Set< const DiscreteVariable * > &del_vars)
The function to be used to project a MultiDimImplementation using a Product.
MultiDimImplementation< GUM_SCALAR *> * projectMinMultiDimArray4Pointers(const MultiDimImplementation< GUM_SCALAR * > *table, const Set< const DiscreteVariable * > &del_vars)
a specialized function for projecting a multiDimArray using a Min operator
INLINE void emplace(Args &&... args)
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
void projections4MultiDimInit()
the function used to register all the projection operators on multidimImplementations over non-pointe...
MultiDimImplementation< GUM_SCALAR > * projectMaxMultiDimFunctionGraph(const MultiDimImplementation< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
a specialized function for projecting a multiDimFunctionGraph using a Max operator ...
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
MultiDimImplementation< GUM_SCALAR > * projectMinMultiDimFunctionGraph(const MultiDimImplementation< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
a specialized function for projecting a multiDimFunctionGraph using a Min operator ...
MultiDimImplementation< GUM_SCALAR > * projectMinMultiDimArray(const MultiDimImplementation< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
a specialized function for projecting a multiDimArray using a Min operator
MultiDimImplementation< GUM_SCALAR > * projectSum(const MultiDimImplementation< GUM_SCALAR > &table, const Set< const DiscreteVariable * > &del_vars)
The function to be used to project a MultiDimImplementation using a Sum.
MultiDimImplementation< GUM_SCALAR > * projectSumMultiDimFunctionGraph(const MultiDimImplementation< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
a specialized function for projecting a multiDimFunctionGraph using a summation
MultiDimImplementation< GUM_SCALAR > * projectProductMultiDimFunctionGraph(const MultiDimImplementation< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
a specialized function for projecting a multiDimFunctionGraph using products
void pointerProjections4MultiDimInit()
the function used to register all the projections on multidimImplementations over pointers types...
MultiDimImplementation< GUM_SCALAR > * projectSumMultiDimArray(const MultiDimImplementation< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
a specialized function for projecting a multiDimArray using a summation
MultiDimImplementation< GUM_SCALAR *> * projectProductMultiDimArray4Pointers(const MultiDimImplementation< GUM_SCALAR * > *table, const Set< const DiscreteVariable * > &del_vars)
a specialized function for projecting a multiDimArray using products
MultiDimImplementation< GUM_SCALAR *> * projectMaxMultiDimArray4Pointers(const MultiDimImplementation< GUM_SCALAR * > *table, const Set< const DiscreteVariable * > &del_vars)
a specialized function for projecting a multiDimArray using a Max operatorThe function projects a tab...