Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include <stdint.h>
00021 #include <stdlib.h>
00022 #include "cvWrapper.h"
00023 #include "oast9_16.h"
00024
00025 using namespace std;
00026 using namespace agast;
00027
00028
00029
00030 int OastDetector9_16::cornerScore(const unsigned char* p, bool ignorePattern)
00031 {
00032 int bmin = b;
00033
00034 int bmax = 255;
00035 int b_test = (bmax + bmin)/2;
00036
00037 register int_fast16_t offset0;
00038 register int_fast16_t offset1;
00039 register int_fast16_t offset2;
00040 register int_fast16_t offset3;
00041 register int_fast16_t offset4;
00042 register int_fast16_t offset5;
00043 register int_fast16_t offset6;
00044 register int_fast16_t offset7;
00045 register int_fast16_t offset8;
00046 register int_fast16_t offset9;
00047 register int_fast16_t offset10;
00048 register int_fast16_t offset11;
00049 register int_fast16_t offset12;
00050 register int_fast16_t offset13;
00051 register int_fast16_t offset14;
00052 register int_fast16_t offset15;
00053
00054 if(!ignorePattern){
00055 offset0=s_offset0;
00056 offset1=s_offset1;
00057 offset2=s_offset2;
00058 offset3=s_offset3;
00059 offset4=s_offset4;
00060 offset5=s_offset5;
00061 offset6=s_offset6;
00062 offset7=s_offset7;
00063 offset8=s_offset8;
00064 offset9=s_offset9;
00065 offset10=s_offset10;
00066 offset11=s_offset11;
00067 offset12=s_offset12;
00068 offset13=s_offset13;
00069 offset14=s_offset14;
00070 offset15=s_offset15;
00071 }
00072 else{
00073 offset0=1;
00074 offset1=2;
00075 offset2=3;
00076 offset3=4;
00077 offset4=5;
00078 offset5=6;
00079 offset6=7;
00080 offset7=8;
00081 offset8=9;
00082 offset9=10;
00083 offset10=11;
00084 offset11=12;
00085 offset12=13;
00086 offset13=14;
00087 offset14=15;
00088 offset15=16;
00089 }
00090
00091 while(1)
00092 {
00093 register const int cb = *p + b_test;
00094
00095 register const int c_b = *p - b_test;
00096 if(p[offset0] > cb)
00097 if(p[offset2] > cb)
00098 if(p[offset4] > cb)
00099 if(p[offset5] > cb)
00100 if(p[offset7] > cb)
00101 if(p[offset3] > cb)
00102 if(p[offset1] > cb)
00103 if(p[offset6] > cb)
00104 if(p[offset8] > cb)
00105 goto is_a_corner;
00106 else
00107 if(p[offset15] > cb)
00108 goto is_a_corner;
00109 else
00110 goto is_not_a_corner;
00111 else
00112 if(p[offset13] > cb)
00113 if(p[offset14] > cb)
00114 if(p[offset15] > cb)
00115 goto is_a_corner;
00116 else
00117 goto is_not_a_corner;
00118 else
00119 goto is_not_a_corner;
00120 else
00121 goto is_not_a_corner;
00122 else
00123 if(p[offset8] > cb)
00124 if(p[offset9] > cb)
00125 if(p[offset10] > cb)
00126 if(p[offset6] > cb)
00127 goto is_a_corner;
00128 else
00129 if(p[offset11] > cb)
00130 if(p[offset12] > cb)
00131 if(p[offset13] > cb)
00132 if(p[offset14] > cb)
00133 if(p[offset15] > cb)
00134 goto is_a_corner;
00135 else
00136 goto is_not_a_corner;
00137 else
00138 goto is_not_a_corner;
00139 else
00140 goto is_not_a_corner;
00141 else
00142 goto is_not_a_corner;
00143 else
00144 goto is_not_a_corner;
00145 else
00146 goto is_not_a_corner;
00147 else
00148 goto is_not_a_corner;
00149 else
00150 goto is_not_a_corner;
00151 else
00152 if(p[offset10] > cb)
00153 if(p[offset11] > cb)
00154 if(p[offset12] > cb)
00155 if(p[offset8] > cb)
00156 if(p[offset9] > cb)
00157 if(p[offset6] > cb)
00158 goto is_a_corner;
00159 else
00160 if(p[offset13] > cb)
00161 if(p[offset14] > cb)
00162 if(p[offset15] > cb)
00163 goto is_a_corner;
00164 else
00165 goto is_not_a_corner;
00166 else
00167 goto is_not_a_corner;
00168 else
00169 goto is_not_a_corner;
00170 else
00171 if(p[offset1] > cb)
00172 if(p[offset13] > cb)
00173 if(p[offset14] > cb)
00174 if(p[offset15] > cb)
00175 goto is_a_corner;
00176 else
00177 goto is_not_a_corner;
00178 else
00179 goto is_not_a_corner;
00180 else
00181 goto is_not_a_corner;
00182 else
00183 goto is_not_a_corner;
00184 else
00185 if(p[offset1] > cb)
00186 if(p[offset13] > cb)
00187 if(p[offset14] > cb)
00188 if(p[offset15] > cb)
00189 goto is_a_corner;
00190 else
00191 goto is_not_a_corner;
00192 else
00193 goto is_not_a_corner;
00194 else
00195 goto is_not_a_corner;
00196 else
00197 goto is_not_a_corner;
00198 else
00199 goto is_not_a_corner;
00200 else
00201 goto is_not_a_corner;
00202 else
00203 goto is_not_a_corner;
00204 else if(p[offset7] < c_b)
00205 if(p[offset14] > cb)
00206 if(p[offset15] > cb)
00207 if(p[offset1] > cb)
00208 if(p[offset3] > cb)
00209 if(p[offset6] > cb)
00210 goto is_a_corner;
00211 else
00212 if(p[offset13] > cb)
00213 goto is_a_corner;
00214 else
00215 goto is_not_a_corner;
00216 else
00217 if(p[offset10] > cb)
00218 if(p[offset11] > cb)
00219 if(p[offset12] > cb)
00220 if(p[offset13] > cb)
00221 goto is_a_corner;
00222 else
00223 goto is_not_a_corner;
00224 else
00225 goto is_not_a_corner;
00226 else
00227 goto is_not_a_corner;
00228 else
00229 goto is_not_a_corner;
00230 else
00231 if(p[offset8] > cb)
00232 if(p[offset9] > cb)
00233 if(p[offset10] > cb)
00234 if(p[offset11] > cb)
00235 if(p[offset12] > cb)
00236 if(p[offset13] > cb)
00237 goto is_a_corner;
00238 else
00239 goto is_not_a_corner;
00240 else
00241 goto is_not_a_corner;
00242 else
00243 goto is_not_a_corner;
00244 else
00245 goto is_not_a_corner;
00246 else
00247 goto is_not_a_corner;
00248 else
00249 goto is_not_a_corner;
00250 else
00251 goto is_not_a_corner;
00252 else if(p[offset14] < c_b)
00253 if(p[offset8] < c_b)
00254 if(p[offset9] < c_b)
00255 if(p[offset10] < c_b)
00256 if(p[offset11] < c_b)
00257 if(p[offset12] < c_b)
00258 if(p[offset13] < c_b)
00259 if(p[offset6] < c_b)
00260 goto is_a_corner;
00261 else
00262 if(p[offset15] < c_b)
00263 goto is_a_corner;
00264 else
00265 goto is_not_a_corner;
00266 else
00267 goto is_not_a_corner;
00268 else
00269 goto is_not_a_corner;
00270 else
00271 goto is_not_a_corner;
00272 else
00273 goto is_not_a_corner;
00274 else
00275 goto is_not_a_corner;
00276 else
00277 goto is_not_a_corner;
00278 else
00279 goto is_not_a_corner;
00280 else
00281 if(p[offset14] > cb)
00282 if(p[offset15] > cb)
00283 if(p[offset1] > cb)
00284 if(p[offset3] > cb)
00285 if(p[offset6] > cb)
00286 goto is_a_corner;
00287 else
00288 if(p[offset13] > cb)
00289 goto is_a_corner;
00290 else
00291 goto is_not_a_corner;
00292 else
00293 if(p[offset10] > cb)
00294 if(p[offset11] > cb)
00295 if(p[offset12] > cb)
00296 if(p[offset13] > cb)
00297 goto is_a_corner;
00298 else
00299 goto is_not_a_corner;
00300 else
00301 goto is_not_a_corner;
00302 else
00303 goto is_not_a_corner;
00304 else
00305 goto is_not_a_corner;
00306 else
00307 if(p[offset8] > cb)
00308 if(p[offset9] > cb)
00309 if(p[offset10] > cb)
00310 if(p[offset11] > cb)
00311 if(p[offset12] > cb)
00312 if(p[offset13] > cb)
00313 goto is_a_corner;
00314 else
00315 goto is_not_a_corner;
00316 else
00317 goto is_not_a_corner;
00318 else
00319 goto is_not_a_corner;
00320 else
00321 goto is_not_a_corner;
00322 else
00323 goto is_not_a_corner;
00324 else
00325 goto is_not_a_corner;
00326 else
00327 goto is_not_a_corner;
00328 else
00329 goto is_not_a_corner;
00330 else if(p[offset5] < c_b)
00331 if(p[offset12] > cb)
00332 if(p[offset13] > cb)
00333 if(p[offset14] > cb)
00334 if(p[offset15] > cb)
00335 if(p[offset1] > cb)
00336 if(p[offset3] > cb)
00337 goto is_a_corner;
00338 else
00339 if(p[offset10] > cb)
00340 if(p[offset11] > cb)
00341 goto is_a_corner;
00342 else
00343 goto is_not_a_corner;
00344 else
00345 goto is_not_a_corner;
00346 else
00347 if(p[offset8] > cb)
00348 if(p[offset9] > cb)
00349 if(p[offset10] > cb)
00350 if(p[offset11] > cb)
00351 goto is_a_corner;
00352 else
00353 goto is_not_a_corner;
00354 else
00355 goto is_not_a_corner;
00356 else
00357 goto is_not_a_corner;
00358 else
00359 goto is_not_a_corner;
00360 else
00361 if(p[offset6] > cb)
00362 if(p[offset7] > cb)
00363 if(p[offset8] > cb)
00364 if(p[offset9] > cb)
00365 if(p[offset10] > cb)
00366 if(p[offset11] > cb)
00367 goto is_a_corner;
00368 else
00369 goto is_not_a_corner;
00370 else
00371 goto is_not_a_corner;
00372 else
00373 goto is_not_a_corner;
00374 else
00375 goto is_not_a_corner;
00376 else
00377 goto is_not_a_corner;
00378 else
00379 goto is_not_a_corner;
00380 else
00381 goto is_not_a_corner;
00382 else
00383 goto is_not_a_corner;
00384 else if(p[offset12] < c_b)
00385 if(p[offset7] < c_b)
00386 if(p[offset8] < c_b)
00387 if(p[offset9] < c_b)
00388 if(p[offset10] < c_b)
00389 if(p[offset11] < c_b)
00390 if(p[offset13] < c_b)
00391 if(p[offset6] < c_b)
00392 goto is_a_corner;
00393 else
00394 if(p[offset14] < c_b)
00395 if(p[offset15] < c_b)
00396 goto is_a_corner;
00397 else
00398 goto is_not_a_corner;
00399 else
00400 goto is_not_a_corner;
00401 else
00402 goto is_not_a_corner;
00403 else
00404 goto is_not_a_corner;
00405 else
00406 goto is_not_a_corner;
00407 else
00408 goto is_not_a_corner;
00409 else
00410 goto is_not_a_corner;
00411 else
00412 goto is_not_a_corner;
00413 else
00414 goto is_not_a_corner;
00415 else
00416 if(p[offset12] > cb)
00417 if(p[offset13] > cb)
00418 if(p[offset14] > cb)
00419 if(p[offset15] > cb)
00420 if(p[offset1] > cb)
00421 if(p[offset3] > cb)
00422 goto is_a_corner;
00423 else
00424 if(p[offset10] > cb)
00425 if(p[offset11] > cb)
00426 goto is_a_corner;
00427 else
00428 goto is_not_a_corner;
00429 else
00430 goto is_not_a_corner;
00431 else
00432 if(p[offset8] > cb)
00433 if(p[offset9] > cb)
00434 if(p[offset10] > cb)
00435 if(p[offset11] > cb)
00436 goto is_a_corner;
00437 else
00438 goto is_not_a_corner;
00439 else
00440 goto is_not_a_corner;
00441 else
00442 goto is_not_a_corner;
00443 else
00444 goto is_not_a_corner;
00445 else
00446 if(p[offset6] > cb)
00447 if(p[offset7] > cb)
00448 if(p[offset8] > cb)
00449 if(p[offset9] > cb)
00450 if(p[offset10] > cb)
00451 if(p[offset11] > cb)
00452 goto is_a_corner;
00453 else
00454 goto is_not_a_corner;
00455 else
00456 goto is_not_a_corner;
00457 else
00458 goto is_not_a_corner;
00459 else
00460 goto is_not_a_corner;
00461 else
00462 goto is_not_a_corner;
00463 else
00464 goto is_not_a_corner;
00465 else
00466 goto is_not_a_corner;
00467 else
00468 goto is_not_a_corner;
00469 else if(p[offset12] < c_b)
00470 if(p[offset7] < c_b)
00471 if(p[offset8] < c_b)
00472 if(p[offset9] < c_b)
00473 if(p[offset10] < c_b)
00474 if(p[offset11] < c_b)
00475 if(p[offset13] < c_b)
00476 if(p[offset14] < c_b)
00477 if(p[offset6] < c_b)
00478 goto is_a_corner;
00479 else
00480 if(p[offset15] < c_b)
00481 goto is_a_corner;
00482 else
00483 goto is_not_a_corner;
00484 else
00485 goto is_not_a_corner;
00486 else
00487 goto is_not_a_corner;
00488 else
00489 goto is_not_a_corner;
00490 else
00491 goto is_not_a_corner;
00492 else
00493 goto is_not_a_corner;
00494 else
00495 goto is_not_a_corner;
00496 else
00497 goto is_not_a_corner;
00498 else
00499 goto is_not_a_corner;
00500 else if(p[offset4] < c_b)
00501 if(p[offset11] > cb)
00502 if(p[offset12] > cb)
00503 if(p[offset13] > cb)
00504 if(p[offset10] > cb)
00505 if(p[offset14] > cb)
00506 if(p[offset15] > cb)
00507 if(p[offset1] > cb)
00508 goto is_a_corner;
00509 else
00510 if(p[offset8] > cb)
00511 if(p[offset9] > cb)
00512 goto is_a_corner;
00513 else
00514 goto is_not_a_corner;
00515 else
00516 goto is_not_a_corner;
00517 else
00518 if(p[offset6] > cb)
00519 if(p[offset7] > cb)
00520 if(p[offset8] > cb)
00521 if(p[offset9] > cb)
00522 goto is_a_corner;
00523 else
00524 goto is_not_a_corner;
00525 else
00526 goto is_not_a_corner;
00527 else
00528 goto is_not_a_corner;
00529 else
00530 goto is_not_a_corner;
00531 else
00532 if(p[offset5] > cb)
00533 if(p[offset6] > cb)
00534 if(p[offset7] > cb)
00535 if(p[offset8] > cb)
00536 if(p[offset9] > cb)
00537 goto is_a_corner;
00538 else
00539 goto is_not_a_corner;
00540 else
00541 goto is_not_a_corner;
00542 else
00543 goto is_not_a_corner;
00544 else
00545 goto is_not_a_corner;
00546 else
00547 goto is_not_a_corner;
00548 else
00549 if(p[offset1] > cb)
00550 if(p[offset3] > cb)
00551 if(p[offset14] > cb)
00552 if(p[offset15] > cb)
00553 goto is_a_corner;
00554 else
00555 goto is_not_a_corner;
00556 else
00557 goto is_not_a_corner;
00558 else
00559 goto is_not_a_corner;
00560 else
00561 goto is_not_a_corner;
00562 else
00563 goto is_not_a_corner;
00564 else
00565 goto is_not_a_corner;
00566 else if(p[offset11] < c_b)
00567 if(p[offset7] < c_b)
00568 if(p[offset8] < c_b)
00569 if(p[offset9] < c_b)
00570 if(p[offset10] < c_b)
00571 if(p[offset6] < c_b)
00572 if(p[offset5] < c_b)
00573 if(p[offset3] < c_b)
00574 goto is_a_corner;
00575 else
00576 if(p[offset12] < c_b)
00577 goto is_a_corner;
00578 else
00579 goto is_not_a_corner;
00580 else
00581 if(p[offset12] < c_b)
00582 if(p[offset13] < c_b)
00583 if(p[offset14] < c_b)
00584 goto is_a_corner;
00585 else
00586 goto is_not_a_corner;
00587 else
00588 goto is_not_a_corner;
00589 else
00590 goto is_not_a_corner;
00591 else
00592 if(p[offset12] < c_b)
00593 if(p[offset13] < c_b)
00594 if(p[offset14] < c_b)
00595 if(p[offset15] < c_b)
00596 goto is_a_corner;
00597 else
00598 goto is_not_a_corner;
00599 else
00600 goto is_not_a_corner;
00601 else
00602 goto is_not_a_corner;
00603 else
00604 goto is_not_a_corner;
00605 else
00606 goto is_not_a_corner;
00607 else
00608 goto is_not_a_corner;
00609 else
00610 goto is_not_a_corner;
00611 else
00612 goto is_not_a_corner;
00613 else
00614 goto is_not_a_corner;
00615 else
00616 if(p[offset11] > cb)
00617 if(p[offset12] > cb)
00618 if(p[offset13] > cb)
00619 if(p[offset10] > cb)
00620 if(p[offset14] > cb)
00621 if(p[offset15] > cb)
00622 if(p[offset1] > cb)
00623 goto is_a_corner;
00624 else
00625 if(p[offset8] > cb)
00626 if(p[offset9] > cb)
00627 goto is_a_corner;
00628 else
00629 goto is_not_a_corner;
00630 else
00631 goto is_not_a_corner;
00632 else
00633 if(p[offset6] > cb)
00634 if(p[offset7] > cb)
00635 if(p[offset8] > cb)
00636 if(p[offset9] > cb)
00637 goto is_a_corner;
00638 else
00639 goto is_not_a_corner;
00640 else
00641 goto is_not_a_corner;
00642 else
00643 goto is_not_a_corner;
00644 else
00645 goto is_not_a_corner;
00646 else
00647 if(p[offset5] > cb)
00648 if(p[offset6] > cb)
00649 if(p[offset7] > cb)
00650 if(p[offset8] > cb)
00651 if(p[offset9] > cb)
00652 goto is_a_corner;
00653 else
00654 goto is_not_a_corner;
00655 else
00656 goto is_not_a_corner;
00657 else
00658 goto is_not_a_corner;
00659 else
00660 goto is_not_a_corner;
00661 else
00662 goto is_not_a_corner;
00663 else
00664 if(p[offset1] > cb)
00665 if(p[offset3] > cb)
00666 if(p[offset14] > cb)
00667 if(p[offset15] > cb)
00668 goto is_a_corner;
00669 else
00670 goto is_not_a_corner;
00671 else
00672 goto is_not_a_corner;
00673 else
00674 goto is_not_a_corner;
00675 else
00676 goto is_not_a_corner;
00677 else
00678 goto is_not_a_corner;
00679 else
00680 goto is_not_a_corner;
00681 else if(p[offset11] < c_b)
00682 if(p[offset7] < c_b)
00683 if(p[offset8] < c_b)
00684 if(p[offset9] < c_b)
00685 if(p[offset10] < c_b)
00686 if(p[offset12] < c_b)
00687 if(p[offset13] < c_b)
00688 if(p[offset6] < c_b)
00689 if(p[offset5] < c_b)
00690 goto is_a_corner;
00691 else
00692 if(p[offset14] < c_b)
00693 goto is_a_corner;
00694 else
00695 goto is_not_a_corner;
00696 else
00697 if(p[offset14] < c_b)
00698 if(p[offset15] < c_b)
00699 goto is_a_corner;
00700 else
00701 goto is_not_a_corner;
00702 else
00703 goto is_not_a_corner;
00704 else
00705 goto is_not_a_corner;
00706 else
00707 goto is_not_a_corner;
00708 else
00709 goto is_not_a_corner;
00710 else
00711 goto is_not_a_corner;
00712 else
00713 goto is_not_a_corner;
00714 else
00715 goto is_not_a_corner;
00716 else
00717 goto is_not_a_corner;
00718 else if(p[offset2] < c_b)
00719 if(p[offset9] > cb)
00720 if(p[offset10] > cb)
00721 if(p[offset11] > cb)
00722 if(p[offset8] > cb)
00723 if(p[offset12] > cb)
00724 if(p[offset13] > cb)
00725 if(p[offset14] > cb)
00726 if(p[offset15] > cb)
00727 goto is_a_corner;
00728 else
00729 if(p[offset6] > cb)
00730 if(p[offset7] > cb)
00731 goto is_a_corner;
00732 else
00733 goto is_not_a_corner;
00734 else
00735 goto is_not_a_corner;
00736 else
00737 if(p[offset5] > cb)
00738 if(p[offset6] > cb)
00739 if(p[offset7] > cb)
00740 goto is_a_corner;
00741 else
00742 goto is_not_a_corner;
00743 else
00744 goto is_not_a_corner;
00745 else
00746 goto is_not_a_corner;
00747 else
00748 if(p[offset4] > cb)
00749 if(p[offset5] > cb)
00750 if(p[offset6] > cb)
00751 if(p[offset7] > cb)
00752 goto is_a_corner;
00753 else
00754 goto is_not_a_corner;
00755 else
00756 goto is_not_a_corner;
00757 else
00758 goto is_not_a_corner;
00759 else
00760 goto is_not_a_corner;
00761 else
00762 if(p[offset3] > cb)
00763 if(p[offset4] > cb)
00764 if(p[offset5] > cb)
00765 if(p[offset6] > cb)
00766 if(p[offset7] > cb)
00767 goto is_a_corner;
00768 else
00769 goto is_not_a_corner;
00770 else
00771 goto is_not_a_corner;
00772 else
00773 goto is_not_a_corner;
00774 else
00775 goto is_not_a_corner;
00776 else
00777 goto is_not_a_corner;
00778 else
00779 if(p[offset1] > cb)
00780 if(p[offset12] > cb)
00781 if(p[offset13] > cb)
00782 if(p[offset14] > cb)
00783 if(p[offset15] > cb)
00784 goto is_a_corner;
00785 else
00786 goto is_not_a_corner;
00787 else
00788 goto is_not_a_corner;
00789 else
00790 goto is_not_a_corner;
00791 else
00792 goto is_not_a_corner;
00793 else
00794 goto is_not_a_corner;
00795 else
00796 goto is_not_a_corner;
00797 else
00798 goto is_not_a_corner;
00799 else if(p[offset9] < c_b)
00800 if(p[offset7] < c_b)
00801 if(p[offset8] < c_b)
00802 if(p[offset6] < c_b)
00803 if(p[offset5] < c_b)
00804 if(p[offset4] < c_b)
00805 if(p[offset3] < c_b)
00806 if(p[offset1] < c_b)
00807 goto is_a_corner;
00808 else
00809 if(p[offset10] < c_b)
00810 goto is_a_corner;
00811 else
00812 goto is_not_a_corner;
00813 else
00814 if(p[offset10] < c_b)
00815 if(p[offset11] < c_b)
00816 if(p[offset12] < c_b)
00817 goto is_a_corner;
00818 else
00819 goto is_not_a_corner;
00820 else
00821 goto is_not_a_corner;
00822 else
00823 goto is_not_a_corner;
00824 else
00825 if(p[offset10] < c_b)
00826 if(p[offset11] < c_b)
00827 if(p[offset12] < c_b)
00828 if(p[offset13] < c_b)
00829 goto is_a_corner;
00830 else
00831 goto is_not_a_corner;
00832 else
00833 goto is_not_a_corner;
00834 else
00835 goto is_not_a_corner;
00836 else
00837 goto is_not_a_corner;
00838 else
00839 if(p[offset10] < c_b)
00840 if(p[offset11] < c_b)
00841 if(p[offset12] < c_b)
00842 if(p[offset13] < c_b)
00843 if(p[offset14] < c_b)
00844 goto is_a_corner;
00845 else
00846 goto is_not_a_corner;
00847 else
00848 goto is_not_a_corner;
00849 else
00850 goto is_not_a_corner;
00851 else
00852 goto is_not_a_corner;
00853 else
00854 goto is_not_a_corner;
00855 else
00856 if(p[offset10] < c_b)
00857 if(p[offset11] < c_b)
00858 if(p[offset12] < c_b)
00859 if(p[offset13] < c_b)
00860 if(p[offset14] < c_b)
00861 if(p[offset15] < c_b)
00862 goto is_a_corner;
00863 else
00864 goto is_not_a_corner;
00865 else
00866 goto is_not_a_corner;
00867 else
00868 goto is_not_a_corner;
00869 else
00870 goto is_not_a_corner;
00871 else
00872 goto is_not_a_corner;
00873 else
00874 goto is_not_a_corner;
00875 else
00876 goto is_not_a_corner;
00877 else
00878 goto is_not_a_corner;
00879 else
00880 goto is_not_a_corner;
00881 else
00882 if(p[offset9] > cb)
00883 if(p[offset10] > cb)
00884 if(p[offset11] > cb)
00885 if(p[offset8] > cb)
00886 if(p[offset12] > cb)
00887 if(p[offset13] > cb)
00888 if(p[offset14] > cb)
00889 if(p[offset15] > cb)
00890 goto is_a_corner;
00891 else
00892 if(p[offset6] > cb)
00893 if(p[offset7] > cb)
00894 goto is_a_corner;
00895 else
00896 goto is_not_a_corner;
00897 else
00898 goto is_not_a_corner;
00899 else
00900 if(p[offset5] > cb)
00901 if(p[offset6] > cb)
00902 if(p[offset7] > cb)
00903 goto is_a_corner;
00904 else
00905 goto is_not_a_corner;
00906 else
00907 goto is_not_a_corner;
00908 else
00909 goto is_not_a_corner;
00910 else
00911 if(p[offset4] > cb)
00912 if(p[offset5] > cb)
00913 if(p[offset6] > cb)
00914 if(p[offset7] > cb)
00915 goto is_a_corner;
00916 else
00917 goto is_not_a_corner;
00918 else
00919 goto is_not_a_corner;
00920 else
00921 goto is_not_a_corner;
00922 else
00923 goto is_not_a_corner;
00924 else
00925 if(p[offset3] > cb)
00926 if(p[offset4] > cb)
00927 if(p[offset5] > cb)
00928 if(p[offset6] > cb)
00929 if(p[offset7] > cb)
00930 goto is_a_corner;
00931 else
00932 goto is_not_a_corner;
00933 else
00934 goto is_not_a_corner;
00935 else
00936 goto is_not_a_corner;
00937 else
00938 goto is_not_a_corner;
00939 else
00940 goto is_not_a_corner;
00941 else
00942 if(p[offset1] > cb)
00943 if(p[offset12] > cb)
00944 if(p[offset13] > cb)
00945 if(p[offset14] > cb)
00946 if(p[offset15] > cb)
00947 goto is_a_corner;
00948 else
00949 goto is_not_a_corner;
00950 else
00951 goto is_not_a_corner;
00952 else
00953 goto is_not_a_corner;
00954 else
00955 goto is_not_a_corner;
00956 else
00957 goto is_not_a_corner;
00958 else
00959 goto is_not_a_corner;
00960 else
00961 goto is_not_a_corner;
00962 else if(p[offset9] < c_b)
00963 if(p[offset7] < c_b)
00964 if(p[offset8] < c_b)
00965 if(p[offset10] < c_b)
00966 if(p[offset11] < c_b)
00967 if(p[offset6] < c_b)
00968 if(p[offset5] < c_b)
00969 if(p[offset4] < c_b)
00970 if(p[offset3] < c_b)
00971 goto is_a_corner;
00972 else
00973 if(p[offset12] < c_b)
00974 goto is_a_corner;
00975 else
00976 goto is_not_a_corner;
00977 else
00978 if(p[offset12] < c_b)
00979 if(p[offset13] < c_b)
00980 goto is_a_corner;
00981 else
00982 goto is_not_a_corner;
00983 else
00984 goto is_not_a_corner;
00985 else
00986 if(p[offset12] < c_b)
00987 if(p[offset13] < c_b)
00988 if(p[offset14] < c_b)
00989 goto is_a_corner;
00990 else
00991 goto is_not_a_corner;
00992 else
00993 goto is_not_a_corner;
00994 else
00995 goto is_not_a_corner;
00996 else
00997 if(p[offset12] < c_b)
00998 if(p[offset13] < c_b)
00999 if(p[offset14] < c_b)
01000 if(p[offset15] < c_b)
01001 goto is_a_corner;
01002 else
01003 goto is_not_a_corner;
01004 else
01005 goto is_not_a_corner;
01006 else
01007 goto is_not_a_corner;
01008 else
01009 goto is_not_a_corner;
01010 else
01011 goto is_not_a_corner;
01012 else
01013 goto is_not_a_corner;
01014 else
01015 goto is_not_a_corner;
01016 else
01017 goto is_not_a_corner;
01018 else
01019 goto is_not_a_corner;
01020 else if(p[offset0] < c_b)
01021 if(p[offset2] > cb)
01022 if(p[offset9] > cb)
01023 if(p[offset7] > cb)
01024 if(p[offset8] > cb)
01025 if(p[offset6] > cb)
01026 if(p[offset5] > cb)
01027 if(p[offset4] > cb)
01028 if(p[offset3] > cb)
01029 if(p[offset1] > cb)
01030 goto is_a_corner;
01031 else
01032 if(p[offset10] > cb)
01033 goto is_a_corner;
01034 else
01035 goto is_not_a_corner;
01036 else
01037 if(p[offset10] > cb)
01038 if(p[offset11] > cb)
01039 if(p[offset12] > cb)
01040 goto is_a_corner;
01041 else
01042 goto is_not_a_corner;
01043 else
01044 goto is_not_a_corner;
01045 else
01046 goto is_not_a_corner;
01047 else
01048 if(p[offset10] > cb)
01049 if(p[offset11] > cb)
01050 if(p[offset12] > cb)
01051 if(p[offset13] > cb)
01052 goto is_a_corner;
01053 else
01054 goto is_not_a_corner;
01055 else
01056 goto is_not_a_corner;
01057 else
01058 goto is_not_a_corner;
01059 else
01060 goto is_not_a_corner;
01061 else
01062 if(p[offset10] > cb)
01063 if(p[offset11] > cb)
01064 if(p[offset12] > cb)
01065 if(p[offset13] > cb)
01066 if(p[offset14] > cb)
01067 goto is_a_corner;
01068 else
01069 goto is_not_a_corner;
01070 else
01071 goto is_not_a_corner;
01072 else
01073 goto is_not_a_corner;
01074 else
01075 goto is_not_a_corner;
01076 else
01077 goto is_not_a_corner;
01078 else
01079 if(p[offset10] > cb)
01080 if(p[offset11] > cb)
01081 if(p[offset12] > cb)
01082 if(p[offset13] > cb)
01083 if(p[offset14] > cb)
01084 if(p[offset15] > cb)
01085 goto is_a_corner;
01086 else
01087 goto is_not_a_corner;
01088 else
01089 goto is_not_a_corner;
01090 else
01091 goto is_not_a_corner;
01092 else
01093 goto is_not_a_corner;
01094 else
01095 goto is_not_a_corner;
01096 else
01097 goto is_not_a_corner;
01098 else
01099 goto is_not_a_corner;
01100 else
01101 goto is_not_a_corner;
01102 else if(p[offset9] < c_b)
01103 if(p[offset10] < c_b)
01104 if(p[offset11] < c_b)
01105 if(p[offset8] < c_b)
01106 if(p[offset12] < c_b)
01107 if(p[offset13] < c_b)
01108 if(p[offset14] < c_b)
01109 if(p[offset15] < c_b)
01110 goto is_a_corner;
01111 else
01112 if(p[offset6] < c_b)
01113 if(p[offset7] < c_b)
01114 goto is_a_corner;
01115 else
01116 goto is_not_a_corner;
01117 else
01118 goto is_not_a_corner;
01119 else
01120 if(p[offset5] < c_b)
01121 if(p[offset6] < c_b)
01122 if(p[offset7] < c_b)
01123 goto is_a_corner;
01124 else
01125 goto is_not_a_corner;
01126 else
01127 goto is_not_a_corner;
01128 else
01129 goto is_not_a_corner;
01130 else
01131 if(p[offset4] < c_b)
01132 if(p[offset5] < c_b)
01133 if(p[offset6] < c_b)
01134 if(p[offset7] < c_b)
01135 goto is_a_corner;
01136 else
01137 goto is_not_a_corner;
01138 else
01139 goto is_not_a_corner;
01140 else
01141 goto is_not_a_corner;
01142 else
01143 goto is_not_a_corner;
01144 else
01145 if(p[offset3] < c_b)
01146 if(p[offset4] < c_b)
01147 if(p[offset5] < c_b)
01148 if(p[offset6] < c_b)
01149 if(p[offset7] < c_b)
01150 goto is_a_corner;
01151 else
01152 goto is_not_a_corner;
01153 else
01154 goto is_not_a_corner;
01155 else
01156 goto is_not_a_corner;
01157 else
01158 goto is_not_a_corner;
01159 else
01160 goto is_not_a_corner;
01161 else
01162 if(p[offset1] < c_b)
01163 if(p[offset12] < c_b)
01164 if(p[offset13] < c_b)
01165 if(p[offset14] < c_b)
01166 if(p[offset15] < c_b)
01167 goto is_a_corner;
01168 else
01169 goto is_not_a_corner;
01170 else
01171 goto is_not_a_corner;
01172 else
01173 goto is_not_a_corner;
01174 else
01175 goto is_not_a_corner;
01176 else
01177 goto is_not_a_corner;
01178 else
01179 goto is_not_a_corner;
01180 else
01181 goto is_not_a_corner;
01182 else
01183 goto is_not_a_corner;
01184 else if(p[offset2] < c_b)
01185 if(p[offset4] > cb)
01186 if(p[offset11] > cb)
01187 if(p[offset7] > cb)
01188 if(p[offset8] > cb)
01189 if(p[offset9] > cb)
01190 if(p[offset10] > cb)
01191 if(p[offset6] > cb)
01192 if(p[offset5] > cb)
01193 if(p[offset3] > cb)
01194 goto is_a_corner;
01195 else
01196 if(p[offset12] > cb)
01197 goto is_a_corner;
01198 else
01199 goto is_not_a_corner;
01200 else
01201 if(p[offset12] > cb)
01202 if(p[offset13] > cb)
01203 if(p[offset14] > cb)
01204 goto is_a_corner;
01205 else
01206 goto is_not_a_corner;
01207 else
01208 goto is_not_a_corner;
01209 else
01210 goto is_not_a_corner;
01211 else
01212 if(p[offset12] > cb)
01213 if(p[offset13] > cb)
01214 if(p[offset14] > cb)
01215 if(p[offset15] > cb)
01216 goto is_a_corner;
01217 else
01218 goto is_not_a_corner;
01219 else
01220 goto is_not_a_corner;
01221 else
01222 goto is_not_a_corner;
01223 else
01224 goto is_not_a_corner;
01225 else
01226 goto is_not_a_corner;
01227 else
01228 goto is_not_a_corner;
01229 else
01230 goto is_not_a_corner;
01231 else
01232 goto is_not_a_corner;
01233 else if(p[offset11] < c_b)
01234 if(p[offset12] < c_b)
01235 if(p[offset13] < c_b)
01236 if(p[offset10] < c_b)
01237 if(p[offset14] < c_b)
01238 if(p[offset15] < c_b)
01239 if(p[offset1] < c_b)
01240 goto is_a_corner;
01241 else
01242 if(p[offset8] < c_b)
01243 if(p[offset9] < c_b)
01244 goto is_a_corner;
01245 else
01246 goto is_not_a_corner;
01247 else
01248 goto is_not_a_corner;
01249 else
01250 if(p[offset6] < c_b)
01251 if(p[offset7] < c_b)
01252 if(p[offset8] < c_b)
01253 if(p[offset9] < c_b)
01254 goto is_a_corner;
01255 else
01256 goto is_not_a_corner;
01257 else
01258 goto is_not_a_corner;
01259 else
01260 goto is_not_a_corner;
01261 else
01262 goto is_not_a_corner;
01263 else
01264 if(p[offset5] < c_b)
01265 if(p[offset6] < c_b)
01266 if(p[offset7] < c_b)
01267 if(p[offset8] < c_b)
01268 if(p[offset9] < c_b)
01269 goto is_a_corner;
01270 else
01271 goto is_not_a_corner;
01272 else
01273 goto is_not_a_corner;
01274 else
01275 goto is_not_a_corner;
01276 else
01277 goto is_not_a_corner;
01278 else
01279 goto is_not_a_corner;
01280 else
01281 if(p[offset1] < c_b)
01282 if(p[offset3] < c_b)
01283 if(p[offset14] < c_b)
01284 if(p[offset15] < c_b)
01285 goto is_a_corner;
01286 else
01287 goto is_not_a_corner;
01288 else
01289 goto is_not_a_corner;
01290 else
01291 goto is_not_a_corner;
01292 else
01293 goto is_not_a_corner;
01294 else
01295 goto is_not_a_corner;
01296 else
01297 goto is_not_a_corner;
01298 else
01299 goto is_not_a_corner;
01300 else if(p[offset4] < c_b)
01301 if(p[offset5] > cb)
01302 if(p[offset12] > cb)
01303 if(p[offset7] > cb)
01304 if(p[offset8] > cb)
01305 if(p[offset9] > cb)
01306 if(p[offset10] > cb)
01307 if(p[offset11] > cb)
01308 if(p[offset13] > cb)
01309 if(p[offset6] > cb)
01310 goto is_a_corner;
01311 else
01312 if(p[offset14] > cb)
01313 if(p[offset15] > cb)
01314 goto is_a_corner;
01315 else
01316 goto is_not_a_corner;
01317 else
01318 goto is_not_a_corner;
01319 else
01320 goto is_not_a_corner;
01321 else
01322 goto is_not_a_corner;
01323 else
01324 goto is_not_a_corner;
01325 else
01326 goto is_not_a_corner;
01327 else
01328 goto is_not_a_corner;
01329 else
01330 goto is_not_a_corner;
01331 else if(p[offset12] < c_b)
01332 if(p[offset13] < c_b)
01333 if(p[offset14] < c_b)
01334 if(p[offset15] < c_b)
01335 if(p[offset1] < c_b)
01336 if(p[offset3] < c_b)
01337 goto is_a_corner;
01338 else
01339 if(p[offset10] < c_b)
01340 if(p[offset11] < c_b)
01341 goto is_a_corner;
01342 else
01343 goto is_not_a_corner;
01344 else
01345 goto is_not_a_corner;
01346 else
01347 if(p[offset8] < c_b)
01348 if(p[offset9] < c_b)
01349 if(p[offset10] < c_b)
01350 if(p[offset11] < c_b)
01351 goto is_a_corner;
01352 else
01353 goto is_not_a_corner;
01354 else
01355 goto is_not_a_corner;
01356 else
01357 goto is_not_a_corner;
01358 else
01359 goto is_not_a_corner;
01360 else
01361 if(p[offset6] < c_b)
01362 if(p[offset7] < c_b)
01363 if(p[offset8] < c_b)
01364 if(p[offset9] < c_b)
01365 if(p[offset10] < c_b)
01366 if(p[offset11] < c_b)
01367 goto is_a_corner;
01368 else
01369 goto is_not_a_corner;
01370 else
01371 goto is_not_a_corner;
01372 else
01373 goto is_not_a_corner;
01374 else
01375 goto is_not_a_corner;
01376 else
01377 goto is_not_a_corner;
01378 else
01379 goto is_not_a_corner;
01380 else
01381 goto is_not_a_corner;
01382 else
01383 goto is_not_a_corner;
01384 else
01385 goto is_not_a_corner;
01386 else if(p[offset5] < c_b)
01387 if(p[offset7] > cb)
01388 if(p[offset14] > cb)
01389 if(p[offset8] > cb)
01390 if(p[offset9] > cb)
01391 if(p[offset10] > cb)
01392 if(p[offset11] > cb)
01393 if(p[offset12] > cb)
01394 if(p[offset13] > cb)
01395 if(p[offset6] > cb)
01396 goto is_a_corner;
01397 else
01398 if(p[offset15] > cb)
01399 goto is_a_corner;
01400 else
01401 goto is_not_a_corner;
01402 else
01403 goto is_not_a_corner;
01404 else
01405 goto is_not_a_corner;
01406 else
01407 goto is_not_a_corner;
01408 else
01409 goto is_not_a_corner;
01410 else
01411 goto is_not_a_corner;
01412 else
01413 goto is_not_a_corner;
01414 else if(p[offset14] < c_b)
01415 if(p[offset15] < c_b)
01416 if(p[offset1] < c_b)
01417 if(p[offset3] < c_b)
01418 if(p[offset6] < c_b)
01419 goto is_a_corner;
01420 else
01421 if(p[offset13] < c_b)
01422 goto is_a_corner;
01423 else
01424 goto is_not_a_corner;
01425 else
01426 if(p[offset10] < c_b)
01427 if(p[offset11] < c_b)
01428 if(p[offset12] < c_b)
01429 if(p[offset13] < c_b)
01430 goto is_a_corner;
01431 else
01432 goto is_not_a_corner;
01433 else
01434 goto is_not_a_corner;
01435 else
01436 goto is_not_a_corner;
01437 else
01438 goto is_not_a_corner;
01439 else
01440 if(p[offset8] < c_b)
01441 if(p[offset9] < c_b)
01442 if(p[offset10] < c_b)
01443 if(p[offset11] < c_b)
01444 if(p[offset12] < c_b)
01445 if(p[offset13] < c_b)
01446 goto is_a_corner;
01447 else
01448 goto is_not_a_corner;
01449 else
01450 goto is_not_a_corner;
01451 else
01452 goto is_not_a_corner;
01453 else
01454 goto is_not_a_corner;
01455 else
01456 goto is_not_a_corner;
01457 else
01458 goto is_not_a_corner;
01459 else
01460 goto is_not_a_corner;
01461 else
01462 goto is_not_a_corner;
01463 else if(p[offset7] < c_b)
01464 if(p[offset3] < c_b)
01465 if(p[offset1] < c_b)
01466 if(p[offset6] < c_b)
01467 if(p[offset8] < c_b)
01468 goto is_a_corner;
01469 else
01470 if(p[offset15] < c_b)
01471 goto is_a_corner;
01472 else
01473 goto is_not_a_corner;
01474 else
01475 if(p[offset13] < c_b)
01476 if(p[offset14] < c_b)
01477 if(p[offset15] < c_b)
01478 goto is_a_corner;
01479 else
01480 goto is_not_a_corner;
01481 else
01482 goto is_not_a_corner;
01483 else
01484 goto is_not_a_corner;
01485 else
01486 if(p[offset8] < c_b)
01487 if(p[offset9] < c_b)
01488 if(p[offset10] < c_b)
01489 if(p[offset6] < c_b)
01490 goto is_a_corner;
01491 else
01492 if(p[offset11] < c_b)
01493 if(p[offset12] < c_b)
01494 if(p[offset13] < c_b)
01495 if(p[offset14] < c_b)
01496 if(p[offset15] < c_b)
01497 goto is_a_corner;
01498 else
01499 goto is_not_a_corner;
01500 else
01501 goto is_not_a_corner;
01502 else
01503 goto is_not_a_corner;
01504 else
01505 goto is_not_a_corner;
01506 else
01507 goto is_not_a_corner;
01508 else
01509 goto is_not_a_corner;
01510 else
01511 goto is_not_a_corner;
01512 else
01513 goto is_not_a_corner;
01514 else
01515 if(p[offset10] < c_b)
01516 if(p[offset11] < c_b)
01517 if(p[offset12] < c_b)
01518 if(p[offset8] < c_b)
01519 if(p[offset9] < c_b)
01520 if(p[offset6] < c_b)
01521 goto is_a_corner;
01522 else
01523 if(p[offset13] < c_b)
01524 if(p[offset14] < c_b)
01525 if(p[offset15] < c_b)
01526 goto is_a_corner;
01527 else
01528 goto is_not_a_corner;
01529 else
01530 goto is_not_a_corner;
01531 else
01532 goto is_not_a_corner;
01533 else
01534 if(p[offset1] < c_b)
01535 if(p[offset13] < c_b)
01536 if(p[offset14] < c_b)
01537 if(p[offset15] < c_b)
01538 goto is_a_corner;
01539 else
01540 goto is_not_a_corner;
01541 else
01542 goto is_not_a_corner;
01543 else
01544 goto is_not_a_corner;
01545 else
01546 goto is_not_a_corner;
01547 else
01548 if(p[offset1] < c_b)
01549 if(p[offset13] < c_b)
01550 if(p[offset14] < c_b)
01551 if(p[offset15] < c_b)
01552 goto is_a_corner;
01553 else
01554 goto is_not_a_corner;
01555 else
01556 goto is_not_a_corner;
01557 else
01558 goto is_not_a_corner;
01559 else
01560 goto is_not_a_corner;
01561 else
01562 goto is_not_a_corner;
01563 else
01564 goto is_not_a_corner;
01565 else
01566 goto is_not_a_corner;
01567 else
01568 if(p[offset14] < c_b)
01569 if(p[offset15] < c_b)
01570 if(p[offset1] < c_b)
01571 if(p[offset3] < c_b)
01572 if(p[offset6] < c_b)
01573 goto is_a_corner;
01574 else
01575 if(p[offset13] < c_b)
01576 goto is_a_corner;
01577 else
01578 goto is_not_a_corner;
01579 else
01580 if(p[offset10] < c_b)
01581 if(p[offset11] < c_b)
01582 if(p[offset12] < c_b)
01583 if(p[offset13] < c_b)
01584 goto is_a_corner;
01585 else
01586 goto is_not_a_corner;
01587 else
01588 goto is_not_a_corner;
01589 else
01590 goto is_not_a_corner;
01591 else
01592 goto is_not_a_corner;
01593 else
01594 if(p[offset8] < c_b)
01595 if(p[offset9] < c_b)
01596 if(p[offset10] < c_b)
01597 if(p[offset11] < c_b)
01598 if(p[offset12] < c_b)
01599 if(p[offset13] < c_b)
01600 goto is_a_corner;
01601 else
01602 goto is_not_a_corner;
01603 else
01604 goto is_not_a_corner;
01605 else
01606 goto is_not_a_corner;
01607 else
01608 goto is_not_a_corner;
01609 else
01610 goto is_not_a_corner;
01611 else
01612 goto is_not_a_corner;
01613 else
01614 goto is_not_a_corner;
01615 else
01616 goto is_not_a_corner;
01617 else
01618 if(p[offset12] > cb)
01619 if(p[offset7] > cb)
01620 if(p[offset8] > cb)
01621 if(p[offset9] > cb)
01622 if(p[offset10] > cb)
01623 if(p[offset11] > cb)
01624 if(p[offset13] > cb)
01625 if(p[offset14] > cb)
01626 if(p[offset6] > cb)
01627 goto is_a_corner;
01628 else
01629 if(p[offset15] > cb)
01630 goto is_a_corner;
01631 else
01632 goto is_not_a_corner;
01633 else
01634 goto is_not_a_corner;
01635 else
01636 goto is_not_a_corner;
01637 else
01638 goto is_not_a_corner;
01639 else
01640 goto is_not_a_corner;
01641 else
01642 goto is_not_a_corner;
01643 else
01644 goto is_not_a_corner;
01645 else
01646 goto is_not_a_corner;
01647 else if(p[offset12] < c_b)
01648 if(p[offset13] < c_b)
01649 if(p[offset14] < c_b)
01650 if(p[offset15] < c_b)
01651 if(p[offset1] < c_b)
01652 if(p[offset3] < c_b)
01653 goto is_a_corner;
01654 else
01655 if(p[offset10] < c_b)
01656 if(p[offset11] < c_b)
01657 goto is_a_corner;
01658 else
01659 goto is_not_a_corner;
01660 else
01661 goto is_not_a_corner;
01662 else
01663 if(p[offset8] < c_b)
01664 if(p[offset9] < c_b)
01665 if(p[offset10] < c_b)
01666 if(p[offset11] < c_b)
01667 goto is_a_corner;
01668 else
01669 goto is_not_a_corner;
01670 else
01671 goto is_not_a_corner;
01672 else
01673 goto is_not_a_corner;
01674 else
01675 goto is_not_a_corner;
01676 else
01677 if(p[offset6] < c_b)
01678 if(p[offset7] < c_b)
01679 if(p[offset8] < c_b)
01680 if(p[offset9] < c_b)
01681 if(p[offset10] < c_b)
01682 if(p[offset11] < c_b)
01683 goto is_a_corner;
01684 else
01685 goto is_not_a_corner;
01686 else
01687 goto is_not_a_corner;
01688 else
01689 goto is_not_a_corner;
01690 else
01691 goto is_not_a_corner;
01692 else
01693 goto is_not_a_corner;
01694 else
01695 goto is_not_a_corner;
01696 else
01697 goto is_not_a_corner;
01698 else
01699 goto is_not_a_corner;
01700 else
01701 goto is_not_a_corner;
01702 else
01703 if(p[offset11] > cb)
01704 if(p[offset7] > cb)
01705 if(p[offset8] > cb)
01706 if(p[offset9] > cb)
01707 if(p[offset10] > cb)
01708 if(p[offset12] > cb)
01709 if(p[offset13] > cb)
01710 if(p[offset6] > cb)
01711 if(p[offset5] > cb)
01712 goto is_a_corner;
01713 else
01714 if(p[offset14] > cb)
01715 goto is_a_corner;
01716 else
01717 goto is_not_a_corner;
01718 else
01719 if(p[offset14] > cb)
01720 if(p[offset15] > cb)
01721 goto is_a_corner;
01722 else
01723 goto is_not_a_corner;
01724 else
01725 goto is_not_a_corner;
01726 else
01727 goto is_not_a_corner;
01728 else
01729 goto is_not_a_corner;
01730 else
01731 goto is_not_a_corner;
01732 else
01733 goto is_not_a_corner;
01734 else
01735 goto is_not_a_corner;
01736 else
01737 goto is_not_a_corner;
01738 else if(p[offset11] < c_b)
01739 if(p[offset12] < c_b)
01740 if(p[offset13] < c_b)
01741 if(p[offset10] < c_b)
01742 if(p[offset14] < c_b)
01743 if(p[offset15] < c_b)
01744 if(p[offset1] < c_b)
01745 goto is_a_corner;
01746 else
01747 if(p[offset8] < c_b)
01748 if(p[offset9] < c_b)
01749 goto is_a_corner;
01750 else
01751 goto is_not_a_corner;
01752 else
01753 goto is_not_a_corner;
01754 else
01755 if(p[offset6] < c_b)
01756 if(p[offset7] < c_b)
01757 if(p[offset8] < c_b)
01758 if(p[offset9] < c_b)
01759 goto is_a_corner;
01760 else
01761 goto is_not_a_corner;
01762 else
01763 goto is_not_a_corner;
01764 else
01765 goto is_not_a_corner;
01766 else
01767 goto is_not_a_corner;
01768 else
01769 if(p[offset5] < c_b)
01770 if(p[offset6] < c_b)
01771 if(p[offset7] < c_b)
01772 if(p[offset8] < c_b)
01773 if(p[offset9] < c_b)
01774 goto is_a_corner;
01775 else
01776 goto is_not_a_corner;
01777 else
01778 goto is_not_a_corner;
01779 else
01780 goto is_not_a_corner;
01781 else
01782 goto is_not_a_corner;
01783 else
01784 goto is_not_a_corner;
01785 else
01786 if(p[offset1] < c_b)
01787 if(p[offset3] < c_b)
01788 if(p[offset14] < c_b)
01789 if(p[offset15] < c_b)
01790 goto is_a_corner;
01791 else
01792 goto is_not_a_corner;
01793 else
01794 goto is_not_a_corner;
01795 else
01796 goto is_not_a_corner;
01797 else
01798 goto is_not_a_corner;
01799 else
01800 goto is_not_a_corner;
01801 else
01802 goto is_not_a_corner;
01803 else
01804 goto is_not_a_corner;
01805 else
01806 if(p[offset9] > cb)
01807 if(p[offset7] > cb)
01808 if(p[offset8] > cb)
01809 if(p[offset10] > cb)
01810 if(p[offset11] > cb)
01811 if(p[offset6] > cb)
01812 if(p[offset5] > cb)
01813 if(p[offset4] > cb)
01814 if(p[offset3] > cb)
01815 goto is_a_corner;
01816 else
01817 if(p[offset12] > cb)
01818 goto is_a_corner;
01819 else
01820 goto is_not_a_corner;
01821 else
01822 if(p[offset12] > cb)
01823 if(p[offset13] > cb)
01824 goto is_a_corner;
01825 else
01826 goto is_not_a_corner;
01827 else
01828 goto is_not_a_corner;
01829 else
01830 if(p[offset12] > cb)
01831 if(p[offset13] > cb)
01832 if(p[offset14] > cb)
01833 goto is_a_corner;
01834 else
01835 goto is_not_a_corner;
01836 else
01837 goto is_not_a_corner;
01838 else
01839 goto is_not_a_corner;
01840 else
01841 if(p[offset12] > cb)
01842 if(p[offset13] > cb)
01843 if(p[offset14] > cb)
01844 if(p[offset15] > cb)
01845 goto is_a_corner;
01846 else
01847 goto is_not_a_corner;
01848 else
01849 goto is_not_a_corner;
01850 else
01851 goto is_not_a_corner;
01852 else
01853 goto is_not_a_corner;
01854 else
01855 goto is_not_a_corner;
01856 else
01857 goto is_not_a_corner;
01858 else
01859 goto is_not_a_corner;
01860 else
01861 goto is_not_a_corner;
01862 else if(p[offset9] < c_b)
01863 if(p[offset10] < c_b)
01864 if(p[offset11] < c_b)
01865 if(p[offset8] < c_b)
01866 if(p[offset12] < c_b)
01867 if(p[offset13] < c_b)
01868 if(p[offset14] < c_b)
01869 if(p[offset15] < c_b)
01870 goto is_a_corner;
01871 else
01872 if(p[offset6] < c_b)
01873 if(p[offset7] < c_b)
01874 goto is_a_corner;
01875 else
01876 goto is_not_a_corner;
01877 else
01878 goto is_not_a_corner;
01879 else
01880 if(p[offset5] < c_b)
01881 if(p[offset6] < c_b)
01882 if(p[offset7] < c_b)
01883 goto is_a_corner;
01884 else
01885 goto is_not_a_corner;
01886 else
01887 goto is_not_a_corner;
01888 else
01889 goto is_not_a_corner;
01890 else
01891 if(p[offset4] < c_b)
01892 if(p[offset5] < c_b)
01893 if(p[offset6] < c_b)
01894 if(p[offset7] < c_b)
01895 goto is_a_corner;
01896 else
01897 goto is_not_a_corner;
01898 else
01899 goto is_not_a_corner;
01900 else
01901 goto is_not_a_corner;
01902 else
01903 goto is_not_a_corner;
01904 else
01905 if(p[offset3] < c_b)
01906 if(p[offset4] < c_b)
01907 if(p[offset5] < c_b)
01908 if(p[offset6] < c_b)
01909 if(p[offset7] < c_b)
01910 goto is_a_corner;
01911 else
01912 goto is_not_a_corner;
01913 else
01914 goto is_not_a_corner;
01915 else
01916 goto is_not_a_corner;
01917 else
01918 goto is_not_a_corner;
01919 else
01920 goto is_not_a_corner;
01921 else
01922 if(p[offset1] < c_b)
01923 if(p[offset12] < c_b)
01924 if(p[offset13] < c_b)
01925 if(p[offset14] < c_b)
01926 if(p[offset15] < c_b)
01927 goto is_a_corner;
01928 else
01929 goto is_not_a_corner;
01930 else
01931 goto is_not_a_corner;
01932 else
01933 goto is_not_a_corner;
01934 else
01935 goto is_not_a_corner;
01936 else
01937 goto is_not_a_corner;
01938 else
01939 goto is_not_a_corner;
01940 else
01941 goto is_not_a_corner;
01942 else
01943 goto is_not_a_corner;
01944 else
01945 if(p[offset7] > cb)
01946 if(p[offset8] > cb)
01947 if(p[offset9] > cb)
01948 if(p[offset6] > cb)
01949 if(p[offset5] > cb)
01950 if(p[offset4] > cb)
01951 if(p[offset3] > cb)
01952 if(p[offset2] > cb)
01953 if(p[offset1] > cb)
01954 goto is_a_corner;
01955 else
01956 if(p[offset10] > cb)
01957 goto is_a_corner;
01958 else
01959 goto is_not_a_corner;
01960 else
01961 if(p[offset10] > cb)
01962 if(p[offset11] > cb)
01963 goto is_a_corner;
01964 else
01965 goto is_not_a_corner;
01966 else
01967 goto is_not_a_corner;
01968 else
01969 if(p[offset10] > cb)
01970 if(p[offset11] > cb)
01971 if(p[offset12] > cb)
01972 goto is_a_corner;
01973 else
01974 goto is_not_a_corner;
01975 else
01976 goto is_not_a_corner;
01977 else
01978 goto is_not_a_corner;
01979 else
01980 if(p[offset10] > cb)
01981 if(p[offset11] > cb)
01982 if(p[offset12] > cb)
01983 if(p[offset13] > cb)
01984 goto is_a_corner;
01985 else
01986 goto is_not_a_corner;
01987 else
01988 goto is_not_a_corner;
01989 else
01990 goto is_not_a_corner;
01991 else
01992 goto is_not_a_corner;
01993 else
01994 if(p[offset10] > cb)
01995 if(p[offset11] > cb)
01996 if(p[offset12] > cb)
01997 if(p[offset13] > cb)
01998 if(p[offset14] > cb)
01999 goto is_a_corner;
02000 else
02001 goto is_not_a_corner;
02002 else
02003 goto is_not_a_corner;
02004 else
02005 goto is_not_a_corner;
02006 else
02007 goto is_not_a_corner;
02008 else
02009 goto is_not_a_corner;
02010 else
02011 if(p[offset10] > cb)
02012 if(p[offset11] > cb)
02013 if(p[offset12] > cb)
02014 if(p[offset13] > cb)
02015 if(p[offset14] > cb)
02016 if(p[offset15] > cb)
02017 goto is_a_corner;
02018 else
02019 goto is_not_a_corner;
02020 else
02021 goto is_not_a_corner;
02022 else
02023 goto is_not_a_corner;
02024 else
02025 goto is_not_a_corner;
02026 else
02027 goto is_not_a_corner;
02028 else
02029 goto is_not_a_corner;
02030 else
02031 goto is_not_a_corner;
02032 else
02033 goto is_not_a_corner;
02034 else if(p[offset7] < c_b)
02035 if(p[offset8] < c_b)
02036 if(p[offset9] < c_b)
02037 if(p[offset6] < c_b)
02038 if(p[offset5] < c_b)
02039 if(p[offset4] < c_b)
02040 if(p[offset3] < c_b)
02041 if(p[offset2] < c_b)
02042 if(p[offset1] < c_b)
02043 goto is_a_corner;
02044 else
02045 if(p[offset10] < c_b)
02046 goto is_a_corner;
02047 else
02048 goto is_not_a_corner;
02049 else
02050 if(p[offset10] < c_b)
02051 if(p[offset11] < c_b)
02052 goto is_a_corner;
02053 else
02054 goto is_not_a_corner;
02055 else
02056 goto is_not_a_corner;
02057 else
02058 if(p[offset10] < c_b)
02059 if(p[offset11] < c_b)
02060 if(p[offset12] < c_b)
02061 goto is_a_corner;
02062 else
02063 goto is_not_a_corner;
02064 else
02065 goto is_not_a_corner;
02066 else
02067 goto is_not_a_corner;
02068 else
02069 if(p[offset10] < c_b)
02070 if(p[offset11] < c_b)
02071 if(p[offset12] < c_b)
02072 if(p[offset13] < c_b)
02073 goto is_a_corner;
02074 else
02075 goto is_not_a_corner;
02076 else
02077 goto is_not_a_corner;
02078 else
02079 goto is_not_a_corner;
02080 else
02081 goto is_not_a_corner;
02082 else
02083 if(p[offset10] < c_b)
02084 if(p[offset11] < c_b)
02085 if(p[offset12] < c_b)
02086 if(p[offset13] < c_b)
02087 if(p[offset14] < c_b)
02088 goto is_a_corner;
02089 else
02090 goto is_not_a_corner;
02091 else
02092 goto is_not_a_corner;
02093 else
02094 goto is_not_a_corner;
02095 else
02096 goto is_not_a_corner;
02097 else
02098 goto is_not_a_corner;
02099 else
02100 if(p[offset10] < c_b)
02101 if(p[offset11] < c_b)
02102 if(p[offset12] < c_b)
02103 if(p[offset13] < c_b)
02104 if(p[offset14] < c_b)
02105 if(p[offset15] < c_b)
02106 goto is_a_corner;
02107 else
02108 goto is_not_a_corner;
02109 else
02110 goto is_not_a_corner;
02111 else
02112 goto is_not_a_corner;
02113 else
02114 goto is_not_a_corner;
02115 else
02116 goto is_not_a_corner;
02117 else
02118 goto is_not_a_corner;
02119 else
02120 goto is_not_a_corner;
02121 else
02122 goto is_not_a_corner;
02123 else
02124 goto is_not_a_corner;
02125
02126 is_a_corner:
02127 bmin=b_test;
02128 goto end;
02129
02130 is_not_a_corner:
02131 bmax=b_test;
02132 goto end;
02133
02134 end:
02135
02136 if(bmin == bmax - 1 || bmin == bmax)
02137 return bmin;
02138 b_test = (bmin + bmax) / 2;
02139 }
02140 }
02141