Overview
ISO/IEC TS 18661-4:2015 - "Floating-point extensions for C - Part 4: Supplementary functions" is a Technical Specification that extends the C programming language to incorporate the mathematical and reduction functions recommended by ISO/IEC/IEEE 60559:2011 (the modern IEEE 754 / IEC 60559 floating‑point standard). Published in 2015, this TS specifies how supplementary floating‑point functions and related headers should be provided by C implementations to better support IEC 60559 features, reproducible numerical behavior, and advanced floating‑point operations.
Key topics and requirements
- Scope and conformance: Defines conformance rules for hosted and freestanding C implementations, required predefined macros and standard headers when supporting IEC 60559 features.
- Operation binding and behavior: Specifies how floating‑point operations are to be bound and how implementation-defined behavior interacts with the floating‑point model.
- **Mathematical functions in **: Extends the standard C math library to include functions specified or recommended by the IEC 60559/IEEE 754:2011 revision (transcendental and related routines).
- **Reduction functions in **: Adds reduction operations (for sums and scaled products) that improve accuracy and reproducibility for aggregate computations.
- Support headers and utilities: Addresses future directions for , use of type‑generic macros in , and constant rounding modes in .
- Reproducibility and rounding control: Emphasizes mechanisms to control rounding (including constant rounding modes) and improve reproducible results across platforms.
- Implementation guidance: Notes constraints for freestanding implementations and details on standard headers and macros needed for compliance.
Applications and who uses it
ISO/IEC TS 18661-4:2015 is directly relevant to:
- Compiler vendors and standard library implementers - to add or standardize math and reduction functions consistent with IEC 60559.
- Library authors for numerical and scientific software - for portable, correctly‑specified floating‑point routines.
- Embedded and real‑time systems developers - where freestanding C implementations must support precise floating‑point behavior.
- High‑performance computing and data‑analysis teams - seeking reproducible reductions and correctly rounded mathematical functions.
- Safety‑critical and financial applications - that require strict floating‑point semantics, controlled rounding, and standardized exception handling.
Practical benefits include improved portability of numerical code, better reproducibility of results across platforms, and alignment of C implementations with modern floating‑point standards.
Related standards
- ISO/IEC 9899:2011 (C11) - base C standard extended by the TS
- ISO/IEC/IEEE 60559:2011 - floating‑point arithmetic (equivalent to IEEE 754‑2008)
- Other parts of the series: ISO/IEC TS 18661‑1..5 (binary/decimal arithmetic, interchange types, supplementary attributes)
Keywords: ISO/IEC TS 18661-4:2015, floating-point extensions for C, IEC 60559, IEEE 754, , reduction functions, , reproducible floating-point, C standard library.