29 #ifndef GUM_OPERATORS_4_MULTI_DIM_H 30 #define GUM_OPERATORS_4_MULTI_DIM_H 32 #include <agrum/tools/core/timer.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> 60 template <
typename T >
80 template <
typename T >
100 template <
typename T >
120 template <
typename T >
140 template <
typename T >
160 template <
typename T >
186 template <
typename T >
206 template <
typename T >
226 template <
typename T >
246 template <
typename T >
267 template <
typename T >
287 template <
typename T >
314 template <
typename T >
334 template <
typename T >
354 template <
typename T >
374 template <
typename T >
395 template <
typename T >
415 template <
typename T >
442 template <
typename T >
462 template <
typename T >
482 template <
typename T >
502 template <
typename T >
523 template <
typename T >
543 template <
typename T >
567 template <
typename T >
585 template <
typename T >
598 template <
typename T >
604 template <
typename T >
610 template <
typename T >
616 template <
typename T >
632 template <
typename GUM_SCALAR >
640 template <
typename GUM_SCALAR >
657 template <
typename GUM_SCALAR >
659 void init() { operators4MultiDimInit< GUM_SCALAR >(); };
677 template <
typename GUM_SCALAR >
679 void init() { pointerOperators4MultiDimInit< GUM_SCALAR >(); };
687 #include <agrum/tools/multidim/utils/operators/operators4MultiDim_tpl.h> MultiDimImplementation< T > * operator/(const MultiDimImplementation< T > &, const MultiDimImplementation< T > &)
The function to be used to divide two MultiDimImplementations.
MultiDimImplementation< T *> * divide2MultiDimArrays4Pointers(const MultiDimImplementation< T * > *t1, const MultiDimImplementation< T * > *t2)
a specialized function for dividing two multiDimArraysThe function produces a tensorial division of t...
MultiDimImplementation< T > * divide2MultiDimArrays(const MultiDimImplementation< T > *t1, const MultiDimImplementation< T > *t2)
a specialized function for dividing two multiDimArraysThe function produces a tensorial division of t...
MultiDimImplementation< T *> * multiply2MultiDimArrays4Pointers(const MultiDimImplementation< T * > *t1, const MultiDimImplementation< T * > *t2)
a specialized function for multiplying two multiDimArraysThe function produces a tensorial product of...
void operators4MultiDimInit()
the function used to register all the operators on multidimImplementations over non-pointers types...
INLINE void emplace(Args &&... args)
MultiDimImplementation< T > * maximise2MultiDimFunctionGraphs(const MultiDimImplementation< T > *t1, const MultiDimImplementation< T > *t2)
a specialized function for compare value from two multiDimFunctionGraphs and gets the maximalThe func...
MultiDimImplementation< T > * operator*(const MultiDimImplementation< T > &, const MultiDimImplementation< T > &)
The function to be used to multiply two MultiDimImplementations.
a class used to register operators over non-pointers typesThis class is of course completely redundan...
MultiDimImplementation< T > * add2MultiDimArrays(const MultiDimImplementation< T > *t1, const MultiDimImplementation< T > *t2)
a specialized function for summing two multiDimArraysThe function produces a tensorial addition of t1...
MultiDimImplementation< T > * multiply2MultiDimArrays(const MultiDimImplementation< T > *t1, const MultiDimImplementation< T > *t2)
a specialized function for multiplying two multiDimArraysThe function produces a tensorial product of...
MultiDimImplementation< T > * subtract2MultiDimArrays(const MultiDimImplementation< T > *t1, const MultiDimImplementation< T > *t2)
a specialized function for subtracting two multiDimArraysThe function produces a tensorial subtractio...
void pointerOperators4MultiDimInit()
the function used to register all the operators on multidimImplementations over pointers types...
MultiDimImplementation< T *> * add2MultiDimArrays4Pointers(const MultiDimImplementation< T * > *t1, const MultiDimImplementation< T * > *t2)
a specialized function for summing two multiDimArraysThe function produces a tensorial addition of t1...
MultiDimImplementation< T > * operator+(const MultiDimImplementation< T > &, const MultiDimImplementation< T > &)
The function to be used to add two MultiDimImplementations.
MultiDimImplementation< T > * operator-(const MultiDimImplementation< T > &, const MultiDimImplementation< T > &)
The function to be used to subtract two MultiDimImplementations.
MultiDimImplementation< T > * multiply2MultiDimFunctionGraphs(const MultiDimImplementation< T > *t1, const MultiDimImplementation< T > *t2)
a specialized function for multiplying two multiDimArraysThe function produces a tensorial product of...
MultiDimImplementation< T > * divide2MultiDimFunctionGraphs(const MultiDimImplementation< T > *t1, const MultiDimImplementation< T > *t2)
a specialized function for dividing two multiDimArraysThe function produces a tensorial division of t...
MultiDimImplementation< T > * subtract2MultiDimFunctionGraphs(const MultiDimImplementation< T > *t1, const MultiDimImplementation< T > *t2)
a specialized function for subtracting two multiDimArraysThe function produces a tensorial subtractio...
MultiDimImplementation< T *> * subtract2MultiDimArrays4Pointers(const MultiDimImplementation< T * > *t1, const MultiDimImplementation< T * > *t2)
a specialized function for subtracting two multiDimArraysThe function produces a tensorial subtractio...
MultiDimImplementation< T > * add2MultiDimFunctionGraphs(const MultiDimImplementation< T > *t1, const MultiDimImplementation< T > *t2)
a specialized function for summing two multiDimArraysThe function produces a tensorial addition of t1...