Commit 61d1e3ac authored by fbourgin's avatar fbourgin
Browse files

use broadcasting to find the q_lvl indices in q_prd

parent 64551102
1 merge request!9Resolve "evaluation of quantiles prediction"
Pipeline #63283 failed with stage
in 2 minutes and 19 seconds
Showing with 5 additions and 3 deletions
+5 -3
...@@ -66,7 +66,9 @@ namespace evalhyd ...@@ -66,7 +66,9 @@ namespace evalhyd
{ {
for (std::size_t i = 0; i < n_itv; i++) for (std::size_t i = 0; i < n_itv; i++)
{ {
auto res = xt::where(xt::equal(xt::view(quantiles, i), q_lvl)); 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) if (res.size() != 2)
{ {
throw std::runtime_error( throw std::runtime_error(
...@@ -76,9 +78,9 @@ namespace evalhyd ...@@ -76,9 +78,9 @@ namespace evalhyd
} else } else
{ {
xt::view(itv_bnds, xt::all(), xt::all(), i, 0, xt::all()) = xt::view(itv_bnds, xt::all(), xt::all(), i, 0, xt::all()) =
xt::view(q_prd, res[0]); xt::view(q_prd, std::min(res[0][1], res[1][1]));
xt::view(itv_bnds, xt::all(), xt::all(), i, 1, xt::all()) = xt::view(itv_bnds, xt::all(), xt::all(), i, 1, xt::all()) =
xt::view(q_prd, res[1]); xt::view(q_prd, std::max(res[0][1], res[1][1]));
} }
} }
} }
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment