30 #ifndef GUM_COMPLETE_PROJECTIONS_4_MULTI_DIM_H 31 #define GUM_COMPLETE_PROJECTIONS_4_MULTI_DIM_H 33 #include <agrum/tools/multidim/implementations/multiDimArray.h> 34 #include <agrum/tools/multidim/implementations/multiDimImplementation.h> 35 #include <agrum/tools/multidim/instantiation.h> 65 template <
typename GUM_SCALAR >
67 Instantiation* instantiation = 0);
90 template <
typename GUM_SCALAR >
92 Instantiation* instantiation = 0);
115 template <
typename GUM_SCALAR >
117 Instantiation* instantiation = 0);
140 template <
typename GUM_SCALAR >
142 Instantiation* instantiation = 0);
171 template <
typename GUM_SCALAR >
173 Instantiation* instantiation = 0);
196 template <
typename GUM_SCALAR >
198 Instantiation* instantiation = 0);
221 template <
typename GUM_SCALAR >
223 Instantiation* instantiation = 0);
246 template <
typename GUM_SCALAR >
248 Instantiation* instantiation = 0);
278 template <
typename GUM_SCALAR >
280 Instantiation* instantiation = 0);
304 template <
typename GUM_SCALAR >
306 Instantiation* instantiation = 0);
330 template <
typename GUM_SCALAR >
332 Instantiation* instantiation = 0);
356 template <
typename GUM_SCALAR >
358 Instantiation* instantiation = 0);
387 template <
typename GUM_SCALAR >
389 Instantiation* instantiation = 0);
412 template <
typename GUM_SCALAR >
414 Instantiation* instantiation = 0);
437 template <
typename GUM_SCALAR >
439 Instantiation* instantiation = 0);
462 template <
typename GUM_SCALAR >
465 Instantiation* instantiation = 0);
470 template <
typename GUM_SCALAR >
471 GUM_SCALAR
projectMax(
const MultiDimImplementation< GUM_SCALAR >& table,
472 Instantiation* instantiation = 0);
475 template <
typename GUM_SCALAR >
476 GUM_SCALAR
projectMin(
const MultiDimImplementation< GUM_SCALAR >& table,
477 Instantiation* instantiation = 0);
480 template <
typename GUM_SCALAR >
481 GUM_SCALAR
projectSum(
const MultiDimImplementation< GUM_SCALAR >& table,
482 Instantiation* instantiation = 0);
486 template <
typename GUM_SCALAR >
487 GUM_SCALAR
projectProduct(
const MultiDimImplementation< GUM_SCALAR >& table,
488 Instantiation* instantiation = 0);
500 template <
typename GUM_SCALAR >
508 template <
typename GUM_SCALAR >
526 template <
typename GUM_SCALAR >
528 void init() { completeProjections4MultiDimInit< GUM_SCALAR >(); };
546 template <
typename GUM_SCALAR >
548 void init() { pointerCompleteProjections4MultiDimInit< GUM_SCALAR >(); };
554 #include <agrum/tools/multidim/utils/operators/completeProjections4MultiDim_tpl.h>
GUM_SCALAR projectProduct(const MultiDimImplementation< GUM_SCALAR > &table, Instantiation *instantiation=0)
the function to be used to project a MultiDimImplementation using a Product
GUM_SCALAR projectSumMultiDimArray(const MultiDimImplementation< GUM_SCALAR > *table, Instantiation *instantiation=0)
a specialized function for projecting a multiDimArray using a Sum operatorThe function projects a tab...
GUM_SCALAR projectProductMultiDimArray(const MultiDimImplementation< GUM_SCALAR > *table, Instantiation *instantiation=0)
a function for projecting a multiDimArray using a Product operatorThe function projects a table over ...
INLINE void emplace(Args &&... args)
GUM_SCALAR * projectMaxMultiDimArray4Pointers(const MultiDimImplementation< GUM_SCALAR * > *table, Instantiation *instantiation=0)
A specialized function for projecting a multiDimArray using a Max operator.
GUM_SCALAR * projectMinMultiDimArray4Pointers(const MultiDimImplementation< GUM_SCALAR * > *table, Instantiation *instantiation=0)
A specialized function for projecting a multiDimArray using a Min operator.
GUM_SCALAR projectMaxMultiDimArray(const MultiDimImplementation< GUM_SCALAR > *table, Instantiation *instantiation=0)
A specialized function for projecting a multiDimArray using a Max operator.
void completeProjections4MultiDimInit()
the function used to register all the complete projection operators on multidimImplementations over n...
GUM_SCALAR * projectSumMultiDimArray4Pointers(const MultiDimImplementation< GUM_SCALAR * > *table, Instantiation *instantiation=0)
a specialized function for projecting a multiDimArray using a Sum operatorThe function projects a tab...
GUM_SCALAR projectSum(const MultiDimImplementation< GUM_SCALAR > &table, Instantiation *instantiation=0)
the function to be used to project a MultiDimImplementation using a sum
void pointerCompleteProjections4MultiDimInit()
The function used to register all the complete projections on multidimImplementations over pointers t...
GUM_SCALAR projectMinMultiDimArray(const MultiDimImplementation< GUM_SCALAR > *table, Instantiation *instantiation=0)
A specialized function for projecting a multiDimArray using a Min operator.
GUM_SCALAR projectMin(const MultiDimImplementation< GUM_SCALAR > &table, Instantiation *instantiation=0)
the function to be used to project a MultiDimImplementation using a Min
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 MultiDimImplementation< GUM_SCALAR * > *table, Instantiation *instantiation=0)
a function for projecting a multiDimArray using a Product operatorThe function projects a table over ...
a class used to register complete projections over non-pointers typesThis class is of course complete...