diff options
author | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2016-06-06 09:28:17 +0000 |
---|---|---|
committer | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2016-06-06 09:28:17 +0000 |
commit | ea6ee4a8b997f9f7c7ecf15e6b1f8bc218c9a021 (patch) | |
tree | 78f0f3a8058e177d8b65522de42f6158bd8068b9 /TODO | |
parent | c1fa7d5ee54b4bc66d200ee7635a48f2fb4fe058 (diff) | |
download | mpfr-ea6ee4a8b997f9f7c7ecf15e6b1f8bc218c9a021.tar.gz |
[TODO] Added "faithful rounding", with information about its definition
and implementation.
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10432 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'TODO')
-rw-r--r-- | TODO | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -451,6 +451,24 @@ Table of contents: * In debug mode, MPFR would check that the result is exact (i.e. that the ternary value is 0). +- new "rounding mode" MPFR_RNDF (faithful rounding)? + This is not really a rounding mode since it is non-deterministic. The + goal is to avoid the Table Maker's Dilemma in internal computations. + The definition of faithful rounding of a real number x is: return either + RNDD(x) or RNDU(x). This means that if x is exactly representable, one + returns x exactly. In MPFR, the ternary value should be unspecified for + efficiency reasons. + Note: One typically implements faithful rounding by computing an + approximation to the result with some adequately chosen error bound, + then by rounding this approximation to nearest. + Concerning the choice of the error bound, if the result x is equal to + 1 + t, where t is a very small positive number, then the error bound + needs to be at most ulp(1)/4 + t. Since t can be arbitrarily small, + the error bound needs to be at most ulp(1)/4. And this error bound + is sufficient in all cases. Note that with the even rounding rule or + rounding away from zero, it is not needed to relax the condition when + x is exactly representable. + - add tests of the ternary value for constants - When doing Extensive Check (--enable-assert=full), since all the |