max(float('nan'), 1) 评估为nan
max(1, float('nan')) 评估为1
这是预期的行为吗?
谢谢你的回答.
max当iterable为空时引发异常.为什么Python max在nan出现时不会引发异常?或者至少做一些有用的事情,比如回归nan或忽略nan.目前的行为非常不安全,似乎完全不合理.
我发现这种行为更令人惊讶的结果,所以我刚发布了一个相关的问题.
引用(感谢作者开发和共享算法!):
https://tavianator.com/fast-branchless-raybounding-box-intersections/
由于现代浮点指令集可以在没有分支的情况下计算最小值和最大值
作者的相应代码就是
dmnsn_min(double a, double b)
{
return a < b ? a : b;
}
Run Code Online (Sandbox Code Playgroud)
我很熟悉例如_mm_max_ps,但这是一个矢量指令.上面的代码显然是用于标量形式.
题:
以防万一:我熟悉在C++中使用min和max函数,相信它是相关的,但不是我的问题.