fix weird compiler error of std.numeric.entropy

This commit is contained in:
Sebastian Wilzbach 2016-07-18 19:32:01 +02:00
parent f14f0dfd28
commit 11b4c1fb1e
2 changed files with 7 additions and 7 deletions

View file

@ -31,6 +31,6 @@ script:
# test code coverage
- (cd dmd && make -f posix.mak)
- (cd druntime && make -f posix.mak)
- (cd phobos && make -f posix.mak $(find std etc -name "*.d" | sed "s/[.]d$/.test/" | grep -vE '(std.encoding|net.curl)' ))
- (cd phobos && make -f posix.mak $(find std etc -name "*.d" | sed "s/[.]d$/.test/" | grep -vE '(std.algorithm.sorting|std.encoding|net.curl)' ))
after_success:
- (cd phobos && bash <(curl -s https://codecov.io/bash))

View file

@ -1923,10 +1923,10 @@ result is greater than or equal to $(D max).
ElementType!Range entropy(Range)(Range r) if (isInputRange!Range)
{
Unqual!(typeof(return)) result = 0.0;
foreach (e; r)
for (;!r.empty; r.popFront)
{
if (!e) continue;
result -= e * log2(e);
if (!r.front) continue;
result -= r.front * log2(r.front);
}
return result;
}
@ -1937,10 +1937,10 @@ if (isInputRange!Range &&
!is(CommonType!(ElementType!Range, F) == void))
{
Unqual!(typeof(return)) result = 0.0;
foreach (e; r)
for (;!r.empty; r.popFront)
{
if (!e) continue;
result -= e * log2(e);
if (!r.front) continue;
result -= r.front * log2(r.front);
if (result >= max) break;
}
return result;