Bla*_*way 2 c c++ floating-point cross-platform ps3
指定最大可表示负浮点数的独立于平台的方法是什么?
我们发现一个算法在 PS3 的 SPU 上运行时会出错,但在为 PPU 编译时运行良好:
float x = -FLT_MAX;
/* stuff */
if (x > 0.0f) {
// If x is unchanged, code is executed on SPU
}
Run Code Online (Sandbox Code Playgroud)
本质上,是否有一个明确定义的负等价物FLT_MAX
?
你想要std::numeric_limits::lowest()
,但它只是 c++0x,所以目前不是很跨平台。
你绝对不想要std::numeric_limits::min()
- 这是最小的幅度,而不是最负面的。
如果您想要的东西总是少于所有其他双打,请使用-numeric_limits<double>::infinity()
.
归档时间: |
|
查看次数: |
3804 次 |
最近记录: |