Skip to content

Commit b2870b5

Browse files
committed
[macros, std] Create macros for ISO/IEC 60559 and ISO/IEC/IEEE 9945.
As a side effect, this corrects the title of ISO/IEC 60559(:2020), whose previous version was ISO/IEC/IEEE 60559:2011.
1 parent f41a619 commit b2870b5

File tree

7 files changed

+26
-24
lines changed

7 files changed

+26
-24
lines changed

source/basic.tex

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5229,9 +5229,9 @@
52295229
the range of that type is extended to all positive real numbers.
52305230
\begin{note}
52315231
Since negative and positive infinity are representable
5232-
in ISO/IEC/IEEE 60559 formats,
5232+
in \IsoFloatUndated{} formats,
52335233
all real numbers lie within the range of representable values of
5234-
a floating-point type adhering to ISO/IEC/IEEE 60559.
5234+
a floating-point type adhering to \IsoFloatUndated{}.
52355235
\end{note}
52365236

52375237
\pnum
@@ -5284,7 +5284,7 @@
52845284
\pnum
52855285
If the implementation supports an extended floating-point type\iref{basic.fundamental}
52865286
whose properties are specified by
5287-
the ISO/IEC/IEEE 60559 floating-point interchange format binary16,
5287+
the \IsoFloatUndated{} floating-point interchange format binary16,
52885288
then the \grammarterm{typedef-name} \tcode{std::float16_t}
52895289
is defined in the header \libheaderref{stdfloat} and names such a type,
52905290
the macro \mname{STDCPP_FLOAT16_T} is defined\iref{cpp.predefined}, and
@@ -5294,7 +5294,7 @@
52945294
\pnum
52955295
If the implementation supports an extended floating-point type
52965296
whose properties are specified by
5297-
the ISO/IEC/IEEE 60559 floating-point interchange format binary32,
5297+
the \IsoFloatUndated{} floating-point interchange format binary32,
52985298
then the \grammarterm{typedef-name} \tcode{std::float32_t}
52995299
is defined in the header \libheader{stdfloat} and names such a type,
53005300
the macro \mname{STDCPP_FLOAT32_T} is defined, and
@@ -5303,7 +5303,7 @@
53035303
\pnum
53045304
If the implementation supports an extended floating-point type
53055305
whose properties are specified by
5306-
the ISO/IEC/IEEE 60559 floating-point interchange format binary64,
5306+
the \IsoFloatUndated{} floating-point interchange format binary64,
53075307
then the \grammarterm{typedef-name} \tcode{std::float64_t}
53085308
is defined in the header \libheader{stdfloat} and names such a type,
53095309
the macro \mname{STDCPP_FLOAT64_T} is defined, and
@@ -5312,15 +5312,15 @@
53125312
\pnum
53135313
If the implementation supports an extended floating-point type
53145314
whose properties are specified by
5315-
the ISO/IEC/IEEE 60559 floating-point interchange format binary128,
5315+
the \IsoFloatUndated{} floating-point interchange format binary128,
53165316
then the \grammarterm{typedef-name} \tcode{std::float128_t}
53175317
is defined in the header \libheader{stdfloat} and names such a type,
53185318
the macro \mname{STDCPP_FLOAT128_T} is defined, and
53195319
the floating-point literal suffixes \tcode{f128} and \tcode{F128} are supported.
53205320

53215321
\pnum
53225322
If the implementation supports an extended floating-point type
5323-
with the properties, as specified by ISO/IEC/IEEE 60559, of
5323+
with the properties, as specified by \IsoFloatUndated{}, of
53245324
radix ($b$) of 2,
53255325
storage width in bits ($k$) of 16,
53265326
precision in bits ($p$) of 8,
@@ -5336,7 +5336,7 @@
53365336
A summary of the parameters for each type is given in \tref{basic.extended.fp}.
53375337
The precision $p$ includes the implicit 1 bit at the beginning of the significand,
53385338
so the storage used for the significand is $p-1$ bits.
5339-
ISO/IEC/IEEE 60559 does not assign a name for a type
5339+
\IsoFloatUndated{} does not assign a name for a type
53405340
having the parameters specified for \tcode{std::bfloat16_t}.
53415341
\end{note}
53425342
\begin{floattable}
@@ -5346,7 +5346,7 @@
53465346
\chdr{\tcode{float64_t}} & \chdr{\tcode{float128_t}} &
53475347
\rhdr{\tcode{bfloat16_t}} \\
53485348
\capsep
5349-
ISO/IEC/IEEE 60559 name & binary16 & binary32 & binary64 & binary128 & \\
5349+
\IsoFloatUndated{} name & binary16 & binary32 & binary64 & binary128 & \\
53505350
$k$, storage width in bits & 16 & 32 & 64 & 128 & 16 \\
53515351
$p$, precision in bits & 11 & 24 & 53 & 113 & 8 \\
53525352
$emax$, maximum exponent & 15 & 127 & 1023 & 16383 & 127 \\

source/intro.tex

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,18 +36,18 @@
3636
\item ISO/IEC 2382, \doccite{Information technology --- Vocabulary}
3737
\item ISO 8601-1:2019, \doccite{Date and time --- Representations for information interchange --- Part 1: Basic rules}
3838
\item \IsoC{}, \doccite{Information technology --- Programming languages --- C}
39-
\item ISO/IEC/IEEE 9945:2009, \doccite{Information Technology --- Portable Operating System Interface\begin{footnote}
39+
\item \IsoPosixUndated{}:2009, \doccite{Information Technology --- Portable Operating System Interface\begin{footnote}
4040
POSIX\textregistered\ is a registered trademark of
4141
the Institute of Electrical and Electronic Engineers, Inc.
4242
This information is given for the convenience of users of this document and
4343
does not constitute an endorsement by ISO or IEC of this product.
4444
\end{footnote}%
4545
(POSIX\textregistered) Base Specifications, Issue 7}
46-
\item ISO/IEC/IEEE 9945:2009/Cor 1:2013, \doccite{Information Technology --- Portable Operating System Interface
46+
\item \IsoPosixUndated{}:2009/Cor 1:2013, \doccite{Information Technology --- Portable Operating System Interface
4747
(POSIX\textregistered) Base Specifications, Issue 7 --- Technical Corrigendum 1}
48-
\item ISO/IEC/IEEE 9945:2009/Cor 2:2017, \doccite{Information Technology --- Portable Operating System Interface
48+
\item \IsoPosixUndated{}:2009/Cor 2:2017, \doccite{Information Technology --- Portable Operating System Interface
4949
(POSIX\textregistered) Base Specifications, Issue 7 --- Technical Corrigendum 2}
50-
\item ISO/IEC 60559:2020, \doccite{Information technology --- Microprocessor Systems --- Floating-Point arithmetic}
50+
\item \IsoFloatUndated{}:2020, \doccite{Information technology --- Microprocessor Systems --- Floating-Point arithmetic}
5151
\item ISO 80000-2:2019, \doccite{Quantities and units --- Part 2: Mathematics}
5252
% Other international standards.
5353
\item Ecma International, \doccite{ECMAScript

source/lib-intro.tex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
\end{floattable}
4747

4848
\pnum
49-
The operating system interface described in ISO/IEC/IEEE 9945:2009 is
49+
The operating system interface described in \IsoPosixUndated{}:2009 is
5050
hereinafter called \defn{POSIX}.
5151

5252
\pnum
@@ -2981,7 +2981,7 @@
29812981
or to a namespace within namespace
29822982
\tcode{posix}
29832983
unless otherwise specified. The namespace \tcode{posix} is reserved for use by
2984-
ISO/IEC/IEEE 9945 and other POSIX standards.
2984+
\IsoPosixUndated{} and other POSIX standards.
29852985

29862986
\rSec4[namespace.future]{Namespaces for future standardization}
29872987

source/macros.tex

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,8 @@
286286
\newcommand{\CppXXVI}{\Cpp{} 2026}
287287
\newcommand{\IsoCUndated}{ISO/IEC 9899}
288288
\newcommand{\IsoC}{\IsoCUndated{}:2018}
289+
\newcommand{\IsoFloatUndated}{ISO/IEC 60559}
290+
\newcommand{\IsoPosixUndated}{ISO/IEC/IEEE 9945}
289291
\newcommand{\opt}[1]{#1\ensuremath{_\mathit{\color{black}opt}}}
290292
\newcommand{\bigoh}[1]{\ensuremath{\mathscr{O}(#1)}}
291293

source/preprocessor.tex

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1778,31 +1778,31 @@
17781778
\mname{STDCPP_FLOAT16_T}\\
17791779
Defined as the integer literal \tcode{1}
17801780
if and only if the implementation supports
1781-
the ISO/IEC/IEEE 60559 floating-point interchange format binary16
1781+
the \IsoFloatUndated{} floating-point interchange format binary16
17821782
as an extended floating-point type\iref{basic.extended.fp}.
17831783

17841784
\item
17851785
\indextext{__stdcpp_float32_t__@\mname{STDCPP_FLOAT32_T}}%
17861786
\mname{STDCPP_FLOAT32_T}\\
17871787
Defined as the integer literal \tcode{1}
17881788
if and only if the implementation supports
1789-
the ISO/IEC/IEEE 60559 floating-point interchange format binary32
1789+
the \IsoFloatUndated{} floating-point interchange format binary32
17901790
as an extended floating-point type.
17911791

17921792
\item
17931793
\indextext{__stdcpp_float64_t__@\mname{STDCPP_FLOAT64_T}}%
17941794
\mname{STDCPP_FLOAT64_T}\\
17951795
Defined as the integer literal \tcode{1}
17961796
if and only if the implementation supports
1797-
the ISO/IEC/IEEE 60559 floating-point interchange format binary64
1797+
the \IsoFloatUndated{} floating-point interchange format binary64
17981798
as an extended floating-point type.
17991799

18001800
\item
18011801
\indextext{__stdcpp_float128_t__@\mname{STDCPP_FLOAT128_T}}%
18021802
\mname{STDCPP_FLOAT128_T}\\
18031803
Defined as the integer literal \tcode{1}
18041804
if and only if the implementation supports
1805-
the ISO/IEC/IEEE 60559 floating-point interchange format binary128
1805+
the \IsoFloatUndated{} floating-point interchange format binary128
18061806
as an extended floating-point type.
18071807

18081808
\item

source/support.tex

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1454,9 +1454,9 @@
14541454

14551455
\begin{itemdescr}
14561456
\pnum
1457-
\tcode{true} if and only if the type adheres to ISO/IEC/IEEE 60559.
1457+
\tcode{true} if and only if the type adheres to \IsoFloatUndated{}.
14581458
\begin{footnote}
1459-
ISO/IEC/IEEE 60559:2020 is the same as IEEE 754-2019.
1459+
\IsoFloatUndated{}:2020 is the same as IEEE 754-2019.
14601460
\end{footnote}
14611461
\begin{note}
14621462
The value is \tcode{true} for any of the types
@@ -1544,7 +1544,7 @@
15441544
if tinyness is detected before rounding.
15451545
\begin{footnote}
15461546
Refer to
1547-
ISO/IEC/IEEE 60559.
1547+
\IsoFloatUndated{}.
15481548
Required by ISO/IEC 10967-1:2012.
15491549
\end{footnote}
15501550

@@ -4945,7 +4945,7 @@
49454945
observed by \tcode{T}'s comparison operators, and
49464946
if \tcode{numeric_limits<T>::is_iec559} is \tcode{true},
49474947
is additionally consistent with the \tcode{totalOrder} operation
4948-
as specified in ISO/IEC/IEEE 60559.
4948+
as specified in \IsoFloatUndated{}.
49494949
\item
49504950
Otherwise, \tcode{strong_ordering(compare_three_way()(E, F))}
49514951
if it is a well-formed expression.

source/threads.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4140,7 +4140,7 @@
41404140
operations apply, the comparisons can fail for values that compare equal with
41414141
\tcode{operator==} if the value representation has trap bits or alternate
41424142
representations of the same value. Notably, on implementations conforming to
4143-
ISO/IEC/IEEE 60559, floating-point \tcode{-0.0} and \tcode{+0.0}
4143+
\IsoFloatUndated{}, floating-point \tcode{-0.0} and \tcode{+0.0}
41444144
will not compare equal with \tcode{memcmp} but will compare equal with \tcode{operator==},
41454145
and NaNs with the same payload will compare equal with \tcode{memcmp} but will not
41464146
compare equal with \tcode{operator==}.

0 commit comments

Comments
 (0)