|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r83647 - sandbox/precision/libs/precision/doc
From: e_float_at_[hidden]
Date: 2013-03-30 09:23:09
Author: christopher_kormanyos
Date: 2013-03-30 09:23:08 EDT (Sat, 30 Mar 2013)
New Revision: 83647
URL: http://svn.boost.org/trac/boost/changeset/83647
Log:
Proposal is now more clear and offers more flexibility regarding 754 conformance.
Text files modified:
sandbox/precision/libs/precision/doc/precision.qbk | 16 ++++++++++++----
1 files changed, 12 insertions(+), 4 deletions(-)
Modified: sandbox/precision/libs/precision/doc/precision.qbk
==============================================================================
--- sandbox/precision/libs/precision/doc/precision.qbk (original)
+++ sandbox/precision/libs/precision/doc/precision.qbk 2013-03-30 09:23:08 EDT (Sat, 30 Mar 2013)
@@ -70,7 +70,7 @@
in __IEEE_floating_point.
The optional floating-point `typedef`s having specified widths
-are to be contained in a new standard library header `<cstdfloat>`.
+are to be contained in a [*new standard library header `<cstdfloat>`].
They will be defined in the `std` namespace.
[*New C-style macros to facilitate initialization]
@@ -205,6 +205,13 @@
and exponent bits can be confirmed as IEEE754 by checking
`std::numeric_limits<type>::is_iec559 == true`, and the byte-order.
+[note __IEEE_floating_point prescribes a method of precision extension,
+that allows for conforming types other than `binary16`, `binary32`, `binary64`, and `binary128`.
+Furthermore, paragraph 3.7 in __IEEE_floating_point states:
+[*Language standards should define mechanisms supporting extendable precision
+for each supported radix]. This proposal embodies a potential way for
+C++ to adhere to this requirement.]
+
We will now consider several examples showing how
various implementations might introduce some of the
optional floating-point `typedef`s having specified widths
@@ -448,7 +455,8 @@
can only have `true` for the value of `std::numeric_limits<>::is_iec559`
if its underlying type (be it `float`, `double`, `long double` or
an implementation-dependent type) conforms with one of
-`binary16`, `binary32`, `binary64`, or `binary128`
+`binary16`, `binary32`, `binary64`, or `binary128`,
+or the prescribed method of precision extension
in __IEEE_floating_point.]
[endsect] [/section:limitsinterop Interoperation with <limits>]
@@ -541,8 +549,8 @@
also support a 24-bit floating-point type. Here, an extension
of the optional floating-point `typedef`s with specified widths
could include `float24_t`. This would be equivalent to
-three-quarter precision floating-point, which is not
-specified in __IEEE_floating_point.
+three-quarter precision floating-point, the layout of which should
+adhere to the method of precision extension specified in __IEEE_floating_point.
[endsect] [/section:lowerprecision Extending to lower precision]
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk