[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