Revision 7e297def65c658bcc4f86521e04a15478c7cf402 authored by Tim Holy on 16 September 2023, 20:32:51 UTC, committed by Tim Holy on 16 September 2023, 20:32:51 UTC
In #23155, we made the generic `min/max` use `isless` rather than `<`. This is motivated by the observation that the implementation min(a, b) = cmp(a, b) ? a : b implies that `cmp` satisfies the same properties as `isless` (either `cmp(a, b)` in which case we return `a`, otherwise either `cmp(b, a)` or they are equal, in which case returning `b` is correct). However, this is not true for `Real` types, including AbstractFloat (due to `NaN`). Part of the motivation here is that many packages seem to subtype `Real` when, theoretically, perhaps they shouldn't. Prominent examples include `IntervalArithmetic.Interval` and `ForwardDiff.Dual`.
1 parent ebe1a37
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...