Skip to content

Commit 70e609b

Browse files
Extra assert in mean computation wrt. ddof
1 parent 41fa9ce commit 70e609b

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

include/xtensor/xmath.hpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1890,16 +1890,19 @@ namespace detail {
18901890
const size_type size = e.size();
18911891
XTENSOR_ASSERT(static_cast<size_type>(ddof) <= size);
18921892
auto s = sum<T>(std::forward<E>(e), axes, es);
1893-
return detail::mean_division<T>(std::move(s), size - static_cast<size_type>(ddof));
1893+
return mean_division<T>(std::move(s), size - static_cast<size_type>(ddof));
18941894
}
18951895

18961896
template <class T, class E, class D, class EVS,
18971897
XTL_REQUIRES(is_reducer_options<EVS>, xtl::is_integral<D>)>
18981898
inline auto mean_noaxis(E&& e, const D& ddof, EVS es)
18991899
{
19001900
using value_type = typename std::conditional_t<std::is_same<T, void>::value, double, T>;
1901-
const auto size = e.size();
1902-
return sum<T>(std::forward<E>(e), es) / static_cast<value_type>(size - ddof);
1901+
using size_type = typename std::decay_t<E>::size_type;
1902+
const size_type size = e.size();
1903+
XTENSOR_ASSERT(static_cast<size_type>(ddof) <= size);
1904+
auto s = sum<T>(std::forward<E>(e), es);
1905+
return std::move(s) / static_cast<value_type>((size - static_cast<size_type>(ddof)));
19031906
}
19041907
}
19051908

0 commit comments

Comments
 (0)