From 1fefa033296ef0c3eb7e4146b280fef79c488faa Mon Sep 17 00:00:00 2001 From: Mickael Savinaud Date: Fri, 5 Oct 2012 08:32:05 +0000 Subject: [PATCH] [trunk] move fix_mul inside int.h and remove fix.h from the project --- src/lib/openjp2/fix.h | 64 ---------------------------------- src/lib/openjp2/int.h | 30 +++++++++++----- src/lib/openjp2/opj_includes.h | 1 - 3 files changed, 21 insertions(+), 74 deletions(-) delete mode 100644 src/lib/openjp2/fix.h diff --git a/src/lib/openjp2/fix.h b/src/lib/openjp2/fix.h deleted file mode 100644 index bcb2acb5..00000000 --- a/src/lib/openjp2/fix.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium - * Copyright (c) 2002-2007, Professor Benoit Macq - * Copyright (c) 2001-2003, David Janssens - * Copyright (c) 2002-2003, Yannick Verschueren - * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe - * Copyright (c) 2005, Herve Drolon, FreeImage Team - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS' - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#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.H have for goal to realize specific multiplication. -*/ - -/** @defgroup FIX FIX - Implementation of operations of specific multiplication */ -/*@{*/ - -/** -Multiply two fixed-precision rational numbers. -@param a -@param b -@return Returns a * b -*/ -static INLINE int fix_mul(int a, int b) { - int64 temp = (int64) a * (int64) b ; - temp += temp & 4096; - return (int) (temp >> 13) ; -} - -/*@}*/ - -#endif /* __FIX_H */ diff --git a/src/lib/openjp2/int.h b/src/lib/openjp2/int.h index 57fec99d..6d71b105 100644 --- a/src/lib/openjp2/int.h +++ b/src/lib/openjp2/int.h @@ -47,7 +47,7 @@ The functions in INT.H have for goal to realize operations on integers. Get the minimum of two integers @return Returns a if a < b else b */ -static INLINE int int_min(int a, int b) { +static INLINE OPJ_INT32 int_min(OPJ_INT32 a, OPJ_INT32 b) { return a < b ? a : b; } @@ -63,7 +63,7 @@ static INLINE OPJ_UINT32 uint_min(OPJ_UINT32 a, OPJ_UINT32 b) { Get the maximum of two integers @return Returns a if a > b else b */ -static INLINE int int_max(int a, int b) { +static INLINE OPJ_INT32 int_max(OPJ_INT32 a, OPJ_INT32 b) { return (a > b) ? a : b; } @@ -84,7 +84,7 @@ Clamp an integer inside an interval
  • Returns min if (a < min) */ -static INLINE int int_clamp(int a, int min, int max) { +static INLINE OPJ_INT32 int_clamp(OPJ_INT32 a, OPJ_INT32 min, OPJ_INT32 max) { if (a < min) return min; if (a > max) @@ -94,14 +94,14 @@ static INLINE int int_clamp(int a, int min, int max) { /** @return Get absolute value of integer */ -static INLINE int int_abs(int a) { +static INLINE OPJ_INT32 int_abs(OPJ_INT32 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) { +static INLINE OPJ_INT32 int_ceildiv(OPJ_INT32 a, OPJ_INT32 b) { return (a + b - 1) / b; } @@ -117,22 +117,22 @@ static INLINE OPJ_UINT32 uint_ceildiv(OPJ_UINT32 a, OPJ_UINT32 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) { +static INLINE OPJ_INT32 int_ceildivpow2(OPJ_INT32 a, OPJ_INT32 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) { +static INLINE OPJ_INT32 int_floordivpow2(OPJ_INT32 a, OPJ_INT32 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; +static INLINE OPJ_INT32 int_floorlog2(OPJ_INT32 a) { + OPJ_INT32 l; for (l = 0; a > 1; l++) { a >>= 1; } @@ -151,6 +151,18 @@ static INLINE OPJ_UINT32 uint_floorlog2(OPJ_UINT32 a) { return l; } +/** +Multiply two fixed-precision rational numbers. +@param a +@param b +@return Returns a * b +*/ +static INLINE OPJ_INT32 fix_mul(OPJ_INT32 a, OPJ_INT32 b) { + OPJ_INT64 temp = (OPJ_INT64) a * (OPJ_INT64) b ; + temp += temp & 4096; + return (int) (temp >> 13) ; +} + /* ----------------------------------------------------------------------- */ /*@}*/ diff --git a/src/lib/openjp2/opj_includes.h b/src/lib/openjp2/opj_includes.h index 98a5b86b..472db3d2 100644 --- a/src/lib/openjp2/opj_includes.h +++ b/src/lib/openjp2/opj_includes.h @@ -168,7 +168,6 @@ static INLINE long lrintf(float f){ #include "t2.h" #include "mct.h" #include "int.h" -#include "fix.h" #include "cidx_manager.h" #include "indexbox_manager.h" -- 2.40.0