Какие алгоритмы используют FPU для вычисления трансцендентных функций?

Какие методы будет использовать современный FPU для вычисления трансцендентных функций?

Например, процессоры Intel предоставляют такие инструкции, как FSIN, FCOS, FYL2X и т. д. Мне любопытно, какие алгоритмы будут использоваться для фактической реализации их на аппаратном уровне.

Мое наивное предположение было бы рядом Тейлора, возможно, в сочетании с некоторыми таблицами поиска, но это не более чем дикая догадка. Пожалуйста, просветите меня.

P.S. Этот вопрос более общий, чем просто аппаратное обеспечение Intel.


person NPE    schedule 14.12.2012    source источник
comment
Даже когда полиномиальная аппроксимация является наилучшим подходом, полиномы Тейлора излишне точны вблизи точки интерполяции и очень плохи в пределах предполагаемого интервала. Вместо этого для равномерно точных полиномов люди используют это: org/blog/2011/12/21/better-function-applications   -  person Pascal Cuoq    schedule 14.12.2012


Ответы (2)


Одним из мест для начала может быть "Новые алгоритмы для улучшенных трансцендентных функций в IA- 64" от Shane Story и Ping Tak Peter Tang, оба из Intel. Возможно, в нем не так много деталей, как вам хотелось бы, но он включает несколько ссылок.

Обновление 13.08.2014

Первоначальная ссылка не работает. Общедоступную страницу реферата/цитирования IEEE можно найти здесь:

http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=762822&tag=1

person jimhark    schedule 14.12.2012
comment
@Calmarius, прошло больше полутора лет. Это было достаточно легко найти, поэтому я разместил ссылку. Это для официального сайта IEEE и не включает бесплатную копию статьи, но содержит очень хорошие ссылки. - person jimhark; 13.08.2014

В аппаратном обеспечении (а также в программном обеспечении, где инструкция аппаратного умножения недоступна) это обычно реализуется в CORDIC так как для этого требуется только сложение, вычитание, сдвиг битов и просмотр таблицы

Связанный:

person phuclv    schedule 27.07.2013