Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 7 Jun 2004 01:30:28 GMT
From:      "Steven G. Kargl" <kargl@troutmask.apl.washington.edu>
To:        freebsd-standards@FreeBSD.org
Subject:   Re: standards/59797: Implement C99's round[f]() math fucntions
Message-ID:  <200406070130.i571USSY006070@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR standards/59797; it has been noted by GNATS.

From: "Steven G. Kargl" <kargl@troutmask.apl.washington.edu>
To: David Schultz <das@FreeBSD.ORG>
Cc: FreeBSD-gnats-submit@FreeBSD.ORG, freebsd-standards@FreeBSD.ORG
Subject: Re: standards/59797: Implement C99's round[f]() math fucntions
Date: Sun, 6 Jun 2004 18:28:23 -0700 (PDT)

 David Schultz wrote:
 > On Fri, Jun 04, 2004, David Schultz wrote:
 > > Sorry, I've put this off way too long.  The good news is that I'm
 > > now going to do something about it.  The bad news is that I found
 > > a significant bug in the proposed implementation.  Namely, round()
 > > and roundf() often get the wrong answer for halfway cases.  In
 > > IEEE-754 round-to-nearest mode, numbers that are halfway between
 > > two representable numbers are supposed to be rounded to even.
 > 
 > It seems I've paged out more material from my brain than I thought
 > since I last looked at this.  POSIX defines round() to
 > specifically *not* use the IEEE-754 round-to-nearest behavior.
 > Your implementation is absolutely correct, Steve, and it even gets
 > the exception flags right.  (I tested all positive inputs to
 > roundf(), probed inputs to round() uniformly at random for a few
 > minutes, and checked important special cases.)  I'll go ahead and
 > commit it with minor style and doc fixes.
 > 
 
 I would have to go back and review the PR for all the discussion,
 but I thought bde had proposed using rint(3) with an appropriate
 rounding mode.  Anyway, whatever you decide to do is fine with
 me. 
 
 BTW, thanks for the work on fenv.  Sorry, I couldn't provide a review.
 I did look at your patch, but it was way over my head.
 
 -- 
 Steve
 http://troutmask.apl.washington.edu/~kargl/



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200406070130.i571USSY006070>