Правильное округление тригонометрической функции для одинарной точности - PullRequest
3 голосов
/ 27 мая 2019

Мне нужна правильно округленная (округление до ближайшей связи до четной) тригонометрической функции с одинарной точностью (ошибка 0,5 ulp). Я могу использовать либо алгоритм CORDIC, либо один из методов полиномиальной аппроксимации, чтобы получить результат с более высокой точностью, скажем, с двойной точностью.

  1. Правильно ли округлен результат до двойного числа с плавающей точкой? (Например, если реализовано в C с компилятором GCC.)

  2. Нужно ли применять собственный метод округления для его правильного округления? Если да, могу ли я использовать меньше битов? Например, если я использую CORDIC, будет (примерно) 35 битов (32 бита + 3 бита для округления)?

  3. Чем-то похож на (2). Насколько результат в более высокой точности должен быть точным? (Например, достаточно ли абсолютной ошибки 1e-15?)

...