From 46052334c316fcdbfc4ff58e7c6f67b26cf77195 Mon Sep 17 00:00:00 2001 From: Thibault Hallouin <thibault.hallouin@inrae.fr> Date: Wed, 21 Dec 2022 15:01:53 +0100 Subject: [PATCH] enforce container ranks for evald and evalp --- include/evalhyd/evald.hpp | 5 ++++- include/evalhyd/evalp.hpp | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/include/evalhyd/evald.hpp b/include/evalhyd/evald.hpp index ae72bea..e2f5ddd 100644 --- a/include/evalhyd/evald.hpp +++ b/include/evalhyd/evald.hpp @@ -3,6 +3,7 @@ #include <unordered_map> #include <vector> +#include <type_traits> #include <xtensor/xexpression.hpp> #include <xtensor/xtensor.hpp> @@ -144,7 +145,9 @@ namespace evalhyd /// evalhyd::evald(obs, prd, {"NSE"}, "none", 1, -9, msk); /// /// \endrst - template <class D2, class B2> + template <class D2, class B2, + std::enable_if_t<xt::has_rank_t<D2, 2>::value, int> = 0, + std::enable_if_t<xt::has_rank_t<B2, 2>::value, int> = 0> std::vector<xt::xarray<double>> evald( const xt::xexpression<D2>& q_obs, const xt::xexpression<D2>& q_prd, diff --git a/include/evalhyd/evalp.hpp b/include/evalhyd/evalp.hpp index d5e4831..908ac99 100644 --- a/include/evalhyd/evalp.hpp +++ b/include/evalhyd/evalp.hpp @@ -122,7 +122,10 @@ namespace evalhyd /// evalhyd::evalp(obs, prd, {"CRPS"}); /// /// \endrst - template <class D2, class D4, class B4> + template <class D2, class D4, class B4, + std::enable_if_t<xt::has_rank_t<D2, 2>::value, int> = 0, + std::enable_if_t<xt::has_rank_t<D4, 4>::value, int> = 0, + std::enable_if_t<xt::has_rank_t<B4, 4>::value, int> = 0> std::vector<xt::xarray<double>> evalp( const xt::xexpression<D2>& q_obs, const xt::xexpression<D4>& q_prd, -- GitLab