gpt4 book ai didi

c - 我如何指定在哪个方向舍入两个与其有效数的 LSB 不同的 float 的平均值?

转载 作者:太空狗 更新时间:2023-10-29 15:07:34 25 4
gpt4 key购买 nike

我正在使用 C 编写 Nelder-Mead 优化例程,其中涉及取两个 float 的平均值。在极少数(但完全可重现)的情况下,两个 float,例如 xy,仅在其有效数的最低有效位上有所不同.取平均值时,舍入误差意味着结果将是 xy

我想指定舍入应始终朝向第二个 float。也就是说,我不能简单地指定舍入应朝向零或无穷大,因为我事先不知道 x 是否会大于 y

(如何)我能做到吗?

最佳答案

我认为没有硬件舍入模式。你必须自己写一个函数,然后,

double average(double x, double y) {
double a = 0.5*(x+y);
return (a == x) ? y : a;
}

关于c - 我如何指定在哪个方向舍入两个与其有效数的 LSB 不同的 float 的平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8913164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com