X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2Fgdcmopenjpeg%2Flibopenjpeg%2Fint.h;h=3195cccc4499747bd631112a70298ad63f514566;hb=56ad78cdf3b5de32f0a94a38cd32ddc9f403ffc3;hp=a1b590dd98a65ac4819b8348acd621ba9df19703;hpb=7452f3039ff4dd2574fcbf3343b530a2f20f9623;p=gdcm.git diff --git a/src/gdcmopenjpeg/libopenjpeg/int.h b/src/gdcmopenjpeg/libopenjpeg/int.h index a1b590dd..3195cccc 100644 --- a/src/gdcmopenjpeg/libopenjpeg/int.h +++ b/src/gdcmopenjpeg/libopenjpeg/int.h @@ -1,5 +1,9 @@ /* - * Copyright (c) 2001-2002, David Janssens + * Copyright (c) 2001-2003, David Janssens + * Copyright (c) 2002-2003, Yannick Verschueren + * Copyright (c) 2003-2005, Francois Devaux and Antonin Descampe + * Copyright (c) 2005, Hervé Drolon, FreeImage Team + * Copyright (c) 2002-2005, Communications and remote sensing Laboratory, Universite catholique de Louvain, Belgium * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -23,64 +27,92 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ - #ifndef __INT_H #define __INT_H +/** +@file int.h +@brief Implementation of operations on integers (INT) -/* - * Get the minimum of two integers. - * - * returns a if a < b else b - */ -int int_min(int a, int b); - -/* - * Get the maximum of two integers. - * - * returns a if a > b else b - */ -int int_max(int a, int b); - -/* - * Clamp an integer inside an interval. - * - * return a if (min < a < max) - * return max if (a > max) - * return min if (a < min) - */ -int int_clamp(int a, int min, int max); - -/* - * Get absolute value of integer. - */ -int int_abs(int a); - -/* - * Divide an integer and round upwards. - * - * a divided by b - */ -int int_ceildiv(int a, int b); +The functions in INT.H have for goal to realize operations on integers. +*/ -/* - * Divide an integer by a power of 2 and round upwards. - * - * a divided by 2^b - */ -int int_ceildivpow2(int a, int b); +/** @defgroup INT INT - Implementation of operations on integers */ +/*@{*/ -/* - * Divide an integer by a power of 2 and round downwards. - * - * a divided by 2^b - */ -int int_floordivpow2(int a, int b); +/** @name Exported functions (see also openjpeg.h) */ +/*@{*/ +/* ----------------------------------------------------------------------- */ +/** +Get the minimum of two integers +@return Returns a if a < b else 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 +*/ +static INLINE int int_max(int a, int b) { + return (a > b) ? a : b; +} +/** +Clamp an integer inside an interval +@return + +*/ +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 +*/ +static INLINE int int_abs(int a) { + return a < 0 ? -a : a; +} +/** +Divide an integer and round upwards +@return Returns a divided by 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 +*/ +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 +*/ +static INLINE int int_floordivpow2(int a, int b) { + return a >> b; +} +/** +Get logarithm of an integer and round downwards +@return Returns log2(a) +*/ +static INLINE int int_floorlog2(int a) { + int l; + for (l = 0; a > 1; l++) { + a >>= 1; + } + return l; +} +/* ----------------------------------------------------------------------- */ +/*@}*/ -/* - * Get logarithm of an integer and round downwards. - * - * log2(a) - */ -int int_floorlog2(int a); +/*@}*/ #endif