Skip to content

Commit 9b192b0

Browse files
authored
Merge pull request #1439 from boostorg/implicit_conversions
Make implicit integral to `Real` conversions explicit
2 parents d9fc176 + 2c96742 commit 9b192b0

1 file changed

Lines changed: 16 additions & 16 deletions

File tree

include/boost/math/statistics/detail/single_pass.hpp

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ template<typename ReturnType, typename ForwardIterator>
3434
ReturnType mean_sequential_impl(ForwardIterator first, ForwardIterator last)
3535
{
3636
const std::size_t elements {static_cast<std::size_t>(std::distance(first, last))};
37-
std::valarray<ReturnType> mu {0, 0, 0, 0};
38-
std::valarray<ReturnType> temp {0, 0, 0, 0};
37+
std::valarray<ReturnType> mu {ReturnType(0), ReturnType(0), ReturnType(0), ReturnType(0)};
38+
std::valarray<ReturnType> temp {ReturnType(0), ReturnType(0), ReturnType(0), ReturnType(0)};
3939
ReturnType i {1};
4040
const ForwardIterator end {std::next(first, elements - (elements % 4))};
4141
ForwardIterator it {first};
@@ -70,9 +70,9 @@ ReturnType variance_sequential_impl(ForwardIterator first, ForwardIterator last)
7070
using Real = typename std::tuple_element<0, ReturnType>::type;
7171

7272
Real M = *first;
73-
Real Q = 0;
74-
Real k = 2;
75-
Real M2 = 0;
73+
Real Q = Real(0);
74+
Real k = Real(2);
75+
Real M2 = Real(0);
7676
std::size_t n = 1;
7777

7878
for(auto it = std::next(first); it != last; ++it)
@@ -98,9 +98,9 @@ ReturnType first_four_moments_sequential_impl(ForwardIterator first, ForwardIter
9898
using Size = typename std::tuple_element<4, ReturnType>::type;
9999

100100
Real M1 = *first;
101-
Real M2 = 0;
102-
Real M3 = 0;
103-
Real M4 = 0;
101+
Real M2 = Real(0);
102+
Real M3 = Real(0);
103+
Real M4 = Real(0);
104104
Size n = 2;
105105
for (auto it = std::next(first); it != last; ++it)
106106
{
@@ -215,8 +215,8 @@ ReturnType skewness_sequential_impl(ForwardIterator first, ForwardIterator last)
215215
BOOST_MATH_ASSERT_MSG(first != last, "At least one sample is required to compute skewness.");
216216

217217
ReturnType M1 = *first;
218-
ReturnType M2 = 0;
219-
ReturnType M3 = 0;
218+
ReturnType M2 = ReturnType(0);
219+
ReturnType M3 = ReturnType(0);
220220
ReturnType n = 2;
221221

222222
for (auto it = std::next(first); it != last; ++it)
@@ -246,8 +246,8 @@ template<typename ReturnType, typename ForwardIterator>
246246
ReturnType gini_coefficient_sequential_impl(ForwardIterator first, ForwardIterator last)
247247
{
248248
ReturnType i = 1;
249-
ReturnType num = 0;
250-
ReturnType denom = 0;
249+
ReturnType num = ReturnType(0);
250+
ReturnType denom = ReturnType(0);
251251

252252
for(auto it = first; it != last; ++it)
253253
{
@@ -273,8 +273,8 @@ ReturnType gini_range_fraction(ForwardIterator first, ForwardIterator last, std:
273273
using Real = typename std::tuple_element<0, ReturnType>::type;
274274

275275
std::size_t i = starting_index + 1;
276-
Real num = 0;
277-
Real denom = 0;
276+
Real num = Real(0);
277+
Real denom = Real(0);
278278

279279
for(auto it = first; it != last; ++it)
280280
{
@@ -340,8 +340,8 @@ ReturnType gini_coefficient_parallel_impl(ExecutionPolicy&&, ForwardIterator fir
340340
return gini_range_fraction<range_tuple>(it, last, (num_threads - 1)*elements_per_thread);
341341
}));
342342

343-
ReturnType num = 0;
344-
ReturnType denom = 0;
343+
ReturnType num = ReturnType(0);
344+
ReturnType denom = ReturnType(0);
345345

346346
for(std::size_t i = 0; i < future_manager.size(); ++i)
347347
{

0 commit comments

Comments
 (0)