grouper.ieee.org/groups/msc/ANSI_IEEE-Std-754-2019/background/
https://grouper.ieee.org/groups/msc/ANSI_IEEE-Std-754-2019/background/
> 5.3.1 {min,max}{Num,NumMag} operations, formerly required, are now deleted
> 9.6 new {min,max}imum{,Number,Magnitude,MagnitudeNumber} operations are recommended; NaN and signed zero handling are changed from 754-2008 5.3.1.
> The 754-2008 5.3.1 required operations {min,max}{Num,NumMag} are not mentioned in 754-2019, in favor of its new 9.5 recommended operations {minimum,maximum} and {minimum,maximum}{Number,Magnitude,MagnitudeNumber}. An implementation could implement both sets and thus conform to both standards.
内容がわからんな……
The Removal/Demotionof MinNum and MaxNum Operations from IEEE 754™-2018
https://grouper.ieee.org/groups/msc/ANSI_IEEE-Std-754-2019/background/minNum_maxNum_Removal_Demotion_v3.pdf
> 754™-2018 or 754™-2028 may conclude min-max as high-level routines and exclude min-max from the floating-point arithmetic standard.
> Such an exclusion will allow language standards define, or not define, their own min-max operations.
> Language standards might construct min-max routines by choosing 754™ comparison predicates/relations and a selection based on the predicate/relation results.
> Otherwise, 754™-2018 or 754™-2028 may conclude min-max as primitives and include min-max as operations in the standard.
> This inclusion will require or recommend language standards to have same standardized min-max behaviors.
ふーむ?
Agner`s CPU blog - New IEEE 754 Floating point standard
https://www.agner.org/optimize/blog/read.php?i=1012
これ読んでやっとわかった、 min(A, B) := A < B ? A : B になってるのは規格ではなく SSE の MINPS 命令じゃん!!!
で、この挙動は IEEE 754-{2008,2019} どちらにも適合していないと書かれてる。
https://mastodon.cardina1.red/@lo48576/105538477268043786
最終的な結論としては、 (規格読んでないけど) どうやら <https://keisanki.at.webry.info/201908/article_1.html> の IEEE754-2019 の min / max についての記述が誤っていそうということで。
Floating point exception tracking and NAN propagation
https://www.agner.org/optimize/nan_propagation.pdf
> The actual implementation of min and max in many CPUs differs from both of these standards. A common way of defining min and max in a high-level language is:
>
> min(a, b) = a < b ? a : b, max(a, b) = a > b ? a : b.
なんやリンク先の PDF にもちゃんと書いてあるやんけ、完全にブログ書いてる人の誤読やん