Re: [R] Decimal Accuracy Loss?

From: peter dalgaard <>
Date: Wed, 06 Apr 2011 18:21:49 +0200

On Apr 6, 2011, at 17:58 , Petr Savicky wrote:

> On Wed, Apr 06, 2011 at 11:33:48AM -0400, Brigid Mooney wrote:

>> This is hopefully a quick question on decimal accuracy. Is any
>> decimal accuracy lost when casting a numeric vector as a matrix? And
>> then again casting the result back to a numeric?
>> I'm finding that my calculation values are different when I run for
>> loops that manually calculate matrix multiplication as compared to
>> when I cast the vectors as matrices and multiply them using "%*%".
>> (The errors are very small, but the process is run iteratively
>> thousands of times, at which point the error between the two
>> differences becomes noticeable.)
>> I've read FAQ # 7.31 "Why doesn't R think these numbers are equal?",
>> but just want to confirm that the differences in values are due to
>> differences in the matrix multiplication operator and manual
>> calculation via for loops, rather than information that is lost when
>> casting a numeric as a matrix and back again.
> Others already confirmed that casting a numeric as a matrix and back
> again does not change the numbers. It is likely that the library
> operator "%*%" is more accurate than a straightforward for loop.
> For example, sum(x) uses a more accurate algorithm than iteration
> of s <- s + x[i] in double precision.

Even more likely, %*% is optimized for speed by reordering the additions and multiplications to take advantage of pipelining and CPU caches at several levels. This may or may not improve accuracy, but certainly does affect the last bits in the results.

Peter Dalgaard
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Email:  Priv:

______________________________________________ mailing list
PLEASE do read the posting guide
and provide commented, minimal, self-contained, reproducible code.
Received on Wed 06 Apr 2011 - 16:28:27 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Wed 06 Apr 2011 - 16:30:26 GMT.

Mailing list information is available at Please read the posting guide before posting to the list.

list of date sections of archive