【问题标题】:Multiply before normalization标准化前相乘
【发布时间】:2012-11-21 19:00:07
【问题描述】:

让向量v 接近于零,如{7.000e-07, 5.000e-06, 4.000e-07}。在标准化之前乘以 1024 是个好主意吗?似乎这样的接近值在 PC 上运行良好,其中 double 内部为 80 位,而在 ARM FPU 上则不好。

【问题讨论】:

  • “标准化”是一个相当宽泛的概念——您可能需要提供更多背景信息(即您的问题领域是什么——音频、视频或其他信号处理、有限元建模……? ) 以获得有用的答案。您是否正在“标准化”为+/- 1e-4+/- 1+/- 1e6

标签: c++ floating-point floating-accuracy


【解决方案1】:

只要没有任何中间结果在您想要进行下溢的计算(也就是说,只要它们没有接近double 中的 1E-308、float 中的 1E-38),它没有乘以 1024。

乘以 1024 不会损失任何东西(除非它导致溢出),但其他因素(例如 1000)也会导致精度损失。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-24
    • 2017-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-01
    相关资源
    最近更新 更多