aGrUM  0.16.0
completeProjections4MultiDim.h
Go to the documentation of this file.
1 
31 #ifndef GUM_COMPLETE_PROJECTIONS_4_MULTI_DIM_H
32 #define GUM_COMPLETE_PROJECTIONS_4_MULTI_DIM_H
33 
37 
38 namespace gum {
39 
40  // ==========================================================================
42  // ==========================================================================
44 
66  template < typename GUM_SCALAR >
67  GUM_SCALAR projectMaxMultiDimArray(const MultiDimArray< GUM_SCALAR >* table,
68  Instantiation* instantiation = 0);
69 
91  template < typename GUM_SCALAR >
92  GUM_SCALAR
93  projectMaxMultiDimArray(const MultiDimImplementation< GUM_SCALAR >* table,
94  Instantiation* instantiation = 0);
95 
117  template < typename GUM_SCALAR >
118  GUM_SCALAR*
119  projectMaxMultiDimArray4Pointers(const MultiDimArray< GUM_SCALAR* >* table,
120  Instantiation* instantiation = 0);
121 
143  template < typename GUM_SCALAR >
145  const MultiDimImplementation< GUM_SCALAR* >* table,
146  Instantiation* instantiation = 0);
147 
149  // ==========================================================================
151  // ==========================================================================
153 
175  template < typename GUM_SCALAR >
176  GUM_SCALAR projectMinMultiDimArray(const MultiDimArray< GUM_SCALAR >* table,
177  Instantiation* instantiation = 0);
178 
200  template < typename GUM_SCALAR >
201  GUM_SCALAR
202  projectMinMultiDimArray(const MultiDimImplementation< GUM_SCALAR >* table,
203  Instantiation* instantiation = 0);
204 
226  template < typename GUM_SCALAR >
227  GUM_SCALAR*
228  projectMinMultiDimArray4Pointers(const MultiDimArray< GUM_SCALAR* >* table,
229  Instantiation* instantiation = 0);
230 
252  template < typename GUM_SCALAR >
254  const MultiDimImplementation< GUM_SCALAR* >* table,
255  Instantiation* instantiation = 0);
256 
258  // ==========================================================================
260  // ==========================================================================
262 
285  template < typename GUM_SCALAR >
286  GUM_SCALAR projectSumMultiDimArray(const MultiDimArray< GUM_SCALAR >* table,
287  Instantiation* instantiation = 0);
288 
311  template < typename GUM_SCALAR >
312  GUM_SCALAR
313  projectSumMultiDimArray(const MultiDimImplementation< GUM_SCALAR >* table,
314  Instantiation* instantiation = 0);
315 
338  template < typename GUM_SCALAR >
339  GUM_SCALAR*
340  projectSumMultiDimArray4Pointers(const MultiDimArray< GUM_SCALAR* >* table,
341  Instantiation* instantiation = 0);
342 
365  template < typename GUM_SCALAR >
367  const MultiDimImplementation< GUM_SCALAR* >* table,
368  Instantiation* instantiation = 0);
369 
371  // ==========================================================================
373  // ==========================================================================
375 
397  template < typename GUM_SCALAR >
398  GUM_SCALAR projectProductMultiDimArray(const MultiDimArray< GUM_SCALAR >* table,
399  Instantiation* instantiation = 0);
400 
422  template < typename GUM_SCALAR >
423  GUM_SCALAR
424  projectProductMultiDimArray(const MultiDimImplementation< GUM_SCALAR >* table,
425  Instantiation* instantiation = 0);
426 
448  template < typename GUM_SCALAR >
450  const MultiDimArray< GUM_SCALAR* >* table, Instantiation* instantiation = 0);
451 
473  template < typename GUM_SCALAR >
475  const MultiDimImplementation< GUM_SCALAR* >* table,
476  Instantiation* instantiation = 0);
477 
479 
481  template < typename GUM_SCALAR >
482  GUM_SCALAR projectMax(const MultiDimImplementation< GUM_SCALAR >& table,
483  Instantiation* instantiation = 0);
484 
486  template < typename GUM_SCALAR >
487  GUM_SCALAR projectMin(const MultiDimImplementation< GUM_SCALAR >& table,
488  Instantiation* instantiation = 0);
489 
491  template < typename GUM_SCALAR >
492  GUM_SCALAR projectSum(const MultiDimImplementation< GUM_SCALAR >& table,
493  Instantiation* instantiation = 0);
494 
497  template < typename GUM_SCALAR >
498  GUM_SCALAR projectProduct(const MultiDimImplementation< GUM_SCALAR >& table,
499  Instantiation* instantiation = 0);
500 
501  // ==========================================================================
502  // DO NOT FORGET TO REGISTER YOUR PROJECTION FUNCTIONS AT THE END OF FILE
503  // completeProjections4MultiDim_tpl.h
504  // ==========================================================================
505 
511  template < typename GUM_SCALAR >
513 
519  template < typename GUM_SCALAR >
521 
537  template < typename GUM_SCALAR >
539  void init() { completeProjections4MultiDimInit< GUM_SCALAR >(); };
540  };
541 
557  template < typename GUM_SCALAR >
559  void init() { pointerCompleteProjections4MultiDimInit< GUM_SCALAR >(); };
560  };
561 
562 } /* namespace gum */
563 
564 // always include the templatized implementations
566 
567 #endif /* GUM_COMPLETE_PROJECTIONS_4_MULTI_DIM_H */
GUM_SCALAR * projectMinMultiDimArray4Pointers(const MultiDimArray< GUM_SCALAR * > *table, Instantiation *instantiation=0)
A specialized function for projecting a multiDimArray using a Min operator.
GUM_SCALAR projectProduct(const MultiDimImplementation< GUM_SCALAR > &table, Instantiation *instantiation=0)
the function to be used to project a MultiDimImplementation using a Product
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Definition: agrum.h:25
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.
GUM_SCALAR * projectMaxMultiDimArray4Pointers(const MultiDimArray< GUM_SCALAR * > *table, Instantiation *instantiation=0)
A specialized function for projecting a multiDimArray using a Max 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.
void completeProjections4MultiDimInit()
the function used to register all the complete projection operators on multidimImplementations over n...
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
void pointerCompleteProjections4MultiDimInit()
The function used to register all the complete projections on multidimImplementations over pointers t...
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
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...
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
a class used to register complete projections over non-pointers typesThis class is of course complete...