27 #ifndef GUM_PROJECTIONS_4_MULTI_DIM_H 28 #define GUM_PROJECTIONS_4_MULTI_DIM_H 59 template <
typename GUM_SCALAR >
60 MultiDimArray< GUM_SCALAR >*
62 const Set< const DiscreteVariable* >& del_vars);
81 template <
typename GUM_SCALAR >
82 MultiDimImplementation< GUM_SCALAR >*
84 const Set< const DiscreteVariable* >& del_vars);
103 template <
typename GUM_SCALAR >
105 const MultiDimArray< GUM_SCALAR* >* table,
106 const Set< const DiscreteVariable* >& del_vars);
125 template <
typename GUM_SCALAR >
127 const MultiDimImplementation< GUM_SCALAR* >* table,
128 const Set< const DiscreteVariable* >& del_vars);
153 template <
typename GUM_SCALAR >
154 MultiDimArray< GUM_SCALAR >*
156 const Set< const DiscreteVariable* >& del_vars);
175 template <
typename GUM_SCALAR >
176 MultiDimImplementation< GUM_SCALAR >*
178 const Set< const DiscreteVariable* >& del_vars);
197 template <
typename GUM_SCALAR >
199 const MultiDimArray< GUM_SCALAR* >* table,
200 const Set< const DiscreteVariable* >& del_vars);
219 template <
typename GUM_SCALAR >
221 const MultiDimImplementation< GUM_SCALAR* >* table,
222 const Set< const DiscreteVariable* >& del_vars);
247 template <
typename GUM_SCALAR >
248 MultiDimArray< GUM_SCALAR >*
250 const Set< const DiscreteVariable* >& del_vars);
269 template <
typename GUM_SCALAR >
270 MultiDimImplementation< GUM_SCALAR >*
272 const Set< const DiscreteVariable* >& del_vars);
291 template <
typename GUM_SCALAR >
293 const MultiDimArray< GUM_SCALAR* >* table,
294 const Set< const DiscreteVariable* >& del_vars);
313 template <
typename GUM_SCALAR >
315 const MultiDimImplementation< GUM_SCALAR* >* table,
316 const Set< const DiscreteVariable* >& del_vars);
341 template <
typename GUM_SCALAR >
342 MultiDimArray< GUM_SCALAR >*
344 const Set< const DiscreteVariable* >& del_vars);
363 template <
typename GUM_SCALAR >
364 MultiDimImplementation< GUM_SCALAR >*
366 const Set< const DiscreteVariable* >& del_vars);
385 template <
typename GUM_SCALAR >
387 const MultiDimArray< GUM_SCALAR* >* table,
388 const Set< const DiscreteVariable* >& del_vars);
407 template <
typename GUM_SCALAR >
409 const MultiDimImplementation< GUM_SCALAR* >* table,
410 const Set< const DiscreteVariable* >& del_vars);
429 template <
typename GUM_SCALAR >
431 const MultiDimArray< GUM_SCALAR >* t1,
432 const MultiDimArray< GUM_SCALAR >* t2,
433 const GUM_SCALAR (*f)(
const GUM_SCALAR&,
const GUM_SCALAR&));
446 template <
typename GUM_SCALAR >
448 const MultiDimImplementation< GUM_SCALAR >* t1,
449 const MultiDimImplementation< GUM_SCALAR >* t2,
450 const GUM_SCALAR (*f)(
const GUM_SCALAR&,
const GUM_SCALAR&));
476 template <
typename GUM_SCALAR >
479 const Set< const DiscreteVariable* >& del_vars);
499 template <
typename GUM_SCALAR >
501 const MultiDimImplementation< GUM_SCALAR >* table,
502 const Set< const DiscreteVariable* >& del_vars);
523 template <
typename GUM_SCALAR >
526 const Set< const DiscreteVariable* >& del_vars);
546 template <
typename GUM_SCALAR >
548 const MultiDimImplementation< GUM_SCALAR >* table,
549 const Set< const DiscreteVariable* >& del_vars);
570 template <
typename GUM_SCALAR >
573 const Set< const DiscreteVariable* >& del_vars);
593 template <
typename GUM_SCALAR >
595 const MultiDimImplementation< GUM_SCALAR >* table,
596 const Set< const DiscreteVariable* >& del_vars);
617 template <
typename GUM_SCALAR >
620 const Set< const DiscreteVariable* >& del_vars);
640 template <
typename GUM_SCALAR >
642 const MultiDimImplementation< GUM_SCALAR >* table,
643 const Set< const DiscreteVariable* >& del_vars);
648 template <
typename GUM_SCALAR >
649 MultiDimImplementation< GUM_SCALAR >*
650 projectMax(
const MultiDimImplementation< GUM_SCALAR >& table,
651 const Set< const DiscreteVariable* >& del_vars);
654 template <
typename GUM_SCALAR >
655 MultiDimImplementation< GUM_SCALAR >*
656 projectMin(
const MultiDimImplementation< GUM_SCALAR >& table,
657 const Set< const DiscreteVariable* >& del_vars);
660 template <
typename GUM_SCALAR >
661 MultiDimImplementation< GUM_SCALAR >*
662 projectSum(
const MultiDimImplementation< GUM_SCALAR >& table,
663 const Set< const DiscreteVariable* >& del_vars);
667 template <
typename GUM_SCALAR >
668 MultiDimImplementation< GUM_SCALAR >*
670 const Set< const DiscreteVariable* >& del_vars);
682 template <
typename GUM_SCALAR >
689 template <
typename GUM_SCALAR >
705 template <
typename GUM_SCALAR >
707 void init() { projections4MultiDimInit< GUM_SCALAR >(); };
724 template <
typename GUM_SCALAR >
726 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 ...
gum is the global namespace for all aGrUM entities
Headers of gum::MultiDimImplementation.
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
Headers of MultiDimFunctionGraph.
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
Efficient functionals for projecting multiDimensional tables.
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...
Header of the MultiDimArray class.