From 06e82f803f06a731e3a49b3818be3e45fc577a6c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org>
Date: Mon, 15 Jul 2024 18:20:26 +0200
Subject: [PATCH] Simplification using std::accumulate

---
 mex/sources/libkorder/tl/equivalence.cc | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/mex/sources/libkorder/tl/equivalence.cc b/mex/sources/libkorder/tl/equivalence.cc
index 5728679fc6..d471bcca84 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. */
-- 
GitLab