All is good [Software]

posted by Helmut Homepage – Vienna, Austria, 2020-12-11 01:36 (1225 d 00:39 ago) – Posting: # 22137
Views: 8,924

Hi Ohlbe,

❝ … the same happens in [image]:


So you installed this goody at last? :-D

0==(0.5-0.4-0.1)

[1] FALSE

0==(-0.4-0.1+0.5)

[1] TRUE


❝ Are they first calculating -0.4-0.1=-0.5, which is nicely binarily coded, then -0.5+0.5=0 ?


Would have to dive into the lexer of the source of base-[image]. Likely not clever enough anyway. If you want to explore the matter, type ?Syntax, ?Arithmetic, ?Comparison, and their relatives. See also the (in)famous FAQ 7.31. However, the `==` operator should not be used to compare two objects for identity. Otherwise we fall into the binary trap:

x1 <- (0.5-0.4-0.1)
x2 <- (-0.4-0.1+0.5)
x1; x2
[1] -2.775558e-17
[1] 0

x1 == x2
[1] FALSE
identical(x1, x2)
[1] FALSE
all.equal(x1, x2)
[1] TRUE

Only the last function compares to the numeric precision of the machine* and this is what we want and the best we can hope for…



Dif-tor heh smusma 🖖🏼 Довге життя Україна! [image]
Helmut Schütz
[image]

The quality of responses received is directly proportional to the quality of the question asked. 🚮
Science Quotes

Complete thread:

UA Flag
Activity
 Admin contact
22,986 posts in 4,823 threads, 1,667 registered users;
91 visitors (1 registered, 90 guests [including 7 identified bots]).
Forum time: 03:16 CEST (Europe/Vienna)

The only way to comprehend what mathematicians mean by Infinity
is to contemplate the extent of human stupidity.    Voltaire

The Bioequivalence and Bioavailability Forum is hosted by
BEBAC Ing. Helmut Schütz
HTML5