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 >
93 Instantiation* instantiation = 0);
116 template <
typename GUM_SCALAR >
119 Instantiation* instantiation = 0);
142 template <
typename GUM_SCALAR >
144 const MultiDimImplementation< GUM_SCALAR* >* table,
145 Instantiation* instantiation = 0);
174 template <
typename GUM_SCALAR >
176 Instantiation* instantiation = 0);
199 template <
typename GUM_SCALAR >
202 Instantiation* instantiation = 0);
225 template <
typename GUM_SCALAR >
228 Instantiation* instantiation = 0);
251 template <
typename GUM_SCALAR >
253 const MultiDimImplementation< GUM_SCALAR* >* table,
254 Instantiation* instantiation = 0);
284 template <
typename GUM_SCALAR >
286 Instantiation* instantiation = 0);
310 template <
typename GUM_SCALAR >
313 Instantiation* instantiation = 0);
337 template <
typename GUM_SCALAR >
340 Instantiation* instantiation = 0);
364 template <
typename GUM_SCALAR >
366 const MultiDimImplementation< GUM_SCALAR* >* table,
367 Instantiation* instantiation = 0);
396 template <
typename GUM_SCALAR >
398 Instantiation* instantiation = 0);
421 template <
typename GUM_SCALAR >
424 Instantiation* instantiation = 0);
447 template <
typename GUM_SCALAR >
449 const MultiDimArray< GUM_SCALAR* >* table,
450 Instantiation* instantiation = 0);
473 template <
typename GUM_SCALAR >
475 const MultiDimImplementation< GUM_SCALAR* >* table,
476 Instantiation* instantiation = 0);
481 template <
typename GUM_SCALAR >
482 GUM_SCALAR
projectMax(
const MultiDimImplementation< GUM_SCALAR >& table,
483 Instantiation* instantiation = 0);
486 template <
typename GUM_SCALAR >
487 GUM_SCALAR
projectMin(
const MultiDimImplementation< GUM_SCALAR >& table,
488 Instantiation* instantiation = 0);
491 template <
typename GUM_SCALAR >
492 GUM_SCALAR
projectSum(
const MultiDimImplementation< GUM_SCALAR >& table,
493 Instantiation* instantiation = 0);
497 template <
typename GUM_SCALAR >
498 GUM_SCALAR
projectProduct(
const MultiDimImplementation< GUM_SCALAR >& table,
499 Instantiation* instantiation = 0);
511 template <
typename GUM_SCALAR >
519 template <
typename GUM_SCALAR >
537 template <
typename GUM_SCALAR >
539 void init() { completeProjections4MultiDimInit< GUM_SCALAR >(); };
557 template <
typename GUM_SCALAR >
559 void init() { pointerCompleteProjections4MultiDimInit< GUM_SCALAR >(); };
565 #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...