agast7_12d_nms.cc
Go to the documentation of this file.
00001 //
00002 //    agast7d - AGAST, an adaptive and generic corner detector based on the
00003 //              accelerated segment test for a 12 pixel mask in diamond format
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 "agast7_12d.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 AgastDetector7_12d::cornerScore(const unsigned char* p, bool ignorePattern)
00031 {
00032     int bmin = b;
00033     int bmax = 255;
00034     int b_test = (bmax + bmin)/2;
00035 
00036         register int_fast16_t offset0=s_offset0;
00037         register int_fast16_t offset1=s_offset1;
00038         register int_fast16_t offset2=s_offset2;
00039         register int_fast16_t offset3=s_offset3;
00040         register int_fast16_t offset4=s_offset4;
00041         register int_fast16_t offset5=s_offset5;
00042         register int_fast16_t offset6=s_offset6;
00043         register int_fast16_t offset7=s_offset7;
00044         register int_fast16_t offset8=s_offset8;
00045         register int_fast16_t offset9=s_offset9;
00046         register int_fast16_t offset10=s_offset10;
00047         register int_fast16_t offset11=s_offset11;
00048 
00049         while(1)
00050         {
00051                 register const int cb = *p + b_test;
00052                 register const int c_b = *p - b_test;
00053                 if(p[offset0] > cb)
00054                   if(p[offset5] > cb)
00055                     if(p[offset2] > cb)
00056                       if(p[offset9] > cb)
00057                         if(p[offset1] > cb)
00058                           if(p[offset6] > cb)
00059                             if(p[offset3] > cb)
00060                               if(p[offset4] > cb)
00061                                 goto is_a_corner;
00062                               else
00063                                 if(p[offset10] > cb)
00064                                   if(p[offset11] > cb)
00065                                     goto is_a_corner;
00066                                   else
00067                                     goto is_not_a_corner;
00068                                 else
00069                                   goto is_not_a_corner;
00070                             else
00071                               if(p[offset8] > cb)
00072                                 if(p[offset10] > cb)
00073                                   if(p[offset11] > cb)
00074                                     goto is_a_corner;
00075                                   else
00076                                     if(p[offset4] > cb)
00077                                       if(p[offset7] > cb)
00078                                         goto is_a_corner;
00079                                       else
00080                                         goto is_not_a_corner;
00081                                     else
00082                                       goto is_not_a_corner;
00083                                 else
00084                                   goto is_not_a_corner;
00085                               else
00086                                 goto is_not_a_corner;
00087                           else
00088                             if(p[offset11] > cb)
00089                               if(p[offset3] > cb)
00090                                 if(p[offset4] > cb)
00091                                   goto is_a_corner;
00092                                 else
00093                                   if(p[offset10] > cb)
00094                                     goto is_a_corner;
00095                                   else
00096                                     goto is_not_a_corner;
00097                               else
00098                                 if(p[offset8] > cb)
00099                                   if(p[offset10] > cb)
00100                                     goto is_a_corner;
00101                                   else
00102                                     goto is_not_a_corner;
00103                                 else
00104                                   goto is_not_a_corner;
00105                             else
00106                               goto is_not_a_corner;
00107                         else
00108                           if(p[offset6] > cb)
00109                             if(p[offset7] > cb)
00110                               if(p[offset8] > cb)
00111                                 if(p[offset4] > cb)
00112                                   if(p[offset3] > cb)
00113                                     goto is_a_corner;
00114                                   else
00115                                     if(p[offset10] > cb)
00116                                       goto is_a_corner;
00117                                     else
00118                                       goto is_not_a_corner;
00119                                 else
00120                                   if(p[offset10] > cb)
00121                                     if(p[offset11] > cb)
00122                                       goto is_a_corner;
00123                                     else
00124                                       goto is_not_a_corner;
00125                                   else
00126                                     goto is_not_a_corner;
00127                               else
00128                                 goto is_not_a_corner;
00129                             else
00130                               goto is_not_a_corner;
00131                           else
00132                             goto is_not_a_corner;
00133                       else
00134                         if(p[offset3] > cb)
00135                           if(p[offset4] > cb)
00136                             if(p[offset1] > cb)
00137                               if(p[offset6] > cb)
00138                                 goto is_a_corner;
00139                               else
00140                                 if(p[offset11] > cb)
00141                                   goto is_a_corner;
00142                                 else
00143                                   goto is_not_a_corner;
00144                             else
00145                               if(p[offset6] > cb)
00146                                 if(p[offset7] > cb)
00147                                   if(p[offset8] > cb)
00148                                     goto is_a_corner;
00149                                   else
00150                                     goto is_not_a_corner;
00151                                 else
00152                                   goto is_not_a_corner;
00153                               else
00154                                 goto is_not_a_corner;
00155                           else
00156                             goto is_not_a_corner;
00157                         else
00158                           goto is_not_a_corner;
00159                     else
00160                       if(p[offset9] > cb)
00161                         if(p[offset7] > cb)
00162                           if(p[offset8] > cb)
00163                             if(p[offset1] > cb)
00164                               if(p[offset10] > cb)
00165                                 if(p[offset11] > cb)
00166                                   goto is_a_corner;
00167                                 else
00168                                   if(p[offset6] > cb)
00169                                     if(p[offset4] > cb)
00170                                       goto is_a_corner;
00171                                     else
00172                                       goto is_not_a_corner;
00173                                   else
00174                                     goto is_not_a_corner;
00175                               else
00176                                 if(p[offset6] > cb)
00177                                   if(p[offset3] > cb)
00178                                     if(p[offset4] > cb)
00179                                       goto is_a_corner;
00180                                     else
00181                                       goto is_not_a_corner;
00182                                   else
00183                                     goto is_not_a_corner;
00184                                 else
00185                                   goto is_not_a_corner;
00186                             else
00187                               if(p[offset6] > cb)
00188                                 if(p[offset4] > cb)
00189                                   if(p[offset3] > cb)
00190                                     goto is_a_corner;
00191                                   else
00192                                     if(p[offset10] > cb)
00193                                       goto is_a_corner;
00194                                     else
00195                                       goto is_not_a_corner;
00196                                 else
00197                                   if(p[offset10] > cb)
00198                                     if(p[offset11] > cb)
00199                                       goto is_a_corner;
00200                                     else
00201                                       goto is_not_a_corner;
00202                                   else
00203                                     goto is_not_a_corner;
00204                               else
00205                                 goto is_not_a_corner;
00206                           else
00207                             goto is_not_a_corner;
00208                         else
00209                           goto is_not_a_corner;
00210                       else
00211                         goto is_not_a_corner;
00212                   else
00213                     if(p[offset5] < c_b)
00214                       if(p[offset9] > cb)
00215                         if(p[offset3] < c_b)
00216                           if(p[offset4] < c_b)
00217                             if(p[offset11] > cb)
00218                               if(p[offset1] > cb)
00219                                 if(p[offset8] > cb)
00220                                   if(p[offset10] > cb)
00221                                     if(p[offset2] > cb)
00222                                       goto is_a_corner;
00223                                     else
00224                                       if(p[offset7] > cb)
00225                                         goto is_a_corner;
00226                                       else
00227                                         goto is_not_a_corner;
00228                                   else
00229                                     goto is_not_a_corner;
00230                                 else
00231                                   if(p[offset6] < c_b)
00232                                     if(p[offset2] < c_b)
00233                                       if(p[offset7] < c_b)
00234                                         if(p[offset8] < c_b)
00235                                           goto is_a_corner;
00236                                         else
00237                                           goto is_not_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                                 if(p[offset6] > cb)
00246                                   if(p[offset7] > cb)
00247                                     if(p[offset8] > cb)
00248                                       if(p[offset10] > cb)
00249                                         goto is_a_corner;
00250                                       else
00251                                         goto is_not_a_corner;
00252                                     else
00253                                       goto is_not_a_corner;
00254                                   else
00255                                     goto is_not_a_corner;
00256                                 else
00257                                   if(p[offset6] < c_b)
00258                                     if(p[offset2] < c_b)
00259                                       if(p[offset7] < c_b)
00260                                         if(p[offset1] < c_b)
00261                                           goto is_a_corner;
00262                                         else
00263                                           if(p[offset8] < c_b)
00264                                             goto is_a_corner;
00265                                           else
00266                                             goto is_not_a_corner;
00267                                       else
00268                                         goto is_not_a_corner;
00269                                     else
00270                                       goto is_not_a_corner;
00271                                   else
00272                                     goto is_not_a_corner;
00273                             else
00274                               if(p[offset2] < c_b)
00275                                 if(p[offset7] < c_b)
00276                                   if(p[offset1] < c_b)
00277                                     if(p[offset6] < c_b)
00278                                       goto is_a_corner;
00279                                     else
00280                                       goto is_not_a_corner;
00281                                   else
00282                                     if(p[offset6] < c_b)
00283                                       if(p[offset8] < c_b)
00284                                         goto is_a_corner;
00285                                       else
00286                                         goto is_not_a_corner;
00287                                     else
00288                                       goto is_not_a_corner;
00289                                 else
00290                                   goto is_not_a_corner;
00291                               else
00292                                 goto is_not_a_corner;
00293                           else
00294                             if(p[offset11] > cb)
00295                               if(p[offset8] > cb)
00296                                 if(p[offset10] > cb)
00297                                   if(p[offset1] > cb)
00298                                     if(p[offset2] > cb)
00299                                       goto is_a_corner;
00300                                     else
00301                                       if(p[offset7] > cb)
00302                                         goto is_a_corner;
00303                                       else
00304                                         goto is_not_a_corner;
00305                                   else
00306                                     if(p[offset6] > cb)
00307                                       if(p[offset7] > cb)
00308                                         goto is_a_corner;
00309                                       else
00310                                         goto is_not_a_corner;
00311                                     else
00312                                       goto is_not_a_corner;
00313                                 else
00314                                   goto is_not_a_corner;
00315                               else
00316                                 goto is_not_a_corner;
00317                             else
00318                               goto is_not_a_corner;
00319                         else
00320                           if(p[offset11] > cb)
00321                             if(p[offset10] > cb)
00322                               if(p[offset3] > cb)
00323                                 if(p[offset1] > cb)
00324                                   if(p[offset2] > cb)
00325                                     goto is_a_corner;
00326                                   else
00327                                     if(p[offset7] > cb)
00328                                       if(p[offset8] > cb)
00329                                         goto is_a_corner;
00330                                       else
00331                                         goto is_not_a_corner;
00332                                     else
00333                                       goto is_not_a_corner;
00334                                 else
00335                                   if(p[offset6] > cb)
00336                                     if(p[offset7] > cb)
00337                                       if(p[offset8] > cb)
00338                                         goto is_a_corner;
00339                                       else
00340                                         goto is_not_a_corner;
00341                                     else
00342                                       goto is_not_a_corner;
00343                                   else
00344                                     goto is_not_a_corner;
00345                               else
00346                                 if(p[offset8] > cb)
00347                                   if(p[offset1] > cb)
00348                                     if(p[offset2] > cb)
00349                                       goto is_a_corner;
00350                                     else
00351                                       if(p[offset7] > cb)
00352                                         goto is_a_corner;
00353                                       else
00354                                         goto is_not_a_corner;
00355                                   else
00356                                     if(p[offset6] > cb)
00357                                       if(p[offset7] > cb)
00358                                         goto is_a_corner;
00359                                       else
00360                                         goto is_not_a_corner;
00361                                     else
00362                                       goto is_not_a_corner;
00363                                 else
00364                                   goto is_not_a_corner;
00365                             else
00366                               goto is_not_a_corner;
00367                           else
00368                             goto is_not_a_corner;
00369                       else
00370                         if(p[offset9] < c_b)
00371                           if(p[offset2] > cb)
00372                             if(p[offset1] > cb)
00373                               if(p[offset4] > cb)
00374                                 if(p[offset10] > cb)
00375                                   if(p[offset3] > cb)
00376                                     if(p[offset11] > cb)
00377                                       goto is_a_corner;
00378                                     else
00379                                       goto is_not_a_corner;
00380                                   else
00381                                     goto is_not_a_corner;
00382                                 else
00383                                   if(p[offset6] < c_b)
00384                                     if(p[offset7] < c_b)
00385                                       if(p[offset8] < c_b)
00386                                         if(p[offset11] < c_b)
00387                                           if(p[offset10] < c_b)
00388                                             goto is_a_corner;
00389                                           else
00390                                             goto is_not_a_corner;
00391                                         else
00392                                           goto is_not_a_corner;
00393                                       else
00394                                         goto is_not_a_corner;
00395                                     else
00396                                       goto is_not_a_corner;
00397                                   else
00398                                     goto is_not_a_corner;
00399                               else
00400                                 if(p[offset6] < c_b)
00401                                   if(p[offset7] < c_b)
00402                                     if(p[offset8] < c_b)
00403                                       if(p[offset10] < c_b)
00404                                         if(p[offset4] < c_b)
00405                                           goto is_a_corner;
00406                                         else
00407                                           if(p[offset11] < c_b)
00408                                             goto is_a_corner;
00409                                           else
00410                                             goto is_not_a_corner;
00411                                       else
00412                                         if(p[offset3] < c_b)
00413                                           if(p[offset4] < c_b)
00414                                             goto is_a_corner;
00415                                           else
00416                                             goto is_not_a_corner;
00417                                         else
00418                                           goto is_not_a_corner;
00419                                     else
00420                                       goto is_not_a_corner;
00421                                   else
00422                                     goto is_not_a_corner;
00423                                 else
00424                                   goto is_not_a_corner;
00425                             else
00426                               if(p[offset6] < c_b)
00427                                 if(p[offset7] < c_b)
00428                                   if(p[offset8] < c_b)
00429                                     if(p[offset4] < c_b)
00430                                       if(p[offset3] < c_b)
00431                                         goto is_a_corner;
00432                                       else
00433                                         if(p[offset10] < c_b)
00434                                           goto is_a_corner;
00435                                         else
00436                                           goto is_not_a_corner;
00437                                     else
00438                                       if(p[offset10] < c_b)
00439                                         if(p[offset11] < c_b)
00440                                           goto is_a_corner;
00441                                         else
00442                                           goto is_not_a_corner;
00443                                       else
00444                                         goto is_not_a_corner;
00445                                   else
00446                                     goto is_not_a_corner;
00447                                 else
00448                                   goto is_not_a_corner;
00449                               else
00450                                 goto is_not_a_corner;
00451                           else
00452                             if(p[offset6] < c_b)
00453                               if(p[offset7] < c_b)
00454                                 if(p[offset8] < c_b)
00455                                   if(p[offset4] < c_b)
00456                                     if(p[offset3] < c_b)
00457                                       goto is_a_corner;
00458                                     else
00459                                       if(p[offset10] < c_b)
00460                                         goto is_a_corner;
00461                                       else
00462                                         goto is_not_a_corner;
00463                                   else
00464                                     if(p[offset10] < c_b)
00465                                       if(p[offset11] < c_b)
00466                                         goto is_a_corner;
00467                                       else
00468                                         goto is_not_a_corner;
00469                                     else
00470                                       goto is_not_a_corner;
00471                                 else
00472                                   if(p[offset2] < c_b)
00473                                     if(p[offset1] < c_b)
00474                                       if(p[offset3] < c_b)
00475                                         if(p[offset4] < c_b)
00476                                           goto is_a_corner;
00477                                         else
00478                                           goto is_not_a_corner;
00479                                       else
00480                                         goto is_not_a_corner;
00481                                     else
00482                                       goto is_not_a_corner;
00483                                   else
00484                                     goto is_not_a_corner;
00485                               else
00486                                 goto is_not_a_corner;
00487                             else
00488                               goto is_not_a_corner;
00489                         else
00490                           if(p[offset2] > cb)
00491                             if(p[offset1] > cb)
00492                               if(p[offset3] > cb)
00493                                 if(p[offset4] > cb)
00494                                   if(p[offset10] > cb)
00495                                     if(p[offset11] > cb)
00496                                       goto is_a_corner;
00497                                     else
00498                                       goto is_not_a_corner;
00499                                   else
00500                                     goto is_not_a_corner;
00501                                 else
00502                                   goto is_not_a_corner;
00503                               else
00504                                 goto is_not_a_corner;
00505                             else
00506                               goto is_not_a_corner;
00507                           else
00508                             if(p[offset2] < c_b)
00509                               if(p[offset3] < c_b)
00510                                 if(p[offset4] < c_b)
00511                                   if(p[offset7] < c_b)
00512                                     if(p[offset1] < c_b)
00513                                       if(p[offset6] < c_b)
00514                                         goto is_a_corner;
00515                                       else
00516                                         goto is_not_a_corner;
00517                                     else
00518                                       if(p[offset6] < c_b)
00519                                         if(p[offset8] < c_b)
00520                                           goto is_a_corner;
00521                                         else
00522                                           goto is_not_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                               goto is_not_a_corner;
00533                     else
00534                       if(p[offset2] > cb)
00535                         if(p[offset10] > cb)
00536                           if(p[offset11] > cb)
00537                             if(p[offset9] > cb)
00538                               if(p[offset1] > cb)
00539                                 if(p[offset3] > cb)
00540                                   goto is_a_corner;
00541                                 else
00542                                   if(p[offset8] > cb)
00543                                     goto is_a_corner;
00544                                   else
00545                                     goto is_not_a_corner;
00546                               else
00547                                 if(p[offset6] > cb)
00548                                   if(p[offset7] > cb)
00549                                     if(p[offset8] > cb)
00550                                       goto is_a_corner;
00551                                     else
00552                                       goto is_not_a_corner;
00553                                   else
00554                                     goto is_not_a_corner;
00555                                 else
00556                                   goto is_not_a_corner;
00557                             else
00558                               if(p[offset1] > cb)
00559                                 if(p[offset3] > cb)
00560                                   if(p[offset4] > cb)
00561                                     goto is_a_corner;
00562                                   else
00563                                     goto is_not_a_corner;
00564                                 else
00565                                   goto is_not_a_corner;
00566                               else
00567                                 goto is_not_a_corner;
00568                           else
00569                             goto is_not_a_corner;
00570                         else
00571                           goto is_not_a_corner;
00572                       else
00573                         if(p[offset9] > cb)
00574                           if(p[offset7] > cb)
00575                             if(p[offset8] > cb)
00576                               if(p[offset10] > cb)
00577                                 if(p[offset11] > cb)
00578                                   if(p[offset1] > cb)
00579                                     goto is_a_corner;
00580                                   else
00581                                     if(p[offset6] > cb)
00582                                       goto is_a_corner;
00583                                     else
00584                                       goto is_not_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                             goto is_not_a_corner;
00593                         else
00594                           goto is_not_a_corner;
00595                 else if(p[offset0] < c_b)
00596                   if(p[offset2] > cb)
00597                     if(p[offset5] > cb)
00598                       if(p[offset7] > cb)
00599                         if(p[offset6] > cb)
00600                           if(p[offset4] > cb)
00601                             if(p[offset3] > cb)
00602                               if(p[offset1] > cb)
00603                                 goto is_a_corner;
00604                               else
00605                                 if(p[offset8] > cb)
00606                                   goto is_a_corner;
00607                                 else
00608                                   goto is_not_a_corner;
00609                             else
00610                               if(p[offset9] > cb)
00611                                 if(p[offset8] > cb)
00612                                   if(p[offset10] > cb)
00613                                     goto is_a_corner;
00614                                   else
00615                                     goto is_not_a_corner;
00616                                 else
00617                                   goto is_not_a_corner;
00618                               else
00619                                 goto is_not_a_corner;
00620                           else
00621                             if(p[offset9] > cb)
00622                               if(p[offset8] > cb)
00623                                 if(p[offset10] > cb)
00624                                   if(p[offset11] > cb)
00625                                     goto is_a_corner;
00626                                   else
00627                                     goto is_not_a_corner;
00628                                 else
00629                                   goto is_not_a_corner;
00630                               else
00631                                 goto is_not_a_corner;
00632                             else
00633                               goto is_not_a_corner;
00634                         else
00635                           goto is_not_a_corner;
00636                       else
00637                         if(p[offset9] < c_b)
00638                           if(p[offset8] < c_b)
00639                             if(p[offset10] < c_b)
00640                               if(p[offset11] < c_b)
00641                                 if(p[offset7] < c_b)
00642                                   if(p[offset1] < c_b)
00643                                     goto is_a_corner;
00644                                   else
00645                                     if(p[offset6] < c_b)
00646                                       goto is_a_corner;
00647                                     else
00648                                       goto is_not_a_corner;
00649                                 else
00650                                   goto is_not_a_corner;
00651                               else
00652                                 goto is_not_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                       if(p[offset9] < c_b)
00661                         if(p[offset7] < c_b)
00662                           if(p[offset8] < c_b)
00663                             if(p[offset5] < c_b)
00664                               if(p[offset1] < c_b)
00665                                 if(p[offset10] < c_b)
00666                                   if(p[offset11] < c_b)
00667                                     goto is_a_corner;
00668                                   else
00669                                     if(p[offset6] < c_b)
00670                                       if(p[offset4] < c_b)
00671                                         goto is_a_corner;
00672                                       else
00673                                         goto is_not_a_corner;
00674                                     else
00675                                       goto is_not_a_corner;
00676                                 else
00677                                   if(p[offset6] < c_b)
00678                                     if(p[offset3] < c_b)
00679                                       if(p[offset4] < c_b)
00680                                         goto is_a_corner;
00681                                       else
00682                                         goto is_not_a_corner;
00683                                     else
00684                                       goto is_not_a_corner;
00685                                   else
00686                                     goto is_not_a_corner;
00687                               else
00688                                 if(p[offset6] < c_b)
00689                                   if(p[offset4] < c_b)
00690                                     if(p[offset3] < c_b)
00691                                       goto is_a_corner;
00692                                     else
00693                                       if(p[offset10] < c_b)
00694                                         goto is_a_corner;
00695                                       else
00696                                         goto is_not_a_corner;
00697                                   else
00698                                     if(p[offset10] < c_b)
00699                                       if(p[offset11] < c_b)
00700                                         goto is_a_corner;
00701                                       else
00702                                         goto is_not_a_corner;
00703                                     else
00704                                       goto is_not_a_corner;
00705                                 else
00706                                   goto is_not_a_corner;
00707                             else
00708                               if(p[offset10] < c_b)
00709                                 if(p[offset11] < c_b)
00710                                   if(p[offset1] < c_b)
00711                                     goto is_a_corner;
00712                                   else
00713                                     if(p[offset6] < c_b)
00714                                       goto is_a_corner;
00715                                     else
00716                                       goto is_not_a_corner;
00717                                 else
00718                                   goto is_not_a_corner;
00719                               else
00720                                 goto is_not_a_corner;
00721                           else
00722                             goto is_not_a_corner;
00723                         else
00724                           goto is_not_a_corner;
00725                       else
00726                         goto is_not_a_corner;
00727                   else
00728                     if(p[offset2] < c_b)
00729                       if(p[offset9] > cb)
00730                         if(p[offset5] > cb)
00731                           if(p[offset1] < c_b)
00732                             if(p[offset4] < c_b)
00733                               if(p[offset10] < c_b)
00734                                 if(p[offset3] < c_b)
00735                                   if(p[offset11] < c_b)
00736                                     goto is_a_corner;
00737                                   else
00738                                     goto is_not_a_corner;
00739                                 else
00740                                   goto is_not_a_corner;
00741                               else
00742                                 if(p[offset6] > cb)
00743                                   if(p[offset7] > cb)
00744                                     if(p[offset8] > cb)
00745                                       if(p[offset11] > cb)
00746                                         if(p[offset10] > cb)
00747                                           goto is_a_corner;
00748                                         else
00749                                           goto is_not_a_corner;
00750                                       else
00751                                         goto is_not_a_corner;
00752                                     else
00753                                       goto is_not_a_corner;
00754                                   else
00755                                     goto is_not_a_corner;
00756                                 else
00757                                   goto is_not_a_corner;
00758                             else
00759                               if(p[offset6] > cb)
00760                                 if(p[offset7] > cb)
00761                                   if(p[offset8] > cb)
00762                                     if(p[offset10] > cb)
00763                                       if(p[offset4] > cb)
00764                                         goto is_a_corner;
00765                                       else
00766                                         if(p[offset11] > cb)
00767                                           goto is_a_corner;
00768                                         else
00769                                           goto is_not_a_corner;
00770                                     else
00771                                       if(p[offset3] > cb)
00772                                         if(p[offset4] > cb)
00773                                           goto is_a_corner;
00774                                         else
00775                                           goto is_not_a_corner;
00776                                       else
00777                                         goto is_not_a_corner;
00778                                   else
00779                                     goto is_not_a_corner;
00780                                 else
00781                                   goto is_not_a_corner;
00782                               else
00783                                 goto is_not_a_corner;
00784                           else
00785                             if(p[offset6] > cb)
00786                               if(p[offset7] > cb)
00787                                 if(p[offset8] > cb)
00788                                   if(p[offset4] > cb)
00789                                     if(p[offset3] > cb)
00790                                       goto is_a_corner;
00791                                     else
00792                                       if(p[offset10] > cb)
00793                                         goto is_a_corner;
00794                                       else
00795                                         goto is_not_a_corner;
00796                                   else
00797                                     if(p[offset10] > cb)
00798                                       if(p[offset11] > cb)
00799                                         goto is_a_corner;
00800                                       else
00801                                         goto is_not_a_corner;
00802                                     else
00803                                       goto is_not_a_corner;
00804                                 else
00805                                   goto is_not_a_corner;
00806                               else
00807                                 goto is_not_a_corner;
00808                             else
00809                               goto is_not_a_corner;
00810                         else
00811                           if(p[offset3] < c_b)
00812                             if(p[offset4] < c_b)
00813                               if(p[offset5] < c_b)
00814                                 if(p[offset1] < c_b)
00815                                   if(p[offset6] < c_b)
00816                                     goto is_a_corner;
00817                                   else
00818                                     if(p[offset11] < c_b)
00819                                       goto is_a_corner;
00820                                     else
00821                                       goto is_not_a_corner;
00822                                 else
00823                                   if(p[offset6] < c_b)
00824                                     if(p[offset7] < c_b)
00825                                       if(p[offset8] < c_b)
00826                                         goto is_a_corner;
00827                                       else
00828                                         goto is_not_a_corner;
00829                                     else
00830                                       goto is_not_a_corner;
00831                                   else
00832                                     goto is_not_a_corner;
00833                               else
00834                                 if(p[offset1] < c_b)
00835                                   if(p[offset10] < c_b)
00836                                     if(p[offset11] < c_b)
00837                                       goto is_a_corner;
00838                                     else
00839                                       goto is_not_a_corner;
00840                                   else
00841                                     goto is_not_a_corner;
00842                                 else
00843                                   goto is_not_a_corner;
00844                             else
00845                               goto is_not_a_corner;
00846                           else
00847                             goto is_not_a_corner;
00848                       else
00849                         if(p[offset9] < c_b)
00850                           if(p[offset5] < c_b)
00851                             if(p[offset1] < c_b)
00852                               if(p[offset6] < c_b)
00853                                 if(p[offset3] < c_b)
00854                                   if(p[offset4] < c_b)
00855                                     goto is_a_corner;
00856                                   else
00857                                     if(p[offset10] < c_b)
00858                                       if(p[offset11] < c_b)
00859                                         goto is_a_corner;
00860                                       else
00861                                         goto is_not_a_corner;
00862                                     else
00863                                       goto is_not_a_corner;
00864                                 else
00865                                   if(p[offset8] < c_b)
00866                                     if(p[offset10] < c_b)
00867                                       if(p[offset11] < c_b)
00868                                         goto is_a_corner;
00869                                       else
00870                                         if(p[offset4] < c_b)
00871                                           if(p[offset7] < c_b)
00872                                             goto is_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[offset11] < c_b)
00883                                   if(p[offset3] < c_b)
00884                                     if(p[offset4] < c_b)
00885                                       goto is_a_corner;
00886                                     else
00887                                       if(p[offset10] < c_b)
00888                                         goto is_a_corner;
00889                                       else
00890                                         goto is_not_a_corner;
00891                                   else
00892                                     if(p[offset8] < c_b)
00893                                       if(p[offset10] < c_b)
00894                                         goto is_a_corner;
00895                                       else
00896                                         goto is_not_a_corner;
00897                                     else
00898                                       goto is_not_a_corner;
00899                                 else
00900                                   goto is_not_a_corner;
00901                             else
00902                               if(p[offset6] < c_b)
00903                                 if(p[offset7] < c_b)
00904                                   if(p[offset8] < c_b)
00905                                     if(p[offset4] < c_b)
00906                                       if(p[offset3] < c_b)
00907                                         goto is_a_corner;
00908                                       else
00909                                         if(p[offset10] < c_b)
00910                                           goto is_a_corner;
00911                                         else
00912                                           goto is_not_a_corner;
00913                                     else
00914                                       if(p[offset10] < c_b)
00915                                         if(p[offset11] < c_b)
00916                                           goto is_a_corner;
00917                                         else
00918                                           goto is_not_a_corner;
00919                                       else
00920                                         goto is_not_a_corner;
00921                                   else
00922                                     goto is_not_a_corner;
00923                                 else
00924                                   goto is_not_a_corner;
00925                               else
00926                                 goto is_not_a_corner;
00927                           else
00928                             if(p[offset10] < c_b)
00929                               if(p[offset11] < c_b)
00930                                 if(p[offset1] < c_b)
00931                                   if(p[offset3] < c_b)
00932                                     goto is_a_corner;
00933                                   else
00934                                     if(p[offset8] < c_b)
00935                                       goto is_a_corner;
00936                                     else
00937                                       goto is_not_a_corner;
00938                                 else
00939                                   if(p[offset6] < c_b)
00940                                     if(p[offset7] < c_b)
00941                                       if(p[offset8] < c_b)
00942                                         goto is_a_corner;
00943                                       else
00944                                         goto is_not_a_corner;
00945                                     else
00946                                       goto is_not_a_corner;
00947                                   else
00948                                     goto is_not_a_corner;
00949                               else
00950                                 goto is_not_a_corner;
00951                             else
00952                               goto is_not_a_corner;
00953                         else
00954                           if(p[offset3] < c_b)
00955                             if(p[offset4] < c_b)
00956                               if(p[offset5] < c_b)
00957                                 if(p[offset1] < c_b)
00958                                   if(p[offset6] < c_b)
00959                                     goto is_a_corner;
00960                                   else
00961                                     if(p[offset11] < c_b)
00962                                       goto is_a_corner;
00963                                     else
00964                                       goto is_not_a_corner;
00965                                 else
00966                                   if(p[offset6] < c_b)
00967                                     if(p[offset7] < c_b)
00968                                       if(p[offset8] < c_b)
00969                                         goto is_a_corner;
00970                                       else
00971                                         goto is_not_a_corner;
00972                                     else
00973                                       goto is_not_a_corner;
00974                                   else
00975                                     goto is_not_a_corner;
00976                               else
00977                                 if(p[offset1] < c_b)
00978                                   if(p[offset10] < c_b)
00979                                     if(p[offset11] < 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                                   goto is_not_a_corner;
00987                             else
00988                               goto is_not_a_corner;
00989                           else
00990                             goto is_not_a_corner;
00991                     else
00992                       if(p[offset9] < c_b)
00993                         if(p[offset7] < c_b)
00994                           if(p[offset8] < c_b)
00995                             if(p[offset5] < c_b)
00996                               if(p[offset1] < c_b)
00997                                 if(p[offset10] < c_b)
00998                                   if(p[offset11] < c_b)
00999                                     goto is_a_corner;
01000                                   else
01001                                     if(p[offset6] < c_b)
01002                                       if(p[offset4] < c_b)
01003                                         goto is_a_corner;
01004                                       else
01005                                         goto is_not_a_corner;
01006                                     else
01007                                       goto is_not_a_corner;
01008                                 else
01009                                   if(p[offset6] < c_b)
01010                                     if(p[offset3] < c_b)
01011                                       if(p[offset4] < c_b)
01012                                         goto is_a_corner;
01013                                       else
01014                                         goto is_not_a_corner;
01015                                     else
01016                                       goto is_not_a_corner;
01017                                   else
01018                                     goto is_not_a_corner;
01019                               else
01020                                 if(p[offset6] < c_b)
01021                                   if(p[offset4] < c_b)
01022                                     if(p[offset3] < c_b)
01023                                       goto is_a_corner;
01024                                     else
01025                                       if(p[offset10] < c_b)
01026                                         goto is_a_corner;
01027                                       else
01028                                         goto is_not_a_corner;
01029                                   else
01030                                     if(p[offset10] < c_b)
01031                                       if(p[offset11] < c_b)
01032                                         goto is_a_corner;
01033                                       else
01034                                         goto is_not_a_corner;
01035                                     else
01036                                       goto is_not_a_corner;
01037                                 else
01038                                   goto is_not_a_corner;
01039                             else
01040                               if(p[offset10] < c_b)
01041                                 if(p[offset11] < c_b)
01042                                   if(p[offset1] < c_b)
01043                                     goto is_a_corner;
01044                                   else
01045                                     if(p[offset6] < c_b)
01046                                       goto is_a_corner;
01047                                     else
01048                                       goto is_not_a_corner;
01049                                 else
01050                                   goto is_not_a_corner;
01051                               else
01052                                 goto is_not_a_corner;
01053                           else
01054                             goto is_not_a_corner;
01055                         else
01056                           goto is_not_a_corner;
01057                       else
01058                         if(p[offset5] > cb)
01059                           if(p[offset9] > cb)
01060                             if(p[offset6] > cb)
01061                               if(p[offset7] > cb)
01062                                 if(p[offset8] > cb)
01063                                   if(p[offset4] > cb)
01064                                     if(p[offset3] > cb)
01065                                       goto is_a_corner;
01066                                     else
01067                                       if(p[offset10] > cb)
01068                                         goto is_a_corner;
01069                                       else
01070                                         goto is_not_a_corner;
01071                                   else
01072                                     if(p[offset10] > cb)
01073                                       if(p[offset11] > cb)
01074                                         goto is_a_corner;
01075                                       else
01076                                         goto is_not_a_corner;
01077                                     else
01078                                       goto is_not_a_corner;
01079                                 else
01080                                   goto is_not_a_corner;
01081                               else
01082                                 goto is_not_a_corner;
01083                             else
01084                               goto is_not_a_corner;
01085                           else
01086                             goto is_not_a_corner;
01087                         else
01088                           goto is_not_a_corner;
01089                 else
01090                   if(p[offset5] > cb)
01091                     if(p[offset9] > cb)
01092                       if(p[offset6] > cb)
01093                         if(p[offset7] > cb)
01094                           if(p[offset4] > cb)
01095                             if(p[offset3] > cb)
01096                               if(p[offset8] > cb)
01097                                 goto is_a_corner;
01098                               else
01099                                 if(p[offset1] > cb)
01100                                   if(p[offset2] > cb)
01101                                     goto is_a_corner;
01102                                   else
01103                                     goto is_not_a_corner;
01104                                 else
01105                                   goto is_not_a_corner;
01106                             else
01107                               if(p[offset8] > cb)
01108                                 if(p[offset10] > cb)
01109                                   goto is_a_corner;
01110                                 else
01111                                   goto is_not_a_corner;
01112                               else
01113                                 goto is_not_a_corner;
01114                           else
01115                             if(p[offset11] > cb)
01116                               if(p[offset8] > cb)
01117                                 if(p[offset10] > cb)
01118                                   goto is_a_corner;
01119                                 else
01120                                   goto is_not_a_corner;
01121                               else
01122                                 goto is_not_a_corner;
01123                             else
01124                               goto is_not_a_corner;
01125                         else
01126                           goto is_not_a_corner;
01127                       else
01128                         goto is_not_a_corner;
01129                     else
01130                       if(p[offset2] > cb)
01131                         if(p[offset3] > cb)
01132                           if(p[offset4] > cb)
01133                             if(p[offset7] > cb)
01134                               if(p[offset1] > cb)
01135                                 if(p[offset6] > cb)
01136                                   goto is_a_corner;
01137                                 else
01138                                   goto is_not_a_corner;
01139                               else
01140                                 if(p[offset6] > cb)
01141                                   if(p[offset8] > cb)
01142                                     goto is_a_corner;
01143                                   else
01144                                     goto is_not_a_corner;
01145                                 else
01146                                   goto is_not_a_corner;
01147                             else
01148                               goto is_not_a_corner;
01149                           else
01150                             goto is_not_a_corner;
01151                         else
01152                           goto is_not_a_corner;
01153                       else
01154                         goto is_not_a_corner;
01155                   else
01156                     if(p[offset5] < c_b)
01157                       if(p[offset9] < c_b)
01158                         if(p[offset6] < c_b)
01159                           if(p[offset7] < c_b)
01160                             if(p[offset4] < c_b)
01161                               if(p[offset3] < c_b)
01162                                 if(p[offset8] < c_b)
01163                                   goto is_a_corner;
01164                                 else
01165                                   if(p[offset1] < c_b)
01166                                     if(p[offset2] < 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                                 if(p[offset8] < c_b)
01174                                   if(p[offset10] < c_b)
01175                                     goto is_a_corner;
01176                                   else
01177                                     goto is_not_a_corner;
01178                                 else
01179                                   goto is_not_a_corner;
01180                             else
01181                               if(p[offset11] < c_b)
01182                                 if(p[offset8] < c_b)
01183                                   if(p[offset10] < c_b)
01184                                     goto is_a_corner;
01185                                   else
01186                                     goto is_not_a_corner;
01187                                 else
01188                                   goto is_not_a_corner;
01189                               else
01190                                 goto is_not_a_corner;
01191                           else
01192                             goto is_not_a_corner;
01193                         else
01194                           goto is_not_a_corner;
01195                       else
01196                         if(p[offset2] < c_b)
01197                           if(p[offset3] < c_b)
01198                             if(p[offset4] < c_b)
01199                               if(p[offset7] < c_b)
01200                                 if(p[offset1] < c_b)
01201                                   if(p[offset6] < c_b)
01202                                     goto is_a_corner;
01203                                   else
01204                                     goto is_not_a_corner;
01205                                 else
01206                                   if(p[offset6] < c_b)
01207                                     if(p[offset8] < c_b)
01208                                       goto is_a_corner;
01209                                     else
01210                                       goto is_not_a_corner;
01211                                   else
01212                                     goto is_not_a_corner;
01213                               else
01214                                 goto is_not_a_corner;
01215                             else
01216                               goto is_not_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 
01224                 is_a_corner:
01225                         bmin=b_test;
01226                         goto end;
01227 
01228                 is_not_a_corner:
01229                         bmax=b_test;
01230                         goto end;
01231 
01232                 end:
01233 
01234                 if(bmin == bmax - 1 || bmin == bmax)
01235                         return bmin;
01236                 b_test = (bmin + bmax) / 2;
01237         }
01238 }
01239 


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