On Sun, Nov 1, 2015 at 5:54 PM, Michael Niedermayer <mich...@niedermayer.cc> wrote: > On Sun, Nov 01, 2015 at 12:19:47PM -0500, Ganesh Ajjanagadde wrote: >> This is of use for defining comparator callbacks. Common approaches like >> return x-y are not safe due to the risks of overflow. >> Furthermore, the (x > y) - (x < y) trick is optimized to branchless >> code. >> This also documents this macro accordingly. >> >> Signed-off-by: Ganesh Ajjanagadde <gajjanaga...@gmail.com> >> --- >> libavutil/common.h | 11 +++++++++++ >> 1 file changed, 11 insertions(+) >> >> diff --git a/libavutil/common.h b/libavutil/common.h >> index 6594f7d..6f0f582 100644 >> --- a/libavutil/common.h >> +++ b/libavutil/common.h >> @@ -76,6 +76,17 @@ >> */ >> #define FFNABS(a) ((a) <= 0 ? (a) : (-(a))) >> >> +/** >> + * Comparator. >> + * For two numerical expressions x and y, gives 1 if x > y, -1 if x < y, >> and 0 >> + * if x == y. This is useful for instance in a qsort comparator callback. >> + * Furthermore, compilers are able to optimize this to branchless code, and >> + * there is no risk of overflow with signed types. >> + * As with many macros, this evaluates its argument multiple times, it thus >> + * must not have a side-effect. >> + */ >> +#define FFDIFFSIGN(x,y) (((x)>(y)) - ((x)<(y))) > > LGTM > (maybe wait a bit before pushing so others can comment too, people > may find the text too verbose or something else)
Been 2 days, it is a internal macro (FF prefix), and docs/name can always be changed if need be. In absence of objections and reviews from you and Clement for the second patch and an from you for this one, pushed. Thanks. > > > [...] > -- > Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB > > It is dangerous to be right in matters on which the established authorities > are wrong. -- Voltaire > > _______________________________________________ > 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