Точность функции CUDA Sincospi

Я искал все и не мог найти, как функция вычисляет или использует свою часть PI. Для своего проекта я использую определенную константу с точностью до 34 десятичных знаков для PI. Однако это намного больше, чем обычная константа math.h, определенная для PI, которая составляет 16 десятичных знаков.

Мой вопрос заключается в том, насколько точно PI использует sincospi для вычисления своего ответа? Это просто использование константы PI из math.h?

1 ответ

Решение

Максимальная ошибка ulp для sincospi() такая же, как максимальная ошибка ulp для sincos(): результаты отличаются на 1 ulp от правильно округленной ссылки или, иначе говоря, результаты отклоняются менее чем на 1,5 ulps от бесконечно точный математический результат. В среднем более 90% результатов правильно округляются. Максимальная наблюдаемая ошибка для всех математических функций CUDA документирована в приложении к Руководству по программированию CUDA C. Точность sincospi(x) превосходит точность, достигаемую sincos(M_PI*x), поскольку последний подвергается дополнительной ошибке округления из-за умножения аргумента функции.

Другие вопросы по тегам