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