diff --git a/mex/sources/libkorder/tl/equivalence.cc b/mex/sources/libkorder/tl/equivalence.cc index 5728679fc69a7ec8bc37c626d9cf2290bf2ff3a7..d471bcca84a03619718dd1b049be8d59411e5351 100644 --- a/mex/sources/libkorder/tl/equivalence.cc +++ b/mex/sources/libkorder/tl/equivalence.cc @@ -23,6 +23,7 @@ #include "tl_exception.hh" #include <iostream> +#include <numeric> int OrdSequence::operator[](int i) const @@ -102,11 +103,8 @@ OrdSequence::has(int i) const double OrdSequence::average() const { - double res = 0; - for (int i : data) - res += i; - TL_RAISE_IF(data.size() == 0, "Attempt to take average of empty class in OrdSequence::average"); - return res / data.size(); + TL_RAISE_IF(data.empty(), "Attempt to take average of empty class in OrdSequence::average"); + return std::accumulate(data.begin(), data.end(), 0.) / data.size(); } /* Debug print. */