меньший диапазон. Это тот же трюк в обратном порядке, который вы используете для 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, поэтому будущие читатели должны выбирать, основываясь на требуемой компромиссе между точностью и производительностью.

Ответы на вопрос(3)

Ваш ответ на вопрос