From 2388f65ee57453bd2ae760d77ea9efee2c741a4d Mon Sep 17 00:00:00 2001
From: fbourgin <francois.bourgin@inrae.fr>
Date: Thu, 24 Apr 2025 11:53:09 +0200
Subject: [PATCH] wip - debug

---
 .../evalhyd/detail/probabilist/intervals.hpp  | 28 +++++++++----------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/include/evalhyd/detail/probabilist/intervals.hpp b/include/evalhyd/detail/probabilist/intervals.hpp
index 0f76ec0..1c91aea 100644
--- a/include/evalhyd/detail/probabilist/intervals.hpp
+++ b/include/evalhyd/detail/probabilist/intervals.hpp
@@ -66,22 +66,22 @@ namespace evalhyd
                 {   
                     for (std::size_t i = 0; i < n_itv; i++)
                     {
-                    //auto a = xt::broadcast(xt::view(quantiles, i), std::vector<std::size_t>({q_lvl.size(), 2}));
-                    //auto b = xt::broadcast(q_lvl, std::vector<std::size_t>({2, q_lvl.size()}));
-                    //auto res = xt::where(xt::equal(a, xt::transpose(b)));
-                    //if (res.size() != 2) 
-                    //{
-                    //    throw std::runtime_error(
-                    //            "interval-based metric requested, "
-                    //            "but *c_lvl* not matching *q_lvl"
-                    //    );
-                    //} else 
-                    //{
+                    auto a = xt::broadcast(xt::view(quantiles, i), std::vector<std::size_t>({q_lvl.size(), 2}));
+                    auto b = xt::broadcast(q_lvl, std::vector<std::size_t>({2, q_lvl.size()}));
+                    auto res = xt::where(xt::equal(a, xt::transpose(b)));
+                    if (res.size() != 2) 
+                    {
+                        throw std::runtime_error(
+                                "interval-based metric requested, "
+                                "but *c_lvl* not matching *q_lvl"
+                        );
+                    } else 
+                    {
                         xt::view(itv_bnds, xt::all(), xt::all(), i, 0, xt::all()) =
-                                xt::view(q_prd, xt::all(), xt::all(), 0, xt::all());
+                                xt::view(q_prd, xt::all(), xt::all(), std::min(res[0][1], res[1][1], xt::all());
                         xt::view(itv_bnds, xt::all(), xt::all(), i, 1, xt::all()) = 
-                                xt::view(q_prd, xt::all(), xt::all(), 1, xt::all());
-                    //}
+                                xt::view(q_prd, xt::all(), xt::all(), std::max(res[0][1], res[1][1], xt::all());
+                    }
                     }
                 }
                 else
-- 
GitLab