summaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorGanesh Ajjanagadde <gajjanagadde@gmail.com>2015-12-21 19:05:00 -0800
committerGanesh Ajjanagadde <gajjanagadde@gmail.com>2015-12-23 09:22:59 -0800
commite29db08cf7f68fefe18f043250e2292aaf91ef3b (patch)
treed69978eab4ed9dbf310009a7aa64bfba794da728 /libavcodec
parent520a5d33f0ea9f8838dbc7282470db700d248065 (diff)
downloadffmpeg-streaming-e29db08cf7f68fefe18f043250e2292aaf91ef3b.zip
ffmpeg-streaming-e29db08cf7f68fefe18f043250e2292aaf91ef3b.tar.gz
lavu/libm: add exp10 support
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. Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com> Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com> Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Diffstat (limited to 'libavcodec')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud