diff --git a/include/evalhyd/evald.hpp b/include/evalhyd/evald.hpp index e2f5ddd73e596c5928d8ca0b811b1460181fe506..8ef12b0e561a65ec77231945a1f7eab41e27e22d 100644 --- a/include/evalhyd/evald.hpp +++ b/include/evalhyd/evald.hpp @@ -216,7 +216,7 @@ namespace evalhyd // else if m_cdt provided, use them to generate t_msk else if (m_cdt.size() > 0) { - xt::xtensor<bool, 2> c_msk = xt::zeros<bool>({n_msk, n_tim}); + B2 c_msk = xt::zeros<bool>({n_msk, n_tim}); for (int m = 0; m < n_msk; m++) xt::view(c_msk, m) = @@ -228,7 +228,7 @@ namespace evalhyd } // if neither t_msk nor m_cdt provided, generate dummy mask else - return xt::xtensor<bool, 2>{xt::ones<bool>({std::size_t{1}, n_tim})}; + return B2({xt::ones<bool>({std::size_t{1}, n_tim})}); }; auto msk = gen_msk(); @@ -242,7 +242,7 @@ namespace evalhyd } else if ( transform == "sqrt" ) { - return xt::eval(xt::sqrt(q)); + return D2(xt::sqrt(q)); } else if ( transform == "inv" ) { @@ -250,7 +250,7 @@ namespace evalhyd // determine an epsilon value to avoid zero divide epsilon = xt::mean(q_obs_)() * 0.01; - return xt::eval(1. / (q + epsilon)); + return D2(1. / (q + epsilon)); } else if ( transform == "log" ) { @@ -258,7 +258,7 @@ namespace evalhyd // determine an epsilon value to avoid log zero epsilon = xt::mean(q_obs_)() * 0.01; - return xt::eval(xt::log(q + epsilon)); + return D2(xt::log(q + epsilon)); } else if ( transform == "pow" ) { @@ -268,11 +268,11 @@ namespace evalhyd // determine an epsilon value to avoid zero divide epsilon = xt::mean(q_obs_)() * 0.01; - return xt::eval(xt::pow(q + epsilon, exponent)); + return D2(xt::pow(q + epsilon, exponent)); } else { - return xt::eval(xt::pow(q, exponent)); + return D2(xt::pow(q, exponent)); } } else @@ -283,8 +283,8 @@ namespace evalhyd } }; - auto obs = q_transform(q_obs_); - auto prd = q_transform(q_prd_); + const D2 obs = q_transform(q_obs_); + const D2 prd = q_transform(q_prd_); // generate bootstrap experiment if requested std::vector<xt::xkeep_slice<int>> exp; diff --git a/include/evalhyd/evalp.hpp b/include/evalhyd/evalp.hpp index 908ac997ab4294f7e41f1eae6590bc56a7008fbc..fdf58215c9f0de240ef1d6242b89e5425dd38ce7 100644 --- a/include/evalhyd/evalp.hpp +++ b/include/evalhyd/evalp.hpp @@ -246,7 +246,7 @@ namespace evalhyd // generate masks from conditions if provided auto gen_msk = [&]() { - xt::xtensor<bool, 4> c_msk = xt::zeros<bool>({n_sit, n_ltm, n_msk, n_tim}); + B4 c_msk = xt::zeros<bool>({n_sit, n_ltm, n_msk, n_tim}); if (m_cdt.size() > 0) for (int s = 0; s < n_sit; s++) for (int l = 0; l < n_ltm; l++) @@ -259,7 +259,7 @@ namespace evalhyd ); return c_msk; }; - const xt::xtensor<bool, 4> c_msk = gen_msk(); + const B4 c_msk = gen_msk(); // generate bootstrap experiment if requested std::vector<xt::xkeep_slice<int>> b_exp;