如何规范化acosf或asinf的输入值?

时间:2011-12-20 21:51:04

标签: c trigonometry math.h

我需要从一系列其他计算的结果中获得反余弦和反正弦。如果我的输入值超出-1到1的范围,那么acosfasinf将返回nan,这是函数定义所期望的。

我应该如何调整该值以使其落在可接受的范围内,但仍能给出正确的答案?在我用来检查我的计算的电子表格中,这种规范化在幕后发生,因此不会返回nan。

我想我必须做一些事情,比如acosf,添加cos(pi)直到值落到范围内,但我想要一些确认或建议。

1 个答案:

答案 0 :(得分:4)

没有规范化过程。如果答案在[-1,+ 1]之外,那么前面的计算就会被打破。

一个例外是如果浮点不准确导致诸如1.00001之类的值。在这种情况下,将输入钳位到有效范围可能是安全的。