Оптимизации для pow () с const нецелым показателем?
у меня есть горячие точки в моем коде, где я делаю pow()
занимая около 10-20% моего времени выполнения.
ввод pow(x,y)
очень специфично, поэтому мне интересно, есть ли способ свернуть два pow()
приближения (по одному для каждого показателя) с более высокой производительностью:
- у меня есть два постоянных показателя: 2.4 и 1/2.4.
- когда показатель равен 2,4, x будет в диапазоне (0.090473935, 1.0].
- когда показатель степени равен 1/2. 4, x будет в диапазоне (0.0031308, 1.0].
- Я использую SSE / AVX
float
векторов. Если специфика платформы может быть использована в своих интересах, прямо сейчас!
максимальная частота ошибок около 0,01% является идеальным, хотя я заинтересован в полной точности (для float
) алгоритмов.
Я уже использую быстрый pow()
приближение, но он не учитывает эти ограничения. Можно ли это сделать лучше?