我需要从一系列其他计算的结果中获得反余弦和反正弦。如果我的输入值在 -1 到 1 的范围之外,则返回acosf
或asinf
返回nan
,这是给定函数定义的预期结果。
我应该如何调整该值,使其落在可接受的范围内,但仍然给出正确的答案?在我用来检查我的计算的电子表格中,这种标准化是在幕后发生的,因此不会返回 nan。
我想我必须为 acosf 添加 cos(pi) 直到值落入该范围内,但我需要一些确认或建议。
我需要从一系列其他计算的结果中获得反余弦和反正弦。如果我的输入值在 -1 到 1 的范围之外,则返回acosf
或asinf
返回nan
,这是给定函数定义的预期结果。
我应该如何调整该值,使其落在可接受的范围内,但仍然给出正确的答案?在我用来检查我的计算的电子表格中,这种标准化是在幕后发生的,因此不会返回 nan。
我想我必须为 acosf 添加 cos(pi) 直到值落入该范围内,但我需要一些确认或建议。
There is no normalization process. If the answer is outside [-1,+1], then the preceding calculations are broken.
One exception is if floating-point inaccuracies have lead to a value such as 1.00001. In cases such as these, it is probably safe to clamp the input to the valid range.