In pi.c, removed the Recursive function pi_check_next_level() and modified the code.
[openjpeg.git] / libopenjpeg / fix.h
index 28d2e7c4a01b56a8edd0289fc1f5a8fee57e54c8..bcb2acb54c8ff9946df869bb872341297d43e2a6 100644 (file)
@@ -1,9 +1,10 @@
 /*
+ * 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-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
+ * 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
  * 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.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 */
@@ -47,7 +53,11 @@ 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 ;
+    temp += temp & 4096;
+    return (int) (temp >> 13) ;
+}
 
 /*@}*/