oast9_16_nms.cc
Go to the documentation of this file.
00001 //
00002 //    oast9 - OAST, an optimal corner detector based on the
00003 //              accelerated segment test for a 16 pixel mask
00004 //
00005 //    Copyright (C) 2010  Elmar Mair
00006 //
00007 //    This program is free software: you can redistribute it and/or modify
00008 //    it under the terms of the GNU General Public License as published by
00009 //    the Free Software Foundation, either version 3 of the License, or
00010 //    (at your option) any later version.
00011 //
00012 //    This program is distributed in the hope that it will be useful,
00013 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
00014 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015 //    GNU General Public License for more details.
00016 //
00017 //    You should have received a copy of the GNU General Public License
00018 //    along with this program.  If not, see <http://www.gnu.org/licenses/>.
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 //using also bisection as propsed by Edward Rosten in FAST,
00029 //but it is based on the OAST
00030 int OastDetector9_16::cornerScore(const unsigned char* p, bool ignorePattern)
00031 {
00032     int bmin = b;
00033     //std::cout <<int(b)<<":";
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                 //std::cout << offset0 << ".";
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 


ptam
Author(s): Stephan Weiss, Markus Achtelik, Simon Lynen
autogenerated on Tue Jan 7 2014 11:12:22