Вы не должны беспокоиться об этом. Если я скажу вам, что типичная реализация трансцендентных функций в библиотеке C, как правило, занимает примерно 10 раз одно сложение / умножение с плавающей запятой (или 50 сложений / умножений с плавающей запятой) и примерно 5 раз деление с плавающей запятой, это не будет полезно для вас.
Действительно, способ, которым ваш процессор планирует доступ к памяти, будет сильно мешать любой преждевременной оптимизации, которую вы бы сделали.
Если после профилирования вы обнаружите, что конкретная реализация, использующая трансцендентные функции, слишком медленная, вы можете подумать о создании схемы полиномиальной интерполяции. Это будет включать в себя таблицу и, следовательно, повлечет за собой дополнительные проблемы с кэшем, поэтому убедитесь, что измерить, а не угадать.
Это, вероятно, будет включать чебышевское приближение . Задокументируйте это, это особенно полезная техника в доменах такого типа.
Мне сказали, что компиляторы довольно плохо оптимизируют код с плавающей запятой. Возможно, вы захотите написать собственный код сборки.
Кроме того, Intel Performance Primitives (если вы используете процессор Intel) - это что-то хорошее, если вы готовы обменять некоторую точность на скорость.