[cfp-interest 3667] Confusingly long sentence in F.3#6
Damian McGuckin
damianm at esi.com.au
Fri Oct 17 13:57:56 PDT 2025
in F.3#6, we have a sentence which uses the word "provide" in 2 different
contexts on which even a native speaker did a double take. I note that it
is missing a conjunction and has plurality issues as well which only adds
to the confusion. One proof reader even took a while to understand what was
being said.
The C classification macros fpclassify, iscanonical, isfinite,
isinf, isnan, isnormal, issignaling, issubnormal, iszero,
and signbit provide the ISO/IEC 60559 operations indicated in
Table F.2 provided their arguments are in the format of their
semantic type. These macros raise no floating-point exceptions,
even if an argument is a signaling NaN.
This sentence had a similar but different enough strructure to F.3#1 which
appeared 5 paragraphs earlier. In one, 'shown' is used, and in the other,
'indicated'
C operators, functions, and function-like macros provide
operations specified by ISO/IEC 60559 as shown in Table F.2.
This forces the reader to question the underlying reason when in fact,
there is none, an unnecessary complication.
Getting back to #6, it first uses "provide" in the sense of
making available some functionality
and the second uses 'provide' to mean that
A is valid as long as B is valid
Totally different meanings. I could replace "as long as" by "only if".
Another question is whether Table F.2 contains
ISO/IEC 60559 operations
or
operations specified in ISO/IEC 60559
The answer is both but to describe the same thing in two ways within a
few sentences of one another is confusing.
Looking at #6, changing that use of "provided", fixing plurality and
temporarily spliting the sentence into phrases, it could be:
Each of the C classification macros
fpclassify, iscanonical, ... and signbit
provides the ISO/IEC 60559 operation
indicated in Table F.2
as long as its argument is in the format of its semantic type.
These macros raise no floating-point exceptions,
even if an argument is a signaling NaN.
Is this still correct? I used ellipsis (...) to make it easier to read.
Is there a more succinct way to say this?
Using similar wording for #1, we then have
C operators, functions, and function-like macros that are
bound to ISO/IEC 60559 operations appear in Table F.2.
This highlights that Table F.2 is a binding.
Trying to shrink the sentence length of #6 for readability, one could write:
A C classification macro like fpclassify
provides the ISO/IEC 60559 operation
indicated in Table F.2
as long as its argument is in the format of its semantic type.
Likewise for iscanonical, isfinite, isinf, isnan, isnormal,
issignaling, issubnormal, iszero, and signbit.
These macros raise no floating-point exceptions,
even if an argument is a signaling NaN.
Please feel free to provide a more readable alternative.
Thanks - Damian
More information about the cfp-interest
mailing list