2
|
1 |
/*
|
5506
|
2 |
* Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved.
|
2
|
3 |
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
4 |
*
|
|
5 |
* This code is free software; you can redistribute it and/or modify it
|
|
6 |
* under the terms of the GNU General Public License version 2 only, as
|
5506
|
7 |
* published by the Free Software Foundation. Oracle designates this
|
2
|
8 |
* particular file as subject to the "Classpath" exception as provided
|
5506
|
9 |
* by Oracle in the LICENSE file that accompanied this code.
|
2
|
10 |
*
|
|
11 |
* This code is distributed in the hope that it will be useful, but WITHOUT
|
|
12 |
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
13 |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
14 |
* version 2 for more details (a copy is included in the LICENSE file that
|
|
15 |
* accompanied this code).
|
|
16 |
*
|
|
17 |
* You should have received a copy of the GNU General Public License version
|
|
18 |
* 2 along with this work; if not, write to the Free Software Foundation,
|
|
19 |
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
20 |
*
|
5506
|
21 |
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
22 |
* or visit www.oracle.com if you need additional information or have any
|
|
23 |
* questions.
|
2
|
24 |
*/
|
|
25 |
|
|
26 |
|
|
27 |
/*
|
|
28 |
* DESCRIPTION:
|
|
29 |
*
|
|
30 |
* mlib_u16 mlib_div6_tab[x] = 0xff00/6/x;
|
|
31 |
* mlib_u16 mlib_div1_tab[x] = 0xff00/x;
|
|
32 |
* mlib_d64 mlib_U82D64[x] = (mlib_d64)x;
|
|
33 |
* mlib_f32 mlib_U82F32[x] = (mlib_f32)x;
|
|
34 |
* mlib_f32 mlib_HSL2RGB_L2[x] = x/255.0 for x<128, and (255-x)/255.0 for x >= 128;
|
|
35 |
* mlib_f32 mlib_HSL2RGB_F[x] = 1.0 - fabs(fraction(x*3/256.) * 4.0f - 2.0)
|
|
36 |
*
|
|
37 |
* REFERENCING:
|
|
38 |
* mlib_div* tables are used to exclude dividing in functions
|
|
39 |
* mlib_ImageColorRGB2HSV
|
|
40 |
* mlib_ImageColorRGB2HSL
|
|
41 |
* mlib_ImageDivAlpha
|
|
42 |
*
|
|
43 |
* table mlib_U82D64 is used to exclude conversion unsigned
|
|
44 |
* byte to double in functions
|
|
45 |
* mlib_ImageColorConvert...
|
|
46 |
* mlib_ImageDataTypeConvert
|
|
47 |
* mlib_ImageAffine
|
|
48 |
* mlib_ImageAffineTable
|
|
49 |
* mlib_ImageZoomTranslate
|
|
50 |
* mlib_ImageZoomTranslateTable
|
|
51 |
* mlib_ImageGridWarp
|
|
52 |
* mlib_ImagePolynomialWarp
|
|
53 |
* mlib_ImageCrossCorrel
|
|
54 |
* mlib_ImageMoment2
|
|
55 |
* mlib_ImageStdDev
|
|
56 |
* mlib_ImageFourierTransform
|
|
57 |
*
|
|
58 |
* table mlib_U82F32 is used to exclude conversion unsigned
|
|
59 |
* byte to float in functions
|
|
60 |
* mlib_ImageBlend
|
|
61 |
* mlib_ImageDivShift
|
|
62 |
* mlib_ImageMulAlpha
|
|
63 |
* mlib_ImageMulAlpha_Inp
|
|
64 |
* mlib_ImageMulShift
|
|
65 |
* mlib_ImageBlend_BDST_BSRC
|
|
66 |
* mlib_ImageColorHSL2RGB
|
|
67 |
* mlib_ImageColorHSV2RGB
|
|
68 |
* mlib_ImageDataTypeConvert
|
|
69 |
* mlib_ImageAffine
|
|
70 |
* mlib_ImageAffineTable
|
|
71 |
* mlib_ImageZoomTranslate
|
|
72 |
* mlib_ImageZoomTranslateTable
|
|
73 |
* mlib_ImageConvMxN
|
|
74 |
* mlib_ImageSobel
|
|
75 |
* mlib_ImageGradient3x3
|
|
76 |
* mlib_ImageGradientMxN
|
|
77 |
*
|
|
78 |
* tables mlib_HSL2RGB_* are used to exclude conversion unsigned
|
|
79 |
* byte to float in functions with some computations
|
|
80 |
* mlib_ImageColorHSL2RGB
|
|
81 |
*/
|
|
82 |
|
|
83 |
#include "mlib_image.h"
|
|
84 |
#define __DIV_TABLE_DEFINED
|
|
85 |
#include "mlib_ImageDivTables.h"
|
|
86 |
|
|
87 |
/***************************************************************/
|
|
88 |
/* *INDENT-OFF* */
|
|
89 |
|
|
90 |
const mlib_u16 mlib_div6_tab[] = {
|
|
91 |
32767, 10880, 5440, 3627, 2720, 2176, 1813, 1554,
|
|
92 |
1360, 1209, 1088, 989, 907, 837, 777, 725,
|
|
93 |
680, 640, 604, 573, 544, 518, 495, 473,
|
|
94 |
453, 435, 418, 403, 389, 375, 363, 351,
|
|
95 |
340, 330, 320, 311, 302, 294, 286, 279,
|
|
96 |
272, 265, 259, 253, 247, 242, 237, 231,
|
|
97 |
227, 222, 218, 213, 209, 205, 201, 198,
|
|
98 |
194, 191, 188, 184, 181, 178, 175, 173,
|
|
99 |
170, 167, 165, 162, 160, 158, 155, 153,
|
|
100 |
151, 149, 147, 145, 143, 141, 139, 138,
|
|
101 |
136, 134, 133, 131, 130, 128, 127, 125,
|
|
102 |
124, 122, 121, 120, 118, 117, 116, 115,
|
|
103 |
113, 112, 111, 110, 109, 108, 107, 106,
|
|
104 |
105, 104, 103, 102, 101, 100, 99, 98,
|
|
105 |
97, 96, 95, 95, 94, 93, 92, 91,
|
|
106 |
91, 90, 89, 88, 88, 87, 86, 86,
|
|
107 |
85, 84, 84, 83, 82, 82, 81, 81,
|
|
108 |
80, 79, 79, 78, 78, 77, 77, 76,
|
|
109 |
76, 75, 75, 74, 74, 73, 73, 72,
|
|
110 |
72, 71, 71, 70, 70, 69, 69, 68,
|
|
111 |
68, 68, 67, 67, 66, 66, 66, 65,
|
|
112 |
65, 64, 64, 64, 63, 63, 63, 62,
|
|
113 |
62, 61, 61, 61, 60, 60, 60, 59,
|
|
114 |
59, 59, 58, 58, 58, 58, 57, 57,
|
|
115 |
57, 56, 56, 56, 56, 55, 55, 55,
|
|
116 |
54, 54, 54, 54, 53, 53, 53, 53,
|
|
117 |
52, 52, 52, 52, 51, 51, 51, 51,
|
|
118 |
50, 50, 50, 50, 49, 49, 49, 49,
|
|
119 |
49, 48, 48, 48, 48, 48, 47, 47,
|
|
120 |
47, 47, 46, 46, 46, 46, 46, 46,
|
|
121 |
45, 45, 45, 45, 45, 44, 44, 44,
|
|
122 |
44, 44, 44, 43, 43, 43, 43, 43
|
|
123 |
};
|
|
124 |
|
|
125 |
/***************************************************************/
|
|
126 |
|
|
127 |
const mlib_u16 mlib_div1_tab[] = {
|
|
128 |
65280, 65280, 32640, 21760, 16320, 13056, 10880, 9326,
|
|
129 |
8160, 7253, 6528, 5935, 5440, 5022, 4663, 4352,
|
|
130 |
4080, 3840, 3627, 3436, 3264, 3109, 2967, 2838,
|
|
131 |
2720, 2611, 2511, 2418, 2331, 2251, 2176, 2106,
|
|
132 |
2040, 1978, 1920, 1865, 1813, 1764, 1718, 1674,
|
|
133 |
1632, 1592, 1554, 1518, 1484, 1451, 1419, 1389,
|
|
134 |
1360, 1332, 1306, 1280, 1255, 1232, 1209, 1187,
|
|
135 |
1166, 1145, 1126, 1106, 1088, 1070, 1053, 1036,
|
|
136 |
1020, 1004, 989, 974, 960, 946, 933, 919,
|
|
137 |
907, 894, 882, 870, 859, 848, 837, 826,
|
|
138 |
816, 806, 796, 787, 777, 768, 759, 750,
|
|
139 |
742, 733, 725, 717, 710, 702, 694, 687,
|
|
140 |
680, 673, 666, 659, 653, 646, 640, 634,
|
|
141 |
628, 622, 616, 610, 604, 599, 593, 588,
|
|
142 |
583, 578, 573, 568, 563, 558, 553, 549,
|
|
143 |
544, 540, 535, 531, 526, 522, 518, 514,
|
|
144 |
510, 506, 502, 498, 495, 491, 487, 484,
|
|
145 |
480, 476, 473, 470, 466, 463, 460, 457,
|
|
146 |
453, 450, 447, 444, 441, 438, 435, 432,
|
|
147 |
429, 427, 424, 421, 418, 416, 413, 411,
|
|
148 |
408, 405, 403, 400, 398, 396, 393, 391,
|
|
149 |
389, 386, 384, 382, 380, 377, 375, 373,
|
|
150 |
371, 369, 367, 365, 363, 361, 359, 357,
|
|
151 |
355, 353, 351, 349, 347, 345, 344, 342,
|
|
152 |
340, 338, 336, 335, 333, 331, 330, 328,
|
|
153 |
326, 325, 323, 322, 320, 318, 317, 315,
|
|
154 |
314, 312, 311, 309, 308, 306, 305, 304,
|
|
155 |
302, 301, 299, 298, 297, 295, 294, 293,
|
|
156 |
291, 290, 289, 288, 286, 285, 284, 283,
|
|
157 |
281, 280, 279, 278, 277, 275, 274, 273,
|
|
158 |
272, 271, 270, 269, 268, 266, 265, 264,
|
|
159 |
263, 262, 261, 260, 259, 258, 257, 256
|
|
160 |
};
|
|
161 |
|
|
162 |
/***************************************************************/
|
|
163 |
|
|
164 |
const mlib_f32 mlib_HSL2RGB_L2[] = {
|
|
165 |
0.000000f, 0.003922f, 0.007843f, 0.011765f, 0.015686f, 0.019608f, 0.023529f, 0.027451f,
|
|
166 |
0.031373f, 0.035294f, 0.039216f, 0.043137f, 0.047059f, 0.050980f, 0.054902f, 0.058824f,
|
|
167 |
0.062745f, 0.066667f, 0.070588f, 0.074510f, 0.078431f, 0.082353f, 0.086275f, 0.090196f,
|
|
168 |
0.094118f, 0.098039f, 0.101961f, 0.105882f, 0.109804f, 0.113725f, 0.117647f, 0.121569f,
|
|
169 |
0.125490f, 0.129412f, 0.133333f, 0.137255f, 0.141176f, 0.145098f, 0.149020f, 0.152941f,
|
|
170 |
0.156863f, 0.160784f, 0.164706f, 0.168627f, 0.172549f, 0.176471f, 0.180392f, 0.184314f,
|
|
171 |
0.188235f, 0.192157f, 0.196078f, 0.200000f, 0.203922f, 0.207843f, 0.211765f, 0.215686f,
|
|
172 |
0.219608f, 0.223529f, 0.227451f, 0.231373f, 0.235294f, 0.239216f, 0.243137f, 0.247059f,
|
|
173 |
0.250980f, 0.254902f, 0.258824f, 0.262745f, 0.266667f, 0.270588f, 0.274510f, 0.278431f,
|
|
174 |
0.282353f, 0.286275f, 0.290196f, 0.294118f, 0.298039f, 0.301961f, 0.305882f, 0.309804f,
|
|
175 |
0.313725f, 0.317647f, 0.321569f, 0.325490f, 0.329412f, 0.333333f, 0.337255f, 0.341176f,
|
|
176 |
0.345098f, 0.349020f, 0.352941f, 0.356863f, 0.360784f, 0.364706f, 0.368627f, 0.372549f,
|
|
177 |
0.376471f, 0.380392f, 0.384314f, 0.388235f, 0.392157f, 0.396078f, 0.400000f, 0.403922f,
|
|
178 |
0.407843f, 0.411765f, 0.415686f, 0.419608f, 0.423529f, 0.427451f, 0.431373f, 0.435294f,
|
|
179 |
0.439216f, 0.443137f, 0.447059f, 0.450980f, 0.454902f, 0.458824f, 0.462745f, 0.466667f,
|
|
180 |
0.470588f, 0.474510f, 0.478431f, 0.482353f, 0.486275f, 0.490196f, 0.494118f, 0.498039f,
|
|
181 |
0.498039f, 0.494118f, 0.490196f, 0.486275f, 0.482353f, 0.478431f, 0.474510f, 0.470588f,
|
|
182 |
0.466667f, 0.462745f, 0.458824f, 0.454902f, 0.450980f, 0.447059f, 0.443137f, 0.439216f,
|
|
183 |
0.435294f, 0.431373f, 0.427451f, 0.423529f, 0.419608f, 0.415686f, 0.411765f, 0.407843f,
|
|
184 |
0.403922f, 0.400000f, 0.396078f, 0.392157f, 0.388235f, 0.384314f, 0.380392f, 0.376471f,
|
|
185 |
0.372549f, 0.368627f, 0.364706f, 0.360784f, 0.356863f, 0.352941f, 0.349020f, 0.345098f,
|
|
186 |
0.341176f, 0.337255f, 0.333333f, 0.329412f, 0.325490f, 0.321569f, 0.317647f, 0.313725f,
|
|
187 |
0.309804f, 0.305882f, 0.301961f, 0.298039f, 0.294118f, 0.290196f, 0.286275f, 0.282353f,
|
|
188 |
0.278431f, 0.274510f, 0.270588f, 0.266667f, 0.262745f, 0.258824f, 0.254902f, 0.250980f,
|
|
189 |
0.247059f, 0.243137f, 0.239216f, 0.235294f, 0.231373f, 0.227451f, 0.223529f, 0.219608f,
|
|
190 |
0.215686f, 0.211765f, 0.207843f, 0.203922f, 0.200000f, 0.196078f, 0.192157f, 0.188235f,
|
|
191 |
0.184314f, 0.180392f, 0.176471f, 0.172549f, 0.168627f, 0.164706f, 0.160784f, 0.156863f,
|
|
192 |
0.152941f, 0.149020f, 0.145098f, 0.141176f, 0.137255f, 0.133333f, 0.129412f, 0.125490f,
|
|
193 |
0.121569f, 0.117647f, 0.113725f, 0.109804f, 0.105882f, 0.101961f, 0.098039f, 0.094118f,
|
|
194 |
0.090196f, 0.086275f, 0.082353f, 0.078431f, 0.074510f, 0.070588f, 0.066667f, 0.062745f,
|
|
195 |
0.058824f, 0.054902f, 0.050980f, 0.047059f, 0.043137f, 0.039216f, 0.035294f, 0.031373f,
|
|
196 |
0.027451f, 0.023529f, 0.019608f, 0.015686f, 0.011765f, 0.007843f, 0.003922f, 0.000000f
|
|
197 |
};
|
|
198 |
|
|
199 |
/***************************************************************/
|
|
200 |
|
|
201 |
const mlib_f32 mlib_HSL2RGB_F[] = {
|
|
202 |
-1.000000f, -0.953125f, -0.906250f, -0.859375f, -0.812500f, -0.765625f, -0.718750f, -0.671875f,
|
|
203 |
-0.625000f, -0.578125f, -0.531250f, -0.484375f, -0.437500f, -0.390625f, -0.343750f, -0.296875f,
|
|
204 |
-0.250000f, -0.203125f, -0.156250f, -0.109375f, -0.062500f, -0.015625f, 0.031250f, 0.078125f,
|
|
205 |
0.125000f, 0.171875f, 0.218750f, 0.265625f, 0.312500f, 0.359375f, 0.406250f, 0.453125f,
|
|
206 |
0.500000f, 0.546875f, 0.593750f, 0.640625f, 0.687500f, 0.734375f, 0.781250f, 0.828125f,
|
|
207 |
0.875000f, 0.921875f, 0.968750f, 0.984375f, 0.937500f, 0.890625f, 0.843750f, 0.796875f,
|
|
208 |
0.750000f, 0.703125f, 0.656250f, 0.609375f, 0.562500f, 0.515625f, 0.468750f, 0.421875f,
|
|
209 |
0.375000f, 0.328125f, 0.281250f, 0.234375f, 0.187500f, 0.140625f, 0.093750f, 0.046875f,
|
|
210 |
0.000000f, -0.046875f, -0.093750f, -0.140625f, -0.187500f, -0.234375f, -0.281250f, -0.328125f,
|
|
211 |
-0.375000f, -0.421875f, -0.468750f, -0.515625f, -0.562500f, -0.609375f, -0.656250f, -0.703125f,
|
|
212 |
-0.750000f, -0.796875f, -0.843750f, -0.890625f, -0.937500f, -0.984375f, -0.968750f, -0.921875f,
|
|
213 |
-0.875000f, -0.828125f, -0.781250f, -0.734375f, -0.687500f, -0.640625f, -0.593750f, -0.546875f,
|
|
214 |
-0.500000f, -0.453125f, -0.406250f, -0.359375f, -0.312500f, -0.265625f, -0.218750f, -0.171875f,
|
|
215 |
-0.125000f, -0.078125f, -0.031250f, 0.015625f, 0.062500f, 0.109375f, 0.156250f, 0.203125f,
|
|
216 |
0.250000f, 0.296875f, 0.343750f, 0.390625f, 0.437500f, 0.484375f, 0.531250f, 0.578125f,
|
|
217 |
0.625000f, 0.671875f, 0.718750f, 0.765625f, 0.812500f, 0.859375f, 0.906250f, 0.953125f,
|
|
218 |
1.000000f, 0.953125f, 0.906250f, 0.859375f, 0.812500f, 0.765625f, 0.718750f, 0.671875f,
|
|
219 |
0.625000f, 0.578125f, 0.531250f, 0.484375f, 0.437500f, 0.390625f, 0.343750f, 0.296875f,
|
|
220 |
0.250000f, 0.203125f, 0.156250f, 0.109375f, 0.062500f, 0.015625f, -0.031250f, -0.078125f,
|
|
221 |
-0.125000f, -0.171875f, -0.218750f, -0.265625f, -0.312500f, -0.359375f, -0.406250f, -0.453125f,
|
|
222 |
-0.500000f, -0.546875f, -0.593750f, -0.640625f, -0.687500f, -0.734375f, -0.781250f, -0.828125f,
|
|
223 |
-0.875000f, -0.921875f, -0.968750f, -0.984375f, -0.937500f, -0.890625f, -0.843750f, -0.796875f,
|
|
224 |
-0.750000f, -0.703125f, -0.656250f, -0.609375f, -0.562500f, -0.515625f, -0.468750f, -0.421875f,
|
|
225 |
-0.375000f, -0.328125f, -0.281250f, -0.234375f, -0.187500f, -0.140625f, -0.093750f, -0.046875f,
|
|
226 |
0.000000f, 0.046875f, 0.093750f, 0.140625f, 0.187500f, 0.234375f, 0.281250f, 0.328125f,
|
|
227 |
0.375000f, 0.421875f, 0.468750f, 0.515625f, 0.562500f, 0.609375f, 0.656250f, 0.703125f,
|
|
228 |
0.750000f, 0.796875f, 0.843750f, 0.890625f, 0.937500f, 0.984375f, 0.968750f, 0.921875f,
|
|
229 |
0.875000f, 0.828125f, 0.781250f, 0.734375f, 0.687500f, 0.640625f, 0.593750f, 0.546875f,
|
|
230 |
0.500000f, 0.453125f, 0.406250f, 0.359375f, 0.312500f, 0.265625f, 0.218750f, 0.171875f,
|
|
231 |
0.125000f, 0.078125f, 0.031250f, -0.015625f, -0.062500f, -0.109375f, -0.156250f, -0.203125f,
|
|
232 |
-0.250000f, -0.296875f, -0.343750f, -0.390625f, -0.437500f, -0.484375f, -0.531250f, -0.578125f,
|
|
233 |
-0.625000f, -0.671875f, -0.718750f, -0.765625f, -0.812500f, -0.859375f, -0.906250f, -0.953125f
|
|
234 |
};
|
|
235 |
|
|
236 |
/***************************************************************/
|
|
237 |
|
|
238 |
const mlib_f32 mlib_U82F32[] = {
|
|
239 |
0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f,
|
|
240 |
8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f,
|
|
241 |
16.0f, 17.0f, 18.0f, 19.0f, 20.0f, 21.0f, 22.0f, 23.0f,
|
|
242 |
24.0f, 25.0f, 26.0f, 27.0f, 28.0f, 29.0f, 30.0f, 31.0f,
|
|
243 |
32.0f, 33.0f, 34.0f, 35.0f, 36.0f, 37.0f, 38.0f, 39.0f,
|
|
244 |
40.0f, 41.0f, 42.0f, 43.0f, 44.0f, 45.0f, 46.0f, 47.0f,
|
|
245 |
48.0f, 49.0f, 50.0f, 51.0f, 52.0f, 53.0f, 54.0f, 55.0f,
|
|
246 |
56.0f, 57.0f, 58.0f, 59.0f, 60.0f, 61.0f, 62.0f, 63.0f,
|
|
247 |
64.0f, 65.0f, 66.0f, 67.0f, 68.0f, 69.0f, 70.0f, 71.0f,
|
|
248 |
72.0f, 73.0f, 74.0f, 75.0f, 76.0f, 77.0f, 78.0f, 79.0f,
|
|
249 |
80.0f, 81.0f, 82.0f, 83.0f, 84.0f, 85.0f, 86.0f, 87.0f,
|
|
250 |
88.0f, 89.0f, 90.0f, 91.0f, 92.0f, 93.0f, 94.0f, 95.0f,
|
|
251 |
96.0f, 97.0f, 98.0f, 99.0f, 100.0f, 101.0f, 102.0f, 103.0f,
|
|
252 |
104.0f, 105.0f, 106.0f, 107.0f, 108.0f, 109.0f, 110.0f, 111.0f,
|
|
253 |
112.0f, 113.0f, 114.0f, 115.0f, 116.0f, 117.0f, 118.0f, 119.0f,
|
|
254 |
120.0f, 121.0f, 122.0f, 123.0f, 124.0f, 125.0f, 126.0f, 127.0f,
|
|
255 |
128.0f, 129.0f, 130.0f, 131.0f, 132.0f, 133.0f, 134.0f, 135.0f,
|
|
256 |
136.0f, 137.0f, 138.0f, 139.0f, 140.0f, 141.0f, 142.0f, 143.0f,
|
|
257 |
144.0f, 145.0f, 146.0f, 147.0f, 148.0f, 149.0f, 150.0f, 151.0f,
|
|
258 |
152.0f, 153.0f, 154.0f, 155.0f, 156.0f, 157.0f, 158.0f, 159.0f,
|
|
259 |
160.0f, 161.0f, 162.0f, 163.0f, 164.0f, 165.0f, 166.0f, 167.0f,
|
|
260 |
168.0f, 169.0f, 170.0f, 171.0f, 172.0f, 173.0f, 174.0f, 175.0f,
|
|
261 |
176.0f, 177.0f, 178.0f, 179.0f, 180.0f, 181.0f, 182.0f, 183.0f,
|
|
262 |
184.0f, 185.0f, 186.0f, 187.0f, 188.0f, 189.0f, 190.0f, 191.0f,
|
|
263 |
192.0f, 193.0f, 194.0f, 195.0f, 196.0f, 197.0f, 198.0f, 199.0f,
|
|
264 |
200.0f, 201.0f, 202.0f, 203.0f, 204.0f, 205.0f, 206.0f, 207.0f,
|
|
265 |
208.0f, 209.0f, 210.0f, 211.0f, 212.0f, 213.0f, 214.0f, 215.0f,
|
|
266 |
216.0f, 217.0f, 218.0f, 219.0f, 220.0f, 221.0f, 222.0f, 223.0f,
|
|
267 |
224.0f, 225.0f, 226.0f, 227.0f, 228.0f, 229.0f, 230.0f, 231.0f,
|
|
268 |
232.0f, 233.0f, 234.0f, 235.0f, 236.0f, 237.0f, 238.0f, 239.0f,
|
|
269 |
240.0f, 241.0f, 242.0f, 243.0f, 244.0f, 245.0f, 246.0f, 247.0f,
|
|
270 |
248.0f, 249.0f, 250.0f, 251.0f, 252.0f, 253.0f, 254.0f, 255.0f,
|
|
271 |
256.0f
|
|
272 |
};
|
|
273 |
|
|
274 |
/***************************************************************/
|
|
275 |
|
|
276 |
const mlib_d64 mlib_U82D64[] = {
|
|
277 |
0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0,
|
|
278 |
8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0,
|
|
279 |
16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0,
|
|
280 |
24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0,
|
|
281 |
32.0, 33.0, 34.0, 35.0, 36.0, 37.0, 38.0, 39.0,
|
|
282 |
40.0, 41.0, 42.0, 43.0, 44.0, 45.0, 46.0, 47.0,
|
|
283 |
48.0, 49.0, 50.0, 51.0, 52.0, 53.0, 54.0, 55.0,
|
|
284 |
56.0, 57.0, 58.0, 59.0, 60.0, 61.0, 62.0, 63.0,
|
|
285 |
64.0, 65.0, 66.0, 67.0, 68.0, 69.0, 70.0, 71.0,
|
|
286 |
72.0, 73.0, 74.0, 75.0, 76.0, 77.0, 78.0, 79.0,
|
|
287 |
80.0, 81.0, 82.0, 83.0, 84.0, 85.0, 86.0, 87.0,
|
|
288 |
88.0, 89.0, 90.0, 91.0, 92.0, 93.0, 94.0, 95.0,
|
|
289 |
96.0, 97.0, 98.0, 99.0, 100.0, 101.0, 102.0, 103.0,
|
|
290 |
104.0, 105.0, 106.0, 107.0, 108.0, 109.0, 110.0, 111.0,
|
|
291 |
112.0, 113.0, 114.0, 115.0, 116.0, 117.0, 118.0, 119.0,
|
|
292 |
120.0, 121.0, 122.0, 123.0, 124.0, 125.0, 126.0, 127.0,
|
|
293 |
128.0, 129.0, 130.0, 131.0, 132.0, 133.0, 134.0, 135.0,
|
|
294 |
136.0, 137.0, 138.0, 139.0, 140.0, 141.0, 142.0, 143.0,
|
|
295 |
144.0, 145.0, 146.0, 147.0, 148.0, 149.0, 150.0, 151.0,
|
|
296 |
152.0, 153.0, 154.0, 155.0, 156.0, 157.0, 158.0, 159.0,
|
|
297 |
160.0, 161.0, 162.0, 163.0, 164.0, 165.0, 166.0, 167.0,
|
|
298 |
168.0, 169.0, 170.0, 171.0, 172.0, 173.0, 174.0, 175.0,
|
|
299 |
176.0, 177.0, 178.0, 179.0, 180.0, 181.0, 182.0, 183.0,
|
|
300 |
184.0, 185.0, 186.0, 187.0, 188.0, 189.0, 190.0, 191.0,
|
|
301 |
192.0, 193.0, 194.0, 195.0, 196.0, 197.0, 198.0, 199.0,
|
|
302 |
200.0, 201.0, 202.0, 203.0, 204.0, 205.0, 206.0, 207.0,
|
|
303 |
208.0, 209.0, 210.0, 211.0, 212.0, 213.0, 214.0, 215.0,
|
|
304 |
216.0, 217.0, 218.0, 219.0, 220.0, 221.0, 222.0, 223.0,
|
|
305 |
224.0, 225.0, 226.0, 227.0, 228.0, 229.0, 230.0, 231.0,
|
|
306 |
232.0, 233.0, 234.0, 235.0, 236.0, 237.0, 238.0, 239.0,
|
|
307 |
240.0, 241.0, 242.0, 243.0, 244.0, 245.0, 246.0, 247.0,
|
|
308 |
248.0, 249.0, 250.0, 251.0, 252.0, 253.0, 254.0, 255.0,
|
|
309 |
256.0
|
|
310 |
};
|
|
311 |
|
|
312 |
/***************************************************************/
|
|
313 |
|
|
314 |
const mlib_u32 mlib_FlipAndFixRotateTable[] = {
|
|
315 |
0x00000000, 0x00000000, 0x00000000, 0x00000080,
|
|
316 |
0x00000000, 0x00008000, 0x00000000, 0x00008080,
|
|
317 |
0x00000000, 0x00800000, 0x00000000, 0x00800080,
|
|
318 |
0x00000000, 0x00808000, 0x00000000, 0x00808080,
|
|
319 |
0x00000000, 0x80000000, 0x00000000, 0x80000080,
|
|
320 |
0x00000000, 0x80008000, 0x00000000, 0x80008080,
|
|
321 |
0x00000000, 0x80800000, 0x00000000, 0x80800080,
|
|
322 |
0x00000000, 0x80808000, 0x00000000, 0x80808080,
|
|
323 |
0x00000080, 0x00000000, 0x00000080, 0x00000080,
|
|
324 |
0x00000080, 0x00008000, 0x00000080, 0x00008080,
|
|
325 |
0x00000080, 0x00800000, 0x00000080, 0x00800080,
|
|
326 |
0x00000080, 0x00808000, 0x00000080, 0x00808080,
|
|
327 |
0x00000080, 0x80000000, 0x00000080, 0x80000080,
|
|
328 |
0x00000080, 0x80008000, 0x00000080, 0x80008080,
|
|
329 |
0x00000080, 0x80800000, 0x00000080, 0x80800080,
|
|
330 |
0x00000080, 0x80808000, 0x00000080, 0x80808080,
|
|
331 |
0x00008000, 0x00000000, 0x00008000, 0x00000080,
|
|
332 |
0x00008000, 0x00008000, 0x00008000, 0x00008080,
|
|
333 |
0x00008000, 0x00800000, 0x00008000, 0x00800080,
|
|
334 |
0x00008000, 0x00808000, 0x00008000, 0x00808080,
|
|
335 |
0x00008000, 0x80000000, 0x00008000, 0x80000080,
|
|
336 |
0x00008000, 0x80008000, 0x00008000, 0x80008080,
|
|
337 |
0x00008000, 0x80800000, 0x00008000, 0x80800080,
|
|
338 |
0x00008000, 0x80808000, 0x00008000, 0x80808080,
|
|
339 |
0x00008080, 0x00000000, 0x00008080, 0x00000080,
|
|
340 |
0x00008080, 0x00008000, 0x00008080, 0x00008080,
|
|
341 |
0x00008080, 0x00800000, 0x00008080, 0x00800080,
|
|
342 |
0x00008080, 0x00808000, 0x00008080, 0x00808080,
|
|
343 |
0x00008080, 0x80000000, 0x00008080, 0x80000080,
|
|
344 |
0x00008080, 0x80008000, 0x00008080, 0x80008080,
|
|
345 |
0x00008080, 0x80800000, 0x00008080, 0x80800080,
|
|
346 |
0x00008080, 0x80808000, 0x00008080, 0x80808080,
|
|
347 |
0x00800000, 0x00000000, 0x00800000, 0x00000080,
|
|
348 |
0x00800000, 0x00008000, 0x00800000, 0x00008080,
|
|
349 |
0x00800000, 0x00800000, 0x00800000, 0x00800080,
|
|
350 |
0x00800000, 0x00808000, 0x00800000, 0x00808080,
|
|
351 |
0x00800000, 0x80000000, 0x00800000, 0x80000080,
|
|
352 |
0x00800000, 0x80008000, 0x00800000, 0x80008080,
|
|
353 |
0x00800000, 0x80800000, 0x00800000, 0x80800080,
|
|
354 |
0x00800000, 0x80808000, 0x00800000, 0x80808080,
|
|
355 |
0x00800080, 0x00000000, 0x00800080, 0x00000080,
|
|
356 |
0x00800080, 0x00008000, 0x00800080, 0x00008080,
|
|
357 |
0x00800080, 0x00800000, 0x00800080, 0x00800080,
|
|
358 |
0x00800080, 0x00808000, 0x00800080, 0x00808080,
|
|
359 |
0x00800080, 0x80000000, 0x00800080, 0x80000080,
|
|
360 |
0x00800080, 0x80008000, 0x00800080, 0x80008080,
|
|
361 |
0x00800080, 0x80800000, 0x00800080, 0x80800080,
|
|
362 |
0x00800080, 0x80808000, 0x00800080, 0x80808080,
|
|
363 |
0x00808000, 0x00000000, 0x00808000, 0x00000080,
|
|
364 |
0x00808000, 0x00008000, 0x00808000, 0x00008080,
|
|
365 |
0x00808000, 0x00800000, 0x00808000, 0x00800080,
|
|
366 |
0x00808000, 0x00808000, 0x00808000, 0x00808080,
|
|
367 |
0x00808000, 0x80000000, 0x00808000, 0x80000080,
|
|
368 |
0x00808000, 0x80008000, 0x00808000, 0x80008080,
|
|
369 |
0x00808000, 0x80800000, 0x00808000, 0x80800080,
|
|
370 |
0x00808000, 0x80808000, 0x00808000, 0x80808080,
|
|
371 |
0x00808080, 0x00000000, 0x00808080, 0x00000080,
|
|
372 |
0x00808080, 0x00008000, 0x00808080, 0x00008080,
|
|
373 |
0x00808080, 0x00800000, 0x00808080, 0x00800080,
|
|
374 |
0x00808080, 0x00808000, 0x00808080, 0x00808080,
|
|
375 |
0x00808080, 0x80000000, 0x00808080, 0x80000080,
|
|
376 |
0x00808080, 0x80008000, 0x00808080, 0x80008080,
|
|
377 |
0x00808080, 0x80800000, 0x00808080, 0x80800080,
|
|
378 |
0x00808080, 0x80808000, 0x00808080, 0x80808080,
|
|
379 |
0x80000000, 0x00000000, 0x80000000, 0x00000080,
|
|
380 |
0x80000000, 0x00008000, 0x80000000, 0x00008080,
|
|
381 |
0x80000000, 0x00800000, 0x80000000, 0x00800080,
|
|
382 |
0x80000000, 0x00808000, 0x80000000, 0x00808080,
|
|
383 |
0x80000000, 0x80000000, 0x80000000, 0x80000080,
|
|
384 |
0x80000000, 0x80008000, 0x80000000, 0x80008080,
|
|
385 |
0x80000000, 0x80800000, 0x80000000, 0x80800080,
|
|
386 |
0x80000000, 0x80808000, 0x80000000, 0x80808080,
|
|
387 |
0x80000080, 0x00000000, 0x80000080, 0x00000080,
|
|
388 |
0x80000080, 0x00008000, 0x80000080, 0x00008080,
|
|
389 |
0x80000080, 0x00800000, 0x80000080, 0x00800080,
|
|
390 |
0x80000080, 0x00808000, 0x80000080, 0x00808080,
|
|
391 |
0x80000080, 0x80000000, 0x80000080, 0x80000080,
|
|
392 |
0x80000080, 0x80008000, 0x80000080, 0x80008080,
|
|
393 |
0x80000080, 0x80800000, 0x80000080, 0x80800080,
|
|
394 |
0x80000080, 0x80808000, 0x80000080, 0x80808080,
|
|
395 |
0x80008000, 0x00000000, 0x80008000, 0x00000080,
|
|
396 |
0x80008000, 0x00008000, 0x80008000, 0x00008080,
|
|
397 |
0x80008000, 0x00800000, 0x80008000, 0x00800080,
|
|
398 |
0x80008000, 0x00808000, 0x80008000, 0x00808080,
|
|
399 |
0x80008000, 0x80000000, 0x80008000, 0x80000080,
|
|
400 |
0x80008000, 0x80008000, 0x80008000, 0x80008080,
|
|
401 |
0x80008000, 0x80800000, 0x80008000, 0x80800080,
|
|
402 |
0x80008000, 0x80808000, 0x80008000, 0x80808080,
|
|
403 |
0x80008080, 0x00000000, 0x80008080, 0x00000080,
|
|
404 |
0x80008080, 0x00008000, 0x80008080, 0x00008080,
|
|
405 |
0x80008080, 0x00800000, 0x80008080, 0x00800080,
|
|
406 |
0x80008080, 0x00808000, 0x80008080, 0x00808080,
|
|
407 |
0x80008080, 0x80000000, 0x80008080, 0x80000080,
|
|
408 |
0x80008080, 0x80008000, 0x80008080, 0x80008080,
|
|
409 |
0x80008080, 0x80800000, 0x80008080, 0x80800080,
|
|
410 |
0x80008080, 0x80808000, 0x80008080, 0x80808080,
|
|
411 |
0x80800000, 0x00000000, 0x80800000, 0x00000080,
|
|
412 |
0x80800000, 0x00008000, 0x80800000, 0x00008080,
|
|
413 |
0x80800000, 0x00800000, 0x80800000, 0x00800080,
|
|
414 |
0x80800000, 0x00808000, 0x80800000, 0x00808080,
|
|
415 |
0x80800000, 0x80000000, 0x80800000, 0x80000080,
|
|
416 |
0x80800000, 0x80008000, 0x80800000, 0x80008080,
|
|
417 |
0x80800000, 0x80800000, 0x80800000, 0x80800080,
|
|
418 |
0x80800000, 0x80808000, 0x80800000, 0x80808080,
|
|
419 |
0x80800080, 0x00000000, 0x80800080, 0x00000080,
|
|
420 |
0x80800080, 0x00008000, 0x80800080, 0x00008080,
|
|
421 |
0x80800080, 0x00800000, 0x80800080, 0x00800080,
|
|
422 |
0x80800080, 0x00808000, 0x80800080, 0x00808080,
|
|
423 |
0x80800080, 0x80000000, 0x80800080, 0x80000080,
|
|
424 |
0x80800080, 0x80008000, 0x80800080, 0x80008080,
|
|
425 |
0x80800080, 0x80800000, 0x80800080, 0x80800080,
|
|
426 |
0x80800080, 0x80808000, 0x80800080, 0x80808080,
|
|
427 |
0x80808000, 0x00000000, 0x80808000, 0x00000080,
|
|
428 |
0x80808000, 0x00008000, 0x80808000, 0x00008080,
|
|
429 |
0x80808000, 0x00800000, 0x80808000, 0x00800080,
|
|
430 |
0x80808000, 0x00808000, 0x80808000, 0x00808080,
|
|
431 |
0x80808000, 0x80000000, 0x80808000, 0x80000080,
|
|
432 |
0x80808000, 0x80008000, 0x80808000, 0x80008080,
|
|
433 |
0x80808000, 0x80800000, 0x80808000, 0x80800080,
|
|
434 |
0x80808000, 0x80808000, 0x80808000, 0x80808080,
|
|
435 |
0x80808080, 0x00000000, 0x80808080, 0x00000080,
|
|
436 |
0x80808080, 0x00008000, 0x80808080, 0x00008080,
|
|
437 |
0x80808080, 0x00800000, 0x80808080, 0x00800080,
|
|
438 |
0x80808080, 0x00808000, 0x80808080, 0x00808080,
|
|
439 |
0x80808080, 0x80000000, 0x80808080, 0x80000080,
|
|
440 |
0x80808080, 0x80008000, 0x80808080, 0x80008080,
|
|
441 |
0x80808080, 0x80800000, 0x80808080, 0x80800080,
|
|
442 |
0x80808080, 0x80808000, 0x80808080, 0x80808080,
|
|
443 |
};
|
|
444 |
|
|
445 |
/* *INDENT-ON* */
|
|
446 |
/***************************************************************/
|