All is good [Software]

posted by Helmut Homepage – Vienna, Austria, 2020-12-11 01:36 (1311 d 00:13 ago) – Posting: # 22137
Views: 9,827

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
23,099 posts in 4,857 threads, 1,646 registered users;
68 visitors (0 registered, 68 guests [including 8 identified bots]).
Forum time: 02:49 CEST (Europe/Vienna)

Genius is one per cent inspiration and ninety-nine per cent perspiration.
Accordingly, a ‘genius’ is often merely a talented person
who has done all of his or her homework.    Thomas Alva Edison

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