From 22f9075dcb4502e1b205e8ac3d2515887553f8a1 Mon Sep 17 00:00:00 2001
From: Thibault Hallouin <thibault.hallouin@inrae.fr>
Date: Thu, 29 Dec 2022 13:50:23 +0100
Subject: [PATCH] replace bitwise operators with logical operators where
 relevant

---
 .../evalhyd/detail/determinist/evaluator.hpp  |  2 +-
 include/evalhyd/detail/masks.hpp              | 32 +++++++++----------
 .../evalhyd/detail/probabilist/evaluator.hpp  |  2 +-
 include/evalhyd/detail/uncertainty.hpp        |  2 +-
 4 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/include/evalhyd/detail/determinist/evaluator.hpp b/include/evalhyd/detail/determinist/evaluator.hpp
index 71a93c1..74b92d0 100644
--- a/include/evalhyd/detail/determinist/evaluator.hpp
+++ b/include/evalhyd/detail/determinist/evaluator.hpp
@@ -77,7 +77,7 @@ namespace evalhyd
                 for (std::size_t m = 0; m < n_msk; m++)
                 {
                     xt::view(t_msk, m) =
-                            xt::where(obs_nan | prd_nan,
+                            xt::where(obs_nan || prd_nan,
                                       false, xt::view(t_msk, m));
                 }
             };
diff --git a/include/evalhyd/detail/masks.hpp b/include/evalhyd/detail/masks.hpp
index 46313e5..24a0e87 100644
--- a/include/evalhyd/detail/masks.hpp
+++ b/include/evalhyd/detail/masks.hpp
@@ -303,43 +303,43 @@ namespace evalhyd
                     {
                         if ((opr1 == "<") && (opr2 == ">"))
                         {
-                            t_msk = xt::where((q < val1) & (q > val2),
+                            t_msk = xt::where((q < val1) && (q > val2),
                                               1, t_msk);
                         }
                         else if ((opr1 == "<=") && (opr2 == ">"))
                         {
-                            t_msk = xt::where((q <= val1) & (q > val2),
+                            t_msk = xt::where((q <= val1) && (q > val2),
                                               1, t_msk);
                         }
                         else if ((opr1 == "<") && (opr2 == ">="))
                         {
-                            t_msk = xt::where((q < val1) & (q >= val2),
+                            t_msk = xt::where((q < val1) && (q >= val2),
                                               1, t_msk);
                         }
                         else if ((opr1 == "<=") && (opr2 == ">="))
                         {
-                            t_msk = xt::where((q <= val1) & (q >= val2),
+                            t_msk = xt::where((q <= val1) && (q >= val2),
                                               1, t_msk);
                         }
 
                         if ((opr2 == "<") && (opr1 == ">"))
                         {
-                            t_msk = xt::where((q < val2) & (q > val1),
+                            t_msk = xt::where((q < val2) && (q > val1),
                                               1, t_msk);
                         }
                         else if ((opr2 == "<=") && (opr1 == ">"))
                         {
-                            t_msk = xt::where((q <= val2) & (q > val1),
+                            t_msk = xt::where((q <= val2) && (q > val1),
                                               1, t_msk);
                         }
                         else if ((opr2 == "<") && (opr1 == ">="))
                         {
-                            t_msk = xt::where((q < val2) & (q >= val1),
+                            t_msk = xt::where((q < val2) && (q >= val1),
                                               1, t_msk);
                         }
                         else if ((opr2 == "<=") && (opr1 == ">="))
                         {
-                            t_msk = xt::where((q <= val2) & (q >= val1),
+                            t_msk = xt::where((q <= val2) && (q >= val1),
                                               1, t_msk);
                         }
                     }
@@ -347,43 +347,43 @@ namespace evalhyd
                     {
                         if ((opr1 == "<") && (opr2 == ">"))
                         {
-                            t_msk = xt::where((q < val1) | (q > val2),
+                            t_msk = xt::where((q < val1) || (q > val2),
                                               1, t_msk);
                         }
                         else if ((opr1 == "<=") && (opr2 == ">"))
                         {
-                            t_msk = xt::where((q <= val1) | (q > val2),
+                            t_msk = xt::where((q <= val1) || (q > val2),
                                               1, t_msk);
                         }
                         else if ((opr1 == "<") && (opr2 == ">="))
                         {
-                            t_msk = xt::where((q < val1) | (q >= val2),
+                            t_msk = xt::where((q < val1) || (q >= val2),
                                               1, t_msk);
                         }
                         else if ((opr1 == "<=") && (opr2 == ">="))
                         {
-                            t_msk = xt::where((q <= val1) & (q >= val2),
+                            t_msk = xt::where((q <= val1) && (q >= val2),
                                               1, t_msk);
                         }
 
                         if ((opr2 == "<") && (opr1 == ">"))
                         {
-                            t_msk = xt::where((q < val2) | (q > val1),
+                            t_msk = xt::where((q < val2) || (q > val1),
                                               1, t_msk);
                         }
                         else if ((opr2 == "<=") && (opr1 == ">"))
                         {
-                            t_msk = xt::where((q <= val2) | (q > val1),
+                            t_msk = xt::where((q <= val2) || (q > val1),
                                               1, t_msk);
                         }
                         else if ((opr2 == "<") && (opr1 == ">="))
                         {
-                            t_msk = xt::where((q < val2) | (q >= val1),
+                            t_msk = xt::where((q < val2) || (q >= val1),
                                               1, t_msk);
                         }
                         else if ((opr2 == "<=") && (opr1 == ">="))
                         {
-                            t_msk = xt::where((q <= val2) | (q >= val1),
+                            t_msk = xt::where((q <= val2) || (q >= val1),
                                               1, t_msk);
                         }
                     }
diff --git a/include/evalhyd/detail/probabilist/evaluator.hpp b/include/evalhyd/detail/probabilist/evaluator.hpp
index ca209d0..1cce161 100644
--- a/include/evalhyd/detail/probabilist/evaluator.hpp
+++ b/include/evalhyd/detail/probabilist/evaluator.hpp
@@ -104,7 +104,7 @@ namespace evalhyd
                     );
                 }
 
-                auto msk_nan = xt::where(obs_nan | xt::row(prd_nan, 0))[0];
+                auto msk_nan = xt::where(obs_nan || xt::row(prd_nan, 0))[0];
 
                 xt::view(t_msk, xt::all(), xt::keep(msk_nan)) = false;
             };
diff --git a/include/evalhyd/detail/uncertainty.hpp b/include/evalhyd/detail/uncertainty.hpp
index 9599b44..8a86af5 100644
--- a/include/evalhyd/detail/uncertainty.hpp
+++ b/include/evalhyd/detail/uncertainty.hpp
@@ -90,7 +90,7 @@ namespace evalhyd
                 );
 
                 xt::xtensor<bool, 1> wdw =
-                        (x_timepoints >= start) & (x_timepoints < end);
+                        (x_timepoints >= start) && (x_timepoints < end);
 
                 // check that year is complete (without a rigorous leap year check)
                 int n_days = xt::sum(wdw)();
-- 
GitLab