[R] Matrix Multiplication, Floating-Point, etc.

Talbot Katz topkatz at msn.com
Mon Jul 30 19:54:54 CEST 2007

Thank you for responding!

I realize that floating point operations are often inexact, and indeed, the 
difference between the two answers is within the all.equal tolerance, as 
mentioned in FAQ 7.31 (cited by Charles):

[1] TRUE

I suppose that's good enough for numerical computation.  But I was still 
surprised to see that matrix multiplication (ev1%*%ev2) doesn't give the 
exact right answer, whereas sum(ev1*ev2) does give the exact answer.  I 
would've expected them to perform the same two multiplications and one 
addition.  But I guess that's not the case.

However, I did find that if I multiplied the two vectors by 10, making the 
entries integers (although the class was still "numeric" rather than 
"integer"), both computations gave equal answers of 0:

[1] TRUE

Perhaps the moral of the story is that one should exercise caution and keep 
track of significant digits.

--  TMK  --
212-460-5430	home
917-656-5351	cell

>From: "Charles C. Berry" <cberry at tajo.ucsd.edu>
>To: Talbot Katz <topkatz at msn.com>
>CC: r-help at stat.math.ethz.ch
>Subject: Re: [R] Matrix Multiplication, Floating-Point, etc.
>Date: Mon, 30 Jul 2007 09:27:42 -0700
>7.31 Why doesn't R think these numbers are equal?
>On Fri, 27 Jul 2007, Talbot Katz wrote:
>>I recently tried the following in R 2.5.1 on Windows XP:
>>              [,1]
>>[1,] -2.664427e-17
>>[1] 0
>>(I got the same result with R 2.4.1 on a different Windows XP machine.)
>>I expect this issue is very familiar and probably has been discussed in 
>>forum before.  Can someone please point me to some documentation or
>>discussion about this?  Is there some standard way to get the "correct"
>>answer from %*%?
>>--  TMK  --
>>212-460-5430	home
>>917-656-5351	cell
>>R-help at stat.math.ethz.ch mailing list
>>PLEASE do read the posting guide 
>>and provide commented, minimal, self-contained, reproducible code.
>Charles C. Berry                            (858) 534-2098
>                                             Dept of Family/Preventive 
>E mailto:cberry at tajo.ucsd.edu	            UC San Diego
>http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego 92093-0901

More information about the R-help mailing list