STYLE: Remove completely reference to OPJ_EXPORT
[openjpeg.git] / libopenjpeg / int.h
1 /*
2  * Copyright (c) 2001-2003, David Janssens
3  * Copyright (c) 2002-2003, Yannick Verschueren
4  * Copyright (c) 2003-2005, Francois Devaux and Antonin Descampe
5  * Copyright (c) 2005, Herv� Drolon, FreeImage Team
6  * Copyright (c) 2002-2005, Communications and remote sensing Laboratory, Universite catholique de Louvain, Belgium
7  * All rights reserved.
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions
11  * are met:
12  * 1. Redistributions of source code must retain the above copyright
13  *    notice, this list of conditions and the following disclaimer.
14  * 2. Redistributions in binary form must reproduce the above copyright
15  *    notice, this list of conditions and the following disclaimer in the
16  *    documentation and/or other materials provided with the distribution.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
19  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21  * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
22  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28  * POSSIBILITY OF SUCH DAMAGE.
29  */
30 #ifndef __INT_H
31 #define __INT_H
32 /**
33 @file int.h
34 @brief Implementation of operations on integers (INT)
35
36 The functions in INT.C have for goal to realize operations on integers.
37 */
38
39 /** @defgroup INT INT - Implementation of operations on integers */
40 /*@{*/
41
42 /** @name Exported functions (see also openjpeg.h) */
43 /*@{*/
44 /* ----------------------------------------------------------------------- */
45 /**
46 Get the minimum of two integers
47 @return Returns a if a < b else b
48 */
49 int int_min(int a, int b);
50 /**
51 Get the maximum of two integers
52 @return Returns a if a > b else b
53 */
54 int int_max(int a, int b);
55 /**
56 Clamp an integer inside an interval
57 @return
58 <ul>
59 <li>Returns a if (min < a < max)
60 <li>Returns max if (a > max)
61 <li>Returns min if (a < min) 
62 </ul>
63 */
64 int int_clamp(int a, int min, int max);
65 /**
66 @return Get absolute value of integer
67 */
68 int int_abs(int a);
69 /**
70 Divide an integer and round upwards
71 @return Returns a divided by b
72 */
73 int int_ceildiv(int a, int b);
74 /**
75 Divide an integer by a power of 2 and round upwards
76 @return Returns a divided by 2^b
77 */
78 int int_ceildivpow2(int a, int b);
79 /**
80 Divide an integer by a power of 2 and round downwards
81 @return Returns a divided by 2^b
82 */
83 int int_floordivpow2(int a, int b);
84 /**
85 Get logarithm of an integer and round downwards
86 @return Returns log2(a)
87 */
88 int int_floorlog2(int a);
89
90 /* ----------------------------------------------------------------------- */
91 /*@}*/
92
93 /*@}*/
94
95 #endif