X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2Fgdcmopenjpeg%2Flibopenjpeg%2Fint.h;fp=src%2Fgdcmopenjpeg%2Flibopenjpeg%2Fint.h;h=3195cccc4499747bd631112a70298ad63f514566;hb=bba4d4f75b6c5e373de1a555b7eaadfba961eaaa;hp=aff0905fb0bd4694e1aaff9440e9dadd1ac6a225;hpb=80dc5ecf0d3915f6c2a5505a540ff14957e07cc5;p=gdcm.git diff --git a/src/gdcmopenjpeg/libopenjpeg/int.h b/src/gdcmopenjpeg/libopenjpeg/int.h index aff0905f..3195cccc 100644 --- a/src/gdcmopenjpeg/libopenjpeg/int.h +++ b/src/gdcmopenjpeg/libopenjpeg/int.h @@ -33,7 +33,7 @@ @file int.h @brief Implementation of operations on integers (INT) -The functions in INT.C have for goal to realize operations on integers. +The functions in INT.H have for goal to realize operations on integers. */ /** @defgroup INT INT - Implementation of operations on integers */ @@ -46,12 +46,16 @@ The functions in INT.C have for goal to realize operations on integers. Get the minimum of two integers @return Returns a if a < b else b */ -int int_min(int a, int b); +static INLINE int int_min(int a, int b) { + return a < b ? a : b; +} /** Get the maximum of two integers @return Returns a if a > b else b */ -int int_max(int a, int b); +static INLINE int int_max(int a, int b) { + return (a > b) ? a : b; +} /** Clamp an integer inside an interval @return @@ -61,32 +65,51 @@ Clamp an integer inside an interval
  • Returns min if (a < min) */ -int int_clamp(int a, int min, int max); +static INLINE int int_clamp(int a, int min, int max) { + if (a < min) + return min; + if (a > max) + return max; + return a; +} /** @return Get absolute value of integer */ -int int_abs(int a); +static INLINE int int_abs(int a) { + return a < 0 ? -a : a; +} /** Divide an integer and round upwards @return Returns a divided by b */ -int int_ceildiv(int a, int b); +static INLINE int int_ceildiv(int a, int b) { + return (a + b - 1) / b; +} /** Divide an integer by a power of 2 and round upwards @return Returns a divided by 2^b */ -int int_ceildivpow2(int a, int b); +static INLINE int int_ceildivpow2(int a, int b) { + return (a + (1 << b) - 1) >> b; +} /** Divide an integer by a power of 2 and round downwards @return Returns a divided by 2^b */ -int int_floordivpow2(int a, int b); +static INLINE int int_floordivpow2(int a, int b) { + return a >> b; +} /** Get logarithm of an integer and round downwards @return Returns log2(a) */ -int int_floorlog2(int a); - +static INLINE int int_floorlog2(int a) { + int l; + for (l = 0; a > 1; l++) { + a >>= 1; + } + return l; +} /* ----------------------------------------------------------------------- */ /*@}*/