From f611db80622384ef6ff70d97693c0dbb421ba79f Mon Sep 17 00:00:00 2001
From: Thibault Hallouin <thibault.hallouin@inrae.fr>
Date: Tue, 19 Apr 2022 16:52:36 +0200
Subject: [PATCH] refactor function in namespace

---
 include/evalhyd/nse.hpp | 28 ++++++++++++++++++++++++++++
 include/nse.hpp         | 24 ------------------------
 2 files changed, 28 insertions(+), 24 deletions(-)
 create mode 100644 include/evalhyd/nse.hpp
 delete mode 100644 include/nse.hpp

diff --git a/include/evalhyd/nse.hpp b/include/evalhyd/nse.hpp
new file mode 100644
index 0000000..5d12416
--- /dev/null
+++ b/include/evalhyd/nse.hpp
@@ -0,0 +1,28 @@
+#include <vector>
+#include "xtensor/xexpression.hpp"
+#include "xtensor/xmath.hpp"
+
+namespace eh {
+
+    template <class A>
+    A nse(const xt::xexpression<A>& sim,
+          const xt::xexpression<A>& obs,
+          int axis = 0);
+
+    template <class A>
+    A nse(const xt::xexpression<A>& sim,
+          const xt::xexpression<A>& obs,
+          int axis)
+    {
+        const A& q_sim = sim.derived_cast();
+        const A& q_obs = obs.derived_cast();
+
+        A q_avg = xt::mean(q_obs, xt::keep_dims);
+
+        A f_num = xt::sum(xt::square(q_obs - q_sim), std::vector<int> { axis }, xt::keep_dims);
+        A f_den = xt::sum(xt::square(q_obs - q_avg), xt::keep_dims);
+
+        return 1 - (f_num / f_den);
+    }
+
+}
diff --git a/include/nse.hpp b/include/nse.hpp
deleted file mode 100644
index a775e89..0000000
--- a/include/nse.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-#include <vector>
-#include <xtensor/xexpression.hpp>
-#include <xtensor/xmath.hpp>
-
-template <class A>
-A nse(const xt::xexpression<A>& sim,
-      const xt::xexpression<A>& obs,
-      int axis = 0);
-
-template <class A>
-A nse(const xt::xexpression<A>& sim,
-      const xt::xexpression<A>& obs,
-      int axis)
-{
-    const A& q_sim = sim.derived_cast();
-    const A& q_obs = obs.derived_cast();
-
-    A q_avg = xt::mean(q_obs, xt::keep_dims);
-
-    A f_num = xt::sum(xt::square(q_obs - q_sim), std::vector<int> { axis }, xt::keep_dims);
-    A f_den = xt::sum(xt::square(q_obs - q_avg), xt::keep_dims);
-
-    return 1 - (f_num / f_den);
-}
-- 
GitLab