lin*_*lof 5 c floating-point mathematical-optimization
我正在研究C中的Nelder-Mead优化例程,它涉及平均两个floats.在罕见(但完全可重复)的情况下,两个floats,比如说,x并且y只有它们的重要性的最低位有所区别.当取平均值时,舍入误差意味着结果将是x或者y.
我想指出舍入应始终朝向第二个float.也就是说,我不能简单地指出舍入应该是零或无穷大,因为我事先并不知道是否x会大于y.
(我怎样才能做到这一点?
我认为没有硬件舍入模式。你必须编写自己的函数,然后,
double average(double x, double y) {
double a = 0.5*(x+y);
return (a == x) ? y : a;
}
Run Code Online (Sandbox Code Playgroud)