Possibility to choose to apply MCT (multiple component transform) enabled, and new...
[openjpeg.git] / mj2 / libopenjpeg_097 / int.h
1 /*\r
2  * Copyright (c) 2001-2002, David Janssens\r
3  * All rights reserved.\r
4  *\r
5  * Redistribution and use in source and binary forms, with or without\r
6  * modification, are permitted provided that the following conditions\r
7  * are met:\r
8  * 1. Redistributions of source code must retain the above copyright\r
9  *    notice, this list of conditions and the following disclaimer.\r
10  * 2. Redistributions in binary form must reproduce the above copyright\r
11  *    notice, this list of conditions and the following disclaimer in the\r
12  *    documentation and/or other materials provided with the distribution.\r
13  *\r
14  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'\r
15  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
16  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
17  * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\r
18  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\r
19  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\r
20  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
21  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\r
22  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r
23  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\r
24  * POSSIBILITY OF SUCH DAMAGE.\r
25  */\r
26 \r
27 #include "j2k.h"\r
28 \r
29 #ifndef __INT_H\r
30 #define __INT_H\r
31 \r
32 /*\r
33  * Get the minimum of two integers.\r
34  *\r
35  * returns a if a < b else b\r
36  */\r
37 int int_min(int a, int b);\r
38 \r
39 /*\r
40  * Get the maximum of two integers.\r
41  *\r
42  * returns a if a > b else b\r
43  */\r
44 int int_max(int a, int b);\r
45 \r
46 /*\r
47  * Clamp an integer inside an interval.\r
48  *\r
49  * return a if (min < a < max)\r
50  * return max if (a > max)\r
51  * return min if (a < min) \r
52  */\r
53 int int_clamp(int a, int min, int max);\r
54 \r
55 /*\r
56  * Get absolute value of integer.\r
57  */\r
58 int int_abs(int a);\r
59 \r
60 /*\r
61  * Divide an integer and round upwards.\r
62  *\r
63  * a divided by b\r
64  */\r
65 int int_ceildiv(int a, int b);\r
66 \r
67 /*\r
68  * Divide an integer by a power of 2 and round upwards.\r
69  *\r
70  * a divided by 2^b\r
71  */\r
72 LIBJ2K_API int int_ceildivpow2(int a, int b);\r
73 \r
74 /*\r
75  * Divide an integer by a power of 2 and round downwards.\r
76  *\r
77  * a divided by 2^b\r
78  */\r
79 LIBJ2K_API int int_floordivpow2(int a, int b);\r
80 \r
81 /*\r
82  * Get logarithm of an integer and round downwards.\r
83  *\r
84  * log2(a)\r
85  */\r
86 int int_floorlog2(int a);\r
87 \r
88 #endif\r