I think these should be free functions. I know that breaks with historical patterns here, but we should start moving the API in that direction IMO (and others I've chatted about this API with seemed to agree).
As part of that, this needs to return by-value. As-is, this can return a dangling reference to a temporary argument.
Feel free to submit once suggestions are addressed.
Please provide nice documenting comments for the semantics. Especially important to call out that these model IEEE's functionality and are not std::max.
Finally, why not inline? These seem reasonable inlining candidates....