X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2Fgdcmopenjpeg%2Flibopenjpeg%2Ffix.h;h=85575cbcee9f2caff698e434c3d13253229253d5;hb=7eb2c6a1c2b6d33ac2b9dd5e23304679c185f70b;hp=b5b62e67bef224f3084f277b50a91c57a341f3c9;hpb=62ba44019992fac89cad65f7756f8ad13972c23c;p=gdcm.git diff --git a/src/gdcmopenjpeg/libopenjpeg/fix.h b/src/gdcmopenjpeg/libopenjpeg/fix.h index b5b62e67..85575cbc 100644 --- a/src/gdcmopenjpeg/libopenjpeg/fix.h +++ b/src/gdcmopenjpeg/libopenjpeg/fix.h @@ -29,11 +29,18 @@ */ #ifndef __FIX_H #define __FIX_H + +#if defined(_MSC_VER) || defined(__BORLANDC__) +#define int64 __int64 +#else +#define int64 long long +#endif + /** @file fix.h @brief Implementation of operations of specific multiplication (FIX) -The functions in FIX.C have for goal to realize specific multiplication. +The functions in FIX.H have for goal to realize specific multiplication. */ /** @defgroup FIX FIX - Implementation of operations of specific multiplication */ @@ -45,7 +52,10 @@ Multiply two fixed-precision rational numbers. @param b @return Returns a * b */ -int fix_mul(int a, int b); +static INLINE int fix_mul(int a, int b) { + int64 temp = (int64) a * (int64) b >> 12; + return (int) ((temp >> 1) + (temp & 1)) ; +} /*@}*/