меньший диапазон. Это тот же трюк в обратном порядке, который вы используете для log (x): извлеките экспоненту ввода, чтобы получить log2 (integer_part (x)).
эффективное (быстрое) приближение экспоненциальной функции, работающей с элементами AVX (плавающая точка одинарной точности). А именно -__m256 _mm256_exp_ps( __m256 x )
без SVML.
Относительная точность должна быть примерно равна ~ 1e-6 или ~ 20 битов мантиссы (1 часть в 2 ^ 20).
Я был бы счастлив, если бы он был написан в стиле C с использованием встроенных функций Intel.
Код должен быть переносимым (Windows, macOS, Linux, MSVC, ICC, GCC и т. Д.).
Это похоже наСамая быстрая реализация экспоненциальной функции с использованием SSE, но этот вопрос ищет очень быстро с низкой точностью (текущий ответ дает точность около 1e-3).
Также этот вопрос ищет AVX / AVX2 (и FMA). Но учтите, что ответы на оба вопроса легко переносятся между SSE4__m128
или AVX2__m256
, поэтому будущие читатели должны выбирать, основываясь на требуемой компромиссе между точностью и производительностью.