1 /*
2 * this code is derived from RawTherapee
3
4 * Copyright (c) 2004-2010 Gabor Horvath <hgabor@rawtherapee.com>
5 *
6 * RawTherapee is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * RawTherapee is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
18 *
19 * These median implementations from Fl�ssie and Ingo Weyrich are inspired by this work:
20 *
21 * http://ndevilla.free.fr/median/median.pdf
22 * http://pages.ripco.net/~jgamble/nw.html
23 * https://github.com/hoytech/Algorithm-Networksort-Chooser
24 *
25 * Instead of using the PIX_SORT and PIX_SWAP macros we use mymin() and mymax()
26 * because it turned out that it generates much faster (branch free) code on machines which support SSE
27 *
28 */
29
30 #include "median_fast.h"
31
median3x3(float * array)32 float median3x3(float* array)
33 {
34 float tmp = mymin(array[1], array[2]);
35 array[2] = mymax(array[1], array[2]);
36 array[1] = tmp;
37 tmp = mymin(array[4], array[5]);
38 array[5] = mymax(array[4], array[5]);
39 array[4] = tmp;
40 tmp = mymin(array[7], array[8]);
41 array[8] = mymax(array[7], array[8]);
42 array[7] = tmp;
43 tmp = mymin(array[0], array[1]);
44 array[1] = mymax(array[0], array[1]);
45 array[0] = tmp;
46 tmp = mymin(array[3], array[4]);
47 array[4] = mymax(array[3], array[4]);
48 array[3] = tmp;
49 tmp = mymin(array[6], array[7]);
50 array[7] = mymax(array[6], array[7]);
51 array[6] = tmp;
52 tmp = mymin(array[1], array[2]);
53 array[2] = mymax(array[1], array[2]);
54 array[1] = tmp;
55 tmp = mymin(array[4], array[5]);
56 array[5] = mymax(array[4], array[5]);
57 array[4] = tmp;
58 tmp = mymin(array[7], array[8]);
59 array[8] = mymax(array[7], array[8]);
60 array[3] = mymax(array[0], array[3]);
61 array[5] = mymin(array[5], array[8]);
62 array[7] = mymax(array[4], tmp);
63 tmp = mymin(array[4], tmp);
64 array[6] = mymax(array[3], array[6]);
65 array[4] = mymax(array[1], tmp);
66 array[2] = mymin(array[2], array[5]);
67 array[4] = mymin(array[4], array[7]);
68 tmp = mymin(array[4], array[2]);
69 array[2] = mymax(array[4], array[2]);
70 array[4] = mymax(array[6], tmp);
71 return mymin(array[4], array[2]);
72 }
73
74 #define CSWAP(a,b) t = mymax(a,b); a = mymin(a,b); b = t;
75
median24(float * array)76 float median24(float *array) {
77 float t;
78 CSWAP(array[1], array[2]);
79 CSWAP(array[0], array[2]);
80 CSWAP(array[0], array[1]);
81 CSWAP(array[4], array[5]);
82 CSWAP(array[3], array[5]);
83 CSWAP(array[3], array[4]);
84 CSWAP(array[0], array[3]);
85 CSWAP(array[1], array[4]);
86 CSWAP(array[2], array[5]);
87 CSWAP(array[2], array[4]);
88 CSWAP(array[1], array[3]);
89 CSWAP(array[2], array[3]);
90 CSWAP(array[7], array[8]);
91 CSWAP(array[6], array[8]);
92 CSWAP(array[6], array[7]);
93 float a11 = array[11];
94 CSWAP(array[10], a11);
95 CSWAP(array[9], a11);
96 CSWAP(array[9], array[10]);
97 CSWAP(array[6], array[9]);
98 CSWAP(array[7], array[10]);
99 CSWAP(array[8], a11);
100 CSWAP(array[8], array[10]);
101 CSWAP(array[7], array[9]);
102 CSWAP(array[8], array[9]);
103 CSWAP(array[0], array[6]);
104 CSWAP(array[1], array[7]);
105 CSWAP(array[2], array[8]);
106 CSWAP(array[2], array[7]);
107 CSWAP(array[1], array[6]);
108 CSWAP(array[2], array[6]);
109 CSWAP(array[3], array[9]);
110 CSWAP(array[4], array[10]);
111 CSWAP(array[5], a11);
112 CSWAP(array[5], array[10]);
113 CSWAP(array[4], array[9]);
114 CSWAP(array[5], array[9]);
115 CSWAP(array[3], array[6]);
116 CSWAP(array[4], array[7]);
117 CSWAP(array[5], array[8]);
118 CSWAP(array[5], array[7]);
119 CSWAP(array[4], array[6]);
120 CSWAP(array[5], array[6]);
121 CSWAP(array[13], array[14]);
122 float a12 = array[12];
123 CSWAP(a12, array[14]);
124 CSWAP(a12, array[13]);
125 CSWAP(array[16], array[17]);
126 CSWAP(array[15], array[17]);
127 CSWAP(array[15], array[16]);
128 CSWAP(a12, array[15]);
129 CSWAP(array[13], array[16]);
130 CSWAP(array[14], array[17]);
131 CSWAP(array[14], array[16]);
132 CSWAP(array[13], array[15]);
133 CSWAP(array[14], array[15]);
134 CSWAP(array[19], array[20]);
135 CSWAP(array[18], array[20]);
136 CSWAP(array[18], array[19]);
137 CSWAP(array[22], array[23]);
138 CSWAP(array[21], array[23]);
139 CSWAP(array[21], array[22]);
140 CSWAP(array[18], array[21]);
141 CSWAP(array[19], array[22]);
142 CSWAP(array[20], array[23]);
143 CSWAP(array[20], array[22]);
144 CSWAP(array[19], array[21]);
145 CSWAP(array[20], array[21]);
146 CSWAP(a12, array[18]);
147 CSWAP(array[13], array[19]);
148 CSWAP(array[14], array[20]);
149 CSWAP(array[14], array[19]);
150 CSWAP(array[13], array[18]);
151 CSWAP(array[14], array[18]);
152 CSWAP(array[15], array[21]);
153 CSWAP(array[16], array[22]);
154 CSWAP(array[17], array[23]);
155 CSWAP(array[17], array[22]);
156 CSWAP(array[16], array[21]);
157 CSWAP(array[17], array[21]);
158 CSWAP(array[15], array[18]);
159 CSWAP(array[16], array[19]);
160 CSWAP(array[17], array[20]);
161 CSWAP(array[17], array[19]);
162 CSWAP(array[16], array[18]);
163 CSWAP(array[17], array[18]);
164 a12 = mymax(a12, array[0]);
165 CSWAP(array[1], array[13]);
166 CSWAP(array[2], array[14]);
167 CSWAP(array[2], array[13]);
168 a12 = mymax(a12, array[1]);
169 a12 = mymax(a12, array[2]);
170 CSWAP(array[3], array[15]);
171 CSWAP(array[4], array[16]);
172 CSWAP(array[5], array[17]);
173 CSWAP(array[5], array[16]);
174 CSWAP(array[4], array[15]);
175 CSWAP(array[5], array[15]);
176 a12 = mymax(a12, array[3]);
177 CSWAP(array[4], array[13]);
178 CSWAP(array[5], array[14]);
179 CSWAP(array[5], array[13]);
180 a12 = mymax(a12, array[4]);
181 a12 = mymax(a12, array[5]);
182 CSWAP(array[6], array[18]);
183 CSWAP(array[7], array[19]);
184 CSWAP(array[8], array[20]);
185 CSWAP(array[8], array[19]);
186 CSWAP(array[7], array[18]);
187 CSWAP(array[8], array[18]);
188 CSWAP(array[9], array[21]);
189 CSWAP(array[10], array[22]);
190 a11 = mymin(a11, array[23]);
191 a11 = mymin(a11, array[22]);
192 CSWAP(array[10], array[21]);
193 a11 = mymin(a11, array[21]);
194 CSWAP(array[9], array[18]);
195 CSWAP(array[10], array[19]);
196 a11 = mymin(a11, array[20]);
197 a11 = mymin(a11, array[20]);
198 a11 = mymin(a11, array[19]);
199 CSWAP(array[10], array[18]);
200 a11 = mymin(a11, array[18]);
201 a12 = mymax(a12, array[6]);
202 CSWAP(array[7], array[13]);
203 CSWAP(array[8], array[14]);
204 CSWAP(array[8], array[13]);
205 a12 = mymax(a12, array[7]);
206 a12 = mymax(a12, array[8]);
207 CSWAP(array[9], array[15]);
208 CSWAP(array[10], array[16]);
209 a11 = mymin(a11, array[17]);
210 a11 = mymin(a11, array[16]);
211 CSWAP(array[10], array[15]);
212 a11 = mymin(a11, array[15]);
213 a12 = mymax(a12, array[9]);
214 CSWAP(array[10], array[13]);
215 a11 = mymin(a11, array[14]);
216 a11 = mymin(a11, array[13]);
217 a12 = mymax(a12, array[10]);
218
219 return (a11 + a12) / 2;
220 }
221
median5x5(float * array)222 float median5x5(float* array)
223 {
224 float tmp = mymin(array[0], array[1]);
225 array[1] = mymax(array[0], array[1]);
226 array[0] = tmp;
227 tmp = mymin(array[3], array[4]);
228 array[4] = mymax(array[3], array[4]);
229 array[3] = tmp;
230 tmp = mymin(array[2], array[4]);
231 array[4] = mymax(array[2], array[4]);
232 array[2] = mymin(tmp, array[3]);
233 array[3] = mymax(tmp, array[3]);
234 tmp = mymin(array[6], array[7]);
235 array[7] = mymax(array[6], array[7]);
236 array[6] = tmp;
237 tmp = mymin(array[5], array[7]);
238 array[7] = mymax(array[5], array[7]);
239 array[5] = mymin(tmp, array[6]);
240 array[6] = mymax(tmp, array[6]);
241 tmp = mymin(array[9], array[10]);
242 array[10] = mymax(array[9], array[10]);
243 array[9] = tmp;
244 tmp = mymin(array[8], array[10]);
245 array[10] = mymax(array[8], array[10]);
246 array[8] = mymin(tmp, array[9]);
247 array[9] = mymax(tmp, array[9]);
248 tmp = mymin(array[12], array[13]);
249 array[13] = mymax(array[12], array[13]);
250 array[12] = tmp;
251 tmp = mymin(array[11], array[13]);
252 array[13] = mymax(array[11], array[13]);
253 array[11] = mymin(tmp, array[12]);
254 array[12] = mymax(tmp, array[12]);
255 tmp = mymin(array[15], array[16]);
256 array[16] = mymax(array[15], array[16]);
257 array[15] = tmp;
258 tmp = mymin(array[14], array[16]);
259 array[16] = mymax(array[14], array[16]);
260 array[14] = mymin(tmp, array[15]);
261 array[15] = mymax(tmp, array[15]);
262 tmp = mymin(array[18], array[19]);
263 array[19] = mymax(array[18], array[19]);
264 array[18] = tmp;
265 tmp = mymin(array[17], array[19]);
266 array[19] = mymax(array[17], array[19]);
267 array[17] = mymin(tmp, array[18]);
268 array[18] = mymax(tmp, array[18]);
269 tmp = mymin(array[21], array[22]);
270 array[22] = mymax(array[21], array[22]);
271 array[21] = tmp;
272 tmp = mymin(array[20], array[22]);
273 array[22] = mymax(array[20], array[22]);
274 array[20] = mymin(tmp, array[21]);
275 array[21] = mymax(tmp, array[21]);
276 tmp = mymin(array[23], array[24]);
277 array[24] = mymax(array[23], array[24]);
278 array[23] = tmp;
279 tmp = mymin(array[2], array[5]);
280 array[5] = mymax(array[2], array[5]);
281 array[2] = tmp;
282 tmp = mymin(array[3], array[6]);
283 array[6] = mymax(array[3], array[6]);
284 array[3] = tmp;
285 tmp = mymin(array[0], array[6]);
286 array[6] = mymax(array[0], array[6]);
287 array[0] = mymin(tmp, array[3]);
288 array[3] = mymax(tmp, array[3]);
289 tmp = mymin(array[4], array[7]);
290 array[7] = mymax(array[4], array[7]);
291 array[4] = tmp;
292 tmp = mymin(array[1], array[7]);
293 array[7] = mymax(array[1], array[7]);
294 array[1] = mymin(tmp, array[4]);
295 array[4] = mymax(tmp, array[4]);
296 tmp = mymin(array[11], array[14]);
297 array[14] = mymax(array[11], array[14]);
298 array[11] = tmp;
299 tmp = mymin(array[8], array[14]);
300 array[14] = mymax(array[8], array[14]);
301 array[8] = mymin(tmp, array[11]);
302 array[11] = mymax(tmp, array[11]);
303 tmp = mymin(array[12], array[15]);
304 array[15] = mymax(array[12], array[15]);
305 array[12] = tmp;
306 tmp = mymin(array[9], array[15]);
307 array[15] = mymax(array[9], array[15]);
308 array[9] = mymin(tmp, array[12]);
309 array[12] = mymax(tmp, array[12]);
310 tmp = mymin(array[13], array[16]);
311 array[16] = mymax(array[13], array[16]);
312 array[13] = tmp;
313 tmp = mymin(array[10], array[16]);
314 array[16] = mymax(array[10], array[16]);
315 array[10] = mymin(tmp, array[13]);
316 array[13] = mymax(tmp, array[13]);
317 tmp = mymin(array[20], array[23]);
318 array[23] = mymax(array[20], array[23]);
319 array[20] = tmp;
320 tmp = mymin(array[17], array[23]);
321 array[23] = mymax(array[17], array[23]);
322 array[17] = mymin(tmp, array[20]);
323 array[20] = mymax(tmp, array[20]);
324 tmp = mymin(array[21], array[24]);
325 array[24] = mymax(array[21], array[24]);
326 array[21] = tmp;
327 tmp = mymin(array[18], array[24]);
328 array[24] = mymax(array[18], array[24]);
329 array[18] = mymin(tmp, array[21]);
330 array[21] = mymax(tmp, array[21]);
331 tmp = mymin(array[19], array[22]);
332 array[22] = mymax(array[19], array[22]);
333 array[19] = tmp;
334 array[17] = mymax(array[8], array[17]);
335 tmp = mymin(array[9], array[18]);
336 array[18] = mymax(array[9], array[18]);
337 array[9] = tmp;
338 tmp = mymin(array[0], array[18]);
339 array[18] = mymax(array[0], array[18]);
340 array[9] = mymax(tmp, array[9]);
341 tmp = mymin(array[10], array[19]);
342 array[19] = mymax(array[10], array[19]);
343 array[10] = tmp;
344 tmp = mymin(array[1], array[19]);
345 array[19] = mymax(array[1], array[19]);
346 array[1] = mymin(tmp, array[10]);
347 array[10] = mymax(tmp, array[10]);
348 tmp = mymin(array[11], array[20]);
349 array[20] = mymax(array[11], array[20]);
350 array[11] = tmp;
351 tmp = mymin(array[2], array[20]);
352 array[20] = mymax(array[2], array[20]);
353 array[11] = mymax(tmp, array[11]);
354 tmp = mymin(array[12], array[21]);
355 array[21] = mymax(array[12], array[21]);
356 array[12] = tmp;
357 tmp = mymin(array[3], array[21]);
358 array[21] = mymax(array[3], array[21]);
359 array[3] = mymin(tmp, array[12]);
360 array[12] = mymax(tmp, array[12]);
361 tmp = mymin(array[13], array[22]);
362 array[22] = mymax(array[13], array[22]);
363 array[4] = mymin(array[4], array[22]);
364 array[13] = mymax(array[4], tmp);
365 tmp = mymin(array[4], tmp);
366 array[4] = tmp;
367 tmp = mymin(array[14], array[23]);
368 array[23] = mymax(array[14], array[23]);
369 array[14] = tmp;
370 tmp = mymin(array[5], array[23]);
371 array[23] = mymax(array[5], array[23]);
372 array[5] = mymin(tmp, array[14]);
373 array[14] = mymax(tmp, array[14]);
374 tmp = mymin(array[15], array[24]);
375 array[24] = mymax(array[15], array[24]);
376 array[15] = tmp;
377 array[6] = mymin(array[6], array[24]);
378 tmp = mymin(array[6], array[15]);
379 array[15] = mymax(array[6], array[15]);
380 array[6] = tmp;
381 tmp = mymin(array[7], array[16]);
382 array[7] = mymin(tmp, array[19]);
383 tmp = mymin(array[13], array[21]);
384 array[15] = mymin(array[15], array[23]);
385 tmp = mymin(array[7], tmp);
386 array[7] = mymin(tmp, array[15]);
387 array[9] = mymax(array[1], array[9]);
388 array[11] = mymax(array[3], array[11]);
389 array[17] = mymax(array[5], array[17]);
390 array[17] = mymax(array[11], array[17]);
391 array[17] = mymax(array[9], array[17]);
392 tmp = mymin(array[4], array[10]);
393 array[10] = mymax(array[4], array[10]);
394 array[4] = tmp;
395 tmp = mymin(array[6], array[12]);
396 array[12] = mymax(array[6], array[12]);
397 array[6] = tmp;
398 tmp = mymin(array[7], array[14]);
399 array[14] = mymax(array[7], array[14]);
400 array[7] = tmp;
401 tmp = mymin(array[4], array[6]);
402 array[6] = mymax(array[4], array[6]);
403 array[7] = mymax(tmp, array[7]);
404 tmp = mymin(array[12], array[14]);
405 array[14] = mymax(array[12], array[14]);
406 array[12] = tmp;
407 array[10] = mymin(array[10], array[14]);
408 tmp = mymin(array[6], array[7]);
409 array[7] = mymax(array[6], array[7]);
410 array[6] = tmp;
411 tmp = mymin(array[10], array[12]);
412 array[12] = mymax(array[10], array[12]);
413 array[10] = mymax(array[6], tmp);
414 tmp = mymin(array[6], tmp);
415 array[17] = mymax(tmp, array[17]);
416 tmp = mymin(array[12], array[17]);
417 array[17] = mymax(array[12], array[17]);
418 array[12] = tmp;
419 array[7] = mymin(array[7], array[17]);
420 tmp = mymin(array[7], array[10]);
421 array[10] = mymax(array[7], array[10]);
422 array[7] = tmp;
423 tmp = mymin(array[12], array[18]);
424 array[18] = mymax(array[12], array[18]);
425 array[12] = mymax(array[7], tmp);
426 array[10] = mymin(array[10], array[18]);
427 tmp = mymin(array[12], array[20]);
428 array[20] = mymax(array[12], array[20]);
429 array[12] = tmp;
430 tmp = mymin(array[10], array[20]);
431 return mymax(tmp, array[12]);
432 }
433
median7x7(float * array)434 float median7x7(float* array)
435 {
436 float tmp = mymin(array[0], array[32]);
437 array[32] = mymax(array[0], array[32]);
438 array[0] = tmp;
439 tmp = mymin(array[1], array[33]);
440 array[33] = mymax(array[1], array[33]);
441 array[1] = tmp;
442 tmp = mymin(array[2], array[34]);
443 array[34] = mymax(array[2], array[34]);
444 array[2] = tmp;
445 tmp = mymin(array[3], array[35]);
446 array[35] = mymax(array[3], array[35]);
447 array[3] = tmp;
448 tmp = mymin(array[4], array[36]);
449 array[36] = mymax(array[4], array[36]);
450 array[4] = tmp;
451 tmp = mymin(array[5], array[37]);
452 array[37] = mymax(array[5], array[37]);
453 array[5] = tmp;
454 tmp = mymin(array[6], array[38]);
455 array[38] = mymax(array[6], array[38]);
456 array[6] = tmp;
457 tmp = mymin(array[7], array[39]);
458 array[39] = mymax(array[7], array[39]);
459 array[7] = tmp;
460 tmp = mymin(array[8], array[40]);
461 array[40] = mymax(array[8], array[40]);
462 array[8] = tmp;
463 tmp = mymin(array[9], array[41]);
464 array[41] = mymax(array[9], array[41]);
465 array[9] = tmp;
466 tmp = mymin(array[10], array[42]);
467 array[42] = mymax(array[10], array[42]);
468 array[10] = tmp;
469 tmp = mymin(array[11], array[43]);
470 array[43] = mymax(array[11], array[43]);
471 array[11] = tmp;
472 tmp = mymin(array[12], array[44]);
473 array[44] = mymax(array[12], array[44]);
474 array[12] = tmp;
475 tmp = mymin(array[13], array[45]);
476 array[45] = mymax(array[13], array[45]);
477 array[13] = tmp;
478 tmp = mymin(array[14], array[46]);
479 array[46] = mymax(array[14], array[46]);
480 array[14] = tmp;
481 tmp = mymin(array[15], array[47]);
482 array[47] = mymax(array[15], array[47]);
483 array[15] = tmp;
484 tmp = mymin(array[16], array[48]);
485 array[48] = mymax(array[16], array[48]);
486 array[16] = tmp;
487 tmp = mymin(array[0], array[16]);
488 array[16] = mymax(array[0], array[16]);
489 array[0] = tmp;
490 tmp = mymin(array[1], array[17]);
491 array[17] = mymax(array[1], array[17]);
492 array[1] = tmp;
493 tmp = mymin(array[2], array[18]);
494 array[18] = mymax(array[2], array[18]);
495 array[2] = tmp;
496 tmp = mymin(array[3], array[19]);
497 array[19] = mymax(array[3], array[19]);
498 array[3] = tmp;
499 tmp = mymin(array[4], array[20]);
500 array[20] = mymax(array[4], array[20]);
501 array[4] = tmp;
502 tmp = mymin(array[5], array[21]);
503 array[21] = mymax(array[5], array[21]);
504 array[5] = tmp;
505 tmp = mymin(array[6], array[22]);
506 array[22] = mymax(array[6], array[22]);
507 array[6] = tmp;
508 tmp = mymin(array[7], array[23]);
509 array[23] = mymax(array[7], array[23]);
510 array[7] = tmp;
511 tmp = mymin(array[8], array[24]);
512 array[24] = mymax(array[8], array[24]);
513 array[8] = tmp;
514 tmp = mymin(array[9], array[25]);
515 array[25] = mymax(array[9], array[25]);
516 array[9] = tmp;
517 tmp = mymin(array[10], array[26]);
518 array[26] = mymax(array[10], array[26]);
519 array[10] = tmp;
520 tmp = mymin(array[11], array[27]);
521 array[27] = mymax(array[11], array[27]);
522 array[11] = tmp;
523 tmp = mymin(array[12], array[28]);
524 array[28] = mymax(array[12], array[28]);
525 array[12] = tmp;
526 tmp = mymin(array[13], array[29]);
527 array[29] = mymax(array[13], array[29]);
528 array[13] = tmp;
529 tmp = mymin(array[14], array[30]);
530 array[30] = mymax(array[14], array[30]);
531 array[14] = tmp;
532 tmp = mymin(array[15], array[31]);
533 array[31] = mymax(array[15], array[31]);
534 array[15] = tmp;
535 tmp = mymin(array[32], array[48]);
536 array[48] = mymax(array[32], array[48]);
537 array[32] = tmp;
538 tmp = mymin(array[16], array[32]);
539 array[32] = mymax(array[16], array[32]);
540 array[16] = tmp;
541 tmp = mymin(array[17], array[33]);
542 array[33] = mymax(array[17], array[33]);
543 array[17] = tmp;
544 tmp = mymin(array[18], array[34]);
545 array[34] = mymax(array[18], array[34]);
546 array[18] = tmp;
547 tmp = mymin(array[19], array[35]);
548 array[35] = mymax(array[19], array[35]);
549 array[19] = tmp;
550 tmp = mymin(array[20], array[36]);
551 array[36] = mymax(array[20], array[36]);
552 array[20] = tmp;
553 tmp = mymin(array[21], array[37]);
554 array[37] = mymax(array[21], array[37]);
555 array[21] = tmp;
556 tmp = mymin(array[22], array[38]);
557 array[38] = mymax(array[22], array[38]);
558 array[22] = tmp;
559 tmp = mymin(array[23], array[39]);
560 array[39] = mymax(array[23], array[39]);
561 array[23] = tmp;
562 tmp = mymin(array[24], array[40]);
563 array[40] = mymax(array[24], array[40]);
564 array[24] = tmp;
565 tmp = mymin(array[25], array[41]);
566 array[41] = mymax(array[25], array[41]);
567 array[25] = tmp;
568 tmp = mymin(array[26], array[42]);
569 array[42] = mymax(array[26], array[42]);
570 array[26] = tmp;
571 tmp = mymin(array[27], array[43]);
572 array[43] = mymax(array[27], array[43]);
573 array[27] = tmp;
574 tmp = mymin(array[28], array[44]);
575 array[44] = mymax(array[28], array[44]);
576 array[28] = tmp;
577 tmp = mymin(array[29], array[45]);
578 array[45] = mymax(array[29], array[45]);
579 array[29] = tmp;
580 tmp = mymin(array[30], array[46]);
581 array[46] = mymax(array[30], array[46]);
582 array[30] = tmp;
583 tmp = mymin(array[31], array[47]);
584 array[47] = mymax(array[31], array[47]);
585 array[31] = tmp;
586 tmp = mymin(array[0], array[8]);
587 array[8] = mymax(array[0], array[8]);
588 array[0] = tmp;
589 tmp = mymin(array[1], array[9]);
590 array[9] = mymax(array[1], array[9]);
591 array[1] = tmp;
592 tmp = mymin(array[2], array[10]);
593 array[10] = mymax(array[2], array[10]);
594 array[2] = tmp;
595 tmp = mymin(array[3], array[11]);
596 array[11] = mymax(array[3], array[11]);
597 array[3] = tmp;
598 tmp = mymin(array[4], array[12]);
599 array[12] = mymax(array[4], array[12]);
600 array[4] = tmp;
601 tmp = mymin(array[5], array[13]);
602 array[13] = mymax(array[5], array[13]);
603 array[5] = tmp;
604 tmp = mymin(array[6], array[14]);
605 array[14] = mymax(array[6], array[14]);
606 array[6] = tmp;
607 tmp = mymin(array[7], array[15]);
608 array[15] = mymax(array[7], array[15]);
609 array[7] = tmp;
610 tmp = mymin(array[16], array[24]);
611 array[24] = mymax(array[16], array[24]);
612 array[16] = tmp;
613 tmp = mymin(array[17], array[25]);
614 array[25] = mymax(array[17], array[25]);
615 array[17] = tmp;
616 tmp = mymin(array[18], array[26]);
617 array[26] = mymax(array[18], array[26]);
618 array[18] = tmp;
619 tmp = mymin(array[19], array[27]);
620 array[27] = mymax(array[19], array[27]);
621 array[19] = tmp;
622 tmp = mymin(array[20], array[28]);
623 array[28] = mymax(array[20], array[28]);
624 array[20] = tmp;
625 tmp = mymin(array[21], array[29]);
626 array[29] = mymax(array[21], array[29]);
627 array[21] = tmp;
628 tmp = mymin(array[22], array[30]);
629 array[30] = mymax(array[22], array[30]);
630 array[22] = tmp;
631 tmp = mymin(array[23], array[31]);
632 array[31] = mymax(array[23], array[31]);
633 array[23] = tmp;
634 tmp = mymin(array[32], array[40]);
635 array[40] = mymax(array[32], array[40]);
636 array[32] = tmp;
637 tmp = mymin(array[33], array[41]);
638 array[41] = mymax(array[33], array[41]);
639 array[33] = tmp;
640 tmp = mymin(array[34], array[42]);
641 array[42] = mymax(array[34], array[42]);
642 array[34] = tmp;
643 tmp = mymin(array[35], array[43]);
644 array[43] = mymax(array[35], array[43]);
645 array[35] = tmp;
646 tmp = mymin(array[36], array[44]);
647 array[44] = mymax(array[36], array[44]);
648 array[36] = tmp;
649 tmp = mymin(array[37], array[45]);
650 array[45] = mymax(array[37], array[45]);
651 array[37] = tmp;
652 tmp = mymin(array[38], array[46]);
653 array[46] = mymax(array[38], array[46]);
654 array[38] = tmp;
655 tmp = mymin(array[39], array[47]);
656 array[47] = mymax(array[39], array[47]);
657 array[39] = tmp;
658 tmp = mymin(array[8], array[32]);
659 array[32] = mymax(array[8], array[32]);
660 array[8] = tmp;
661 tmp = mymin(array[9], array[33]);
662 array[33] = mymax(array[9], array[33]);
663 array[9] = tmp;
664 tmp = mymin(array[10], array[34]);
665 array[34] = mymax(array[10], array[34]);
666 array[10] = tmp;
667 tmp = mymin(array[11], array[35]);
668 array[35] = mymax(array[11], array[35]);
669 array[11] = tmp;
670 tmp = mymin(array[12], array[36]);
671 array[36] = mymax(array[12], array[36]);
672 array[12] = tmp;
673 tmp = mymin(array[13], array[37]);
674 array[37] = mymax(array[13], array[37]);
675 array[13] = tmp;
676 tmp = mymin(array[14], array[38]);
677 array[38] = mymax(array[14], array[38]);
678 array[14] = tmp;
679 tmp = mymin(array[15], array[39]);
680 array[39] = mymax(array[15], array[39]);
681 array[15] = tmp;
682 tmp = mymin(array[24], array[48]);
683 array[48] = mymax(array[24], array[48]);
684 array[24] = tmp;
685 tmp = mymin(array[8], array[16]);
686 array[16] = mymax(array[8], array[16]);
687 array[8] = tmp;
688 tmp = mymin(array[9], array[17]);
689 array[17] = mymax(array[9], array[17]);
690 array[9] = tmp;
691 tmp = mymin(array[10], array[18]);
692 array[18] = mymax(array[10], array[18]);
693 array[10] = tmp;
694 tmp = mymin(array[11], array[19]);
695 array[19] = mymax(array[11], array[19]);
696 array[11] = tmp;
697 tmp = mymin(array[12], array[20]);
698 array[20] = mymax(array[12], array[20]);
699 array[12] = tmp;
700 tmp = mymin(array[13], array[21]);
701 array[21] = mymax(array[13], array[21]);
702 array[13] = tmp;
703 tmp = mymin(array[14], array[22]);
704 array[22] = mymax(array[14], array[22]);
705 array[14] = tmp;
706 tmp = mymin(array[15], array[23]);
707 array[23] = mymax(array[15], array[23]);
708 array[15] = tmp;
709 tmp = mymin(array[24], array[32]);
710 array[32] = mymax(array[24], array[32]);
711 array[24] = tmp;
712 tmp = mymin(array[25], array[33]);
713 array[33] = mymax(array[25], array[33]);
714 array[25] = tmp;
715 tmp = mymin(array[26], array[34]);
716 array[34] = mymax(array[26], array[34]);
717 array[26] = tmp;
718 tmp = mymin(array[27], array[35]);
719 array[35] = mymax(array[27], array[35]);
720 array[27] = tmp;
721 tmp = mymin(array[28], array[36]);
722 array[36] = mymax(array[28], array[36]);
723 array[28] = tmp;
724 tmp = mymin(array[29], array[37]);
725 array[37] = mymax(array[29], array[37]);
726 array[29] = tmp;
727 tmp = mymin(array[30], array[38]);
728 array[38] = mymax(array[30], array[38]);
729 array[30] = tmp;
730 tmp = mymin(array[31], array[39]);
731 array[39] = mymax(array[31], array[39]);
732 array[31] = tmp;
733 tmp = mymin(array[40], array[48]);
734 array[48] = mymax(array[40], array[48]);
735 array[40] = tmp;
736 tmp = mymin(array[0], array[4]);
737 array[4] = mymax(array[0], array[4]);
738 array[0] = tmp;
739 tmp = mymin(array[1], array[5]);
740 array[5] = mymax(array[1], array[5]);
741 array[1] = tmp;
742 tmp = mymin(array[2], array[6]);
743 array[6] = mymax(array[2], array[6]);
744 array[2] = tmp;
745 tmp = mymin(array[3], array[7]);
746 array[7] = mymax(array[3], array[7]);
747 array[3] = tmp;
748 tmp = mymin(array[8], array[12]);
749 array[12] = mymax(array[8], array[12]);
750 array[8] = tmp;
751 tmp = mymin(array[9], array[13]);
752 array[13] = mymax(array[9], array[13]);
753 array[9] = tmp;
754 tmp = mymin(array[10], array[14]);
755 array[14] = mymax(array[10], array[14]);
756 array[10] = tmp;
757 tmp = mymin(array[11], array[15]);
758 array[15] = mymax(array[11], array[15]);
759 array[11] = tmp;
760 tmp = mymin(array[16], array[20]);
761 array[20] = mymax(array[16], array[20]);
762 array[16] = tmp;
763 tmp = mymin(array[17], array[21]);
764 array[21] = mymax(array[17], array[21]);
765 array[17] = tmp;
766 tmp = mymin(array[18], array[22]);
767 array[22] = mymax(array[18], array[22]);
768 array[18] = tmp;
769 tmp = mymin(array[19], array[23]);
770 array[23] = mymax(array[19], array[23]);
771 array[19] = tmp;
772 tmp = mymin(array[24], array[28]);
773 array[28] = mymax(array[24], array[28]);
774 array[24] = tmp;
775 tmp = mymin(array[25], array[29]);
776 array[29] = mymax(array[25], array[29]);
777 array[25] = tmp;
778 tmp = mymin(array[26], array[30]);
779 array[30] = mymax(array[26], array[30]);
780 array[26] = tmp;
781 tmp = mymin(array[27], array[31]);
782 array[31] = mymax(array[27], array[31]);
783 array[27] = tmp;
784 tmp = mymin(array[32], array[36]);
785 array[36] = mymax(array[32], array[36]);
786 array[32] = tmp;
787 tmp = mymin(array[33], array[37]);
788 array[37] = mymax(array[33], array[37]);
789 array[33] = tmp;
790 tmp = mymin(array[34], array[38]);
791 array[38] = mymax(array[34], array[38]);
792 array[34] = tmp;
793 tmp = mymin(array[35], array[39]);
794 array[39] = mymax(array[35], array[39]);
795 array[35] = tmp;
796 tmp = mymin(array[40], array[44]);
797 array[44] = mymax(array[40], array[44]);
798 array[40] = tmp;
799 tmp = mymin(array[41], array[45]);
800 array[45] = mymax(array[41], array[45]);
801 array[41] = tmp;
802 tmp = mymin(array[42], array[46]);
803 array[46] = mymax(array[42], array[46]);
804 array[42] = tmp;
805 tmp = mymin(array[43], array[47]);
806 array[47] = mymax(array[43], array[47]);
807 array[43] = tmp;
808 tmp = mymin(array[4], array[32]);
809 array[32] = mymax(array[4], array[32]);
810 array[4] = tmp;
811 tmp = mymin(array[5], array[33]);
812 array[33] = mymax(array[5], array[33]);
813 array[5] = tmp;
814 tmp = mymin(array[6], array[34]);
815 array[34] = mymax(array[6], array[34]);
816 array[6] = tmp;
817 tmp = mymin(array[7], array[35]);
818 array[35] = mymax(array[7], array[35]);
819 array[7] = tmp;
820 tmp = mymin(array[12], array[40]);
821 array[40] = mymax(array[12], array[40]);
822 array[12] = tmp;
823 tmp = mymin(array[13], array[41]);
824 array[41] = mymax(array[13], array[41]);
825 array[13] = tmp;
826 tmp = mymin(array[14], array[42]);
827 array[42] = mymax(array[14], array[42]);
828 array[14] = tmp;
829 tmp = mymin(array[15], array[43]);
830 array[43] = mymax(array[15], array[43]);
831 array[15] = tmp;
832 tmp = mymin(array[20], array[48]);
833 array[48] = mymax(array[20], array[48]);
834 array[20] = tmp;
835 tmp = mymin(array[4], array[16]);
836 array[16] = mymax(array[4], array[16]);
837 array[4] = tmp;
838 tmp = mymin(array[5], array[17]);
839 array[17] = mymax(array[5], array[17]);
840 array[5] = tmp;
841 tmp = mymin(array[6], array[18]);
842 array[18] = mymax(array[6], array[18]);
843 array[6] = tmp;
844 tmp = mymin(array[7], array[19]);
845 array[19] = mymax(array[7], array[19]);
846 array[7] = tmp;
847 tmp = mymin(array[12], array[24]);
848 array[24] = mymax(array[12], array[24]);
849 array[12] = tmp;
850 tmp = mymin(array[13], array[25]);
851 array[25] = mymax(array[13], array[25]);
852 array[13] = tmp;
853 tmp = mymin(array[14], array[26]);
854 array[26] = mymax(array[14], array[26]);
855 array[14] = tmp;
856 tmp = mymin(array[15], array[27]);
857 array[27] = mymax(array[15], array[27]);
858 array[15] = tmp;
859 tmp = mymin(array[20], array[32]);
860 array[32] = mymax(array[20], array[32]);
861 array[20] = tmp;
862 tmp = mymin(array[21], array[33]);
863 array[33] = mymax(array[21], array[33]);
864 array[21] = tmp;
865 tmp = mymin(array[22], array[34]);
866 array[34] = mymax(array[22], array[34]);
867 array[22] = tmp;
868 tmp = mymin(array[23], array[35]);
869 array[35] = mymax(array[23], array[35]);
870 array[23] = tmp;
871 tmp = mymin(array[28], array[40]);
872 array[40] = mymax(array[28], array[40]);
873 array[28] = tmp;
874 tmp = mymin(array[29], array[41]);
875 array[41] = mymax(array[29], array[41]);
876 array[29] = tmp;
877 tmp = mymin(array[30], array[42]);
878 array[42] = mymax(array[30], array[42]);
879 array[30] = tmp;
880 tmp = mymin(array[31], array[43]);
881 array[43] = mymax(array[31], array[43]);
882 array[31] = tmp;
883 tmp = mymin(array[36], array[48]);
884 array[48] = mymax(array[36], array[48]);
885 array[36] = tmp;
886 tmp = mymin(array[4], array[8]);
887 array[8] = mymax(array[4], array[8]);
888 array[4] = tmp;
889 tmp = mymin(array[5], array[9]);
890 array[9] = mymax(array[5], array[9]);
891 array[5] = tmp;
892 tmp = mymin(array[6], array[10]);
893 array[10] = mymax(array[6], array[10]);
894 array[6] = tmp;
895 tmp = mymin(array[7], array[11]);
896 array[11] = mymax(array[7], array[11]);
897 array[7] = tmp;
898 tmp = mymin(array[12], array[16]);
899 array[16] = mymax(array[12], array[16]);
900 array[12] = tmp;
901 tmp = mymin(array[13], array[17]);
902 array[17] = mymax(array[13], array[17]);
903 array[13] = tmp;
904 tmp = mymin(array[14], array[18]);
905 array[18] = mymax(array[14], array[18]);
906 array[14] = tmp;
907 tmp = mymin(array[15], array[19]);
908 array[19] = mymax(array[15], array[19]);
909 array[15] = tmp;
910 tmp = mymin(array[20], array[24]);
911 array[24] = mymax(array[20], array[24]);
912 array[20] = tmp;
913 tmp = mymin(array[21], array[25]);
914 array[25] = mymax(array[21], array[25]);
915 array[21] = tmp;
916 tmp = mymin(array[22], array[26]);
917 array[26] = mymax(array[22], array[26]);
918 array[22] = tmp;
919 tmp = mymin(array[23], array[27]);
920 array[27] = mymax(array[23], array[27]);
921 array[23] = tmp;
922 tmp = mymin(array[28], array[32]);
923 array[32] = mymax(array[28], array[32]);
924 array[28] = tmp;
925 tmp = mymin(array[29], array[33]);
926 array[33] = mymax(array[29], array[33]);
927 array[29] = tmp;
928 tmp = mymin(array[30], array[34]);
929 array[34] = mymax(array[30], array[34]);
930 array[30] = tmp;
931 tmp = mymin(array[31], array[35]);
932 array[35] = mymax(array[31], array[35]);
933 array[31] = tmp;
934 tmp = mymin(array[36], array[40]);
935 array[40] = mymax(array[36], array[40]);
936 array[36] = tmp;
937 tmp = mymin(array[37], array[41]);
938 array[41] = mymax(array[37], array[41]);
939 array[37] = tmp;
940 tmp = mymin(array[38], array[42]);
941 array[42] = mymax(array[38], array[42]);
942 array[38] = tmp;
943 tmp = mymin(array[39], array[43]);
944 array[43] = mymax(array[39], array[43]);
945 array[39] = tmp;
946 tmp = mymin(array[44], array[48]);
947 array[48] = mymax(array[44], array[48]);
948 array[44] = tmp;
949 tmp = mymin(array[0], array[2]);
950 array[2] = mymax(array[0], array[2]);
951 array[0] = tmp;
952 tmp = mymin(array[1], array[3]);
953 array[3] = mymax(array[1], array[3]);
954 array[1] = tmp;
955 tmp = mymin(array[4], array[6]);
956 array[6] = mymax(array[4], array[6]);
957 array[4] = tmp;
958 tmp = mymin(array[5], array[7]);
959 array[7] = mymax(array[5], array[7]);
960 array[5] = tmp;
961 tmp = mymin(array[8], array[10]);
962 array[10] = mymax(array[8], array[10]);
963 array[8] = tmp;
964 tmp = mymin(array[9], array[11]);
965 array[11] = mymax(array[9], array[11]);
966 array[9] = tmp;
967 tmp = mymin(array[12], array[14]);
968 array[14] = mymax(array[12], array[14]);
969 array[12] = tmp;
970 tmp = mymin(array[13], array[15]);
971 array[15] = mymax(array[13], array[15]);
972 array[13] = tmp;
973 tmp = mymin(array[16], array[18]);
974 array[18] = mymax(array[16], array[18]);
975 array[16] = tmp;
976 tmp = mymin(array[17], array[19]);
977 array[19] = mymax(array[17], array[19]);
978 array[17] = tmp;
979 tmp = mymin(array[20], array[22]);
980 array[22] = mymax(array[20], array[22]);
981 array[20] = tmp;
982 tmp = mymin(array[21], array[23]);
983 array[23] = mymax(array[21], array[23]);
984 array[21] = tmp;
985 tmp = mymin(array[24], array[26]);
986 array[26] = mymax(array[24], array[26]);
987 array[24] = tmp;
988 tmp = mymin(array[25], array[27]);
989 array[27] = mymax(array[25], array[27]);
990 array[25] = tmp;
991 tmp = mymin(array[28], array[30]);
992 array[30] = mymax(array[28], array[30]);
993 array[28] = tmp;
994 tmp = mymin(array[29], array[31]);
995 array[31] = mymax(array[29], array[31]);
996 array[29] = tmp;
997 tmp = mymin(array[32], array[34]);
998 array[34] = mymax(array[32], array[34]);
999 array[32] = tmp;
1000 tmp = mymin(array[33], array[35]);
1001 array[35] = mymax(array[33], array[35]);
1002 array[33] = tmp;
1003 tmp = mymin(array[36], array[38]);
1004 array[38] = mymax(array[36], array[38]);
1005 array[36] = tmp;
1006 tmp = mymin(array[37], array[39]);
1007 array[39] = mymax(array[37], array[39]);
1008 array[37] = tmp;
1009 tmp = mymin(array[40], array[42]);
1010 array[42] = mymax(array[40], array[42]);
1011 array[40] = tmp;
1012 tmp = mymin(array[41], array[43]);
1013 array[43] = mymax(array[41], array[43]);
1014 array[41] = tmp;
1015 tmp = mymin(array[44], array[46]);
1016 array[46] = mymax(array[44], array[46]);
1017 array[44] = tmp;
1018 tmp = mymin(array[45], array[47]);
1019 array[47] = mymax(array[45], array[47]);
1020 array[45] = tmp;
1021 tmp = mymin(array[2], array[32]);
1022 array[32] = mymax(array[2], array[32]);
1023 array[2] = tmp;
1024 tmp = mymin(array[3], array[33]);
1025 array[33] = mymax(array[3], array[33]);
1026 array[3] = tmp;
1027 tmp = mymin(array[6], array[36]);
1028 array[36] = mymax(array[6], array[36]);
1029 array[6] = tmp;
1030 tmp = mymin(array[7], array[37]);
1031 array[37] = mymax(array[7], array[37]);
1032 array[7] = tmp;
1033 tmp = mymin(array[10], array[40]);
1034 array[40] = mymax(array[10], array[40]);
1035 array[10] = tmp;
1036 tmp = mymin(array[11], array[41]);
1037 array[41] = mymax(array[11], array[41]);
1038 array[11] = tmp;
1039 tmp = mymin(array[14], array[44]);
1040 array[44] = mymax(array[14], array[44]);
1041 array[14] = tmp;
1042 tmp = mymin(array[15], array[45]);
1043 array[45] = mymax(array[15], array[45]);
1044 array[15] = tmp;
1045 tmp = mymin(array[18], array[48]);
1046 array[48] = mymax(array[18], array[48]);
1047 array[18] = tmp;
1048 tmp = mymin(array[2], array[16]);
1049 array[16] = mymax(array[2], array[16]);
1050 array[2] = tmp;
1051 tmp = mymin(array[3], array[17]);
1052 array[17] = mymax(array[3], array[17]);
1053 array[3] = tmp;
1054 tmp = mymin(array[6], array[20]);
1055 array[20] = mymax(array[6], array[20]);
1056 array[6] = tmp;
1057 tmp = mymin(array[7], array[21]);
1058 array[21] = mymax(array[7], array[21]);
1059 array[7] = tmp;
1060 tmp = mymin(array[10], array[24]);
1061 array[24] = mymax(array[10], array[24]);
1062 array[10] = tmp;
1063 tmp = mymin(array[11], array[25]);
1064 array[25] = mymax(array[11], array[25]);
1065 array[11] = tmp;
1066 tmp = mymin(array[14], array[28]);
1067 array[28] = mymax(array[14], array[28]);
1068 array[14] = tmp;
1069 tmp = mymin(array[15], array[29]);
1070 array[29] = mymax(array[15], array[29]);
1071 array[15] = tmp;
1072 tmp = mymin(array[18], array[32]);
1073 array[32] = mymax(array[18], array[32]);
1074 array[18] = tmp;
1075 tmp = mymin(array[19], array[33]);
1076 array[33] = mymax(array[19], array[33]);
1077 array[19] = tmp;
1078 tmp = mymin(array[22], array[36]);
1079 array[36] = mymax(array[22], array[36]);
1080 array[22] = tmp;
1081 tmp = mymin(array[23], array[37]);
1082 array[37] = mymax(array[23], array[37]);
1083 array[23] = tmp;
1084 tmp = mymin(array[26], array[40]);
1085 array[40] = mymax(array[26], array[40]);
1086 array[26] = tmp;
1087 tmp = mymin(array[27], array[41]);
1088 array[41] = mymax(array[27], array[41]);
1089 array[27] = tmp;
1090 tmp = mymin(array[30], array[44]);
1091 array[44] = mymax(array[30], array[44]);
1092 array[30] = tmp;
1093 tmp = mymin(array[31], array[45]);
1094 array[45] = mymax(array[31], array[45]);
1095 array[31] = tmp;
1096 tmp = mymin(array[34], array[48]);
1097 array[48] = mymax(array[34], array[48]);
1098 array[34] = tmp;
1099 tmp = mymin(array[2], array[8]);
1100 array[8] = mymax(array[2], array[8]);
1101 array[2] = tmp;
1102 tmp = mymin(array[3], array[9]);
1103 array[9] = mymax(array[3], array[9]);
1104 array[3] = tmp;
1105 tmp = mymin(array[6], array[12]);
1106 array[12] = mymax(array[6], array[12]);
1107 array[6] = tmp;
1108 tmp = mymin(array[7], array[13]);
1109 array[13] = mymax(array[7], array[13]);
1110 array[7] = tmp;
1111 tmp = mymin(array[10], array[16]);
1112 array[16] = mymax(array[10], array[16]);
1113 array[10] = tmp;
1114 tmp = mymin(array[11], array[17]);
1115 array[17] = mymax(array[11], array[17]);
1116 array[11] = tmp;
1117 tmp = mymin(array[14], array[20]);
1118 array[20] = mymax(array[14], array[20]);
1119 array[14] = tmp;
1120 tmp = mymin(array[15], array[21]);
1121 array[21] = mymax(array[15], array[21]);
1122 array[15] = tmp;
1123 tmp = mymin(array[18], array[24]);
1124 array[24] = mymax(array[18], array[24]);
1125 array[18] = tmp;
1126 tmp = mymin(array[19], array[25]);
1127 array[25] = mymax(array[19], array[25]);
1128 array[19] = tmp;
1129 tmp = mymin(array[22], array[28]);
1130 array[28] = mymax(array[22], array[28]);
1131 array[22] = tmp;
1132 tmp = mymin(array[23], array[29]);
1133 array[29] = mymax(array[23], array[29]);
1134 array[23] = tmp;
1135 tmp = mymin(array[26], array[32]);
1136 array[32] = mymax(array[26], array[32]);
1137 array[26] = tmp;
1138 tmp = mymin(array[27], array[33]);
1139 array[33] = mymax(array[27], array[33]);
1140 array[27] = tmp;
1141 tmp = mymin(array[30], array[36]);
1142 array[36] = mymax(array[30], array[36]);
1143 array[30] = tmp;
1144 tmp = mymin(array[31], array[37]);
1145 array[37] = mymax(array[31], array[37]);
1146 array[31] = tmp;
1147 tmp = mymin(array[34], array[40]);
1148 array[40] = mymax(array[34], array[40]);
1149 array[34] = tmp;
1150 tmp = mymin(array[35], array[41]);
1151 array[41] = mymax(array[35], array[41]);
1152 array[35] = tmp;
1153 tmp = mymin(array[38], array[44]);
1154 array[44] = mymax(array[38], array[44]);
1155 array[38] = tmp;
1156 tmp = mymin(array[39], array[45]);
1157 array[45] = mymax(array[39], array[45]);
1158 array[39] = tmp;
1159 tmp = mymin(array[42], array[48]);
1160 array[48] = mymax(array[42], array[48]);
1161 array[42] = tmp;
1162 tmp = mymin(array[2], array[4]);
1163 array[4] = mymax(array[2], array[4]);
1164 array[2] = tmp;
1165 tmp = mymin(array[3], array[5]);
1166 array[5] = mymax(array[3], array[5]);
1167 array[3] = tmp;
1168 tmp = mymin(array[6], array[8]);
1169 array[8] = mymax(array[6], array[8]);
1170 array[6] = tmp;
1171 tmp = mymin(array[7], array[9]);
1172 array[9] = mymax(array[7], array[9]);
1173 array[7] = tmp;
1174 tmp = mymin(array[10], array[12]);
1175 array[12] = mymax(array[10], array[12]);
1176 array[10] = tmp;
1177 tmp = mymin(array[11], array[13]);
1178 array[13] = mymax(array[11], array[13]);
1179 array[11] = tmp;
1180 tmp = mymin(array[14], array[16]);
1181 array[16] = mymax(array[14], array[16]);
1182 array[14] = tmp;
1183 tmp = mymin(array[15], array[17]);
1184 array[17] = mymax(array[15], array[17]);
1185 array[15] = tmp;
1186 tmp = mymin(array[18], array[20]);
1187 array[20] = mymax(array[18], array[20]);
1188 array[18] = tmp;
1189 tmp = mymin(array[19], array[21]);
1190 array[21] = mymax(array[19], array[21]);
1191 array[19] = tmp;
1192 tmp = mymin(array[22], array[24]);
1193 array[24] = mymax(array[22], array[24]);
1194 array[22] = tmp;
1195 tmp = mymin(array[23], array[25]);
1196 array[25] = mymax(array[23], array[25]);
1197 array[23] = tmp;
1198 tmp = mymin(array[26], array[28]);
1199 array[28] = mymax(array[26], array[28]);
1200 array[26] = tmp;
1201 tmp = mymin(array[27], array[29]);
1202 array[29] = mymax(array[27], array[29]);
1203 array[27] = tmp;
1204 tmp = mymin(array[30], array[32]);
1205 array[32] = mymax(array[30], array[32]);
1206 array[30] = tmp;
1207 tmp = mymin(array[31], array[33]);
1208 array[33] = mymax(array[31], array[33]);
1209 array[31] = tmp;
1210 tmp = mymin(array[34], array[36]);
1211 array[36] = mymax(array[34], array[36]);
1212 array[34] = tmp;
1213 tmp = mymin(array[35], array[37]);
1214 array[37] = mymax(array[35], array[37]);
1215 array[35] = tmp;
1216 tmp = mymin(array[38], array[40]);
1217 array[40] = mymax(array[38], array[40]);
1218 array[38] = tmp;
1219 tmp = mymin(array[39], array[41]);
1220 array[41] = mymax(array[39], array[41]);
1221 array[39] = tmp;
1222 tmp = mymin(array[42], array[44]);
1223 array[44] = mymax(array[42], array[44]);
1224 array[42] = tmp;
1225 tmp = mymin(array[43], array[45]);
1226 array[45] = mymax(array[43], array[45]);
1227 array[43] = tmp;
1228 tmp = mymin(array[46], array[48]);
1229 array[48] = mymax(array[46], array[48]);
1230 array[46] = tmp;
1231 array[1] = mymax(array[0], array[1]);
1232 array[3] = mymax(array[2], array[3]);
1233 array[5] = mymax(array[4], array[5]);
1234 array[7] = mymax(array[6], array[7]);
1235 array[9] = mymax(array[8], array[9]);
1236 array[11] = mymax(array[10], array[11]);
1237 array[13] = mymax(array[12], array[13]);
1238 array[15] = mymax(array[14], array[15]);
1239 array[17] = mymax(array[16], array[17]);
1240 array[19] = mymax(array[18], array[19]);
1241 array[21] = mymax(array[20], array[21]);
1242 array[23] = mymax(array[22], array[23]);
1243 array[24] = mymin(array[24], array[25]);
1244 array[26] = mymin(array[26], array[27]);
1245 array[28] = mymin(array[28], array[29]);
1246 array[30] = mymin(array[30], array[31]);
1247 array[32] = mymin(array[32], array[33]);
1248 array[34] = mymin(array[34], array[35]);
1249 array[36] = mymin(array[36], array[37]);
1250 array[38] = mymin(array[38], array[39]);
1251 array[40] = mymin(array[40], array[41]);
1252 array[42] = mymin(array[42], array[43]);
1253 array[44] = mymin(array[44], array[45]);
1254 array[46] = mymin(array[46], array[47]);
1255 array[32] = mymax(array[1], array[32]);
1256 array[34] = mymax(array[3], array[34]);
1257 array[36] = mymax(array[5], array[36]);
1258 array[38] = mymax(array[7], array[38]);
1259 array[9] = mymin(array[9], array[40]);
1260 array[11] = mymin(array[11], array[42]);
1261 array[13] = mymin(array[13], array[44]);
1262 array[15] = mymin(array[15], array[46]);
1263 array[17] = mymin(array[17], array[48]);
1264 array[24] = mymax(array[9], array[24]);
1265 array[26] = mymax(array[11], array[26]);
1266 array[28] = mymax(array[13], array[28]);
1267 array[30] = mymax(array[15], array[30]);
1268 array[17] = mymin(array[17], array[32]);
1269 array[19] = mymin(array[19], array[34]);
1270 array[21] = mymin(array[21], array[36]);
1271 array[23] = mymin(array[23], array[38]);
1272 array[24] = mymax(array[17], array[24]);
1273 array[26] = mymax(array[19], array[26]);
1274 array[21] = mymin(array[21], array[28]);
1275 array[23] = mymin(array[23], array[30]);
1276 array[24] = mymax(array[21], array[24]);
1277 array[23] = mymin(array[23], array[26]);
1278 return mymax(array[23], array[24]);
1279 }
1280
1281
median9x9(float * array)1282 float median9x9(float* array)
1283 {
1284 float tmp = mymin(array[0], array[64]);
1285 array[64] = mymax(array[0], array[64]);
1286 array[0] = tmp;
1287 tmp = mymin(array[1], array[65]);
1288 array[65] = mymax(array[1], array[65]);
1289 array[1] = tmp;
1290 tmp = mymin(array[2], array[66]);
1291 array[66] = mymax(array[2], array[66]);
1292 array[2] = tmp;
1293 tmp = mymin(array[3], array[67]);
1294 array[67] = mymax(array[3], array[67]);
1295 array[3] = tmp;
1296 tmp = mymin(array[4], array[68]);
1297 array[68] = mymax(array[4], array[68]);
1298 array[4] = tmp;
1299 tmp = mymin(array[5], array[69]);
1300 array[69] = mymax(array[5], array[69]);
1301 array[5] = tmp;
1302 tmp = mymin(array[6], array[70]);
1303 array[70] = mymax(array[6], array[70]);
1304 array[6] = tmp;
1305 tmp = mymin(array[7], array[71]);
1306 array[71] = mymax(array[7], array[71]);
1307 array[7] = tmp;
1308 tmp = mymin(array[8], array[72]);
1309 array[72] = mymax(array[8], array[72]);
1310 array[8] = tmp;
1311 tmp = mymin(array[9], array[73]);
1312 array[73] = mymax(array[9], array[73]);
1313 array[9] = tmp;
1314 tmp = mymin(array[10], array[74]);
1315 array[74] = mymax(array[10], array[74]);
1316 array[10] = tmp;
1317 tmp = mymin(array[11], array[75]);
1318 array[75] = mymax(array[11], array[75]);
1319 array[11] = tmp;
1320 tmp = mymin(array[12], array[76]);
1321 array[76] = mymax(array[12], array[76]);
1322 array[12] = tmp;
1323 tmp = mymin(array[13], array[77]);
1324 array[77] = mymax(array[13], array[77]);
1325 array[13] = tmp;
1326 tmp = mymin(array[14], array[78]);
1327 array[78] = mymax(array[14], array[78]);
1328 array[14] = tmp;
1329 tmp = mymin(array[15], array[79]);
1330 array[79] = mymax(array[15], array[79]);
1331 array[15] = tmp;
1332 tmp = mymin(array[16], array[80]);
1333 array[80] = mymax(array[16], array[80]);
1334 array[16] = tmp;
1335 tmp = mymin(array[0], array[32]);
1336 array[32] = mymax(array[0], array[32]);
1337 array[0] = tmp;
1338 tmp = mymin(array[1], array[33]);
1339 array[33] = mymax(array[1], array[33]);
1340 array[1] = tmp;
1341 tmp = mymin(array[2], array[34]);
1342 array[34] = mymax(array[2], array[34]);
1343 array[2] = tmp;
1344 tmp = mymin(array[3], array[35]);
1345 array[35] = mymax(array[3], array[35]);
1346 array[3] = tmp;
1347 tmp = mymin(array[4], array[36]);
1348 array[36] = mymax(array[4], array[36]);
1349 array[4] = tmp;
1350 tmp = mymin(array[5], array[37]);
1351 array[37] = mymax(array[5], array[37]);
1352 array[5] = tmp;
1353 tmp = mymin(array[6], array[38]);
1354 array[38] = mymax(array[6], array[38]);
1355 array[6] = tmp;
1356 tmp = mymin(array[7], array[39]);
1357 array[39] = mymax(array[7], array[39]);
1358 array[7] = tmp;
1359 tmp = mymin(array[8], array[40]);
1360 array[40] = mymax(array[8], array[40]);
1361 array[8] = tmp;
1362 tmp = mymin(array[9], array[41]);
1363 array[41] = mymax(array[9], array[41]);
1364 array[9] = tmp;
1365 tmp = mymin(array[10], array[42]);
1366 array[42] = mymax(array[10], array[42]);
1367 array[10] = tmp;
1368 tmp = mymin(array[11], array[43]);
1369 array[43] = mymax(array[11], array[43]);
1370 array[11] = tmp;
1371 tmp = mymin(array[12], array[44]);
1372 array[44] = mymax(array[12], array[44]);
1373 array[12] = tmp;
1374 tmp = mymin(array[13], array[45]);
1375 array[45] = mymax(array[13], array[45]);
1376 array[13] = tmp;
1377 tmp = mymin(array[14], array[46]);
1378 array[46] = mymax(array[14], array[46]);
1379 array[14] = tmp;
1380 tmp = mymin(array[15], array[47]);
1381 array[47] = mymax(array[15], array[47]);
1382 array[15] = tmp;
1383 tmp = mymin(array[16], array[48]);
1384 array[48] = mymax(array[16], array[48]);
1385 array[16] = tmp;
1386 tmp = mymin(array[17], array[49]);
1387 array[49] = mymax(array[17], array[49]);
1388 array[17] = tmp;
1389 tmp = mymin(array[18], array[50]);
1390 array[50] = mymax(array[18], array[50]);
1391 array[18] = tmp;
1392 tmp = mymin(array[19], array[51]);
1393 array[51] = mymax(array[19], array[51]);
1394 array[19] = tmp;
1395 tmp = mymin(array[20], array[52]);
1396 array[52] = mymax(array[20], array[52]);
1397 array[20] = tmp;
1398 tmp = mymin(array[21], array[53]);
1399 array[53] = mymax(array[21], array[53]);
1400 array[21] = tmp;
1401 tmp = mymin(array[22], array[54]);
1402 array[54] = mymax(array[22], array[54]);
1403 array[22] = tmp;
1404 tmp = mymin(array[23], array[55]);
1405 array[55] = mymax(array[23], array[55]);
1406 array[23] = tmp;
1407 tmp = mymin(array[24], array[56]);
1408 array[56] = mymax(array[24], array[56]);
1409 array[24] = tmp;
1410 tmp = mymin(array[25], array[57]);
1411 array[57] = mymax(array[25], array[57]);
1412 array[25] = tmp;
1413 tmp = mymin(array[26], array[58]);
1414 array[58] = mymax(array[26], array[58]);
1415 array[26] = tmp;
1416 tmp = mymin(array[27], array[59]);
1417 array[59] = mymax(array[27], array[59]);
1418 array[27] = tmp;
1419 tmp = mymin(array[28], array[60]);
1420 array[60] = mymax(array[28], array[60]);
1421 array[28] = tmp;
1422 tmp = mymin(array[29], array[61]);
1423 array[61] = mymax(array[29], array[61]);
1424 array[29] = tmp;
1425 tmp = mymin(array[30], array[62]);
1426 array[62] = mymax(array[30], array[62]);
1427 array[30] = tmp;
1428 tmp = mymin(array[31], array[63]);
1429 array[63] = mymax(array[31], array[63]);
1430 array[31] = tmp;
1431 tmp = mymin(array[32], array[64]);
1432 array[64] = mymax(array[32], array[64]);
1433 array[32] = tmp;
1434 tmp = mymin(array[33], array[65]);
1435 array[65] = mymax(array[33], array[65]);
1436 array[33] = tmp;
1437 tmp = mymin(array[34], array[66]);
1438 array[66] = mymax(array[34], array[66]);
1439 array[34] = tmp;
1440 tmp = mymin(array[35], array[67]);
1441 array[67] = mymax(array[35], array[67]);
1442 array[35] = tmp;
1443 tmp = mymin(array[36], array[68]);
1444 array[68] = mymax(array[36], array[68]);
1445 array[36] = tmp;
1446 tmp = mymin(array[37], array[69]);
1447 array[69] = mymax(array[37], array[69]);
1448 array[37] = tmp;
1449 tmp = mymin(array[38], array[70]);
1450 array[70] = mymax(array[38], array[70]);
1451 array[38] = tmp;
1452 tmp = mymin(array[39], array[71]);
1453 array[71] = mymax(array[39], array[71]);
1454 array[39] = tmp;
1455 tmp = mymin(array[40], array[72]);
1456 array[72] = mymax(array[40], array[72]);
1457 array[40] = tmp;
1458 tmp = mymin(array[41], array[73]);
1459 array[73] = mymax(array[41], array[73]);
1460 array[41] = tmp;
1461 tmp = mymin(array[42], array[74]);
1462 array[74] = mymax(array[42], array[74]);
1463 array[42] = tmp;
1464 tmp = mymin(array[43], array[75]);
1465 array[75] = mymax(array[43], array[75]);
1466 array[43] = tmp;
1467 tmp = mymin(array[44], array[76]);
1468 array[76] = mymax(array[44], array[76]);
1469 array[44] = tmp;
1470 tmp = mymin(array[45], array[77]);
1471 array[77] = mymax(array[45], array[77]);
1472 array[45] = tmp;
1473 tmp = mymin(array[46], array[78]);
1474 array[78] = mymax(array[46], array[78]);
1475 array[46] = tmp;
1476 tmp = mymin(array[47], array[79]);
1477 array[79] = mymax(array[47], array[79]);
1478 array[47] = tmp;
1479 tmp = mymin(array[48], array[80]);
1480 array[80] = mymax(array[48], array[80]);
1481 array[48] = tmp;
1482 tmp = mymin(array[0], array[16]);
1483 array[16] = mymax(array[0], array[16]);
1484 array[0] = tmp;
1485 tmp = mymin(array[1], array[17]);
1486 array[17] = mymax(array[1], array[17]);
1487 array[1] = tmp;
1488 tmp = mymin(array[2], array[18]);
1489 array[18] = mymax(array[2], array[18]);
1490 array[2] = tmp;
1491 tmp = mymin(array[3], array[19]);
1492 array[19] = mymax(array[3], array[19]);
1493 array[3] = tmp;
1494 tmp = mymin(array[4], array[20]);
1495 array[20] = mymax(array[4], array[20]);
1496 array[4] = tmp;
1497 tmp = mymin(array[5], array[21]);
1498 array[21] = mymax(array[5], array[21]);
1499 array[5] = tmp;
1500 tmp = mymin(array[6], array[22]);
1501 array[22] = mymax(array[6], array[22]);
1502 array[6] = tmp;
1503 tmp = mymin(array[7], array[23]);
1504 array[23] = mymax(array[7], array[23]);
1505 array[7] = tmp;
1506 tmp = mymin(array[8], array[24]);
1507 array[24] = mymax(array[8], array[24]);
1508 array[8] = tmp;
1509 tmp = mymin(array[9], array[25]);
1510 array[25] = mymax(array[9], array[25]);
1511 array[9] = tmp;
1512 tmp = mymin(array[10], array[26]);
1513 array[26] = mymax(array[10], array[26]);
1514 array[10] = tmp;
1515 tmp = mymin(array[11], array[27]);
1516 array[27] = mymax(array[11], array[27]);
1517 array[11] = tmp;
1518 tmp = mymin(array[12], array[28]);
1519 array[28] = mymax(array[12], array[28]);
1520 array[12] = tmp;
1521 tmp = mymin(array[13], array[29]);
1522 array[29] = mymax(array[13], array[29]);
1523 array[13] = tmp;
1524 tmp = mymin(array[14], array[30]);
1525 array[30] = mymax(array[14], array[30]);
1526 array[14] = tmp;
1527 tmp = mymin(array[15], array[31]);
1528 array[31] = mymax(array[15], array[31]);
1529 array[15] = tmp;
1530 tmp = mymin(array[32], array[48]);
1531 array[48] = mymax(array[32], array[48]);
1532 array[32] = tmp;
1533 tmp = mymin(array[33], array[49]);
1534 array[49] = mymax(array[33], array[49]);
1535 array[33] = tmp;
1536 tmp = mymin(array[34], array[50]);
1537 array[50] = mymax(array[34], array[50]);
1538 array[34] = tmp;
1539 tmp = mymin(array[35], array[51]);
1540 array[51] = mymax(array[35], array[51]);
1541 array[35] = tmp;
1542 tmp = mymin(array[36], array[52]);
1543 array[52] = mymax(array[36], array[52]);
1544 array[36] = tmp;
1545 tmp = mymin(array[37], array[53]);
1546 array[53] = mymax(array[37], array[53]);
1547 array[37] = tmp;
1548 tmp = mymin(array[38], array[54]);
1549 array[54] = mymax(array[38], array[54]);
1550 array[38] = tmp;
1551 tmp = mymin(array[39], array[55]);
1552 array[55] = mymax(array[39], array[55]);
1553 array[39] = tmp;
1554 tmp = mymin(array[40], array[56]);
1555 array[56] = mymax(array[40], array[56]);
1556 array[40] = tmp;
1557 tmp = mymin(array[41], array[57]);
1558 array[57] = mymax(array[41], array[57]);
1559 array[41] = tmp;
1560 tmp = mymin(array[42], array[58]);
1561 array[58] = mymax(array[42], array[58]);
1562 array[42] = tmp;
1563 tmp = mymin(array[43], array[59]);
1564 array[59] = mymax(array[43], array[59]);
1565 array[43] = tmp;
1566 tmp = mymin(array[44], array[60]);
1567 array[60] = mymax(array[44], array[60]);
1568 array[44] = tmp;
1569 tmp = mymin(array[45], array[61]);
1570 array[61] = mymax(array[45], array[61]);
1571 array[45] = tmp;
1572 tmp = mymin(array[46], array[62]);
1573 array[62] = mymax(array[46], array[62]);
1574 array[46] = tmp;
1575 tmp = mymin(array[47], array[63]);
1576 array[63] = mymax(array[47], array[63]);
1577 array[47] = tmp;
1578 tmp = mymin(array[64], array[80]);
1579 array[80] = mymax(array[64], array[80]);
1580 array[64] = tmp;
1581 tmp = mymin(array[16], array[64]);
1582 array[64] = mymax(array[16], array[64]);
1583 array[16] = tmp;
1584 tmp = mymin(array[17], array[65]);
1585 array[65] = mymax(array[17], array[65]);
1586 array[17] = tmp;
1587 tmp = mymin(array[18], array[66]);
1588 array[66] = mymax(array[18], array[66]);
1589 array[18] = tmp;
1590 tmp = mymin(array[19], array[67]);
1591 array[67] = mymax(array[19], array[67]);
1592 array[19] = tmp;
1593 tmp = mymin(array[20], array[68]);
1594 array[68] = mymax(array[20], array[68]);
1595 array[20] = tmp;
1596 tmp = mymin(array[21], array[69]);
1597 array[69] = mymax(array[21], array[69]);
1598 array[21] = tmp;
1599 tmp = mymin(array[22], array[70]);
1600 array[70] = mymax(array[22], array[70]);
1601 array[22] = tmp;
1602 tmp = mymin(array[23], array[71]);
1603 array[71] = mymax(array[23], array[71]);
1604 array[23] = tmp;
1605 tmp = mymin(array[24], array[72]);
1606 array[72] = mymax(array[24], array[72]);
1607 array[24] = tmp;
1608 tmp = mymin(array[25], array[73]);
1609 array[73] = mymax(array[25], array[73]);
1610 array[25] = tmp;
1611 tmp = mymin(array[26], array[74]);
1612 array[74] = mymax(array[26], array[74]);
1613 array[26] = tmp;
1614 tmp = mymin(array[27], array[75]);
1615 array[75] = mymax(array[27], array[75]);
1616 array[27] = tmp;
1617 tmp = mymin(array[28], array[76]);
1618 array[76] = mymax(array[28], array[76]);
1619 array[28] = tmp;
1620 tmp = mymin(array[29], array[77]);
1621 array[77] = mymax(array[29], array[77]);
1622 array[29] = tmp;
1623 tmp = mymin(array[30], array[78]);
1624 array[78] = mymax(array[30], array[78]);
1625 array[30] = tmp;
1626 tmp = mymin(array[31], array[79]);
1627 array[79] = mymax(array[31], array[79]);
1628 array[31] = tmp;
1629 tmp = mymin(array[16], array[32]);
1630 array[32] = mymax(array[16], array[32]);
1631 array[16] = tmp;
1632 tmp = mymin(array[17], array[33]);
1633 array[33] = mymax(array[17], array[33]);
1634 array[17] = tmp;
1635 tmp = mymin(array[18], array[34]);
1636 array[34] = mymax(array[18], array[34]);
1637 array[18] = tmp;
1638 tmp = mymin(array[19], array[35]);
1639 array[35] = mymax(array[19], array[35]);
1640 array[19] = tmp;
1641 tmp = mymin(array[20], array[36]);
1642 array[36] = mymax(array[20], array[36]);
1643 array[20] = tmp;
1644 tmp = mymin(array[21], array[37]);
1645 array[37] = mymax(array[21], array[37]);
1646 array[21] = tmp;
1647 tmp = mymin(array[22], array[38]);
1648 array[38] = mymax(array[22], array[38]);
1649 array[22] = tmp;
1650 tmp = mymin(array[23], array[39]);
1651 array[39] = mymax(array[23], array[39]);
1652 array[23] = tmp;
1653 tmp = mymin(array[24], array[40]);
1654 array[40] = mymax(array[24], array[40]);
1655 array[24] = tmp;
1656 tmp = mymin(array[25], array[41]);
1657 array[41] = mymax(array[25], array[41]);
1658 array[25] = tmp;
1659 tmp = mymin(array[26], array[42]);
1660 array[42] = mymax(array[26], array[42]);
1661 array[26] = tmp;
1662 tmp = mymin(array[27], array[43]);
1663 array[43] = mymax(array[27], array[43]);
1664 array[27] = tmp;
1665 tmp = mymin(array[28], array[44]);
1666 array[44] = mymax(array[28], array[44]);
1667 array[28] = tmp;
1668 tmp = mymin(array[29], array[45]);
1669 array[45] = mymax(array[29], array[45]);
1670 array[29] = tmp;
1671 tmp = mymin(array[30], array[46]);
1672 array[46] = mymax(array[30], array[46]);
1673 array[30] = tmp;
1674 tmp = mymin(array[31], array[47]);
1675 array[47] = mymax(array[31], array[47]);
1676 array[31] = tmp;
1677 tmp = mymin(array[48], array[64]);
1678 array[64] = mymax(array[48], array[64]);
1679 array[48] = tmp;
1680 tmp = mymin(array[49], array[65]);
1681 array[65] = mymax(array[49], array[65]);
1682 array[49] = tmp;
1683 tmp = mymin(array[50], array[66]);
1684 array[66] = mymax(array[50], array[66]);
1685 array[50] = tmp;
1686 tmp = mymin(array[51], array[67]);
1687 array[67] = mymax(array[51], array[67]);
1688 array[51] = tmp;
1689 tmp = mymin(array[52], array[68]);
1690 array[68] = mymax(array[52], array[68]);
1691 array[52] = tmp;
1692 tmp = mymin(array[53], array[69]);
1693 array[69] = mymax(array[53], array[69]);
1694 array[53] = tmp;
1695 tmp = mymin(array[54], array[70]);
1696 array[70] = mymax(array[54], array[70]);
1697 array[54] = tmp;
1698 tmp = mymin(array[55], array[71]);
1699 array[71] = mymax(array[55], array[71]);
1700 array[55] = tmp;
1701 tmp = mymin(array[56], array[72]);
1702 array[72] = mymax(array[56], array[72]);
1703 array[56] = tmp;
1704 tmp = mymin(array[57], array[73]);
1705 array[73] = mymax(array[57], array[73]);
1706 array[57] = tmp;
1707 tmp = mymin(array[58], array[74]);
1708 array[74] = mymax(array[58], array[74]);
1709 array[58] = tmp;
1710 tmp = mymin(array[59], array[75]);
1711 array[75] = mymax(array[59], array[75]);
1712 array[59] = tmp;
1713 tmp = mymin(array[60], array[76]);
1714 array[76] = mymax(array[60], array[76]);
1715 array[60] = tmp;
1716 tmp = mymin(array[61], array[77]);
1717 array[77] = mymax(array[61], array[77]);
1718 array[61] = tmp;
1719 tmp = mymin(array[62], array[78]);
1720 array[78] = mymax(array[62], array[78]);
1721 array[62] = tmp;
1722 tmp = mymin(array[63], array[79]);
1723 array[79] = mymax(array[63], array[79]);
1724 array[63] = tmp;
1725 tmp = mymin(array[0], array[8]);
1726 array[8] = mymax(array[0], array[8]);
1727 array[0] = tmp;
1728 tmp = mymin(array[1], array[9]);
1729 array[9] = mymax(array[1], array[9]);
1730 array[1] = tmp;
1731 tmp = mymin(array[2], array[10]);
1732 array[10] = mymax(array[2], array[10]);
1733 array[2] = tmp;
1734 tmp = mymin(array[3], array[11]);
1735 array[11] = mymax(array[3], array[11]);
1736 array[3] = tmp;
1737 tmp = mymin(array[4], array[12]);
1738 array[12] = mymax(array[4], array[12]);
1739 array[4] = tmp;
1740 tmp = mymin(array[5], array[13]);
1741 array[13] = mymax(array[5], array[13]);
1742 array[5] = tmp;
1743 tmp = mymin(array[6], array[14]);
1744 array[14] = mymax(array[6], array[14]);
1745 array[6] = tmp;
1746 tmp = mymin(array[7], array[15]);
1747 array[15] = mymax(array[7], array[15]);
1748 array[7] = tmp;
1749 tmp = mymin(array[16], array[24]);
1750 array[24] = mymax(array[16], array[24]);
1751 array[16] = tmp;
1752 tmp = mymin(array[17], array[25]);
1753 array[25] = mymax(array[17], array[25]);
1754 array[17] = tmp;
1755 tmp = mymin(array[18], array[26]);
1756 array[26] = mymax(array[18], array[26]);
1757 array[18] = tmp;
1758 tmp = mymin(array[19], array[27]);
1759 array[27] = mymax(array[19], array[27]);
1760 array[19] = tmp;
1761 tmp = mymin(array[20], array[28]);
1762 array[28] = mymax(array[20], array[28]);
1763 array[20] = tmp;
1764 tmp = mymin(array[21], array[29]);
1765 array[29] = mymax(array[21], array[29]);
1766 array[21] = tmp;
1767 tmp = mymin(array[22], array[30]);
1768 array[30] = mymax(array[22], array[30]);
1769 array[22] = tmp;
1770 tmp = mymin(array[23], array[31]);
1771 array[31] = mymax(array[23], array[31]);
1772 array[23] = tmp;
1773 tmp = mymin(array[32], array[40]);
1774 array[40] = mymax(array[32], array[40]);
1775 array[32] = tmp;
1776 tmp = mymin(array[33], array[41]);
1777 array[41] = mymax(array[33], array[41]);
1778 array[33] = tmp;
1779 tmp = mymin(array[34], array[42]);
1780 array[42] = mymax(array[34], array[42]);
1781 array[34] = tmp;
1782 tmp = mymin(array[35], array[43]);
1783 array[43] = mymax(array[35], array[43]);
1784 array[35] = tmp;
1785 tmp = mymin(array[36], array[44]);
1786 array[44] = mymax(array[36], array[44]);
1787 array[36] = tmp;
1788 tmp = mymin(array[37], array[45]);
1789 array[45] = mymax(array[37], array[45]);
1790 array[37] = tmp;
1791 tmp = mymin(array[38], array[46]);
1792 array[46] = mymax(array[38], array[46]);
1793 array[38] = tmp;
1794 tmp = mymin(array[39], array[47]);
1795 array[47] = mymax(array[39], array[47]);
1796 array[39] = tmp;
1797 tmp = mymin(array[48], array[56]);
1798 array[56] = mymax(array[48], array[56]);
1799 array[48] = tmp;
1800 tmp = mymin(array[49], array[57]);
1801 array[57] = mymax(array[49], array[57]);
1802 array[49] = tmp;
1803 tmp = mymin(array[50], array[58]);
1804 array[58] = mymax(array[50], array[58]);
1805 array[50] = tmp;
1806 tmp = mymin(array[51], array[59]);
1807 array[59] = mymax(array[51], array[59]);
1808 array[51] = tmp;
1809 tmp = mymin(array[52], array[60]);
1810 array[60] = mymax(array[52], array[60]);
1811 array[52] = tmp;
1812 tmp = mymin(array[53], array[61]);
1813 array[61] = mymax(array[53], array[61]);
1814 array[53] = tmp;
1815 tmp = mymin(array[54], array[62]);
1816 array[62] = mymax(array[54], array[62]);
1817 array[54] = tmp;
1818 tmp = mymin(array[55], array[63]);
1819 array[63] = mymax(array[55], array[63]);
1820 array[55] = tmp;
1821 tmp = mymin(array[64], array[72]);
1822 array[72] = mymax(array[64], array[72]);
1823 array[64] = tmp;
1824 tmp = mymin(array[65], array[73]);
1825 array[73] = mymax(array[65], array[73]);
1826 array[65] = tmp;
1827 tmp = mymin(array[66], array[74]);
1828 array[74] = mymax(array[66], array[74]);
1829 array[66] = tmp;
1830 tmp = mymin(array[67], array[75]);
1831 array[75] = mymax(array[67], array[75]);
1832 array[67] = tmp;
1833 tmp = mymin(array[68], array[76]);
1834 array[76] = mymax(array[68], array[76]);
1835 array[68] = tmp;
1836 tmp = mymin(array[69], array[77]);
1837 array[77] = mymax(array[69], array[77]);
1838 array[69] = tmp;
1839 tmp = mymin(array[70], array[78]);
1840 array[78] = mymax(array[70], array[78]);
1841 array[70] = tmp;
1842 tmp = mymin(array[71], array[79]);
1843 array[79] = mymax(array[71], array[79]);
1844 array[71] = tmp;
1845 tmp = mymin(array[8], array[64]);
1846 array[64] = mymax(array[8], array[64]);
1847 array[8] = tmp;
1848 tmp = mymin(array[9], array[65]);
1849 array[65] = mymax(array[9], array[65]);
1850 array[9] = tmp;
1851 tmp = mymin(array[10], array[66]);
1852 array[66] = mymax(array[10], array[66]);
1853 array[10] = tmp;
1854 tmp = mymin(array[11], array[67]);
1855 array[67] = mymax(array[11], array[67]);
1856 array[11] = tmp;
1857 tmp = mymin(array[12], array[68]);
1858 array[68] = mymax(array[12], array[68]);
1859 array[12] = tmp;
1860 tmp = mymin(array[13], array[69]);
1861 array[69] = mymax(array[13], array[69]);
1862 array[13] = tmp;
1863 tmp = mymin(array[14], array[70]);
1864 array[70] = mymax(array[14], array[70]);
1865 array[14] = tmp;
1866 tmp = mymin(array[15], array[71]);
1867 array[71] = mymax(array[15], array[71]);
1868 array[15] = tmp;
1869 tmp = mymin(array[24], array[80]);
1870 array[80] = mymax(array[24], array[80]);
1871 array[24] = tmp;
1872 tmp = mymin(array[8], array[32]);
1873 array[32] = mymax(array[8], array[32]);
1874 array[8] = tmp;
1875 tmp = mymin(array[9], array[33]);
1876 array[33] = mymax(array[9], array[33]);
1877 array[9] = tmp;
1878 tmp = mymin(array[10], array[34]);
1879 array[34] = mymax(array[10], array[34]);
1880 array[10] = tmp;
1881 tmp = mymin(array[11], array[35]);
1882 array[35] = mymax(array[11], array[35]);
1883 array[11] = tmp;
1884 tmp = mymin(array[12], array[36]);
1885 array[36] = mymax(array[12], array[36]);
1886 array[12] = tmp;
1887 tmp = mymin(array[13], array[37]);
1888 array[37] = mymax(array[13], array[37]);
1889 array[13] = tmp;
1890 tmp = mymin(array[14], array[38]);
1891 array[38] = mymax(array[14], array[38]);
1892 array[14] = tmp;
1893 tmp = mymin(array[15], array[39]);
1894 array[39] = mymax(array[15], array[39]);
1895 array[15] = tmp;
1896 tmp = mymin(array[24], array[48]);
1897 array[48] = mymax(array[24], array[48]);
1898 array[24] = tmp;
1899 tmp = mymin(array[25], array[49]);
1900 array[49] = mymax(array[25], array[49]);
1901 array[25] = tmp;
1902 tmp = mymin(array[26], array[50]);
1903 array[50] = mymax(array[26], array[50]);
1904 array[26] = tmp;
1905 tmp = mymin(array[27], array[51]);
1906 array[51] = mymax(array[27], array[51]);
1907 array[27] = tmp;
1908 tmp = mymin(array[28], array[52]);
1909 array[52] = mymax(array[28], array[52]);
1910 array[28] = tmp;
1911 tmp = mymin(array[29], array[53]);
1912 array[53] = mymax(array[29], array[53]);
1913 array[29] = tmp;
1914 tmp = mymin(array[30], array[54]);
1915 array[54] = mymax(array[30], array[54]);
1916 array[30] = tmp;
1917 tmp = mymin(array[31], array[55]);
1918 array[55] = mymax(array[31], array[55]);
1919 array[31] = tmp;
1920 tmp = mymin(array[40], array[64]);
1921 array[64] = mymax(array[40], array[64]);
1922 array[40] = tmp;
1923 tmp = mymin(array[41], array[65]);
1924 array[65] = mymax(array[41], array[65]);
1925 array[41] = tmp;
1926 tmp = mymin(array[42], array[66]);
1927 array[66] = mymax(array[42], array[66]);
1928 array[42] = tmp;
1929 tmp = mymin(array[43], array[67]);
1930 array[67] = mymax(array[43], array[67]);
1931 array[43] = tmp;
1932 tmp = mymin(array[44], array[68]);
1933 array[68] = mymax(array[44], array[68]);
1934 array[44] = tmp;
1935 tmp = mymin(array[45], array[69]);
1936 array[69] = mymax(array[45], array[69]);
1937 array[45] = tmp;
1938 tmp = mymin(array[46], array[70]);
1939 array[70] = mymax(array[46], array[70]);
1940 array[46] = tmp;
1941 tmp = mymin(array[47], array[71]);
1942 array[71] = mymax(array[47], array[71]);
1943 array[47] = tmp;
1944 tmp = mymin(array[56], array[80]);
1945 array[80] = mymax(array[56], array[80]);
1946 array[56] = tmp;
1947 tmp = mymin(array[8], array[16]);
1948 array[16] = mymax(array[8], array[16]);
1949 array[8] = tmp;
1950 tmp = mymin(array[9], array[17]);
1951 array[17] = mymax(array[9], array[17]);
1952 array[9] = tmp;
1953 tmp = mymin(array[10], array[18]);
1954 array[18] = mymax(array[10], array[18]);
1955 array[10] = tmp;
1956 tmp = mymin(array[11], array[19]);
1957 array[19] = mymax(array[11], array[19]);
1958 array[11] = tmp;
1959 tmp = mymin(array[12], array[20]);
1960 array[20] = mymax(array[12], array[20]);
1961 array[12] = tmp;
1962 tmp = mymin(array[13], array[21]);
1963 array[21] = mymax(array[13], array[21]);
1964 array[13] = tmp;
1965 tmp = mymin(array[14], array[22]);
1966 array[22] = mymax(array[14], array[22]);
1967 array[14] = tmp;
1968 tmp = mymin(array[15], array[23]);
1969 array[23] = mymax(array[15], array[23]);
1970 array[15] = tmp;
1971 tmp = mymin(array[24], array[32]);
1972 array[32] = mymax(array[24], array[32]);
1973 array[24] = tmp;
1974 tmp = mymin(array[25], array[33]);
1975 array[33] = mymax(array[25], array[33]);
1976 array[25] = tmp;
1977 tmp = mymin(array[26], array[34]);
1978 array[34] = mymax(array[26], array[34]);
1979 array[26] = tmp;
1980 tmp = mymin(array[27], array[35]);
1981 array[35] = mymax(array[27], array[35]);
1982 array[27] = tmp;
1983 tmp = mymin(array[28], array[36]);
1984 array[36] = mymax(array[28], array[36]);
1985 array[28] = tmp;
1986 tmp = mymin(array[29], array[37]);
1987 array[37] = mymax(array[29], array[37]);
1988 array[29] = tmp;
1989 tmp = mymin(array[30], array[38]);
1990 array[38] = mymax(array[30], array[38]);
1991 array[30] = tmp;
1992 tmp = mymin(array[31], array[39]);
1993 array[39] = mymax(array[31], array[39]);
1994 array[31] = tmp;
1995 tmp = mymin(array[40], array[48]);
1996 array[48] = mymax(array[40], array[48]);
1997 array[40] = tmp;
1998 tmp = mymin(array[41], array[49]);
1999 array[49] = mymax(array[41], array[49]);
2000 array[41] = tmp;
2001 tmp = mymin(array[42], array[50]);
2002 array[50] = mymax(array[42], array[50]);
2003 array[42] = tmp;
2004 tmp = mymin(array[43], array[51]);
2005 array[51] = mymax(array[43], array[51]);
2006 array[43] = tmp;
2007 tmp = mymin(array[44], array[52]);
2008 array[52] = mymax(array[44], array[52]);
2009 array[44] = tmp;
2010 tmp = mymin(array[45], array[53]);
2011 array[53] = mymax(array[45], array[53]);
2012 array[45] = tmp;
2013 tmp = mymin(array[46], array[54]);
2014 array[54] = mymax(array[46], array[54]);
2015 array[46] = tmp;
2016 tmp = mymin(array[47], array[55]);
2017 array[55] = mymax(array[47], array[55]);
2018 array[47] = tmp;
2019 tmp = mymin(array[56], array[64]);
2020 array[64] = mymax(array[56], array[64]);
2021 array[56] = tmp;
2022 tmp = mymin(array[57], array[65]);
2023 array[65] = mymax(array[57], array[65]);
2024 array[57] = tmp;
2025 tmp = mymin(array[58], array[66]);
2026 array[66] = mymax(array[58], array[66]);
2027 array[58] = tmp;
2028 tmp = mymin(array[59], array[67]);
2029 array[67] = mymax(array[59], array[67]);
2030 array[59] = tmp;
2031 tmp = mymin(array[60], array[68]);
2032 array[68] = mymax(array[60], array[68]);
2033 array[60] = tmp;
2034 tmp = mymin(array[61], array[69]);
2035 array[69] = mymax(array[61], array[69]);
2036 array[61] = tmp;
2037 tmp = mymin(array[62], array[70]);
2038 array[70] = mymax(array[62], array[70]);
2039 array[62] = tmp;
2040 tmp = mymin(array[63], array[71]);
2041 array[71] = mymax(array[63], array[71]);
2042 array[63] = tmp;
2043 tmp = mymin(array[72], array[80]);
2044 array[80] = mymax(array[72], array[80]);
2045 array[72] = tmp;
2046 tmp = mymin(array[0], array[4]);
2047 array[4] = mymax(array[0], array[4]);
2048 array[0] = tmp;
2049 tmp = mymin(array[1], array[5]);
2050 array[5] = mymax(array[1], array[5]);
2051 array[1] = tmp;
2052 tmp = mymin(array[2], array[6]);
2053 array[6] = mymax(array[2], array[6]);
2054 array[2] = tmp;
2055 tmp = mymin(array[3], array[7]);
2056 array[7] = mymax(array[3], array[7]);
2057 array[3] = tmp;
2058 tmp = mymin(array[8], array[12]);
2059 array[12] = mymax(array[8], array[12]);
2060 array[8] = tmp;
2061 tmp = mymin(array[9], array[13]);
2062 array[13] = mymax(array[9], array[13]);
2063 array[9] = tmp;
2064 tmp = mymin(array[10], array[14]);
2065 array[14] = mymax(array[10], array[14]);
2066 array[10] = tmp;
2067 tmp = mymin(array[11], array[15]);
2068 array[15] = mymax(array[11], array[15]);
2069 array[11] = tmp;
2070 tmp = mymin(array[16], array[20]);
2071 array[20] = mymax(array[16], array[20]);
2072 array[16] = tmp;
2073 tmp = mymin(array[17], array[21]);
2074 array[21] = mymax(array[17], array[21]);
2075 array[17] = tmp;
2076 tmp = mymin(array[18], array[22]);
2077 array[22] = mymax(array[18], array[22]);
2078 array[18] = tmp;
2079 tmp = mymin(array[19], array[23]);
2080 array[23] = mymax(array[19], array[23]);
2081 array[19] = tmp;
2082 tmp = mymin(array[24], array[28]);
2083 array[28] = mymax(array[24], array[28]);
2084 array[24] = tmp;
2085 tmp = mymin(array[25], array[29]);
2086 array[29] = mymax(array[25], array[29]);
2087 array[25] = tmp;
2088 tmp = mymin(array[26], array[30]);
2089 array[30] = mymax(array[26], array[30]);
2090 array[26] = tmp;
2091 tmp = mymin(array[27], array[31]);
2092 array[31] = mymax(array[27], array[31]);
2093 array[27] = tmp;
2094 tmp = mymin(array[32], array[36]);
2095 array[36] = mymax(array[32], array[36]);
2096 array[32] = tmp;
2097 tmp = mymin(array[33], array[37]);
2098 array[37] = mymax(array[33], array[37]);
2099 array[33] = tmp;
2100 tmp = mymin(array[34], array[38]);
2101 array[38] = mymax(array[34], array[38]);
2102 array[34] = tmp;
2103 tmp = mymin(array[35], array[39]);
2104 array[39] = mymax(array[35], array[39]);
2105 array[35] = tmp;
2106 tmp = mymin(array[40], array[44]);
2107 array[44] = mymax(array[40], array[44]);
2108 array[40] = tmp;
2109 tmp = mymin(array[41], array[45]);
2110 array[45] = mymax(array[41], array[45]);
2111 array[41] = tmp;
2112 tmp = mymin(array[42], array[46]);
2113 array[46] = mymax(array[42], array[46]);
2114 array[42] = tmp;
2115 tmp = mymin(array[43], array[47]);
2116 array[47] = mymax(array[43], array[47]);
2117 array[43] = tmp;
2118 tmp = mymin(array[48], array[52]);
2119 array[52] = mymax(array[48], array[52]);
2120 array[48] = tmp;
2121 tmp = mymin(array[49], array[53]);
2122 array[53] = mymax(array[49], array[53]);
2123 array[49] = tmp;
2124 tmp = mymin(array[50], array[54]);
2125 array[54] = mymax(array[50], array[54]);
2126 array[50] = tmp;
2127 tmp = mymin(array[51], array[55]);
2128 array[55] = mymax(array[51], array[55]);
2129 array[51] = tmp;
2130 tmp = mymin(array[56], array[60]);
2131 array[60] = mymax(array[56], array[60]);
2132 array[56] = tmp;
2133 tmp = mymin(array[57], array[61]);
2134 array[61] = mymax(array[57], array[61]);
2135 array[57] = tmp;
2136 tmp = mymin(array[58], array[62]);
2137 array[62] = mymax(array[58], array[62]);
2138 array[58] = tmp;
2139 tmp = mymin(array[59], array[63]);
2140 array[63] = mymax(array[59], array[63]);
2141 array[59] = tmp;
2142 tmp = mymin(array[64], array[68]);
2143 array[68] = mymax(array[64], array[68]);
2144 array[64] = tmp;
2145 tmp = mymin(array[65], array[69]);
2146 array[69] = mymax(array[65], array[69]);
2147 array[65] = tmp;
2148 tmp = mymin(array[66], array[70]);
2149 array[70] = mymax(array[66], array[70]);
2150 array[66] = tmp;
2151 tmp = mymin(array[67], array[71]);
2152 array[71] = mymax(array[67], array[71]);
2153 array[67] = tmp;
2154 tmp = mymin(array[72], array[76]);
2155 array[76] = mymax(array[72], array[76]);
2156 array[72] = tmp;
2157 tmp = mymin(array[73], array[77]);
2158 array[77] = mymax(array[73], array[77]);
2159 array[73] = tmp;
2160 tmp = mymin(array[74], array[78]);
2161 array[78] = mymax(array[74], array[78]);
2162 array[74] = tmp;
2163 tmp = mymin(array[75], array[79]);
2164 array[79] = mymax(array[75], array[79]);
2165 array[75] = tmp;
2166 tmp = mymin(array[4], array[64]);
2167 array[64] = mymax(array[4], array[64]);
2168 array[4] = tmp;
2169 tmp = mymin(array[5], array[65]);
2170 array[65] = mymax(array[5], array[65]);
2171 array[5] = tmp;
2172 tmp = mymin(array[6], array[66]);
2173 array[66] = mymax(array[6], array[66]);
2174 array[6] = tmp;
2175 tmp = mymin(array[7], array[67]);
2176 array[67] = mymax(array[7], array[67]);
2177 array[7] = tmp;
2178 tmp = mymin(array[12], array[72]);
2179 array[72] = mymax(array[12], array[72]);
2180 array[12] = tmp;
2181 tmp = mymin(array[13], array[73]);
2182 array[73] = mymax(array[13], array[73]);
2183 array[13] = tmp;
2184 tmp = mymin(array[14], array[74]);
2185 array[74] = mymax(array[14], array[74]);
2186 array[14] = tmp;
2187 tmp = mymin(array[15], array[75]);
2188 array[75] = mymax(array[15], array[75]);
2189 array[15] = tmp;
2190 tmp = mymin(array[20], array[80]);
2191 array[80] = mymax(array[20], array[80]);
2192 array[20] = tmp;
2193 tmp = mymin(array[4], array[32]);
2194 array[32] = mymax(array[4], array[32]);
2195 array[4] = tmp;
2196 tmp = mymin(array[5], array[33]);
2197 array[33] = mymax(array[5], array[33]);
2198 array[5] = tmp;
2199 tmp = mymin(array[6], array[34]);
2200 array[34] = mymax(array[6], array[34]);
2201 array[6] = tmp;
2202 tmp = mymin(array[7], array[35]);
2203 array[35] = mymax(array[7], array[35]);
2204 array[7] = tmp;
2205 tmp = mymin(array[12], array[40]);
2206 array[40] = mymax(array[12], array[40]);
2207 array[12] = tmp;
2208 tmp = mymin(array[13], array[41]);
2209 array[41] = mymax(array[13], array[41]);
2210 array[13] = tmp;
2211 tmp = mymin(array[14], array[42]);
2212 array[42] = mymax(array[14], array[42]);
2213 array[14] = tmp;
2214 tmp = mymin(array[15], array[43]);
2215 array[43] = mymax(array[15], array[43]);
2216 array[15] = tmp;
2217 tmp = mymin(array[20], array[48]);
2218 array[48] = mymax(array[20], array[48]);
2219 array[20] = tmp;
2220 tmp = mymin(array[21], array[49]);
2221 array[49] = mymax(array[21], array[49]);
2222 array[21] = tmp;
2223 tmp = mymin(array[22], array[50]);
2224 array[50] = mymax(array[22], array[50]);
2225 array[22] = tmp;
2226 tmp = mymin(array[23], array[51]);
2227 array[51] = mymax(array[23], array[51]);
2228 array[23] = tmp;
2229 tmp = mymin(array[28], array[56]);
2230 array[56] = mymax(array[28], array[56]);
2231 array[28] = tmp;
2232 tmp = mymin(array[29], array[57]);
2233 array[57] = mymax(array[29], array[57]);
2234 array[29] = tmp;
2235 tmp = mymin(array[30], array[58]);
2236 array[58] = mymax(array[30], array[58]);
2237 array[30] = tmp;
2238 tmp = mymin(array[31], array[59]);
2239 array[59] = mymax(array[31], array[59]);
2240 array[31] = tmp;
2241 tmp = mymin(array[36], array[64]);
2242 array[64] = mymax(array[36], array[64]);
2243 array[36] = tmp;
2244 tmp = mymin(array[37], array[65]);
2245 array[65] = mymax(array[37], array[65]);
2246 array[37] = tmp;
2247 tmp = mymin(array[38], array[66]);
2248 array[66] = mymax(array[38], array[66]);
2249 array[38] = tmp;
2250 tmp = mymin(array[39], array[67]);
2251 array[67] = mymax(array[39], array[67]);
2252 array[39] = tmp;
2253 tmp = mymin(array[44], array[72]);
2254 array[72] = mymax(array[44], array[72]);
2255 array[44] = tmp;
2256 tmp = mymin(array[45], array[73]);
2257 array[73] = mymax(array[45], array[73]);
2258 array[45] = tmp;
2259 tmp = mymin(array[46], array[74]);
2260 array[74] = mymax(array[46], array[74]);
2261 array[46] = tmp;
2262 tmp = mymin(array[47], array[75]);
2263 array[75] = mymax(array[47], array[75]);
2264 array[47] = tmp;
2265 tmp = mymin(array[52], array[80]);
2266 array[80] = mymax(array[52], array[80]);
2267 array[52] = tmp;
2268 tmp = mymin(array[4], array[16]);
2269 array[16] = mymax(array[4], array[16]);
2270 array[4] = tmp;
2271 tmp = mymin(array[5], array[17]);
2272 array[17] = mymax(array[5], array[17]);
2273 array[5] = tmp;
2274 tmp = mymin(array[6], array[18]);
2275 array[18] = mymax(array[6], array[18]);
2276 array[6] = tmp;
2277 tmp = mymin(array[7], array[19]);
2278 array[19] = mymax(array[7], array[19]);
2279 array[7] = tmp;
2280 tmp = mymin(array[12], array[24]);
2281 array[24] = mymax(array[12], array[24]);
2282 array[12] = tmp;
2283 tmp = mymin(array[13], array[25]);
2284 array[25] = mymax(array[13], array[25]);
2285 array[13] = tmp;
2286 tmp = mymin(array[14], array[26]);
2287 array[26] = mymax(array[14], array[26]);
2288 array[14] = tmp;
2289 tmp = mymin(array[15], array[27]);
2290 array[27] = mymax(array[15], array[27]);
2291 array[15] = tmp;
2292 tmp = mymin(array[20], array[32]);
2293 array[32] = mymax(array[20], array[32]);
2294 array[20] = tmp;
2295 tmp = mymin(array[21], array[33]);
2296 array[33] = mymax(array[21], array[33]);
2297 array[21] = tmp;
2298 tmp = mymin(array[22], array[34]);
2299 array[34] = mymax(array[22], array[34]);
2300 array[22] = tmp;
2301 tmp = mymin(array[23], array[35]);
2302 array[35] = mymax(array[23], array[35]);
2303 array[23] = tmp;
2304 tmp = mymin(array[28], array[40]);
2305 array[40] = mymax(array[28], array[40]);
2306 array[28] = tmp;
2307 tmp = mymin(array[29], array[41]);
2308 array[41] = mymax(array[29], array[41]);
2309 array[29] = tmp;
2310 tmp = mymin(array[30], array[42]);
2311 array[42] = mymax(array[30], array[42]);
2312 array[30] = tmp;
2313 tmp = mymin(array[31], array[43]);
2314 array[43] = mymax(array[31], array[43]);
2315 array[31] = tmp;
2316 tmp = mymin(array[36], array[48]);
2317 array[48] = mymax(array[36], array[48]);
2318 array[36] = tmp;
2319 tmp = mymin(array[37], array[49]);
2320 array[49] = mymax(array[37], array[49]);
2321 array[37] = tmp;
2322 tmp = mymin(array[38], array[50]);
2323 array[50] = mymax(array[38], array[50]);
2324 array[38] = tmp;
2325 tmp = mymin(array[39], array[51]);
2326 array[51] = mymax(array[39], array[51]);
2327 array[39] = tmp;
2328 tmp = mymin(array[44], array[56]);
2329 array[56] = mymax(array[44], array[56]);
2330 array[44] = tmp;
2331 tmp = mymin(array[45], array[57]);
2332 array[57] = mymax(array[45], array[57]);
2333 array[45] = tmp;
2334 tmp = mymin(array[46], array[58]);
2335 array[58] = mymax(array[46], array[58]);
2336 array[46] = tmp;
2337 tmp = mymin(array[47], array[59]);
2338 array[59] = mymax(array[47], array[59]);
2339 array[47] = tmp;
2340 tmp = mymin(array[52], array[64]);
2341 array[64] = mymax(array[52], array[64]);
2342 array[52] = tmp;
2343 tmp = mymin(array[53], array[65]);
2344 array[65] = mymax(array[53], array[65]);
2345 array[53] = tmp;
2346 tmp = mymin(array[54], array[66]);
2347 array[66] = mymax(array[54], array[66]);
2348 array[54] = tmp;
2349 tmp = mymin(array[55], array[67]);
2350 array[67] = mymax(array[55], array[67]);
2351 array[55] = tmp;
2352 tmp = mymin(array[60], array[72]);
2353 array[72] = mymax(array[60], array[72]);
2354 array[60] = tmp;
2355 tmp = mymin(array[61], array[73]);
2356 array[73] = mymax(array[61], array[73]);
2357 array[61] = tmp;
2358 tmp = mymin(array[62], array[74]);
2359 array[74] = mymax(array[62], array[74]);
2360 array[62] = tmp;
2361 tmp = mymin(array[63], array[75]);
2362 array[75] = mymax(array[63], array[75]);
2363 array[63] = tmp;
2364 tmp = mymin(array[68], array[80]);
2365 array[80] = mymax(array[68], array[80]);
2366 array[68] = tmp;
2367 tmp = mymin(array[4], array[8]);
2368 array[8] = mymax(array[4], array[8]);
2369 array[4] = tmp;
2370 tmp = mymin(array[5], array[9]);
2371 array[9] = mymax(array[5], array[9]);
2372 array[5] = tmp;
2373 tmp = mymin(array[6], array[10]);
2374 array[10] = mymax(array[6], array[10]);
2375 array[6] = tmp;
2376 tmp = mymin(array[7], array[11]);
2377 array[11] = mymax(array[7], array[11]);
2378 array[7] = tmp;
2379 tmp = mymin(array[12], array[16]);
2380 array[16] = mymax(array[12], array[16]);
2381 array[12] = tmp;
2382 tmp = mymin(array[13], array[17]);
2383 array[17] = mymax(array[13], array[17]);
2384 array[13] = tmp;
2385 tmp = mymin(array[14], array[18]);
2386 array[18] = mymax(array[14], array[18]);
2387 array[14] = tmp;
2388 tmp = mymin(array[15], array[19]);
2389 array[19] = mymax(array[15], array[19]);
2390 array[15] = tmp;
2391 tmp = mymin(array[20], array[24]);
2392 array[24] = mymax(array[20], array[24]);
2393 array[20] = tmp;
2394 tmp = mymin(array[21], array[25]);
2395 array[25] = mymax(array[21], array[25]);
2396 array[21] = tmp;
2397 tmp = mymin(array[22], array[26]);
2398 array[26] = mymax(array[22], array[26]);
2399 array[22] = tmp;
2400 tmp = mymin(array[23], array[27]);
2401 array[27] = mymax(array[23], array[27]);
2402 array[23] = tmp;
2403 tmp = mymin(array[28], array[32]);
2404 array[32] = mymax(array[28], array[32]);
2405 array[28] = tmp;
2406 tmp = mymin(array[29], array[33]);
2407 array[33] = mymax(array[29], array[33]);
2408 array[29] = tmp;
2409 tmp = mymin(array[30], array[34]);
2410 array[34] = mymax(array[30], array[34]);
2411 array[30] = tmp;
2412 tmp = mymin(array[31], array[35]);
2413 array[35] = mymax(array[31], array[35]);
2414 array[31] = tmp;
2415 tmp = mymin(array[36], array[40]);
2416 array[40] = mymax(array[36], array[40]);
2417 array[36] = tmp;
2418 tmp = mymin(array[37], array[41]);
2419 array[41] = mymax(array[37], array[41]);
2420 array[37] = tmp;
2421 tmp = mymin(array[38], array[42]);
2422 array[42] = mymax(array[38], array[42]);
2423 array[38] = tmp;
2424 tmp = mymin(array[39], array[43]);
2425 array[43] = mymax(array[39], array[43]);
2426 array[39] = tmp;
2427 tmp = mymin(array[44], array[48]);
2428 array[48] = mymax(array[44], array[48]);
2429 array[44] = tmp;
2430 tmp = mymin(array[45], array[49]);
2431 array[49] = mymax(array[45], array[49]);
2432 array[45] = tmp;
2433 tmp = mymin(array[46], array[50]);
2434 array[50] = mymax(array[46], array[50]);
2435 array[46] = tmp;
2436 tmp = mymin(array[47], array[51]);
2437 array[51] = mymax(array[47], array[51]);
2438 array[47] = tmp;
2439 tmp = mymin(array[52], array[56]);
2440 array[56] = mymax(array[52], array[56]);
2441 array[52] = tmp;
2442 tmp = mymin(array[53], array[57]);
2443 array[57] = mymax(array[53], array[57]);
2444 array[53] = tmp;
2445 tmp = mymin(array[54], array[58]);
2446 array[58] = mymax(array[54], array[58]);
2447 array[54] = tmp;
2448 tmp = mymin(array[55], array[59]);
2449 array[59] = mymax(array[55], array[59]);
2450 array[55] = tmp;
2451 tmp = mymin(array[60], array[64]);
2452 array[64] = mymax(array[60], array[64]);
2453 array[60] = tmp;
2454 tmp = mymin(array[61], array[65]);
2455 array[65] = mymax(array[61], array[65]);
2456 array[61] = tmp;
2457 tmp = mymin(array[62], array[66]);
2458 array[66] = mymax(array[62], array[66]);
2459 array[62] = tmp;
2460 tmp = mymin(array[63], array[67]);
2461 array[67] = mymax(array[63], array[67]);
2462 array[63] = tmp;
2463 tmp = mymin(array[68], array[72]);
2464 array[72] = mymax(array[68], array[72]);
2465 array[68] = tmp;
2466 tmp = mymin(array[69], array[73]);
2467 array[73] = mymax(array[69], array[73]);
2468 array[69] = tmp;
2469 tmp = mymin(array[70], array[74]);
2470 array[74] = mymax(array[70], array[74]);
2471 array[70] = tmp;
2472 tmp = mymin(array[71], array[75]);
2473 array[75] = mymax(array[71], array[75]);
2474 array[71] = tmp;
2475 tmp = mymin(array[76], array[80]);
2476 array[80] = mymax(array[76], array[80]);
2477 array[76] = tmp;
2478 tmp = mymin(array[0], array[2]);
2479 array[2] = mymax(array[0], array[2]);
2480 array[0] = tmp;
2481 tmp = mymin(array[1], array[3]);
2482 array[3] = mymax(array[1], array[3]);
2483 array[1] = tmp;
2484 tmp = mymin(array[4], array[6]);
2485 array[6] = mymax(array[4], array[6]);
2486 array[4] = tmp;
2487 tmp = mymin(array[5], array[7]);
2488 array[7] = mymax(array[5], array[7]);
2489 array[5] = tmp;
2490 tmp = mymin(array[8], array[10]);
2491 array[10] = mymax(array[8], array[10]);
2492 array[8] = tmp;
2493 tmp = mymin(array[9], array[11]);
2494 array[11] = mymax(array[9], array[11]);
2495 array[9] = tmp;
2496 tmp = mymin(array[12], array[14]);
2497 array[14] = mymax(array[12], array[14]);
2498 array[12] = tmp;
2499 tmp = mymin(array[13], array[15]);
2500 array[15] = mymax(array[13], array[15]);
2501 array[13] = tmp;
2502 tmp = mymin(array[16], array[18]);
2503 array[18] = mymax(array[16], array[18]);
2504 array[16] = tmp;
2505 tmp = mymin(array[17], array[19]);
2506 array[19] = mymax(array[17], array[19]);
2507 array[17] = tmp;
2508 tmp = mymin(array[20], array[22]);
2509 array[22] = mymax(array[20], array[22]);
2510 array[20] = tmp;
2511 tmp = mymin(array[21], array[23]);
2512 array[23] = mymax(array[21], array[23]);
2513 array[21] = tmp;
2514 tmp = mymin(array[24], array[26]);
2515 array[26] = mymax(array[24], array[26]);
2516 array[24] = tmp;
2517 tmp = mymin(array[25], array[27]);
2518 array[27] = mymax(array[25], array[27]);
2519 array[25] = tmp;
2520 tmp = mymin(array[28], array[30]);
2521 array[30] = mymax(array[28], array[30]);
2522 array[28] = tmp;
2523 tmp = mymin(array[29], array[31]);
2524 array[31] = mymax(array[29], array[31]);
2525 array[29] = tmp;
2526 tmp = mymin(array[32], array[34]);
2527 array[34] = mymax(array[32], array[34]);
2528 array[32] = tmp;
2529 tmp = mymin(array[33], array[35]);
2530 array[35] = mymax(array[33], array[35]);
2531 array[33] = tmp;
2532 tmp = mymin(array[36], array[38]);
2533 array[38] = mymax(array[36], array[38]);
2534 array[36] = tmp;
2535 tmp = mymin(array[37], array[39]);
2536 array[39] = mymax(array[37], array[39]);
2537 array[37] = tmp;
2538 tmp = mymin(array[40], array[42]);
2539 array[42] = mymax(array[40], array[42]);
2540 array[40] = tmp;
2541 tmp = mymin(array[41], array[43]);
2542 array[43] = mymax(array[41], array[43]);
2543 array[41] = tmp;
2544 tmp = mymin(array[44], array[46]);
2545 array[46] = mymax(array[44], array[46]);
2546 array[44] = tmp;
2547 tmp = mymin(array[45], array[47]);
2548 array[47] = mymax(array[45], array[47]);
2549 array[45] = tmp;
2550 tmp = mymin(array[48], array[50]);
2551 array[50] = mymax(array[48], array[50]);
2552 array[48] = tmp;
2553 tmp = mymin(array[49], array[51]);
2554 array[51] = mymax(array[49], array[51]);
2555 array[49] = tmp;
2556 tmp = mymin(array[52], array[54]);
2557 array[54] = mymax(array[52], array[54]);
2558 array[52] = tmp;
2559 tmp = mymin(array[53], array[55]);
2560 array[55] = mymax(array[53], array[55]);
2561 array[53] = tmp;
2562 tmp = mymin(array[56], array[58]);
2563 array[58] = mymax(array[56], array[58]);
2564 array[56] = tmp;
2565 tmp = mymin(array[57], array[59]);
2566 array[59] = mymax(array[57], array[59]);
2567 array[57] = tmp;
2568 tmp = mymin(array[60], array[62]);
2569 array[62] = mymax(array[60], array[62]);
2570 array[60] = tmp;
2571 tmp = mymin(array[61], array[63]);
2572 array[63] = mymax(array[61], array[63]);
2573 array[61] = tmp;
2574 tmp = mymin(array[64], array[66]);
2575 array[66] = mymax(array[64], array[66]);
2576 array[64] = tmp;
2577 tmp = mymin(array[65], array[67]);
2578 array[67] = mymax(array[65], array[67]);
2579 array[65] = tmp;
2580 tmp = mymin(array[68], array[70]);
2581 array[70] = mymax(array[68], array[70]);
2582 array[68] = tmp;
2583 tmp = mymin(array[69], array[71]);
2584 array[71] = mymax(array[69], array[71]);
2585 array[69] = tmp;
2586 tmp = mymin(array[72], array[74]);
2587 array[74] = mymax(array[72], array[74]);
2588 array[72] = tmp;
2589 tmp = mymin(array[73], array[75]);
2590 array[75] = mymax(array[73], array[75]);
2591 array[73] = tmp;
2592 tmp = mymin(array[76], array[78]);
2593 array[78] = mymax(array[76], array[78]);
2594 array[76] = tmp;
2595 tmp = mymin(array[77], array[79]);
2596 array[79] = mymax(array[77], array[79]);
2597 array[77] = tmp;
2598 tmp = mymin(array[2], array[64]);
2599 array[64] = mymax(array[2], array[64]);
2600 array[2] = tmp;
2601 tmp = mymin(array[3], array[65]);
2602 array[65] = mymax(array[3], array[65]);
2603 array[3] = tmp;
2604 tmp = mymin(array[6], array[68]);
2605 array[68] = mymax(array[6], array[68]);
2606 array[6] = tmp;
2607 tmp = mymin(array[7], array[69]);
2608 array[69] = mymax(array[7], array[69]);
2609 array[7] = tmp;
2610 tmp = mymin(array[10], array[72]);
2611 array[72] = mymax(array[10], array[72]);
2612 array[10] = tmp;
2613 tmp = mymin(array[11], array[73]);
2614 array[73] = mymax(array[11], array[73]);
2615 array[11] = tmp;
2616 tmp = mymin(array[14], array[76]);
2617 array[76] = mymax(array[14], array[76]);
2618 array[14] = tmp;
2619 tmp = mymin(array[15], array[77]);
2620 array[77] = mymax(array[15], array[77]);
2621 array[15] = tmp;
2622 tmp = mymin(array[18], array[80]);
2623 array[80] = mymax(array[18], array[80]);
2624 array[18] = tmp;
2625 tmp = mymin(array[2], array[32]);
2626 array[32] = mymax(array[2], array[32]);
2627 array[2] = tmp;
2628 tmp = mymin(array[3], array[33]);
2629 array[33] = mymax(array[3], array[33]);
2630 array[3] = tmp;
2631 tmp = mymin(array[6], array[36]);
2632 array[36] = mymax(array[6], array[36]);
2633 array[6] = tmp;
2634 tmp = mymin(array[7], array[37]);
2635 array[37] = mymax(array[7], array[37]);
2636 array[7] = tmp;
2637 tmp = mymin(array[10], array[40]);
2638 array[40] = mymax(array[10], array[40]);
2639 array[10] = tmp;
2640 tmp = mymin(array[11], array[41]);
2641 array[41] = mymax(array[11], array[41]);
2642 array[11] = tmp;
2643 tmp = mymin(array[14], array[44]);
2644 array[44] = mymax(array[14], array[44]);
2645 array[14] = tmp;
2646 tmp = mymin(array[15], array[45]);
2647 array[45] = mymax(array[15], array[45]);
2648 array[15] = tmp;
2649 tmp = mymin(array[18], array[48]);
2650 array[48] = mymax(array[18], array[48]);
2651 array[18] = tmp;
2652 tmp = mymin(array[19], array[49]);
2653 array[49] = mymax(array[19], array[49]);
2654 array[19] = tmp;
2655 tmp = mymin(array[22], array[52]);
2656 array[52] = mymax(array[22], array[52]);
2657 array[22] = tmp;
2658 tmp = mymin(array[23], array[53]);
2659 array[53] = mymax(array[23], array[53]);
2660 array[23] = tmp;
2661 tmp = mymin(array[26], array[56]);
2662 array[56] = mymax(array[26], array[56]);
2663 array[26] = tmp;
2664 tmp = mymin(array[27], array[57]);
2665 array[57] = mymax(array[27], array[57]);
2666 array[27] = tmp;
2667 tmp = mymin(array[30], array[60]);
2668 array[60] = mymax(array[30], array[60]);
2669 array[30] = tmp;
2670 tmp = mymin(array[31], array[61]);
2671 array[61] = mymax(array[31], array[61]);
2672 array[31] = tmp;
2673 tmp = mymin(array[34], array[64]);
2674 array[64] = mymax(array[34], array[64]);
2675 array[34] = tmp;
2676 tmp = mymin(array[35], array[65]);
2677 array[65] = mymax(array[35], array[65]);
2678 array[35] = tmp;
2679 tmp = mymin(array[38], array[68]);
2680 array[68] = mymax(array[38], array[68]);
2681 array[38] = tmp;
2682 tmp = mymin(array[39], array[69]);
2683 array[69] = mymax(array[39], array[69]);
2684 array[39] = tmp;
2685 tmp = mymin(array[42], array[72]);
2686 array[72] = mymax(array[42], array[72]);
2687 array[42] = tmp;
2688 tmp = mymin(array[43], array[73]);
2689 array[73] = mymax(array[43], array[73]);
2690 array[43] = tmp;
2691 tmp = mymin(array[46], array[76]);
2692 array[76] = mymax(array[46], array[76]);
2693 array[46] = tmp;
2694 tmp = mymin(array[47], array[77]);
2695 array[77] = mymax(array[47], array[77]);
2696 array[47] = tmp;
2697 tmp = mymin(array[50], array[80]);
2698 array[80] = mymax(array[50], array[80]);
2699 array[50] = tmp;
2700 tmp = mymin(array[2], array[16]);
2701 array[16] = mymax(array[2], array[16]);
2702 array[2] = tmp;
2703 tmp = mymin(array[3], array[17]);
2704 array[17] = mymax(array[3], array[17]);
2705 array[3] = tmp;
2706 tmp = mymin(array[6], array[20]);
2707 array[20] = mymax(array[6], array[20]);
2708 array[6] = tmp;
2709 tmp = mymin(array[7], array[21]);
2710 array[21] = mymax(array[7], array[21]);
2711 array[7] = tmp;
2712 tmp = mymin(array[10], array[24]);
2713 array[24] = mymax(array[10], array[24]);
2714 array[10] = tmp;
2715 tmp = mymin(array[11], array[25]);
2716 array[25] = mymax(array[11], array[25]);
2717 array[11] = tmp;
2718 tmp = mymin(array[14], array[28]);
2719 array[28] = mymax(array[14], array[28]);
2720 array[14] = tmp;
2721 tmp = mymin(array[15], array[29]);
2722 array[29] = mymax(array[15], array[29]);
2723 array[15] = tmp;
2724 tmp = mymin(array[18], array[32]);
2725 array[32] = mymax(array[18], array[32]);
2726 array[18] = tmp;
2727 tmp = mymin(array[19], array[33]);
2728 array[33] = mymax(array[19], array[33]);
2729 array[19] = tmp;
2730 tmp = mymin(array[22], array[36]);
2731 array[36] = mymax(array[22], array[36]);
2732 array[22] = tmp;
2733 tmp = mymin(array[23], array[37]);
2734 array[37] = mymax(array[23], array[37]);
2735 array[23] = tmp;
2736 tmp = mymin(array[26], array[40]);
2737 array[40] = mymax(array[26], array[40]);
2738 array[26] = tmp;
2739 tmp = mymin(array[27], array[41]);
2740 array[41] = mymax(array[27], array[41]);
2741 array[27] = tmp;
2742 tmp = mymin(array[30], array[44]);
2743 array[44] = mymax(array[30], array[44]);
2744 array[30] = tmp;
2745 tmp = mymin(array[31], array[45]);
2746 array[45] = mymax(array[31], array[45]);
2747 array[31] = tmp;
2748 tmp = mymin(array[34], array[48]);
2749 array[48] = mymax(array[34], array[48]);
2750 array[34] = tmp;
2751 tmp = mymin(array[35], array[49]);
2752 array[49] = mymax(array[35], array[49]);
2753 array[35] = tmp;
2754 tmp = mymin(array[38], array[52]);
2755 array[52] = mymax(array[38], array[52]);
2756 array[38] = tmp;
2757 tmp = mymin(array[39], array[53]);
2758 array[53] = mymax(array[39], array[53]);
2759 array[39] = tmp;
2760 tmp = mymin(array[42], array[56]);
2761 array[56] = mymax(array[42], array[56]);
2762 array[42] = tmp;
2763 tmp = mymin(array[43], array[57]);
2764 array[57] = mymax(array[43], array[57]);
2765 array[43] = tmp;
2766 tmp = mymin(array[46], array[60]);
2767 array[60] = mymax(array[46], array[60]);
2768 array[46] = tmp;
2769 tmp = mymin(array[47], array[61]);
2770 array[61] = mymax(array[47], array[61]);
2771 array[47] = tmp;
2772 tmp = mymin(array[50], array[64]);
2773 array[64] = mymax(array[50], array[64]);
2774 array[50] = tmp;
2775 tmp = mymin(array[51], array[65]);
2776 array[65] = mymax(array[51], array[65]);
2777 array[51] = tmp;
2778 tmp = mymin(array[54], array[68]);
2779 array[68] = mymax(array[54], array[68]);
2780 array[54] = tmp;
2781 tmp = mymin(array[55], array[69]);
2782 array[69] = mymax(array[55], array[69]);
2783 array[55] = tmp;
2784 tmp = mymin(array[58], array[72]);
2785 array[72] = mymax(array[58], array[72]);
2786 array[58] = tmp;
2787 tmp = mymin(array[59], array[73]);
2788 array[73] = mymax(array[59], array[73]);
2789 array[59] = tmp;
2790 tmp = mymin(array[62], array[76]);
2791 array[76] = mymax(array[62], array[76]);
2792 array[62] = tmp;
2793 tmp = mymin(array[63], array[77]);
2794 array[77] = mymax(array[63], array[77]);
2795 array[63] = tmp;
2796 tmp = mymin(array[66], array[80]);
2797 array[80] = mymax(array[66], array[80]);
2798 array[66] = tmp;
2799 tmp = mymin(array[2], array[8]);
2800 array[8] = mymax(array[2], array[8]);
2801 array[2] = tmp;
2802 tmp = mymin(array[3], array[9]);
2803 array[9] = mymax(array[3], array[9]);
2804 array[3] = tmp;
2805 tmp = mymin(array[6], array[12]);
2806 array[12] = mymax(array[6], array[12]);
2807 array[6] = tmp;
2808 tmp = mymin(array[7], array[13]);
2809 array[13] = mymax(array[7], array[13]);
2810 array[7] = tmp;
2811 tmp = mymin(array[10], array[16]);
2812 array[16] = mymax(array[10], array[16]);
2813 array[10] = tmp;
2814 tmp = mymin(array[11], array[17]);
2815 array[17] = mymax(array[11], array[17]);
2816 array[11] = tmp;
2817 tmp = mymin(array[14], array[20]);
2818 array[20] = mymax(array[14], array[20]);
2819 array[14] = tmp;
2820 tmp = mymin(array[15], array[21]);
2821 array[21] = mymax(array[15], array[21]);
2822 array[15] = tmp;
2823 tmp = mymin(array[18], array[24]);
2824 array[24] = mymax(array[18], array[24]);
2825 array[18] = tmp;
2826 tmp = mymin(array[19], array[25]);
2827 array[25] = mymax(array[19], array[25]);
2828 array[19] = tmp;
2829 tmp = mymin(array[22], array[28]);
2830 array[28] = mymax(array[22], array[28]);
2831 array[22] = tmp;
2832 tmp = mymin(array[23], array[29]);
2833 array[29] = mymax(array[23], array[29]);
2834 array[23] = tmp;
2835 tmp = mymin(array[26], array[32]);
2836 array[32] = mymax(array[26], array[32]);
2837 array[26] = tmp;
2838 tmp = mymin(array[27], array[33]);
2839 array[33] = mymax(array[27], array[33]);
2840 array[27] = tmp;
2841 tmp = mymin(array[30], array[36]);
2842 array[36] = mymax(array[30], array[36]);
2843 array[30] = tmp;
2844 tmp = mymin(array[31], array[37]);
2845 array[37] = mymax(array[31], array[37]);
2846 array[31] = tmp;
2847 tmp = mymin(array[34], array[40]);
2848 array[40] = mymax(array[34], array[40]);
2849 array[34] = tmp;
2850 tmp = mymin(array[35], array[41]);
2851 array[41] = mymax(array[35], array[41]);
2852 array[35] = tmp;
2853 tmp = mymin(array[38], array[44]);
2854 array[44] = mymax(array[38], array[44]);
2855 array[38] = tmp;
2856 tmp = mymin(array[39], array[45]);
2857 array[45] = mymax(array[39], array[45]);
2858 array[39] = tmp;
2859 tmp = mymin(array[42], array[48]);
2860 array[48] = mymax(array[42], array[48]);
2861 array[42] = tmp;
2862 tmp = mymin(array[43], array[49]);
2863 array[49] = mymax(array[43], array[49]);
2864 array[43] = tmp;
2865 tmp = mymin(array[46], array[52]);
2866 array[52] = mymax(array[46], array[52]);
2867 array[46] = tmp;
2868 tmp = mymin(array[47], array[53]);
2869 array[53] = mymax(array[47], array[53]);
2870 array[47] = tmp;
2871 tmp = mymin(array[50], array[56]);
2872 array[56] = mymax(array[50], array[56]);
2873 array[50] = tmp;
2874 tmp = mymin(array[51], array[57]);
2875 array[57] = mymax(array[51], array[57]);
2876 array[51] = tmp;
2877 tmp = mymin(array[54], array[60]);
2878 array[60] = mymax(array[54], array[60]);
2879 array[54] = tmp;
2880 tmp = mymin(array[55], array[61]);
2881 array[61] = mymax(array[55], array[61]);
2882 array[55] = tmp;
2883 tmp = mymin(array[58], array[64]);
2884 array[64] = mymax(array[58], array[64]);
2885 array[58] = tmp;
2886 tmp = mymin(array[59], array[65]);
2887 array[65] = mymax(array[59], array[65]);
2888 array[59] = tmp;
2889 tmp = mymin(array[62], array[68]);
2890 array[68] = mymax(array[62], array[68]);
2891 array[62] = tmp;
2892 tmp = mymin(array[63], array[69]);
2893 array[69] = mymax(array[63], array[69]);
2894 array[63] = tmp;
2895 tmp = mymin(array[66], array[72]);
2896 array[72] = mymax(array[66], array[72]);
2897 array[66] = tmp;
2898 tmp = mymin(array[67], array[73]);
2899 array[73] = mymax(array[67], array[73]);
2900 array[67] = tmp;
2901 tmp = mymin(array[70], array[76]);
2902 array[76] = mymax(array[70], array[76]);
2903 array[70] = tmp;
2904 tmp = mymin(array[71], array[77]);
2905 array[77] = mymax(array[71], array[77]);
2906 array[71] = tmp;
2907 tmp = mymin(array[74], array[80]);
2908 array[80] = mymax(array[74], array[80]);
2909 array[74] = tmp;
2910 tmp = mymin(array[2], array[4]);
2911 array[4] = mymax(array[2], array[4]);
2912 array[2] = tmp;
2913 tmp = mymin(array[3], array[5]);
2914 array[5] = mymax(array[3], array[5]);
2915 array[3] = tmp;
2916 tmp = mymin(array[6], array[8]);
2917 array[8] = mymax(array[6], array[8]);
2918 array[6] = tmp;
2919 tmp = mymin(array[7], array[9]);
2920 array[9] = mymax(array[7], array[9]);
2921 array[7] = tmp;
2922 tmp = mymin(array[10], array[12]);
2923 array[12] = mymax(array[10], array[12]);
2924 array[10] = tmp;
2925 tmp = mymin(array[11], array[13]);
2926 array[13] = mymax(array[11], array[13]);
2927 array[11] = tmp;
2928 tmp = mymin(array[14], array[16]);
2929 array[16] = mymax(array[14], array[16]);
2930 array[14] = tmp;
2931 tmp = mymin(array[15], array[17]);
2932 array[17] = mymax(array[15], array[17]);
2933 array[15] = tmp;
2934 tmp = mymin(array[18], array[20]);
2935 array[20] = mymax(array[18], array[20]);
2936 array[18] = tmp;
2937 tmp = mymin(array[19], array[21]);
2938 array[21] = mymax(array[19], array[21]);
2939 array[19] = tmp;
2940 tmp = mymin(array[22], array[24]);
2941 array[24] = mymax(array[22], array[24]);
2942 array[22] = tmp;
2943 tmp = mymin(array[23], array[25]);
2944 array[25] = mymax(array[23], array[25]);
2945 array[23] = tmp;
2946 tmp = mymin(array[26], array[28]);
2947 array[28] = mymax(array[26], array[28]);
2948 array[26] = tmp;
2949 tmp = mymin(array[27], array[29]);
2950 array[29] = mymax(array[27], array[29]);
2951 array[27] = tmp;
2952 tmp = mymin(array[30], array[32]);
2953 array[32] = mymax(array[30], array[32]);
2954 array[30] = tmp;
2955 tmp = mymin(array[31], array[33]);
2956 array[33] = mymax(array[31], array[33]);
2957 array[31] = tmp;
2958 tmp = mymin(array[34], array[36]);
2959 array[36] = mymax(array[34], array[36]);
2960 array[34] = tmp;
2961 tmp = mymin(array[35], array[37]);
2962 array[37] = mymax(array[35], array[37]);
2963 array[35] = tmp;
2964 tmp = mymin(array[38], array[40]);
2965 array[40] = mymax(array[38], array[40]);
2966 array[38] = tmp;
2967 tmp = mymin(array[39], array[41]);
2968 array[41] = mymax(array[39], array[41]);
2969 array[39] = tmp;
2970 tmp = mymin(array[42], array[44]);
2971 array[44] = mymax(array[42], array[44]);
2972 array[42] = tmp;
2973 tmp = mymin(array[43], array[45]);
2974 array[45] = mymax(array[43], array[45]);
2975 array[43] = tmp;
2976 tmp = mymin(array[46], array[48]);
2977 array[48] = mymax(array[46], array[48]);
2978 array[46] = tmp;
2979 tmp = mymin(array[47], array[49]);
2980 array[49] = mymax(array[47], array[49]);
2981 array[47] = tmp;
2982 tmp = mymin(array[50], array[52]);
2983 array[52] = mymax(array[50], array[52]);
2984 array[50] = tmp;
2985 tmp = mymin(array[51], array[53]);
2986 array[53] = mymax(array[51], array[53]);
2987 array[51] = tmp;
2988 tmp = mymin(array[54], array[56]);
2989 array[56] = mymax(array[54], array[56]);
2990 array[54] = tmp;
2991 tmp = mymin(array[55], array[57]);
2992 array[57] = mymax(array[55], array[57]);
2993 array[55] = tmp;
2994 tmp = mymin(array[58], array[60]);
2995 array[60] = mymax(array[58], array[60]);
2996 array[58] = tmp;
2997 tmp = mymin(array[59], array[61]);
2998 array[61] = mymax(array[59], array[61]);
2999 array[59] = tmp;
3000 tmp = mymin(array[62], array[64]);
3001 array[64] = mymax(array[62], array[64]);
3002 array[62] = tmp;
3003 tmp = mymin(array[63], array[65]);
3004 array[65] = mymax(array[63], array[65]);
3005 array[63] = tmp;
3006 tmp = mymin(array[66], array[68]);
3007 array[68] = mymax(array[66], array[68]);
3008 array[66] = tmp;
3009 tmp = mymin(array[67], array[69]);
3010 array[69] = mymax(array[67], array[69]);
3011 array[67] = tmp;
3012 tmp = mymin(array[70], array[72]);
3013 array[72] = mymax(array[70], array[72]);
3014 array[70] = tmp;
3015 tmp = mymin(array[71], array[73]);
3016 array[73] = mymax(array[71], array[73]);
3017 array[71] = tmp;
3018 tmp = mymin(array[74], array[76]);
3019 array[76] = mymax(array[74], array[76]);
3020 array[74] = tmp;
3021 tmp = mymin(array[75], array[77]);
3022 array[77] = mymax(array[75], array[77]);
3023 array[75] = tmp;
3024 tmp = mymin(array[78], array[80]);
3025 array[80] = mymax(array[78], array[80]);
3026 array[78] = tmp;
3027 array[1] = mymax(array[0], array[1]);
3028 array[3] = mymax(array[2], array[3]);
3029 array[5] = mymax(array[4], array[5]);
3030 array[7] = mymax(array[6], array[7]);
3031 array[9] = mymax(array[8], array[9]);
3032 array[11] = mymax(array[10], array[11]);
3033 array[13] = mymax(array[12], array[13]);
3034 array[15] = mymax(array[14], array[15]);
3035 array[17] = mymax(array[16], array[17]);
3036 array[19] = mymax(array[18], array[19]);
3037 array[21] = mymax(array[20], array[21]);
3038 array[23] = mymax(array[22], array[23]);
3039 array[25] = mymax(array[24], array[25]);
3040 array[27] = mymax(array[26], array[27]);
3041 array[29] = mymax(array[28], array[29]);
3042 array[31] = mymax(array[30], array[31]);
3043 array[33] = mymax(array[32], array[33]);
3044 array[35] = mymax(array[34], array[35]);
3045 array[37] = mymax(array[36], array[37]);
3046 array[39] = mymax(array[38], array[39]);
3047 array[40] = mymin(array[40], array[41]);
3048 array[42] = mymin(array[42], array[43]);
3049 array[44] = mymin(array[44], array[45]);
3050 array[46] = mymin(array[46], array[47]);
3051 array[48] = mymin(array[48], array[49]);
3052 array[50] = mymin(array[50], array[51]);
3053 array[52] = mymin(array[52], array[53]);
3054 array[54] = mymin(array[54], array[55]);
3055 array[56] = mymin(array[56], array[57]);
3056 array[58] = mymin(array[58], array[59]);
3057 array[60] = mymin(array[60], array[61]);
3058 array[62] = mymin(array[62], array[63]);
3059 array[64] = mymin(array[64], array[65]);
3060 array[66] = mymin(array[66], array[67]);
3061 array[68] = mymin(array[68], array[69]);
3062 array[70] = mymin(array[70], array[71]);
3063 array[72] = mymin(array[72], array[73]);
3064 array[74] = mymin(array[74], array[75]);
3065 array[76] = mymin(array[76], array[77]);
3066 array[78] = mymin(array[78], array[79]);
3067 array[64] = mymax(array[1], array[64]);
3068 array[66] = mymax(array[3], array[66]);
3069 array[68] = mymax(array[5], array[68]);
3070 array[70] = mymax(array[7], array[70]);
3071 array[9] = mymin(array[9], array[72]);
3072 array[11] = mymin(array[11], array[74]);
3073 array[13] = mymin(array[13], array[76]);
3074 array[15] = mymin(array[15], array[78]);
3075 array[17] = mymin(array[17], array[80]);
3076 array[40] = mymax(array[9], array[40]);
3077 array[42] = mymax(array[11], array[42]);
3078 array[44] = mymax(array[13], array[44]);
3079 array[46] = mymax(array[15], array[46]);
3080 array[48] = mymax(array[17], array[48]);
3081 array[50] = mymax(array[19], array[50]);
3082 array[52] = mymax(array[21], array[52]);
3083 array[54] = mymax(array[23], array[54]);
3084 array[25] = mymin(array[25], array[56]);
3085 array[27] = mymin(array[27], array[58]);
3086 array[29] = mymin(array[29], array[60]);
3087 array[31] = mymin(array[31], array[62]);
3088 array[33] = mymin(array[33], array[64]);
3089 array[35] = mymin(array[35], array[66]);
3090 array[37] = mymin(array[37], array[68]);
3091 array[39] = mymin(array[39], array[70]);
3092 array[40] = mymax(array[25], array[40]);
3093 array[42] = mymax(array[27], array[42]);
3094 array[44] = mymax(array[29], array[44]);
3095 array[46] = mymax(array[31], array[46]);
3096 array[33] = mymin(array[33], array[48]);
3097 array[35] = mymin(array[35], array[50]);
3098 array[37] = mymin(array[37], array[52]);
3099 array[39] = mymin(array[39], array[54]);
3100 array[40] = mymax(array[33], array[40]);
3101 array[42] = mymax(array[35], array[42]);
3102 array[37] = mymin(array[37], array[44]);
3103 array[39] = mymin(array[39], array[46]);
3104 array[40] = mymax(array[37], array[40]);
3105 array[39] = mymin(array[39], array[42]);
3106 return mymax(array[39], array[40]);
3107 }
3108
3109 #ifdef __SSE2__
3110
median3x3sse(__m128 * array)3111 __m128 median3x3sse(__m128* array)
3112 {
3113 __m128 tmp = _mm_min_ps(array[1], array[2]);
3114 array[2] = _mm_max_ps(array[1], array[2]);
3115 array[1] = tmp;
3116 tmp = _mm_min_ps(array[4], array[5]);
3117 array[5] = _mm_max_ps(array[4], array[5]);
3118 array[4] = tmp;
3119 tmp = _mm_min_ps(array[7], array[8]);
3120 array[8] = _mm_max_ps(array[7], array[8]);
3121 array[7] = tmp;
3122 tmp = _mm_min_ps(array[0], array[1]);
3123 array[1] = _mm_max_ps(array[0], array[1]);
3124 array[0] = tmp;
3125 tmp = _mm_min_ps(array[3], array[4]);
3126 array[4] = _mm_max_ps(array[3], array[4]);
3127 array[3] = tmp;
3128 tmp = _mm_min_ps(array[6], array[7]);
3129 array[7] = _mm_max_ps(array[6], array[7]);
3130 array[6] = tmp;
3131 tmp = _mm_min_ps(array[1], array[2]);
3132 array[2] = _mm_max_ps(array[1], array[2]);
3133 array[1] = tmp;
3134 tmp = _mm_min_ps(array[4], array[5]);
3135 array[5] = _mm_max_ps(array[4], array[5]);
3136 array[4] = tmp;
3137 tmp = _mm_min_ps(array[7], array[8]);
3138 array[8] = _mm_max_ps(array[7], array[8]);
3139 array[3] = _mm_max_ps(array[0], array[3]);
3140 array[5] = _mm_min_ps(array[5], array[8]);
3141 array[7] = _mm_max_ps(array[4], tmp);
3142 tmp = _mm_min_ps(array[4], tmp);
3143 array[6] = _mm_max_ps(array[3], array[6]);
3144 array[4] = _mm_max_ps(array[1], tmp);
3145 array[2] = _mm_min_ps(array[2], array[5]);
3146 array[4] = _mm_min_ps(array[4], array[7]);
3147 tmp = _mm_min_ps(array[4], array[2]);
3148 array[2] = _mm_max_ps(array[4], array[2]);
3149 array[4] = _mm_max_ps(array[6], tmp);
3150 return _mm_min_ps(array[4], array[2]);
3151 }
3152
median5x5sse(__m128 * array)3153 __m128 median5x5sse(__m128* array)
3154 {
3155 __m128 tmp = _mm_min_ps(array[0], array[1]);
3156 array[1] = _mm_max_ps(array[0], array[1]);
3157 array[0] = tmp;
3158 tmp = _mm_min_ps(array[3], array[4]);
3159 array[4] = _mm_max_ps(array[3], array[4]);
3160 array[3] = tmp;
3161 tmp = _mm_min_ps(array[2], array[4]);
3162 array[4] = _mm_max_ps(array[2], array[4]);
3163 array[2] = _mm_min_ps(tmp, array[3]);
3164 array[3] = _mm_max_ps(tmp, array[3]);
3165 tmp = _mm_min_ps(array[6], array[7]);
3166 array[7] = _mm_max_ps(array[6], array[7]);
3167 array[6] = tmp;
3168 tmp = _mm_min_ps(array[5], array[7]);
3169 array[7] = _mm_max_ps(array[5], array[7]);
3170 array[5] = _mm_min_ps(tmp, array[6]);
3171 array[6] = _mm_max_ps(tmp, array[6]);
3172 tmp = _mm_min_ps(array[9], array[10]);
3173 array[10] = _mm_max_ps(array[9], array[10]);
3174 array[9] = tmp;
3175 tmp = _mm_min_ps(array[8], array[10]);
3176 array[10] = _mm_max_ps(array[8], array[10]);
3177 array[8] = _mm_min_ps(tmp, array[9]);
3178 array[9] = _mm_max_ps(tmp, array[9]);
3179 tmp = _mm_min_ps(array[12], array[13]);
3180 array[13] = _mm_max_ps(array[12], array[13]);
3181 array[12] = tmp;
3182 tmp = _mm_min_ps(array[11], array[13]);
3183 array[13] = _mm_max_ps(array[11], array[13]);
3184 array[11] = _mm_min_ps(tmp, array[12]);
3185 array[12] = _mm_max_ps(tmp, array[12]);
3186 tmp = _mm_min_ps(array[15], array[16]);
3187 array[16] = _mm_max_ps(array[15], array[16]);
3188 array[15] = tmp;
3189 tmp = _mm_min_ps(array[14], array[16]);
3190 array[16] = _mm_max_ps(array[14], array[16]);
3191 array[14] = _mm_min_ps(tmp, array[15]);
3192 array[15] = _mm_max_ps(tmp, array[15]);
3193 tmp = _mm_min_ps(array[18], array[19]);
3194 array[19] = _mm_max_ps(array[18], array[19]);
3195 array[18] = tmp;
3196 tmp = _mm_min_ps(array[17], array[19]);
3197 array[19] = _mm_max_ps(array[17], array[19]);
3198 array[17] = _mm_min_ps(tmp, array[18]);
3199 array[18] = _mm_max_ps(tmp, array[18]);
3200 tmp = _mm_min_ps(array[21], array[22]);
3201 array[22] = _mm_max_ps(array[21], array[22]);
3202 array[21] = tmp;
3203 tmp = _mm_min_ps(array[20], array[22]);
3204 array[22] = _mm_max_ps(array[20], array[22]);
3205 array[20] = _mm_min_ps(tmp, array[21]);
3206 array[21] = _mm_max_ps(tmp, array[21]);
3207 tmp = _mm_min_ps(array[23], array[24]);
3208 array[24] = _mm_max_ps(array[23], array[24]);
3209 array[23] = tmp;
3210 tmp = _mm_min_ps(array[2], array[5]);
3211 array[5] = _mm_max_ps(array[2], array[5]);
3212 array[2] = tmp;
3213 tmp = _mm_min_ps(array[3], array[6]);
3214 array[6] = _mm_max_ps(array[3], array[6]);
3215 array[3] = tmp;
3216 tmp = _mm_min_ps(array[0], array[6]);
3217 array[6] = _mm_max_ps(array[0], array[6]);
3218 array[0] = _mm_min_ps(tmp, array[3]);
3219 array[3] = _mm_max_ps(tmp, array[3]);
3220 tmp = _mm_min_ps(array[4], array[7]);
3221 array[7] = _mm_max_ps(array[4], array[7]);
3222 array[4] = tmp;
3223 tmp = _mm_min_ps(array[1], array[7]);
3224 array[7] = _mm_max_ps(array[1], array[7]);
3225 array[1] = _mm_min_ps(tmp, array[4]);
3226 array[4] = _mm_max_ps(tmp, array[4]);
3227 tmp = _mm_min_ps(array[11], array[14]);
3228 array[14] = _mm_max_ps(array[11], array[14]);
3229 array[11] = tmp;
3230 tmp = _mm_min_ps(array[8], array[14]);
3231 array[14] = _mm_max_ps(array[8], array[14]);
3232 array[8] = _mm_min_ps(tmp, array[11]);
3233 array[11] = _mm_max_ps(tmp, array[11]);
3234 tmp = _mm_min_ps(array[12], array[15]);
3235 array[15] = _mm_max_ps(array[12], array[15]);
3236 array[12] = tmp;
3237 tmp = _mm_min_ps(array[9], array[15]);
3238 array[15] = _mm_max_ps(array[9], array[15]);
3239 array[9] = _mm_min_ps(tmp, array[12]);
3240 array[12] = _mm_max_ps(tmp, array[12]);
3241 tmp = _mm_min_ps(array[13], array[16]);
3242 array[16] = _mm_max_ps(array[13], array[16]);
3243 array[13] = tmp;
3244 tmp = _mm_min_ps(array[10], array[16]);
3245 array[16] = _mm_max_ps(array[10], array[16]);
3246 array[10] = _mm_min_ps(tmp, array[13]);
3247 array[13] = _mm_max_ps(tmp, array[13]);
3248 tmp = _mm_min_ps(array[20], array[23]);
3249 array[23] = _mm_max_ps(array[20], array[23]);
3250 array[20] = tmp;
3251 tmp = _mm_min_ps(array[17], array[23]);
3252 array[23] = _mm_max_ps(array[17], array[23]);
3253 array[17] = _mm_min_ps(tmp, array[20]);
3254 array[20] = _mm_max_ps(tmp, array[20]);
3255 tmp = _mm_min_ps(array[21], array[24]);
3256 array[24] = _mm_max_ps(array[21], array[24]);
3257 array[21] = tmp;
3258 tmp = _mm_min_ps(array[18], array[24]);
3259 array[24] = _mm_max_ps(array[18], array[24]);
3260 array[18] = _mm_min_ps(tmp, array[21]);
3261 array[21] = _mm_max_ps(tmp, array[21]);
3262 tmp = _mm_min_ps(array[19], array[22]);
3263 array[22] = _mm_max_ps(array[19], array[22]);
3264 array[19] = tmp;
3265 array[17] = _mm_max_ps(array[8], array[17]);
3266 tmp = _mm_min_ps(array[9], array[18]);
3267 array[18] = _mm_max_ps(array[9], array[18]);
3268 array[9] = tmp;
3269 tmp = _mm_min_ps(array[0], array[18]);
3270 array[18] = _mm_max_ps(array[0], array[18]);
3271 array[9] = _mm_max_ps(tmp, array[9]);
3272 tmp = _mm_min_ps(array[10], array[19]);
3273 array[19] = _mm_max_ps(array[10], array[19]);
3274 array[10] = tmp;
3275 tmp = _mm_min_ps(array[1], array[19]);
3276 array[19] = _mm_max_ps(array[1], array[19]);
3277 array[1] = _mm_min_ps(tmp, array[10]);
3278 array[10] = _mm_max_ps(tmp, array[10]);
3279 tmp = _mm_min_ps(array[11], array[20]);
3280 array[20] = _mm_max_ps(array[11], array[20]);
3281 array[11] = tmp;
3282 tmp = _mm_min_ps(array[2], array[20]);
3283 array[20] = _mm_max_ps(array[2], array[20]);
3284 array[11] = _mm_max_ps(tmp, array[11]);
3285 tmp = _mm_min_ps(array[12], array[21]);
3286 array[21] = _mm_max_ps(array[12], array[21]);
3287 array[12] = tmp;
3288 tmp = _mm_min_ps(array[3], array[21]);
3289 array[21] = _mm_max_ps(array[3], array[21]);
3290 array[3] = _mm_min_ps(tmp, array[12]);
3291 array[12] = _mm_max_ps(tmp, array[12]);
3292 tmp = _mm_min_ps(array[13], array[22]);
3293 array[22] = _mm_max_ps(array[13], array[22]);
3294 array[4] = _mm_min_ps(array[4], array[22]);
3295 array[13] = _mm_max_ps(array[4], tmp);
3296 tmp = _mm_min_ps(array[4], tmp);
3297 array[4] = tmp;
3298 tmp = _mm_min_ps(array[14], array[23]);
3299 array[23] = _mm_max_ps(array[14], array[23]);
3300 array[14] = tmp;
3301 tmp = _mm_min_ps(array[5], array[23]);
3302 array[23] = _mm_max_ps(array[5], array[23]);
3303 array[5] = _mm_min_ps(tmp, array[14]);
3304 array[14] = _mm_max_ps(tmp, array[14]);
3305 tmp = _mm_min_ps(array[15], array[24]);
3306 array[24] = _mm_max_ps(array[15], array[24]);
3307 array[15] = tmp;
3308 array[6] = _mm_min_ps(array[6], array[24]);
3309 tmp = _mm_min_ps(array[6], array[15]);
3310 array[15] = _mm_max_ps(array[6], array[15]);
3311 array[6] = tmp;
3312 tmp = _mm_min_ps(array[7], array[16]);
3313 array[7] = _mm_min_ps(tmp, array[19]);
3314 tmp = _mm_min_ps(array[13], array[21]);
3315 array[15] = _mm_min_ps(array[15], array[23]);
3316 tmp = _mm_min_ps(array[7], tmp);
3317 array[7] = _mm_min_ps(tmp, array[15]);
3318 array[9] = _mm_max_ps(array[1], array[9]);
3319 array[11] = _mm_max_ps(array[3], array[11]);
3320 array[17] = _mm_max_ps(array[5], array[17]);
3321 array[17] = _mm_max_ps(array[11], array[17]);
3322 array[17] = _mm_max_ps(array[9], array[17]);
3323 tmp = _mm_min_ps(array[4], array[10]);
3324 array[10] = _mm_max_ps(array[4], array[10]);
3325 array[4] = tmp;
3326 tmp = _mm_min_ps(array[6], array[12]);
3327 array[12] = _mm_max_ps(array[6], array[12]);
3328 array[6] = tmp;
3329 tmp = _mm_min_ps(array[7], array[14]);
3330 array[14] = _mm_max_ps(array[7], array[14]);
3331 array[7] = tmp;
3332 tmp = _mm_min_ps(array[4], array[6]);
3333 array[6] = _mm_max_ps(array[4], array[6]);
3334 array[7] = _mm_max_ps(tmp, array[7]);
3335 tmp = _mm_min_ps(array[12], array[14]);
3336 array[14] = _mm_max_ps(array[12], array[14]);
3337 array[12] = tmp;
3338 array[10] = _mm_min_ps(array[10], array[14]);
3339 tmp = _mm_min_ps(array[6], array[7]);
3340 array[7] = _mm_max_ps(array[6], array[7]);
3341 array[6] = tmp;
3342 tmp = _mm_min_ps(array[10], array[12]);
3343 array[12] = _mm_max_ps(array[10], array[12]);
3344 array[10] = _mm_max_ps(array[6], tmp);
3345 tmp = _mm_min_ps(array[6], tmp);
3346 array[17] = _mm_max_ps(tmp, array[17]);
3347 tmp = _mm_min_ps(array[12], array[17]);
3348 array[17] = _mm_max_ps(array[12], array[17]);
3349 array[12] = tmp;
3350 array[7] = _mm_min_ps(array[7], array[17]);
3351 tmp = _mm_min_ps(array[7], array[10]);
3352 array[10] = _mm_max_ps(array[7], array[10]);
3353 array[7] = tmp;
3354 tmp = _mm_min_ps(array[12], array[18]);
3355 array[18] = _mm_max_ps(array[12], array[18]);
3356 array[12] = _mm_max_ps(array[7], tmp);
3357 array[10] = _mm_min_ps(array[10], array[18]);
3358 tmp = _mm_min_ps(array[12], array[20]);
3359 array[20] = _mm_max_ps(array[12], array[20]);
3360 array[12] = tmp;
3361 tmp = _mm_min_ps(array[10], array[20]);
3362 return _mm_max_ps(tmp, array[12]);
3363 }
3364
median7x7sse(__m128 * array)3365 __m128 median7x7sse(__m128* array)
3366 {
3367 __m128 tmp = _mm_min_ps(array[0], array[32]);
3368 array[32] = _mm_max_ps(array[0], array[32]);
3369 array[0] = tmp;
3370 tmp = _mm_min_ps(array[1], array[33]);
3371 array[33] = _mm_max_ps(array[1], array[33]);
3372 array[1] = tmp;
3373 tmp = _mm_min_ps(array[2], array[34]);
3374 array[34] = _mm_max_ps(array[2], array[34]);
3375 array[2] = tmp;
3376 tmp = _mm_min_ps(array[3], array[35]);
3377 array[35] = _mm_max_ps(array[3], array[35]);
3378 array[3] = tmp;
3379 tmp = _mm_min_ps(array[4], array[36]);
3380 array[36] = _mm_max_ps(array[4], array[36]);
3381 array[4] = tmp;
3382 tmp = _mm_min_ps(array[5], array[37]);
3383 array[37] = _mm_max_ps(array[5], array[37]);
3384 array[5] = tmp;
3385 tmp = _mm_min_ps(array[6], array[38]);
3386 array[38] = _mm_max_ps(array[6], array[38]);
3387 array[6] = tmp;
3388 tmp = _mm_min_ps(array[7], array[39]);
3389 array[39] = _mm_max_ps(array[7], array[39]);
3390 array[7] = tmp;
3391 tmp = _mm_min_ps(array[8], array[40]);
3392 array[40] = _mm_max_ps(array[8], array[40]);
3393 array[8] = tmp;
3394 tmp = _mm_min_ps(array[9], array[41]);
3395 array[41] = _mm_max_ps(array[9], array[41]);
3396 array[9] = tmp;
3397 tmp = _mm_min_ps(array[10], array[42]);
3398 array[42] = _mm_max_ps(array[10], array[42]);
3399 array[10] = tmp;
3400 tmp = _mm_min_ps(array[11], array[43]);
3401 array[43] = _mm_max_ps(array[11], array[43]);
3402 array[11] = tmp;
3403 tmp = _mm_min_ps(array[12], array[44]);
3404 array[44] = _mm_max_ps(array[12], array[44]);
3405 array[12] = tmp;
3406 tmp = _mm_min_ps(array[13], array[45]);
3407 array[45] = _mm_max_ps(array[13], array[45]);
3408 array[13] = tmp;
3409 tmp = _mm_min_ps(array[14], array[46]);
3410 array[46] = _mm_max_ps(array[14], array[46]);
3411 array[14] = tmp;
3412 tmp = _mm_min_ps(array[15], array[47]);
3413 array[47] = _mm_max_ps(array[15], array[47]);
3414 array[15] = tmp;
3415 tmp = _mm_min_ps(array[16], array[48]);
3416 array[48] = _mm_max_ps(array[16], array[48]);
3417 array[16] = tmp;
3418 tmp = _mm_min_ps(array[0], array[16]);
3419 array[16] = _mm_max_ps(array[0], array[16]);
3420 array[0] = tmp;
3421 tmp = _mm_min_ps(array[1], array[17]);
3422 array[17] = _mm_max_ps(array[1], array[17]);
3423 array[1] = tmp;
3424 tmp = _mm_min_ps(array[2], array[18]);
3425 array[18] = _mm_max_ps(array[2], array[18]);
3426 array[2] = tmp;
3427 tmp = _mm_min_ps(array[3], array[19]);
3428 array[19] = _mm_max_ps(array[3], array[19]);
3429 array[3] = tmp;
3430 tmp = _mm_min_ps(array[4], array[20]);
3431 array[20] = _mm_max_ps(array[4], array[20]);
3432 array[4] = tmp;
3433 tmp = _mm_min_ps(array[5], array[21]);
3434 array[21] = _mm_max_ps(array[5], array[21]);
3435 array[5] = tmp;
3436 tmp = _mm_min_ps(array[6], array[22]);
3437 array[22] = _mm_max_ps(array[6], array[22]);
3438 array[6] = tmp;
3439 tmp = _mm_min_ps(array[7], array[23]);
3440 array[23] = _mm_max_ps(array[7], array[23]);
3441 array[7] = tmp;
3442 tmp = _mm_min_ps(array[8], array[24]);
3443 array[24] = _mm_max_ps(array[8], array[24]);
3444 array[8] = tmp;
3445 tmp = _mm_min_ps(array[9], array[25]);
3446 array[25] = _mm_max_ps(array[9], array[25]);
3447 array[9] = tmp;
3448 tmp = _mm_min_ps(array[10], array[26]);
3449 array[26] = _mm_max_ps(array[10], array[26]);
3450 array[10] = tmp;
3451 tmp = _mm_min_ps(array[11], array[27]);
3452 array[27] = _mm_max_ps(array[11], array[27]);
3453 array[11] = tmp;
3454 tmp = _mm_min_ps(array[12], array[28]);
3455 array[28] = _mm_max_ps(array[12], array[28]);
3456 array[12] = tmp;
3457 tmp = _mm_min_ps(array[13], array[29]);
3458 array[29] = _mm_max_ps(array[13], array[29]);
3459 array[13] = tmp;
3460 tmp = _mm_min_ps(array[14], array[30]);
3461 array[30] = _mm_max_ps(array[14], array[30]);
3462 array[14] = tmp;
3463 tmp = _mm_min_ps(array[15], array[31]);
3464 array[31] = _mm_max_ps(array[15], array[31]);
3465 array[15] = tmp;
3466 tmp = _mm_min_ps(array[32], array[48]);
3467 array[48] = _mm_max_ps(array[32], array[48]);
3468 array[32] = tmp;
3469 tmp = _mm_min_ps(array[16], array[32]);
3470 array[32] = _mm_max_ps(array[16], array[32]);
3471 array[16] = tmp;
3472 tmp = _mm_min_ps(array[17], array[33]);
3473 array[33] = _mm_max_ps(array[17], array[33]);
3474 array[17] = tmp;
3475 tmp = _mm_min_ps(array[18], array[34]);
3476 array[34] = _mm_max_ps(array[18], array[34]);
3477 array[18] = tmp;
3478 tmp = _mm_min_ps(array[19], array[35]);
3479 array[35] = _mm_max_ps(array[19], array[35]);
3480 array[19] = tmp;
3481 tmp = _mm_min_ps(array[20], array[36]);
3482 array[36] = _mm_max_ps(array[20], array[36]);
3483 array[20] = tmp;
3484 tmp = _mm_min_ps(array[21], array[37]);
3485 array[37] = _mm_max_ps(array[21], array[37]);
3486 array[21] = tmp;
3487 tmp = _mm_min_ps(array[22], array[38]);
3488 array[38] = _mm_max_ps(array[22], array[38]);
3489 array[22] = tmp;
3490 tmp = _mm_min_ps(array[23], array[39]);
3491 array[39] = _mm_max_ps(array[23], array[39]);
3492 array[23] = tmp;
3493 tmp = _mm_min_ps(array[24], array[40]);
3494 array[40] = _mm_max_ps(array[24], array[40]);
3495 array[24] = tmp;
3496 tmp = _mm_min_ps(array[25], array[41]);
3497 array[41] = _mm_max_ps(array[25], array[41]);
3498 array[25] = tmp;
3499 tmp = _mm_min_ps(array[26], array[42]);
3500 array[42] = _mm_max_ps(array[26], array[42]);
3501 array[26] = tmp;
3502 tmp = _mm_min_ps(array[27], array[43]);
3503 array[43] = _mm_max_ps(array[27], array[43]);
3504 array[27] = tmp;
3505 tmp = _mm_min_ps(array[28], array[44]);
3506 array[44] = _mm_max_ps(array[28], array[44]);
3507 array[28] = tmp;
3508 tmp = _mm_min_ps(array[29], array[45]);
3509 array[45] = _mm_max_ps(array[29], array[45]);
3510 array[29] = tmp;
3511 tmp = _mm_min_ps(array[30], array[46]);
3512 array[46] = _mm_max_ps(array[30], array[46]);
3513 array[30] = tmp;
3514 tmp = _mm_min_ps(array[31], array[47]);
3515 array[47] = _mm_max_ps(array[31], array[47]);
3516 array[31] = tmp;
3517 tmp = _mm_min_ps(array[0], array[8]);
3518 array[8] = _mm_max_ps(array[0], array[8]);
3519 array[0] = tmp;
3520 tmp = _mm_min_ps(array[1], array[9]);
3521 array[9] = _mm_max_ps(array[1], array[9]);
3522 array[1] = tmp;
3523 tmp = _mm_min_ps(array[2], array[10]);
3524 array[10] = _mm_max_ps(array[2], array[10]);
3525 array[2] = tmp;
3526 tmp = _mm_min_ps(array[3], array[11]);
3527 array[11] = _mm_max_ps(array[3], array[11]);
3528 array[3] = tmp;
3529 tmp = _mm_min_ps(array[4], array[12]);
3530 array[12] = _mm_max_ps(array[4], array[12]);
3531 array[4] = tmp;
3532 tmp = _mm_min_ps(array[5], array[13]);
3533 array[13] = _mm_max_ps(array[5], array[13]);
3534 array[5] = tmp;
3535 tmp = _mm_min_ps(array[6], array[14]);
3536 array[14] = _mm_max_ps(array[6], array[14]);
3537 array[6] = tmp;
3538 tmp = _mm_min_ps(array[7], array[15]);
3539 array[15] = _mm_max_ps(array[7], array[15]);
3540 array[7] = tmp;
3541 tmp = _mm_min_ps(array[16], array[24]);
3542 array[24] = _mm_max_ps(array[16], array[24]);
3543 array[16] = tmp;
3544 tmp = _mm_min_ps(array[17], array[25]);
3545 array[25] = _mm_max_ps(array[17], array[25]);
3546 array[17] = tmp;
3547 tmp = _mm_min_ps(array[18], array[26]);
3548 array[26] = _mm_max_ps(array[18], array[26]);
3549 array[18] = tmp;
3550 tmp = _mm_min_ps(array[19], array[27]);
3551 array[27] = _mm_max_ps(array[19], array[27]);
3552 array[19] = tmp;
3553 tmp = _mm_min_ps(array[20], array[28]);
3554 array[28] = _mm_max_ps(array[20], array[28]);
3555 array[20] = tmp;
3556 tmp = _mm_min_ps(array[21], array[29]);
3557 array[29] = _mm_max_ps(array[21], array[29]);
3558 array[21] = tmp;
3559 tmp = _mm_min_ps(array[22], array[30]);
3560 array[30] = _mm_max_ps(array[22], array[30]);
3561 array[22] = tmp;
3562 tmp = _mm_min_ps(array[23], array[31]);
3563 array[31] = _mm_max_ps(array[23], array[31]);
3564 array[23] = tmp;
3565 tmp = _mm_min_ps(array[32], array[40]);
3566 array[40] = _mm_max_ps(array[32], array[40]);
3567 array[32] = tmp;
3568 tmp = _mm_min_ps(array[33], array[41]);
3569 array[41] = _mm_max_ps(array[33], array[41]);
3570 array[33] = tmp;
3571 tmp = _mm_min_ps(array[34], array[42]);
3572 array[42] = _mm_max_ps(array[34], array[42]);
3573 array[34] = tmp;
3574 tmp = _mm_min_ps(array[35], array[43]);
3575 array[43] = _mm_max_ps(array[35], array[43]);
3576 array[35] = tmp;
3577 tmp = _mm_min_ps(array[36], array[44]);
3578 array[44] = _mm_max_ps(array[36], array[44]);
3579 array[36] = tmp;
3580 tmp = _mm_min_ps(array[37], array[45]);
3581 array[45] = _mm_max_ps(array[37], array[45]);
3582 array[37] = tmp;
3583 tmp = _mm_min_ps(array[38], array[46]);
3584 array[46] = _mm_max_ps(array[38], array[46]);
3585 array[38] = tmp;
3586 tmp = _mm_min_ps(array[39], array[47]);
3587 array[47] = _mm_max_ps(array[39], array[47]);
3588 array[39] = tmp;
3589 tmp = _mm_min_ps(array[8], array[32]);
3590 array[32] = _mm_max_ps(array[8], array[32]);
3591 array[8] = tmp;
3592 tmp = _mm_min_ps(array[9], array[33]);
3593 array[33] = _mm_max_ps(array[9], array[33]);
3594 array[9] = tmp;
3595 tmp = _mm_min_ps(array[10], array[34]);
3596 array[34] = _mm_max_ps(array[10], array[34]);
3597 array[10] = tmp;
3598 tmp = _mm_min_ps(array[11], array[35]);
3599 array[35] = _mm_max_ps(array[11], array[35]);
3600 array[11] = tmp;
3601 tmp = _mm_min_ps(array[12], array[36]);
3602 array[36] = _mm_max_ps(array[12], array[36]);
3603 array[12] = tmp;
3604 tmp = _mm_min_ps(array[13], array[37]);
3605 array[37] = _mm_max_ps(array[13], array[37]);
3606 array[13] = tmp;
3607 tmp = _mm_min_ps(array[14], array[38]);
3608 array[38] = _mm_max_ps(array[14], array[38]);
3609 array[14] = tmp;
3610 tmp = _mm_min_ps(array[15], array[39]);
3611 array[39] = _mm_max_ps(array[15], array[39]);
3612 array[15] = tmp;
3613 tmp = _mm_min_ps(array[24], array[48]);
3614 array[48] = _mm_max_ps(array[24], array[48]);
3615 array[24] = tmp;
3616 tmp = _mm_min_ps(array[8], array[16]);
3617 array[16] = _mm_max_ps(array[8], array[16]);
3618 array[8] = tmp;
3619 tmp = _mm_min_ps(array[9], array[17]);
3620 array[17] = _mm_max_ps(array[9], array[17]);
3621 array[9] = tmp;
3622 tmp = _mm_min_ps(array[10], array[18]);
3623 array[18] = _mm_max_ps(array[10], array[18]);
3624 array[10] = tmp;
3625 tmp = _mm_min_ps(array[11], array[19]);
3626 array[19] = _mm_max_ps(array[11], array[19]);
3627 array[11] = tmp;
3628 tmp = _mm_min_ps(array[12], array[20]);
3629 array[20] = _mm_max_ps(array[12], array[20]);
3630 array[12] = tmp;
3631 tmp = _mm_min_ps(array[13], array[21]);
3632 array[21] = _mm_max_ps(array[13], array[21]);
3633 array[13] = tmp;
3634 tmp = _mm_min_ps(array[14], array[22]);
3635 array[22] = _mm_max_ps(array[14], array[22]);
3636 array[14] = tmp;
3637 tmp = _mm_min_ps(array[15], array[23]);
3638 array[23] = _mm_max_ps(array[15], array[23]);
3639 array[15] = tmp;
3640 tmp = _mm_min_ps(array[24], array[32]);
3641 array[32] = _mm_max_ps(array[24], array[32]);
3642 array[24] = tmp;
3643 tmp = _mm_min_ps(array[25], array[33]);
3644 array[33] = _mm_max_ps(array[25], array[33]);
3645 array[25] = tmp;
3646 tmp = _mm_min_ps(array[26], array[34]);
3647 array[34] = _mm_max_ps(array[26], array[34]);
3648 array[26] = tmp;
3649 tmp = _mm_min_ps(array[27], array[35]);
3650 array[35] = _mm_max_ps(array[27], array[35]);
3651 array[27] = tmp;
3652 tmp = _mm_min_ps(array[28], array[36]);
3653 array[36] = _mm_max_ps(array[28], array[36]);
3654 array[28] = tmp;
3655 tmp = _mm_min_ps(array[29], array[37]);
3656 array[37] = _mm_max_ps(array[29], array[37]);
3657 array[29] = tmp;
3658 tmp = _mm_min_ps(array[30], array[38]);
3659 array[38] = _mm_max_ps(array[30], array[38]);
3660 array[30] = tmp;
3661 tmp = _mm_min_ps(array[31], array[39]);
3662 array[39] = _mm_max_ps(array[31], array[39]);
3663 array[31] = tmp;
3664 tmp = _mm_min_ps(array[40], array[48]);
3665 array[48] = _mm_max_ps(array[40], array[48]);
3666 array[40] = tmp;
3667 tmp = _mm_min_ps(array[0], array[4]);
3668 array[4] = _mm_max_ps(array[0], array[4]);
3669 array[0] = tmp;
3670 tmp = _mm_min_ps(array[1], array[5]);
3671 array[5] = _mm_max_ps(array[1], array[5]);
3672 array[1] = tmp;
3673 tmp = _mm_min_ps(array[2], array[6]);
3674 array[6] = _mm_max_ps(array[2], array[6]);
3675 array[2] = tmp;
3676 tmp = _mm_min_ps(array[3], array[7]);
3677 array[7] = _mm_max_ps(array[3], array[7]);
3678 array[3] = tmp;
3679 tmp = _mm_min_ps(array[8], array[12]);
3680 array[12] = _mm_max_ps(array[8], array[12]);
3681 array[8] = tmp;
3682 tmp = _mm_min_ps(array[9], array[13]);
3683 array[13] = _mm_max_ps(array[9], array[13]);
3684 array[9] = tmp;
3685 tmp = _mm_min_ps(array[10], array[14]);
3686 array[14] = _mm_max_ps(array[10], array[14]);
3687 array[10] = tmp;
3688 tmp = _mm_min_ps(array[11], array[15]);
3689 array[15] = _mm_max_ps(array[11], array[15]);
3690 array[11] = tmp;
3691 tmp = _mm_min_ps(array[16], array[20]);
3692 array[20] = _mm_max_ps(array[16], array[20]);
3693 array[16] = tmp;
3694 tmp = _mm_min_ps(array[17], array[21]);
3695 array[21] = _mm_max_ps(array[17], array[21]);
3696 array[17] = tmp;
3697 tmp = _mm_min_ps(array[18], array[22]);
3698 array[22] = _mm_max_ps(array[18], array[22]);
3699 array[18] = tmp;
3700 tmp = _mm_min_ps(array[19], array[23]);
3701 array[23] = _mm_max_ps(array[19], array[23]);
3702 array[19] = tmp;
3703 tmp = _mm_min_ps(array[24], array[28]);
3704 array[28] = _mm_max_ps(array[24], array[28]);
3705 array[24] = tmp;
3706 tmp = _mm_min_ps(array[25], array[29]);
3707 array[29] = _mm_max_ps(array[25], array[29]);
3708 array[25] = tmp;
3709 tmp = _mm_min_ps(array[26], array[30]);
3710 array[30] = _mm_max_ps(array[26], array[30]);
3711 array[26] = tmp;
3712 tmp = _mm_min_ps(array[27], array[31]);
3713 array[31] = _mm_max_ps(array[27], array[31]);
3714 array[27] = tmp;
3715 tmp = _mm_min_ps(array[32], array[36]);
3716 array[36] = _mm_max_ps(array[32], array[36]);
3717 array[32] = tmp;
3718 tmp = _mm_min_ps(array[33], array[37]);
3719 array[37] = _mm_max_ps(array[33], array[37]);
3720 array[33] = tmp;
3721 tmp = _mm_min_ps(array[34], array[38]);
3722 array[38] = _mm_max_ps(array[34], array[38]);
3723 array[34] = tmp;
3724 tmp = _mm_min_ps(array[35], array[39]);
3725 array[39] = _mm_max_ps(array[35], array[39]);
3726 array[35] = tmp;
3727 tmp = _mm_min_ps(array[40], array[44]);
3728 array[44] = _mm_max_ps(array[40], array[44]);
3729 array[40] = tmp;
3730 tmp = _mm_min_ps(array[41], array[45]);
3731 array[45] = _mm_max_ps(array[41], array[45]);
3732 array[41] = tmp;
3733 tmp = _mm_min_ps(array[42], array[46]);
3734 array[46] = _mm_max_ps(array[42], array[46]);
3735 array[42] = tmp;
3736 tmp = _mm_min_ps(array[43], array[47]);
3737 array[47] = _mm_max_ps(array[43], array[47]);
3738 array[43] = tmp;
3739 tmp = _mm_min_ps(array[4], array[32]);
3740 array[32] = _mm_max_ps(array[4], array[32]);
3741 array[4] = tmp;
3742 tmp = _mm_min_ps(array[5], array[33]);
3743 array[33] = _mm_max_ps(array[5], array[33]);
3744 array[5] = tmp;
3745 tmp = _mm_min_ps(array[6], array[34]);
3746 array[34] = _mm_max_ps(array[6], array[34]);
3747 array[6] = tmp;
3748 tmp = _mm_min_ps(array[7], array[35]);
3749 array[35] = _mm_max_ps(array[7], array[35]);
3750 array[7] = tmp;
3751 tmp = _mm_min_ps(array[12], array[40]);
3752 array[40] = _mm_max_ps(array[12], array[40]);
3753 array[12] = tmp;
3754 tmp = _mm_min_ps(array[13], array[41]);
3755 array[41] = _mm_max_ps(array[13], array[41]);
3756 array[13] = tmp;
3757 tmp = _mm_min_ps(array[14], array[42]);
3758 array[42] = _mm_max_ps(array[14], array[42]);
3759 array[14] = tmp;
3760 tmp = _mm_min_ps(array[15], array[43]);
3761 array[43] = _mm_max_ps(array[15], array[43]);
3762 array[15] = tmp;
3763 tmp = _mm_min_ps(array[20], array[48]);
3764 array[48] = _mm_max_ps(array[20], array[48]);
3765 array[20] = tmp;
3766 tmp = _mm_min_ps(array[4], array[16]);
3767 array[16] = _mm_max_ps(array[4], array[16]);
3768 array[4] = tmp;
3769 tmp = _mm_min_ps(array[5], array[17]);
3770 array[17] = _mm_max_ps(array[5], array[17]);
3771 array[5] = tmp;
3772 tmp = _mm_min_ps(array[6], array[18]);
3773 array[18] = _mm_max_ps(array[6], array[18]);
3774 array[6] = tmp;
3775 tmp = _mm_min_ps(array[7], array[19]);
3776 array[19] = _mm_max_ps(array[7], array[19]);
3777 array[7] = tmp;
3778 tmp = _mm_min_ps(array[12], array[24]);
3779 array[24] = _mm_max_ps(array[12], array[24]);
3780 array[12] = tmp;
3781 tmp = _mm_min_ps(array[13], array[25]);
3782 array[25] = _mm_max_ps(array[13], array[25]);
3783 array[13] = tmp;
3784 tmp = _mm_min_ps(array[14], array[26]);
3785 array[26] = _mm_max_ps(array[14], array[26]);
3786 array[14] = tmp;
3787 tmp = _mm_min_ps(array[15], array[27]);
3788 array[27] = _mm_max_ps(array[15], array[27]);
3789 array[15] = tmp;
3790 tmp = _mm_min_ps(array[20], array[32]);
3791 array[32] = _mm_max_ps(array[20], array[32]);
3792 array[20] = tmp;
3793 tmp = _mm_min_ps(array[21], array[33]);
3794 array[33] = _mm_max_ps(array[21], array[33]);
3795 array[21] = tmp;
3796 tmp = _mm_min_ps(array[22], array[34]);
3797 array[34] = _mm_max_ps(array[22], array[34]);
3798 array[22] = tmp;
3799 tmp = _mm_min_ps(array[23], array[35]);
3800 array[35] = _mm_max_ps(array[23], array[35]);
3801 array[23] = tmp;
3802 tmp = _mm_min_ps(array[28], array[40]);
3803 array[40] = _mm_max_ps(array[28], array[40]);
3804 array[28] = tmp;
3805 tmp = _mm_min_ps(array[29], array[41]);
3806 array[41] = _mm_max_ps(array[29], array[41]);
3807 array[29] = tmp;
3808 tmp = _mm_min_ps(array[30], array[42]);
3809 array[42] = _mm_max_ps(array[30], array[42]);
3810 array[30] = tmp;
3811 tmp = _mm_min_ps(array[31], array[43]);
3812 array[43] = _mm_max_ps(array[31], array[43]);
3813 array[31] = tmp;
3814 tmp = _mm_min_ps(array[36], array[48]);
3815 array[48] = _mm_max_ps(array[36], array[48]);
3816 array[36] = tmp;
3817 tmp = _mm_min_ps(array[4], array[8]);
3818 array[8] = _mm_max_ps(array[4], array[8]);
3819 array[4] = tmp;
3820 tmp = _mm_min_ps(array[5], array[9]);
3821 array[9] = _mm_max_ps(array[5], array[9]);
3822 array[5] = tmp;
3823 tmp = _mm_min_ps(array[6], array[10]);
3824 array[10] = _mm_max_ps(array[6], array[10]);
3825 array[6] = tmp;
3826 tmp = _mm_min_ps(array[7], array[11]);
3827 array[11] = _mm_max_ps(array[7], array[11]);
3828 array[7] = tmp;
3829 tmp = _mm_min_ps(array[12], array[16]);
3830 array[16] = _mm_max_ps(array[12], array[16]);
3831 array[12] = tmp;
3832 tmp = _mm_min_ps(array[13], array[17]);
3833 array[17] = _mm_max_ps(array[13], array[17]);
3834 array[13] = tmp;
3835 tmp = _mm_min_ps(array[14], array[18]);
3836 array[18] = _mm_max_ps(array[14], array[18]);
3837 array[14] = tmp;
3838 tmp = _mm_min_ps(array[15], array[19]);
3839 array[19] = _mm_max_ps(array[15], array[19]);
3840 array[15] = tmp;
3841 tmp = _mm_min_ps(array[20], array[24]);
3842 array[24] = _mm_max_ps(array[20], array[24]);
3843 array[20] = tmp;
3844 tmp = _mm_min_ps(array[21], array[25]);
3845 array[25] = _mm_max_ps(array[21], array[25]);
3846 array[21] = tmp;
3847 tmp = _mm_min_ps(array[22], array[26]);
3848 array[26] = _mm_max_ps(array[22], array[26]);
3849 array[22] = tmp;
3850 tmp = _mm_min_ps(array[23], array[27]);
3851 array[27] = _mm_max_ps(array[23], array[27]);
3852 array[23] = tmp;
3853 tmp = _mm_min_ps(array[28], array[32]);
3854 array[32] = _mm_max_ps(array[28], array[32]);
3855 array[28] = tmp;
3856 tmp = _mm_min_ps(array[29], array[33]);
3857 array[33] = _mm_max_ps(array[29], array[33]);
3858 array[29] = tmp;
3859 tmp = _mm_min_ps(array[30], array[34]);
3860 array[34] = _mm_max_ps(array[30], array[34]);
3861 array[30] = tmp;
3862 tmp = _mm_min_ps(array[31], array[35]);
3863 array[35] = _mm_max_ps(array[31], array[35]);
3864 array[31] = tmp;
3865 tmp = _mm_min_ps(array[36], array[40]);
3866 array[40] = _mm_max_ps(array[36], array[40]);
3867 array[36] = tmp;
3868 tmp = _mm_min_ps(array[37], array[41]);
3869 array[41] = _mm_max_ps(array[37], array[41]);
3870 array[37] = tmp;
3871 tmp = _mm_min_ps(array[38], array[42]);
3872 array[42] = _mm_max_ps(array[38], array[42]);
3873 array[38] = tmp;
3874 tmp = _mm_min_ps(array[39], array[43]);
3875 array[43] = _mm_max_ps(array[39], array[43]);
3876 array[39] = tmp;
3877 tmp = _mm_min_ps(array[44], array[48]);
3878 array[48] = _mm_max_ps(array[44], array[48]);
3879 array[44] = tmp;
3880 tmp = _mm_min_ps(array[0], array[2]);
3881 array[2] = _mm_max_ps(array[0], array[2]);
3882 array[0] = tmp;
3883 tmp = _mm_min_ps(array[1], array[3]);
3884 array[3] = _mm_max_ps(array[1], array[3]);
3885 array[1] = tmp;
3886 tmp = _mm_min_ps(array[4], array[6]);
3887 array[6] = _mm_max_ps(array[4], array[6]);
3888 array[4] = tmp;
3889 tmp = _mm_min_ps(array[5], array[7]);
3890 array[7] = _mm_max_ps(array[5], array[7]);
3891 array[5] = tmp;
3892 tmp = _mm_min_ps(array[8], array[10]);
3893 array[10] = _mm_max_ps(array[8], array[10]);
3894 array[8] = tmp;
3895 tmp = _mm_min_ps(array[9], array[11]);
3896 array[11] = _mm_max_ps(array[9], array[11]);
3897 array[9] = tmp;
3898 tmp = _mm_min_ps(array[12], array[14]);
3899 array[14] = _mm_max_ps(array[12], array[14]);
3900 array[12] = tmp;
3901 tmp = _mm_min_ps(array[13], array[15]);
3902 array[15] = _mm_max_ps(array[13], array[15]);
3903 array[13] = tmp;
3904 tmp = _mm_min_ps(array[16], array[18]);
3905 array[18] = _mm_max_ps(array[16], array[18]);
3906 array[16] = tmp;
3907 tmp = _mm_min_ps(array[17], array[19]);
3908 array[19] = _mm_max_ps(array[17], array[19]);
3909 array[17] = tmp;
3910 tmp = _mm_min_ps(array[20], array[22]);
3911 array[22] = _mm_max_ps(array[20], array[22]);
3912 array[20] = tmp;
3913 tmp = _mm_min_ps(array[21], array[23]);
3914 array[23] = _mm_max_ps(array[21], array[23]);
3915 array[21] = tmp;
3916 tmp = _mm_min_ps(array[24], array[26]);
3917 array[26] = _mm_max_ps(array[24], array[26]);
3918 array[24] = tmp;
3919 tmp = _mm_min_ps(array[25], array[27]);
3920 array[27] = _mm_max_ps(array[25], array[27]);
3921 array[25] = tmp;
3922 tmp = _mm_min_ps(array[28], array[30]);
3923 array[30] = _mm_max_ps(array[28], array[30]);
3924 array[28] = tmp;
3925 tmp = _mm_min_ps(array[29], array[31]);
3926 array[31] = _mm_max_ps(array[29], array[31]);
3927 array[29] = tmp;
3928 tmp = _mm_min_ps(array[32], array[34]);
3929 array[34] = _mm_max_ps(array[32], array[34]);
3930 array[32] = tmp;
3931 tmp = _mm_min_ps(array[33], array[35]);
3932 array[35] = _mm_max_ps(array[33], array[35]);
3933 array[33] = tmp;
3934 tmp = _mm_min_ps(array[36], array[38]);
3935 array[38] = _mm_max_ps(array[36], array[38]);
3936 array[36] = tmp;
3937 tmp = _mm_min_ps(array[37], array[39]);
3938 array[39] = _mm_max_ps(array[37], array[39]);
3939 array[37] = tmp;
3940 tmp = _mm_min_ps(array[40], array[42]);
3941 array[42] = _mm_max_ps(array[40], array[42]);
3942 array[40] = tmp;
3943 tmp = _mm_min_ps(array[41], array[43]);
3944 array[43] = _mm_max_ps(array[41], array[43]);
3945 array[41] = tmp;
3946 tmp = _mm_min_ps(array[44], array[46]);
3947 array[46] = _mm_max_ps(array[44], array[46]);
3948 array[44] = tmp;
3949 tmp = _mm_min_ps(array[45], array[47]);
3950 array[47] = _mm_max_ps(array[45], array[47]);
3951 array[45] = tmp;
3952 tmp = _mm_min_ps(array[2], array[32]);
3953 array[32] = _mm_max_ps(array[2], array[32]);
3954 array[2] = tmp;
3955 tmp = _mm_min_ps(array[3], array[33]);
3956 array[33] = _mm_max_ps(array[3], array[33]);
3957 array[3] = tmp;
3958 tmp = _mm_min_ps(array[6], array[36]);
3959 array[36] = _mm_max_ps(array[6], array[36]);
3960 array[6] = tmp;
3961 tmp = _mm_min_ps(array[7], array[37]);
3962 array[37] = _mm_max_ps(array[7], array[37]);
3963 array[7] = tmp;
3964 tmp = _mm_min_ps(array[10], array[40]);
3965 array[40] = _mm_max_ps(array[10], array[40]);
3966 array[10] = tmp;
3967 tmp = _mm_min_ps(array[11], array[41]);
3968 array[41] = _mm_max_ps(array[11], array[41]);
3969 array[11] = tmp;
3970 tmp = _mm_min_ps(array[14], array[44]);
3971 array[44] = _mm_max_ps(array[14], array[44]);
3972 array[14] = tmp;
3973 tmp = _mm_min_ps(array[15], array[45]);
3974 array[45] = _mm_max_ps(array[15], array[45]);
3975 array[15] = tmp;
3976 tmp = _mm_min_ps(array[18], array[48]);
3977 array[48] = _mm_max_ps(array[18], array[48]);
3978 array[18] = tmp;
3979 tmp = _mm_min_ps(array[2], array[16]);
3980 array[16] = _mm_max_ps(array[2], array[16]);
3981 array[2] = tmp;
3982 tmp = _mm_min_ps(array[3], array[17]);
3983 array[17] = _mm_max_ps(array[3], array[17]);
3984 array[3] = tmp;
3985 tmp = _mm_min_ps(array[6], array[20]);
3986 array[20] = _mm_max_ps(array[6], array[20]);
3987 array[6] = tmp;
3988 tmp = _mm_min_ps(array[7], array[21]);
3989 array[21] = _mm_max_ps(array[7], array[21]);
3990 array[7] = tmp;
3991 tmp = _mm_min_ps(array[10], array[24]);
3992 array[24] = _mm_max_ps(array[10], array[24]);
3993 array[10] = tmp;
3994 tmp = _mm_min_ps(array[11], array[25]);
3995 array[25] = _mm_max_ps(array[11], array[25]);
3996 array[11] = tmp;
3997 tmp = _mm_min_ps(array[14], array[28]);
3998 array[28] = _mm_max_ps(array[14], array[28]);
3999 array[14] = tmp;
4000 tmp = _mm_min_ps(array[15], array[29]);
4001 array[29] = _mm_max_ps(array[15], array[29]);
4002 array[15] = tmp;
4003 tmp = _mm_min_ps(array[18], array[32]);
4004 array[32] = _mm_max_ps(array[18], array[32]);
4005 array[18] = tmp;
4006 tmp = _mm_min_ps(array[19], array[33]);
4007 array[33] = _mm_max_ps(array[19], array[33]);
4008 array[19] = tmp;
4009 tmp = _mm_min_ps(array[22], array[36]);
4010 array[36] = _mm_max_ps(array[22], array[36]);
4011 array[22] = tmp;
4012 tmp = _mm_min_ps(array[23], array[37]);
4013 array[37] = _mm_max_ps(array[23], array[37]);
4014 array[23] = tmp;
4015 tmp = _mm_min_ps(array[26], array[40]);
4016 array[40] = _mm_max_ps(array[26], array[40]);
4017 array[26] = tmp;
4018 tmp = _mm_min_ps(array[27], array[41]);
4019 array[41] = _mm_max_ps(array[27], array[41]);
4020 array[27] = tmp;
4021 tmp = _mm_min_ps(array[30], array[44]);
4022 array[44] = _mm_max_ps(array[30], array[44]);
4023 array[30] = tmp;
4024 tmp = _mm_min_ps(array[31], array[45]);
4025 array[45] = _mm_max_ps(array[31], array[45]);
4026 array[31] = tmp;
4027 tmp = _mm_min_ps(array[34], array[48]);
4028 array[48] = _mm_max_ps(array[34], array[48]);
4029 array[34] = tmp;
4030 tmp = _mm_min_ps(array[2], array[8]);
4031 array[8] = _mm_max_ps(array[2], array[8]);
4032 array[2] = tmp;
4033 tmp = _mm_min_ps(array[3], array[9]);
4034 array[9] = _mm_max_ps(array[3], array[9]);
4035 array[3] = tmp;
4036 tmp = _mm_min_ps(array[6], array[12]);
4037 array[12] = _mm_max_ps(array[6], array[12]);
4038 array[6] = tmp;
4039 tmp = _mm_min_ps(array[7], array[13]);
4040 array[13] = _mm_max_ps(array[7], array[13]);
4041 array[7] = tmp;
4042 tmp = _mm_min_ps(array[10], array[16]);
4043 array[16] = _mm_max_ps(array[10], array[16]);
4044 array[10] = tmp;
4045 tmp = _mm_min_ps(array[11], array[17]);
4046 array[17] = _mm_max_ps(array[11], array[17]);
4047 array[11] = tmp;
4048 tmp = _mm_min_ps(array[14], array[20]);
4049 array[20] = _mm_max_ps(array[14], array[20]);
4050 array[14] = tmp;
4051 tmp = _mm_min_ps(array[15], array[21]);
4052 array[21] = _mm_max_ps(array[15], array[21]);
4053 array[15] = tmp;
4054 tmp = _mm_min_ps(array[18], array[24]);
4055 array[24] = _mm_max_ps(array[18], array[24]);
4056 array[18] = tmp;
4057 tmp = _mm_min_ps(array[19], array[25]);
4058 array[25] = _mm_max_ps(array[19], array[25]);
4059 array[19] = tmp;
4060 tmp = _mm_min_ps(array[22], array[28]);
4061 array[28] = _mm_max_ps(array[22], array[28]);
4062 array[22] = tmp;
4063 tmp = _mm_min_ps(array[23], array[29]);
4064 array[29] = _mm_max_ps(array[23], array[29]);
4065 array[23] = tmp;
4066 tmp = _mm_min_ps(array[26], array[32]);
4067 array[32] = _mm_max_ps(array[26], array[32]);
4068 array[26] = tmp;
4069 tmp = _mm_min_ps(array[27], array[33]);
4070 array[33] = _mm_max_ps(array[27], array[33]);
4071 array[27] = tmp;
4072 tmp = _mm_min_ps(array[30], array[36]);
4073 array[36] = _mm_max_ps(array[30], array[36]);
4074 array[30] = tmp;
4075 tmp = _mm_min_ps(array[31], array[37]);
4076 array[37] = _mm_max_ps(array[31], array[37]);
4077 array[31] = tmp;
4078 tmp = _mm_min_ps(array[34], array[40]);
4079 array[40] = _mm_max_ps(array[34], array[40]);
4080 array[34] = tmp;
4081 tmp = _mm_min_ps(array[35], array[41]);
4082 array[41] = _mm_max_ps(array[35], array[41]);
4083 array[35] = tmp;
4084 tmp = _mm_min_ps(array[38], array[44]);
4085 array[44] = _mm_max_ps(array[38], array[44]);
4086 array[38] = tmp;
4087 tmp = _mm_min_ps(array[39], array[45]);
4088 array[45] = _mm_max_ps(array[39], array[45]);
4089 array[39] = tmp;
4090 tmp = _mm_min_ps(array[42], array[48]);
4091 array[48] = _mm_max_ps(array[42], array[48]);
4092 array[42] = tmp;
4093 tmp = _mm_min_ps(array[2], array[4]);
4094 array[4] = _mm_max_ps(array[2], array[4]);
4095 array[2] = tmp;
4096 tmp = _mm_min_ps(array[3], array[5]);
4097 array[5] = _mm_max_ps(array[3], array[5]);
4098 array[3] = tmp;
4099 tmp = _mm_min_ps(array[6], array[8]);
4100 array[8] = _mm_max_ps(array[6], array[8]);
4101 array[6] = tmp;
4102 tmp = _mm_min_ps(array[7], array[9]);
4103 array[9] = _mm_max_ps(array[7], array[9]);
4104 array[7] = tmp;
4105 tmp = _mm_min_ps(array[10], array[12]);
4106 array[12] = _mm_max_ps(array[10], array[12]);
4107 array[10] = tmp;
4108 tmp = _mm_min_ps(array[11], array[13]);
4109 array[13] = _mm_max_ps(array[11], array[13]);
4110 array[11] = tmp;
4111 tmp = _mm_min_ps(array[14], array[16]);
4112 array[16] = _mm_max_ps(array[14], array[16]);
4113 array[14] = tmp;
4114 tmp = _mm_min_ps(array[15], array[17]);
4115 array[17] = _mm_max_ps(array[15], array[17]);
4116 array[15] = tmp;
4117 tmp = _mm_min_ps(array[18], array[20]);
4118 array[20] = _mm_max_ps(array[18], array[20]);
4119 array[18] = tmp;
4120 tmp = _mm_min_ps(array[19], array[21]);
4121 array[21] = _mm_max_ps(array[19], array[21]);
4122 array[19] = tmp;
4123 tmp = _mm_min_ps(array[22], array[24]);
4124 array[24] = _mm_max_ps(array[22], array[24]);
4125 array[22] = tmp;
4126 tmp = _mm_min_ps(array[23], array[25]);
4127 array[25] = _mm_max_ps(array[23], array[25]);
4128 array[23] = tmp;
4129 tmp = _mm_min_ps(array[26], array[28]);
4130 array[28] = _mm_max_ps(array[26], array[28]);
4131 array[26] = tmp;
4132 tmp = _mm_min_ps(array[27], array[29]);
4133 array[29] = _mm_max_ps(array[27], array[29]);
4134 array[27] = tmp;
4135 tmp = _mm_min_ps(array[30], array[32]);
4136 array[32] = _mm_max_ps(array[30], array[32]);
4137 array[30] = tmp;
4138 tmp = _mm_min_ps(array[31], array[33]);
4139 array[33] = _mm_max_ps(array[31], array[33]);
4140 array[31] = tmp;
4141 tmp = _mm_min_ps(array[34], array[36]);
4142 array[36] = _mm_max_ps(array[34], array[36]);
4143 array[34] = tmp;
4144 tmp = _mm_min_ps(array[35], array[37]);
4145 array[37] = _mm_max_ps(array[35], array[37]);
4146 array[35] = tmp;
4147 tmp = _mm_min_ps(array[38], array[40]);
4148 array[40] = _mm_max_ps(array[38], array[40]);
4149 array[38] = tmp;
4150 tmp = _mm_min_ps(array[39], array[41]);
4151 array[41] = _mm_max_ps(array[39], array[41]);
4152 array[39] = tmp;
4153 tmp = _mm_min_ps(array[42], array[44]);
4154 array[44] = _mm_max_ps(array[42], array[44]);
4155 array[42] = tmp;
4156 tmp = _mm_min_ps(array[43], array[45]);
4157 array[45] = _mm_max_ps(array[43], array[45]);
4158 array[43] = tmp;
4159 tmp = _mm_min_ps(array[46], array[48]);
4160 array[48] = _mm_max_ps(array[46], array[48]);
4161 array[46] = tmp;
4162 array[1] = _mm_max_ps(array[0], array[1]);
4163 array[3] = _mm_max_ps(array[2], array[3]);
4164 array[5] = _mm_max_ps(array[4], array[5]);
4165 array[7] = _mm_max_ps(array[6], array[7]);
4166 array[9] = _mm_max_ps(array[8], array[9]);
4167 array[11] = _mm_max_ps(array[10], array[11]);
4168 array[13] = _mm_max_ps(array[12], array[13]);
4169 array[15] = _mm_max_ps(array[14], array[15]);
4170 array[17] = _mm_max_ps(array[16], array[17]);
4171 array[19] = _mm_max_ps(array[18], array[19]);
4172 array[21] = _mm_max_ps(array[20], array[21]);
4173 array[23] = _mm_max_ps(array[22], array[23]);
4174 array[24] = _mm_min_ps(array[24], array[25]);
4175 array[26] = _mm_min_ps(array[26], array[27]);
4176 array[28] = _mm_min_ps(array[28], array[29]);
4177 array[30] = _mm_min_ps(array[30], array[31]);
4178 array[32] = _mm_min_ps(array[32], array[33]);
4179 array[34] = _mm_min_ps(array[34], array[35]);
4180 array[36] = _mm_min_ps(array[36], array[37]);
4181 array[38] = _mm_min_ps(array[38], array[39]);
4182 array[40] = _mm_min_ps(array[40], array[41]);
4183 array[42] = _mm_min_ps(array[42], array[43]);
4184 array[44] = _mm_min_ps(array[44], array[45]);
4185 array[46] = _mm_min_ps(array[46], array[47]);
4186 array[32] = _mm_max_ps(array[1], array[32]);
4187 array[34] = _mm_max_ps(array[3], array[34]);
4188 array[36] = _mm_max_ps(array[5], array[36]);
4189 array[38] = _mm_max_ps(array[7], array[38]);
4190 array[9] = _mm_min_ps(array[9], array[40]);
4191 array[11] = _mm_min_ps(array[11], array[42]);
4192 array[13] = _mm_min_ps(array[13], array[44]);
4193 array[15] = _mm_min_ps(array[15], array[46]);
4194 array[17] = _mm_min_ps(array[17], array[48]);
4195 array[24] = _mm_max_ps(array[9], array[24]);
4196 array[26] = _mm_max_ps(array[11], array[26]);
4197 array[28] = _mm_max_ps(array[13], array[28]);
4198 array[30] = _mm_max_ps(array[15], array[30]);
4199 array[17] = _mm_min_ps(array[17], array[32]);
4200 array[19] = _mm_min_ps(array[19], array[34]);
4201 array[21] = _mm_min_ps(array[21], array[36]);
4202 array[23] = _mm_min_ps(array[23], array[38]);
4203 array[24] = _mm_max_ps(array[17], array[24]);
4204 array[26] = _mm_max_ps(array[19], array[26]);
4205 array[21] = _mm_min_ps(array[21], array[28]);
4206 array[23] = _mm_min_ps(array[23], array[30]);
4207 array[24] = _mm_max_ps(array[21], array[24]);
4208 array[23] = _mm_min_ps(array[23], array[26]);
4209 return _mm_max_ps(array[23], array[24]);
4210 }
4211
median9x9sse(__m128 * array)4212 __m128 median9x9sse(__m128* array)
4213 {
4214 __m128 tmp = _mm_min_ps(array[0], array[64]);
4215 array[64] = _mm_max_ps(array[0], array[64]);
4216 array[0] = tmp;
4217 tmp = _mm_min_ps(array[1], array[65]);
4218 array[65] = _mm_max_ps(array[1], array[65]);
4219 array[1] = tmp;
4220 tmp = _mm_min_ps(array[2], array[66]);
4221 array[66] = _mm_max_ps(array[2], array[66]);
4222 array[2] = tmp;
4223 tmp = _mm_min_ps(array[3], array[67]);
4224 array[67] = _mm_max_ps(array[3], array[67]);
4225 array[3] = tmp;
4226 tmp = _mm_min_ps(array[4], array[68]);
4227 array[68] = _mm_max_ps(array[4], array[68]);
4228 array[4] = tmp;
4229 tmp = _mm_min_ps(array[5], array[69]);
4230 array[69] = _mm_max_ps(array[5], array[69]);
4231 array[5] = tmp;
4232 tmp = _mm_min_ps(array[6], array[70]);
4233 array[70] = _mm_max_ps(array[6], array[70]);
4234 array[6] = tmp;
4235 tmp = _mm_min_ps(array[7], array[71]);
4236 array[71] = _mm_max_ps(array[7], array[71]);
4237 array[7] = tmp;
4238 tmp = _mm_min_ps(array[8], array[72]);
4239 array[72] = _mm_max_ps(array[8], array[72]);
4240 array[8] = tmp;
4241 tmp = _mm_min_ps(array[9], array[73]);
4242 array[73] = _mm_max_ps(array[9], array[73]);
4243 array[9] = tmp;
4244 tmp = _mm_min_ps(array[10], array[74]);
4245 array[74] = _mm_max_ps(array[10], array[74]);
4246 array[10] = tmp;
4247 tmp = _mm_min_ps(array[11], array[75]);
4248 array[75] = _mm_max_ps(array[11], array[75]);
4249 array[11] = tmp;
4250 tmp = _mm_min_ps(array[12], array[76]);
4251 array[76] = _mm_max_ps(array[12], array[76]);
4252 array[12] = tmp;
4253 tmp = _mm_min_ps(array[13], array[77]);
4254 array[77] = _mm_max_ps(array[13], array[77]);
4255 array[13] = tmp;
4256 tmp = _mm_min_ps(array[14], array[78]);
4257 array[78] = _mm_max_ps(array[14], array[78]);
4258 array[14] = tmp;
4259 tmp = _mm_min_ps(array[15], array[79]);
4260 array[79] = _mm_max_ps(array[15], array[79]);
4261 array[15] = tmp;
4262 tmp = _mm_min_ps(array[16], array[80]);
4263 array[80] = _mm_max_ps(array[16], array[80]);
4264 array[16] = tmp;
4265 tmp = _mm_min_ps(array[0], array[32]);
4266 array[32] = _mm_max_ps(array[0], array[32]);
4267 array[0] = tmp;
4268 tmp = _mm_min_ps(array[1], array[33]);
4269 array[33] = _mm_max_ps(array[1], array[33]);
4270 array[1] = tmp;
4271 tmp = _mm_min_ps(array[2], array[34]);
4272 array[34] = _mm_max_ps(array[2], array[34]);
4273 array[2] = tmp;
4274 tmp = _mm_min_ps(array[3], array[35]);
4275 array[35] = _mm_max_ps(array[3], array[35]);
4276 array[3] = tmp;
4277 tmp = _mm_min_ps(array[4], array[36]);
4278 array[36] = _mm_max_ps(array[4], array[36]);
4279 array[4] = tmp;
4280 tmp = _mm_min_ps(array[5], array[37]);
4281 array[37] = _mm_max_ps(array[5], array[37]);
4282 array[5] = tmp;
4283 tmp = _mm_min_ps(array[6], array[38]);
4284 array[38] = _mm_max_ps(array[6], array[38]);
4285 array[6] = tmp;
4286 tmp = _mm_min_ps(array[7], array[39]);
4287 array[39] = _mm_max_ps(array[7], array[39]);
4288 array[7] = tmp;
4289 tmp = _mm_min_ps(array[8], array[40]);
4290 array[40] = _mm_max_ps(array[8], array[40]);
4291 array[8] = tmp;
4292 tmp = _mm_min_ps(array[9], array[41]);
4293 array[41] = _mm_max_ps(array[9], array[41]);
4294 array[9] = tmp;
4295 tmp = _mm_min_ps(array[10], array[42]);
4296 array[42] = _mm_max_ps(array[10], array[42]);
4297 array[10] = tmp;
4298 tmp = _mm_min_ps(array[11], array[43]);
4299 array[43] = _mm_max_ps(array[11], array[43]);
4300 array[11] = tmp;
4301 tmp = _mm_min_ps(array[12], array[44]);
4302 array[44] = _mm_max_ps(array[12], array[44]);
4303 array[12] = tmp;
4304 tmp = _mm_min_ps(array[13], array[45]);
4305 array[45] = _mm_max_ps(array[13], array[45]);
4306 array[13] = tmp;
4307 tmp = _mm_min_ps(array[14], array[46]);
4308 array[46] = _mm_max_ps(array[14], array[46]);
4309 array[14] = tmp;
4310 tmp = _mm_min_ps(array[15], array[47]);
4311 array[47] = _mm_max_ps(array[15], array[47]);
4312 array[15] = tmp;
4313 tmp = _mm_min_ps(array[16], array[48]);
4314 array[48] = _mm_max_ps(array[16], array[48]);
4315 array[16] = tmp;
4316 tmp = _mm_min_ps(array[17], array[49]);
4317 array[49] = _mm_max_ps(array[17], array[49]);
4318 array[17] = tmp;
4319 tmp = _mm_min_ps(array[18], array[50]);
4320 array[50] = _mm_max_ps(array[18], array[50]);
4321 array[18] = tmp;
4322 tmp = _mm_min_ps(array[19], array[51]);
4323 array[51] = _mm_max_ps(array[19], array[51]);
4324 array[19] = tmp;
4325 tmp = _mm_min_ps(array[20], array[52]);
4326 array[52] = _mm_max_ps(array[20], array[52]);
4327 array[20] = tmp;
4328 tmp = _mm_min_ps(array[21], array[53]);
4329 array[53] = _mm_max_ps(array[21], array[53]);
4330 array[21] = tmp;
4331 tmp = _mm_min_ps(array[22], array[54]);
4332 array[54] = _mm_max_ps(array[22], array[54]);
4333 array[22] = tmp;
4334 tmp = _mm_min_ps(array[23], array[55]);
4335 array[55] = _mm_max_ps(array[23], array[55]);
4336 array[23] = tmp;
4337 tmp = _mm_min_ps(array[24], array[56]);
4338 array[56] = _mm_max_ps(array[24], array[56]);
4339 array[24] = tmp;
4340 tmp = _mm_min_ps(array[25], array[57]);
4341 array[57] = _mm_max_ps(array[25], array[57]);
4342 array[25] = tmp;
4343 tmp = _mm_min_ps(array[26], array[58]);
4344 array[58] = _mm_max_ps(array[26], array[58]);
4345 array[26] = tmp;
4346 tmp = _mm_min_ps(array[27], array[59]);
4347 array[59] = _mm_max_ps(array[27], array[59]);
4348 array[27] = tmp;
4349 tmp = _mm_min_ps(array[28], array[60]);
4350 array[60] = _mm_max_ps(array[28], array[60]);
4351 array[28] = tmp;
4352 tmp = _mm_min_ps(array[29], array[61]);
4353 array[61] = _mm_max_ps(array[29], array[61]);
4354 array[29] = tmp;
4355 tmp = _mm_min_ps(array[30], array[62]);
4356 array[62] = _mm_max_ps(array[30], array[62]);
4357 array[30] = tmp;
4358 tmp = _mm_min_ps(array[31], array[63]);
4359 array[63] = _mm_max_ps(array[31], array[63]);
4360 array[31] = tmp;
4361 tmp = _mm_min_ps(array[32], array[64]);
4362 array[64] = _mm_max_ps(array[32], array[64]);
4363 array[32] = tmp;
4364 tmp = _mm_min_ps(array[33], array[65]);
4365 array[65] = _mm_max_ps(array[33], array[65]);
4366 array[33] = tmp;
4367 tmp = _mm_min_ps(array[34], array[66]);
4368 array[66] = _mm_max_ps(array[34], array[66]);
4369 array[34] = tmp;
4370 tmp = _mm_min_ps(array[35], array[67]);
4371 array[67] = _mm_max_ps(array[35], array[67]);
4372 array[35] = tmp;
4373 tmp = _mm_min_ps(array[36], array[68]);
4374 array[68] = _mm_max_ps(array[36], array[68]);
4375 array[36] = tmp;
4376 tmp = _mm_min_ps(array[37], array[69]);
4377 array[69] = _mm_max_ps(array[37], array[69]);
4378 array[37] = tmp;
4379 tmp = _mm_min_ps(array[38], array[70]);
4380 array[70] = _mm_max_ps(array[38], array[70]);
4381 array[38] = tmp;
4382 tmp = _mm_min_ps(array[39], array[71]);
4383 array[71] = _mm_max_ps(array[39], array[71]);
4384 array[39] = tmp;
4385 tmp = _mm_min_ps(array[40], array[72]);
4386 array[72] = _mm_max_ps(array[40], array[72]);
4387 array[40] = tmp;
4388 tmp = _mm_min_ps(array[41], array[73]);
4389 array[73] = _mm_max_ps(array[41], array[73]);
4390 array[41] = tmp;
4391 tmp = _mm_min_ps(array[42], array[74]);
4392 array[74] = _mm_max_ps(array[42], array[74]);
4393 array[42] = tmp;
4394 tmp = _mm_min_ps(array[43], array[75]);
4395 array[75] = _mm_max_ps(array[43], array[75]);
4396 array[43] = tmp;
4397 tmp = _mm_min_ps(array[44], array[76]);
4398 array[76] = _mm_max_ps(array[44], array[76]);
4399 array[44] = tmp;
4400 tmp = _mm_min_ps(array[45], array[77]);
4401 array[77] = _mm_max_ps(array[45], array[77]);
4402 array[45] = tmp;
4403 tmp = _mm_min_ps(array[46], array[78]);
4404 array[78] = _mm_max_ps(array[46], array[78]);
4405 array[46] = tmp;
4406 tmp = _mm_min_ps(array[47], array[79]);
4407 array[79] = _mm_max_ps(array[47], array[79]);
4408 array[47] = tmp;
4409 tmp = _mm_min_ps(array[48], array[80]);
4410 array[80] = _mm_max_ps(array[48], array[80]);
4411 array[48] = tmp;
4412 tmp = _mm_min_ps(array[0], array[16]);
4413 array[16] = _mm_max_ps(array[0], array[16]);
4414 array[0] = tmp;
4415 tmp = _mm_min_ps(array[1], array[17]);
4416 array[17] = _mm_max_ps(array[1], array[17]);
4417 array[1] = tmp;
4418 tmp = _mm_min_ps(array[2], array[18]);
4419 array[18] = _mm_max_ps(array[2], array[18]);
4420 array[2] = tmp;
4421 tmp = _mm_min_ps(array[3], array[19]);
4422 array[19] = _mm_max_ps(array[3], array[19]);
4423 array[3] = tmp;
4424 tmp = _mm_min_ps(array[4], array[20]);
4425 array[20] = _mm_max_ps(array[4], array[20]);
4426 array[4] = tmp;
4427 tmp = _mm_min_ps(array[5], array[21]);
4428 array[21] = _mm_max_ps(array[5], array[21]);
4429 array[5] = tmp;
4430 tmp = _mm_min_ps(array[6], array[22]);
4431 array[22] = _mm_max_ps(array[6], array[22]);
4432 array[6] = tmp;
4433 tmp = _mm_min_ps(array[7], array[23]);
4434 array[23] = _mm_max_ps(array[7], array[23]);
4435 array[7] = tmp;
4436 tmp = _mm_min_ps(array[8], array[24]);
4437 array[24] = _mm_max_ps(array[8], array[24]);
4438 array[8] = tmp;
4439 tmp = _mm_min_ps(array[9], array[25]);
4440 array[25] = _mm_max_ps(array[9], array[25]);
4441 array[9] = tmp;
4442 tmp = _mm_min_ps(array[10], array[26]);
4443 array[26] = _mm_max_ps(array[10], array[26]);
4444 array[10] = tmp;
4445 tmp = _mm_min_ps(array[11], array[27]);
4446 array[27] = _mm_max_ps(array[11], array[27]);
4447 array[11] = tmp;
4448 tmp = _mm_min_ps(array[12], array[28]);
4449 array[28] = _mm_max_ps(array[12], array[28]);
4450 array[12] = tmp;
4451 tmp = _mm_min_ps(array[13], array[29]);
4452 array[29] = _mm_max_ps(array[13], array[29]);
4453 array[13] = tmp;
4454 tmp = _mm_min_ps(array[14], array[30]);
4455 array[30] = _mm_max_ps(array[14], array[30]);
4456 array[14] = tmp;
4457 tmp = _mm_min_ps(array[15], array[31]);
4458 array[31] = _mm_max_ps(array[15], array[31]);
4459 array[15] = tmp;
4460 tmp = _mm_min_ps(array[32], array[48]);
4461 array[48] = _mm_max_ps(array[32], array[48]);
4462 array[32] = tmp;
4463 tmp = _mm_min_ps(array[33], array[49]);
4464 array[49] = _mm_max_ps(array[33], array[49]);
4465 array[33] = tmp;
4466 tmp = _mm_min_ps(array[34], array[50]);
4467 array[50] = _mm_max_ps(array[34], array[50]);
4468 array[34] = tmp;
4469 tmp = _mm_min_ps(array[35], array[51]);
4470 array[51] = _mm_max_ps(array[35], array[51]);
4471 array[35] = tmp;
4472 tmp = _mm_min_ps(array[36], array[52]);
4473 array[52] = _mm_max_ps(array[36], array[52]);
4474 array[36] = tmp;
4475 tmp = _mm_min_ps(array[37], array[53]);
4476 array[53] = _mm_max_ps(array[37], array[53]);
4477 array[37] = tmp;
4478 tmp = _mm_min_ps(array[38], array[54]);
4479 array[54] = _mm_max_ps(array[38], array[54]);
4480 array[38] = tmp;
4481 tmp = _mm_min_ps(array[39], array[55]);
4482 array[55] = _mm_max_ps(array[39], array[55]);
4483 array[39] = tmp;
4484 tmp = _mm_min_ps(array[40], array[56]);
4485 array[56] = _mm_max_ps(array[40], array[56]);
4486 array[40] = tmp;
4487 tmp = _mm_min_ps(array[41], array[57]);
4488 array[57] = _mm_max_ps(array[41], array[57]);
4489 array[41] = tmp;
4490 tmp = _mm_min_ps(array[42], array[58]);
4491 array[58] = _mm_max_ps(array[42], array[58]);
4492 array[42] = tmp;
4493 tmp = _mm_min_ps(array[43], array[59]);
4494 array[59] = _mm_max_ps(array[43], array[59]);
4495 array[43] = tmp;
4496 tmp = _mm_min_ps(array[44], array[60]);
4497 array[60] = _mm_max_ps(array[44], array[60]);
4498 array[44] = tmp;
4499 tmp = _mm_min_ps(array[45], array[61]);
4500 array[61] = _mm_max_ps(array[45], array[61]);
4501 array[45] = tmp;
4502 tmp = _mm_min_ps(array[46], array[62]);
4503 array[62] = _mm_max_ps(array[46], array[62]);
4504 array[46] = tmp;
4505 tmp = _mm_min_ps(array[47], array[63]);
4506 array[63] = _mm_max_ps(array[47], array[63]);
4507 array[47] = tmp;
4508 tmp = _mm_min_ps(array[64], array[80]);
4509 array[80] = _mm_max_ps(array[64], array[80]);
4510 array[64] = tmp;
4511 tmp = _mm_min_ps(array[16], array[64]);
4512 array[64] = _mm_max_ps(array[16], array[64]);
4513 array[16] = tmp;
4514 tmp = _mm_min_ps(array[17], array[65]);
4515 array[65] = _mm_max_ps(array[17], array[65]);
4516 array[17] = tmp;
4517 tmp = _mm_min_ps(array[18], array[66]);
4518 array[66] = _mm_max_ps(array[18], array[66]);
4519 array[18] = tmp;
4520 tmp = _mm_min_ps(array[19], array[67]);
4521 array[67] = _mm_max_ps(array[19], array[67]);
4522 array[19] = tmp;
4523 tmp = _mm_min_ps(array[20], array[68]);
4524 array[68] = _mm_max_ps(array[20], array[68]);
4525 array[20] = tmp;
4526 tmp = _mm_min_ps(array[21], array[69]);
4527 array[69] = _mm_max_ps(array[21], array[69]);
4528 array[21] = tmp;
4529 tmp = _mm_min_ps(array[22], array[70]);
4530 array[70] = _mm_max_ps(array[22], array[70]);
4531 array[22] = tmp;
4532 tmp = _mm_min_ps(array[23], array[71]);
4533 array[71] = _mm_max_ps(array[23], array[71]);
4534 array[23] = tmp;
4535 tmp = _mm_min_ps(array[24], array[72]);
4536 array[72] = _mm_max_ps(array[24], array[72]);
4537 array[24] = tmp;
4538 tmp = _mm_min_ps(array[25], array[73]);
4539 array[73] = _mm_max_ps(array[25], array[73]);
4540 array[25] = tmp;
4541 tmp = _mm_min_ps(array[26], array[74]);
4542 array[74] = _mm_max_ps(array[26], array[74]);
4543 array[26] = tmp;
4544 tmp = _mm_min_ps(array[27], array[75]);
4545 array[75] = _mm_max_ps(array[27], array[75]);
4546 array[27] = tmp;
4547 tmp = _mm_min_ps(array[28], array[76]);
4548 array[76] = _mm_max_ps(array[28], array[76]);
4549 array[28] = tmp;
4550 tmp = _mm_min_ps(array[29], array[77]);
4551 array[77] = _mm_max_ps(array[29], array[77]);
4552 array[29] = tmp;
4553 tmp = _mm_min_ps(array[30], array[78]);
4554 array[78] = _mm_max_ps(array[30], array[78]);
4555 array[30] = tmp;
4556 tmp = _mm_min_ps(array[31], array[79]);
4557 array[79] = _mm_max_ps(array[31], array[79]);
4558 array[31] = tmp;
4559 tmp = _mm_min_ps(array[16], array[32]);
4560 array[32] = _mm_max_ps(array[16], array[32]);
4561 array[16] = tmp;
4562 tmp = _mm_min_ps(array[17], array[33]);
4563 array[33] = _mm_max_ps(array[17], array[33]);
4564 array[17] = tmp;
4565 tmp = _mm_min_ps(array[18], array[34]);
4566 array[34] = _mm_max_ps(array[18], array[34]);
4567 array[18] = tmp;
4568 tmp = _mm_min_ps(array[19], array[35]);
4569 array[35] = _mm_max_ps(array[19], array[35]);
4570 array[19] = tmp;
4571 tmp = _mm_min_ps(array[20], array[36]);
4572 array[36] = _mm_max_ps(array[20], array[36]);
4573 array[20] = tmp;
4574 tmp = _mm_min_ps(array[21], array[37]);
4575 array[37] = _mm_max_ps(array[21], array[37]);
4576 array[21] = tmp;
4577 tmp = _mm_min_ps(array[22], array[38]);
4578 array[38] = _mm_max_ps(array[22], array[38]);
4579 array[22] = tmp;
4580 tmp = _mm_min_ps(array[23], array[39]);
4581 array[39] = _mm_max_ps(array[23], array[39]);
4582 array[23] = tmp;
4583 tmp = _mm_min_ps(array[24], array[40]);
4584 array[40] = _mm_max_ps(array[24], array[40]);
4585 array[24] = tmp;
4586 tmp = _mm_min_ps(array[25], array[41]);
4587 array[41] = _mm_max_ps(array[25], array[41]);
4588 array[25] = tmp;
4589 tmp = _mm_min_ps(array[26], array[42]);
4590 array[42] = _mm_max_ps(array[26], array[42]);
4591 array[26] = tmp;
4592 tmp = _mm_min_ps(array[27], array[43]);
4593 array[43] = _mm_max_ps(array[27], array[43]);
4594 array[27] = tmp;
4595 tmp = _mm_min_ps(array[28], array[44]);
4596 array[44] = _mm_max_ps(array[28], array[44]);
4597 array[28] = tmp;
4598 tmp = _mm_min_ps(array[29], array[45]);
4599 array[45] = _mm_max_ps(array[29], array[45]);
4600 array[29] = tmp;
4601 tmp = _mm_min_ps(array[30], array[46]);
4602 array[46] = _mm_max_ps(array[30], array[46]);
4603 array[30] = tmp;
4604 tmp = _mm_min_ps(array[31], array[47]);
4605 array[47] = _mm_max_ps(array[31], array[47]);
4606 array[31] = tmp;
4607 tmp = _mm_min_ps(array[48], array[64]);
4608 array[64] = _mm_max_ps(array[48], array[64]);
4609 array[48] = tmp;
4610 tmp = _mm_min_ps(array[49], array[65]);
4611 array[65] = _mm_max_ps(array[49], array[65]);
4612 array[49] = tmp;
4613 tmp = _mm_min_ps(array[50], array[66]);
4614 array[66] = _mm_max_ps(array[50], array[66]);
4615 array[50] = tmp;
4616 tmp = _mm_min_ps(array[51], array[67]);
4617 array[67] = _mm_max_ps(array[51], array[67]);
4618 array[51] = tmp;
4619 tmp = _mm_min_ps(array[52], array[68]);
4620 array[68] = _mm_max_ps(array[52], array[68]);
4621 array[52] = tmp;
4622 tmp = _mm_min_ps(array[53], array[69]);
4623 array[69] = _mm_max_ps(array[53], array[69]);
4624 array[53] = tmp;
4625 tmp = _mm_min_ps(array[54], array[70]);
4626 array[70] = _mm_max_ps(array[54], array[70]);
4627 array[54] = tmp;
4628 tmp = _mm_min_ps(array[55], array[71]);
4629 array[71] = _mm_max_ps(array[55], array[71]);
4630 array[55] = tmp;
4631 tmp = _mm_min_ps(array[56], array[72]);
4632 array[72] = _mm_max_ps(array[56], array[72]);
4633 array[56] = tmp;
4634 tmp = _mm_min_ps(array[57], array[73]);
4635 array[73] = _mm_max_ps(array[57], array[73]);
4636 array[57] = tmp;
4637 tmp = _mm_min_ps(array[58], array[74]);
4638 array[74] = _mm_max_ps(array[58], array[74]);
4639 array[58] = tmp;
4640 tmp = _mm_min_ps(array[59], array[75]);
4641 array[75] = _mm_max_ps(array[59], array[75]);
4642 array[59] = tmp;
4643 tmp = _mm_min_ps(array[60], array[76]);
4644 array[76] = _mm_max_ps(array[60], array[76]);
4645 array[60] = tmp;
4646 tmp = _mm_min_ps(array[61], array[77]);
4647 array[77] = _mm_max_ps(array[61], array[77]);
4648 array[61] = tmp;
4649 tmp = _mm_min_ps(array[62], array[78]);
4650 array[78] = _mm_max_ps(array[62], array[78]);
4651 array[62] = tmp;
4652 tmp = _mm_min_ps(array[63], array[79]);
4653 array[79] = _mm_max_ps(array[63], array[79]);
4654 array[63] = tmp;
4655 tmp = _mm_min_ps(array[0], array[8]);
4656 array[8] = _mm_max_ps(array[0], array[8]);
4657 array[0] = tmp;
4658 tmp = _mm_min_ps(array[1], array[9]);
4659 array[9] = _mm_max_ps(array[1], array[9]);
4660 array[1] = tmp;
4661 tmp = _mm_min_ps(array[2], array[10]);
4662 array[10] = _mm_max_ps(array[2], array[10]);
4663 array[2] = tmp;
4664 tmp = _mm_min_ps(array[3], array[11]);
4665 array[11] = _mm_max_ps(array[3], array[11]);
4666 array[3] = tmp;
4667 tmp = _mm_min_ps(array[4], array[12]);
4668 array[12] = _mm_max_ps(array[4], array[12]);
4669 array[4] = tmp;
4670 tmp = _mm_min_ps(array[5], array[13]);
4671 array[13] = _mm_max_ps(array[5], array[13]);
4672 array[5] = tmp;
4673 tmp = _mm_min_ps(array[6], array[14]);
4674 array[14] = _mm_max_ps(array[6], array[14]);
4675 array[6] = tmp;
4676 tmp = _mm_min_ps(array[7], array[15]);
4677 array[15] = _mm_max_ps(array[7], array[15]);
4678 array[7] = tmp;
4679 tmp = _mm_min_ps(array[16], array[24]);
4680 array[24] = _mm_max_ps(array[16], array[24]);
4681 array[16] = tmp;
4682 tmp = _mm_min_ps(array[17], array[25]);
4683 array[25] = _mm_max_ps(array[17], array[25]);
4684 array[17] = tmp;
4685 tmp = _mm_min_ps(array[18], array[26]);
4686 array[26] = _mm_max_ps(array[18], array[26]);
4687 array[18] = tmp;
4688 tmp = _mm_min_ps(array[19], array[27]);
4689 array[27] = _mm_max_ps(array[19], array[27]);
4690 array[19] = tmp;
4691 tmp = _mm_min_ps(array[20], array[28]);
4692 array[28] = _mm_max_ps(array[20], array[28]);
4693 array[20] = tmp;
4694 tmp = _mm_min_ps(array[21], array[29]);
4695 array[29] = _mm_max_ps(array[21], array[29]);
4696 array[21] = tmp;
4697 tmp = _mm_min_ps(array[22], array[30]);
4698 array[30] = _mm_max_ps(array[22], array[30]);
4699 array[22] = tmp;
4700 tmp = _mm_min_ps(array[23], array[31]);
4701 array[31] = _mm_max_ps(array[23], array[31]);
4702 array[23] = tmp;
4703 tmp = _mm_min_ps(array[32], array[40]);
4704 array[40] = _mm_max_ps(array[32], array[40]);
4705 array[32] = tmp;
4706 tmp = _mm_min_ps(array[33], array[41]);
4707 array[41] = _mm_max_ps(array[33], array[41]);
4708 array[33] = tmp;
4709 tmp = _mm_min_ps(array[34], array[42]);
4710 array[42] = _mm_max_ps(array[34], array[42]);
4711 array[34] = tmp;
4712 tmp = _mm_min_ps(array[35], array[43]);
4713 array[43] = _mm_max_ps(array[35], array[43]);
4714 array[35] = tmp;
4715 tmp = _mm_min_ps(array[36], array[44]);
4716 array[44] = _mm_max_ps(array[36], array[44]);
4717 array[36] = tmp;
4718 tmp = _mm_min_ps(array[37], array[45]);
4719 array[45] = _mm_max_ps(array[37], array[45]);
4720 array[37] = tmp;
4721 tmp = _mm_min_ps(array[38], array[46]);
4722 array[46] = _mm_max_ps(array[38], array[46]);
4723 array[38] = tmp;
4724 tmp = _mm_min_ps(array[39], array[47]);
4725 array[47] = _mm_max_ps(array[39], array[47]);
4726 array[39] = tmp;
4727 tmp = _mm_min_ps(array[48], array[56]);
4728 array[56] = _mm_max_ps(array[48], array[56]);
4729 array[48] = tmp;
4730 tmp = _mm_min_ps(array[49], array[57]);
4731 array[57] = _mm_max_ps(array[49], array[57]);
4732 array[49] = tmp;
4733 tmp = _mm_min_ps(array[50], array[58]);
4734 array[58] = _mm_max_ps(array[50], array[58]);
4735 array[50] = tmp;
4736 tmp = _mm_min_ps(array[51], array[59]);
4737 array[59] = _mm_max_ps(array[51], array[59]);
4738 array[51] = tmp;
4739 tmp = _mm_min_ps(array[52], array[60]);
4740 array[60] = _mm_max_ps(array[52], array[60]);
4741 array[52] = tmp;
4742 tmp = _mm_min_ps(array[53], array[61]);
4743 array[61] = _mm_max_ps(array[53], array[61]);
4744 array[53] = tmp;
4745 tmp = _mm_min_ps(array[54], array[62]);
4746 array[62] = _mm_max_ps(array[54], array[62]);
4747 array[54] = tmp;
4748 tmp = _mm_min_ps(array[55], array[63]);
4749 array[63] = _mm_max_ps(array[55], array[63]);
4750 array[55] = tmp;
4751 tmp = _mm_min_ps(array[64], array[72]);
4752 array[72] = _mm_max_ps(array[64], array[72]);
4753 array[64] = tmp;
4754 tmp = _mm_min_ps(array[65], array[73]);
4755 array[73] = _mm_max_ps(array[65], array[73]);
4756 array[65] = tmp;
4757 tmp = _mm_min_ps(array[66], array[74]);
4758 array[74] = _mm_max_ps(array[66], array[74]);
4759 array[66] = tmp;
4760 tmp = _mm_min_ps(array[67], array[75]);
4761 array[75] = _mm_max_ps(array[67], array[75]);
4762 array[67] = tmp;
4763 tmp = _mm_min_ps(array[68], array[76]);
4764 array[76] = _mm_max_ps(array[68], array[76]);
4765 array[68] = tmp;
4766 tmp = _mm_min_ps(array[69], array[77]);
4767 array[77] = _mm_max_ps(array[69], array[77]);
4768 array[69] = tmp;
4769 tmp = _mm_min_ps(array[70], array[78]);
4770 array[78] = _mm_max_ps(array[70], array[78]);
4771 array[70] = tmp;
4772 tmp = _mm_min_ps(array[71], array[79]);
4773 array[79] = _mm_max_ps(array[71], array[79]);
4774 array[71] = tmp;
4775 tmp = _mm_min_ps(array[8], array[64]);
4776 array[64] = _mm_max_ps(array[8], array[64]);
4777 array[8] = tmp;
4778 tmp = _mm_min_ps(array[9], array[65]);
4779 array[65] = _mm_max_ps(array[9], array[65]);
4780 array[9] = tmp;
4781 tmp = _mm_min_ps(array[10], array[66]);
4782 array[66] = _mm_max_ps(array[10], array[66]);
4783 array[10] = tmp;
4784 tmp = _mm_min_ps(array[11], array[67]);
4785 array[67] = _mm_max_ps(array[11], array[67]);
4786 array[11] = tmp;
4787 tmp = _mm_min_ps(array[12], array[68]);
4788 array[68] = _mm_max_ps(array[12], array[68]);
4789 array[12] = tmp;
4790 tmp = _mm_min_ps(array[13], array[69]);
4791 array[69] = _mm_max_ps(array[13], array[69]);
4792 array[13] = tmp;
4793 tmp = _mm_min_ps(array[14], array[70]);
4794 array[70] = _mm_max_ps(array[14], array[70]);
4795 array[14] = tmp;
4796 tmp = _mm_min_ps(array[15], array[71]);
4797 array[71] = _mm_max_ps(array[15], array[71]);
4798 array[15] = tmp;
4799 tmp = _mm_min_ps(array[24], array[80]);
4800 array[80] = _mm_max_ps(array[24], array[80]);
4801 array[24] = tmp;
4802 tmp = _mm_min_ps(array[8], array[32]);
4803 array[32] = _mm_max_ps(array[8], array[32]);
4804 array[8] = tmp;
4805 tmp = _mm_min_ps(array[9], array[33]);
4806 array[33] = _mm_max_ps(array[9], array[33]);
4807 array[9] = tmp;
4808 tmp = _mm_min_ps(array[10], array[34]);
4809 array[34] = _mm_max_ps(array[10], array[34]);
4810 array[10] = tmp;
4811 tmp = _mm_min_ps(array[11], array[35]);
4812 array[35] = _mm_max_ps(array[11], array[35]);
4813 array[11] = tmp;
4814 tmp = _mm_min_ps(array[12], array[36]);
4815 array[36] = _mm_max_ps(array[12], array[36]);
4816 array[12] = tmp;
4817 tmp = _mm_min_ps(array[13], array[37]);
4818 array[37] = _mm_max_ps(array[13], array[37]);
4819 array[13] = tmp;
4820 tmp = _mm_min_ps(array[14], array[38]);
4821 array[38] = _mm_max_ps(array[14], array[38]);
4822 array[14] = tmp;
4823 tmp = _mm_min_ps(array[15], array[39]);
4824 array[39] = _mm_max_ps(array[15], array[39]);
4825 array[15] = tmp;
4826 tmp = _mm_min_ps(array[24], array[48]);
4827 array[48] = _mm_max_ps(array[24], array[48]);
4828 array[24] = tmp;
4829 tmp = _mm_min_ps(array[25], array[49]);
4830 array[49] = _mm_max_ps(array[25], array[49]);
4831 array[25] = tmp;
4832 tmp = _mm_min_ps(array[26], array[50]);
4833 array[50] = _mm_max_ps(array[26], array[50]);
4834 array[26] = tmp;
4835 tmp = _mm_min_ps(array[27], array[51]);
4836 array[51] = _mm_max_ps(array[27], array[51]);
4837 array[27] = tmp;
4838 tmp = _mm_min_ps(array[28], array[52]);
4839 array[52] = _mm_max_ps(array[28], array[52]);
4840 array[28] = tmp;
4841 tmp = _mm_min_ps(array[29], array[53]);
4842 array[53] = _mm_max_ps(array[29], array[53]);
4843 array[29] = tmp;
4844 tmp = _mm_min_ps(array[30], array[54]);
4845 array[54] = _mm_max_ps(array[30], array[54]);
4846 array[30] = tmp;
4847 tmp = _mm_min_ps(array[31], array[55]);
4848 array[55] = _mm_max_ps(array[31], array[55]);
4849 array[31] = tmp;
4850 tmp = _mm_min_ps(array[40], array[64]);
4851 array[64] = _mm_max_ps(array[40], array[64]);
4852 array[40] = tmp;
4853 tmp = _mm_min_ps(array[41], array[65]);
4854 array[65] = _mm_max_ps(array[41], array[65]);
4855 array[41] = tmp;
4856 tmp = _mm_min_ps(array[42], array[66]);
4857 array[66] = _mm_max_ps(array[42], array[66]);
4858 array[42] = tmp;
4859 tmp = _mm_min_ps(array[43], array[67]);
4860 array[67] = _mm_max_ps(array[43], array[67]);
4861 array[43] = tmp;
4862 tmp = _mm_min_ps(array[44], array[68]);
4863 array[68] = _mm_max_ps(array[44], array[68]);
4864 array[44] = tmp;
4865 tmp = _mm_min_ps(array[45], array[69]);
4866 array[69] = _mm_max_ps(array[45], array[69]);
4867 array[45] = tmp;
4868 tmp = _mm_min_ps(array[46], array[70]);
4869 array[70] = _mm_max_ps(array[46], array[70]);
4870 array[46] = tmp;
4871 tmp = _mm_min_ps(array[47], array[71]);
4872 array[71] = _mm_max_ps(array[47], array[71]);
4873 array[47] = tmp;
4874 tmp = _mm_min_ps(array[56], array[80]);
4875 array[80] = _mm_max_ps(array[56], array[80]);
4876 array[56] = tmp;
4877 tmp = _mm_min_ps(array[8], array[16]);
4878 array[16] = _mm_max_ps(array[8], array[16]);
4879 array[8] = tmp;
4880 tmp = _mm_min_ps(array[9], array[17]);
4881 array[17] = _mm_max_ps(array[9], array[17]);
4882 array[9] = tmp;
4883 tmp = _mm_min_ps(array[10], array[18]);
4884 array[18] = _mm_max_ps(array[10], array[18]);
4885 array[10] = tmp;
4886 tmp = _mm_min_ps(array[11], array[19]);
4887 array[19] = _mm_max_ps(array[11], array[19]);
4888 array[11] = tmp;
4889 tmp = _mm_min_ps(array[12], array[20]);
4890 array[20] = _mm_max_ps(array[12], array[20]);
4891 array[12] = tmp;
4892 tmp = _mm_min_ps(array[13], array[21]);
4893 array[21] = _mm_max_ps(array[13], array[21]);
4894 array[13] = tmp;
4895 tmp = _mm_min_ps(array[14], array[22]);
4896 array[22] = _mm_max_ps(array[14], array[22]);
4897 array[14] = tmp;
4898 tmp = _mm_min_ps(array[15], array[23]);
4899 array[23] = _mm_max_ps(array[15], array[23]);
4900 array[15] = tmp;
4901 tmp = _mm_min_ps(array[24], array[32]);
4902 array[32] = _mm_max_ps(array[24], array[32]);
4903 array[24] = tmp;
4904 tmp = _mm_min_ps(array[25], array[33]);
4905 array[33] = _mm_max_ps(array[25], array[33]);
4906 array[25] = tmp;
4907 tmp = _mm_min_ps(array[26], array[34]);
4908 array[34] = _mm_max_ps(array[26], array[34]);
4909 array[26] = tmp;
4910 tmp = _mm_min_ps(array[27], array[35]);
4911 array[35] = _mm_max_ps(array[27], array[35]);
4912 array[27] = tmp;
4913 tmp = _mm_min_ps(array[28], array[36]);
4914 array[36] = _mm_max_ps(array[28], array[36]);
4915 array[28] = tmp;
4916 tmp = _mm_min_ps(array[29], array[37]);
4917 array[37] = _mm_max_ps(array[29], array[37]);
4918 array[29] = tmp;
4919 tmp = _mm_min_ps(array[30], array[38]);
4920 array[38] = _mm_max_ps(array[30], array[38]);
4921 array[30] = tmp;
4922 tmp = _mm_min_ps(array[31], array[39]);
4923 array[39] = _mm_max_ps(array[31], array[39]);
4924 array[31] = tmp;
4925 tmp = _mm_min_ps(array[40], array[48]);
4926 array[48] = _mm_max_ps(array[40], array[48]);
4927 array[40] = tmp;
4928 tmp = _mm_min_ps(array[41], array[49]);
4929 array[49] = _mm_max_ps(array[41], array[49]);
4930 array[41] = tmp;
4931 tmp = _mm_min_ps(array[42], array[50]);
4932 array[50] = _mm_max_ps(array[42], array[50]);
4933 array[42] = tmp;
4934 tmp = _mm_min_ps(array[43], array[51]);
4935 array[51] = _mm_max_ps(array[43], array[51]);
4936 array[43] = tmp;
4937 tmp = _mm_min_ps(array[44], array[52]);
4938 array[52] = _mm_max_ps(array[44], array[52]);
4939 array[44] = tmp;
4940 tmp = _mm_min_ps(array[45], array[53]);
4941 array[53] = _mm_max_ps(array[45], array[53]);
4942 array[45] = tmp;
4943 tmp = _mm_min_ps(array[46], array[54]);
4944 array[54] = _mm_max_ps(array[46], array[54]);
4945 array[46] = tmp;
4946 tmp = _mm_min_ps(array[47], array[55]);
4947 array[55] = _mm_max_ps(array[47], array[55]);
4948 array[47] = tmp;
4949 tmp = _mm_min_ps(array[56], array[64]);
4950 array[64] = _mm_max_ps(array[56], array[64]);
4951 array[56] = tmp;
4952 tmp = _mm_min_ps(array[57], array[65]);
4953 array[65] = _mm_max_ps(array[57], array[65]);
4954 array[57] = tmp;
4955 tmp = _mm_min_ps(array[58], array[66]);
4956 array[66] = _mm_max_ps(array[58], array[66]);
4957 array[58] = tmp;
4958 tmp = _mm_min_ps(array[59], array[67]);
4959 array[67] = _mm_max_ps(array[59], array[67]);
4960 array[59] = tmp;
4961 tmp = _mm_min_ps(array[60], array[68]);
4962 array[68] = _mm_max_ps(array[60], array[68]);
4963 array[60] = tmp;
4964 tmp = _mm_min_ps(array[61], array[69]);
4965 array[69] = _mm_max_ps(array[61], array[69]);
4966 array[61] = tmp;
4967 tmp = _mm_min_ps(array[62], array[70]);
4968 array[70] = _mm_max_ps(array[62], array[70]);
4969 array[62] = tmp;
4970 tmp = _mm_min_ps(array[63], array[71]);
4971 array[71] = _mm_max_ps(array[63], array[71]);
4972 array[63] = tmp;
4973 tmp = _mm_min_ps(array[72], array[80]);
4974 array[80] = _mm_max_ps(array[72], array[80]);
4975 array[72] = tmp;
4976 tmp = _mm_min_ps(array[0], array[4]);
4977 array[4] = _mm_max_ps(array[0], array[4]);
4978 array[0] = tmp;
4979 tmp = _mm_min_ps(array[1], array[5]);
4980 array[5] = _mm_max_ps(array[1], array[5]);
4981 array[1] = tmp;
4982 tmp = _mm_min_ps(array[2], array[6]);
4983 array[6] = _mm_max_ps(array[2], array[6]);
4984 array[2] = tmp;
4985 tmp = _mm_min_ps(array[3], array[7]);
4986 array[7] = _mm_max_ps(array[3], array[7]);
4987 array[3] = tmp;
4988 tmp = _mm_min_ps(array[8], array[12]);
4989 array[12] = _mm_max_ps(array[8], array[12]);
4990 array[8] = tmp;
4991 tmp = _mm_min_ps(array[9], array[13]);
4992 array[13] = _mm_max_ps(array[9], array[13]);
4993 array[9] = tmp;
4994 tmp = _mm_min_ps(array[10], array[14]);
4995 array[14] = _mm_max_ps(array[10], array[14]);
4996 array[10] = tmp;
4997 tmp = _mm_min_ps(array[11], array[15]);
4998 array[15] = _mm_max_ps(array[11], array[15]);
4999 array[11] = tmp;
5000 tmp = _mm_min_ps(array[16], array[20]);
5001 array[20] = _mm_max_ps(array[16], array[20]);
5002 array[16] = tmp;
5003 tmp = _mm_min_ps(array[17], array[21]);
5004 array[21] = _mm_max_ps(array[17], array[21]);
5005 array[17] = tmp;
5006 tmp = _mm_min_ps(array[18], array[22]);
5007 array[22] = _mm_max_ps(array[18], array[22]);
5008 array[18] = tmp;
5009 tmp = _mm_min_ps(array[19], array[23]);
5010 array[23] = _mm_max_ps(array[19], array[23]);
5011 array[19] = tmp;
5012 tmp = _mm_min_ps(array[24], array[28]);
5013 array[28] = _mm_max_ps(array[24], array[28]);
5014 array[24] = tmp;
5015 tmp = _mm_min_ps(array[25], array[29]);
5016 array[29] = _mm_max_ps(array[25], array[29]);
5017 array[25] = tmp;
5018 tmp = _mm_min_ps(array[26], array[30]);
5019 array[30] = _mm_max_ps(array[26], array[30]);
5020 array[26] = tmp;
5021 tmp = _mm_min_ps(array[27], array[31]);
5022 array[31] = _mm_max_ps(array[27], array[31]);
5023 array[27] = tmp;
5024 tmp = _mm_min_ps(array[32], array[36]);
5025 array[36] = _mm_max_ps(array[32], array[36]);
5026 array[32] = tmp;
5027 tmp = _mm_min_ps(array[33], array[37]);
5028 array[37] = _mm_max_ps(array[33], array[37]);
5029 array[33] = tmp;
5030 tmp = _mm_min_ps(array[34], array[38]);
5031 array[38] = _mm_max_ps(array[34], array[38]);
5032 array[34] = tmp;
5033 tmp = _mm_min_ps(array[35], array[39]);
5034 array[39] = _mm_max_ps(array[35], array[39]);
5035 array[35] = tmp;
5036 tmp = _mm_min_ps(array[40], array[44]);
5037 array[44] = _mm_max_ps(array[40], array[44]);
5038 array[40] = tmp;
5039 tmp = _mm_min_ps(array[41], array[45]);
5040 array[45] = _mm_max_ps(array[41], array[45]);
5041 array[41] = tmp;
5042 tmp = _mm_min_ps(array[42], array[46]);
5043 array[46] = _mm_max_ps(array[42], array[46]);
5044 array[42] = tmp;
5045 tmp = _mm_min_ps(array[43], array[47]);
5046 array[47] = _mm_max_ps(array[43], array[47]);
5047 array[43] = tmp;
5048 tmp = _mm_min_ps(array[48], array[52]);
5049 array[52] = _mm_max_ps(array[48], array[52]);
5050 array[48] = tmp;
5051 tmp = _mm_min_ps(array[49], array[53]);
5052 array[53] = _mm_max_ps(array[49], array[53]);
5053 array[49] = tmp;
5054 tmp = _mm_min_ps(array[50], array[54]);
5055 array[54] = _mm_max_ps(array[50], array[54]);
5056 array[50] = tmp;
5057 tmp = _mm_min_ps(array[51], array[55]);
5058 array[55] = _mm_max_ps(array[51], array[55]);
5059 array[51] = tmp;
5060 tmp = _mm_min_ps(array[56], array[60]);
5061 array[60] = _mm_max_ps(array[56], array[60]);
5062 array[56] = tmp;
5063 tmp = _mm_min_ps(array[57], array[61]);
5064 array[61] = _mm_max_ps(array[57], array[61]);
5065 array[57] = tmp;
5066 tmp = _mm_min_ps(array[58], array[62]);
5067 array[62] = _mm_max_ps(array[58], array[62]);
5068 array[58] = tmp;
5069 tmp = _mm_min_ps(array[59], array[63]);
5070 array[63] = _mm_max_ps(array[59], array[63]);
5071 array[59] = tmp;
5072 tmp = _mm_min_ps(array[64], array[68]);
5073 array[68] = _mm_max_ps(array[64], array[68]);
5074 array[64] = tmp;
5075 tmp = _mm_min_ps(array[65], array[69]);
5076 array[69] = _mm_max_ps(array[65], array[69]);
5077 array[65] = tmp;
5078 tmp = _mm_min_ps(array[66], array[70]);
5079 array[70] = _mm_max_ps(array[66], array[70]);
5080 array[66] = tmp;
5081 tmp = _mm_min_ps(array[67], array[71]);
5082 array[71] = _mm_max_ps(array[67], array[71]);
5083 array[67] = tmp;
5084 tmp = _mm_min_ps(array[72], array[76]);
5085 array[76] = _mm_max_ps(array[72], array[76]);
5086 array[72] = tmp;
5087 tmp = _mm_min_ps(array[73], array[77]);
5088 array[77] = _mm_max_ps(array[73], array[77]);
5089 array[73] = tmp;
5090 tmp = _mm_min_ps(array[74], array[78]);
5091 array[78] = _mm_max_ps(array[74], array[78]);
5092 array[74] = tmp;
5093 tmp = _mm_min_ps(array[75], array[79]);
5094 array[79] = _mm_max_ps(array[75], array[79]);
5095 array[75] = tmp;
5096 tmp = _mm_min_ps(array[4], array[64]);
5097 array[64] = _mm_max_ps(array[4], array[64]);
5098 array[4] = tmp;
5099 tmp = _mm_min_ps(array[5], array[65]);
5100 array[65] = _mm_max_ps(array[5], array[65]);
5101 array[5] = tmp;
5102 tmp = _mm_min_ps(array[6], array[66]);
5103 array[66] = _mm_max_ps(array[6], array[66]);
5104 array[6] = tmp;
5105 tmp = _mm_min_ps(array[7], array[67]);
5106 array[67] = _mm_max_ps(array[7], array[67]);
5107 array[7] = tmp;
5108 tmp = _mm_min_ps(array[12], array[72]);
5109 array[72] = _mm_max_ps(array[12], array[72]);
5110 array[12] = tmp;
5111 tmp = _mm_min_ps(array[13], array[73]);
5112 array[73] = _mm_max_ps(array[13], array[73]);
5113 array[13] = tmp;
5114 tmp = _mm_min_ps(array[14], array[74]);
5115 array[74] = _mm_max_ps(array[14], array[74]);
5116 array[14] = tmp;
5117 tmp = _mm_min_ps(array[15], array[75]);
5118 array[75] = _mm_max_ps(array[15], array[75]);
5119 array[15] = tmp;
5120 tmp = _mm_min_ps(array[20], array[80]);
5121 array[80] = _mm_max_ps(array[20], array[80]);
5122 array[20] = tmp;
5123 tmp = _mm_min_ps(array[4], array[32]);
5124 array[32] = _mm_max_ps(array[4], array[32]);
5125 array[4] = tmp;
5126 tmp = _mm_min_ps(array[5], array[33]);
5127 array[33] = _mm_max_ps(array[5], array[33]);
5128 array[5] = tmp;
5129 tmp = _mm_min_ps(array[6], array[34]);
5130 array[34] = _mm_max_ps(array[6], array[34]);
5131 array[6] = tmp;
5132 tmp = _mm_min_ps(array[7], array[35]);
5133 array[35] = _mm_max_ps(array[7], array[35]);
5134 array[7] = tmp;
5135 tmp = _mm_min_ps(array[12], array[40]);
5136 array[40] = _mm_max_ps(array[12], array[40]);
5137 array[12] = tmp;
5138 tmp = _mm_min_ps(array[13], array[41]);
5139 array[41] = _mm_max_ps(array[13], array[41]);
5140 array[13] = tmp;
5141 tmp = _mm_min_ps(array[14], array[42]);
5142 array[42] = _mm_max_ps(array[14], array[42]);
5143 array[14] = tmp;
5144 tmp = _mm_min_ps(array[15], array[43]);
5145 array[43] = _mm_max_ps(array[15], array[43]);
5146 array[15] = tmp;
5147 tmp = _mm_min_ps(array[20], array[48]);
5148 array[48] = _mm_max_ps(array[20], array[48]);
5149 array[20] = tmp;
5150 tmp = _mm_min_ps(array[21], array[49]);
5151 array[49] = _mm_max_ps(array[21], array[49]);
5152 array[21] = tmp;
5153 tmp = _mm_min_ps(array[22], array[50]);
5154 array[50] = _mm_max_ps(array[22], array[50]);
5155 array[22] = tmp;
5156 tmp = _mm_min_ps(array[23], array[51]);
5157 array[51] = _mm_max_ps(array[23], array[51]);
5158 array[23] = tmp;
5159 tmp = _mm_min_ps(array[28], array[56]);
5160 array[56] = _mm_max_ps(array[28], array[56]);
5161 array[28] = tmp;
5162 tmp = _mm_min_ps(array[29], array[57]);
5163 array[57] = _mm_max_ps(array[29], array[57]);
5164 array[29] = tmp;
5165 tmp = _mm_min_ps(array[30], array[58]);
5166 array[58] = _mm_max_ps(array[30], array[58]);
5167 array[30] = tmp;
5168 tmp = _mm_min_ps(array[31], array[59]);
5169 array[59] = _mm_max_ps(array[31], array[59]);
5170 array[31] = tmp;
5171 tmp = _mm_min_ps(array[36], array[64]);
5172 array[64] = _mm_max_ps(array[36], array[64]);
5173 array[36] = tmp;
5174 tmp = _mm_min_ps(array[37], array[65]);
5175 array[65] = _mm_max_ps(array[37], array[65]);
5176 array[37] = tmp;
5177 tmp = _mm_min_ps(array[38], array[66]);
5178 array[66] = _mm_max_ps(array[38], array[66]);
5179 array[38] = tmp;
5180 tmp = _mm_min_ps(array[39], array[67]);
5181 array[67] = _mm_max_ps(array[39], array[67]);
5182 array[39] = tmp;
5183 tmp = _mm_min_ps(array[44], array[72]);
5184 array[72] = _mm_max_ps(array[44], array[72]);
5185 array[44] = tmp;
5186 tmp = _mm_min_ps(array[45], array[73]);
5187 array[73] = _mm_max_ps(array[45], array[73]);
5188 array[45] = tmp;
5189 tmp = _mm_min_ps(array[46], array[74]);
5190 array[74] = _mm_max_ps(array[46], array[74]);
5191 array[46] = tmp;
5192 tmp = _mm_min_ps(array[47], array[75]);
5193 array[75] = _mm_max_ps(array[47], array[75]);
5194 array[47] = tmp;
5195 tmp = _mm_min_ps(array[52], array[80]);
5196 array[80] = _mm_max_ps(array[52], array[80]);
5197 array[52] = tmp;
5198 tmp = _mm_min_ps(array[4], array[16]);
5199 array[16] = _mm_max_ps(array[4], array[16]);
5200 array[4] = tmp;
5201 tmp = _mm_min_ps(array[5], array[17]);
5202 array[17] = _mm_max_ps(array[5], array[17]);
5203 array[5] = tmp;
5204 tmp = _mm_min_ps(array[6], array[18]);
5205 array[18] = _mm_max_ps(array[6], array[18]);
5206 array[6] = tmp;
5207 tmp = _mm_min_ps(array[7], array[19]);
5208 array[19] = _mm_max_ps(array[7], array[19]);
5209 array[7] = tmp;
5210 tmp = _mm_min_ps(array[12], array[24]);
5211 array[24] = _mm_max_ps(array[12], array[24]);
5212 array[12] = tmp;
5213 tmp = _mm_min_ps(array[13], array[25]);
5214 array[25] = _mm_max_ps(array[13], array[25]);
5215 array[13] = tmp;
5216 tmp = _mm_min_ps(array[14], array[26]);
5217 array[26] = _mm_max_ps(array[14], array[26]);
5218 array[14] = tmp;
5219 tmp = _mm_min_ps(array[15], array[27]);
5220 array[27] = _mm_max_ps(array[15], array[27]);
5221 array[15] = tmp;
5222 tmp = _mm_min_ps(array[20], array[32]);
5223 array[32] = _mm_max_ps(array[20], array[32]);
5224 array[20] = tmp;
5225 tmp = _mm_min_ps(array[21], array[33]);
5226 array[33] = _mm_max_ps(array[21], array[33]);
5227 array[21] = tmp;
5228 tmp = _mm_min_ps(array[22], array[34]);
5229 array[34] = _mm_max_ps(array[22], array[34]);
5230 array[22] = tmp;
5231 tmp = _mm_min_ps(array[23], array[35]);
5232 array[35] = _mm_max_ps(array[23], array[35]);
5233 array[23] = tmp;
5234 tmp = _mm_min_ps(array[28], array[40]);
5235 array[40] = _mm_max_ps(array[28], array[40]);
5236 array[28] = tmp;
5237 tmp = _mm_min_ps(array[29], array[41]);
5238 array[41] = _mm_max_ps(array[29], array[41]);
5239 array[29] = tmp;
5240 tmp = _mm_min_ps(array[30], array[42]);
5241 array[42] = _mm_max_ps(array[30], array[42]);
5242 array[30] = tmp;
5243 tmp = _mm_min_ps(array[31], array[43]);
5244 array[43] = _mm_max_ps(array[31], array[43]);
5245 array[31] = tmp;
5246 tmp = _mm_min_ps(array[36], array[48]);
5247 array[48] = _mm_max_ps(array[36], array[48]);
5248 array[36] = tmp;
5249 tmp = _mm_min_ps(array[37], array[49]);
5250 array[49] = _mm_max_ps(array[37], array[49]);
5251 array[37] = tmp;
5252 tmp = _mm_min_ps(array[38], array[50]);
5253 array[50] = _mm_max_ps(array[38], array[50]);
5254 array[38] = tmp;
5255 tmp = _mm_min_ps(array[39], array[51]);
5256 array[51] = _mm_max_ps(array[39], array[51]);
5257 array[39] = tmp;
5258 tmp = _mm_min_ps(array[44], array[56]);
5259 array[56] = _mm_max_ps(array[44], array[56]);
5260 array[44] = tmp;
5261 tmp = _mm_min_ps(array[45], array[57]);
5262 array[57] = _mm_max_ps(array[45], array[57]);
5263 array[45] = tmp;
5264 tmp = _mm_min_ps(array[46], array[58]);
5265 array[58] = _mm_max_ps(array[46], array[58]);
5266 array[46] = tmp;
5267 tmp = _mm_min_ps(array[47], array[59]);
5268 array[59] = _mm_max_ps(array[47], array[59]);
5269 array[47] = tmp;
5270 tmp = _mm_min_ps(array[52], array[64]);
5271 array[64] = _mm_max_ps(array[52], array[64]);
5272 array[52] = tmp;
5273 tmp = _mm_min_ps(array[53], array[65]);
5274 array[65] = _mm_max_ps(array[53], array[65]);
5275 array[53] = tmp;
5276 tmp = _mm_min_ps(array[54], array[66]);
5277 array[66] = _mm_max_ps(array[54], array[66]);
5278 array[54] = tmp;
5279 tmp = _mm_min_ps(array[55], array[67]);
5280 array[67] = _mm_max_ps(array[55], array[67]);
5281 array[55] = tmp;
5282 tmp = _mm_min_ps(array[60], array[72]);
5283 array[72] = _mm_max_ps(array[60], array[72]);
5284 array[60] = tmp;
5285 tmp = _mm_min_ps(array[61], array[73]);
5286 array[73] = _mm_max_ps(array[61], array[73]);
5287 array[61] = tmp;
5288 tmp = _mm_min_ps(array[62], array[74]);
5289 array[74] = _mm_max_ps(array[62], array[74]);
5290 array[62] = tmp;
5291 tmp = _mm_min_ps(array[63], array[75]);
5292 array[75] = _mm_max_ps(array[63], array[75]);
5293 array[63] = tmp;
5294 tmp = _mm_min_ps(array[68], array[80]);
5295 array[80] = _mm_max_ps(array[68], array[80]);
5296 array[68] = tmp;
5297 tmp = _mm_min_ps(array[4], array[8]);
5298 array[8] = _mm_max_ps(array[4], array[8]);
5299 array[4] = tmp;
5300 tmp = _mm_min_ps(array[5], array[9]);
5301 array[9] = _mm_max_ps(array[5], array[9]);
5302 array[5] = tmp;
5303 tmp = _mm_min_ps(array[6], array[10]);
5304 array[10] = _mm_max_ps(array[6], array[10]);
5305 array[6] = tmp;
5306 tmp = _mm_min_ps(array[7], array[11]);
5307 array[11] = _mm_max_ps(array[7], array[11]);
5308 array[7] = tmp;
5309 tmp = _mm_min_ps(array[12], array[16]);
5310 array[16] = _mm_max_ps(array[12], array[16]);
5311 array[12] = tmp;
5312 tmp = _mm_min_ps(array[13], array[17]);
5313 array[17] = _mm_max_ps(array[13], array[17]);
5314 array[13] = tmp;
5315 tmp = _mm_min_ps(array[14], array[18]);
5316 array[18] = _mm_max_ps(array[14], array[18]);
5317 array[14] = tmp;
5318 tmp = _mm_min_ps(array[15], array[19]);
5319 array[19] = _mm_max_ps(array[15], array[19]);
5320 array[15] = tmp;
5321 tmp = _mm_min_ps(array[20], array[24]);
5322 array[24] = _mm_max_ps(array[20], array[24]);
5323 array[20] = tmp;
5324 tmp = _mm_min_ps(array[21], array[25]);
5325 array[25] = _mm_max_ps(array[21], array[25]);
5326 array[21] = tmp;
5327 tmp = _mm_min_ps(array[22], array[26]);
5328 array[26] = _mm_max_ps(array[22], array[26]);
5329 array[22] = tmp;
5330 tmp = _mm_min_ps(array[23], array[27]);
5331 array[27] = _mm_max_ps(array[23], array[27]);
5332 array[23] = tmp;
5333 tmp = _mm_min_ps(array[28], array[32]);
5334 array[32] = _mm_max_ps(array[28], array[32]);
5335 array[28] = tmp;
5336 tmp = _mm_min_ps(array[29], array[33]);
5337 array[33] = _mm_max_ps(array[29], array[33]);
5338 array[29] = tmp;
5339 tmp = _mm_min_ps(array[30], array[34]);
5340 array[34] = _mm_max_ps(array[30], array[34]);
5341 array[30] = tmp;
5342 tmp = _mm_min_ps(array[31], array[35]);
5343 array[35] = _mm_max_ps(array[31], array[35]);
5344 array[31] = tmp;
5345 tmp = _mm_min_ps(array[36], array[40]);
5346 array[40] = _mm_max_ps(array[36], array[40]);
5347 array[36] = tmp;
5348 tmp = _mm_min_ps(array[37], array[41]);
5349 array[41] = _mm_max_ps(array[37], array[41]);
5350 array[37] = tmp;
5351 tmp = _mm_min_ps(array[38], array[42]);
5352 array[42] = _mm_max_ps(array[38], array[42]);
5353 array[38] = tmp;
5354 tmp = _mm_min_ps(array[39], array[43]);
5355 array[43] = _mm_max_ps(array[39], array[43]);
5356 array[39] = tmp;
5357 tmp = _mm_min_ps(array[44], array[48]);
5358 array[48] = _mm_max_ps(array[44], array[48]);
5359 array[44] = tmp;
5360 tmp = _mm_min_ps(array[45], array[49]);
5361 array[49] = _mm_max_ps(array[45], array[49]);
5362 array[45] = tmp;
5363 tmp = _mm_min_ps(array[46], array[50]);
5364 array[50] = _mm_max_ps(array[46], array[50]);
5365 array[46] = tmp;
5366 tmp = _mm_min_ps(array[47], array[51]);
5367 array[51] = _mm_max_ps(array[47], array[51]);
5368 array[47] = tmp;
5369 tmp = _mm_min_ps(array[52], array[56]);
5370 array[56] = _mm_max_ps(array[52], array[56]);
5371 array[52] = tmp;
5372 tmp = _mm_min_ps(array[53], array[57]);
5373 array[57] = _mm_max_ps(array[53], array[57]);
5374 array[53] = tmp;
5375 tmp = _mm_min_ps(array[54], array[58]);
5376 array[58] = _mm_max_ps(array[54], array[58]);
5377 array[54] = tmp;
5378 tmp = _mm_min_ps(array[55], array[59]);
5379 array[59] = _mm_max_ps(array[55], array[59]);
5380 array[55] = tmp;
5381 tmp = _mm_min_ps(array[60], array[64]);
5382 array[64] = _mm_max_ps(array[60], array[64]);
5383 array[60] = tmp;
5384 tmp = _mm_min_ps(array[61], array[65]);
5385 array[65] = _mm_max_ps(array[61], array[65]);
5386 array[61] = tmp;
5387 tmp = _mm_min_ps(array[62], array[66]);
5388 array[66] = _mm_max_ps(array[62], array[66]);
5389 array[62] = tmp;
5390 tmp = _mm_min_ps(array[63], array[67]);
5391 array[67] = _mm_max_ps(array[63], array[67]);
5392 array[63] = tmp;
5393 tmp = _mm_min_ps(array[68], array[72]);
5394 array[72] = _mm_max_ps(array[68], array[72]);
5395 array[68] = tmp;
5396 tmp = _mm_min_ps(array[69], array[73]);
5397 array[73] = _mm_max_ps(array[69], array[73]);
5398 array[69] = tmp;
5399 tmp = _mm_min_ps(array[70], array[74]);
5400 array[74] = _mm_max_ps(array[70], array[74]);
5401 array[70] = tmp;
5402 tmp = _mm_min_ps(array[71], array[75]);
5403 array[75] = _mm_max_ps(array[71], array[75]);
5404 array[71] = tmp;
5405 tmp = _mm_min_ps(array[76], array[80]);
5406 array[80] = _mm_max_ps(array[76], array[80]);
5407 array[76] = tmp;
5408 tmp = _mm_min_ps(array[0], array[2]);
5409 array[2] = _mm_max_ps(array[0], array[2]);
5410 array[0] = tmp;
5411 tmp = _mm_min_ps(array[1], array[3]);
5412 array[3] = _mm_max_ps(array[1], array[3]);
5413 array[1] = tmp;
5414 tmp = _mm_min_ps(array[4], array[6]);
5415 array[6] = _mm_max_ps(array[4], array[6]);
5416 array[4] = tmp;
5417 tmp = _mm_min_ps(array[5], array[7]);
5418 array[7] = _mm_max_ps(array[5], array[7]);
5419 array[5] = tmp;
5420 tmp = _mm_min_ps(array[8], array[10]);
5421 array[10] = _mm_max_ps(array[8], array[10]);
5422 array[8] = tmp;
5423 tmp = _mm_min_ps(array[9], array[11]);
5424 array[11] = _mm_max_ps(array[9], array[11]);
5425 array[9] = tmp;
5426 tmp = _mm_min_ps(array[12], array[14]);
5427 array[14] = _mm_max_ps(array[12], array[14]);
5428 array[12] = tmp;
5429 tmp = _mm_min_ps(array[13], array[15]);
5430 array[15] = _mm_max_ps(array[13], array[15]);
5431 array[13] = tmp;
5432 tmp = _mm_min_ps(array[16], array[18]);
5433 array[18] = _mm_max_ps(array[16], array[18]);
5434 array[16] = tmp;
5435 tmp = _mm_min_ps(array[17], array[19]);
5436 array[19] = _mm_max_ps(array[17], array[19]);
5437 array[17] = tmp;
5438 tmp = _mm_min_ps(array[20], array[22]);
5439 array[22] = _mm_max_ps(array[20], array[22]);
5440 array[20] = tmp;
5441 tmp = _mm_min_ps(array[21], array[23]);
5442 array[23] = _mm_max_ps(array[21], array[23]);
5443 array[21] = tmp;
5444 tmp = _mm_min_ps(array[24], array[26]);
5445 array[26] = _mm_max_ps(array[24], array[26]);
5446 array[24] = tmp;
5447 tmp = _mm_min_ps(array[25], array[27]);
5448 array[27] = _mm_max_ps(array[25], array[27]);
5449 array[25] = tmp;
5450 tmp = _mm_min_ps(array[28], array[30]);
5451 array[30] = _mm_max_ps(array[28], array[30]);
5452 array[28] = tmp;
5453 tmp = _mm_min_ps(array[29], array[31]);
5454 array[31] = _mm_max_ps(array[29], array[31]);
5455 array[29] = tmp;
5456 tmp = _mm_min_ps(array[32], array[34]);
5457 array[34] = _mm_max_ps(array[32], array[34]);
5458 array[32] = tmp;
5459 tmp = _mm_min_ps(array[33], array[35]);
5460 array[35] = _mm_max_ps(array[33], array[35]);
5461 array[33] = tmp;
5462 tmp = _mm_min_ps(array[36], array[38]);
5463 array[38] = _mm_max_ps(array[36], array[38]);
5464 array[36] = tmp;
5465 tmp = _mm_min_ps(array[37], array[39]);
5466 array[39] = _mm_max_ps(array[37], array[39]);
5467 array[37] = tmp;
5468 tmp = _mm_min_ps(array[40], array[42]);
5469 array[42] = _mm_max_ps(array[40], array[42]);
5470 array[40] = tmp;
5471 tmp = _mm_min_ps(array[41], array[43]);
5472 array[43] = _mm_max_ps(array[41], array[43]);
5473 array[41] = tmp;
5474 tmp = _mm_min_ps(array[44], array[46]);
5475 array[46] = _mm_max_ps(array[44], array[46]);
5476 array[44] = tmp;
5477 tmp = _mm_min_ps(array[45], array[47]);
5478 array[47] = _mm_max_ps(array[45], array[47]);
5479 array[45] = tmp;
5480 tmp = _mm_min_ps(array[48], array[50]);
5481 array[50] = _mm_max_ps(array[48], array[50]);
5482 array[48] = tmp;
5483 tmp = _mm_min_ps(array[49], array[51]);
5484 array[51] = _mm_max_ps(array[49], array[51]);
5485 array[49] = tmp;
5486 tmp = _mm_min_ps(array[52], array[54]);
5487 array[54] = _mm_max_ps(array[52], array[54]);
5488 array[52] = tmp;
5489 tmp = _mm_min_ps(array[53], array[55]);
5490 array[55] = _mm_max_ps(array[53], array[55]);
5491 array[53] = tmp;
5492 tmp = _mm_min_ps(array[56], array[58]);
5493 array[58] = _mm_max_ps(array[56], array[58]);
5494 array[56] = tmp;
5495 tmp = _mm_min_ps(array[57], array[59]);
5496 array[59] = _mm_max_ps(array[57], array[59]);
5497 array[57] = tmp;
5498 tmp = _mm_min_ps(array[60], array[62]);
5499 array[62] = _mm_max_ps(array[60], array[62]);
5500 array[60] = tmp;
5501 tmp = _mm_min_ps(array[61], array[63]);
5502 array[63] = _mm_max_ps(array[61], array[63]);
5503 array[61] = tmp;
5504 tmp = _mm_min_ps(array[64], array[66]);
5505 array[66] = _mm_max_ps(array[64], array[66]);
5506 array[64] = tmp;
5507 tmp = _mm_min_ps(array[65], array[67]);
5508 array[67] = _mm_max_ps(array[65], array[67]);
5509 array[65] = tmp;
5510 tmp = _mm_min_ps(array[68], array[70]);
5511 array[70] = _mm_max_ps(array[68], array[70]);
5512 array[68] = tmp;
5513 tmp = _mm_min_ps(array[69], array[71]);
5514 array[71] = _mm_max_ps(array[69], array[71]);
5515 array[69] = tmp;
5516 tmp = _mm_min_ps(array[72], array[74]);
5517 array[74] = _mm_max_ps(array[72], array[74]);
5518 array[72] = tmp;
5519 tmp = _mm_min_ps(array[73], array[75]);
5520 array[75] = _mm_max_ps(array[73], array[75]);
5521 array[73] = tmp;
5522 tmp = _mm_min_ps(array[76], array[78]);
5523 array[78] = _mm_max_ps(array[76], array[78]);
5524 array[76] = tmp;
5525 tmp = _mm_min_ps(array[77], array[79]);
5526 array[79] = _mm_max_ps(array[77], array[79]);
5527 array[77] = tmp;
5528 tmp = _mm_min_ps(array[2], array[64]);
5529 array[64] = _mm_max_ps(array[2], array[64]);
5530 array[2] = tmp;
5531 tmp = _mm_min_ps(array[3], array[65]);
5532 array[65] = _mm_max_ps(array[3], array[65]);
5533 array[3] = tmp;
5534 tmp = _mm_min_ps(array[6], array[68]);
5535 array[68] = _mm_max_ps(array[6], array[68]);
5536 array[6] = tmp;
5537 tmp = _mm_min_ps(array[7], array[69]);
5538 array[69] = _mm_max_ps(array[7], array[69]);
5539 array[7] = tmp;
5540 tmp = _mm_min_ps(array[10], array[72]);
5541 array[72] = _mm_max_ps(array[10], array[72]);
5542 array[10] = tmp;
5543 tmp = _mm_min_ps(array[11], array[73]);
5544 array[73] = _mm_max_ps(array[11], array[73]);
5545 array[11] = tmp;
5546 tmp = _mm_min_ps(array[14], array[76]);
5547 array[76] = _mm_max_ps(array[14], array[76]);
5548 array[14] = tmp;
5549 tmp = _mm_min_ps(array[15], array[77]);
5550 array[77] = _mm_max_ps(array[15], array[77]);
5551 array[15] = tmp;
5552 tmp = _mm_min_ps(array[18], array[80]);
5553 array[80] = _mm_max_ps(array[18], array[80]);
5554 array[18] = tmp;
5555 tmp = _mm_min_ps(array[2], array[32]);
5556 array[32] = _mm_max_ps(array[2], array[32]);
5557 array[2] = tmp;
5558 tmp = _mm_min_ps(array[3], array[33]);
5559 array[33] = _mm_max_ps(array[3], array[33]);
5560 array[3] = tmp;
5561 tmp = _mm_min_ps(array[6], array[36]);
5562 array[36] = _mm_max_ps(array[6], array[36]);
5563 array[6] = tmp;
5564 tmp = _mm_min_ps(array[7], array[37]);
5565 array[37] = _mm_max_ps(array[7], array[37]);
5566 array[7] = tmp;
5567 tmp = _mm_min_ps(array[10], array[40]);
5568 array[40] = _mm_max_ps(array[10], array[40]);
5569 array[10] = tmp;
5570 tmp = _mm_min_ps(array[11], array[41]);
5571 array[41] = _mm_max_ps(array[11], array[41]);
5572 array[11] = tmp;
5573 tmp = _mm_min_ps(array[14], array[44]);
5574 array[44] = _mm_max_ps(array[14], array[44]);
5575 array[14] = tmp;
5576 tmp = _mm_min_ps(array[15], array[45]);
5577 array[45] = _mm_max_ps(array[15], array[45]);
5578 array[15] = tmp;
5579 tmp = _mm_min_ps(array[18], array[48]);
5580 array[48] = _mm_max_ps(array[18], array[48]);
5581 array[18] = tmp;
5582 tmp = _mm_min_ps(array[19], array[49]);
5583 array[49] = _mm_max_ps(array[19], array[49]);
5584 array[19] = tmp;
5585 tmp = _mm_min_ps(array[22], array[52]);
5586 array[52] = _mm_max_ps(array[22], array[52]);
5587 array[22] = tmp;
5588 tmp = _mm_min_ps(array[23], array[53]);
5589 array[53] = _mm_max_ps(array[23], array[53]);
5590 array[23] = tmp;
5591 tmp = _mm_min_ps(array[26], array[56]);
5592 array[56] = _mm_max_ps(array[26], array[56]);
5593 array[26] = tmp;
5594 tmp = _mm_min_ps(array[27], array[57]);
5595 array[57] = _mm_max_ps(array[27], array[57]);
5596 array[27] = tmp;
5597 tmp = _mm_min_ps(array[30], array[60]);
5598 array[60] = _mm_max_ps(array[30], array[60]);
5599 array[30] = tmp;
5600 tmp = _mm_min_ps(array[31], array[61]);
5601 array[61] = _mm_max_ps(array[31], array[61]);
5602 array[31] = tmp;
5603 tmp = _mm_min_ps(array[34], array[64]);
5604 array[64] = _mm_max_ps(array[34], array[64]);
5605 array[34] = tmp;
5606 tmp = _mm_min_ps(array[35], array[65]);
5607 array[65] = _mm_max_ps(array[35], array[65]);
5608 array[35] = tmp;
5609 tmp = _mm_min_ps(array[38], array[68]);
5610 array[68] = _mm_max_ps(array[38], array[68]);
5611 array[38] = tmp;
5612 tmp = _mm_min_ps(array[39], array[69]);
5613 array[69] = _mm_max_ps(array[39], array[69]);
5614 array[39] = tmp;
5615 tmp = _mm_min_ps(array[42], array[72]);
5616 array[72] = _mm_max_ps(array[42], array[72]);
5617 array[42] = tmp;
5618 tmp = _mm_min_ps(array[43], array[73]);
5619 array[73] = _mm_max_ps(array[43], array[73]);
5620 array[43] = tmp;
5621 tmp = _mm_min_ps(array[46], array[76]);
5622 array[76] = _mm_max_ps(array[46], array[76]);
5623 array[46] = tmp;
5624 tmp = _mm_min_ps(array[47], array[77]);
5625 array[77] = _mm_max_ps(array[47], array[77]);
5626 array[47] = tmp;
5627 tmp = _mm_min_ps(array[50], array[80]);
5628 array[80] = _mm_max_ps(array[50], array[80]);
5629 array[50] = tmp;
5630 tmp = _mm_min_ps(array[2], array[16]);
5631 array[16] = _mm_max_ps(array[2], array[16]);
5632 array[2] = tmp;
5633 tmp = _mm_min_ps(array[3], array[17]);
5634 array[17] = _mm_max_ps(array[3], array[17]);
5635 array[3] = tmp;
5636 tmp = _mm_min_ps(array[6], array[20]);
5637 array[20] = _mm_max_ps(array[6], array[20]);
5638 array[6] = tmp;
5639 tmp = _mm_min_ps(array[7], array[21]);
5640 array[21] = _mm_max_ps(array[7], array[21]);
5641 array[7] = tmp;
5642 tmp = _mm_min_ps(array[10], array[24]);
5643 array[24] = _mm_max_ps(array[10], array[24]);
5644 array[10] = tmp;
5645 tmp = _mm_min_ps(array[11], array[25]);
5646 array[25] = _mm_max_ps(array[11], array[25]);
5647 array[11] = tmp;
5648 tmp = _mm_min_ps(array[14], array[28]);
5649 array[28] = _mm_max_ps(array[14], array[28]);
5650 array[14] = tmp;
5651 tmp = _mm_min_ps(array[15], array[29]);
5652 array[29] = _mm_max_ps(array[15], array[29]);
5653 array[15] = tmp;
5654 tmp = _mm_min_ps(array[18], array[32]);
5655 array[32] = _mm_max_ps(array[18], array[32]);
5656 array[18] = tmp;
5657 tmp = _mm_min_ps(array[19], array[33]);
5658 array[33] = _mm_max_ps(array[19], array[33]);
5659 array[19] = tmp;
5660 tmp = _mm_min_ps(array[22], array[36]);
5661 array[36] = _mm_max_ps(array[22], array[36]);
5662 array[22] = tmp;
5663 tmp = _mm_min_ps(array[23], array[37]);
5664 array[37] = _mm_max_ps(array[23], array[37]);
5665 array[23] = tmp;
5666 tmp = _mm_min_ps(array[26], array[40]);
5667 array[40] = _mm_max_ps(array[26], array[40]);
5668 array[26] = tmp;
5669 tmp = _mm_min_ps(array[27], array[41]);
5670 array[41] = _mm_max_ps(array[27], array[41]);
5671 array[27] = tmp;
5672 tmp = _mm_min_ps(array[30], array[44]);
5673 array[44] = _mm_max_ps(array[30], array[44]);
5674 array[30] = tmp;
5675 tmp = _mm_min_ps(array[31], array[45]);
5676 array[45] = _mm_max_ps(array[31], array[45]);
5677 array[31] = tmp;
5678 tmp = _mm_min_ps(array[34], array[48]);
5679 array[48] = _mm_max_ps(array[34], array[48]);
5680 array[34] = tmp;
5681 tmp = _mm_min_ps(array[35], array[49]);
5682 array[49] = _mm_max_ps(array[35], array[49]);
5683 array[35] = tmp;
5684 tmp = _mm_min_ps(array[38], array[52]);
5685 array[52] = _mm_max_ps(array[38], array[52]);
5686 array[38] = tmp;
5687 tmp = _mm_min_ps(array[39], array[53]);
5688 array[53] = _mm_max_ps(array[39], array[53]);
5689 array[39] = tmp;
5690 tmp = _mm_min_ps(array[42], array[56]);
5691 array[56] = _mm_max_ps(array[42], array[56]);
5692 array[42] = tmp;
5693 tmp = _mm_min_ps(array[43], array[57]);
5694 array[57] = _mm_max_ps(array[43], array[57]);
5695 array[43] = tmp;
5696 tmp = _mm_min_ps(array[46], array[60]);
5697 array[60] = _mm_max_ps(array[46], array[60]);
5698 array[46] = tmp;
5699 tmp = _mm_min_ps(array[47], array[61]);
5700 array[61] = _mm_max_ps(array[47], array[61]);
5701 array[47] = tmp;
5702 tmp = _mm_min_ps(array[50], array[64]);
5703 array[64] = _mm_max_ps(array[50], array[64]);
5704 array[50] = tmp;
5705 tmp = _mm_min_ps(array[51], array[65]);
5706 array[65] = _mm_max_ps(array[51], array[65]);
5707 array[51] = tmp;
5708 tmp = _mm_min_ps(array[54], array[68]);
5709 array[68] = _mm_max_ps(array[54], array[68]);
5710 array[54] = tmp;
5711 tmp = _mm_min_ps(array[55], array[69]);
5712 array[69] = _mm_max_ps(array[55], array[69]);
5713 array[55] = tmp;
5714 tmp = _mm_min_ps(array[58], array[72]);
5715 array[72] = _mm_max_ps(array[58], array[72]);
5716 array[58] = tmp;
5717 tmp = _mm_min_ps(array[59], array[73]);
5718 array[73] = _mm_max_ps(array[59], array[73]);
5719 array[59] = tmp;
5720 tmp = _mm_min_ps(array[62], array[76]);
5721 array[76] = _mm_max_ps(array[62], array[76]);
5722 array[62] = tmp;
5723 tmp = _mm_min_ps(array[63], array[77]);
5724 array[77] = _mm_max_ps(array[63], array[77]);
5725 array[63] = tmp;
5726 tmp = _mm_min_ps(array[66], array[80]);
5727 array[80] = _mm_max_ps(array[66], array[80]);
5728 array[66] = tmp;
5729 tmp = _mm_min_ps(array[2], array[8]);
5730 array[8] = _mm_max_ps(array[2], array[8]);
5731 array[2] = tmp;
5732 tmp = _mm_min_ps(array[3], array[9]);
5733 array[9] = _mm_max_ps(array[3], array[9]);
5734 array[3] = tmp;
5735 tmp = _mm_min_ps(array[6], array[12]);
5736 array[12] = _mm_max_ps(array[6], array[12]);
5737 array[6] = tmp;
5738 tmp = _mm_min_ps(array[7], array[13]);
5739 array[13] = _mm_max_ps(array[7], array[13]);
5740 array[7] = tmp;
5741 tmp = _mm_min_ps(array[10], array[16]);
5742 array[16] = _mm_max_ps(array[10], array[16]);
5743 array[10] = tmp;
5744 tmp = _mm_min_ps(array[11], array[17]);
5745 array[17] = _mm_max_ps(array[11], array[17]);
5746 array[11] = tmp;
5747 tmp = _mm_min_ps(array[14], array[20]);
5748 array[20] = _mm_max_ps(array[14], array[20]);
5749 array[14] = tmp;
5750 tmp = _mm_min_ps(array[15], array[21]);
5751 array[21] = _mm_max_ps(array[15], array[21]);
5752 array[15] = tmp;
5753 tmp = _mm_min_ps(array[18], array[24]);
5754 array[24] = _mm_max_ps(array[18], array[24]);
5755 array[18] = tmp;
5756 tmp = _mm_min_ps(array[19], array[25]);
5757 array[25] = _mm_max_ps(array[19], array[25]);
5758 array[19] = tmp;
5759 tmp = _mm_min_ps(array[22], array[28]);
5760 array[28] = _mm_max_ps(array[22], array[28]);
5761 array[22] = tmp;
5762 tmp = _mm_min_ps(array[23], array[29]);
5763 array[29] = _mm_max_ps(array[23], array[29]);
5764 array[23] = tmp;
5765 tmp = _mm_min_ps(array[26], array[32]);
5766 array[32] = _mm_max_ps(array[26], array[32]);
5767 array[26] = tmp;
5768 tmp = _mm_min_ps(array[27], array[33]);
5769 array[33] = _mm_max_ps(array[27], array[33]);
5770 array[27] = tmp;
5771 tmp = _mm_min_ps(array[30], array[36]);
5772 array[36] = _mm_max_ps(array[30], array[36]);
5773 array[30] = tmp;
5774 tmp = _mm_min_ps(array[31], array[37]);
5775 array[37] = _mm_max_ps(array[31], array[37]);
5776 array[31] = tmp;
5777 tmp = _mm_min_ps(array[34], array[40]);
5778 array[40] = _mm_max_ps(array[34], array[40]);
5779 array[34] = tmp;
5780 tmp = _mm_min_ps(array[35], array[41]);
5781 array[41] = _mm_max_ps(array[35], array[41]);
5782 array[35] = tmp;
5783 tmp = _mm_min_ps(array[38], array[44]);
5784 array[44] = _mm_max_ps(array[38], array[44]);
5785 array[38] = tmp;
5786 tmp = _mm_min_ps(array[39], array[45]);
5787 array[45] = _mm_max_ps(array[39], array[45]);
5788 array[39] = tmp;
5789 tmp = _mm_min_ps(array[42], array[48]);
5790 array[48] = _mm_max_ps(array[42], array[48]);
5791 array[42] = tmp;
5792 tmp = _mm_min_ps(array[43], array[49]);
5793 array[49] = _mm_max_ps(array[43], array[49]);
5794 array[43] = tmp;
5795 tmp = _mm_min_ps(array[46], array[52]);
5796 array[52] = _mm_max_ps(array[46], array[52]);
5797 array[46] = tmp;
5798 tmp = _mm_min_ps(array[47], array[53]);
5799 array[53] = _mm_max_ps(array[47], array[53]);
5800 array[47] = tmp;
5801 tmp = _mm_min_ps(array[50], array[56]);
5802 array[56] = _mm_max_ps(array[50], array[56]);
5803 array[50] = tmp;
5804 tmp = _mm_min_ps(array[51], array[57]);
5805 array[57] = _mm_max_ps(array[51], array[57]);
5806 array[51] = tmp;
5807 tmp = _mm_min_ps(array[54], array[60]);
5808 array[60] = _mm_max_ps(array[54], array[60]);
5809 array[54] = tmp;
5810 tmp = _mm_min_ps(array[55], array[61]);
5811 array[61] = _mm_max_ps(array[55], array[61]);
5812 array[55] = tmp;
5813 tmp = _mm_min_ps(array[58], array[64]);
5814 array[64] = _mm_max_ps(array[58], array[64]);
5815 array[58] = tmp;
5816 tmp = _mm_min_ps(array[59], array[65]);
5817 array[65] = _mm_max_ps(array[59], array[65]);
5818 array[59] = tmp;
5819 tmp = _mm_min_ps(array[62], array[68]);
5820 array[68] = _mm_max_ps(array[62], array[68]);
5821 array[62] = tmp;
5822 tmp = _mm_min_ps(array[63], array[69]);
5823 array[69] = _mm_max_ps(array[63], array[69]);
5824 array[63] = tmp;
5825 tmp = _mm_min_ps(array[66], array[72]);
5826 array[72] = _mm_max_ps(array[66], array[72]);
5827 array[66] = tmp;
5828 tmp = _mm_min_ps(array[67], array[73]);
5829 array[73] = _mm_max_ps(array[67], array[73]);
5830 array[67] = tmp;
5831 tmp = _mm_min_ps(array[70], array[76]);
5832 array[76] = _mm_max_ps(array[70], array[76]);
5833 array[70] = tmp;
5834 tmp = _mm_min_ps(array[71], array[77]);
5835 array[77] = _mm_max_ps(array[71], array[77]);
5836 array[71] = tmp;
5837 tmp = _mm_min_ps(array[74], array[80]);
5838 array[80] = _mm_max_ps(array[74], array[80]);
5839 array[74] = tmp;
5840 tmp = _mm_min_ps(array[2], array[4]);
5841 array[4] = _mm_max_ps(array[2], array[4]);
5842 array[2] = tmp;
5843 tmp = _mm_min_ps(array[3], array[5]);
5844 array[5] = _mm_max_ps(array[3], array[5]);
5845 array[3] = tmp;
5846 tmp = _mm_min_ps(array[6], array[8]);
5847 array[8] = _mm_max_ps(array[6], array[8]);
5848 array[6] = tmp;
5849 tmp = _mm_min_ps(array[7], array[9]);
5850 array[9] = _mm_max_ps(array[7], array[9]);
5851 array[7] = tmp;
5852 tmp = _mm_min_ps(array[10], array[12]);
5853 array[12] = _mm_max_ps(array[10], array[12]);
5854 array[10] = tmp;
5855 tmp = _mm_min_ps(array[11], array[13]);
5856 array[13] = _mm_max_ps(array[11], array[13]);
5857 array[11] = tmp;
5858 tmp = _mm_min_ps(array[14], array[16]);
5859 array[16] = _mm_max_ps(array[14], array[16]);
5860 array[14] = tmp;
5861 tmp = _mm_min_ps(array[15], array[17]);
5862 array[17] = _mm_max_ps(array[15], array[17]);
5863 array[15] = tmp;
5864 tmp = _mm_min_ps(array[18], array[20]);
5865 array[20] = _mm_max_ps(array[18], array[20]);
5866 array[18] = tmp;
5867 tmp = _mm_min_ps(array[19], array[21]);
5868 array[21] = _mm_max_ps(array[19], array[21]);
5869 array[19] = tmp;
5870 tmp = _mm_min_ps(array[22], array[24]);
5871 array[24] = _mm_max_ps(array[22], array[24]);
5872 array[22] = tmp;
5873 tmp = _mm_min_ps(array[23], array[25]);
5874 array[25] = _mm_max_ps(array[23], array[25]);
5875 array[23] = tmp;
5876 tmp = _mm_min_ps(array[26], array[28]);
5877 array[28] = _mm_max_ps(array[26], array[28]);
5878 array[26] = tmp;
5879 tmp = _mm_min_ps(array[27], array[29]);
5880 array[29] = _mm_max_ps(array[27], array[29]);
5881 array[27] = tmp;
5882 tmp = _mm_min_ps(array[30], array[32]);
5883 array[32] = _mm_max_ps(array[30], array[32]);
5884 array[30] = tmp;
5885 tmp = _mm_min_ps(array[31], array[33]);
5886 array[33] = _mm_max_ps(array[31], array[33]);
5887 array[31] = tmp;
5888 tmp = _mm_min_ps(array[34], array[36]);
5889 array[36] = _mm_max_ps(array[34], array[36]);
5890 array[34] = tmp;
5891 tmp = _mm_min_ps(array[35], array[37]);
5892 array[37] = _mm_max_ps(array[35], array[37]);
5893 array[35] = tmp;
5894 tmp = _mm_min_ps(array[38], array[40]);
5895 array[40] = _mm_max_ps(array[38], array[40]);
5896 array[38] = tmp;
5897 tmp = _mm_min_ps(array[39], array[41]);
5898 array[41] = _mm_max_ps(array[39], array[41]);
5899 array[39] = tmp;
5900 tmp = _mm_min_ps(array[42], array[44]);
5901 array[44] = _mm_max_ps(array[42], array[44]);
5902 array[42] = tmp;
5903 tmp = _mm_min_ps(array[43], array[45]);
5904 array[45] = _mm_max_ps(array[43], array[45]);
5905 array[43] = tmp;
5906 tmp = _mm_min_ps(array[46], array[48]);
5907 array[48] = _mm_max_ps(array[46], array[48]);
5908 array[46] = tmp;
5909 tmp = _mm_min_ps(array[47], array[49]);
5910 array[49] = _mm_max_ps(array[47], array[49]);
5911 array[47] = tmp;
5912 tmp = _mm_min_ps(array[50], array[52]);
5913 array[52] = _mm_max_ps(array[50], array[52]);
5914 array[50] = tmp;
5915 tmp = _mm_min_ps(array[51], array[53]);
5916 array[53] = _mm_max_ps(array[51], array[53]);
5917 array[51] = tmp;
5918 tmp = _mm_min_ps(array[54], array[56]);
5919 array[56] = _mm_max_ps(array[54], array[56]);
5920 array[54] = tmp;
5921 tmp = _mm_min_ps(array[55], array[57]);
5922 array[57] = _mm_max_ps(array[55], array[57]);
5923 array[55] = tmp;
5924 tmp = _mm_min_ps(array[58], array[60]);
5925 array[60] = _mm_max_ps(array[58], array[60]);
5926 array[58] = tmp;
5927 tmp = _mm_min_ps(array[59], array[61]);
5928 array[61] = _mm_max_ps(array[59], array[61]);
5929 array[59] = tmp;
5930 tmp = _mm_min_ps(array[62], array[64]);
5931 array[64] = _mm_max_ps(array[62], array[64]);
5932 array[62] = tmp;
5933 tmp = _mm_min_ps(array[63], array[65]);
5934 array[65] = _mm_max_ps(array[63], array[65]);
5935 array[63] = tmp;
5936 tmp = _mm_min_ps(array[66], array[68]);
5937 array[68] = _mm_max_ps(array[66], array[68]);
5938 array[66] = tmp;
5939 tmp = _mm_min_ps(array[67], array[69]);
5940 array[69] = _mm_max_ps(array[67], array[69]);
5941 array[67] = tmp;
5942 tmp = _mm_min_ps(array[70], array[72]);
5943 array[72] = _mm_max_ps(array[70], array[72]);
5944 array[70] = tmp;
5945 tmp = _mm_min_ps(array[71], array[73]);
5946 array[73] = _mm_max_ps(array[71], array[73]);
5947 array[71] = tmp;
5948 tmp = _mm_min_ps(array[74], array[76]);
5949 array[76] = _mm_max_ps(array[74], array[76]);
5950 array[74] = tmp;
5951 tmp = _mm_min_ps(array[75], array[77]);
5952 array[77] = _mm_max_ps(array[75], array[77]);
5953 array[75] = tmp;
5954 tmp = _mm_min_ps(array[78], array[80]);
5955 array[80] = _mm_max_ps(array[78], array[80]);
5956 array[78] = tmp;
5957 array[1] = _mm_max_ps(array[0], array[1]);
5958 array[3] = _mm_max_ps(array[2], array[3]);
5959 array[5] = _mm_max_ps(array[4], array[5]);
5960 array[7] = _mm_max_ps(array[6], array[7]);
5961 array[9] = _mm_max_ps(array[8], array[9]);
5962 array[11] = _mm_max_ps(array[10], array[11]);
5963 array[13] = _mm_max_ps(array[12], array[13]);
5964 array[15] = _mm_max_ps(array[14], array[15]);
5965 array[17] = _mm_max_ps(array[16], array[17]);
5966 array[19] = _mm_max_ps(array[18], array[19]);
5967 array[21] = _mm_max_ps(array[20], array[21]);
5968 array[23] = _mm_max_ps(array[22], array[23]);
5969 array[25] = _mm_max_ps(array[24], array[25]);
5970 array[27] = _mm_max_ps(array[26], array[27]);
5971 array[29] = _mm_max_ps(array[28], array[29]);
5972 array[31] = _mm_max_ps(array[30], array[31]);
5973 array[33] = _mm_max_ps(array[32], array[33]);
5974 array[35] = _mm_max_ps(array[34], array[35]);
5975 array[37] = _mm_max_ps(array[36], array[37]);
5976 array[39] = _mm_max_ps(array[38], array[39]);
5977 array[40] = _mm_min_ps(array[40], array[41]);
5978 array[42] = _mm_min_ps(array[42], array[43]);
5979 array[44] = _mm_min_ps(array[44], array[45]);
5980 array[46] = _mm_min_ps(array[46], array[47]);
5981 array[48] = _mm_min_ps(array[48], array[49]);
5982 array[50] = _mm_min_ps(array[50], array[51]);
5983 array[52] = _mm_min_ps(array[52], array[53]);
5984 array[54] = _mm_min_ps(array[54], array[55]);
5985 array[56] = _mm_min_ps(array[56], array[57]);
5986 array[58] = _mm_min_ps(array[58], array[59]);
5987 array[60] = _mm_min_ps(array[60], array[61]);
5988 array[62] = _mm_min_ps(array[62], array[63]);
5989 array[64] = _mm_min_ps(array[64], array[65]);
5990 array[66] = _mm_min_ps(array[66], array[67]);
5991 array[68] = _mm_min_ps(array[68], array[69]);
5992 array[70] = _mm_min_ps(array[70], array[71]);
5993 array[72] = _mm_min_ps(array[72], array[73]);
5994 array[74] = _mm_min_ps(array[74], array[75]);
5995 array[76] = _mm_min_ps(array[76], array[77]);
5996 array[78] = _mm_min_ps(array[78], array[79]);
5997 array[64] = _mm_max_ps(array[1], array[64]);
5998 array[66] = _mm_max_ps(array[3], array[66]);
5999 array[68] = _mm_max_ps(array[5], array[68]);
6000 array[70] = _mm_max_ps(array[7], array[70]);
6001 array[9] = _mm_min_ps(array[9], array[72]);
6002 array[11] = _mm_min_ps(array[11], array[74]);
6003 array[13] = _mm_min_ps(array[13], array[76]);
6004 array[15] = _mm_min_ps(array[15], array[78]);
6005 array[17] = _mm_min_ps(array[17], array[80]);
6006 array[40] = _mm_max_ps(array[9], array[40]);
6007 array[42] = _mm_max_ps(array[11], array[42]);
6008 array[44] = _mm_max_ps(array[13], array[44]);
6009 array[46] = _mm_max_ps(array[15], array[46]);
6010 array[48] = _mm_max_ps(array[17], array[48]);
6011 array[50] = _mm_max_ps(array[19], array[50]);
6012 array[52] = _mm_max_ps(array[21], array[52]);
6013 array[54] = _mm_max_ps(array[23], array[54]);
6014 array[25] = _mm_min_ps(array[25], array[56]);
6015 array[27] = _mm_min_ps(array[27], array[58]);
6016 array[29] = _mm_min_ps(array[29], array[60]);
6017 array[31] = _mm_min_ps(array[31], array[62]);
6018 array[33] = _mm_min_ps(array[33], array[64]);
6019 array[35] = _mm_min_ps(array[35], array[66]);
6020 array[37] = _mm_min_ps(array[37], array[68]);
6021 array[39] = _mm_min_ps(array[39], array[70]);
6022 array[40] = _mm_max_ps(array[25], array[40]);
6023 array[42] = _mm_max_ps(array[27], array[42]);
6024 array[44] = _mm_max_ps(array[29], array[44]);
6025 array[46] = _mm_max_ps(array[31], array[46]);
6026 array[33] = _mm_min_ps(array[33], array[48]);
6027 array[35] = _mm_min_ps(array[35], array[50]);
6028 array[37] = _mm_min_ps(array[37], array[52]);
6029 array[39] = _mm_min_ps(array[39], array[54]);
6030 array[40] = _mm_max_ps(array[33], array[40]);
6031 array[42] = _mm_max_ps(array[35], array[42]);
6032 array[37] = _mm_min_ps(array[37], array[44]);
6033 array[39] = _mm_min_ps(array[39], array[46]);
6034 array[40] = _mm_max_ps(array[37], array[40]);
6035 array[39] = _mm_min_ps(array[39], array[42]);
6036 return _mm_max_ps(array[39], array[40]);
6037 }
6038 #endif
6039