exp() должен использоваться для двойной точности, хотя должен быть перегружен для одиночного
expf() следует использовать для одиночной точности (float)
__expf() - это быстрая математическая версия, производительность быстрее с некоторой потерей точности (в зависимости от входного значения, см. guide для более подробной информации).
Ответ 2
Обычно exp() для парных, expf() для поплавков, и оба они немного медленнее, чем __exp(), который доступен как аппаратная операция. Увеличение производительности обычно происходит за счет точности, но если вы действительно не уверены в точности, это не должно быть проблемой.