On 20/08/2020 3:42 a.m., Shaami wrote:

> Hi Dear

>

> I am facing a floating-point problem related to the sum of probabilities.

> It is really difficult to prove that sum of probabilities is 1 because of

> some minor differences. The MWE is as follows.

>

>> p1=0.99999999

>> p2=0.00000000003> p1+p2==1[1] FALSE

>

> The sum of probabilities is approximately 1. The difference from 1 is

> 1-p1-p2 = 9.97e-09, that is very small. I need to apply the sum of

> probabilities conditions in my many functions. But execution is halted

> because of floating point.

>

> Could anyone please guide about that?

Use the approximate test

isTRUE(all.equal(p1+p2, 1))

If the default tolerance of sqrt(.Machine$double.eps) (about 1.5e-8) is

wrong, change it:

isTRUE(all.equal(p1+p2, 1, tolerance = 0.1))

This says anything between 0.9 and 1.1 is equal to 1.

Duncan Murdoch

______________________________________________

[hidden email] mailing list -- To UNSUBSCRIBE and more, see

https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide

http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.