rbugs09 at kreil.org
2009-Jun-19 11:35 UTC
[Rd] Floating point precision / guard digits? (PR#13771)
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+1+1==3[1] TRUE # binary floating point approximation underflows> .1+.1+.1==.3[1] FALSE> .1+.1+.1==.3[1] FALSE # binary floating point exact for certain numbers> .1+.1==.2[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.
Stavros Macrakis
2009-Jun-20 12:44 UTC
[Rd] Floating point precision / guard digits? (PR#13771)
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:> 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+1+1==3 > [1] TRUE > # binary floating point approximation underflows >> .1+.1+.1==.3 > [1] FALSE >> .1+.1+.1==.3 > [1] FALSE > # binary floating point exact for certain numbers >> .1+.1==.2 > [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. > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel >
landronimirc at gmail.com
2009-Jun-22 06:35 UTC
[Rd] Floating point precision / guard digits? (PR#13771)
On 6/20/09, Dr. D. P. Kreil <dpkreil at gmail.com> wrote:> you can suggest an online resource to help me use the right vocabulary > and better understand the fundamental concepts, I am of course >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
Charles Geyer
2009-Jun-22 16:49 UTC
[Rd] Floating point precision / guard digits? (PR#13771)
On Sat, 20 Jun 2009 08:44:21 -0400 Stavros Macrakis <macrakis at alum.mit.edu> wrote:> 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.Just for the record, the contributed package rcdd links the GMP (GNU multiprecision bignum) library and provides a crude interface, so it is "implemented in R", although, as you say, "most R calculations cannot use it". The rcdd package can do exact linear programming and other computational geometry operations. -- Charles Geyer Professor, School of Statistics University of Minnesota charlie at stat.umn.edu