agast_2d.cpp
Go to the documentation of this file.
00001 /*
00002  * Software License Agreement (BSD License)
00003  *
00004  *  Point Cloud Library (PCL) - www.pointclouds.org
00005  *  Copyright (c) 2010-2011, Willow Garage, Inc.
00006  *  Copyright (c) 2012-, Open Perception, Inc.
00007  *
00008  *  All rights reserved.
00009  *
00010  *  Redistribution and use in source and binary forms, with or without
00011  *  modification, are permitted provided that the following conditions
00012  *  are met:
00013  *
00014  *   * Redistributions of source code must retain the above copyright
00015  *     notice, this list of conditions and the following disclaimer.
00016  *   * Redistributions in binary form must reproduce the above
00017  *     copyright notice, this list of conditions and the following
00018  *     disclaimer in the documentation and/or other materials provided
00019  *     with the distribution.
00020  *   * Neither the name of Willow Garage, Inc. nor the names of its
00021  *     contributors may be used to endorse or promote products derived
00022  *     from this software without specific prior written permission.
00023  *
00024  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00025  *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00026  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
00027  *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
00028  *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
00029  *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
00030  *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00031  *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00032  *  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
00033  *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
00034  *  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00035  *  POSSIBILITY OF SUCH DAMAGE.
00036  *
00037  */
00038 
00039 #include <pcl/keypoints/agast_2d.h>
00040 #include <pcl/point_types.h>
00041 #include <pcl/impl/instantiate.hpp>
00042 
00044 void
00045 pcl::AgastKeypoint2D<pcl::PointXYZ, pcl::PointUV>::detectKeypoints (pcl::PointCloud<pcl::PointUV> &output)
00046 {
00047   // image size
00048   const size_t width = input_->width;
00049   const size_t height = input_->height;
00050 
00051   // destination for intensity data; will be forwarded to AGAST
00052   std::vector<float> image_data (width * height);
00053 
00054   for (size_t i = 0; i < image_data.size (); ++i)
00055     image_data[i] = static_cast<float> (intensity_ ((*input_)[i]));
00056 
00057   if (!detector_)
00058     detector_.reset (new pcl::keypoints::agast::AgastDetector7_12s (width, height, threshold_, bmax_));
00059 
00060   detector_->setMaxKeypoints (nr_max_keypoints_);
00061 
00062   if (apply_non_max_suppression_)
00063   {
00064     pcl::PointCloud<pcl::PointUV> tmp_cloud;
00065 
00066     detector_->detectKeypoints (image_data, tmp_cloud);
00067     detector_->applyNonMaxSuppression (image_data, tmp_cloud, output);
00068   }
00069   else
00070   {
00071     detector_->detectKeypoints (image_data, output);
00072   }
00073 
00074   // we don not change the denseness
00075   output.is_dense = true;
00076 }
00077 
00079 void
00080 pcl::keypoints::agast::AbstractAgastDetector::detectKeypoints (
00081     const std::vector<unsigned char> & intensity_data, 
00082     pcl::PointCloud<pcl::PointUV> &output)
00083 {
00084   detect (&(intensity_data[0]), output.points);
00085 
00086   output.height = 1;
00087   output.width = static_cast<uint32_t> (output.points.size ());
00088 }
00089 
00091 void
00092 pcl::keypoints::agast::AbstractAgastDetector::detectKeypoints (
00093     const std::vector<float> & intensity_data, 
00094     pcl::PointCloud<pcl::PointUV> &output)
00095 {
00096   detect (&(intensity_data[0]), output.points);
00097 
00098   output.height = 1;
00099   output.width = static_cast<uint32_t> (output.points.size ());
00100 }
00101 
00103 void
00104 pcl::keypoints::agast::AbstractAgastDetector::applyNonMaxSuppression (
00105     const pcl::PointCloud<pcl::PointUV> &input,
00106     const std::vector<ScoreIndex> &scores,
00107     pcl::PointCloud<pcl::PointUV> &output)
00108 {
00109   std::vector<int> nms_flags;
00110 
00111   const std::vector<pcl::PointUV, Eigen::aligned_allocator<pcl::PointUV> > & corners_all = input.points;
00112   std::vector<pcl::PointUV, Eigen::aligned_allocator<pcl::PointUV> > & corners_nms = output.points;
00113 
00114   int curr_corner_ind;
00115   int lastRow = 0, next_lastRow = 0;
00116   std::vector<pcl::PointUV, Eigen::aligned_allocator<pcl::PointUV> >::const_iterator curr_corner;
00117   int lastRowCorner_ind = 0, next_lastRowCorner_ind = 0;
00118   std::vector<int>::iterator nms_flags_p;
00119   std::vector<pcl::PointUV, Eigen::aligned_allocator<pcl::PointUV> >::iterator curr_corner_nms;
00120   int j;
00121   int num_corners_all = int (corners_all.size ());
00122   int n_max_corners = int (corners_nms.capacity ());
00123 
00124   curr_corner = corners_all.begin ();
00125 
00126   if (num_corners_all > n_max_corners)
00127   {
00128     if (n_max_corners == 0)
00129     {
00130       n_max_corners = 512 > num_corners_all ? 512 : num_corners_all;
00131       corners_nms.reserve (n_max_corners);
00132       nms_flags.reserve (n_max_corners);
00133     }
00134     else
00135     {
00136       n_max_corners *= 2;
00137       if (num_corners_all > n_max_corners)
00138         n_max_corners = num_corners_all;
00139       corners_nms.reserve (n_max_corners);
00140       nms_flags.reserve (n_max_corners);
00141     }
00142   }
00143   corners_nms.resize (num_corners_all);
00144   nms_flags.resize (num_corners_all);
00145 
00146   nms_flags_p = nms_flags.begin ();
00147   curr_corner_nms = corners_nms.begin ();
00148 
00149   // set all flags to MAXIMUM
00150   for (j = num_corners_all; j > 0; j--)
00151     *nms_flags_p++= -1;
00152   nms_flags_p = nms_flags.begin ();
00153 
00154   for (curr_corner_ind = 0; curr_corner_ind < num_corners_all; curr_corner_ind++)
00155   {
00156     int t;
00157 
00158     // check above
00159     if (lastRow + 1 < curr_corner->v)
00160     {
00161       lastRow=next_lastRow;
00162       lastRowCorner_ind=next_lastRowCorner_ind;
00163     }
00164     if (next_lastRow != curr_corner->v)
00165     {
00166       next_lastRow = int (curr_corner->v);
00167       next_lastRowCorner_ind = curr_corner_ind;
00168     }
00169     if (lastRow+1 == curr_corner->v)
00170     {
00171       //find the corner above the current one
00172       while ((corners_all[lastRowCorner_ind].u < curr_corner->u) && (corners_all[lastRowCorner_ind].v == lastRow))
00173         lastRowCorner_ind++;
00174 
00175       if ((corners_all[lastRowCorner_ind].u == curr_corner->u) && (lastRowCorner_ind!=curr_corner_ind))
00176       {
00177         int t = lastRowCorner_ind;
00178         while (nms_flags[t] != -1) //find the maximum in this block
00179           t = nms_flags[t];
00180 
00181         if (scores[curr_corner_ind].score < scores[t].score)
00182         {
00183           nms_flags[curr_corner_ind] = t;
00184         }
00185         else
00186           nms_flags[t] = curr_corner_ind;
00187       }
00188     }
00189 
00190     //check left
00191     t = curr_corner_ind - 1;
00192     if ((curr_corner_ind!=0) && (corners_all[t].v == curr_corner->v) && (corners_all[t].u+1 == curr_corner->u))
00193     {
00194       int curr_cornerMaxAbove_ind = nms_flags[curr_corner_ind];
00195 
00196       while (nms_flags[t] != -1) //find the maximum in that area
00197         t = nms_flags[t];
00198 
00199       if (curr_cornerMaxAbove_ind == -1) //no maximum above
00200       {
00201         if (t != curr_corner_ind)
00202         {
00203           if (scores[curr_corner_ind].score < scores[t].score)
00204             nms_flags[curr_corner_ind] = t;
00205           else
00206             nms_flags[t] = curr_corner_ind;
00207         }
00208       }
00209       else  //maximum above
00210       {
00211         if (t != curr_cornerMaxAbove_ind)
00212         {
00213           if (scores[curr_cornerMaxAbove_ind].score < scores[t].score)
00214           {
00215             nms_flags[curr_cornerMaxAbove_ind] = t;
00216             nms_flags[curr_corner_ind] = t;
00217           }
00218           else
00219           {
00220             nms_flags[t] = curr_cornerMaxAbove_ind;
00221             nms_flags[curr_corner_ind] = curr_cornerMaxAbove_ind;
00222           }
00223         }
00224       }
00225     }
00226 
00227     curr_corner++;
00228   }
00229 
00230   // collecting maximum corners
00231   corners_nms.resize (0);
00232   for (curr_corner_ind = 0; curr_corner_ind < num_corners_all; curr_corner_ind++)
00233   {
00234     if (*nms_flags_p++ == -1)
00235       corners_nms.push_back (corners_all[curr_corner_ind]);
00236   }
00237 
00238   output.height = 1;
00239   output.width = static_cast<uint32_t> (output.points.size ());
00240   output.is_dense = input.is_dense;
00241 }
00242 
00244 void
00245 pcl::keypoints::agast::AbstractAgastDetector::applyNonMaxSuppression (
00246   const std::vector<unsigned char>& intensity_data, 
00247   const pcl::PointCloud<pcl::PointUV> &input,
00248   pcl::PointCloud<pcl::PointUV> &output)
00249 {
00250   std::vector<ScoreIndex> scores;
00251   computeCornerScores (&(intensity_data[0]), input.points, scores);
00252   
00253   // If a threshold for the maximum number of keypoints is given
00254   if (nr_max_keypoints_ <= scores.size ()) //std::numeric_limits<unsigned int>::max ())
00255   {
00256     std::sort (scores.begin (), scores.end (), CompareScoreIndex ());
00257 
00258     scores.resize (nr_max_keypoints_);
00259 
00260     // Need to copy the points
00261     pcl::PointCloud<pcl::PointUV> best_input;
00262     best_input.resize (nr_max_keypoints_);
00263     for (int i = 0; i < scores.size (); ++i)
00264       best_input[i] = input[scores[i].idx];
00265     applyNonMaxSuppression (best_input, scores, output);
00266   }
00267   else
00268     applyNonMaxSuppression (input, scores, output);
00269 }
00270 
00272 void
00273 pcl::keypoints::agast::AbstractAgastDetector::applyNonMaxSuppression (
00274   const std::vector<float>& intensity_data, 
00275   const pcl::PointCloud<pcl::PointUV> &input,
00276   pcl::PointCloud<pcl::PointUV> &output)
00277 {
00278   std::vector<ScoreIndex> scores;
00279   computeCornerScores (&(intensity_data[0]), input.points, scores);
00280   
00281   // If a threshold for the maximum number of keypoints is given
00282   if (nr_max_keypoints_ <= scores.size ()) //std::numeric_limits<unsigned int>::max ())
00283   {
00284     std::sort (scores.begin (), scores.end (), CompareScoreIndex ());
00285 
00286     scores.resize (nr_max_keypoints_);
00287 
00288     // Need to copy the points
00289     pcl::PointCloud<pcl::PointUV> best_input;
00290     best_input.resize (nr_max_keypoints_);
00291     for (int i = 0; i < scores.size (); ++i)
00292       best_input[i] = input[scores[i].idx];
00293     applyNonMaxSuppression (best_input, scores, output);
00294   }
00295   else
00296     applyNonMaxSuppression (input, scores, output);
00297 }
00298 
00300 void
00301 pcl::keypoints::agast::AbstractAgastDetector::computeCornerScores (
00302   const unsigned char* im,
00303   const std::vector<pcl::PointUV, Eigen::aligned_allocator<pcl::PointUV> > &corners_all, 
00304   std::vector<ScoreIndex> &scores)
00305 {
00306   unsigned int n = 0;
00307   unsigned int num_corners = static_cast<unsigned int> (corners_all.size ());
00308 
00309   if (num_corners > scores.capacity ())
00310   {
00311     if (scores.capacity () == 0)
00312       scores.reserve (512 > num_corners ? 512 : num_corners);
00313     else
00314     {
00315       unsigned int nScores = static_cast<unsigned int> (scores.capacity ()) * 2;
00316       if (num_corners > nScores)
00317         nScores = num_corners;
00318       scores.reserve (nScores);
00319     }
00320   }
00321   scores.resize (num_corners);
00322 
00323   for (; n < num_corners; n++)
00324   {
00325     scores[n].idx   = n;
00326     scores[n].score = computeCornerScore (im + static_cast<size_t> (corners_all[n].v) * width_ + static_cast<size_t> (corners_all[n].u));
00327   }
00328 }
00329 
00331 void
00332 pcl::keypoints::agast::AbstractAgastDetector::computeCornerScores (
00333   const float* im,
00334   const std::vector<pcl::PointUV, Eigen::aligned_allocator<pcl::PointUV> > &corners_all, 
00335   std::vector<ScoreIndex> &scores)
00336 {
00337   unsigned int n = 0;
00338   unsigned int num_corners = static_cast<unsigned int> (corners_all.size ());
00339 
00340   if (num_corners > scores.capacity ())
00341   {
00342     if (scores.capacity () == 0)
00343       scores.reserve (512 > num_corners ? 512 : num_corners);
00344     else
00345     {
00346       unsigned int nScores = static_cast<unsigned int> (scores.capacity ()) * 2;
00347       if (num_corners > nScores)
00348         nScores = num_corners;
00349       scores.reserve (nScores);
00350     }
00351   }
00352   scores.resize (num_corners);
00353 
00354   for (; n < num_corners; n++)
00355   {
00356     scores[n].idx   = n;
00357     scores[n].score = computeCornerScore (im + static_cast<size_t> (corners_all[n].v) * width_ + static_cast<size_t> (corners_all[n].u));
00358   }
00359 }
00360 
00361 
00365 namespace pcl
00366 {
00367   namespace keypoints
00368   {
00369     namespace agast
00370     {
00372       // Helper method for AgastDetector7_12s::detect
00373       template <typename T1, typename T2> void
00374       AgastDetector7_12s_detect (
00375           const T1* im, 
00376           int img_width, int img_height,
00377           double threshold,
00378           int_fast16_t s_offset0,
00379           int_fast16_t s_offset1,
00380           int_fast16_t s_offset2,
00381           int_fast16_t s_offset3,
00382           int_fast16_t s_offset4,
00383           int_fast16_t s_offset5,
00384           int_fast16_t s_offset6,
00385           int_fast16_t s_offset7,
00386           int_fast16_t s_offset8,
00387           int_fast16_t s_offset9,
00388           int_fast16_t s_offset10,
00389           int_fast16_t s_offset11,
00390           std::vector<pcl::PointUV, Eigen::aligned_allocator<pcl::PointUV> >& corners)
00391       {
00392         int total = 0;
00393         int n_expected_corners = int (corners.capacity ());
00394         pcl::PointUV h;
00395         register int x, y;
00396         register int width_b  = img_width - 3; //2, +1 due to faster test x>width_b
00397         register int height_b = img_height - 2;
00398         register int_fast16_t offset0, offset1, offset2, offset3, offset4, offset5, offset6, offset7, offset8, offset9, offset10, offset11;
00399         register int width;
00400 
00401         corners.resize (0);
00402 
00403         offset0  = s_offset0;
00404         offset1  = s_offset1;
00405         offset2  = s_offset2;
00406         offset3  = s_offset3;
00407         offset4  = s_offset4;
00408         offset5  = s_offset5;
00409         offset6  = s_offset6;
00410         offset7  = s_offset7;
00411         offset8  = s_offset8;
00412         offset9  = s_offset9;
00413         offset10 = s_offset10;
00414         offset11 = s_offset11;
00415         width    = img_width;
00416 
00417         for (y = 2; y < height_b; y++)
00418         {                    
00419           x = 1;
00420           while (1)              
00421           {                  
00422       homogeneous:
00423       {
00424             x++;      
00425             if (x > width_b)  
00426               break;
00427             else
00428             {
00429               register const T1* const p = im + y * width + x;
00430               register const T2 cb = *p + T2 (threshold);
00431               register const T2 c_b = *p - T2 (threshold);
00432               if (p[offset0] > cb)
00433                 if (p[offset2] > cb)
00434                 if (p[offset5] > cb)
00435                   if (p[offset9] > cb)
00436                   if (p[offset7] > cb)
00437                     if (p[offset1] > cb)
00438                     if (p[offset6] > cb)
00439                       if (p[offset3] > cb)
00440                       if (p[offset4] > cb)
00441                         goto success_structured;
00442                       else
00443                         if (p[offset10] > cb)
00444                         if (p[offset11] > cb)
00445                           goto success_structured;
00446                         else
00447                           goto structured;
00448                         else
00449                         goto homogeneous;
00450                       else
00451                       if (p[offset8] > cb)
00452                         if (p[offset10] > cb)
00453                         if (p[offset4] > cb)
00454                           goto success_structured;
00455                         else
00456                           if (p[offset11] > cb)
00457                           goto success_structured;
00458                           else
00459                           goto structured;
00460                         else
00461                         goto homogeneous;
00462                       else
00463                         goto homogeneous;
00464                     else
00465                       if (p[offset11] > cb)
00466                       if (p[offset3] > cb)
00467                         if (p[offset4] > cb)
00468                         goto success_structured;
00469                         else
00470                         if (p[offset10] > cb)
00471                           goto success_structured;
00472                         else
00473                           goto homogeneous;
00474                       else
00475                         if (p[offset8] > cb)
00476                         if (p[offset10] > cb)
00477                           goto success_structured;
00478                         else
00479                           goto homogeneous;
00480                         else
00481                         goto homogeneous;
00482                       else
00483                       goto homogeneous;
00484                     else
00485                     if (p[offset6] > cb)
00486                       if (p[offset8] > cb)
00487                       if (p[offset4] > cb)
00488                         if (p[offset3] > cb)
00489                         goto success_structured;
00490                         else
00491                         if (p[offset10] > cb)
00492                           goto success_structured;
00493                         else
00494                           goto homogeneous;
00495                       else
00496                         if (p[offset10] > cb)
00497                         if (p[offset11] > cb)
00498                           goto success_structured;
00499                         else
00500                           goto homogeneous;
00501                         else
00502                         goto homogeneous;
00503                       else
00504                       goto homogeneous;
00505                     else
00506                       goto homogeneous;
00507                   else
00508                     if (p[offset1] > cb)
00509                     if (p[offset11] > cb)
00510                       if (p[offset3] > cb)
00511                       if (p[offset4] > cb)
00512                         goto success_homogeneous;
00513                       else
00514                         if (p[offset10] > cb)
00515                         goto success_homogeneous;
00516                         else
00517                         goto homogeneous;
00518                       else
00519                       if (p[offset8] > cb)
00520                         if (p[offset10] > cb)
00521                         goto success_homogeneous;
00522                         else
00523                         goto homogeneous;
00524                       else
00525                         goto homogeneous;
00526                     else
00527                       if (p[offset6] > cb)
00528                       if (p[offset3] > cb)
00529                         if (p[offset4] > cb)
00530                         goto success_homogeneous;
00531                         else
00532                         goto homogeneous;
00533                       else
00534                         goto homogeneous;
00535                       else
00536                       goto homogeneous;
00537                     else
00538                     goto homogeneous;
00539                   else
00540                   if (p[offset3] > cb)
00541                     if (p[offset4] > cb)
00542                     if (p[offset7] > cb)
00543                       if (p[offset1] > cb)
00544                       if (p[offset6] > cb)
00545                         goto success_homogeneous;
00546                       else
00547                         if (p[offset11] > cb)
00548                         goto success_homogeneous;
00549                         else
00550                         goto homogeneous;
00551                       else
00552                       if (p[offset6] > cb)
00553                         if (p[offset8] > cb)
00554                         goto success_homogeneous;
00555                         else
00556                         goto homogeneous;
00557                       else
00558                         goto homogeneous;
00559                     else
00560                       if (p[offset1] > cb)
00561                       if (p[offset6] > cb)
00562                         goto success_homogeneous;
00563                       else
00564                         if (p[offset11] > cb)
00565                         goto success_homogeneous;
00566                         else
00567                         goto homogeneous;
00568                       else
00569                       goto homogeneous;
00570                     else
00571                     goto homogeneous;
00572                   else
00573                     goto homogeneous;
00574                 else
00575                   if (p[offset9] < c_b)
00576                   if (p[offset7] < c_b)
00577                     if (p[offset5] < c_b)
00578                     if (p[offset1] > cb)
00579                       if (p[offset4] > cb)
00580                       if (p[offset10] > cb)
00581                         if (p[offset3] > cb)
00582                         if (p[offset11] > cb)
00583                           goto success_structured;
00584                         else
00585                           goto structured;
00586                         else
00587                         goto homogeneous;
00588                       else
00589                         if (p[offset6] < c_b)
00590                         if (p[offset8] < c_b)
00591                           if (p[offset11] < c_b)
00592                           if (p[offset10] < c_b)
00593                             goto success_structured;
00594                           else
00595                             goto structured;
00596                           else
00597                           goto structured;
00598                         else
00599                           goto homogeneous;
00600                         else
00601                         goto homogeneous;
00602                       else
00603                       if (p[offset6] < c_b)
00604                         if (p[offset8] < c_b)
00605                         if (p[offset10] < c_b)
00606                           if (p[offset4] < c_b)
00607                           goto success_structured;
00608                           else
00609                           if (p[offset11] < c_b)
00610                             goto success_structured;
00611                           else
00612                             goto structured;
00613                         else
00614                           if (p[offset3] < c_b)
00615                           if (p[offset4] < c_b)
00616                             goto success_structured;
00617                           else
00618                             goto structured;
00619                           else
00620                           goto homogeneous;
00621                         else
00622                         goto homogeneous;
00623                       else
00624                         goto homogeneous;
00625                     else
00626                       if (p[offset6] < c_b)
00627                       if (p[offset8] < c_b)
00628                         if (p[offset4] < c_b)
00629                         if (p[offset3] < c_b)
00630                           goto success_structured;
00631                         else
00632                           if (p[offset10] < c_b)
00633                           goto success_structured;
00634                           else
00635                           goto homogeneous;
00636                         else
00637                         if (p[offset10] < c_b)
00638                           if (p[offset11] < c_b)
00639                           goto success_structured;
00640                           else
00641                           goto homogeneous;
00642                         else
00643                           goto homogeneous;
00644                       else
00645                         goto homogeneous;
00646                       else
00647                       goto homogeneous;
00648                     else
00649                     if (p[offset1] > cb)
00650                       if (p[offset3] > cb)
00651                       if (p[offset4] > cb)
00652                         if (p[offset10] > cb)
00653                         if (p[offset11] > cb)
00654                           goto success_structured;
00655                         else
00656                           goto homogeneous;
00657                         else
00658                         goto homogeneous;
00659                       else
00660                         goto homogeneous;
00661                       else
00662                       goto homogeneous;
00663                     else
00664                       goto homogeneous;
00665                   else
00666                     if (p[offset1] > cb)
00667                     if (p[offset3] > cb)
00668                       if (p[offset4] > cb)
00669                       if (p[offset10] > cb)
00670                         if (p[offset11] > cb)
00671                         goto success_homogeneous;
00672                         else
00673                         goto homogeneous;
00674                       else
00675                         goto homogeneous;
00676                       else
00677                       goto homogeneous;
00678                     else
00679                       goto homogeneous;
00680                     else
00681                     goto homogeneous;
00682                   else
00683                   if (p[offset10] > cb)
00684                     if (p[offset11] > cb)
00685                     if (p[offset9] > cb)
00686                       if (p[offset7] > cb)
00687                       if (p[offset1] > cb)
00688                         if (p[offset3] > cb)
00689                         goto success_homogeneous;
00690                         else
00691                         if (p[offset8] > cb)
00692                           goto success_homogeneous;
00693                         else
00694                           goto homogeneous;
00695                       else
00696                         if (p[offset6] > cb)
00697                         if (p[offset8] > cb)
00698                           goto success_homogeneous;
00699                         else
00700                           goto homogeneous;
00701                         else
00702                         goto homogeneous;
00703                       else
00704                       if (p[offset1] > cb)
00705                         if (p[offset3] > cb)
00706                         goto success_homogeneous;
00707                         else
00708                         if (p[offset8] > cb)
00709                           goto success_homogeneous;
00710                         else
00711                           goto homogeneous;
00712                       else
00713                         goto homogeneous;
00714                     else
00715                       if (p[offset1] > cb)
00716                       if (p[offset3] > cb)
00717                         if (p[offset4] > cb)
00718                         goto success_homogeneous;
00719                         else
00720                         goto homogeneous;
00721                       else
00722                         goto homogeneous;
00723                       else
00724                       goto homogeneous;
00725                     else
00726                     goto homogeneous;
00727                   else
00728                     goto homogeneous;
00729                 else
00730                 if (p[offset7] > cb)
00731                   if (p[offset9] > cb)
00732                   if (p[offset8] > cb)
00733                     if (p[offset5] > cb)
00734                     if (p[offset1] > cb)
00735                       if (p[offset10] > cb)
00736                       if (p[offset11] > cb)
00737                         goto success_homogeneous;
00738                       else
00739                         if (p[offset6] > cb)
00740                         if (p[offset4] > cb)
00741                           goto success_structured;
00742                         else
00743                           goto homogeneous;
00744                         else
00745                         goto homogeneous;
00746                       else
00747                       if (p[offset6] > cb)
00748                         if (p[offset3] > cb)
00749                         if (p[offset4] > cb)
00750                           goto success_structured;
00751                         else
00752                           goto homogeneous;
00753                         else
00754                         goto homogeneous;
00755                       else
00756                         goto homogeneous;
00757                     else
00758                       if (p[offset6] > cb)
00759                       if (p[offset4] > cb)
00760                         if (p[offset3] > cb)
00761                         goto success_homogeneous;
00762                         else
00763                         if (p[offset10] > cb)
00764                           goto success_homogeneous;
00765                         else
00766                           goto homogeneous;
00767                       else
00768                         if (p[offset10] > cb)
00769                         if (p[offset11] > cb)
00770                           goto success_homogeneous;
00771                         else
00772                           goto homogeneous;
00773                         else
00774                         goto homogeneous;
00775                       else
00776                       goto homogeneous;
00777                     else
00778                     if (p[offset10] > cb)
00779                       if (p[offset11] > cb)
00780                       if (p[offset1] > cb)
00781                         goto success_homogeneous;
00782                       else
00783                         if (p[offset6] > cb)
00784                         goto success_homogeneous;
00785                         else
00786                         goto homogeneous;
00787                       else
00788                       goto homogeneous;
00789                     else
00790                       goto homogeneous;
00791                   else
00792                     goto homogeneous;
00793                   else
00794                   goto homogeneous;
00795                 else
00796                   if (p[offset7] < c_b)
00797                   if (p[offset5] < c_b)
00798                     if (p[offset2] < c_b)
00799                     if (p[offset6] < c_b)
00800                       if (p[offset4] < c_b)
00801                       if (p[offset3] < c_b)
00802                         if (p[offset1] < c_b)
00803                         goto success_homogeneous;
00804                         else
00805                         if (p[offset8] < c_b)
00806                           goto success_homogeneous;
00807                         else
00808                           goto homogeneous;
00809                       else
00810                         if (p[offset9] < c_b)
00811                         if (p[offset8] < c_b)
00812                           if (p[offset10] < c_b)
00813                           goto success_structured;
00814                           else
00815                           goto homogeneous;
00816                         else
00817                           goto homogeneous;
00818                         else
00819                         goto homogeneous;
00820                       else
00821                       if (p[offset9] < c_b)
00822                         if (p[offset8] < c_b)
00823                         if (p[offset10] < c_b)
00824                           if (p[offset11] < c_b)
00825                           goto success_structured;
00826                           else
00827                           goto homogeneous;
00828                         else
00829                           goto homogeneous;
00830                         else
00831                         goto homogeneous;
00832                       else
00833                         goto homogeneous;
00834                     else
00835                       goto homogeneous;
00836                     else
00837                     if (p[offset9] < c_b)
00838                       if (p[offset6] < c_b)
00839                       if (p[offset8] < c_b)
00840                         if (p[offset4] < c_b)
00841                         if (p[offset3] < c_b)
00842                           goto success_homogeneous;
00843                         else
00844                           if (p[offset10] < c_b)
00845                           goto success_homogeneous;
00846                           else
00847                           goto homogeneous;
00848                         else
00849                         if (p[offset10] < c_b)
00850                           if (p[offset11] < c_b)
00851                           goto success_homogeneous;
00852                           else
00853                           goto homogeneous;
00854                         else
00855                           goto homogeneous;
00856                       else
00857                         goto homogeneous;
00858                       else
00859                       goto homogeneous;
00860                     else
00861                       goto homogeneous;
00862                   else
00863                     goto homogeneous;
00864                   else
00865                   goto homogeneous;
00866               else if (p[offset0] < c_b)
00867                 if (p[offset2] < c_b)
00868                 if (p[offset9] < c_b)
00869                   if (p[offset5] < c_b)
00870                   if (p[offset7] < c_b)
00871                     if (p[offset1] < c_b)
00872                     if (p[offset6] < c_b)
00873                       if (p[offset3] < c_b)
00874                       if (p[offset4] < c_b)
00875                         goto success_structured;
00876                       else
00877                         if (p[offset10] < c_b)
00878                         if (p[offset11] < c_b)
00879                           goto success_structured;
00880                         else
00881                           goto structured;
00882                         else
00883                         goto homogeneous;
00884                       else
00885                       if (p[offset8] < c_b)
00886                         if (p[offset10] < c_b)
00887                         if (p[offset4] < c_b)
00888                           goto success_structured;
00889                         else
00890                           if (p[offset11] < c_b)
00891                           goto success_structured;
00892                           else
00893                           goto structured;
00894                         else
00895                         goto homogeneous;
00896                       else
00897                         goto homogeneous;
00898                     else
00899                       if (p[offset11] < c_b)
00900                       if (p[offset3] < c_b)
00901                         if (p[offset4] < c_b)
00902                         goto success_structured;
00903                         else
00904                         if (p[offset10] < c_b)
00905                           goto success_structured;
00906                         else
00907                           goto homogeneous;
00908                       else
00909                         if (p[offset8] < c_b)
00910                         if (p[offset10] < c_b)
00911                           goto success_structured;
00912                         else
00913                           goto homogeneous;
00914                         else
00915                         goto homogeneous;
00916                       else
00917                       goto homogeneous;
00918                     else
00919                     if (p[offset6] < c_b)
00920                       if (p[offset8] < c_b)
00921                       if (p[offset4] < c_b)
00922                         if (p[offset3] < c_b)
00923                         goto success_structured;
00924                         else
00925                         if (p[offset10] < c_b)
00926                           goto success_structured;
00927                         else
00928                           goto homogeneous;
00929                       else
00930                         if (p[offset10] < c_b)
00931                         if (p[offset11] < c_b)
00932                           goto success_structured;
00933                         else
00934                           goto homogeneous;
00935                         else
00936                         goto homogeneous;
00937                       else
00938                       goto homogeneous;
00939                     else
00940                       goto homogeneous;
00941                   else
00942                     if (p[offset1] < c_b)
00943                     if (p[offset11] < c_b)
00944                       if (p[offset3] < c_b)
00945                       if (p[offset4] < c_b)
00946                         goto success_homogeneous;
00947                       else
00948                         if (p[offset10] < c_b)
00949                         goto success_homogeneous;
00950                         else
00951                         goto homogeneous;
00952                       else
00953                       if (p[offset8] < c_b)
00954                         if (p[offset10] < c_b)
00955                         goto success_homogeneous;
00956                         else
00957                         goto homogeneous;
00958                       else
00959                         goto homogeneous;
00960                     else
00961                       if (p[offset6] < c_b)
00962                       if (p[offset3] < c_b)
00963                         if (p[offset4] < c_b)
00964                         goto success_homogeneous;
00965                         else
00966                         goto homogeneous;
00967                       else
00968                         goto homogeneous;
00969                       else
00970                       goto homogeneous;
00971                     else
00972                     goto homogeneous;
00973                   else
00974                   if (p[offset10] < c_b)
00975                     if (p[offset11] < c_b)
00976                     if (p[offset7] < c_b)
00977                       if (p[offset1] < c_b)
00978                       if (p[offset3] < c_b)
00979                         goto success_homogeneous;
00980                       else
00981                         if (p[offset8] < c_b)
00982                         goto success_homogeneous;
00983                         else
00984                         goto homogeneous;
00985                       else
00986                       if (p[offset6] < c_b)
00987                         if (p[offset8] < c_b)
00988                         goto success_homogeneous;
00989                         else
00990                         goto homogeneous;
00991                       else
00992                         goto homogeneous;
00993                     else
00994                       if (p[offset1] < c_b)
00995                       if (p[offset3] < c_b)
00996                         goto success_homogeneous;
00997                       else
00998                         if (p[offset8] < c_b)
00999                         goto success_homogeneous;
01000                         else
01001                         goto homogeneous;
01002                       else
01003                       goto homogeneous;
01004                     else
01005                     goto homogeneous;
01006                   else
01007                     goto homogeneous;
01008                 else
01009                   if (p[offset9] > cb)
01010                   if (p[offset5] > cb)
01011                     if (p[offset7] > cb)
01012                     if (p[offset1] < c_b)
01013                       if (p[offset4] < c_b)
01014                       if (p[offset10] < c_b)
01015                         if (p[offset3] < c_b)
01016                         if (p[offset11] < c_b)
01017                           goto success_structured;
01018                         else
01019                           goto structured;
01020                         else
01021                         goto homogeneous;
01022                       else
01023                         if (p[offset6] > cb)
01024                         if (p[offset8] > cb)
01025                           if (p[offset11] > cb)
01026                           if (p[offset10] > cb)
01027                             goto success_structured;
01028                           else
01029                             goto structured;
01030                           else
01031                           goto structured;
01032                         else
01033                           goto homogeneous;
01034                         else
01035                         goto homogeneous;
01036                       else
01037                       if (p[offset6] > cb)
01038                         if (p[offset8] > cb)
01039                         if (p[offset10] > cb)
01040                           if (p[offset4] > cb)
01041                           goto success_structured;
01042                           else
01043                           if (p[offset11] > cb)
01044                             goto success_structured;
01045                           else
01046                             goto structured;
01047                         else
01048                           if (p[offset3] > cb)
01049                           if (p[offset4] > cb)
01050                             goto success_structured;
01051                           else
01052                             goto structured;
01053                           else
01054                           goto homogeneous;
01055                         else
01056                         goto homogeneous;
01057                       else
01058                         goto homogeneous;
01059                     else
01060                       if (p[offset6] > cb)
01061                       if (p[offset8] > cb)
01062                         if (p[offset4] > cb)
01063                         if (p[offset3] > cb)
01064                           goto success_structured;
01065                         else
01066                           if (p[offset10] > cb)
01067                           goto success_structured;
01068                           else
01069                           goto homogeneous;
01070                         else
01071                         if (p[offset10] > cb)
01072                           if (p[offset11] > cb)
01073                           goto success_structured;
01074                           else
01075                           goto homogeneous;
01076                         else
01077                           goto homogeneous;
01078                       else
01079                         goto homogeneous;
01080                       else
01081                       goto homogeneous;
01082                     else
01083                     if (p[offset1] < c_b)
01084                       if (p[offset3] < c_b)
01085                       if (p[offset4] < c_b)
01086                         if (p[offset10] < c_b)
01087                         if (p[offset11] < c_b)
01088                           goto success_structured;
01089                         else
01090                           goto homogeneous;
01091                         else
01092                         goto homogeneous;
01093                       else
01094                         goto homogeneous;
01095                       else
01096                       goto homogeneous;
01097                     else
01098                       goto homogeneous;
01099                   else
01100                     if (p[offset3] < c_b)
01101                     if (p[offset4] < c_b)
01102                       if (p[offset5] < c_b)
01103                       if (p[offset7] < c_b)
01104                         if (p[offset1] < c_b)
01105                         if (p[offset6] < c_b)
01106                           goto success_structured;
01107                         else
01108                           if (p[offset11] < c_b)
01109                           goto success_structured;
01110                           else
01111                           goto homogeneous;
01112                         else
01113                         if (p[offset6] < c_b)
01114                           if (p[offset8] < c_b)
01115                           goto success_structured;
01116                           else
01117                           goto homogeneous;
01118                         else
01119                           goto homogeneous;
01120                       else
01121                         if (p[offset1] < c_b)
01122                         if (p[offset6] < c_b)
01123                           goto success_homogeneous;
01124                         else
01125                           if (p[offset11] < c_b)
01126                           goto success_homogeneous;
01127                           else
01128                           goto homogeneous;
01129                         else
01130                         goto homogeneous;
01131                       else
01132                       if (p[offset1] < c_b)
01133                         if (p[offset10] < c_b)
01134                         if (p[offset11] < c_b)
01135                           goto success_homogeneous;
01136                         else
01137                           goto homogeneous;
01138                         else
01139                         goto homogeneous;
01140                       else
01141                         goto homogeneous;
01142                     else
01143                       goto homogeneous;
01144                     else
01145                     goto homogeneous;
01146                   else
01147                   if (p[offset3] < c_b)
01148                     if (p[offset4] < c_b)
01149                     if (p[offset5] < c_b)
01150                       if (p[offset7] < c_b)
01151                       if (p[offset1] < c_b)
01152                         if (p[offset6] < c_b)
01153                         goto success_homogeneous;
01154                         else
01155                         if (p[offset11] < c_b)
01156                           goto success_homogeneous;
01157                         else
01158                           goto homogeneous;
01159                       else
01160                         if (p[offset6] < c_b)
01161                         if (p[offset8] < c_b)
01162                           goto success_homogeneous;
01163                         else
01164                           goto homogeneous;
01165                         else
01166                         goto homogeneous;
01167                       else
01168                       if (p[offset1] < c_b)
01169                         if (p[offset6] < c_b)
01170                         goto success_homogeneous;
01171                         else
01172                         if (p[offset11] < c_b)
01173                           goto success_homogeneous;
01174                         else
01175                           goto homogeneous;
01176                       else
01177                         goto homogeneous;
01178                     else
01179                       if (p[offset1] < c_b)
01180                       if (p[offset10] < c_b)
01181                         if (p[offset11] < c_b)
01182                         goto success_homogeneous;
01183                         else
01184                         goto homogeneous;
01185                       else
01186                         goto homogeneous;
01187                       else
01188                       goto homogeneous;
01189                     else
01190                     goto homogeneous;
01191                   else
01192                     goto homogeneous;
01193                 else
01194                 if (p[offset7] > cb)
01195                   if (p[offset5] > cb)
01196                   if (p[offset2] > cb)
01197                     if (p[offset6] > cb)
01198                     if (p[offset4] > cb)
01199                       if (p[offset3] > cb)
01200                       if (p[offset1] > cb)
01201                         goto success_homogeneous;
01202                       else
01203                         if (p[offset8] > cb)
01204                         goto success_homogeneous;
01205                         else
01206                         goto homogeneous;
01207                       else
01208                       if (p[offset9] > cb)
01209                         if (p[offset8] > cb)
01210                         if (p[offset10] > cb)
01211                           goto success_structured;
01212                         else
01213                           goto homogeneous;
01214                         else
01215                         goto homogeneous;
01216                       else
01217                         goto homogeneous;
01218                     else
01219                       if (p[offset9] > cb)
01220                       if (p[offset8] > cb)
01221                         if (p[offset10] > cb)
01222                         if (p[offset11] > cb)
01223                           goto success_structured;
01224                         else
01225                           goto homogeneous;
01226                         else
01227                         goto homogeneous;
01228                       else
01229                         goto homogeneous;
01230                       else
01231                       goto homogeneous;
01232                     else
01233                     goto homogeneous;
01234                   else
01235                     if (p[offset9] > cb)
01236                     if (p[offset6] > cb)
01237                       if (p[offset8] > cb)
01238                       if (p[offset4] > cb)
01239                         if (p[offset3] > cb)
01240                         goto success_homogeneous;
01241                         else
01242                         if (p[offset10] > cb)
01243                           goto success_homogeneous;
01244                         else
01245                           goto homogeneous;
01246                       else
01247                         if (p[offset10] > cb)
01248                         if (p[offset11] > cb)
01249                           goto success_homogeneous;
01250                         else
01251                           goto homogeneous;
01252                         else
01253                         goto homogeneous;
01254                       else
01255                       goto homogeneous;
01256                     else
01257                       goto homogeneous;
01258                     else
01259                     goto homogeneous;
01260                   else
01261                   goto homogeneous;
01262                 else
01263                   if (p[offset7] < c_b)
01264                   if (p[offset9] < c_b)
01265                     if (p[offset8] < c_b)
01266                     if (p[offset5] < c_b)
01267                       if (p[offset1] < c_b)
01268                       if (p[offset10] < c_b)
01269                         if (p[offset11] < c_b)
01270                         goto success_homogeneous;
01271                         else
01272                         if (p[offset6] < c_b)
01273                           if (p[offset4] < c_b)
01274                           goto success_structured;
01275                           else
01276                           goto homogeneous;
01277                         else
01278                           goto homogeneous;
01279                       else
01280                         if (p[offset6] < c_b)
01281                         if (p[offset3] < c_b)
01282                           if (p[offset4] < c_b)
01283                           goto success_structured;
01284                           else
01285                           goto homogeneous;
01286                         else
01287                           goto homogeneous;
01288                         else
01289                         goto homogeneous;
01290                       else
01291                       if (p[offset6] < c_b)
01292                         if (p[offset4] < c_b)
01293                         if (p[offset3] < c_b)
01294                           goto success_homogeneous;
01295                         else
01296                           if (p[offset10] < c_b)
01297                           goto success_homogeneous;
01298                           else
01299                           goto homogeneous;
01300                         else
01301                         if (p[offset10] < c_b)
01302                           if (p[offset11] < c_b)
01303                           goto success_homogeneous;
01304                           else
01305                           goto homogeneous;
01306                         else
01307                           goto homogeneous;
01308                       else
01309                         goto homogeneous;
01310                     else
01311                       if (p[offset10] < c_b)
01312                       if (p[offset11] < c_b)
01313                         if (p[offset1] < c_b)
01314                         goto success_homogeneous;
01315                         else
01316                         if (p[offset6] < c_b)
01317                           goto success_homogeneous;
01318                         else
01319                           goto homogeneous;
01320                       else
01321                         goto homogeneous;
01322                       else
01323                       goto homogeneous;
01324                     else
01325                     goto homogeneous;
01326                   else
01327                     goto homogeneous;
01328                   else
01329                   goto homogeneous;
01330               else
01331                 if (p[offset5] > cb)
01332                 if (p[offset7] > cb)
01333                   if (p[offset9] > cb)
01334                   if (p[offset6] > cb)
01335                     if (p[offset4] > cb)
01336                     if (p[offset3] > cb)
01337                       if (p[offset8] > cb)
01338                       goto success_homogeneous;
01339                       else
01340                       if (p[offset1] > cb)
01341                         if (p[offset2] > cb)
01342                         goto success_homogeneous;
01343                         else
01344                         goto homogeneous;
01345                       else
01346                         goto homogeneous;
01347                     else
01348                       if (p[offset8] > cb)
01349                       if (p[offset10] > cb)
01350                         goto success_homogeneous;
01351                       else
01352                         goto homogeneous;
01353                       else
01354                       goto homogeneous;
01355                     else
01356                     if (p[offset11] > cb)
01357                       if (p[offset8] > cb)
01358                       if (p[offset10] > cb)
01359                         goto success_homogeneous;
01360                       else
01361                         goto homogeneous;
01362                       else
01363                       goto homogeneous;
01364                     else
01365                       goto homogeneous;
01366                   else
01367                     goto homogeneous;
01368                   else
01369                   if (p[offset2] > cb)
01370                     if (p[offset3] > cb)
01371                     if (p[offset4] > cb)
01372                       if (p[offset1] > cb)
01373                       if (p[offset6] > cb)
01374                         goto success_homogeneous;
01375                       else
01376                         goto homogeneous;
01377                       else
01378                       if (p[offset6] > cb)
01379                         if (p[offset8] > cb)
01380                         goto success_homogeneous;
01381                         else
01382                         goto homogeneous;
01383                       else
01384                         goto homogeneous;
01385                     else
01386                       goto homogeneous;
01387                     else
01388                     goto homogeneous;
01389                   else
01390                     goto homogeneous;
01391                 else
01392                   goto homogeneous;
01393                 else
01394                 if (p[offset5] < c_b)
01395                   if (p[offset7] < c_b)
01396                   if (p[offset9] < c_b)
01397                     if (p[offset6] < c_b)
01398                     if (p[offset4] < c_b)
01399                       if (p[offset3] < c_b)
01400                       if (p[offset8] < c_b)
01401                         goto success_homogeneous;
01402                       else
01403                         if (p[offset1] < c_b)
01404                         if (p[offset2] < c_b)
01405                           goto success_homogeneous;
01406                         else
01407                           goto homogeneous;
01408                         else
01409                         goto homogeneous;
01410                       else
01411                       if (p[offset8] < c_b)
01412                         if (p[offset10] < c_b)
01413                         goto success_homogeneous;
01414                         else
01415                         goto homogeneous;
01416                       else
01417                         goto homogeneous;
01418                     else
01419                       if (p[offset11] < c_b)
01420                       if (p[offset8] < c_b)
01421                         if (p[offset10] < c_b)
01422                         goto success_homogeneous;
01423                         else
01424                         goto homogeneous;
01425                       else
01426                         goto homogeneous;
01427                       else
01428                       goto homogeneous;
01429                     else
01430                     goto homogeneous;
01431                   else
01432                     if (p[offset2] < c_b)
01433                     if (p[offset3] < c_b)
01434                       if (p[offset4] < c_b)
01435                       if (p[offset1] < c_b)
01436                         if (p[offset6] < c_b)
01437                         goto success_homogeneous;
01438                         else
01439                         goto homogeneous;
01440                       else
01441                         if (p[offset6] < c_b)
01442                         if (p[offset8] < c_b)
01443                           goto success_homogeneous;
01444                         else
01445                           goto homogeneous;
01446                         else
01447                         goto homogeneous;
01448                       else
01449                       goto homogeneous;
01450                     else
01451                       goto homogeneous;
01452                     else
01453                     goto homogeneous;
01454                   else
01455                   goto homogeneous;
01456                 else
01457                   goto homogeneous;
01458             }
01459       }
01460       structured:
01461       {
01462             x++;      
01463             if (x > width_b)  
01464               break;    
01465             else
01466             {
01467               register const T1* const p = im + y * width + x;
01468               register const T2 cb = *p + T2 (threshold);
01469               register const T2 c_b = *p - T2 (threshold);
01470               if (p[offset0] > cb)
01471                 if (p[offset2] > cb)
01472                 if (p[offset5] > cb)
01473                   if (p[offset9] > cb)
01474                   if (p[offset7] > cb)
01475                     if (p[offset1] > cb)
01476                     if (p[offset6] > cb)
01477                       if (p[offset3] > cb)
01478                       if (p[offset4] > cb)
01479                         goto success_structured;
01480                       else
01481                         if (p[offset10] > cb)
01482                         if (p[offset11] > cb)
01483                           goto success_structured;
01484                         else
01485                           goto structured;
01486                         else
01487                         goto structured;
01488                       else
01489                       if (p[offset8] > cb)
01490                         if (p[offset10] > cb)
01491                         if (p[offset4] > cb)
01492                           goto success_structured;
01493                         else
01494                           if (p[offset11] > cb)
01495                           goto success_structured;
01496                           else
01497                           goto structured;
01498                         else
01499                         goto structured;
01500                       else
01501                         goto structured;
01502                     else
01503                       if (p[offset11] > cb)
01504                       if (p[offset3] > cb)
01505                         if (p[offset4] > cb)
01506                         goto success_structured;
01507                         else
01508                         if (p[offset10] > cb)
01509                           goto success_structured;
01510                         else
01511                           goto structured;
01512                       else
01513                         if (p[offset8] > cb)
01514                         if (p[offset10] > cb)
01515                           goto success_structured;
01516                         else
01517                           goto structured;
01518                         else
01519                         goto structured;
01520                       else
01521                       goto structured;
01522                     else
01523                     if (p[offset6] > cb)
01524                       if (p[offset8] > cb)
01525                       if (p[offset4] > cb)
01526                         if (p[offset3] > cb)
01527                         goto success_structured;
01528                         else
01529                         if (p[offset10] > cb)
01530                           goto success_structured;
01531                         else
01532                           goto structured;
01533                       else
01534                         if (p[offset10] > cb)
01535                         if (p[offset11] > cb)
01536                           goto success_structured;
01537                         else
01538                           goto structured;
01539                         else
01540                         goto structured;
01541                       else
01542                       goto structured;
01543                     else
01544                       goto structured;
01545                   else
01546                     if (p[offset1] > cb)
01547                     if (p[offset11] > cb)
01548                       if (p[offset3] > cb)
01549                       if (p[offset4] > cb)
01550                         goto success_structured;
01551                       else
01552                         if (p[offset10] > cb)
01553                         goto success_structured;
01554                         else
01555                         goto structured;
01556                       else
01557                       if (p[offset8] > cb)
01558                         if (p[offset10] > cb)
01559                         goto success_structured;
01560                         else
01561                         goto structured;
01562                       else
01563                         goto structured;
01564                     else
01565                       if (p[offset6] > cb)
01566                       if (p[offset3] > cb)
01567                         if (p[offset4] > cb)
01568                         goto success_structured;
01569                         else
01570                         goto structured;
01571                       else
01572                         goto structured;
01573                       else
01574                       goto structured;
01575                     else
01576                     goto structured;
01577                   else
01578                   if (p[offset3] > cb)
01579                     if (p[offset4] > cb)
01580                     if (p[offset7] > cb)
01581                       if (p[offset1] > cb)
01582                       if (p[offset6] > cb)
01583                         goto success_structured;
01584                       else
01585                         if (p[offset11] > cb)
01586                         goto success_structured;
01587                         else
01588                         goto structured;
01589                       else
01590                       if (p[offset6] > cb)
01591                         if (p[offset8] > cb)
01592                         goto success_structured;
01593                         else
01594                         goto structured;
01595                       else
01596                         goto structured;
01597                     else
01598                       if (p[offset1] > cb)
01599                       if (p[offset6] > cb)
01600                         goto success_structured;
01601                       else
01602                         if (p[offset11] > cb)
01603                         goto success_structured;
01604                         else
01605                         goto structured;
01606                       else
01607                       goto structured;
01608                     else
01609                     goto structured;
01610                   else
01611                     goto structured;
01612                 else
01613                   if (p[offset7] < c_b)
01614                   if (p[offset9] < c_b)
01615                     if (p[offset5] < c_b)
01616                     if (p[offset1] > cb)
01617                       if (p[offset4] > cb)
01618                       if (p[offset10] > cb)
01619                         if (p[offset3] > cb)
01620                         if (p[offset11] > cb)
01621                           goto success_structured;
01622                         else
01623                           goto structured;
01624                         else
01625                         goto structured;
01626                       else
01627                         if (p[offset6] < c_b)
01628                         if (p[offset8] < c_b)
01629                           if (p[offset11] < c_b)
01630                           if (p[offset10] < c_b)
01631                             goto success_structured;
01632                           else
01633                             goto structured;
01634                           else
01635                           goto structured;
01636                         else
01637                           goto structured;
01638                         else
01639                         goto structured;
01640                       else
01641                       if (p[offset6] < c_b)
01642                         if (p[offset8] < c_b)
01643                         if (p[offset10] < c_b)
01644                           if (p[offset4] < c_b)
01645                           goto success_structured;
01646                           else
01647                           if (p[offset11] < c_b)
01648                             goto success_structured;
01649                           else
01650                             goto structured;
01651                         else
01652                           if (p[offset3] < c_b)
01653                           if (p[offset4] < c_b)
01654                             goto success_structured;
01655                           else
01656                             goto structured;
01657                           else
01658                           goto structured;
01659                         else
01660                         goto structured;
01661                       else
01662                         goto structured;
01663                     else
01664                       if (p[offset6] < c_b)
01665                       if (p[offset8] < c_b)
01666                         if (p[offset4] < c_b)
01667                         if (p[offset3] < c_b)
01668                           goto success_structured;
01669                         else
01670                           if (p[offset10] < c_b)
01671                           goto success_structured;
01672                           else
01673                           goto structured;
01674                         else
01675                         if (p[offset10] < c_b)
01676                           if (p[offset11] < c_b)
01677                           goto success_structured;
01678                           else
01679                           goto structured;
01680                         else
01681                           goto structured;
01682                       else
01683                         goto structured;
01684                       else
01685                       goto structured;
01686                     else
01687                     if (p[offset1] > cb)
01688                       if (p[offset3] > cb)
01689                       if (p[offset4] > cb)
01690                         if (p[offset10] > cb)
01691                         if (p[offset11] > cb)
01692                           goto success_structured;
01693                         else
01694                           goto structured;
01695                         else
01696                         goto structured;
01697                       else
01698                         goto structured;
01699                       else
01700                       goto structured;
01701                     else
01702                       goto structured;
01703                   else
01704                     if (p[offset10] > cb)
01705                     if (p[offset11] > cb)
01706                       if (p[offset9] > cb)
01707                       if (p[offset1] > cb)
01708                         if (p[offset3] > cb)
01709                         goto success_structured;
01710                         else
01711                         if (p[offset8] > cb)
01712                           goto success_structured;
01713                         else
01714                           goto structured;
01715                       else
01716                         goto structured;
01717                       else
01718                       if (p[offset1] > cb)
01719                         if (p[offset3] > cb)
01720                         if (p[offset4] > cb)
01721                           goto success_structured;
01722                         else
01723                           goto structured;
01724                         else
01725                         goto structured;
01726                       else
01727                         goto structured;
01728                     else
01729                       goto structured;
01730                     else
01731                     goto structured;
01732                   else
01733                   if (p[offset10] > cb)
01734                     if (p[offset11] > cb)
01735                     if (p[offset9] > cb)
01736                       if (p[offset1] > cb)
01737                       if (p[offset3] > cb)
01738                         goto success_structured;
01739                       else
01740                         if (p[offset8] > cb)
01741                         goto success_structured;
01742                         else
01743                         goto structured;
01744                       else
01745                       if (p[offset6] > cb)
01746                         if (p[offset8] > cb)
01747                         if (p[offset7] > cb)
01748                           goto success_structured;
01749                         else
01750                           goto structured;
01751                         else
01752                         goto structured;
01753                       else
01754                         goto structured;
01755                     else
01756                       if (p[offset1] > cb)
01757                       if (p[offset3] > cb)
01758                         if (p[offset4] > cb)
01759                         goto success_structured;
01760                         else
01761                         goto structured;
01762                       else
01763                         goto structured;
01764                       else
01765                       goto structured;
01766                     else
01767                     goto structured;
01768                   else
01769                     goto structured;
01770                 else
01771                 if (p[offset7] > cb)
01772                   if (p[offset9] > cb)
01773                   if (p[offset8] > cb)
01774                     if (p[offset5] > cb)
01775                     if (p[offset1] > cb)
01776                       if (p[offset10] > cb)
01777                       if (p[offset11] > cb)
01778                         goto success_structured;
01779                       else
01780                         if (p[offset6] > cb)
01781                         if (p[offset4] > cb)
01782                           goto success_structured;
01783                         else
01784                           goto structured;
01785                         else
01786                         goto structured;
01787                       else
01788                       if (p[offset6] > cb)
01789                         if (p[offset3] > cb)
01790                         if (p[offset4] > cb)
01791                           goto success_structured;
01792                         else
01793                           goto structured;
01794                         else
01795                         goto structured;
01796                       else
01797                         goto structured;
01798                     else
01799                       if (p[offset6] > cb)
01800                       if (p[offset4] > cb)
01801                         if (p[offset3] > cb)
01802                         goto success_structured;
01803                         else
01804                         if (p[offset10] > cb)
01805                           goto success_structured;
01806                         else
01807                           goto structured;
01808                       else
01809                         if (p[offset10] > cb)
01810                         if (p[offset11] > cb)
01811                           goto success_structured;
01812                         else
01813                           goto structured;
01814                         else
01815                         goto structured;
01816                       else
01817                       goto structured;
01818                     else
01819                     if (p[offset10] > cb)
01820                       if (p[offset11] > cb)
01821                       if (p[offset1] > cb)
01822                         goto success_structured;
01823                       else
01824                         if (p[offset6] > cb)
01825                         goto success_structured;
01826                         else
01827                         goto structured;
01828                       else
01829                       goto structured;
01830                     else
01831                       goto structured;
01832                   else
01833                     goto structured;
01834                   else
01835                   goto structured;
01836                 else
01837                   if (p[offset7] < c_b)
01838                   if (p[offset5] < c_b)
01839                     if (p[offset2] < c_b)
01840                     if (p[offset6] < c_b)
01841                       if (p[offset4] < c_b)
01842                       if (p[offset3] < c_b)
01843                         if (p[offset1] < c_b)
01844                         goto success_structured;
01845                         else
01846                         if (p[offset8] < c_b)
01847                           goto success_structured;
01848                         else
01849                           goto structured;
01850                       else
01851                         if (p[offset9] < c_b)
01852                         if (p[offset8] < c_b)
01853                           if (p[offset10] < c_b)
01854                           goto success_structured;
01855                           else
01856                           goto structured;
01857                         else
01858                           goto structured;
01859                         else
01860                         goto structured;
01861                       else
01862                       if (p[offset9] < c_b)
01863                         if (p[offset8] < c_b)
01864                         if (p[offset10] < c_b)
01865                           if (p[offset11] < c_b)
01866                           goto success_structured;
01867                           else
01868                           goto structured;
01869                         else
01870                           goto structured;
01871                         else
01872                         goto structured;
01873                       else
01874                         goto structured;
01875                     else
01876                       goto structured;
01877                     else
01878                     if (p[offset9] < c_b)
01879                       if (p[offset6] < c_b)
01880                       if (p[offset8] < c_b)
01881                         if (p[offset4] < c_b)
01882                         if (p[offset3] < c_b)
01883                           goto success_structured;
01884                         else
01885                           if (p[offset10] < c_b)
01886                           goto success_structured;
01887                           else
01888                           goto structured;
01889                         else
01890                         if (p[offset10] < c_b)
01891                           if (p[offset11] < c_b)
01892                           goto success_structured;
01893                           else
01894                           goto structured;
01895                         else
01896                           goto structured;
01897                       else
01898                         goto structured;
01899                       else
01900                       goto structured;
01901                     else
01902                       goto structured;
01903                   else
01904                     goto structured;
01905                   else
01906                   goto structured;
01907               else if (p[offset0] < c_b)
01908                 if (p[offset2] < c_b)
01909                 if (p[offset11] < c_b)
01910                   if (p[offset3] < c_b)
01911                   if (p[offset5] < c_b)
01912                     if (p[offset9] < c_b)
01913                     if (p[offset7] < c_b)
01914                       if (p[offset1] < c_b)
01915                       if (p[offset4] < c_b)
01916                         goto success_structured;
01917                       else
01918                         if (p[offset10] < c_b)
01919                         goto success_structured;
01920                         else
01921                         goto structured;
01922                       else
01923                       if (p[offset6] < c_b)
01924                         if (p[offset8] < c_b)
01925                         if (p[offset4] < c_b)
01926                           goto success_structured;
01927                         else
01928                           if (p[offset10] < c_b)
01929                           goto success_structured;
01930                           else
01931                           goto structured;
01932                         else
01933                         goto structured;
01934                       else
01935                         goto structured;
01936                     else
01937                       if (p[offset1] < c_b)
01938                       if (p[offset4] < c_b)
01939                         goto success_structured;
01940                       else
01941                         if (p[offset10] < c_b)
01942                         goto success_structured;
01943                         else
01944                         goto structured;
01945                       else
01946                       goto structured;
01947                     else
01948                     if (p[offset4] < c_b)
01949                       if (p[offset7] < c_b)
01950                       if (p[offset1] < c_b)
01951                         goto success_structured;
01952                       else
01953                         if (p[offset6] < c_b)
01954                         if (p[offset8] < c_b)
01955                           goto success_structured;
01956                         else
01957                           goto structured;
01958                         else
01959                         goto structured;
01960                       else
01961                       if (p[offset1] < c_b)
01962                         goto success_structured;
01963                       else
01964                         goto structured;
01965                     else
01966                       goto structured;
01967                   else
01968                     if (p[offset10] < c_b)
01969                     if (p[offset9] < c_b)
01970                       if (p[offset7] < c_b)
01971                       if (p[offset1] < c_b)
01972                         goto success_structured;
01973                       else
01974                         if (p[offset6] < c_b)
01975                         if (p[offset8] < c_b)
01976                           goto success_structured;
01977                         else
01978                           goto structured;
01979                         else
01980                         goto structured;
01981                       else
01982                       if (p[offset1] < c_b)
01983                         goto success_structured;
01984                       else
01985                         goto structured;
01986                     else
01987                       if (p[offset1] < c_b)
01988                       if (p[offset4] < c_b)
01989                         goto success_structured;
01990                       else
01991                         goto structured;
01992                       else
01993                       goto structured;
01994                     else
01995                     if (p[offset7] > cb)
01996                       if (p[offset9] > cb)
01997                       if (p[offset5] > cb)
01998                         if (p[offset4] > cb)
01999                         if (p[offset6] > cb)
02000                           if (p[offset8] > cb)
02001                           if (p[offset10] > cb)
02002                             goto success_structured;
02003                           else
02004                             goto structured;
02005                           else
02006                           goto structured;
02007                         else
02008                           goto structured;
02009                         else
02010                         goto structured;
02011                       else
02012                         goto structured;
02013                       else
02014                       goto structured;
02015                     else
02016                       goto structured;
02017                   else
02018                   if (p[offset9] < c_b)
02019                     if (p[offset8] < c_b)
02020                     if (p[offset10] < c_b)
02021                       if (p[offset7] < c_b)
02022                       if (p[offset1] < c_b)
02023                         goto success_structured;
02024                       else
02025                         if (p[offset6] < c_b)
02026                         goto success_structured;
02027                         else
02028                         goto structured;
02029                       else
02030                       if (p[offset1] < c_b)
02031                         goto success_structured;
02032                       else
02033                         goto structured;
02034                     else
02035                       goto structured;
02036                     else
02037                     goto structured;
02038                   else
02039                     if (p[offset5] > cb)
02040                     if (p[offset7] > cb)
02041                       if (p[offset9] > cb)
02042                       if (p[offset4] > cb)
02043                         if (p[offset6] > cb)
02044                         if (p[offset8] > cb)
02045                           if (p[offset3] > cb)
02046                           goto success_structured;
02047                           else
02048                           if (p[offset10] > cb)
02049                             goto success_structured;
02050                           else
02051                             goto structured;
02052                         else
02053                           goto structured;
02054                         else
02055                         goto structured;
02056                       else
02057                         goto structured;
02058                       else
02059                       goto structured;
02060                     else
02061                       goto structured;
02062                     else
02063                     goto structured;
02064                 else
02065                   if (p[offset4] < c_b)
02066                   if (p[offset5] < c_b)
02067                     if (p[offset7] < c_b)
02068                     if (p[offset6] < c_b)
02069                       if (p[offset3] < c_b)
02070                       if (p[offset1] < c_b)
02071                         goto success_structured;
02072                       else
02073                         if (p[offset8] < c_b)
02074                         goto success_structured;
02075                         else
02076                         goto structured;
02077                       else
02078                       if (p[offset9] < c_b)
02079                         if (p[offset8] < c_b)
02080                         if (p[offset10] < c_b)
02081                           goto success_structured;
02082                         else
02083                           goto structured;
02084                         else
02085                         goto structured;
02086                       else
02087                         goto structured;
02088                     else
02089                       goto structured;
02090                     else
02091                     if (p[offset1] < c_b)
02092                       if (p[offset6] < c_b)
02093                       if (p[offset3] < c_b)
02094                         goto success_structured;
02095                       else
02096                         goto structured;
02097                       else
02098                       goto structured;
02099                     else
02100                       goto structured;
02101                   else
02102                     if (p[offset7] > cb)
02103                     if (p[offset9] > cb)
02104                       if (p[offset5] > cb)
02105                       if (p[offset6] > cb)
02106                         if (p[offset8] > cb)
02107                         if (p[offset10] > cb)
02108                           if (p[offset11] > cb)
02109                           goto success_structured;
02110                           else
02111                           goto structured;
02112                         else
02113                           goto structured;
02114                         else
02115                         goto structured;
02116                       else
02117                         goto structured;
02118                       else
02119                       goto structured;
02120                     else
02121                       goto structured;
02122                     else
02123                     goto structured;
02124                   else
02125                   if (p[offset5] > cb)
02126                     if (p[offset7] > cb)
02127                     if (p[offset9] > cb)
02128                       if (p[offset6] > cb)
02129                       if (p[offset8] > cb)
02130                         if (p[offset10] > cb)
02131                         if (p[offset4] > cb)
02132                           goto success_structured;
02133                         else
02134                           if (p[offset11] > cb)
02135                           goto success_structured;
02136                           else
02137                           goto homogeneous;
02138                         else
02139                         if (p[offset3] > cb)
02140                           if (p[offset4] > cb)
02141                           goto success_structured;
02142                           else
02143                           goto structured;
02144                         else
02145                           goto structured;
02146                       else
02147                         goto structured;
02148                       else
02149                       goto structured;
02150                     else
02151                       goto structured;
02152                     else
02153                     goto structured;
02154                   else
02155                     goto structured;
02156                 else
02157                 if (p[offset7] > cb)
02158                   if (p[offset5] > cb)
02159                   if (p[offset2] > cb)
02160                     if (p[offset6] > cb)
02161                     if (p[offset4] > cb)
02162                       if (p[offset3] > cb)
02163                       if (p[offset1] > cb)
02164                         goto success_structured;
02165                       else
02166                         if (p[offset8] > cb)
02167                         goto success_structured;
02168                         else
02169                         goto structured;
02170                       else
02171                       if (p[offset9] > cb)
02172                         if (p[offset8] > cb)
02173                         if (p[offset10] > cb)
02174                           goto success_structured;
02175                         else
02176                           goto structured;
02177                         else
02178                         goto structured;
02179                       else
02180                         goto structured;
02181                     else
02182                       if (p[offset9] > cb)
02183                       if (p[offset8] > cb)
02184                         if (p[offset10] > cb)
02185                         if (p[offset11] > cb)
02186                           goto success_structured;
02187                         else
02188                           goto structured;
02189                         else
02190                         goto structured;
02191                       else
02192                         goto structured;
02193                       else
02194                       goto structured;
02195                     else
02196                     goto structured;
02197                   else
02198                     if (p[offset9] > cb)
02199                     if (p[offset6] > cb)
02200                       if (p[offset8] > cb)
02201                       if (p[offset4] > cb)
02202                         if (p[offset3] > cb)
02203                         goto success_structured;
02204                         else
02205                         if (p[offset10] > cb)
02206                           goto success_structured;
02207                         else
02208                           goto structured;
02209                       else
02210                         if (p[offset10] > cb)
02211                         if (p[offset11] > cb)
02212                           goto success_structured;
02213                         else
02214                           goto structured;
02215                         else
02216                         goto structured;
02217                       else
02218                       goto structured;
02219                     else
02220                       goto structured;
02221                     else
02222                     goto structured;
02223                   else
02224                   goto structured;
02225                 else
02226                   if (p[offset7] < c_b)
02227                   if (p[offset9] < c_b)
02228                     if (p[offset8] < c_b)
02229                     if (p[offset5] < c_b)
02230                       if (p[offset1] < c_b)
02231                       if (p[offset10] < c_b)
02232                         if (p[offset11] < c_b)
02233                         goto success_structured;
02234                         else
02235                         if (p[offset6] < c_b)
02236                           if (p[offset4] < c_b)
02237                           goto success_structured;
02238                           else
02239                           goto structured;
02240                         else
02241                           goto structured;
02242                       else
02243                         if (p[offset6] < c_b)
02244                         if (p[offset3] < c_b)
02245                           if (p[offset4] < c_b)
02246                           goto success_structured;
02247                           else
02248                           goto structured;
02249                         else
02250                           goto structured;
02251                         else
02252                         goto structured;
02253                       else
02254                       if (p[offset6] < c_b)
02255                         if (p[offset4] < c_b)
02256                         if (p[offset3] < c_b)
02257                           goto success_structured;
02258                         else
02259                           if (p[offset10] < c_b)
02260                           goto success_structured;
02261                           else
02262                           goto structured;
02263                         else
02264                         if (p[offset10] < c_b)
02265                           if (p[offset11] < c_b)
02266                           goto success_structured;
02267                           else
02268                           goto structured;
02269                         else
02270                           goto structured;
02271                       else
02272                         goto structured;
02273                     else
02274                       if (p[offset10] < c_b)
02275                       if (p[offset11] < c_b)
02276                         if (p[offset1] < c_b)
02277                         goto success_structured;
02278                         else
02279                         if (p[offset6] < c_b)
02280                           goto success_structured;
02281                         else
02282                           goto structured;
02283                       else
02284                         goto structured;
02285                       else
02286                       goto structured;
02287                     else
02288                     goto structured;
02289                   else
02290                     goto structured;
02291                   else
02292                   goto structured;
02293               else
02294                 if (p[offset5] > cb)
02295                 if (p[offset7] > cb)
02296                   if (p[offset9] > cb)
02297                   if (p[offset6] > cb)
02298                     if (p[offset4] > cb)
02299                     if (p[offset3] > cb)
02300                       if (p[offset8] > cb)
02301                       goto success_structured;
02302                       else
02303                       if (p[offset1] > cb)
02304                         if (p[offset2] > cb)
02305                         goto success_structured;
02306                         else
02307                         goto structured;
02308                       else
02309                         goto structured;
02310                     else
02311                       if (p[offset8] > cb)
02312                       if (p[offset10] > cb)
02313                         goto success_structured;
02314                       else
02315                         goto structured;
02316                       else
02317                       goto structured;
02318                     else
02319                     if (p[offset11] > cb)
02320                       if (p[offset8] > cb)
02321                       if (p[offset10] > cb)
02322                         goto success_structured;
02323                       else
02324                         goto structured;
02325                       else
02326                       goto structured;
02327                     else
02328                       goto structured;
02329                   else
02330                     goto structured;
02331                   else
02332                   if (p[offset2] > cb)
02333                     if (p[offset3] > cb)
02334                     if (p[offset4] > cb)
02335                       if (p[offset1] > cb)
02336                       if (p[offset6] > cb)
02337                         goto success_structured;
02338                       else
02339                         goto structured;
02340                       else
02341                       if (p[offset6] > cb)
02342                         if (p[offset8] > cb)
02343                         goto success_structured;
02344                         else
02345                         goto structured;
02346                       else
02347                         goto structured;
02348                     else
02349                       goto structured;
02350                     else
02351                     goto structured;
02352                   else
02353                     goto structured;
02354                 else
02355                   goto structured;
02356                 else
02357                 if (p[offset5] < c_b)
02358                   if (p[offset7] < c_b)
02359                   if (p[offset9] < c_b)
02360                     if (p[offset6] < c_b)
02361                     if (p[offset4] < c_b)
02362                       if (p[offset3] < c_b)
02363                       if (p[offset8] < c_b)
02364                         goto success_structured;
02365                       else
02366                         if (p[offset1] < c_b)
02367                         if (p[offset2] < c_b)
02368                           goto success_structured;
02369                         else
02370                           goto structured;
02371                         else
02372                         goto structured;
02373                       else
02374                       if (p[offset8] < c_b)
02375                         if (p[offset10] < c_b)
02376                         goto success_structured;
02377                         else
02378                         goto structured;
02379                       else
02380                         goto structured;
02381                     else
02382                       if (p[offset11] < c_b)
02383                       if (p[offset8] < c_b)
02384                         if (p[offset10] < c_b)
02385                         goto success_structured;
02386                         else
02387                         goto structured;
02388                       else
02389                         goto structured;
02390                       else
02391                       goto structured;
02392                     else
02393                     goto structured;
02394                   else
02395                     if (p[offset2] < c_b)
02396                     if (p[offset3] < c_b)
02397                       if (p[offset4] < c_b)
02398                       if (p[offset1] < c_b)
02399                         if (p[offset6] < c_b)
02400                         goto success_structured;
02401                         else
02402                         goto structured;
02403                       else
02404                         if (p[offset6] < c_b)
02405                         if (p[offset8] < c_b)
02406                           goto success_structured;
02407                         else
02408                           goto structured;
02409                         else
02410                         goto structured;
02411                       else
02412                       goto structured;
02413                     else
02414                       goto structured;
02415                     else
02416                     goto structured;
02417                   else
02418                   goto structured;
02419                 else
02420                   goto homogeneous;
02421             }
02422       }
02423       success_homogeneous:
02424             if (total == n_expected_corners)
02425             {
02426               if (n_expected_corners == 0)
02427               {
02428                 n_expected_corners = 512;
02429                 corners.reserve (n_expected_corners);
02430               }
02431               else
02432               {
02433                 n_expected_corners *= 2;
02434                 corners.reserve (n_expected_corners);
02435               }
02436             }
02437             h.u = float (x);
02438             h.v = float (y);
02439             corners.push_back (h);
02440             total++;
02441             goto homogeneous;
02442       success_structured:
02443             if (total == n_expected_corners)
02444             {
02445               if (n_expected_corners == 0)
02446               {
02447                 n_expected_corners = 512;
02448                 corners.reserve (n_expected_corners);
02449               }
02450               else
02451               {
02452                 n_expected_corners *= 2;
02453                 corners.reserve (n_expected_corners);
02454               }
02455             }
02456             h.u = float (x);
02457             h.v = float (y);
02458             corners.push_back (h);
02459             total++;            
02460             goto structured;        
02461           }                  
02462         }                    
02463       }
02464 
02466       // Helper method for AgastDetector7_12s::computeCornerScore
02467       template <typename T1, typename T2> int
02468       AgastDetector7_12s_computeCornerScore (
02469           const T1* p,
02470           double im_bmax,
02471           double score_threshold,
02472           int_fast16_t s_offset0,
02473           int_fast16_t s_offset1,
02474           int_fast16_t s_offset2,
02475           int_fast16_t s_offset3,
02476           int_fast16_t s_offset4,
02477           int_fast16_t s_offset5,
02478           int_fast16_t s_offset6,
02479           int_fast16_t s_offset7,
02480           int_fast16_t s_offset8,
02481           int_fast16_t s_offset9,
02482           int_fast16_t s_offset10,
02483           int_fast16_t s_offset11)
02484       {
02485         T2 bmin = T2 (score_threshold);
02486         T2 bmax = T2 (im_bmax); // 255;
02487         int b_test = int ((bmax + bmin) / 2);
02488 
02489         register int_fast16_t offset0  = s_offset0;
02490         register int_fast16_t offset1  = s_offset1;
02491         register int_fast16_t offset2  = s_offset2;
02492         register int_fast16_t offset3  = s_offset3;
02493         register int_fast16_t offset4  = s_offset4;
02494         register int_fast16_t offset5  = s_offset5;
02495         register int_fast16_t offset6  = s_offset6;
02496         register int_fast16_t offset7  = s_offset7;
02497         register int_fast16_t offset8  = s_offset8;
02498         register int_fast16_t offset9  = s_offset9;
02499         register int_fast16_t offset10 = s_offset10;
02500         register int_fast16_t offset11 = s_offset11;
02501 
02502         while (1)
02503         {
02504           register const T2 cb = *p + T2 (b_test);
02505           register const T2 c_b = *p - T2 (b_test);
02506           if (p[offset0] > cb)
02507             if (p[offset5] > cb)
02508               if (p[offset2] < c_b)
02509                 if (p[offset7] > cb)
02510                   if (p[offset9] < c_b)
02511                     goto is_not_a_corner;
02512                   else
02513                     if (p[offset9] > cb)
02514                       if (p[offset1] < c_b)
02515                         if (p[offset6] < c_b)
02516                           goto is_not_a_corner;
02517                         else
02518                           if (p[offset6] > cb)
02519                             if (p[offset8] > cb)
02520                               if (p[offset4] > cb)
02521                                 if (p[offset3] > cb)
02522                                   goto is_a_corner;
02523                                 else
02524                                   if (p[offset10] > cb)
02525                                     goto is_a_corner;
02526                                   else
02527                                     goto is_not_a_corner;
02528                               else
02529                                 if (p[offset10] > cb)
02530                                   if (p[offset11] > cb)
02531                                     goto is_a_corner;
02532                                   else
02533                                     goto is_not_a_corner;
02534                                 else
02535                                   goto is_not_a_corner;
02536                             else
02537                               goto is_not_a_corner;
02538                           else
02539                             goto is_not_a_corner;
02540                       else
02541                         if (p[offset1] > cb)
02542                           if (p[offset6] < c_b)
02543                             if (p[offset8] > cb)
02544                               if (p[offset10] > cb)
02545                                 if (p[offset11] > cb)
02546                                   goto is_a_corner;
02547                                 else
02548                                   goto is_not_a_corner;
02549                               else
02550                                 goto is_not_a_corner;
02551                             else
02552                               goto is_not_a_corner;
02553                           else
02554                             if (p[offset6] > cb)
02555                               if (p[offset8] > cb)
02556                                 if (p[offset4] > cb)
02557                                   if (p[offset3] > cb)
02558                                     goto is_a_corner;
02559                                   else
02560                                     if (p[offset10] > cb)
02561                                       goto is_a_corner;
02562                                     else
02563                                       goto is_not_a_corner;
02564                                 else
02565                                   if (p[offset10] > cb)
02566                                     if (p[offset11] > cb)
02567                                       goto is_a_corner;
02568                                     else
02569                                       goto is_not_a_corner;
02570                                   else
02571                                     goto is_not_a_corner;
02572                               else
02573                                 goto is_not_a_corner;
02574                             else
02575                               if (p[offset8] > cb)
02576                                 if (p[offset10] > cb)
02577                                   if (p[offset11] > cb)
02578                                     goto is_a_corner;
02579                                   else
02580                                     goto is_not_a_corner;
02581                                 else
02582                                   goto is_not_a_corner;
02583                               else
02584                                 goto is_not_a_corner;
02585                         else
02586                           if (p[offset6] < c_b)
02587                             goto is_not_a_corner;
02588                           else
02589                             if (p[offset6] > cb)
02590                               if (p[offset8] > cb)
02591                                 if (p[offset4] > cb)
02592                                   if (p[offset3] > cb)
02593                                     goto is_a_corner;
02594                                   else
02595                                     if (p[offset10] > cb)
02596                                       goto is_a_corner;
02597                                     else
02598                                       goto is_not_a_corner;
02599                                 else
02600                                   if (p[offset10] > cb)
02601                                     if (p[offset11] > cb)
02602                                       goto is_a_corner;
02603                                     else
02604                                       goto is_not_a_corner;
02605                                   else
02606                                     goto is_not_a_corner;
02607                               else
02608                                 goto is_not_a_corner;
02609                             else
02610                               goto is_not_a_corner;
02611                     else
02612                       goto is_not_a_corner;
02613                 else
02614                   goto is_not_a_corner;
02615               else
02616                 if (p[offset2] > cb)
02617                   if (p[offset7] < c_b)
02618                     if (p[offset9] < c_b)
02619                       if (p[offset1] < c_b)
02620                         goto is_not_a_corner;
02621                       else
02622                         if (p[offset1] > cb)
02623                           if (p[offset6] > cb)
02624                             if (p[offset3] > cb)
02625                               if (p[offset4] > cb)
02626                                 goto is_a_corner;
02627                               else
02628                                 goto is_not_a_corner;
02629                             else
02630                               goto is_not_a_corner;
02631                           else
02632                             if (p[offset6] < c_b)
02633                               if (p[offset3] > cb)
02634                                 if (p[offset4] > cb)
02635                                   if (p[offset11] > cb)
02636                                     goto is_a_corner;
02637                                   else
02638                                     goto is_not_a_corner;
02639                                 else
02640                                   goto is_not_a_corner;
02641                               else
02642                                 goto is_not_a_corner;
02643                             else
02644                               if (p[offset3] > cb)
02645                                 if (p[offset4] > cb)
02646                                   if (p[offset11] > cb)
02647                                     goto is_a_corner;
02648                                   else
02649                                     goto is_not_a_corner;
02650                                 else
02651                                   goto is_not_a_corner;
02652                               else
02653                                 goto is_not_a_corner;
02654                         else
02655                           goto is_not_a_corner;
02656                     else
02657                       if (p[offset9] > cb)
02658                         if (p[offset1] < c_b)
02659                           goto is_not_a_corner;
02660                         else
02661                           if (p[offset1] > cb)
02662                             if (p[offset6] < c_b)
02663                               if (p[offset11] > cb)
02664                                 if (p[offset3] > cb)
02665                                   if (p[offset4] > cb)
02666                                     goto is_a_corner;
02667                                   else
02668                                     if (p[offset10] > cb)
02669                                       goto is_a_corner;
02670                                     else
02671                                       goto is_not_a_corner;
02672                                 else
02673                                   if (p[offset8] > cb)
02674                                     if (p[offset10] > cb)
02675                                       goto is_a_corner;
02676                                     else
02677                                       goto is_not_a_corner;
02678                                   else
02679                                     goto is_not_a_corner;
02680                               else
02681                                 goto is_not_a_corner;
02682                             else
02683                               if (p[offset6] > cb)
02684                                 if (p[offset3] > cb)
02685                                   if (p[offset4] > cb)
02686                                     goto is_a_corner;
02687                                   else
02688                                     if (p[offset10] > cb)
02689                                       if (p[offset11] > cb)
02690                                         goto is_a_corner;
02691                                       else
02692                                         goto is_not_a_corner;
02693                                     else
02694                                       goto is_not_a_corner;
02695                                 else
02696                                   if (p[offset8] > cb)
02697                                     if (p[offset10] > cb)
02698                                       if (p[offset11] > cb)
02699                                         goto is_a_corner;
02700                                       else
02701                                         goto is_not_a_corner;
02702                                     else
02703                                       goto is_not_a_corner;
02704                                   else
02705                                     goto is_not_a_corner;
02706                               else
02707                                 if (p[offset11] > cb)
02708                                   if (p[offset3] > cb)
02709                                     if (p[offset4] > cb)
02710                                       goto is_a_corner;
02711                                     else
02712                                       if (p[offset10] > cb)
02713                                         goto is_a_corner;
02714                                       else
02715                                         goto is_not_a_corner;
02716                                   else
02717                                     if (p[offset8] > cb)
02718                                       if (p[offset10] > cb)
02719                                         goto is_a_corner;
02720                                       else
02721                                         goto is_not_a_corner;
02722                                     else
02723                                       goto is_not_a_corner;
02724                                 else
02725                                   goto is_not_a_corner;
02726                           else
02727                             goto is_not_a_corner;
02728                       else
02729                         if (p[offset1] < c_b)
02730                           goto is_not_a_corner;
02731                         else
02732                           if (p[offset1] > cb)
02733                             if (p[offset6] > cb)
02734                               if (p[offset3] > cb)
02735                                 if (p[offset4] > cb)
02736                                   goto is_a_corner;
02737                                 else
02738                                   goto is_not_a_corner;
02739                               else
02740                                 goto is_not_a_corner;
02741                             else
02742                               if (p[offset6] < c_b)
02743                                 if (p[offset3] > cb)
02744                                   if (p[offset4] > cb)
02745                                     if (p[offset11] > cb)
02746                                       goto is_a_corner;
02747                                     else
02748                                       goto is_not_a_corner;
02749                                   else
02750                                     goto is_not_a_corner;
02751                                 else
02752                                   goto is_not_a_corner;
02753                               else
02754                                 if (p[offset3] > cb)
02755                                   if (p[offset4] > cb)
02756                                     if (p[offset11] > cb)
02757                                       goto is_a_corner;
02758                                     else
02759                                       goto is_not_a_corner;
02760                                   else
02761                                     goto is_not_a_corner;
02762                                 else
02763                                   goto is_not_a_corner;
02764                           else
02765                             goto is_not_a_corner;
02766                   else
02767                     if (p[offset9] < c_b)
02768                       if (p[offset7] > cb)
02769                         if (p[offset1] < c_b)
02770                           if (p[offset6] < c_b)
02771                             goto is_not_a_corner;
02772                           else
02773                             if (p[offset6] > cb)
02774                               if (p[offset3] > cb)
02775                                 if (p[offset4] > cb)
02776                                   if (p[offset8] > cb)
02777                                     goto is_a_corner;
02778                                   else
02779                                     goto is_not_a_corner;
02780                                 else
02781                                   goto is_not_a_corner;
02782                               else
02783                                 goto is_not_a_corner;
02784                             else
02785                               goto is_not_a_corner;
02786                         else
02787                           if (p[offset1] > cb)
02788                             if (p[offset6] > cb)
02789                               if (p[offset3] > cb)
02790                                 if (p[offset4] > cb)
02791                                   goto is_a_corner;
02792                                 else
02793                                   goto is_not_a_corner;
02794                               else
02795                                 goto is_not_a_corner;
02796                             else
02797                               if (p[offset6] < c_b)
02798                                 if (p[offset3] > cb)
02799                                   if (p[offset4] > cb)
02800                                     if (p[offset11] > cb)
02801                                       goto is_a_corner;
02802                                     else
02803                                       goto is_not_a_corner;
02804                                   else
02805                                     goto is_not_a_corner;
02806                                 else
02807                                   goto is_not_a_corner;
02808                               else
02809                                 if (p[offset3] > cb)
02810                                   if (p[offset4] > cb)
02811                                     if (p[offset11] > cb)
02812                                       goto is_a_corner;
02813                                     else
02814                                       goto is_not_a_corner;
02815                                   else
02816                                     goto is_not_a_corner;
02817                                 else
02818                                   goto is_not_a_corner;
02819                           else
02820                             if (p[offset6] < c_b)
02821                               goto is_not_a_corner;
02822                             else
02823                               if (p[offset6] > cb)
02824                                 if (p[offset3] > cb)
02825                                   if (p[offset4] > cb)
02826                                     if (p[offset8] > cb)
02827                                       goto is_a_corner;
02828                                     else
02829                                       goto is_not_a_corner;
02830                                   else
02831                                     goto is_not_a_corner;
02832                                 else
02833                                   goto is_not_a_corner;
02834                               else
02835                                 goto is_not_a_corner;
02836                       else
02837                         if (p[offset1] < c_b)
02838                           goto is_not_a_corner;
02839                         else
02840                           if (p[offset1] > cb)
02841                             if (p[offset6] > cb)
02842                               if (p[offset3] > cb)
02843                                 if (p[offset4] > cb)
02844                                   goto is_a_corner;
02845                                 else
02846                                   goto is_not_a_corner;
02847                               else
02848                                 goto is_not_a_corner;
02849                             else
02850                               if (p[offset6] < c_b)
02851                                 if (p[offset3] > cb)
02852                                   if (p[offset4] > cb)
02853                                     if (p[offset11] > cb)
02854                                       goto is_a_corner;
02855                                     else
02856                                       goto is_not_a_corner;
02857                                   else
02858                                     goto is_not_a_corner;
02859                                 else
02860                                   goto is_not_a_corner;
02861                               else
02862                                 if (p[offset3] > cb)
02863                                   if (p[offset4] > cb)
02864                                     if (p[offset11] > cb)
02865                                       goto is_a_corner;
02866                                     else
02867                                       goto is_not_a_corner;
02868                                   else
02869                                     goto is_not_a_corner;
02870                                 else
02871                                   goto is_not_a_corner;
02872                           else
02873                             goto is_not_a_corner;
02874                     else
02875                       if (p[offset7] > cb)
02876                         if (p[offset9] > cb)
02877                           if (p[offset1] < c_b)
02878                             if (p[offset6] < c_b)
02879                               goto is_not_a_corner;
02880                             else
02881                               if (p[offset6] > cb)
02882                                 if (p[offset8] > cb)
02883                                   if (p[offset4] > cb)
02884                                     if (p[offset3] > cb)
02885                                       goto is_a_corner;
02886                                     else
02887                                       if (p[offset10] > cb)
02888                                         goto is_a_corner;
02889                                       else
02890                                         goto is_not_a_corner;
02891                                   else
02892                                     if (p[offset10] > cb)
02893                                       if (p[offset11] > cb)
02894                                         goto is_a_corner;
02895                                       else
02896                                         goto is_not_a_corner;
02897                                     else
02898                                       goto is_not_a_corner;
02899                                 else
02900                                   goto is_not_a_corner;
02901                               else
02902                                 goto is_not_a_corner;
02903                           else
02904                             if (p[offset1] > cb)
02905                               if (p[offset6] < c_b)
02906                                 if (p[offset11] > cb)
02907                                   if (p[offset3] > cb)
02908                                     if (p[offset4] > cb)
02909                                       goto is_a_corner;
02910                                     else
02911                                       if (p[offset10] > cb)
02912                                         goto is_a_corner;
02913                                       else
02914                                         goto is_not_a_corner;
02915                                   else
02916                                     if (p[offset8] > cb)
02917                                       if (p[offset10] > cb)
02918                                         goto is_a_corner;
02919                                       else
02920                                         goto is_not_a_corner;
02921                                     else
02922                                       goto is_not_a_corner;
02923                                 else
02924                                   goto is_not_a_corner;
02925                               else
02926                                 if (p[offset6] > cb)
02927                                   if (p[offset3] > cb)
02928                                     if (p[offset4] > cb)
02929                                       goto is_a_corner;
02930                                     else
02931                                       if (p[offset10] > cb)
02932                                         if (p[offset11] > cb)
02933                                           goto is_a_corner;
02934                                         else
02935                                           goto is_not_a_corner;
02936                                       else
02937                                         goto is_not_a_corner;
02938                                   else
02939                                     if (p[offset8] > cb)
02940                                       if (p[offset10] > cb)
02941                                         if (p[offset4] > cb)
02942                                           goto is_a_corner;
02943                                         else
02944                                           if (p[offset11] > cb)
02945                                             goto is_a_corner;
02946                                           else
02947                                             goto is_not_a_corner;
02948                                       else
02949                                         goto is_not_a_corner;
02950                                     else
02951                                       goto is_not_a_corner;
02952                                 else
02953                                   if (p[offset11] > cb)
02954                                     if (p[offset3] > cb)
02955                                       if (p[offset4] > cb)
02956                                         goto is_a_corner;
02957                                       else
02958                                         if (p[offset10] > cb)
02959                                           goto is_a_corner;
02960                                         else
02961                                           goto is_not_a_corner;
02962                                     else
02963                                       if (p[offset8] > cb)
02964                                         if (p[offset10] > cb)
02965                                           goto is_a_corner;
02966                                         else
02967                                           goto is_not_a_corner;
02968                                       else
02969                                         goto is_not_a_corner;
02970                                   else
02971                                     goto is_not_a_corner;
02972                             else
02973                               if (p[offset6] < c_b)
02974                                 goto is_not_a_corner;
02975                               else
02976                                 if (p[offset6] > cb)
02977                                   if (p[offset8] > cb)
02978                                     if (p[offset4] > cb)
02979                                       if (p[offset3] > cb)
02980                                         goto is_a_corner;
02981                                       else
02982                                         if (p[offset10] > cb)
02983                                           goto is_a_corner;
02984                                         else
02985                                           goto is_not_a_corner;
02986                                     else
02987                                       if (p[offset10] > cb)
02988                                         if (p[offset11] > cb)
02989                                           goto is_a_corner;
02990                                         else
02991                                           goto is_not_a_corner;
02992                                       else
02993                                         goto is_not_a_corner;
02994                                   else
02995                                     goto is_not_a_corner;
02996                                 else
02997                                   goto is_not_a_corner;
02998                         else
02999                           if (p[offset1] < c_b)
03000                             if (p[offset6] < c_b)
03001                               goto is_not_a_corner;
03002                             else
03003                               if (p[offset6] > cb)
03004                                 if (p[offset3] > cb)
03005                                   if (p[offset4] > cb)
03006                                     if (p[offset8] > cb)
03007                                       goto is_a_corner;
03008                                     else
03009                                       goto is_not_a_corner;
03010                                   else
03011                                     goto is_not_a_corner;
03012                                 else
03013                                   goto is_not_a_corner;
03014                               else
03015                                 goto is_not_a_corner;
03016                           else
03017                             if (p[offset1] > cb)
03018                               if (p[offset6] > cb)
03019                                 if (p[offset3] > cb)
03020                                   if (p[offset4] > cb)
03021                                     goto is_a_corner;
03022                                   else
03023                                     goto is_not_a_corner;
03024                                 else
03025                                   goto is_not_a_corner;
03026                               else
03027                                 if (p[offset6] < c_b)
03028                                   if (p[offset3] > cb)
03029                                     if (p[offset4] > cb)
03030                                       if (p[offset11] > cb)
03031                                         goto is_a_corner;
03032                                       else
03033                                         goto is_not_a_corner;
03034                                     else
03035                                       goto is_not_a_corner;
03036                                   else
03037                                     goto is_not_a_corner;
03038                                 else
03039                                   if (p[offset3] > cb)
03040                                     if (p[offset4] > cb)
03041                                       if (p[offset11] > cb)
03042                                         goto is_a_corner;
03043                                       else
03044                                         goto is_not_a_corner;
03045                                     else
03046                                       goto is_not_a_corner;
03047                                   else
03048                                     goto is_not_a_corner;
03049                             else
03050                               if (p[offset6] < c_b)
03051                                 goto is_not_a_corner;
03052                               else
03053                                 if (p[offset6] > cb)
03054                                   if (p[offset3] > cb)
03055                                     if (p[offset4] > cb)
03056                                       if (p[offset8] > cb)
03057                                         goto is_a_corner;
03058                                       else
03059                                         goto is_not_a_corner;
03060                                     else
03061                                       goto is_not_a_corner;
03062                                   else
03063                                     goto is_not_a_corner;
03064                                 else
03065                                   goto is_not_a_corner;
03066                       else
03067                         if (p[offset9] > cb)
03068                           if (p[offset1] < c_b)
03069                             goto is_not_a_corner;
03070                           else
03071                             if (p[offset1] > cb)
03072                               if (p[offset6] < c_b)
03073                                 if (p[offset11] > cb)
03074                                   if (p[offset3] > cb)
03075                                     if (p[offset4] > cb)
03076                                       goto is_a_corner;
03077                                     else
03078                                       if (p[offset10] > cb)
03079                                         goto is_a_corner;
03080                                       else
03081                                         goto is_not_a_corner;
03082                                   else
03083                                     if (p[offset8] > cb)
03084                                       if (p[offset10] > cb)
03085                                         goto is_a_corner;
03086                                       else
03087                                         goto is_not_a_corner;
03088                                     else
03089                                       goto is_not_a_corner;
03090                                 else
03091                                   goto is_not_a_corner;
03092                               else
03093                                 if (p[offset6] > cb)
03094                                   if (p[offset3] > cb)
03095                                     if (p[offset4] > cb)
03096                                       goto is_a_corner;
03097                                     else
03098                                       if (p[offset10] > cb)
03099                                         if (p[offset11] > cb)
03100                                           goto is_a_corner;
03101                                         else
03102                                           goto is_not_a_corner;
03103                                       else
03104                                         goto is_not_a_corner;
03105                                   else
03106                                     if (p[offset8] > cb)
03107                                       if (p[offset10] > cb)
03108                                         if (p[offset11] > cb)
03109                                           goto is_a_corner;
03110                                         else
03111                                           goto is_not_a_corner;
03112                                       else
03113                                         goto is_not_a_corner;
03114                                     else
03115                                       goto is_not_a_corner;
03116                                 else
03117                                   if (p[offset11] > cb)
03118                                     if (p[offset3] > cb)
03119                                       if (p[offset4] > cb)
03120                                         goto is_a_corner;
03121                                       else
03122                                         if (p[offset10] > cb)
03123                                           goto is_a_corner;
03124                                         else
03125                                           goto is_not_a_corner;
03126                                     else
03127                                       if (p[offset8] > cb)
03128                                         if (p[offset10] > cb)
03129                                           goto is_a_corner;
03130                                         else
03131                                           goto is_not_a_corner;
03132                                       else
03133                                         goto is_not_a_corner;
03134                                   else
03135                                     goto is_not_a_corner;
03136                             else
03137                               goto is_not_a_corner;
03138                         else
03139                           if (p[offset1] < c_b)
03140                             goto is_not_a_corner;
03141                           else
03142                             if (p[offset1] > cb)
03143                               if (p[offset6] > cb)
03144                                 if (p[offset3] > cb)
03145                                   if (p[offset4] > cb)
03146                                     goto is_a_corner;
03147                                   else
03148                                     goto is_not_a_corner;
03149                                 else
03150                                   goto is_not_a_corner;
03151                               else
03152                                 if (p[offset6] < c_b)
03153                                   if (p[offset3] > cb)
03154                                     if (p[offset4] > cb)
03155                                       if (p[offset11] > cb)
03156                                         goto is_a_corner;
03157                                       else
03158                                         goto is_not_a_corner;
03159                                     else
03160                                       goto is_not_a_corner;
03161                                   else
03162                                     goto is_not_a_corner;
03163                                 else
03164                                   if (p[offset3] > cb)
03165                                     if (p[offset4] > cb)
03166                                       if (p[offset11] > cb)
03167                                         goto is_a_corner;
03168                                       else
03169                                         goto is_not_a_corner;
03170                                     else
03171                                       goto is_not_a_corner;
03172                                   else
03173                                     goto is_not_a_corner;
03174                             else
03175                               goto is_not_a_corner;
03176                 else
03177                   if (p[offset7] > cb)
03178                     if (p[offset9] < c_b)
03179                       goto is_not_a_corner;
03180                     else
03181                       if (p[offset9] > cb)
03182                         if (p[offset1] < c_b)
03183                           if (p[offset6] < c_b)
03184                             goto is_not_a_corner;
03185                           else
03186                             if (p[offset6] > cb)
03187                               if (p[offset8] > cb)
03188                                 if (p[offset4] > cb)
03189                                   if (p[offset3] > cb)
03190                                     goto is_a_corner;
03191                                   else
03192                                     if (p[offset10] > cb)
03193                                       goto is_a_corner;
03194                                     else
03195                                       goto is_not_a_corner;
03196                                 else
03197                                   if (p[offset10] > cb)
03198                                     if (p[offset11] > cb)
03199                                       goto is_a_corner;
03200                                     else
03201                                       goto is_not_a_corner;
03202                                   else
03203                                     goto is_not_a_corner;
03204                               else
03205                                 goto is_not_a_corner;
03206                             else
03207                               goto is_not_a_corner;
03208                         else
03209                           if (p[offset1] > cb)
03210                             if (p[offset6] < c_b)
03211                               if (p[offset8] > cb)
03212                                 if (p[offset10] > cb)
03213                                   if (p[offset11] > cb)
03214                                     goto is_a_corner;
03215                                   else
03216                                     goto is_not_a_corner;
03217                                 else
03218                                   goto is_not_a_corner;
03219                               else
03220                                 goto is_not_a_corner;
03221                             else
03222                               if (p[offset6] > cb)
03223                                 if (p[offset8] > cb)
03224                                   if (p[offset4] > cb)
03225                                     if (p[offset3] > cb)
03226                                       goto is_a_corner;
03227                                     else
03228                                       if (p[offset10] > cb)
03229                                         goto is_a_corner;
03230                                       else
03231                                         goto is_not_a_corner;
03232                                   else
03233                                     if (p[offset10] > cb)
03234                                       if (p[offset11] > cb)
03235                                         goto is_a_corner;
03236                                       else
03237                                         goto is_not_a_corner;
03238                                     else
03239                                       goto is_not_a_corner;
03240                                 else
03241                                   goto is_not_a_corner;
03242                               else
03243                                 if (p[offset8] > cb)
03244                                   if (p[offset10] > cb)
03245                                     if (p[offset11] > cb)
03246                                       goto is_a_corner;
03247                                     else
03248                                       goto is_not_a_corner;
03249                                   else
03250                                     goto is_not_a_corner;
03251                                 else
03252                                   goto is_not_a_corner;
03253                           else
03254                             if (p[offset6] < c_b)
03255                               goto is_not_a_corner;
03256                             else
03257                               if (p[offset6] > cb)
03258                                 if (p[offset8] > cb)
03259                                   if (p[offset4] > cb)
03260                                     if (p[offset3] > cb)
03261                                       goto is_a_corner;
03262                                     else
03263                                       if (p[offset10] > cb)
03264                                         goto is_a_corner;
03265                                       else
03266                                         goto is_not_a_corner;
03267                                   else
03268                                     if (p[offset10] > cb)
03269                                       if (p[offset11] > cb)
03270                                         goto is_a_corner;
03271                                       else
03272                                         goto is_not_a_corner;
03273                                     else
03274                                       goto is_not_a_corner;
03275                                 else
03276                                   goto is_not_a_corner;
03277                               else
03278                                 goto is_not_a_corner;
03279                       else
03280                         goto is_not_a_corner;
03281                   else
03282                     goto is_not_a_corner;
03283             else
03284               if (p[offset5] < c_b)
03285                 if (p[offset9] < c_b)
03286                   if (p[offset7] > cb)
03287                     if (p[offset2] < c_b)
03288                       goto is_not_a_corner;
03289                     else
03290                       if (p[offset2] > cb)
03291                         if (p[offset1] < c_b)
03292                           goto is_not_a_corner;
03293                         else
03294                           if (p[offset1] > cb)
03295                             if (p[offset6] > cb)
03296                               if (p[offset3] > cb)
03297                                 if (p[offset4] > cb)
03298                                   if (p[offset10] > cb)
03299                                     if (p[offset11] > cb)
03300                                       goto is_a_corner;
03301                                     else
03302                                       goto is_not_a_corner;
03303                                   else
03304                                     goto is_not_a_corner;
03305                                 else
03306                                   goto is_not_a_corner;
03307                               else
03308                                 goto is_not_a_corner;
03309                             else
03310                               if (p[offset6] < c_b)
03311                                 if (p[offset3] > cb)
03312                                   if (p[offset4] > cb)
03313                                     if (p[offset10] > cb)
03314                                       if (p[offset11] > cb)
03315                                         goto is_a_corner;
03316                                       else
03317                                         goto is_not_a_corner;
03318                                     else
03319                                       goto is_not_a_corner;
03320                                   else
03321                                     goto is_not_a_corner;
03322                                 else
03323                                   goto is_not_a_corner;
03324                               else
03325                                 if (p[offset3] > cb)
03326                                   if (p[offset4] > cb)
03327                                     if (p[offset10] > cb)
03328                                       if (p[offset11] > cb)
03329                                         goto is_a_corner;
03330                                       else
03331                                         goto is_not_a_corner;
03332                                     else
03333                                       goto is_not_a_corner;
03334                                   else
03335                                     goto is_not_a_corner;
03336                                 else
03337                                   goto is_not_a_corner;
03338                           else
03339                             goto is_not_a_corner;
03340                       else
03341                         goto is_not_a_corner;
03342                   else
03343                     if (p[offset7] < c_b)
03344                       if (p[offset2] < c_b)
03345                         if (p[offset1] > cb)
03346                           if (p[offset6] > cb)
03347                             goto is_not_a_corner;
03348                           else
03349                             if (p[offset6] < c_b)
03350                               if (p[offset8] < c_b)
03351                                 if (p[offset4] < c_b)
03352                                   if (p[offset3] < c_b)
03353                                     goto is_a_corner;
03354                                   else
03355                                     if (p[offset10] < c_b)
03356                                       goto is_a_corner;
03357                                     else
03358                                       goto is_not_a_corner;
03359                                 else
03360                                   if (p[offset10] < c_b)
03361                                     if (p[offset11] < c_b)
03362                                       goto is_a_corner;
03363                                     else
03364                                       goto is_not_a_corner;
03365                                   else
03366                                     goto is_not_a_corner;
03367                               else
03368                                 goto is_not_a_corner;
03369                             else
03370                               goto is_not_a_corner;
03371                         else
03372                           if (p[offset1] < c_b)
03373                             if (p[offset6] > cb)
03374                               goto is_not_a_corner;
03375                             else
03376                               if (p[offset6] < c_b)
03377                                 if (p[offset4] < c_b)
03378                                   if (p[offset3] < c_b)
03379                                     goto is_a_corner;
03380                                   else
03381                                     if (p[offset8] < c_b)
03382                                       if (p[offset10] < c_b)
03383                                         goto is_a_corner;
03384                                       else
03385                                         goto is_not_a_corner;
03386                                     else
03387                                       goto is_not_a_corner;
03388                                 else
03389                                   if (p[offset8] < c_b)
03390                                     if (p[offset10] < c_b)
03391                                       if (p[offset11] < c_b)
03392                                         goto is_a_corner;
03393                                       else
03394                                         goto is_not_a_corner;
03395                                     else
03396                                       goto is_not_a_corner;
03397                                   else
03398                                     goto is_not_a_corner;
03399                               else
03400                                 goto is_not_a_corner;
03401                           else
03402                             if (p[offset6] > cb)
03403                               goto is_not_a_corner;
03404                             else
03405                               if (p[offset6] < c_b)
03406                                 if (p[offset8] < c_b)
03407                                   if (p[offset4] < c_b)
03408                                     if (p[offset3] < c_b)
03409                                       goto is_a_corner;
03410                                     else
03411                                       if (p[offset10] < c_b)
03412                                         goto is_a_corner;
03413                                       else
03414                                         goto is_not_a_corner;
03415                                   else
03416                                     if (p[offset10] < c_b)
03417                                       if (p[offset11] < c_b)
03418                                         goto is_a_corner;
03419                                       else
03420                                         goto is_not_a_corner;
03421                                     else
03422                                       goto is_not_a_corner;
03423                                 else
03424                                   goto is_not_a_corner;
03425                               else
03426                                 goto is_not_a_corner;
03427                       else
03428                         if (p[offset2] > cb)
03429                           if (p[offset1] < c_b)
03430                             if (p[offset6] > cb)
03431                               goto is_not_a_corner;
03432                             else
03433                               if (p[offset6] < c_b)
03434                                 if (p[offset8] < c_b)
03435                                   if (p[offset4] < c_b)
03436                                     if (p[offset3] < c_b)
03437                                       goto is_a_corner;
03438                                     else
03439                                       if (p[offset10] < c_b)
03440                                         goto is_a_corner;
03441                                       else
03442                                         goto is_not_a_corner;
03443                                   else
03444                                     if (p[offset10] < c_b)
03445                                       if (p[offset11] < c_b)
03446                                         goto is_a_corner;
03447                                       else
03448                                         goto is_not_a_corner;
03449                                     else
03450                                       goto is_not_a_corner;
03451                                 else
03452                                   goto is_not_a_corner;
03453                               else
03454                                 goto is_not_a_corner;
03455                           else
03456                             if (p[offset1] > cb)
03457                               if (p[offset6] > cb)
03458                                 if (p[offset3] > cb)
03459                                   if (p[offset4] > cb)
03460                                     if (p[offset10] > cb)
03461                                       if (p[offset11] > cb)
03462                                         goto is_a_corner;
03463                                       else
03464                                         goto is_not_a_corner;
03465                                     else
03466                                       goto is_not_a_corner;
03467                                   else
03468                                     goto is_not_a_corner;
03469                                 else
03470                                   goto is_not_a_corner;
03471                               else
03472                                 if (p[offset6] < c_b)
03473                                   if (p[offset4] > cb)
03474                                     if (p[offset10] > cb)
03475                                       if (p[offset3] > cb)
03476                                         if (p[offset11] > cb)
03477                                           goto is_a_corner;
03478                                         else
03479                                           goto is_not_a_corner;
03480                                       else
03481                                         goto is_not_a_corner;
03482                                     else
03483                                       if (p[offset8] < c_b)
03484                                         if (p[offset11] < c_b)
03485                                           if (p[offset10] < c_b)
03486                                             goto is_a_corner;
03487                                           else
03488                                             goto is_not_a_corner;
03489                                         else
03490                                           goto is_not_a_corner;
03491                                       else
03492                                         goto is_not_a_corner;
03493                                   else
03494                                     if (p[offset8] < c_b)
03495                                       if (p[offset10] < c_b)
03496                                         if (p[offset4] < c_b)
03497                                           goto is_a_corner;
03498                                         else
03499                                           if (p[offset11] < c_b)
03500                                             goto is_a_corner;
03501                                           else
03502                                             goto is_not_a_corner;
03503                                       else
03504                                         if (p[offset3] < c_b)
03505                                           if (p[offset4] < c_b)
03506                                             goto is_a_corner;
03507                                           else
03508                                             goto is_not_a_corner;
03509                                         else
03510                                           goto is_not_a_corner;
03511                                     else
03512                                       goto is_not_a_corner;
03513                                 else
03514                                   if (p[offset3] > cb)
03515                                     if (p[offset4] > cb)
03516                                       if (p[offset10] > cb)
03517                                         if (p[offset11] > cb)
03518                                           goto is_a_corner;
03519                                         else
03520                                           goto is_not_a_corner;
03521                                       else
03522                                         goto is_not_a_corner;
03523                                     else
03524                                       goto is_not_a_corner;
03525                                   else
03526                                     goto is_not_a_corner;
03527                             else
03528                               if (p[offset6] > cb)
03529                                 goto is_not_a_corner;
03530                               else
03531                                 if (p[offset6] < c_b)
03532                                   if (p[offset8] < c_b)
03533                                     if (p[offset4] < c_b)
03534                                       if (p[offset3] < c_b)
03535                                         goto is_a_corner;
03536                                       else
03537                                         if (p[offset10] < c_b)
03538                                           goto is_a_corner;
03539                                         else
03540                                           goto is_not_a_corner;
03541                                     else
03542                                       if (p[offset10] < c_b)
03543                                         if (p[offset11] < c_b)
03544                                           goto is_a_corner;
03545                                         else
03546                                           goto is_not_a_corner;
03547                                       else
03548                                         goto is_not_a_corner;
03549                                   else
03550                                     goto is_not_a_corner;
03551                                 else
03552                                   goto is_not_a_corner;
03553                         else
03554                           if (p[offset1] > cb)
03555                             if (p[offset6] > cb)
03556                               goto is_not_a_corner;
03557                             else
03558                               if (p[offset6] < c_b)
03559                                 if (p[offset8] < c_b)
03560                                   if (p[offset4] < c_b)
03561                                     if (p[offset3] < c_b)
03562                                       goto is_a_corner;
03563                                     else
03564                                       if (p[offset10] < c_b)
03565                                         goto is_a_corner;
03566                                       else
03567                                         goto is_not_a_corner;
03568                                   else
03569                                     if (p[offset10] < c_b)
03570                                       if (p[offset11] < c_b)
03571                                         goto is_a_corner;
03572                                       else
03573                                         goto is_not_a_corner;
03574                                     else
03575                                       goto is_not_a_corner;
03576                                 else
03577                                   goto is_not_a_corner;
03578                               else
03579                                 goto is_not_a_corner;
03580                           else
03581                             if (p[offset1] < c_b)
03582                               if (p[offset6] > cb)
03583                                 goto is_not_a_corner;
03584                               else
03585                                 if (p[offset6] < c_b)
03586                                   if (p[offset8] < c_b)
03587                                     if (p[offset4] < c_b)
03588                                       if (p[offset3] < c_b)
03589                                         goto is_a_corner;
03590                                       else
03591                                         if (p[offset10] < c_b)
03592                                           goto is_a_corner;
03593                                         else
03594                                           goto is_not_a_corner;
03595                                     else
03596                                       if (p[offset10] < c_b)
03597                                         if (p[offset11] < c_b)
03598                                           goto is_a_corner;
03599                                         else
03600                                           goto is_not_a_corner;
03601                                       else
03602                                         goto is_not_a_corner;
03603                                   else
03604                                     goto is_not_a_corner;
03605                                 else
03606                                   goto is_not_a_corner;
03607                             else
03608                               if (p[offset6] > cb)
03609                                 goto is_not_a_corner;
03610                               else
03611                                 if (p[offset6] < c_b)
03612                                   if (p[offset8] < c_b)
03613                                     if (p[offset4] < c_b)
03614                                       if (p[offset3] < c_b)
03615                                         goto is_a_corner;
03616                                       else
03617                                         if (p[offset10] < c_b)
03618                                           goto is_a_corner;
03619                                         else
03620                                           goto is_not_a_corner;
03621                                     else
03622                                       if (p[offset10] < c_b)
03623                                         if (p[offset11] < c_b)
03624                                           goto is_a_corner;
03625                                         else
03626                                           goto is_not_a_corner;
03627                                       else
03628                                         goto is_not_a_corner;
03629                                   else
03630                                     goto is_not_a_corner;
03631                                 else
03632                                   goto is_not_a_corner;
03633                     else
03634                       if (p[offset2] < c_b)
03635                         goto is_not_a_corner;
03636                       else
03637                         if (p[offset2] > cb)
03638                           if (p[offset1] < c_b)
03639                             goto is_not_a_corner;
03640                           else
03641                             if (p[offset1] > cb)
03642                               if (p[offset6] > cb)
03643                                 if (p[offset3] > cb)
03644                                   if (p[offset4] > cb)
03645                                     if (p[offset10] > cb)
03646                                       if (p[offset11] > cb)
03647                                         goto is_a_corner;
03648                                       else
03649                                         goto is_not_a_corner;
03650                                     else
03651                                       goto is_not_a_corner;
03652                                   else
03653                                     goto is_not_a_corner;
03654                                 else
03655                                   goto is_not_a_corner;
03656                               else
03657                                 if (p[offset6] < c_b)
03658                                   if (p[offset3] > cb)
03659                                     if (p[offset4] > cb)
03660                                       if (p[offset10] > cb)
03661                                         if (p[offset11] > cb)
03662                                           goto is_a_corner;
03663                                         else
03664                                           goto is_not_a_corner;
03665                                       else
03666                                         goto is_not_a_corner;
03667                                     else
03668                                       goto is_not_a_corner;
03669                                   else
03670                                     goto is_not_a_corner;
03671                                 else
03672                                   if (p[offset3] > cb)
03673                                     if (p[offset4] > cb)
03674                                       if (p[offset10] > cb)
03675                                         if (p[offset11] > cb)
03676                                           goto is_a_corner;
03677                                         else
03678                                           goto is_not_a_corner;
03679                                       else
03680                                         goto is_not_a_corner;
03681                                     else
03682                                       goto is_not_a_corner;
03683                                   else
03684                                     goto is_not_a_corner;
03685                             else
03686                               goto is_not_a_corner;
03687                         else
03688                           goto is_not_a_corner;
03689                 else
03690                   if (p[offset9] > cb)
03691                     if (p[offset7] < c_b)
03692                       if (p[offset2] > cb)
03693                         if (p[offset1] < c_b)
03694                           goto is_not_a_corner;
03695                         else
03696                           if (p[offset1] > cb)
03697                             if (p[offset6] > cb)
03698                               if (p[offset10] > cb)
03699                                 if (p[offset11] > cb)
03700                                   if (p[offset3] > cb)
03701                                     goto is_a_corner;
03702                                   else
03703                                     if (p[offset8] > cb)
03704                                       goto is_a_corner;
03705                                     else
03706                                       goto is_not_a_corner;
03707                                 else
03708                                   goto is_not_a_corner;
03709                               else
03710                                 goto is_not_a_corner;
03711                             else
03712                               if (p[offset6] < c_b)
03713                                 if (p[offset10] > cb)
03714                                   if (p[offset11] > cb)
03715                                     if (p[offset3] > cb)
03716                                       goto is_a_corner;
03717                                     else
03718                                       if (p[offset8] > cb)
03719                                         goto is_a_corner;
03720                                       else
03721                                         goto is_not_a_corner;
03722                                   else
03723                                     goto is_not_a_corner;
03724                                 else
03725                                   goto is_not_a_corner;
03726                               else
03727                                 if (p[offset10] > cb)
03728                                   if (p[offset11] > cb)
03729                                     if (p[offset3] > cb)
03730                                       goto is_a_corner;
03731                                     else
03732                                       if (p[offset8] > cb)
03733                                         goto is_a_corner;
03734                                       else
03735                                         goto is_not_a_corner;
03736                                   else
03737                                     goto is_not_a_corner;
03738                                 else
03739                                   goto is_not_a_corner;
03740                           else
03741                             goto is_not_a_corner;
03742                       else
03743                         if (p[offset2] < c_b)
03744                           if (p[offset1] < c_b)
03745                             if (p[offset6] > cb)
03746                               goto is_not_a_corner;
03747                             else
03748                               if (p[offset6] < c_b)
03749                                 if (p[offset3] < c_b)
03750                                   if (p[offset4] < c_b)
03751                                     goto is_a_corner;
03752                                   else
03753                                     goto is_not_a_corner;
03754                                 else
03755                                   goto is_not_a_corner;
03756                               else
03757                                 goto is_not_a_corner;
03758                           else
03759                             if (p[offset1] > cb)
03760                               if (p[offset6] > cb)
03761                                 goto is_not_a_corner;
03762                               else
03763                                 if (p[offset6] < c_b)
03764                                   if (p[offset3] < c_b)
03765                                     if (p[offset4] < c_b)
03766                                       if (p[offset8] < c_b)
03767                                         goto is_a_corner;
03768                                       else
03769                                         goto is_not_a_corner;
03770                                     else
03771                                       goto is_not_a_corner;
03772                                   else
03773                                     goto is_not_a_corner;
03774                                 else
03775                                   goto is_not_a_corner;
03776                             else
03777                               if (p[offset6] > cb)
03778                                 goto is_not_a_corner;
03779                               else
03780                                 if (p[offset6] < c_b)
03781                                   if (p[offset3] < c_b)
03782                                     if (p[offset4] < c_b)
03783                                       if (p[offset8] < c_b)
03784                                         goto is_a_corner;
03785                                       else
03786                                         goto is_not_a_corner;
03787                                     else
03788                                       goto is_not_a_corner;
03789                                   else
03790                                     goto is_not_a_corner;
03791                                 else
03792                                   goto is_not_a_corner;
03793                         else
03794                           goto is_not_a_corner;
03795                     else
03796                       if (p[offset7] > cb)
03797                         if (p[offset2] < c_b)
03798                           if (p[offset1] < c_b)
03799                             if (p[offset6] < c_b)
03800                               goto is_not_a_corner;
03801                             else
03802                               if (p[offset6] > cb)
03803                                 if (p[offset8] > cb)
03804                                   if (p[offset10] > cb)
03805                                     if (p[offset11] > cb)
03806                                       goto is_a_corner;
03807                                     else
03808                                       goto is_not_a_corner;
03809                                   else
03810                                     goto is_not_a_corner;
03811                                 else
03812                                   goto is_not_a_corner;
03813                               else
03814                                 goto is_not_a_corner;
03815                           else
03816                             if (p[offset1] > cb)
03817                               if (p[offset6] > cb)
03818                                 if (p[offset8] > cb)
03819                                   if (p[offset10] > cb)
03820                                     if (p[offset11] > cb)
03821                                       goto is_a_corner;
03822                                     else
03823                                       goto is_not_a_corner;
03824                                   else
03825                                     goto is_not_a_corner;
03826                                 else
03827                                   goto is_not_a_corner;
03828                               else
03829                                 if (p[offset6] < c_b)
03830                                   if (p[offset8] > cb)
03831                                     if (p[offset10] > cb)
03832                                       if (p[offset11] > cb)
03833                                         goto is_a_corner;
03834                                       else
03835                                         goto is_not_a_corner;
03836                                     else
03837                                       goto is_not_a_corner;
03838                                   else
03839                                     goto is_not_a_corner;
03840                                 else
03841                                   if (p[offset8] > cb)
03842                                     if (p[offset10] > cb)
03843                                       if (p[offset11] > cb)
03844                                         goto is_a_corner;
03845                                       else
03846                                         goto is_not_a_corner;
03847                                     else
03848                                       goto is_not_a_corner;
03849                                   else
03850                                     goto is_not_a_corner;
03851                             else
03852                               if (p[offset6] < c_b)
03853                                 goto is_not_a_corner;
03854                               else
03855                                 if (p[offset6] > cb)
03856                                   if (p[offset8] > cb)
03857                                     if (p[offset10] > cb)
03858                                       if (p[offset11] > cb)
03859                                         goto is_a_corner;
03860                                       else
03861                                         goto is_not_a_corner;
03862                                     else
03863                                       goto is_not_a_corner;
03864                                   else
03865                                     goto is_not_a_corner;
03866                                 else
03867                                   goto is_not_a_corner;
03868                         else
03869                           if (p[offset2] > cb)
03870                             if (p[offset1] < c_b)
03871                               if (p[offset6] < c_b)
03872                                 goto is_not_a_corner;
03873                               else
03874                                 if (p[offset6] > cb)
03875                                   if (p[offset8] > cb)
03876                                     if (p[offset10] > cb)
03877                                       if (p[offset11] > cb)
03878                                         goto is_a_corner;
03879                                       else
03880                                         goto is_not_a_corner;
03881                                     else
03882                                       goto is_not_a_corner;
03883                                   else
03884                                     goto is_not_a_corner;
03885                                 else
03886                                   goto is_not_a_corner;
03887                             else
03888                               if (p[offset1] > cb)
03889                                 if (p[offset6] > cb)
03890                                   if (p[offset10] > cb)
03891                                     if (p[offset11] > cb)
03892                                       if (p[offset3] > cb)
03893                                         goto is_a_corner;
03894                                       else
03895                                         if (p[offset8] > cb)
03896                                           goto is_a_corner;
03897                                         else
03898                                           goto is_not_a_corner;
03899                                     else
03900                                       goto is_not_a_corner;
03901                                   else
03902                                     goto is_not_a_corner;
03903                                 else
03904                                   if (p[offset6] < c_b)
03905                                     if (p[offset10] > cb)
03906                                       if (p[offset11] > cb)
03907                                         if (p[offset3] > cb)
03908                                           goto is_a_corner;
03909                                         else
03910                                           if (p[offset8] > cb)
03911                                             goto is_a_corner;
03912                                           else
03913                                             goto is_not_a_corner;
03914                                       else
03915                                         goto is_not_a_corner;
03916                                     else
03917                                       goto is_not_a_corner;
03918                                   else
03919                                     if (p[offset10] > cb)
03920                                       if (p[offset11] > cb)
03921                                         if (p[offset3] > cb)
03922                                           goto is_a_corner;
03923                                         else
03924                                           if (p[offset8] > cb)
03925                                             goto is_a_corner;
03926                                           else
03927                                             goto is_not_a_corner;
03928                                       else
03929                                         goto is_not_a_corner;
03930                                     else
03931                                       goto is_not_a_corner;
03932                               else
03933                                 if (p[offset6] < c_b)
03934                                   goto is_not_a_corner;
03935                                 else
03936                                   if (p[offset6] > cb)
03937                                     if (p[offset8] > cb)
03938                                       if (p[offset10] > cb)
03939                                         if (p[offset11] > cb)
03940                                           goto is_a_corner;
03941                                         else
03942                                           goto is_not_a_corner;
03943                                       else
03944                                         goto is_not_a_corner;
03945                                     else
03946                                       goto is_not_a_corner;
03947                                   else
03948                                     goto is_not_a_corner;
03949                           else
03950                             if (p[offset1] < c_b)
03951                               if (p[offset6] < c_b)
03952                                 goto is_not_a_corner;
03953                               else
03954                                 if (p[offset6] > cb)
03955                                   if (p[offset8] > cb)
03956                                     if (p[offset10] > cb)
03957                                       if (p[offset11] > cb)
03958                                         goto is_a_corner;
03959                                       else
03960                                         goto is_not_a_corner;
03961                                     else
03962                                       goto is_not_a_corner;
03963                                   else
03964                                     goto is_not_a_corner;
03965                                 else
03966                                   goto is_not_a_corner;
03967                             else
03968                               if (p[offset1] > cb)
03969                                 if (p[offset6] > cb)
03970                                   if (p[offset8] > cb)
03971                                     if (p[offset10] > cb)
03972                                       if (p[offset11] > cb)
03973                                         goto is_a_corner;
03974                                       else
03975                                         goto is_not_a_corner;
03976                                     else
03977                                       goto is_not_a_corner;
03978                                   else
03979                                     goto is_not_a_corner;
03980                                 else
03981                                   if (p[offset6] < c_b)
03982                                     if (p[offset8] > cb)
03983                                       if (p[offset10] > cb)
03984                                         if (p[offset11] > cb)
03985                                           goto is_a_corner;
03986                                         else
03987                                           goto is_not_a_corner;
03988                                       else
03989                                         goto is_not_a_corner;
03990                                     else
03991                                       goto is_not_a_corner;
03992                                   else
03993                                     if (p[offset8] > cb)
03994                                       if (p[offset10] > cb)
03995                                         if (p[offset11] > cb)
03996                                           goto is_a_corner;
03997                                         else
03998                                           goto is_not_a_corner;
03999                                       else
04000                                         goto is_not_a_corner;
04001                                     else
04002                                       goto is_not_a_corner;
04003                               else
04004                                 if (p[offset6] < c_b)
04005                                   goto is_not_a_corner;
04006                                 else
04007                                   if (p[offset6] > cb)
04008                                     if (p[offset8] > cb)
04009                                       if (p[offset10] > cb)
04010                                         if (p[offset11] > cb)
04011                                           goto is_a_corner;
04012                                         else
04013                                           goto is_not_a_corner;
04014                                       else
04015                                         goto is_not_a_corner;
04016                                     else
04017                                       goto is_not_a_corner;
04018                                   else
04019                                     goto is_not_a_corner;
04020                       else
04021                         if (p[offset2] < c_b)
04022                           goto is_not_a_corner;
04023                         else
04024                           if (p[offset2] > cb)
04025                             if (p[offset1] < c_b)
04026                               goto is_not_a_corner;
04027                             else
04028                               if (p[offset1] > cb)
04029                                 if (p[offset6] > cb)
04030                                   if (p[offset10] > cb)
04031                                     if (p[offset11] > cb)
04032                                       if (p[offset3] > cb)
04033                                         goto is_a_corner;
04034                                       else
04035                                         if (p[offset8] > cb)
04036                                           goto is_a_corner;
04037                                         else
04038                                           goto is_not_a_corner;
04039                                     else
04040                                       goto is_not_a_corner;
04041                                   else
04042                                     goto is_not_a_corner;
04043                                 else
04044                                   if (p[offset6] < c_b)
04045                                     if (p[offset10] > cb)
04046                                       if (p[offset11] > cb)
04047                                         if (p[offset3] > cb)
04048                                           goto is_a_corner;
04049                                         else
04050                                           if (p[offset8] > cb)
04051                                             goto is_a_corner;
04052                                           else
04053                                             goto is_not_a_corner;
04054                                       else
04055                                         goto is_not_a_corner;
04056                                     else
04057                                       goto is_not_a_corner;
04058                                   else
04059                                     if (p[offset10] > cb)
04060                                       if (p[offset11] > cb)
04061                                         if (p[offset3] > cb)
04062                                           goto is_a_corner;
04063                                         else
04064                                           if (p[offset8] > cb)
04065                                             goto is_a_corner;
04066                                           else
04067                                             goto is_not_a_corner;
04068                                       else
04069                                         goto is_not_a_corner;
04070                                     else
04071                                       goto is_not_a_corner;
04072                               else
04073                                 goto is_not_a_corner;
04074                           else
04075                             goto is_not_a_corner;
04076                   else
04077                     if (p[offset2] < c_b)
04078                       if (p[offset7] > cb)
04079                         goto is_not_a_corner;
04080                       else
04081                         if (p[offset7] < c_b)
04082                           if (p[offset1] < c_b)
04083                             if (p[offset6] > cb)
04084                               goto is_not_a_corner;
04085                             else
04086                               if (p[offset6] < c_b)
04087                                 if (p[offset3] < c_b)
04088                                   if (p[offset4] < c_b)
04089                                     goto is_a_corner;
04090                                   else
04091                                     goto is_not_a_corner;
04092                                 else
04093                                   goto is_not_a_corner;
04094                               else
04095                                 goto is_not_a_corner;
04096                           else
04097                             if (p[offset1] > cb)
04098                               if (p[offset6] > cb)
04099                                 goto is_not_a_corner;
04100                               else
04101                                 if (p[offset6] < c_b)
04102                                   if (p[offset3] < c_b)
04103                                     if (p[offset4] < c_b)
04104                                       if (p[offset8] < c_b)
04105                                         goto is_a_corner;
04106                                       else
04107                                         goto is_not_a_corner;
04108                                     else
04109                                       goto is_not_a_corner;
04110                                   else
04111                                     goto is_not_a_corner;
04112                                 else
04113                                   goto is_not_a_corner;
04114                             else
04115                               if (p[offset6] > cb)
04116                                 goto is_not_a_corner;
04117                               else
04118                                 if (p[offset6] < c_b)
04119                                   if (p[offset3] < c_b)
04120                                     if (p[offset4] < c_b)
04121                                       if (p[offset8] < c_b)
04122                                         goto is_a_corner;
04123                                       else
04124                                         goto is_not_a_corner;
04125                                     else
04126                                       goto is_not_a_corner;
04127                                   else
04128                                     goto is_not_a_corner;
04129                                 else
04130                                   goto is_not_a_corner;
04131                         else
04132                           goto is_not_a_corner;
04133                     else
04134                       if (p[offset2] > cb)
04135                         if (p[offset7] > cb)
04136                           if (p[offset1] < c_b)
04137                             goto is_not_a_corner;
04138                           else
04139                             if (p[offset1] > cb)
04140                               if (p[offset6] > cb)
04141                                 if (p[offset3] > cb)
04142                                   if (p[offset4] > cb)
04143                                     if (p[offset10] > cb)
04144                                       if (p[offset11] > cb)
04145                                         goto is_a_corner;
04146                                       else
04147                                         goto is_not_a_corner;
04148                                     else
04149                                       goto is_not_a_corner;
04150                                   else
04151                                     goto is_not_a_corner;
04152                                 else
04153                                   goto is_not_a_corner;
04154                               else
04155                                 if (p[offset6] < c_b)
04156                                   if (p[offset3] > cb)
04157                                     if (p[offset4] > cb)
04158                                       if (p[offset10] > cb)
04159                                         if (p[offset11] > cb)
04160                                           goto is_a_corner;
04161                                         else
04162                                           goto is_not_a_corner;
04163                                       else
04164                                         goto is_not_a_corner;
04165                                     else
04166                                       goto is_not_a_corner;
04167                                   else
04168                                     goto is_not_a_corner;
04169                                 else
04170                                   if (p[offset3] > cb)
04171                                     if (p[offset4] > cb)
04172                                       if (p[offset10] > cb)
04173                                         if (p[offset11] > cb)
04174                                           goto is_a_corner;
04175                                         else
04176                                           goto is_not_a_corner;
04177                                       else
04178                                         goto is_not_a_corner;
04179                                     else
04180                                       goto is_not_a_corner;
04181                                   else
04182                                     goto is_not_a_corner;
04183                             else
04184                               goto is_not_a_corner;
04185                         else
04186                           if (p[offset7] < c_b)
04187                             if (p[offset1] < c_b)
04188                               goto is_not_a_corner;
04189                             else
04190                               if (p[offset1] > cb)
04191                                 if (p[offset6] > cb)
04192                                   if (p[offset3] > cb)
04193                                     if (p[offset4] > cb)
04194                                       if (p[offset10] > cb)
04195                                         if (p[offset11] > cb)
04196                                           goto is_a_corner;
04197                                         else
04198                                           goto is_not_a_corner;
04199                                       else
04200                                         goto is_not_a_corner;
04201                                     else
04202                                       goto is_not_a_corner;
04203                                   else
04204                                     goto is_not_a_corner;
04205                                 else
04206                                   if (p[offset6] < c_b)
04207                                     if (p[offset3] > cb)
04208                                       if (p[offset4] > cb)
04209                                         if (p[offset10] > cb)
04210                                           if (p[offset11] > cb)
04211                                             goto is_a_corner;
04212                                           else
04213                                             goto is_not_a_corner;
04214                                         else
04215                                           goto is_not_a_corner;
04216                                       else
04217                                         goto is_not_a_corner;
04218                                     else
04219                                       goto is_not_a_corner;
04220                                   else
04221                                     if (p[offset3] > cb)
04222                                       if (p[offset4] > cb)
04223                                         if (p[offset10] > cb)
04224                                           if (p[offset11] > cb)
04225                                             goto is_a_corner;
04226                                           else
04227                                             goto is_not_a_corner;
04228                                         else
04229                                           goto is_not_a_corner;
04230                                       else
04231                                         goto is_not_a_corner;
04232                                     else
04233                                       goto is_not_a_corner;
04234                               else
04235                                 goto is_not_a_corner;
04236                           else
04237                             if (p[offset1] < c_b)
04238                               goto is_not_a_corner;
04239                             else
04240                               if (p[offset1] > cb)
04241                                 if (p[offset6] > cb)
04242                                   if (p[offset3] > cb)
04243                                     if (p[offset4] > cb)
04244                                       if (p[offset10] > cb)
04245                                         if (p[offset11] > cb)
04246                                           goto is_a_corner;
04247                                         else
04248                                           goto is_not_a_corner;
04249                                       else
04250                                         goto is_not_a_corner;
04251                                     else
04252                                       goto is_not_a_corner;
04253                                   else
04254                                     goto is_not_a_corner;
04255                                 else
04256                                   if (p[offset6] < c_b)
04257                                     if (p[offset3] > cb)
04258                                       if (p[offset4] > cb)
04259                                         if (p[offset10] > cb)
04260                                           if (p[offset11] > cb)
04261                                             goto is_a_corner;
04262                                           else
04263                                             goto is_not_a_corner;
04264                                         else
04265                                           goto is_not_a_corner;
04266                                       else
04267                                         goto is_not_a_corner;
04268                                     else
04269                                       goto is_not_a_corner;
04270                                   else
04271                                     if (p[offset3] > cb)
04272                                       if (p[offset4] > cb)
04273                                         if (p[offset10] > cb)
04274                                           if (p[offset11] > cb)
04275                                             goto is_a_corner;
04276                                           else
04277                                             goto is_not_a_corner;
04278                                         else
04279                                           goto is_not_a_corner;
04280                                       else
04281                                         goto is_not_a_corner;
04282                                     else
04283                                       goto is_not_a_corner;
04284                               else
04285                                 goto is_not_a_corner;
04286                       else
04287                         goto is_not_a_corner;
04288               else
04289                 if (p[offset2] < c_b)
04290                   if (p[offset7] > cb)
04291                     if (p[offset9] < c_b)
04292                       goto is_not_a_corner;
04293                     else
04294                       if (p[offset9] > cb)
04295                         if (p[offset1] < c_b)
04296                           if (p[offset6] < c_b)
04297                             goto is_not_a_corner;
04298                           else
04299                             if (p[offset6] > cb)
04300                               if (p[offset8] > cb)
04301                                 if (p[offset10] > cb)
04302                                   if (p[offset11] > cb)
04303                                     goto is_a_corner;
04304                                   else
04305                                     goto is_not_a_corner;
04306                                 else
04307                                   goto is_not_a_corner;
04308                               else
04309                                 goto is_not_a_corner;
04310                             else
04311                               goto is_not_a_corner;
04312                         else
04313                           if (p[offset1] > cb)
04314                             if (p[offset6] > cb)
04315                               if (p[offset8] > cb)
04316                                 if (p[offset10] > cb)
04317                                   if (p[offset11] > cb)
04318                                     goto is_a_corner;
04319                                   else
04320                                     goto is_not_a_corner;
04321                                 else
04322                                   goto is_not_a_corner;
04323                               else
04324                                 goto is_not_a_corner;
04325                             else
04326                               if (p[offset6] < c_b)
04327                                 if (p[offset8] > cb)
04328                                   if (p[offset10] > cb)
04329                                     if (p[offset11] > cb)
04330                                       goto is_a_corner;
04331                                     else
04332                                       goto is_not_a_corner;
04333                                   else
04334                                     goto is_not_a_corner;
04335                                 else
04336                                   goto is_not_a_corner;
04337                               else
04338                                 if (p[offset8] > cb)
04339                                   if (p[offset10] > cb)
04340                                     if (p[offset11] > cb)
04341                                       goto is_a_corner;
04342                                     else
04343                                       goto is_not_a_corner;
04344                                   else
04345                                     goto is_not_a_corner;
04346                                 else
04347                                   goto is_not_a_corner;
04348                           else
04349                             if (p[offset6] < c_b)
04350                               goto is_not_a_corner;
04351                             else
04352                               if (p[offset6] > cb)
04353                                 if (p[offset8] > cb)
04354                                   if (p[offset10] > cb)
04355                                     if (p[offset11] > cb)
04356                                       goto is_a_corner;
04357                                     else
04358                                       goto is_not_a_corner;
04359                                   else
04360                                     goto is_not_a_corner;
04361                                 else
04362                                   goto is_not_a_corner;
04363                               else
04364                                 goto is_not_a_corner;
04365                       else
04366                         goto is_not_a_corner;
04367                   else
04368                     goto is_not_a_corner;
04369                 else
04370                   if (p[offset2] > cb)
04371                     if (p[offset7] < c_b)
04372                       if (p[offset9] < c_b)
04373                         if (p[offset1] < c_b)
04374                           goto is_not_a_corner;
04375                         else
04376                           if (p[offset1] > cb)
04377                             if (p[offset6] > cb)
04378                               if (p[offset3] > cb)
04379                                 if (p[offset4] > cb)
04380                                   if (p[offset10] > cb)
04381                                     if (p[offset11] > cb)
04382                                       goto is_a_corner;
04383                                     else
04384                                       goto is_not_a_corner;
04385                                   else
04386                                     goto is_not_a_corner;
04387                                 else
04388                                   goto is_not_a_corner;
04389                               else
04390                                 goto is_not_a_corner;
04391                             else
04392                               if (p[offset6] < c_b)
04393                                 if (p[offset3] > cb)
04394                                   if (p[offset4] > cb)
04395                                     if (p[offset10] > cb)
04396                                       if (p[offset11] > cb)
04397                                         goto is_a_corner;
04398                                       else
04399                                         goto is_not_a_corner;
04400                                     else
04401                                       goto is_not_a_corner;
04402                                   else
04403                                     goto is_not_a_corner;
04404                                 else
04405                                   goto is_not_a_corner;
04406                               else
04407                                 if (p[offset3] > cb)
04408                                   if (p[offset4] > cb)
04409                                     if (p[offset10] > cb)
04410                                       if (p[offset11] > cb)
04411                                         goto is_a_corner;
04412                                       else
04413                                         goto is_not_a_corner;
04414                                     else
04415                                       goto is_not_a_corner;
04416                                   else
04417                                     goto is_not_a_corner;
04418                                 else
04419                                   goto is_not_a_corner;
04420                           else
04421                             goto is_not_a_corner;
04422                       else
04423                         if (p[offset9] > cb)
04424                           if (p[offset1] < c_b)
04425                             goto is_not_a_corner;
04426                           else
04427                             if (p[offset1] > cb)
04428                               if (p[offset6] > cb)
04429                                 if (p[offset10] > cb)
04430                                   if (p[offset11] > cb)
04431                                     if (p[offset3] > cb)
04432                                       goto is_a_corner;
04433                                     else
04434                                       if (p[offset8] > cb)
04435                                         goto is_a_corner;
04436                                       else
04437                                         goto is_not_a_corner;
04438                                   else
04439                                     goto is_not_a_corner;
04440                                 else
04441                                   goto is_not_a_corner;
04442                               else
04443                                 if (p[offset6] < c_b)
04444                                   if (p[offset10] > cb)
04445                                     if (p[offset11] > cb)
04446                                       if (p[offset3] > cb)
04447                                         goto is_a_corner;
04448                                       else
04449                                         if (p[offset8] > cb)
04450                                           goto is_a_corner;
04451                                         else
04452                                           goto is_not_a_corner;
04453                                     else
04454                                       goto is_not_a_corner;
04455                                   else
04456                                     goto is_not_a_corner;
04457                                 else
04458                                   if (p[offset10] > cb)
04459                                     if (p[offset11] > cb)
04460                                       if (p[offset3] > cb)
04461                                         goto is_a_corner;
04462                                       else
04463                                         if (p[offset8] > cb)
04464                                           goto is_a_corner;
04465                                         else
04466                                           goto is_not_a_corner;
04467                                     else
04468                                       goto is_not_a_corner;
04469                                   else
04470                                     goto is_not_a_corner;
04471                             else
04472                               goto is_not_a_corner;
04473                         else
04474                           if (p[offset1] < c_b)
04475                             goto is_not_a_corner;
04476                           else
04477                             if (p[offset1] > cb)
04478                               if (p[offset6] > cb)
04479                                 if (p[offset3] > cb)
04480                                   if (p[offset4] > cb)
04481                                     if (p[offset10] > cb)
04482                                       if (p[offset11] > cb)
04483                                         goto is_a_corner;
04484                                       else
04485                                         goto is_not_a_corner;
04486                                     else
04487                                       goto is_not_a_corner;
04488                                   else
04489                                     goto is_not_a_corner;
04490                                 else
04491                                   goto is_not_a_corner;
04492                               else
04493                                 if (p[offset6] < c_b)
04494                                   if (p[offset3] > cb)
04495                                     if (p[offset4] > cb)
04496                                       if (p[offset10] > cb)
04497                                         if (p[offset11] > cb)
04498                                           goto is_a_corner;
04499                                         else
04500                                           goto is_not_a_corner;
04501                                       else
04502                                         goto is_not_a_corner;
04503                                     else
04504                                       goto is_not_a_corner;
04505                                   else
04506                                     goto is_not_a_corner;
04507                                 else
04508                                   if (p[offset3] > cb)
04509                                     if (p[offset4] > cb)
04510                                       if (p[offset10] > cb)
04511                                         if (p[offset11] > cb)
04512                                           goto is_a_corner;
04513                                         else
04514                                           goto is_not_a_corner;
04515                                       else
04516                                         goto is_not_a_corner;
04517                                     else
04518                                       goto is_not_a_corner;
04519                                   else
04520                                     goto is_not_a_corner;
04521                             else
04522                               goto is_not_a_corner;
04523                     else
04524                       if (p[offset9] < c_b)
04525                         if (p[offset7] > cb)
04526                           if (p[offset1] < c_b)
04527                             goto is_not_a_corner;
04528                           else
04529                             if (p[offset1] > cb)
04530                               if (p[offset6] > cb)
04531                                 if (p[offset3] > cb)
04532                                   if (p[offset4] > cb)
04533                                     if (p[offset10] > cb)
04534                                       if (p[offset11] > cb)
04535                                         goto is_a_corner;
04536                                       else
04537                                         goto is_not_a_corner;
04538                                     else
04539                                       goto is_not_a_corner;
04540                                   else
04541                                     goto is_not_a_corner;
04542                                 else
04543                                   goto is_not_a_corner;
04544                               else
04545                                 if (p[offset6] < c_b)
04546                                   if (p[offset3] > cb)
04547                                     if (p[offset4] > cb)
04548                                       if (p[offset10] > cb)
04549                                         if (p[offset11] > cb)
04550                                           goto is_a_corner;
04551                                         else
04552                                           goto is_not_a_corner;
04553                                       else
04554                                         goto is_not_a_corner;
04555                                     else
04556                                       goto is_not_a_corner;
04557                                   else
04558                                     goto is_not_a_corner;
04559                                 else
04560                                   if (p[offset3] > cb)
04561                                     if (p[offset4] > cb)
04562                                       if (p[offset10] > cb)
04563                                         if (p[offset11] > cb)
04564                                           goto is_a_corner;
04565                                         else
04566                                           goto is_not_a_corner;
04567                                       else
04568                                         goto is_not_a_corner;
04569                                     else
04570                                       goto is_not_a_corner;
04571                                   else
04572                                     goto is_not_a_corner;
04573                             else
04574                               goto is_not_a_corner;
04575                         else
04576                           if (p[offset1] < c_b)
04577                             goto is_not_a_corner;
04578                           else
04579                             if (p[offset1] > cb)
04580                               if (p[offset6] > cb)
04581                                 if (p[offset3] > cb)
04582                                   if (p[offset4] > cb)
04583                                     if (p[offset10] > cb)
04584                                       if (p[offset11] > cb)
04585                                         goto is_a_corner;
04586                                       else
04587                                         goto is_not_a_corner;
04588                                     else
04589                                       goto is_not_a_corner;
04590                                   else
04591                                     goto is_not_a_corner;
04592                                 else
04593                                   goto is_not_a_corner;
04594                               else
04595                                 if (p[offset6] < c_b)
04596                                   if (p[offset3] > cb)
04597                                     if (p[offset4] > cb)
04598                                       if (p[offset10] > cb)
04599                                         if (p[offset11] > cb)
04600                                           goto is_a_corner;
04601                                         else
04602                                           goto is_not_a_corner;
04603                                       else
04604                                         goto is_not_a_corner;
04605                                     else
04606                                       goto is_not_a_corner;
04607                                   else
04608                                     goto is_not_a_corner;
04609                                 else
04610                                   if (p[offset3] > cb)
04611                                     if (p[offset4] > cb)
04612                                       if (p[offset10] > cb)
04613                                         if (p[offset11] > cb)
04614                                           goto is_a_corner;
04615                                         else
04616                                           goto is_not_a_corner;
04617                                       else
04618                                         goto is_not_a_corner;
04619                                     else
04620                                       goto is_not_a_corner;
04621                                   else
04622                                     goto is_not_a_corner;
04623                             else
04624                               goto is_not_a_corner;
04625                       else
04626                         if (p[offset7] > cb)
04627                           if (p[offset9] > cb)
04628                             if (p[offset1] < c_b)
04629                               if (p[offset6] < c_b)
04630                                 goto is_not_a_corner;
04631                               else
04632                                 if (p[offset6] > cb)
04633                                   if (p[offset8] > cb)
04634                                     if (p[offset10] > cb)
04635                                       if (p[offset11] > cb)
04636                                         goto is_a_corner;
04637                                       else
04638                                         goto is_not_a_corner;
04639                                     else
04640                                       goto is_not_a_corner;
04641                                   else
04642                                     goto is_not_a_corner;
04643                                 else
04644                                   goto is_not_a_corner;
04645                             else
04646                               if (p[offset1] > cb)
04647                                 if (p[offset6] > cb)
04648                                   if (p[offset10] > cb)
04649                                     if (p[offset11] > cb)
04650                                       if (p[offset3] > cb)
04651                                         goto is_a_corner;
04652                                       else
04653                                         if (p[offset8] > cb)
04654                                           goto is_a_corner;
04655                                         else
04656                                           goto is_not_a_corner;
04657                                     else
04658                                       goto is_not_a_corner;
04659                                   else
04660                                     goto is_not_a_corner;
04661                                 else
04662                                   if (p[offset6] < c_b)
04663                                     if (p[offset10] > cb)
04664                                       if (p[offset11] > cb)
04665                                         if (p[offset3] > cb)
04666                                           goto is_a_corner;
04667                                         else
04668                                           if (p[offset8] > cb)
04669                                             goto is_a_corner;
04670                                           else
04671                                             goto is_not_a_corner;
04672                                       else
04673                                         goto is_not_a_corner;
04674                                     else
04675                                       goto is_not_a_corner;
04676                                   else
04677                                     if (p[offset10] > cb)
04678                                       if (p[offset11] > cb)
04679                                         if (p[offset3] > cb)
04680                                           goto is_a_corner;
04681                                         else
04682                                           if (p[offset8] > cb)
04683                                             goto is_a_corner;
04684                                           else
04685                                             goto is_not_a_corner;
04686                                       else
04687                                         goto is_not_a_corner;
04688                                     else
04689                                       goto is_not_a_corner;
04690                               else
04691                                 if (p[offset6] < c_b)
04692                                   goto is_not_a_corner;
04693                                 else
04694                                   if (p[offset6] > cb)
04695                                     if (p[offset8] > cb)
04696                                       if (p[offset10] > cb)
04697                                         if (p[offset11] > cb)
04698                                           goto is_a_corner;
04699                                         else
04700                                           goto is_not_a_corner;
04701                                       else
04702                                         goto is_not_a_corner;
04703                                     else
04704                                       goto is_not_a_corner;
04705                                   else
04706                                     goto is_not_a_corner;
04707                           else
04708                             if (p[offset1] < c_b)
04709                               goto is_not_a_corner;
04710                             else
04711                               if (p[offset1] > cb)
04712                                 if (p[offset6] > cb)
04713                                   if (p[offset3] > cb)
04714                                     if (p[offset4] > cb)
04715                                       if (p[offset10] > cb)
04716                                         if (p[offset11] > cb)
04717                                           goto is_a_corner;
04718                                         else
04719                                           goto is_not_a_corner;
04720                                       else
04721                                         goto is_not_a_corner;
04722                                     else
04723                                       goto is_not_a_corner;
04724                                   else
04725                                     goto is_not_a_corner;
04726                                 else
04727                                   if (p[offset6] < c_b)
04728                                     if (p[offset3] > cb)
04729                                       if (p[offset4] > cb)
04730                                         if (p[offset10] > cb)
04731                                           if (p[offset11] > cb)
04732                                             goto is_a_corner;
04733                                           else
04734                                             goto is_not_a_corner;
04735                                         else
04736                                           goto is_not_a_corner;
04737                                       else
04738                                         goto is_not_a_corner;
04739                                     else
04740                                       goto is_not_a_corner;
04741                                   else
04742                                     if (p[offset3] > cb)
04743                                       if (p[offset4] > cb)
04744                                         if (p[offset10] > cb)
04745                                           if (p[offset11] > cb)
04746                                             goto is_a_corner;
04747                                           else
04748                                             goto is_not_a_corner;
04749                                         else
04750                                           goto is_not_a_corner;
04751                                       else
04752                                         goto is_not_a_corner;
04753                                     else
04754                                       goto is_not_a_corner;
04755                               else
04756                                 goto is_not_a_corner;
04757                         else
04758                           if (p[offset9] > cb)
04759                             if (p[offset1] < c_b)
04760                               goto is_not_a_corner;
04761                             else
04762                               if (p[offset1] > cb)
04763                                 if (p[offset6] > cb)
04764                                   if (p[offset10] > cb)
04765                                     if (p[offset11] > cb)
04766                                       if (p[offset3] > cb)
04767                                         goto is_a_corner;
04768                                       else
04769                                         if (p[offset8] > cb)
04770                                           goto is_a_corner;
04771                                         else
04772                                           goto is_not_a_corner;
04773                                     else
04774                                       goto is_not_a_corner;
04775                                   else
04776                                     goto is_not_a_corner;
04777                                 else
04778                                   if (p[offset6] < c_b)
04779                                     if (p[offset10] > cb)
04780                                       if (p[offset11] > cb)
04781                                         if (p[offset3] > cb)
04782                                           goto is_a_corner;
04783                                         else
04784                                           if (p[offset8] > cb)
04785                                             goto is_a_corner;
04786                                           else
04787                                             goto is_not_a_corner;
04788                                       else
04789                                         goto is_not_a_corner;
04790                                     else
04791                                       goto is_not_a_corner;
04792                                   else
04793                                     if (p[offset10] > cb)
04794                                       if (p[offset11] > cb)
04795                                         if (p[offset3] > cb)
04796                                           goto is_a_corner;
04797                                         else
04798                                           if (p[offset8] > cb)
04799                                             goto is_a_corner;
04800                                           else
04801                                             goto is_not_a_corner;
04802                                       else
04803                                         goto is_not_a_corner;
04804                                     else
04805                                       goto is_not_a_corner;
04806                               else
04807                                 goto is_not_a_corner;
04808                           else
04809                             if (p[offset1] < c_b)
04810                               goto is_not_a_corner;
04811                             else
04812                               if (p[offset1] > cb)
04813                                 if (p[offset6] > cb)
04814                                   if (p[offset3] > cb)
04815                                     if (p[offset4] > cb)
04816                                       if (p[offset10] > cb)
04817                                         if (p[offset11] > cb)
04818                                           goto is_a_corner;
04819                                         else
04820                                           goto is_not_a_corner;
04821                                       else
04822                                         goto is_not_a_corner;
04823                                     else
04824                                       goto is_not_a_corner;
04825                                   else
04826                                     goto is_not_a_corner;
04827                                 else
04828                                   if (p[offset6] < c_b)
04829                                     if (p[offset3] > cb)
04830                                       if (p[offset4] > cb)
04831                                         if (p[offset10] > cb)
04832                                           if (p[offset11] > cb)
04833                                             goto is_a_corner;
04834                                           else
04835                                             goto is_not_a_corner;
04836                                         else
04837                                           goto is_not_a_corner;
04838                                       else
04839                                         goto is_not_a_corner;
04840                                     else
04841                                       goto is_not_a_corner;
04842                                   else
04843                                     if (p[offset3] > cb)
04844                                       if (p[offset4] > cb)
04845                                         if (p[offset10] > cb)
04846                                           if (p[offset11] > cb)
04847                                             goto is_a_corner;
04848                                           else
04849                                             goto is_not_a_corner;
04850                                         else
04851                                           goto is_not_a_corner;
04852                                       else
04853                                         goto is_not_a_corner;
04854                                     else
04855                                       goto is_not_a_corner;
04856                               else
04857                                 goto is_not_a_corner;
04858                   else
04859                     if (p[offset7] > cb)
04860                       if (p[offset9] < c_b)
04861                         goto is_not_a_corner;
04862                       else
04863                         if (p[offset9] > cb)
04864                           if (p[offset1] < c_b)
04865                             if (p[offset6] < c_b)
04866                               goto is_not_a_corner;
04867                             else
04868                               if (p[offset6] > cb)
04869                                 if (p[offset8] > cb)
04870                                   if (p[offset10] > cb)
04871                                     if (p[offset11] > cb)
04872                                       goto is_a_corner;
04873                                     else
04874                                       goto is_not_a_corner;
04875                                   else
04876                                     goto is_not_a_corner;
04877                                 else
04878                                   goto is_not_a_corner;
04879                               else
04880                                 goto is_not_a_corner;
04881                           else
04882                             if (p[offset1] > cb)
04883                               if (p[offset6] > cb)
04884                                 if (p[offset8] > cb)
04885                                   if (p[offset10] > cb)
04886                                     if (p[offset11] > cb)
04887                                       goto is_a_corner;
04888                                     else
04889                                       goto is_not_a_corner;
04890                                   else
04891                                     goto is_not_a_corner;
04892                                 else
04893                                   goto is_not_a_corner;
04894                               else
04895                                 if (p[offset6] < c_b)
04896                                   if (p[offset8] > cb)
04897                                     if (p[offset10] > cb)
04898                                       if (p[offset11] > cb)
04899                                         goto is_a_corner;
04900                                       else
04901                                         goto is_not_a_corner;
04902                                     else
04903                                       goto is_not_a_corner;
04904                                   else
04905                                     goto is_not_a_corner;
04906                                 else
04907                                   if (p[offset8] > cb)
04908                                     if (p[offset10] > cb)
04909                                       if (p[offset11] > cb)
04910                                         goto is_a_corner;
04911                                       else
04912                                         goto is_not_a_corner;
04913                                     else
04914                                       goto is_not_a_corner;
04915                                   else
04916                                     goto is_not_a_corner;
04917                             else
04918                               if (p[offset6] < c_b)
04919                                 goto is_not_a_corner;
04920                               else
04921                                 if (p[offset6] > cb)
04922                                   if (p[offset8] > cb)
04923                                     if (p[offset10] > cb)
04924                                       if (p[offset11] > cb)
04925                                         goto is_a_corner;
04926                                       else
04927                                         goto is_not_a_corner;
04928                                     else
04929                                       goto is_not_a_corner;
04930                                   else
04931                                     goto is_not_a_corner;
04932                                 else
04933                                   goto is_not_a_corner;
04934                         else
04935                           goto is_not_a_corner;
04936                     else
04937                       goto is_not_a_corner;
04938           else if (p[offset0] < c_b)
04939             if (p[offset5] < c_b)
04940               if (p[offset9] > cb)
04941                 if (p[offset2] > cb)
04942                   goto is_not_a_corner;
04943                 else
04944                   if (p[offset2] < c_b)
04945                     if (p[offset7] > cb)
04946                       if (p[offset1] > cb)
04947                         goto is_not_a_corner;
04948                       else
04949                         if (p[offset1] < c_b)
04950                           if (p[offset6] < c_b)
04951                             if (p[offset3] < c_b)
04952                               if (p[offset4] < c_b)
04953                                 goto is_a_corner;
04954                               else
04955                                 goto is_not_a_corner;
04956                             else
04957                               goto is_not_a_corner;
04958                           else
04959                             if (p[offset6] > cb)
04960                               if (p[offset3] < c_b)
04961                                 if (p[offset4] < c_b)
04962                                   if (p[offset11] < c_b)
04963                                     goto is_a_corner;
04964                                   else
04965                                     goto is_not_a_corner;
04966                                 else
04967                                   goto is_not_a_corner;
04968                               else
04969                                 goto is_not_a_corner;
04970                             else
04971                               if (p[offset3] < c_b)
04972                                 if (p[offset4] < c_b)
04973                                   if (p[offset11] < c_b)
04974                                     goto is_a_corner;
04975                                   else
04976                                     goto is_not_a_corner;
04977                                 else
04978                                   goto is_not_a_corner;
04979                               else
04980                                 goto is_not_a_corner;
04981                         else
04982                           goto is_not_a_corner;
04983                     else
04984                       if (p[offset7] < c_b)
04985                         if (p[offset1] > cb)
04986                           if (p[offset6] > cb)
04987                             goto is_not_a_corner;
04988                           else
04989                             if (p[offset6] < c_b)
04990                               if (p[offset3] < c_b)
04991                                 if (p[offset4] < c_b)
04992                                   if (p[offset8] < c_b)
04993                                     goto is_a_corner;
04994                                   else
04995                                     goto is_not_a_corner;
04996                                 else
04997                                   goto is_not_a_corner;
04998                               else
04999                                 goto is_not_a_corner;
05000                             else
05001                               goto is_not_a_corner;
05002                         else
05003                           if (p[offset1] < c_b)
05004                             if (p[offset6] < c_b)
05005                               if (p[offset3] < c_b)
05006                                 if (p[offset4] < c_b)
05007                                   goto is_a_corner;
05008                                 else
05009                                   goto is_not_a_corner;
05010                               else
05011                                 goto is_not_a_corner;
05012                             else
05013                               if (p[offset6] > cb)
05014                                 if (p[offset3] < c_b)
05015                                   if (p[offset4] < c_b)
05016                                     if (p[offset11] < c_b)
05017                                       goto is_a_corner;
05018                                     else
05019                                       goto is_not_a_corner;
05020                                   else
05021                                     goto is_not_a_corner;
05022                                 else
05023                                   goto is_not_a_corner;
05024                               else
05025                                 if (p[offset3] < c_b)
05026                                   if (p[offset4] < c_b)
05027                                     if (p[offset11] < c_b)
05028                                       goto is_a_corner;
05029                                     else
05030                                       goto is_not_a_corner;
05031                                   else
05032                                     goto is_not_a_corner;
05033                                 else
05034                                   goto is_not_a_corner;
05035                           else
05036                             if (p[offset6] > cb)
05037                               goto is_not_a_corner;
05038                             else
05039                               if (p[offset6] < c_b)
05040                                 if (p[offset3] < c_b)
05041                                   if (p[offset4] < c_b)
05042                                     if (p[offset8] < c_b)
05043                                       goto is_a_corner;
05044                                     else
05045                                       goto is_not_a_corner;
05046                                   else
05047                                     goto is_not_a_corner;
05048                                 else
05049                                   goto is_not_a_corner;
05050                               else
05051                                 goto is_not_a_corner;
05052                       else
05053                         if (p[offset1] > cb)
05054                           goto is_not_a_corner;
05055                         else
05056                           if (p[offset1] < c_b)
05057                             if (p[offset6] < c_b)
05058                               if (p[offset3] < c_b)
05059                                 if (p[offset4] < c_b)
05060                                   goto is_a_corner;
05061                                 else
05062                                   goto is_not_a_corner;
05063                               else
05064                                 goto is_not_a_corner;
05065                             else
05066                               if (p[offset6] > cb)
05067                                 if (p[offset3] < c_b)
05068                                   if (p[offset4] < c_b)
05069                                     if (p[offset11] < c_b)
05070                                       goto is_a_corner;
05071                                     else
05072                                       goto is_not_a_corner;
05073                                   else
05074                                     goto is_not_a_corner;
05075                                 else
05076                                   goto is_not_a_corner;
05077                               else
05078                                 if (p[offset3] < c_b)
05079                                   if (p[offset4] < c_b)
05080                                     if (p[offset11] < c_b)
05081                                       goto is_a_corner;
05082                                     else
05083                                       goto is_not_a_corner;
05084                                   else
05085                                     goto is_not_a_corner;
05086                                 else
05087                                   goto is_not_a_corner;
05088                           else
05089                             goto is_not_a_corner;
05090                   else
05091                     goto is_not_a_corner;
05092               else
05093                 if (p[offset9] < c_b)
05094                   if (p[offset7] > cb)
05095                     if (p[offset2] > cb)
05096                       goto is_not_a_corner;
05097                     else
05098                       if (p[offset2] < c_b)
05099                         if (p[offset1] > cb)
05100                           goto is_not_a_corner;
05101                         else
05102                           if (p[offset1] < c_b)
05103                             if (p[offset6] > cb)
05104                               if (p[offset11] < c_b)
05105                                 if (p[offset3] < c_b)
05106                                   if (p[offset4] < c_b)
05107                                     goto is_a_corner;
05108                                   else
05109                                     if (p[offset10] < c_b)
05110                                       goto is_a_corner;
05111                                     else
05112                                       goto is_not_a_corner;
05113                                 else
05114                                   if (p[offset8] < c_b)
05115                                     if (p[offset10] < c_b)
05116                                       goto is_a_corner;
05117                                     else
05118                                       goto is_not_a_corner;
05119                                   else
05120                                     goto is_not_a_corner;
05121                               else
05122                                 goto is_not_a_corner;
05123                             else
05124                               if (p[offset6] < c_b)
05125                                 if (p[offset3] < c_b)
05126                                   if (p[offset4] < c_b)
05127                                     goto is_a_corner;
05128                                   else
05129                                     if (p[offset10] < c_b)
05130                                       if (p[offset11] < c_b)
05131                                         goto is_a_corner;
05132                                       else
05133                                         goto is_not_a_corner;
05134                                     else
05135                                       goto is_not_a_corner;
05136                                 else
05137                                   if (p[offset8] < c_b)
05138                                     if (p[offset10] < c_b)
05139                                       if (p[offset11] < c_b)
05140                                         goto is_a_corner;
05141                                       else
05142                                         goto is_not_a_corner;
05143                                     else
05144                                       goto is_not_a_corner;
05145                                   else
05146                                     goto is_not_a_corner;
05147                               else
05148                                 if (p[offset11] < c_b)
05149                                   if (p[offset3] < c_b)
05150                                     if (p[offset4] < c_b)
05151                                       goto is_a_corner;
05152                                     else
05153                                       if (p[offset10] < c_b)
05154                                         goto is_a_corner;
05155                                       else
05156                                         goto is_not_a_corner;
05157                                   else
05158                                     if (p[offset8] < c_b)
05159                                       if (p[offset10] < c_b)
05160                                         goto is_a_corner;
05161                                       else
05162                                         goto is_not_a_corner;
05163                                     else
05164                                       goto is_not_a_corner;
05165                                 else
05166                                   goto is_not_a_corner;
05167                           else
05168                             goto is_not_a_corner;
05169                       else
05170                         goto is_not_a_corner;
05171                   else
05172                     if (p[offset7] < c_b)
05173                       if (p[offset2] > cb)
05174                         if (p[offset1] > cb)
05175                           if (p[offset6] > cb)
05176                             goto is_not_a_corner;
05177                           else
05178                             if (p[offset6] < c_b)
05179                               if (p[offset8] < c_b)
05180                                 if (p[offset4] < c_b)
05181                                   if (p[offset3] < c_b)
05182                                     goto is_a_corner;
05183                                   else
05184                                     if (p[offset10] < c_b)
05185                                       goto is_a_corner;
05186                                     else
05187                                       goto is_not_a_corner;
05188                                 else
05189                                   if (p[offset10] < c_b)
05190                                     if (p[offset11] < c_b)
05191                                       goto is_a_corner;
05192                                     else
05193                                       goto is_not_a_corner;
05194                                   else
05195                                     goto is_not_a_corner;
05196                               else
05197                                 goto is_not_a_corner;
05198                             else
05199                               goto is_not_a_corner;
05200                         else
05201                           if (p[offset1] < c_b)
05202                             if (p[offset6] > cb)
05203                               if (p[offset8] < c_b)
05204                                 if (p[offset10] < c_b)
05205                                   if (p[offset11] < c_b)
05206                                     goto is_a_corner;
05207                                   else
05208                                     goto is_not_a_corner;
05209                                 else
05210                                   goto is_not_a_corner;
05211                               else
05212                                 goto is_not_a_corner;
05213                             else
05214                               if (p[offset6] < c_b)
05215                                 if (p[offset8] < c_b)
05216                                   if (p[offset4] < c_b)
05217                                     if (p[offset3] < c_b)
05218                                       goto is_a_corner;
05219                                     else
05220                                       if (p[offset10] < c_b)
05221                                         goto is_a_corner;
05222                                       else
05223                                         goto is_not_a_corner;
05224                                   else
05225                                     if (p[offset10] < c_b)
05226                                       if (p[offset11] < c_b)
05227                                         goto is_a_corner;
05228                                       else
05229                                         goto is_not_a_corner;
05230                                     else
05231                                       goto is_not_a_corner;
05232                                 else
05233                                   goto is_not_a_corner;
05234                               else
05235                                 if (p[offset8] < c_b)
05236                                   if (p[offset10] < c_b)
05237                                     if (p[offset11] < c_b)
05238                                       goto is_a_corner;
05239                                     else
05240                                       goto is_not_a_corner;
05241                                   else
05242                                     goto is_not_a_corner;
05243                                 else
05244                                   goto is_not_a_corner;
05245                           else
05246                             if (p[offset6] > cb)
05247                               goto is_not_a_corner;
05248                             else
05249                               if (p[offset6] < c_b)
05250                                 if (p[offset8] < c_b)
05251                                   if (p[offset4] < c_b)
05252                                     if (p[offset3] < c_b)
05253                                       goto is_a_corner;
05254                                     else
05255                                       if (p[offset10] < c_b)
05256                                         goto is_a_corner;
05257                                       else
05258                                         goto is_not_a_corner;
05259                                   else
05260                                     if (p[offset10] < c_b)
05261                                       if (p[offset11] < c_b)
05262                                         goto is_a_corner;
05263                                       else
05264                                         goto is_not_a_corner;
05265                                     else
05266                                       goto is_not_a_corner;
05267                                 else
05268                                   goto is_not_a_corner;
05269                               else
05270                                 goto is_not_a_corner;
05271                       else
05272                         if (p[offset2] < c_b)
05273                           if (p[offset1] > cb)
05274                             if (p[offset6] > cb)
05275                               goto is_not_a_corner;
05276                             else
05277                               if (p[offset6] < c_b)
05278                                 if (p[offset8] < c_b)
05279                                   if (p[offset4] < c_b)
05280                                     if (p[offset3] < c_b)
05281                                       goto is_a_corner;
05282                                     else
05283                                       if (p[offset10] < c_b)
05284                                         goto is_a_corner;
05285                                       else
05286                                         goto is_not_a_corner;
05287                                   else
05288                                     if (p[offset10] < c_b)
05289                                       if (p[offset11] < c_b)
05290                                         goto is_a_corner;
05291                                       else
05292                                         goto is_not_a_corner;
05293                                     else
05294                                       goto is_not_a_corner;
05295                                 else
05296                                   goto is_not_a_corner;
05297                               else
05298                                 goto is_not_a_corner;
05299                           else
05300                             if (p[offset1] < c_b)
05301                               if (p[offset6] > cb)
05302                                 if (p[offset11] < c_b)
05303                                   if (p[offset3] < c_b)
05304                                     if (p[offset4] < c_b)
05305                                       goto is_a_corner;
05306                                     else
05307                                       if (p[offset10] < c_b)
05308                                         goto is_a_corner;
05309                                       else
05310                                         goto is_not_a_corner;
05311                                   else
05312                                     if (p[offset8] < c_b)
05313                                       if (p[offset10] < c_b)
05314                                         goto is_a_corner;
05315                                       else
05316                                         goto is_not_a_corner;
05317                                     else
05318                                       goto is_not_a_corner;
05319                                 else
05320                                   goto is_not_a_corner;
05321                               else
05322                                 if (p[offset6] < c_b)
05323                                   if (p[offset3] < c_b)
05324                                     if (p[offset4] < c_b)
05325                                       goto is_a_corner;
05326                                     else
05327                                       if (p[offset10] < c_b)
05328                                         if (p[offset11] < c_b)
05329                                           goto is_a_corner;
05330                                         else
05331                                           goto is_not_a_corner;
05332                                       else
05333                                         goto is_not_a_corner;
05334                                   else
05335                                     if (p[offset8] < c_b)
05336                                       if (p[offset10] < c_b)
05337                                         if (p[offset4] < c_b)
05338                                           goto is_a_corner;
05339                                         else
05340                                           if (p[offset11] < c_b)
05341                                             goto is_a_corner;
05342                                           else
05343                                             goto is_not_a_corner;
05344                                       else
05345                                         goto is_not_a_corner;
05346                                     else
05347                                       goto is_not_a_corner;
05348                                 else
05349                                   if (p[offset11] < c_b)
05350                                     if (p[offset3] < c_b)
05351                                       if (p[offset4] < c_b)
05352                                         goto is_a_corner;
05353                                       else
05354                                         if (p[offset10] < c_b)
05355                                           goto is_a_corner;
05356                                         else
05357                                           goto is_not_a_corner;
05358                                     else
05359                                       if (p[offset8] < c_b)
05360                                         if (p[offset10] < c_b)
05361                                           goto is_a_corner;
05362                                         else
05363                                           goto is_not_a_corner;
05364                                       else
05365                                         goto is_not_a_corner;
05366                                   else
05367                                     goto is_not_a_corner;
05368                             else
05369                               if (p[offset6] > cb)
05370                                 goto is_not_a_corner;
05371                               else
05372                                 if (p[offset6] < c_b)
05373                                   if (p[offset8] < c_b)
05374                                     if (p[offset4] < c_b)
05375                                       if (p[offset3] < c_b)
05376                                         goto is_a_corner;
05377                                       else
05378                                         if (p[offset10] < c_b)
05379                                           goto is_a_corner;
05380                                         else
05381                                           goto is_not_a_corner;
05382                                     else
05383                                       if (p[offset10] < c_b)
05384                                         if (p[offset11] < c_b)
05385                                           goto is_a_corner;
05386                                         else
05387                                           goto is_not_a_corner;
05388                                       else
05389                                         goto is_not_a_corner;
05390                                   else
05391                                     goto is_not_a_corner;
05392                                 else
05393                                   goto is_not_a_corner;
05394                         else
05395                           if (p[offset1] > cb)
05396                             if (p[offset6] > cb)
05397                               goto is_not_a_corner;
05398                             else
05399                               if (p[offset6] < c_b)
05400                                 if (p[offset8] < c_b)
05401                                   if (p[offset4] < c_b)
05402                                     if (p[offset3] < c_b)
05403                                       goto is_a_corner;
05404                                     else
05405                                       if (p[offset10] < c_b)
05406                                         goto is_a_corner;
05407                                       else
05408                                         goto is_not_a_corner;
05409                                   else
05410                                     if (p[offset10] < c_b)
05411                                       if (p[offset11] < c_b)
05412                                         goto is_a_corner;
05413                                       else
05414                                         goto is_not_a_corner;
05415                                     else
05416                                       goto is_not_a_corner;
05417                                 else
05418                                   goto is_not_a_corner;
05419                               else
05420                                 goto is_not_a_corner;
05421                           else
05422                             if (p[offset1] < c_b)
05423                               if (p[offset6] > cb)
05424                                 if (p[offset8] < c_b)
05425                                   if (p[offset10] < c_b)
05426                                     if (p[offset11] < c_b)
05427                                       goto is_a_corner;
05428                                     else
05429                                       goto is_not_a_corner;
05430                                   else
05431                                     goto is_not_a_corner;
05432                                 else
05433                                   goto is_not_a_corner;
05434                               else
05435                                 if (p[offset6] < c_b)
05436                                   if (p[offset8] < c_b)
05437                                     if (p[offset4] < c_b)
05438                                       if (p[offset3] < c_b)
05439                                         goto is_a_corner;
05440                                       else
05441                                         if (p[offset10] < c_b)
05442                                           goto is_a_corner;
05443                                         else
05444                                           goto is_not_a_corner;
05445                                     else
05446                                       if (p[offset10] < c_b)
05447                                         if (p[offset11] < c_b)
05448                                           goto is_a_corner;
05449                                         else
05450                                           goto is_not_a_corner;
05451                                       else
05452                                         goto is_not_a_corner;
05453                                   else
05454                                     goto is_not_a_corner;
05455                                 else
05456                                   if (p[offset8] < c_b)
05457                                     if (p[offset10] < c_b)
05458                                       if (p[offset11] < c_b)
05459                                         goto is_a_corner;
05460                                       else
05461                                         goto is_not_a_corner;
05462                                     else
05463                                       goto is_not_a_corner;
05464                                   else
05465                                     goto is_not_a_corner;
05466                             else
05467                               if (p[offset6] > cb)
05468                                 goto is_not_a_corner;
05469                               else
05470                                 if (p[offset6] < c_b)
05471                                   if (p[offset8] < c_b)
05472                                     if (p[offset4] < c_b)
05473                                       if (p[offset3] < c_b)
05474                                         goto is_a_corner;
05475                                       else
05476                                         if (p[offset10] < c_b)
05477                                           goto is_a_corner;
05478                                         else
05479                                           goto is_not_a_corner;
05480                                     else
05481                                       if (p[offset10] < c_b)
05482                                         if (p[offset11] < c_b)
05483                                           goto is_a_corner;
05484                                         else
05485                                           goto is_not_a_corner;
05486                                       else
05487                                         goto is_not_a_corner;
05488                                   else
05489                                     goto is_not_a_corner;
05490                                 else
05491                                   goto is_not_a_corner;
05492                     else
05493                       if (p[offset2] > cb)
05494                         goto is_not_a_corner;
05495                       else
05496                         if (p[offset2] < c_b)
05497                           if (p[offset1] > cb)
05498                             goto is_not_a_corner;
05499                           else
05500                             if (p[offset1] < c_b)
05501                               if (p[offset6] > cb)
05502                                 if (p[offset11] < c_b)
05503                                   if (p[offset3] < c_b)
05504                                     if (p[offset4] < c_b)
05505                                       goto is_a_corner;
05506                                     else
05507                                       if (p[offset10] < c_b)
05508                                         goto is_a_corner;
05509                                       else
05510                                         goto is_not_a_corner;
05511                                   else
05512                                     if (p[offset8] < c_b)
05513                                       if (p[offset10] < c_b)
05514                                         goto is_a_corner;
05515                                       else
05516                                         goto is_not_a_corner;
05517                                     else
05518                                       goto is_not_a_corner;
05519                                 else
05520                                   goto is_not_a_corner;
05521                               else
05522                                 if (p[offset6] < c_b)
05523                                   if (p[offset3] < c_b)
05524                                     if (p[offset4] < c_b)
05525                                       goto is_a_corner;
05526                                     else
05527                                       if (p[offset10] < c_b)
05528                                         if (p[offset11] < c_b)
05529                                           goto is_a_corner;
05530                                         else
05531                                           goto is_not_a_corner;
05532                                       else
05533                                         goto is_not_a_corner;
05534                                   else
05535                                     if (p[offset8] < c_b)
05536                                       if (p[offset10] < c_b)
05537                                         if (p[offset11] < c_b)
05538                                           goto is_a_corner;
05539                                         else
05540                                           goto is_not_a_corner;
05541                                       else
05542                                         goto is_not_a_corner;
05543                                     else
05544                                       goto is_not_a_corner;
05545                                 else
05546                                   if (p[offset11] < c_b)
05547                                     if (p[offset3] < c_b)
05548                                       if (p[offset4] < c_b)
05549                                         goto is_a_corner;
05550                                       else
05551                                         if (p[offset10] < c_b)
05552                                           goto is_a_corner;
05553                                         else
05554                                           goto is_not_a_corner;
05555                                     else
05556                                       if (p[offset8] < c_b)
05557                                         if (p[offset10] < c_b)
05558                                           goto is_a_corner;
05559                                         else
05560                                           goto is_not_a_corner;
05561                                       else
05562                                         goto is_not_a_corner;
05563                                   else
05564                                     goto is_not_a_corner;
05565                             else
05566                               goto is_not_a_corner;
05567                         else
05568                           goto is_not_a_corner;
05569                 else
05570                   if (p[offset2] > cb)
05571                     goto is_not_a_corner;
05572                   else
05573                     if (p[offset2] < c_b)
05574                       if (p[offset7] > cb)
05575                         if (p[offset1] > cb)
05576                           goto is_not_a_corner;
05577                         else
05578                           if (p[offset1] < c_b)
05579                             if (p[offset6] < c_b)
05580                               if (p[offset3] < c_b)
05581                                 if (p[offset4] < c_b)
05582                                   goto is_a_corner;
05583                                 else
05584                                   goto is_not_a_corner;
05585                               else
05586                                 goto is_not_a_corner;
05587                             else
05588                               if (p[offset6] > cb)
05589                                 if (p[offset3] < c_b)
05590                                   if (p[offset4] < c_b)
05591                                     if (p[offset11] < c_b)
05592                                       goto is_a_corner;
05593                                     else
05594                                       goto is_not_a_corner;
05595                                   else
05596                                     goto is_not_a_corner;
05597                                 else
05598                                   goto is_not_a_corner;
05599                               else
05600                                 if (p[offset3] < c_b)
05601                                   if (p[offset4] < c_b)
05602                                     if (p[offset11] < c_b)
05603                                       goto is_a_corner;
05604                                     else
05605                                       goto is_not_a_corner;
05606                                   else
05607                                     goto is_not_a_corner;
05608                                 else
05609                                   goto is_not_a_corner;
05610                           else
05611                             goto is_not_a_corner;
05612                       else
05613                         if (p[offset7] < c_b)
05614                           if (p[offset1] > cb)
05615                             if (p[offset6] > cb)
05616                               goto is_not_a_corner;
05617                             else
05618                               if (p[offset6] < c_b)
05619                                 if (p[offset3] < c_b)
05620                                   if (p[offset4] < c_b)
05621                                     if (p[offset8] < c_b)
05622                                       goto is_a_corner;
05623                                     else
05624                                       goto is_not_a_corner;
05625                                   else
05626                                     goto is_not_a_corner;
05627                                 else
05628                                   goto is_not_a_corner;
05629                               else
05630                                 goto is_not_a_corner;
05631                           else
05632                             if (p[offset1] < c_b)
05633                               if (p[offset6] < c_b)
05634                                 if (p[offset3] < c_b)
05635                                   if (p[offset4] < c_b)
05636                                     goto is_a_corner;
05637                                   else
05638                                     goto is_not_a_corner;
05639                                 else
05640                                   goto is_not_a_corner;
05641                               else
05642                                 if (p[offset6] > cb)
05643                                   if (p[offset3] < c_b)
05644                                     if (p[offset4] < c_b)
05645                                       if (p[offset11] < c_b)
05646                                         goto is_a_corner;
05647                                       else
05648                                         goto is_not_a_corner;
05649                                     else
05650                                       goto is_not_a_corner;
05651                                   else
05652                                     goto is_not_a_corner;
05653                                 else
05654                                   if (p[offset3] < c_b)
05655                                     if (p[offset4] < c_b)
05656                                       if (p[offset11] < c_b)
05657                                         goto is_a_corner;
05658                                       else
05659                                         goto is_not_a_corner;
05660                                     else
05661                                       goto is_not_a_corner;
05662                                   else
05663                                     goto is_not_a_corner;
05664                             else
05665                               if (p[offset6] > cb)
05666                                 goto is_not_a_corner;
05667                               else
05668                                 if (p[offset6] < c_b)
05669                                   if (p[offset3] < c_b)
05670                                     if (p[offset4] < c_b)
05671                                       if (p[offset8] < c_b)
05672                                         goto is_a_corner;
05673                                       else
05674                                         goto is_not_a_corner;
05675                                     else
05676                                       goto is_not_a_corner;
05677                                   else
05678                                     goto is_not_a_corner;
05679                                 else
05680                                   goto is_not_a_corner;
05681                         else
05682                           if (p[offset1] > cb)
05683                             goto is_not_a_corner;
05684                           else
05685                             if (p[offset1] < c_b)
05686                               if (p[offset6] < c_b)
05687                                 if (p[offset3] < c_b)
05688                                   if (p[offset4] < c_b)
05689                                     goto is_a_corner;
05690                                   else
05691                                     goto is_not_a_corner;
05692                                 else
05693                                   goto is_not_a_corner;
05694                               else
05695                                 if (p[offset6] > cb)
05696                                   if (p[offset3] < c_b)
05697                                     if (p[offset4] < c_b)
05698                                       if (p[offset11] < c_b)
05699                                         goto is_a_corner;
05700                                       else
05701                                         goto is_not_a_corner;
05702                                     else
05703                                       goto is_not_a_corner;
05704                                   else
05705                                     goto is_not_a_corner;
05706                                 else
05707                                   if (p[offset3] < c_b)
05708                                     if (p[offset4] < c_b)
05709                                       if (p[offset11] < c_b)
05710                                         goto is_a_corner;
05711                                       else
05712                                         goto is_not_a_corner;
05713                                     else
05714                                       goto is_not_a_corner;
05715                                   else
05716                                     goto is_not_a_corner;
05717                             else
05718                               goto is_not_a_corner;
05719                     else
05720                       goto is_not_a_corner;
05721             else
05722               if (p[offset5] > cb)
05723                 if (p[offset2] > cb)
05724                   if (p[offset7] < c_b)
05725                     if (p[offset9] > cb)
05726                       goto is_not_a_corner;
05727                     else
05728                       if (p[offset9] < c_b)
05729                         if (p[offset1] > cb)
05730                           if (p[offset6] > cb)
05731                             goto is_not_a_corner;
05732                           else
05733                             if (p[offset6] < c_b)
05734                               if (p[offset8] < c_b)
05735                                 if (p[offset10] < c_b)
05736                                   if (p[offset11] < c_b)
05737                                     goto is_a_corner;
05738                                   else
05739                                     goto is_not_a_corner;
05740                                 else
05741                                   goto is_not_a_corner;
05742                               else
05743                                 goto is_not_a_corner;
05744                             else
05745                               goto is_not_a_corner;
05746                         else
05747                           if (p[offset1] < c_b)
05748                             if (p[offset6] > cb)
05749                               if (p[offset8] < c_b)
05750                                 if (p[offset10] < c_b)
05751                                   if (p[offset11] < c_b)
05752                                     goto is_a_corner;
05753                                   else
05754                                     goto is_not_a_corner;
05755                                 else
05756                                   goto is_not_a_corner;
05757                               else
05758                                 goto is_not_a_corner;
05759                             else
05760                               if (p[offset6] < c_b)
05761                                 if (p[offset8] < c_b)
05762                                   if (p[offset10] < c_b)
05763                                     if (p[offset11] < c_b)
05764                                       goto is_a_corner;
05765                                     else
05766                                       goto is_not_a_corner;
05767                                   else
05768                                     goto is_not_a_corner;
05769                                 else
05770                                   goto is_not_a_corner;
05771                               else
05772                                 if (p[offset8] < c_b)
05773                                   if (p[offset10] < c_b)
05774                                     if (p[offset11] < c_b)
05775                                       goto is_a_corner;
05776                                     else
05777                                       goto is_not_a_corner;
05778                                   else
05779                                     goto is_not_a_corner;
05780                                 else
05781                                   goto is_not_a_corner;
05782                           else
05783                             if (p[offset6] > cb)
05784                               goto is_not_a_corner;
05785                             else
05786                               if (p[offset6] < c_b)
05787                                 if (p[offset8] < c_b)
05788                                   if (p[offset10] < c_b)
05789                                     if (p[offset11] < c_b)
05790                                       goto is_a_corner;
05791                                     else
05792                                       goto is_not_a_corner;
05793                                   else
05794                                     goto is_not_a_corner;
05795                                 else
05796                                   goto is_not_a_corner;
05797                               else
05798                                 goto is_not_a_corner;
05799                       else
05800                         goto is_not_a_corner;
05801                   else
05802                     if (p[offset7] > cb)
05803                       if (p[offset9] < c_b)
05804                         if (p[offset1] > cb)
05805                           if (p[offset6] < c_b)
05806                             goto is_not_a_corner;
05807                           else
05808                             if (p[offset6] > cb)
05809                               if (p[offset3] > cb)
05810                                 if (p[offset4] > cb)
05811                                   goto is_a_corner;
05812                                 else
05813                                   goto is_not_a_corner;
05814                               else
05815                                 goto is_not_a_corner;
05816                             else
05817                               goto is_not_a_corner;
05818                         else
05819                           if (p[offset1] < c_b)
05820                             if (p[offset6] < c_b)
05821                               goto is_not_a_corner;
05822                             else
05823                               if (p[offset6] > cb)
05824                                 if (p[offset3] > cb)
05825                                   if (p[offset4] > cb)
05826                                     if (p[offset8] > cb)
05827                                       goto is_a_corner;
05828                                     else
05829                                       goto is_not_a_corner;
05830                                   else
05831                                     goto is_not_a_corner;
05832                                 else
05833                                   goto is_not_a_corner;
05834                               else
05835                                 goto is_not_a_corner;
05836                           else
05837                             if (p[offset6] < c_b)
05838                               goto is_not_a_corner;
05839                             else
05840                               if (p[offset6] > cb)
05841                                 if (p[offset3] > cb)
05842                                   if (p[offset4] > cb)
05843                                     if (p[offset8] > cb)
05844                                       goto is_a_corner;
05845                                     else
05846                                       goto is_not_a_corner;
05847                                   else
05848                                     goto is_not_a_corner;
05849                                 else
05850                                   goto is_not_a_corner;
05851                               else
05852                                 goto is_not_a_corner;
05853                       else
05854                         if (p[offset9] > cb)
05855                           if (p[offset1] < c_b)
05856                             if (p[offset6] < c_b)
05857                               goto is_not_a_corner;
05858                             else
05859                               if (p[offset6] > cb)
05860                                 if (p[offset8] > cb)
05861                                   if (p[offset4] > cb)
05862                                     if (p[offset3] > cb)
05863                                       goto is_a_corner;
05864                                     else
05865                                       if (p[offset10] > cb)
05866                                         goto is_a_corner;
05867                                       else
05868                                         goto is_not_a_corner;
05869                                   else
05870                                     if (p[offset10] > cb)
05871                                       if (p[offset11] > cb)
05872                                         goto is_a_corner;
05873                                       else
05874                                         goto is_not_a_corner;
05875                                     else
05876                                       goto is_not_a_corner;
05877                                 else
05878                                   goto is_not_a_corner;
05879                               else
05880                                 goto is_not_a_corner;
05881                           else
05882                             if (p[offset1] > cb)
05883                               if (p[offset6] < c_b)
05884                                 goto is_not_a_corner;
05885                               else
05886                                 if (p[offset6] > cb)
05887                                   if (p[offset4] > cb)
05888                                     if (p[offset3] > cb)
05889                                       goto is_a_corner;
05890                                     else
05891                                       if (p[offset8] > cb)
05892                                         if (p[offset10] > cb)
05893                                           goto is_a_corner;
05894                                         else
05895                                           goto is_not_a_corner;
05896                                       else
05897                                         goto is_not_a_corner;
05898                                   else
05899                                     if (p[offset8] > cb)
05900                                       if (p[offset10] > cb)
05901                                         if (p[offset11] > cb)
05902                                           goto is_a_corner;
05903                                         else
05904                                           goto is_not_a_corner;
05905                                       else
05906                                         goto is_not_a_corner;
05907                                     else
05908                                       goto is_not_a_corner;
05909                                 else
05910                                   goto is_not_a_corner;
05911                             else
05912                               if (p[offset6] < c_b)
05913                                 goto is_not_a_corner;
05914                               else
05915                                 if (p[offset6] > cb)
05916                                   if (p[offset8] > cb)
05917                                     if (p[offset4] > cb)
05918                                       if (p[offset3] > cb)
05919                                         goto is_a_corner;
05920                                       else
05921                                         if (p[offset10] > cb)
05922                                           goto is_a_corner;
05923                                         else
05924                                           goto is_not_a_corner;
05925                                     else
05926                                       if (p[offset10] > cb)
05927                                         if (p[offset11] > cb)
05928                                           goto is_a_corner;
05929                                         else
05930                                           goto is_not_a_corner;
05931                                       else
05932                                         goto is_not_a_corner;
05933                                   else
05934                                     goto is_not_a_corner;
05935                                 else
05936                                   goto is_not_a_corner;
05937                         else
05938                           if (p[offset1] > cb)
05939                             if (p[offset6] < c_b)
05940                               goto is_not_a_corner;
05941                             else
05942                               if (p[offset6] > cb)
05943                                 if (p[offset3] > cb)
05944                                   if (p[offset4] > cb)
05945                                     goto is_a_corner;
05946                                   else
05947                                     goto is_not_a_corner;
05948                                 else
05949                                   goto is_not_a_corner;
05950                               else
05951                                 goto is_not_a_corner;
05952                           else
05953                             if (p[offset1] < c_b)
05954                               if (p[offset6] < c_b)
05955                                 goto is_not_a_corner;
05956                               else
05957                                 if (p[offset6] > cb)
05958                                   if (p[offset3] > cb)
05959                                     if (p[offset4] > cb)
05960                                       if (p[offset8] > cb)
05961                                         goto is_a_corner;
05962                                       else
05963                                         goto is_not_a_corner;
05964                                     else
05965                                       goto is_not_a_corner;
05966                                   else
05967                                     goto is_not_a_corner;
05968                                 else
05969                                   goto is_not_a_corner;
05970                             else
05971                               if (p[offset6] < c_b)
05972                                 goto is_not_a_corner;
05973                               else
05974                                 if (p[offset6] > cb)
05975                                   if (p[offset3] > cb)
05976                                     if (p[offset4] > cb)
05977                                       if (p[offset8] > cb)
05978                                         goto is_a_corner;
05979                                       else
05980                                         goto is_not_a_corner;
05981                                     else
05982                                       goto is_not_a_corner;
05983                                   else
05984                                     goto is_not_a_corner;
05985                                 else
05986                                   goto is_not_a_corner;
05987                     else
05988                       goto is_not_a_corner;
05989                 else
05990                   if (p[offset2] < c_b)
05991                     if (p[offset7] < c_b)
05992                       if (p[offset9] > cb)
05993                         if (p[offset1] > cb)
05994                           goto is_not_a_corner;
05995                         else
05996                           if (p[offset1] < c_b)
05997                             if (p[offset6] > cb)
05998                               if (p[offset3] < c_b)
05999                                 if (p[offset4] < c_b)
06000                                   if (p[offset10] < c_b)
06001                                     if (p[offset11] < c_b)
06002                                       goto is_a_corner;
06003                                     else
06004                                       goto is_not_a_corner;
06005                                   else
06006                                     goto is_not_a_corner;
06007                                 else
06008                                   goto is_not_a_corner;
06009                               else
06010                                 goto is_not_a_corner;
06011                             else
06012                               if (p[offset6] < c_b)
06013                                 if (p[offset3] < c_b)
06014                                   if (p[offset4] < c_b)
06015                                     if (p[offset10] < c_b)
06016                                       if (p[offset11] < c_b)
06017                                         goto is_a_corner;
06018                                       else
06019                                         goto is_not_a_corner;
06020                                     else
06021                                       goto is_not_a_corner;
06022                                   else
06023                                     goto is_not_a_corner;
06024                                 else
06025                                   goto is_not_a_corner;
06026                               else
06027                                 if (p[offset3] < c_b)
06028                                   if (p[offset4] < c_b)
06029                                     if (p[offset10] < c_b)
06030                                       if (p[offset11] < c_b)
06031                                         goto is_a_corner;
06032                                       else
06033                                         goto is_not_a_corner;
06034                                     else
06035                                       goto is_not_a_corner;
06036                                   else
06037                                     goto is_not_a_corner;
06038                                 else
06039                                   goto is_not_a_corner;
06040                           else
06041                             goto is_not_a_corner;
06042                       else
06043                         if (p[offset9] < c_b)
06044                           if (p[offset1] > cb)
06045                             if (p[offset6] > cb)
06046                               goto is_not_a_corner;
06047                             else
06048                               if (p[offset6] < c_b)
06049                                 if (p[offset8] < c_b)
06050                                   if (p[offset10] < c_b)
06051                                     if (p[offset11] < c_b)
06052                                       goto is_a_corner;
06053                                     else
06054                                       goto is_not_a_corner;
06055                                   else
06056                                     goto is_not_a_corner;
06057                                 else
06058                                   goto is_not_a_corner;
06059                               else
06060                                 goto is_not_a_corner;
06061                           else
06062                             if (p[offset1] < c_b)
06063                               if (p[offset6] > cb)
06064                                 if (p[offset10] < c_b)
06065                                   if (p[offset11] < c_b)
06066                                     if (p[offset3] < c_b)
06067                                       goto is_a_corner;
06068                                     else
06069                                       if (p[offset8] < c_b)
06070                                         goto is_a_corner;
06071                                       else
06072                                         goto is_not_a_corner;
06073                                   else
06074                                     goto is_not_a_corner;
06075                                 else
06076                                   goto is_not_a_corner;
06077                               else
06078                                 if (p[offset6] < c_b)
06079                                   if (p[offset10] < c_b)
06080                                     if (p[offset11] < c_b)
06081                                       if (p[offset3] < c_b)
06082                                         goto is_a_corner;
06083                                       else
06084                                         if (p[offset8] < c_b)
06085                                           goto is_a_corner;
06086                                         else
06087                                           goto is_not_a_corner;
06088                                     else
06089                                       goto is_not_a_corner;
06090                                   else
06091                                     goto is_not_a_corner;
06092                                 else
06093                                   if (p[offset10] < c_b)
06094                                     if (p[offset11] < c_b)
06095                                       if (p[offset3] < c_b)
06096                                         goto is_a_corner;
06097                                       else
06098                                         if (p[offset8] < c_b)
06099                                           goto is_a_corner;
06100                                         else
06101                                           goto is_not_a_corner;
06102                                     else
06103                                       goto is_not_a_corner;
06104                                   else
06105                                     goto is_not_a_corner;
06106                             else
06107                               if (p[offset6] > cb)
06108                                 goto is_not_a_corner;
06109                               else
06110                                 if (p[offset6] < c_b)
06111                                   if (p[offset8] < c_b)
06112                                     if (p[offset10] < c_b)
06113                                       if (p[offset11] < c_b)
06114                                         goto is_a_corner;
06115                                       else
06116                                         goto is_not_a_corner;
06117                                     else
06118                                       goto is_not_a_corner;
06119                                   else
06120                                     goto is_not_a_corner;
06121                                 else
06122                                   goto is_not_a_corner;
06123                         else
06124                           if (p[offset1] > cb)
06125                             goto is_not_a_corner;
06126                           else
06127                             if (p[offset1] < c_b)
06128                               if (p[offset6] > cb)
06129                                 if (p[offset3] < c_b)
06130                                   if (p[offset4] < c_b)
06131                                     if (p[offset10] < c_b)
06132                                       if (p[offset11] < c_b)
06133                                         goto is_a_corner;
06134                                       else
06135                                         goto is_not_a_corner;
06136                                     else
06137                                       goto is_not_a_corner;
06138                                   else
06139                                     goto is_not_a_corner;
06140                                 else
06141                                   goto is_not_a_corner;
06142                               else
06143                                 if (p[offset6] < c_b)
06144                                   if (p[offset3] < c_b)
06145                                     if (p[offset4] < c_b)
06146                                       if (p[offset10] < c_b)
06147                                         if (p[offset11] < c_b)
06148                                           goto is_a_corner;
06149                                         else
06150                                           goto is_not_a_corner;
06151                                       else
06152                                         goto is_not_a_corner;
06153                                     else
06154                                       goto is_not_a_corner;
06155                                   else
06156                                     goto is_not_a_corner;
06157                                 else
06158                                   if (p[offset3] < c_b)
06159                                     if (p[offset4] < c_b)
06160                                       if (p[offset10] < c_b)
06161                                         if (p[offset11] < c_b)
06162                                           goto is_a_corner;
06163                                         else
06164                                           goto is_not_a_corner;
06165                                       else
06166                                         goto is_not_a_corner;
06167                                     else
06168                                       goto is_not_a_corner;
06169                                   else
06170                                     goto is_not_a_corner;
06171                             else
06172                               goto is_not_a_corner;
06173                     else
06174                       if (p[offset7] > cb)
06175                         if (p[offset9] < c_b)
06176                           if (p[offset1] > cb)
06177                             goto is_not_a_corner;
06178                           else
06179                             if (p[offset1] < c_b)
06180                               if (p[offset6] > cb)
06181                                 if (p[offset10] < c_b)
06182                                   if (p[offset11] < c_b)
06183                                     if (p[offset3] < c_b)
06184                                       goto is_a_corner;
06185                                     else
06186                                       if (p[offset8] < c_b)
06187                                         goto is_a_corner;
06188                                       else
06189                                         goto is_not_a_corner;
06190                                   else
06191                                     goto is_not_a_corner;
06192                                 else
06193                                   goto is_not_a_corner;
06194                               else
06195                                 if (p[offset6] < c_b)
06196                                   if (p[offset10] < c_b)
06197                                     if (p[offset11] < c_b)
06198                                       if (p[offset3] < c_b)
06199                                         goto is_a_corner;
06200                                       else
06201                                         if (p[offset8] < c_b)
06202                                           goto is_a_corner;
06203                                         else
06204                                           goto is_not_a_corner;
06205                                     else
06206                                       goto is_not_a_corner;
06207                                   else
06208                                     goto is_not_a_corner;
06209                                 else
06210                                   if (p[offset10] < c_b)
06211                                     if (p[offset11] < c_b)
06212                                       if (p[offset3] < c_b)
06213                                         goto is_a_corner;
06214                                       else
06215                                         if (p[offset8] < c_b)
06216                                           goto is_a_corner;
06217                                         else
06218                                           goto is_not_a_corner;
06219                                     else
06220                                       goto is_not_a_corner;
06221                                   else
06222                                     goto is_not_a_corner;
06223                             else
06224                               goto is_not_a_corner;
06225                         else
06226                           if (p[offset9] > cb)
06227                             if (p[offset1] > cb)
06228                               if (p[offset6] < c_b)
06229                                 goto is_not_a_corner;
06230                               else
06231                                 if (p[offset6] > cb)
06232                                   if (p[offset8] > cb)
06233                                     if (p[offset4] > cb)
06234                                       if (p[offset3] > cb)
06235                                         goto is_a_corner;
06236                                       else
06237                                         if (p[offset10] > cb)
06238                                           goto is_a_corner;
06239                                         else
06240                                           goto is_not_a_corner;
06241                                     else
06242                                       if (p[offset10] > cb)
06243                                         if (p[offset11] > cb)
06244                                           goto is_a_corner;
06245                                         else
06246                                           goto is_not_a_corner;
06247                                       else
06248                                         goto is_not_a_corner;
06249                                   else
06250                                     goto is_not_a_corner;
06251                                 else
06252                                   goto is_not_a_corner;
06253                             else
06254                               if (p[offset1] < c_b)
06255                                 if (p[offset6] < c_b)
06256                                   if (p[offset3] < c_b)
06257                                     if (p[offset4] < c_b)
06258                                       if (p[offset10] < c_b)
06259                                         if (p[offset11] < c_b)
06260                                           goto is_a_corner;
06261                                         else
06262                                           goto is_not_a_corner;
06263                                       else
06264                                         goto is_not_a_corner;
06265                                     else
06266                                       goto is_not_a_corner;
06267                                   else
06268                                     goto is_not_a_corner;
06269                                 else
06270                                   if (p[offset6] > cb)
06271                                     if (p[offset4] < c_b)
06272                                       if (p[offset10] > cb)
06273                                         if (p[offset8] > cb)
06274                                           if (p[offset11] > cb)
06275                                             goto is_a_corner;
06276                                           else
06277                                             goto is_not_a_corner;
06278                                         else
06279                                           goto is_not_a_corner;
06280                                       else
06281                                         if (p[offset3] < c_b)
06282                                           if (p[offset11] < c_b)
06283                                             if (p[offset10] < c_b)
06284                                               goto is_a_corner;
06285                                             else
06286                                               goto is_not_a_corner;
06287                                           else
06288                                             goto is_not_a_corner;
06289                                         else
06290                                           goto is_not_a_corner;
06291                                     else
06292                                       if (p[offset8] > cb)
06293                                         if (p[offset10] > cb)
06294                                           if (p[offset4] > cb)
06295                                             goto is_a_corner;
06296                                           else
06297                                             if (p[offset11] > cb)
06298                                               goto is_a_corner;
06299                                             else
06300                                               goto is_not_a_corner;
06301                                         else
06302                                           if (p[offset3] > cb)
06303                                             if (p[offset4] > cb)
06304                                               goto is_a_corner;
06305                                             else
06306                                               goto is_not_a_corner;
06307                                           else
06308                                             goto is_not_a_corner;
06309                                       else
06310                                         goto is_not_a_corner;
06311                                   else
06312                                     if (p[offset3] < c_b)
06313                                       if (p[offset4] < c_b)
06314                                         if (p[offset10] < c_b)
06315                                           if (p[offset11] < c_b)
06316                                             goto is_a_corner;
06317                                           else
06318                                             goto is_not_a_corner;
06319                                         else
06320                                           goto is_not_a_corner;
06321                                       else
06322                                         goto is_not_a_corner;
06323                                     else
06324                                       goto is_not_a_corner;
06325                               else
06326                                 if (p[offset6] < c_b)
06327                                   goto is_not_a_corner;
06328                                 else
06329                                   if (p[offset6] > cb)
06330                                     if (p[offset8] > cb)
06331                                       if (p[offset4] > cb)
06332                                         if (p[offset3] > cb)
06333                                           goto is_a_corner;
06334                                         else
06335                                           if (p[offset10] > cb)
06336                                             goto is_a_corner;
06337                                           else
06338                                             goto is_not_a_corner;
06339                                       else
06340                                         if (p[offset10] > cb)
06341                                           if (p[offset11] > cb)
06342                                             goto is_a_corner;
06343                                           else
06344                                             goto is_not_a_corner;
06345                                         else
06346                                           goto is_not_a_corner;
06347                                     else
06348                                       goto is_not_a_corner;
06349                                   else
06350                                     goto is_not_a_corner;
06351                           else
06352                             if (p[offset1] > cb)
06353                               goto is_not_a_corner;
06354                             else
06355                               if (p[offset1] < c_b)
06356                                 if (p[offset6] > cb)
06357                                   if (p[offset3] < c_b)
06358                                     if (p[offset4] < c_b)
06359                                       if (p[offset10] < c_b)
06360                                         if (p[offset11] < c_b)
06361                                           goto is_a_corner;
06362                                         else
06363                                           goto is_not_a_corner;
06364                                       else
06365                                         goto is_not_a_corner;
06366                                     else
06367                                       goto is_not_a_corner;
06368                                   else
06369                                     goto is_not_a_corner;
06370                                 else
06371                                   if (p[offset6] < c_b)
06372                                     if (p[offset3] < c_b)
06373                                       if (p[offset4] < c_b)
06374                                         if (p[offset10] < c_b)
06375                                           if (p[offset11] < c_b)
06376                                             goto is_a_corner;
06377                                           else
06378                                             goto is_not_a_corner;
06379                                         else
06380                                           goto is_not_a_corner;
06381                                       else
06382                                         goto is_not_a_corner;
06383                                     else
06384                                       goto is_not_a_corner;
06385                                   else
06386                                     if (p[offset3] < c_b)
06387                                       if (p[offset4] < c_b)
06388                                         if (p[offset10] < c_b)
06389                                           if (p[offset11] < c_b)
06390                                             goto is_a_corner;
06391                                           else
06392                                             goto is_not_a_corner;
06393                                         else
06394                                           goto is_not_a_corner;
06395                                       else
06396                                         goto is_not_a_corner;
06397                                     else
06398                                       goto is_not_a_corner;
06399                               else
06400                                 goto is_not_a_corner;
06401                       else
06402                         if (p[offset9] > cb)
06403                           if (p[offset1] > cb)
06404                             goto is_not_a_corner;
06405                           else
06406                             if (p[offset1] < c_b)
06407                               if (p[offset6] > cb)
06408                                 if (p[offset3] < c_b)
06409                                   if (p[offset4] < c_b)
06410                                     if (p[offset10] < c_b)
06411                                       if (p[offset11] < c_b)
06412                                         goto is_a_corner;
06413                                       else
06414                                         goto is_not_a_corner;
06415                                     else
06416                                       goto is_not_a_corner;
06417                                   else
06418                                     goto is_not_a_corner;
06419                                 else
06420                                   goto is_not_a_corner;
06421                               else
06422                                 if (p[offset6] < c_b)
06423                                   if (p[offset3] < c_b)
06424                                     if (p[offset4] < c_b)
06425                                       if (p[offset10] < c_b)
06426                                         if (p[offset11] < c_b)
06427                                           goto is_a_corner;
06428                                         else
06429                                           goto is_not_a_corner;
06430                                       else
06431                                         goto is_not_a_corner;
06432                                     else
06433                                       goto is_not_a_corner;
06434                                   else
06435                                     goto is_not_a_corner;
06436                                 else
06437                                   if (p[offset3] < c_b)
06438                                     if (p[offset4] < c_b)
06439                                       if (p[offset10] < c_b)
06440                                         if (p[offset11] < c_b)
06441                                           goto is_a_corner;
06442                                         else
06443                                           goto is_not_a_corner;
06444                                       else
06445                                         goto is_not_a_corner;
06446                                     else
06447                                       goto is_not_a_corner;
06448                                   else
06449                                     goto is_not_a_corner;
06450                             else
06451                               goto is_not_a_corner;
06452                         else
06453                           if (p[offset9] < c_b)
06454                             if (p[offset1] > cb)
06455                               goto is_not_a_corner;
06456                             else
06457                               if (p[offset1] < c_b)
06458                                 if (p[offset6] > cb)
06459                                   if (p[offset10] < c_b)
06460                                     if (p[offset11] < c_b)
06461                                       if (p[offset3] < c_b)
06462                                         goto is_a_corner;
06463                                       else
06464                                         if (p[offset8] < c_b)
06465                                           goto is_a_corner;
06466                                         else
06467                                           goto is_not_a_corner;
06468                                     else
06469                                       goto is_not_a_corner;
06470                                   else
06471                                     goto is_not_a_corner;
06472                                 else
06473                                   if (p[offset6] < c_b)
06474                                     if (p[offset10] < c_b)
06475                                       if (p[offset11] < c_b)
06476                                         if (p[offset3] < c_b)
06477                                           goto is_a_corner;
06478                                         else
06479                                           if (p[offset8] < c_b)
06480                                             goto is_a_corner;
06481                                           else
06482                                             goto is_not_a_corner;
06483                                       else
06484                                         goto is_not_a_corner;
06485                                     else
06486                                       goto is_not_a_corner;
06487                                   else
06488                                     if (p[offset10] < c_b)
06489                                       if (p[offset11] < c_b)
06490                                         if (p[offset3] < c_b)
06491                                           goto is_a_corner;
06492                                         else
06493                                           if (p[offset8] < c_b)
06494                                             goto is_a_corner;
06495                                           else
06496                                             goto is_not_a_corner;
06497                                       else
06498                                         goto is_not_a_corner;
06499                                     else
06500                                       goto is_not_a_corner;
06501                               else
06502                                 goto is_not_a_corner;
06503                           else
06504                             if (p[offset1] > cb)
06505                               goto is_not_a_corner;
06506                             else
06507                               if (p[offset1] < c_b)
06508                                 if (p[offset6] > cb)
06509                                   if (p[offset3] < c_b)
06510                                     if (p[offset4] < c_b)
06511                                       if (p[offset10] < c_b)
06512                                         if (p[offset11] < c_b)
06513                                           goto is_a_corner;
06514                                         else
06515                                           goto is_not_a_corner;
06516                                       else
06517                                         goto is_not_a_corner;
06518                                     else
06519                                       goto is_not_a_corner;
06520                                   else
06521                                     goto is_not_a_corner;
06522                                 else
06523                                   if (p[offset6] < c_b)
06524                                     if (p[offset3] < c_b)
06525                                       if (p[offset4] < c_b)
06526                                         if (p[offset10] < c_b)
06527                                           if (p[offset11] < c_b)
06528                                             goto is_a_corner;
06529                                           else
06530                                             goto is_not_a_corner;
06531                                         else
06532                                           goto is_not_a_corner;
06533                                       else
06534                                         goto is_not_a_corner;
06535                                     else
06536                                       goto is_not_a_corner;
06537                                   else
06538                                     if (p[offset3] < c_b)
06539                                       if (p[offset4] < c_b)
06540                                         if (p[offset10] < c_b)
06541                                           if (p[offset11] < c_b)
06542                                             goto is_a_corner;
06543                                           else
06544                                             goto is_not_a_corner;
06545                                         else
06546                                           goto is_not_a_corner;
06547                                       else
06548                                         goto is_not_a_corner;
06549                                     else
06550                                       goto is_not_a_corner;
06551                               else
06552                                 goto is_not_a_corner;
06553                   else
06554                     if (p[offset7] > cb)
06555                       if (p[offset9] < c_b)
06556                         goto is_not_a_corner;
06557                       else
06558                         if (p[offset9] > cb)
06559                           if (p[offset1] > cb)
06560                             if (p[offset6] < c_b)
06561                               goto is_not_a_corner;
06562                             else
06563                               if (p[offset6] > cb)
06564                                 if (p[offset8] > cb)
06565                                   if (p[offset4] > cb)
06566                                     if (p[offset3] > cb)
06567                                       goto is_a_corner;
06568                                     else
06569                                       if (p[offset10] > cb)
06570                                         goto is_a_corner;
06571                                       else
06572                                         goto is_not_a_corner;
06573                                   else
06574                                     if (p[offset10] > cb)
06575                                       if (p[offset11] > cb)
06576                                         goto is_a_corner;
06577                                       else
06578                                         goto is_not_a_corner;
06579                                     else
06580                                       goto is_not_a_corner;
06581                                 else
06582                                   goto is_not_a_corner;
06583                               else
06584                                 goto is_not_a_corner;
06585                           else
06586                             if (p[offset1] < c_b)
06587                               if (p[offset6] < c_b)
06588                                 goto is_not_a_corner;
06589                               else
06590                                 if (p[offset6] > cb)
06591                                   if (p[offset8] > cb)
06592                                     if (p[offset4] > cb)
06593                                       if (p[offset3] > cb)
06594                                         goto is_a_corner;
06595                                       else
06596                                         if (p[offset10] > cb)
06597                                           goto is_a_corner;
06598                                         else
06599                                           goto is_not_a_corner;
06600                                     else
06601                                       if (p[offset10] > cb)
06602                                         if (p[offset11] > cb)
06603                                           goto is_a_corner;
06604                                         else
06605                                           goto is_not_a_corner;
06606                                       else
06607                                         goto is_not_a_corner;
06608                                   else
06609                                     goto is_not_a_corner;
06610                                 else
06611                                   goto is_not_a_corner;
06612                             else
06613                               if (p[offset6] < c_b)
06614                                 goto is_not_a_corner;
06615                               else
06616                                 if (p[offset6] > cb)
06617                                   if (p[offset8] > cb)
06618                                     if (p[offset4] > cb)
06619                                       if (p[offset3] > cb)
06620                                         goto is_a_corner;
06621                                       else
06622                                         if (p[offset10] > cb)
06623                                           goto is_a_corner;
06624                                         else
06625                                           goto is_not_a_corner;
06626                                     else
06627                                       if (p[offset10] > cb)
06628                                         if (p[offset11] > cb)
06629                                           goto is_a_corner;
06630                                         else
06631                                           goto is_not_a_corner;
06632                                       else
06633                                         goto is_not_a_corner;
06634                                   else
06635                                     goto is_not_a_corner;
06636                                 else
06637                                   goto is_not_a_corner;
06638                         else
06639                           goto is_not_a_corner;
06640                     else
06641                       if (p[offset9] < c_b)
06642                         if (p[offset7] < c_b)
06643                           if (p[offset1] > cb)
06644                             if (p[offset6] > cb)
06645                               goto is_not_a_corner;
06646                             else
06647                               if (p[offset6] < c_b)
06648                                 if (p[offset8] < c_b)
06649                                   if (p[offset10] < c_b)
06650                                     if (p[offset11] < c_b)
06651                                       goto is_a_corner;
06652                                     else
06653                                       goto is_not_a_corner;
06654                                   else
06655                                     goto is_not_a_corner;
06656                                 else
06657                                   goto is_not_a_corner;
06658                               else
06659                                 goto is_not_a_corner;
06660                           else
06661                             if (p[offset1] < c_b)
06662                               if (p[offset6] > cb)
06663                                 if (p[offset8] < c_b)
06664                                   if (p[offset10] < c_b)
06665                                     if (p[offset11] < c_b)
06666                                       goto is_a_corner;
06667                                     else
06668                                       goto is_not_a_corner;
06669                                   else
06670                                     goto is_not_a_corner;
06671                                 else
06672                                   goto is_not_a_corner;
06673                               else
06674                                 if (p[offset6] < c_b)
06675                                   if (p[offset8] < c_b)
06676                                     if (p[offset10] < c_b)
06677                                       if (p[offset11] < c_b)
06678                                         goto is_a_corner;
06679                                       else
06680                                         goto is_not_a_corner;
06681                                     else
06682                                       goto is_not_a_corner;
06683                                   else
06684                                     goto is_not_a_corner;
06685                                 else
06686                                   if (p[offset8] < c_b)
06687                                     if (p[offset10] < c_b)
06688                                       if (p[offset11] < c_b)
06689                                         goto is_a_corner;
06690                                       else
06691                                         goto is_not_a_corner;
06692                                     else
06693                                       goto is_not_a_corner;
06694                                   else
06695                                     goto is_not_a_corner;
06696                             else
06697                               if (p[offset6] > cb)
06698                                 goto is_not_a_corner;
06699                               else
06700                                 if (p[offset6] < c_b)
06701                                   if (p[offset8] < c_b)
06702                                     if (p[offset10] < c_b)
06703                                       if (p[offset11] < c_b)
06704                                         goto is_a_corner;
06705                                       else
06706                                         goto is_not_a_corner;
06707                                     else
06708                                       goto is_not_a_corner;
06709                                   else
06710                                     goto is_not_a_corner;
06711                                 else
06712                                   goto is_not_a_corner;
06713                         else
06714                           goto is_not_a_corner;
06715                       else
06716                         goto is_not_a_corner;
06717               else
06718                 if (p[offset2] > cb)
06719                   if (p[offset7] < c_b)
06720                     if (p[offset9] > cb)
06721                       goto is_not_a_corner;
06722                     else
06723                       if (p[offset9] < c_b)
06724                         if (p[offset1] > cb)
06725                           if (p[offset6] > cb)
06726                             goto is_not_a_corner;
06727                           else
06728                             if (p[offset6] < c_b)
06729                               if (p[offset8] < c_b)
06730                                 if (p[offset10] < c_b)
06731                                   if (p[offset11] < c_b)
06732                                     goto is_a_corner;
06733                                   else
06734                                     goto is_not_a_corner;
06735                                 else
06736                                   goto is_not_a_corner;
06737                               else
06738                                 goto is_not_a_corner;
06739                             else
06740                               goto is_not_a_corner;
06741                         else
06742                           if (p[offset1] < c_b)
06743                             if (p[offset6] > cb)
06744                               if (p[offset8] < c_b)
06745                                 if (p[offset10] < c_b)
06746                                   if (p[offset11] < c_b)
06747                                     goto is_a_corner;
06748                                   else
06749                                     goto is_not_a_corner;
06750                                 else
06751                                   goto is_not_a_corner;
06752                               else
06753                                 goto is_not_a_corner;
06754                             else
06755                               if (p[offset6] < c_b)
06756                                 if (p[offset8] < c_b)
06757                                   if (p[offset10] < c_b)
06758                                     if (p[offset11] < c_b)
06759                                       goto is_a_corner;
06760                                     else
06761                                       goto is_not_a_corner;
06762                                   else
06763                                     goto is_not_a_corner;
06764                                 else
06765                                   goto is_not_a_corner;
06766                               else
06767                                 if (p[offset8] < c_b)
06768                                   if (p[offset10] < c_b)
06769                                     if (p[offset11] < c_b)
06770                                       goto is_a_corner;
06771                                     else
06772                                       goto is_not_a_corner;
06773                                   else
06774                                     goto is_not_a_corner;
06775                                 else
06776                                   goto is_not_a_corner;
06777                           else
06778                             if (p[offset6] > cb)
06779                               goto is_not_a_corner;
06780                             else
06781                               if (p[offset6] < c_b)
06782                                 if (p[offset8] < c_b)
06783                                   if (p[offset10] < c_b)
06784                                     if (p[offset11] < c_b)
06785                                       goto is_a_corner;
06786                                     else
06787                                       goto is_not_a_corner;
06788                                   else
06789                                     goto is_not_a_corner;
06790                                 else
06791                                   goto is_not_a_corner;
06792                               else
06793                                 goto is_not_a_corner;
06794                       else
06795                         goto is_not_a_corner;
06796                   else
06797                     goto is_not_a_corner;
06798                 else
06799                   if (p[offset2] < c_b)
06800                     if (p[offset7] > cb)
06801                       if (p[offset9] > cb)
06802                         if (p[offset1] > cb)
06803                           goto is_not_a_corner;
06804                         else
06805                           if (p[offset1] < c_b)
06806                             if (p[offset6] > cb)
06807                               if (p[offset3] < c_b)
06808                                 if (p[offset4] < c_b)
06809                                   if (p[offset10] < c_b)
06810                                     if (p[offset11] < c_b)
06811                                       goto is_a_corner;
06812                                     else
06813                                       goto is_not_a_corner;
06814                                   else
06815                                     goto is_not_a_corner;
06816                                 else
06817                                   goto is_not_a_corner;
06818                               else
06819                                 goto is_not_a_corner;
06820                             else
06821                               if (p[offset6] < c_b)
06822                                 if (p[offset3] < c_b)
06823                                   if (p[offset4] < c_b)
06824                                     if (p[offset10] < c_b)
06825                                       if (p[offset11] < c_b)
06826                                         goto is_a_corner;
06827                                       else
06828                                         goto is_not_a_corner;
06829                                     else
06830                                       goto is_not_a_corner;
06831                                   else
06832                                     goto is_not_a_corner;
06833                                 else
06834                                   goto is_not_a_corner;
06835                               else
06836                                 if (p[offset3] < c_b)
06837                                   if (p[offset4] < c_b)
06838                                     if (p[offset10] < c_b)
06839                                       if (p[offset11] < c_b)
06840                                         goto is_a_corner;
06841                                       else
06842                                         goto is_not_a_corner;
06843                                     else
06844                                       goto is_not_a_corner;
06845                                   else
06846                                     goto is_not_a_corner;
06847                                 else
06848                                   goto is_not_a_corner;
06849                           else
06850                             goto is_not_a_corner;
06851                       else
06852                         if (p[offset9] < c_b)
06853                           if (p[offset1] > cb)
06854                             goto is_not_a_corner;
06855                           else
06856                             if (p[offset1] < c_b)
06857                               if (p[offset6] > cb)
06858                                 if (p[offset10] < c_b)
06859                                   if (p[offset11] < c_b)
06860                                     if (p[offset3] < c_b)
06861                                       goto is_a_corner;
06862                                     else
06863                                       if (p[offset8] < c_b)
06864                                         goto is_a_corner;
06865                                       else
06866                                         goto is_not_a_corner;
06867                                   else
06868                                     goto is_not_a_corner;
06869                                 else
06870                                   goto is_not_a_corner;
06871                               else
06872                                 if (p[offset6] < c_b)
06873                                   if (p[offset10] < c_b)
06874                                     if (p[offset11] < c_b)
06875                                       if (p[offset3] < c_b)
06876                                         goto is_a_corner;
06877                                       else
06878                                         if (p[offset8] < c_b)
06879                                           goto is_a_corner;
06880                                         else
06881                                           goto is_not_a_corner;
06882                                     else
06883                                       goto is_not_a_corner;
06884                                   else
06885                                     goto is_not_a_corner;
06886                                 else
06887                                   if (p[offset10] < c_b)
06888                                     if (p[offset11] < c_b)
06889                                       if (p[offset3] < c_b)
06890                                         goto is_a_corner;
06891                                       else
06892                                         if (p[offset8] < c_b)
06893                                           goto is_a_corner;
06894                                         else
06895                                           goto is_not_a_corner;
06896                                     else
06897                                       goto is_not_a_corner;
06898                                   else
06899                                     goto is_not_a_corner;
06900                             else
06901                               goto is_not_a_corner;
06902                         else
06903                           if (p[offset1] > cb)
06904                             goto is_not_a_corner;
06905                           else
06906                             if (p[offset1] < c_b)
06907                               if (p[offset6] > cb)
06908                                 if (p[offset3] < c_b)
06909                                   if (p[offset4] < c_b)
06910                                     if (p[offset10] < c_b)
06911                                       if (p[offset11] < c_b)
06912                                         goto is_a_corner;
06913                                       else
06914                                         goto is_not_a_corner;
06915                                     else
06916                                       goto is_not_a_corner;
06917                                   else
06918                                     goto is_not_a_corner;
06919                                 else
06920                                   goto is_not_a_corner;
06921                               else
06922                                 if (p[offset6] < c_b)
06923                                   if (p[offset3] < c_b)
06924                                     if (p[offset4] < c_b)
06925                                       if (p[offset10] < c_b)
06926                                         if (p[offset11] < c_b)
06927                                           goto is_a_corner;
06928                                         else
06929                                           goto is_not_a_corner;
06930                                       else
06931                                         goto is_not_a_corner;
06932                                     else
06933                                       goto is_not_a_corner;
06934                                   else
06935                                     goto is_not_a_corner;
06936                                 else
06937                                   if (p[offset3] < c_b)
06938                                     if (p[offset4] < c_b)
06939                                       if (p[offset10] < c_b)
06940                                         if (p[offset11] < c_b)
06941                                           goto is_a_corner;
06942                                         else
06943                                           goto is_not_a_corner;
06944                                       else
06945                                         goto is_not_a_corner;
06946                                     else
06947                                       goto is_not_a_corner;
06948                                   else
06949                                     goto is_not_a_corner;
06950                             else
06951                               goto is_not_a_corner;
06952                     else
06953                       if (p[offset9] > cb)
06954                         if (p[offset7] < c_b)
06955                           if (p[offset1] > cb)
06956                             goto is_not_a_corner;
06957                           else
06958                             if (p[offset1] < c_b)
06959                               if (p[offset6] > cb)
06960                                 if (p[offset3] < c_b)
06961                                   if (p[offset4] < c_b)
06962                                     if (p[offset10] < c_b)
06963                                       if (p[offset11] < c_b)
06964                                         goto is_a_corner;
06965                                       else
06966                                         goto is_not_a_corner;
06967                                     else
06968                                       goto is_not_a_corner;
06969                                   else
06970                                     goto is_not_a_corner;
06971                                 else
06972                                   goto is_not_a_corner;
06973                               else
06974                                 if (p[offset6] < c_b)
06975                                   if (p[offset3] < c_b)
06976                                     if (p[offset4] < c_b)
06977                                       if (p[offset10] < c_b)
06978                                         if (p[offset11] < c_b)
06979                                           goto is_a_corner;
06980                                         else
06981                                           goto is_not_a_corner;
06982                                       else
06983                                         goto is_not_a_corner;
06984                                     else
06985                                       goto is_not_a_corner;
06986                                   else
06987                                     goto is_not_a_corner;
06988                                 else
06989                                   if (p[offset3] < c_b)
06990                                     if (p[offset4] < c_b)
06991                                       if (p[offset10] < c_b)
06992                                         if (p[offset11] < c_b)
06993                                           goto is_a_corner;
06994                                         else
06995                                           goto is_not_a_corner;
06996                                       else
06997                                         goto is_not_a_corner;
06998                                     else
06999                                       goto is_not_a_corner;
07000                                   else
07001                                     goto is_not_a_corner;
07002                             else
07003                               goto is_not_a_corner;
07004                         else
07005                           if (p[offset1] > cb)
07006                             goto is_not_a_corner;
07007                           else
07008                             if (p[offset1] < c_b)
07009                               if (p[offset6] > cb)
07010                                 if (p[offset3] < c_b)
07011                                   if (p[offset4] < c_b)
07012                                     if (p[offset10] < c_b)
07013                                       if (p[offset11] < c_b)
07014                                         goto is_a_corner;
07015                                       else
07016                                         goto is_not_a_corner;
07017                                     else
07018                                       goto is_not_a_corner;
07019                                   else
07020                                     goto is_not_a_corner;
07021                                 else
07022                                   goto is_not_a_corner;
07023                               else
07024                                 if (p[offset6] < c_b)
07025                                   if (p[offset3] < c_b)
07026                                     if (p[offset4] < c_b)
07027                                       if (p[offset10] < c_b)
07028                                         if (p[offset11] < c_b)
07029                                           goto is_a_corner;
07030                                         else
07031                                           goto is_not_a_corner;
07032                                       else
07033                                         goto is_not_a_corner;
07034                                     else
07035                                       goto is_not_a_corner;
07036                                   else
07037                                     goto is_not_a_corner;
07038                                 else
07039                                   if (p[offset3] < c_b)
07040                                     if (p[offset4] < c_b)
07041                                       if (p[offset10] < c_b)
07042                                         if (p[offset11] < c_b)
07043                                           goto is_a_corner;
07044                                         else
07045                                           goto is_not_a_corner;
07046                                       else
07047                                         goto is_not_a_corner;
07048                                     else
07049                                       goto is_not_a_corner;
07050                                   else
07051                                     goto is_not_a_corner;
07052                             else
07053                               goto is_not_a_corner;
07054                       else
07055                         if (p[offset7] < c_b)
07056                           if (p[offset9] < c_b)
07057                             if (p[offset1] > cb)
07058                               if (p[offset6] > cb)
07059                                 goto is_not_a_corner;
07060                               else
07061                                 if (p[offset6] < c_b)
07062                                   if (p[offset8] < c_b)
07063                                     if (p[offset10] < c_b)
07064                                       if (p[offset11] < c_b)
07065                                         goto is_a_corner;
07066                                       else
07067                                         goto is_not_a_corner;
07068                                     else
07069                                       goto is_not_a_corner;
07070                                   else
07071                                     goto is_not_a_corner;
07072                                 else
07073                                   goto is_not_a_corner;
07074                             else
07075                               if (p[offset1] < c_b)
07076                                 if (p[offset6] > cb)
07077                                   if (p[offset10] < c_b)
07078                                     if (p[offset11] < c_b)
07079                                       if (p[offset3] < c_b)
07080                                         goto is_a_corner;
07081                                       else
07082                                         if (p[offset8] < c_b)
07083                                           goto is_a_corner;
07084                                         else
07085                                           goto is_not_a_corner;
07086                                     else
07087                                       goto is_not_a_corner;
07088                                   else
07089                                     goto is_not_a_corner;
07090                                 else
07091                                   if (p[offset6] < c_b)
07092                                     if (p[offset10] < c_b)
07093                                       if (p[offset11] < c_b)
07094                                         if (p[offset3] < c_b)
07095                                           goto is_a_corner;
07096                                         else
07097                                           if (p[offset8] < c_b)
07098                                             goto is_a_corner;
07099                                           else
07100                                             goto is_not_a_corner;
07101                                       else
07102                                         goto is_not_a_corner;
07103                                     else
07104                                       goto is_not_a_corner;
07105                                   else
07106                                     if (p[offset10] < c_b)
07107                                       if (p[offset11] < c_b)
07108                                         if (p[offset3] < c_b)
07109                                           goto is_a_corner;
07110                                         else
07111                                           if (p[offset8] < c_b)
07112                                             goto is_a_corner;
07113                                           else
07114                                             goto is_not_a_corner;
07115                                       else
07116                                         goto is_not_a_corner;
07117                                     else
07118                                       goto is_not_a_corner;
07119                               else
07120                                 if (p[offset6] > cb)
07121                                   goto is_not_a_corner;
07122                                 else
07123                                   if (p[offset6] < c_b)
07124                                     if (p[offset8] < c_b)
07125                                       if (p[offset10] < c_b)
07126                                         if (p[offset11] < c_b)
07127                                           goto is_a_corner;
07128                                         else
07129                                           goto is_not_a_corner;
07130                                       else
07131                                         goto is_not_a_corner;
07132                                     else
07133                                       goto is_not_a_corner;
07134                                   else
07135                                     goto is_not_a_corner;
07136                           else
07137                             if (p[offset1] > cb)
07138                               goto is_not_a_corner;
07139                             else
07140                               if (p[offset1] < c_b)
07141                                 if (p[offset6] > cb)
07142                                   if (p[offset3] < c_b)
07143                                     if (p[offset4] < c_b)
07144                                       if (p[offset10] < c_b)
07145                                         if (p[offset11] < c_b)
07146                                           goto is_a_corner;
07147                                         else
07148                                           goto is_not_a_corner;
07149                                       else
07150                                         goto is_not_a_corner;
07151                                     else
07152                                       goto is_not_a_corner;
07153                                   else
07154                                     goto is_not_a_corner;
07155                                 else
07156                                   if (p[offset6] < c_b)
07157                                     if (p[offset3] < c_b)
07158                                       if (p[offset4] < c_b)
07159                                         if (p[offset10] < c_b)
07160                                           if (p[offset11] < c_b)
07161                                             goto is_a_corner;
07162                                           else
07163                                             goto is_not_a_corner;
07164                                         else
07165                                           goto is_not_a_corner;
07166                                       else
07167                                         goto is_not_a_corner;
07168                                     else
07169                                       goto is_not_a_corner;
07170                                   else
07171                                     if (p[offset3] < c_b)
07172                                       if (p[offset4] < c_b)
07173                                         if (p[offset10] < c_b)
07174                                           if (p[offset11] < c_b)
07175                                             goto is_a_corner;
07176                                           else
07177                                             goto is_not_a_corner;
07178                                         else
07179                                           goto is_not_a_corner;
07180                                       else
07181                                         goto is_not_a_corner;
07182                                     else
07183                                       goto is_not_a_corner;
07184                               else
07185                                 goto is_not_a_corner;
07186                         else
07187                           if (p[offset9] < c_b)
07188                             if (p[offset1] > cb)
07189                               goto is_not_a_corner;
07190                             else
07191                               if (p[offset1] < c_b)
07192                                 if (p[offset6] > cb)
07193                                   if (p[offset10] < c_b)
07194                                     if (p[offset11] < c_b)
07195                                       if (p[offset3] < c_b)
07196                                         goto is_a_corner;
07197                                       else
07198                                         if (p[offset8] < c_b)
07199                                           goto is_a_corner;
07200                                         else
07201                                           goto is_not_a_corner;
07202                                     else
07203                                       goto is_not_a_corner;
07204                                   else
07205                                     goto is_not_a_corner;
07206                                 else
07207                                   if (p[offset6] < c_b)
07208                                     if (p[offset10] < c_b)
07209                                       if (p[offset11] < c_b)
07210                                         if (p[offset3] < c_b)
07211                                           goto is_a_corner;
07212                                         else
07213                                           if (p[offset8] < c_b)
07214                                             goto is_a_corner;
07215                                           else
07216                                             goto is_not_a_corner;
07217                                       else
07218                                         goto is_not_a_corner;
07219                                     else
07220                                       goto is_not_a_corner;
07221                                   else
07222                                     if (p[offset10] < c_b)
07223                                       if (p[offset11] < c_b)
07224                                         if (p[offset3] < c_b)
07225                                           goto is_a_corner;
07226                                         else
07227                                           if (p[offset8] < c_b)
07228                                             goto is_a_corner;
07229                                           else
07230                                             goto is_not_a_corner;
07231                                       else
07232                                         goto is_not_a_corner;
07233                                     else
07234                                       goto is_not_a_corner;
07235                               else
07236                                 goto is_not_a_corner;
07237                           else
07238                             if (p[offset1] > cb)
07239                               goto is_not_a_corner;
07240                             else
07241                               if (p[offset1] < c_b)
07242                                 if (p[offset6] > cb)
07243                                   if (p[offset3] < c_b)
07244                                     if (p[offset4] < c_b)
07245                                       if (p[offset10] < c_b)
07246                                         if (p[offset11] < c_b)
07247                                           goto is_a_corner;
07248                                         else
07249                                           goto is_not_a_corner;
07250                                       else
07251                                         goto is_not_a_corner;
07252                                     else
07253                                       goto is_not_a_corner;
07254                                   else
07255                                     goto is_not_a_corner;
07256                                 else
07257                                   if (p[offset6] < c_b)
07258                                     if (p[offset3] < c_b)
07259                                       if (p[offset4] < c_b)
07260                                         if (p[offset10] < c_b)
07261                                           if (p[offset11] < c_b)
07262                                             goto is_a_corner;
07263                                           else
07264                                             goto is_not_a_corner;
07265                                         else
07266                                           goto is_not_a_corner;
07267                                       else
07268                                         goto is_not_a_corner;
07269                                     else
07270                                       goto is_not_a_corner;
07271                                   else
07272                                     if (p[offset3] < c_b)
07273                                       if (p[offset4] < c_b)
07274                                         if (p[offset10] < c_b)
07275                                           if (p[offset11] < c_b)
07276                                             goto is_a_corner;
07277                                           else
07278                                             goto is_not_a_corner;
07279                                         else
07280                                           goto is_not_a_corner;
07281                                       else
07282                                         goto is_not_a_corner;
07283                                     else
07284                                       goto is_not_a_corner;
07285                               else
07286                                 goto is_not_a_corner;
07287                   else
07288                     if (p[offset7] < c_b)
07289                       if (p[offset9] > cb)
07290                         goto is_not_a_corner;
07291                       else
07292                         if (p[offset9] < c_b)
07293                           if (p[offset1] > cb)
07294                             if (p[offset6] > cb)
07295                               goto is_not_a_corner;
07296                             else
07297                               if (p[offset6] < c_b)
07298                                 if (p[offset8] < c_b)
07299                                   if (p[offset10] < c_b)
07300                                     if (p[offset11] < c_b)
07301                                       goto is_a_corner;
07302                                     else
07303                                       goto is_not_a_corner;
07304                                   else
07305                                     goto is_not_a_corner;
07306                                 else
07307                                   goto is_not_a_corner;
07308                               else
07309                                 goto is_not_a_corner;
07310                           else
07311                             if (p[offset1] < c_b)
07312                               if (p[offset6] > cb)
07313                                 if (p[offset8] < c_b)
07314                                   if (p[offset10] < c_b)
07315                                     if (p[offset11] < c_b)
07316                                       goto is_a_corner;
07317                                     else
07318                                       goto is_not_a_corner;
07319                                   else
07320                                     goto is_not_a_corner;
07321                                 else
07322                                   goto is_not_a_corner;
07323                               else
07324                                 if (p[offset6] < c_b)
07325                                   if (p[offset8] < c_b)
07326                                     if (p[offset10] < c_b)
07327                                       if (p[offset11] < c_b)
07328                                         goto is_a_corner;
07329                                       else
07330                                         goto is_not_a_corner;
07331                                     else
07332                                       goto is_not_a_corner;
07333                                   else
07334                                     goto is_not_a_corner;
07335                                 else
07336                                   if (p[offset8] < c_b)
07337                                     if (p[offset10] < c_b)
07338                                       if (p[offset11] < c_b)
07339                                         goto is_a_corner;
07340                                       else
07341                                         goto is_not_a_corner;
07342                                     else
07343                                       goto is_not_a_corner;
07344                                   else
07345                                     goto is_not_a_corner;
07346                             else
07347                               if (p[offset6] > cb)
07348                                 goto is_not_a_corner;
07349                               else
07350                                 if (p[offset6] < c_b)
07351                                   if (p[offset8] < c_b)
07352                                     if (p[offset10] < c_b)
07353                                       if (p[offset11] < c_b)
07354                                         goto is_a_corner;
07355                                       else
07356                                         goto is_not_a_corner;
07357                                     else
07358                                       goto is_not_a_corner;
07359                                   else
07360                                     goto is_not_a_corner;
07361                                 else
07362                                   goto is_not_a_corner;
07363                         else
07364                           goto is_not_a_corner;
07365                     else
07366                       goto is_not_a_corner;
07367           else
07368             if (p[offset5] < c_b)
07369               if (p[offset7] > cb)
07370                 goto is_not_a_corner;
07371               else
07372                 if (p[offset7] < c_b)
07373                   if (p[offset2] > cb)
07374                     if (p[offset9] > cb)
07375                       goto is_not_a_corner;
07376                     else
07377                       if (p[offset9] < c_b)
07378                         if (p[offset1] > cb)
07379                           if (p[offset6] > cb)
07380                             goto is_not_a_corner;
07381                           else
07382                             if (p[offset6] < c_b)
07383                               if (p[offset8] < c_b)
07384                                 if (p[offset4] < c_b)
07385                                   if (p[offset3] < c_b)
07386                                     goto is_a_corner;
07387                                   else
07388                                     if (p[offset10] < c_b)
07389                                       goto is_a_corner;
07390                                     else
07391                                       goto is_not_a_corner;
07392                                 else
07393                                   if (p[offset10] < c_b)
07394                                     if (p[offset11] < c_b)
07395                                       goto is_a_corner;
07396                                     else
07397                                       goto is_not_a_corner;
07398                                   else
07399                                     goto is_not_a_corner;
07400                               else
07401                                 goto is_not_a_corner;
07402                             else
07403                               goto is_not_a_corner;
07404                         else
07405                           if (p[offset1] < c_b)
07406                             if (p[offset6] > cb)
07407                               goto is_not_a_corner;
07408                             else
07409                               if (p[offset6] < c_b)
07410                                 if (p[offset8] < c_b)
07411                                   if (p[offset4] < c_b)
07412                                     if (p[offset3] < c_b)
07413                                       goto is_a_corner;
07414                                     else
07415                                       if (p[offset10] < c_b)
07416                                         goto is_a_corner;
07417                                       else
07418                                         goto is_not_a_corner;
07419                                   else
07420                                     if (p[offset10] < c_b)
07421                                       if (p[offset11] < c_b)
07422                                         goto is_a_corner;
07423                                       else
07424                                         goto is_not_a_corner;
07425                                     else
07426                                       goto is_not_a_corner;
07427                                 else
07428                                   goto is_not_a_corner;
07429                               else
07430                                 goto is_not_a_corner;
07431                           else
07432                             if (p[offset6] > cb)
07433                               goto is_not_a_corner;
07434                             else
07435                               if (p[offset6] < c_b)
07436                                 if (p[offset8] < c_b)
07437                                   if (p[offset4] < c_b)
07438                                     if (p[offset3] < c_b)
07439                                       goto is_a_corner;
07440                                     else
07441                                       if (p[offset10] < c_b)
07442                                         goto is_a_corner;
07443                                       else
07444                                         goto is_not_a_corner;
07445                                   else
07446                                     if (p[offset10] < c_b)
07447                                       if (p[offset11] < c_b)
07448                                         goto is_a_corner;
07449                                       else
07450                                         goto is_not_a_corner;
07451                                     else
07452                                       goto is_not_a_corner;
07453                                 else
07454                                   goto is_not_a_corner;
07455                               else
07456                                 goto is_not_a_corner;
07457                       else
07458                         goto is_not_a_corner;
07459                   else
07460                     if (p[offset2] < c_b)
07461                       if (p[offset9] > cb)
07462                         if (p[offset1] < c_b)
07463                           if (p[offset6] > cb)
07464                             goto is_not_a_corner;
07465                           else
07466                             if (p[offset6] < c_b)
07467                               if (p[offset3] < c_b)
07468                                 if (p[offset4] < c_b)
07469                                   goto is_a_corner;
07470                                 else
07471                                   goto is_not_a_corner;
07472                               else
07473                                 goto is_not_a_corner;
07474                             else
07475                               goto is_not_a_corner;
07476                         else
07477                           if (p[offset1] > cb)
07478                             if (p[offset6] > cb)
07479                               goto is_not_a_corner;
07480                             else
07481                               if (p[offset6] < c_b)
07482                                 if (p[offset3] < c_b)
07483                                   if (p[offset4] < c_b)
07484                                     if (p[offset8] < c_b)
07485                                       goto is_a_corner;
07486                                     else
07487                                       goto is_not_a_corner;
07488                                   else
07489                                     goto is_not_a_corner;
07490                                 else
07491                                   goto is_not_a_corner;
07492                               else
07493                                 goto is_not_a_corner;
07494                           else
07495                             if (p[offset6] > cb)
07496                               goto is_not_a_corner;
07497                             else
07498                               if (p[offset6] < c_b)
07499                                 if (p[offset3] < c_b)
07500                                   if (p[offset4] < c_b)
07501                                     if (p[offset8] < c_b)
07502                                       goto is_a_corner;
07503                                     else
07504                                       goto is_not_a_corner;
07505                                   else
07506                                     goto is_not_a_corner;
07507                                 else
07508                                   goto is_not_a_corner;
07509                               else
07510                                 goto is_not_a_corner;
07511                       else
07512                         if (p[offset9] < c_b)
07513                           if (p[offset1] > cb)
07514                             if (p[offset6] > cb)
07515                               goto is_not_a_corner;
07516                             else
07517                               if (p[offset6] < c_b)
07518                                 if (p[offset8] < c_b)
07519                                   if (p[offset4] < c_b)
07520                                     if (p[offset3] < c_b)
07521                                       goto is_a_corner;
07522                                     else
07523                                       if (p[offset10] < c_b)
07524                                         goto is_a_corner;
07525                                       else
07526                                         goto is_not_a_corner;
07527                                   else
07528                                     if (p[offset10] < c_b)
07529                                       if (p[offset11] < c_b)
07530                                         goto is_a_corner;
07531                                       else
07532                                         goto is_not_a_corner;
07533                                     else
07534                                       goto is_not_a_corner;
07535                                 else
07536                                   goto is_not_a_corner;
07537                               else
07538                                 goto is_not_a_corner;
07539                           else
07540                             if (p[offset1] < c_b)
07541                               if (p[offset6] > cb)
07542                                 goto is_not_a_corner;
07543                               else
07544                                 if (p[offset6] < c_b)
07545                                   if (p[offset4] < c_b)
07546                                     if (p[offset3] < c_b)
07547                                       goto is_a_corner;
07548                                     else
07549                                       if (p[offset8] < c_b)
07550                                         if (p[offset10] < c_b)
07551                                           goto is_a_corner;
07552                                         else
07553                                           goto is_not_a_corner;
07554                                       else
07555                                         goto is_not_a_corner;
07556                                   else
07557                                     if (p[offset8] < c_b)
07558                                       if (p[offset10] < c_b)
07559                                         if (p[offset11] < c_b)
07560                                           goto is_a_corner;
07561                                         else
07562                                           goto is_not_a_corner;
07563                                       else
07564                                         goto is_not_a_corner;
07565                                     else
07566                                       goto is_not_a_corner;
07567                                 else
07568                                   goto is_not_a_corner;
07569                             else
07570                               if (p[offset6] > cb)
07571                                 goto is_not_a_corner;
07572                               else
07573                                 if (p[offset6] < c_b)
07574                                   if (p[offset8] < c_b)
07575                                     if (p[offset4] < c_b)
07576                                       if (p[offset3] < c_b)
07577                                         goto is_a_corner;
07578                                       else
07579                                         if (p[offset10] < c_b)
07580                                           goto is_a_corner;
07581                                         else
07582                                           goto is_not_a_corner;
07583                                     else
07584                                       if (p[offset10] < c_b)
07585                                         if (p[offset11] < c_b)
07586                                           goto is_a_corner;
07587                                         else
07588                                           goto is_not_a_corner;
07589                                       else
07590                                         goto is_not_a_corner;
07591                                   else
07592                                     goto is_not_a_corner;
07593                                 else
07594                                   goto is_not_a_corner;
07595                         else
07596                           if (p[offset1] < c_b)
07597                             if (p[offset6] > cb)
07598                               goto is_not_a_corner;
07599                             else
07600                               if (p[offset6] < c_b)
07601                                 if (p[offset3] < c_b)
07602                                   if (p[offset4] < c_b)
07603                                     goto is_a_corner;
07604                                   else
07605                                     goto is_not_a_corner;
07606                                 else
07607                                   goto is_not_a_corner;
07608                               else
07609                                 goto is_not_a_corner;
07610                           else
07611                             if (p[offset1] > cb)
07612                               if (p[offset6] > cb)
07613                                 goto is_not_a_corner;
07614                               else
07615                                 if (p[offset6] < c_b)
07616                                   if (p[offset3] < c_b)
07617                                     if (p[offset4] < c_b)
07618                                       if (p[offset8] < c_b)
07619                                         goto is_a_corner;
07620                                       else
07621                                         goto is_not_a_corner;
07622                                     else
07623                                       goto is_not_a_corner;
07624                                   else
07625                                     goto is_not_a_corner;
07626                                 else
07627                                   goto is_not_a_corner;
07628                             else
07629                               if (p[offset6] > cb)
07630                                 goto is_not_a_corner;
07631                               else
07632                                 if (p[offset6] < c_b)
07633                                   if (p[offset3] < c_b)
07634                                     if (p[offset4] < c_b)
07635                                       if (p[offset8] < c_b)
07636                                         goto is_a_corner;
07637                                       else
07638                                         goto is_not_a_corner;
07639                                     else
07640                                       goto is_not_a_corner;
07641                                   else
07642                                     goto is_not_a_corner;
07643                                 else
07644                                   goto is_not_a_corner;
07645                     else
07646                       if (p[offset9] > cb)
07647                         goto is_not_a_corner;
07648                       else
07649                         if (p[offset9] < c_b)
07650                           if (p[offset1] > cb)
07651                             if (p[offset6] > cb)
07652                               goto is_not_a_corner;
07653                             else
07654                               if (p[offset6] < c_b)
07655                                 if (p[offset8] < c_b)
07656                                   if (p[offset4] < c_b)
07657                                     if (p[offset3] < c_b)
07658                                       goto is_a_corner;
07659                                     else
07660                                       if (p[offset10] < c_b)
07661                                         goto is_a_corner;
07662                                       else
07663                                         goto is_not_a_corner;
07664                                   else
07665                                     if (p[offset10] < c_b)
07666                                       if (p[offset11] < c_b)
07667                                         goto is_a_corner;
07668                                       else
07669                                         goto is_not_a_corner;
07670                                     else
07671                                       goto is_not_a_corner;
07672                                 else
07673                                   goto is_not_a_corner;
07674                               else
07675                                 goto is_not_a_corner;
07676                           else
07677                             if (p[offset1] < c_b)
07678                               if (p[offset6] > cb)
07679                                 goto is_not_a_corner;
07680                               else
07681                                 if (p[offset6] < c_b)
07682                                   if (p[offset8] < c_b)
07683                                     if (p[offset4] < c_b)
07684                                       if (p[offset3] < c_b)
07685                                         goto is_a_corner;
07686                                       else
07687                                         if (p[offset10] < c_b)
07688                                           goto is_a_corner;
07689                                         else
07690                                           goto is_not_a_corner;
07691                                     else
07692                                       if (p[offset10] < c_b)
07693                                         if (p[offset11] < c_b)
07694                                           goto is_a_corner;
07695                                         else
07696                                           goto is_not_a_corner;
07697                                       else
07698                                         goto is_not_a_corner;
07699                                   else
07700                                     goto is_not_a_corner;
07701                                 else
07702                                   goto is_not_a_corner;
07703                             else
07704                               if (p[offset6] > cb)
07705                                 goto is_not_a_corner;
07706                               else
07707                                 if (p[offset6] < c_b)
07708                                   if (p[offset8] < c_b)
07709                                     if (p[offset4] < c_b)
07710                                       if (p[offset3] < c_b)
07711                                         goto is_a_corner;
07712                                       else
07713                                         if (p[offset10] < c_b)
07714                                           goto is_a_corner;
07715                                         else
07716                                           goto is_not_a_corner;
07717                                     else
07718                                       if (p[offset10] < c_b)
07719                                         if (p[offset11] < c_b)
07720                                           goto is_a_corner;
07721                                         else
07722                                           goto is_not_a_corner;
07723                                       else
07724                                         goto is_not_a_corner;
07725                                   else
07726                                     goto is_not_a_corner;
07727                                 else
07728                                   goto is_not_a_corner;
07729                         else
07730                           goto is_not_a_corner;
07731                 else
07732                   goto is_not_a_corner;
07733             else
07734               if (p[offset5] > cb)
07735                 if (p[offset7] > cb)
07736                   if (p[offset2] < c_b)
07737                     if (p[offset9] < c_b)
07738                       goto is_not_a_corner;
07739                     else
07740                       if (p[offset9] > cb)
07741                         if (p[offset1] > cb)
07742                           if (p[offset6] < c_b)
07743                             goto is_not_a_corner;
07744                           else
07745                             if (p[offset6] > cb)
07746                               if (p[offset8] > cb)
07747                                 if (p[offset4] > cb)
07748                                   if (p[offset3] > cb)
07749                                     goto is_a_corner;
07750                                   else
07751                                     if (p[offset10] > cb)
07752                                       goto is_a_corner;
07753                                     else
07754                                       goto is_not_a_corner;
07755                                 else
07756                                   if (p[offset10] > cb)
07757                                     if (p[offset11] > cb)
07758                                       goto is_a_corner;
07759                                     else
07760                                       goto is_not_a_corner;
07761                                   else
07762                                     goto is_not_a_corner;
07763                               else
07764                                 goto is_not_a_corner;
07765                             else
07766                               goto is_not_a_corner;
07767                         else
07768                           if (p[offset1] < c_b)
07769                             if (p[offset6] < c_b)
07770                               goto is_not_a_corner;
07771                             else
07772                               if (p[offset6] > cb)
07773                                 if (p[offset8] > cb)
07774                                   if (p[offset4] > cb)
07775                                     if (p[offset3] > cb)
07776                                       goto is_a_corner;
07777                                     else
07778                                       if (p[offset10] > cb)
07779                                         goto is_a_corner;
07780                                       else
07781                                         goto is_not_a_corner;
07782                                   else
07783                                     if (p[offset10] > cb)
07784                                       if (p[offset11] > cb)
07785                                         goto is_a_corner;
07786                                       else
07787                                         goto is_not_a_corner;
07788                                     else
07789                                       goto is_not_a_corner;
07790                                 else
07791                                   goto is_not_a_corner;
07792                               else
07793                                 goto is_not_a_corner;
07794                           else
07795                             if (p[offset6] < c_b)
07796                               goto is_not_a_corner;
07797                             else
07798                               if (p[offset6] > cb)
07799                                 if (p[offset8] > cb)
07800                                   if (p[offset4] > cb)
07801                                     if (p[offset3] > cb)
07802                                       goto is_a_corner;
07803                                     else
07804                                       if (p[offset10] > cb)
07805                                         goto is_a_corner;
07806                                       else
07807                                         goto is_not_a_corner;
07808                                   else
07809                                     if (p[offset10] > cb)
07810                                       if (p[offset11] > cb)
07811                                         goto is_a_corner;
07812                                       else
07813                                         goto is_not_a_corner;
07814                                     else
07815                                       goto is_not_a_corner;
07816                                 else
07817                                   goto is_not_a_corner;
07818                               else
07819                                 goto is_not_a_corner;
07820                       else
07821                         goto is_not_a_corner;
07822                   else
07823                     if (p[offset2] > cb)
07824                       if (p[offset9] < c_b)
07825                         if (p[offset1] > cb)
07826                           if (p[offset6] < c_b)
07827                             goto is_not_a_corner;
07828                           else
07829                             if (p[offset6] > cb)
07830                               if (p[offset3] > cb)
07831                                 if (p[offset4] > cb)
07832                                   goto is_a_corner;
07833                                 else
07834                                   goto is_not_a_corner;
07835                               else
07836                                 goto is_not_a_corner;
07837                             else
07838                               goto is_not_a_corner;
07839                         else
07840                           if (p[offset1] < c_b)
07841                             if (p[offset6] < c_b)
07842                               goto is_not_a_corner;
07843                             else
07844                               if (p[offset6] > cb)
07845                                 if (p[offset3] > cb)
07846                                   if (p[offset4] > cb)
07847                                     if (p[offset8] > cb)
07848                                       goto is_a_corner;
07849                                     else
07850                                       goto is_not_a_corner;
07851                                   else
07852                                     goto is_not_a_corner;
07853                                 else
07854                                   goto is_not_a_corner;
07855                               else
07856                                 goto is_not_a_corner;
07857                           else
07858                             if (p[offset6] < c_b)
07859                               goto is_not_a_corner;
07860                             else
07861                               if (p[offset6] > cb)
07862                                 if (p[offset3] > cb)
07863                                   if (p[offset4] > cb)
07864                                     if (p[offset8] > cb)
07865                                       goto is_a_corner;
07866                                     else
07867                                       goto is_not_a_corner;
07868                                   else
07869                                     goto is_not_a_corner;
07870                                 else
07871                                   goto is_not_a_corner;
07872                               else
07873                                 goto is_not_a_corner;
07874                       else
07875                         if (p[offset9] > cb)
07876                           if (p[offset1] < c_b)
07877                             if (p[offset6] < c_b)
07878                               goto is_not_a_corner;
07879                             else
07880                               if (p[offset6] > cb)
07881                                 if (p[offset8] > cb)
07882                                   if (p[offset4] > cb)
07883                                     if (p[offset3] > cb)
07884                                       goto is_a_corner;
07885                                     else
07886                                       if (p[offset10] > cb)
07887                                         goto is_a_corner;
07888                                       else
07889                                         goto is_not_a_corner;
07890                                   else
07891                                     if (p[offset10] > cb)
07892                                       if (p[offset11] > cb)
07893                                         goto is_a_corner;
07894                                       else
07895                                         goto is_not_a_corner;
07896                                     else
07897                                       goto is_not_a_corner;
07898                                 else
07899                                   goto is_not_a_corner;
07900                               else
07901                                 goto is_not_a_corner;
07902                           else
07903                             if (p[offset1] > cb)
07904                               if (p[offset6] < c_b)
07905                                 goto is_not_a_corner;
07906                               else
07907                                 if (p[offset6] > cb)
07908                                   if (p[offset4] > cb)
07909                                     if (p[offset3] > cb)
07910                                       goto is_a_corner;
07911                                     else
07912                                       if (p[offset8] > cb)
07913                                         if (p[offset10] > cb)
07914                                           goto is_a_corner;
07915                                         else
07916                                           goto is_not_a_corner;
07917                                       else
07918                                         goto is_not_a_corner;
07919                                   else
07920                                     if (p[offset8] > cb)
07921                                       if (p[offset10] > cb)
07922                                         if (p[offset11] > cb)
07923                                           goto is_a_corner;
07924                                         else
07925                                           goto is_not_a_corner;
07926                                       else
07927                                         goto is_not_a_corner;
07928                                     else
07929                                       goto is_not_a_corner;
07930                                 else
07931                                   goto is_not_a_corner;
07932                             else
07933                               if (p[offset6] < c_b)
07934                                 goto is_not_a_corner;
07935                               else
07936                                 if (p[offset6] > cb)
07937                                   if (p[offset8] > cb)
07938                                     if (p[offset4] > cb)
07939                                       if (p[offset3] > cb)
07940                                         goto is_a_corner;
07941                                       else
07942                                         if (p[offset10] > cb)
07943                                           goto is_a_corner;
07944                                         else
07945                                           goto is_not_a_corner;
07946                                     else
07947                                       if (p[offset10] > cb)
07948                                         if (p[offset11] > cb)
07949                                           goto is_a_corner;
07950                                         else
07951                                           goto is_not_a_corner;
07952                                       else
07953                                         goto is_not_a_corner;
07954                                   else
07955                                     goto is_not_a_corner;
07956                                 else
07957                                   goto is_not_a_corner;
07958                         else
07959                           if (p[offset1] > cb)
07960                             if (p[offset6] < c_b)
07961                               goto is_not_a_corner;
07962                             else
07963                               if (p[offset6] > cb)
07964                                 if (p[offset3] > cb)
07965                                   if (p[offset4] > cb)
07966                                     goto is_a_corner;
07967                                   else
07968                                     goto is_not_a_corner;
07969                                 else
07970                                   goto is_not_a_corner;
07971                               else
07972                                 goto is_not_a_corner;
07973                           else
07974                             if (p[offset1] < c_b)
07975                               if (p[offset6] < c_b)
07976                                 goto is_not_a_corner;
07977                               else
07978                                 if (p[offset6] > cb)
07979                                   if (p[offset3] > cb)
07980                                     if (p[offset4] > cb)
07981                                       if (p[offset8] > cb)
07982                                         goto is_a_corner;
07983                                       else
07984                                         goto is_not_a_corner;
07985                                     else
07986                                       goto is_not_a_corner;
07987                                   else
07988                                     goto is_not_a_corner;
07989                                 else
07990                                   goto is_not_a_corner;
07991                             else
07992                               if (p[offset6] < c_b)
07993                                 goto is_not_a_corner;
07994                               else
07995                                 if (p[offset6] > cb)
07996                                   if (p[offset3] > cb)
07997                                     if (p[offset4] > cb)
07998                                       if (p[offset8] > cb)
07999                                         goto is_a_corner;
08000                                       else
08001                                         goto is_not_a_corner;
08002                                     else
08003                                       goto is_not_a_corner;
08004                                   else
08005                                     goto is_not_a_corner;
08006                                 else
08007                                   goto is_not_a_corner;
08008                     else
08009                       if (p[offset9] < c_b)
08010                         goto is_not_a_corner;
08011                       else
08012                         if (p[offset9] > cb)
08013                           if (p[offset1] > cb)
08014                             if (p[offset6] < c_b)
08015                               goto is_not_a_corner;
08016                             else
08017                               if (p[offset6] > cb)
08018                                 if (p[offset8] > cb)
08019                                   if (p[offset4] > cb)
08020                                     if (p[offset3] > cb)
08021                                       goto is_a_corner;
08022                                     else
08023                                       if (p[offset10] > cb)
08024                                         goto is_a_corner;
08025                                       else
08026                                         goto is_not_a_corner;
08027                                   else
08028                                     if (p[offset10] > cb)
08029                                       if (p[offset11] > cb)
08030                                         goto is_a_corner;
08031                                       else
08032                                         goto is_not_a_corner;
08033                                     else
08034                                       goto is_not_a_corner;
08035                                 else
08036                                   goto is_not_a_corner;
08037                               else
08038                                 goto is_not_a_corner;
08039                           else
08040                             if (p[offset1] < c_b)
08041                               if (p[offset6] < c_b)
08042                                 goto is_not_a_corner;
08043                               else
08044                                 if (p[offset6] > cb)
08045                                   if (p[offset8] > cb)
08046                                     if (p[offset4] > cb)
08047                                       if (p[offset3] > cb)
08048                                         goto is_a_corner;
08049                                       else
08050                                         if (p[offset10] > cb)
08051                                           goto is_a_corner;
08052                                         else
08053                                           goto is_not_a_corner;
08054                                     else
08055                                       if (p[offset10] > cb)
08056                                         if (p[offset11] > cb)
08057                                           goto is_a_corner;
08058                                         else
08059                                           goto is_not_a_corner;
08060                                       else
08061                                         goto is_not_a_corner;
08062                                   else
08063                                     goto is_not_a_corner;
08064                                 else
08065                                   goto is_not_a_corner;
08066                             else
08067                               if (p[offset6] < c_b)
08068                                 goto is_not_a_corner;
08069                               else
08070                                 if (p[offset6] > cb)
08071                                   if (p[offset8] > cb)
08072                                     if (p[offset4] > cb)
08073                                       if (p[offset3] > cb)
08074                                         goto is_a_corner;
08075                                       else
08076                                         if (p[offset10] > cb)
08077                                           goto is_a_corner;
08078                                         else
08079                                           goto is_not_a_corner;
08080                                     else
08081                                       if (p[offset10] > cb)
08082                                         if (p[offset11] > cb)
08083                                           goto is_a_corner;
08084                                         else
08085                                           goto is_not_a_corner;
08086                                       else
08087                                         goto is_not_a_corner;
08088                                   else
08089                                     goto is_not_a_corner;
08090                                 else
08091                                   goto is_not_a_corner;
08092                         else
08093                           goto is_not_a_corner;
08094                 else
08095                   goto is_not_a_corner;
08096               else
08097                 goto is_not_a_corner;
08098 
08099           is_a_corner:
08100             bmin = T2 (b_test);
08101             goto end;
08102 
08103           is_not_a_corner:
08104             bmax = T2 (b_test);
08105             goto end;
08106 
08107           end:
08108 
08109           if (bmin == bmax - 1 || bmin == bmax)
08110             return (int (bmin));
08111           b_test = int ((bmin + bmax) / 2);
08112         }
08113       }
08114     } // namespace agast
08115   } // namespace keypoints
08116 } // namespace pcl
08117 
08121 void
08122 pcl::keypoints::agast::AgastDetector7_12s::initPattern ()
08123 {
08124   s_offset0_  = static_cast<int_fast16_t> ((-2) + (0)  * width_);
08125   s_offset1_  = static_cast<int_fast16_t> ((-2) + (-1) * width_);
08126   s_offset2_  = static_cast<int_fast16_t> ((-1) + (-2) * width_);
08127   s_offset3_  = static_cast<int_fast16_t> ((0)  + (-2) * width_);
08128   s_offset4_  = static_cast<int_fast16_t> ((1)  + (-2) * width_);
08129   s_offset5_  = static_cast<int_fast16_t> ((2)  + (-1) * width_);
08130   s_offset6_  = static_cast<int_fast16_t> ((2)  + (0)  * width_);
08131   s_offset7_  = static_cast<int_fast16_t> ((2)  + (1)  * width_);
08132   s_offset8_  = static_cast<int_fast16_t> ((1)  + (2)  * width_);
08133   s_offset9_  = static_cast<int_fast16_t> ((0)  + (2)  * width_);
08134   s_offset10_ = static_cast<int_fast16_t> ((-1) + (2)  * width_);
08135   s_offset11_ = static_cast<int_fast16_t> ((-2) + (1)  * width_);
08136 }
08137 
08139 void
08140 pcl::keypoints::agast::AgastDetector7_12s::detect (const unsigned char* im, std::vector<pcl::PointUV, Eigen::aligned_allocator<pcl::PointUV> > & corners) const
08141 {
08142   return (pcl::keypoints::agast::AgastDetector7_12s_detect<unsigned char, int> (
08143         im, int (width_), int (height_), threshold_, 
08144         s_offset0_, 
08145         s_offset1_,
08146         s_offset2_,
08147         s_offset3_,
08148         s_offset4_,
08149         s_offset5_,
08150         s_offset6_,
08151         s_offset7_,
08152         s_offset8_,
08153         s_offset9_,
08154         s_offset10_,
08155         s_offset11_,
08156         corners));
08157 }
08158 
08160 void
08161 pcl::keypoints::agast::AgastDetector7_12s::detect (const float* im, std::vector<pcl::PointUV, Eigen::aligned_allocator<pcl::PointUV> > & corners) const
08162 {
08163   return (pcl::keypoints::agast::AgastDetector7_12s_detect<float, float> (
08164         im, int (width_), int (height_), threshold_, 
08165         s_offset0_, 
08166         s_offset1_,
08167         s_offset2_,
08168         s_offset3_,
08169         s_offset4_,
08170         s_offset5_,
08171         s_offset6_,
08172         s_offset7_,
08173         s_offset8_,
08174         s_offset9_,
08175         s_offset10_,
08176         s_offset11_,
08177         corners));
08178 }
08179 
08181 int
08182 pcl::keypoints::agast::AgastDetector7_12s::computeCornerScore (const unsigned char* p) const
08183 {
08184   return (pcl::keypoints::agast::AgastDetector7_12s_computeCornerScore<unsigned char, int> (
08185         p, bmax_, threshold_, 
08186         s_offset0_, 
08187         s_offset1_,
08188         s_offset2_,
08189         s_offset3_,
08190         s_offset4_,
08191         s_offset5_,
08192         s_offset6_,
08193         s_offset7_,
08194         s_offset8_,
08195         s_offset9_,
08196         s_offset10_,
08197         s_offset11_));
08198 }
08199 
08201 int
08202 pcl::keypoints::agast::AgastDetector7_12s::computeCornerScore (const float* p) const
08203 {
08204   return (pcl::keypoints::agast::AgastDetector7_12s_computeCornerScore<float, float> (
08205         p, bmax_, threshold_, 
08206         s_offset0_, 
08207         s_offset1_,
08208         s_offset2_,
08209         s_offset3_,
08210         s_offset4_,
08211         s_offset5_,
08212         s_offset6_,
08213         s_offset7_,
08214         s_offset8_,
08215         s_offset9_,
08216         s_offset10_,
08217         s_offset11_));
08218 }
08219 
08223 namespace pcl
08224 {
08225   namespace keypoints
08226   {
08227     namespace agast
08228     {
08230       // Helper method for AgastDetector5_8::detect
08231       template <typename T1, typename T2> void
08232       AgastDetector5_8_detect (
08233           const T1* im, 
08234           int img_width, int img_height,
08235           double threshold,
08236           int_fast16_t s_offset0,
08237           int_fast16_t s_offset1,
08238           int_fast16_t s_offset2,
08239           int_fast16_t s_offset3,
08240           int_fast16_t s_offset4,
08241           int_fast16_t s_offset5,
08242           int_fast16_t s_offset6,
08243           int_fast16_t s_offset7,
08244           std::vector<pcl::PointUV, Eigen::aligned_allocator<pcl::PointUV> >& corners)
08245       {
08246         int total = 0;
08247         int n_expected_corners = int (corners.capacity ());
08248         pcl::PointUV h;
08249         register int x, y;
08250         register int xsize_b = int (img_width) - 2;
08251         register int ysize_b = int (img_height) - 1;
08252         register int_fast16_t offset0, offset1, offset2, offset3, offset4, offset5, offset6, offset7;
08253         register int width;
08254 
08255         corners.resize (0);
08256 
08257         offset0 = s_offset0;
08258         offset1 = s_offset1;
08259         offset2 = s_offset2;
08260         offset3 = s_offset3;
08261         offset4 = s_offset4;
08262         offset5 = s_offset5;
08263         offset6 = s_offset6;
08264         offset7 = s_offset7;
08265         width   = int (img_width);
08266 
08267         for (y = 1; y < ysize_b; y++)
08268         {
08269           x = 0;
08270           while (1)
08271           { 
08272       homogeneous:
08273       {
08274             x++;
08275             if (x > xsize_b)
08276               break;
08277             else
08278             {
08279               register const T1* const p = im + y * width + x;
08280               register const T2 cb = *p + T2 (threshold);
08281               register const T2 c_b = *p - T2 (threshold);
08282               if (p[offset0] > cb)
08283                 if (p[offset2] > cb)
08284                 if (p[offset3] > cb)
08285                   if (p[offset5] > cb)
08286                   if (p[offset1] > cb)
08287                     if (p[offset4] > cb)
08288                     goto success_structured;
08289                     else
08290                     if (p[offset7] > cb)
08291                       goto success_structured;
08292                     else
08293                       goto homogeneous;
08294                   else
08295                     if (p[offset4] > cb)
08296                     if (p[offset6] > cb)
08297                       goto success_structured;
08298                     else
08299                       goto homogeneous;
08300                     else
08301                     goto homogeneous;
08302                   else
08303                   if (p[offset1] > cb)
08304                     if (p[offset4] > cb)
08305                     goto success_homogeneous;
08306                     else
08307                     if (p[offset7] > cb)
08308                       goto success_homogeneous;
08309                     else
08310                       goto homogeneous;
08311                   else
08312                     goto homogeneous;
08313                 else
08314                   if (p[offset7] > cb)
08315                   if (p[offset6] > cb)
08316                     if (p[offset5] > cb)
08317                     if (p[offset1] > cb)
08318                       goto success_structured;
08319                     else
08320                       if (p[offset4] > cb)
08321                       goto success_structured;
08322                       else
08323                       goto homogeneous;
08324                     else
08325                     if (p[offset1] > cb)
08326                       goto success_homogeneous;
08327                     else
08328                       goto homogeneous;
08329                   else
08330                     goto homogeneous;
08331                   else
08332                   if (p[offset5] < c_b)
08333                     if (p[offset3] < c_b)
08334                     if (p[offset7] < c_b)
08335                       if (p[offset4] < c_b)
08336                       if (p[offset6] < c_b)
08337                         goto success_structured;
08338                       else
08339                         goto structured;
08340                       else
08341                       goto homogeneous;
08342                     else
08343                       goto homogeneous;
08344                     else
08345                     goto homogeneous;
08346                   else
08347                     goto homogeneous;
08348                 else
08349                 if (p[offset5] > cb)
08350                   if (p[offset7] > cb)
08351                   if (p[offset6] > cb)
08352                     if (p[offset1] > cb)
08353                     goto success_homogeneous;
08354                     else
08355                     if (p[offset4] > cb)
08356                       goto success_homogeneous;
08357                     else
08358                       goto homogeneous;
08359                   else
08360                     goto homogeneous;
08361                   else
08362                   goto homogeneous;
08363                 else
08364                   if (p[offset5] < c_b)
08365                   if (p[offset3] < c_b)
08366                     if (p[offset2] < c_b)
08367                     if (p[offset1] < c_b)
08368                       if (p[offset4] < c_b)
08369                       goto success_structured;
08370                       else
08371                       goto homogeneous;
08372                     else
08373                       if (p[offset4] < c_b)
08374                       if (p[offset6] < c_b)
08375                         goto success_structured;
08376                       else
08377                         goto homogeneous;
08378                       else
08379                       goto homogeneous;
08380                     else
08381                     if (p[offset7] < c_b)
08382                       if (p[offset4] < c_b)
08383                       if (p[offset6] < c_b)
08384                         goto success_structured;
08385                       else
08386                         goto homogeneous;
08387                       else
08388                       goto homogeneous;
08389                     else
08390                       goto homogeneous;
08391                   else
08392                     goto homogeneous;
08393                   else
08394                   goto homogeneous;
08395               else if (p[offset0] < c_b)
08396                 if (p[offset2] < c_b)
08397                 if (p[offset7] > cb)
08398                   if (p[offset3] < c_b)
08399                   if (p[offset5] < c_b)
08400                     if (p[offset1] < c_b)
08401                     if (p[offset4] < c_b)
08402                       goto success_structured;
08403                     else
08404                       goto structured;
08405                     else
08406                     if (p[offset4] < c_b)
08407                       if (p[offset6] < c_b)
08408                       goto success_structured;
08409                       else
08410                       goto structured;
08411                     else
08412                       goto homogeneous;
08413                   else
08414                     if (p[offset1] < c_b)
08415                     if (p[offset4] < c_b)
08416                       goto success_structured;
08417                     else
08418                       goto homogeneous;
08419                     else
08420                     goto homogeneous;
08421                   else
08422                   if (p[offset5] > cb)
08423                     if (p[offset3] > cb)
08424                     if (p[offset4] > cb)
08425                       if (p[offset6] > cb)
08426                       goto success_structured;
08427                       else
08428                       goto structured;
08429                     else
08430                       goto homogeneous;
08431                     else
08432                     goto homogeneous;
08433                   else
08434                     goto homogeneous;
08435                 else
08436                   if (p[offset7] < c_b)
08437                   if (p[offset3] < c_b)
08438                     if (p[offset5] < c_b)
08439                     if (p[offset1] < c_b)
08440                       goto success_structured;
08441                     else
08442                       if (p[offset4] < c_b)
08443                       if (p[offset6] < c_b)
08444                         goto success_structured;
08445                       else
08446                         goto structured;
08447                       else
08448                       goto homogeneous;
08449                     else
08450                     if (p[offset1] < c_b)
08451                       goto success_homogeneous;
08452                     else
08453                       goto homogeneous;
08454                   else
08455                     if (p[offset6] < c_b)
08456                     if (p[offset5] < c_b)
08457                       if (p[offset1] < c_b)
08458                       goto success_structured;
08459                       else
08460                       if (p[offset4] < c_b)
08461                         goto success_structured;
08462                       else
08463                         goto homogeneous;
08464                     else
08465                       if (p[offset1] < c_b)
08466                       goto success_homogeneous;
08467                       else
08468                       goto homogeneous;
08469                     else
08470                     goto homogeneous;
08471                   else
08472                   if (p[offset3] < c_b)
08473                     if (p[offset5] < c_b)
08474                     if (p[offset1] < c_b)
08475                       if (p[offset4] < c_b)
08476                       goto success_structured;
08477                       else
08478                       goto homogeneous;
08479                     else
08480                       if (p[offset4] < c_b)
08481                       if (p[offset6] < c_b)
08482                         goto success_structured;
08483                       else
08484                         goto homogeneous;
08485                       else
08486                       goto homogeneous;
08487                     else
08488                     if (p[offset1] < c_b)
08489                       if (p[offset4] < c_b)
08490                       goto success_homogeneous;
08491                       else
08492                       goto homogeneous;
08493                     else
08494                       goto homogeneous;
08495                   else
08496                     goto homogeneous;
08497                 else
08498                 if (p[offset5] > cb)
08499                   if (p[offset3] > cb)
08500                   if (p[offset2] > cb)
08501                     if (p[offset1] > cb)
08502                     if (p[offset4] > cb)
08503                       goto success_structured;
08504                     else
08505                       goto homogeneous;
08506                     else
08507                     if (p[offset4] > cb)
08508                       if (p[offset6] > cb)
08509                       goto success_structured;
08510                       else
08511                       goto homogeneous;
08512                     else
08513                       goto homogeneous;
08514                   else
08515                     if (p[offset7] > cb)
08516                     if (p[offset4] > cb)
08517                       if (p[offset6] > cb)
08518                       goto success_structured;
08519                       else
08520                       goto homogeneous;
08521                     else
08522                       goto homogeneous;
08523                     else
08524                     goto homogeneous;
08525                   else
08526                   goto homogeneous;
08527                 else
08528                   if (p[offset5] < c_b)
08529                   if (p[offset7] < c_b)
08530                     if (p[offset6] < c_b)
08531                     if (p[offset1] < c_b)
08532                       goto success_homogeneous;
08533                     else
08534                       if (p[offset4] < c_b)
08535                       goto success_homogeneous;
08536                       else
08537                       goto homogeneous;
08538                     else
08539                     goto homogeneous;
08540                   else
08541                     goto homogeneous;
08542                   else
08543                   goto homogeneous;
08544               else
08545                 if (p[offset3] > cb)
08546                 if (p[offset5] > cb)
08547                   if (p[offset2] > cb)
08548                   if (p[offset1] > cb)
08549                     if (p[offset4] > cb)
08550                     goto success_homogeneous;
08551                     else
08552                     goto homogeneous;
08553                   else
08554                     if (p[offset4] > cb)
08555                     if (p[offset6] > cb)
08556                       goto success_homogeneous;
08557                     else
08558                       goto homogeneous;
08559                     else
08560                     goto homogeneous;
08561                   else
08562                   if (p[offset7] > cb)
08563                     if (p[offset4] > cb)
08564                     if (p[offset6] > cb)
08565                       goto success_homogeneous;
08566                     else
08567                       goto homogeneous;
08568                     else
08569                     goto homogeneous;
08570                   else
08571                     goto homogeneous;
08572                 else
08573                   goto homogeneous;
08574                 else
08575                 if (p[offset3] < c_b)
08576                   if (p[offset5] < c_b)
08577                   if (p[offset2] < c_b)
08578                     if (p[offset1] < c_b)
08579                     if (p[offset4] < c_b)
08580                       goto success_homogeneous;
08581                     else
08582                       goto homogeneous;
08583                     else
08584                     if (p[offset4] < c_b)
08585                       if (p[offset6] < c_b)
08586                       goto success_homogeneous;
08587                       else
08588                       goto homogeneous;
08589                     else
08590                       goto homogeneous;
08591                   else
08592                     if (p[offset7] < c_b)
08593                     if (p[offset4] < c_b)
08594                       if (p[offset6] < c_b)
08595                       goto success_homogeneous;
08596                       else
08597                       goto homogeneous;
08598                     else
08599                       goto homogeneous;
08600                     else
08601                     goto homogeneous;
08602                   else
08603                   goto homogeneous;
08604                 else
08605                   goto homogeneous;
08606             }
08607       }
08608       structured:
08609       {
08610             x++;      
08611             if (x > xsize_b)
08612               break;
08613             else
08614             {
08615               register const T1* const p = im + y * width + x;
08616               register const T2 cb = *p + T2 (threshold);
08617               register const T2 c_b = *p - T2 (threshold);
08618               if (p[offset0] > cb)
08619                 if (p[offset2] > cb)
08620                 if (p[offset3] > cb)
08621                   if (p[offset5] > cb)
08622                   if (p[offset7] > cb)
08623                     if (p[offset1] > cb)
08624                     goto success_structured;
08625                     else
08626                     if (p[offset4] > cb)
08627                       if (p[offset6] > cb)
08628                       goto success_structured;
08629                       else
08630                       goto structured;
08631                     else
08632                       goto structured;
08633                   else
08634                     if (p[offset1] > cb)
08635                     if (p[offset4] > cb)
08636                       goto success_structured;
08637                     else
08638                       goto structured;
08639                     else
08640                     if (p[offset4] > cb)
08641                       if (p[offset6] > cb)
08642                       goto success_structured;
08643                       else
08644                       goto structured;
08645                     else
08646                       goto structured;
08647                   else
08648                   if (p[offset7] > cb)
08649                     if (p[offset1] > cb)
08650                     goto success_structured;
08651                     else
08652                     goto structured;
08653                   else
08654                     if (p[offset1] > cb)
08655                     if (p[offset4] > cb)
08656                       goto success_structured;
08657                     else
08658                       goto structured;
08659                     else
08660                     goto structured;
08661                 else
08662                   if (p[offset7] > cb)
08663                   if (p[offset6] > cb)
08664                     if (p[offset5] > cb)
08665                     if (p[offset1] > cb)
08666                       goto success_structured;
08667                     else
08668                       if (p[offset4] > cb)
08669                       goto success_structured;
08670                       else
08671                       goto structured;
08672                     else
08673                     if (p[offset1] > cb)
08674                       goto success_structured;
08675                     else
08676                       goto structured;
08677                   else
08678                     goto structured;
08679                   else
08680                   if (p[offset5] < c_b)
08681                     if (p[offset3] < c_b)
08682                     if (p[offset7] < c_b)
08683                       if (p[offset4] < c_b)
08684                       if (p[offset6] < c_b)
08685                         goto success_structured;
08686                       else
08687                         goto structured;
08688                       else
08689                       goto structured;
08690                     else
08691                       goto homogeneous;
08692                     else
08693                     goto homogeneous;
08694                   else
08695                     goto structured;
08696                 else
08697                 if (p[offset5] > cb)
08698                   if (p[offset7] > cb)
08699                   if (p[offset6] > cb)
08700                     if (p[offset1] > cb)
08701                     goto success_structured;
08702                     else
08703                     if (p[offset4] > cb)
08704                       goto success_structured;
08705                     else
08706                       goto structured;
08707                   else
08708                     goto structured;
08709                   else
08710                   goto structured;
08711                 else
08712                   if (p[offset5] < c_b)
08713                   if (p[offset3] < c_b)
08714                     if (p[offset2] < c_b)
08715                     if (p[offset1] < c_b)
08716                       if (p[offset4] < c_b)
08717                       goto success_structured;
08718                       else
08719                       goto structured;
08720                     else
08721                       if (p[offset4] < c_b)
08722                       if (p[offset6] < c_b)
08723                         goto success_structured;
08724                       else
08725                         goto structured;
08726                       else
08727                       goto structured;
08728                     else
08729                     if (p[offset7] < c_b)
08730                       if (p[offset4] < c_b)
08731                       if (p[offset6] < c_b)
08732                         goto success_homogeneous;
08733                       else
08734                         goto homogeneous;
08735                       else
08736                       goto homogeneous;
08737                     else
08738                       goto homogeneous;
08739                   else
08740                     goto structured;
08741                   else
08742                   goto homogeneous;
08743               else if (p[offset0] < c_b)
08744                 if (p[offset2] < c_b)
08745                 if (p[offset7] > cb)
08746                   if (p[offset3] < c_b)
08747                   if (p[offset5] < c_b)
08748                     if (p[offset1] < c_b)
08749                     if (p[offset4] < c_b)
08750                       goto success_structured;
08751                     else
08752                       goto structured;
08753                     else
08754                     if (p[offset4] < c_b)
08755                       if (p[offset6] < c_b)
08756                       goto success_structured;
08757                       else
08758                       goto structured;
08759                     else
08760                       goto structured;
08761                   else
08762                     if (p[offset1] < c_b)
08763                     if (p[offset4] < c_b)
08764                       goto success_structured;
08765                     else
08766                       goto structured;
08767                     else
08768                     goto structured;
08769                   else
08770                   if (p[offset5] > cb)
08771                     if (p[offset3] > cb)
08772                     if (p[offset4] > cb)
08773                       if (p[offset6] > cb)
08774                       goto success_structured;
08775                       else
08776                       goto structured;
08777                     else
08778                       goto structured;
08779                     else
08780                     goto homogeneous;
08781                   else
08782                     goto structured;
08783                 else
08784                   if (p[offset7] < c_b)
08785                   if (p[offset3] < c_b)
08786                     if (p[offset5] < c_b)
08787                     if (p[offset1] < c_b)
08788                       goto success_structured;
08789                     else
08790                       if (p[offset4] < c_b)
08791                       if (p[offset6] < c_b)
08792                         goto success_structured;
08793                       else
08794                         goto structured;
08795                       else
08796                       goto structured;
08797                     else
08798                     if (p[offset1] < c_b)
08799                       goto success_structured;
08800                     else
08801                       goto structured;
08802                   else
08803                     if (p[offset6] < c_b)
08804                     if (p[offset5] < c_b)
08805                       if (p[offset1] < c_b)
08806                       goto success_structured;
08807                       else
08808                       if (p[offset4] < c_b)
08809                         goto success_structured;
08810                       else
08811                         goto structured;
08812                     else
08813                       if (p[offset1] < c_b)
08814                       goto success_structured;
08815                       else
08816                       goto structured;
08817                     else
08818                     goto structured;
08819                   else
08820                   if (p[offset3] < c_b)
08821                     if (p[offset5] < c_b)
08822                     if (p[offset1] < c_b)
08823                       if (p[offset4] < c_b)
08824                       goto success_homogeneous;
08825                       else
08826                       goto homogeneous;
08827                     else
08828                       if (p[offset4] < c_b)
08829                       if (p[offset6] < c_b)
08830                         goto success_homogeneous;
08831                       else
08832                         goto homogeneous;
08833                       else
08834                       goto homogeneous;
08835                     else
08836                     if (p[offset1] < c_b)
08837                       if (p[offset4] < c_b)
08838                       goto success_homogeneous;
08839                       else
08840                       goto homogeneous;
08841                     else
08842                       goto homogeneous;
08843                   else
08844                     goto homogeneous;
08845                 else
08846                 if (p[offset5] > cb)
08847                   if (p[offset3] > cb)
08848                   if (p[offset2] > cb)
08849                     if (p[offset1] > cb)
08850                     if (p[offset4] > cb)
08851                       goto success_structured;
08852                     else
08853                       goto structured;
08854                     else
08855                     if (p[offset4] > cb)
08856                       if (p[offset6] > cb)
08857                       goto success_structured;
08858                       else
08859                       goto structured;
08860                     else
08861                       goto structured;
08862                   else
08863                     if (p[offset7] > cb)
08864                     if (p[offset4] > cb)
08865                       if (p[offset6] > cb)
08866                       goto success_homogeneous;
08867                       else
08868                       goto homogeneous;
08869                     else
08870                       goto homogeneous;
08871                     else
08872                     goto homogeneous;
08873                   else
08874                   goto structured;
08875                 else
08876                   if (p[offset5] < c_b)
08877                   if (p[offset7] < c_b)
08878                     if (p[offset6] < c_b)
08879                     if (p[offset1] < c_b)
08880                       goto success_structured;
08881                     else
08882                       if (p[offset4] < c_b)
08883                       goto success_structured;
08884                       else
08885                       goto structured;
08886                     else
08887                     goto structured;
08888                   else
08889                     goto structured;
08890                   else
08891                   goto homogeneous;
08892               else
08893                 if (p[offset3] > cb)
08894                 if (p[offset5] > cb)
08895                   if (p[offset2] > cb)
08896                   if (p[offset1] > cb)
08897                     if (p[offset4] > cb)
08898                     goto success_homogeneous;
08899                     else
08900                     goto homogeneous;
08901                   else
08902                     if (p[offset4] > cb)
08903                     if (p[offset6] > cb)
08904                       goto success_homogeneous;
08905                     else
08906                       goto homogeneous;
08907                     else
08908                     goto homogeneous;
08909                   else
08910                   if (p[offset7] > cb)
08911                     if (p[offset4] > cb)
08912                     if (p[offset6] > cb)
08913                       goto success_homogeneous;
08914                     else
08915                       goto homogeneous;
08916                     else
08917                     goto homogeneous;
08918                   else
08919                     goto homogeneous;
08920                 else
08921                   goto homogeneous;
08922                 else
08923                 if (p[offset3] < c_b)
08924                   if (p[offset5] < c_b)
08925                   if (p[offset2] < c_b)
08926                     if (p[offset1] < c_b)
08927                     if (p[offset4] < c_b)
08928                       goto success_homogeneous;
08929                     else
08930                       goto homogeneous;
08931                     else
08932                     if (p[offset4] < c_b)
08933                       if (p[offset6] < c_b)
08934                       goto success_homogeneous;
08935                       else
08936                       goto homogeneous;
08937                     else
08938                       goto homogeneous;
08939                   else
08940                     if (p[offset7] < c_b)
08941                     if (p[offset4] < c_b)
08942                       if (p[offset6] < c_b)
08943                       goto success_homogeneous;
08944                       else
08945                       goto homogeneous;
08946                     else
08947                       goto homogeneous;
08948                     else
08949                     goto homogeneous;
08950                   else
08951                   goto homogeneous;
08952                 else
08953                   goto homogeneous;
08954             }
08955       }
08956       success_homogeneous:
08957             if (total == n_expected_corners)
08958             {
08959               if (n_expected_corners == 0)
08960               {
08961                 n_expected_corners = 512;
08962                 corners.reserve (n_expected_corners);
08963               }
08964               else
08965               {
08966                 n_expected_corners *= 2;
08967                 corners.reserve (n_expected_corners);
08968               }
08969             }
08970             h.u = float (x);
08971             h.v = float (y);
08972             corners.push_back (h);
08973             total++;
08974             goto homogeneous;
08975       success_structured:
08976             if (total == n_expected_corners)
08977             {
08978               if (n_expected_corners == 0)
08979               {
08980                 n_expected_corners = 512;
08981                 corners.reserve (n_expected_corners);
08982               }
08983               else
08984               {
08985                 n_expected_corners *= 2;
08986                 corners.reserve (n_expected_corners);
08987               }
08988             }
08989             h.u = float (x);
08990             h.v = float (y);
08991             corners.push_back (h);
08992             total++;
08993             goto structured;
08994           }
08995         }
08996       }
08997 
08999       // Helper method for AgastDetector5_8::computeCornerScore
09000       template <typename T1, typename T2> int
09001       AgastDetector5_8_computeCornerScore (
09002           const T1* p, 
09003           double im_bmax,
09004           double score_threshold,
09005           int_fast16_t s_offset0,
09006           int_fast16_t s_offset1,
09007           int_fast16_t s_offset2,
09008           int_fast16_t s_offset3,
09009           int_fast16_t s_offset4,
09010           int_fast16_t s_offset5,
09011           int_fast16_t s_offset6,
09012           int_fast16_t s_offset7)
09013       {
09014         T2 bmin = T2 (score_threshold);
09015         T2 bmax = T2 (im_bmax);
09016         int b_test = int ((bmax + bmin) / 2);
09017 
09018         register int_fast16_t offset0 = s_offset0;
09019         register int_fast16_t offset1 = s_offset1;
09020         register int_fast16_t offset2 = s_offset2;
09021         register int_fast16_t offset3 = s_offset3;
09022         register int_fast16_t offset4 = s_offset4;
09023         register int_fast16_t offset5 = s_offset5;
09024         register int_fast16_t offset6 = s_offset6;
09025         register int_fast16_t offset7 = s_offset7;
09026 
09027         while (1)
09028         {
09029           register const T2 cb = *p + T2 (b_test);
09030           register const T2 c_b = *p - T2 (b_test);
09031           if (p[offset0] > cb)
09032             if (p[offset2] > cb)
09033               if (p[offset3] > cb)
09034                 if (p[offset5] > cb)
09035                   if (p[offset1] > cb)
09036                     if (p[offset4] > cb)
09037                       goto is_a_corner;
09038                     else
09039                       if (p[offset7] > cb)
09040                         goto is_a_corner;
09041                       else
09042                         goto is_not_a_corner;
09043                   else
09044                     if (p[offset4] > cb)
09045                       if (p[offset6] > cb)
09046                         goto is_a_corner;
09047                       else
09048                         goto is_not_a_corner;
09049                     else
09050                       goto is_not_a_corner;
09051                 else
09052                   if (p[offset1] > cb)
09053                     if (p[offset4] > cb)
09054                       goto is_a_corner;
09055                     else
09056                       if (p[offset7] > cb)
09057                         goto is_a_corner;
09058                       else
09059                         goto is_not_a_corner;
09060                   else
09061                     goto is_not_a_corner;
09062               else
09063                 if (p[offset7] > cb)
09064                   if (p[offset6] > cb)
09065                     if (p[offset5] > cb)
09066                       if (p[offset1] > cb)
09067                         goto is_a_corner;
09068                       else
09069                         if (p[offset4] > cb)
09070                           goto is_a_corner;
09071                         else
09072                           goto is_not_a_corner;
09073                     else
09074                       if (p[offset1] > cb)
09075                         goto is_a_corner;
09076                       else
09077                         goto is_not_a_corner;
09078                   else
09079                     goto is_not_a_corner;
09080                 else
09081                   if (p[offset5] < c_b)
09082                     if (p[offset3] < c_b)
09083                       if (p[offset7] < c_b)
09084                         if (p[offset4] < c_b)
09085                           if (p[offset6] < c_b)
09086                             goto is_a_corner;
09087                           else
09088                             goto is_not_a_corner;
09089                         else
09090                           goto is_not_a_corner;
09091                       else
09092                         goto is_not_a_corner;
09093                     else
09094                       goto is_not_a_corner;
09095                   else
09096                     goto is_not_a_corner;
09097             else
09098               if (p[offset5] > cb)
09099                 if (p[offset7] > cb)
09100                   if (p[offset6] > cb)
09101                     if (p[offset1] > cb)
09102                       goto is_a_corner;
09103                     else
09104                       if (p[offset4] > cb)
09105                         goto is_a_corner;
09106                       else
09107                         goto is_not_a_corner;
09108                   else
09109                     goto is_not_a_corner;
09110                 else
09111                   goto is_not_a_corner;
09112               else
09113                 if (p[offset5] < c_b)
09114                   if (p[offset3] < c_b)
09115                     if (p[offset2] < c_b)
09116                       if (p[offset1] < c_b)
09117                         if (p[offset4] < c_b)
09118                           goto is_a_corner;
09119                         else
09120                           goto is_not_a_corner;
09121                       else
09122                         if (p[offset4] < c_b)
09123                           if (p[offset6] < c_b)
09124                             goto is_a_corner;
09125                           else
09126                             goto is_not_a_corner;
09127                         else
09128                           goto is_not_a_corner;
09129                     else
09130                       if (p[offset7] < c_b)
09131                         if (p[offset4] < c_b)
09132                           if (p[offset6] < c_b)
09133                             goto is_a_corner;
09134                           else
09135                             goto is_not_a_corner;
09136                         else
09137                           goto is_not_a_corner;
09138                       else
09139                         goto is_not_a_corner;
09140                   else
09141                     goto is_not_a_corner;
09142                 else
09143                   goto is_not_a_corner;
09144           else if (p[offset0] < c_b)
09145             if (p[offset2] < c_b)
09146               if (p[offset7] > cb)
09147                 if (p[offset3] < c_b)
09148                   if (p[offset5] < c_b)
09149                     if (p[offset1] < c_b)
09150                       if (p[offset4] < c_b)
09151                         goto is_a_corner;
09152                       else
09153                         goto is_not_a_corner;
09154                     else
09155                       if (p[offset4] < c_b)
09156                         if (p[offset6] < c_b)
09157                           goto is_a_corner;
09158                         else
09159                           goto is_not_a_corner;
09160                       else
09161                         goto is_not_a_corner;
09162                   else
09163                     if (p[offset1] < c_b)
09164                       if (p[offset4] < c_b)
09165                         goto is_a_corner;
09166                       else
09167                         goto is_not_a_corner;
09168                     else
09169                       goto is_not_a_corner;
09170                 else
09171                   if (p[offset5] > cb)
09172                     if (p[offset3] > cb)
09173                       if (p[offset4] > cb)
09174                         if (p[offset6] > cb)
09175                           goto is_a_corner;
09176                         else
09177                           goto is_not_a_corner;
09178                       else
09179                         goto is_not_a_corner;
09180                     else
09181                       goto is_not_a_corner;
09182                   else
09183                     goto is_not_a_corner;
09184               else
09185                 if (p[offset7] < c_b)
09186                   if (p[offset3] < c_b)
09187                     if (p[offset5] < c_b)
09188                       if (p[offset1] < c_b)
09189                         goto is_a_corner;
09190                       else
09191                         if (p[offset4] < c_b)
09192                           if (p[offset6] < c_b)
09193                             goto is_a_corner;
09194                           else
09195                             goto is_not_a_corner;
09196                         else
09197                           goto is_not_a_corner;
09198                     else
09199                       if (p[offset1] < c_b)
09200                         goto is_a_corner;
09201                       else
09202                         goto is_not_a_corner;
09203                   else
09204                     if (p[offset6] < c_b)
09205                       if (p[offset5] < c_b)
09206                         if (p[offset1] < c_b)
09207                           goto is_a_corner;
09208                         else
09209                           if (p[offset4] < c_b)
09210                             goto is_a_corner;
09211                           else
09212                             goto is_not_a_corner;
09213                       else
09214                         if (p[offset1] < c_b)
09215                           goto is_a_corner;
09216                         else
09217                           goto is_not_a_corner;
09218                     else
09219                       goto is_not_a_corner;
09220                 else
09221                   if (p[offset3] < c_b)
09222                     if (p[offset5] < c_b)
09223                       if (p[offset1] < c_b)
09224                         if (p[offset4] < c_b)
09225                           goto is_a_corner;
09226                         else
09227                           goto is_not_a_corner;
09228                       else
09229                         if (p[offset4] < c_b)
09230                           if (p[offset6] < c_b)
09231                             goto is_a_corner;
09232                           else
09233                             goto is_not_a_corner;
09234                         else
09235                           goto is_not_a_corner;
09236                     else
09237                       if (p[offset1] < c_b)
09238                         if (p[offset4] < c_b)
09239                           goto is_a_corner;
09240                         else
09241                           goto is_not_a_corner;
09242                       else
09243                         goto is_not_a_corner;
09244                   else
09245                     goto is_not_a_corner;
09246             else
09247               if (p[offset5] > cb)
09248                 if (p[offset3] > cb)
09249                   if (p[offset2] > cb)
09250                     if (p[offset1] > cb)
09251                       if (p[offset4] > cb)
09252                         goto is_a_corner;
09253                       else
09254                         goto is_not_a_corner;
09255                     else
09256                       if (p[offset4] > cb)
09257                         if (p[offset6] > cb)
09258                           goto is_a_corner;
09259                         else
09260                           goto is_not_a_corner;
09261                       else
09262                         goto is_not_a_corner;
09263                   else
09264                     if (p[offset7] > cb)
09265                       if (p[offset4] > cb)
09266                         if (p[offset6] > cb)
09267                           goto is_a_corner;
09268                         else
09269                           goto is_not_a_corner;
09270                       else
09271                         goto is_not_a_corner;
09272                     else
09273                       goto is_not_a_corner;
09274                 else
09275                   goto is_not_a_corner;
09276               else
09277                 if (p[offset5] < c_b)
09278                   if (p[offset7] < c_b)
09279                     if (p[offset6] < c_b)
09280                       if (p[offset1] < c_b)
09281                         goto is_a_corner;
09282                       else
09283                         if (p[offset4] < c_b)
09284                           goto is_a_corner;
09285                         else
09286                           goto is_not_a_corner;
09287                     else
09288                       goto is_not_a_corner;
09289                   else
09290                     goto is_not_a_corner;
09291                 else
09292                   goto is_not_a_corner;
09293           else
09294             if (p[offset3] > cb)
09295               if (p[offset5] > cb)
09296                 if (p[offset2] > cb)
09297                   if (p[offset1] > cb)
09298                     if (p[offset4] > cb)
09299                       goto is_a_corner;
09300                     else
09301                       goto is_not_a_corner;
09302                   else
09303                     if (p[offset4] > cb)
09304                       if (p[offset6] > cb)
09305                         goto is_a_corner;
09306                       else
09307                         goto is_not_a_corner;
09308                     else
09309                       goto is_not_a_corner;
09310                 else
09311                   if (p[offset7] > cb)
09312                     if (p[offset4] > cb)
09313                       if (p[offset6] > cb)
09314                         goto is_a_corner;
09315                       else
09316                         goto is_not_a_corner;
09317                     else
09318                       goto is_not_a_corner;
09319                   else
09320                     goto is_not_a_corner;
09321               else
09322                 goto is_not_a_corner;
09323             else
09324               if (p[offset3] < c_b)
09325                 if (p[offset5] < c_b)
09326                   if (p[offset2] < c_b)
09327                     if (p[offset1] < c_b)
09328                       if (p[offset4] < c_b)
09329                         goto is_a_corner;
09330                       else
09331                         goto is_not_a_corner;
09332                     else
09333                       if (p[offset4] < c_b)
09334                         if (p[offset6] < c_b)
09335                           goto is_a_corner;
09336                         else
09337                           goto is_not_a_corner;
09338                       else
09339                         goto is_not_a_corner;
09340                   else
09341                     if (p[offset7] < c_b)
09342                       if (p[offset4] < c_b)
09343                         if (p[offset6] < c_b)
09344                           goto is_a_corner;
09345                         else
09346                           goto is_not_a_corner;
09347                       else
09348                         goto is_not_a_corner;
09349                     else
09350                       goto is_not_a_corner;
09351                 else
09352                   goto is_not_a_corner;
09353               else
09354                 goto is_not_a_corner;
09355 
09356           is_a_corner:
09357             bmin = T2 (b_test);
09358             goto end;
09359 
09360           is_not_a_corner:
09361             bmax = T2 (b_test);
09362             goto end;
09363 
09364           end:
09365 
09366           if (bmin == bmax - 1 || bmin == bmax)
09367             return (int (bmin));
09368           b_test = int ((bmin + bmax) / 2);
09369         }
09370       }
09371     } // namespace agast
09372   } // namespace keypoints
09373 } // namespace pcl
09374 
09377 void
09378 pcl::keypoints::agast::AgastDetector5_8::initPattern ()
09379 {
09380   s_offset0_ = static_cast<int_fast16_t> ((-1) + (0)  * width_);
09381   s_offset1_ = static_cast<int_fast16_t> ((-1) + (-1) * width_);
09382   s_offset2_ = static_cast<int_fast16_t> ((0)  + (-1) * width_);
09383   s_offset3_ = static_cast<int_fast16_t> ((1)  + (-1) * width_);
09384   s_offset4_ = static_cast<int_fast16_t> ((1)  + (0)  * width_);
09385   s_offset5_ = static_cast<int_fast16_t> ((1)  + (1)  * width_);
09386   s_offset6_ = static_cast<int_fast16_t> ((0)  + (1)  * width_);
09387   s_offset7_ = static_cast<int_fast16_t> ((-1) + (1)  * width_);
09388 }
09389 
09391 void
09392 pcl::keypoints::agast::AgastDetector5_8::detect (const unsigned char* im, std::vector<pcl::PointUV, Eigen::aligned_allocator<pcl::PointUV> > & corners) const
09393 {
09394   return (pcl::keypoints::agast::AgastDetector5_8_detect<unsigned char, int> (
09395         im, int (width_), int (height_), threshold_, 
09396         s_offset0_, 
09397         s_offset1_,
09398         s_offset2_,
09399         s_offset3_,
09400         s_offset4_,
09401         s_offset5_,
09402         s_offset6_,
09403         s_offset7_,
09404         corners));
09405 }
09406 
09408 void
09409 pcl::keypoints::agast::AgastDetector5_8::detect (const float* im, std::vector<pcl::PointUV, Eigen::aligned_allocator<pcl::PointUV> > & corners) const
09410 {
09411   return (pcl::keypoints::agast::AgastDetector5_8_detect<float, float> (
09412         im, int (width_), int (height_), threshold_, 
09413         s_offset0_, 
09414         s_offset1_,
09415         s_offset2_,
09416         s_offset3_,
09417         s_offset4_,
09418         s_offset5_,
09419         s_offset6_,
09420         s_offset7_,
09421         corners));
09422 }
09423 
09425 int
09426 pcl::keypoints::agast::AgastDetector5_8::computeCornerScore (const unsigned char* p) const
09427 {
09428   return (pcl::keypoints::agast::AgastDetector5_8_computeCornerScore<unsigned char, int> (
09429         p, bmax_, threshold_, 
09430         s_offset0_, 
09431         s_offset1_,
09432         s_offset2_,
09433         s_offset3_,
09434         s_offset4_,
09435         s_offset5_,
09436         s_offset6_,
09437         s_offset7_));
09438 }
09439 
09441 int
09442 pcl::keypoints::agast::AgastDetector5_8::computeCornerScore (const float* p) const
09443 {
09444   return (pcl::keypoints::agast::AgastDetector5_8_computeCornerScore<float, float> (
09445         p, bmax_, threshold_, 
09446         s_offset0_, 
09447         s_offset1_,
09448         s_offset2_,
09449         s_offset3_,
09450         s_offset4_,
09451         s_offset5_,
09452         s_offset6_,
09453         s_offset7_));
09454 }
09455 
09459 namespace pcl
09460 {
09461   namespace keypoints
09462   {
09463     namespace agast
09464     {
09466       // Helper method for OastDetector9_16::detect
09467       template <typename T1, typename T2> void
09468       OastDetector9_16_detect (
09469           const T1* im, 
09470           int img_width, int img_height,
09471           double threshold,
09472           int_fast16_t s_offset0,
09473           int_fast16_t s_offset1,
09474           int_fast16_t s_offset2,
09475           int_fast16_t s_offset3,
09476           int_fast16_t s_offset4,
09477           int_fast16_t s_offset5,
09478           int_fast16_t s_offset6,
09479           int_fast16_t s_offset7,
09480           int_fast16_t s_offset8,
09481           int_fast16_t s_offset9,
09482           int_fast16_t s_offset10,
09483           int_fast16_t s_offset11,
09484           int_fast16_t s_offset12,
09485           int_fast16_t s_offset13,
09486           int_fast16_t s_offset14,
09487           int_fast16_t s_offset15,
09488           std::vector<pcl::PointUV, Eigen::aligned_allocator<pcl::PointUV> >& corners)
09489       {
09490         int total = 0;
09491         int n_expected_corners = int (corners.capacity ());
09492         pcl::PointUV h;
09493         register int x, y;
09494         register int xsize_b = int (img_width) - 4;
09495         register int ysize_b = int (img_height) - 3;
09496         register int_fast16_t offset0, offset1, offset2, offset3, offset4, offset5, offset6, offset7, offset8, offset9, offset10, offset11, offset12, offset13, offset14, offset15;
09497         register int width;
09498 
09499         corners.resize (0);
09500 
09501         offset0  = s_offset0;
09502         offset1  = s_offset1;
09503         offset2  = s_offset2;
09504         offset3  = s_offset3;
09505         offset4  = s_offset4;
09506         offset5  = s_offset5;
09507         offset6  = s_offset6;
09508         offset7  = s_offset7;
09509         offset8  = s_offset8;
09510         offset9  = s_offset9;
09511         offset10 = s_offset10;
09512         offset11 = s_offset11;
09513         offset12 = s_offset12;
09514         offset13 = s_offset13;
09515         offset14 = s_offset14;
09516         offset15 = s_offset15;
09517         width    = int (img_width);
09518 
09519         for (y = 3; y < ysize_b; y++)
09520         {
09521           x = 2;
09522           while (1)
09523           {
09524             x++;
09525             if (x > xsize_b)
09526               break;
09527             else
09528             {
09529               register const T1* const p = im + y * width + x;
09530               register const T2 cb = *p + T2 (threshold);
09531               register const T2 c_b = *p - T2 (threshold);
09532               if (p[offset0] > cb)
09533                 if (p[offset2] > cb)
09534                 if (p[offset4] > cb)
09535                   if (p[offset5] > cb)
09536                   if (p[offset7] > cb)
09537                     if (p[offset3] > cb)
09538                     if (p[offset1] > cb)
09539                       if (p[offset6] > cb)
09540                       if (p[offset8] > cb)
09541                         {}
09542                       else
09543                         if (p[offset15] > cb)
09544                         {}
09545                         else
09546                         continue;
09547                       else
09548                       if (p[offset13] > cb)
09549                         if (p[offset14] > cb)
09550                         if (p[offset15] > cb)
09551                           {}
09552                         else
09553                           continue;
09554                         else
09555                         continue;
09556                       else
09557                         continue;
09558                     else
09559                       if (p[offset8] > cb)
09560                       if (p[offset9] > cb)
09561                         if (p[offset10] > cb)
09562                         if (p[offset6] > cb)
09563                           {}
09564                         else
09565                           if (p[offset11] > cb)
09566                           if (p[offset12] > cb)
09567                             if (p[offset13] > cb)
09568                             if (p[offset14] > cb)
09569                               if (p[offset15] > cb)
09570                               {}
09571                               else
09572                               continue;
09573                             else
09574                               continue;
09575                             else
09576                             continue;
09577                           else
09578                             continue;
09579                           else
09580                           continue;
09581                         else
09582                         continue;
09583                       else
09584                         continue;
09585                       else
09586                       continue;
09587                     else
09588                     if (p[offset10] > cb)
09589                       if (p[offset11] > cb)
09590                       if (p[offset12] > cb)
09591                         if (p[offset8] > cb)
09592                         if (p[offset9] > cb)
09593                           if (p[offset6] > cb)
09594                           {}
09595                           else
09596                           if (p[offset13] > cb)
09597                             if (p[offset14] > cb)
09598                             if (p[offset15] > cb)
09599                               {}
09600                             else
09601                               continue;
09602                             else
09603                             continue;
09604                           else
09605                             continue;
09606                         else
09607                           if (p[offset1] > cb)
09608                           if (p[offset13] > cb)
09609                             if (p[offset14] > cb)
09610                             if (p[offset15] > cb)
09611                               {}
09612                             else
09613                               continue;
09614                             else
09615                             continue;
09616                           else
09617                             continue;
09618                           else
09619                           continue;
09620                         else
09621                         if (p[offset1] > cb)
09622                           if (p[offset13] > cb)
09623                           if (p[offset14] > cb)
09624                             if (p[offset15] > cb)
09625                             {}
09626                             else
09627                             continue;
09628                           else
09629                             continue;
09630                           else
09631                           continue;
09632                         else
09633                           continue;
09634                       else
09635                         continue;
09636                       else
09637                       continue;
09638                     else
09639                       continue;
09640                   else if (p[offset7] < c_b)
09641                     if (p[offset14] > cb)
09642                     if (p[offset15] > cb)
09643                       if (p[offset1] > cb)
09644                       if (p[offset3] > cb)
09645                         if (p[offset6] > cb)
09646                         {}
09647                         else
09648                         if (p[offset13] > cb)
09649                           {}
09650                         else
09651                           continue;
09652                       else
09653                         if (p[offset10] > cb)
09654                         if (p[offset11] > cb)
09655                           if (p[offset12] > cb)
09656                           if (p[offset13] > cb)
09657                             {}
09658                           else
09659                             continue;
09660                           else
09661                           continue;
09662                         else
09663                           continue;
09664                         else
09665                         continue;
09666                       else
09667                       if (p[offset8] > cb)
09668                         if (p[offset9] > cb)
09669                         if (p[offset10] > cb)
09670                           if (p[offset11] > cb)
09671                           if (p[offset12] > cb)
09672                             if (p[offset13] > cb)
09673                             {}
09674                             else
09675                             continue;
09676                           else
09677                             continue;
09678                           else
09679                           continue;
09680                         else
09681                           continue;
09682                         else
09683                         continue;
09684                       else
09685                         continue;
09686                     else
09687                       continue;
09688                     else if (p[offset14] < c_b)
09689                     if (p[offset8] < c_b)
09690                       if (p[offset9] < c_b)
09691                       if (p[offset10] < c_b)
09692                         if (p[offset11] < c_b)
09693                         if (p[offset12] < c_b)
09694                           if (p[offset13] < c_b)
09695                           if (p[offset6] < c_b)
09696                             {}
09697                           else
09698                             if (p[offset15] < c_b)
09699                             {}
09700                             else
09701                             continue;
09702                           else
09703                           continue;
09704                         else
09705                           continue;
09706                         else
09707                         continue;
09708                       else
09709                         continue;
09710                       else
09711                       continue;
09712                     else
09713                       continue;
09714                     else
09715                     continue;
09716                   else
09717                     if (p[offset14] > cb)
09718                     if (p[offset15] > cb)
09719                       if (p[offset1] > cb)
09720                       if (p[offset3] > cb)
09721                         if (p[offset6] > cb)
09722                         {}
09723                         else
09724                         if (p[offset13] > cb)
09725                           {}
09726                         else
09727                           continue;
09728                       else
09729                         if (p[offset10] > cb)
09730                         if (p[offset11] > cb)
09731                           if (p[offset12] > cb)
09732                           if (p[offset13] > cb)
09733                             {}
09734                           else
09735                             continue;
09736                           else
09737                           continue;
09738                         else
09739                           continue;
09740                         else
09741                         continue;
09742                       else
09743                       if (p[offset8] > cb)
09744                         if (p[offset9] > cb)
09745                         if (p[offset10] > cb)
09746                           if (p[offset11] > cb)
09747                           if (p[offset12] > cb)
09748                             if (p[offset13] > cb)
09749                             {}
09750                             else
09751                             continue;
09752                           else
09753                             continue;
09754                           else
09755                           continue;
09756                         else
09757                           continue;
09758                         else
09759                         continue;
09760                       else
09761                         continue;
09762                     else
09763                       continue;
09764                     else
09765                     continue;
09766                   else if (p[offset5] < c_b)
09767                   if (p[offset12] > cb)
09768                     if (p[offset13] > cb)
09769                     if (p[offset14] > cb)
09770                       if (p[offset15] > cb)
09771                       if (p[offset1] > cb)
09772                         if (p[offset3] > cb)
09773                         {}
09774                         else
09775                         if (p[offset10] > cb)
09776                           if (p[offset11] > cb)
09777                           {}
09778                           else
09779                           continue;
09780                         else
09781                           continue;
09782                       else
09783                         if (p[offset8] > cb)
09784                         if (p[offset9] > cb)
09785                           if (p[offset10] > cb)
09786                           if (p[offset11] > cb)
09787                             {}
09788                           else
09789                             continue;
09790                           else
09791                           continue;
09792                         else
09793                           continue;
09794                         else
09795                         continue;
09796                       else
09797                       if (p[offset6] > cb)
09798                         if (p[offset7] > cb)
09799                         if (p[offset8] > cb)
09800                           if (p[offset9] > cb)
09801                           if (p[offset10] > cb)
09802                             if (p[offset11] > cb)
09803                             {}
09804                             else
09805                             continue;
09806                           else
09807                             continue;
09808                           else
09809                           continue;
09810                         else
09811                           continue;
09812                         else
09813                         continue;
09814                       else
09815                         continue;
09816                     else
09817                       continue;
09818                     else
09819                     continue;
09820                   else if (p[offset12] < c_b)
09821                     if (p[offset7] < c_b)
09822                     if (p[offset8] < c_b)
09823                       if (p[offset9] < c_b)
09824                       if (p[offset10] < c_b)
09825                         if (p[offset11] < c_b)
09826                         if (p[offset13] < c_b)
09827                           if (p[offset6] < c_b)
09828                           {}
09829                           else
09830                           if (p[offset14] < c_b)
09831                             if (p[offset15] < c_b)
09832                             {}
09833                             else
09834                             continue;
09835                           else
09836                             continue;
09837                         else
09838                           continue;
09839                         else
09840                         continue;
09841                       else
09842                         continue;
09843                       else
09844                       continue;
09845                     else
09846                       continue;
09847                     else
09848                     continue;
09849                   else
09850                     continue;
09851                   else
09852                   if (p[offset12] > cb)
09853                     if (p[offset13] > cb)
09854                     if (p[offset14] > cb)
09855                       if (p[offset15] > cb)
09856                       if (p[offset1] > cb)
09857                         if (p[offset3] > cb)
09858                         {}
09859                         else
09860                         if (p[offset10] > cb)
09861                           if (p[offset11] > cb)
09862                           {}
09863                           else
09864                           continue;
09865                         else
09866                           continue;
09867                       else
09868                         if (p[offset8] > cb)
09869                         if (p[offset9] > cb)
09870                           if (p[offset10] > cb)
09871                           if (p[offset11] > cb)
09872                             {}
09873                           else
09874                             continue;
09875                           else
09876                           continue;
09877                         else
09878                           continue;
09879                         else
09880                         continue;
09881                       else
09882                       if (p[offset6] > cb)
09883                         if (p[offset7] > cb)
09884                         if (p[offset8] > cb)
09885                           if (p[offset9] > cb)
09886                           if (p[offset10] > cb)
09887                             if (p[offset11] > cb)
09888                             {}
09889                             else
09890                             continue;
09891                           else
09892                             continue;
09893                           else
09894                           continue;
09895                         else
09896                           continue;
09897                         else
09898                         continue;
09899                       else
09900                         continue;
09901                     else
09902                       continue;
09903                     else
09904                     continue;
09905                   else if (p[offset12] < c_b)
09906                     if (p[offset7] < c_b)
09907                     if (p[offset8] < c_b)
09908                       if (p[offset9] < c_b)
09909                       if (p[offset10] < c_b)
09910                         if (p[offset11] < c_b)
09911                         if (p[offset13] < c_b)
09912                           if (p[offset14] < c_b)
09913                           if (p[offset6] < c_b)
09914                             {}
09915                           else
09916                             if (p[offset15] < c_b)
09917                             {}
09918                             else
09919                             continue;
09920                           else
09921                           continue;
09922                         else
09923                           continue;
09924                         else
09925                         continue;
09926                       else
09927                         continue;
09928                       else
09929                       continue;
09930                     else
09931                       continue;
09932                     else
09933                     continue;
09934                   else
09935                     continue;
09936                 else if (p[offset4] < c_b)
09937                   if (p[offset11] > cb)
09938                   if (p[offset12] > cb)
09939                     if (p[offset13] > cb)
09940                     if (p[offset10] > cb)
09941                       if (p[offset14] > cb)
09942                       if (p[offset15] > cb)
09943                         if (p[offset1] > cb)
09944                         {}
09945                         else
09946                         if (p[offset8] > cb)
09947                           if (p[offset9] > cb)
09948                           {}
09949                           else
09950                           continue;
09951                         else
09952                           continue;
09953                       else
09954                         if (p[offset6] > cb)
09955                         if (p[offset7] > cb)
09956                           if (p[offset8] > cb)
09957                           if (p[offset9] > cb)
09958                             {}
09959                           else
09960                             continue;
09961                           else
09962                           continue;
09963                         else
09964                           continue;
09965                         else
09966                         continue;
09967                       else
09968                       if (p[offset5] > cb)
09969                         if (p[offset6] > cb)
09970                         if (p[offset7] > cb)
09971                           if (p[offset8] > cb)
09972                           if (p[offset9] > cb)
09973                             {}
09974                           else
09975                             continue;
09976                           else
09977                           continue;
09978                         else
09979                           continue;
09980                         else
09981                         continue;
09982                       else
09983                         contin