Skip to content

Floating point precision / guard digits? (PR#13771)

6 messages · rbugs09 at kreil.org, Stavros Macrakis, Liviu Andronic +2 more

#
Full_Name: D Kreil
Version: 2.8.1 and 2.9.0
OS: Debian Linux
Submission from: (NULL) (141.244.140.179)


Group: Accuracy

I understand that most floating point numbers are approximated due to their
binary storage. On the other hand, I thought that modern math CPUs used guard
digits to protect against trivial underflows. Not true?

# integers, no problem
[1] TRUE
# binary floating point approximation underflows
[1] FALSE
[1] FALSE
# binary floating point exact for certain numbers
[1] TRUE

I know that safe code should not test for quality of floats. Still, is R
underutilizing the power of the underlying hardware?

Grateful for comments,
David.
1 day later
#
a) this is not a bug, so this is the wrong list

b) 'underflow' does not mean what you think it means.

c) guard digits and sticky bits do improve rounding behavior, but
floating point will always remain approximate.

d) if it is important to your application to perform exact arithmetic
on rational numbers (and I suspect it is not), you might want to use
that instead of floating-point. But even if implemented in R, most R
calculations cannot use it.

You may want to study up on floating-point arithmetic some more, though.

         -s
On 6/19/09, rbugs09 at kreil.org <rbugs09 at kreil.org> wrote:
#
Dear Stavros,

Thank you for your fast reply!

So if I request a calculation of "0.3-0.1-0.1-0.1" and I do not get 0,
that is not an issue of rounding / underflow (or whatever the correct
technical term would be for that behaviour)?

I thought that guard digits would mean that 0.3-0.1*31 should be
calculated in higher precision than the final representation of the
result, i.e., avoiding that this is not equal to 0?

I am sorry if I am not from the field and although I have had some
basic background in numerics that has been more than a decade ago. If
you can suggest an online resource to help me use the right vocabulary
and better understand the fundamental concepts, I am of course
grateful.

Best regards,
David.


2009/6/20 Stavros Macrakis <macrakis at alum.mit.edu>:
1 day later
#
On 6/20/09, Dr. D. P. Kreil <dpkreil at gmail.com> wrote:
There is in R the accuracy [1] package. It has a vignette (and paper)
dealing with various computational errors (in R).
Liviu

[1] http://cran.r-project.org/web/packages/accuracy/index.html
#
On Jun 20, 2009, at 6:45 , Dr. D. P. Kreil wrote:

            
Read the R FAQ 7.31. There is a reference there to a document you  
should read.

Kasper
#
Dear Liviu,

That's very helpful, thank you!

With best regards,
David

2009/6/22 Liviu Andronic <landronimirc at gmail.com>: