我正在编写一个涉及多个长数学公式的程序库,有时在使用双精度浮点数时会出现下溢情况。其中一个例子如下所示:
而且a、b、c、d也涉及到一些类似的计算。如果我没有检测到下溢(例如指数之差),会导致我无法承受的行为。 (当这种差异剪辑为零时,绝对误差和相对误差都可能非常大,而其他指数非常大)。
是否有类似于“checked”关键字适用于双精度浮点数的东西?是否有某种方法可以辅助实现检查?
任何确保正确性的解决方案,即使引发比必要更多的问题,对我来说都是好的。
此问题被建议作为重复问题(此链接),但是对于我来说,“在每次乘法之前手动检查”不是特别有用的解决方案。
(Exp(-a*a) - Exp(-b*b))*Exp(c)*Exp(d)
而且a、b、c、d也涉及到一些类似的计算。如果我没有检测到下溢(例如指数之差),会导致我无法承受的行为。 (当这种差异剪辑为零时,绝对误差和相对误差都可能非常大,而其他指数非常大)。
是否有类似于“checked”关键字适用于双精度浮点数的东西?是否有某种方法可以辅助实现检查?
任何确保正确性的解决方案,即使引发比必要更多的问题,对我来说都是好的。
此问题被建议作为重复问题(此链接),但是对于我来说,“在每次乘法之前手动检查”不是特别有用的解决方案。