艾菲尔三角函数的领域是什么?是[-pi / 4,+ pi / 4]吗?

时间:2016-11-06 06:09:07

标签: math trigonometry eiffel

Eiffel中,类DOUBLE_MATH定义了三角函数。当我看到此类的界面显示为here时,它会显示

  

余弦(v:REAL_64):REAL_64                - 弧度'v'的三角余弦近似                - 在[-pi / 4,+ pi / 4]范围内

  

正弦(v:REAL_64):REAL_64                - 弧度'v'三角正弦波近似                - 在范围[-pi / 4,+ pi / 4]

  

tangent(v:REAL_64):REAL_64                - 弧度的三角正切“v'近似                - 在范围[-pi / 4,+ pi / 4]

似乎声称三角函数只能在域[-pi / 4,+ pi / 4]中起作用。但是,当我尝试将它们用于其他值时,它们似乎有效。

我担心它可能偶尔会失败,或者我所看到的成功实际上是一种不可靠的不明行为。

使用给定域外的函数是否安全?如果是这样,为什么要指定此域名?如果没有,为什么这些功能只能在这个域中起作用?

1 个答案:

答案 0 :(得分:2)

这些函数是作为math.h的相应C函数的包装器实现的。因为可以使用C编译器为几乎任何平台编译Eiffel,所以注释确保将域限制为C编译器实现的最严格的域。此外,一些CPU为三角函数提供直接支持,但如果输入值超出给定范围,它们的精度会下降。

总而言之,您需要检查C编译器的手册,了解您将要用于特定三角函数范围的平台,或者确保输入值在注释中指定的范围内。