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):
>(as.numeric(ev1%*%ev2))==(sum(ev1*ev2)) [1] FALSE >all.equal((as.numeric(ev1%*%ev2)),(sum(ev1*ev2))) [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: >xf1<-10*ev1 >xf2<-10*ev2 >(as.numeric(xf1%*%xf2))==(sum(xf1*xf2)) [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" <[EMAIL PROTECTED]> >To: Talbot Katz <[EMAIL PROTECTED]> >CC: r-help@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: > >>Hi. >> >>I recently tried the following in R 2.5.1 on Windows XP: >> >>>ev2<-c(0.8,-0.6) >>>ev1<-c(0.6,0.8) >>>ev1%*%ev2 >> [,1] >>[1,] -2.664427e-17 >>>sum(ev1*ev2) >>[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 >>this >>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 %*%? >> >>Thanks! >> >>-- TMK -- >>212-460-5430 home >>917-656-5351 cell >> >>______________________________________________ >>R-help@stat.math.ethz.ch mailing list >>https://stat.ethz.ch/mailman/listinfo/r-help >>PLEASE do read the posting guide >>http://www.R-project.org/posting-guide.html >>and provide commented, minimal, self-contained, reproducible code. >> > >Charles C. Berry (858) 534-2098 > Dept of Family/Preventive >Medicine >E mailto:[EMAIL PROTECTED] UC San Diego >http://famprevmed.ucsd.edu/faculty/cberry/ La Jolla, San Diego 92093-0901 > > ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.