Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

P3008 R2 Atomic floating-point min/max #1672

Open
wg21bot opened this issue Oct 16, 2023 · 6 comments
Open

P3008 R2 Atomic floating-point min/max #1672

wg21bot opened this issue Oct 16, 2023 · 6 comments
Labels
B3 - addition Bucket 3 as described by P0592: material that is not mentioned in P0592 C++26 Targeted at C++26 IS Ship vehicle: IS LEWG Library Evolution size - small paper size estimate
Milestone

Comments

@wg21bot
Copy link
Collaborator

wg21bot commented Oct 16, 2023

P3008R0 Atomic floating-point min/max (Gonzalo Brito Gadeschi)

@wg21bot wg21bot added LEWG Library Evolution SG1 Concurrency labels Oct 16, 2023
@wg21bot wg21bot added this to the 2023-telecon milestone Oct 16, 2023
@inbal2l inbal2l added C++26 Targeted at C++26 B3 - addition Bucket 3 as described by P0592: material that is not mentioned in P0592 SG6 Numerics IS Ship vehicle: IS size - small paper size estimate and removed LEWG Library Evolution labels Oct 16, 2023
@cor3ntin
Copy link

cor3ntin commented Oct 16, 2023

@ogiroux , @mattkretz - can SG1 and SG6 please review and tag LEWG once forwarded

@mattkretz mattkretz added this to Kona '23 in SG6 Nov 5, 2023
@mattkretz mattkretz moved this from Kona '23 to ready for review in SG6 Nov 8, 2023
@ogiroux
Copy link
Collaborator

ogiroux commented Nov 8, 2023

SG1 poll in Kona:

DIRECTION POLL:
1. The default fetch_min(T, mo=SC)->T, fetch_max(T, mo=SC)->T should exist
2. The default fetch_min, fetch_max should have these semantics:
  * Which value is stored in the atomic is unspecified if an input is a NaN
  * Implementations should treat -0 as less than +0 (use normative encouragement)
  * (Note: must _not_ require std::min/max)
3. Users need a way to specify semantics (up to LEWG how to achieve this):
  * Must-have: fminimum/fmaximum
  * Must-have: fminimum_num/fmaximum_num
  * Can have if LEWG desires it but we do not: std::min/max
SF F N A SA
 5 6 2 0 0
Unanimous consent

@ogiroux ogiroux removed the SG1 Concurrency label Nov 8, 2023
@inbal2l inbal2l added the needs-revision Paper needs changes before it can proceed label Jan 27, 2024
@inbal2l
Copy link
Collaborator

inbal2l commented Jan 27, 2024

Needs to be rebased on P0493. (Resolves issues, see #866)

@wg21bot
Copy link
Collaborator Author

wg21bot commented Feb 16, 2024

P3008R1 Atomic floating-point min/max (Gonzalo Brito Gadeschi, David Sankel)

@wg21bot wg21bot removed the needs-revision Paper needs changes before it can proceed label Feb 16, 2024
@wg21bot wg21bot modified the milestones: 2023-telecon, 2024-telecon Feb 16, 2024
@wg21bot wg21bot changed the title P3008 R0 Atomic floating-point min/max P3008 R1 Atomic floating-point min/max Feb 16, 2024
@mattkretz mattkretz moved this from ready for review to Tokyo '24 in SG6 Mar 4, 2024
@mattkretz mattkretz moved this from Tokyo '24 to forwarded in SG6 Mar 19, 2024
@mattkretz
Copy link
Collaborator

mattkretz commented Mar 19, 2024

P3008R1: Atomic floating-point min/max

2024-03-19 SG6 Minutes

Chair: Lisa Lippincott

Champion: Gonzalo Brito

Polls

POLL: Accept SG1 proposal as listed in P3008R1 with
"implementation-defined" instead of "unspecified" and forward to LEWG.

SF F N A SA
2 3 2 2 0

# of Authors: 2
Outcome: Consensus
Comments: Against because of a preference for only two function instead of
three.
Against because of a worry about implementation-defined.

Discussion about walking back from "implementation-defined". Take the above
poll with a grain of salt in light of:

POLL: If one of the inputs is a NaN then it is "unspecified" whether the
result value is either a NaN or the other value.

SF F N A SA
2 2 3 0 1

# of Authors: 2
Outcome: Consensus
Comments: SA: bad for teachability

Discussion about -0 / +0. Status quo is still normative encouragement (as in
the paper). No taste for a poll to change the status quo.

POLL: With respect to signaling NaNs, SG6 recommends:

  • for fetch_fminimum/fminimum_num/fmaximum/fmaximum_num to be specified in
    terms of their corresponding C23 APIs (ignore signaling NaNs in the wording,
    refer to C23), and
  • for fetch_min/max, to not explicitly specify signaling NaN behavior (ignore
    signaling NaNs in the wording)
SF F N A SA
4 3 2 0

# of Authors: 2
Outcome: Consensus

@mattkretz mattkretz added LEWG Library Evolution and removed SG6 Numerics labels Mar 19, 2024
@mattkretz mattkretz removed this from forwarded in SG6 Mar 22, 2024
@wg21bot
Copy link
Collaborator Author

wg21bot commented Apr 17, 2024

P3008R2 Atomic floating-point min/max (Gonzalo Brito Gadeschi, David Sankel)

@wg21bot wg21bot changed the title P3008 R1 Atomic floating-point min/max P3008 R2 Atomic floating-point min/max Apr 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
B3 - addition Bucket 3 as described by P0592: material that is not mentioned in P0592 C++26 Targeted at C++26 IS Ship vehicle: IS LEWG Library Evolution size - small paper size estimate
Projects
None yet
Development

No branches or pull requests

5 participants