On Fri, Dec 25, 2015 at 9:26 AM, James Almer <jamr...@gmail.com> wrote: > On 12/25/2015 2:11 PM, Ganesh Ajjanagadde wrote: >> Fast, reasonably accurate 10^x. Alternative of detection of libm exp10 at >> configure >> time is not worth the trouble, since it is anyway not POSIX or ISO C, >> and currently only the GNU libm has it. Furthermore, GNU libm's variant >> is ~ 2x slower, and is ironically not correctly rounded (2 ulp off) to >> justify all >> that slowdown. >> >> Reviewed-by: Michael Niedermayer <mich...@niedermayer.cc> >> Signed-off-by: Ganesh Ajjanagadde <gajjanaga...@gmail.com> >> --- >> libavutil/internal.h | 19 +++++++++++++++++++ >> 1 file changed, 19 insertions(+) >> >> diff --git a/libavutil/internal.h b/libavutil/internal.h >> index f86b7fb..ae11601 100644 >> --- a/libavutil/internal.h >> +++ b/libavutil/internal.h >> @@ -292,6 +292,25 @@ static av_always_inline av_const int64_t >> ff_rint64_clip(double a, int64_t amin, >> return res; >> } >> >> +/** >> + * Compute 10^x for floating point values. Note: this function is by no >> means >> + * "correctly rounded", and is meant as a fast, reasonably accurate >> approximation. >> + * For instance, maximum relative error for the double precision variant is >> + * ~ 1e-13 for very small and very large values. >> + * This is ~2x faster than GNU libm's approach, which is still off by 2ulp >> on >> + * some inputs. >> + * @param x exponent >> + * @return 10^x >> + */ >> +static av_always_inline double avpriv_exp10(double x) > > It's an inline function in a header, and internal at that. Just call it > ff_exp10.
It is used in avcodec and avfilter. I thought this meant that it should be avpriv? Personally, I like ff_exp10 as it is shorter. > >> +{ >> + return exp2(M_LOG2_10 * x); >> +} >> + >> +static av_always_inline float avpriv_exp10f(float x) >> +{ >> + return exp2f(M_LOG2_10 * x); >> +} >> >> /** >> * A wrapper for open() setting O_CLOEXEC. >> > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel