Submitter:CFP group
Submission Date: 2021-04-18
Document: WG14 N2711
Title: N2711: fmin, fmax
Reference Documents:WG14 N2596, CFP 1938, 1896

Summary: fmin and fmax have been superseded.

Background.

IEEE 754-2008 had minNum, minNumMag, maxNum, and maxNumMag operations. Some of these were added to C99 as fmin and fmax.

WG14/N1137 Technical Report 24732 (Decimal floating point) added fmind32/64/128 and fmaxd32/64/128.

They have been replaced in IEEE 754-2019 with minimum, minimumNumber, maximum, and maximumNumber, minimumMagnitude, minimumMagnitudeNumber, maximumMagnitude, and maximumMagnitudeNumber. These have been added to C23; some with shorter names.

The following changes are against WG14 N2596 C23 draft.

Add in 7.12.12.3 The fmin functions, the following to be paragraph 4:

The fmax and fmin functions are similar to the fmaximum_num and fminimum_num functions, though may differ in which signed zero is returned when the arguments are differently signed zeros and in their treatment of signaling NaNs (see F.10.9.5).

Remove 7.12.12.11 The fminimum_mag_num functions, paragraph 4

NOTE: The fmax and fmin functions are similar to the fmaximum_num and fminimum_num functions, though may differ in which signed zero is returned when the arguments are differently signed zeros and in their treatment of signaling NaNs (see F.10.9.5).

The above two changes move a paragraph and remove the word: NOTE.

7.25 Type-generic math <tgmath.h>, paragraph 15: Replace fmax with fmaximum in three places

F.3 Operations, paragraph 1: Remove fmax and fmin from the Operation binding table.

F.3 Operations, paragraph 3: Add

These functions have been superseded by fminimum_num and fmaximum_num.

G.5.1 Multiplicative operators, paragraph 8: Replace fmax with fmaximum_num.

The following changes are against WG14 N2601 Part 3 as annex X (which is being added to C23).

In 7.12.11 Manipulation functions, remove:

fmaxfN fmaxfNx fmaxdN fmaxdNx fminfN fminfNx fmindN fmindNx