1 #ifndef OSL_MISC_MATH_H
2 #define OSL_MISC_MATH_H
16 template<
unsigned int N,
class T>
26 return temp * temp * x;
29 template<
class T,
int N>
36 return sum + nthPower<N>(current -
mean);
40 template<
class T,
int N,
class Iter_T>
43 const size_t cnt = distance(first, last);
47 template<
class T,
class Iter_T>
50 return nthMoment<T, 2>(first, last, mean);
53 template<
class T,
class Iter_T>
59 template<
class T,
class Iter_T>
62 const T m3 = nthMoment<T, 3>(first, last, mean);
63 const T m2 = nthMoment<T, 2>(first, last, mean);
64 return m3 / (m2 * sqrt(m2));
67 template<
class T,
class Iter_T>
70 const T m4 = nthMoment<T, 4>(first, last, mean);
71 const T m2 = nthMoment<T, 2>(first, last, mean);
72 return m4 / (m2 * m2) - 3;
75 template<
class T,
class Iter_T>
77 T& sum, T& mean, T&var, T&std_dev, T& skew, T& kurt)
79 const size_t cnt = distance(first, last);
80 sum = accumulate(first, last, T());