Change comparison operator to avoid problematic p=0 edge case #1799
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Since
rand()
has been (at this point) agreed to return a value in [0,1) , there is the remote possibility of returningtrue
when sampling aBernoulli(0.0)
distribution if we use<=
. Changing this to<
removes this possibility.On the other side of [0,1) ,
Bernoulli(1.0)
still always returnstrue
as expected.An argument against accepting this PR might be the change in probability of returning
true
on all intermediate values. As the sampling is not mathematically perfect but limited to computer representation, the currentrand()
might be closer to mathematical Bernoulli(p) with<=
.