/src/opencv/3rdparty/openjpeg/openjp2/opj_intmath.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* |
2 | | * The copyright in this software is being made available under the 2-clauses |
3 | | * BSD License, included below. This software may be subject to other third |
4 | | * party and contributor rights, including patent rights, and no such rights |
5 | | * are granted under this license. |
6 | | * |
7 | | * Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium |
8 | | * Copyright (c) 2002-2014, Professor Benoit Macq |
9 | | * Copyright (c) 2001-2003, David Janssens |
10 | | * Copyright (c) 2002-2003, Yannick Verschueren |
11 | | * Copyright (c) 2003-2007, Francois-Olivier Devaux |
12 | | * Copyright (c) 2003-2014, Antonin Descampe |
13 | | * Copyright (c) 2005, Herve Drolon, FreeImage Team |
14 | | * All rights reserved. |
15 | | * |
16 | | * Redistribution and use in source and binary forms, with or without |
17 | | * modification, are permitted provided that the following conditions |
18 | | * are met: |
19 | | * 1. Redistributions of source code must retain the above copyright |
20 | | * notice, this list of conditions and the following disclaimer. |
21 | | * 2. Redistributions in binary form must reproduce the above copyright |
22 | | * notice, this list of conditions and the following disclaimer in the |
23 | | * documentation and/or other materials provided with the distribution. |
24 | | * |
25 | | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS' |
26 | | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
27 | | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
28 | | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE |
29 | | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
30 | | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
31 | | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
32 | | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
33 | | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
34 | | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
35 | | * POSSIBILITY OF SUCH DAMAGE. |
36 | | */ |
37 | | #ifndef OPJ_INTMATH_H |
38 | | #define OPJ_INTMATH_H |
39 | | /** |
40 | | @file opj_intmath.h |
41 | | @brief Implementation of operations on integers (INT) |
42 | | |
43 | | The functions in OPJ_INTMATH.H have for goal to realize operations on integers. |
44 | | */ |
45 | | |
46 | | /** @defgroup OPJ_INTMATH OPJ_INTMATH - Implementation of operations on integers */ |
47 | | /*@{*/ |
48 | | |
49 | | /** @name Exported functions (see also openjpeg.h) */ |
50 | | /*@{*/ |
51 | | /* ----------------------------------------------------------------------- */ |
52 | | /** |
53 | | Get the minimum of two integers |
54 | | @return Returns a if a < b else b |
55 | | */ |
56 | | static INLINE OPJ_INT32 opj_int_min(OPJ_INT32 a, OPJ_INT32 b) |
57 | 4.92M | { |
58 | 4.92M | return a < b ? a : b; |
59 | 4.92M | } Unexecuted instantiation: cio.c:opj_int_min Unexecuted instantiation: event.c:opj_int_min Unexecuted instantiation: image.c:opj_int_min Unexecuted instantiation: openjpeg.c:opj_int_min Unexecuted instantiation: opj_malloc.c:opj_int_min Unexecuted instantiation: j2k.c:opj_int_min Unexecuted instantiation: jp2.c:opj_int_min Unexecuted instantiation: mct.c:opj_int_min Unexecuted instantiation: pi.c:opj_int_min Line | Count | Source | 57 | 4.12M | { | 58 | 4.12M | return a < b ? a : b; | 59 | 4.12M | } |
Unexecuted instantiation: tgt.c:opj_int_min Unexecuted instantiation: function_list.c:opj_int_min Unexecuted instantiation: thread.c:opj_int_min Unexecuted instantiation: bio.c:opj_int_min Line | Count | Source | 57 | 156k | { | 58 | 156k | return a < b ? a : b; | 59 | 156k | } |
Unexecuted instantiation: invert.c:opj_int_min Unexecuted instantiation: t1.c:opj_int_min Line | Count | Source | 57 | 645k | { | 58 | 645k | return a < b ? a : b; | 59 | 645k | } |
Unexecuted instantiation: sparse_array.c:opj_int_min Unexecuted instantiation: ht_dec.c:opj_int_min Unexecuted instantiation: mqc.c:opj_int_min |
60 | | |
61 | | /** |
62 | | Get the minimum of two integers |
63 | | @return Returns a if a < b else b |
64 | | */ |
65 | | static INLINE OPJ_UINT32 opj_uint_min(OPJ_UINT32 a, OPJ_UINT32 b) |
66 | 11.8M | { |
67 | 11.8M | return a < b ? a : b; |
68 | 11.8M | } Unexecuted instantiation: cio.c:opj_uint_min Unexecuted instantiation: event.c:opj_uint_min Line | Count | Source | 66 | 2.30k | { | 67 | 2.30k | return a < b ? a : b; | 68 | 2.30k | } |
Unexecuted instantiation: openjpeg.c:opj_uint_min Unexecuted instantiation: opj_malloc.c:opj_uint_min Line | Count | Source | 66 | 1.12k | { | 67 | 1.12k | return a < b ? a : b; | 68 | 1.12k | } |
Unexecuted instantiation: jp2.c:opj_uint_min Unexecuted instantiation: mct.c:opj_uint_min Line | Count | Source | 66 | 41.0k | { | 67 | 41.0k | return a < b ? a : b; | 68 | 41.0k | } |
Line | Count | Source | 66 | 11.6M | { | 67 | 11.6M | return a < b ? a : b; | 68 | 11.6M | } |
Unexecuted instantiation: tgt.c:opj_uint_min Unexecuted instantiation: function_list.c:opj_uint_min Unexecuted instantiation: thread.c:opj_uint_min Unexecuted instantiation: bio.c:opj_uint_min Line | Count | Source | 66 | 156k | { | 67 | 156k | return a < b ? a : b; | 68 | 156k | } |
Unexecuted instantiation: invert.c:opj_uint_min Unexecuted instantiation: t1.c:opj_uint_min Unexecuted instantiation: t2.c:opj_uint_min Unexecuted instantiation: sparse_array.c:opj_uint_min Unexecuted instantiation: ht_dec.c:opj_uint_min Unexecuted instantiation: mqc.c:opj_uint_min |
69 | | |
70 | | /** |
71 | | Get the maximum of two integers |
72 | | @return Returns a if a > b else b |
73 | | */ |
74 | | static INLINE OPJ_INT32 opj_int_max(OPJ_INT32 a, OPJ_INT32 b) |
75 | 4.12M | { |
76 | 4.12M | return (a > b) ? a : b; |
77 | 4.12M | } Unexecuted instantiation: cio.c:opj_int_max Unexecuted instantiation: event.c:opj_int_max Unexecuted instantiation: image.c:opj_int_max Unexecuted instantiation: openjpeg.c:opj_int_max Unexecuted instantiation: opj_malloc.c:opj_int_max Unexecuted instantiation: j2k.c:opj_int_max Unexecuted instantiation: jp2.c:opj_int_max Unexecuted instantiation: mct.c:opj_int_max Unexecuted instantiation: pi.c:opj_int_max Line | Count | Source | 75 | 4.12M | { | 76 | 4.12M | return (a > b) ? a : b; | 77 | 4.12M | } |
Unexecuted instantiation: tgt.c:opj_int_max Unexecuted instantiation: function_list.c:opj_int_max Unexecuted instantiation: thread.c:opj_int_max Unexecuted instantiation: bio.c:opj_int_max Unexecuted instantiation: dwt.c:opj_int_max Unexecuted instantiation: invert.c:opj_int_max Unexecuted instantiation: t1.c:opj_int_max Unexecuted instantiation: t2.c:opj_int_max Unexecuted instantiation: sparse_array.c:opj_int_max Unexecuted instantiation: ht_dec.c:opj_int_max Unexecuted instantiation: mqc.c:opj_int_max |
78 | | |
79 | | /** |
80 | | Get the maximum of two integers |
81 | | @return Returns a if a > b else b |
82 | | */ |
83 | | static INLINE OPJ_UINT32 opj_uint_max(OPJ_UINT32 a, OPJ_UINT32 b) |
84 | 15.3M | { |
85 | 15.3M | return (a > b) ? a : b; |
86 | 15.3M | } Unexecuted instantiation: cio.c:opj_uint_max Unexecuted instantiation: event.c:opj_uint_max Line | Count | Source | 84 | 2.30k | { | 85 | 2.30k | return (a > b) ? a : b; | 86 | 2.30k | } |
Unexecuted instantiation: openjpeg.c:opj_uint_max Unexecuted instantiation: opj_malloc.c:opj_uint_max Unexecuted instantiation: j2k.c:opj_uint_max Unexecuted instantiation: jp2.c:opj_uint_max Unexecuted instantiation: mct.c:opj_uint_max Line | Count | Source | 84 | 6.16k | { | 85 | 6.16k | return (a > b) ? a : b; | 86 | 6.16k | } |
Line | Count | Source | 84 | 11.6M | { | 85 | 11.6M | return (a > b) ? a : b; | 86 | 11.6M | } |
Unexecuted instantiation: tgt.c:opj_uint_max Unexecuted instantiation: function_list.c:opj_uint_max Unexecuted instantiation: thread.c:opj_uint_max Unexecuted instantiation: bio.c:opj_uint_max Unexecuted instantiation: dwt.c:opj_uint_max Unexecuted instantiation: invert.c:opj_uint_max Unexecuted instantiation: t1.c:opj_uint_max Line | Count | Source | 84 | 3.75M | { | 85 | 3.75M | return (a > b) ? a : b; | 86 | 3.75M | } |
Unexecuted instantiation: sparse_array.c:opj_uint_max Unexecuted instantiation: ht_dec.c:opj_uint_max Unexecuted instantiation: mqc.c:opj_uint_max |
87 | | |
88 | | /** |
89 | | Get the saturated sum of two unsigned integers |
90 | | @return Returns saturated sum of a+b |
91 | | */ |
92 | | static INLINE OPJ_UINT32 opj_uint_adds(OPJ_UINT32 a, OPJ_UINT32 b) |
93 | 11.6M | { |
94 | 11.6M | OPJ_UINT64 sum = (OPJ_UINT64)a + (OPJ_UINT64)b; |
95 | 11.6M | return (OPJ_UINT32)(-(OPJ_INT32)(sum >> 32)) | (OPJ_UINT32)sum; |
96 | 11.6M | } Unexecuted instantiation: cio.c:opj_uint_adds Unexecuted instantiation: event.c:opj_uint_adds Line | Count | Source | 93 | 2.30k | { | 94 | 2.30k | OPJ_UINT64 sum = (OPJ_UINT64)a + (OPJ_UINT64)b; | 95 | 2.30k | return (OPJ_UINT32)(-(OPJ_INT32)(sum >> 32)) | (OPJ_UINT32)sum; | 96 | 2.30k | } |
Unexecuted instantiation: openjpeg.c:opj_uint_adds Unexecuted instantiation: opj_malloc.c:opj_uint_adds Line | Count | Source | 93 | 2.31k | { | 94 | 2.31k | OPJ_UINT64 sum = (OPJ_UINT64)a + (OPJ_UINT64)b; | 95 | 2.31k | return (OPJ_UINT32)(-(OPJ_INT32)(sum >> 32)) | (OPJ_UINT32)sum; | 96 | 2.31k | } |
Unexecuted instantiation: jp2.c:opj_uint_adds Unexecuted instantiation: mct.c:opj_uint_adds Line | Count | Source | 93 | 6.16k | { | 94 | 6.16k | OPJ_UINT64 sum = (OPJ_UINT64)a + (OPJ_UINT64)b; | 95 | 6.16k | return (OPJ_UINT32)(-(OPJ_INT32)(sum >> 32)) | (OPJ_UINT32)sum; | 96 | 6.16k | } |
Line | Count | Source | 93 | 11.5M | { | 94 | 11.5M | OPJ_UINT64 sum = (OPJ_UINT64)a + (OPJ_UINT64)b; | 95 | 11.5M | return (OPJ_UINT32)(-(OPJ_INT32)(sum >> 32)) | (OPJ_UINT32)sum; | 96 | 11.5M | } |
Unexecuted instantiation: tgt.c:opj_uint_adds Unexecuted instantiation: function_list.c:opj_uint_adds Unexecuted instantiation: thread.c:opj_uint_adds Unexecuted instantiation: bio.c:opj_uint_adds Unexecuted instantiation: dwt.c:opj_uint_adds Unexecuted instantiation: invert.c:opj_uint_adds Unexecuted instantiation: t1.c:opj_uint_adds Unexecuted instantiation: t2.c:opj_uint_adds Unexecuted instantiation: sparse_array.c:opj_uint_adds Unexecuted instantiation: ht_dec.c:opj_uint_adds Unexecuted instantiation: mqc.c:opj_uint_adds |
97 | | |
98 | | /** |
99 | | Get the saturated difference of two unsigned integers |
100 | | @return Returns saturated sum of a-b |
101 | | */ |
102 | | static INLINE OPJ_UINT32 opj_uint_subs(OPJ_UINT32 a, OPJ_UINT32 b) |
103 | 0 | { |
104 | 0 | return (a >= b) ? a - b : 0; |
105 | 0 | } Unexecuted instantiation: cio.c:opj_uint_subs Unexecuted instantiation: event.c:opj_uint_subs Unexecuted instantiation: image.c:opj_uint_subs Unexecuted instantiation: openjpeg.c:opj_uint_subs Unexecuted instantiation: opj_malloc.c:opj_uint_subs Unexecuted instantiation: j2k.c:opj_uint_subs Unexecuted instantiation: jp2.c:opj_uint_subs Unexecuted instantiation: mct.c:opj_uint_subs Unexecuted instantiation: pi.c:opj_uint_subs Unexecuted instantiation: tcd.c:opj_uint_subs Unexecuted instantiation: tgt.c:opj_uint_subs Unexecuted instantiation: function_list.c:opj_uint_subs Unexecuted instantiation: thread.c:opj_uint_subs Unexecuted instantiation: bio.c:opj_uint_subs Unexecuted instantiation: dwt.c:opj_uint_subs Unexecuted instantiation: invert.c:opj_uint_subs Unexecuted instantiation: t1.c:opj_uint_subs Unexecuted instantiation: t2.c:opj_uint_subs Unexecuted instantiation: sparse_array.c:opj_uint_subs Unexecuted instantiation: ht_dec.c:opj_uint_subs Unexecuted instantiation: mqc.c:opj_uint_subs |
106 | | |
107 | | /** |
108 | | Clamp an integer inside an interval |
109 | | @return |
110 | | <ul> |
111 | | <li>Returns a if (min < a < max) |
112 | | <li>Returns max if (a > max) |
113 | | <li>Returns min if (a < min) |
114 | | </ul> |
115 | | */ |
116 | | static INLINE OPJ_INT32 opj_int_clamp(OPJ_INT32 a, OPJ_INT32 min, |
117 | | OPJ_INT32 max) |
118 | 4.18G | { |
119 | 4.18G | if (a < min) { |
120 | 64.8M | return min; |
121 | 64.8M | } |
122 | 4.12G | if (a > max) { |
123 | 63.1M | return max; |
124 | 63.1M | } |
125 | 4.06G | return a; |
126 | 4.12G | } Unexecuted instantiation: cio.c:opj_int_clamp Unexecuted instantiation: event.c:opj_int_clamp Unexecuted instantiation: image.c:opj_int_clamp Unexecuted instantiation: openjpeg.c:opj_int_clamp Unexecuted instantiation: opj_malloc.c:opj_int_clamp Unexecuted instantiation: j2k.c:opj_int_clamp Unexecuted instantiation: jp2.c:opj_int_clamp Unexecuted instantiation: mct.c:opj_int_clamp Unexecuted instantiation: pi.c:opj_int_clamp Line | Count | Source | 118 | 4.18G | { | 119 | 4.18G | if (a < min) { | 120 | 64.8M | return min; | 121 | 64.8M | } | 122 | 4.12G | if (a > max) { | 123 | 63.1M | return max; | 124 | 63.1M | } | 125 | 4.06G | return a; | 126 | 4.12G | } |
Unexecuted instantiation: tgt.c:opj_int_clamp Unexecuted instantiation: function_list.c:opj_int_clamp Unexecuted instantiation: thread.c:opj_int_clamp Unexecuted instantiation: bio.c:opj_int_clamp Unexecuted instantiation: dwt.c:opj_int_clamp Unexecuted instantiation: invert.c:opj_int_clamp Unexecuted instantiation: t1.c:opj_int_clamp Unexecuted instantiation: t2.c:opj_int_clamp Unexecuted instantiation: sparse_array.c:opj_int_clamp Unexecuted instantiation: ht_dec.c:opj_int_clamp Unexecuted instantiation: mqc.c:opj_int_clamp |
127 | | |
128 | | /** |
129 | | Clamp an integer inside an interval |
130 | | @return |
131 | | <ul> |
132 | | <li>Returns a if (min < a < max) |
133 | | <li>Returns max if (a > max) |
134 | | <li>Returns min if (a < min) |
135 | | </ul> |
136 | | */ |
137 | | static INLINE OPJ_INT64 opj_int64_clamp(OPJ_INT64 a, OPJ_INT64 min, |
138 | | OPJ_INT64 max) |
139 | 88.6M | { |
140 | 88.6M | if (a < min) { |
141 | 2.90M | return min; |
142 | 2.90M | } |
143 | 85.7M | if (a > max) { |
144 | 309k | return max; |
145 | 309k | } |
146 | 85.4M | return a; |
147 | 85.7M | } Unexecuted instantiation: cio.c:opj_int64_clamp Unexecuted instantiation: event.c:opj_int64_clamp Unexecuted instantiation: image.c:opj_int64_clamp Unexecuted instantiation: openjpeg.c:opj_int64_clamp Unexecuted instantiation: opj_malloc.c:opj_int64_clamp Unexecuted instantiation: j2k.c:opj_int64_clamp Unexecuted instantiation: jp2.c:opj_int64_clamp Unexecuted instantiation: mct.c:opj_int64_clamp Unexecuted instantiation: pi.c:opj_int64_clamp Line | Count | Source | 139 | 88.6M | { | 140 | 88.6M | if (a < min) { | 141 | 2.90M | return min; | 142 | 2.90M | } | 143 | 85.7M | if (a > max) { | 144 | 309k | return max; | 145 | 309k | } | 146 | 85.4M | return a; | 147 | 85.7M | } |
Unexecuted instantiation: tgt.c:opj_int64_clamp Unexecuted instantiation: function_list.c:opj_int64_clamp Unexecuted instantiation: thread.c:opj_int64_clamp Unexecuted instantiation: bio.c:opj_int64_clamp Unexecuted instantiation: dwt.c:opj_int64_clamp Unexecuted instantiation: invert.c:opj_int64_clamp Unexecuted instantiation: t1.c:opj_int64_clamp Unexecuted instantiation: t2.c:opj_int64_clamp Unexecuted instantiation: sparse_array.c:opj_int64_clamp Unexecuted instantiation: ht_dec.c:opj_int64_clamp Unexecuted instantiation: mqc.c:opj_int64_clamp |
148 | | |
149 | | /** |
150 | | @return Get absolute value of integer |
151 | | */ |
152 | | static INLINE OPJ_INT32 opj_int_abs(OPJ_INT32 a) |
153 | 0 | { |
154 | 0 | return a < 0 ? -a : a; |
155 | 0 | } Unexecuted instantiation: cio.c:opj_int_abs Unexecuted instantiation: event.c:opj_int_abs Unexecuted instantiation: image.c:opj_int_abs Unexecuted instantiation: openjpeg.c:opj_int_abs Unexecuted instantiation: opj_malloc.c:opj_int_abs Unexecuted instantiation: j2k.c:opj_int_abs Unexecuted instantiation: jp2.c:opj_int_abs Unexecuted instantiation: mct.c:opj_int_abs Unexecuted instantiation: pi.c:opj_int_abs Unexecuted instantiation: tcd.c:opj_int_abs Unexecuted instantiation: tgt.c:opj_int_abs Unexecuted instantiation: function_list.c:opj_int_abs Unexecuted instantiation: thread.c:opj_int_abs Unexecuted instantiation: bio.c:opj_int_abs Unexecuted instantiation: dwt.c:opj_int_abs Unexecuted instantiation: invert.c:opj_int_abs Unexecuted instantiation: t1.c:opj_int_abs Unexecuted instantiation: t2.c:opj_int_abs Unexecuted instantiation: sparse_array.c:opj_int_abs Unexecuted instantiation: ht_dec.c:opj_int_abs Unexecuted instantiation: mqc.c:opj_int_abs |
156 | | /** |
157 | | Divide an integer and round upwards |
158 | | @return Returns a divided by b |
159 | | */ |
160 | | static INLINE OPJ_INT32 opj_int_ceildiv(OPJ_INT32 a, OPJ_INT32 b) |
161 | 19.6k | { |
162 | 19.6k | assert(b); |
163 | 19.6k | return (OPJ_INT32)(((OPJ_INT64)a + b - 1) / b); |
164 | 19.6k | } Unexecuted instantiation: cio.c:opj_int_ceildiv Unexecuted instantiation: event.c:opj_int_ceildiv Unexecuted instantiation: image.c:opj_int_ceildiv Unexecuted instantiation: openjpeg.c:opj_int_ceildiv Unexecuted instantiation: opj_malloc.c:opj_int_ceildiv Unexecuted instantiation: j2k.c:opj_int_ceildiv Unexecuted instantiation: jp2.c:opj_int_ceildiv Unexecuted instantiation: mct.c:opj_int_ceildiv Unexecuted instantiation: pi.c:opj_int_ceildiv Line | Count | Source | 161 | 19.6k | { | 162 | 19.6k | assert(b); | 163 | 19.6k | return (OPJ_INT32)(((OPJ_INT64)a + b - 1) / b); | 164 | 19.6k | } |
Unexecuted instantiation: tgt.c:opj_int_ceildiv Unexecuted instantiation: function_list.c:opj_int_ceildiv Unexecuted instantiation: thread.c:opj_int_ceildiv Unexecuted instantiation: bio.c:opj_int_ceildiv Unexecuted instantiation: dwt.c:opj_int_ceildiv Unexecuted instantiation: invert.c:opj_int_ceildiv Unexecuted instantiation: t1.c:opj_int_ceildiv Unexecuted instantiation: t2.c:opj_int_ceildiv Unexecuted instantiation: sparse_array.c:opj_int_ceildiv Unexecuted instantiation: ht_dec.c:opj_int_ceildiv Unexecuted instantiation: mqc.c:opj_int_ceildiv |
165 | | |
166 | | /** |
167 | | Divide an integer and round upwards |
168 | | @return Returns a divided by b |
169 | | */ |
170 | | static INLINE OPJ_UINT32 opj_uint_ceildiv(OPJ_UINT32 a, OPJ_UINT32 b) |
171 | 23.2M | { |
172 | 23.2M | assert(b); |
173 | 23.2M | return (OPJ_UINT32)(((OPJ_UINT64)a + b - 1) / b); |
174 | 23.2M | } Unexecuted instantiation: cio.c:opj_uint_ceildiv Unexecuted instantiation: event.c:opj_uint_ceildiv Line | Count | Source | 171 | 7.90k | { | 172 | 7.90k | assert(b); | 173 | 7.90k | return (OPJ_UINT32)(((OPJ_UINT64)a + b - 1) / b); | 174 | 7.90k | } |
Unexecuted instantiation: openjpeg.c:opj_uint_ceildiv Unexecuted instantiation: opj_malloc.c:opj_uint_ceildiv Line | Count | Source | 171 | 2.30k | { | 172 | 2.30k | assert(b); | 173 | 2.30k | return (OPJ_UINT32)(((OPJ_UINT64)a + b - 1) / b); | 174 | 2.30k | } |
Unexecuted instantiation: jp2.c:opj_uint_ceildiv Unexecuted instantiation: mct.c:opj_uint_ceildiv Line | Count | Source | 171 | 19.6k | { | 172 | 19.6k | assert(b); | 173 | 19.6k | return (OPJ_UINT32)(((OPJ_UINT64)a + b - 1) / b); | 174 | 19.6k | } |
Line | Count | Source | 171 | 23.1M | { | 172 | 23.1M | assert(b); | 173 | 23.1M | return (OPJ_UINT32)(((OPJ_UINT64)a + b - 1) / b); | 174 | 23.1M | } |
Unexecuted instantiation: tgt.c:opj_uint_ceildiv Unexecuted instantiation: function_list.c:opj_uint_ceildiv Unexecuted instantiation: thread.c:opj_uint_ceildiv Unexecuted instantiation: bio.c:opj_uint_ceildiv Unexecuted instantiation: dwt.c:opj_uint_ceildiv Unexecuted instantiation: invert.c:opj_uint_ceildiv Unexecuted instantiation: t1.c:opj_uint_ceildiv Unexecuted instantiation: t2.c:opj_uint_ceildiv Unexecuted instantiation: sparse_array.c:opj_uint_ceildiv Unexecuted instantiation: ht_dec.c:opj_uint_ceildiv Unexecuted instantiation: mqc.c:opj_uint_ceildiv |
175 | | |
176 | | /** |
177 | | Divide an integer and round upwards |
178 | | @return Returns a divided by b |
179 | | */ |
180 | | static INLINE OPJ_UINT32 opj_uint64_ceildiv_res_uint32(OPJ_UINT64 a, |
181 | | OPJ_UINT64 b) |
182 | 37.6k | { |
183 | 37.6k | assert(b); |
184 | 37.6k | return (OPJ_UINT32)((a + b - 1) / b); |
185 | 37.6k | } Unexecuted instantiation: cio.c:opj_uint64_ceildiv_res_uint32 Unexecuted instantiation: event.c:opj_uint64_ceildiv_res_uint32 Unexecuted instantiation: image.c:opj_uint64_ceildiv_res_uint32 Unexecuted instantiation: openjpeg.c:opj_uint64_ceildiv_res_uint32 Unexecuted instantiation: opj_malloc.c:opj_uint64_ceildiv_res_uint32 Unexecuted instantiation: j2k.c:opj_uint64_ceildiv_res_uint32 Unexecuted instantiation: jp2.c:opj_uint64_ceildiv_res_uint32 Unexecuted instantiation: mct.c:opj_uint64_ceildiv_res_uint32 pi.c:opj_uint64_ceildiv_res_uint32 Line | Count | Source | 182 | 37.6k | { | 183 | 37.6k | assert(b); | 184 | 37.6k | return (OPJ_UINT32)((a + b - 1) / b); | 185 | 37.6k | } |
Unexecuted instantiation: tcd.c:opj_uint64_ceildiv_res_uint32 Unexecuted instantiation: tgt.c:opj_uint64_ceildiv_res_uint32 Unexecuted instantiation: function_list.c:opj_uint64_ceildiv_res_uint32 Unexecuted instantiation: thread.c:opj_uint64_ceildiv_res_uint32 Unexecuted instantiation: bio.c:opj_uint64_ceildiv_res_uint32 Unexecuted instantiation: dwt.c:opj_uint64_ceildiv_res_uint32 Unexecuted instantiation: invert.c:opj_uint64_ceildiv_res_uint32 Unexecuted instantiation: t1.c:opj_uint64_ceildiv_res_uint32 Unexecuted instantiation: t2.c:opj_uint64_ceildiv_res_uint32 Unexecuted instantiation: sparse_array.c:opj_uint64_ceildiv_res_uint32 Unexecuted instantiation: ht_dec.c:opj_uint64_ceildiv_res_uint32 Unexecuted instantiation: mqc.c:opj_uint64_ceildiv_res_uint32 |
186 | | |
187 | | /** |
188 | | Divide an integer by a power of 2 and round upwards |
189 | | @return Returns a divided by 2^b |
190 | | */ |
191 | | static INLINE OPJ_INT32 opj_int_ceildivpow2(OPJ_INT32 a, OPJ_INT32 b) |
192 | 516k | { |
193 | 516k | return (OPJ_INT32)((a + ((OPJ_INT64)1 << b) - 1) >> b); |
194 | 516k | } Unexecuted instantiation: cio.c:opj_int_ceildivpow2 Unexecuted instantiation: event.c:opj_int_ceildivpow2 Unexecuted instantiation: image.c:opj_int_ceildivpow2 Unexecuted instantiation: openjpeg.c:opj_int_ceildivpow2 Unexecuted instantiation: opj_malloc.c:opj_int_ceildivpow2 Unexecuted instantiation: j2k.c:opj_int_ceildivpow2 Unexecuted instantiation: jp2.c:opj_int_ceildivpow2 Unexecuted instantiation: mct.c:opj_int_ceildivpow2 Unexecuted instantiation: pi.c:opj_int_ceildivpow2 tcd.c:opj_int_ceildivpow2 Line | Count | Source | 192 | 516k | { | 193 | 516k | return (OPJ_INT32)((a + ((OPJ_INT64)1 << b) - 1) >> b); | 194 | 516k | } |
Unexecuted instantiation: tgt.c:opj_int_ceildivpow2 Unexecuted instantiation: function_list.c:opj_int_ceildivpow2 Unexecuted instantiation: thread.c:opj_int_ceildivpow2 Unexecuted instantiation: bio.c:opj_int_ceildivpow2 Unexecuted instantiation: dwt.c:opj_int_ceildivpow2 Unexecuted instantiation: invert.c:opj_int_ceildivpow2 Unexecuted instantiation: t1.c:opj_int_ceildivpow2 Unexecuted instantiation: t2.c:opj_int_ceildivpow2 Unexecuted instantiation: sparse_array.c:opj_int_ceildivpow2 Unexecuted instantiation: ht_dec.c:opj_int_ceildivpow2 Unexecuted instantiation: mqc.c:opj_int_ceildivpow2 |
195 | | |
196 | | /** |
197 | | Divide a 64bits integer by a power of 2 and round upwards |
198 | | @return Returns a divided by 2^b |
199 | | */ |
200 | | static INLINE OPJ_INT32 opj_int64_ceildivpow2(OPJ_INT64 a, OPJ_INT32 b) |
201 | 26.9k | { |
202 | 26.9k | return (OPJ_INT32)((a + ((OPJ_INT64)1 << b) - 1) >> b); |
203 | 26.9k | } Unexecuted instantiation: cio.c:opj_int64_ceildivpow2 Unexecuted instantiation: event.c:opj_int64_ceildivpow2 Unexecuted instantiation: image.c:opj_int64_ceildivpow2 Unexecuted instantiation: openjpeg.c:opj_int64_ceildivpow2 Unexecuted instantiation: opj_malloc.c:opj_int64_ceildivpow2 Unexecuted instantiation: j2k.c:opj_int64_ceildivpow2 Unexecuted instantiation: jp2.c:opj_int64_ceildivpow2 Unexecuted instantiation: mct.c:opj_int64_ceildivpow2 Unexecuted instantiation: pi.c:opj_int64_ceildivpow2 tcd.c:opj_int64_ceildivpow2 Line | Count | Source | 201 | 26.9k | { | 202 | 26.9k | return (OPJ_INT32)((a + ((OPJ_INT64)1 << b) - 1) >> b); | 203 | 26.9k | } |
Unexecuted instantiation: tgt.c:opj_int64_ceildivpow2 Unexecuted instantiation: function_list.c:opj_int64_ceildivpow2 Unexecuted instantiation: thread.c:opj_int64_ceildivpow2 Unexecuted instantiation: bio.c:opj_int64_ceildivpow2 Unexecuted instantiation: dwt.c:opj_int64_ceildivpow2 Unexecuted instantiation: invert.c:opj_int64_ceildivpow2 Unexecuted instantiation: t1.c:opj_int64_ceildivpow2 Unexecuted instantiation: t2.c:opj_int64_ceildivpow2 Unexecuted instantiation: sparse_array.c:opj_int64_ceildivpow2 Unexecuted instantiation: ht_dec.c:opj_int64_ceildivpow2 Unexecuted instantiation: mqc.c:opj_int64_ceildivpow2 |
204 | | |
205 | | /** |
206 | | Divide an integer by a power of 2 and round upwards |
207 | | @return Returns a divided by 2^b |
208 | | */ |
209 | | static INLINE OPJ_UINT32 opj_uint_ceildivpow2(OPJ_UINT32 a, OPJ_UINT32 b) |
210 | 627k | { |
211 | 627k | return (OPJ_UINT32)((a + ((OPJ_UINT64)1U << b) - 1U) >> b); |
212 | 627k | } Unexecuted instantiation: cio.c:opj_uint_ceildivpow2 Unexecuted instantiation: event.c:opj_uint_ceildivpow2 image.c:opj_uint_ceildivpow2 Line | Count | Source | 210 | 3.95k | { | 211 | 3.95k | return (OPJ_UINT32)((a + ((OPJ_UINT64)1U << b) - 1U) >> b); | 212 | 3.95k | } |
Unexecuted instantiation: openjpeg.c:opj_uint_ceildivpow2 Unexecuted instantiation: opj_malloc.c:opj_uint_ceildivpow2 j2k.c:opj_uint_ceildivpow2 Line | Count | Source | 210 | 8.83k | { | 211 | 8.83k | return (OPJ_UINT32)((a + ((OPJ_UINT64)1U << b) - 1U) >> b); | 212 | 8.83k | } |
Unexecuted instantiation: jp2.c:opj_uint_ceildivpow2 Unexecuted instantiation: mct.c:opj_uint_ceildivpow2 pi.c:opj_uint_ceildivpow2 Line | Count | Source | 210 | 42.9k | { | 211 | 42.9k | return (OPJ_UINT32)((a + ((OPJ_UINT64)1U << b) - 1U) >> b); | 212 | 42.9k | } |
tcd.c:opj_uint_ceildivpow2 Line | Count | Source | 210 | 571k | { | 211 | 571k | return (OPJ_UINT32)((a + ((OPJ_UINT64)1U << b) - 1U) >> b); | 212 | 571k | } |
Unexecuted instantiation: tgt.c:opj_uint_ceildivpow2 Unexecuted instantiation: function_list.c:opj_uint_ceildivpow2 Unexecuted instantiation: thread.c:opj_uint_ceildivpow2 Unexecuted instantiation: bio.c:opj_uint_ceildivpow2 Unexecuted instantiation: dwt.c:opj_uint_ceildivpow2 Unexecuted instantiation: invert.c:opj_uint_ceildivpow2 Unexecuted instantiation: t1.c:opj_uint_ceildivpow2 Unexecuted instantiation: t2.c:opj_uint_ceildivpow2 Unexecuted instantiation: sparse_array.c:opj_uint_ceildivpow2 Unexecuted instantiation: ht_dec.c:opj_uint_ceildivpow2 Unexecuted instantiation: mqc.c:opj_uint_ceildivpow2 |
213 | | |
214 | | /** |
215 | | Divide an integer by a power of 2 and round downwards |
216 | | @return Returns a divided by 2^b |
217 | | */ |
218 | | static INLINE OPJ_INT32 opj_int_floordivpow2(OPJ_INT32 a, OPJ_INT32 b) |
219 | 464k | { |
220 | 464k | return a >> b; |
221 | 464k | } Unexecuted instantiation: cio.c:opj_int_floordivpow2 Unexecuted instantiation: event.c:opj_int_floordivpow2 Unexecuted instantiation: image.c:opj_int_floordivpow2 Unexecuted instantiation: openjpeg.c:opj_int_floordivpow2 Unexecuted instantiation: opj_malloc.c:opj_int_floordivpow2 Unexecuted instantiation: j2k.c:opj_int_floordivpow2 Unexecuted instantiation: jp2.c:opj_int_floordivpow2 Unexecuted instantiation: mct.c:opj_int_floordivpow2 Unexecuted instantiation: pi.c:opj_int_floordivpow2 tcd.c:opj_int_floordivpow2 Line | Count | Source | 219 | 464k | { | 220 | 464k | return a >> b; | 221 | 464k | } |
Unexecuted instantiation: tgt.c:opj_int_floordivpow2 Unexecuted instantiation: function_list.c:opj_int_floordivpow2 Unexecuted instantiation: thread.c:opj_int_floordivpow2 Unexecuted instantiation: bio.c:opj_int_floordivpow2 Unexecuted instantiation: dwt.c:opj_int_floordivpow2 Unexecuted instantiation: invert.c:opj_int_floordivpow2 Unexecuted instantiation: t1.c:opj_int_floordivpow2 Unexecuted instantiation: t2.c:opj_int_floordivpow2 Unexecuted instantiation: sparse_array.c:opj_int_floordivpow2 Unexecuted instantiation: ht_dec.c:opj_int_floordivpow2 Unexecuted instantiation: mqc.c:opj_int_floordivpow2 |
222 | | |
223 | | /** |
224 | | Divide an integer by a power of 2 and round downwards |
225 | | @return Returns a divided by 2^b |
226 | | */ |
227 | | static INLINE OPJ_UINT32 opj_uint_floordivpow2(OPJ_UINT32 a, OPJ_UINT32 b) |
228 | 30.2k | { |
229 | 30.2k | return a >> b; |
230 | 30.2k | } Unexecuted instantiation: cio.c:opj_uint_floordivpow2 Unexecuted instantiation: event.c:opj_uint_floordivpow2 Unexecuted instantiation: image.c:opj_uint_floordivpow2 Unexecuted instantiation: openjpeg.c:opj_uint_floordivpow2 Unexecuted instantiation: opj_malloc.c:opj_uint_floordivpow2 Unexecuted instantiation: j2k.c:opj_uint_floordivpow2 Unexecuted instantiation: jp2.c:opj_uint_floordivpow2 Unexecuted instantiation: mct.c:opj_uint_floordivpow2 pi.c:opj_uint_floordivpow2 Line | Count | Source | 228 | 30.2k | { | 229 | 30.2k | return a >> b; | 230 | 30.2k | } |
Unexecuted instantiation: tcd.c:opj_uint_floordivpow2 Unexecuted instantiation: tgt.c:opj_uint_floordivpow2 Unexecuted instantiation: function_list.c:opj_uint_floordivpow2 Unexecuted instantiation: thread.c:opj_uint_floordivpow2 Unexecuted instantiation: bio.c:opj_uint_floordivpow2 Unexecuted instantiation: dwt.c:opj_uint_floordivpow2 Unexecuted instantiation: invert.c:opj_uint_floordivpow2 Unexecuted instantiation: t1.c:opj_uint_floordivpow2 Unexecuted instantiation: t2.c:opj_uint_floordivpow2 Unexecuted instantiation: sparse_array.c:opj_uint_floordivpow2 Unexecuted instantiation: ht_dec.c:opj_uint_floordivpow2 Unexecuted instantiation: mqc.c:opj_uint_floordivpow2 |
231 | | |
232 | | /** |
233 | | Get logarithm of an integer and round downwards |
234 | | @return Returns log2(a) |
235 | | */ |
236 | | static INLINE OPJ_INT32 opj_int_floorlog2(OPJ_INT32 a) |
237 | 0 | { |
238 | 0 | OPJ_INT32 l; |
239 | 0 | for (l = 0; a > 1; l++) { |
240 | 0 | a >>= 1; |
241 | 0 | } |
242 | 0 | return l; |
243 | 0 | } Unexecuted instantiation: cio.c:opj_int_floorlog2 Unexecuted instantiation: event.c:opj_int_floorlog2 Unexecuted instantiation: image.c:opj_int_floorlog2 Unexecuted instantiation: openjpeg.c:opj_int_floorlog2 Unexecuted instantiation: opj_malloc.c:opj_int_floorlog2 Unexecuted instantiation: j2k.c:opj_int_floorlog2 Unexecuted instantiation: jp2.c:opj_int_floorlog2 Unexecuted instantiation: mct.c:opj_int_floorlog2 Unexecuted instantiation: pi.c:opj_int_floorlog2 Unexecuted instantiation: tcd.c:opj_int_floorlog2 Unexecuted instantiation: tgt.c:opj_int_floorlog2 Unexecuted instantiation: function_list.c:opj_int_floorlog2 Unexecuted instantiation: thread.c:opj_int_floorlog2 Unexecuted instantiation: bio.c:opj_int_floorlog2 Unexecuted instantiation: dwt.c:opj_int_floorlog2 Unexecuted instantiation: invert.c:opj_int_floorlog2 Unexecuted instantiation: t1.c:opj_int_floorlog2 Unexecuted instantiation: t2.c:opj_int_floorlog2 Unexecuted instantiation: sparse_array.c:opj_int_floorlog2 Unexecuted instantiation: ht_dec.c:opj_int_floorlog2 Unexecuted instantiation: mqc.c:opj_int_floorlog2 |
244 | | /** |
245 | | Get logarithm of an integer and round downwards |
246 | | @return Returns log2(a) |
247 | | */ |
248 | | static INLINE OPJ_UINT32 opj_uint_floorlog2(OPJ_UINT32 a) |
249 | 654k | { |
250 | 654k | OPJ_UINT32 l; |
251 | 1.42M | for (l = 0; a > 1; ++l) { |
252 | 773k | a >>= 1; |
253 | 773k | } |
254 | 654k | return l; |
255 | 654k | } Unexecuted instantiation: cio.c:opj_uint_floorlog2 Unexecuted instantiation: event.c:opj_uint_floorlog2 Unexecuted instantiation: image.c:opj_uint_floorlog2 Unexecuted instantiation: openjpeg.c:opj_uint_floorlog2 Unexecuted instantiation: opj_malloc.c:opj_uint_floorlog2 Unexecuted instantiation: j2k.c:opj_uint_floorlog2 Unexecuted instantiation: jp2.c:opj_uint_floorlog2 Unexecuted instantiation: mct.c:opj_uint_floorlog2 Unexecuted instantiation: pi.c:opj_uint_floorlog2 Unexecuted instantiation: tcd.c:opj_uint_floorlog2 Unexecuted instantiation: tgt.c:opj_uint_floorlog2 Unexecuted instantiation: function_list.c:opj_uint_floorlog2 Unexecuted instantiation: thread.c:opj_uint_floorlog2 Unexecuted instantiation: bio.c:opj_uint_floorlog2 Unexecuted instantiation: dwt.c:opj_uint_floorlog2 Unexecuted instantiation: invert.c:opj_uint_floorlog2 Unexecuted instantiation: t1.c:opj_uint_floorlog2 Line | Count | Source | 249 | 654k | { | 250 | 654k | OPJ_UINT32 l; | 251 | 1.42M | for (l = 0; a > 1; ++l) { | 252 | 773k | a >>= 1; | 253 | 773k | } | 254 | 654k | return l; | 255 | 654k | } |
Unexecuted instantiation: sparse_array.c:opj_uint_floorlog2 Unexecuted instantiation: ht_dec.c:opj_uint_floorlog2 Unexecuted instantiation: mqc.c:opj_uint_floorlog2 |
256 | | |
257 | | /** |
258 | | Multiply two fixed-precision rational numbers. |
259 | | @param a |
260 | | @param b |
261 | | @return Returns a * b |
262 | | */ |
263 | | static INLINE OPJ_INT32 opj_int_fix_mul(OPJ_INT32 a, OPJ_INT32 b) |
264 | 0 | { |
265 | | #if defined(_MSC_VER) && (_MSC_VER >= 1400) && !defined(__INTEL_COMPILER) && defined(_M_IX86) |
266 | | OPJ_INT64 temp = __emul(a, b); |
267 | | #else |
268 | 0 | OPJ_INT64 temp = (OPJ_INT64) a * (OPJ_INT64) b ; |
269 | 0 | #endif |
270 | 0 | temp += 4096; |
271 | 0 | assert((temp >> 13) <= (OPJ_INT64)0x7FFFFFFF); |
272 | 0 | assert((temp >> 13) >= (-(OPJ_INT64)0x7FFFFFFF - (OPJ_INT64)1)); |
273 | 0 | return (OPJ_INT32)(temp >> 13); |
274 | 0 | } Unexecuted instantiation: cio.c:opj_int_fix_mul Unexecuted instantiation: event.c:opj_int_fix_mul Unexecuted instantiation: image.c:opj_int_fix_mul Unexecuted instantiation: openjpeg.c:opj_int_fix_mul Unexecuted instantiation: opj_malloc.c:opj_int_fix_mul Unexecuted instantiation: j2k.c:opj_int_fix_mul Unexecuted instantiation: jp2.c:opj_int_fix_mul Unexecuted instantiation: mct.c:opj_int_fix_mul Unexecuted instantiation: pi.c:opj_int_fix_mul Unexecuted instantiation: tcd.c:opj_int_fix_mul Unexecuted instantiation: tgt.c:opj_int_fix_mul Unexecuted instantiation: function_list.c:opj_int_fix_mul Unexecuted instantiation: thread.c:opj_int_fix_mul Unexecuted instantiation: bio.c:opj_int_fix_mul Unexecuted instantiation: dwt.c:opj_int_fix_mul Unexecuted instantiation: invert.c:opj_int_fix_mul Unexecuted instantiation: t1.c:opj_int_fix_mul Unexecuted instantiation: t2.c:opj_int_fix_mul Unexecuted instantiation: sparse_array.c:opj_int_fix_mul Unexecuted instantiation: ht_dec.c:opj_int_fix_mul Unexecuted instantiation: mqc.c:opj_int_fix_mul |
275 | | |
276 | | static INLINE OPJ_INT32 opj_int_fix_mul_t1(OPJ_INT32 a, OPJ_INT32 b) |
277 | 0 | { |
278 | 0 | #if defined(_MSC_VER) && (_MSC_VER >= 1400) && !defined(__INTEL_COMPILER) && defined(_M_IX86) |
279 | 0 | OPJ_INT64 temp = __emul(a, b); |
280 | 0 | #else |
281 | 0 | OPJ_INT64 temp = (OPJ_INT64) a * (OPJ_INT64) b ; |
282 | 0 | #endif |
283 | 0 | temp += 4096; |
284 | 0 | assert((temp >> (13 + 11 - T1_NMSEDEC_FRACBITS)) <= (OPJ_INT64)0x7FFFFFFF); |
285 | 0 | assert((temp >> (13 + 11 - T1_NMSEDEC_FRACBITS)) >= (-(OPJ_INT64)0x7FFFFFFF - |
286 | 0 | (OPJ_INT64)1)); |
287 | 0 | return (OPJ_INT32)(temp >> (13 + 11 - T1_NMSEDEC_FRACBITS)) ; |
288 | 0 | } Unexecuted instantiation: cio.c:opj_int_fix_mul_t1 Unexecuted instantiation: event.c:opj_int_fix_mul_t1 Unexecuted instantiation: image.c:opj_int_fix_mul_t1 Unexecuted instantiation: openjpeg.c:opj_int_fix_mul_t1 Unexecuted instantiation: opj_malloc.c:opj_int_fix_mul_t1 Unexecuted instantiation: j2k.c:opj_int_fix_mul_t1 Unexecuted instantiation: jp2.c:opj_int_fix_mul_t1 Unexecuted instantiation: mct.c:opj_int_fix_mul_t1 Unexecuted instantiation: pi.c:opj_int_fix_mul_t1 Unexecuted instantiation: tcd.c:opj_int_fix_mul_t1 Unexecuted instantiation: tgt.c:opj_int_fix_mul_t1 Unexecuted instantiation: function_list.c:opj_int_fix_mul_t1 Unexecuted instantiation: thread.c:opj_int_fix_mul_t1 Unexecuted instantiation: bio.c:opj_int_fix_mul_t1 Unexecuted instantiation: dwt.c:opj_int_fix_mul_t1 Unexecuted instantiation: invert.c:opj_int_fix_mul_t1 Unexecuted instantiation: t1.c:opj_int_fix_mul_t1 Unexecuted instantiation: t2.c:opj_int_fix_mul_t1 Unexecuted instantiation: sparse_array.c:opj_int_fix_mul_t1 Unexecuted instantiation: ht_dec.c:opj_int_fix_mul_t1 Unexecuted instantiation: mqc.c:opj_int_fix_mul_t1 |
289 | | |
290 | | /** |
291 | | Addition two signed integers with a wrap-around behaviour. |
292 | | Assumes complement-to-two signed integers. |
293 | | @param a |
294 | | @param b |
295 | | @return Returns a + b |
296 | | */ |
297 | | static INLINE OPJ_INT32 opj_int_add_no_overflow(OPJ_INT32 a, OPJ_INT32 b) |
298 | 7.39M | { |
299 | 7.39M | void* pa = &a; |
300 | 7.39M | void* pb = &b; |
301 | 7.39M | OPJ_UINT32* upa = (OPJ_UINT32*)pa; |
302 | 7.39M | OPJ_UINT32* upb = (OPJ_UINT32*)pb; |
303 | 7.39M | OPJ_UINT32 ures = *upa + *upb; |
304 | 7.39M | void* pures = &ures; |
305 | 7.39M | OPJ_INT32* ipres = (OPJ_INT32*)pures; |
306 | 7.39M | return *ipres; |
307 | 7.39M | } Unexecuted instantiation: cio.c:opj_int_add_no_overflow Unexecuted instantiation: event.c:opj_int_add_no_overflow Unexecuted instantiation: image.c:opj_int_add_no_overflow Unexecuted instantiation: openjpeg.c:opj_int_add_no_overflow Unexecuted instantiation: opj_malloc.c:opj_int_add_no_overflow Unexecuted instantiation: j2k.c:opj_int_add_no_overflow Unexecuted instantiation: jp2.c:opj_int_add_no_overflow Unexecuted instantiation: mct.c:opj_int_add_no_overflow Unexecuted instantiation: pi.c:opj_int_add_no_overflow Unexecuted instantiation: tcd.c:opj_int_add_no_overflow Unexecuted instantiation: tgt.c:opj_int_add_no_overflow Unexecuted instantiation: function_list.c:opj_int_add_no_overflow Unexecuted instantiation: thread.c:opj_int_add_no_overflow Unexecuted instantiation: bio.c:opj_int_add_no_overflow dwt.c:opj_int_add_no_overflow Line | Count | Source | 298 | 7.39M | { | 299 | 7.39M | void* pa = &a; | 300 | 7.39M | void* pb = &b; | 301 | 7.39M | OPJ_UINT32* upa = (OPJ_UINT32*)pa; | 302 | 7.39M | OPJ_UINT32* upb = (OPJ_UINT32*)pb; | 303 | 7.39M | OPJ_UINT32 ures = *upa + *upb; | 304 | 7.39M | void* pures = &ures; | 305 | 7.39M | OPJ_INT32* ipres = (OPJ_INT32*)pures; | 306 | 7.39M | return *ipres; | 307 | 7.39M | } |
Unexecuted instantiation: invert.c:opj_int_add_no_overflow Unexecuted instantiation: t1.c:opj_int_add_no_overflow Unexecuted instantiation: t2.c:opj_int_add_no_overflow Unexecuted instantiation: sparse_array.c:opj_int_add_no_overflow Unexecuted instantiation: ht_dec.c:opj_int_add_no_overflow Unexecuted instantiation: mqc.c:opj_int_add_no_overflow |
308 | | |
309 | | /** |
310 | | Subtract two signed integers with a wrap-around behaviour. |
311 | | Assumes complement-to-two signed integers. |
312 | | @param a |
313 | | @param b |
314 | | @return Returns a - b |
315 | | */ |
316 | | static INLINE OPJ_INT32 opj_int_sub_no_overflow(OPJ_INT32 a, OPJ_INT32 b) |
317 | 83.5k | { |
318 | 83.5k | void* pa = &a; |
319 | 83.5k | void* pb = &b; |
320 | 83.5k | OPJ_UINT32* upa = (OPJ_UINT32*)pa; |
321 | 83.5k | OPJ_UINT32* upb = (OPJ_UINT32*)pb; |
322 | 83.5k | OPJ_UINT32 ures = *upa - *upb; |
323 | 83.5k | void* pures = &ures; |
324 | 83.5k | OPJ_INT32* ipres = (OPJ_INT32*)pures; |
325 | 83.5k | return *ipres; |
326 | 83.5k | } Unexecuted instantiation: cio.c:opj_int_sub_no_overflow Unexecuted instantiation: event.c:opj_int_sub_no_overflow Unexecuted instantiation: image.c:opj_int_sub_no_overflow Unexecuted instantiation: openjpeg.c:opj_int_sub_no_overflow Unexecuted instantiation: opj_malloc.c:opj_int_sub_no_overflow Unexecuted instantiation: j2k.c:opj_int_sub_no_overflow Unexecuted instantiation: jp2.c:opj_int_sub_no_overflow Unexecuted instantiation: mct.c:opj_int_sub_no_overflow Unexecuted instantiation: pi.c:opj_int_sub_no_overflow Unexecuted instantiation: tcd.c:opj_int_sub_no_overflow Unexecuted instantiation: tgt.c:opj_int_sub_no_overflow Unexecuted instantiation: function_list.c:opj_int_sub_no_overflow Unexecuted instantiation: thread.c:opj_int_sub_no_overflow Unexecuted instantiation: bio.c:opj_int_sub_no_overflow dwt.c:opj_int_sub_no_overflow Line | Count | Source | 317 | 83.5k | { | 318 | 83.5k | void* pa = &a; | 319 | 83.5k | void* pb = &b; | 320 | 83.5k | OPJ_UINT32* upa = (OPJ_UINT32*)pa; | 321 | 83.5k | OPJ_UINT32* upb = (OPJ_UINT32*)pb; | 322 | 83.5k | OPJ_UINT32 ures = *upa - *upb; | 323 | 83.5k | void* pures = &ures; | 324 | 83.5k | OPJ_INT32* ipres = (OPJ_INT32*)pures; | 325 | 83.5k | return *ipres; | 326 | 83.5k | } |
Unexecuted instantiation: invert.c:opj_int_sub_no_overflow Unexecuted instantiation: t1.c:opj_int_sub_no_overflow Unexecuted instantiation: t2.c:opj_int_sub_no_overflow Unexecuted instantiation: sparse_array.c:opj_int_sub_no_overflow Unexecuted instantiation: ht_dec.c:opj_int_sub_no_overflow Unexecuted instantiation: mqc.c:opj_int_sub_no_overflow |
327 | | |
328 | | /* ----------------------------------------------------------------------- */ |
329 | | /*@}*/ |
330 | | |
331 | | /*@}*/ |
332 | | |
333 | | #endif /* OPJ_INTMATH_H */ |