exp10 is a function available in GNU libm. Looks like no other common libm has it. This adds support for it to FFmpeg.
There are essentially 2 ways of handling the fallback: 1. Using pow(10, x) 2. Using exp2(M_LOG2_10 * x).
First one represents a Pareto improvement, with no speed or accuracy regression anywhere, but speed improvement limited to GNU libm.
Second one represents a slight accuracy loss (relative error ~ 1e-13) for non GNU libm. Speedup of > 2x is obtained on non GNU libm platforms, ~30% on GNU libm. These are "average case numbers", another benefit is the lack of triggering of the well-known terrible worst case paths through pow.
Based on reviews, second one chosen. Comment added accordingly.
e29db08 lavu/libm: add exp10 support
configure | 2 ++
libavutil/libm.h | 19 +++++++++++++++++++
2 files changed, 21 insertions(+)