В Eiffel класс DOUBLE_MATH
определяет тригонометрические функции. Когда я вижу интерфейс этого класса, как показано здесь, там написано
косинус (v: REAL_64): REAL_64 -- Тригонометрический косинус радиана `v', приблизительный -- в диапазоне [-pi/4, +pi/4]
и
sine (v: REAL_64): REAL_64 -- Тригонометрический синус радиана `v' приблизительно -- в диапазоне [-pi/4, +pi/4]
и
тангенс (v: REAL_64): REAL_64 -- тригонометрический тангенс радиана `v' приблизительно -- в диапазоне [-pi/4, +pi/4]
Кажется, утверждается, что тригонометрические функции будут работать только в области [-pi/4,+pi/4]. Однако, когда я попытался использовать их для других значений, они, похоже, сработали.
Я беспокоюсь, что это может иногда дать сбой или что успех, который я увидел, на самом деле является формой неопределенного поведения, на которое нельзя полагаться.
Безопасно ли использовать функции за пределами данного домена? Если да, то почему указан этот домен? Если нет, то почему сделано так, что функции работают только в этом домене?
arc_tangent
. - person Lutz Lehmann   schedule 06.11.2016